Permettre le déchiffrement d'une portion de fichier (AES CTR ?)
6 réponses
machin
Je voudrais chiffrer des fichiers en utilisant une méthode me permettant de
déchiffrer ensuite une partie quelconque de celui-ci (mes fichiers sont
structurés en "enregistrements")
Actuellement, j'utilise AS-CBC : si j'ai bien compris le sens de CBC, le
chiffrement d'un bloc dépend du bloc précédent, celui-ci ne permet que le
déchiffrement global du fichier.
Dans mon cas, je voudrais pouvoir faire des accès aléatoire sur le fichier
sans tout le déchiffrer (la taille de la fenêtre de déchiffrement devant
être alignée sur la taille d'un bloc, soit 128 bits pour l'AES)
AES-CTR semble être mon ami ...
Est ce que la méthode CTR est LA solution pour la lecture aléatoire ? Existe
t il d'autres alternatives ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Francois Grieu
"machin" écrit:
Je voudrais chiffrer des fichiers en utilisant une méthode me permettant de déchiffrer ensuite une partie quelconque de celui-ci (mes fichiers sont structurés en "enregistrements")
Actuellement, j'utilise AES-CBC : si j'ai bien compris le sens de CBC, le chiffrement d'un bloc dépend du bloc précédent, celui-ci ne permet que le déchiffrement global du fichier.
Non. AES-CBC permet le déchiffrement à partir d'un bloc quelconque; le seul problème est qu'il faut lire le bloc (de 128 bits) qui précède la bloc à déchiffrer. En effet, pour déchiffrer le bloc n, on fait: Pj = AES_Dec(K,Cj) XOR C{j-1}
Par contre AES-CBC ne permet pas de chiffrer à partir d'un point quelconque; si il faut mettre à jour un bloc du fichier, il faut déchiffrer et rechiffrer tout ce qui suit. Pas pratique pour une base de donnée, ni un (volume virtuel sur) disque dur.
Attention AES-CTR semble résoudre le second problème, mais c'est un leure: un adversaire qui connais la version précédente du clair, et les deux versiosn du chiffré, en déduit par deux XOR la nouvelle version du clair.
Si on désire une sécurité optimale, et une mise à jour facile, on peut faire un chiffrement ECB mais avec une clé diversifiée par l'adresse Cj = AES_Enc(AES_Enc(K,j),Pj) Pj = AES_Dec(AES_Enc(K,j),Cj) Ceci au prix, évidemment, d'un doublement du coût de calcul.
François Grieu
"machin" écrit:
Je voudrais chiffrer des fichiers en utilisant une méthode me
permettant de déchiffrer ensuite une partie quelconque de celui-ci
(mes fichiers sont structurés en "enregistrements")
Actuellement, j'utilise AES-CBC : si j'ai bien compris le sens de
CBC, le chiffrement d'un bloc dépend du bloc précédent, celui-ci
ne permet que le déchiffrement global du fichier.
Non. AES-CBC permet le déchiffrement à partir d'un bloc quelconque;
le seul problème est qu'il faut lire le bloc (de 128 bits) qui précède
la bloc à déchiffrer. En effet, pour déchiffrer le bloc n, on fait:
Pj = AES_Dec(K,Cj) XOR C{j-1}
Par contre AES-CBC ne permet pas de chiffrer à partir d'un point
quelconque; si il faut mettre à jour un bloc du fichier, il faut
déchiffrer et rechiffrer tout ce qui suit. Pas pratique pour une
base de donnée, ni un (volume virtuel sur) disque dur.
Attention AES-CTR semble résoudre le second problème, mais c'est un
leure: un adversaire qui connais la version précédente du clair,
et les deux versiosn du chiffré, en déduit par deux XOR la nouvelle
version du clair.
Si on désire une sécurité optimale, et une mise à jour facile, on peut
faire un chiffrement ECB mais avec une clé diversifiée par l'adresse
Cj = AES_Enc(AES_Enc(K,j),Pj)
Pj = AES_Dec(AES_Enc(K,j),Cj)
Ceci au prix, évidemment, d'un doublement du coût de calcul.
Je voudrais chiffrer des fichiers en utilisant une méthode me permettant de déchiffrer ensuite une partie quelconque de celui-ci (mes fichiers sont structurés en "enregistrements")
Actuellement, j'utilise AES-CBC : si j'ai bien compris le sens de CBC, le chiffrement d'un bloc dépend du bloc précédent, celui-ci ne permet que le déchiffrement global du fichier.
Non. AES-CBC permet le déchiffrement à partir d'un bloc quelconque; le seul problème est qu'il faut lire le bloc (de 128 bits) qui précède la bloc à déchiffrer. En effet, pour déchiffrer le bloc n, on fait: Pj = AES_Dec(K,Cj) XOR C{j-1}
Par contre AES-CBC ne permet pas de chiffrer à partir d'un point quelconque; si il faut mettre à jour un bloc du fichier, il faut déchiffrer et rechiffrer tout ce qui suit. Pas pratique pour une base de donnée, ni un (volume virtuel sur) disque dur.
Attention AES-CTR semble résoudre le second problème, mais c'est un leure: un adversaire qui connais la version précédente du clair, et les deux versiosn du chiffré, en déduit par deux XOR la nouvelle version du clair.
Si on désire une sécurité optimale, et une mise à jour facile, on peut faire un chiffrement ECB mais avec une clé diversifiée par l'adresse Cj = AES_Enc(AES_Enc(K,j),Pj) Pj = AES_Dec(AES_Enc(K,j),Cj) Ceci au prix, évidemment, d'un doublement du coût de calcul.
François Grieu
Francois Grieu
"machin" écrit:
Je voudrais chiffrer des fichiers en utilisant une méthode me permettant de déchiffrer ensuite une partie quelconque de celui-ci (mes fichiers sont structurés en "enregistrements")
Actuellement, j'utilise AES-CBC : si j'ai bien compris le sens de CBC, le chiffrement d'un bloc dépend du bloc précédent, celui-ci ne permet que le déchiffrement global du fichier.
Non. AES-CBC permet le déchiffrement à partir d'un bloc quelconque; le seul problème est qu'il faut lire le bloc (de 128 bits) qui précède la bloc à déchiffrer. En effet, pour déchiffrer le bloc n, on fait: Pj = AES_Dec(K,Cj) XOR C{j-1} avec le convention C{-1} = IV, souvent IV=0.
Par contre AES-CBC ne permet pas de chiffrer à partir d'un point quelconque; si il faut mettre à jour un bloc du fichier, il faut déchiffrer et rechiffrer tout ce qui suit. Pas pratique pour une base de donnée, ni un (volume virtuel sur) disque dur.
Attention AES-CTR semble résoudre le second problème, mais c'est un leure: un adversaire qui connais la version précédente du clair, et les deux versions du chiffré, en déduit par deux XOR la nouvelle version du clair.
Si on désire résoudre ce problème, et une mise à jour facile, on peut faire un chiffrement ECB mais avec une clé diversifiée par l'adresse Cj = AES_Enc(AES_Enc(K,j),Pj) Pj = AES_Dec(AES_Enc(K,j),Cj) Ceci au prix, évidemment, d'un doublement du coût de calcul.
Attention l'adversaire qui connais les chiffrés peut encore savoir que tel ou tel bloc n'a pas été modifié. On peut ramener cette granularité au niveau d'enregistrements de plusieurs blocs (par exemple en chiffrant chaque enregistrement en CBC sur deux passes); masquer à l'adversaire quel bloc a été réellement modifié (par exemple en chiffrant l'adresse); et si une réécriture de donnéee chiffrées différentes correspond, ou pas, à des données en clair différentes (par exemple en incluant dans le clair un compteur d'écriture). On peut aussi assurer une certaine intégrité; mais ce n'est pas simple, une base de donnée sécurisée contre un adversaire ayant accès en lecture-écriture aux fichiers de la base. Et en tout cas, l'adversaire peut ramener la base à un état antérieur.
François Grieu
"machin" écrit:
Je voudrais chiffrer des fichiers en utilisant une méthode me
permettant de déchiffrer ensuite une partie quelconque de celui-ci
(mes fichiers sont structurés en "enregistrements")
Actuellement, j'utilise AES-CBC : si j'ai bien compris le sens de
CBC, le chiffrement d'un bloc dépend du bloc précédent, celui-ci
ne permet que le déchiffrement global du fichier.
Non. AES-CBC permet le déchiffrement à partir d'un bloc quelconque;
le seul problème est qu'il faut lire le bloc (de 128 bits) qui précède
la bloc à déchiffrer. En effet, pour déchiffrer le bloc n, on fait:
Pj = AES_Dec(K,Cj) XOR C{j-1} avec le convention C{-1} = IV,
souvent IV=0.
Par contre AES-CBC ne permet pas de chiffrer à partir d'un point
quelconque; si il faut mettre à jour un bloc du fichier, il faut
déchiffrer et rechiffrer tout ce qui suit. Pas pratique pour une
base de donnée, ni un (volume virtuel sur) disque dur.
Attention AES-CTR semble résoudre le second problème, mais c'est un
leure: un adversaire qui connais la version précédente du clair,
et les deux versions du chiffré, en déduit par deux XOR la nouvelle
version du clair.
Si on désire résoudre ce problème, et une mise à jour facile,
on peut faire un chiffrement ECB mais avec une clé diversifiée par
l'adresse
Cj = AES_Enc(AES_Enc(K,j),Pj)
Pj = AES_Dec(AES_Enc(K,j),Cj)
Ceci au prix, évidemment, d'un doublement du coût de calcul.
Attention l'adversaire qui connais les chiffrés peut encore savoir
que tel ou tel bloc n'a pas été modifié. On peut ramener cette
granularité au niveau d'enregistrements de plusieurs blocs (par
exemple en chiffrant chaque enregistrement en CBC sur deux passes);
masquer à l'adversaire quel bloc a été réellement modifié (par
exemple en chiffrant l'adresse); et si une réécriture de donnéee
chiffrées différentes correspond, ou pas, à des données en clair
différentes (par exemple en incluant dans le clair un compteur
d'écriture).
On peut aussi assurer une certaine intégrité; mais ce n'est pas
simple, une base de donnée sécurisée contre un adversaire ayant
accès en lecture-écriture aux fichiers de la base. Et en tout
cas, l'adversaire peut ramener la base à un état antérieur.
Je voudrais chiffrer des fichiers en utilisant une méthode me permettant de déchiffrer ensuite une partie quelconque de celui-ci (mes fichiers sont structurés en "enregistrements")
Actuellement, j'utilise AES-CBC : si j'ai bien compris le sens de CBC, le chiffrement d'un bloc dépend du bloc précédent, celui-ci ne permet que le déchiffrement global du fichier.
Non. AES-CBC permet le déchiffrement à partir d'un bloc quelconque; le seul problème est qu'il faut lire le bloc (de 128 bits) qui précède la bloc à déchiffrer. En effet, pour déchiffrer le bloc n, on fait: Pj = AES_Dec(K,Cj) XOR C{j-1} avec le convention C{-1} = IV, souvent IV=0.
Par contre AES-CBC ne permet pas de chiffrer à partir d'un point quelconque; si il faut mettre à jour un bloc du fichier, il faut déchiffrer et rechiffrer tout ce qui suit. Pas pratique pour une base de donnée, ni un (volume virtuel sur) disque dur.
Attention AES-CTR semble résoudre le second problème, mais c'est un leure: un adversaire qui connais la version précédente du clair, et les deux versions du chiffré, en déduit par deux XOR la nouvelle version du clair.
Si on désire résoudre ce problème, et une mise à jour facile, on peut faire un chiffrement ECB mais avec une clé diversifiée par l'adresse Cj = AES_Enc(AES_Enc(K,j),Pj) Pj = AES_Dec(AES_Enc(K,j),Cj) Ceci au prix, évidemment, d'un doublement du coût de calcul.
Attention l'adversaire qui connais les chiffrés peut encore savoir que tel ou tel bloc n'a pas été modifié. On peut ramener cette granularité au niveau d'enregistrements de plusieurs blocs (par exemple en chiffrant chaque enregistrement en CBC sur deux passes); masquer à l'adversaire quel bloc a été réellement modifié (par exemple en chiffrant l'adresse); et si une réécriture de donnéee chiffrées différentes correspond, ou pas, à des données en clair différentes (par exemple en incluant dans le clair un compteur d'écriture). On peut aussi assurer une certaine intégrité; mais ce n'est pas simple, une base de donnée sécurisée contre un adversaire ayant accès en lecture-écriture aux fichiers de la base. Et en tout cas, l'adversaire peut ramener la base à un état antérieur.
François Grieu
machin
"Francois Grieu" wrote in message news:
Attention AES-CTR semble résoudre le second problème, mais c'est un leure: un adversaire qui connais la version précédente du clair, et les deux versions du chiffré, en déduit par deux XOR la nouvelle version du clair.
Si on désire une sécurité optimale, et une mise à jour facile, on peut faire un chiffrement ECB mais avec une clé diversifiée par l'adresse Cj = AES_Enc(AES_Enc(K,j),Pj) Pj = AES_Dec(AES_Enc(K,j),Cj) Ceci au prix, évidemment, d'un doublement du coût de calcul.
Pourriez vous m'éclairer sur la signification des variables Cj, K, j, Pj
François Grieu
"Francois Grieu" <fgrieu@francenet.fr> wrote in message
news:fgrieu-20D585.09484406122005@news9-e.proxad.net...
Attention AES-CTR semble résoudre le second problème, mais c'est un
leure: un adversaire qui connais la version précédente du clair,
et les deux versions du chiffré, en déduit par deux XOR la nouvelle
version du clair.
Si on désire une sécurité optimale, et une mise à jour facile, on peut
faire un chiffrement ECB mais avec une clé diversifiée par l'adresse
Cj = AES_Enc(AES_Enc(K,j),Pj)
Pj = AES_Dec(AES_Enc(K,j),Cj)
Ceci au prix, évidemment, d'un doublement du coût de calcul.
Pourriez vous m'éclairer sur la signification des variables Cj, K, j, Pj
Attention AES-CTR semble résoudre le second problème, mais c'est un leure: un adversaire qui connais la version précédente du clair, et les deux versions du chiffré, en déduit par deux XOR la nouvelle version du clair.
Si on désire une sécurité optimale, et une mise à jour facile, on peut faire un chiffrement ECB mais avec une clé diversifiée par l'adresse Cj = AES_Enc(AES_Enc(K,j),Pj) Pj = AES_Dec(AES_Enc(K,j),Cj) Ceci au prix, évidemment, d'un doublement du coût de calcul.
Pourriez vous m'éclairer sur la signification des variables Cj, K, j, Pj
François Grieu
Ludovic FLAMENT
Bonjour,
Actuellement, j'utilise AS-CBC : si j'ai bien compris le sens de CBC, le chiffrement d'un bloc dépend du bloc précédent, celui-ci ne permet que le déchiffrement global du fichier.
Oui et non. Le CBC implique effectivement qu'un bloc i dépend du bloc i-1 mais cela n'oblige nullement le déchiffrement global.
Le déchiffrement en mode CBC s'effectue de la manière suivante : Pi = Dk(Ci) xor Ci-1
Pour obtenir le bloc déchiffré (Pi), il suffit de connaître : - le bloc chiffré (Ci) - le bloc chiffré précédent (Ci-1) - la clef de déchiffrement (k)
Vous pouvez constater cela, par exemple en chiffrant un fichier avec un IV (iv1) et ensuite déchiffrer avec un autre IV (iv2). Vous constaterez que le fichier est correct à l'exception des 128 premiers bits, dans la mesure où vous avez donné un mauvais IV. Mais l'erreur ne se propage pas, puisque le second IV utilisé lors du déchiffrement est le premier bloc chiffré qui est bon et ainsi de suite.
Dans mon cas, je voudrais pouvoir faire des accès aléatoire sur le fichier sans tout le déchiffrer (la taille de la fenêtre de déchiffrement devant être alignée sur la taille d'un bloc, soit 128 bits pour l'AES) AES-CTR semble être mon ami ...
Le mode counter, peut également être utilisé mais n'apporte rien de plus que le CBC (voir il sera plus difficile) dans votre cas.
En effet le mode CTR utilise un IV (appelé nonce) et un compteur. Pour déchiffré le bloc i, il vous faudra connaître la valeur initiale de l'IV et la valeur du compteur pour le bloc courant ("valeur de départ du compteur + i - 1" en théorie).
Il vous faut donc garder deux valeurs en CTR, alors qu'une seule est nécessaire en CBC. Le mode CTR à des avantages sur le mode CBC, mais pas forcément dans le cadre de votre utilisation.
Actuellement, j'utilise AS-CBC : si j'ai bien compris le sens de CBC, le
chiffrement d'un bloc dépend du bloc précédent, celui-ci ne permet que le
déchiffrement global du fichier.
Oui et non. Le CBC implique effectivement qu'un bloc i dépend du bloc
i-1 mais cela n'oblige nullement le déchiffrement global.
Le déchiffrement en mode CBC s'effectue de la manière suivante :
Pi = Dk(Ci) xor Ci-1
Pour obtenir le bloc déchiffré (Pi), il suffit de connaître :
- le bloc chiffré (Ci)
- le bloc chiffré précédent (Ci-1)
- la clef de déchiffrement (k)
Vous pouvez constater cela, par exemple en chiffrant un fichier avec un
IV (iv1) et ensuite déchiffrer avec un autre IV (iv2). Vous constaterez
que le fichier est correct à l'exception des 128 premiers bits, dans la
mesure où vous avez donné un mauvais IV. Mais l'erreur ne se propage
pas, puisque le second IV utilisé lors du déchiffrement est le premier
bloc chiffré qui est bon et ainsi de suite.
Dans mon cas, je voudrais pouvoir faire des accès aléatoire sur le fichier
sans tout le déchiffrer (la taille de la fenêtre de déchiffrement devant
être alignée sur la taille d'un bloc, soit 128 bits pour l'AES)
AES-CTR semble être mon ami ...
Le mode counter, peut également être utilisé mais n'apporte rien de
plus que le CBC (voir il sera plus difficile) dans votre cas.
En effet le mode CTR utilise un IV (appelé nonce) et un compteur. Pour
déchiffré le bloc i, il vous faudra connaître la valeur initiale de l'IV
et la valeur du compteur pour le bloc courant ("valeur de départ du
compteur + i - 1" en théorie).
Il vous faut donc garder deux valeurs en CTR, alors qu'une seule est
nécessaire en CBC. Le mode CTR à des avantages sur le mode CBC, mais pas
forcément dans le cadre de votre utilisation.
Actuellement, j'utilise AS-CBC : si j'ai bien compris le sens de CBC, le chiffrement d'un bloc dépend du bloc précédent, celui-ci ne permet que le déchiffrement global du fichier.
Oui et non. Le CBC implique effectivement qu'un bloc i dépend du bloc i-1 mais cela n'oblige nullement le déchiffrement global.
Le déchiffrement en mode CBC s'effectue de la manière suivante : Pi = Dk(Ci) xor Ci-1
Pour obtenir le bloc déchiffré (Pi), il suffit de connaître : - le bloc chiffré (Ci) - le bloc chiffré précédent (Ci-1) - la clef de déchiffrement (k)
Vous pouvez constater cela, par exemple en chiffrant un fichier avec un IV (iv1) et ensuite déchiffrer avec un autre IV (iv2). Vous constaterez que le fichier est correct à l'exception des 128 premiers bits, dans la mesure où vous avez donné un mauvais IV. Mais l'erreur ne se propage pas, puisque le second IV utilisé lors du déchiffrement est le premier bloc chiffré qui est bon et ainsi de suite.
Dans mon cas, je voudrais pouvoir faire des accès aléatoire sur le fichier sans tout le déchiffrer (la taille de la fenêtre de déchiffrement devant être alignée sur la taille d'un bloc, soit 128 bits pour l'AES) AES-CTR semble être mon ami ...
Le mode counter, peut également être utilisé mais n'apporte rien de plus que le CBC (voir il sera plus difficile) dans votre cas.
En effet le mode CTR utilise un IV (appelé nonce) et un compteur. Pour déchiffré le bloc i, il vous faudra connaître la valeur initiale de l'IV et la valeur du compteur pour le bloc courant ("valeur de départ du compteur + i - 1" en théorie).
Il vous faut donc garder deux valeurs en CTR, alors qu'une seule est nécessaire en CBC. Le mode CTR à des avantages sur le mode CBC, mais pas forcément dans le cadre de votre utilisation.
Si on désire résoudre ce problème, et une mise à jour facile, on peut faire un chiffrement ECB mais avec une clé diversifiée par l'adresse Cj = AES_Enc(AES_Enc(K,j),Pj) Pj = AES_Dec(AES_Enc(K,j),Cj) Ceci au prix, évidemment, d'un doublement du coût de calcul.
Pourriez vous m'éclairer sur la signification des variables Cj, K, j, Pj
j = indice d'un bloc, base 0 (étendu à gauche par des bits à 0 pour faire 128 bits)
Cj = bloc de 128 bits de "Ciphertext" (chiffré), à l'indice j (cad à l'offset j*16 octets) dans le fichier chiffré
Pj = bloc de 128 bits de "Plaintext" (clair), à l'indice j dans les données utiles
K = clé secrète, sur 128 bits
Y = AES_Enc(K,X) chiffrement AES d'un bloc X de 128 bits avec la clé K de 128 bits, donnant Y de 128 bits
X = AES_Dec(K,Y) opération réciproque
François Grieu
"machin" demande:
"Francois Grieu" <fgrieu@francenet.fr> wrote
Si on désire résoudre ce problème, et une mise à jour facile,
on peut faire un chiffrement ECB mais avec une clé diversifiée par
l'adresse
Cj = AES_Enc(AES_Enc(K,j),Pj)
Pj = AES_Dec(AES_Enc(K,j),Cj)
Ceci au prix, évidemment, d'un doublement du coût de calcul.
Pourriez vous m'éclairer sur la signification des variables
Cj, K, j, Pj
j = indice d'un bloc, base 0 (étendu à gauche par
des bits à 0 pour faire 128 bits)
Cj = bloc de 128 bits de "Ciphertext" (chiffré), à l'indice j
(cad à l'offset j*16 octets) dans le fichier chiffré
Pj = bloc de 128 bits de "Plaintext" (clair), à l'indice j
dans les données utiles
K = clé secrète, sur 128 bits
Y = AES_Enc(K,X) chiffrement AES d'un bloc X de 128 bits avec
la clé K de 128 bits, donnant Y de 128 bits
Si on désire résoudre ce problème, et une mise à jour facile, on peut faire un chiffrement ECB mais avec une clé diversifiée par l'adresse Cj = AES_Enc(AES_Enc(K,j),Pj) Pj = AES_Dec(AES_Enc(K,j),Cj) Ceci au prix, évidemment, d'un doublement du coût de calcul.
Pourriez vous m'éclairer sur la signification des variables Cj, K, j, Pj
j = indice d'un bloc, base 0 (étendu à gauche par des bits à 0 pour faire 128 bits)
Cj = bloc de 128 bits de "Ciphertext" (chiffré), à l'indice j (cad à l'offset j*16 octets) dans le fichier chiffré
Pj = bloc de 128 bits de "Plaintext" (clair), à l'indice j dans les données utiles
K = clé secrète, sur 128 bits
Y = AES_Enc(K,X) chiffrement AES d'un bloc X de 128 bits avec la clé K de 128 bits, donnant Y de 128 bits
X = AES_Dec(K,Y) opération réciproque
François Grieu
machin
"Francois Grieu" wrote
Si on désire résoudre ce problème, et une mise à jour facile, on peut faire un chiffrement ECB mais avec une clé diversifiée par l'adresse Cj = AES_Enc(AES_Enc(K,j),Pj) Pj = AES_Dec(AES_Enc(K,j),Cj) Ceci au prix, évidemment, d'un doublement du coût de calcul.
Pourriez vous m'éclairer sur la signification des variables Cj, K, j, Pj
j = indice d'un bloc, base 0 (étendu à gauche par des bits à 0 pour faire 128 bits)
Cj = bloc de 128 bits de "Ciphertext" (chiffré), à l'indice j (cad à l'offset j*16 octets) dans le fichier chiffré
Pj = bloc de 128 bits de "Plaintext" (clair), à l'indice j dans les données utiles
K = clé secrète, sur 128 bits
Y = AES_Enc(K,X) chiffrement AES d'un bloc X de 128 bits avec la clé K de 128 bits, donnant Y de 128 bits
X = AES_Dec(K,Y) opération réciproque
François Grieu
merci pour les précisions
"Francois Grieu" <fgrieu@francenet.fr> wrote
Si on désire résoudre ce problème, et une mise à jour facile,
on peut faire un chiffrement ECB mais avec une clé diversifiée par
l'adresse
Cj = AES_Enc(AES_Enc(K,j),Pj)
Pj = AES_Dec(AES_Enc(K,j),Cj)
Ceci au prix, évidemment, d'un doublement du coût de calcul.
Pourriez vous m'éclairer sur la signification des variables
Cj, K, j, Pj
j = indice d'un bloc, base 0 (étendu à gauche par
des bits à 0 pour faire 128 bits)
Cj = bloc de 128 bits de "Ciphertext" (chiffré), à l'indice j
(cad à l'offset j*16 octets) dans le fichier chiffré
Pj = bloc de 128 bits de "Plaintext" (clair), à l'indice j
dans les données utiles
K = clé secrète, sur 128 bits
Y = AES_Enc(K,X) chiffrement AES d'un bloc X de 128 bits avec
la clé K de 128 bits, donnant Y de 128 bits
Si on désire résoudre ce problème, et une mise à jour facile, on peut faire un chiffrement ECB mais avec une clé diversifiée par l'adresse Cj = AES_Enc(AES_Enc(K,j),Pj) Pj = AES_Dec(AES_Enc(K,j),Cj) Ceci au prix, évidemment, d'un doublement du coût de calcul.
Pourriez vous m'éclairer sur la signification des variables Cj, K, j, Pj
j = indice d'un bloc, base 0 (étendu à gauche par des bits à 0 pour faire 128 bits)
Cj = bloc de 128 bits de "Ciphertext" (chiffré), à l'indice j (cad à l'offset j*16 octets) dans le fichier chiffré
Pj = bloc de 128 bits de "Plaintext" (clair), à l'indice j dans les données utiles
K = clé secrète, sur 128 bits
Y = AES_Enc(K,X) chiffrement AES d'un bloc X de 128 bits avec la clé K de 128 bits, donnant Y de 128 bits