Einführung in die Kryptologie



Ähnliche Dokumente
Primzahlen und RSA-Verschlüsselung

Kryptographische Systeme (M, C, K, e, d) Symmetrische Verfahren (gleicher Schlüssel zum Verschlüsseln und Entschlüsseln):

6.2 Perfekte Sicherheit

11. Das RSA Verfahren und andere Verfahren

Was bisher geschah Kryptographische Systeme (M, C, K, e, d) Verfahren: symmetrisch klassisch: Verschiebechiffren (Spezialfall Caesar-Code)

10. Kryptographie. Was ist Kryptographie?

1 Kryptosysteme 1 KRYPTOSYSTEME. Definition 1.1 Eine Kryptosystem (P(A), C(B), K, E, D) besteht aus

Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer

Einführung in die Algebra

Austausch- bzw. Übergangsprozesse und Gleichgewichtsverteilungen

Der Zwei-Quadrate-Satz von Fermat

12 Kryptologie. ... immer wichtiger. Militär (Geheimhaltung) Telebanking, Elektronisches Geld E-Commerce

Schutz von Informationen bei Übertragung über unsichere Kanäle Beispiele für zu schützende Informationen

Klassische Verschlüsselungsverfahren

Einfache kryptographische Verfahren

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

1 Mathematische Grundlagen

Verschlüsselung. Kirchstraße 18 Steinfelderstraße Birkweiler Bad Bergzabern Fabian Simon Bfit09

7 Die Determinante einer Matrix

Vorlesung Kryptologie: Kapitel 1: Historische Chiffren

monoalphabetisch: Verschiebechiffren (Caesar), multiplikative Chiffren polyalphabetisch: Vigenère-Chiffre

10. Public-Key Kryptographie

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Kryptographie I Symmetrische Kryptographie

Data Mining: Einige Grundlagen aus der Stochastik

Zeichen bei Zahlen entschlüsseln

Kapitel 3: Etwas Informationstheorie

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume?

Das RSA-Verfahren. Armin Litzel. Proseminar Kryptographische Protokolle SS 2009

9.2. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83

Grundlagen der Kryptographie

Lenstras Algorithmus für Faktorisierung

Asymmetrische. Verschlüsselungsverfahren. erarbeitet von: Emilia Winkler Christian-Weise-Gymnasium Zittau

Beweisbar sichere Verschlüsselung

Modul Diskrete Mathematik WiSe 2011/12

WS 2008/09. Diskrete Strukturen

Lineare Gleichungssysteme

Verfügbarkeit (Schutz vor Verlust) Vertraulichkeit (Schutz vor unbefugtem Lesen) Authentizität (Schutz vor Veränderung, Fälschung)

Stefan Lucks Krypto und Mediensicherheit (2009) 4: Stromchiffren

Kryptologie. Verschlüsselungstechniken von Cäsar bis heute. Arnulf May

Musterlösungen zur Linearen Algebra II Blatt 5

Leitfaden Lineare Algebra: Determinanten

Mathematik für Informatiker II. Beispiellösungen zur Probeklausur. Aufgabe 1. Aufgabe 2 (5+5 Punkte) Christoph Eisinger Sommersemester 2011

Digitale Signaturen. Sven Tabbert

Kryptologie. Nicolas Bellm. 24. November 2005

7. Ringe und Körper. 7. Ringe und Körper 49

Lehreinheit E V2 Verschlüsselung mit symmetrischen Schlüsseln

Lineare Gleichungssysteme

Kryptographische Systeme (M, C, K, E, D) Symmetrische Verfahren (gleicher Schlüssel zum Verschlüsseln und Entschlüsseln):

Grundbegriffe der Informatik

Algorithmische Kryptographie

2 Die Darstellung linearer Abbildungen durch Matrizen

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen

Theoretische Grundlagen der Informatik WS 09/10

Informationssicherheit - Lösung Blatt 2

Fachschaft Mathematik und Informatik (FIM) LA I VORKURS. Herbstsemester gehalten von Harald Baum

5. Übung zum G8-Vorkurs Mathematik (WiSe 2011/12)

Lösungsvorschlag für die Probeklausuren und Klausuren zu Algebra für Informations- und Kommunikationstechniker bei Prof. Dr.

Lineare Gleichungssysteme I (Matrixgleichungen)

10.6 Authentizität. Geheimhaltung: nur der Empfänger kann die Nachricht lesen

Public-Key-Kryptosystem

Beispiel Zusammengesetzte Zufallsvariablen

27. Algorithmus der Woche Public-Key-Kryptographie Verschlüsseln mit öffentlichen Schlüsseln

Zahlen und das Hüten von Geheimnissen (G. Wiese, 23. April 2009)

Güte von Tests. die Wahrscheinlichkeit für den Fehler 2. Art bei der Testentscheidung, nämlich. falsch ist. Darauf haben wir bereits im Kapitel über

Exkurs Kryptographie

Informationsblatt Induktionsbeweis

Approximation durch Taylorpolynome

Matrizennorm. Definition 1. Sei A M r,s (R). Dann heißt A := sup die Matrixnorm. Wir wissen zunächst nicht, ob A eine reelle Zahl ist.

A1.7: Entropie natürlicher Texte

Kryptographische Verfahren auf Basis des Diskreten Logarithmus

Nachrichten- Verschlüsselung Mit S/MIME

LU-Zerlegung. Zusätze zum Gelben Rechenbuch. Peter Furlan. Verlag Martina Furlan. Inhaltsverzeichnis. 1 Definitionen.

Kryptographie eine erste Ubersicht

Lösungen zum 3. Aufgabenblatt

Authentikation und digitale Signatur

Was können Schüler anhand von Primzahltests über Mathematik lernen?

Programmiersprachen und Übersetzer

Gleichungen Lösen. Ein graphischer Blick auf Gleichungen

3. Zusammenhang. 22 Andreas Gathmann

Elliptische Kurven in der Kryptographie

Codierungstheorie Rudolf Scharlau, SoSe

Umstellung des Schlüsselpaares der Elektronischen Unterschrift von A003 (768 Bit) auf A004 (1024 Bit)

8: Zufallsorakel. Wir suchen: Einfache mathematische Abstraktion für Hashfunktionen

9 Schlüsseleinigung, Schlüsselaustausch

Division Für diesen Abschnitt setzen wir voraus, dass der Koeffizientenring ein Körper ist. Betrachte das Schema

Grundlagen der Verschlüsselung und Authentifizierung (2)

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

Zur Sicherheit von RSA

Erinnerung/Zusammenfassung zu Abbildungsmatrizen

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Persönliche Zukunftsplanung mit Menschen, denen nicht zugetraut wird, dass sie für sich selbst sprechen können Von Susanne Göbel und Josef Ströbl

Professionelle Seminare im Bereich MS-Office

Was ist Sozial-Raum-Orientierung?

Minimale Darstellungen, Kommutator- und Fixräume, projektive Geometrie

Rekursionen. Georg Anegg 25. November Methoden und Techniken an Beispielen erklärt

Repetitionsaufgaben Wurzelgleichungen

Wahrscheinlichkeitstheorie. Zapper und

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Mathematischer Vorbereitungskurs für Ökonomen

Transkript:

Einführung in die Kryptologie von Peter Hellekalek Institut für Mathematik Universität Salzburg Hellbrunner Straße 34 A-5020 Salzburg, Austria Tel: +43-(0)662-8044-5310 Fax: +43-(0)662-8044-137 e-mail: peter.hellekalek@sbg.ac.at web: http://random.mat.sbg.ac.at/ Salzburg, 23. Juni 2003

2

Inhaltsverzeichnis 1 Grundlagen und historische Verfahren 5 1.1 Definitionen.............................. 6 1.2 Verschiebeschiffre........................... 7 1.3 Substitutionschiffre.......................... 9 1.4 Häufigkeitsanalyse.......................... 12 1.5 Affine Chiffre............................. 16 1.6 Vigenèrechiffre............................ 18 1.7 Hillchiffre............................... 21 1.8 Transpositionschiffren........................ 25 1.9 Stromchiffren............................. 27 1.10 Zufallszahlen............................. 32 1.11 Einige Konzepte von Shannon.................... 40 1.12 Zusammenfassung.......................... 41 2 Blockchiffren: DES und AES 43 2.1 Grundlegendes zu Blockchiffren................... 44 2.2 Zur Arithmetik in Endlichen Körpern............... 45 2.3 DES.................................. 48 2.3.1 Betriebsarten......................... 56 2.4 Der Advanced Encryption Standard AES............. 61 2.4.1 Statistisches Testen von AES................ 63 3 Asymmetrische Kryptographie 67 3.1 Einleitung............................... 68 3.2 Das RSA-Verfahren.......................... 73 3.3 Blinde Signatur nach David Chaum................ 76 3.4 Große Primzahlen.......................... 78 3

4 INHALTSVERZEICHNIS 3.5 Der Diffie-Hellman Schlüsselaustausch............... 81 3.6 Kryptographische Werkzeuge.................... 83 3.6.1 Einwegfunktionen...................... 84 3.6.2 Hashfunktionen........................ 85

Kapitel 1 Grundlagen und historische Verfahren Inhalt In diesem Kapitel klären wir zunächst einige Begriffe und lernen dann berühmte klassische Verfahren der Kryptographie kennen. Ziel Wir stellen zentrale Konzepte der Kryptographie vor. Auf den Erfahrungen, die man mit ihnen im Lauf der Geschichte machte, baut alles Weitere auf. Stichwörter Die Stichwörter zu diesem Kapitel lauten Verschlüsselungssystem, Chiffre Cäsarchiffre und Verschiebechiffre Substitutionschiffre Häufigkeitsanalyse Vigenére- und Hillchiffre one-time pad Zufallszahlengeneratoren Literatur Ertel, R.: Kryptographie. Springer Verlag, Berlin 1998. Stinson, D. R.: Cryptography. CRC Press, Boca Raton, 1995. 5

6 KAPITEL 1. GRUNDLAGEN UND HISTORISCHE VERFAHREN 1.1 Definitionen 1.1 Bemerkung (Ziele der Lehrveranstaltung) Die Ziele der Lehrveranstaltung lauten: Diskussion der grundlegenden kryptographischen Verfahren: historische Verfahren moderne symmetrische Verfahren (DES, AES) moderne asymmetrische Verfahren (RSA, DH,... ) Hashfunktionen Hinweise auf das gesellschaftliche und technologische Umfeld: digitale Signatur e-commerce internet-security cyberwar 1.2 Definition (Kryptologie) Kryptologie ist die Wissenschaft vom Geheimhalten von Geheimnissen. Sie bietet Methoden an, sogenannte Geheimschriften, um die Vertraulichkeit von Daten sicherzustellen. Wir unterscheiden zwischen den folgenden Teilgebieten der Kryptologie: Kryptologie (Wissenschaft von der Geheimhaltung) Steganographie (versteckte Geheimschriften) eigentliche Kryptologie (offene Geheimschriften) Kryptographie Kryptanalyse 1.3 Bemerkung In dieser Vorlesung geht es fast ausschließlich um die eigentliche Kryptologie, und hier vor allem um die Kryptographie. Beispiele für steganographische Verfahren gibt es seit der Antike (rasierte Schädel von Sklaven, Wachstafeln: siehe Vortrag), effizientere Methoden sind unsichtbare Tinten, der Microdot (siehe 2. Weltkrieg), sowie die modernen Verfahren, die Daten in Bildern oder Soundund Video-Dateien verstecken. Link: http://www.jjtc.com/security/ 1.4 Definition (Verschlüsselungsverfahren, engl.: cryptosystem) Unter einem Verschlüsselungsverfahren oder Kryptosystem verstehen wir ein Quintupel (P, C, K, E, D) mit den folgenden Eigenschaften:

1.2. VERSCHIEBESCHIFFRE 7 1. P ist eine nichtleere endliche Menge und wird der Klartextraum genannt. Die Elemente von P heißen Klartextelemente (engl.: plaintext elements). 2. C ist eine nichtleere endliche Menge und wird der Chiffretextraum genannt. Die Elemente von C heißen Chiffretextelemente (engl.: ciphertext elements). Oft sagt man auch: Geheimtextraum bzw. Geheimtextelemente 3. K ist eine nichtleere endliche Menge und wird der Schlüsselraum genannt. Die Elemente von K heißen Schlüssel (engl.: keys). 4. E = {e k : k K} ist eine Familie von Funktionen mit der Eigenschaft: k K : e k : P C bijektiv. Die Elemente von E heißen Verschlüsselungsfunktionen (engl.: encryption functions). 5. D = {d k : k K} ist eine Familie von Funktionen mit der Eigenschaft: k K : d k : C P bijektiv Die Elemente von D heißen Entschlüsselungsfunktionen (engl.: decryption functions). 6. Es gilt folgende Beziehung zwischen den Elementen von E und D, die sogenannte Haupteigenschaft: k K k K : d k (e k (p)) = p p P 1.5 Bemerkung Ein Klartextelement beziehungsweise ein Chiffretextelement kann aus einem einzelnen Zeichen oder einem Zeichenblock bestehen, zum Beispiel: 1 0 1 0 0 1 1 0 1 1... einzelne Zeichen 01101010 0110110... Zeichenblöcke 1.2 Verschiebeschiffre 1.6 Beispiel (Verschiebechiffre) Wir identifizieren das Alphabet Σ = {a, b, c,..., x, y, z} mit der Menge der Restklassen modulo 26, Z 26 = {0, 1,..., 25}: a 0 b 1. z 25 Wir wählen P = C = K = Z 26 und definieren für k K die folgenden Ver- und Entschlüsselungsfunktionen: e k (p) = p + k d k (c) = c k

8 KAPITEL 1. GRUNDLAGEN UND HISTORISCHE VERFAHREN Hinweis: Beachten Sie, dass hier im Restklassenring (Z 26, +, ) gerechnet wird! Das Quintupel (P, C, K, E, D) ist ein Kryptosystem. Dazu ist nur zu zeigen: d k (e k (p)) = (p + k) k = p p P = Z 26, k K = Z 26. 1.7 Definition (Verschiebechiffre) Das Kryptosystem von Beispiel 1.6 heißt eine Verschiebechiffre. 1.8 Bemerkung Wir werden im Folgenden die Restklassen 0, 1, 2,... durch die Repräsentanten 0, 1, 2,... ersetzen und an Stelle von Operationen wie 7 3 + 9 = 4 im Ring (Z 26, +, ) einfach modulare Arithmetik verwenden: 7 3 + 9 4 (mod 26) Also: Wir lassen die Querstriche weg, schreiben an Stelle von = und fügen (mod 26) an. Wenn dies zu umständlich wird, dann schreiben wir manchmal sogar nur 7 3 + 9 4 (26). 1.9 Bemerkung (Cäsar-Chiffre) Die spezielle Verschiebechiffre mit dem Schlüssel k = 3 wird auf Grund ihrer Geschichte Cäsar-Chiffre genannt: Klartext a v e c a e s a r... Zahlencode 0 21 4 2 0 4 18 0 17... Schlüssel 3 3 3 3 3 3 3 3 3... Geheimtextcode 3 24 7 5 3 7 21 3 20... Geheimtext D Y H F D H V D U... 1.10 Bemerkung (Sicherheit der Verschiebechiffre) Mit der Sicherheit der Verschiebechiffre ist es nicht weit her. 1. Die Verschiebechiffre ist nicht sicher: Durch Ausprobieren aller möglichen Schlüssel können wir leicht auf den Klartext kommen. 2. Sei Y = Anzahl der Versuche, um den Geheimtext zu entschlüsseln, bei zufälliger Wahl des Schlüssels k 0. E[Y ] = 25 2 = 12.5 1.11 Bemerkung (Allgemeine Sicherheitsaspekte) Bereits das einfache Beispiel der Verschiebechiffre zeigt exemplarisch einige grundlegende Tatsachen auf: 1. Wenn der Schlüsselraum zu klein ist, dann läßt sich das Verfahren schon mit Durchprobieren aller möglichen Schlüssel knacken. Eine derartige brutale Methode heißt eine brute-force-attacke. Erkenntnis: Wir müssen den Schlüsselraum K möglichst groß machen.

1.3. SUBSTITUTIONSCHIFFRE 9 2. Sender und Empfänger der Nachricht müssen bei derartigen Kryptosystemen den gleichen Schlüssel besitzen. Erkenntnis: Wir müssen den Schlüssel auf einem gesicherten Weg übermitteln (Kurier,... ) übermitteln. Dies ist aufwendig. 1.3 Substitutionschiffre 1.12 Bemerkung (Permutationen) Sei S eine beliebige Menge. Eine Permutation von S ist eine bijektive Abbildung π : S S. Wenn S endlich viele Elemente besitzt, n = S, dann läßt sich jede Permutation von S in der Form ( ) a1 a π = 2... a n π(a 1 ) π(a 2 )... π(a n ) schreiben. Bezeichne S n die Menge der Permutationen von S. Dann heißt S n die symmetrische Gruppe (über S), da offensichtlich das Paar (S n, ) (wo mit natürlich die Hintereinanderausführung von Funktionen gemeint ist) eine Gruppe bildet. (S n, ) ist i.a. nicht kommutativ. Dies ist am Beispiel der S 3 (und damit für alle n 3) leicht einzusehen. Aus der diskreten Mathematik wissen wir, dass S n = n!. 1.13 Beispiel Wir betrachten den Fall n = 3 etwas genauer: { ( ) ( ) ( ) } 1 2 3 1 2 3 1 2 3 S 3 =,,,... 1 2 3 2 1 3 2 3 1 } {{ } } {{ } } {{ } =:f =:g f g = Identität auf {1, 2, 3} g 2 = f g 2 = ( ) 1 2 3 1 3 2 ( 1 2 ) 3 3 1 2 ( ) 1 2 3 = g f 3 2 1 ( ) 1 2 3 = g f 3 2 1 Es gilt (nachrechnen!): S 3 = {e, f, g, g 2, f g, f g 2 } Sei S = {1, 2,..., n} und π S n. Die Permutation π heißt zyklisch, wenn es eine Teilmenge {i 1, i 2,..., i k } von S gibt mit π(i 1 ) = i 2, π(i 2 ) = i 3,... π(i k ) = i 1

10 KAPITEL 1. GRUNDLAGEN UND HISTORISCHE VERFAHREN und die übrigen Elemente von S fest bleiben. Man schreibt dann in der sogenannten Zyklenschreibweise π = ( i 1 i 2... i k ). 1.14 Beispiel Wir machen uns mit der Zyklenschreibweise vertraut: ( ) 1 2 3 = ( 1 2 ) 2 1 3 ( ) 1 2 3 = ( 1 3 2 ) 3 1 2 ( ) 1 2 3 4 = ( 1 3 ) ( 2 4 ) 3 4 1 2 Am Beispiel sehen wir, daß manche Permutationen ein Produkt von Zyklen sind, wobei diese Zyklen paarweise disjunkt sind. Diese Eigenschaft gilt ganz allgemein, also für beliebige Permutationen π S n, n N. 1.15 Definition (Substitutionschiffre, Giovanni Battista Argenti, um 1580) Unter einer Substitutionschiffre versteht man ein Chiffriersystem der folgenden Gestalt: sei P = C = Z 26, sei K = S 26, die Menge der Permutationen von 26 Elementen, und seien die Verschlüsselungs- und Entschlüsselungsfunktionen definiert durch e π (p) := π(p) d π (c) := π 1 (c) (π S 26 ) 1.16 Bemerkung (Kryptanalyse der Substitutionschiffre) 1. Jedem Klartextelement p ist stets dasselbe Geheimtextelement c zugeordnet. 2. Gleiche Klartextblöcke werden in gleiche Geheimtextblöcke übergeführt. 3. Wenn wir nur den Geheimtext kennen, dann bleibt uns nur die sogenannte ciphertext-only-attacke übrig, bei der wir uns auf statistische Methoden stützen: Jedem Klartextelement ist ja stets das gleiche Geheimtextelement zugeordnet. Wir können daher in deutschen, englischen,... Texten rasch das Bild von zum Beispiel dem Buchstaben e unter der Substitution herausfinden und dann diese auf einer statistischen Analyse beruhende Methode fortsetzen: Häufigkeitsanalyse der Buchstaben Buchstabenpaare Buchstabentripel Die statistische Analyse längerer Klartextblöcke ist im Praktischen selten sinnvoll.

1.3. SUBSTITUTIONSCHIFFRE 11 4. Wenn wir vermuten dürfen, daß im Klartext bestimmte Wörter vorkommen (wie z.b. das Wort communication), dann führen wir eine sogenannte Mustersuche durch (siehe [Bau97, Sti95] für ausführliche Beispiele). 5. Der große Schlüsselraum K mit K = 26! 4 10 26 bietet keinen ausreichenden Schutz gegen das Brechen der Chiffre. Die Substitutionschiffre kann durch die beschriebene einfache statistische Analyse und eine Mustersuche gebrochen werden. Erkenntnis: Große Schlüsselräume sind für die Sicherheit eines Chiffrierverfahrens notwendig, aber nicht hinreichend!

12 KAPITEL 1. GRUNDLAGEN UND HISTORISCHE VERFAHREN 1.4 Häufigkeitsanalyse Wir haben bereits in Zusammenhang mit der Substitutionschiffre gesehen, dass eine Häufigkeitsanalyse sehr wirkungsvoll sein kann. In diesem Abschnitt geben wir einige Beispiele für diese Anwendung statistischer Methoden. In den ersten Graphiken präsentieren wir die Buchstabenhäufigkeiten der deutschen Sprache. Natürlich kann in einzelnen Texten die Verteilung der Häufigkeiten von diesen gemittelten Werten abweichen. a 0.0647 n 0.0984 b 0.0193 o 0.0298 c 0.0268 p 0.0096 d 0.0483 q 0.0002 e 0.1748 r 0.0754 f 0.0165 s 0.0683 g 0.0306 t 0.0613 h 0.0423 u 0.0417 i 0.0773 v 0.0094 j 0.0027 w 0.0148 k 0.0146 x 0.0004 l 0.0349 y 0.0008 m 0.0258 z 0.0114 Abbildung 1.1: Buchstabenhäufigkeiten im Deutschen, in Zahlen Wir ordnen die Buchstaben nach ihrer Häufigkeit, beginnend mit dem häufigsten Buchstaben: 0.175 0.15 0.125 0.1 0.075 0.05 0.025 e n i r s a t d h u l g o c m b f w k z p v j y x q Abbildung 1.2: Buchstabenhäufigkeiten im Deutschen als Graphik

1.4. HÄUFIGKEITSANALYSE 13 Wenn wir die Häufigkeiten alphabetisch ordnen, dann erhalten wir die folgende Graphik: 0.175 0.15 0.125 0.1 0.075 0.05 0.025 a b c d e f g h i j k l m n o p q r s t u v w x y z Abbildung 1.3: Buchstabenhäufigkeiten im Deutschen Eine wichtige Rolle spielt die Analyse der Paarhäufigkeiten, denn schließlich tritt nicht jedes mögliche Paar von Buchstaben auf und unter jenen Paaren, die im Deutschen vorkommen, sind manche häufig anzutreffen und manche sind sehr selten. Wir geben die zehn häufigsten Paare an: er 0.0409 en 0.0400 ch 0.0242 de 0.0227 ei 0.0193 nd 0.0187 te 0.0185 in 0.0168 ie 0.0163 ge 0.0147 Abbildung 1.4: Die zehn häufigsten Paare im Deutschen

14 KAPITEL 1. GRUNDLAGEN UND HISTORISCHE VERFAHREN 0.04 0.03 0.02 0.01 er en ch de ei nd te in ie ge Abbildung 1.5: Die zehn häufigsten Paare im Deutschen Dieselbe Art von Häufigkeitsanalyse kann man auch für die Tripel durchführen: 0.012 0.01 0.008 0.006 0.004 0.002 ein ich nde die und der che end gen sch Abbildung 1.6: Die zehn häufigsten Tripel im Deutschen

1.4. HÄUFIGKEITSANALYSE 15 Zwei Beispiele aus der Literatur (J. W. von Goethe: Iphigenie auf Tauris und Hugo von Hofmannsthal: Reitergeschichte): 0.175 0.15 0.125 0.1 0.075 0.05 0.025 a b c d e f g h i j k l m n o p q r s t u v w x y z 0.175 0.15 0.125 0.1 0.075 0.05 0.025 a b c d e f g h i j k l m n o p q r s t u v w x y z Abbildung 1.7: J. W. von Goethe und Hugo von Hofmannsthal Die kleinen Unterschiede in den Häufigkeitsverteilungen sind deutlich zu erkennen. Ganz ähnliche Aussagen erhält man für englische Texte und viele andere Sprachen. In der Kryptanalyse geht man wesentlich mehr auf die Details einer Sprache ein, als wir es hier getan haben. Es wird dann zwischen verschiedenen Texttypen unterschieden, wie etwa militärischen Nachrichten, wissenschaftlichen Texten oder diplomatischen Mitteilungen, da sich zwischen all diesen Typen von Texten die Häufigkeitsverteilungen leicht ändern. Geheimdienste verfügen seit langem über umfangreiches Datenmaterial, um diese Art von Analyse durchführen zu können.

16 KAPITEL 1. GRUNDLAGEN UND HISTORISCHE VERFAHREN 1.5 Affine Chiffre 1.17 Beispiel Sei P = C = Z 26. Für welche Elemente a, b Z 26 ist die Abbildung eine bijektive Abbildung? Die Abbildung x a x + b (x Z 26 ) y y + b (y Z 26 ) ist offensichtlich eine bijektive Abbildung auf Z 26. Daher müssen wir nur noch untersuchen, wann x a x (x Z 26 ) bijektiv auf Z 26 ist. Für jede Abbildung einer endlichen Menge in sich gilt die Beziehung bijektiv injektiv surjektiv, daher untersuchen wir nur die Surjektivität von x a x: x a x ist surjektiv c Z 26 : x mit a x = c c Z : x Z mit a x c (mod 26) die Lösbarkeitsbedingung muss für alle c gelten (a, 26) = 1 Die Abbildung x a x+b, x Z 26, ist eine Permutation von Z 26 genau dann, wenn (a, 26) = 1. Sei nun K = {(a, b) : (a, 26) = 1, b beliebig}, sei e (a,b) : P C die Verschlüsselungsfunktion zum Schlüssel k = (a, b), e (a,b) (p) = a p + b (a, b) K. Die zugehörige Dechiffrierfunktion d (a,b) : C P lautet: 1.18 Definition (Affine Chiffre) Diese Chiffre heißt eine affine Chiffre. 1.19 Bemerkung d (a,b) (c) := a 1 (c b). 1. Die affine Chiffre ist ein Spezialfall der Substitutionschiffre. 2. Für den Schlüsselraum gilt: {a Z 26 : (a, 26) = 1} = ϕ(26) = 12. Es folgt: K = ϕ(26) 26 = 12 26 = 312.

1.5. AFFINE CHIFFRE 17 3. Die Verschiebechiffre ist ein Spezialfall der affinen Chiffre, hier ist a = 0. 1.20 Beispiel Wir betrachten das Beispiel (a, b) = (15, 3). Die Verschlüsselungsfunktion e (15,3) zum Schlüssel k = (15, 3) lautet: e (15,3) : p 15 p + 3 Die Entschlüsselungsfunktion d (15,3) lautet: d (15,3) (c) = 7 (c 3) Diese Entschlüsselungsfunktion wurde auf folgende Weise gefunden. Wir betrachten als Erstes 15 x = 1 15 x 1 (mod 26). Für die Lösung dieser linearen Kongruenz untersuchen wir die linear diophantische Gleichung 15 x + 26 y = 1. Die Lösbarkeitsbedingung dieser Gleichung lautet (15, 26) = (3 5, 2 13) = 1. Wir wenden den Euklidschen Algorithmus an, um eine Lösung dieser Gleichung zu finden: 26 = 1 15 + 11 1 = 4 3 15 = 1 11 + 4 11 = 2 4 + 3 4 = 1 3 + 1 3 = 3 1 = 4 (11 2 4) = 3 4 11 = 3 (15 11) 11 = 15 3 4 11 = 15 3 4 (26 15) = 15 7 + 26 ( 4) Die modulo 26 eindeutige Lösung der linearen Kongruenz 15 x 1 (mod 26) lautet daher x 7 (mod 26). 1.21 Bemerkung (Kryptanalyse zur affinen Chiffre) Wir wissen, daß es sich um eine affine Chiffre handelt und müssen aus dem Geheimtext den Schlüssel (a, b) bestimmen. Auf Grund des Studiums der Häufigkeitsverteilungen vermuten wir Wir erhalten zwei Gleichungen: e L und i T (4 11) (8 19) a 4 + b = 11 a 8 + b = 19

18 KAPITEL 1. GRUNDLAGEN UND HISTORISCHE VERFAHREN Als Kongruenzen geschrieben: a 4 + b 11 (mod 26) a 8 + b 19 (mod 26) 4 a 8 (mod 26) 2 a 4 (mod 13) a 2 (mod 13) Kandidaten für a Z 26 sind daher die Restklassen 2 und 15. Wegen (2, 26) = 2 1 fällt der Kandidat a = 2 weg, wegen (15, 26) = 1 folgern wir, dass a = 15 und somit b = 3 gilt. Damit lautet der gesuchte Schlüssel (a, b) = (15, 3). 1.22 Bemerkung (Sicherheitsaspekte) Die Linearität der affinen Chiffre hat es uns ermöglicht, durch einfaches Gleichungslösen das System zu knacken. Allgemein gilt in der Kryptographie das Prinzip, dass lineare Verfahren durch das Lösen linearer Gleichungssysteme gebrochen werden können. Erkenntnis: Linearität der Chiffre ist gefährlich, wir benötigen nichtlineare Verfahren. 1.6 Vigenèrechiffre Das Grundübel der Substitutionschiffre ist die Tatsache, dass jedem Klartextelement genau ein Geheimtextelement zugeordnet wird und diese Zuordnung während der Verschlüsselung konstant bleibt. Daher reicht eine recht einfache statistische Analyse aus, um solche Chiffren zu knacken. Einen großen Fortschritt bei diesem Problem bedeutete die Vigenere-Chiffre, bei der die Häufigkeiten verschleiert werden. 1.23 Definition (Vigenère-Chiffre, ca. 16. Jahrhundert) Für ein festes m N sei P = C = K = Z m 26. Die Ver- und Entschlüsselungsfunktionen seien wie folgt definiert: e k (p) = p + k = (p 1 + k 1, p 2 + k 2,..., p m + k m ), d k (c) = c k = (c 1 k 1, c 2 k 2,..., c m k m ), wobei p = (p 1,..., p m ) P, c = (c 1,..., c m ) C und k = (k 1,..., k m ) K. Das Tupel (P, C, K, E, D) heißt eine Vigenère-Chiffre. 1.24 Bemerkung 1. Die Vigenere-Chiffre ist eine polyalphabetische Chiffre: jeder Buchstabe des Klartextes wird in verschiedene Geheimtextbuchstaben übergeführt. Damit wird die Häufigkeitsanalyse wesentlich erschwert. (In Gegensatz dazu wird bei einer monoalphabetischen Chiffre jedem Klartextbuchstaben ist genau ein Geheimtextbuchstabe zugeordnet. Ein typisches Beispiel dazu ist die Substitutionschiffre)

1.6. VIGENÈRECHIFFRE 19 2. Wie wir an den Beispielen zur Vigenère-Chiffre gesehen haben, werden die Strukturen im Klartext (wie Häufigkeiten, Muster,... ) umso besser zerstört, je länger die Schlüsselphrase ist. Wir untersuchen nun an einem Beispiel, wie sich die Häufigkeitsverteilung ändert, wenn wir mit dem (relativ kurzen aber doch recht zufälligen ) Schlüsselwort hellekalek einen längeren Text verschlüsseln. Als Erstes die Häufigkeitsverteilung des Klartextes. Wir haben die Häufigkeiten alphabetisch geordnet, es ergibt sich folgende Graphik (Text: J. W. von Goethe, Iphigenie auf Tauris; siehe auch Abbildung 1.7): 0.175 0.15 0.125 0.1 0.075 0.05 0.025 a b c d e f g h i j k l m n o p q r s t u v w x y z Abbildung 1.8: Buchstabenhäufigkeiten im Klartext Im Vergleich dazu hat sich die Häufigkeitsverteilung im Geheimtext dramatisch geändert: 0.04 0.03 0.02 0.01 a b c d e f g h i j k l m n o p q r s t u v w x y z Abbildung 1.9: Buchstabenhäufigkeiten im Geheimtext Die Kryptanalyse mittels Häufigkeitsverteilungen, die bei der Substitutionschiffre so hilfreich war, versagt hier (aber das ist auch beabsichtigt!).

20 KAPITEL 1. GRUNDLAGEN UND HISTORISCHE VERFAHREN Nicht nur bei den einzelnen Geheimtextbuchstaben wurde die Häufigkeitsverteilung deutlich sichtbar eingeebnet, sondern auch bei den Paaren und Tripeln im Geheimtext: 0.004 0.003 0.002 0.001 mi te yn yf xd wp kk ia dw cb 0.001 0.0008 0.0006 0.0004 0.0002 ynluxwsdvqqpmuijfuianhmodwfaqd Abbildung 1.10: Paare und Tripel im Geheimtext Es ist damit klar, dass die Vigenèrechiffre ihre Aufgabe, nämlich die Häufigkeiten einzuebnen, sehr gut erfüllt (siehe Abbildung 1.5 und 1.6 für die Verteilungen bei Klartexten). Wir werden in Zusammenhang mit Stromchiffren nochmals auf die Vigenèrechiffre zurückkommen und den Einfluß des Schlüsselwortes auf die Häufigkeitsverteilungen im Klartext untersuchen (siehe Kapitel 1.9).

1.7. HILLCHIFFRE 21 1.7 Hillchiffre 1.25 Bemerkung (Matrizen über Ringen) Sei (R, +, ) ein kommutativer Ring mit Einselement. Typische Beispiele für solche Ringe sind der Restklassenring Z m oder der Ring Z der ganzen Zahlen. Sei A = (a ij ) eine n n-matrix über R. Sei A ij jene (n 1) (n 1)- Teilmatrix, die entsteht, wenn in A die i-te Zeile und die j-te Spalte gestrichen wird. 1.26 Bemerkung (Identität von Lagrange) Für jedes i {1,..., n} gilt die folgende Identität: det A = n ( 1) i+j a ij det A ij. j=1 Diese Identität gilt in analoger Weise auch für jedes j {1,..., n}. Nach der Lagrangeschen Identität gilt insbesondere die bekannte Regel ( ) a11 a det 12 = a a 21 a 11 a 22 a 12 a 21. 22 Aus diesem Beispiel und aus der vorangegangenen Identität folgt: A eine 2 2-Matrix über R det A R. A eine n n-matrix über R det A R Bezeichne M(n, R) die Menge der n n-matrizen über dem Ring R und sei I die n n-einheitsmatrix. Wir nennen A M(n, R) invertierbar über R, wenn es in der Menge M(n, R) eine Inverse zu A gibt: A A 1 = A 1 A = I. 1.27 Bemerkung (Teilbarkeit in Ringen) In einem Ring (R, +, ) wird die Teilbarkeit von Elementen wie im Ring (Z, +, ) definiert: b teilt a c R : a = b c (a, b, c R) Bezeichnung: b a Das Ringelement a heißt eine Einheit, wenn a 1. Dazu muß im Ring (R, +, ) natürlich ein Einselement existieren! 1.28 Proposition Sei (R, +, ) ein kommutativer Ring mit Einselement und sei A M(n, R). Dann gilt: A invertierbar über R det A ist eine Einheit von R.

22 KAPITEL 1. GRUNDLAGEN UND HISTORISCHE VERFAHREN Beweis. Sei A invertierbar über R. A 1 M(n, R) mit A A 1 = I det A det } {{ A 1 } = det(a A 1 ) = det I = 1 R det A 1 Umkehrung: es sei nun det A 1 vorausgesetzt. Die Adjunkte A (engl.: adjoint) zu A ist eine Matrix in M(n, R), die folgendermaßen definiert ist: A = ( ( 1) i+j det A ji ). Wegen der Voraussetzung det A 1 folgt det A 0. Für die Matrix B := 1 det A A gilt wegen det A 1, dass B M(n, R). Weiters ist aus der linearen Algebra bekannt, dass die Matrix B die inverse Matrix zu A ist. Nun ist aber das inverse Element stets eindeutig bestimmt. Die inverse Matrix zur Matrix A ist nichts anderes als das inverse Element zu A bezüglich der (Matrizen-)Multiplikation. Es gilt also A 1 = 1 det A A. Somit liegt die Matrix A 1 in der Menge M(n, R). Daher ist A invertierbar über R. Wir haben in dieser Vorlesung mit dem speziellen Ring (Z 26, +, ) gearbeitet. Wie sehen die Einheiten von Z 26 aus? 1.29 Lemma Sei A M ( n, Z 26 ). Die Matrix A ist invertierbar über Z 26 genau dann, wenn det A eine prime Restklasse ist, d.h. wenn det A Z 26. (Zur Erinnerung: eine prime Restklasse modulo 26 ist eine Restklassen a mit der Eigenschaft (a, 26) = 1. Allgemein lautet die prime Restklassengruppe modulo m nach Definition Z m = {a : (a, m) = 1}. Sie ist eine multiplikative Gruppe.) Beweis. a Einheit von Z 26 a 1 die lineare Kongruenz a x 1 (mod 26) ist lösbar (Lösbarkeitsbedingung!) (a, 26) = 1 a Z 26. Die Einheiten des Ringes (Z 26, +, ) sind also genau die primen Restklassen modulo 26.

1.7. HILLCHIFFRE 23 1.30 Beispiel ( ) 1 0 0 2 ( ) 11 0 0 3 ist nicht invertierbar über Z 26 (denn: det A = 2, (2, 26) 1) ist invertierbar über Z 26 (denn: det A = 33 = 7, (7, 26) = 1) 1.31 Bemerkung (Matrizen modulo 26) In der Praxis rechnen wir nicht mit Restklassen, sondern mit ganzen Zahlen modulo 26. Wann ist eine n n-matrix A mit Elementen aus Z invertierbar modulo 26? Die Antwort lautet: wenn (det A, 26) = 1. Die Begrünung ist einfach: anstatt mit A modulo 26 zu arbeiten, verwenden wir die zugehörige Matrix über Z 26. So ist zum Beispiel ( ) 12 3 A = 3 2 invertierbar modulo 26 (da det A = 15, (15, 26) = 1), aber die Matrix B = ( ) 11 3 3 2 ist nicht invertierbar modulo 26 (da det B = 13, (13, 26) 1). 1.32 Definition (Hillchiffre, Lester S. Hill, 1929) Sei m Z, m 2. Sei P = C = Z m 26 und sei K = {A M(m, Z 26 ) : A invertierbar über Z 26 } = GL(m, Z 26 ). Wir definieren die Verschlüsselungsfunktionen: k 11... k 1m e k (p) = k p =.. k m1... k mm die Entschlüsselungsfunktionen sind definiert als d k (c) = k 1 c = wobei k 1 die Inverse zu k in K ist. k 11... k 1m.. k m1... k mm 1 p 1. p m, c 1..., c m 1.33 Beispiel Um ein Beispiel zu geben: k = ( ) 12 3 3 2 k 1 = 15 1 ( 2 ) 3 3 12 (mod 26)

24 KAPITEL 1. GRUNDLAGEN UND HISTORISCHE VERFAHREN Was ist das Inverse zu 15 modulo 26? 15 x 1 (mod 26) bzw. 15 x + 26 y = 1 26 = 1 15 + 11 15 = 1 11 + 4 11 = 2 4 + 3 4 = 1 3 + 1 3 = 3 1 1 = 4 3 x 7 (mod 26) ( ) k 1 2 23 = 7 = 23 12 = 4 (11 2 4) = 4 3 + 11 ( 1) = (15 11) 3 + 11 ( 1) = 15 3 + 11 ( 4) = 15 3 + (26 15) ( 4) = 15 7 + 26 ( 4) ( ) 14 5 5 6 (mod 26) 1.34 Bemerkung (Schlüsselraum der Hill-Chiffre) Die Frage nach der Größe des Schlüsselraums der Hill-Chiffre ist mathematisch anspruchsvoll. Offensichtlich gilt K = GL(n, Z 26 ) = Anzahl der regulären m m-matrizen über Z 26. Für die Anzahl g(n, m) der regulären m m-matrizen über Z N existieren folgende Resultate (siehe dazu Bauer[Bau97, Kap. 5.2]): N = p prim: mit g(p, m) = (p m 1) (p m p) (p m p 2 )... (p m p m 1 ) = p m2 ρ(p, m), ρ(p, m) = m k=1 (1 1p k ). Wir beachten in diesem Zusammenhang, dass die Zahl p m2 die Anzahl aller möglichen m m-matrizen über Z m angibt. Speziell gilt für p = 2: g(2, 1) = 1, g(2, 2) = 6, g(2, 3) = 168, g(2, 4) = 20160. Sei nun N = p α eine Primzahlpotenz. Dann gilt die Beziehung g(p α, m) = g(p, m) (p α 1 ) m2 = (p α ) m2 ρ(p, m) = N m2 ρ(p, m). Sei nun N = p α1 1... pαr r eine beliebige natürliche Zahl. Dann gilt g(n, m) = N m2 ρ(p 1, m) ρ(p 2, m)... ρ(p r, m). Die Zahl ρ(p, m) kann näherungsweise über eine lakunäre Potenzreihe berechnet werden (Euler 1760): ( ) 1 lim ρ(p, m) = h, m p

1.8. TRANSPOSITIONSCHIFFREN 25 wobei h(x) = 1 + ( 1) k (x ) (3k2 k)/2 + x (3k2 +k)/2 k=1 = 1 x x 2 + x 5 + x 7 x 12 x 15 + x 22 + x 26... Für p > 10 ist bereits 1 1 p 1 ( ) 1 p 2 eine gute Näherung für h. Details zu p dieser Darstellung sowie weiterführende Literaturhinweise finden sich in [Bau97, Kap. 5.2]. Für uns ist der Fall N = 26 interessant: g(26, 1) = 12 g(26, 2) = 157 248 g(26, 3) = 1 634 038 189 056 Bauer[Bau97, Kap. 5.2] enthält eine Diskussion zur Konstruktion regulärer Matrizen über Z N. Der Autor merkt an, dass selbstreziproke Matrizen über Z N (d.h. A A = I) nicht so einfach abzählbar sind wie die regulären Matrizen, für ihre Anzahl ist keine Formel bekannt wie im Fall der regulären Matrizen! 1.8 Transpositionschiffren Wir führen eine anscheinend ganz neue Idee ein: die Klartextzeichen werden nicht verändert, sie tauschen aber ihre Plätze. 1.35 Definition (Permutationschiffre, Transpositionschiffre) Sei P = C = Z m 26 und sei K = S m = Menge der Permutationen von {1, 2,..., m}. Die Verschlüsselungsfunktionen seien definiert durch e π (p 1,..., p m ) = (p π(1),..., p π(m) ), π S m, die Entschlüsselungsfunktion seien festgelegt durch d π (c 1,..., c m ) = (c π 1 (1),..., p π 1 (m)), π S m. Dann heißt das Chiffriersystem (P, C, K, E, D) eine Permutations- oder Transpositionschiffre. 1.36 Beispiel Konkretes Beispiel: mit m = 6 ( ) 1 2 3 4 5 6 π = 3 4 6 1 2 5 π 1 = ( 1 2 3 4 5 ) 6 4 5 1 2 6 3 Klartext a n d i e f r a u b u n d e s m i n... Geheimtext D I F A N E U B N R A U......

26 KAPITEL 1. GRUNDLAGEN UND HISTORISCHE VERFAHREN 1.37 Bemerkung Die Permutationschiffre- bzw. Transpositions-Chiffre ist ein Spezialfall der Hillchiffre. Sei π S m der Schlüssel der Permutationschiffre mit P = C = Z m 26. Dann können wir π eine eindeutig bestimmte Matrix A(π) M(m, Z 2 ) zuordnen, bei der in jeder Zeile und jeder Spalte genau eine Eins steht (und sonst lauter Nullen): A(π) := (S i,π(j) ) m i,j=1. Zur Illustration ein konkretes Beispiel: m = 6 und π = ( ) 1 2 3 4 5 6 : A(π) = 3 4 6 1 2 5 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 Allgemein gilt: die Matrix A(π) entsteht aus der Einheitsmatrix E M(m, Z 2 ) durch Zeilen- und Spalten-Vertauschungen det A(π) { 1, 1} A(π) ist regulär modulo 26 A(π) definiert eine Hill-Chiffre 1.38 Definition (Permutationsmatrix) Sei A M(m, Z 2 ) eine Matrix, die in jeder Zeile und jeder Spalte genau eine Eins enthält. Dann heißt A eine Permutationsmatrix. Somit: Jedem Element π S m ist genau eine Permutationsmatrix zugeordnet. Umgekehrt ist leicht zu sehen, daß jeder Permutationsmatrix A M(m, Z 2 ) genau eine Permutation π S m mit A(π) = A zugeordnet ist. 1.39 Lemma Es gilt folgender Zusammenhang: π S m : A(π 1 ) = A(π) 1. Beweis. Für den Zusammenhang mit Ver- und Entschlüsselungsfunktionen gilt nach Definition: d π (c 1,..., c m ) = e π 1(c 1,..., c m ) = e π 1(e π (p 1,..., p m )) = (p 1,..., p m ) D.h.: (p 1,..., p m ) = e π 1(e π (p 1,..., p m )) Weiters gilt: e π (p 1,..., p m ) T = A(π) (p 1,..., p m ) T Aus diesen letzten beiden Identitäten schließen wir nun: A(π 1 ) A(π) = A(π) A(π 1 ) = E

1.9. STROMCHIFFREN 27 A(π 1 ) = A(π) 1. Insbesondere ist A(π) 1 wieder eine Permutationsmatrix. 1.40 Bemerkung (Produktchiffren) Die Arbeit eines Kryptanalytikers wird durch die Kombination verschiedenartiger Chiffren erschwert. Die Kombination von Chiffren nennt man eine Produktchiffre. Sei zum Beispiel P = C = K 1 = Z 8 2 und K 2 = S 8. Wir verschlüsseln zuerst mittels e (1) k (p) = p + k k K 1 und dann mittels e (2) σ (p 1,..., p 8) = (p σ(1),..., p σ(8) ) σ K 2 Sei zum Beispiel k = (1 0 0 1 0 1 1 0) und π = Für p = (0 0 0 0 1 1 1 0) erhalten wir e (1) k (p) = (1 0 0 1 1 0 0 0) ( ) 1 2 3 4 5 6 7 8. 3 7 4 1 8 5 2 6 und e (2) π (1 0 0 1 1 0 0 0) = (1 0 1 0 0 0 0 1). 1.9 Stromchiffren 1.41 Bemerkung (Block- und Stromchiffren) Die Chiffrierverfahren werden in zwei Typen aufgeteilt, je nachdem, wie sie den Klartext verschlüsseln: Blockchiffren Sie fassen den Klartext zu Blöcken zusammen und verschlüsseln dann der Reihe nach Block für Block. Stromchiffren Sie verschlüsseln jedes Klartextelement einzeln, üblicherweise mit jeweils verschiedenen Schlüsseln. Diese Unterscheidung ist recht oberflächlich und dient nur dazu, einen ersten Überblick zu schaffen. Tatsächlich ist es in der Praxis so, dass Blockchiffren als Stromchiffren eingesetzt werden können, je nach Betriebsmodus. 1.42 Definition (Stromchiffre) Für eine endliche, nichtleere Menge A bezeichne A die Menge der endlichen Folgen mit Elementen aus A. Eine Stromchiffre ist ein Chiffriersystem (P, C, K, E, D) mit folgenden Eigenschaften: 1. P = C = K = A

28 KAPITEL 1. GRUNDLAGEN UND HISTORISCHE VERFAHREN 2. Für jedes k A existieren zwei eindeutig bestimmte bijektive Funktionen e k : A A und d k : A A mit der Eigenschaft d k e k = e k d k = Identität 3. Verschlüsselung Sei p = (p i ) i 1 P und sei k = (k i ) i 1 K mindestens so lange wie p. Dann definieren wir die Verschlüsselungsfunktion durch e k (p) = (e ki (p i )) i 1. Sei c = (c i ) i 1 C und sei k = (k i ) i 1 K mindestens so lange wie c. Dann definieren wir die Entschlüsselungsfunktion durch d k (c) = (d ki (c i )) i 1. Die Folge p = (p i ) i 1 heißt der Klartextstrom, k = (k i ) i 1 heißt der Schlüsselstrom und c = (c i ) i 1 nennt man den Geheimtextstrom. 1.43 Definition (Synchrone Stromchiffre) Eine Stromchiffre heißt synchron, wenn der Schlüsselstrom (k i ) i 1 unabhängig ist vom Klartextstrom. Eine Stromchiffre heißt periodisch, wenn der Schlüsselstrom (k i ) i 1 eine periodische Folge ist, wenn also eine Zahl d N existiert mit k i+d = k i i N. Die kleinste natürliche Zahl d mit dieser Eigenschaft heißt die Periode des Schlüsselstroms. 1.44 Bemerkung Wir merken an: 1. Wir können die Vigenèrechiffre als eine periodische Stromchiffre auffassen: Sei k = (k 1,..., k m ) Z m 26 das Schlüsselwort. Dann setzen wir A = Z 26 und betrachten als Schlüsselstrom die periodische Folge k 1, k 2,..., k m, k 1, k 2,..., k m, k 1, k 2,... 2. Für moderne Stromchiffren verwendet man üblicherweise A = Z 2. Wir untersuchen nun den Einfluß, den die Länge und die Art des Schlüsselwortes auf die Häufigkeitsverteilungen im Vigenèreverfahren hat. Zunächst verschlüsseln wir mit einem kurzen Schlüsselwort (siehe Abbildungen 1.11 und 1.12). Als Klartext wurde Der zerbrochene Krug von Kleist verwendet.

1.9. STROMCHIFFREN 29 0.06 0.05 0.04 0.03 0.02 0.01 a b c d e f g h i j k l m n o p q r s t u v w x y z Abbildung 1.11: Vigenèrechiffre, Schlüsselwort: hellekalek 0.06 0.05 0.04 0.03 0.02 0.01 p e l o i r s y x d m c v w t h n k g b a f q z u j Abbildung 1.12: Vigenèrechiffre, Schlüsselwort: hellekalek

30 KAPITEL 1. GRUNDLAGEN UND HISTORISCHE VERFAHREN Der gleiche Text wird dann mit einem langen Schlüsselwort (50 zufällige Zeichen) verschlüsselt. Die Verteilung ändert sich auffallend (siehe Abbildungen 1.13 und 1.14). 0.05 0.04 0.03 0.02 0.01 a b c d e f g h i j k l m n o p q r s t u v w x y z Abbildung 1.13: Vigenèrechiffre, Schlüsselwort mit 50 Zeichen 0.05 0.04 0.03 0.02 0.01 i z q m y v u d c p e h x r t l n j b f s o g k w a Abbildung 1.14: Vigenèrechiffre, Schlüsselwort mit 50 Zeichen 1.45 Bemerkung Wir haben das folgende Phänomen beobachtet: je länger und je zufälliger das Schlüsselwort ist, desto mehr nähert sich die Verteilung der Häufigkeiten der Gleichverteilung an. Umso schwieriger wird es aber dann, mit der Methode der Häufigkeitsanalyse dieses Chiffrierverfahren zu attackieren.

1.9. STROMCHIFFREN 31 Im Folgenden bezeichne die Addition auf Z 2, also das wohlbekannte XOR in der Informatik. 1.46 Definition (Vernam-Chiffre, 1917) Sei A = Z 2. Die Vernam-Chiffre ist eine Stromchiffre mit der Verschlüsselungsfunktion e k (p) = (p i k i ) i 1 und der Entschlüsselungsfunktion d k (c) = (c i k i ) i 1, mit p = (p i ) i 1 P, c = (c i ) i 1 C und k = (k i ) i 1 K. 1.47 Definition (one-time pad) Ein one-time pad ist eine Vernamchiffre, in der der Schlüsselstrom eine Zufallsbitfolge ist. 1.48 Bemerkung Eine Zufallsbitfolge ist die Realisierung einer Folge unabhängiger, auf Z 2 identisch gleichverteilter Zufallsvariablen. Denken Sie dabei an das Ergebnis einer langen Reihe von Münzwürfen mit einer gerechten Münze. Wie arbeitet man mit one-time pads in der Praxis? Prinzipiell gibt es zwei Möglichkeiten, Zufallsbits und (über die Binärentwicklung) Zufallszahlen zu erzeugen: Hardwaregeneratoren Verwenden elektronisches Rauschen, radioaktive Zerfallsprozesse,... Link: www.mils.com Link: www.protego.com Link: www.pdhint.com Softwaregeneratoren Sie verwenden deterministische Algorithmen, um aus einer kurzen Folge (dem seed) eine lange Folge von deterministisch erzeugten (Zufalls-)Zahlen zu produzieren. Man spricht in diesem Fall von Pseudozufallszahlengeneratoren. Link: random.mat.sbg.ac.at

32 KAPITEL 1. GRUNDLAGEN UND HISTORISCHE VERFAHREN 1.10 Zufallszahlen Ob bei Lehman Bros. in London die Preisentwicklung von Optionen, am CERN in Genf Modelle der Atomphysik oder an der TH Darmstadt Kläranlagen simuliert werden, ob diverse diplomatische Dienste den Schlüsselvorrat für hochgeheime Nachrichten mittels der Vernam-Chiffre erzeugen oder Sie bei PGP Ihren privaten und Ihren öffentlichen Schlüssel generieren, stets ist ein scheinbar recht simples und harmloses mathematisches Werkzeug im Einsatz, sogenannte Zufallszahlengeneratoren. Es gibt zwei große Einsatzgebiete für Zufallszahlengeneratoren, erstens die Monte Carlo Methode, sie wird zum Gebiet der stochastischen Simulation gezählt, und zweitens die Kryptographie. Standardwerke zur Monte Carlo Methode sind die Monographien von Sobol [Sob83] sowie Fishman [Fis96]. Online-Dokumente finden sich unter Link: http://csep1.phy.ornl.gov/csep/textoc.html sowie Link: http://www.ncsa.uiuc.edu/apps/sprng/ Für Zufallszahlen in der Kryptographie ist die Webadresse Link: http://random.mat.sbg.ac.at/links/crypto.html ein geeigneter Startpunkt. Das Ziel für den Einsatz von Zufallszahlen in der Monte Carlo Methode lautet, möglichst gute Näherungen für den unbekannten Parameter zu finden, also möglichst gute Schätzwerte im Sinne der Statistik. In der Kryptographie geht es darum, sogenannte sichere Bitströme zu erzeugen, um Beispiel für one-time pads. In beiden Anwendungsfällen müssen wir klären, wie wir die vagen Bezeichnungen möglichst gute Näherung oder sicherer Bitstrom mathematisch definieren können. Was sind nun Zufallszahlen oder Zufallsbits? In beiden Fällen meint man damit, dass die generierten Folgen (x n ) n 0 in [0, 1[ (beziehungsweise {0, 1}) als Realisierungen einer Folge von unabhängigen, identisch gleichverteilten Zufallsvariablen angesehen werden können. Wann sieht man eine Folge (x n ) n 0 als solch eine Realisierung an? Sicherlich dann, wenn sie zum Beispiel durch das (sehr häufige) Werfen einer fairen Münze entstanden ist. Aus Zeitgründen wirft man in der Praxis nicht Münzen, sondern man startet entweder einen Hardware- oder Softwaregenerator. Bei den Hardwaregeneratoren verwendet man einen Zufallsprozess, um sogenannte echte Zufallszahlen zu erzeugen. Beispiele sind das Diodenrauschen oder radioaktive Zerfallsprozesse. Der Begriff echter Zufallszahlen ist natürlich schwammig, aber sehr weit verbreitet. Wir werden später noch darauf eingehen. Bei Softwaregeneratoren, den sogenannten Pseudozufallszahlengeneratoren, handelt es sich um deterministische Algorithmen, die auf dem Computer, also einer Maschine mit endlich vielen Zuständen, ablaufen und deren Ausgabe die

1.10. ZUFALLSZAHLEN 33 gewünschten Zufallszahlen sind. Sie erzeugen aus einem kurzen Bitstring, dem sogenannten Startwert (E: seed, initial value) eine lange Folge von Zufallszahlen oder Zufallsbits. 1.49 Definition (Pseudozufallszahlengenerator) Unter einem Pseudozufallszahlengenerator verstehen wir ein Tupel G = (S, T, O, g, s 0 ), wobei S und O endliche Mengen sind, T : S S und g : S O zwei Funktionen und s 0 S ein festes Element ist. Die Menge S heißt der Zustandsraum, die Menge O heißt der Ausgaberaum, die Funktion T heißt die Übergangsfunktion und g nennt man die Ausgabefunktion des Generators G. Der Generator G erzeugt Zufallszahlen beziehungsweise Zufallsbits nach dem folgenden Schema: 1. Wir wählen den Startwert s 0 im Zustandsraum S. (In der Kryptographie ist es üblich, den Startwert zufällig zu wählen. In der Monte Carlo Methode arbeitet man mit fixen Startwerten, um die Reproduzierbarkeit der Zufallszahlen zu gewährleisten. Man will auf diese Weise eine zusätzliche Kontrolle über die Berechnungen erhalten.) 2. Wir erzeugen durch Iteration der Übergangsfunktion T eine Folge (s n ) n 0 von Zuständen: s n = T n (s 0 ), n 0. 3. Wir erzeugen die Zufallszahlen mit Hilfe der Ausgabefunktion: x n = f(s n ), n 0. Es ist zu beachten, dass die Folge (x n ) n 0 vom gewählten Startwert s 0 abhängt. Die Elemente dieser Folge heißen (Pseudo-) Zufallszahlen zum Pseudozufallszahlengenerator G = (S, T, O, g, s 0 ). 1.50 Beispiel Wir betrachten ein einfaches Beispiel zur Illustration der Begriffe. Die dabei verwendeten Parameterwerte sind für die Praxis viel zu klein, es geht hier nur um die Erläuterung des Konzeptes. Sei Z 7 der Ring der Restklassen modulo 7. Wir identifizieren Z 7 mit der Menge {0, 1, 2, 3, 4, 5, 6}, wobei diese Elemente nach den Regeln von Z 7 addiert und multipliziert werden. S Z 7 = {0, 1, 2, 3, 4, 5, 6} T T (s) = 3 s O [0, 1[ g g(s) = s/7 s 0 s 0 = 2

34 KAPITEL 1. GRUNDLAGEN UND HISTORISCHE VERFAHREN Der Generator G = (S, T, O, g, s 0 ) heißt ein multiplikativer linearer Kongruenzgenerator mit Modul 7, Multiplikator 3 und Startwert s 0 = 2. Wir untersuchen nun die Folge (s n ) n 0 der Zustände zum Startwert s 0 = 2: s 0 = 2, s 1 = 6, s 2 = 4, s 3 = 5, s 4 = 1, s 5 = 3, s 6 = 2,... Die Folge der Zustände ist offensichtlich periodisch mit Periode 6. Wenn wir als Multiplikator das Element 2 wählen, dann ergibt sich eine andere Folge von Zuständen zum gleichen Startwert s 0 : s 0 = 2, s 1 = 4, s 2 = 1, s 3 = 2,... Wieder ist die Folge der Zustände periodisch, aber mit einer wesentlich kürzeren Periode, nämlich 3. Dahinter steckt natürlich ein zahlentheoretisches Prinzip. Sei a der Multiplikator des Generators. Dann gilt s n = T n (s 0 ) = a T n 1 (s 0 ) = a n s 0, n 0. Die Ordnung des Elementes a in der multiplikativen Gruppe Z 7 bestimmt offensichtlich die Länge der Periode der Folge (s n ) n 0. Dies war ein Baby-Generator. Wir haben aber mit seiner Hilfe ein Prinzip erkannt und verallgemeinern nun. 1.51 Beispiel Sei m 2 eine (sehr große) ganze Zahl. Typische Werte für m sind in der Praxis m = 2 16, 2 31 1, 2 48,... Sei Z m der Ring der Restklassen modulo m. Wir identifizieren Z m mit der Menge {0, 1,..., m 1}, wobei diese Elemente nach den Regeln von Z m addiert und multipliziert werden. Seien a 0 (mod m) und b zwei ganze Zahlen. S Z m = {0, 1,..., m 1} T T (s) = a s + b O [0, 1[ g g(s) = s/m s 0 Z m, fest s 0 Der Generator G = (S, T, O, g, s 0 ) heißt ein linearer Kongruenzgenerator mit Modul m, Multiplikator 2, additivem Term b und Startwert s 0. Er wird in der Monte Carlo-Literatur meist in der Form LCG(m, a, b, s 0 ) geschrieben. Wie im Trivial-Beispiel von Z 7, so entscheidet auch hier die Ordnung von a über die Periodenlänge (siehe Niederreiter [Nie92] für eine genaue Analyse der zahlentheoretischen Bedingungen). Der LCG ist der klassische Pseudozufallszahlengenerator. Wie steht es ganz allgemein um die Periodenlänge eines beliebigen Pseudozufallszahlengenerators G = (S, T, O, g, s 0 )? Wir weise an dieser Stelle auf die Tatsache hin, dass es nur bei relativ einfachen Übergangsfunktionen T möglich ist, konkrete Aussagen über die Periodenlänge

1.10. ZUFALLSZAHLEN 35 für alle möglichen Startwerte s 0 zu machen. Gerade bei kryptographischen Generatoren ist die exakte Analyse der Periodenlänge meist nicht möglich. Dies wird im nächsten Kapitel am Beispiel von AES deutlich werden. 1.52 Satz Sei G = (S, T, O, g, s 0 ) ein Pseudozufallszahlengenerator. Dann ist für jeden Startwert s 0 S die Zufallszahlenfolge (x n ) n 0 eine periodische Folge. Beweis. Die Menge S ist endlich. Nach dem Schubfachprinzip existieren zwei Zahlen n 0 und t, n 0 0, t > 0, in der Weise, dass T n (s 0 ) = T n+t (s 0 ) n n 0. Daher ist die Folge (s n ) n 0 periodisch. Als Konsequenz ist auch die Folge (x n ) n 0, x n = g(s n ), periodisch. Diese unumgängliche Tatsache scheint es auf den ersten Blick aussichtslos zu machen, auf dem Computer brauchbare Zufallszahlen zu erzeugen. Die Lösung des Problemes mit der Periodizität ist aber einfach. Man verwendet Generatoren, bei denen die Periodenlänge so groß ist, dass auch die anspruchvollsten Anwendungen nur einen kleinen Bruchteil der Periode ausschöpfen. Die derzeit besten Generatoren für die Monte Carlo Methode haben eine Periodenlänge über 2 128. Wie erzeugt man nun konkret Zufallszahlen auf dem Computer? Alle Programmierumgebungen und Programmbibliotheken bieten dafür Routinen an, zum Beispiel die NAG Library der Numerical Algorithms Group in Oxford: Link: http://www.nag.co.uk/numeric.html die CERNLIB des Cern in Genf: Link: http://wwwinfo.cern.ch/asd/index.html das RANPACK des Pittsburgh Supercomputing Centre: Link: http://www.psc.edu/general/software/packages/ranpack/ und die Linksammlung von David Wagner (Berkeley): Link: http://www.cs.berkeley.edu/ daw/rnd/index.html Hinter diesen Programmen zur Erzeugung von Zufallszahlen verbergen sich wie bereits gesagt nicht physikalische Prozesse, sondern deterministische Algorithmen. Wie erzeugt man nun unvorhersagbare Zahlen mit einem deterministischen Algorithmus, bei dem die Startwerte bereits eindeutig alle weiteren Zufallszahlen festlegen? Bei Kenntnis der Startwerte und Kenntnis des Algorithmus sind die so erzeugten Zufallszahlen ja jederzeit reproduzierbar. Eine Lösung, die zum Beispiel im GSM-Bereich gewählt wurde, besteht in der Geheimhaltung des Verfahrens. Derartige geheime Algorithmen bleiben der Öffentlichkeit bestenfalls einige Monate verborgen. Diese Vorgangsweise ist in der Kryptographie seit dem 19. Jahrhundert als völlig sinnlos bekannt und es ist erstaunlich, wie oft dieser alte Fehler immer wieder neu begangen wird,

36 KAPITEL 1. GRUNDLAGEN UND HISTORISCHE VERFAHREN selbst von sehr großen Firmen oder Organisationen. Es muß nämlich immer davon ausgegangen werden, dass der Feind das verwendete Verfahren kennt. Die Sicherheit darf nicht auf der Geheimhaltung des Verfahrens beruhen, sondern auf der Geheimhaltung des Schlüssels. Dies ist das sogenannte Kerkhoffsche Prinzip. Wir müssen also realistischerweise voraussetzen, dass der Feind den Algorithmus kennt, in unserem Fall also zumindest den Typ unseres Zufallszahlengenerators. Damit bleibt uns nur mehr die Geheimhaltung der Startwerte. Zur Sicherheitsanalyse von Zufallszahlengeneratoren stellt sich sofort eine Frage: warum schränkt man sich hier auf die Praxis ein und verzichtet auf eine theoretische Analyse? Eine Bedingung wie Zufallszahlen sollten weder theoretisch noch praktisch von Realisierungen... (siehe oben) zu unterscheiden sein wäre doch naheliegend. Derartige Definitionen von kryptographisch sicheren Zufallszahlen finden sich in zahlreichen Publikationen zu diesem Thema. Tatsache ist, dass für die in der Praxis verwendeten Generatoren ein theoretischer Nachweis der Zufälligkeit der erzeugten Zahlen nicht durchführbar ist. Leider zählen fast alle kryptographischen Zufallszahlengeneratoren zu dieser Gruppe. Wir verfügen heute nicht über die Methoden, bestimmte Algorithmen (wie zum Beispiel AES) bezüglich Zufälligkeit theoretisch zu untersuchen. Außerdem ist anzumerken, dass ungeklärt ist, was man unter zufällig verstehen soll. Ein geflügeltes Wort in diesem Gebiet lautet Randomness is in the eye of the beholder. Die Situation ist zwar ernst, aber nicht hoffnungslos. Sie gleicht der Situation in allen anderen angewandten Disziplinen. Selbst wenn eine theoretische (Korrelations-)Analyse für manche Generatoren nicht möglich ist, so bleibt stets noch die empirische Korrelationsanalyse, das statistische Testen. Dieser empirischen Analyse liegt die berechtigte Hoffnung zugrunde, dass (wenn es um stochastische Simulation geht) gut gewählte Tests viele Simulationsprobleme der numerischen Praxis repräsentieren, und andererseits (wenn es um die kryptographische Sicherheit geht) diese Tests sehr zuverlässig Alarm geben werden, wenn statistisch aufällige Strukturen innerhalb der erzeugten Zufallszahlen vorliegen. Das Erkennen von (mathematischen) Strukturen in den Daten bedeutet ja das Erkennen von Korrelationen. Dies wäre bereits ein möglicher Ansatzpunkt für das Brechen des Chiffrierverfahrens, das diese Zufallszahlen verwendet. Eine der früheren PGP-Versionen hatte das Problem, dass bei für die Erzeugung der Primzahlen, die man zur Generierung des Schlüsselpaares benötigt, ein schlechter Zufallszahlengenerator verwendet wurde. Stellen Sie sich das Problem vor, das sich ergibt, wenn unter den vielen möglichen Primzahlen mit L Stellen (z.b. L = 500) bei dieser (Pseudo-) Zufallsauswahl nur immer einige wenige ausgewählt werden. Derart katastrophal war das Problem bei PGP zwar nicht, aber es schränkte die Auswahl der Kandidaten doch so stark ein, dass es ein Sicherheitsproblem bedeutete. Wir kehren nun zum linearen Kongruenzgenerator zurück und führen an ihm einige Phänomene vor. Der LCG ist das wichtigste Beispiel eines Zufallszahlengenerators für die Monte Carlo Methode, also für die stochastische Simulation auf dem Computer. An ihm läßt sich sehr gut demonstrieren, wie sich auf deterministische Weise sehr gute und, falls man nicht vorsichtig ist, sehr schlechte

1.10. ZUFALLSZAHLEN 37 Zufallszahlen erzeugen lassen. Die übliche Art, einen LCG zu definieren, sieht wie folgt aus. Ein LCG wird durch eine Rekurrenz erster Ordnung definiert: y n+1 ay n + b (mod m), n 0, wobei die Parameter m, a, b, und y 0 nichtnegative ganze Zahlen sind. Dieser Generator wird dann mit LCG(m, a, b, y 0 ) bezeichnet. Die zahlentheoretische Beziehung zwischen dem Modul m, dem Multiplikator a, dem additiven Term b und dem Startwert y 0 entscheidet über die Länge der Periode der Folge (y n ) n 0 ganzer Zahlen und über die statistische Qualität der Zufallszahlen x n := y n /m [0, 1[. LCGs verhalten sich extrem sensibel gegenüber der Wahl der Parameter a und m. Typisch für diesen linearen Typ von Generator sind die linearen Punktstrukturen, die erzeugt werden. Wenn man zum Beispiel alle möglichen Vektoren der Gestalt x n := (x n, x n+1,..., x n+d 1 ) [0, 1[ d, n 0, (1.1) betrachtet ( überlappende d-tupel), dann erhält man auf diese Weise sehr regelmäßig verteilte Punkte im d-dimensionalen Einheitswürfel, wie die folgenden beiden Beispiele weit verbreiteter Generatoren in Dimension d = 2 zeigen (siehe Abbildung 1.15). Deutlich erkennbar ist der große Einfluß der Parameter auf die Punktverteilung. 0.5004 0.5004 0.5002 0.5002 0.5 0.5 0.4998 0.4998 0.4996 0.4996 0.4996 0.4998 0.5 0.5002 0.5004 0.4996 0.4998 0.5 0.5002 0.5004 LCG(2 31 1,16807,0,1) LCG(2 31,1103515245,12345,1) Minimal Standard ANSI C Abbildung 1.15: Zwei LCGs Im nächsten Beispiel studieren wir die Verteilung einer Stichprobe von N = 2 15 Punkten von Randu, dem Generator LCG(2 31,65539,0,1) in Dimension zwei und drei, wobei die d-tupel dieses Mal nach der Vorschrift x n := (x nd, x nd+1,..., x nd+d 1 ) [0, 1[ d, n 0, ( nichtüberlappende Tupel) gebildet werden (siehe Abbildung 1.16). Während die Stichprobe in Dimension zwei zumindest für das Auge unauffällig erscheint, enthüllt die Darstellung in Dimension drei die starken Korrelationen zwischen den Zufallszahlen 1. Trotz eindrücklicher Warnungen, zum Beispiel in der Bibel der Zufallszahlen Knuth[Knu98], hält sich dieser Generator weiterhin hartnäckig in der Lehrbuchliteratur und damit auch in der Praxis. 1 Diese beiden Graphiken stammen aus Hellekalek [Hel98a]