Die unknackbare Verschlüsselung

In der ganzen Diskussion um die Frage, welche Verschlüsselungen von welchen Verbrecherorga… ähm, ich meine natürlich Geheimdiensten, geknackt werden können, haben sich viele bestimmt schon mal gefragt, ob es eine „unknackbare“ Verschlüsselung gibt. Die Antwort ist: Ja! Es gibt Kryptosysteme, die, wenn sie richtig ausgeführt werden, mathematisch-physikalisch beweisbar nicht gebrochen werden können. Wie das funktionieren kann, werde ich jetzt, hoffentlich gut verständlich, erklären.

Das System, mit dem sich eine Nachricht beweisbar sicher übertragen lässt, ist extrem simpel und nennt sich One-Time-Pad (engl. für Einmalblock). Für die Erklärungen, die jetzt folgen werden, möchte ich dem geneigten Leser drei sympathische Personen vorstellen: Alice, Bob und Eve.

Alice, Bob und EveDiese drei werden  traditionell in vielen Beschreibungen von Kryptosystemen benutzt. Die klassische Konstellation lautet: Alice möchte eine Nachricht an Bob senden. Eve (angelehnt an engl. eavesdropper, Lauscher) ist eine dritte Partei, die Zugriff auf die Leitung hat, und deren Ziel es ist, den Inhalt der Nachricht abzuhören, ohne ihn zu verändern.

HerzSo. In diesem Beispiel möchte Alice jetzt die Nachricht „ICHMAGDICH“ an Bob senden.
Sie kann jetzt aber nicht einfach „ICHMAGDICH“ an Bob schicken, denn Eve, die Bob auch mag und außerdem sämtliche Kommunikationswege von Bob überwacht (Frauen halt), würde, sollte sie die Nachricht auslesen können, Alice aus Eifersucht wohl verprügeln. Und das will doch niemand, nicht wahr?

Alice muss ihre geheime Liebesbotschaft also verschlüsseln. Sie entscheidet sich, weise, wie sie ist, für ein One-Time-Pad. Um ihre Nachricht mit einem solchen zu chiffrieren, braucht sie einen Schlüssel (sozusagen ein Passwort) in der selben Länge wie die zu verschlüsselnde Nachricht. „ICHMAGDICH“ hat 10 Zeichen, also muss auch der Schlüssel 10 Zeichen haben. Außerdem ist es sehr wichtig das der Schlüssel absolut zufällig ist – sonst könnte Eve eventuell Regelmäßigkeiten im Chiffrat entdecken.

Unser zufälliger Schlüssel lautet jetzt:
JOZYBIOFWC

So. Wir haben einen Schlüssel und eine Nachricht. Soweit ganz simpel. Aber jetzt kommt die eigentliche Verschlüsselung, und die ist doch bestimmt ganz kompliziert, schließlich geht es um eine unknackbare Verschlüsselung! Aber nicht doch.

Wir schreiben Nachricht und Schlüssel übereinander und „addieren“ die Buchstaben (nach dem Prinzip A=1, B=2,… und wenn man über 26 kommt fängt man wieder bei 1 an, also Y+C=B):

Nachricht I C H M A G D I C H
+ Schlüssel J O Z Y B I O F W C
= Chiffrat S R H L C P S O Z K

Wer sich auskennt, erkennt sofort, dass dies im Grunde eine einfache Vigenière-Verschlüsselung ist – nur eben um die zwei Vorrausetzungen erweitert, dass der Schlüssel dieselbe Länge wie die Nachricht hat, und dass er rein zufällig sein muss.

Alice hat die Nachricht letzt also verschlüsselt. Frohgemut schickt sie Bob folgende Nachricht: „Hallo Bob! SRHLCPSOZK!“
Wie erwartet fängt Eve die Nachricht ab – und sie wird sie nie entschlüsseln können. Auch wenn sie die Verschlüsselungsmethode kennen sollte – ohne den Schlüssel geht nichts, es gibt keine Attacken gegen diese Verschlüsselung. Denn Eve könnte jede mögliche Ursprungsnachricht mit 10 Zeichen annehmen, es gäbe einen Schlüssel mit dem das passende Ergebnis herauskäme, und da der Schlüssel zufällig gewählt wurde, sind alle Ergebnisse (der gleichen Länge) gleich wahrscheinlich.

Klassische Verschlüsselungen, die mit festgelegten Schlüssellängen arbeiten (Die haben so Namen wie AES, Twofish oder ROT-n) haben alle Mechaniken, die zwangsweise Regelmäßigkeiten und andere Schwachstellen hervorrufen – daurch sind sie alle knackbar – die guten zwar (noch) nicht mit menschlicher Technik, aber theoretisch geht es immer irgendwie. Nur das One-Time-Pad (oder prinzipgleiche Systeme) ist beweisbar unknackbar.

Alles schön und gut, es gibt jetzt nur ein Problem – Bob kann die Nachricht genauso wenig entschlüsseln wie Eve. Um das Problem kümmern wir uns gleich noch. Nehmen wir an, Bob hätte den Schlüssel gesichert erhalten. Was muss er tun, um die Nachricht zu entschlüsseln? Ganz einfach: Er zieht den Schlüssel wieder vom Geheimtext ab, kehrt also die Addition um.

Chiffrat S R H L C P S O Z K
– Schlüssel J O Z Y B I O F W C
= Nachricht I C H M A G D I C H

Noch nicht geklärt ist jetzt die sichere Schlüsselübertragung. Natürlich könnten Alice und Bob dafür jetzt ein klassisches assymetrisches Verschlüsselungsverfahren benutzen (wie sowas funktioniert, werde ich vielleicht in einem zukünftigen Artikel erklären, bis dahin ist hier der Wikipedia-Artikel dazu), aber das wäre dann nicht mehr unknackbar und würde alle Mühe zunichte machen. Und jetzt wird es endlich kompliziert.

Der Quantenschlüsselaustausch

Dieses Verfahren zum Austausch (Austausch deswegen, da am Ende ja Alice und Bob den gleichen Schlüssel haben sollen) von Daten macht sich die quantenmechanischen Gesetze zu Nutze, um Lauschangriffe auf eine Leitung zu erkennen. Das Abhören wird wohlgemerkt nicht verhindert, aber es wird bemerkt – deswegen tauscht man damit nicht die geheimen Daten selber aus, sondern nur den Schlüssel – denn wenn dieser abgehört wurde, kann man ihn einfach verwerfen und einen neuen austauschen.

Ich nehme als Beispiel das BB84-Protokoll (von Charles H. Bennett und Gilles Brassard), da es sehr simpel aufgebaut ist. Es ist schon ziemlich alt, von 1984 eben, aber alle neueren arbeiten auf der selben Basis.

Das BB84-Protokoll benutzt die Polarisation von Lichtquanten zur Übertragung. Keine Panik, ich werde das erklären. Lichtquanten sind besser bekannt als Photonen oder Lichtteilchen.

Für den Schlüsselaustausch werden einzelne Photonen übertragen. Das geht ganz klassisch, z.B. über ein Glasfaserkabel. Anstatt aber Lichtstrahlen, also ganz viele Photonen auf einmal durchzuschicken, schießt man die Photonen einzeln ab.

Der Unterschied zur normalen Datenübertragung über Glasfaser ist, dass es nicht die zwei klassischen Zustände 0 und 1, also Licht an oder Licht aus, gibt. Die Daten werden nicht durch die Anzahl oder Wiederholungen der ankommenden Lichtteilchen übertragen, sondern über deren Polarisation.

Polarisation ist eine Eigenschaft von Wellen (Licht hat (auch) Wellencharakteristik), und eine Welle hat, logisch, eine Ausrichtung. Wie kann man sich diese Ausrichtung vorstellen? Eine Welle schwingt ja an einer Achse. Die Polarisation ist, in welche Richtung von der Achse aus die Welle schwingt. Ich hoffe, die beiden folgenden Bilder machen das verständlich.

Welle vertikal Welle horizontal

Linkes Bild: Vertikal polarisierte Welle
Rechtes Bild: Horizontal polarisierte Welle

Der Polarisations-3D-Bildschirm macht sich das zu Nutze, in dem er das Bild für das eine Auge horizontal polarisiert und das für das rechte vertikal. Das geht ganz einfach mit Polarisationsfilterfolien. Genau solche sind dann auch in den 3D-Brillengläsern, damit nur das für dieses Auge gedachte Bild durchkommt – eine Seite lässt nur horizontal durch, die andere nur vertikal.

Es gibt natürlich nicht nur diese zwei Ausrichtungen, sondern unendlich viele – man gibt zur Identifikation dann den Polarisationswinkel an.

Zurück zum Quantenschlüsselaustausch. Beim BB84-Protokoll benutzen wir insgesamt 4 Polarisationen, denen Binärwerte zugeordnet sind, die im Schlüssel verwendet werden können:

| / \
horizontal vertikal rechtsdiagonal linksdiagonal
0 1 0 1

Das immer zwei Polarisationsrichtungen den selben Binärwert haben, ist beabsichtigt und wichtig. Warum, erkläre ich später.

Beim Quantenschlüsselaustausch sendet Alice einzelne, in eine der vier vorgegebenen Richtungen polarisierte, Photonen an Bob, und dieser misst die Polarisation.

Aber das ist der Knackpunkt: wie misst man das bei einem einzelnen Photon? Bei einem Lichtschein wie aus einem Fernseher würde man einfach einen Polarisationsfilter nehmen und ihn solange drehen, bis das Licht durchgeht – das funktioniert bei einzelnen Lichtteilchen aber nicht, denn wenn man dabei einmal den Filter falschherum hält, ist das Photon „weg“ (Natürlich ist es nicht weg im Sinne von ’nicht mehr existent‘, aber es wird irgendwohin abgelenkt wo es uns nichts mehr bringt).
Und auch, wenn es durch den Filter durchgeht, muss man das ja irgendwie rausfinden. Und das Detektieren eines einzelnen Photons ist gar nicht so einfach. Es gibt da verschiedene Methoden, die ich jetzt nicht erkläre, aber sie haben alle eines gemein: Das Photon geht dabei verloren.

Man könnte sich einfach auf zwei Richtungen einigen und den Filter in eine der beiden halten – geht es durch, ist es die erste, sonst die zweite. Aber dann würde nichts Eve daran hindern, die Photonen selber zu messen und an Hand der gemessenen Daten die selbe Polarisation weiter an Bob zu senden. Deswegen werden vier Zustände benutzt, und diese in zwei Gruppen, sog. Basen eingeteilt, nämlich + (horizontal und vertikal) und X (links-/rechtsdiagonal).
Wenn Bob mit einem bestimmten Filter misst und das Photon nicht durchgeht, geht er von der umgekehrten Polarisation aus, also bei – von | und bei / von \.

Vier Beispiele zur Verdeutlichung:

Alice sendet
– (+) / (X) \ (X) | (+)
Bobs Filter
| (+) | (+) \ (X) / (X)
Geht durch?
Nein Nein Ja Nein
Bob misst
\ \
Richtig?
Ja Nein Ja Nein

Was fällt auf? Wenn die Sende- und die Messbasis identisch sind, erhält Bob das richtige Ergebnis, sonst nicht. Er wählt die Messbasis zufällig aus. Die verwendeten Basen können die beiden öffentlich vergleichen und so feststellen, bei welchen übertragenen Photonen sie die selben Daten haben, und die anderen verwerfen, ohne preiszugeben, welche Daten das sind.

Denn Eve bringt es nichts zu wissen, ob ein bestimmtes Bit zur Basis + oder X gehört, denn in beiden Basen gibt es jeweils eine Polarisation, die einer 0, und eine, die einer 1 zugeordnet ist. Sie kann also von der Basis nicht auf die gesendeten Bits schließen.

Der Kanal, über den die Basen verglichen werden, muss zwar nicht vor Mithören geschützt sein, muss aber authentifiziert sein – das heißt, er darf nicht manipulierbar sein – sonst könnte Eve die Übertragung stören, oder einen Angriff, wie ich ihn gleich erläutern werde, tarnen. Wie man einen Kanal authentifiziert, ist wieder ein ganz anderes kryptographisches Problem, das ich vielleicht ein andermal erklären werde.

Außerdem sollte klar sein, das die Wahrscheinlichkeiten dafür, dass Alice und Bob die selben bzw. unterschiedliche Basen benutzen, beide 50% betragen. Daraus ergibt sich, das eine normaler, ungestörter Quantenschlüsselaustausch eine Fehlerquote von ca. 50% haben sollte – und mit dieser Eigenschaft kann man Lauscher aufdecken.

Nehmen wir an, Eve hört die Leitung doch ab, misst auf die selbe Weise wie Bob und schickt ihre gemessene Polarisation an Bob weiter.

Wenn Bob die falsche Basis verwendet, ist es egal, welche Basis Eve benutzt hat, da das Bit sowieso von Bob falsch gemessen und verworfen wird. Also konzentrieren wir uns auf die anderen 50% der Fälle, in denen Bob richtig misst und normalerweise eben ein korrektes Schlüsselbit erhalten sollte.

Wenn Eve mithört, misst und sendet sie, genau wie Bob, in der Hälfte der Fälle ein falsches Bit. In wiederum der Hälfte der Fälle wird das aber wieder aufgehoben – wenn Bob den umgekehrten Filter zu dem von Alice einsetzt, geht Eves gefälschtes Photon nicht durch den Filter durch, was aber auch ohne Eve passiert wäre. Die Manipulation fällt in diesem Fall also nicht auf.

Setzt Bob aber den selben Filter ein wie Alice, fällt Eves Manipulation auf, denn dann ist die von Bob gemessene Polarisation trotz identischer Basen falsch. Wenn man das alles zusammennimmt, ergibt sich, dass sich, wenn Eve mithört, bei den Bits mit gleichen Basen eine Fehlerrate von 25% einstellt – wenn man Messfehler außen vor lässt, sollte es 0% sein.

Überprüfen lässt sich die Fehlerrate, indem Alice und Bob einige ihrer Bits stichprobenartig über den authentifizierten Kanal vergleichen. Diese verglichenen Bits müssen natürlich verworfen werden, da der authentifizierte Kanal ja nicht abhörsicher ist (wir könnten ihn zwar sichern – aber entweder mit einer klassischen Verschlüsselung, die ja wieder unsicher wäre, oder mit einem weiteren Quantenschlüsselaustausch, doch um diesen auszuführen, bräuchten wir ja wieder einen sicheren Kanal usw… Da ist es einfacher die verglichenen Bits zu verwerfen).

Sollte die erhaltene Fehlerrate zu hoch sein, müssen die beiden von einem Lauschversuch ausgehen. Sie können dann einen erneuten Austausch probieren, oder die Leitung überprüfen, bis es eben klappt.

Übrigens – dass die Zustände der Lichtquanten bei der Messung unrekonstruierbar „verloren gehen“ ist keine technische Schwäche – nicht, dass einer denkt „Aber was passiert wenn wir die Photonen irgendwann im „Vorbeiflug“ messen können?“ Das ist nach den Gesetzen der Quantenphysik prinzipbedingt unmöglich. Eine Messung ändert immer den Zustand des Quants.

Damit bin ich mit den komplizierten Erklärungen endlich durch. Nochmal kurz: Beim Abhören einer Quantenleitung entsteht zwingend eine Fehlerquote, die die Austauschenden bemerken können.

Es gibt mittlerweile auch schon verbessere Protokolle, wie ich am Anfang erwähnt habe. Diese sind allerding deutlich komplizierter und zur Erklärung deshalb nicht geeignet.

Übrigens, solltet ihr irgendwo lesen, das ein Quantenschlüsselaustausch geknackt wurde, dann stimmt das nicht. Das sind alles Probleme mit der technischen Umsetzung oder der Konzeption des Übertragungsprotokolls. Quanten werden sich nie ohne Störung messen lassen.

Forever!Zurück zu Alice und Bob. Die beiden haben jetzt also ein entsprechendes Glasfaserkabel zwischen ihren Wohnstätten gelegt (Quantenschlüsselaustausch ist bereits praktisch durchgeführt worden, er ist nur nicht wirklich serienreif). Eve hat es ausgegraben und hört ihren Schlüsselaustausch ab. Alice und Bob merken das aber und verwerfen den Schlüssel. Später, nachdem Eve müde geworden ist und ein Nickerchen macht, schaffen sie endlich einen sicheren Austausch. Bob kann Alice‘ Nachricht entschlüsseln. Gerührt und begeistert von ihrer Bekenntnis, läuft er zu ihrem Haus. Auf halbem Weg kommt sie ihm entgegen, und die beiden Verliebten fallen sich in die Arme.

Ist das nicht romantisch? Ich sollte Liebesromane schreiben.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.