WikiDer > Einmal-Pad
Einmal-Pad, manchmal auch als OTP, Vernam-Chiffre, einmalige Blockchiffre oder die perfekte Verschlüsselung bezeichnet, ist die einzige bewährte Methode für only Kryptographie die bei richtiger Anwendung eine unzerbrechliche Verschlüsselung ermöglicht. Der Einmalblock wurde als Papier-Bleistift-Methode nach dem Original von het entwickelt Gilbert Vernam im 1917 entwickeltes System zur Verwendung mit Telex-Verkehr. Der Code scheint jedoch älter zu sein und stammt aus dem Jahr 1882[1]. Es wird in einem Buch von Frank Miller, einem Bankmanager, beschrieben.
Ursprung
Mit dem Vernam-System wird jeder 5-Bit-ITA (International Telegraph Alphabet) Telexcode (eine Ableitung des Baudot-Code für Telegrafie) modular 2 zu einem 5-Bit-Schlüsselcode hinzugefügt, der in einen geschlungenen Papierstreifen (Telexband) gestanzt ist, das einmalige Schlüsselband. Jedes Zeichen des Textes wurde mit dem nächsten Zeichen im Schlüsselband verschlüsselt. Einige Zeit später, ein Kapitän der US-Signalkorps dass der Schlüssel aus ganz beliebigen Zeichen besteht, solange die Nachricht gesendet werden soll. Sowohl Sender als auch Empfänger hatten ein langes Band mit genau den gleichen Schlüsselzeichen. Dieser Papierstreifen verlief parallel zum Telexband mit dem Sender am Sender Klartext, am Empfänger mit dem Band mit dem Geheimtext. Da der Telexcode im Wesentlichen a binär Anzahl von 5 Stellen könnte die Modulo-2-Addition leicht durch die LogikfunktionXOR (exklusives ODER, exklusives ODER). Vernam erreichte dies (ohne zu wissen, dass es sich um den Modulus 2 oder die erwähnte Logikfunktion handelte) mit einem Dutzend Relais (elektromagnetische Schalter). Durch die gleiche Vorgehensweise mit dem Geheimtext und dem Schlüssel wurde der ursprüngliche Klartext wiederhergestellt. Vernams Erfindung war die Grundlage für alle späteren Stift- und Papierversionen, die auf dem gleichen Prinzip beruhten. Obwohl die Unzerbrechlichkeit des One-Time-Pads nicht nur theoretisch bewiesen ist, sondern das System auch in der Praxis anwendbar ist, sind der lange Schlüssel und die Schlüsselverwaltung ein großes Problem.
Eigenschaften
Um die theoretische Unzerbrechlichkeit des Einmalpolsters zu realisieren, müssen mehrere Bedingungen erfüllt sein.
- Die Länge des Schlüssels muss mindestens so lang sein wie die zu verschlüsselnden Daten.
- Der Schlüssel kann nur aus wirklich zufälligen Zeichen bestehen.
- Ein Schlüssel darf nur einmal zum Verschlüsseln einer Nachricht verwendet werden und muss nach Gebrauch vernichtet werden.
- Es dürfen nur zwei Kopien eines Schlüssels existieren, eine für den Sender und eine für den Empfänger der Daten.
Unzerbrechlich ist sie nur, wenn eine Verschlüsselung all diese Bedingungen erfüllt. Schließlich kann jeder Buchstabe einer Nachricht durch einen beliebigen Buchstaben chiffriert werden, was zu einem beliebigen Buchstaben führt. Auch hier kann man nicht alle Möglichkeiten des Schlüssels ausprobieren, das sogenannte Brute-Force-Angriff, da jeder mögliche Schlüssel zu einer anderen Lösung führen kann. Beispielsweise kann man eine Nachricht so entschlüsseln, dass das Ergebnis eine ganz andere Nachricht ist. Wenn wir beispielsweise das Wort HELLO mit dem Schlüssel XTOVB verschlüsseln, erhalten wir ETZGP. Wenn wir jedoch ETZGP mit dem falschen Schlüssel EEKCR entschlüsseln, erhalten wir das Wort APPLE im Klartext. Somit kann jede verschlüsselte Nachricht in jedem beliebigen Klartext entschlüsselt werden, solange man den "richtigen" falschen Schlüssel verwendet. Es gibt also keine Möglichkeit zu wissen, ob die Nachricht richtig entschlüsselt wurde.
In der Praxis kann One-Time-Pad nur dann zur sicheren Datenübertragung eingesetzt werden, wenn zuvor ein Schlüssel absolut sicher, in der Regel durch die betroffenen Personen selbst oder einen Kurierdienst, zur Verfügung gestellt wurde. Bei richtiger Anwendung und Anwendung der Allgemeinen Geschäftsbedingungen ist one-time pad die einzige existierende nachweislich absolut sichere Verschlüsselung, die gegen alles Mögliche resistent ist kryptoanalytisch Attacke. Dies wurde bewiesen in Claude Shannons Abhandlung "Kommunikationstheorie von Geheimhaltungssystemen". Das System war während der Kalter Krieg, für sichere Kommunikation zwischen Washington und Moskau, die sogenannte Washington-Moskau-Hotline.
Praxisbeispiele
Das logische XOR kann nur auf binäre Zeichen angewendet werden. Daher wird eine Modulo-(oder Modulo-)Berechnung verwendet. Dazu wird das Ergebnis einer Berechnung durch die Modulzahl dividiert, der verbleibende Rest ist das gewünschte Ergebnis.
Beispiel: 24×26(mod9)=624/9=69, Rest 3. Der Rest 3 ist also das Ergebnis der Rechnung. Diese Art eine Straße-Berechnungen, insbesondere bei Exponentiationsrechnungen, führen zu einem Ergebnis, das nicht auf die ursprünglichen Zahlen zurückgeführt werden kann; sie sind unter anderem (zusammen mit XOR-Operationen) in modernen Verschlüsselungssystemen weit verbreitet. Ein alltägliches Beispiel für eine Modulberechnung ist die Zeitbestimmung nach einer bestimmten Anzahl von Stunden. Es ist jetzt 3 Uhr nachmittags, wie spät ist es nach 59 Uhr? Berechnung:
15 59(mod24)=74/24=3, Rest 2. Es ist dann also 2 Uhr morgens (am dritten Tag nach heute).
Im ersten Beispiel verwenden wir ein einmaliges Pad basierend auf Zahlen. Als Schlüssel wählen wir eine Reihe völlig zufälliger Zahlen von 00 bis 99. Wir geben jedem Buchstaben einen Wert mit A=00, B=01 usw. bis Z=25. Beim Verschlüsseln rechnen wir mit dem trennen Zahlen: die entsprechend Ziffern des "Wertes" der Buchstaben des Klartext und diejenigen des Schlüssels werden modulo 10 (mod10) hinzugefügt; dies wird leicht erreicht, indem man die positive Übertragung weglässt, die hier die gleiche Wirkung hat wie das Teilen. Zum Beispiel: 09 05=04 und nicht 14! und 24 98=12. Beachten Sie, dass die zwei Ziffern jedes "Werts" separat sind hinzugefügt; dies kann auch hier von links nach rechts erfolgen.
Um die Nachricht zu entschlüsseln, ziehen wir den Schlüssel vom Geheimtext, wieder modulo 10, also ohne negative Übertragung (zB 25-59=76) und dann die Zahlen wieder in Buchstaben umwandeln.
| Text: | d | ich | T | ich | so | G | E | huh | E | ich | ich | |
| 03 | 08 | 19 | 08 | 18 | 06 | 04 | 07 | 04 | 08 | 12 | (schauen Sie in der Tabelle nach) | |
| Schlüssel: | 15 | 84 | 78 | 39 | 66 | 95 | 20 | 16 | 33 | 57 | 48 | |
| Ergebnis: | 18 | 82 | 87 | 37 | 74 | 91 | 24 | 13 | 37 | 55 | 50 | |
| Nummerntext: | 18828 73774 91241 33755 50 | |||||||||||
Als Beispiel für die Entzifferung nehmen wir die zweite Position: die Nummernschild 82 ist, subtrahieren wir den entsprechenden Schlüsselwert 84 mod10 (wieder für jede Position separat):
82-84(mod10)=08, das ist genau der Wert des zweiten Buchstabens im Klartext.
Im folgenden Beispiel verwenden wir Schlüsselbuchstaben anstelle von Zahlen. Der Schlüssel besteht hier also aus einer Reihe zufälliger Buchstaben. Auch hier geben wir jedem Buchstaben einen Wert mit A=00, B=01 usw. bis Z=25. Text- und Schlüsselwerte werden wieder addiert, diesmal Modul 26 (hier der ganze Wert, also nicht die Zahlen einzeln) und mit Übergabe (wenn das Ergebnis größer als 25 ist, subtrahieren wir 26, was hier den gleichen Effekt hat wie dividieren) . Schließlich wandeln wir die Zahlen in Buchstaben um. Um die Nachricht zu entschlüsseln, wandeln wir Geheimtext und Schlüssel in Zahlen um und subtrahieren den Schlüssel vom Geheimtext, wiederum mit Modulo 26 (wenn das Ergebnis kleiner als 0 ist, addieren wir 26).
| Text: | d | ich | T | ich | so | G | E | huh | E | ich | ich | |
| 03 | 08 | 19 | 08 | 18 | 06 | 04 | 07 | 04 | 08 | 12 | ||
| Schlüssel: | X | V | huh | E | SIE | W | Nein | Ö | p | G | d | |
| 23 | 21 | 07 | 04 | 20 | 22 | 13 | 14 | 15 | 06 | 03 | ||
| Ergebnis: | 26 | 29 | 26 | 12 | 38 | 28 | 17 | 21 | 19 | 14 | 15 | (schauen Sie in der Tabelle nach) |
| Mod 26 = | 00 | 03 | 00 | 12 | 12 | 02 | 17 | 21 | 19 | 14 | 15 | (Optional) |
| Nummerntext: | ein | d | ein | ich | ich | C | R | V | T | Ö | p | |
| Nummerntext: | ADAMM CRVTO P | |||||||||||
Um die Arbeit zu vereinfachen, können wir eine Vigenère-Tabelle (tabula recta) verwenden, um die Buchstaben nachzuschlagen, was ziemlich umständlich ist. Es kann viel einfacher sein: Wir machen die folgende Hilfstabelle, dann müssen wir den Modul 26 nicht durch Subtraktion von 26 bzw. summieren, denn wir können den Brief direkt in der Tabelle lesen. Die Tabelle kann sowohl zum Verschlüsseln als auch zum Entschlüsseln verwendet werden.
| Brief | ein | B | C | d | E | f | G | huh | ich | J | k | l | ich | Nein | Ö | p | Q | R | so | T | SIE | V | W | X | Ja | z |
| Wert | 00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| mod - | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 |
| mod | -26 | -25 | -24 | -23 | -22 | -21 | -20 | -19 | -18 | -17 | -16 | -15 | -14 | -13 | -12 | -11 | -10 | -09 | -08 | -07 | -06 | -05 | -04 | -03 | -02 | -01 |
Es gibt viele andere Möglichkeiten, One-Time-Pad anzuwenden, aber sie basieren immer auf einem zufälligen Schlüssel, der den zu verschlüsselnden Daten hinzugefügt wird.
Probleme bei der Nutzung
Beim Auftragen von Einmalpads gibt es zwei Hauptprobleme, die seine Verwendung erschweren und sehr teuer machen:
- Ein erstes Problem ist technischer Natur und beinhaltet die Erzeugung einer großen Anzahl von Zufallszahlen oder Zeichen für den Schlüssel. Um absolute Zufälligkeit zu erzielen, kann man diese Sequenzen nicht mit einfachen mechanischen oder elektronischen Mitteln erzeugen. Die Produktion großer Mengen dieser Zufallsdaten ist daher ein kostspieliges Unterfangen.
- Das zweite Problem ist praktischer Natur. Da jeder Schlüssel die gleiche Größe wie die zu verschlüsselnden Daten haben muss und nur einmal verwendet werden darf, werden eine Vielzahl unterschiedlicher Schlüssel benötigt, die Sender und Empfänger einer Nachricht sicher zur Verfügung gestellt werden müssen. Daraus resultieren enorme logistische und sicherheitstechnische Probleme, wenn viel Kommunikation abgesichert werden muss.
In der Praxis wurde dies weitgehend durch mehrfach nummerierte, lange Bänder bzw. Verwenden Sie eine große Anzahl von Seiten mit Tastencodes. Beim Fernschreiben wurde bei der nächsten Nachricht der Schlüsseltext einfach an der Stelle fortgesetzt, an der die vorherige Nachricht geendet hatte. Dies wurde beispielsweise dadurch erzwungen, dass der das Band lesende Leser mit den Tasten mit einer Klinge versehen wurde, die den Transportstempel nach dem Lesen einer Position schneidet. Dieses Zeichen und alle vorherigen Zeichen konnten daher automatisch nicht mehr verwendet werden. Mit den "Pads" wurden alle bereits benutzten Seiten (sie wurden teilweise auch als Arbeitsseiten angelegt) vernichtet; Also fingen sie auf der nächsten Seite an. In beiden Fällen war ein großer Vorrat an Schlüsseln vorhanden.
Anwendungen
Aufgrund der praktischen Schwierigkeiten beim korrekten Anbringen eines Einmal-Pads ist seine Verwendung sehr eingeschränkt. Sie dienen unter anderem der Kommunikation zwischen Geheimdienste und deren Außendienstmitarbeiter. Die Einmal-Pad-Tasten, oft sehr kleine Hefte oder Zahlenblätter, manchmal auf Mikrofilme, kann leicht versteckt werden.
Bis Anfang der 1980er Jahre dienten sie auch der Absicherung des militärischen und diplomatischen Fernschreibverkehrs. Die Fernschreiben verwendeten das ursprüngliche Prinzip von Vernam mit den einmaligen Bändern. Später folgten elektronische Systeme wie Computer- und Telefonverbindungen, die eine elektronisch gespeicherte Einmal-Pad-Taste verwendeten.
Die enormen Kosten für die sichere Herstellung, Verteilung, Verwaltung und Vernichtung einer riesigen Anzahl von einmaligen Tonbändern und Blöcken könnten nur von Regierungsbehörden wie Militär, Geheimdienst und Diplomatie getragen werden. Mit der exponentiellen Zunahme der Kommunikation wurde der großflächige Einsatz von One-Time-Pads unhaltbar und die Menschen wechselten zu den praktischeren, aber zugegebenermaßen weniger sicheren kryptografischen Geräten und Computeralgorithmen.
Eine Ersatzalternative zum One-Time-Pad sind die "Stream Chiffren" oder Flussverschlüsselung, wobei über einen Algorithmus eine Pseudo-Zufallszahlenfolge erzeugt wird. Beginnen beide Parteien mit dem gleichen Parameter in diesem Algorithmus (und der muss noch einmal kommuniziert werden), ist das Ergebnis exakt gleich. Diese Strömungen nähern sich nur der tatsächlichen Zufälligkeit und erfüllen somit nie die Bedingungen, unzerbrechlich zu sein. Die dafür verwendeten Algorithmen bieten oft eine Methode, um dies zu fast 100 % zu erreichen. Es wird oft fälschlicherweise angenommen, dass man auf Computern mit der Zufallsfunktion ein One-Time-Pad erstellen kann, wenn diese oft einen Algorithmus verwenden, der nicht darauf ausgelegt ist, große Serien von Zufallszahlen zu erzeugen. Moderne Computersysteme haben auch verbesserte Algorithmen. Die einzige bisher bekannte Möglichkeit besteht darin, die Schlüssel über einen elektronischen Rauschgenerator mit etwas mehr Elektronik herzustellen. Dies setzt voraus, dass die Ausgabe völlig willkürlich ist, sofern die Schaltung und ihr Aufbau eine Reihe von Bedingungen erfüllen.
Aufgrund seiner absoluten Sicherheit wird One-Time-Pad jedoch weiterhin in Kommunikationen verwendet, bei denen Sicherheit und Geheimhaltung absolute Priorität haben. Allerdings sind die Anwendungen sehr begrenzt. Dies ist zum Beispiel bei den sogenannten Hotlines der großen Weltführer und streng geheimer Kommunikation in Geheimdiensten und Militärs. Während des Kalten Krieges wurde das System noch für die Kommunikation zwischen Washington und Moskau verwendet.
Schlangenöl
In der Praxis gibt es viele Beispiele für Verschlüsselungen, die behaupten, unzerbrechlich zu sein, aber die notwendigen Anforderungen nicht erfüllen. Es gibt zum Beispiel viele Software auf dem Markt, deren Hersteller behaupten, das unzerbrechliche One-Time-Pad- oder Vernam-System zu verwenden, aber in Wirklichkeit keine wirklich zufälligen Daten generieren, einen zu kleinen Schlüssel verwenden oder mit dem mehrfach verschlüsseln gleicher Schlüssel. Außerdem macht es keinen Sinn, Dateien einmalig mit einem Einmalschlüssel gleicher Größe zu verschlüsseln, der sicher verwahrt oder an den Empfänger übertragen werden muss. Sie können die Datei auch sicher speichern oder übertragen.
Da ist zum Beispiel die klangvolle Geschichte der Schlüsselverwaltungslösung mit zwei Schlüsseln. Alice sendet ihre Nachricht verschlüsselt mit Schlüssel A. Bob kann sie nicht entschlüsseln, verschlüsselt sie aber erneut mit seinem eigenen Schlüssel B und sendet sie an Alice zurück. Sie entschlüsselt die Nachricht mit ihrem Schlüssel A und sendet sie erneut an Bob. Da die Nachricht jetzt nur noch mit Schlüssel B verschlüsselt ist, kann Bob sie immer noch entschlüsseln, ohne die geheimen Schlüssel auszutauschen. Auf den ersten Blick wurde hier zwar One-Time-Pad ohne das Problem der Schlüsselverteilung aufgebracht, jedoch geht der Kite nicht auf. Alice sendet die Nachricht einmal mit ihrem Schlüssel und einmal mit Bobs Schlüssel, und Bob wird sie mit beiden Schlüsseln verschlüsselt zurücksenden. Jeder Schlüssel wurde zweimal verwendet, erfüllt also nicht mehr die obligatorischen Bedingungen und die Nachricht kann gebrochen werden:
Taste B = Nachricht(A B) - Nachricht(A) & Taste A = Nachricht(A B) - Nachricht(B)
Aber es gibt noch etwas anderes: Die sogenannte "entschlüsselte" Nachricht enthält oft reinen Unsinn, weil ein klassisches symmetrisches Verschlüsselungssystem verwendet wurde. Hier ist die Sache: In symmetrischen Systemen wird bei der Entschlüsselung zuerst umgekehrt, was bei der Verschlüsselung zuletzt getan wurde. Es ist wie beim An- und Ausziehen: Beim Anziehen werden zuerst die Socken angezogen, dann die Schuhe; beim ausziehen werden zuerst die schuhe ausgezogen, dann die socken. Wie deutlich zu sehen ist, ist dies oben nicht der Fall. Achtung. Wenn eines der oben genannten Einmal-Pad-Systeme mit Modulo-Rechnungen verwendet wird, bei denen A und B ungleiche Schlüssel haben, spielt es keine Rolle, in welcher Reihenfolge Sie die verschiedenen Additionen und Subtraktionen durchführen. Die entschlüsselte Nachricht ist dann korrekt; Die zweimalige Verwendung eines Schlüssels ist offensichtlich falsch.
Es gibt viele weitere Variationen zu diesem Thema und Beispiele für ausgesprochen schlechte kryptografische Systeme und Software, die gut gemeinte "unzerbrechliche" Sicherheit bieten oder auch nicht, während mindestens eine der zwingenden Bedingungen ignoriert wird. Diese Programme sind bekannt unter dem Begriff Schlangenöl, oder Schlangenöl, benannt nach den Produkten von Quacksalbern.
Siehe auch
- Kryptographie
- Handziffer
- Nummernstationen (Intelligente Nutzung von One-Time-Pad über Kurzwellensender)
- Einmaliger Code
Externer Link
- Ausführlich Beschreibung eines Zeitblocks mit Beispielen und Bildern auf Verschlüsseler und Kryptographie
| Quellen, Anmerkungen und/oder Verweise |