Sécurité du mode compteur AES par rapport au mode CBC

Evgeni Vaknin 09/05/2017. 1 answers, 401 views
aes cbc ctr nonce

Pour que l'AES-CBC soit sécurisé au CPA, l'IV utilisée doit être sélectionnée au hasard pour chaque paquet. Si la IV est prévisible que le cryptage n'est pas sécurisé par CPA. Est-ce la même chose pour le mode AES-CTR? c'est-à-dire, pour le mode AES-CTR, le premier compteur doit être aléatoire ou peut-être un nonce? Merci

1 Answers


Patrick K 07/31/2017.

L'exigence pour les blocs d'entrée AES-CTR est qu'ils doivent être unique pendant la durée de vie d'une clé. Dans la plupart des cas, un nonce aléatoire de 96 bits est utilisé avec un compteur 32 bits qui commence à 0. Si le même bloc d'entrée pour AES-CTR se produit deux fois, AES-CTR n'est plus sécurisé au CPA. Dans ce cas, cela peut être dû à un contre-dépassement après $ 2 ^ {32} $ blocks ou à la collision de nonces 96bit choisis au hasard (paradoxe d'anniversaire: 50% de chance après $ \ sqrt {2 ^ {96}} $ messages. Considérez le cas suivant:

Deux messages distincts à 1 bloc $ P $ et $ P '$ sont envoyés sous la même clé $ K $ (qui pourrait être négociée au préalable) et avec le même nonce $ N $. L'attaquant sait que les textes de chiffrement associés $ C $ et $ C '$ ont été calculés par XOR avec le flux de clé (basé sur le nonce et le compteur):

$ C = P \ oplus E_K (N, 0) $

$ C '= P' \ oplus E_K (N, 0) $

Alors l'attaquant peut simplement xor les textes de chiffrement

$ C \ oplus C '= P \ oplus E_K (N, 0) \ oplus P' \ oplus E_K (N, 0) = P \ oplus P '$

et il obtient la «distance» entre les deux textes simples. En raison de redondances dans la langue anglaise, il pourrait être en mesure de déterminer $ P $ et $ P '$.

Ce problème est également connu sous le nom de "pad double". Une fois que le même flux de clés est XORed avec le texte en clair, nous avons des problèmes. Par conséquent, il est important que l'entrée pour le cryptage AES soit unique pendant la durée de vie d'une clé. Il ne doit pas être imprévisible, juste unique.

5 comments
Evgeni Vaknin 07/31/2017
par la déclaration "2 ^ 32 messages" Je pense que vous voulez dire 2 ^ 32 blocs de 16 octets chacun dans AES? si c'est le cas, que 2 ^ 32 blocs temps est 2 ^ 32 * 128 bits, ce qui est en 10Gbps, environ 1 minute ... donc chaque 1 minute un algorithme d'échange de clés doit être exécuté afin de configurer une nouvelle clé et nonce ?
1 Patrick K 07/31/2017
Oui tu as raison. J'ai édité la réponse. Si vous avez un nonce statique, alors vous devrez faire un échange de clés toutes les minutes dans ce cas. Mais puisque le nonce est habituellement changé avec chaque message, vous êtes limité à des messages d'une longueur maximum de $ 2 ^ {32} \ cdot128 $ bits. Le nombre maximal de messages pouvant être envoyés sous une clé donnée est limité par le paradoxe anniversaire. Si le nonce 96 bits est choisi uniformément au hasard pour chaque message, la probabilité d'une collision nonce est $ \ approx 0.5q ^ 2/2 ^ {96} $ pour q messages. Si vous voulez que ce terme soit au plus 1%, votre $ q_ {max} = 4 \ cdot10 ^ {13} $.
Evgeni Vaknin 07/31/2017
Que se passe-t-il si je n'utilise pas de pseudo aléatoire, plutôt que j'utilise une valeur aléatoire pour la valeur initiale de nonce et que j'augmente chaque paquet? Par exemple, disons que chaque paquet contient moins de 256 blocs AES (128 bits chacun), et que le compteur pour AES-CTR est composé de nonce de 120 bits, initialisé aléatoirement lorsque la clé est échangée, et que dans le paquet 8 bits compteur est utilisé pour compter les blocs de 128 bits. Et chaque nouveau paquet, (continuer dans le prochain commentaire)
Evgeni Vaknin 07/31/2017
J'incrémente le nonce de 1 et efface le compteur de 8 bits. Dans ce cas, le paradoxe de l'anniversaire n'est pas pertinent, car la collision est impossible (en supposant que je remplace la clé avant l'expiration du compteur de 120 bits du nonce)
1 Patrick K 08/01/2017
Oui, si vous vous assurez de ne jamais réutiliser la même paire (entrée-bloc, clé) pour la génération de séquences de clés, alors tout va bien. (bien sûr en supposant que la clé est gardée secrète et choisie de manière aléatoire)

Related questions

Hot questions

Language

Popular Tags