Warum ist das Verschlüsseln mit demselben One-Time-Pad nicht gut?


20

Um eine Nachricht zu verschlüsseln mit einem one-time-pad Schlüssel tun Sie .m1kEnc(m1,k)=m1k

Wenn Sie dasselbe , um eine andere Nachricht zu verschlüsseln, erhalten Sie , und wenn Sie Xoder der beiden Chiffretexte ausführen, erhalten Sie km2Enc(m2,k)=m2k

(m1k)(m2k)=m1m2

OK, es gibt ein Informationsleck, weil Sie lernen , aber warum ist es nicht sicher? Ich kann lernen (sagen), wenn ich kenne . Warum ist es also falsch, zweimal zu verwenden?m1m2m1m2k


Ja, das ist Seeding. Hauptsächlich die Debatte über die Grenze zwischen crypto.se und cs.se.
Ran G.

Bitte lesen Sie hier für eine Diskussion der verwendeten Tags.
Raphael

Ich erinnere mich, dass ich eine Visualisierung gesehen habe, die es wirklich klar macht, aber ich kann es jetzt nicht finden. Weiß jemand, wovon ich rede? (Ich hoffe, dass ich es nicht mit einem anderen Kryptobild wie EZB-Linux-Pinguin usw. verwechsle.)
Ran G.

1
@RanG. : richtig - die entsprechende crypto.se-frage lautet bei einmalige schlüsselwiederverwendung nutzen?
David Cary

Antworten:


14

Ich kann lernen, wenn ich m 2 kenne .m1m2

Genau das ist das Problem - wenn Sie denselben Schlüssel wiederverwenden und jemand Zugriff auf eine Nachricht hat, die Sie sowohl im Klartext als auch in verschlüsselter Form verschlüsselt haben, kann er diesen verwenden, um Ihren Schlüssel zu finden:

(m2k)m2=k

Als alternatives Szenario können die Angreifer, wenn Sie immer wieder denselben Schlüssel verwenden, möglicherweise nur Teile verschiedener verschlüsselter Nachrichten erraten, und bei jeder erfolgreichen Vermutung wird ein Teil des Schlüssels , sodass im Laufe der Zeit immer mehr der Schlüssel k angezeigt wird Schlüssel wird aufgedeckt.k

Diese allgemeine Strategie zum Unterbrechen eines Kryptosystems ist als Klartextangriff bekannt . Viele Systeme, wie AES und RSA, gelten als sicher gegen diese Angriffe. Ein einmaliges Pad wird jedoch völlig unsicher, es sei denn, für jede Verschlüsselung wird ein neues Pad verwendet, weshalb sie als "einmalige Pads" bezeichnet werden.


11

Es ist gerade aus dem von Ihnen genannten Grund unsicher - es gibt einige Informationslecks.

Grundsätzlich führt dies zu einer einfachen statistischen Analyse, wenn Sie Annahmen zu Klartexten haben (englischer Text, Dateien mit bekannter Struktur usw.). Wahrscheinlich ändert eine zweimalige Verwendung nichts an der Zweckmäßigkeit des Angriffs, aber eine mehrmalige Verwendung mit einem nicht zufälligen Klartext zeigt schließlich genug Informationen, um den Schlüssel wiederherzustellen.

Wenn Sie es nur zweimal verwenden können , haben Sie auch die Möglichkeit, es nur einmal zu verwenden. Die Einschränkung besteht darin, dass diese Einmal-Pads nicht potenziell unbekannt und im Laufe der Zeit schädlich oft verwendet werden dürfen.

m1m2

Bekannte Klartextangriffe sind ziemlich verbreitet. Es ist relativ einfach, einen Verschlüsselungsmechanismus zu erzwingen, um etwas zu verschlüsseln, das Sie a priori kennen. Wenn nicht, können Sie normalerweise vernünftige statistische Annahmen treffen.


Darüber hinaus haben One-Time-Pads die Eigenschaft, dass Sie, wenn Sie den Chiffretext und sogar einen Teil des Klartextes kennen, den entsprechenden Teil des Schlüssels sofort wiederherstellen können. Dies bedeutet, dass ein Teil aller künftigen Nachrichten, die mit demselben Pad verschlüsselt wurden, tatsächlich in der E-Mail gesendet werden klar (erleichtert das Erraten von mehr Klartext, enthüllt mehr Schlüssel usw.). Wenn Sie viele Dinge wie E-Mail- oder HTTP-Anforderungen verschlüsseln, kann der Angreifer aufgrund der Struktur dieser Protokolle fast immer einen Teil des Klartextes erkennen.
Ben

6

(m1k)(m2k)=m1m2

Log226=4.7

Wenn Sie ein einmaliges Pad zweimal verwenden möchten, müssen Sie zuerst Ihre Nachricht komprimieren. Und selbst dann, wenn Sie keinen nahezu perfekten Komprimierungsalgorithmus verwenden und das einmalige Pad mehrmals verwenden, bleibt genügend Entropie, um die Nachrichten theoretisch wiederherzustellen. Ich weiß nicht, wie schwer es in der Praxis sein würde.


4

m1m2m1m2

Tatsächlich ist es für viele Fälle sehr einfach. Hier ist eine einfache Visualisierung.


2

Hier ist eine intuitive Darstellung des Ansatzes ohne Rückgriff auf Mathematik. Angenommen, Sie haben zwei verschlüsselte Nachrichten, die mit demselben Zeitblock verschlüsselt wurden.

  1. Erraten Sie ein Wort oder eine Phrase, die in einer der Nachrichten enthalten sein kann. Sagen wir die Phrase "Wetterbericht"
  2. Beginnen Sie mit der Meldung 1, nehmen Sie an, dass "Wetterbericht" an der ersten Buchstabenposition auftritt.
  3. Berechnen Sie die ersten 14 Zeichen des One Time Pads zurück.
  4. Entschlüsseln Sie die ersten 14 Zeichen der Nachricht 2 mit dem zurückgerechneten OTP.
  5. Wenn der Klartext wie "Gobble-Di-Gook" aussieht, kehren Sie zu Schritt 2 zurück und wiederholen Sie den Vorgang an der zweiten Buchstabenposition. Wenn Sie jedoch einen aussagekräftigen Text erhalten (z. B. "Guten Morgen I", dann herzlichen Glückwunsch), haben Sie die ersten 14 Zeichen des OTP (und die ersten 14 Zeichen jedes Buchstabens) berechnet.
  6. Wenn Sie am Ende von Nachricht 1 angekommen sind, ohne etwas anderes als zufällige Buchstaben zu werfen, können Sie daraus schließen, dass der Ausdruck "Wetterbericht" in Nachricht 1 nicht vorkommt. Kehren Sie zu Schritt 1 mit einem anderen Ausdruck wie "Lieber Colonel" zurück "
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.