Bei der Verschlüsselung nach Vernam — benannt nach dem Amerikaner Gilbert Vernam — hat der Schlüssel mindestens die gleiche Länge wie der zu verschlüsselnde Text. Da bei jedem Zeichen mit einem anderen Alphabet verschlüsselt wird, kann man dies als ein Sonderfall der polyalphabetischen Substitution auffassen. Sofern zwei Bedingungen eingehalten werden, ist es bis heute das einzige mathematisch nicht knackbare Verfahren:
Insbesondere der zweite Punkt wird oft mit der Begründung guter Geheimhaltung als nicht so wichtig erachtet. Dies ist aber falsch, denn selbst perfekte Geheimhaltung kann die Mathematik nicht austricksen. Schon ab der zweiten Verwednung eines Schlüssels besteht die Möglichkeit ohne Kenntnis des geheimen Schlüssels zu entschlüsseln (s.u.). Mit jedem weiteren Text wird es dann einfacher.
Der Nachteil des Verfahrens liegt in der permanenten Versorgung mit neuen Zufallszahlen und der sicheren Verteilung der geheimen Schlüssel an die beteiligten Partner. Mit zunehmendem Umfang der Kommunikation wird dies zu einem logistischen Problem. Bei wenigen Teilnehmern und zum Aufbewahen oder Teilen von Geheimnissen ist es aber immer noch das beste Verfahren.
Der eigentliche Rechenvorgang bei der Vernamverschlüsselung ist bestechend einfach, da es sich um eine einfache Addition (Kodierung: x ⊕ y) bzw. Subtraktion (Dekodierung: [x ⊕ y] ⊕ y = x ) von Ziffern handelt. Trotz der Einfachheit des Verfahrens wählt man in der Praxis zweckmäßigerweise zwei leicht voneinander verschiedene Verfahren, je nachdem ob von Hand oder mit dem Computer gearbeitet wird.
Das menschliche Denken heutiger Zeit ist im Dezimalsystem verhaftet und daher liegt es nahe dieses für den Verschlüsselungsvorgang von Hand einzusetzen.
Zuordnunstabelle | A = 5, B = 6 ... Z = 30, ! = 31 | |||||||||||||||||
Kodierung | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Klartext | M | a | r | i | a | J | u | a | n | a | k | o | m | m | t | ! | ||
Numerisch | 17 | 5 | 22 | 13 | 5 | 14 | 25 | 5 | 18 | 5 | 15 | 19 | 17 | 17 | 24 | 31 | ||
Blöcke | 17522 13514 25518 51519 17172 43100 | |||||||||||||||||
Schlüssel | 59376 88288 20441 76291 42559 83467 | |||||||||||||||||
modulo 10 Addition | 66898 91792 45959 27700 59621 26567 | |||||||||||||||||
Dekodierung | ||||||||||||||||||
Chiffre | 66898 91792 45959 27700 59621 26567 | |||||||||||||||||
Schlüssel | 59376 88288 20441 76291 42559 83467 | |||||||||||||||||
Differenz (<0 → +10) | 17522 13514 25518 51519 17172 43100 |
Im Gegensatz zum Menschen arbeiten Computer im Binärsystem, so daß dieses gleich für die Rechenoperationen verwendet wird. Auch ist hier bereits jedem Zeichen eine Binärzahl zugeordnet. Das Prinzip ist dasselbe wie bei der Handkodierung, nur daß anstelle der modulo 10 Addition eine »modulo 2 Addition«, besser bekannt als XOR** oder exklusives ODER, verwendet wird. Es wird also jedes Zeichen, bzw. seine bitweise Repräsentation, des zu verschlüsselneden Textes mit einem Zeichen des Schlüssels XOR verknüpft. Die Entschlüsselung erfolgt dann duch XOR-Verknüpfung von kodiertem Text mit dem Schlüssel.
Die Erzeugung der Zufallszahlen stellt die eigentliche Herausforderung dar. Die in den meisten Computersprachen und vielen Anwendunsgprogrammen zur Verfügung stehende Funktion (rnd, rand) zur Generierung von Zufallszahlen erzeugt nur Pseudozufallszahlen. Diese sind zwar für viele Zwecke hinreichend zufällig
, erfüllen aber eben nicht die Bedingung echter Zufallszahlen. Ein Ereignis ist dann zufällig, wenn es nicht möglich ist sein Eintreten vorherzusagen. Da der Ablauf eines Programmes auf einem Computer ein streng deterministischer Prozess ist, ist somit auch keine softwarebasierte Erzeugung echter Zufallszahlen möglich.
Da bei der XOR-Verknüpfung sowohl Assoziativ-***, als auch Kommunitativgesetz**** gelten, läßt sich sehr leicht zeigen, das jeder Schlüssel nur einmal verwendet werden darf:
Klartexte | : | K1, K2 | |
Verschlüsselte Texte | : | V1, V2 | |
Schlüssel | : | S | |
1 | V1 | = | K1 ⊕ S |
2 | V2 | = | K2 ⊕ S |
3 | V1 ⊕ V2 | = | (K1 ⊕ S) ⊕ (K2 ⊕ S) |
4 | = | (K1 ⊕ K2) ⊕ (S ⊕ S) | |
5 | = | K1 ⊕ K2 |
Der Schritt von Gleichung 4 zu 5 offenbart nun sehr deutlich die Gefahr bei der mehrfachen Verwendung eines Schlüssels, denn der Parameter S konnte in diesem Schritt herausgekürzt werden. In der Praxis bedeutet dies, daß zum Entschlüsseln der Nachrichten der geheime Schlüssel gar nicht mehr benötigt wird!
Durch Abhören des Übertragungsweges erhält der Angreifer ausreichende Mengen verschlüsselten Materials (V1..n) für seine Entschlüsselungsversuche. Entweder kann der Angreifer versuchen dem Versender eine Botschaft (Ki) unterzuschieben, die dann über den abgehörten Kanal verschlüsselt verschickt wird oder er analysiert mit stochastischen Methoden die verknüpften Botschaften (Vi ⊕ Vj). Beides führt den Angreifer dann zu den Klartexten (Ki), ohne daß er sich um den geheimen Schlüssel kümmern müßte.
Die Grundlage der Sicherheit der Vernamverschlüsselung beruht nicht wie andere Verfahren (AES, DES, Twofish etc.) auf der Komplexität des Algorithmus, sondern auf dem Fehlen eines analytischen Ansatzes für einen kryptografischen Angriff. Die Sicherheit hängt allenfalls von der Qualität der Zufallszahlen ab. Aus der Einfachheit des Algorithmus ergibt sich auch eine sehr hohe Transparenz entsprechender Software, da wenige Codezeilen für eine Programmierung ausreichen. Der Einbau von Hintertüren
fällt daher bei offenen Quelltexten sofort auf.
Da der Schlüssel eine Zufallsfolge ist, ist der verschlüsselte Text selbst nicht mehr von einer Zufallsfolge zu unterscheiden. Es läßt sich nicht beweisen, daß in diesen Text bereits eine Nachricht vom Absender eingerechnet wurde. Diese Eigenschaft kann man sich als Schutz vor Repressalien zu Nutze machen, in dem man den verschlüsselten Text als Schlüssel für eine andere Nachricht verwendet und das Ergebnis weiterleitet. Wurde die Nachricht abgefangen und man wird gezwungen zu entschlüsseln, so entschlüsselt man einfach die zweite Nachricht. Man muß nur darauf achten, daß der erste Einmalschlüssel nicht mehr bei einem aufgefunden werden kann.
K1 | Blau 61552 40000 | K2 | Gelb 10915 60000 |
S1 | 18088 85438 | ||
V1 | 79530 25438 | V1 | 79530 25438 |
V2 | 89445 85438 | ||
Zuordnunstabelle: A = 5, B = 6 ... Z = 30 K = Klartext, S = Schlüssel, V = Verschlüsselter Text |
Das Beispiel zeigt, daß jede beliebige Zufallsfolge einer gegebenen Länge, jede Botschaft von maximal gleicher Länge enthält, aber nur wer im vollständigen Besitz der beiden richtigen Teile (hier V1 & S1) ist, kommt an den wahren Inhalt (K1).
Selbst ohne Mithilfe des Absenders kann sich so der Empfänger, sofern etwas Zeit zur Verfügung steht, auf diese Art schützen, in dem er sich selber zu einer empfangenen Nachricht (V1) eine Pseudonachricht (K2) ausdenkt und den dazugehörigen verschlüsselten Text (V2) berechnet.
Durch diesen Sachverhalt werden auch Gesetze hinfällig, die einen Verdächtigen unter Strafandrohung verpflichten sollen den Schlüssel herauszugeben. Der Verdächtige kann einen Schlüssel herausgeben um die Auflagen zu erfüllen. Da nicht beweisbar ist, ob noch weitere Nachrichten von oder für ihn darin enthalten sind, da im Prinzip jeder nur denkbare Text enthalten sein kann, können die Behörden niemals sicher sein. Derartige Gesetzesvorhaben zeugen also von politischem Aktionismus und mangelnder Sachkunde.
Es sei aber daran erinnert, daß das hier Gesagte sich ausdrücklich auf die Vernam-Verschlüsselung bezieht und sich so nicht auf andere Verschlüsselungsverfahren übertragen lässt.
Das bisher Gesagte zeigt bereits eindeutig die Unsinnigkeit der immer wieder aufkommenden Diskussion um ein Verbot kryptografischer Verfahren für jedermann. Auf Grund der Einfachheit des Verfahrens müßte man für eine wirkungsvolle Durchsetzung konsequenterweise die Grundrechenarten Addition und Subtraktion verbieten. Selbst eine Ahndung des Besitzes von Kryptografiesoftware wäre unsinnig und wirkungslos, da einerseits die XOR-Funktion ein wesentlicher Bestandteil aller Programmiersprachen ist, andererseits spezielle Kryptografiesoftware überhaupt nicht notwendig ist, wie obiges Beispiel (Tab. 1) zeigt. Auch muß man bedenken, daß die Methode bereits 1917 entwickelt und 1926 öffentlich publiziert wurde, zu einer Zeit also in der Computer reine Zukunftsmusik waren.
Somit dürfte wohl klar geworden sein, daß ein Kryptografieverbot ins Leere stoßen würde. Dafür kann man aber davon ausgehen, daß sich ein solches Gesetz zu einem weiteren Bürokratiemonster auswachsen würde. Abgesehen von seiner Wirkungslosigkeit, ist ein simples Verbot aller kryptografischen Verfahren nicht machbar. Für staatliche Behörden würden umgehend Ausnahmeregelungen vorgesehen werden. Auch kann doch wohl niemand mit klarem Verstand ernsthaft fordern, daß sämtliche Geldtransfers (bspw. Online-Banking, Bezahlvorgänge) vollkommen ungeschützt über ein öffentliches, und damit unsicheres Netz abgewickelt werden sollen. Darüberhinaus würde ein generelles Kryptografieverbot kommerzielle und private drahtlose Netze über Nacht in einen allgemeinen Datenrundfunk verwandeln. Ein Kryptografieverbot erzielt aus den genannten Gründen genau die gegenteilige Wirkung von dem für was es eigentlich gedacht war, da das allgemeine Sicherheitsniveau systematisch gesenkt wird.
Aber auch permanente Überwachung der Kommunikation wird nicht den erwünschten Erfolg bringen, sondern nur ungeheure Datenberge auf Kosten der Bürger anhäufen. In Zeiten des Internet läßt sich auch der Sachverhalt verschleiern, daß überhaupt eine gerichtete Kommunikation stattfindet. Hierzu verbirgt man den zu übermittelnden Text in einem Bild. Dieses Verfahren wird als Steganografie bezeichnet. Zwar gibt es auch heirfür spezielle Programme die die Angelegenheit einfacher machen, aber wirklich notwendig sind sie nicht. Ein einfacher Texteditor reicht bereits aus, wie sich an einem einfachen Beispiel zeigen läßt.
Zunächst ist an nebenstehendem Muster nichts Auffälliges zu erkennen, wird das Bild aber mit einem einfachen Texteditor als Text und nicht als Bild geöffnet läßt sich sein Geheimnis entnehmen. Zuerst ersetzt man im Bildtext vorhandene Zeilenumbrüche durch ein beliebiges Zeichen, dann fügt man nach jedem 64sten Zeichen einen Zeilenumbruch ein. Betrachtet man nun die ersten Zeichen der letzten Zeilen von unten nach oben, ergibt sich die Ziffernfolge 7953025438, also V1 aus Tabelle 2. Läßt man sich hingegen den Text nach jedem 110ten Zeichen umbrechen, ergeben die Zeilenanfänge von unten nach oben die Zahlenfolge 8944585438, also V2 (Tab. 2). Das Bild läßt sich über das Internet (Webseiten, Newsgroups, Foren) ganz offen verbreiten, doch nur Absender und Empfänger wissen von der Kommunikation.
-
* | Für One-Time-Pad wird auch oft einfach nur OTP geschrieben. In letzter Zeit steht das Kürzel OTP auch vermehrt für One-Time Password. |
** | XOR: Sind beide Bits unterschiedlich, so ist das Ergebnis 1, andernfalls 0. 0 ⊕ 1 = 1 |
*** | Assoziativgesetz: Die Reihenfolge der Zusammenfassung von Operationen ist beliebig. a + b + c = (a + b) + c = a + (b + c) a ⊕ b ⊕ c = (a ⊕ b) ⊕ c = a ⊕ (b ⊕ c) |
**** | Kommutativgesetz: Die Reihenfolge der Operationen ist beliebig. a + b = b + a a ⊕ b = b ⊕ a |
Diese Seite wurde vom Besucher am 08.09.2024
um 05:23:10
Uhr von einem Rechner mit der TCP/IP-Adresse 3.238.227.73
mit der Browserkennung CCBot/2.0 (https://commoncrawl.org/faq/)
aus der Domäne (none)
kommend aufgerufen. Als zuletzt besuchte Webseite wurde (none)
übermittelt.
Stand vom 10.03.2011 | GnuPG (PGP) ID: 0xA4A5103F Fingerabdruck: 0E01 902F 3EC7 B119 9492 D196 BEB5 4D5D A4A5 103F | Datenschutzhinweis | © seit 2001, Prüfziffernberechnung.DE |