je suis en train potasser sur des annales de crypto et je bloque sur une
question :
"Dites pourquoi on opere, en debut de chiffrement avec l'AES, un
ou-exclusif entre le bloc clair et la clé de tour."
Intuitivement ce premier AddRoundKey ajoute une securité suplémentaire
mais quel difference au final avec les n tours de l'AES sans ce XOR ???
cette question est a mon avis pas si annodine qu'elle y parait...
Ma réponse :
Ce premier xor du bloc clair avec la clé apporte une meilleure
efficacité a la substitution puis a la permutation du premier tour.
(??_TRIVIAL_??)
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
Kevin Drapel
Ma réponse : Ce premier xor du bloc clair avec la clé apporte une meilleure efficacité a la substitution puis a la permutation du premier tour. (??_TRIVIAL_??)
Qu'en pensez-vous???
Avec une clé aléatoire, ce XOR permet d'avoir une entrée avec des caractéristiques aléatoires, alors que ce n'est pas le cas avec le message initial. Un attaquant pourrait profiter d'une analyse statistique sur le texte pour trouver une vulnérabilité lors du chiffrement et l'apparition de schémas caractéristiques au sein de l'algo en fonction des textes à l'entrée.
Ma réponse : Ce premier xor du bloc clair avec la clé apporte une
meilleure efficacité a la substitution puis a la permutation du
premier tour. (??_TRIVIAL_??)
Qu'en pensez-vous???
Avec une clé aléatoire, ce XOR permet d'avoir une entrée avec des
caractéristiques aléatoires, alors que ce n'est pas le cas avec le
message initial. Un attaquant pourrait profiter d'une analyse
statistique sur le texte pour trouver une vulnérabilité lors du
chiffrement et l'apparition de schémas caractéristiques au sein de
l'algo en fonction des textes à l'entrée.
Ma réponse : Ce premier xor du bloc clair avec la clé apporte une meilleure efficacité a la substitution puis a la permutation du premier tour. (??_TRIVIAL_??)
Qu'en pensez-vous???
Avec une clé aléatoire, ce XOR permet d'avoir une entrée avec des caractéristiques aléatoires, alors que ce n'est pas le cas avec le message initial. Un attaquant pourrait profiter d'une analyse statistique sur le texte pour trouver une vulnérabilité lors du chiffrement et l'apparition de schémas caractéristiques au sein de l'algo en fonction des textes à l'entrée.
flo
Kevin Drapel wrote:
Avec une clé aléatoire, ce XOR permet d'avoir une entrée avec des caractéristiques aléatoires, alors que ce n'est pas le cas avec le message initial. Un attaquant pourrait profiter d'une analyse statistique sur le texte pour trouver une vulnérabilité lors du chiffrement et l'apparition de schémas caractéristiques au sein de l'algo en fonction des textes à l'entrée.
merci pour la reponse..
la clé n'est pas aléatoire, elle est calculé a partir de la clef de depart par un algorithme...(ce qui engendre une cle initiale et une clé pour les n-1 tours d'AES)
=> je comprend qu'il vaut mieux effectué cette transformation (clé + clair ) des le depart plutot que de ne pas le faire, mais est-ce que cela apporte vraiment un plus ??
je rapelle l'algo :
# On calcule la clé étendue # On effectue un AddRoundKey initial (``tour 0'') <<< * # On effectue $N_r-1$ tours :
donc meme si on peut voir apparaitre des schemas caracteristiques si on ne brouille pas le clair des le depart au cours des premiers tours, les n-1 tours de l'AES vont s'en charger...je pense
En bref, est-ce que ce premier AddRoundKey (*) est indispensable a la securité de l'AES ?
merci de m' éclairer
flo
Kevin Drapel wrote:
Avec une clé aléatoire, ce XOR permet d'avoir une entrée avec des
caractéristiques aléatoires, alors que ce n'est pas le cas avec le
message initial. Un attaquant pourrait profiter d'une analyse
statistique sur le texte pour trouver une vulnérabilité lors du
chiffrement et l'apparition de schémas caractéristiques au sein de
l'algo en fonction des textes à l'entrée.
merci pour la reponse..
la clé n'est pas aléatoire, elle est calculé a partir de la clef de
depart par un algorithme...(ce qui engendre une cle initiale et une clé
pour les n-1 tours d'AES)
=> je comprend qu'il vaut mieux effectué cette transformation (clé +
clair ) des le depart plutot que de ne pas le faire, mais est-ce que
cela apporte vraiment un plus ??
je rapelle l'algo :
# On calcule la clé étendue
# On effectue un AddRoundKey initial (``tour 0'') <<< *
# On effectue $N_r-1$ tours :
donc meme si on peut voir apparaitre des schemas caracteristiques si on
ne brouille pas le clair des le depart au cours des premiers tours, les
n-1 tours de l'AES vont s'en charger...je pense
En bref, est-ce que ce premier AddRoundKey (*) est indispensable a la
securité de l'AES ?
Avec une clé aléatoire, ce XOR permet d'avoir une entrée avec des caractéristiques aléatoires, alors que ce n'est pas le cas avec le message initial. Un attaquant pourrait profiter d'une analyse statistique sur le texte pour trouver une vulnérabilité lors du chiffrement et l'apparition de schémas caractéristiques au sein de l'algo en fonction des textes à l'entrée.
merci pour la reponse..
la clé n'est pas aléatoire, elle est calculé a partir de la clef de depart par un algorithme...(ce qui engendre une cle initiale et une clé pour les n-1 tours d'AES)
=> je comprend qu'il vaut mieux effectué cette transformation (clé + clair ) des le depart plutot que de ne pas le faire, mais est-ce que cela apporte vraiment un plus ??
je rapelle l'algo :
# On calcule la clé étendue # On effectue un AddRoundKey initial (``tour 0'') <<< * # On effectue $N_r-1$ tours :
donc meme si on peut voir apparaitre des schemas caracteristiques si on ne brouille pas le clair des le depart au cours des premiers tours, les n-1 tours de l'AES vont s'en charger...je pense
En bref, est-ce que ce premier AddRoundKey (*) est indispensable a la securité de l'AES ?
merci de m' éclairer
flo
flo
je voulait dire :
la clé n'est pas aléatoire, elle est calculé a partir de la clef de depart par un algorithme...(ce qui engendre une cle initiale et une clé pour chaque n-1 tours d'AES) ------
je voulait dire :
la clé n'est pas aléatoire, elle est calculé a partir de la clef de
depart par un algorithme...(ce qui engendre une cle initiale et une clé
pour chaque n-1 tours d'AES)
------
la clé n'est pas aléatoire, elle est calculé a partir de la clef de depart par un algorithme...(ce qui engendre une cle initiale et une clé pour chaque n-1 tours d'AES) ------
Kevin Drapel
la clé n'est pas aléatoire, elle est calculé a partir de la clef de depart par un algorithme...(ce qui engendre une cle initiale et une clé pour les n-1 tours d'AES)
D'après ce que je sais d'AES, on génère ces clés pour chaque ronde en utilisant la S-Box (une subsitution puisque chaque valeur n'apparaît qu'une seule fois dans la table de 256 éléments) et des rotations de 4 bytes. La première clé pour ce XOR est identique à la clé principale de 128 bits de AES. Si elle est parfaitement aléatoire, on a un "one-time pad" parfait.
=> je comprend qu'il vaut mieux effectué cette transformation (clé + clair ) des le depart plutot que de ne pas le faire, mais est-ce que cela apporte vraiment un plus ??
Cela apporte une sécurité supplémentaire dans le sens où les premières attaques se font toujours sur des versions simplifiées de l'algorithme (avec moins de tours). En enlevant cette transformation préliminaire, on diminue probablement la résistance de l'ensemble. Maintenant, je ne suis pas cryptanalyste et il y a sûrement des raisons mathématiques plus subtiles (peut-être pour améliorer la diffusion des bits dans la structure). En tout cas, AES a été conçu de manière à éviter les attaques classiques comme la cryptanalyse linéaire et différentielle, ce XOR initiale n'est pas là pour rien.
Donc oui, cela apporte assurément un plus sinon les concepteurs l'auraient enlevé mais il faudrait lire le livre "The design of Rijndael" pour tout comprendre ou attendre la réponse de qqn plus calé que moi en la matière.
la clé n'est pas aléatoire, elle est calculé a partir de la clef de
depart par un algorithme...(ce qui engendre une cle initiale et une
clé pour les n-1 tours d'AES)
D'après ce que je sais d'AES, on génère ces clés pour chaque ronde en
utilisant la S-Box (une subsitution puisque chaque valeur n'apparaît
qu'une seule fois dans la table de 256 éléments) et des rotations de 4
bytes. La première clé pour ce XOR est identique à la clé principale de
128 bits de AES. Si elle est parfaitement aléatoire, on a un "one-time
pad" parfait.
=> je comprend qu'il vaut mieux effectué cette transformation (clé +
clair ) des le depart plutot que de ne pas le faire, mais est-ce que
cela apporte vraiment un plus ??
Cela apporte une sécurité supplémentaire dans le sens où les premières
attaques se font toujours sur des versions simplifiées de l'algorithme
(avec moins de tours). En enlevant cette transformation préliminaire, on
diminue probablement la résistance de l'ensemble. Maintenant, je ne suis
pas cryptanalyste et il y a sûrement des raisons mathématiques plus
subtiles (peut-être pour améliorer la diffusion des bits dans la
structure). En tout cas, AES a été conçu de manière à éviter les
attaques classiques comme la cryptanalyse linéaire et différentielle, ce
XOR initiale n'est pas là pour rien.
Donc oui, cela apporte assurément un plus sinon les concepteurs
l'auraient enlevé mais il faudrait lire le livre "The design of
Rijndael" pour tout comprendre ou attendre la réponse de qqn plus calé
que moi en la matière.
la clé n'est pas aléatoire, elle est calculé a partir de la clef de depart par un algorithme...(ce qui engendre une cle initiale et une clé pour les n-1 tours d'AES)
D'après ce que je sais d'AES, on génère ces clés pour chaque ronde en utilisant la S-Box (une subsitution puisque chaque valeur n'apparaît qu'une seule fois dans la table de 256 éléments) et des rotations de 4 bytes. La première clé pour ce XOR est identique à la clé principale de 128 bits de AES. Si elle est parfaitement aléatoire, on a un "one-time pad" parfait.
=> je comprend qu'il vaut mieux effectué cette transformation (clé + clair ) des le depart plutot que de ne pas le faire, mais est-ce que cela apporte vraiment un plus ??
Cela apporte une sécurité supplémentaire dans le sens où les premières attaques se font toujours sur des versions simplifiées de l'algorithme (avec moins de tours). En enlevant cette transformation préliminaire, on diminue probablement la résistance de l'ensemble. Maintenant, je ne suis pas cryptanalyste et il y a sûrement des raisons mathématiques plus subtiles (peut-être pour améliorer la diffusion des bits dans la structure). En tout cas, AES a été conçu de manière à éviter les attaques classiques comme la cryptanalyse linéaire et différentielle, ce XOR initiale n'est pas là pour rien.
Donc oui, cela apporte assurément un plus sinon les concepteurs l'auraient enlevé mais il faudrait lire le livre "The design of Rijndael" pour tout comprendre ou attendre la réponse de qqn plus calé que moi en la matière.
pornin
According to flo :
je suis en train potasser sur des annales de crypto et je bloque sur une question :
"Dites pourquoi on opere, en debut de chiffrement avec l'AES, un ou-exclusif entre le bloc clair et la clé de tour."
Intuitivement ce premier AddRoundKey ajoute une securité suplémentaire mais quel difference au final avec les n tours de l'AES sans ce XOR ???
L'attaquant peut, par définition, faire tout ce qui ne nécessite pas connaissance de la clé. Sans le XOR avec la clé, les trois opérations suivantes, qui forment le premier tour ("subBytes", "shiftRows" et "mixColumns"), sont complètement calculables de l'extérieur.
Autrement dit, la partie "secrète" de l'AES ne peut que commencer par une injection d'une valeur dérivée de la clé, et terminer par une autre injection du même type. En enlevant le XOR avec la première clé, en fait, on enlève un tour d'AES, du point de vue sécurité...
Dans le même genre, l'algorithme DES (prédécesseur de l'AES) commence par une permutation de bits parfaitement fixée et indépendante de la clé, et termine par une autre permutation du même type. Ces deux permutation étant calculable et inversibles sans connaissance de la clé, on les ignore complètement dans la pratique pour tout ce qui est analyse de sécurité.
--Thomas Pornin
According to flo <lekrapo@hotmail.com>:
je suis en train potasser sur des annales de crypto et je bloque sur une
question :
"Dites pourquoi on opere, en debut de chiffrement avec l'AES, un
ou-exclusif entre le bloc clair et la clé de tour."
Intuitivement ce premier AddRoundKey ajoute une securité suplémentaire
mais quel difference au final avec les n tours de l'AES sans ce XOR ???
L'attaquant peut, par définition, faire tout ce qui ne nécessite pas
connaissance de la clé. Sans le XOR avec la clé, les trois opérations
suivantes, qui forment le premier tour ("subBytes", "shiftRows" et
"mixColumns"), sont complètement calculables de l'extérieur.
Autrement dit, la partie "secrète" de l'AES ne peut que commencer par
une injection d'une valeur dérivée de la clé, et terminer par une
autre injection du même type. En enlevant le XOR avec la première clé,
en fait, on enlève un tour d'AES, du point de vue sécurité...
Dans le même genre, l'algorithme DES (prédécesseur de l'AES) commence
par une permutation de bits parfaitement fixée et indépendante de
la clé, et termine par une autre permutation du même type. Ces deux
permutation étant calculable et inversibles sans connaissance de la clé,
on les ignore complètement dans la pratique pour tout ce qui est analyse
de sécurité.
je suis en train potasser sur des annales de crypto et je bloque sur une question :
"Dites pourquoi on opere, en debut de chiffrement avec l'AES, un ou-exclusif entre le bloc clair et la clé de tour."
Intuitivement ce premier AddRoundKey ajoute une securité suplémentaire mais quel difference au final avec les n tours de l'AES sans ce XOR ???
L'attaquant peut, par définition, faire tout ce qui ne nécessite pas connaissance de la clé. Sans le XOR avec la clé, les trois opérations suivantes, qui forment le premier tour ("subBytes", "shiftRows" et "mixColumns"), sont complètement calculables de l'extérieur.
Autrement dit, la partie "secrète" de l'AES ne peut que commencer par une injection d'une valeur dérivée de la clé, et terminer par une autre injection du même type. En enlevant le XOR avec la première clé, en fait, on enlève un tour d'AES, du point de vue sécurité...
Dans le même genre, l'algorithme DES (prédécesseur de l'AES) commence par une permutation de bits parfaitement fixée et indépendante de la clé, et termine par une autre permutation du même type. Ces deux permutation étant calculable et inversibles sans connaissance de la clé, on les ignore complètement dans la pratique pour tout ce qui est analyse de sécurité.