Datenverschlüsselung - Einstieg Dr. Thomas Schwotzer 21. November 2011 1 Die Gefahren Bevor wir beginnen: Auch diese Lecture Note kann das Lesen eines Buches nicht ersetzen. Es wird [1] wärmestens empfohlen. Das Problem ist so alt wie die Menschheit: Wie gelingt es zwei Menschen, Informtionen auszutauschen, ohne dass andere diesen Austausch abhorchen oder verändern können. Mehr noch: Wie können Boten genutzt werden, denen man nicht traut, die aber dennoch nicht in der Lage sind, die Nachricht zu lesen oder zu verändern, die sie transportieren? In der kryptografischen Literatur ist es üblich, die einzelnen Gefahren an Personen in Szenarien zu knüpfen. Wir wollen auch hier die wichtigsten Mitspieler vorstellen und die jeweiligen Gefahren benennen, die sie repräsentieren. Aber zunächst die Guten: Alice und Bob sind die Freundlichen. Sie wollen Informationen austauschen. Leider mischen sich regelmäßig unangenehme Zeitgenossen ein. Mit zwei dieser Gruppe werden wir uns beschäftigen: Eve ist neugierig. Sie hört gern Gesprächen zu und hört diese auch gern ab. Die Informationen gibt sie dann gern weiter 1. Manchmal stört Eve nicht weiter. Soll sie ruhig zuhören. Wenn es aber um Geheimnisse zwischen Alice und Bob geht, dann muss man etwas gegen Eve tun, die immer ein offenes Ohr für jede ausgetauscht Information hat. Mallory ist ungleich unangenehmer. Mallory mischt sich gern aktiv in den Informationsaustausch ein. Er hört die Informationen nicht nur gern mit, er verändert sie auch gern und seine größte Freude empfindet er, wenn es ihm gelingt, dass Alice ihn für Bob oder Bob ihn für Alice hält. Mallory will betrügen, täuschen und stehlen. Mallory ist the man in the middle gegen den in aller Regel etwas getan werden muss. Manchmal brauchen wir noch weitere Freunde von Alice und Bob. Diese werden dann mit den Buchstaben C, D etc. beginnen. E ist für Eve reserviert und M für Mallory, ansonsten ist das Alphabet frei. Wir werden sehen. 1 Eve ist eine Abkürzung von Evesdroppig. 1
2 Aufgaben der Kryptografie Die Kryptografie dient vielen Aufgaben. Die für uns wichtigsten sind diese: Verschlüsselung Daten sollen idealerweise so übertragen werden, dass weder Eve noch Mallory sie lesen oder Verfälschen können. Dazu dient die Verschlüsselung von Daten. Unverfälschbarkeit Alice hat oft kein Problem damit, dass Eve hört oder liest, dass sie gerade 10 Pizzen für sich und ihre Freunde bestellt. Soll sie neidisch sein. Die Verschlüsselung ist nicht wichtig. Sie will aber keinesfalls, dass sich Mallory einschaltet und plötzlich 1000 Pizzen bestellt. Da hört der Spaß auf. Häufig braucht man Methoden, die sicher stellen, dass Daten auf ihrem Weg von A nach B nicht verfälscht werden. Identifizierung Tauscht man Daten aus, so ist es oft hilfreich sicher zu sein, werdiedatengesendethat.dasklingttrivialundistesimtäglichenleben auch.manschautsichindieaugenunddamitistdieidentitätinderregel sicher gestellt. In verteilten Systemen ist das ungleich schwieriger. Was nutzt es, wenn man sicher sein kann, dass eine Nachricht mit Sicherheit nicht verändert wurde oder auf dem Weg zum Ziel von anderen nicht gelesen werden konnte, wenn man als Empfänger nicht des Senders sicher sein kann. Interessanterweise ist das das gängige Tun im Internet. Wissen Sie sicher, dass die Mails von ihren Freunden kommen oder nicht von Mallory? Alle Aufgaben lassen sich mit Verschlüsselungsverfahren lösen. Sie werden je Aufgabe beliebig komplex, aber die Basis ist immer eine geeignete Verschlüsselung. Damit soll es daher losgehen - mit den Grundlagen der Datenverschlüsselung. 3 Grundlege Verfahren 3.1 Begriffe Um nicht aneinander vorbeizureden, müssen ein paar Worte geklärt werden. Am Anfang entstehen irgendwie Daten, die versendet werden sollen. Diese Daten können beliebig sein, ein Film, Musik, eine Mail etc. pp. Diese Daten werden Klartext genannt. Werden die Daten verschlüsselt, entsteht ein Geheimtext. Die Vorgang nennt sich Verschlüsselung (encryption). Der umgekehrte Vorgang heißt Entschlüsselung (decryption) und wandelt einen Geheimtext in den Klartext um. Verschlüsselungsverfahren werden auch Chiffre genannt. In aller Regel nutzt jede Chiffre einen Schlüssel. Dieser Schlüssel stellt einen Parameter für das Verfahren da. Wird der Schlüssel nicht explizit erwähnt, so gibt es Standardparameter, die nicht extra beschrieben wurden. 2
3.2 Klassifikation kryptoanalytischer Verfahren Ziel der Kryptoanalyse besteht in der Dechriffierung von Geheimtexten und dazu ist das Knacken des Schlüssels notwendig. Die Verfahren sind heutzutage öffentlich bekannt. Der Schlüssel ist es in der Regel nicht. Man kann das kryptoanalygtische Vorgehen dahingehend klassifizieren, über welche Informationen man verfügt bzw. wie man die Verfahren mit dem Schlüssel nutzen kann. Man unterscheidet folgende Attacken: Cipherptext-Only Mallory kennt lediglich den Geheimtext. Das ist in der Regel eine sehr weiche Annahme, wenigtens im Internet. An die übertragenen Daten kommt man genügend Kenntnisse und kriminelle Energie vorausgesetzt sehr leicht heran. Gibt es ein Verfahren, mit dem man basierend auf eine Menge von Geheimtexten tatsächlich eine Entschlüsselung des Schlüssels durchführen kann und das in einer überschaubaren Zeit möglich, so ist die Chiffre praktisch nutzlos. Known-Plaintext Kennt Mallory sowohl den Klartext als auch den Chiffretext, so spricht man von einem Know-Plaintext Angriff. Das ist bereits eine härtere Annahme. Mallory muss wenigstens von einem Geheimtext den Klartext kennen. Kann er damit den Schlüssel ermitteln, ist er drin. Chosen-Plaintext Das beste, was Mallory passieren kann, ist, dass er einen eigenen Text (chosen plain text) durch das Verfahren laufen lassen kann, um dann den Chiffretext zu erhalten. Damit kennt er zwar Schlüssel nicht direkt, aber ein gut gewählter Text, kann schon sehr helfen. Dieses Glück wird Mallory selten haben, heißt aber umgekehrt: Verfahren, die sogar gegen Chosen Plaintext Attacken robust sind, sind wirklich gut. 3.3 Substitutionsverfahren Betrachten wir einen Klartext. Ein solcher Text besteht aus einer Menge von Zeichen. Bezeichnen wir die Menge aller möglichen Zeichen des Klartextes als Alphabet. Substitutionsverfahren ersetzen nun die Zeichen des Klartextes durch andere Zeichen. Das Alphabet der Geheimschrift und des Alphabets können auch identisch sein. Man spricht von monoalphabtischen Subsitutionschiffren, wenn ein Zeichen der verschlüsselten Nachricht immer dem gleichen Zeichen des Klartextes entspricht. Polyalphabetische Chiffren haben diese Eigenschaft nicht. Wir kommen darauf zurück. 3.3.1 Cäsarchiffre Und nun endlch ein Beispiel. Die Cäsarchiffre nutzt ein Alpbahet für Klarwie die Geheimschrift. Ein Alphabet bringt eine Menge von Zeichen in einer 3
Reihenfolge und damit kann auch jedem Zeichen einen Zahl und ein Vor- bzw. Nachfolger zugewiesen werden 2. Der Schlüssel der Cäsarchiffre ist eine Zahl (k) deren Betrag kleiner als die Anzahl der Zeichen des Alphabets ist. Die Chiffre selber ist einfach: Jedes Zeichen des Klartextes wird durch dessen kten Nachfolger ersetzt. Der Schlüssel könnte auch negtiv sein, dann würde eine Ersetzung durch den Vorgänger durchgeführt. Nehmen wir als Beispiel das Alphabet der deutschen Sprache und den Schlüssel 1, so ergibt der Klartext Ave Caesar den chiffrierten Text Bwf Dbftbs 3. Das sieht schon ordentlich geheim aus, die Chiffre ist nur schnell zu knacken: Bei einem Alphabet mit 26 Zeichen gibt es 25 unterschiedliche Schlüssel. Man könnte diese einfach probieren. Sobald der so dechriffrierte Text vor allem bekannte Worte enthält, ist der Schlüssel vermutlich gefunden. Diese kryptografischen Angriff werden wir in der Übung einmal programmieren. Cäsarchiffren finden auch heute noch breite Anwendung zur Kodierung kleiner Nachrichten. Die Nutzer geben das Verfahren aber in der Regel spätenstens nach der Grundschule auf, da schon 10jährige erkennen, dass das nicht wirklich geheim ist. Ernsthaft einsetzbar ist diese Chiffre nicht. Schade, dabei hat sie so einen einprägsamen Namen. 3.3.2 Polyalphabetische Chiffren Die geringe Anzahl der Schlüssel ist ein Problem, es gibt aber noch ein anderes. Sprachen haben Eigenschaften. Jede Sprache verfügt über eine statistische Verteilung von Zeichen in Texten. In Deutsch ist das E das am häufigsten vorkommende Zeichen. Die Häufigkeitsverteilungen von Zeichen ist ein Charakteristikum der Sprache. Weiß man also z.b., dass der Klartext Deutsch ist, so kann man vermuten, dass das Zeichen im Chiffretext, das am häufigsten vorkommt, für ein E steht. Nun genügt es, das am häufigsten vorkommende Zeichen im Chiffretext zu ermitteln. Das wird vermutlich das E sein. Damit ist ohne Probieren aller Schlüssel ein Knacken möglich - genügend lange (und damit statistisch relevante) Texte vorausgesetzt. Die Lösung liegt auf der Hand: Kommt das E 17mal häufiger vor als das X in der deutschen Sprache, so sollte man das E durch eines von 17 Zeichen in einem Alphabet der Geheimsprache ersetzen und diese gleichmäßig benutzen. Chiffrierte Texte haben dann eine gleichmäßige Verteilung der Zeichen und statistische Auswertungen laufen ins Leere. Solche Verfahren nennen sich homophone Chiffren der gleichmäßigen Verteilung wegen. 2 Ja, bei ersten und letzten Zeichen wird das schwierig. Hier gilt, wie so oft: der Vorgänger des ersten Zeichens ist das letzte und der Nachfolger des letzten Zeichens ist das erste. 3 Wir haben in der obigen Definition ein wenig geschummelt. Das Lehrzeichen wird hier beibehalten. Ein einer vollständigen Substitutionschiffre gehören auch die Satzeichen ersetzt - gerade diese, denn allein die durchscnittliche Wortlänger erlaubt bereits einen Rückschluss auf die Sprache des Textes. Aber die Erklärungen werden durch diese Schummelei einfacher. 4
3.3.3 Vigenere Chiffre Allein die geringe Menge der möglichen Schlüssel ist ein Ausschlusskriterium für die beschriebenen Chiffren. Hier kommt man durch Probieren aller Schlüssel in einer recht schnellen Zeit zu einem Ergebnis. Eine Lösung besteht darin, dass nicht jedes Zeichen den gleichen Schlüssel nutzt. Wir das? Man wählt nicht einen, sondern n mögliche Schlüssel. Diese bringt man in eine Reihenfolge. Zur Kodierung des ersten Zeichens des Klartextes nutzt man den ersten Schlüssel, dann den zweiten usw. bis n erreicht ist. Danach beginnt man wieder mit dem ersten Schlüssel. Offensichtlich ist die Schlüssellänge beliebig. Das Verfahren geht auf den französischen Kryptografen Blaise de Vigenere zurück. Um sich die Reihe der Schlüssel einfacher merken zu können, kann man auch einen Satz wählen aus dem Alphabet des Klartextes wählen. Der Schlüssel ist dann gleich der Position des Zeichens im Alphabet (also A steht für 1, B für 2 etc.) Ave Caesar als Klartext und dem Schlüssel geheim führt zum Geheimtext Ham Kjrdfz Das zu knacken ist schon deutlich komplizierter. Die Schwachstelle steckt aber in der Wiederholung des Schlüssels. Tatsächlich ist die Schlüssellänge ein Ansatz einer Cipher-Only Angriff. Ist diese bekannt, könnten sämtliche Schlüssel probiert werden. Je nach Länge kann das eine lösbare Aufgabe sein. Die Schlüssellänge kann zumindest recht gut erraten werden. Finden sich bswp. wiederholende Zeichenketten, so deuten diese darauf hin, dass dort der gleiche Text mit dem gleichen Teil des Schlüssels kodiert wurde. Der Abstand zwischen den beiden gleichen Zeichenketten ist dann die einfache Schlüssellänge bzw. ein Vielfaches davon. So kann je länger der Text umso sicherer die Schlüssellänge geschätzt und darauf basierend eine weitere Kryptoanalyse erfolgen. Wir wollen hier aber nicht tiefer auf die kryptoanalytischen Möglichkeiten eingehen, siehe [1]. 3.3.4 Sicheres Verfahren: One-time-pad und langer Schlüssel Hier soll ein praktisch nicht knackbares und einfach zu handhabendes System vorgestellt werden: Wir wählen einen Schlüssel, der die gleiche Länge hat wie der Klartext. Diesen Schlüssel nutzen wir nur einmal (one-time-pad). Eine solche Verschlüsselung bietet keine Angriffspunkte für eine Kryptoanalyse. In der Übung überlegen wir uns, warum dieses absolut sichere Verfahren leider so wenig eingesetzt wird. 3.4 Permutationsverfahren Bei Permutationsverfahren werden die Zeichen des Klartextes in ihrer Reihenfolge verändert. Dazu wird eine Blocklänge n definiert, z.b. 3. Nun werden 5
die Zahlen 1-n in einer beliebigen Reihenfolge (und möglichst nicht geordnet) notiert, z.b. 3,1,2. Nun wird der Klartext gewählt und jeweils blockweise verarbeitet: Ave Caesar besteht offenbar aus drei Blöcken. Nun werden die Blöcke anhand des Schlüssels umsortiert. In obigen Beispiel kommt also das Zeichen an der ersten Stelle an die Stelle 3, das zweite an die 1. Stelle und das dritte an die 2.: vea aecars Man spricht hier auch von einem Würfel. Das Verfahren ist recht einfach zu knacken, wenn man einzelne verwürfelte kurze Worte (Bigramme, Trigramme) identifizieren kann, wie im Beispiel Ave. Anhand dieser Worte lässt sich der Schlüssel ableiten. Deutlich schwerer und auch mit Rechner schwer zu knacken sind aber Doppelwürfel, d.h. die mehrfache Anwendung des Verfahrens, vorausgesetzt die Würfel sind lang und deren Längen sind teilerfremd. Lt. [1] ist das ein probates Mittel zur Verschlüsselung, wenn keine Rechner und One-Time-pads zur Verfügung stehen. 4 Asymmetrische / Symmetrische Chiffren Das Verschlüsseln ist eine Funktion mit zwei Parameter: Klartext, Schlüssel. Das Ergebnis ist der Geheimtext: encrypt(t,k e ) = c Das Dekodieren ist eine Funktion mit zwei Parametern: Geheimtext, Schlüssel. DAs Ergebnis ist der Klartext: decrypt(c,k d ) = t Wenn k e = k d, so spricht man von einem symmetrischen Verfahren, sonst von einem asymmetrischen. Symmetrische Verfahren sind in der Regel einfacher zu implementieren und performanter. Der Unterschied liegt in einem kleinen, aber fundamentalen Problem: Wie erhalten Sender und Empfänger den gleichen Schlüssel ohne dass Eve oder Mallory ihn in die Finger bekommen? Asymmetrische Verfahren benötigen keinen Schlüsselaustausch. In der Regel gibt es in diesen Verfahren Schlüsselpaare: Der eine dient dem Verschlüsseln, der andere dem Entschlüsseln. Damit lassen sich einige interessante Effekte erzielen - das überlegen wir uns aber im Seminar. Literatur [1] Klaus Schmeh. Kryptografie. dpunkt.verlag, 2009 (4. Auflage). 6