Früher gehörten zu Schlüsseln immer auch Schlösser. Heute hat der Schlüssel hingegen eine ganz eigene Bedeutung – aber am Ende sind beide knackbar. Meistens.
Geheimnisse machen das Leben aufregend. Wie langweilig wäre die Kindheit ohne die Aufregung an Geburtstagen und Weihnachten, was für Geschenke es geben wird? Wo es an Anstand mangelt, kann man mit Schlössern nachhelfen. Geheimnisse werden manchmal weggeschlossen, und manchmal verschlüsselt, und ganz selten sogar beides. Wobei die Verschlüsselung große Fortschritte gemacht hat und heute eine Wissenschaft für sich ist, namentlich der Kryptographie, oder Kryptoanalyse.
Nicht zu verwechseln übrigens mit der Steganographie. Während bei der Kryptographie der Inhalt der Nachricht verschlüsselt wird, aber die Nachricht mehr oder minder sichtbar bleibt, befasst sich die Steganographie damit, die ganze Nachricht zu verstecken. Vielfältig sind die dazu ersonnenen Methoden, von unschuldigen Gedichten mit Subtext über unsichtbare Nachrichten mit Zitronensaft, der erst bei Hitze sichtbar wird bis hin zu modernen Methoden, zum Beispiel indem Text in Bildern auf Computern unsichtbar eingebaut werden.
Das allerdings hat mehr mit Technik als mit Mathematik und Computern zu tun, und in diesem Salon widmen wir uns dem gepflegten Tunnelblick auf letztere. Bereits im Altertum versuchten die Menschen, Nachrichten zu verschlüsseln, aber wirklich interessant wurden die Methoden erst in der Neuzeit, ungefähr ab der Renaissance. Zu den bekanntesten Methoden gehört die tabula recta, die sämtliche Buchstaben des Alphabets untereinander sortiert, immer um eine Position versetzt. Nachteil dieser Methode, und überhaupt aller mono-alphabetischen Methoden (die jedem Buchstaben ein immer gleiches verschlüsseltes Zeichen zuordnen): sie lassen sich relativ leicht entschlüsseln.
Zu den Eigenheiten der europäischen Sprachen gehört es, daß die Buchstaben nicht gleichermaßen häufig im Alltag vorkommen. Die quantitative Linguistik hat auch daraus eine Wissenschaft gemacht, wobei die Häufigkeit der Buchstaben nur der simpelste Bestandteil sind. Im Deutschen sind e, n und i am häufigsten, romanischen Sprachen tendieren eher zu a, e, o und s. Natürlich tritt diese Gesetzmäßigkeit erst in längeren Texten zu Tage, dann aber meistens so deutlich, daß man nur noch Ziffern oder Buchstaben zählen muß, um den Code zu knacken.
Um dieses Problem zu umgehen, muß man vom mono-alphabetischen Prinzip abweichen, zum Beispiel über einen zweiten Verschlüsselungsschritt. Damit konnten sich mono-alphabetische Verschlüsselungsmechanismen immerhin bis in die Zeit des ersten Weltkriegs hinein halten, zum Beispiel über die ADFGX-Verschlüsselung (die die bereits verschlüsselte Nachrichten in Zeilen in eine Matrix einsortiert und dann spaltenweise wieder ausgibt). Auch das war allerdings auf Dauer keine Hürde, weil das Verfahren am Ende doch zu mono-alphabetisch war.
Poly-alphabetische Verfahren, bei denen die Buchstaben weniger systematisch und durch viel mehr Zeichen ersetzt werden, bieten da ganz andere Möglichkeiten – sind aber ohne ein aufwendiges Schlüsselverfahren nicht denkbar. Vor allem braucht es dafür ein zufällig generierte Zeichenfolge, die mindestens so lang sein muß, wie der zu verschlüsselnde Text. Indem man den eigentlichen Text und die vollkommen zufällige Zeichenfolge des Schlüssels kombiniert (zum Beispiel indem man die beiden Zeichen addiert oder sonstwie verbindet), entsteht eine zufällige Zeichenfolge als Nachrichtentext – die im besten Falle tatsächlich von keiner Rechenkapazität dieser Welt geknackt werden kann, weil sie eben wahrhaftig zufällig ist.
Allerdings funktioniert dieses (und ähnliche Prinzipien) nur nach Austausch des Schlüssels zwischen den kommunizierenden Parteien, und die Schlüssel müssen unter Umständen ziemlich lange Zeichenfolgen sein – das macht das Verfahren erstens umständlich für den permanenten Austausch und zweitens anfällig – man muß sich den Schlüssel nämlich notieren (wer merkt sich schon zufällige Zeichenfolgen?) Die Grundidee, daß es viel leichter ist, die Geheimhaltung eines Schlüssels sicherzustellen, als die der Verschlüsselungsmethode (bzw. -algorithmus), wurde übrigens von dem Franzosen Auguste Kerckhoff 1883 formuliert und ist bis heute ein Grundstein der Kryptologie.
Ganz neue Herausforderungen und Möglichkeiten stellen sich der Kryptographie im Zeitalter der Computer. Im Internet gibt es viele Kommunizierende, mit vielen schützenswerten Vorgängen und Nachrichten – für alle diese Vorgänge jeweils bilaterale Passwörter auszutauschen wäre unsagbar aufwendig. Gelöst wurde das Problem durch einige helle Köpfe, die das heute als RSA bekannte Verfahren entwickelten, indem sie mit zwei Schlüsseln arbeiteten: einem öffentlichen und einem geheimen (privaten), einem zum Ver- und einem zum Entschlüsseln. Dabei hat der öffentliche Schlüssel eigentlich den Charakter eines Schlosses: jeder kann es zumachen und verwenden – allerdings nicht wieder öffnen. Das muß man sich vorstellen wie Haustüren, Fahrradschlösser etc, die jeder zumachen kann. Nur der private key funktioniert wirklich wie ein Schlüssel, und öffnet das Schloss tatsächlich. Mathematisch läßt sich dies mittels Einwegfunktionen realisieren. Dafür bietet sich die Primfaktorzerlegung an. Es ist nämlich relativ leicht, zwei große (Prim)Zahlen miteinander zu multiplizieren, aber an der umgekehrten Operation beissen sich Mathematiker bis heute die Zähne aus. Im simpelsten Fall muß man einfach alle möglichen Faktoren ausprobieren, eventuell systematisch mittels Algorithmen, aber es bleibt eine lange und umständliche Prozedur, die viel Zeit in Anspruch nimmt.
Soviel Zeit, daß das Verfahren bis vor kurzem als absolut sicher galt, sofern man nur hinreichend große und zufällige Zahlen dafür verwendete. Nach einigen mathematischen Operationen kann man gefahrlos das Produkt zweier großer Primzahlen als Schlüsselkomponente veröffentlichen – über den Bau des Schlosses, also die beiden zugehörigen Primfaktoren, läßt sich dennoch nichts sagen.
Das ist ein smarter Mechanimus – der allerdings darauf aufbaut, daß die beiden Ausgangszahlen wirklich zufällig sind. Zufälligkeit ist wiederum ein natürliches Phänomen, mit dessen Replizierung die Menschheit sich sehr schwer tut. Keiner von uns könnte ein wahrhaft zufällige Zahlenfolge zu Papier bringen, und selbst bei computergenerierten Zahlenreihen braucht es meist mehrere Schritte. Zum Beispiel wird aus einer nur halb-zufälligen Zahlenreihe (generiert nach Mausbewegungen oder ähnlichem) noch zufälligere Zahlenreihen gezogen. Ist das Ergebnis allerdings nicht wahrhaftig zufällig, kann man mit schierer Rechenkraft (sogenannter brute force) den Schlüssel knacken. Vollends hinfällig würde der RSA-Mechanismus, wenn irgendwann Quantencomputer mit ihrer deutlich höheren Rechenkraft Verbreitung fänden – allerdings bieten die wiederum einen absolut sicheren Mechanismus: Quanten verändern sich schließlich, wenn man sie abhört, das würde die Kryptographie auf eine völlig neue Ebene heben. Bis dahin können wir nur hoffen, daß zufällig auch wirklich zufällig ist – und sehr vorsichtig sein in unserem blinden Vertrauen auf die schöne neue Technikwelt.