Frage

Um eine Nachricht zu verschlüsseln $ M_1 $ mit einem einmaligen Pad-Schlüssel $ k $ Sie machen $ ENC (M_1, K) = M_1 OPLUS K $.

Wenn Sie dieselbe $ k $ verwenden, um eine andere Nachricht zu verschlüsseln $ M_2 $ Sie erhalten $ ENC (M_2, K) = M_2 OPLUS K $, und wenn Sie XOR der beiden Chiffretext ausführen, erhalten Sie $$ (M_1 oplus k ) oplus (m_2 oplus k) = m_1 oplus m_2 $$

Also, OK, es gibt einige Informationen, weil Sie $ M_1 OPLUS M_2 $ lernen, aber warum ist es nicht sicher? Ich habe keine Möglichkeit, (sagen wir) $ m_1 $, es sei denn, ich kenne $ M_2 $. Warum ist es falsch, $ k $ zweimal zu verwenden?

War es hilfreich?

Lösung

Ich habe keine Möglichkeit, (sagen wir) $ m_1 $, es sei denn, ich kenne $ M_2 $.

Das ist genau das Problem - wenn Sie denselben Schlüssel wiederverwenden und jemand Zugriff auf eine Nachricht hat, die Sie sowohl in Klartext als auch in verschlüsseltem Formular verschlüsselt haben m_2 = k $$

Als alternatives Szenario können die Angreifer möglicherweise nur Teile verschiedener verschlüsselter Nachricht erraten, wenn Sie denselben Schlüssel immer wieder verwenden, und jede erfolgreiche Vermutung enthüllt ein Stück des Schlüssels $ k $, so dass im Laufe der Zeit immer mehr des Schlüssels wird enthüllt.

Diese allgemeine Strategie zum Brechen eines Kryptosystems ist als bekannt Bekannter Klartextangriff. Es wird angenommen, dass viele Systeme wie AES und RSA gegen diese Angriffe sicher sind. Aber ein einmaliges Pad wird völlig unsicher gegen sie, es sei denn, für jede Verschlüsselung wird ein neues Pad verwendet, weshalb sie als "einmalige Pads" bezeichnet werden.

Andere Tipps

Es ist unsicher, genau aufgrund des Grundes, warum Sie erwähnt werden - es gibt einige Informationslecks.

Wenn Sie Annahmen über Klartext (englischer Text, Dateien mit bekannter Struktur usw.) haben, führt dies im Grunde zu einer einfachen statistischen Analyse. Wahrscheinlich benutze es zweimal ändert die Praktikabilität des Angriffs nicht wesentlich, aber die Verwendung von ihm mit einem nicht randomischen Klartext ist schließlich genügend Informationen, um den Schlüssel wiederherzustellen.

Wenn Sie schließlich nur die Möglichkeit haben, es nur zu verwenden zweimal, Sie haben auch die Möglichkeit, es nur zu verwenden einmal -Die Einschränkung besteht darin, dass diese einmaligen Pads nicht potenziell unbekannt und im Laufe der Zeit schädige Male verwendet werden sollen.

Wenn Sie wissen (bekannt (bekannter Ebenen), dass das $ M_1 $ nur eine Nullstring der Länge des Pads ist, haben Sie dem Angreifer den Schlüssel übergeben, bevor $ M_2 $ berechnet wird.

Bekannte Angriffe mit einfachem Text sind ziemlich häufig. Es ist einigermaßen einfach, einen Verschlüsselungsmechanismus zu zwingen, um etwas zu verschlüsseln, von dem Sie wissen, dass er A-Priori kennt. Wenn nicht, können Sie normalerweise angemessene statistische Annahmen treffen.

Angenommen, Sie verwenden ein einmaliges Pad mit englischer Text und Sie verwenden ihn zweimal. Jetzt können Sie $ (m_1 oplus k) oplus (m_2 oPlus K) = M_1 oplus M_2 $ erhalten.

Der englische Text hat eine Entropie von 1,3 Bit pro Buchstaben. Der XOR von zwei Nachrichten hat 2,6 Bit pro Buchstaben. Es gibt 26 Buchstaben im Alphabet, so dass $ log_2 26 = 4,7 $ Bit pro Buchstaben enthält. Dies bedeutet, dass selbst wenn Sie zwei englische Texte einnehmen, es theoretisch genügend Informationen gibt, um beide Texte zu dekodieren. Darüber hinaus bin ich mir ziemlich sicher, dass ich gelesen habe, dass Cryptanalytiker dies in der Praxis tun können.

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

Die Sache ist, dass Sie, selbst wenn Sie nichts über $ M_1 $ und $ M_2 $ wissen, möglicherweise beide von $ m_1 oplus m_2 $ wiederherstellen können.

Tatsächlich ist es in vielen Fällen sehr einfach.Hier ist eine einfache Visualisierung.

Hier ist eine intuitive Art, den Ansatz ohne Rückgriff auf die Mathematik darzustellen. Nehmen wir an, Sie haben zwei verschlüsselte Nachrichten, die von demselben einmaligen Pad verschlüsselt wurden.

  1. Machen Sie eine Vermutung bei einem Wort oder einer Phrase, die in einer der Nachrichten enthalten sein kann. Nehmen wir an, der Ausdruck "Wetterbericht"
  2. Angenommen mit Meldung 1, gehen Sie an, dass "Wetterbericht" in der ersten Buchstabenposition auftritt.
  3. Backkalkulieren Sie die ersten 14 Zeichen des einmaligen Pads.
  4. Entschlüsseln Sie die ersten 14 Zeichen der Nachricht 2 mithilfe des rückwärtskalkulierten OTP.
  5. Wenn der Klartext wie Gobble-Di-Gook aussieht, kehren Sie zu Schritt 2 zurück und wiederholen Sie dies in der Position des 2. Buchstabens. Wenn Sie jedoch einen sinnvollen Text erhalten (zum Beispiel "Guten Morgen, ich" dann herzlichen Glückwunsch, haben Sie die ersten 14 Zeichen des OTP (und die ersten 14 Zeichen jedes Buchstabens) ausgearbeitet.
  6. Wenn Sie am Ende von Meldung 1 erreichen, ohne etwas anderes als zufällige Buchstaben aufzugeben, können Sie zu dem Schluss kommen "
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit cs.stackexchange
scroll top