Kryptologie. Bernd Borchert. Univ. Tübingen, SS Vorlesung. Teil 1. - Historische Verschlüsselungsverfahren

Größe: px
Ab Seite anzeigen:

Download "Kryptologie. Bernd Borchert. Univ. Tübingen, SS Vorlesung. Teil 1. - Historische Verschlüsselungsverfahren"

Transkript

1 Kryptologie Bernd Borchert Univ. Tübingen, SS 2017 Vorlesung Teil 1 - Historische Verschlüsselungsverfahren

2 Kryptologie vom Umgang mit Geheimnissen Drei Zielrichtungen der Kryptologie: Vertraulichkeit Verschlüsseln Nachrichten geheim halten Speicherinhalte verschlüsseln Integrität Authentizität Signieren: Daten gegen Abänderung schützen Nachweisbarkeit erreichen Authentisieren: Passwort Fingerabdruck Token

3 Vertraulichkeit Basis Szenario A m B Verschlüsselungs-Szenario: Ein Sender A will einen Empfänger B in der Zukunft eine Nachrichten zuschicken, die nicht von jemand anders gelesen werden kann. Zu dem Zweck dürfen sich A und B, solange sie noch am gleichen Ort sind, ein gemeinsames Geheimnis erzeugen, sagen wir auf Papier (oder USB Stick). A K c(m) B K Die Nachricht wird dann von A mithilfe des Geheimnisses K kodiert, Nach Empfang dekodiert B die Nachricht ebenfalls mithilfe des Geheimnisses K. Anwendungen z.b.: - Militär: A Befehlender, B Befehlsempfänger - Geschäft: A Chef, B Mitarbeiter

4 Cäsar Chiffre 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 H I J K L M N O P Q R S T U V W X Y Z A B C D E F G HALLOWELT wird zu OHSSVDLSA A K OHSSVDLSA B K Zyklus der Buchstaben. Leicht zu knacken (nur n=25 Möglichkeiten). Besser ist eine monoalphabetische Chiffre, also eine Bijektion der Buchstaben: A B C D E F G H I J K L M N O P Q R S T U V W X YZ Z I O J R L M V N S P W A T Y B Q E C Z K F H G X DU HALLOWELT wird zu NIAABGLAK Trotzdem nicht sicher: Zählung häufigster Buchstaben, Doppelbuchstaben, etc. U

5 Cardano Chiffre Giacomo Cardano, auch Erfinder der Kardanwelle Nachricht Geheimnis (die Lochkarte) (hier in der Steganographie Version, d.h. die Nachricht erscheint harmlos)

6 Vigenere Chiffre Alphabet: A-Z plus ein paar extra Zeichen (insgesamt 30 Zeichen) 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.?! Schlüssel: L I S A L I S A Zu codierende Nachricht: H E U T E U M S I E B E N! Ciphertext: S M I T P D I M G G G E M M B Decodierte Nachricht: L I S A L I S A L I S A H E U T E U M S I E B E N!! Der Schlüssel wird einfach immer wieder hintereinandergeschrieben, so oft wie die Nachricht lang ist. Angriff: pro Position des Schlüssels eine Häufigskeitsanalyse machen. Im Beispiel sind das 4 Stellen. An der 2. Stelle kommt im Beispiel-Cyphertext 2 mal M vor: Das vorläufige Setzen auf M=c(E) mit E als häufigstem Buchstaben stellt sich als korrekt heraus. Wenn unbekannt ist, wie lang der Schlüsselstring ist (im Beispiel Länge 4) ist die Analyse schwieriger.

7 Kryptologie Bernd Borchert Univ. Tübingen, SS 2017 Vorlesung Doppelstunde 2 - One Time Pad - Authentisierung

8 Homophone Chiffre Monoalphabetische Chiffre : Bijektion der Buchstaben: A B C D E F G H I J K L M N O P Q R S T U V W X YZ Z I O J R L M V N S P W A T Y B Q E C Z K F H G X DU Problem: Häufigkeitsanalyse: die in der Klartext-Sprache häufigsten Buchstaben werden den häufigsten Buchstaben im Chiffretext zugeordnet, so kann man einen Chiffretext relativ schnell entschlüsseln. Die homophone Chiffre eliminiert diesen Nachteil. Das Chiffre-Alphabet enthält dabei deutlich mehr Buchstaben als das Klartextalphabet. Und dann werden den häufig vorkommenden Buchstaben der Klartext- Sprache mehrere Buchstaben des Chiffre-Alphabets zufällig zugeordnet, und zwar soviele, wie es ungefähr der Häufigkeit in der Klartextsprache entspricht. Jeder Chiffre-Buchstabe kommt genau einmal vor. A B C D E F G H I J K L M N O P Q R S T U V W X ZY Z U Q a M q k D d i V I c C P Y u F s t T l e E J m U K O r j R h Z W G f L y b A p w N S x ca.15% B X ca.8% H v HALLO c n o g Die Häufigkeitsanalyse wird dadurch praktisch eliminiert. Auch für die Suche nach häufigen Buchstabennachbarn kann man sich eine ähnliche, darauf aufsetzende Technik als Gegenmaßnahme überlegen. Nachteil dieser Substitutions-Verschlüsselung: der Chiffretext ist länger als der Klartext (in bits). z RbZCu Beim Verschlüsseln wird gleichverteilter Zufall eingesetzt, um aus der Menge der möglichen Chiffretext-Buchstaben einen auszuwählen.

9 One-Time Pad Das One-Time Pad ist praktisch die einzige Verschlüsselung, die nachweislich sicher ist, und nicht nur sicher aufgrund von Annahmen ist. Einzige Annahme (realistisch): Gleichverteilter Zufall ist vorhanden (Münze, Würfel) Erfinder: Vernam (USA, ca. 1918) Beweis der 100% Sicherheit: Mauborgne (USA, ~1920), Shannon (USA, 1948)

10 One-Time Pad Alphabet: A-Z plus ein paar extra Zeichen (insgesamt 30 Zeichen) A 0 B 1 C 2 D 3 E 4 F 5 G 6 H 7 I 8 J 9 Schlüssel: Gleichverteilter Zufallsstring (aus diesen Zeichen): K 10 L 11 M 12 N 13 O 14 P 15 Q 16 R 17 S 18 T 19 U 20 V 21 W X Y Z ? 28! 29 K. W R L D H H P B J A F Z Zu codierende Nachricht: I A N G R I F F M O R G E N! Codierte Nachricht: K K? E S B I D T! S P E S Y Decodierte Nachricht: E A N G R I F F M O R G E N!

11 Binäres One-Time Pad (EXOR) One-time pad (Zufall) Zu codierende Nachricht: H i Codierte Nachricht: (EXOR) Decodierte Nachricht: H i In diesem mod 2 Spezialfall: Codierfunktion = Decodierfunktion

12 Beweis Sicherheit One-Time Pad Beweis der perfekten Sicherheit der One-Time Pads. Behauptung: Wenn das one-time-pad K durch gleich-verteilten Zufall entstanden ist, hat ein Angreifer bei einem abgefangenen Ciphertext C keine Information darüber, wie die Originalnachricht m aussah. Beweis: Eine abgefangener Ciphertext C kann aus jeder Nachricht m entstanden sein, nämlich dann, falls als Schlüssel K = C EXOR m gewählt wurde, und auch nur in diesem Fall. Weil alle Schlüssel K die gleiche Wahrscheinlichkeit haben, haben also auch alle Nachrichten die gleiche Wahrscheinlichkeit, dass aus ihnen C entstanden sein könnte. Beispiel: Sei C = 01 der abgehörte Ciphertext. C könnte aus der Nachricht 00 entstanden sein, wenn der Schlüssel 01 wäre. C könnte aus der Nachricht 01 entstanden sein, wenn der Schlüssel 00 wäre. C könnte aus der Nachricht 10 entstanden sein, wenn der Schlüssel 11 wäre. C könnte aus der Nachricht 11 entstanden sein, wenn der Schlüssel 10 wäre. Weil jeder der 4 möglichen Schlüssel die Wahrscheinlichkeit 25% hat, hat jede der 4 entsprechenden Originalnachrichten (alle verschieden) die gleiche Wahrscheinlichkeit (25%). Also kann der Abhörer keine Aussage über die Nachricht machen, nicht einmal eine probabilistische. Er hat mit C also keinerlei Information über die Nachricht.

13 Affine Chiffren: Rechnen auf {0,1} Auf der Menge {0,1} kann man rechnen: Die Addition ist die Addition mod 2, oder anders ausgedrückt: das EXOR = = = = 0 Die Multiplikation auf {0,1} ist so wie als Teilmenge von Z, oder anders ausgedrückt: das UND 0. 0 = = = = 1 So wird {0,1} zu einem sog. Körper (wie R oder C) Die Menge der n-tupel von Körperelementen ist ein n-dimensionaler Vektorraum.

14 Affine Chiffren: Matrizenrechnung Eine n x n Matrix aus {0,1} stellt damit eine Abbildung auf den n-tupeln dar: ( ) (0, 1, 1) = (1, 1, 0) = = 1 Wenn die Matrix A invertierbar ist, ist die durch A gegeben lineare Abbildung v -> va eine Bijektion, ebenso wie die affine Abbildung v -> va + b, und das für jeden festen Vektor b. Damit eignet sich eine invertierbare A zum Verschlüsseln von Bitstrings v der Länge n: v wird als Tupel aufgefasst und auf den String c(v) =va + b abgebildet. Das Paar (A,b) ist der Schlüssel. Entschlüsselt wird w = va + b durch v = (w-b)a -1 Wenn b = Nullvektor, nennt man es eine Lineare Chiffre, und allgemein eine Affine Chiffre. Eine Bit-String der Länge kn v 1...v k wird auf c(v 1 )...c(v k ) abgebildet (erstes Beispiel einer Blockchiffre) Statt auf {0,1} mit mod 2 kann man auch auf {0,1,...,k-1} mit mod k für eine Primzahlpotenz k rechnen. Die Matrizen Rechnung geht genau so und die Def. der Affinen Chiffre ist darauf übertragbar. Als Verschlüsselungsverfahren sind Affine Chiffren relativ schwach, besonders bei known-plaintext.

15 Authentisierung Die drei Authentisierungs-Faktoren Faktor Wissen: etwas, was der richtige Benutzer weiß: Passwort, PIN, etc. Faktor Haben: etwas, was der richtige Benutzer bei sich hat: Zutrittskarte, Handy, Bankkarte, etc. Faktor Sein: etwas, was der richtige Benutzer körperlich hat: Fingerabdruck, Gesichtserkennung, etc.

16 Kryptologie Bernd Borchert Univ. Tübingen, SS 2017 Vorlesung Doppelstunde 3

17 Visuelle Kryptographie Sie sehen an den mitgebrachten Folien: + = HALLO! Man kann es aber auch so sehen: die Information wird in zwei Teile zerlegt, die beide jeweils allein keine Information haben: HALLO! = + Wie funktioniert s?

18 Visuelle Kryptographie wie funktioniert's? 1.Folie (Zufall) Original-Bild 2.Folie (kein Zufall) Folie = = Quasi wie one-time pad, nur 2-dimensional und visuell entschlüsselt mit OR, nicht EXOR

19 Zusammenfassung Historische Verschlüsselungsverfahren A K m B K Einfache Verschlüsselungsverfahren für das einfachste Szenario A will B eine geheime Nachricht senden wobei A und B vorher schon ein Geheimnis K ausgetauscht haben. Cäsar Chiffre Monoalphabetische Vertauschung Cardano Chiffre Vigenere Chiffre Homophone Chiffre One-time Pad Lineare Chiffre Affine Chiffre Visuelle Kryptographie nicht sicher nicht sicher sicher (bei Einmalverwendung) nicht sicher nicht sicher sicher (bei Einmalverwendung) nicht sicher nicht sicher sicher (bei Einmalverwendung)

20 Angriffstypen A K c K (m) B K ciphertext-only, mit Angriffziel Nachricht: c K (m) liegt vor, und es soll m gefunden werden ciphertext-only, mit Angriffsziel Schlüssel: c K (m 1 ),..., c K (m j ) liegen vor, und es soll Schlüssel K gefunden werden known-plaintext: m 1, c K (m 1 ),..., m j, c K (m j ) liegen vor, und es soll K gefunden werden chosen-plaintext: m 1,..., m j dürfen vom Angreifer gewählt werden, dann werden c K (m 1 ),..., c K (m j ) berechnet, (ggfs. das einige Male iterativ) und dann soll aus m 1, c K (m 1 ),..., m j, c K (m j ) K gefunden werden Alle bisher betrachteten Verschlüsselungs-Verfahren sind nicht sicher gegen known-plaintext Angriffe, geschweige denn, sicher gegen chosen-plaintext Angriffe.

21 Blockchiffre Eine Blockchiffre verschlüsselt Bitstrings der Länge n in Bitstrings der Länge n, und das für jeden Schlüssel K. Formal ist eine Blockchiffre ist also eine Abbildung c: {0,1} n x {0,1} k --> {0,1} n (Blockgröße n, Schlüsselänge k), so dass für jedes feste K gilt, dass die Abbildung von {0,1} n nach {0,1} n gegeben durch y --> c(y,k) bijektiv ist. Typische Blockgrößen sind n = 68, 128, Der Schlüssel hat ein Größe in der Größenordnung der Blocklänge, aber muss nicht die gleiche Länge haben. Typische Schlüssellängen sind k = 56, 128, 192, 256, Affine Chiffren waren der erste, aber noch nicht überzeugende Versuch einer Blockchiffre, denn eine Blockchiffre sollte gegen chosen-plaintext und known-plaintext Angriffe sicher sein. Gegeben ist ein langer Text und eine Blockchiffre inkl. Blocklänge und Schlüssel. Wie verschlüsselt man den Text? Es gibt verschiedene Betriebsmodi, von denen die wichtigsten 4 hier vorgestellt werden. Der naheliegenste Modus ist der ECB (Elektronic Code Book) Modus: 1. den Text hinten auf Blocklängenvielfaches padden, 2. und dann Block für Block verschlüsseln, 3. die entstandenen Ciphertexte in dieser Reihenfolge aneinanderketten

22 Betriebsmodi ECB Modus Electronic Code Book Modus Plaintext key V key V key V Ciphertext

23 Betriebsmodi Nachteil ECB key ECB Pinguin Effekt : Gleiche Blöcke werden auf den gleichen Chiffre-Blöcke abgebildet. Das kann eine Information für den Angrefier bedeuten. Bei Bildern ist das z.b. fatal, siehe das Beispiel.

24 Betriebsmodi CBC Modus Cipher Block Chaining Modus Plaintext: IV key V key V key V Ciphertext:

25 Betriebsmodi Vorteil CBC key ECB key CBC

26 Betriebsmodi CFB Modus Cipher Feedback Modus Plaintext: key key key IV V + V + V + Ciphertext:

27 Betriebsmodi OFB Modus Output Feedback Modus Plaintext: key key key IV V + V + V + Ciphertext: Vorteil: der String, mit dem ge-exor-ed wird, kann schon im Voraus berechnet werden

28 Betriebsmodi ECB CBC CFB OFB

29 Zusammenfassung Betriebsmodi --> Betriebsmodus wählen: ECB, CBC, CFB, oder OFB Nachteile - ECB Pinguin Effekt - CBC, CFB, OFB brauchen IV vergrößert Datengröße und den Verwaltungsaufwand Vorteile - bei CFB und OFB muss nicht auf Blockgröße gepaddet werden - bei OFB kann das ganze feedback im Voraus berechnet werden. OFB stellt somit eigentlich eine typische sog. Stromchiffre dar

30 Kryptologie Bernd Borchert Univ. Tübingen SS 2017 Vorlesung Doppelstunde 4 Rechnen modulo n

31 Modulo Rechnen a mod n ist definiert als Rest von a bei Division durch n (a aus Z, n aus N) Rechenregeln: (a + b) mod n = (a mod n + b mod n) mod n (a - b) mod n = (a mod n - b mod n) mod n (a * b) mod n = (a mod n * b mod n) mod n Operator- und Kongruenz-Schreibweise, Teilbarkeit: a mod n = b mod n a b (mod n) n (a - b) Beispiele: (6 + 9) mod 11 = 15 mod 11 = (mod 11) 6 * (mod 11), 11 (54-10) (60 + 9) mod 11 = (60 mod mod 11) mod 11 = (5 + 9) mod 11 = 14 mod 11 = 3 Z n sei die Menge der Zahlen 0, 1,..., n - 1. Die Operationen +, - und * auf Z n sind eindeutig definiert durch die Operation in Z und anschließender Modulo-Rechnung; effizient berechenbar. Was ist mit Dividieren und Potenzieren? mod

32 Modulo Division a geteilt durch b mod n bedeutet die Multiplikation von a mit dem multiplikativen Inversen von b mod n. Das multiplikative Inverse b -1 in Z n von b ist die Zahl c so dass b*c 1 (mod n). Wenn b -1 in Z n existiert, dann ist es eindeutig. Beispiel: Das mult. Inverse von 2 in Z 5 ist 3, denn 2*3 6 1 (mod 5). Nicht jede Zahl a hat ein mult. Inverses in Z n, z. B. hat 2 in Z 4 kein Inverses (2*0 mod 4 = 0, 2*1 mod 4 = 2, 2*2 mod 4 = 0, 2*3 mod 4 = 2). Später sehen wir: Wenn p Primzahl ist, hat jede Zahl > 0 in Z p ein mult. Inverses, d.h. Z p ist ein sogenannter Körper. Aber vorerst stellen wir nur das Verfahren zur Berechnung des mult. Inversen von b in Z n vor das Verfahren wird uns dabei automatisch sagen, ob dieses Inverse existiert.

33 Euklidischer Algorithmus (für ggt) Gesucht: größter gemeinsamer Teiler ggt(a,b) von zwei Zahlen a und b x := a, y := b while y 0: r := x mod y x := y y := r return x (hier jetzt keine modulo Rechnung, sondern Rechnung in Z) Am Ende gilt x = ggt(a,b). Beispiel: ggt(61,36) =? 61 = 1 * = 1 * = 2 * = 3 * = 1 * = 2 * Euklid, Alexandria (Ägypten), ca. 300 v.chr. ggt(61,36) = 1

34 Beweis Euklidischer Algorithmus Beweis (anschaulich, wie im Original von Euklid ca. 300 v.chr.) ggt(a,b) = ggt(b,c) wobei c der Rest ist von a : b a b Ein Teiler t von a und b muss auch den Rest c teilen: b b a b a c Wenn c nicht durch t teilbar ist, wäre es a auch nicht t t t t t t t t t t t Das gilt auch für den größten Teiler, also ggt(a,b) = ggt(b,c) Gesamtbeweis von Euklids Algorithmus: ggt(a,b) = ggt(b,c) = ggt (c,d) =... = ggt(a n,b n )

35 Euklidischer Algorithmus (für ggt) Gleiche Berechnung, aber hier nochmal in Tabellenform: Gesucht: ggt(61,36) ggt(61,36) = 1 61 = 1 * = 1 * = 2 * = 3 * = 1 * = 2 * a b q r ggt(61,36) = 1

36 Erweiterter Euklidischer Algorithmus Lemma von Bézout: Seien a, b aus Z. Dann existieren s, t aus Z mit s*a + t*b = ggt(a,b). s und t können durch Erweiterung des Euklidischen Algorithmus berechnet werden: nach der Berechnung des ggt werden die Restedarstellungen von unten nach oben eingesetzt. Im Beispiel: 1 = 3-1*2 = 3-1*(11-3*3) = *3 = *(25-2*11) = 4*25-9*11 = 4*25-9*(36-25) = -9* *25 = -9* *(61-36) = 13*61 + (-22)*36 s a t b

37 Erweiterter Euklidischer Algorithmus 13 * 61 + (-22) * 36 = 1 (Prüfung: = 1) 61 = 1 * = 1 * = 2 * = 3 * = 1 * = 2 * a b q r s t = -9 1 * 13 = 4 1 * (-9) = -1 2 * 4 = 1 3 * (-1) = 0 1 * 1 ggt(61,36) = 1 s := t u t := s u - q * t u

38 Erweiterter Euklidischer Algorithmus - Beweis Korrektheit 61 = 1 * = 1 * = 2 * = 3 * = 1 * = 2 * * 61 + (-22) * 36 = 1 a b q r s t (Prüfung: = 1) = -9 1 * 13 = 4 1 * (-9) = -1 2 * 4 = 1 3 * (-1) = 0 1 * 1 ggt(61,36) = 1 s := t u t := s u - q * t u Korrektheitsbeweis. Zu zeigen ist die Invariante sa + tb = ggt(a,b) für jede Zeile. Induktionsanfang: zweitunterste Zeile. Induktionsschluss: sa + tb = t u a + (s u - qt u )b = t u (a u q + b u ) + (s u - q t u )a u = t u a u q + t u b u + s u a u - q t u a u = t u b u + s u a u = ggt(a,b)

39 Berechnung Multiplikatives Inverses modulo a Gegeben sind a, b. b besitzt genau dann ein multiplikatives Inverses modulo a (d.h. ein i mit b*i 1 (mod a)), wenn ggt(a,b) = 1. Das mult. Inverse kann mit dem EEA berechnet werden (falls es existiert, d.h. ggt(a,b) = 1): * Der EEA liefert s,t aus Z mit s*a + t*b = ggt(a,b) = 1. * Modulo a rechnen: s*a + t*b 1 (mod a) t*b 1 (mod a) Das mult. Inverse von b in Z a ist also t mod a. Beispiel: ggt(61, 36) = 1. EEA liefert: 13 * 61 + (-22) * 36 = 1, also ist das mult. Inverse von 36 modulo 61: -22 mod 61 = 39. Probe: (36 * 39) mod 61 = 1.

40 Potenzieren Dividieren in Z n geht also auch. Die Berechnung ist gewöhnungsbedürftig, aber für einen Computer kein Problem, auch nicht von der Rechenzeit her. Was ist mit Potenzieren? mod n ist ein Zahl < n. Kann man das berechnen, ohne 83 mal zu multiplizieren? Beobachtung: 43 2 braucht 1 Multiplikation 43 4 = (43 2 ) 2 braucht 2 Multiplikationen, 43 8 = (43 4 ) 2 braucht nur 3 Multiplikationen, = (43 2 ) 2 ) 2 ) 2 ) 2 ) 2 braucht nur 6 Multiplikationen mod n Potenzgesetz: (a c ) d = a c*d Daraus ergibt sich der folgende Algorithmus. Um a b mod n zu berechnen, berechne a 2 mod n, a 4 mod n, a 8 mod n,, bis zum ersten a 2k mod n, so dass 2 k+1 größer ist als b. Stelle b als Summe von 2-er Potenzen dar, und multipliziere dann die entsprechenden Potenzen miteinander. Potenzgesetz: a c+d = a c * a d Beispiel: 83 = Also ist a 83 mod n = a 26 * a 24 * a 21 * a 20 mod n

41 Square and Multiply Die folgende Variante des vorigen Algorithmus wird Square-and-Multiply -Algorithmus (SaM) genannt. Sei v die Binärdarstellung einer Zahl. Dann ist a (v 0) 2 = (a v ) 2 und a (v 1) 2 = (a v ) 2 * a. Soll a b mod n berechnet werden, so berechne die Binärdarstellung von b und wende die obigen beiden Regeln iterativ an (von links nach rechts; die erste 1 wird ignoriert, danach 0 = erste Regel und 1 = zweite Regel; nach jedem Schritt wird mod n gerechnet). Beispiel: Exponent b = 83: a b = a 83 = a ( ) 2 mod n x := a mod n initialize x := x 2 mod n square x := (x 2 * a) mod n x := x 2 mod n x := x 2 mod n square and multiply square square Wenn eine 1 kommt x := (x 2 * a) mod n square and multiply x := (x 2 * a) mod n square and multiply Es gilt dann: x a 83 a ( ) 2 (mod n)

42 Chinesischer Restsatz Seien m 1,..., m n aus N paarweise teilerfremd, M = m 1 *... * m n, a 1,..., a n aus Z. Dann existiert genau ein 0 x < M mit x a 1 (mod m 1 ) x a 2 (mod m 2 )... x a n (mod m n ) }Simultane Kongruenz Berechnung von x: Setze M i := M : m i. Es ist ggt(m i, m i ) = 1 für alle i in { 1,..., n }. EEA liefert s i und t i mit s i * M i + t i * m i = 1. Setze e i := s i * M i (damit ist e i 1 (mod m i ) und e i 0 (mod m j ) für j i). Die gesuchte Lösung ist x := i=1 n (a i * e i ) mod M. (Sun Zi, China, ca. 300 europ. Zeitrechnung)

43 Chinesischer Restsatz Beweis. Für alle j in { 1,..., n } gilt (modulo m j ): x i=1 n (a i * e i ) i=1 n (a i * s i * M i ) a j * s j * M j a j * (1 - t j * m j ) a j (mod m j ) Eindeutigkeit folgt mit M = m 1 *... * m n. (da alle M i für i j durch m j teilbar sind) Beispiel. Gesucht: Lösung x für x 1 (mod 3), x 4 (mod 5), x 2 (mod 8). m 1 = 3, m 2 = 5, m 3 = 8, a 1 = 1, a 2 = 4, a 3 = 2, M = 120, M 1 = 40, M 2 = 24, M 3 = 15. Mit EEA: s 1 = 1 (1*40-13*3 = 1), s 2 = -1 (-1*24+5*5 = 1), s 3 = -1 (-1*15+2*8 = 1), e 1 = 40, e 2 = -24, e 3 = -15, x = (1 * * (-24) + 2 * (-15)) mod 120 = -86 mod 120 = 34.

44 Zusammenfassung Zusammenfassung Rechnen in Z n Addition, Subtraktion, und Multiplikation sind in Z n genau wie in Z, es bleibt jeweils nur die mod Operation zu berechnen. Division in Z n ist die Multiplikation mit dem multiplikativen Inversen (falls existent). Der Algorithmus zur Berechnung des multiplikativen Inversen ist der Erweiterte Euklidische Algorithmus (ist schnell). Potenzieren a b in Z n geht mit Square-and-Multiply (ist schnell). Lösungen für simultane Kongruenzen lassen sich effizient mit dem Chinesischen Restsatz berechnen.

45 Kryptologie Bernd Borchert Univ. Tübingen SS 2017 Vorlesung Doppelstunde 5 Feistel Netzwerk, DES

46 DES (Data Encryption Standard) Blockchiffre DES: verschlüsselt einen 64 bit Block in einen 64 bit Block,und das mit einem Schlüssel der Länge 56 bit. Plaintext x x Schlüssel K Ciphertext c(x) K K DES c(x) DES -1 Die Ver- und die Entschlüsselungsfunktion sind rel. schnell berechenbar. Entwickelt ca. 1976, ca gebrochen: Schlüssel ist einfach zu kurz! x brechen heißt: known-plaintext Angriff ist erfolgreich: Schlüssel wird aus abgehörten plaintext/ciphertext Paaren gefunden

47 Vertauschung IP 32 bit + 32 bit F Subkey 1 (48 bit) Feistel Netzwerk + 32 bit F 32 bit Subkey 2 (48 bit) bit 32 bit F 32 bit Subkey 3 (48 bit) F 32 bit Subkey 16 (48 bit) Vertauschung IP -1

48 x Umkehrbarkeit DES y 32 bit + 32 bit F Subkey i (48 bit) swap + 32 bit F 32 bit Subkey i (48 bit) y Fazit: Egal, wie F aussieht: DES ist umkehrbar durch Swappen und Durchlaufen der 16 Runden in umgekehrter Reihenfolge: (nächste Seite) x x + F(y,Subkey i) + F(y,Subkey i) = x

49 Umkehrabbildung DES IP swap + 32 bit F Subkey 16 (48 bit) + 32 bit F Subkey 15 (48 bit) bit F Subkey 1 (48 bit) swap IP -1

50 32 bit 32 bit Feistelschaltung F Subkey i (48 bit) Extension E + S1 S2 S3 S4 S5 S6 S7 S8 Permutation P

51 Feistelbox S1 S1 - Die beiden gelben bits werden binär als Zeile 0-3 interpretiert, - die 4 blauen bits oben binär als Spalte und der in der Tabelle stehende Wert 0-15 wird binär zu den 4 blauen bits unten S S2 bis S8 werden analog, aber möglichst unterschiedlich definiert.

52 DES Subkey Erzeugung Die bit Subkeys für DES werden aus dem vorgegebenen 56 bit Schlüssel durch Halbieren, Weglassen, Shiften, Permutieren und Wiederzusammensetzen erzeugt. Details (in der Vorlesung nur oberflächlich besprochen) Iteration Number Number of Left Shifts

53 Triple DES (3DES) Triple DES verschlüsselt einen 64 bit Block in einen 64 bit Block, mit einem Schlüssel der Länge 3 x 56 = 168 bit. Plaintext DES bits 0-55 Schlüssel DES -1 bits Schlüssel DES bits Schlüssel Ciphertext Ist sicher, d.h. nicht gebrochen (2017) Dass in der Mitte die Umkehrfunktion DES -1 genutzt wird, ist unwesentlich. Es ist nur ein Kniff, um eine 3DES Hard-/Software auch als DES nutzen zu können, denn so ist DES K = 3DES K,K,K

54 2-DES ist nicht sicher, denn es kann durch einen Meet-in-the-Middle Angriff gebrochen werden (known plaintext) K1 p DES 2-DES Annahme: Angreifer hat 2 plaintext/ciphertext Paare <p1,c1> <p2,c2> abgehört. Wir nehmen an, dass eine 2DES- Verschlüsselung unter allen 2DES-Veschlüsselungen durch 2 Paare <p1,c1> <p2,c2> eindeutig bestimmt ist (deshalb 2 Paare). Gesucht sind K1, K2 mit 2DES K1,K2 (p1)= c1 und 2DES K1,K2 (p2)= c2 e(p)=d(c) DB Angreifer legt eine große DB an mit den Tripeln <e k (p1),e k (p2),k> für alle möglichen Schlüssel k für die erste DES-Verschlüsselung, geordnet nach e k (p1), d.h. K2 DES c <e k76 (p1),e k76 (p2),k76> <e k2 (p1), e k2 (p2), k2> <e k34 (p1),e k34 (p2),k34>... <e k17 (p1),e k17 (p2), k17> binäre/schnelle Suche möglich (2 56 Datensätze ist heutzutage machbar) Danach berechnet er für alle Schlüssel k' der 2. DES- Verschlüsselung d k' (c1) und d k' (c2) und sucht in den DB nach einem Eintrag mit e k (p1) = d k' (c1) und e k (p2) = d k' (c2)? Wenn die nicht ex. geht er zum nächsten Schlüssel. Er kann sicher sein, dass er irgendwann für ein <d k' (c1),d k' (c2),k'> in der DB ein passendes Tripel <d k (p1),d k (p2),k> findet, denn e(p1)=d(c1) und e(p2)=d(c2). Index - nicht auf k, sondern auf e(p) Die Schleife mit max Iterationen ist durchlaufbar, d.h er wird K1= k und K2 = k' finden.

55 Zusammenfassung DES/3DES DES Blockchiffre (Blocklänge 64, Schlüssellänge 56) DES ist inzwischen gebrochen, aber nur, weil der Schlüssel mit 56 bits zu kurz war 3DES = 3 mal DES mit 3 verschiedenen Schlüsseln hintereinander (Blocklänge 64, Schlüssellänge 168) 3DES ist bislang sicher 2DES nicht sicher: Meet-in-the-middle Algorithmus bei known-plaintext

56 Kryptologie Bernd Borchert Univ. Tübingen SS 2017 Vorlesung Doppelstunde 6 AES

57 AES AES ist eine Blockchiffre in drei Varianten AES128, AES196 und AES256. Wichtigste Kennzahlen: Blocklänge bei allen drei Varianten: 128 bit (= 16 Byte) Schlüssellänge: 128, 196, oder 256 bit Plaintext x 128 bit x Schlüssel K (128, 196, 256) Ciphertext c(x) 128 bit K AES c(x) K AES -1 x

58 Grundstruktur AES Zuerst werden aus dem 128 bit Schlüssel 11 Rundenschlüssel R0 bis R10 mit jeweils 128 bit erzeugt (Beschreibung später). Dann werden die folgenden 11 Runden mit Exor (+) und der 128-bit Bijektion B (bzw. B last) durchlaufen: Plaintext 128 bit + = Rundenschlüssel R0 Runde 0 B + = Rundenschlüssel R1 Runde 1 B + =... Rundenschlüssel R2 Runde 2... B + = RundenschlüsselR13 R9 Runde 9 Rundenschlüssel Blast + = Rundenschlüssel R10 Runde 10 Chiffretext

59 Entschlüsselung AES Allein durch die Grundstruktur von AES128 und der Bijektivität von B und B last ist garantiert, dass die Verschlüsselung bijektiv ist, mit der folgenden Entschlüsselung. Es wird genutzt: (a + b) + b = a. Plaintext = + Rundenschlüssel R0 Runde 10 B-1 = + Rundenschlüssel R1 Runde 9 B-1 = +... Rundenschlüssel R2 Runde 8... B B-1 = + = + RundenschlüsselR13 R9 Runde 1 Rundenschlüssel Blast-1 = + Rundenschlüssel R10 Runde 0 Chiffretext

60 Bijektion B B setzt sich zusammen aus drei hintereinander ausgeführten Bijektionen auf 128 bit Strings: SubBytes ShiftRows B MixColumns Die Umkehrfunktion B-1 von B ergibt sich durch umgekehrte Ausführung der drei jeweiligen Einzel-Umkehrfunktion. Bei B last fehlt die letzte Teilfunktion MixColumns.

61 Bijektion SubBytes Die 128 bits werden als 16 Bytes aufgefasst und dann wird auf jedes Byte ein monoalphabetische Substitution (Bijektion) S durchgeführt. Definition von S siehe nächste Seite. = S S S S S S S S S S S S S S S S =

62 Die Funktion S ist eine Bijektion von Bytes auf Bytes, also 8-bit Wörter auf 8-bit Wörter. Die hexadezimale Tabelle sieht so aus: Beispiel = 0x2f wird durch S abgebildet auf 0x15 = Wichtig ist vor allem, dass S bijektiv und nicht affin ist ist. Das erstere kann man daran erkennen, dass jedes Byte in der Tabelle genau einmal vorkommt. Daraus ergibt sich direkt auch schon die Umkehrfunktion S -1 als Tabelle: Wie kommt S zustande? Ist S zufällig gewürfelt worden? wenn ja, dann würde der Verdacht aufkommen, dass die Architekten von AES eine Hintertür eingebaut haben. Substitution S (AES S-Box) S a b c d e f c 77 7b f2 6b 6f c b fe d7 ab ca 82 c9 7d fa f0 ad d4 a2 af 9c a4 72 c0 20 b7 fd f f7 cc 34 a5 e5 f1 71 d c7 23 c a e2 eb 27 b c 1a 1b 6e 5a a0 52 3b d6 b3 29 e3 2f d1 00 ed 20 fc b1 5b 6a cb be 39 4a 4c 58 cf 60 d0 ef aa fb 43 4d f9 02 7f 50 3c 9f a a3 40 8f 92 9d 38 f5 bc b6 da ff f3 d2 80 cd 0c 13 ec 5f c4 a7 7e 3d 64 5d f dc 22 2a ee b8 14 de 5e 0b db a0 e0 32 3a 0a c c2 d3 ac e4 79 b0 e7 c8 37 6d 8d d5 4e a9 6c 56 f4 ea 65 7a ae 08 c0 ba e 1c a6 b4 c6 e8 dd 74 1f 4b bd 8b 8a d0 70 3e b f6 0e b9 86 c1 1d 9e e0 e1 f d9 8e 94 9b 1e 87 e9 ce df f0 8c a1 89 0d bf e d 0f b0 54 bb 16 S a b c d e f a d a5 38 bf 40 a3 9e 81 f3 d7 fb 10 7c e b 2f ff e c4 de e9 cb b a6 c2 23 3d ee 4c 95 0b 42 fa c3 4e e a d9 24 b2 76 5b a2 49 6d 8b d f8 f d4 a4 5c cc 5d 65 b c fd ed b9 da 5e a7 8d 9d d8 ab 00 8c bc d3 0a f7 e b8 b d0 2c 1e 8f ca 3f 0f 02 c1 af bd a 6b 80 3a f 67 dc ea 97 f2 cf ce f0 b4 e ac e7 ad e2 f9 37 e8 1c 75 df 6e a0 47 f1 1a 71 1d 29 c5 89 6f b7 62 0e aa 18 be 1b b0 fc 56 3e 4b c6 d a db c0 fe 78 cd 5a f4 c0 1f dd a c7 31 b ec 5f d f a9 19 b5 4a 0d 2d e5 7a 9f 93 c9 9c ef e0 a0 e0 3b 4d ae 2a f5 b0 c8 eb bb 3c f0 17 2b 04 7e ba 77 d6 26 e c 7d

63 Basis der Permutation: Mult. Inverses in GF(28) Sei GF(28) der Körper der Z 2 -Polynome mit Grad < 8 modulo dem irred. Polynom r = x8 + x4 + x3 + x1 + x0 Elemente sind die 8-bit Strings a 7 a 6 a 5 a 4 a 3 a 2 a 1 a 0 a i steht für das Monom xi : Wenn a i = 1, dann taucht es in dem Polynomausdruck auf, sonst nicht. Beispiel: steht für das Polynom x 6 + x 5 + x 3 + x 0 Addition ist EXOR Beispiel: (x 6 + x 5 + x 3 + x 0 ) + (x 5 + x 4 + x 3 + x 0 ) = x 6 + x 4 Multiplikation: dazu werden die 2 Polynome in die Monome ausmultipliziert, und danach durch das irreduzible r (ist fest, siehe oben) geteilt: Beispiel: (x 6 + x 1 ) * (x 5 + x 4 + x 0 ) Zuerst die Monome: (x 6 + x 1 ) * (x 5 + x 4 + x 0 ) = x 11 + x 10 + x 6 + x 6 + x 5 + x 1 = x 11 + x 10 + x 5 + x 1 Dann das Teilen durch r: x 11 + x 10 + x 5 + x 1 : x 8 + x 4 + x 3 + x 1 + x 0 = x 3 + x 2 x 11 + x 7 + x 6 + x 4 + x 3 x 10 + x 7 + x 6 + x 5 + x 4 + x 3 + x 1 x 10 + x 6 + x 5 + x 3 + x 2 x 7 + x 4 + x 2 + x 1 Das heißt also: (x 6 + x 1 ) * (x 5 + x 4 + x 0 ) = x 7 + x 4 + x 2 + x 1

64 Basis der Permutation: Mult. Inverses in GF(28) 2. Beispiel: (x 5 + x 2 + x 0 ) * (x 6 + x 3 + x 2 + x 0 ) Zuerst das Ausmultiplizieren in Monome: (x 5 + x 2 + x 0 ) * (x 6 + x 3 + x 2 + x 0 ) = x 11 + x 8 + x 7 + x 5 + x 8 + x 5 + x 4 + x 2 + x 6 + x 3 + x 2 + x 0 = x 11 + x 7 + x 6 + x 4 + x 3 + x 0 Dann das Teilen durch r: x 11 + x 7 + x 6 + x 4 + x 3 + x 0 : x 8 + x 4 + x 3 + x 1 + x 0 = x 3 x 11 + x 7 + x 6 + x 4 + x 3 x 0 Also: (x 5 + x 2 + x 0 ) * (x 6 + x 3 + x 2 + x 0 ) = x 0 x0 ist das neutrale Element 1 in GF(28), denn x0 * p = p für jedes Polynom p. Das heißt: die zwei Faktoren sind die mult. Inversen voneinander: (x 5 + x 2 + x 0 ) * (x 6 + x 3 + x 2 + x 0 ) = * = 1 0x25 * 0x4D = 1

65 Basis der Permutation: Mult. Inverses in GF(28) Sei GF(28) der Körper der Z 2 -Polynome mit Grad < 8 modulo dem irred. Polynom r = x8 + x4 + x3 + x1 + x0 Wenn die Polynome als 8-bit Vektoren (also Bytes) aufgefasst werden, ergibt sich also die folgende Tabelle der multiplikativen Inversen: Beispiel von der vorhergehenden Seite: Das mult. Inverse von = 0x25 ist 0x4D = Die multiplikatives-inverse Funktion ist hochgradig nicht-linear (a EXOR b) -1!= a -1 EXOR b -1 Die Nicht-Linearität kann man sich in gewisser Weise auch so klar machen, dass nur die Polynome mit Grad 0 und 1 affin/linear sind, die höhergradigen aber nicht. Die Subsitutionsbox S ist der einzige nicht-lineare Teil in der AES-Berechnung

66 Der affine Teil von S Nachdem das mult. Inverse x-1 von x gefunden ist, wird x-1 noch mit der durch die folgende Matrix A gegebenen, affinen Abbildung (inkl. Offset-Vektor b) umgeformt in den endgültigen Wert S(x) A b Insgesamt ist also S(x) = Ax-1 + b Dass Ax + b eine affine Bijektion ist, erkennt man daran, dass die folgende affine Abbildung die Umkehrabbildung davon ist: Für S-1 wird also zuerst diese affine Umkehrabbildung ausgeführt, und dann die Inversenbildung

67 Beispiel affiner Teil von S Das mult. Inverse von 0x25 = ist 0x4D = Das wird zum Input für die affine Abbildung: A b = = (Achtung: von oben nach unten entspricht von rechts nach links, siehe Def.) Die affine Abb. bildet auf = 0x3F ab. Also ist S(0x25) = 0x3F (stimmt mit dem Tabelleneintrag überein)

68 Bijektion ShiftRows Shift Rows so, wie durch die Farben angedeutet Umkehrabbildung: entsprechende Rotation, nur in die andere Richtung

69 Bijektion MixColumns a0 a1 a2 a3 b0 b1 b2 b3 L (lin. Abb. in GF(2 8 ))

70 Lineare Bijektion L a0 a1 a2 a3 b0 b1 b2 b3 L : b0 = 2a0 + 3a1 + a2 + a3 b1 = a0 + 2a1 + 3a2 + a3 b2 = a0 + a1 + 2a2 + 3a3 b3 = 3a0 + a1 + a2 + 2a3 Operationen spaltenweise (es sind 4 Spalten) Addition + ist bit-weises EXOR Multiplikation 2a und 3a ist byte-weise in GF(28 ) mit dem bekannten irred. Polynom r = x8 + x4 + x3 + x1 + x0 (es ist 2 = x 1 und 3 = x 1 + 1)

71 Umkehrfunktion MixColumns a0 a1 a2 a3 b0 b1 b2 b3 L : L -1 : b0 = 2a0 + 3a1 + a2 + a3 b1 = a0 + 2a1 + 3a2 + a3 b2 = a0 + a1 + 2a2 + 3a3 b3 = 3a0 + a1 + a2 + 2a3 a0 = Eb0 + Bb1 + Db2 + 9b3 a1 = 9b0 + Eb1 + Bb2 + Db3 a2 = Db0 + 9b1 + Eb2 + Bb3 a3 = Bb0 + Db1 + 9b2 + Eb3 L ist bijektiv, weil L -1 (L(a0,a1,a2,a3)) = a0,a1,a2,a3

72 AES128 Rundenschlüssel Erzeugung 128 bit Schlüssel. R0 = Orig. Key R1 R2 R3 R4 R5 R10 vertical Rotation S-Box (SubBytes) = + = Columns 1,2,3: C i-4 EXOR C i-1 Columns 0: C i-1 vert. Rotation SubBytes EXOR Y k EXOR C i-4 Video: B Y 1 Y 2 Y 10

73 Diffusion und Konfusion Verschleierungsziele für Chiffren Diffusion: Der Input x soll so verschleiert werden, dass er vom Output her nicht zu rekonstruieren ist. Konfusion: Der Schlüssel K soll so verschleiert werden, dass er vom Output her nicht zu rekonstruieren ist. (Eselsbrücke: Konfusion fängt mit K wie Key an, Diffusion mit D wie Daten.) Diffusion erreicht man bei DES und AES einfach durch das EXOR mit den Subkeys. Konfusion ist damit das wichtige Ziel bei den Blockchiffren DES, AES etc. Die Konfusion wird nicht von ShiftRows erzeugt, sondern von allem von MixColumns, zusammen mit dem nicht-linearen SubColumns u

74 Zusammenfassung AES AES196 und AES 256 unterscheiden sich neben einer leicht modifizierten Subschlüsselerzeugung nur darin, dass im Hauptalgorithmus 13 bzw. 15 statt 11 Runden durchlaufen werden. Angreifbarkeit. AES konnte bislang praktisch nicht angegriffen werden (auch nicht AES128) alle dokumentierten Angriffe sind weit weg von einer Aushebelung. Sie reduzieren beispielsweise die Laufzeit von O(2 128 ) auf O(2 125 ) das ist nicht relevant.

75 Kryptologie Bernd Borchert Univ. Tübingen SS 2017 Vorlesung Teil 7 phi(n)

76 Z n * Z n ist die Menge der Zahlen 0,1,...,n-1. Die Operationen +, - und * auf Z n sind eindeutig definiert und einfach zu berechnen. Z n * := {x > 0 in Z n ggt(x,n) = 1} Beispiele: Z p *= {1,...,p-1} für p Primzahl. Z 15 *= {1,2,4,7,8,11,13,14} Behauptung: Z n * = {x in Z n x hat ein multiplikatives Inverses in Z n } Beweis: Wenn ggt(x,n) = 1, dann findet Extended-Euklid das multiplikative Inverse y. Wenn ggt(x,n) > 1 ist, dann ist jedes Vielfache a*x ein Vielfaches von ggt(x,n), und zwar auch mod n, und damit ungleich 1. q.e.d.

77 Euler phi(n) Z n * ist abgeschlossen unter *. Das mult. Inverse von a*b ist b -1 *a -1. Z n * ist ein Gruppe, und zwar die sogenannte Einheitengruppe des Ringes Z n Die Anzahl der Elemente von Z n * heißt phi(n). phi(p) = p-1 für Primzahl p. Denn ggt(x,p) = 1 für alle 1 < x < p. phi(p*q) = (p-1)(q-1) für Primzahlen p,q. Beweis. Die p+q 1 Zahlen 1, p, 2p, 3p,... (q 1)p, q, 2q, 3q,...(p-1)q sind die einzigen Zahlen, die nicht teilerfremd zu p*q sind, also phi(n) = p*q (p+q-1) = (p 1)(q 1).

78 Euler phi(n) Allgemein gilt für teilerfemde r,s: phi(r*s) = phi(r)*phi(s) Beweis. x < r*s ist nach CRT eindeutig beschrieben durch x = ar + bs mit a <s und b<r. Genau dann hat x einen gemeinsamen Teiler mit r*s wenn a einen gemeinsamen Teiler mit s hat, oder wenn b einen gemeinsamen Teiler mit r hat, oder beides. Also hat x in phi(s)*phi(r) Fällen keinen gemeinsamen Teiler mit r*s. phi(p 2 ) = p(p-1) Allgemein: phi(p k ) = p k-1 (p-1). Beweis. Ein x < p k hat genau dann einen gemeinsamen Teiler mit p k wenn x durch p teilbar ist. Also hat ein Anteil von p-1 von p Zahlen in Z p k* keinen gemeinsamen Teiler mit p k. Zusammen mit phi(r*s) = phi(r)*phi(r) für teilerfemde r,s kann man also phi(n) aus der Faktorisierung von n bestimmen.

79 Satz von Euler, Satz von Fermat Z n * := {x > 0 in Z n ggt(x,n) = 1} = {x > 0 in Z n ex. Inverses mod n} Satz (Euler): Für alle a in Z n * gilt a phi(n) = 1 Beweis (ohne Gruppentheorie/Satz von Lagrange) Sei Z n * = {n 1,...,n phi(n) }. Die Zahlen a*n 1,, a*n phi(n) müssen alle verschieden sein, denn wenn a*n i = a*n j, dann ist auch a -1 * a * n i = a -1 * a *n j, also n i = n j. Weil a in Z n * ist und Z n * unter * abgeschlossen ist, sind die Zahlen a*n 1,, a*n phi(n) also eine Permutation von n 1,, n phi(n) Also ist a*n 1 * * a*n phi(n) = n 1 * * n phi(n). Also ist a phi(n) * n 1 * * n phi(n) = n 1 * * n phi(n). Sei c das Inverse von n 1 * * n phi(n). Dann ist a phi(n) = a phi(n) * n 1 * * n phi(n) * c = n 1 * * n phi(n) * c = 1. q.e.d. Korollar (Fermat): Für alle 0 < a < p gilt a p-1 = 1 mod p.

80 Kryptologie Bernd Borchert Univ. Tübingen SS 2017 Vorlesung Teil 8 Primitivwurzeln

81 Primitivwurzeln in Z n * Satz von Fermat: a x mod n zykelt modulo phi(n): a, a 2, a 3,..., a phi(n) = 1, a, a 2, a 3,... Ist dieser Zyklus maximal lang, also mit Länge phi(n), oder kürzer? Oder äquivalent: werden in dem Zyklus alle p-1 Elemente von Z n * erreicht, bevor es mit (1,) a, a 2,... wieder von vorn los geht? Def. für a in Z n * : <a> = {a, a 2, a 3,..., a phi(n) = 1} Die 1 könnte aber schon eher erreicht werden als im Schritt phi(n) a, a 2, a 3,..., 1, a, a 2, a 3,..., 1, a, a 2, a 3,..., 1 Vor der ersten 1 gibt es keine Periode: Sei a,... y,x... z,x...,1 die erste Periode, mit x als Wiederholung. D.h. ya = za =x. Also yaa -1 = zaa -1. Also y=z. Widerspruch zur Annahme, dass x die erste Periode ist. Wenn x=a (also x in der ersten Position), dann setze y=1, es folgt z=1, und damit ist die 1 nicht die erste 1. <a> ist ein Teiler Z n *. Das ergibt sich aus dem Satz von Euler, denn die erste Periode a, a 2, a 3,..., 1 ist eine Unterperiode von a, a 2, a 3,..., a phi(n) = 1 und muss also genau m mal wiederholt werden, für ein m, sonst treffen sich die 1'en nicht. Also <a> * m = Z n * Ein Element a aus Z n * mit <a> = Z n * heißt Primitivwurzel (manchmal auch Generator). Gibt es immer Primitivwurzeln? wenn ja, kann man sie effektiv finden?

82 Satz von Gauß über die Existenz von Primitivwurzeln Gauß (1799) Z n * enthält Primitivwurzeln n = 1,2,4, p k oder 2p k für Primzahl p>2. Z n * enthält phi(phi(n)) Primitivwurzeln. Korollar. Z p * Primzahl p>2 enthält phi(p-1) Primitivwurzeln. Beweis: Schwierige Gruppentheorie. Wird weggelassen. Beispiel: Z 11 * enthält phi(10) = phi(2*5) = 1*4 = 4 Primitivwurzeln 10, , 4, 3, 5, ,4,8,5,10,9,7,3,6,1 8,9,6,4,10,3,2,5,7, , 9, 5, 4, 1 7,5,2,3,10,4,6,9,8, , 5, 9, 3, 1 6,3,7,9,10,5,8,4,2, , 3, 4, 9, 1

83 Überprüfung und Finden von Primitivwurzeln Def. Eine maximaler Teiler t von n ist ein Teiler von y, für den es keinen Teiler m von y gibt mit t m und t<m<y. Für Primfaktorzerlegung z = p 1 k 1... p i k i sind also die i Teiler t 1 = p 1 k p i k i,... t i = p 1 k 1... p i k i -1 die maximalen Teiler von y. Jeder echte Teiler von n ist Teiler eines maximalen Teilers von von n. Beispiele. die maximalen Teiler von 10 sind 2 und 5 die maximalen Teiler von 50 = 2*52 sind 10 und 25. die maximalen Teiler von 300 = 22 *3 1 *5 2 sind 21 *3 1 *5 2 = *3 0 *5 2 = *3 1 *5 1 = 60 Satz. g ist Primitivwurzel von Z n * gdw. für alle maximalen Teiler t von phi(n) gilt: x t!= 1 Beweis. Wenn g Primitivwurzel ist, dann ist für t < phi(n) die Periode g, g 2,..., g i bei i=t noch nicht zu Ende. Wenn g nicht Primitivwurzel ist, dann ist d = <g> ist ein echter Teiler von Z n * und damit ein Teiler eines maximalen Teilers t. Weil g, g 2,..., g d = 1, ist auch g, g 2,..., g d = 1, g,g 2,..., g 2d = 1, g,g 2,..., g t = 1 qed.

84 Finden von Primitivwurzeln Probabilistischer Algorithmus zum Finden von Primitivwurzeln in Z n * (Faktorisierung von phi(n) muss bekannt sein): Rate ein x in Z n *. Prüfe für alle maximalen Teiler t von phi(n) ob x t!= 1 mod p ist; Falls ja RETURN x ist Primitivwurzel; Ansonsten wiederhole die Rate-Schleife. Die Korrektheit des Tests im prob. Algorithmus: Wenn für einen echten Teiler t von phi(n) gilt x t = 1 mod p, dann hat die von x erzeugte Menge nur t < phi(n) Elemente, denn der Zyklus geht schon hier beim t-ten erzeugten Element in eine Schleife (denn 1x = x). Umgekehrt muss die Anzahl z der von x erzeugten Elemente die Zahl phi(n) teilen (Satz von Euler). Wenn aber z die maximalen Teiler von phi(n) nicht teilt, und andererseits z die Zahl phi(n) teilen muss, muss also z = phi(n) sein. Dass es tatsächlich probabilistischer Algorithmus ist, in dem Sinne, dass man ihn nur wenige Male (Größenordnung 20 bis 200) ausführen muss, um erfolgreich zu sein und damit zu terminieren, liegt daran, dass es so viele nämlich phi(phi(n)) - Primitivwurzeln gibt, siehe 3. Äquivalenz bei Gauss. phi(p-1) ist fast nie kleiner als 1/5 p-1, und auch bei den wenigen Ausnahmen davon (die man ja nach der Berechnung von phi(p-1) erkennt) ist es ein echter Anteil von 18, 15, 12,... Prozent - nie eine Nullmenge. Der prob. Algorithmus läuft also in so einem Ausnahmefall im Durchschnitt etwas länger.

85 Kryptologie Bernd Borchert Univ. Tübingen SS 2017 Vorlesung Teil 9 PKI: RSA, ElGamal

86 PKI Public Key Szenario m c Kpub (m) Alice Bob K priv K pub

87 RSA Kryptoverfahren beruht auf Schwierigkeit von Faktorisierung, speziell die von Primzahlprodukten: Gegeben Primzahlprodukt p*q, was sind p und q?

88 RSA Schlüsselpaar-Erzeugung Wähle zufällig zwei Primzahlen p und q, die ungefähr lang sind. Sei N = pq. Berechne phi(n) = (p-1)(q-1) Wähle eine zu phi(n) teilerfremde Zahl e < phi(n). Berechne d, für das gilt: ed = 1 mod phi(n) (via erweiterter Euklid) (e,n) ist öffentlicher Schlüssel, (d,n) der private. RSA Public Key (e,n) RSA Private Key (d,n)

89 RSA Verschlüsselung Ein m aus {2,...,N-2} wird mit dem öffentlichen Schlüssel verschlüsselt zu c = m e mod N RSA Public Key (e,n) RSA Private Key (d,n)

90 RSA Entschlüsselung Ein Ciphertext c aus {1,...,N-1} wird mit dem privaten Schlüssel entschlüsselt zu c d mod N Verifikation: c d = (m e ) d = m ed = m 1+ k*phi(n) = m 1 = m mod N Euler RSA Public Key (e,n) RSA Private Key (d,n)

91 Elgamal Kryptoverfahren Erweiterung von Diffie-Hellman Schlüsselaustausch - beruht auf Schwierigkeit von Diskreter Logarithmus (DL): Gegeben Primzahl p, and a und m aus {0,...,p-1}. Für welches x aus {0,...,p-1} gilt a x = m mod p? - Sicherheit äquivalent zum DL Problem

92 Elgamal Schlüsselpaar-Erzeugung Bestimme Primzahl p und Primitivwurzel g von Z p *. Wähle zufälliges a aus {0,...,p-2}. p, g, und a sind fest. Nur a bleibt geheim. Berechne A := g a mod p. Der öffentliche Schlüssel ist (p,g,a), der private ist a. Elgamal Public Key (p,g,a) Elgamal Private Key a

93 Elgamal Verschlüsselung Ein m aus {1,..,p-1} wird mit dem öffentlichen Schlüssel zu einem Ciphertext (B,c) verschlüsselt: Wähle zufälliges b aus {1,...,p-1}. Sei B := g b mod p und c:= A b m mod p Der Ciphertext ist das Paar (B,c). Elgamal Public Key (p,g,a) Elgamal Private Key a

94 Elgamal Entschlüsselung Ein Ciphertext (B,c) wird mit dem privaten Schlüssel entschlüsselt zu B p-1-a c = m mod p Verifikation: B p-1-a c = g b(p-1-a) A b m = g b(p-1-a) g ab m = g b(p-1) g -ab g ab m = g (p-1)b m = m mod p Euler/Fermat Elgamal Public Key (p,g,a) Elgamal Private Key a

95 Kryptologie Bernd Borchert Univ. Tübingen SS 2017 Vorlesung Teil 10 Signaturen, Diffie-Hellman

96 Signatur Signatur s(m) einer Nachricht m Alice m, s(m) Bob K priv K pub K pub

97 Signatur Signatur (Thema Integrity ) Gegeben eine Nachricht/Information m. Eine Signatur s(m) von m hat folgenden Sinn: 1. Schutz gegen Manipulation von m durch Dritte 2. Nachweis, dass m durch denjenigen (und nicht jemand anders) gesendet/produziert/bestätigt wurde, der den geheimen Schlüssel besitzt 3. Nichtabstreitbarkeit: Nachweisbarkeit gegenüber dem Besitzer des geheimen Schlüssels, dass m vom ihm signiert wurde. Die 3. Eigenschaft entspricht am meisten dem Zweck einer üblichen Unterschrift unter einen Vertrag. Die 3. Eigenschaft kann nur mit asymmetrischen Signaturen (PKI) erreicht werden.

98 RSA Signatur RSA Signaturerzeugung (mit dem privaten Schlüssel) Ein m aus {2,...,N-2} wird mit dem privaten Schlüssel signiert als s = m d mod N s ist die Signatur von m signieren = verschlüsseln mit dem privaten Schlüssel RSA Public Key (e,n) RSA Private Key (d,n)

99 RSA Signatur RSA Signaturprüfung (mit dem öffentlichen Schlüssel) Die RSA-Signatur s einer Nachricht m wird geprüft durch s =? m e mod N Signatur prüfen = entschlüsseln mit dem öffentlichen Schlüssel RSA Public Key (e,n) RSA Private Key (d,n)

100 Elgamal Signatur Elgamal Signaturerzeugung (mit dem privaten Schlüssel) Eine Nachricht m aus {1,..,p-1} soll signiert werden. Finde durch Raten zufälliges k, so dass ggt(k,p-1) = 1, und berechne k -1 mod p-1. Bestimme r = gk mod p s = (m ar)k-1 mod p-1 Die Signatur von m ist das Paar (r,s) Elgamal Public Key (p,g,a) Elgamal Private Key a

101 Elgamal Signatur Elgamal Signaturprüfung (mit dem öffentlichen Schlüssel) (r,s) sei die Signatur einer Nachricht m. Prüfe, ob g m =A r r s mod p Wenn die Signatur vom privaten Schlüssel erzeugt wurde, dann gilt s = (m ar)k-1 mod p-1 <=> m = ar + ks mod p-1 gm = g ar + ks = (g a ) r (g k ) s = A r r s mod p Euler/Fermat Auch bei Elgamal: Signieren ist ähnlich dem Verschlüsseln, jedoch mit dem privaten Schlüssel, und das Prüfen der Signatur ist ähnlich dem Entschlüsseln, jedoch mit dem öffentlichen Schlüssel. Elgamal Public Key (p,g,a) Elgamal Private Key a

102 Symmetrische Signatur Signaturerzeugung (mit dem Schlüssel) Eine Nachricht m soll signiert werden: s = e K (m) (CBC Modus) Prüfung durch Empfänger: Gegeben m und s(m), bestimme ebenfalls s' = e K (m) (CBC Mode) und prüfe ob s' = s. Vorteil symmetrische Signatur: nur ein Teil von s reicht als Signatur, z.b. der letzte 16-Byte Block, oder auch nur ein paar Bytes des letzten Blocks, oder eine deterministische Umformung eines Teils von s(m): z.b. eine 6-stellige Nummer (TAN). Nachteile: 1. Zertifikate etc. sind nicht möglich. 2. Nichtabstreitbarkeit ist nicht erreicht Bijektivität der Verschlüsselung nicht notwendig --> Hash Funktion/MAC reicht (später) AES Schlüssel K AES Schlüssel K

103 Authentisierung: Challenge/Response Challenge-Response ( Zero Knowledge ) für symmetrischen Verfahren: User kündigt dem Server die Authentisierung an und schickt ID. Daraufhin wird vom Server ein Zufallsstring C (challenge) erzeugt und zum User geschickt. Der User verschlüsselt mit seinem geheimen Schlüssel K die challenge C und schickt den response R = e K (z) zurück. Der Server prüft die response R, indem er ebenfalls e K (C) berechnet und das mit R vergleicht. Auch hier gilt wie bei der symmetrische Signatur: Teil bzw. Abbild eines Teils des response sagen wir ein 6-stelliges OTP (one-time-password) - reicht. Und es reicht hier ebenfalls eine (nicht-bijektive) Hash-Funktion (später). Das asysmmetrische challenge/response Verfahren verläuft genau so, außer dass der Server das Ergebnis prüft, indem er R mit dem öffentlichen Schlüssel entschlüsselt und das mit C vergleicht. Asymmetrisch geht challenge/response auch umgekehrt: der Zufallsstring wird vom Server verschlüsselt: nur der User kann ihn mit seinem privaten Schlüsseln entschlüsseln. Server Schlüssel K User geheimer Schlüssel K

104 Privacy/Integrity/Authenticity Symmetrisch Asymmetrisch DES AES RSA Elgamal Privacy (Verschlüsseln/ Entschlüsseln) ja ja ja ja Integrity (Signatur) Authentisieren (Challenge/ Response) ja ja ja ja - Teil der Signatur reicht - Hash-Funktion reicht ja ja ja ja - Teil der Signatur reicht - Hash-Funktion reicht nicht abstreitbar Zertifikate möglich nicht abstreitbar

105 Diffie-Hellman: Erinnerung Primitivwurzel p=11, Primitivwurzel r = Der neue Zyklus mit p-1 Elementen irrt scheinbar zufällig in dem Kreis 1,...,p-1 hin und her. Für große Primzahlen p, z.b. p = 2* , ist das ein 9. Weltwunder, dass dieser Zyklus diese gigantische garantierte Länge hat und jedes Element erreicht. Bewiesen von Gauss 1799 ahead of time!

106 Diffie-Hellman Schlüsselvereinbarung a, s = (g b ) a p, g, g a, g b b, s = (g a ) b A B 1. Einer der beiden legt eine Primzahl p und eine Primitivwurzel g fest und schickt p und g dem anderen. Das darf jeder sehen. 2. A erzeugt sich zufällig eine Zahl a<p und B eine Zahl b<p. Diese beiden Zahlen bleiben geheim. D.h., A wird b niemals kennen, und B a nicht. 3. A berechnet g a mod p und schickt g a mod p über den öffentlichen Kanal an B, und B schickt g b mod p an A. Reihenfolge spielt keine Rolle 4. A berechnet s= (g b ) a mod p, und B berechnet s' = (g a ) b mod p. s und s' sind wegen s = (g b ) a = g (ba) = g (ab) = (g a ) b = s' identisch und s=s' ist damit das gemeinsame Geheimnis, das A und B jetzt haben, aber niemand anders kennt. 5. Mit s als als symmetrischem Schlüssel, z.b. als AES256 Schlüssel, kann jetzt A verschlüsselte Nachrichten über den öffentlichen Kanal an B schicken, die B dann entschlüsseln kann, aber niemand anders, und umgekehrt.

107 Schwächen Diffie-Hellman a, s = (g b ) a p, g, g a, g b b, s = (g a ) b A B 1. Wenn ein schneller Algorithmus für Diskreter Logarithmus gefunden wird, ist DH gebrochen. Genau genommen reicht sogar ein schneller Algorithmus für das folgende Berechnungsproblem: Gegeben p, g, g a mod p, g b mod p, was ist g ab mod p? 2. Der Zufallsgeneratoren bei der Generierung von a und b müssen unvorhersehbar sein. 3. Größtes Problem von Diffie-Hellman ist der Man-in-the-Middle Angriff: a, s = (g z ) a p, g, g a, g z p, g, g z, g b b, t = (g z ) b A M B z, s = (g a ) z, t = (g b ) z Der Angreifer M setzt sich beim Schlüsselaustausch zwischen A und B, generiert eine Zufallszahl z<p und spielt dann A gegenüber B, und B gegenüber A. So tauscht M mit A einen Schlüssel s aus und mit B einen Schlüssel t. A und B bemerken die Anwesenheit von M nicht. Wenn dann A eine mit s verschlüsselte Nachricht an B schickt, entschlüsselt M die Nachricht mit s, verschlüsselt sie mit t, um sie dann an B weiterzuschicken, und umgekehrt. M kann also nicht nur alle Nachrichten abhören, sondern auch abändern. Einziger Trost, was diesen Angriff angeht: M muss dauerhaft den Kanal besetzen, um abzuhören bzw. zu manipulieren, denn A und B merken, dass etwas nicht stimmt, wenn M nicht mehr dazwischen ist bzw. sie sich auf einem anderen Kanal verschlüsselte Nachrichten zuschicken.

108 Kryptologie Bernd Borchert Univ. Tübingen SS 2017 Vorlesung Teil 11 Primzahltests: Fermat, Miller-Rabin

109 Primzahltests Problem: Gegeben n. Ist n Primzahl? Naive Methoden: Ausprobieren: gehe der Reihe nach alle Zahlen t= 2, 3, 4, 5, Wurzel(n) durch und teste per Division, ob n durch t ohne Rest teilbar ist. Verbesserung (Sieb des Eratosthenes). Gehe der Reihe nach alle Zahlen t= 2, 3, 5, 7, 11,... Wurzel(n) durch, aber lasse die Vielfachen von schon durchgegangen t aus. Eratosthenes aus Cyrene, Lybien, ca. 200 v.chr. Die naiven Tests scheitern schon bei relativ kleinen Zahlen, z.b. 100-stellige Dezimalzahlen (Wurzel ist halb so lang, also 50-stellig), auch bei parallelen Supercomputern.

110 Fermat Primzahl-Test Problem: Gegeben n. Ist n Primzahl? Euler: Für alle a in Z n * gilt a phi(n) = 1 Korollar (Fermat): Für alle 0 < a < p gilt a p-1 = 1 mod p. Basierend darauf Fermat Primzahl-Test Für gegebenes n wähle a < n wenn ggt(a,n) > 1 mod n, gibt aus: n ist keine Primzahl; wenn a n-1 > 1 mod n gebe aus: n ist keine Primzahl; Ansonsten gebe aus: n ist Primzahl; Problem ist: der Algorithmus ist nicht korrekt, er erklärt Nicht-Primzahlen zu Primzahlen: 1. Es gibt die sogenannten Fermat-Pseudoprimzahlen n bzgl. einer Basis a, d.h. teilerfemde n,a mit a n-1 = 1 mod n. Beispiel: = 1 mod 91. (91 = 7 x 13) 2. Schlimmer: es gibt die sog. Carmichael Zahlen n, die keine Primzahlen sind, für die aber für alle teilerfremden a < n gilt: a n-1 = 1 mod n. Kleinstes Beispiel: 341 = Noch schlimmer: es gibt unendlich viele Carmichael Zahlen und sie sind nach aktuellem Stand nicht durch einen effizienten Algorithmus als solche erkennbar.

111 Primzahl-Tests Bitte beachten, dass beim Fermat-Test n-1 gerade ist und somit im Fall a n-1 = 1 mod n gelten muss: a (n-1)/2 = 1 mod n oder a (n-1)/2 = -1 mod n und zwar wegen der 3. binomischen Formel: a n-1 = 1 mod n => a n-1-1 = 0 mod n => (a (n-1)/2 ) = 0 mod n => (a (n-1)/2-1) (a (n-1)/2 + 1) = 0 mod n => a (n-1)/2 = 1 mod n oder a (n-1)/2 = -1 mod n Bem. Der sog. Solovay-Strassen Primzahl-Test schaut sich an, ob einer der beiden Fälle für a (n-1)/2 vorliegt, und vergleicht das Ergebnis auf Gleichheit mit dem sogenannten Jacobi-Wert von n und a. Schon der Solovay-Strassen schafft es, das Carmichael-Zahlen Problem mit einer begrenzten einseitigen Fehlerwahrscheinlich zu lösen. Weil der Test aber gegenüber dem folgenden Miller-Rabin-Test nur Nachteile hat (einseitige Fehlerwahrscheinlichkeit 50% statt 25% wie bei Miller-Rabin) und weil der Jacobi-Wert und dessen Berechnung eingeführt werden müssten, wird Solovay-Strassen hier nur erwähnt.

112 Miller-Rabin Primzahl-Test Die folgende Verbesserung des Fermat Primzahl-Tests guckt sich den Exponenten n-1 genauer an. Miller-Rabin Primzahl-Test (1976) Für ein gegebenes n sei n 1 = m*2 d mit m ungerade. Wähle a < n zufällig. Wenn ggt(a,n) > 1, dann ist n keine Primzahl. Wenn folgendes Kriterium K erfüllt ist a m = 1 mod n oder a m = -1 mod n, oder a m*2 = -1 mod n, oder, oder a m*2d-1 = -1 mod n, dann gebe aus: n ist Primzahl Ansonsten gebe aus: n ist keine Primzahl; In dieser Folge muss vor einer 1 immer eine -1 kommen, egal ob Primzahl oder nicht, siehe Seite vorher. 25% Fehlerwahrscheinlichkeit 0% Fehlerwahrscheinlichkeit Rabin (1976): Für eine Nicht-Primzahl n ist das Kriterium K nur für max. ¼ aller a < n erfüllt. (ohne Beweis ist schwierig) Das ergibt den folgenden probabilistischen Algorithmus: Wiederhole den Miller-Rabin Primzahl-Test k mal. Wenn er bis dahin nicht geantwortet hat n ist keine Primzahl, dann ist n mit Wahrscheinlichkeit 1- ¼ k eine Primzahl Das reicht für praktische Belange: Wenn einem eine Fehlerwahrscheinlichkeit von sagen wir nicht mehr als 1 aus genügt, lässt man den Algorithmus 100 mal laufen, bevor man die Zahl n als Primzahl ansieht.

113 AKS Primzahl-Test Im Jahr 2002 gab es eine mathematische Sensation durch 3 Inder (M. Agrawal, N. Kayal, N. Saxena): PRIMES in P. d.h., für das Primzahlproblem gibt es eine deterministischen (d.h. nicht-randomisierten) Algorithmus mit polynomieller Laufzeit (Inputlänge ist die Länge der Binärzahl). Anfangs war das Laufzeit-Polynom x 7,5, und wurde dann auf x 6 verbessert. Grundidee ist folgender Satz (wie beim Fermat-Test der Satz von Fermat): Sei ggt(a,n) = 1. Dann ist n Primzahl gdw. (X + a) n = X n + a mod n (als Polynom) In der Praxis ist der AKS Primzahltest irrelevant, denn Miller-Rabin ist unschlagbar.

114 Primzahldichte Sei für x aus N pi(x) die Anzahl der Primzahlen < x. ln(x) ist der natürliche Logarithmus zur Basis 2,71... (Gauss/Legendre/Hadamard/... etc.): Asymtotisch gilt pi(x) = x/ln(x). Abweichung nicht mehr als 5%. Beispiel: pi(2 512 ) ~ /350. Unter allen Zahlen mit höchstens 512 Binärstellen ist also ca. jede 350-te eine Primzahl. Wenn man nur die Zahlen mit genau 512 Stellen nimmt, sollte die Verteilung da auch fast so hoch sein. Unter 175 ungeraden 512-stelligen Binärzahlen ist also ca. 1 Primzahl. Der Teil-Algorithmus bei der Schlüsselerzeugung von RSA1024 zum Finden von 512-stelligen Primzahlen p ist also zweifach randomisiert: Rate solange ungerade 512-stellige Zahlen n, bis der Miller-Rabin-Test mit Fehlerwahrscheinlichkeit von sagen wir mit dem Ergebnis n ist Primzahl hält. Wegen der hohen Primzahldichte kann man davon ausgehen, dass man nach nicht viel mehr als ln(n) (im Beispiel 350) Versuchen eine Primzahl gefunden hat. Praktisch (Erfahrung, aber kein Beweis!) sind die Primzahl so gut verteilt, dass man n nur einmal raten muss und dann n, n+2, n+4,... auf Primality testet.

115 Kryptologie Bernd Borchert Univ. Tübingen SS 2017 Vorlesung Teil 12 Elliptische Kurven

116 Elliptische Kurven im Reellen Punktmengen in R 2 Elliptische Kurve y 2 = x 3 + ax + b Kreis y 2 = b - x 2 Ellipse y 2 = b - ax 2

117 Elliptische Kurven im Reellen Punkt-Addition P+Q Punkt-Addition P+Q P + Q P P+Q Q P Q Wenn P und Q verschienen sind, gibt es in fast allen Fällen auf der Gerade durch P und Q einen 3. Punkt (spezielle Eigenschaft der elliptischen Kurven): dessen Spiegelpunkt an der x-achse ist das Resultat P + Q.

118 Elliptische Kurven im Reellen Punkt-Verdopplung 2P spezielle Punkt-Addition P+Q 2P P+Q P Q P Wenn P = Q, dann liegt in fast allen Fällen auf der Tangente durch P ein 2. Punkt. Dessen Spiegelpunkt an der x-achse ist das Resutat P + P = 2P. Diese Definition kann man herleiten, indem man Q an P infinitesimal annähert: P+Q konvergiert gegen den Grenzwert 2P. Der Spezialfall, dass P auf der horizontalen Tangente des lokalen Maximums Q liegt. Das ist ebenfalls als Grenzwert herleitbar.

119 Neutrales Element N Hier sind die verbleibenden Fälle, dass kein 3. Punkt auf der Geraden liegt (links), nämlich dann, wenn die x-werte von P und Q gleich sind, bzw. dass auf der Tangente kein 2. Punkt liegt (rechts). In diesen Fällen definiert man das Ergebnis als unendlichen Punkt N, der formal ein Element der elliptischen Kurve wird (N wird das neutrale Element bei der Addition sein). P + Q = N 2P = N P P Q

120 Skalarmultiplikation Skalarmultiplikation kp kp für k>0 und einen Punkt P der EC ist definiert durch 1P = P 2P = P + P 3P = P + P + P 4P = P + P + P + P... kp = (k-1)p + P... Man kann also k-1 mal eine Punktaddition durchführen, um den Punkt kp zu berechnen. Für k = wäre das z.b. aber nicht machbar. 6P 2P Man kommt für k = mit nur 100 Punktverdopplungen aus, indem man 100 mal den Punkt P verdoppelt. Die Zeichnung zeigt die Konstruktion von 6P, nicht durch 5 Punktadditionen, sondern durch 1 Punktaddition und zwei Punktverdopplungen P 2P 2P + P = 3P 2. 3P = 6P P 3P

121 Diskrete Elliptische Kurven Gegeben sei ein endl. Primkörper F p. Eine elliptische Kurve C ist die Menge von Paaren (x,y) aus F p x F p für die die Gleichung y 2 = x 3 + ax + b gilt, wobei a, b aus F p vorgegeben sind mit 4a b 3!= 0 (Diskriminanten-Bedingung) Zur Menge kommt ein neutrales Element N dazu. Beispiel p=5, a=1, b=1. (Diskriminanten-Bed. erfüllt: 4a b 2 = 31 = 1!= 0 mod 5). Welche Paare (x,y) aus F 5 x F 5 erfüllen die Gleichung y 2 = x 3 + x + 1? Hilfs-Tabellen y/x x x y y x x x 2 x 3 x 4 x x x C = {N, (0,1), (0,4), (2,1), (2,4), (3,1), (3,4), (4,2), (4,3)}

122 ECC Addition und Verdopplung Auf C wird eine Addition P + Q definiert: Wenn P = N oder Q = N ist, dann ist P + N = N + Q = N. Gegeben seien zwei verschiedene Punkte P = (x 1,y 1 ) und G = (x 2,y 2 ) der Kurve C. Wenn x 1 = x 2, dann P + Q := N. Ansonsten: s := y 2 - y 1 x 2 - x 1 x 3 := s 2 - x 2 - x 1 y 3 := s(x 2 - x 3 ) - y 2 Resultat: P + Q = (x 1,y 1 ) + (x 2,y 2 )= (x 3,y 3 ) Wenn P = Q, dann wird die Punktverdopplung P + P = 2P = 2(x 1,y 1 ) definiert: s := 3x 2 + a 1 2y 1 (a ist Kurvenparameter) x 3 := s 2-2x 1 (nur die Gleichung für s ist anders als oben) y 3 := s(x 1 - x 3 ) - y 1 Resultat P + P = 2P = 2(x 1,y 1 ) := (x 3,y 3 )

123 ECC Beispiel Addition C = {N, (0,1), (0,4), (2,1), (2,4), (3,1), (3,4), (4,2), (4,3)} y\x x x x 2 x 3 x 4 x x x Beispiel (2,1) + (3,4) s = (4 1)(3 2) -1 = = 3 mod 5 x 3 = = 4 mod 5 x -1 mod 5 x x y 3 = 3(3-4) 4 = -7 = 3 mod 5 Also (2,1) + (3,4) = (4,3)

124 Double-and-Add Mit den zwei Operation P+Q und 2P kann man für jedes ganzzahlige k und jeden Punkt P den Punkt kp berechnen, und zwar schnell, in dem man den Square-and-Multiply Algorithmus eins-zu-eins in einen Double-and-Add Algorithmus übersetzt: Square entspricht Verdopplung 2P, und Multiply entspricht Addition P+Q: Sei b die Binärdarstellung von k. Fange mit X := P an, gehe von links nach rechts durch die Binärdarstellung von k durch: wenn eine 0 kommt, verdopple X := 2X, wenn eine 1 kommt, verdopple und addiere: X = 2X + P. Beispiel k = 18 = X := P; X := 2X; X := 2X; X := 2X + P; X := 2X; Es gilt am Schluss: X = 18P.

125 Generatoren Eine Punkt G einer diskreten elliptischen Kurve C heißt Generator von C, wenn durch Skalarmultiplikation mit G jeder Punkt der Kurve erreicht werden kann, also wenn {kg k > 0} = C. Weil die Anzahl C der Elemente von C endlich ist, muss es also eine Periode G, 2G, 3G,..., N, G, 2G,... der Länge C sein. Dass das letzte Elemente der Periode das neutrale Element N ist, liegt daran, dass (wie bei Z n * ) die von G erzeugte Menge eine zyklische Untergruppe von (C,+) ist: wenn X + G = G, dann muss X das neutrale Element sein. Wegen der Untergruppen Eigenschaft hat man ebenso wie bei Z n * das folgende Lagrange Kriterium dafür, ob ein Punkt P ein Generator der Kurve C ist: P ist Generator von C gdw. für alle maximalen Teiler t von C ist tp ungleich N. Für dieses Kriterium muss man C kennen und faktorisieren können. Das erstere leistet ein effektiver Algortihmus von Schoof (1985), der in Linearzeit läuft (Speicherbedarf kubisch): Gegegen sei das p und die Gleichung für C. Dann lässt sich C effektiv berechnen. Wenn C eine Primzahl ist, ist nach dem Kriterium oben jeder Punkt von C außer N ein Generator. Bei Z p * war das nicht möglich, denn phi(p) ist durch 2 teilbar, aber bei elliptischen Kurven geht es, siehe z.b. die Bitcoin Kurve. Was Generatoren angeht, liegt also bei elliptischen Kurven praktisch die gleiche Situation vor wie bei Z p *, nur mit dem Unterschied, dass die Zyklus-Operation mit + notiert wird, nicht mit., das ist aber nur eine Notationsfrage. Es gibt also wie bei Z p * die nachweislich exponentiell langen Zyklen, bei der jedes Element der Menge erreicht wird. Es liegt also nahe, das Diskrete Logarithmus Problem analog für EC's zu formulieren.

126 Diskreter Logarithmus Problem bei ECC DLP Problem: x = g y fest: Primzahl p, Generator g von Z p * Z p * INPUT: x in Z p * OUTPUT: y > 0 so dass x = g y mod p g3 g 3 g 2 g DL-ECC Problem: P = yg fest: diskrete elliptische Kurve C, Generator G INPUT: P in C C OUTPUT: y > 0 so dass P = yg 3G 2G G

127 BitCoin Kurve Bitcoin Kurve (Name: secp256k1) Primzahl p: p = = Kurvengleichung: y 2 = x 3 +7 Generator G: x = 79BE667E F9DCBBAC 55A06295 CE870B07 029BFCDB 2DCE28D9 59F2815B 16F81798 y = 483ADA77 26A3C465 5DA4FBFC 0E1108A8 FD17B448 A C47D08F FB10D4B8 Ordnung von G = Länge des Zyklus = Anzahl der Elemente der Kurve: (ist eine Primzahl)

128 ECC Verschlüsselung A k priv R,c(m) B r k pub Gegeben (fest und öffentlich): elliptische Kurve C und Generator G für C Schlüsselpaarerzeugung durch A: Privater Schlüssel: Bestimme ein k priv zufällig aus {2,..., C -1} Öffentlicher Schlüssel: k pub = k priv G k priv ist ein Integer, k pub ist ein Punkt. Verschlüsselung durch B: wähle Zufallszahl r und berechne R = rg und S = rk pub. Fasse S als symmetr. Schlüssel auf (z.b. AES) und verschlüssele damit die Nachricht m zu c(m). Schicke (R,c(m)) an A. Entschlüsselung durch A: Berechne k priv R = k priv rg = rk priv G = rk pub = S. Entschlüssele mit S die Nachricht m

129 Kryptologie Bernd Borchert Univ. Tübingen SS 2017 Vorlesung Teil 13 Zertifikate, DLP: Shanks, Pohlig-Hellman

130 Zertifikate Diffie-Helman Schlüsselvereinbarung zwischen Browser B und Webseite A a A g a g b Browser b B Fatales Problem: Man-in-the-middle a A g a g m m M g b g m B b Spezielle (einseitige) Situation ist das Aufrufen einer Webseite: wie kann B sicher sein, dass er tatsächlich auf der richtigen Webseite A ist?

131 Erste Lösung: Signatur durch Authority Certification Authority CA k CA,priv Problem: A muss jedesmal CA bitten, zu signieren ( Standleitung ) k CA,pub s = e k CA,priv (g a, a A g a, s g b B b B entschlüsselt mit k CA,pub die Signatur s Wenn alles stimmt, setzt er den Schlüsselaustausch fort a A g a g m m M g b g m B b geht schief

132 Zweite Lösung: Zertifikat Certification Authority CA k CA,priv k CA,pub cert A = < k A,pub, e k CA,priv (k A,pub, CA> a a A k A,priv A g a g m s = e k A,priv (g a ) g a, s, cert A g b M m g b g m B B b b B prüft ID und CA- Signatur in cert A (bei CA) und prüft dann mit k A,pub die Signatur s. Wenn alles stimmt, setzt er den Schlüsselaustausch fort Ein Zerfikat ist die Signatur eines Paares <k pub,id> eines Teilnehmers mit ID in einer PKI durch eine CA.

133 CA Hierarchie CA-top k CA-top,priv k CA-top,pub cert CA1 = < k CA,pub, CA, e k CA-top,priv (k CA1,pub,CA), CA-top> CA k CA,priv zusätzlich k CA,pub cert A = < k A,pub, e k CA,priv (k A,pub, cert CA1 > s = e k A,priv (g a ) a A cert A k A,priv g a, s, cert A g b B b B prüft cert CA1 und cert A

134 TLS a A g a g b Browser b B TLS ( https ) besteht - aus Browsersicht - aus 3 Schritten. 1. Prüfe Zertifikat der Webseite (z.b. via ECC). 2. Vereinbare (z.b. via Diffie Helman) einen symmetrischen Schlüssel, aber nur wenn dabei von der Webseite die Nachrichten signiert werden. 3. Verschlüssele/Entschlüssele ab da den Rest der Kommunikation mit dem vereinbarten symmetrischen Schlüssel (z.b. AES).

135 DLP Algorithmen Es folgen zwei Algorithmen für DLP: Giant-Step-Baby-Step und Pohlig-Helman

136 Baby-Step-Giant-Step Algorithmus Baby-Step-Giant-Step Algorithmus zur Berechnung des Diskr. Logarithmus DL Fest vorgegeben: Primzahl p, Generator g. Problem: Gegeben x in Z p *, finde y mit g y = x mod p Sei r = kleinste ganze Zahl größer als Quadratwurzel von p, d.h., jedes y lässt sich darstellen als y = ry Giant + y Baby mit y Giant,y Baby < r. (Eindeutigkeit unwesentlich) Es gilt: g y = x mod p g ry Giant + y Baby = x mod p g ry Giant g y Baby = x mod p g y Baby = xg -ry Giant mod p Algorithmus. Finde y mit g y = x mod p Schritt 1: Lege eine 2-spaltige DB an mit den Einträgen (in,out) = (0,g 0 mod p), (1,g 1 mod p), (2,g 2 mod p),.,(r-1,g r-1 mod p). Lege einen Index an zum schnellen Suchen in der 2. Spalte out. Schritt 2: Durchlaufe alle Möglichkeiten y Giant = 0, 1,, r-1: Berechne s = xg -ry Giant mod p und prüfe, ob es einen DB-Eintrag (y Baby,s) gibt. Wenn ja, RETURN y = ry Giant + y Baby ; Ansonsten gehe zum nächsten y Giant ; Korrektheit: Wenn Ausgabe ry Giant + y Baby erfolgt, dann g y Baby = s = xg -ry Giant mod p, also g y = x mod p. Andererseits wird der Schritt 2 auch irgendwann den DL y erwischen, nämlich beim Durchlauf von y Giant. Komplexität: Der Algorithmus reduziert die Laufzeit eines Exhaustive Search von p auf Wurzel p (was erheblich ist), auf Kosten eines großen Speicherbedarfs. Bem. Das ist wieder ein Meet-in-the-middle Algorithmus, so wie der für 2-DES. Bem. Der Algorithmus wird auch nach seinem Erfinder Shanks Algorithmus genannt. Bem. Der Algorithmus zum Finden des multiplikativen Faktors k beim DL-ECC Problem ist identisch!

137 Pohlig-Hellman Algorithmus Pohlig-Helman Algorithmus zur Berechnung des Diskr. Logarithmus DL Fest vorgegeben: Primzahl p, Generator g. Problem: Gegeben x in Z p *, finde y mit g y = x mod p Teilalgorithmus A (teilerfremde Faktoren) Sei phi(p) = r. s mit r und s teilerfremd. Berechne g 0. s, g 1. s, g 2. s,..., g (r-1). s mod p, solange bis ein g i. s = x s mod p gefunden ist. Dieses i existiert, nämlich als i = y mod r, denn für y = i + z. r gilt x s = (g (i + z. r) ) s = g (i + z. r). s = g i. s. g z. r. s = g i. s. g z. phi(p) = g i. s Euler/Fermat mod p Bekannt ist damit also i = y mod r. Analog finden wir durch Ausprobieren von g 0. r, g 1. r, g 2. r,..., g (s-1). r mod p und jeweils den Vergleich g j. r = x r mod p? den Wert j = y mod s. Damit sind die Voraussetzungen für CRT perfekt gegeben: y ergibt sich als eindeutige Lösung modulo r. s (r und s teilerfremd), für die gilt i = y mod r und j = y mod s. Es gilt dann: g y = x mod p

138 Pohlig-Hellman Algorithmus Pohlig-Helman Algorithmus zur Berechnung des Diskr. Logarithmus Fest vorgegeben: Primzahl p, Generator g. Problem: Gegeben x in Z p *, finde y mit g y = x mod p Teilalgorithmus B (Primzahlpotenzen) Sei phi(p) = q h. s mit q (Primzahl) und s ( Restfaktor ) teilerfremd. Gesucht ist die Zahl j = y mod q h. Dafür schreiben wir fiktiv y = a 0 q 0 + a 1 q a h q h mit 0 <= a i < q (ist eindeutig, wie z.b. Binärzahlen). Zuerst wird a 0 gefunden durch Ausprobieren/Berechnen von g 0.q h-1. s, g 1.q h-1. s, g 2.q h-1. s,..., g (q-1).q h-1. s mod p, solange bis ein g i.q h-1. s = x qh-1. s mod p gefunden ist. Dieses i existiert, nämlich i=a 0 : Euler/Fermat x qh-1. s = (g y ) qh-1s = g y. q h-1. s = g (a 0 + a 1 q a h. q h ).q h-1. s = g a 0.qh-1. s. g (a 1 q a h. q h ).q h-1. s = g a 0.q h-1. s. g (a a h. q h-1 ).q h. s = g a 0 q h-1.s mod p Mit a 0 als bekannt, finde a 1 durch Ausprobieren von g (a q).q h-2. s, g (a q).q h-2. s, g (a q).q h-2. s,..., g (a 0 + (q-1). q).q h-2. s das i mit g (a 0 + i).q h-2. s = x qh-2. s mod p. Es ist i = a 1 aus dem analogen Grund wie bei a 0 : Euler/Fermat x qh-2. s = (g y ) qh-2 s = g y. q h-2. s = g (a 0 + a 1 q + a 2 q a h. q h).q h-2. s = g (a 0 + a 1 q).q h-2. s. g (a a h. q h-2 ).q h. s = g (a 0 + a 1 q). q h-2. s mod p Mit a 0 und a 1 als bekannt, finde durch Ausprobieren von g (a 0 + a 1 q + 0. q 2).q h-3. s, g (a 0 + a 1 q + 1. q 2).q h-3. s,..., g (a 0 + a 1 q + (q-1). q 2).q h-3. s ein i ( = a 2 ) mit g (a 0 + a 1 q+ i. q 2).q h-3. s = x qh-3. s mod p. Mache das h mal, d.h., bestimme alle a 0,..., a h-1. Wegen y = a 0 q 0 + a 1 q a h-1 q h-1 + a h q h gilt für j = a 0 q 0 + a 1 q a h-1 q h-1, dass j = y mod q h. Diese Zahl j wurde gesucht.

139 Pohlig-Hellman Algorithmus Pohlig-Helman Algorithmus zur Berechnung des Diskr. Logarithmus Fest vorgegeben: Primzahl p, Generator g. Problem: Gegeben x in Z p *, finde y mit g y = x mod p Gesamt-Algorithmus Sei phi(p) = q 1 h 1. q 2 h q n h n die Primfaktorzerlegung von phi(p). Bestimme für jede Primzahl q i das j i, so dass y = j i mod p i h i Diese n Gleichungen haben mit CRT eine eindeutige Lösung y, für die gilt: g y = x mod p. Wenn phi(p) also in kleine Primfaktoren zerfällt, dann lässt sich DLP schnell lösen. Beispiel: p = Konsequenz aus Pohlig-Helman: Sophie-Germain Primzahlen p für DLP benutzen (p = 2q+1, mit q Primzahl. Beispiel p=47).

140 Kryptologie Bernd Borchert Univ. Tübingen SS 2017 Vorlesung Teil 14 Faktorisierungsmethoden

141 Faktorisierungsmethoden Kryptologie Probedivision ggt Pollard rho Methode Fermat Methode Lucas Test

142 Probedivision Gegeben n. Dividiere n systematisch durch Zahlen oder besser Primzahlen. Beispiel: Dividiere n durch 2, durch 3, durch 5, etc. bis zur Wurzel von n.

143 Faktorisierungsmethode ggt Gegeben n. Nimm eine Zahl m, die schon viele Teiler hat und berechne ggt(n,m). Beispiel: Mit m = = erhält man ggt(119,m) = 7 als Teiler von 119.

144 Pollard rho Pollard rho Methode Gegeben n. Wähle zufällig a < n. Setze x := a und y:= a. Sei f(x) := x Iteriere x = f(x), y = f(f(y)), solange bis d = ggt( y-x,n) > 1. Wenn d = n, dann nochmal mit neuem a. Andernfalls ist d ein echter Teiler von m. Verifikation ist trivial: wenn d>1 dann ist d ein Teiler von n. Komplexität: Wegen Geburtstagsparadoxon und realistischer Annahme, dass f sich wie eine Zufallsfolge verhält und damit die Größe des Zyklus n 1/2 ist, ist die erwartete Laufzeit von der Größenordnung n 1/4 Geburtstagsparadoxon: Wenn eine Eigenschaft von Objekten a gleichverteilte Ausprägungen hat, dann reichen 1,2a 1/2 Objekte, so dass die Wahrscheinlichkeit, dass mindestens zwei davon die gleiche Ausprägung haben, > 50% ist. Beispiel: bei 22 Menschen ist die Wahrscheinlichkeit, dass zwei am gleichen Tag Geburtstag haben, > 50%. Bem.: Wenn die Ausprägung nicht gleichverteilt ist, dann reichen sogar weniger. Das bedeutet, dass ein Algorithmus, der iteriert zwei Zahlen a,b rät und auf ggt( a-b,n) testet, erwartet nur 1,2 p 1/2 Iterationen braucht, um den Teiler p zu finden, im Vergleich zu dem Algorithmus, der iteriert eine Zahl a rät und auf ggt(a,n) testet: der braucht erwartet p/2 Iterationen. Die Pollard Konstruktion mit den zwei Zeigern x und y in dem rho ist nur dazu da, den Zufall des Ratens der 2 Zahlen a,b auf Pseudozufall zu reduzieren (Pseudozufall ist weniger teuer/rechenintesiv als vom Betriebssystem generierter Zufall).

145 Beispiel Pollard rho x y y-x ggt( y-x,187) n = 187 a = Teiler gefunden 158 f f 94 f f f f f f f

146 Fermat Methode Beispiel. Gegeben n = 377. Wegen 19 2 = 361 und 20 2 = 400 ist 20 die kleinste Ganzzahl größer als die Wurzel aus = 23, was keine Quadratzahl ist. Also gehen wir zur nächsten Zahl = 21: = = 64 = 8 2. Also sind (21-8) = 13 und (21+8) = 19 Teiler von n. Grundidee: wegen a 2 b 2 = (a+b)(a-b) würde es für eine Faktorisierung von n genügen, n als Differenz a 2 b 2 von zwei Quadraten darzustellen, denn dann hätte man die zwei Faktoren (a+b) und (a-b). Gegeben n. Suche die kleinste Ganzzahl a, die größer ist als die Wurzel von n. Prüfe, ob a 2 n eine Quadratzahl ist. Wenn nein, setze a := a+1 und prüfe, ob a 2 n eine Quadratzahl ist. Mache das solange, bis a 2 n eine Quadratzahl ist oder a > n. Eine Optimierung besteht darin, anstatt (a+1) 2 für den nächsten Schritt a 2 + 2a + 1 zu berechnen. Der Algorithmus ist vollständig: wenn ein Ergebnis a 2 n = b 2 gefunden wird, sind (a+b) und (a-b) Faktoren von n, wegen 3. binomische Formel a 2 b 2 = (a+b)(a-b). Ist umgekehrt n = cd mit c>d, dann wird bei a = (c-d)/2 die Faktorisierung gefunden. Wenn n zu groß ist und die Faktoren weit voneinander entfernt sind, terminiert der Algorithmus möglicherweise nicht. D.h. der Algorithmus eignet sich eigentlich nur dann, wenn ein Faktor nicht weit von der Wurzel entfernt ist. Im worst case (n prim) terminert der Algorithmus erst nach n minus Wurzel-n Schritten.

147 Lucas Primzahltest Lucas Primzahltest n ist Primzahl gdw. es gibt a < n, so dass a n = 1 mod n und a t!= 1 mod n für alle maximalen Teiler t von n-1. Beweis wie der ähnliche Satz für Primitivwurzeln, d.h. die Umkehrung von Euler's Satz. Es gilt ebenso wie bei den Primtivwurzeln, dass ein solches a probabilistisch gesucht werden kann, denn ein fester Anteil von solchen a unter alle Zahlen y< p ist garantiert. Problem mit Lucas Primzahltest: man muss die Faktorisierung von n-1 kennen. Und Faktorisierung ist schwieriger als Primzahl-Testen.

148 Beweis von Primality Wie beweist man, dass eine Zahl n keine Primzahl ist? Indem man eine Zerlegung ab = n angibt. Aber wie beweist man, dass eine Zahl n eine Primzahl ist? Pratt/Lucas: Man gibt die Primzahlzerlegung von n-1 an, und einen Zeugen a, so dass a t für die Maximalteiler t der Primzahlzerlegung ungleich 1 mod p ist. Man bezeichnet das als ein Pratt Zertifikat der Primality von n. Beispiel 11 ist Primzahl, denn 10 = 2 * 5, und 7 2 = 5!= 1 mod 11, und 7 5 = 7 * (7 2 ) 2 = 7 * 3 = 21!= 1 mod 11 Die Primzahlzerlegung 11-1 = 2 x 5 und der Zeuge a=7 sind ein Beweis für die Primalität von 11. Achtung: für jede Primzahl der Primzahlzerlegung muss rekursiv ein Beweis der Primality angegeben werden. Beispiel: 85 ist keine Primzahl, aber die Zerlegung 84 =6*14 mit dem Zeugen a=4 wäre ein Beweis für Primality von 85, wenn man nicht fordern würde, auch die Primality von 6 und 14 nachzuweisen. Denn 4 14 = 16!= 1 mod 85, und auch 4 6 = 16!= 1 mod 85.

149 Größenordnungen Dezimaldarstellung vs. Binärdarstellung: wg = 1024 = ca gilt für die Länge der Darstellung einer Zahl: Länge Binärdarstellung/Länge Dezimaldarstellung = ca. 10/3, oder ganz grob: 3/1. Beispiel hat binär ca. die Länge 30. Länge der Wurzel einer Zahl: halb so lang, plusminus 1. Länge der Produkts von zwei Zahlen: Summe der Längen der beiden Zahlen, plusminus ist eine obere Schranke für die Anzahl der Teilchen im sichtbaren Weltall (Eddington Zahl, Aktuelle Anerkennung unklar.) ist eine obere Schranke für die Anzahl der unterscheidbaren Zeitpunkte vom Urknall bis nochmal so lange in der Zukunft. Deshalb kann kein klassischer (getaktet und auf 0/1 basierender) Parallelcomputer mehr als = ca Möglichkeiten testen, egal wie schnell Computer in der Zukunft noch werden und wieviele Computer parallel wie lange an der vorgegebenen Aufgabe rechnen.

150 Kryptologie Bernd Borchert Univ. Tübingen SS 2017 Vorlesung Teil 15 Hashfunktionen

151 Hashfunktionen Eine Hashfunktion bildet beliebig lange Wörter auf Wörter einer bestimmten Länge ab. Dabei vermischt sie möglichst gut die Eingabe, d.h. Wörter, die sich nur wenig oder nur ein bit unterscheiden, werden auf ganz verschiedene Wörter abgebildet. Auch soll die Hashfunktion nur schwer rückrechenbar sein, d.h. idealerweise kann man einen Urwert u eines Hashwerts h(u) nur so errechnen, indem man systematisch alle existierenden Wörter w daraufhin testet, ob h(w) = h(u). Eine Hashfunktion hatten wir schon kennengelernt: AES im CBC Modus mit dem letzten Block als Hashwert (Schlüssel fest). Die Länge dieser Hashwerte ist also 128. Es wurden schon viele Hashfunktionen entwickelt, nicht nur für kryptologische Zwecke. Kryptologische Hashfunktionen sind beispielsweise MD5, SHA, Tiger, und viele andere. Achtung: Hashfunktionen wie hier definiert haben eine endlichen Wertebereich. Davon zu unterscheiden sind die kryptografischen Hashfunktionen mit unendlichem Wertebereich, siehe z.b. Hauck Script.

152 Kollisionsresistenz Hashfunktion h {0,1}* (alle bitstrings) {0,1} s (bitstrings der Länge s, z.b. s=160) Einwegfunktions-Eigenschaft: Es ist praktisch unmöglich, zu einem gegebenen Ausgabewert einen Eingabewert zu finden, der auf diesen Ausgabewert abgebildet wird. Schwache Kollisionsresistenz: es ist praktisch unmöglich, für einen gegebenen Eingabewert einen davon verschiedenen zu finden, der denselben Hashwert ergibt. Starke Kollisionsresistenz: es ist praktisch unmöglich, zwei verschiedene Eingabewerte zu finden, die denselben Hashwert ergeben. stark kollisionsresistent schwach kollisionsresistent

153 SHA1 Hashfunktion SHA1 bildet jeden bitstring (bis Länge 2 64 ) (in Blöcken von 512 bits) auf einen 160 bit langen bitstring ab. Rechts der Pseudocode (Quelle Wikipedia) Motto: wildes iteriertes Shiften, XORen und Addieren (genau das sollte man von einem Hash- Algorithmus erwarten) // Initialisiere die Variablen: var int h0 := 0x var int h1 := 0xEFCDAB89 var int h2 := 0x98BADCFE var int h3 := 0x var int h4 := 0xC3D2E1F0 // Vorbereitung der Nachricht 'message': var int message_laenge := bit_length(message) erweitere message um bit "1" erweitere message um bits "0" bis Länge von message in bits 448 (mod 512) erweitere message um message_laenge als 64-Bit big-endian Integer // Verarbeite die Nachricht in aufeinander folgenden 512-Bit-Blöcken: für alle 512-Bit Block von message unterteile Block in bit big-endian Worte w(i), 0 i 15 // Erweitere die Bit-Worte auf Bit-Worte: für alle i von 16 bis 79 w(i) := (w(i-3) xor w(i-8) xor w(i-14) xor w(i-16)) leftrotate 1 // Initialisiere den Hash-Wert für diesen Block: var int a := h0 var int b := h1 var int c := h2 var int d := h3 var int e := h4 // Hauptschleife: für alle i von 0 bis 79 wenn 0 i 19 dann f := (b and c) or ((not b) and d) k := 0x5A sonst wenn 20 i 39 dann f := b xor c xor d k := 0x6ED9EBA1 sonst wenn 40 i 59 dann f := (b and c) or (b and d) or (c and d) k := 0x8F1BBCDC sonst wenn 60 i 79 dann f := b xor c xor d k := 0xCA62C1D6 wenn_ende temp := (a leftrotate 5) + f + e + k + w(i) e := d d := c c := b leftrotate 30 b := a a := temp // Addiere den Hash-Wert des Blocks zur Summe der vorherigen Hashes: h0 := h0 + a h1 := h1 + b h2 := h2 + c h3 := h3 + d h4 := h4 + e digest = hash = h0 append h1 append h2 append h3 append h4 //(Darstellung als big-endian)

154 SHA1 SHA1: block-weise Verarbeitung Input x Auffüllung mit bits bits Länge von x (binär) 512 bits 512 bits 512 bits 160 bits konstante Werte SHA1 Block SHA1 Block SHA1 Block SHA1 Block Output = h(x) 160 bits

155 Kryptologie Bernd Borchert Univ. Tübingen SS 2017 Vorlesung Teil 16 Anwendungen Hashing

156 Anwendung Hashing: Gehashte Passwörter Das Benutzername/Passwort Verfahren (Faktor Wissen) ist mit weitem Abstand das gängigste Authentisierungsverfahren, insbesondere im Internet, aber auch in lokalen Netzen. Passwörter können bei der Übertragung abgehört werden, insbesondere bei der Eingabe auf dem Endgerät (Keylogger) dort ist praktisch keine Abwehr möglich (zumindest nicht ohne einen weiteren Faktor Haben). Bei der Übertragung durch das Netz zum Server schützt aber die Verschlüsselung der Sitzung (TLS/https, siehe AbschnittZertifikate). Um sich gegen Diebstahl der Identitäten (=Benutzername+Passwort) beim Server zu schützen, werden die Passwörter beim Server fast überall gehasht abgespeichert (Defintion hashen ein paar Folien später). So muss der Dieb der Passwort-Datei die Passwörter zumindest ent-hashen, was bei guten Passwörtern (zufällig gewählt und aktuell so ab Länge 10) schwer bis unmöglich ist. Für die Überprüfung des vom Benutzer eingegebenen Passworts reicht dem Server die Speicherung des Hashwerts, denn das aktuell empfangene Passwort wird gehasht und dann mit dem gespeicherten Hashwert verglichen. Um die Verwendung von Tabellen mit hash(passwort)-->passwort (sog. rainbow tables) zu vemeiden, wird oft ein Salz s vor dem Hashen des Passworts hinzugefügt, also z.b. hash(s Passwort). Das Salz kann für alle User das gleiche sein, aber auch für jeden User verschieden, z.b. der Benutzername. Ein wirksamer Schutz gegen das Enthashen von zu kurzen/einfachen Passwörtern ist auch das Salz nicht.

157 Anwendung Hashing: Challenge/Response Verfahren c r Login c r Der Authentisierungs-Server produziert ein nur kurzfristig geltendes Zufallswort (challenge) und es schickt über das Netz zum Endgerät, z.b Kartenlesegerät. Der Benutzer hält seine Karte an das Lesegerät. Die challenge wird von der Karte gelesen und mit dem gespeicherten Schlüssel verschlüsselt. Der Output, auch response genannt, wird an das Kartenlesegerät zurückgegeben, und dieses schickt die response an den Server. Der Server, der auch den Schlüssel gespeichert hat, vergleicht die response mit seinem Verschlüsselsergebnis und gibt bei Übereinstimmung den Zugang frei. Der Schlüssel wird nicht preisgegeben, der Server kann aber dennoch eindeutig (bis auf die Ratewahrscheinlichkeit, abhängig von der response-länge) bestimmen, ob sich der Kartenbesitzer authentisiert hat. Das Verfahren ist auch mit assymmetrischen Schlüsseln möglich. Wegen der Rechenressourcen-Belastung sollte aber vorzugsweise mit einer Hash-Funktion anstatt einer Verschlüsselungsfunktion gearbeitet werden: Die Eingabe für die Berechnung des Hashwerts (=response) ist dabei eine Konkatenation kc des Schlüssels k und der challenge c. Verschlüsselung statt Hashen ist over-engineered: die Entschlüsselbarkeit bringt nichts, kostet aber meistens mehr Rechenressourcen, asymmetrische Verschlüsselung am meisten. Aber Vorteil asymmetrische Verschlüsselung: Nachweisbarkeit des Authentisierungs-Vorgangs von Seite des Servers.

158 Anwendung Hashing: Pseudo-Random-Folge Wie erzeugt man mit einer Hashfunktion h aus wenigen bits Zufall beliebig viele bits Pseudozufall? r? 128 bits Zufall Die folgende Konstruktion muss in jedem bit zufällig aussehen (ansonsten hat die Hashfunktion h ein Problem): h(r,0) h(r,1) h(r,2) h(r,3) h(r,4) praktisch beliebig lang h(r,0) r 0 h(r,1) r 1 alternativ: h(r) h(r,h(r)) h(r,h(r,h(r))) falsch: h(r) h(h(r)) h(h(h(r)))

159 Signieren via Hashfunktion Sei h eine Hashfunktion. Gegeben sei ein Sender A und Empfänger B, die eine gemeinsames geheimes Wort k ausgetauscht haben. k wird auch hier oft Schlüssel genannt, auch wenn mit k gar verschlüsselt werden wird ( seed ist besserer Name dafür). 1. Der Sender berechnet den Hashwert h = h(kn) der Konkatention von k und der Nachricht N, und schickt <N,h> an B. k A <N,h(kN)> B k B prüft beim Empfang die mitgeschickten Hashwert h dahingehend, ob h = h(kn). Die Nachricht kann von Dritten praktisch nicht gefälscht werden.

160 HMAC Symmetrische Signatur (MAC Message Authentication Code) A K m, H(K m) B K - wenn K mit der Blocklänge der Hashfunktion H inferiert könnte es Probleme geben - z.b. wenn H nicht das Ende der Eingabe absichert, könnte ein Angreifer H(K m y) für jedes my berechnen Auch wenn diese Probleme für z.b. H = SHA1 nicht direkt gegeben sind, macht man trotzdem eine Absicherung mit folgender Grundidee: Anstatt H(K m) als MAC nimm man H(K H(K m)) ( HMAC ): HMAC(K,m) = H(K'+opad H(K'+ipad m)) K' := K von links mit 0'en gepadded opad ist die konstante Blockauffüllung 0x5c5c...5c ipad ist die konstante Blockauffüllung 0x ist EXOR Das ist eine Art Standard, auch für MACs mit SHA1. Nachteil: 2 mal H ausführen

161 Online Banking: Signieren via Hashfunktion Beispiel: Display-TAN der Univ. Tübingen k k k k A N = <nonce~konto~betrag> B k Berechnung h(kn) k TAN = h(kn) k A B 1. Berechnung TAN' = h(kn) 2. Vergleich TAN = TAN'? Es wird bei Display-TAN tatsächlich ein HMAC mit SHA1 verwendet - der 160 bit Hashwert wird dann noch deterministisch gekürzt auf 8 Ziffern (OCRA RFC-Standard).

162 Kryptologie Bernd Borchert Univ. Tübingen SS 2017 Vorlesung Teil 17 Quantencomputer, Postquantum Kryptographie

163 Shor's Algorithmus (klassischer Teil) Shor's Algorithmus zur Faktorisierung - Teilalgorithmus (der Teil ohne Physik) Sei n = pq gegeben (p,q Primzahl). Jedes des phi(n) Elemente a aus Z n * hat eine Ordnung ord(a), nämlich die Größe der Menge {a, a 2,..., a ord(a) = 1}. ord(a) muss phi(n) = (p-1)(q-1) teilen, weil es eine Untergruppe ist. Für 3/4 der a aus Z n * ist ord(a) gerade. Das kann man beweisen (Gruppentheorie) - man kann es sich plausibel machen dadurch, dass 2 ja schon zweimal als Teiler von phi(n) vorkommt und somit für viele Untergruppen ein Teiler ihrer Ordnung ist. Für max. ¼ der a aus Z n * gilt, dass a gerade Ordnung r hat und dabei a r/2 = -1 gilt. Insgesamt haben also mind 50% der Elemente a aus Z n * die Eigenschaft, dass die Ordnung von a gerade ist und a r/2!= -1 gilt. Wenn man zu so einem a die gerade Ordnung r = ord(a) bekommt, dann kann man n = pq faktorisieren (3. Binomische Formel) a r - 1 = (a r/2-1)(a r/2 + 1) ungleich 0 mod n wg. Def. von r: dann wäre ja schon bei r/2 ein Zyklus von a da auch ungleich 0 mod n, denn solche a hatten wir ausgeschlossen (nur ein ¼ aller a) n ist Teiler von a r 1 wegen a r = 1 mod n <--> a r - 1 = 0 mod n. Weil aber beide Faktoren oben rechts ungleich 0 mod n sind, müssen die Teiler p und q von n sich auf die beiden Faktoren oben rechts verteilen. Damit kann man mit ggt(n, a r/2 1) (oder auch ggt(n, a r/2 + 1)) einen der zwei Primfaktoren finden.

164 a a i mod 21 ord gerade a r/2!= -1=20 beides , 4, 8, 16, 11, , 16, , 4, 20, 16, 17, , , 12, 15, 13, 4, 19, , 16, 8, 4, 2, , , 4, , 16, 20, 4, 5, , 4, 13, 16, 10, , Beispiel 21 = 3*7 (2 3 1)(2 3 +1) = 7 * 9 (8 1 1)(8 1 +1) = 7 *9 (11 3 1)( ) = 7 * 9 (mod 21) (13 1)(13 +1) = 12 *14 (19 3 1)( ) = 12 *14 (mod 21)

165 Orakel Teilalgorithmus Mit einem Orakel, das einem zu einem Z n * und einem a die Ordnung ord(a) gäbe, wäre also der folgende probabilistische Algorithmus zur Faktorisierung von n erfolgreich, jedesmal mit 50%: Gegeben n= pq. 1. Rate ein a aus Z n ; 2. Prüfe ob a in Z n * via ggt(a,n). Falls ggt > 1 ist Teiler gefunden --> fertig. 3. Lass Dir vom Orakel r = ord(a) geben 4. Wenn ord(a) nicht gerade ist oder a r/2 = -1, dann gehe zu 1 zurück 5. Ansonsten wird ggt(n,a r/2-1) > 1 einen nicht-trivialen Teiler von n liefern. Physiker-Idee: Das Orakel könnte ein sog. Quanten-Computer sein. a n Qubits, Q Circuits, FourierTransform ord(a)

166 Quantenrechner a r Qubits, Q Circuits, FourierTransform ord(r) 1) Initialize the registers. This initial state is a superposition of Q states. 2) Construct f(r) as a quantum function and apply it to the above state This is still a superposition of Q states. 3) Apply the quantum Fourier transform to the input register. 4) Perform measurements, and output with high probablity

167 Post-Quantum Kryptographie Der Fortschritt bei den Quantencomputern ist bei genauer Betrachtung eher bescheiden (vor allem in der Extrapolation ernüchternd): 1996 stellt P. Shor den Quantencomputer-Faktorisierungsalgorithmus vor 2001 verkündet IBM, man habe die Zahl 15 mit einem Quantencomputer faktorisiert 2012 verkündet die Univ. Bristol, man habe die Zahl 21 mit einem Quantencomputer faktorisiert Deshalb/dennoch: Post-Quantum Kryptographie: Symmetric key Auch/vor allem aus dem Grund: Faktorisierung oder Diskr. Logarithmus könnte mathematisch gelöst werden ( indischer Doktorand mit einer neuen Formel für die ganzen Zahlen...) Code-based cryptography Lattice-based cryptography Multivariate cryptography und viele andere mehr Hash-based cryptography Basierend auf Schwierigkeit von math. Problemen, also so wie RSA, DH etc. Teilweise sind die math. Probleme NP-hart, was verdächtig ist, denn bislang haben sich alle auf NP-harten Problemen basierenden Verfahren als unbrauchbar erwiesen. Hoffnungsträger, weil nicht auf math. Annahmen basierend. Nachteile: 1. große Schlüssel mit dynamischer Verwaltung nötig. 2. nur Signieren und Authentisieren möglich, Verschlüsseln nicht. Forward secrecy (als Eigenschaft eine Verschlüsselungsverfahrens): Auch wenn das Verfahren gebrochen wird, können die verschlüsselten Nachrichten der Vergangenheit nicht entschlüsselt werden. Weak forward secrecy: Wenn das Verfahren gebrochen wird, können die verschlüsselten Nachrichten aus der Vergangenheit nur dann entschlüsselt werden, wenn beim Versenden der Nachricht schon aktiv/vorbereitend abgehört wurde.

168 Lamport One-Time PKI Schlüsselerzeugung. A erzeugt 2n zufällige Strings s 1,0,s 1,1, s 2,0,s 2,1,, s n,0, s n,1 Länge l. Diese geordnete Liste (s 1,0,s 1,1, s 2,0,s 2,1,, s n,0, s n,1 ) ist k priv. - alle von einer gewissen Mit einer Hash-Funktion h erzeugt A die 2n Hashwerte h 1,0 = h(s 1,0 ),h 1,1 = h(s 1,1 ),, h n,1 = h(s n,1 ), die alle Strings einer Länge m sind. Diese geordnete Liste (h 1,0,h 1,1, h 2,0,h 2,1,, h n,0, h n,1 ) ist k pub. Alice K priv Bob K pub B kann jetzt B einen Text a = a 1...a n der Länge n (die a i sind bits) an A schicken und sich von A signieren lassen. Das macht A, indem er den string c = c 1...c n der Länge n*m erzeugt, wobei der substring c i = s i,ai ist (d.h., c i ist entweder s i,0 oder s i,1, je nachdem,ob a i 0 oder 1 ist). B kann nachprüfen, ob die Signatur korrekt ist, denn er berechnet, ob für alle i gilt h(s i,ai ) = c i. Niemand anders als A kann aber die h-ur-werte der c i gewusst oder berechnet haben. Also hat A die Nachricht tatsächlich signiert. Die Signatur ist nicht abstreitbar. Nachteile: 1. Nur Signatur und Authentication, aber keine Verschlüsselung möglich. 2. Wie beim One-Time-Pad ist der Schlüssel nur einmal verwendbar viel Speicherplatz für k pub Vorteil: Dieses PKI baut nicht auf der Schwierigkeit eines mathematischen Problems auf (und wäre damit ein Kandidat für den Ersatz für RSA etc. im Ernstfall Postquantum Kryptographie ).

169 Merkle-Tree Signature Lamport One-time Signature k pub H1= h(p1) H2 = h(p2) H3 = h(p3) H4 = h(p4) k priv P1 P2 P3 P4 Merkle-Tree One-time Signature H1,2,3,4 = h(h1,2 H3,4) = k pub Vorteil gegenüber Lamport: öffentl. Schlüssel k pub ist klein. H1,2 = h(h1 H2) H3,4 = h(h3 H4) H1= h(p1) H2 = h(p2) H3 = h(p3) H4 = h(p4) P1 P2 P3 P4 = k priv

170 Merkle-Tree Verfikation von links H1,2,3,4 = h(h1,2 H3,4) H1,2 = h(h1 H2) H3,4 = h(h3 H4) H1= h(p1) H2 = h(p2) H3 = h(p3) H4 = h(p4) P1 P2 P3 P4 Das bit 1 wird mit dem ersten Blatt-Paar signiert. Weil das bit 1 ist, wird das rechte Blatt P2 genommen. Die Signatur ist: <P2, H1 links, H3,4 rechts> Der Verfizierer prüft: 1. berechne H2 = h(p2) 2. berechne H1,2 = h(h1 H2) 3. berechne H1,2,3,4 = h(h1,2 H3,4) 4. wenn H1,2,3,4 = k pub, dann ist die Signatur in Ordnung. Warum kann niemand anderes eine gültige Signatur schicken? - niemand kann andere Werte als H1,2 und H3,4 angeben, so dass k pub = H1,2,3,4 = h(h1,2 H3,4) - niemand kann andere Werte als H1 und H2 angeben, so dass H1,2 = h(h1 H2) - niemand anderes als der, der den privaten Schlüssel hat, kann ein P2 angeben, so dass h(p2) = H2 ist. von rechts (links/rechts ist ein flag, damit der Verifizierer weiß, von welcher Seite dieser Hash-wert konkateniert werden muss) könnte aber abgehört worden sein kann nicht abgehört worden sein hier zum ersten Mal veröffentlicht

171 Merkle-Tree mit pseudo-random Urwerten Verbesserung Merkle-Tree One-time Signature. H1,2,3,4 = h(h1,2 H3,4) = k pub H1,2 = h(h1 H2) H3,4 = h(h3 H4) H1= h(p1) H2 = h(p2) H3 = h(p3) H4 = h(p4) P1 P2 P3 P4 h h h h <s 0> <s 1> <s,2> <s,3> s = kurzes Geheimnis ( seed ) Vorteil: Auch der private Schlüssel reduziert sich praktisch auf ein kurzes Geheimnis s. Zwar muss am Anfang, d.h. zur Generierung des public key, der gesamte Baum aufgebaut und durchgerechnet werden, aber ab dann kann man durch entsprechende Baum-Verwaltung mit einem nur logarithmisch großen Teil des Baumes den Baum effektiv traversieren (nur ab zu und muss wieder gerechnet werden, in der Summe noch einmal der ganze Baum)

172 Kryptologie Bernd Borchert Univ. Tübingen SS 2017 Vorlesung Teil 18 Geheimnisteilungsschemata

173 Motivation Geheimnisteilungsschemata Geheimnis Schliessfach 652, PIN ASCII Aufteilen in zwei zufällige Strings Keiner der beiden Strings hat eine Information. Nur beide zusammen: ASCII Beobachtung: Es würde reichen, zu wissen, wie man das für ein bit macht. Für Bit-Strings macht man es dann bitweise. Schliessfach 652, PIN

174 Geheimnisteilungsschemata Ein bit i (0 oder 1) Information sei gegeben. Es soll so in zwei Teilgeheimnisse A und B aufgeteilt werden, dass keins der beiden Teilgeheimnisse allein etwas von der Information i preisgibt, aber beide zusammen i vollständig erschließen lassen. Lösung: A bekommt ein bit a gleichverteilt zufällig (Münzwurf), und B bekommt b = a EXOR i. 1. Warum kann man mit A und B zusammen auf i schließen? i = a EXOR b, denn a EXOR b = a EXOR a EXOR i = 0 EXOR i = i. 2. Warum kann man mit A allein nicht auf das Geheimnis i schließen? Weil a zufällig vergeben wurde und gar nichts über i enthält. 3. Warum kann man mit B allein nicht auf das Geheimnis i schließen? Folgende Argumentation ist die einfachste: Sei i=0. Dann ist die Wahrscheinlichkeit, dass b=0 ist, 50%, denn die Wahrscheinlichkeit, dass a=0 ist, ist 50%.(b = a EXOR i) Sei i=1. Dann ist die Wahrscheinlichkeit, dass b=0 ist, ebenfalls 50%, denn die Wahrscheinlichkeit, dass a=1 ist, ist 50%. Also ist die Wahrscheinlichkeit, dass b=0 ist, in beiden möglichen Fällen 50% (unabhängig von i). Also ist b gleichverteilt zufällig (so wie a). Also kann man mit b nicht auf i schließen. qed. Verbindung/Ähnlichkeit zum one-time-pad: Es ist quasi die umgekehrte Richtung: Es wird beim Geheimnisteilungsschema nicht b mit a zu i verschlüsselt, sondern es wird i in a und b zerlegt. Entsprechend wird ein BitString a = a 1... a k aus {0,1} k durch k unabhängige Münzwürfe in zwei Teilgeheimnisse (beides bitstrings der Länge k) aufgeteilt, die jeweils keine Information über a preisgeben, aber die zusammen a vollständig rekonstruieren lassen. Dies sind 2-aus-2 Geheimnisteilungsschemata, als Spezialfall von m-aus-n Geheimnisteilungsschemata für m <= n. Definition davon: Es gibt n Teilgeheimnisse, m-1 Teilgeheimnisse geben nichts über das Geheimnis preis, aber m Teilgeheimnisse lassen das Geheimnis vollständig rekonstruieren.

175 n-aus-n Geheimnisteilungsschema Ein bit b soll auf n Teilgeheimnisse verteilt werden: Dazu reicht ein bit b i für jedes Teilgeheimnis: n-1 Teilgeheimnisse b 1,..., b n-1 werden zufällig bestimmt. Das letzte Teilgeheimnis b n wird als EXOR(b 1,..., b n-1, b) bestimmt. Also kann b als EXOR(b 1,..., b n-1, b n ) bestimmt werden, aber keine Teilmenge von n-1 oder weniger Teilgeheimnissen reicht alleine aus. Beweis: wie für n=2. Wörtern mit m bits können also für ein Geheimnisteilungsschema n-aus-n in n Teilgeheimnisse mit je m bits aufgeteilt werden.

176 2-aus-n Geheimnisteilungsschema Ein bit i soll auf 8 Teilgeheimnisse verteilt werden, so dass ein einzelnes Teilgeheimnis keine Information hat, aber aus 2 Teilgeheimnissen das bit i zu rekonstruieren ist. Dazu reichen 3 bits b 1 b 2 b 3 für jedes Teilgeheimnis: Wenn das bit i = 0 ist, wird eine 3-bit Sequenz b 1 b 2 b 3 geraten und jeder der 8 Teilnehmer bekommt das als Teilgeheimnis. Wenn das bit i = 1 ist, werden die 8 3-stelligen bit-folgen den 8 Teilnehmern gleichverteilt zufällig zugeordnet. Aus einen Teilgeheimnis b 1 b 2 b 3 kann also keine Information über i gewonnen werden. Aber aus 2 verschiedenen Teilgeheimnissen b 1 b 2 b 3 und c 1 c 2 c 3 kann man i rekonstruieren: wenn sie gleich sind, dann ist i = 0, und ansonsten ist i = 1. Wörtern mit m bits können also für ein Geheimnisteilungsschema 2-aus-2 j in 2 j Teilgeheimnisse mit je j. m bits aufgeteilt werden. Wenn n keine 2er-Potenz ist: Ein m-aus-n Geheimnisteilungsschema ist natürlich immer auch ein m-aus-k Geheimnisteilungsschema für alle k mit k>= m und k < n, indem man n-k Teilgeheimnisse wegwirft.

177 Shamir Geheimnisteilungsschema Ein anderes Geheimnisteilungsschema ist das von Shamir 1979: Es nutzt das Phänomen, dass ein Polynom p(x) vom Grad n erst durch n+1 Punkte (x,p(x)) vollständig bestimmt ist. Mit anderen Worten: wenn n Punkte bekannt sind, ist das Polynom bzw. dessen Koeffizienten noch unbestimmt. Das Geheimnis ist also Polynom von Grad n bzw. ein gewisser Koeffizient davon (z.b. der erste für x 0 ) und die n+1 Teilgeheimnisse sind n+1 verschiedene Punkte (x,p(x)). n dieser Punkte lassen noch nicht auf das Polynom bzw. dessen Koeffizient schließen, nur alle n+1 zusammen.

Kryptologie. Bernd Borchert. Univ. Tübingen, SS Vorlesung. Doppelstunde 2. - One Time Pad - Authentisierung

Kryptologie. Bernd Borchert. Univ. Tübingen, SS Vorlesung. Doppelstunde 2. - One Time Pad - Authentisierung Kryptologie Bernd Borchert Univ. Tübingen, SS 2017 Vorlesung Doppelstunde 2 - One Time Pad - Authentisierung Homophone Chiffre Monoalphabetische Chiffre : Bijektion der Buchstaben: A B C D E F G H I J

Mehr

Kryptologie. Bernd Borchert. Univ. Tübingen SS Vorlesung. Teil 10. Signaturen, Diffie-Hellman

Kryptologie. Bernd Borchert. Univ. Tübingen SS Vorlesung. Teil 10. Signaturen, Diffie-Hellman Kryptologie Bernd Borchert Univ. Tübingen SS 2017 Vorlesung Teil 10 Signaturen, Diffie-Hellman Signatur Signatur s(m) einer Nachricht m Alice m, s(m) Bob K priv K pub K pub Signatur Signatur (Thema Integrity

Mehr

Kryptologie. Bernd Borchert. Univ. Tübingen WS 15/16. Vorlesung. Teil 1a. Historische Verschlüsselungsverfahren

Kryptologie. Bernd Borchert. Univ. Tübingen WS 15/16. Vorlesung. Teil 1a. Historische Verschlüsselungsverfahren ryptologie Bernd Borchert Univ. Tübingen WS 15/16 Vorlesung Teil 1a Historische Verschlüsselungsverfahren ryptologie vom Umgang mit Geheimnissen Drei Zielrichtungen der ryptologie: Vertraulichkeit Verschlüsseln

Mehr

Kryptologie. Bernd Borchert. Univ. Tübingen, SS Vorlesung. Doppelstunde 3

Kryptologie. Bernd Borchert. Univ. Tübingen, SS Vorlesung. Doppelstunde 3 Kryptologie Bernd Borchert Univ. Tübingen, SS 2017 orlesung Doppelstunde 3 isuelle Kryptographie Sie sehen an den mitgebrachten Folien: + = HALLO! Man kann es aber auch so sehen: die Information wird in

Mehr

Bernd Borchert. Univ. Tübingen WS 13/14. Vorlesung. Kryptographie. Teil

Bernd Borchert. Univ. Tübingen WS 13/14. Vorlesung. Kryptographie. Teil Bernd Borchert Univ. Tübingen WS 13/14 Vorlesung Kryptographie Teil 4 22.11.13 AES AES ist eine Blockchiffre in drei Varianten AES128, AES196 und AES256. Wichtigste Kennzahlen: Blocklänge bei allen drei

Mehr

Bernd Borchert. Univ. Tübingen WS 13/14. Vorlesung. Kryptographie. Teil

Bernd Borchert. Univ. Tübingen WS 13/14. Vorlesung. Kryptographie. Teil Bernd Borchert Univ. Tübingen WS 13/14 Vorlesung Kryptographie Teil 1 18.10.13 1 Kryptologie der Umgang mit Geheimnissen Geheimnisse müssen nichts romantisches oder kriminelles sein, sondern es gibt ganz

Mehr

Kryptograhie Wie funktioniert Electronic Banking? Kurt Mehlhorn Adrian Neumann Max-Planck-Institut für Informatik

Kryptograhie Wie funktioniert Electronic Banking? Kurt Mehlhorn Adrian Neumann Max-Planck-Institut für Informatik Kryptograhie Wie funktioniert Electronic Banking? Kurt Mehlhorn Adrian Neumann Max-Planck-Institut für Informatik Übersicht Zwecke der Krytographie Techniken Symmetrische Verschlüsselung( One-time Pad,

Mehr

II.1 Verschlüsselungsverfahren

II.1 Verschlüsselungsverfahren II.1 Verschlüsselungsverfahren Definition 2.1 Ein Verschlüsselungsverfahren ist ein 5-Tupel (P,C,K,E,D), wobei 1. P die Menge der Klartexte ist. 2. C die Menge der Chiffretexte ist. 3. K die Menge der

Mehr

VI.3 RSA. - RSA benannt nach seinen Erfindern R. Rivest, A. Shamir und L. Adleman. - vorgestellt erstes Public-Key Verschlüsselungsverfahren

VI.3 RSA. - RSA benannt nach seinen Erfindern R. Rivest, A. Shamir und L. Adleman. - vorgestellt erstes Public-Key Verschlüsselungsverfahren VI.3 RSA - RSA benannt nach seinen Erfindern R. Rivest, A. Shamir und L. Adleman - vorgestellt 1977 - erstes Public-Key Verschlüsselungsverfahren - auch heute noch das wichtigste Public-Key Verfahren 1

Mehr

4.6.1 Mathematische Grundlagen

4.6.1 Mathematische Grundlagen 4.6.1 Mathematische Grundlagen Die Basiseinheit für Berechnungen im AES stellt das Byte dar, daher sind viele Operationen im AES im GF(2 8 ) definiert. Um den Wert eines Byte darzustellen benutzen wir

Mehr

Bernd Borchert. Univ. Tübingen WS 13/14. Vorlesung. Kryptographie. Teil 4b. Diffie-Hellmann, Authentisierung

Bernd Borchert. Univ. Tübingen WS 13/14. Vorlesung. Kryptographie. Teil 4b. Diffie-Hellmann, Authentisierung Bernd Borchert Univ. Tübingen WS 13/14 Vorlesung Kryptographie Teil 4b Diffie-Hellmann, Authentisierung Diffie-Hellmann Schlüsselaustausch - Verfahren, mit dem sich zwei Parteien einen gemeinsamen Schlüssel

Mehr

Betriebssysteme und Sicherheit Sicherheit. Florian Kerschbaum TU Dresden Wintersemester 2011/12

Betriebssysteme und Sicherheit Sicherheit. Florian Kerschbaum TU Dresden Wintersemester 2011/12 Betriebssysteme und Sicherheit Sicherheit Florian Kerschbaum TU Dresden Wintersemester 2011/12 Begriffe Kryptographie: Geheimschrift Nachrichten schreiben ohne das sie von einem Anderen gelesen (verändert)

Mehr

$Id: ring.tex,v /05/03 15:13:26 hk Exp $

$Id: ring.tex,v /05/03 15:13:26 hk Exp $ $Id: ring.tex,v 1.13 2012/05/03 15:13:26 hk Exp $ 3 Ringe 3.1 Der Ring Z m In der letzten Sitzung hatten wir die sogenannten Ringe eingeführt, dies waren Mengen A versehen mit einer Addition + und einer

Mehr

Das Verschlüsseln verstehen

Das Verschlüsseln verstehen Das Verschlüsseln verstehen Kurz-Vorlesung Security Day 2014 Prof. (FH) Univ.-Doz. DI. Dr. Ernst Piller Kurzvorlesung "Das Verschlüsseln verstehen", Security Day 2014, Ernst Piller 1 Warum eigentlich Verschlüsselung

Mehr

VI.4 Elgamal. - vorgestellt 1985 von Taher Elgamal. - nach RSA das wichtigste Public-Key Verfahren

VI.4 Elgamal. - vorgestellt 1985 von Taher Elgamal. - nach RSA das wichtigste Public-Key Verfahren VI.4 Elgamal - vorgestellt 1985 von Taher Elgamal - nach RSA das wichtigste Public-Key Verfahren - besitzt viele unterschiedliche Varianten, abhängig von zugrunde liegender zyklischer Gruppe - Elgamal

Mehr

Einführung in die Kryptographie

Einführung in die Kryptographie Ä Johannes Buchmann Einführung in die Kryptographie Dritte, erweiterte Auflage Inhaltsverzeichnis 1. Einleitung 1 2. Ganze Zahlen 3 2.1 Grundlagen 3 2.2 Teilbarkeit 4 2.3 Darstellung ganzer Zahlen 5 2.4

Mehr

Kapitel 2. Elementare Zahlentheorie Primfaktorzerlegung

Kapitel 2. Elementare Zahlentheorie Primfaktorzerlegung Kapitel 2. Elementare Zahlentheorie 2.1. Primfaktorzerlegung Menge der ganzen Zahlen Z = {..., 3, 2, 1, 0, 1, 2, 3,...} Addition Inverse Multiplikation Z Z Z, Z Z, Z Z Z, (a, b) a + b a a (a, b) a b Ausgezeichnete

Mehr

Kryptographie und Komplexität

Kryptographie und Komplexität Kryptographie und Komplexität Einheit 5.2 ElGamal Systeme 1. Verschlüsselungsverfahren 2. Korrektheit und Komplexität 3. Sicherheitsaspekte Das ElGamal Verschlüsselungsverfahren Public-Key Verfahren von

Mehr

3 Public-Key-Kryptosysteme

3 Public-Key-Kryptosysteme Stand: 05.11.2013 Vorlesung Grundlagen und Methoden der Kryptographie Dietzfelbinger 3 Public-Key-Kryptosysteme 3.1 Verschlüsselung von Nachrichten Wir betrachten ganz einfache Kommunikationsszenarien.

Mehr

Kapitel 3 Elementare Zahletheorie

Kapitel 3 Elementare Zahletheorie Kapitel 3 Elementare Zahletheorie 89 Kapitel 3.1 Ganze Zahlen, Gruppen und Ringe 90 Die ganzen Zahlen Menge der ganzen Zahlen Z={..., 3, 2, 1,0,1,2,3,...} Es gibt zwei Operationen Addition: Z Z Z, (a,b)

Mehr

Einführung in die Kryptographie

Einführung in die Kryptographie Johannes Buchmann Einführung in die Kryptographie Fünfte Auflage \ - ' '' "'-'"*' : ) ^ Springer Inhaltsverzeichnis 1. Einleitung, : 1 2. Ganze Zahlen 3 2.1 Grundlagen 3 2.2 Teilbarkeit 4 2.3 Darstellung

Mehr

3: Primzahlen. 111 S. Lucks Diskr Strukt. (WS 18/19) 3: Primzahlen

3: Primzahlen. 111 S. Lucks Diskr Strukt. (WS 18/19) 3: Primzahlen 3: Primzahlen 111 S. Lucks Diskr Strukt. (WS 18/19) 3: Primzahlen Definition 40 (Teiler, Vielfache, Primzahlen, zusammengesetzte Zahlen) Seien a, b N. a ist ein Teiler von b ( a b ), falls es ein k N gibt

Mehr

9. Einführung in die Kryptographie

9. Einführung in die Kryptographie 9. Einführung in die Kryptographie Grundidee: A sendet Nachricht nach B über unsicheren Kanal. Es soll verhindert werden, dass ein Unbefugter Kenntnis von der übermittelten Nachricht erhält. Grundbegriffe:

Mehr

Kryptographie Wie funktioniert Electronic Banking? Kurt Mehlhorn Adrian Neumann Max-Planck-Institut für Informatik

Kryptographie Wie funktioniert Electronic Banking? Kurt Mehlhorn Adrian Neumann Max-Planck-Institut für Informatik Kryptographie Wie funktioniert Electronic Banking? Kurt Mehlhorn Adrian Neumann Max-Planck-Institut für Informatik Übersicht Zwecke der Kryptographie Techniken Symmetrische Verschlüsselung( One-time Pad,

Mehr

3: Zahlentheorie / Primzahlen

3: Zahlentheorie / Primzahlen Stefan Lucks Diskrete Strukturen (WS 2009/10) 96 3: Zahlentheorie / Primzahlen 3: Zahlentheorie / Primzahlen Stefan Lucks Diskrete Strukturen (WS 2009/10) 97 Definition 37 (Teiler, Vielfache, Primzahlen,

Mehr

Universität Tübingen WS 2015/16. Kryptologie. Klausur

Universität Tübingen WS 2015/16. Kryptologie. Klausur Universität Tübingen WS 2015/16 Kryptologie Klausur 31.3.2016 Name: Matrikel-Nr.: 1 2 3 4 5 6 7 8 9 10 Summe 10 15 10 10 8 10 12 5 10 10 100 Aufgabe 1 a) (8P) Testen Sie mit Miller-Rabin, ob 13 eine Primzahl

Mehr

6: Public-Key Kryptographie (Grundidee)

6: Public-Key Kryptographie (Grundidee) 6: Public-Key Kryptographie (Grundidee) Ein Teil des Schlüssels ist nur dem Empfänger bekannt. Der auch dem Sender bekannte Teil kann sogar veröffentlicht werden. Man spricht dann von einem Schlüsselpaar.

Mehr

Trim Size: 176mm x 240mm Lang ftoc.tex V1-5.Juli :54 P.M. Page 9

Trim Size: 176mm x 240mm Lang ftoc.tex V1-5.Juli :54 P.M. Page 9 Trim Size: 176mm x 240mm Lang ftoc.tex V1-5.Juli 2018 7:54 P.M. Page 9 Auf einen Blick Über den Autor... 7 Einleitung... 19 Teil I: Verschlüsseln... 25 Kapitel 1: Sicherheit in Zeiten des Internet... 27

Mehr

Verschlüsselung durch Exponentiation (Pohlig, Hellman, 1976)

Verschlüsselung durch Exponentiation (Pohlig, Hellman, 1976) Verschlüsselung durch Exponentiation (Pohlig, Hellman, 1976) p : eine (grosse) Primzahl e : Zahl 0 < e < p mit ggt(e, p 1) = 1 d Inverses von e in Z p 1, dh d e 1 mod p 1 (= φ(p)) M : numerisch codierter

Mehr

Public-Key-Verschlüsselung und Diskrete Logarithmen

Public-Key-Verschlüsselung und Diskrete Logarithmen Public-Key-Verschlüsselung und Diskrete Logarithmen Carsten Baum Institut für Informatik Universität Potsdam 10. Juni 2009 1 / 30 Inhaltsverzeichnis 1 Mathematische Grundlagen Gruppen, Ordnung, Primitivwurzeln

Mehr

Universität Tübingen SS Kryptologie. B. Borchert, D. Reichl. Klausur , (90 min)

Universität Tübingen SS Kryptologie. B. Borchert, D. Reichl. Klausur , (90 min) Universität Tübingen SS 2017 Kryptologie B. Borchert, D. Reichl Klausur 28.7.2017, 12.30-14.00 (90 min) Name: Matrikel-Nr.: Studiengang: MSc Informatik MSc Bioinformatik MSc Medieninformatik MSc Kognitionswissenschaft

Mehr

Vorlesung 7. Tilman Bauer. 25. September 2007

Vorlesung 7. Tilman Bauer. 25. September 2007 Vorlesung 7 Universität Münster 25. September 2007 El. In Vorlesung 4 haben wir Modulo-Arithmetik behandelt. Definition Sei n N 1. Auf Z ist eine Äquivalenzrelation Kongruenz modulo n definiert durch x

Mehr

El. Zahlentheorie I: Der kleine Satz von Fermat

El. Zahlentheorie I: Der kleine Satz von Fermat Vorlesung 7 Universität Münster 25. September 2007 El. In Vorlesung 4 haben wir Modulo-Arithmetik behandelt. Definition Sei n N 1. Auf Z ist eine Äquivalenzrelation Kongruenz modulo n definiert durch x

Mehr

Einführung in die. Kryptographie WS 2016/ Lösungsblatt

Einführung in die. Kryptographie WS 2016/ Lösungsblatt Technische Universität Darmstadt Fachgebiet Theoretische Informatik Prof. Johannes Buchmann Thomas Wunderer Einführung in die Kryptographie WS 6/ 7. Lösungsblatt 8..6 Ankündigungen Arithmetik modulo n

Mehr

3. Lösungsblatt

3. Lösungsblatt TECHNISCHE UNIVERSITÄT DARMSTADT FACHGEBIET THEORETISCHE INFORMATIK PROF JOHANNES BUCHMANN NABIL ALKEILANI ALKADRI Einführung in die Kryptographie WS 7/ 8 3 Lösungsblatt 67 P Matrizen und Determinanten

Mehr

9.5 Blockverschlüsselung

9.5 Blockverschlüsselung 9.5 Blockverschlüsselung Verschlüsselung im Rechner: Stromverschlüsselung (stream cipher): kleine Klartexteinheiten (Bytes, Bits) werden polyalphabetisch verschlüsselt Blockverschlüsselung (block cipher):

Mehr

11. Das RSA Verfahren

11. Das RSA Verfahren Chr.Nelius: Zahlentheorie (SoSe 2017) 53 11. Das RSA Verfahren Bei einer asymmetrischen Verschlüsselung lässt sich der Schlüssel zum Entschlüsseln nicht aus dem Schlüssel zum Verschlüsseln bestimmen und

Mehr

Einführung in die Kryptographie

Einführung in die Kryptographie Johannes Buchmann Einführung in die Kryptographie 6., überarbeitete Auflage ~ Springer Spektrum Inhaltsverzeichnis 1 Grundlagen........................................ 1.1 Ganze Zahlen...................................

Mehr

Aufgabe der Kryptografie

Aufgabe der Kryptografie Aufgabe der Kryptografie Eve möchte die Unterhaltung mithören und/oder ausgetauschte Informationen ändern. Alice & Bob kommunzieren über einen unsicheren Kanal. Alice & Bob nutzen Verschlüsselung und digitale

Mehr

4 Kryptologie. Übersicht

4 Kryptologie. Übersicht 4 Kryptologie Übersicht 4.1 Der erweiterte euklidische Algorithmus................................ 38 4.2 Rechnen mit Restklassen modulo p................................... 39 4.3 Der kleine Satz von

Mehr

Public Key Kryptographie

Public Key Kryptographie 3. Juni 2006 1 Algorithmen für Langzahlen 1 RSA 1 Das Rabin-Kryptosystem 1 Diskrete Logarithmen Grundlagen der PK Kryptographie Bisher: Ein Schlüssel für Sender und Empfänger ( Secret-Key oder symmetrische

Mehr

Vorlesung Sicherheit

Vorlesung Sicherheit Vorlesung Sicherheit Dennis Hofheinz ITI, KIT 12.05.2014 1 / 26 Überblick 1 Hashfunktionen Erinnerung Angriffe auf Hashfunktionen Zusammenfassung Hashfunktionen 2 Asymmetrische Verschlüsselung Idee Beispiel:

Mehr

Regine Schreier

Regine Schreier Regine Schreier 20.04.2016 Kryptographie Verschlüsselungsverfahren Private-Key-Verfahren und Public-Key-Verfahren RSA-Verfahren Schlüsselerzeugung Verschlüsselung Entschlüsselung Digitale Signatur mit

Mehr

Kryptologie. K l a u s u r WS 2006/2007, Prof. Dr. Harald Baier

Kryptologie. K l a u s u r WS 2006/2007, Prof. Dr. Harald Baier Kryptologie K l a u s u r WS 2006/2007, 2007-02-01 Prof. Dr. Harald Baier Name, Vorname: Matrikelnummer: Hinweise: (a) Als Hilfsmittel ist nur der Taschenrechner TI-30 zugelassen. Weitere Hilfsmittel sind

Mehr

Kryptographie Wie funktioniert Electronic Banking? Kurt Mehlhorn Adrian Neumann Max-Planck-Institut für Informatik

Kryptographie Wie funktioniert Electronic Banking? Kurt Mehlhorn Adrian Neumann Max-Planck-Institut für Informatik Kryptographie Wie funktioniert Electronic Banking? Kurt Mehlhorn Adrian Neumann Max-Planck-Institut für Informatik Übersicht Zwecke der Kryptographie Techniken Symmetrische Verschlüsselung (One-time Pad,

Mehr

Literatur. [8-9] ISM WS 2018/19 Teil 8/Asymmetrische Verschlüsselung

Literatur. [8-9]   ISM WS 2018/19 Teil 8/Asymmetrische Verschlüsselung Literatur [8-1] Beutelspacher, A.; Schwenk, J.; Wolfenstetter, K.-D.: Moderne Verfahren der Kryptographie. 4. Auflage, Vieweg 2001 [8-2] Schmeh, Klaus: Kryptografie. dpunkt, 6. Auflage, 2017 [8-3] Schneier,

Mehr

Bernd Borchert. Univ. Tübingen WS 13/14. Vorlesung. Kryptographie. Teil 11. Einwegfunktionen, Geheimnisteilung, Steganographie 7.2.

Bernd Borchert. Univ. Tübingen WS 13/14. Vorlesung. Kryptographie. Teil 11. Einwegfunktionen, Geheimnisteilung, Steganographie 7.2. Bernd Borchert Univ. Tübingen WS 13/14 Vorlesung Kryptographie Teil 11 Einwegfunktionen, Geheimnisteilung, Steganographie 7.2.14 P-Zeit berechenbare Funktionen FP ist die Klasse aller Funktionen f : {0,1}*

Mehr

Kryptographie. Nachricht

Kryptographie. Nachricht Kryptographie Kryptographie Sender Nachricht Angreifer Empfänger Ziele: Vertraulichkeit Angreifer kann die Nachricht nicht lesen (Flüstern). Integrität Angreifer kann die Nachricht nicht ändern ohne dass

Mehr

Algorithmische Kryptographie

Algorithmische Kryptographie Algorithmische Kryptographie Walter Unger Lehrstuhl für Informatik I 16. Februar 2007 Public-Key-Systeme: Rabin 1 Das System nach Rabin 2 Grundlagen Körper Endliche Körper F(q) Definitionen Quadratwurzel

Mehr

Literatur. ISM SS 2017 Teil 8/Asymmetrische Verschlüsselung

Literatur. ISM SS 2017 Teil 8/Asymmetrische Verschlüsselung Literatur [8-1] Beutelspacher, A.; Schwenk, J.; Wolfenstetter, K.-D.: Moderne Verfahren der Kryptographie. 4. Auflage, Vieweg 2001 [8-2] Schmeh, Klaus: Kryptografie. dpunkt, 4. Auflage, 2009 [8-3] Schneier,

Mehr

Erinnerung Blockchiffre

Erinnerung Blockchiffre Erinnerung Blockchiffre Definition schlüsselabhängige Permutation Seien F, F 1 pt Algorithmen. F heißt schlüsselabhängige Permutation auf l Bits falls 1 F berechnet eine Funktion {0, 1} n {0, 1} l {0,

Mehr

Grundlagen der Verschlüsselung und Authentifizierung (1)

Grundlagen der Verschlüsselung und Authentifizierung (1) Grundlagen der Verschlüsselung und Authentifizierung (1) Proseminar im SS 2010 Friedrich-Alexander-Universität Erlangen-Nürnberg 18.05.2010 1 Motivation

Mehr

Kurzskript MfI:AGS WS 2018/19 Teil II: Gruppen / Teil III: Ringe 34

Kurzskript MfI:AGS WS 2018/19 Teil II: Gruppen / Teil III: Ringe 34 Kurzskript MfI:AGS WS 2018/19 Teil II: Gruppen / Teil III: Ringe 34 Satz 4.2.11 (Chinesischer Restsatz, Ring-Version) Sind N teilerfremd (d.h. ggt( ) =1), so ist die Abbildung ein Ring-Isomorphismus. :

Mehr

Kryptographie Wie funktioniert Electronic Banking? Kurt Mehlhorn Adrian Neumann Max-Planck-Institut für Informatik

Kryptographie Wie funktioniert Electronic Banking? Kurt Mehlhorn Adrian Neumann Max-Planck-Institut für Informatik Kryptographie Wie funktioniert Electronic Banking? Kurt Mehlhorn Adrian Neumann Max-Planck-Institut für Informatik Übersicht Zwecke der Kryptographie Techniken Symmetrische Verschlüsselung (One-time Pad,

Mehr

Einführung in die Kryptographie

Einführung in die Kryptographie Johannes Buchmann Einführung in die Kryptographie Fünfte Auflage ~ Springer Inhaltsverzeichnis 1. Einleitung... 1 2. Ganze Zahlen............................................. 3 2.1 Grundlagen... 3 2.2

Mehr

VI. Public-Key Kryptographie

VI. Public-Key Kryptographie VI. Public-Key Kryptographie Definition 2.1 Ein Verschlüsselungsverfahren ist ein 5-Tupel (P,C,K,E,D), wobei 1. P die Menge der Klartexte ist. 2. C die Menge der Chiffretexte ist. 3. K die Menge der Schlüssel

Mehr

Kryptographie - eine mathematische Einführung

Kryptographie - eine mathematische Einführung Kryptographie - eine mathematische Einführung Rosa Freund 28. Dezember 2004 Überblick Grundlegende Fragestellungen Symmetrische Verschlüsselung: Blockchiffren, Hashfunktionen

Mehr

Ideen und Konzepte der Informatik Kryptographie

Ideen und Konzepte der Informatik Kryptographie Ideen und Konzepte der Informatik Kryptographie und elektronisches Banking Antonios Antoniadis (basiert auf Folien von Kurt Mehlhorn) 4. Dec. 2017 4. Dec. 2017 1/30 Übersicht Zwecke der Kryptographie Techniken

Mehr

Ideen und Konzepte der Informatik Kryptographie Wie funktioniert Electronic Banking? Kurt Mehlhorn

Ideen und Konzepte der Informatik Kryptographie Wie funktioniert Electronic Banking? Kurt Mehlhorn Ideen und Konzepte der Informatik Wie funktioniert Electronic Banking? Kurt Mehlhorn Übersicht Zwecke der Techniken Symmetrische Verschlüsselung (Caesar, One-time Pad, moderne Blockchiffres, seit 2000

Mehr

Vorlesung Sicherheit

Vorlesung Sicherheit Vorlesung Sicherheit Dennis Hofheinz ITI, KIT 15.05.2017 1 / 25 Überblick 1 Hashfunktionen Angriffe auf Hashfunktionen Zusammenfassung Hashfunktionen 2 Asymmetrische Verschlüsselung Idee Beispiel: RSA

Mehr

Kryptologie. Bernd Borchert. Univ. Tübingen SS Vorlesung. Teil 17. Quantencomputer, Postquantum Kryptographie

Kryptologie. Bernd Borchert. Univ. Tübingen SS Vorlesung. Teil 17. Quantencomputer, Postquantum Kryptographie Kryptologie Bernd Borchert Univ. Tübingen SS 2017 Vorlesung Teil 17 Quantencomputer, Postquantum Kryptographie Shor's Algorithmus (klassischer Teil) Shor's Algorithmus zur Faktorisierung - Teilalgorithmus

Mehr

Klassische Verschlüsselungsverfahren

Klassische Verschlüsselungsverfahren Klassische Verschlüsselungsverfahren Matthias Morak 10. Dezember 2008 Inhaltsverzeichnis 1 Einleitung 2 1.1 Definitionen........................................ 2 1.2 Geschichte.........................................

Mehr

IT-Sicherheitsmanagement. Teil 8: Asymmetrische Verschlüsselung

IT-Sicherheitsmanagement. Teil 8: Asymmetrische Verschlüsselung IT-Sicherheitsmanagement Teil 8: Asymmetrische Verschlüsselung 02.01.18 1 Literatur [8-1] Beutelspacher, A.; Schwenk, J.; Wolfenstetter, K.-D.: Moderne Verfahren der Kryptographie. 4. Auflage, Vieweg 2001

Mehr

Einführung in die Kryptographie

Einführung in die Kryptographie Springer-Lehrbuch Einführung in die Kryptographie Bearbeitet von Johannes Buchmann 6., überarb. Auflage 2016. Taschenbuch. XXXVi, 330 S. Softcover ISBN 978 3 642 39774 5 Format (B x L): 16,8 x 24 cm Gewicht:

Mehr

Einführung in die Kryptographie. 20.6.2011, www.privacyfoundation.ch

Einführung in die Kryptographie. 20.6.2011, www.privacyfoundation.ch Einführung in die Kryptographie 20.6.2011, www.privacyfoundation.ch Kryptographie Name kryptós: verborgen, geheim gráphein: schreiben Verschlüsselung Text so umwandeln, dass man ihn nur noch entziffern/lesen

Mehr

Alice (A) und Bob (B) wollen sicher kommunizieren (vgl. Schutzziele) Oskar (O) versucht, die Schutzziele zu durchbrechen

Alice (A) und Bob (B) wollen sicher kommunizieren (vgl. Schutzziele) Oskar (O) versucht, die Schutzziele zu durchbrechen Vorlesung am 21.04.2015 3 Symmetrische Verschlüsselung Alice (A) und Bob (B) wollen sicher kommunizieren (vgl. Schutzziele) Oskar (O) versucht, die Schutzziele zu durchbrechen Passiver Angri : Abhören

Mehr

Kryptographie für CTFs

Kryptographie für CTFs Kryptographie für CTFs Eine Einführung KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kitctf.de Einführung Cryptography is the practice and study of techniques for secure communication

Mehr

ggt mit Euklid Satz: Um ggt(k, l) mit dem Euklidischen Algorithmus zu berechnen, braucht man höchstens log Φ k < 3 2 log 2 k rekursive Aufrufe.

ggt mit Euklid Satz: Um ggt(k, l) mit dem Euklidischen Algorithmus zu berechnen, braucht man höchstens log Φ k < 3 2 log 2 k rekursive Aufrufe. ggt mit Euklid Satz: Um ggt(k, l) mit dem Euklidischen Algorithmus zu berechnen, braucht man höchstens log Φ k < 3 2 log 2 k rekursive Aufrufe. Das heißt, um den ggt von zwei 1000-Bit-Zahlen zu ermitteln,

Mehr

Kryptographie für CTFs

Kryptographie für CTFs Kryptographie für CTFs Eine Einführung KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kitctf.de Einführung Cryptography is the practice and study of techniques for secure communication

Mehr

3.5 Kryptographie - eine Anwendung der Kongruenzrechnung

3.5 Kryptographie - eine Anwendung der Kongruenzrechnung 1 3.5 Kryptographie - eine Anwendung der Kongruenzrechnung Das Wort Kryptographie leitet sich aus der griechischen Sprache ab, nämlich aus den beiden Worten κρυπτ oς(kryptos)=versteckt, geheim und γραϕɛιν(grafein)=schreiben.

Mehr

Lösungen der Aufgaben

Lösungen der Aufgaben Lösungen der Aufgaben Aufgabe 1.3.1 Es gibt 42 mögliche Verschlüsselungen. Aufgabe 2.3.4 Ergebnisse sind 0, 4 und 4 1 = 4. Aufgabe 2.3.6 Da in Z 9 10 = 1 ist, erhalten wir x = c 0 + + c m = c 0 + + c m.

Mehr

Lösungen zu. Grundlagen der Kryptologie SS Hochschule Konstanz. Dr.-Ing. Harald Vater. Giesecke & Devrient GmbH Prinzregentenstraße 159

Lösungen zu. Grundlagen der Kryptologie SS Hochschule Konstanz. Dr.-Ing. Harald Vater. Giesecke & Devrient GmbH Prinzregentenstraße 159 Lösungen zu Grundlagen der Kryptologie SS 008 Hochschule Konstanz Dr.-Ing. Harald Vater Giesecke & Devrient GmbH Prinzregentenstraße 159 D-81677 München Tel.: +49 89 4119-1989 E-Mail: hvater@htwg-konstanz.de

Mehr

Diskrete Strukturen Kapitel 5: Algebraische Strukturen (Gruppen)

Diskrete Strukturen Kapitel 5: Algebraische Strukturen (Gruppen) WS 2015/16 Diskrete Strukturen Kapitel 5: Algebraische Strukturen (Gruppen) Hans-Joachim Bungartz Lehrstuhl für wissenschaftliches Rechnen Fakultät für Informatik Technische Universität München http://www5.in.tum.de/wiki/index.php/diskrete_strukturen_-_winter_15

Mehr

Vorlesung Diskrete Strukturen Gruppe und Ring

Vorlesung Diskrete Strukturen Gruppe und Ring Vorlesung Diskrete Strukturen Gruppe und Ring Bernhard Ganter Institut für Algebra TU Dresden D-01062 Dresden bernhard.ganter@tu-dresden.de WS 2009/10 1 Bernhard Ganter, TU Dresden Modul Einführung in

Mehr

2.4 Diskussion und Literaturempfehlungen Lessons Learned A ufgaben Literatur... 62

2.4 Diskussion und Literaturempfehlungen Lessons Learned A ufgaben Literatur... 62 Inhaltsverzeichnis 1 Einführung in die Kryptografie und Datensicherheit... 1 1.1 Überblick über die Kryptografie (und dieses Buch)... 1 1.2 Symmetrische Kryptografie... 4 1.2.1 Grundlagen... 4 1.2.2 Die

Mehr

Grundlagen der Arithmetik und Zahlentheorie

Grundlagen der Arithmetik und Zahlentheorie Grundlagen der Arithmetik und Zahlentheorie 1.0 Teilbarkeit In diesem Abschnitt werden wir einerseits die ganzen Zahlen an sich studieren und dabei besonders wichtige Zahlen, die Primzahlen, entsprechend

Mehr

Proseminar Datensicherheit & Versicherungsmathematik RSA-Verfahren

Proseminar Datensicherheit & Versicherungsmathematik RSA-Verfahren Proseminar Datensicherheit & Versicherungsmathematik RSA-Verfahren Herwig Stütz 2007-11-23 1 Inhaltsverzeichnis 1 Einführung 2 2 Das RSA-Verfahren 2 2.1 Schlüsselerzeugung.................................

Mehr

Kryptologie. Bernd Borchert. Univ. Tübingen SS Vorlesung. Teil 12. Elliptische Kurven

Kryptologie. Bernd Borchert. Univ. Tübingen SS Vorlesung. Teil 12. Elliptische Kurven Kryptologie Bernd Borchert Univ. Tübingen SS 2017 Vorlesung Teil 12 Elliptische Kurven Elliptische Kurven im Reellen Punktmengen in R 2 Elliptische Kurve y 2 = x 3 + ax + b Kreis y 2 = b - x 2 Ellipse

Mehr

Bsp: Die kleinsten Carmichael-Zahlen sind 561, 1105, 1729, Es gibt unendlich viele Carmichael-Zahlen (Beweis 1994).

Bsp: Die kleinsten Carmichael-Zahlen sind 561, 1105, 1729, Es gibt unendlich viele Carmichael-Zahlen (Beweis 1994). Primzahltest Wir wollen testen, ob eine gegebene Zahl n eine Primzahl ist Effizienter Algorithmus zum Faktorisieren ist unbekannt Kontraposition des Kleinen Satzes von Fermat liefert: Falls a n 1 1 mod

Mehr

6. Lösungsblatt

6. Lösungsblatt TECHNISCHE UNIVERSITÄT DARMSTADT FACHGEBIET THEORETISCHE INFORMATIK PROF. JOHANNES BUCHMANN DR. JULIANE KRÄMER Einführung in die Kryptographie WS 205/ 206 6. Lösungsblatt 9..205 Ankündigung Es besteht

Mehr

Primzahlen. Herbert Koch Mathematisches Institut Universität Bonn Die Primfaktorzerlegung. a = st

Primzahlen. Herbert Koch Mathematisches Institut Universität Bonn Die Primfaktorzerlegung. a = st Primzahlen Herbert Koch Mathematisches Institut Universität Bonn 12.08.2010 1 Die Primfaktorzerlegung Wir kennen die natürlichen Zahlen N = 1, 2,..., die ganzen Zahlen Z, die rationalen Zahlen (Brüche

Mehr

Übung GSS Blatt 6. SVS Sicherheit in Verteilten Systemen

Übung GSS Blatt 6. SVS Sicherheit in Verteilten Systemen Übung GSS Blatt 6 SVS Sicherheit in Verteilten Systemen 1 Einladung zum SVS-Sommerfest SVS-Sommerfest am 12.07.16 ab 17 Uhr Ihr seid eingeladen! :-) Es gibt Thüringer Bratwürste im Brötchen oder Grillkäse

Mehr

Public-Key Kryptographie mit dem RSA Schema. Torsten Büchner

Public-Key Kryptographie mit dem RSA Schema. Torsten Büchner Public-Key Kryptographie mit dem RSA Schema Torsten Büchner 7.12.2004 1.Einleitung 1. symmetrische-, asymmetrische Verschlüsselung 2. RSA als asymmetrisches Verfahren 2.Definition von Begriffen 1. Einwegfunktionen

Mehr

1.Vortrag: Rechnen mit Restklassen/modulo einer Zahl

1.Vortrag: Rechnen mit Restklassen/modulo einer Zahl Westfälische Wilhelms-Universität Münster Mathematik Sommersemester 2017 Seminar: Verschlüsselungs- und Codierungstheorie Leitung: Thomas Timmermann 1.Vortrag: Rechnen mit Restklassen/modulo einer Zahl

Mehr

Erweiterter Euklidischer Algorithmus

Erweiterter Euklidischer Algorithmus Erweiterter Euklidischer Algorithmus Algorithmus ERWEITERTER EUKLIDISCHER ALG. (EEA) EINGABE: a, b N 1 If (b = 0) then return (a, 1, 0); 2 (d, x, y) EEA(b, a mod b); 3 (d, x, y) (d, y, x a b y); AUSGABE:

Mehr

Kryptographie und IT-Sicherheit

Kryptographie und IT-Sicherheit Joachim Swoboda Stephan Spitz Michael Pramateftakis Kryptographie und IT-Sicherheit Grundlagen und Anwendungen Mit 115 Abbildungen STUDIUM VIEWEG+ TEUBNER 1 Ziele und Wege der Kryptographie 1 1.1 Historische

Mehr

Algorithmentheorie Randomisierung

Algorithmentheorie Randomisierung Algorithmentheorie 03 - Randomisierung Prof. Dr. S. Albers Randomisierung Klassen von randomisierten Algorithmen Randomisierter Quicksort Randomisierter Primzahltest Kryptographie 2 1. Klassen von randomisierten

Mehr

Kryptographie und Komplexität

Kryptographie und Komplexität Kryptographie und Komplexität Einheit 4 Public Key Kryptographie mit RSA 1. Ver- und Entschlüsselung 2. Schlüsselerzeugung und Primzahltests 3. Angriffe auf das RSA Verfahren 4. Sicherheit von RSA Probleme

Mehr

Interim. Kapitel Einige formale Definitionen

Interim. Kapitel Einige formale Definitionen Kapitel 1 Interim Da ich keine Infos über Titel und Nummerierungen anderer Kapitel dieser Vorlesung habe, nenne ich dies einfach mal Kapitel 1. 17.11.04 1.1 Einige formale Definitionen Wir rekapitulieren

Mehr

Das RSA Kryptosystem

Das RSA Kryptosystem Kryptografie Grundlagen RSA Institut für Mathematik Technische Universität Berlin Kryptografie Grundlagen RSA mit geheimem mit öffentlichem Schlüssel Realisierung Kryptografie mit geheimem Schlüssel Alice

Mehr

Die (Un-)Sicherheit von DES

Die (Un-)Sicherheit von DES Die (Un-)Sicherheit von DES Sicherheit von DES: Bester praktischer Angriff ist noch immer die Brute-Force Suche. Die folgende Tabelle gibt eine Übersicht über DES Kryptanalysen. Jahr Projekt Zeit 1997

Mehr

Einführung in die Kryptographie

Einführung in die Kryptographie Springer-Lehrbuch Einführung in die Kryptographie Bearbeitet von Johannes Buchmann 5. Aufl. 2010. Taschenbuch. xxiv, 280 S. Paperback ISBN 978 3 642 11185 3 Format (B x L): 15,5 x 23,5 cm Gewicht: 462

Mehr

Seminar zum Thema Kryptographie

Seminar zum Thema Kryptographie Seminar zum Thema Kryptographie Michael Hampton 11. Mai 2017 Inhaltsverzeichnis 1 Einleitung 3 1.1 Konventionen.................................. 3 1.2 Wiederholung.................................. 3

Mehr

Beispiel für simultane Kongruenz

Beispiel für simultane Kongruenz Beispiel für simultane Kongruenz Jetzt wollen wir das Lemma der letzten Einheit anwenden. Wenn man eine Zahl sucht, die kongruent zu y modulo m und kongruent zu z modulo n ist, so nehme man zam + ybn wobei

Mehr

EINIGE GRUNDLAGEN DER KRYPTOGRAPHIE

EINIGE GRUNDLAGEN DER KRYPTOGRAPHIE EINIGE GRUNDLAGEN DER KRYPTOGRAPHIE Steffen Reith reith@thi.uni-hannover.de 22. April 2005 Download: http://www.thi.uni-hannover.de/lehre/ss05/kry/folien/einleitung.pdf WAS IST KRYPTOGRAPHIE? Kryptographie

Mehr

Kryptographische Protokolle

Kryptographische Protokolle Kryptographische Protokolle Lerneinheit 4: Schlüsselvereinbarung Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester 2017 8.5.2017 Einleitung Einleitung In dieser Lerneinheit

Mehr

10.4 Sichere Blockverschlüsselung

10.4 Sichere Blockverschlüsselung 10.4 Sichere Blockverschlüsselung Verschlüsselung im Rechner: Stromverschlüsselung (stream cipher): kleine Klartexteinheiten (Bytes, Bits) werden polyalphabetisch verschlüsselt Blockverschlüsselung (block

Mehr

7: Grundlagen der Public-Key-Kryptographie

7: Grundlagen der Public-Key-Kryptographie 7: Grundlagen der Public-Key-Kryptographie 214 7: Public-Key-Kryptographie 7: Grundlagen der Public-Key-Kryptographie Wiederholung: Symmetrische Kryptographie 1 Schlüssel für Sender und Empfänger Benötigt

Mehr