Pourquoi le cryptage avec le même tampon unique n'est-il pas bon?

20

Pour crypter un message avec une touche à pavé unique vous faites .m1kEnc(m1,k)=m1k

Si vous utilisez le même pour crypter un message différent vous obtenez , et si vous effectuez Xor des deux textes chiffrés, vous obtenez km2Enc(m2,k)=m2k

(m1k)(m2k)=m1m2

donc, OK, il y a une fuite d'informations car vous apprenez , mais pourquoi n'est-il pas sécurisé? Je n'ai aucun moyen d'apprendre (par exemple) moins de connaître . Alors pourquoi est-ce mal d'utiliser deux fois ??m1m2m1m2k

A sonné.
la source
oui, c'est l'ensemencement. Principalement, semant le débat sur la frontière entre crypto.se et cs.se.
Ran G.
Veuillez voir ici pour une discussion des balises utilisées.
Raphael
Je me souviens avoir vu une visualisation qui le rend vraiment clair, mais je ne la trouve pas maintenant. Est-ce que quelqu'un sait de quoi je parle? (J'espère que je ne la confondrai pas avec une autre image cryptographique telle que linux-pinguin ECB, etc.)
Ran G.
1
@A sonné. : à droite - la question correspondante de crypto.se est à Profiter de la réutilisation unique des clés de pavé?
David Cary
Projet Venona
sdcvvc

Réponses:

14

Je n'ai aucun moyen d'apprendre (disons) moins de connaître m 2 .m1m2

C'est exactement le problème - si vous réutilisez la même clé et que quelqu'un a accès à un message que vous avez chiffré à la fois en clair et sous forme chiffrée, il peut l'utiliser pour trouver votre clé:

(m2k)m2=k

Comme scénario alternatif, si vous utilisez la même clé encore et encore, les attaquants peuvent être capables de deviner seulement des morceaux de divers messages cryptés, et chaque supposition réussie révèle un morceau de la clé , de sorte qu'au fil du temps de plus en plus de la clé est révélée.k

Cette stratégie générale pour briser un cryptosystème est connue sous le nom d'attaque connue en texte brut . De nombreux systèmes, comme AES et RSA, sont censés être protégés contre ces attaques. Mais un pad à usage unique devient totalement insécurisant contre eux à moins qu'un nouveau pad ne soit utilisé pour chaque cryptage, c'est pourquoi ils sont appelés "pads à usage unique".

Carl Mummert
la source
11

Ce n'est pas sûr précisément pour la raison que vous mentionnez - il y a une fuite d'informations.

Fondamentalement, si vous avez des hypothèses sur les textes en clair (texte anglais, fichiers avec une structure connue, etc.), cela conduit à une analyse statistique facile. L'utiliser probablement deux fois ne modifie pas de manière significative le caractère pratique de l'attaque, mais l'utiliser plusieurs fois avec un texte en clair non aléatoire, révèle finalement suffisamment d'informations pour récupérer la clé.

Enfin, si vous avez la possibilité de ne l'utiliser que deux fois , vous avez également la possibilité de ne l'utiliser qu'une seule fois - la restriction est que ces tampons à usage unique ne doivent pas être utilisés potentiellement inconnus et au fil du temps, endommageant le nombre de fois.

À un extrême, si vous savez (texte brut connu) que le n'est qu'une chaîne nulle de la longueur du pad, vous avez remis la clé à l'attaquant avant de calculer le m 2 .m1m2

Les attaques connues en texte brut sont assez courantes, il est relativement facile de forcer un mécanisme de chiffrement pour chiffrer quelque chose que vous connaissez a priori. Sinon, vous pouvez généralement faire des hypothèses statistiques raisonnables.

qdot
la source
De plus, une fois, les pads ont la propriété que si vous connaissez le cryptage et même une partie du texte en clair, vous pouvez immédiatement récupérer la partie correspondante de la clé, ce qui signifie qu'une partie de tous les futurs messages cryptés avec le même pad sont effectivement envoyés dans le clair (ce qui permet de deviner plus de texte en clair, de révéler davantage la clé, etc.). Si vous cryptez de nombreuses choses telles que des e-mails ou des requêtes HTTP, l'attaquant peut presque toujours connaître une partie du texte en clair simplement en raison de la structure de ces protocoles.
Ben
6

(m1k)(m2k)=m1m2

Journal226=4.7

Si vous souhaitez utiliser un bloc unique deux fois, vous devez d'abord compresser votre message. Et même dans ce cas, si vous n'utilisez pas un algorithme de compression presque parfait et que vous utilisez plusieurs fois le pavé unique, il restera suffisamment d'entropie pour récupérer théoriquement les messages. Je ne sais pas à quel point ce serait difficile dans la pratique.

Peter Shor
la source
4

m1m2m1m2

En fait, dans de nombreux cas, c'est très simple. Voici une visualisation simple.

A sonné.
la source
2

Voici une manière intuitive de représenter l'approche sans recourir aux mathématiques. Imaginons que vous ayez deux messages chiffrés qui ont été chiffrés par le même bloc de temps.

  1. Faites une supposition sur un mot ou une phrase qui peut être contenu dans l'un des messages. Disons la phrase "Météo"
  2. En commençant par le message 1, supposez que "Weather Report" se produit à la première position de la lettre.
  3. Recalculez les 14 premiers caractères du pavé unique.
  4. Déchiffrez les 14 premiers caractères du message 2 à l'aide de l'OTP recalculé.
  5. Si le texte en clair ressemble à gobble-di-gook, revenez à l'étape 2 et répétez à la position de la deuxième lettre. Cependant, si vous obtenez un texte significatif (par exemple "Bonjour I" puis félicitations, vous avez calculé les 14 premiers caractères du BdP (et les 14 premiers caractères de chaque lettre)
  6. Si vous arrivez à la fin du message 1 sans lancer autre chose que des lettres aléatoires, vous pouvez conclure que la phrase "Weather Report" ne se produit pas dans le message 1. Revenez à l'étape 1 avec une phrase différente telle que "Dear Colonel "
Johnno
la source