Grundbegriffe der Kryptographie

Ähnliche Dokumente
Grundbegriffe der Kryptographie

Primzahlen und RSA-Verschlüsselung

Modul Diskrete Mathematik WiSe 2011/12

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?

Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer

Einführung in die Algebra

Einfache kryptographische Verfahren

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

Lenstras Algorithmus für Faktorisierung

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Klassische Verschlüsselungsverfahren

Der Zwei-Quadrate-Satz von Fermat

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

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

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

RSA Verfahren. Kapitel 7 p. 103

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

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

10. Public-Key Kryptographie

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

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

6.2 Perfekte Sicherheit

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

Mathematische Grundlagen der Kryptographie. 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe. Stefan Brandstädter Jennifer Karstens

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse Lösung 10 Punkte

7 Rechnen mit Polynomen

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

Computeralgebra in der Lehre am Beispiel Kryptografie

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

8. Quadratische Reste. Reziprozitätsgesetz

9.2. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83

Zeichen bei Zahlen entschlüsseln

1 Mathematische Grundlagen

Lineare Gleichungssysteme

Digitale Signaturen. Sven Tabbert

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume?

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

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

Grundbegriffe der Informatik

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

Professionelle Seminare im Bereich MS-Office

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

Wie kann man beweisen, dass (H, ) eine Gruppe ist?

Kapitel 3: Etwas Informationstheorie

3. Zusammenhang. 22 Andreas Gathmann

Kapiteltests zum Leitprogramm Binäre Suchbäume

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

Musterlösungen zur Linearen Algebra II Blatt 5

Also kann nur A ist roter Südler und B ist grüner Nordler gelten.

Basis und Dimension. Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren.

RSA-Verschlüsselung. Verfahren zur Erzeugung der beiden Schlüssel:

Algebra. Patrik Hubschmid. 8. Oktober 2013

WS 2008/09. Diskrete Strukturen

Lineare Gleichungssysteme

Seminar Kryptographie und Datensicherheit

2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik

Verschlüsselung. Chiffrat. Eve

3.1. Die komplexen Zahlen

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

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.

Austausch- bzw. Übergangsprozesse und Gleichgewichtsverteilungen

Beweisbar sichere Verschlüsselung

Authentikation und digitale Signatur

Kryptographie mit elliptischen Kurven

3.3 Eigenwerte und Eigenräume, Diagonalisierung

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

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

x 2 2x + = 3 + Es gibt genau ein x R mit ax + b = 0, denn es gilt

Codierungstheorie Rudolf Scharlau, SoSe

Informationsblatt Induktionsbeweis

Kap. 8: Speziell gewählte Kurven

Mathematik: Mag. Schmid Wolfgang Arbeitsblatt 3 1. Semester ARBEITSBLATT 3 RECHNEN MIT GANZEN ZAHLEN

Grundlagen der Kryptographie

Zusatztutorium,

Programmiersprachen und Übersetzer

Konzepte von Betriebssystemkomponenten: Schwerpunkt Sicherheit. Asymmetrische Verschlüsselung, Digitale Signatur

Leseprobe. Wolfgang Ertel. Angewandte Kryptographie. ISBN (Buch): ISBN (E-Book):

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

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

Die reellen Lösungen der kubischen Gleichung

Codierungsverfahren SS Reed-Solomon-Codes zur Mehrblock-Bündelfehler-Korrektur

Einführung in die Vektor- und Matrizenrechnung. Matrizen

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.

Grundlagen der Theoretischen Informatik, SoSe 2008

Praktikum Diskrete Optimierung (Teil 11)

Gleichungen Lösen. Ein graphischer Blick auf Gleichungen

Informatik für Ökonomen II HS 09

Informationssicherheit - Lösung Blatt 2

Theoretische Grundlagen der Informatik WS 09/10

Kryptographie eine erste Ubersicht

Kapitel 2. Elementare Zahlentheorie Primfaktorzerlegung

Approximation durch Taylorpolynome

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

TECHNISCHE UNIVERSITÄT MÜNCHEN

Lehreinheit E V2 Verschlüsselung mit symmetrischen Schlüsseln

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel.

Data Mining: Einige Grundlagen aus der Stochastik

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

Transkript:

Grundbegriffe der Kryptographie Vorlesungsskript von Eike Best April 2004 - Mai 2005

Oldenburg, Mai 2005 E. Best Das Skript wird ständig gepflegt. Wenn Ihnen beim Lesen Fehler auffallen, schicken Sie bitte eine Mail an eike.best@informatik.uni-oldenburg.de. oder geben Sie sie schriftlich im Sekretariat der Theoretischen Informatik bekannt. Stand der Änderungen (Version): 19. September 2005. Hauptsächlich verwendete Literatur: Douglas R. Stinson: Cryptography. Theory and Practice. Second Edition, Chapman&Hall/CRC, ISBN 1-58488-206-9, 2002. Johannes Buchmann: Einführung in die Kryptographie. Zweite, erweiterte Auflage, Springer-Verlag, ISBN 3-540-41283-2, 2001. 2

Inhaltsverzeichnis 1 Klassische Kryptosysteme 1 1.1 Einführung.............................................. 1 1.2 Verschiebungschiffre......................................... 4 1.3 Substitutionschiffre.......................................... 6 1.4 Affin-lineare Chiffre......................................... 7 1.5 Algorithmen zur Lösung modularer Gleichungen......................... 9 1.5.1 Ein wenig Gruppentheorie.................................. 9 1.5.2 Berechnung des größten gemeinsamen Teilers....................... 11 1.5.3 Lösung linearer modularer Gleichungen.......................... 14 1.6 Permutationschiffre, Blockchiffren, ECB-Modus.......................... 16 1.7 Hill-Chiffre.............................................. 17 1.8 Vigenère-Chiffre........................................... 19 1.9 Autokey-Chiffre, CBC-Modus.................................... 19 1.10 Stromchiffre.............................................. 21 2 Klassische Kryptanalyse 23 2.1 Typen von Attacken......................................... 23 2.2 Kryptanalyse der affin-linearen Chiffre............................... 25 2.3 Kryptanalyse der Substitutionschiffre................................ 25 2.4 Kryptanalyse der Vigenère-Chiffre................................. 27 2.5 Kryptanalyse der Hill-Chiffre.................................... 30 2.6 Kryptanalyse einer Stromchiffre................................... 31 3 DES und lineare Kryptanalyse 33 3.1 SPN: ein Substitutions-/Permutationsnetzwerk.......................... 33 3.2 Ein Beispiel.............................................. 35 3.3 Lineare Kryptanalyse......................................... 38 3.3.1 Ein wenig Wahrscheinlichkeitstheorie............................ 38 i

ii Vorlesungsskript von E. Best / Stand: 19. September 2005 3.3.2 Lineare Approximation von S-Boxen............................ 40 3.3.3 Ein linearer Angriff auf SPN................................ 42 3.4 DES: Digital Encryption Standard................................. 46 4 AES: Advanced Encryption Standard 51 4.1 Auswahlverfahren........................................... 51 4.2 Ein wenig Körpertheorie....................................... 51 4.3 AES im Detail............................................ 58 4.4 Algebraische Definition der AES-S-Box............................... 62 5 Das Public-Key-Kryptosystem RSA 65 5.1 Mehr Zahlentheorie.......................................... 66 5.1.1 Der Chinesische Restsatz.................................. 66 5.1.2 Modulare Exponentiation.................................. 68 5.1.3 Hinreichende Bedingungen für Zerlegbarkeit........................ 69 5.1.4 Quadratische Reste...................................... 71 5.2 RSA im Detail............................................ 71 5.3 Auswahl eines Exponenten...................................... 74 5.4 Primzahlerzeugung.......................................... 74 5.5 Faktorisierung und andere Attacken auf RSA........................... 79 6 Auf diskreten Logarithmen beruhende Kryptosysteme 87 6.1 Zwei Nachträge............................................ 87 6.1.1 Das Geburtstagsparadox................................... 87 6.1.2 Erzeugende Elemente.................................... 89 6.2 Diffie-Hellman-Schlüsselaustausch.................................. 92 6.3 Das ElGamal-Kryptosystem..................................... 93 6.4 Effizienz des ElGamal-Verfahrens.................................. 94 6.5 Algorithmen zur Berechnung diskreter Logarithmen....................... 95 6.5.1 Der Babystep-Giantstep-Algorithmus von Shanks..................... 96 6.5.2 Der Pollard-Rho-Algorithmus zur Berechnung diskreter Logarithmen.......... 98 6.5.3 Der Pohlig-Hellman-Algorithmus.............................. 100 6.5.4 Die Index-Calculus-Methode................................ 102 7 Hashfunktionen und Signaturschemata 107 7.1 Kryptographische Hashfunktionen................................. 107 7.2 Digitale Signaturen.......................................... 110 7.2.1 RSA-Signaturen....................................... 110 7.2.2 Andere Public-Key-Signaturen............................... 113

Kapitel 1 Klassische Kryptosysteme 1.1 Einführung Hauptaufgabe der Kryptographie ist es, die Kommunikation zwischen zwei Parteien oft Alice und Bob genannt so zu ermöglichen, dass der Inhalt dieser Kommunikation von anderen nicht verstanden wird oder werden kann. Besonders soll Oscar, ein Opponent, der z.b. gerade die Telefonleitung, die Alice und Bob verbindet, abhört, nicht herausfinden können, was die beiden miteinander sprechen (oder sich schreiben). Sozusagen die gegenteilige Aufgabe hat Kryptanalyse: hier geht es darum, durch clevere Ideen die kryptographischen Methode(n) herauszufinden, die von Alice und Bob für ihre geheime Kommunikation benutzt werden, und insbesondere den Schlüssel zu knacken, den Bob benutzt, um Alices Nachrichten zu verstehen (denn hat Oscar diesen Schlüssel, kann er natürlich auch die Nachrichten verstehen). Die Gesamtheit der kryptographischen und kryptanalytischen Methoden nennt man Kryptologie. Nehmen wir an, dass Alice Bob eine Nachricht in Klartext, z.b. ichliebedich, zukommen lassen möchte. Damit kein anderer dies versteht, verschlüsselt Alice diese Nachricht vor dem Abschicken. Ein Schlüssel könnte zum Beispiel sein: verschiebe die Buchstaben um eine Stelle im Alphabet nach hinten. Dann lautet diese Nachricht: JDIMJFCFEJDI. Wir verwenden der Klarheit halber Kleinbuchstaben für Klartext und Großbuchstaben für verschlüsselten Text, der auch Chiffretext heißt. Normalerweise verwenden wir als Alphabet nur die 26-buchstabige Menge A = {a, b,..., z}, so dass die Zuordnung von Klar- zu Chiffretext keine Zweideutigkeiten nach sich zieht, wenigstens keine typografischen. Definition 1.1.1 Kryptosystem Ein Kryptosystem ist ein 5-Tupel (P, C, K, E, D), dessen einzelne Elemente Folgendes bedeuten: P ist eine endliche Menge von Klartexten ( plaintexts ), wie zum Beispiel A oben. 1

2 Vorlesungsskript von E. Best / Stand: 19. September 2005 C ist eine endliche Menge von Chiffretexten ( ciphertexts ), wie zum Beispiel (die großbuchstabige Version von) A. K (Schlüsselraum, keyspace ) ist eine endliche Menge von Schlüsseln. E ( encryption ) sind die Verschlüsselungsfunktionen (je eine, e K, pro Schlüssel K K). D ( decryption ) sind die Entschlüsselungsfunktionen (je eine, d K, pro Schlüssel K K). Die beiden Funktionen e K und d K müssen durch effiziente Algorithmen berechenbar sein und es muss gelten: d K (e K (x)) = x, für jeden Klartext x und Schlüssel K. (Aus letzterem folgt insbesondere, dass e K für jeden Schlüssel K injektiv ist.) 1.1.1 Im Beispiel sind: P = {a, b,..., z} C = {A, B,..., Z} K = {K 0 K 25} E, D : siehe unten. Hier sind gleich 26 mögliche Verschlüsselungsmethoden zusammengefasst: Schieben der Buchstaben um K Positionen im Alphabet. Die oben angewandte gehört zu K = 1. Julius Caesar hingegen soll regelmäßig privat wie geschäftlich K = 3 angewendet haben 1. Gilt auch die letzte Bedingung? Ver- und Entschlüsselung E bzw. D sind offensichtlich leicht algorithmisch ausdrückbar, für K = 1 z.b. mit Hilfe folgender Tabelle: 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 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 A. (Verschlüsseln e 1 von oben nach unten, Entschlüsseln d 1 von unten nach oben), und es gilt offenbar stets d 1 (e 1 (x)) = x. Natürlich ist e 1 auch injektiv. Allgemein gilt: wäre e K nicht injektiv, gäbe es zwei Klartexte mit der gleichen Verschlüsselung, d.h., die Entschlüsselung wäre dann uneindeutig. Bei einem Kryptosystem handelt es sich also um eine Zusammenfassung gleichartiger Verschlüsselungsmethoden. Für die eben angegebenen Schiebe-Chiffren eignen sich verdrehbare Scheiben besonders gut, auf denen man das K einstellen kann 2. Zu Julius Caesars Zeiten war eine Verschlüsselung dieser einfachen Art wahrscheinlich ziemlich sicher, weil die meisten Leute sowieso nicht lesen konnten. Heute ist dieses Kryptosystem aber nicht besonders gut, denn ein Opponent, der weiß, dass eine Schiebemethode angewendet worden ist, kann den Schlüssel sehr leicht durch Ausprobieren herausfinden (und braucht dazu nur Papier und Bleistift). Bessere Kryptosysteme haben insbesondere einen viel größeren Schlüsselraum allerdings macht dessen Größe allein noch nicht die Qualität aus, wie wir sehen werden. Das gerade geschilderte Kryptosystem heißt symmetrisch, weil der Schlüssel K gleichermaßen von Alice und von Bob geheim gehalten werden muss, weil er sonst von Opponenten benutzt werden kann siehe Abbildung 1.1. Ein solcher Schlüssel heißt auch Geheimschlüssel (secret key). Vor knapp 20 Jahren entdeckte man, dass es aus Anwendungssicht sehr sinnvoll sein kann, Verschlüsselung und Entschlüsselung stärker zu trennen siehe Abbildung 1.2. Angenommen, dass es zum Verschlüsseln und 1 www.murky.org/cryptography/classical/caesar.shtml. 2 www.mystery-twister.com/know history.php.

Kryptographie - Sommersemester 2004 3 zum Entschlüsseln zwei verschiedene Schlüssel gibt, und angenommen auch, dass letzterer sich nur schwer aus ersterem berechnen lässt. Dann kann Bob so vorgehen, wenn er möchte, dass ihm eine beliebige Person (nicht nur Alice) eine verschlüsselte Nachricht senden kann: er gibt den Verschlüsselungsschlüssel öffentlich bekannt (public key), behält aber den Entschlüsselungsschlüssel bei sich (private key). Somit kann nur Bob Nachrichten entschlüsseln, die mit dem public key verschlüsselt worden sind, während zur Verschlüsselung jede/r befugt ist. Es entfällt unter anderem auch die Notwendigkeit, dass sich Alice und Bob, bevor überhaupt eigentliche Kommunikation stattfinden kann, auf einen gemeinsamen Schlüssel einigen. Kryptosysteme, die public key / private key auf diese Weise benutzen, heißen aus naheliegenden Gründen asymmetrisch. Unsichere Verbindung Alice x Verschlüsselung e K y Oscar... y Entschlüsselung d K x Bob Sichere Verbindung K Schlüsselquelle (secret key) Abbildung 1.1: Secret-key-Kryptographie Unsichere Verbindung Alice x Verschlüsselung e PublicKey y Oscar... y Entschlüsselung d PrivateKey x Bob PublicKey PrivateKey Schlüsselquelle 1 Schlüsselquelle 2 Abbildung 1.2: Public-key-Kryptographie

4 Vorlesungsskript von E. Best / Stand: 19. September 2005 1.2 Verschiebungschiffre Definition 1.2.1 Kongruenz modulo m Seien a und b zwei ganze Zahlen und sei m eine positive ganze Zahl. Dann schreibt man a b (mod m) (ausgesprochen: a ist kongruent b modulo m), wenn m (b a), d.h. wenn m die Differenz b a teilt. 1.2.1 Zerlegt man a und b modulo m, z.b. durch Division durch m mit Hilfe des Euklidischen Algorithmus, erhält man a = q 1 m + r 1 und b = q 2 m + r 2 mit 0 r 1 < m und 0 r 2 < m. Es gilt a b (mod m) genau dann, wenn r 1 = r 2. Der Wert r 1 wird mit a mod m bezeichnet, und gleichermaßen der Wert r 2 mit b mod m. Die Werte q 1 und q 2 werden a div m bzw. b div m genannt. Beispiel 1: 101 mod 7 = 3, weil 101 = 14 7 + 3. Beispiel 2: ( 101) mod 7 = 4, weil 101 = ( 15) 7 + 4. Achtung: Dies kann durchaus von den Operationen abweichen, die in manchen Computersprachen implementiert sind. Dort könnte ( 101) mod 7 auch als 3 definiert sein. Die Kongruenz modulo m ist eine Äquivalenzrelation in der Menge der ganzen Zahlen. Die Äquivalenzklassen dieser Relation heißen Restklassen modulo m. Die Äquivalenzklasse von a modulo m wird mit [a] m bezeichnet, und wenn m bekannt ist, einfachheitshalber nur mit [a]. Die Menge der Restklassen modulo m heiße Z m. Beispiel: Z 6 = { [0], [1],..., [5] }..., 12, 6, 0, 6, 12,... [0];..., 11, 5, 1, 7, 13,... [1];..., 10, 4, 2, 8, 14,... [2]; usw. Der Einfachheit halber kann Z m mit den möglichen Resten 0, 1,..., m 1 (sozusagen mit den kanonischen Resten) identifiziert werden. Auf Z m können Addition und Multiplikation definiert werden: [a] m + [b] m [a] m [b] m Def = [a + b] m Def = [a b] m Diese Definitionen sind repräsentantenunabhängig, die beiden Operationen sind also wohldefiniert. Eine Struktur (G, ) heißt Gruppe, wenn die (binäre) Operation abgeschlossen ist (d.h., wenn für das Resultat c = a b mit a, b G wieder c G gilt), wenn die Operation assoziativ ist (d.h., stets a (b c) = (a b) c gilt, ein Einselement auch Einheit genannt bezüglich der Operation existiert (d.h., ein Element e G mit e a = a e = a für alle a G), und Inverse existieren (d.h., zu jedem Element a G ein Element â G mit a â = â a = e). Eine Gruppe heißt Abelsch, wenn sie zusätzlich kommutativ ist (d.h., stets a b = b a gilt). Eine Struktur (R, +, ) heißt Ring, wenn (R, +) eine Abelsche Gruppe ist, die Multiplikation abgeschlossen und assoziativ ist, und wenn das folgende Distributivgesetz gilt: stets a (b+c) = (a b)+(a c) und (b+c) a = (b a)+(c a). Eine Ring heißt kommutativ, wenn die Multiplikation kommutativ ist, und er heißt Ring mit Einheit, wenn es ein Einselement bzgl. gibt.

Kryptographie - Sommersemester 2004 5 Satz 1.2.2 (Z m, +, ) ist ein kommutativer Ring mit Einheit. Beweis: (Skizze.) Die Einheit bzgl. der Addition ist die [0]. Das zu einem Element [r] Z m inverse Element bzgl. der Addition ist [m r]. Die Einheit bzgl. der Multiplikation ist die [1]. Die behaupteten algebraischen Eigenschaften sind unschwer nachzuweisen. 1.2.2 Die Existenz eines Inversen bezüglich der Multiplikation ist im Allgemeinen nicht gegeben. Beispielsweise kann für a = 3 die Multiplikation q a niemals in die Restklasse 1 von 6 fallen. Gilt jedoch 3 ggt(r, m) = 1, dann existiert das multiplikative Inverse von a modulo m. Beispielsweise ist das multiplikative Inverse von 5 in Z 6 wieder 5, denn es gilt 5 5 = 25 und 25 mod 6 = 1. Man nennt zwei Zahlen a, m mit ggt(a, m) = 1 zueinander relativ prim, oder teilerfremd. Sei Z m die Menge der Restklassen modulo m, die (d.h. deren kanonische Repräsentanten) relativ prim zu m sind. Z m ist wohldefiniert: denn aus ggt(a, m) = 1 folgt k : ggt(a+km, m) = 1. Beispiel: Z 15 = {[1] 15, [2] 15, [4] 15, [7] 15, [8] 15, [11] 15, [13] 15, [14] 15 } = {1, 2, 4, 7, 8, 11, 13, 14} (Kurzschreibweise) Achtung: Die 0 ist nicht in Z m, weil jede Zahl 0 die 0 teilt. Satz 1.2.3 (Z m, ) ist eine endliche Abelsche Gruppe. Beweis: Zum Beweis müssen die Gruppenaxiome und Kommutativität nachgewiesen werden. Zur Existenz eines Inversen: das zu a Z m inverse Element ist, wie wir später zeigen werden (Korollar 1.5.5), â = a Z m 1. 1.2.3 Falls m = p prim ist, gilt Z m = p 1, sonst gilt Z m < p 1. Beispiele: Z 6 hat zwei Elemente, 1 und 5. Die Gruppentafeln von (Z 6, ) und (Z 15, ) sind in Abbildung 1.3 dargestellt. (Z 6, ) 1 5 1 1 5 5 5 1 (Z 15, ) 1 2 4 7 8 11 13 14 1 1 2 4 7 8 11 13 14 2 2 4 8 14 1 7 11 13 4 4 8 1 13 2 14 7 11 7 7 14 13 4 11 2 1 8 8 8 1 2 11 4 13 14 7 11 11 7 14 2 13 1 8 4 13 13 11 7 1 14 8 4 2 14 14 13 11 8 7 4 2 1 Abbildung 1.3: Gruppentafeln von (Z 6, ) und (Z 15, ) 3 Wir benutzen die Schreibweise ggt(a 1,..., a r) für den größten gemeinsamen Teiler von a 1,..., a r.

6 Vorlesungsskript von E. Best / Stand: 19. September 2005 Weil (Z m, +) additive Inverse hat, kann auch die Differenz definiert werden: a b Def = (a b) mod m. Die Verschiebungschiffre ( shift cipher ) wird günstig definiert, indem die Buchstaben {a,..., z} mit den Restklassen {0,..., 25} von Z 26 identifiziert werden: 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 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Kryptosystem 1.2.4 Verschiebungschiffre Es seien P = C = K = Z 26, und für K K seien e K und d K folgendermaßen definiert: e K (x) = (x + K) mod 26 d K (y) = (y K) mod 26, für alle x, y Z 26. 1.2.4 Wie schon erwähnt, ist die Verschiebungschiffre nicht sicher, denn man kann durch systematisches, vollständiges Ausprobieren (exhaustive search, brute force) herausfinden, welcher Schlüssel (unter den nur 26 vorhandenen) verwendet wurde. Dazu sind im Mittel 26 2 = 13 Versuche nötig. Trotzdem gibt es auch für den shift cipher praktische Verwendung, zum Beispiel ROT13 als Spoiler-Warnung in Usenet-Artikeln 4. Warum gerade ROT13? Das Verschieben um 13 Positionen ist selbst-invers, d.h., Ver- und Entschlüsseln kann mit Hilfe der gleichen Funktion geschehen. Beispiel: ROT13(ROT13(thebutlerdidit)) = ROT13(GUROHGYREQVQVG) = thebutlerdidit. Diese Anwendung hat natürlich beim Gebrauch von Sonderzeichen (Umlauten usw.) ihre engen Grenzen. 1.3 Substitutionschiffre Eine offenbar schon ca. 500 Jahre vor Caesar bekannte Kryptomethode ist der Atbash jüdischen Ursprungs 5. Hier wird a auf Z abgebildet, b auf Y, c auf X, usw., die Buchstaben des Alphabets werden also einfach umgedreht. Der Atbash ist offenbar nicht als Verschiebungschiffre beschreibbar. Er gehört jedoch zur größeren Klasse der Substitutionschiffren, die wir in diesem Abschnitt definieren. Bekanntlich ist eine Funktion π : X X, mit einer endlichen Menge X, schon dann bijektiv, wenn sie injektiv oder surjektiv ist. In diesem Fall heißt π eine Permutation von X, und es existiert die Umkehrfunktion π 1 mit der Eigenschaft x X : π 1 (π(x)) = x = π(π 1 (x)). Natürlich ist auch π 1 wieder eine Permutation von X. 4 rot13.de. 5 www.templarhistory.com/atbash.html

Kryptographie - Sommersemester 2004 7 Kryptosystem 1.3.1 Substitutionschiffre Es seien P = C = Z 26, und K sei die Menge aller Permutationen der 26 Zeichen A = {a,..., z}. Für eine Permutation K = π seien e K und d K folgendermaßen definiert: e K (x) = π(x) d K (y) = π 1 (y), für alle x, y Z 26. 1.3.1 Der Atbash ist eine Substitutionschiffre, ebenso wie auch alle Verschiebungschiffren spezielle Substitutionschiffren sind. Da es 26! Permutationen der Menge A gibt, ist der Keyspace in der Substitutionschiffre sehr groß, nämlich größer als 4 10 26. Brute-Force-Methoden sind ausgeschlossen, um solche Verschlüsselungen zu knacken ; es gibt aber andere, bessere Methoden der Kryptanalyse. 1.4 Affin-lineare Chiffre Bei der affin-linearen (oder der Kürze halber nur affinen ) Chiffre handelt es sich um einen weiteren Spezialfall der Substitutionschiffre, der allerdings die Verschiebungschiffre umfasst und verallgemeinert. Wir lassen in der affinen Chiffre Verschlüsselungen der Form e(x) = (ax + b) mod 26 zu, wobei a und b zwei Restklassen in {0,..., 25} sind. (Mit dem Spezialfall a = 1 ergibt sich die Verschiebungschiffre.) Nicht alle Verschlüsselungen dieser Art sind tatsächlich Substitutionen. Zum Beispiel ist mit a = 4 und b = 7 die Verschlüsselung e(x) = (4x + 7) mod 26 nicht eindeutig, weil x und x + 13 auf den gleichen Chiffretext abgebildet werden (für alle x Z 26 ). Um (ax + b) mod 26 entschlüsseln zu können, fragen wir nach der Injektivität dieser Funktion, d.h., danach, wann die Kongruenz (ax + b) y (mod 26), oder, dazu äquivalent: ax (y b) (mod 26), eine eindeutige Lösung (bzgl. x, für beliebige y in {0,..., 25}) hat. Da mit y auch y b über Z 26 variiert, gilt dies genau dann, wenn ax y (mod 26) (1.1) eine eindeutige Lösung in x hat. Satz 1.4.1 Gleichung (1.1) hat genau dann eine eindeutige Lösung in x (für alle y Z 26 ), wenn gilt: ggt(a, 26) = 1.

8 Vorlesungsskript von E. Best / Stand: 19. September 2005 Beweis: Zum Beweis der einen Richtung, ( ), nehmen wir an, dass d = ggt(a, 26) > 1 ist. Dann hat die Gleichung ax 0 (mod 26) (also Gleichung (1.1), speziell mit y = 0) mindestens zwei verschiedene Lösungen, nämlich x = 0 und x = 1 d 26. Zum Beweis von ( ) nehmen wir ggt(a, 26) = 1 an. Betrachten wir x 1 und x 2 mit ax 1 ax 2 (mod 26). Dann gilt a(x 1 x 2 ) 0 (mod 26), also 26 a(x 1 x 2 ). Weil ggt(a, 26) = 1 ist, folgt daraus 26 (x 1 x 2 ), d.h.: x 1 x 2 (mod 26). (Wir haben hier eine Eigenschaft der Teilung ganzer Zahlen benutzt: wenn ggt(a, b) = 1 und a bc, dann a c.) Je zwei Lösungen x 1, x 2 von Gleichung (1.1) liegen also in der gleichen Restklasse bzgl. 26, sind also gleich (als Elemente von Z 26 ). 1.4.1 Eine allgemeinere Version dieses Satzes lernen wir später kennen (Korollar 1.5.13). Wir berechnen die Größe des Keyspace einer affinen Chiffre. Definition 1.4.2 Eulersche Φ-Funktion Für m N\{0} sei Φ(m) = Z m die Anzahl der Zahlen in Z m, die teilerfremd zu m sind. 1.4.2 Beispielsweise gilt Φ(6) = 2, Φ(15) = 8 und Φ(26) = 12 (denn die Zahlen zwischen 0 und 25, die teilerfremd zu 26 sind, sind 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23, 25). Die möglichen Werte von a sind in diesem Fall also die zuletzt genannten 12 Zahlen, während für b jedes der 26 Elemente von Z 26 Verwendung finden kann. Es gibt also 12 26 = 312 verschiedene Schlüssel. Im allgemeinen Fall sind es bei P = m genau m Φ(m) verschiedene Schlüssel. Wir wenden uns nun der Entschlüsselung von affin-linearen Chiffren zu. Nehmen wir an, dass ggt(a, 26) = 1 und b Z 26 gelten. Um einen Chiffretext y entschlüsseln, muss die Kongruenz y (ax + b) (mod 26) (1.2) bei bekanntem y in x (Klartext) gelöst werden. Zwar wissen wir bereits, dass es eine eindeutige Lösung gibt, jedoch haben wir noch keinen effizienten Algorithmus dafür. Einen solchen geben wir im nachfolgenden Abschnitt 1.5 an. Wir haben schon gesehen (Satz 1.4.1 mit dem Spezialfall y = 1), dass jedes Element a Z 26 ein multiplikatives Inverses hat, das üblicherweise als a 1 geschrieben wird und das ebenfalls ein Element von Z 26 ist. Auch gilt (a 1 ) 1 = a für alle solche a. Nebenbei: ist m = p eine Primzahl, gilt Z p = Z p \{0}, und jedes Element von Z p \{0} hat ein multiplikatives Inverses. Dann gilt auch Φ(p) = p 1. Die folgende Tabelle zeigt die multiplikativen Inversen der Gruppe (Z 26, ): a=(a 1 ) 1 1 3 5 7 11 17 25 a 1 1 9 21 15 19 23 25 Unsere zu lösende Kongruenz y (ax + b) (mod 26) is äquivalent mit ax (y b) (mod 26). Da a ein multiplikatives Inverses hat, kann diese zur Multiplikation beider Seiten dieser Kongruenz verwendet werden: a 1 (ax) a 1 (y b) (mod 26) ( (a 1 a)x (mod 26)).

Kryptographie - Sommersemester 2004 9 Also löst x = a 1 (y b) mod 26 die Gleichung (1.2). Aus diesen Überlegungen folgt endlich eine genaue Definition der affin-linearen Chiffre: Kryptosystem 1.4.3 Affin-lineare Chiffre Es seien P = C = Z 26, und K sei die Menge aller Paare {(a, b) a, b Z 26 und ggt(a, 26) = 1}. Für K = (a, b) K seien e K und d K folgendermaßen definiert: e K (x) = (ax + b) mod 26 d K (y) = a 1 (y b) mod 26, für alle x, y Z 26. 1.4.3 Beispiel: Wir betrachten K = (7, 3). Der Tabelle der Inversen modulo 26 entnehmen wir: 7 1 = 15. Die Ver- und Entschlüsselungsfunktionen sind: e K (x) = 7x + 3 d K (y) = 15(y 3) = 15y 19, wobei diese Operationen (ebenso wie die nachfolgenden) modulo 26 zu verstehen sind. Die beiden Operationen sind in der Tat Inverse voneinander, denn es gilt: d K (e K (x)) = d K (7x + 3) = 15(7x + 3) 19 = x + 45 19 = x. Wir verschlüsseln zur Illustration den Text axt. Diese Buchstaben entsprechen folgenden Restklassen von 26: a = 0, x = 23 und t = 19. Wir verschlüsseln: (7 0 + 3) mod 26 = 3 mod 26 = 3 (7 23 + 3) mod 26 = 164 mod 26 = 8 (7 19 + 3) mod 26 = 136 mod 26 = 6. Das Chiffrewort heißt also 3 8 6 = DIG. 1.5 Algorithmen zur Lösung modularer Gleichungen 1.5.1 Ein wenig Gruppentheorie Eine Untergruppe ist eine Teilmenge einer Gruppe, die auch eine Gruppe ist. In Abbildung 1.3 (rechts) ist z.b. {1, 2, 4, 8} eine Untergruppe. Satz 1.5.1 Lagrange Sei (G, ) Untergruppe einer endlichen Gruppe (G, ). Dann gilt: G G (d.h., G teilt G ).

10 Vorlesungsskript von E. Best / Stand: 19. September 2005 Beweis: Sei H eine Untergruppe von G. Wir definieren a, b G als äquivalent (bzgl. H), wenn a b 1 H. (Dass dies eine Äquivalenzrelation ist, ist leicht zu beweisen.) Insbesondere ist H die Äquivalenzklasse von e, der Einheit. Seien a, b G beliebig gewählt. Die Abbildung h a h b zwischen den beiden Äquivalenzklassen {h a h H} und {h b h H} kann unschwer als Bijektion erkannt werden. Also haben alle Äquivalenzklassen gleiche Mächtigkeit, und H teilt G, weil G die disjunkte Vereinigung dieser Äquivalenzklassen ist. 1.5.1 Korollar 1.5.2 Falls (G, ) eine echte Untergruppe einer endlichen Gruppe (G, ) ist, gilt: G 1 2 G. 1.5.2 Sei a ein Element einer Gruppe. Dann ist a = {a k k 1} eine Untergruppe, genannt die von a generierte Untergruppe. In Abbildung 1.3 (rechts) gilt z.b. 1 = {1}, 2 = {1, 2, 4, 8}, 4 = {1, 4}, 7 = {1, 4, 7, 13}. Die Ordnung eines Elements a, bezeichnet mit ord(a), ist die kleinste positive Zahl t mit a t = 1, wobei 1 die Einheit der Gruppe bezeichnet. Oben gilt: ord(1) = 1, ord(2) = 4, ord(4) = 2 und ord(7) = 4. Satz 1.5.3 ord(a) = a. Beweis: Sei t = ord(a). Wir zeigen zuerst ord(a) a. Wegen a t = 1 und a t+k = a t a k = a k für k 1 gilt: wenn i > t, dann a i = a j, für ein j t. Wir zeigen dann ord(a) a. Annahme: a i = a j für 1 i < j t. Dann a i+k = a j+k für alle k 0, insbesondere für k = (t j). Also a i+(t j) = a j+(t j) = 1, im Widerspruch dazu, dass t die kleinste Zahl mit a t = 1 ist. 1.5.3 Korollar 1.5.4 Die Folge a, a 2, a 3,... ist periodisch mit Periode t = ord(a), d.h.: a i = a j genau dann, wenn i j (mod t). 1.5.4 Korollar 1.5.5 Sei (G, ) eine endliche Gruppe. Dann gilt a G = 1, für alle a G. Beweis: Langranges Satz und Satz 1.5.3 liefern ord(a) G, also gilt a G = a k ord(a) = 1. 1.5.5 Hieraus kann man die Sätze von Euler und (den kleinen ) von Fermat ableiten. Betrachte dazu speziell die Gruppe (Z m, ). Das Folgende ist ein Korollar von Korollar 1.5.5.

Kryptographie - Sommersemester 2004 11 Korollar 1.5.6 Euler a Φ(m) 1 (mod m), für alle a Z m. 1.5.6 Und das Folgende folgt aus Korollar 1.5.6 und der Gleichung Φ(p) = p 1 für Primzahlen p. Korollar 1.5.7 Fermat a p 1 1 (mod p), für alle a {1,..., p 1} (falls p prim). 1.5.7 Daraus folgt auch, dass a p a (mod p) für alle a {0,..., p 1}, falls p prim ist. 1.5.2 Berechnung des größten gemeinsamen Teilers Satz 1.5.8 Linearkombination des ggt Der größte gemeinsame Teiler d von r natürlichen Zahlen a 1,..., a r (r > 0) lässt sich ganzzahlig linear aus a 1,..., a r kombinieren: d = 1 i r (x ia i ) für gewisse (nicht notwendigerweise eindeutige) ganzzahlige x 1,..., x r. Dabei wird wieder die Konvention benutzt, dass jede natürliche Zahl ungleich 0 die 0 teilt. Der größte gemeinsame Teiler von a N und b N ist also max(a, b), falls a oder b gleich 0 sind. Zum Beweis des Satzes erweitern wir Addition, Subtraktion und Multiplikation auf Teilmengen von Z. Seien U, V Z. Dann U + V = {u+v u U, v V }, U V = {u v u U, v V } und UV = {uv u U, v V }. Eine nicht leere Teilmenge A Z heißt Ideal (von Z), wenn gilt: A A A und ZA A. Falls d N, ist Z{d} ein Ideal, genannt das von d erzeugte Hauptideal. Beispiele: Z{0} = {0} (Das Nullideal) Z{1} = Z Z{2} = alle geraden Zahlen etc. Satz 1.5.9 Hauptidealsatz Jedes Ideal A von Z ist ein Hauptideal, nämlich A = Z{d} mit d = min{ a a A}. Beweis: Die Behauptung stimmt ohne weiteres für A = {0} mit d = 0. Sei also im Folgenden A {0}. Wegen A und A {0} gibt es eine Zahl a A mit a 0. Wegen A A A ist auch a a = 0 A, und nochmals wegen A A A ist auch 0 a = a A. Es gibt also eine Zahl größer gleich 1 in A. Definiere d = min{a A a 1}. Wir behaupten A = Z{d} mit dieser Zahl d. Z{d} A gilt wegen ZA A.

12 Vorlesungsskript von E. Best / Stand: 19. September 2005 Beweis von A Z{d}: a A (Zerlegung von a, Teiler d, Rest r) a = qd + r mit 0 r < d (A A A und ZA A) r = a qd A (d 1 minimal in {a A a 1}; und r < d) r = 0 (qd Z{d}) a Z{d}. Seien jetzt r > 0 und a 1,..., a r N. Betrachte die Menge A = Z{a 1 }+... +Z{a r }. Es ist klar, dass A ein Ideal ist. Definiere d = min{ a a A}. Aus dem vorangegangenen folgt A = Z{d}. Wegen d A folgt d = 1 i r (x ia i ), also die zu beweisende Zerlegung von d. Es bleibt nur noch zu zeigen, daß d der ggt der Zahlen a 1,..., a r ist. Da a i A (1 i r), gilt auch a i Z{d}, also teilt d die Zahl a i. Falls t alle a i teilt, teilt t auch alle Zahlen in A, und daher auch d. Also ist d tatsächlich der ggt von a 1,..., a r, und der Beweis ist beendet. 1.5.9 Dieser Satz liefert insbesondere auch einen Beweis für Satz 1.5.8. Der Algorithmus in Abbildung 1.4 berechnet den ggt von natürlichen Zahlen a und b, während der in Abbildung 1.5 gezeigte Algorithmus auch noch eine Darstellung von ggt (a, b) zurückgibt: ggt (a, b) = xa+yb. Die Existenz einer solchen Darstellung wie auch der Algorithmus folgen aus den vorangegangenen beiden Sätzen über den ggt und ihrem Beweis. Zum Nachweis der Korrektheit des zweiten Algorithmus, extended euclid, beachte man, dass a b = a div b gilt und dass zwischen den beiden Zuweisungen (d, x, y) :=... und (x, y) :=... in der zweiten Alternative der if-anweisung die Rechnung d = ( d ist - induktiv - die Darstellung der beiden Argumente von extended euclid ) b x + (a mod b) y = ( Definition von a div b = a b und a mod b ) b x + (a a b b) y = ( Arithmetik ) a y + b (x a b y) aufgestellt werden kann. proc euclid ( a, b) : N; % a, b N begin if b = 0 return a b 0 return euclid(b, a mod b) fi end; Abbildung 1.4: Berechnung von ggt(a, b).

Kryptographie - Sommersemester 2004 13 proc extended euclid ( a, b) : Z 3 ; % a, b N; Ausgabe : d, x, y begin if b = 0 return (a, 1, 0) b 0 (d, x, y) := extended euclid(b, a mod b); (x, y) := (y, x a b y); return (d, x, y) fi % d = ax+by und d = ggt (a, b) end; Abbildung 1.5: Berechnung und Darstellung von ggt(a, b). a b a b d x y 99 78 1 3 11 14 ee(99, 78) 3 = 99 ( 11)+78 14 78 21 3 3 3 11 ee(78, 21) 3 = 78 3+21 ( 11) 21 15 1 3 2 3 ee(21, 15) 3 = 21 ( 2)+15 3 15 6 2 3 1 2 ee(15, 6) 3 = 15 1+6 ( 2) 6 3 2 3 0 1 ee(6, 3) 3 = 6 0+3 1 3 0 3 1 0 ee(3, 0) 3 = 3 1+0 0 Abbildung 1.6: Eine Anwendung von Algorithmus 1.5 (ee = extended euclid) Eine Anwendung von Algorithmus 1.5 ist in Abbildung 1.6 gezeigt. Um die Laufzeit des Algorithmus euclid abzuschätzen, verwenden wir die Fibonacci-Zahlen, die vermittels der Rekursion F 0 = 0, F 1 = 1, F k+2 = F k+1 + F k (k N) definiert sind. Satz 1.5.10 Satz von Lamé Sei k N, k 1. Seien a, b N mit a > b 0 und b < F k+1. Dann führt ein Aufruf von euclid(a, b) zu weniger als k rekursiven Aufrufen. Aus diesem Satz lässt sich eine Worst-Case-Analyse des Algorithmus euclid herleiten. Zunächst beobachten wir, dass euclid(f 3, F 2 ), d.h. euclid(2, 1), genau einen rekursiven Aufruf macht. Außerdem gilt offenbar F k+1 mod F k = F k 1 für k 2. Deswegen gilt ggt(f k+1, F k ) = ggt(f k, (F k+1 mod F k )) = ggt(f k, F k 1 ). Also führt ein Aufruf von euclid(f k+1, F k ) zu genau k 1 rekursiven Aufrufen. Die durch den Satz von Lamé gegebene obere Schranke wird hierdurch also erreicht (worst case).