Kryptografie / Einleitung

Kryptografie (altgriechisch: krypto für "verborgen, geheim" und grafie für "schreiben, Schrift") ist ein Teilgebiet der Kryptologie und befasst sich mit dem Verschlüsseln von Informationen.

Außer der Kryptografie umfasst die Kryptologie auch noch die Kryptoanalyse, welche sich mit dem Entschlüsseln bzw. dem Knacken von verschlüsselten Botschaften beschäftigt. Die Kryptoanalyse ist das anspruchsvollere Teilgebiet. Außerdem gibt es noch die Steganografie, die sich mit dem Verstecken von geheimen Botschaften beschäftigt.

Schon 3000 Jahre vor unserer Zeitrechnung wurde Kryptografie im alten Ägypten eingesetzt. Diese eher einfachen Verschlüsselungsverfahren wurden über die Zeit immer weiter verfeinert und ihre Komplexität wuchs mit den vorhandenen Mitteln - über Papier und Bleistift, über mechanische Rechenmaschinen und Chiffriermaschinen wie der Enigma bis hin zum heutigen Computer.

Wurde früher Kryptografie meistens bei Militärs und Geheimdiensten eingesetzt, so ist sie in der heutigen Zeit - in der fast jeder über einen Computer verfügt - auch im privaten Bereich anzutreffen, z. B., um eine e-mail vor dem Versand über das Internet zu verschlüsseln.

Außer für praktische Aspekte der Geheimhaltung sind die klassischen kryptografischen Verfahren auch Teil der Unterhaltung geworden. Sie fanden Einsatz in den Geschichten von Jules Verne, Karl May, Arthur Conan Doyle oder Edgar Allan Poe und animierten den Leser mitzurätseln und Codes zu knacken.

Während moderne Verfahren wie z. B. AES nur mit hochkomplexen Algorithmen und viel Rechenpower (bzw. entsprechend viel Zeit) zu brechen sind, sind die klassischen Verfahren oft noch mit Papier und Bleistift und logischem Denken in ein paar Stunden zu lösen. So sind sie dafür geeignet, Rätsler in den Bann zu ziehen, um eine Chiffre mit ein paar Anhaltspunkten zu knacken. Bei sogenannten Rätsel Challenges oder Geocaching Mysteries kommen häufig klassische kryptografische Verfahren als Rätselgrundlage zum Einsatz.

Kryptografie im Altertum...

Ca. 1500 v. Chr fertigt ein mesopotamischer Töpfer eine Tontafel mit einem Rezept für eine Glasur an, bei dem die Buchstaben verändert und vertauscht waren.

Ca. 500 v. Chr benutzten die Spartaner eine Skytale, einen Stock, um den ein Stück Leder gewickelt und dann quer über die Wicklungen geschrieben wurde. Abgewickelt war das Leder nicht mehr zu lesen. Es wurde ein Stock mit gleichem Durchmesser benötigt.

Ca. 160 v. Chr. ersann der Grieche Polybios die nach ihm benannte Polybios Chiffre, bei der ein Schlüsselwort in einem 5x5 Quadrat Grundlage der manuellen Verschlüsselung ist.

Um 60 v. Chr. Geburt benutzte Julius Cäsar eine Buchstabenverschiebung um 3 Stellen und machte aus einem A ein D, einem B ein E usw. Dieser Verfahren wurde nach ihm Cäsar-Chiffre benannt.

Ca. 250 n. Chr. findet sich im indischen Kamasutra auch eine Vorgehensweise zum Verschlüsseln mittels Buchstabenneuordnung.

... ab dem Mittelalter ...

Im frühen Mittelalter wurden die Verfahren nicht sehr weiter entwickelt, sondern es wurden eher die vorhandenen Verfahren (einfache Substitution) verwandt.

Ab dem 15ten Jahrhundert erfuhr die Kryptografie wieder einen Aufschwung. Gerade Italien war hier Vorreiter. So erschuf Leon Battista Alberti (1404–1472) eine Chiffrierscheibe, die das Chiffrieren vereinfachte. Auch Johannes Trithemius (1462–1516) war in dieser Zeit aktiv.

Im 16ten Jahrhundert entwickelten u. a. Giambattista della Porta (1535-1615) und Blaise de Vigenère (1523–1596) die Substitutionsverfahren weiter und wandten auch polyalphabetische Verfahren an.

Im 17. Jh. verfeinerte Johann Franz Graf Gronsfeld zu Bronkhorst und Eberstein (1640-1719) den Vigenère Chiffre zu einem Chiffre, der nach ihm benannt wurde.

Im 19. Jh. entstand z. B. die Playfair-Chiffre, die auf einem 5x5 Polybios-Quadrat basiert.

Ende des 19. Jh / Anfang des 20. Jh. wurde die von Polybios erfundenen 5x5 Quadrate (A bis Z ohne J) immer noch eingesetzt und verfeinert. So erweiterte der Franzose Felix Delastelle 1901 das Verfahren um eine anschließende Transposition und nannte es Bifid. Eine weitere Dimension erhielt es später als Trifid Chiffre. Außerdem erfand er den Four-Square Chiffre mit 4 Polybios-Quadraten.

... kriegsentscheidend in den Weltkriegen ...

Selbst im 1. Weltkrieg wurde noch auf Polybios-Quadrate zurückgegriffen. So erfand Fritz Nebel mit ADFGVX (benannt nach den verwendeten Morsebuchstaben) eine Verfeinerung davon, welches das Quadrat auf 6x6 erweiterte und so auch Ziffern Platz bot. Der Erste Weltkrieg gilt als der erste Krieg, in dem die Möglichkeiten der Kryptoanalyse systematisch genutzt wurden.

Im 2. Weltkrieg setzte man dann hauptsächlich Maschinen zur Verschlüsselung ein. Bekanntestes Beispiel ist wohl die Enigma genannte Chiffriermaschine der Deutschen, die später kriegsentscheidend durch die Allierten geknackt werden konnte. Von 1922 bis 1945 war bei der US Army das mobiles Chiffriergerät M-94 / CSP-448 (Navy-Version) im Einsatz, eine Walze, auf denen 25 austauschbare Scheiben mit unterschiedlich verwürfelten Alphabeten angeordnet waren.

Im sogenannten kalten Krieg wurden bei den Geheimdiensten meist Codeschablonen und One-Time-Pads eingesetzt. Wenn die Schlüssellänge mindestens der Klartextlänge entspricht und rein zufällig ist, gilt ein One-Time-Pad als absolut sicher, solange der Schlüssel nicht bekannt wird. Kuriosum aus dieser Zeit sind lange Ansagen von Zahlenkolonnen im Radio auf bestimmten Frequenzen, die von den Geheimagenten, für die die Botschaften bestimmt waren, niedergeschrieben wurden und dann per Codeschablone und Codebuch dechiffriert wurden. Da die Chiffre sicher war, war es egal, ob jemand zuhörte. Man konnte den Agenten immer und überall erreichen und einen Radiosender per Ohrhörer abzuhören, war nicht sonderlich auffällig.

... in der modernen Welt ...

Mit der Bezahlbarkeit und steigenden Rechenleistung von Computern lagen die zu verschlüsselten Informationen in binärer Form vor und die Verschlüsselung geschah ebenfalls auf Computern nach mathematischen Algorithmen. Zu den ersten modernen Verfahren gehörte DES (Data Encryption Standard), der mit steigender Rechenpower aber bald als unsicher - da knackbar - galt. Man half sich mit 3DES, einem dreifach hintereinander geschaltetem DES oder anderen Verfahren wie Blowfish. Der derzeitige US-Standard ist AES (Advanced Encryption Standard) von Joan Daemen und Vincent Rijmen (deswegen auch Rijndael-Algorithmus). Es gibt aber viele andere symmetrische Verfahren daneben.

Neben den symmetrischen Verfahren gibt es noch asymmetrische, oder auch Public Key Verfahren genannte. Bei diesen gibt es einen privaten und einen öffentlichen Schlüsselteil. Ein Beispiel dafür ist das RSA-Verfahren, benannt nach den Entwicklern Ronald L. Rivest, Adi Shamir, Leonard Adleman. Durch den Einsatz eines Paares zusammengehöriger Schlüssel kann so z. B. eine Nachricht vom Sender verschlüsselt versandt werden und nur vom Empfänger dechiffriert werden. Andere Empfänger können die Nachricht nicht lesen, weil diese nicht über den richtigen Schlüsselteil verfügen.

... und zukünftig ...

Wie sich die Kryptografie in Zukunft entwickeln wird, ist sehr davon abhängig, wie und wie schnell sich die Computertechnologie entwickelt. Ein Verfahren kann nur solange als sicher gelten, wie das Knacken der Chiffre so lange dauert, dass sich das Knacken wirtschaftlich nicht lohnt oder die Information inzwischen wertlos geworden ist. Außer daran dass die Leistung von Computer ständig zunimmt muss auch daran gedacht werden, dass Computer zum Knacken zusammengeschaltet werden können, z. B. durch Verbreitung einer Malware über das Internet, die dann unbemerkt auf Millionen Rechnern ein Teilproblem der Kryptoanalyse abarbeitet. Außerdem könnten Schwachstellen im kryptografischen Algorithmus bekannt werden, die dann "Abkürzungen" zum Knacken ermöglichen. So musste schon der eine oder andere Crypt- oder Hash- Algorithmus ausgetauscht werden, weil er inzwischen als nicht mehr sicher gilt.

Auch eine neue, grundlegend andere Computer-Technologie könnte das Knacken von Codes in Zukunft extrem beschleunigen. Sogenannte Quantencomputer, die mit Qubits statt normaler Silizium-Prozessoren arbeiten, nutzen die Gesetzmäßigkeiten der Quantentheorie, um Rechenaufgaben nicht mehr linear, sondern parallel zu verarbeiten. Dabei kann jedes Qubit nicht nur die Zustände 1 und 0 wie im herkömmlichen Computer annehmen, sondern eine Superposition aus 0 und 1, sozusagen beide Zustände 1 und 0 gleichzeitig. Stark vereinfacht gesagt könnte ein Quantencomputer mit 8 Qubits demnach 28 = 256 Werte gleichzeitig haben, mit denen sich weiterrechnen ließe, ein Quantencomputer mit 100 Qubits schon 2100 = 1.2 Quintillionen Werte, mit denen gleichzeitig gerechnet werden könnte. Statt einer Rechenaufgabe nach der anderen würden mehr als 1 Quintillion Aufgaben gleichzeitig erledigt. Die Programmierung solcher Computer wird sich entscheidend von der heutige linearen Programmierung von Algorithmen unterscheiden, aber mit den richtigen Programmen wird es möglich sein, eine extrem hohe Anzahl von möglichen Schlüsseln für symmetrische Verschlüsselungsverfahren in sehr kurzer Zeit durchzuprobieren. Oder auch große Primzahlen in ihre Faktoren zu zerlegen und damit asymmetrische Verfahren wie RSA anzugreifen und zu knacken. Allerdings muss sich die Theorie noch in der Praxis beweisen und zeigen, dass die gemachten quantentheoretischen Annahmen in der Realität auch wirklich zutreffen.

Doch dem übermächtigen Angriff mit Quantencomputern steht ein bereits realisiertes, wenn auch aufwändiges Verfahren gegenüber, dass sich auch damit nicht knacken lässt: die Quantenkryptografie. Das Verfahren basiert ebenfalls auf der Quantentheorie und auf einzelnen polarisierten Photonen, die vom Sender (Alice) zum Empfänger (Bob) geschickt werden. Die Polarisation eines einzelnen Photons kann man nur messen, indem man es durch einen Polarisationsfilter schickt. Dabei gibt es zwei Arten von Filtern: die erste (+)-Filter lässt nur vertikal und horizontal polarisierte Photonen durch, der zweite (x) Filter nur diagonal polarisierte Photonen. Wird ein polarisiertes Photon durch den falschen Filter geschickt, bleibt es an der Barriere hängen und wird verschluckt. Genauso wird es bei der Messung, beim Auftreffen auf den Sensor, verschluckt und zu einem messbaren Impuls (1). Nur wenn man weiß, welcher Filter bei der Messung anzuwenden ist, kann man richtig messen und sicher sein, dass eine 0 (kein messbarer Impuls auf dem Sensor) von einer von Alice gesendeten 0 stammt und nicht daher, dass das Photon am falschen Filter hängen geblieben ist (dann könnte es auch eine 1 gewesen sein). Ein Abhören durch eine Dritte Person ist schon dadurch ausgeschlossen, dass die Photonen durch die Messung des Angreifers zerstört werden würde.
Wenn man nun die Einsen und Nullen einer binären Datei versenden wollte, würde Alice einen Schlüssel aus einem Muster aus zufällig wechselnden (+) und (x) Filtern benutzen und eine 1 bei einem (+)-Schlüsselteil mit -- polarisieren und eine 0 mit |. Bei einem (x)-Filter würde sie eine 1 als \ und eine 0 als / polarisieren. Diese Photonen würde sie dann zu Bob schicken, dem sie zuvor den Schlüssel zukommen ließ (= symmetrische Verschlüsselung). Dieser würde dann jeweils den richtigen Filter lt. Schlüssel anwenden und alle Photonen auf den Sensor auftreffen lassen und so die Bitfolge wieder korrekt rekonstruieren können. Hätte sich nun ein Angreifer (Mallory) zwischengeschaltet, wüsste dieser nicht den Schlüssel, könnte die Filter nur raten und würde in der Hälfte der Fälle falsch liegen, ohne zu wissen, wo er bei einer erfassten 0 falsch liegt. Und selbst, wenn Mallory den Schlüssel kennen würde (Schlüsselaustausch belauscht) würden Alice und Bob mitbekommen, dass Photonen fehlen, da diese sich ja nur einmal messen lassen. Erst wenn Alice die Nachricht Bob mit dem gleichen Schlüssel immer wieder und wieder schicken würde, könnte Mallory mit statistischen Mitteln die Nachricht rekonstruieren. Darum wird dies Alice nicht tun und einen neuen zufälligen Schlüssel generieren, der aber wieder an Bob gesendet werden muss.
Es gibt aber auch eine Möglichkeit eines Schlüsselaustausches, in der wird die übertragene Nachricht selbst zum Schlüssel. Dieser kann dann als One Time Pad zur symmetrischen Verschlüsselung dienen. Bei diesem Verfahren berechnet Alice ebenfalls einen zufälligen Schlüssel, behält diesen aber für sich. Alice polarisiert die Photonen nach der (+) / (x) - Filterfolge und schickt diese an Bob. Bob errechnet nun eine eigene zufällige Filterfolge und wendet diese zur Messung an. Dabei wird er im statistischen Mittel bei 50% der Bits falsch liegen. Dass ist aber nicht weiter schlimm, denn jetzt schickt Bob Alice seine Filterfolge und Alice vergleicht diese mit der eigenen und sagt Bob dann, bei welche Bitpositionen (nur die Positionen, nicht die Bitwerte, denn Alice und Bob könnten belauscht werden) Bob den Filter richtig geraten hat. Diese neue Folge aus richtigen Bits wird dann etwa um die Hälfte geschrumpft sein. Alice und Bob gehen jetzt davon aus, dass sie nicht abgehört wurden, weil ja alle Photonen angekommen sind. Aber was wäre, wenn Mallory Alices Photonen abgefangen (und vernichtet) und Bob einfach andere geschickt hätte (die selben können es ja nicht sein, denn dann hätte Mallory zufällig den selben Zufallsfilterfolge errechnet haben müssen wie Bob, was nun extrem unwahrscheinlich ist)? Um sicherzugehen vergleichen Alice und Bob jetzt ca. 100 Bits an zufälligen Positionen und streichen sie anschließend aus der Bitfolge. Stimmen die Bits überein, können sie davon ausgehen nicht belauscht worden zu sein, denn die Wahrscheinlichkeit, dass Mallory alle 100 Werte zufällig richtig geraten hat liegt bei eins zu einer Quintillion.
Quantenkryptografie wurde im Labor bereits erfolgreich getestet und es wurden auch schon Verbindungen über mehrere Kilometer bewerkstelligt. Sie bleibt allerdings aufgrund der Übertragung der Photonen aufwendig. Zumindest müssen geeignete Glasfaserkabel verlegt werden. Die Vorteil von Funk, z. B. das problemlose Erreichen von Schiffen und Fahrzeugen fällt weg. Denn in der Atmosphäre würde die Polarität der Photonen durch Interaktion mit anderen Atomen verändert und die Nachricht dadurch unlesbar.