1 Einführung: Was ist Kryptologie

Größe: px
Ab Seite anzeigen:

Download "1 Einführung: Was ist Kryptologie"

Transkript

1 1 Einführung: Was ist Kryptologie Antwort: Die Wissenschaft von den Geheimschriften Seit es Sprache gibt, gibt es vertrauliche Mitteilungen. Worum geht es dabei? Romeo 1. Abhörsicherheit: Chiffrieren Ich liebe dich Julia 2. Integrität: Unversehrtheit und Unveränderbarkeit 3. Authenzität: Gewissheit über den Ursprung 4. Anonymität 1.1 Sichere Übermittlung einer Nachricht 1. Persönlich oder durch einen vertrauenswürdigen Boten ( Der Kurier der Kaiserin ) 2. Existenz verheimlichen, zum Beispiel durch Unsichtbare Tinte (Karl May) Verstecken in größerem Text oder im Bild (Steganographie) 3. Verschlüsseln! Übermittlung über einen an sich unsicheren Kanal, aber so chiffriert, dass niemand Unbefugter sie dechiffrieren kann. Kryptologie war die Domäne des Militärs. Nur dort gab es ausreichend Motivation und vor allem auch (finanzielle) Mittel, um die damaligen Chiffriermaschinen zu entwickeln ( Enigma ). Dies trieb auch die Entwicklung der digitalen Computer an. 1.2 Vorteil der Kryptologie Kryptologie ist Mathematik, und damit kann man Dinge beweisen, zum Beispiel, dass eine Methode eine gewisse Sicherheit bietet (im Idealfall).

2 2 Historisches, Einfaches und Grundlagen 2.1 Terminologie Klartext: a b c d e f... Geheimtext (Kryptogramm): A B C D E F... Chiffrieren: Klartext Geheimtext Dechiffrieren: Geheimtext Klartext Alphabet: Zeichenvorrat Buchstaben: {a,..., z} als Zahlen: {1,..., 26} oder auch: {0,..., 25} Bits: {0, 1} 64-Bit-Worte: {(a 1,..., a 64 ) a i {0, 1}} 2.2 Die Skytala von Sparta Vor 2500 Jahren benutzten die Spartaner die sogenannte Skytala: Holzstäbe mit bestimmtem Durchmesser. Der Absender einer Botschaft wickelte ein schmales Band aus Pergament spiralförmig darum und schrieb dann der Länge nach die Nachricht darauf. Nur wenn der Empfänger einen Zylinder mit gleichem Umfang hatte, konnte er die Nachricht lesen. Praktisch bedeutet das, dass der Text spaltenweise in einer bestimmten Anzahl von Zeilen aufgeschrieben wird (Transpositionschiffre): 2

3 F H S L R A A O C E M D C C H D S T H H U A T Z Geheimtext: FHSLRAAOCEMDCCHDSTHHUATZ 2.3 Verschiebechiffren: Caesar Julius Caesar benutzte für seine militärische Korrespondenz eine Verschiebechiffre. Man schreibt das Geheimtextalphabet unter das Klartextalphabet, aber um 23 Stellen nach rechts verschoben:[2mm] 2.4 Algorithmus und Schlüssel An diesen einfachen Beispielen kann man die beiden wichtigen Begriffe Algorithmus und Schlüssel erklären. Chiffrieralgorithmus (Maschine, Programm): Methode, wie. Schlüssel: beschreibt wie der Algorithmus verwendet wird. Algorithmus: kann nicht geheim gehalten werden ( Chiffriermaschine ), das heisst, die Sicherheit beruht auf der Geheimhaltung des Schlüssels. Statt der sicheren Übermittlung einer oder mehrerer geheimer Nachrichten ist die sichere Übermittlung und Aufbewahrung des Schlüssels notwendig. Vorteil: der Schlüssel ist kürzer und muss nur einmal übermittelt werden, zum Beispiel irgendwann vorher ( Reitender Bote ). Wichtige Alternative: Public Key Systeme 3

4 2.5 Kryptoanalyse der Caesar-Chiffre Wie kann ich eine verschlüsselte Nachricht knacken? Angenommen, ich kenne den Algorithmus: ich weiss oder vermute, es handelt sich um eine Verschiebechiffre. Methode 1 Systematische Schlüsselsuche (Exhaustive Key Search, Brute Force) Führt immer zum Erfolg, kann aber sehr lange dauern. Ich probiere alle Möglichekeiten durch (bei Verschiebechiffre maximal 26): bei k verschiedenen möglichen Schlüsseln maximal k Versuche, im Durchschnitt k/2. Methode 2 Statistische Analyse: Häufigkeit der Buchstaben Buchstabe Häufigkeit Buchstabe Häufigkeit a 6,51% n 9,78% b 1,89% o 2,51% c 3.06% p 0,79% d 5,08% q 0,02% e 17,40% r 7,00% f 1,66% s 7,27% g 3,01% t 6,15% h 4,76% u 4,35% i 7,55% v 0,67% j 0,27% w 1,89% k 1,21% x 0,03% l 3,44% y 0,04% m 2,53% z 1,13% Häufigkeiten der Buchstaben der deutschen Sprache Gruppe Gesamthäufigkeit e,n 27,18% i,s,r,a,t 34,48% d,h,u,l,c,g,m,o,b,w,f,k,z 36,52% p,v,j,y,x,q 1,82 % Buchstabengruppen 2.6 Monoalphabetische Chiffrierungen Eine Chiffrierung heisst monoalphabetisch, wenn jeder Buchstabe des Alphabets stets zu demselben Geheimtextbuchstaben chiffriert wird. (Beispiel) Jeder monoalphabetischen Chiffre entspricht eine Permutation der Buchstaben des Alphabets und umgekehrt. es gibt also insgesamt 26! davon. 4

5 2.7 Mathematischer Exkurs: Modulare Arithmetik Rechnen modulo 26: wir teilen jede Zahl durch 26 wie in der Grundschule: 1 : 26 = 0 Rest : 26 = 0 Rest : 26 = 1 Rest : 26 = 1 Rest 6 Wir betrachten nur den Rest und sagen: 32 und 6 sind äquivalent modulo 26. Wir schreiben: 32 6 (mod 26) 26 0 (mod 26) Allgemein: p q (mod 26) p q ist durch 26 teilbar Dies teilt alle ganzen Zahlen in 26 verschiedene Klassen ein. Addieren, Subtrahieren und Multiplizieren kann ich wie gehabt: (32 5) = (mod 26) 32 6 (mod 26), und (6 5) = 30 4 (mod 26). oder anders ausgedrückt: aus p q (mod 26) folgt: p + n q + n (mod 26) p n q n (mod 26) p n q n (mod 26) Diese Grundrechenarten gelten also. Division ist nicht immer möglich! Warum ist das so? Wenn wir die Zahl p durch die Zahl s dividieren wollen, dann suchen wir eine Zahl s 1 (das Inverse von s), für die gilt: s s 1 = 1. Haben wir die gefunden, dann können wir berechnen: p/s = p s 1 In unserer modularen Welt heisst das, wir suchen das Inverse modulo 26, es muss also gelten: s s 1 1 (mod 26). 5

6 Dann suchen wir mal (mod 26) 2? 1 (mod 26) (mod 26) 4? 1 (mod 26)... 12? 1 (mod 26) 13? 1 (mod 26) 14? 1 (mod 26) (mod 26)... Überall, wo das? steht, ist es nicht möglich, eine passende Zahl zu finden. Genauer gesagt, für Zahlen, die durch 2 oder 13 teilbar sind, gibt es kein Inverses. AHA! 2 oder 13 sind auch die Teiler von 26. Dies gilt allgemein: zu einer Zahl s gibt es nur dann ein Inverses modulo n, wenn s und n teilerfremd sind, das heisst, wenn sie keine gemeinsamen Teiler haben (außer 1). Unter anderem deswegen rechnet man bei der modularen Arithmetik meist modulo einer Primzahl, denn Primzahlen haben überhaupt keine Teiler (außer 1 natürlich). Damit lässt sich immer das Inverse (modulo der jeweiligen Primzahl) finden, und Division ist immer eindeutig möglich. (Mathematisch spricht man von einem Körper.) 2.8 Tauschchiffren Wir ordnen jedem Buchstaben eine Zahl zu: a 1 b 2... y 25 z 0 Eine Verschiebechiffre entsteht durch Addition einer Zahl t modulo 26 6

7 (nämlich wenn ich um t Stellen verschiebe). Beispiel: Caesar-Chiffre mit Verschiebung um drei Buchstaben: t = 3. a 1, b 2, v 22, w 23, x 24, y 25, z 0, mod 26 = 4 D mod 26 = 5 E mod 26 = 25 Y mod 26 = 0 Z mod 26 = 1 A mod 26 = 2 B mod 26 = 3 C Beim Dechiffrieren ziehe ich t ab (modulo 26) oder addiere 26 t = 23 (modulo 26): A 1, B 2, mod 26 = 24 x mod 26 = 25 y C 3, mod 26 = 0 z D 4, mod 26 = 1 a Y 25, Z 0, mod 26 = 22 v mod 26 = 23 w Die Methode ist also immer: Übersetze jeden Buchstaben a,...,z in eine Zahl zwischen 0 und 25; Wende eine Rechenvorschrift an (modulo 26); Übersetze die Zahlen zurück in Buchstaben. Mit dieser Methode ergibt jede Rechenvorschrift eine monoalphabetische Chiffre. Wenn ich addieren kann, kann ich auch multiplizieren, zum Beispiel 7

8 mit 2 (modulo 26): a 1, b 2, c 3, 1 2 mod 26 = 2 B 2 2 mod 26 = 4 D 3 2 mod 26 = 6 F... m 13,13 2 mod 26 = 0 Z n 14,14 2 mod 26 = 2 B o 15,15 2 mod 26 = 4 D z 0, mod 26 = 0 Z Dies ist nicht eindeutig (weil 26 durch 2 teilbar ist). Noch schlimmer ist es bei Multiplikation mit 13: a 1,1 13 mod 26 = 13 M b 2,2 13 mod 26 = 0 Z c 3,3 13 mod 26 = 13 M d 3,4 13 mod 26 = 0... Z Dann probieren wir doch mal die Multiplikation mit 3: a 1, b 2, c 3, i 9, 1 3 mod 26 = 3 C 2 3 mod 26 = 6 F 3 3 mod 26 = 9 I mod 26 = 1 A j 10,10 3 mod 26 = 4 D z 0, mod 26 = 0 Z Es geht also bei Multiplikation mit Zahlen, die teilerfremd zu 26 sind: 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23, 25 Es gibt also 12 dieser Multiplikativen Chiffren. Durch Kombination mit der Verschiebechiffre ergibt sich die Tauschchiffre: multipliziere mit s, addiere t. Tauschchiffre: 8

9 Schlüssel Ein paar (s, t) von natürlichen Zahlen < 26, s teilerfremd zu 26. Chiffre Sei s eine Zahl, für die gilt: s s 1 (mod 26), das heisst s 1/s (mod 26). x x s + t mod 26 y (y t) s mod 26 Es gibt = 312 Tauschchiffren (auch affine Chiffren genannt). 2.9 Schlüsselwortchiffre Zum Abschluss dieses Abschnitts eine andere Methode, eine monoalphabetische Chiffre zu erzeugen. Schlüssel: Ein Wort. Doppelt vorkommende Buchstaben werden beim zweiten oder späteren Auftreten entfernt. Das Wort wird als Anfang des Geheimtextalphabets benutzt, dieses wird mit dem restlichen Buchstaben des Alphabets aufgefüllt. Chiffrieren/Dechiffrieren: wie gehabt Kryptoanalyse Prinzip von Kerkhoffs: Die Sicherheit eines Kryptosystem darf nicht von der Geheimhaltung des Algorithmus abhängen; sie beruht nur auf der Geheimhaltung des Schlüssels. Known ciphertext attack Der Angreifer kennt (oder hört ab) ein Stück Geheimtext. Davon kann man immer ausgehen. Known plaintext attack Der Angreifer kennt ein Stück Klartext und das dazugehörige Stück Geheimtext. Kommt durchaus vor. Chosen plaintext attack Der Angreifer hat Zugang zum Verschlüsselungsalgorithmus und kann selbst gewählte Stücke Klartext verschlüsseln, zum Beispiel, wenn er Zugang zu der Verschlüsselungsmaschine hat. 9

10 Das Knacken einer monoalphabetischen Chiffrierung einer natürlichen Sprache (26 Buchstaben) einfach durch die Attacke mit bekanntem Geheimtext, und zwar mittels statistischer Analyse der Buchstabenhäufigkeit und der Bigrammhäufigkeit. Bigramm Häufigkeit Bigramm Häufigkeit en 3,88% nd 1,99% er 3,75% ei 1,88% ch 2,75% ie 1,79% te 2,66% in 1,67% de 2,00% es 1,52% Die häufigsten Bigramme im Deutschen 2.11 Verschleierung der Häufigkeiten Kann ich die Häufigkeitsverteilung der Buchstaben vielleicht verstecken? Ja: Man sorgt dafür, dass die Geheimtextzeichen alle mit der gleichen Häufigkeit auftreten. Bei der homophonen Chiffre werden einem Klartextzeichen mehrere Geheimtextzeichen zugeordnet, und zwar kommt jedes Geheimtextzeichen dabei nur einmal vor (sonst wäre die Dechiffrierung nicht eindeutig), und wird die Verteilung so gewählt, dass alle Geheimtextzeichen gleich häufig vorkommen. Beispiel: den Buchstaben a,...,z werden die Zahlen 00,...,99 zugeordnet, und zwar nach folgender Vorschrift: 10

11 Buchstabe Zugeordnete Zeichen Buchstabe Zugeordnete Zeichen a n b o c p 31 d q 25 e r f s g t h u i v 37 j 57 w 22 k 23 x 44 l y 48 m z 64 Beim Chiffrieren wählt man zufällig eines der zugehörigen Zeichen aus Moderne Monoalphabetische Chiffrierungen DES Alphabet: 64-bit Strings, Schlüssel: 56-bit Strings. (1999: Vollständige Schlüsselsuche in 22 Stunden!). 3DES DES mit k 1, dann mit k 1 2, dann wieder mit k 1. Der Schlüssel ist also 112 bit lang. AES Schlüssel 128/192/256 bit Die Vigenère-Chiffre Blaise der Vigenère ( ) machte die Vigenère-Verschlüsselung im Jahre 1586 bekannt. Man benutzt verschiedene monoalphabetische Chiffrierungen im Wechsel. Die Idee ist älter, ähnliche Chiffrierungen wurden schon von Anderen im 16. Jhd. veröffentlicht. Es handelt sich um eine periodische polyalphabetische Chiffrierung. 11

12 Bei einer polyalphabetischen Chiffrierung wird ein Klartextbuchstabe nicht jedesmal zu demselben Geheimtextbuchstaben verschlüsselt, aber natürlich nicht willkürlich. Die Dechiffrierung muss eindeutig sein. Warum die doch schon angestaubte Vigenère-Chiffre? Prototyp für viele noch heute benutzte Algorithmen (WordPerfect) Wichtig als Beispiel Kryptoanalyse: Kasiski-Test und Friedman-Test 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 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z B C D E F G H I J K L M N O P Q R S T U V W X Y Z A C D E F G H I J K L M N O P Q R S T U V W X Y Z A B D E F G H I J K L M N O P Q R S T U V W X Y Z A B C E F G H I J K L M N O P Q R S T U V W X Y Z A B C D F G H I J K L M N O P Q R S T U V W X Y Z A B C D E G 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 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 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 H J K L M N O P Q R S T U V W X Y Z A B C D E F G H I K L M N O P Q R S T U V W X Y Z A B C D E F G H I J L M N O P Q R S T U V W X Y Z A B C D E F G H I J K M N O P Q R S T U V W X Y Z A B C D E F G H I J K L N O P Q R S T U V W X Y Z A B C D E F G H I J K L M O P Q R S T U V W X Y Z A B C D E F G H I J K L M N P Q R S T U V W X Y Z A B C D E F G H I J K L M N O Q R S T U V W X Y Z A B C D E F G H I J K L M N O P R S T U V W X Y Z A B C D E F G H I J K L M N O P Q S T U V W X Y Z A B C D E F G H I J K L M N O P Q R T U V W X Y Z A B C D E F G H I J K L M N O P Q R S U V W X Y Z A B C D E F G H I J K L M N O P Q R S T V W X Y Z A B C D E F G H I J K L M N O P Q R S T U W X Y Z A B C D E F G H I J K L M N O P Q R S T U V X Y Z A B C D E F G H I J K L M N O P Q R S T U V W Y Z A B C D E F G H I J K L M N O P Q R S T U V W X Z 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 Klartext: hochschuledarmstadt Schlüsselwort: BLAU BLAUBLAUBLAUBLAUBLA hochschuledarmstadt 12

13 Für jeden Klartextbuchstaben nehmen wir den darüberstehenden Buchstaben des Schlüsselworts. Dieser bestimmt die Zeile, mit der der Klartextbuchstabe verschlüsselt wird. h : B : Zeile die mit B beginnt, Spalte h, ergibt I o : L : ergibt Z c : A : ergibt C h : U : ergibt B usw. Schlüsselwort: BLAUBLAUBLAUBLAUBLA Klartext: hochschuledarmstadt Geheimtext: IZCBTNHOMPDASXSNBOT Nimm den Schlüsselwortbuchstaben, der über dem Geheimtextbuchstaben steht, dann nimm die Zeile die mit diesem Schlüsselwortbuchstaben beginnt. Gehe in dieser Zeile, vom Geheimtextbuchstaben ausgehend nach oben: I : Zeile B, über I steht h, usw. Wenn wir die Buchstaben durch Zahlen ersetzen, ist die Vorschrift noch viel einfacher: Der Geheimtextbuchstabe entsteht durch Addition (modulo 26) des Klartextbuchstabens und des zugehörigen Schlüsselwortbuchstabens. Beispiel: o und L, dies entspricht = 25 Z. Beim Dechiffrieren wird subtrahiert statt addiert Kryptoanalyse der Vigenère-Chiffre Wilhelm Kasiski ( ) erkannte: Es gibt Perioden mit der Länge des Schlüsselwortes. Beispiel: Verschlüsselung des Wortes ein : 13 Schlüsselwort: Klartext: Geheimtext: BLAUBLAUBLAUBLAUBLAU ein..ein..ein..ein.. FTN..PIH..ECO..YJY..

14 Es gibt also nur 4 Möglichkeiten, ein Wort zu verschlüsseln, weil das Schlüsselwort 4 Buchstaben lang ist. Außerdem gilt: Wenn zwei Klartextfolgen einen Abstand haben, der ein Vielfaches der Länge des Schlüsselworts ist, dann sind die zugehörigen Geheimtextfolgen gleich! Man suche Folgen aus gleichen Buchstaben im Geheimtext und bestimme deren Abstand. Dieser ist (vermutlich) ein Vielfaches der Schlüsselwortlänge. William Friedman ( ) entwickelte diesen statistischen Test Frage: Mit welcher Wahrscheinlichkeit besteht ein willkürlich aus dem Klartext herausgegriffenes Buchstabenpaar aus gleichen Buchstaben? Antwort: Koinzidenzindex. Wir nehmen eine beliebige Folge von Buchstaben, Länge n. Dann zählen wir, wie oft die verschiedenen Buchstaben vorkommen: Die Anzahl der a s sei n 1,..., die der z s sei n 26. Daraus folgt, dass die Summe all dieser Zahlen gleich n ist. Frage: Wie groß ist die Wahrscheinlichkeit, dass ein zufällig ausgewähltes Buchstabenpaar aus zwei gleichen Buchstaben besteht? Antwort: der Friedmansche Koinzidenzindex eines bekannten Textes: 26 n i (n i 1) Was nützt uns das? I = i=1 n(n 1) Wenn wir wissen, wie oft die verschiedenen Buchstaben vorkommen, können wir diesen Index statistisch vorausberechnen. 14

15 Sei p i die Wahrscheinlichkeit für Buchstabe i. Dann ist die der Koinzidenzindex: 26 I = Zwei Beispiele: 1. Deutsche Sprache, wir kennen die Wahrscheinlichkeiten. Dann ist laut Tabelle der Buchstabenhäufigkeiten: I = 0, Ein zufälliger Buchstabensalat. Dann sind alle Buchstaben gleich wahrscheinlich, also p i = 1/26, und die Summe ist i=1 i=1 p 2 i 26 ( ) 2 1 I = = ,0385 Allgemein kann man mit den entsprechenden mathematischen Methoden beweisen, dass der Koinzidenzindex um so größer wird, je unregelmäßiger der Text ist. Der Wert 1/26 ist das absolute Minimum. Test für monoalphabetische Chiffre: Wenn der Koinzidenzindex ungefähr 0,0762 ist, dann ist der Text monoalphabetisch verschlüsselt. Test für Vigenère-Chiffre: Wenn der Geheimtext die Länge n hat, und die Länge des Schlüsselwortes h ist, dann ist der Konizidenzindex oder, nach h aufgelöst: I = 0,0377n 0,0385n 0, h(n 1) n 1 h = 0,0377n I(n 1) 0,0385n + 0,0762 Mit diesen Methoden ist jede Vigenère-Chiffre leicht zu knacken: Durch diese Tests kennen wir die Länge des Schlüsselwortes. Die Buchstaben, die unter dem gleichen Schlüsselwortbuchstaben stehen, werden durch dieselbe monoalphabetische Chiffrierung verschlüsselt. 15

16 Also schaue ich mir alle Geheimtextbuchstaben aus dieser Gruppe an und bestimme den häufigsten, der dann dem Klartextbuchstaben e entspricht. Das mache ich für alle Buchstaben des Schlüsselwortes, fertig! Erster Ausweg ich nehme ein sehr langes Schlüsselwort, zum Beispiel den Text eines Buches. Problem: Da das Schlüsselwort aus Sätzen der deutschen Sprache besteht, lassen sich wieder statistische Methoden auf den Geheimtext anwenden (Friedman). Zweiter Ausweg ich nehme ein Schlüsselwort, das wieder sehr, sehr lang ist, und aus zufällig gewürfelten Buchstaben besteht (Buchstabenwurm). Ein solches System ist beweisbar sicher (perfekte Sicherheit). 3 Ein bischen Formalismus: Chiffriersysteme 3.1 Chiffriersysteme Bisher Sender und Empfänger vereinbaren einen Schlüssel, verschlüsseln damit einen Klartext. Das ist unrealistisch. Chiffriersysteme Menge von Klartexten, Geheimtexten, Schlüsseln Wir haben also immer: M Menge aller Klartexte K Menge aller Schlüssel C Menge aller Geheimtexte Wir bezeichnen mit f den Verschlüsselungsalgorithmus; die Spezialisierung auf Schlüssel k mit f k. Die Abbildungen von M in C nennen wir Transformationen; die Menge aller Transformationen F. Wichtige Eigenschaften der f k : Umkehrbarkeit, das heisst, es gibt die inverse Transformation f 1 k mit f 1 k (f k(m)) = m, m M In Worten: zu jeder Verschlüsselung muss es eine passende Entschlüsselung geben. Beispiele: 16

17 Klartexte: Alle Bücher in der Bibliothek der H. Darmstadt Chiffrierungen: Alle 312 affinen Chiffrierungen Geheimtexte: alle, die sich aus Anwendung aller 312 Chiffrierungen auf alle Bücher ergeben Klartexte: alle lateinischen Ausdrücke in allen Asterix-Bänden, Chiffrierungen alle 26 Caesar-Chiffrierungen und die dazugehörigen Geheimtexte. Ein (symmetrisches) Chiffriersystem S besteht aus einer Menge M von Klartexten, einer endlichen Menge C von Geheimtexten und einer Menge F von umkehrbaren Transformationen von M in C. Bemerkungen: Verschiedene f können für denselben Klartext den gleichen Geheimtext ergeben. Aus der Umkehrbarkeit folgt, dass die Menge M höchstens genauso viele Elemente enthalten kann wie C: M C. 3.2 Sicherheit eines Chiffriersystems Was ist Sicherheit? Was ist perfekte Sicherheit? Perfekte Sicherheit: Angreifer hat keine Chance, aus der Definition eines Chiffriersystems etwas über das Chiffriersystem zu lernen, das heisst Wahrscheinlichkeit Null. Sei µ ein Klartext, p(µ) die Wahrscheinlichkeit, dass dieser Klartext vorkommt. Beispiele: Klartexte sind Buchstaben des Textes eines deutschen Buches: die Häufigkeiten p(µ) sind die Buchstabenhäufigkeiten der deutschen Sprache. Klartexte sind Buchstabenpaare der Texte eines deutschen Buches: die p(µ) sind die Bigrammhäufigkeitender deutschen Sprache. Die p(µ) heissen a-priori-wahrscheinlichkeiten oder theoretische Wahrscheinlichkeiten. Ein Angreifer fängt einen Geheimtext γ ab. 17

18 Er kann (prinzipiell) alle Klartexte und alle möglichen Verschlüsselungen durchgehen und analysieren, wie hoch die Wahrscheinlichkeit p γ (µ) ist, dass ein bestimmter Geheimtext γ von einem bestimmten Klartext µ kommt. Die p γ (µ) heissen beobachtete oder a-posteriori-wahrscheinlichkeiten. Beispiele: Die Klartexte M seien die Buchstaben des Textes eines deutschen Buches, die Chiffierungen alle 26 Verschiebechiffren. Jeder Geheimtextbuchstabe hat die gleiche Wahrscheinlichkeit, von einem bestimmten Klartextbuchstaben herzurühren, also ist für jedes γ: p γ (µ) = p(µ) für alle µ. Die Klartexte seien die ersten 100 Buchstaben einer jeden Seite des ersten Bandes des großen Brockhaus, M = Anzahl der Seiten des ersten Bandes. Chiffierungen alle 26 Verschiebechiffren. Für jeden Klartext ist seine Wahrscheinlichkeit gleich 1/ M. Jeder Geheimtext kann entweder aus einem dieser M Klartexte kommen, nämlich, wenn die Buchstabenveteilung der einer der Seiten entspricht, oder nicht. p γ (µ) ist entweder 0 oder 1. Wenn für ein gewisses µ gilt: p γ (µ) > p(µ), dann kommt γ mit hoher Wahrscheinlichkeit vom Klartext µ her. Ist umgekehrt p γ (µ) < p(µ), so kommt γ mit hoher Wahrscheinlichkeit nicht von µ. In beiden Fällen hat der Angreifer etwas gelernt. Definition: Ein Chiffriersystem S bietet perfekte Sicherheit, wenn für jeden Geheimtext γ gilt: p γ (µ) = p(µ) für alle Klartexte µ. (A-priori- gleich A-posteriori-Wahrscheinlichkeiten) Daraus folgt: Verschiebechiffren sind perfekt, wenn sie nur einen Buchstaben verschlüsseln! Kriterien für perfekte Systeme: 18

19 1. Kriterium: In einem perfekten System S kann jeder Klartext auf jeden Geheimtext abgebildet werden. Begründung: sonst wären manche der p γ (µ) = Kriterium: In einem perfekten System S gilt: F C M. Begründung: Damit ein beliebiger Klartext µ in alle möglichen Geheimtexte überführt werden kann, braucht man mindestens soviele Transformationen wie mögliche Geheimtexte. 3. Kriterium: Sei S ein System mit F = C = M. Ferner gelte: Es gibt zu jedem Klartext µ und zu jedem Geheimtext γ genau eine Transformation, die µ in γ überführt. Dann ist S perfekt! 3.3 Das One-Time Pad, ein perfektes System Wir betrachten folgendes Chiffriersystem: Klartexte: alle Buchstabenfolgen der Länge n, a 1... a n. Schlüssel: alle Buchstabenfolgen der Länge n, k 1... k n. Geheimtext: a 1 k 1... a n k n. : bedeutet Addition gemäß Verschiebechiffre (Caesar). a 1... a n a 1 k 1... a n k n k 1... k n Vigenère-Chiffre mit Schlüsselwort k 1... k n. Es gilt die erste Voraussetzung des 3. Kriteriums, denn: F = C = M. Die zweite Voraussetzung kann buchstabenweise überprüft werden. Also ist dieses System perfekt. Erfunden wurde dieses One-Time-Pad 1917 von Gilbert S. Vernam ( ). (One-time pad = Abreissblock!) Heutzutage nimmt man keine Buchstaben, sondern einzelne Bits. 19

20 Die Buchstaben a i und k i sind also aus dem Alphabet (0, 1). Als Verküpfung nimmt man die binäre Addition ohne Übertrag (XOR, exclusive-or): 0 0 = 0, 1 0 = 1, 0 1 = 1, 1 1 = 0. Wichtig Alle möglichen Schlüssel müssen gleich wahrscheinlich sein, deswegen werden die Bits zufällig erzeugt. Problem Übermittlung der Schlüssel. Lösung Erzeugung der Schlüsselbits als pseudozufällige Folge von Bits durch einen Algorithmus. 4 Block- und Stromchiffren 4.1 Was sind Blockchiffren? Einfache Definition: Eine Blockchiffre verschlüsselt immer ganze Wörter, die alle gleich lang sind, also Folgen der Länge n von Buchstaben eines Alphabets. Präzise Definition: Eine Blockchiffre hat als Menge der Klartexte und als Menge der Geheimtexte die Menge aller Wörter der Länge n über einem Alphabet. Beispiel: DES. Alphabet ist die Menge der Bits (0, 1), Länge ist ECB-Modus (Electronic Code Book) ECB: Der Klartext wird in Blöcke der Länge n (64) aufgeteilt. Ist der letzte Block zu kurz wird er mit zufälligen Zeichen aufgefüllt. Jeder Block wird mit einer gegebenen Verschlüsselungsfunktion f k (mit einem Schlüssel k) verschlüsselt. Sei K i der i-te Klartextblock, G i der i-te Geheimtextblock, dann gilt: G i = f k (K i ) K i = f k 1(G i ) 20

21 K i 1 K i K i f k f k f k G i 1 G i G i Probleme: Für einen gegebenen Schlüssel wird derselbe Klartext immer zu demselben Geheimtext kodiert. Der Angreifer kann Teile der Nachricht nochmal senden (Block Replay). 4.3 CBC-Modus (Cipher Block Chaining) CBC: Vor dem Chiffrieren eines Blockes wird dieser mit dem vorhergehenden Geheimtextblock verküpft, üblicherweise mit bitweisem XOR. Zusätzlich wird am Anfang ein zufälliger Block eingefügt (IV, Initialization Vector). Sei K i der i-te Klartextblock, G i der i-te Geheimtextblock, dann gilt: G i = f k (K i G i 1 ) K i = G i 1 f k 1(G i ) Dadurch hängt jeder Geheimtextblock von allen vorhergehenden Blöcken ab K i 1 K i K i f k f k f k G i 1 G i G i

22 Probleme: Anfügen von Blocks durch Angreifer Modifikation von Blöcken durch Angreifer Sehr lange Nachrichten haben immer noch Muster 4.4 CFB-Modus (Cipher Feedback Mode) CFB: Das Ergebnis der Chiffrierung wird mit dem Klartext verknüpft und ergibt so den Geheimtextblock. Auch hier wird ein IV (G 0 ) benötigt: G i = f k (G i 1 ) K i K i = G i f k 1(G i 1 ) K i 1 K i K i f k f k f k G i 1 G i G i OFB-Modus (Output Feedback Mode) CFB: Derselbe Block wird mehrfach verschlüsselt, das Ergbnis mit dem Klartext verknüpft (internal Feedback). Auch hier wird ein IV (s 0 ) benötigt: s i = f k (s i 1 ) G i = s i K i K i = G i s i 22

23 K i 1 K i K i f k f k f k s i 1 s i s i G i 1 G i G i Stromchiffren Eine Stromchiffre codiert den Klartext zum Geheimtext Bit für Bit. Dazu wird ein sogenannter Schlüsselstrom erzeugt: eine Folge von Bits. Zur Sicherheit hängt der Schlüsselstrom vom einem Schlüssel ab. Blockchiffren können als Stromchiffren verwendet werden. Da die zu verschlüsselnden Texte kürzer sind als ein Block, müssen zusätzliche Verfahren angewandt werden. Schieberegister Beispiel: CFB wird benutzt, um ein die Daten byteweise zu kodieren (8-bit CFB). Die verwendete Blockchiffre arbeitet auf 64-bit-Blöcken. (Man f könnte auch k f 1-bit CFB benutzen, um bitweise zu kodieren, k allerdings muss dann für jedes Bit ein 64-bit-Block chiffriert werden.) Byte ganz links s i Byte ganz links Schieberegister s i k i g i g i k i Verschlüsselung 8-bit CFB Entschlüsselung Analog kann auch 8-Bit OFB zur Verschlüsselung benutzt werden. Allerdings zeigt die Kryptoanalyse, dass man OFB nur benutzen sollte, wenn die Blocklänge gleich der Blocklänge des verwendeten Verschlüsselungsalgorithmus ist. 23

24 Schieberegister f k Schieberegister f k Byte ganz links s i Byte ganz links s i k i g i g i k i Verschlüsselung Entschlüsselung * 8-bit OFB 5 DES und AES 5.1 Geschichte des Data Encryption Standard DES und AES Es gab kaum kryptografische Forschung außerhalb des militärischen Bereichs. NSA hatte Wissen und Erfahrung, aber selbst die Existenz der NSA wurde nicht öffentlich zugegeben. Kleine Firmen stellten kryptografisches Equipment her und verkauften es; verschiedene Produkte waren nicht interoperabel. Niemand wusste, ob das sicher war, weil es keine unabhängige Prüfstelle für die Sicherheit gab. NBS 1972 beginnt ein Programm zum Schutz von Rechnern und Datenkommunikation. Teil dieses Programms: Entwicklung eines einheitlichen kryptografischen Standardalgorithmus. Mai 1973: Öffentlicher Aufruf des NBS für Vorschläge für einen kryptografischen Standardalgorithmus. Hohe Sicherheit, vollständig spezifiziert und einfach zu verstehen, 24

25 Sicherheit des Algorithmus steckt im Schlüssel, nicht in der Geheimhaltung des Algorithmus, für alle Benutzer verfügbar, für viele verschiedene Anwendungen brauchbar, zu vernünftigem Preis in Hardware implementierbar, effizient in der Benutzung, validierbar, exportierbar. Resonanz groß, aber wenig Expertise. Keiner der eingereichten Vorschläge kam in die Nähe der Anforderungen. August 1974: Neuer Aufruf des NBS. Ein vielversprechender Kandidat von IBM, basierend auf einem den frühen 1970ern entwickelten ein Algorithmus namens Lucifer. NBS bat NSA um Hilfe bei der Beurteilung der Sicherheit und der Eignung als amerikanischer Standard. IBM hatte den Algorithmus zum Patent eingereicht, war aber bereit, die Benutzung Allen kostenlos zu erlauben : Veröffentlichung der Details und Aufruf zum Kommentar. Große Resonanz auf die Veröffentlichung: Viele Bedenken wegen der Beteiligung der NSA. Hatte die NSA vielleicht eine Hintertür eingebaut? Warum hatte die NSA die Schlüssellänge von 128 Bit (Lucifer) auf 56 Bit verkürzt? 1976: Zwei Workshops über die Mathematik des Algorithmus und über die Möglichkeit, den Schlüssel länger zu machen. lively. 25

26 : Amerikanischer Standard, der für alle kritische, aber nicht als geheim klassifizierte Regierungskommunikation genutzt werden durfte : Veröffentlichung der offiziellen Beschreibung für DES (FIPS PUB 46). Niemals vorher war ein von der NSA beurteilter Algorithmus veröffentlicht worden. Wahrscheinlich ein Missverständnis zwischen NBS und NSA. Die NSA glaubte, DES sei nur für den Einsatz in Hardware gedacht. Der Standard schrieb eine Implementierung in Hardware vor, enthielt aber genügend Details für das Schreiben der Software. Hätte die NSA das gewusst, hätten sie der Veröffentlichung nie zugestimmt. Der nächste Regierungsstandardalgorithmus Skipjack wurde (bis 1998) geheimgehalten. Weil die Details von DES öffentlich waren, hatte DES einen enormen Antrieb für die Kryptoanalyse (im öffentlichen Bereich). In den folgenden zehn Jahren wurde DES von vielen Organisationen zum kryptografischen Standard gemacht, zum Beispiel von ANSI, der American Bankers Association, ISO, Autralischer Bank-Standard. Als Teil des DES-Standards validiert NIST (Nachfolger von NBS) die Implementierungen des DES. Bis 1994 nur Hardware, weil der Standard Softwareimplementierungen verbot. DES als Standard muss alle fünf Jahre neu evaluiert und bestätigt werden ging das einfach so durch wollte die NSA (durch eine von Ronald Reagan unterzeichnete Direktive mit Vetorecht ausgestattet) nicht wieder zertifizieren. 26

27 Das kam nicht gut, besonders in der Finanzwelt, und so wurde nach längerer Diskussion DES bis 1992 zertifiziert, angeblich zum letzten Mal gab es immer noch keine Alternative. Zwar waren sich alle einig, dass DES nicht mehr den heutigen Anforderungen entsprach, aber der Algorithmus wurde für weitere fünf Jahre zertifiziert. Nach heutigen Standards ist DES nicht gut genug. Im Sommer 1998 konnte eine DES-verschlüsselte Nachricht in 56 Stunden geknackt werden (auf einem speziellen Rechner). Im Januar 1999 dauerte es nur 22 Stunden, mit Hilfe von PCs. Deswegen wurde ein Nachfolger gesucht und in AES gefunden. Ein guter Überblicksartikel ist: Der DES-Algorithmus DES benutzt die zwei grundlegenden Verschlüsselungstechniken, die auf Shannon zurückgehen: Vermischung (confusion) und Verteilung (diffusion). Vermischung verschleiert den Zusammenhang zwischen Klartext und Geheimtext. Dies behindert die Suche nach Redundanzen und statistischen Mustern im Geheimtext. Die einfachste Methode ist Substitution. Verteilung der Redundanz des Klartextes über den Geheimtext. Die einfachste Methode ist Transposition (auch Permutation genannt). Stromchiffren beruhen nur auf Vermischung, Blockchiffren benutzen Vermischung und Verteilung. DES ist eine Blockchiffre, die Blöcke von 64 Bits verschlüsselt, mit einem 56 Bit langen Schlüssel. 27

28 Der Schlüssel wird oft mit Paritätsbit versehen und dann als 64 Bit dargestellt. Einige wenige mögliche Schlüssel sind schwache Schlüssel, die leicht vermieden werden können. Alle Sicherheit beruht auf dem Schlüssel. DES arbeitet in mehreren Iterationen, die alle gleich aufgebaut sind. Dies nennt man eine Runde des Algorithmus. DES hat 16 Runden, jede davon arbeitet in gleicher Weise. Für jede Runde wird ein etwas anderer Rundenschlüssel verwendet. Zu Beginn des Algorithmus steht eine Anfangspermutation (Initial Permutation (IP)) der 64 Bits. Am Ende wird diese Permutation rückgängig gemacht. Diese Permutationen haben so gut wie keine Bedeutung für die Verschlüsselung. Vermutlich sollte damit das Laden des 64 Bit langen Blocks in einen DES-Chip leichter gemacht werden, indem man ein Byte grosse Stücke lädt. Aber: ohne diese Permutationen ist es kein DES. DES teilt die 64 Bit Eingabe in zwei Hälften zu je 32 Bit auf, arbeitet getrennt auf den beiden Teilen und vertauscht sie am Ende jeder Runde. Dies ist ein Beispiel einer Feistel-Chiffre: 1. Eine Rundenfunktion wird auf eine der beiden Hälften angewandt. 2. Das Ergebnis wird mit der anderen Hälfte per XOR verknüpft. 3. Die beiden Hälften werden vertauscht (außer in der letzten Runde). 4. Verschlüsselung und Entschlüsselung sind von der Struktur her identisch. L i = R i 1 R i = L i 1 f(r i 1, K i ) 28

29 K 1 K 2 K 16 I O N P U AP R 0 L 0 f R 1 L 1 f R 2 L 2 R 15 L 15 f R 16 L 16 AP 1 U T P U T T Anfangspermutation (AP) Zunächst wird der 64-Bit DES-Schlüssel auf 56 Bit reduziert, indem in einer Permutation jedes achte Bit weggelassen wird (Paritätsbit) DES: Schlüsselpermutation Dann wird der entstehende Schlüssel in zwei Hälften zu 28 Bit aufgeteilt. dann wird, je nach Runde, für jede der beiden Hälften ein zirkulärer Linksshift um ein oder zwei Bit durchgeführt (ein Bit in Runde 1, 2, 9 und 16). Runde Shift DES: Linkshift der Schlüsselbits Nach dem Shift werden aus den entstandenen 56 Schlüsselbits 48 ausgewählt (Kompressionspermutation) DES: Kompressionspermutation 29

30 Durch den Linksshift wird in jeder Runde eine andere Auswahl der Schlüsselbits verwendet. Jedes Bit wird ungefähr in 14 der 16 Runden benutzt, allerdings nicht alle Bits genau gleich oft. shift 56 Bit Kompressionspermutation 56 Bit shift K i Der fundamentale Block von DES ist eine Substitution, gefolgt von einer Permutation, abhängig von einem Schlüssel. Die Rundenfunktion f besteht aus vier Teilen: Expansionspermutation E, XOR-Verknüpfung mit dem Rundenschlüssel, Ersetzung mit S-Boxen, Permutation (P-Box). Die arithmetischen und logischen Operationen sind so gewählt, dass sie mit der Hardware der 70er leicht zu implementieren waren, gerade auf speziellen Chips. K i R i 1 E S P R i L i 1 L i Die Expansionsfunktion E operiert auf der rechten Hälfte der Daten R i und erweitert die 32 Bits zu 48 Bits. 30

31 Der Hauptzweck ist allerdings, mit einem Bit mehr als eine Substitution zu beeinflussen. Dadurch verteilt sich der Einfluss der Eingabebits schneller über alle Ausgabebits (Lawineneffekt, diffusion) DES: Expansionspermutation Nach dem Verknüpfung mit dem Rundenschlüssel ist ein neues 48 Bit- Muster entstanden. Dies wird durch 32 Bit substituiert, und zwar in 8 Gruppen von 6 Bit zu 4 Bit. Dazu dienen 8 Substitutionsboxen oder S-Boxen, alle verschieden. Die S-Boxen sind der Grund für die Komplexität und Qualität des DES-Algorithmus. Jede S-Box hat sechs Eingabebits b 1,..., b 6 und vier Ausgabebits. Man kann die Bits b 2, b 3, b 4, b 5 als Eingabe und die Bits b 1 und b 6 als Steuerung ansehen. b 2 b 3 b 4 b 5 b 1 b 6 S-Box 31

32 b 2 b 3 b 4 b 5 b 1 b 6 S-Box b 1 b 6 b 2, b 3, b 4, b b 8 b 9 b 10 b 11 b 2 b 12 S-Box b 7 b 12 b 8, b 9, b 10, b b 14 b 15 b 16 b 17 b 13 b 18 S-Box b 13 b 18 b 14, b 15, b 16, b

33 b 20 b 21 b 22 b 23 b 19 b 24 S-Box b 19 b 24 b 20, b 21, b 22, b b 26 b 27 b 28 b 29 b 25 b 30 S-Box b 25 b 30 b 26, b 27, b 28, b b 32 b 33 b 34 b 35 b 31 b 36 S-Box b 31 b 36 b 32, b 33, b 34, b

34 b 38 b 39 b 40 b 41 b 37 b 42 S-Box b 37 b 42 b 38, b 39, b 40, b b 44 b 45 b 46 b 47 b 43 b 48 S-Box b 43 b 48 b 44, b 45, b 46, b Die 32 Bit aus der S-Box-Operation werden in der sogenannten P-Box permutiert. Dies ist wiederum eine reine Permutation, kein Bit geht verloren und keines wird hinzugefügt DES: P-Box Permutation 34

35 L i 1 R i 1 Schlüssel i 1 Shift Shift Expansionperm. Kompressionsperm. S-Box-Subst. P-Box-Perm. L i R i Schlüssel i Rundenfunktion f Man sollte meinen, die Entschlüsselung funktioniere ganz anders. Im Gegenteil! Der Algorithmus ist genau derselbe, nur die Rundenschlüssel müssen in umgekehrter Reihnefolge angewandt werden. Das heisst, statt zirkulärem Linkshift erfolge zirkulärer Rechtsshift, und die Anzahl der Shifts ist in der jeweiligen Runde 0, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, Einige Eigenschaften von DES Komplementarität: bedeutet X das bitweise Komplement von X, so ist DES(m, k) = DES( m, k). Dies halbiert den Aufwand der vollständigen Schlüsselsuche. Es gibt vier schwache Schlüssel, bei denen alle Rundenschlüssel gleich sind. Bei den 6 halbschwachen Schlüsselpaaren gibt es nur zwei verschiedene Rundenschlüssel (je achtmal). 35

36 Ebenso gibt es 48 Schlüssel, aus denen nur vier verschiedene Rundenschlüssel hervorgehen. Dies ist kein Problem, weil es so viele andere mögliche Schlüssel gibt. Die DES-Verschlüsselungen bilden keine Gruppe. Das heisst, doppelte Verschlüsselung ergibt etwas Anderes als einfache. Doppelte DES-Verschlüsselung ist nur unwesentlich sicherer als einfache ( meet-in-the-middle -Angriff). Dreifache DES-Verschlüsselung braucht Angriffsversuche statt DES: Kryptoanalyse 1990 erfanden Eli Biham und Adi Shamir die differentielle Kryptoanalyse. Sie entdeckten eine chosen-plaintext-attacke, die weniger Aufwand benötigt als die vollständige Schüsselsuche. Jede Veränderung, die sie am DES-Algorithmus vornahmen, machte ihn unsicherer. Später gab Don Copperfield (damals IBM) zu, dass den Entwicklern und der NSA diese Technik bekannt war und sie das und die Designkriterien bewusst geheim gehalten hätten. 5.5 Die wirklichen Designkriterien Nachdem die differentielle Kryptoanalyse bekannt geworden war, veröffentlichte Copperfield die Designkriterien für die S-Box- und P-Box-Transformationen: Jede S-Box hat 6 Bits Eingabe und 4 Bits Ausgabe (Designlimit für Chips im Jahre 1974) Kein Outputbit einer S-Box sollte zu ähnlich einer linearen Transformation der Eingabebits sein. Hält man das erste und letzte Eingabebit einer S-Box fest und variiert die anderen 4 Bits, so ergibt sich jeder mögliche 4-Bit-Ausgabekombination genau einmal. 36

37 Wenn sich zwei Eingabemuster einer S-Box um 1 Bit unterscheiden, so müssen mindestens 2 Outputbits unterschiedlich sein. Wenn sich zwei Eingabemuster einer S-Box nur in den mittleren 2 Bits unterscheiden, müssen sich die zugehörigen Outputs um mindesten 2 Bits unterscheiden. Wenn sich zwei Eingabemuster einer S-Box in den ersten beiden Bits unterscheiden und die letzten beiden Bits übereinstimmen, dürfen die zugehörigen Outputs nicht gleich sein. Für eine gegebene 6-Bit-Differenz zweier Eingabemuster dürfen nicht mehr als 8 der 32 Paare zur selben Differenz der Outputs führen. Ein ähnliches Kriterium, aber für drei S-Boxen. Die 4 Ausgabebits jeder S-Box in Runde i werden in der P-Box so verteilt, dass 2 von ihnen die mittleren Bits von S-Boxen in Runde i + 1 beeinflussen und die anderen 2 die Bits am Ende. Die 4 Ausgabebits jeder S-Box beeinflussen 6 verschiedene S-Boxen, es gibt keine 2 Bits, die dieselbe S-Box beeinflussen. Wenn ein Outputbit einer S-Box ein mittleres Bit einer anderen S-Box beeinflusst, dann darf ein Ausgabebit dieser S-Box kein mittleres Bit der ersten S-box beeinflussen. Dies ist heutzutage einfach, damals war es hart. Die Leute bei IBM liessen den Computer monatelang nach passenden Transformationen suchen. Nicht vorhergesehen hatten die DES-Entwickler die Erfindung der Linearen Kryptoanalyse durch Misuru Matsui. Damit kann der Schlüssel aus 2 43 bekannten Klartext/Geheimtextpaaren bestimmt werden. All diese Angriffe sind eher theoretischer Natur. DES wurde gebrochen durch die Geschwindigkeit heutiger Rechner. 5.6 Varianten 3DES (Triple DES) darf (im Gegensatz zu DES) von amerikanischen Regierungsstellen weiter benutzt werden. crypt(3) zur Passwortverschlüsselung auf Unix-Systemen hat eine vom Schlüssel anbhängige Expansionspermutation. 37

38 5.7 AES/Rijndael 2. Januar 1997: NIST kündigt die Suche nach dem Advanced Encryption Standard (AES) an. 12. September 1997: Aufruf an die Öffentlichkeit, Algorithmen einzureichen. Es mussten nicht geheime, öffentlich bekannte Verschlüsselungsalgorithmen sein, die weltweit ohne Lizenzgebühren verfügbar waren. Außerdem musste der Algorithmus eine symmetrische Blockchiffre implementieren, mit Blockgröße 128 Bits, und Schlüssellängen von 128, 192 und 256 Bits. 20. August 1998: (AES1-Konferenz) Fünfzehn Kandidaten wurden bekannt gemacht, und NIST bittet um Kommentare. März 1999: (AES2-Konferenz) Die Ergebnisse werden diskutiert. 15. April 1999: Ende der Phase des öffentlichen Kommentars. NIST wählt fünf Algorithmen für die zweite Phase des Auswahlverfahrens aus: 1. MARS (IBM), 2. RC6 (RSA Laboratories), 3. Rijndael (Joan Daemen, Vincent Rijmen), 4. Serpent (Ross Anderson, Eli Biham, Lars Knudsen), 5. Twofish (Bruce Schneier, John Kelsey, Doug Whiting, David Wagner, Chris Hall, Niels Ferguson) April 2000 (New York): AES3-Konferenz, ein öffentliches Diskussionsforum. 15. Mai 2000: Ende der zweiten Phase. Wichtig: Alle fünf Endrundenkandidaten sind sehr gute Blockchiffren. Im endgültigen Bericht wird dies klar dargestellt: jeder der fünf Kandidaten könnte als AES dienen. Als Auswahlkriterien dienten: Sicherheit Kosten/Aufwand Eigenschaften Resistenz des Algorithmus gegen moderne Kryptoanalyse, 38

39 gute mathematische Grundlagen, Zufälligkeit der Ausgabe, Sicherheit im Vergleich zu den anderen Kandidaten. Lizenzbedingungen, Geschwindigkeit auf verschiedenen Plattformen, Speicherbedarf. Eigenschaften des Algorithmus und der Implementation: Flexibilität: Anwendbarkeit als Stromchiffre oder Hash-Algorithmus, Einfachheit, Eignung zur Implementation in Hard- und Software, 2. Oktober 2000: NIST verkündet die Wahl von Rijndael. 26. November 2001: FIPS (Federal Information Processing Standard): gültig ab 26. Mai 2002: Der Algorithmus darf in Software, Firmware, Hardware, oder jeder Kombination davon implementiert werden. Der Algorithmus muss in Verbindung mit einem geeigneten Modus (CBC,... ) benutzt werden. AES/Rijndael ist eine Blockchiffre mit Blocklänge 128 Bits, die Schlüssellänge ist 128, 192 oder 256 Bits. Der Algorithmus kann auch mit anderen Block- oder Schlüssellängen arbeiten, der AES-Standard erlaubt keine anderen Größen. Bei 128 Bit Schlüssellänge hat der Algorithmus 10 Runden, bei 192 Bit 12 Runden, bei 256 Bit 14 Runden. Im Gegensatz zu DES ist bei AES das Byte die Basis aller Operationen. 39

40 Die Operationen sind in der Sprache der Algebra formuliert. Zum Beispiel die Darstellung eines Bytes: {b 7, b 6, b 5, b 4, b 3, b 2, b 1, b 0 }. Alle Bytes werden als Elemente eines endlichen Körpers GF(2 8 ) interpretiert, unter Verwendung einer Polynomdarstellung: b 7 x 7 + b 6 x 6 + b 5 x 5 + b 4 x 4 + b 3 x 3 + b 2 x 2 + b 1 x + b 0 = 7 b i x i. i=0 Zum Beispiel bedeutet { } das Polynom x 6 +x 5 +x+1. Oder hexadezimal: {63}. Der Standard spezifiziert zunächst, wie die Grundrechenarten in diesem Körper aussehen: Addition erfolgt durch bitweises XOR: { } { } = { }, {57} {83} = {d4}, (x 6 + x 4 + x 2 + x + 1) + (x 7 + x + 1) = x 7 + x 6 + x 4 + x 2. Multiplikation ist definiert als Polynommultiplikation modulo dem irreduziblen Polynom m(x) = x 8 + x 4 + x 3 + x + 1. Alle Operationen werden durch diese Basisoperationen ausgedrückt. Intern arbeitet AES mit dem sogenannten State Array, das aus 128 Bit (16 Bytes) besteht, angeordnet als 4 Blöcke von je 4 Bytes: s i,j, 0 i, j 3 Zustandsfeld (State Array) 40

41 Wenn in i, i = 0,..., 15 die 16 Eingabebytes bezeichnet, so werden diese am Anfang in s kopiert via s z,s = in 4z+s Entsprechend wird bei der Ausgabe zurückkopiert: out 4z+s = s z,s Die 4 Bytes in jeder Spalte des Zustandsfeldes bilden Worte à 32 Bit: w 0 = s 0,0 s 1,0 s 2,0 s 3,0 w 2 = s 0,2 s 1,2 s 2,2 s 3,2 w 1 = s 0,1 s 1,1 s 2,1 s 3,1 w 3 = s 0,3 s 1,3 s 2,3 s 3,3 Blockgröße Schlüssellänge (Nb Worte) (Nk Worte) Rundenzahl(Nr) AES AES AES Zu Beginn wird der Block wie oben angegeben in das Zustandsfeld kopiert. Danach wird ein Rundenschlüssel addiert. Nun wird die Rundenfunktion, je nach Schlüssellänge 10, 12, oder 14 Mal auf das Zustandsfeld angewandt, die letzte Rundenfunktion ist etwas anders als die Nr-1 vorhergehenden. Der Endzustand wird wie schon beschrieben in den Ausgabeblock kopiert. Vor der ersten und in jeder Runde wird ein Rundenschlüssel aus Nb=4 Worten verwandt. Insgesamt sind dies Nb*(Nr+1) Worte, die in einem eindimensionalen Feld w vorgehalten werden. Jede Rundenfunktion besteht aus vier Byte-orientierten Transformationen: 41

42 1. Byte-Substitution an Hand einer Tabelle (S-Box), 2. Shift der einzelnen Zeilen des Zustandsfeldes um verschiedene Werte, 3. Mischen der Daten innerhalb der Spalten des Zustandsfeldes, 4. Addition eines Rundenschlüssels zum Zustandsfeld. Cipher(byte in[4*nb],byte out[4*nb],word w[nb*(nr+1)]) begin byte state[4,nb] state = in AddRoundKey(state, w[0, Nb-1]) for round = 1 step 1 to Nr-1 SubBytes(state) ShiftRows(state) MixColumns(state) AddRoundKey(state, w[round*nb, (round+1)*nb-1]) end for SubBytes(state) ShiftRows(state) AddRoundKey(state, w[nr*nb, (Nr+1)*Nb-1]) out = state end Die einzelnen Schritte: SubBytes() ist eine S-Box-Transformation. 42

43 S-Box aus SubBytes() in Hexadezimaldarstellung. ShiftRows() verschiebt die letzten drei Zeilen des Zustandsfeldes zyklisch um jeweils verschieden viele Bits: s z,s = s z,(s+shift(r,nb) mod Nb) für 0 < z < 4 und 0 c < Nb shift(1, 4) = 1; shift(2, 4) = 2; shift(3, 4) = 3. MixColumns() verändert das Zustandsfeld spaltenweise. 43

44 AddRoundKey() verknüpft das Zustandsfeld mit dem Rundenschlüssel per XOR. In Worten: Die ersten Nk Worte des expandierten Schlüssels, stimmen mit dem Schlüssel überein, das heisst, der erste Rundenschlüssel ist der Schlüssel selber. Jedes weitere Wort w[i] ist das Ergebnis einer XOR-Operation des vorhergehenden Wortes w[i-1] mit dem Wort w[i-nk], das Nk Worte vorher steht. Ausnahmen gibt es bei dem jeweils letzten der Nk Worte eines Rundenschlüssels, bei denen eine zusätzliche Transformation angewandt wird. Bei Schlüssellänge 256 Bits und wenn i + 4 ein Vielfaches von Nk ist, wird ausserdem vor dem XOR noch ein SubWord() auf w[i] angewandt. Hier ist der Pseudocode zur Schlüsselexpansion: KeyExpansion(byte key[4*nk], word w[nb*(nr+1)], Nk) begin word temp i = 0 while (i < Nk) w[i] = word(key[4*i], key[4*i+1], key[4*i+2], key[4*i+3]) i = i+1 end while i = Nk while (i < Nb * (Nr+1)] temp = w[i-1] if (i mod Nk = 0) temp = SubWord(RotWord(temp)) xor Rcon[i/Nk] else if (Nk > 6 and i mod Nk = 4) 44

45 temp = SubWord(temp) end if w[i] = w[i-nk] xor temp i = i + 1 end while end Bemerkungen: Nk = 4, 6 und 8 sind alle in dem if zusammengefasst. SubWord() bezeichnet wieder die S-Box-Transformation. RotWord() rotiert ein 32-Bit Wort um 8 Bit nach links. Die Felder Rcon[i] sind 32-Bit-Konstanten. Analog zur Verschlüsselung gibt es bei der Entschlüsselung in jeder Runde wieder die vier Transformationen: InvShiftRows(), InvSubBytes(), InvMixColumns(), AddRoundKey(). Die Rundenschlüssel sind dieselben wie bei der Verschlüsselung, werden aber in umgekehrter Reihenfolge angewandt. InvCipher(byte in[4*nb],byte out[4*nb],word w[nb*(nr+1)]) begin byte state[4,nb] state = in AddRoundKey(state, w[nr*nb, (Nr+1)*Nb-1]) for round = Nr-1 step -1 downto 1 InvShiftRows(state) InvSubBytes(state) AddRoundKey(state, w[round*nb, (round+1)*nb-1]) InvMixColumns(state) end for InvShiftRows(state) InvSubBytes(state) AddRoundKey(state, w[0, Nb-1]) out = state end 45

46 Die Reihenfolge der Transformationen bei der Entschlüsselung ist eine andere als bei der Verschlüsselung. Gewisse Eigenschaften des AES-Algorithmus erlauben die gleiche Reihenfolge der Transformation bei der Entschlüsselung wie bei der Verschüsselung: 1. SubBytes() und ShiftRows() sind vertauschbar (ebenso ihre Umkehrungen InvShiftRows() und InvSubBytes()). 2. MixColumns() und InvMixColumns() sind linear bezüglich der Spalten, das heisst: MixColumns(state XOR RoundKey) = MixColumns(state) XOR MixColumns(RoundKey Damit lässt sich die Entschlüsselung analog schreiben: Cipher(byte in[4*nb],byte out[4*nb],word dw[nb*(nr+1)]) begin byte state[4,nb] state = in AddRoundKey(state, dw[nr*nb, (Nr+1)*Nb-1]) for round = Nr-1 step -11 downto 1 InvSubBytes(state) InvShiftRows(state) InvMixColumns(state) AddRoundKey(state, dw[round*nb, (round+1)*nb-1]) end for InvSubBytes(state) InvShiftRows(state) AddRoundKey(state, w[0, Nb-1]) out = state end 5.8 Sicherheit von AES Wie sicher ist AES? 2002 wurde eine Arbeit veröffentlicht, deren Autoren behaupten, sie könnten (zumindest theoretisch), den Schlüssel berechnen, wenn sie ein oder zwei Klartexte und zugehörige Geheimtexte kennen (known plaintext attack). Die Komplexität ist allerdings immer noch 2 100, im Gegensatz zu Operationen, um alle möglichen Schlüssel durch vollständige Schlüsselsuche zu finden. Das ist noch nicht kritisch. Kritisch wird es erst, wenn diese Methode auch praktisch funktioniert und noch weiter vereinfacht wird. 46

47 5.9 Andere Blockchiffren Die anderen Finalisten des AES-Wettbewerbs wurden schon genannt. MARS Entwickelt von IBM Blocklänge 128 Bit, Schlüssellänge variabel. Muss lizensiert werden, ist aber kostenlos. RC6 Entwickelt von Ron Rivest (RSA Data Security) als Verbesserung von RC5. Blocklänge variabel (32, 64, 128 Bits), Schlüssellänge variabel ( Bits), Anzahl der Runden variabel (0 255). Serpent Entwickelt von Ross Anderson, Eli Biham und Lars Knudsen. Blocklänge 128 Bits, Schlüssellänge variabel ( Bits), 32 Runden. Vollständig public domain Im Linux Kernel implementiert Twofish Entwickelt von Bruce Schneier et al. Blocklänge 128 Bits, Schlüssellänge 128, 192 oder 256 Bits, 16 Runden. Unpatentiert, kein Copyright, kostenlos. Im Linux Kernel implementiert Es gibt noch eine Reihe anderer wichtiger und häufig verwendeter Blockchiffren: RC2 Entwickelt 1987 von Ron Rivest (RSA Data Security) Blocklänge 64 Bit, Schlüssellänge variabel und beliebig. Algorithmus erst 1997 veröffentlicht. Angeblich zwei bis dreimal so schnell wie DES (in Software). Muss lizensiert werden. IDEA (International Data Encryption Algorithm), entwickelt von Media- Crypt. 47

48 Blocklänge 64 Bit, Schlüssellänge 128 Bits. Patentiert, Benutzung kostet Geld (15 Euro je Benutzer). CAST Entwickelt von Carlisle Adams und Stafford Tavares Blocklänge 64 Bit, Schlüssellänge 64 Bits. Patentiert. Neue Algorithmen CAST5 (CAST-128) und CAST6 (CAST-256) sind weltweit ohne Lizenzgebühren zu benutzen, im Linux-Kernel implementiert. Blowfish Entwickelt 1993 von Bruce Schneier. Blocklänge 64 Bit, Schlüssellänge variabel: Bits. Viel schneller als DES und IDEA. Nicht patentiert und lizenzfrei. Im Linux-Kernel implementiert. RC5 Entwickelt 1994 von Ron Rivest (RSA Data Security) Blocklänge variabel (32, 64, 128 Bits), Schlüssellänge variabel ( Bits), Anzahl der Runden variabel (0 255). Patentiert. 6 Authentifikation Bisher haben wir uns mit der Geheimhaltung von Nachrichten beschäftigt, dem Schutz vor einem passiven Angreifer, der Nachrichten abhören möchte. Jetzt geht es um den Schutz vor einem aktiven Angreifer, der Nachrichten aktiv verändern möchte. Es geht insbesondere um drei Punkte: Nachrichtenintegrität: Wie kann der Empfänger einer Nachricht sicher sein, dass die Nachricht nicht verändert wurde? Nachrichtenauthentifikation: Wie kann der Empfänger sicherstellen, dass die Nachricht wirklich vom angeblichen Absender stammt? Benutzerauthentifikation: Wie kann eine Person ihre Identität beweisen? 48

49 6.1 Kryptografische Prüfsummen Damit der Empfänger die Unversehrtheit der Nachricht prüfen kann, braucht er zusätzliche Information. Dieser Informationsblock heißt kryptografische Prüfsumme, kryptografischer Fingerabdruck (Fingerprint), Message Authentication Code (MAC), oder auch parametrisierte Hashfunktion. Beispiel: mit symmetrischer Verschlüsselung Erzeugen eines MAC Aus der Nachricht m berechnet der Sender mit Hilfe eines Algorithmus F unter einem geheimen Schlüssel k den Message Authentication Code: MAC = F k (m). Überprüfen eines MAC Der Empfänger erhält mit der Nachricht m einen Message Authentication Code MAC. Er überprüft, ob MAC = F k (m ). (Sender und Empfänger müssen also vorher einen geheimen Schlüssel vereinbaren.) Bemerkungen: Ein Angreifer kann die Nachricht nicht fälschen, ohne dass der Empfänger es merkt, weil der Angreifer den geheimen Schlüssel k nicht kennt. Der Empfänger kann nur erkennen, ob die Nachricht unversehrt ist; stellt er fest, dass sie verändert wurde, kann er das Original nicht erzeugen. Wie sieht das in der Praxis aus? Als Beispiel verwenden wir DES im CBC-Modus: Beispiel: DES im CBC-Modus Die Nachricht wird in Blöcke der Länge 64 Bit zerlegt (eventuell mit passenden Bits aufgefüllt). Dann werden die Blöcke der Reihe nach mit DES-CBC verschlüsselt und der letzte Block des Geheimtextes wird als MAC verwendet. c 1 = f k (m 1 ), c i = f k (c i 1 m i ) 49

50 ... m 3 m 2 m 1 DES k... c 3 c 2 c 1 Vorteile: MAC hängt von allen Blöcken der Nachricht ab. MAC hat eine feste Länge (immer 64 Bit). Das bringt uns zu der Frage: Wann ist ein MAC-Algorithmus gut? 1. Es sollte praktisch unmöglich sein, zu einem gegebenen MAC eine passende Nachricht zu finden ( Einweg-Hashfunktion ). Praktisch unmöglich bedeutet: mit heutigen Methoden dauert es sehr, sehr lange (Hunderte von Jahren), zum Beispiel, weil alle Nachrichten durchprobiert werden müssen. 2. Es sollte praktisch unmöglich sein, zwei verschiedene Nachrichten m und m zu finden, die zum gleichen MAC führen ( Kollisionsresistenz ). 3. Man unterscheidet: (a) Schwache Kollisionsresistenz: Für ein gegebenes m ist es praktisch unmöglich, ein passendes m zu finden, so dass die MACs übereinstimmen. (b) Starke Kollisionsresistenz: Es ist praktisch unmöglich, irgendein Paar m, m mit demselben MAC zu finden. 6.2 Einweg-Hashfunktionen Kompressionsfunktion bildet Strings fester Länge auf Strings fester, aber geringerer Länge ab. Hashfunktion bildet Strings beliebiger Länge auf Strings fester Länge ab. Einwegfunktion h: Es ist praktisch unmöglich, sie umzukehren, das heißt, für ein gegebenes s ein x zu finden, so dass h(x) = s. 50

51 6.3 Die Geburtstagsattacke Frage: Wie lang muss das Ergebnis einer Einweg-Hashfunktion sein, damit der MAC sinnvoll einsetzbar ist? Alle solchen Einweg-Hashfunktionen sind prinzipiell mit der Geburtstagsattacke angreifbar. Dabei berechnet und speichert der Angreifer möglichst viele Nachrichten und deren Hashwerte. Die Attacke erfolgt durch Vergleich eines gegebenen MAC mit den gespeicherten Werten. Damit lässt sich die Frage so formulieren: Wie lang muss das Ergebnis sein, damit es praktisch unmöglich ist, genügend viele Werte auszurechnen und zu speichern? Antwort: Es muss so viele verschiedene mögliche Hashwerte geben, dass es praktisch unmöglich ist, dass zufällig zweimal der gleiche Wert herauskommt. Genau lässt sich diese Frage durch eine einfache statistische Analyse beantworten. Anschaulich handelt es sich um das gleiche Problem wie beim so genannten Geburtstagsparadox: In einem Raum halten sich k Personen auf. Wie groß ist die Wahrscheinlichkeit, dass zwei von ihnen am gleichen Tag Geburtstag haben? Etwas allgemeiner formuliert: Es gibt n verschiedene mögliche Geburtstage (n = 366) und k Personen im Raum. Die Wahrscheinlichkeit, dass die i-te Person (i = 1,..., k) am Tag g i (g i = 1,..., n) Geburtstag hat, ist 1/n. Für alle Personen zusammen schreiben wir: (g 1,..., g k ), g i {1,..., n} Die Wahrscheinlichkeit dafür ist 1/n k. 51

52 Wir berechnen die Wahrscheinlichkeit q, dass alle Geburtstage verschieden sind. Die Wahrscheinlichkeit, dass zwei (oder mehr) Personen am gleichen Tag Geburtstag haben, ist dann p = 1 q. Was uns interessiert, ist die Menge E aller (g 1,..., g k ), in denen alle g i verschieden sind. Wie groß ist diese Menge? Zunächst einmal: Ist k > n (mehr als 366 Personen), so sind mindestens zwei der g i gleich, die Menge E ist leer. Ist k n, so hat, wie eben festgestellt, jedes der Elemente von E die Wahrscheinlichkeit 1/n k ; also ist q = 1 n k E. Wir müssen also die Elemente von E zählen. In der ersten Position g 1 kann jeder Tag vorkommen, g 1 kann also alle n verschiedenen Werte annehmen. Hat g 1 einen bestimmten Wert, so kann dieser für g 2 nicht mehr vorkommen, deswegen gibt es für g 2 nur n 1 mögliche Werte, und so weiter. Insgesamt gilt: E = n(n 1)(n 2)... (n k + 1). Die gesuchte Wahrscheinlichkeit q ist q = 1 n k E Dies lässt sich leicht ausrechnen. = 1 n (n 1) (n k + 1) nk = 1 (1 1 n ) (1 k 1 n ). 52

53 Zur Vereinfachung schätzen wir das Ergebnis ab. Für alle reellen Zahlen x gilt die Ungleichung 1 x e x. Eingesetzt ergibt sich: q e 1/n... e (k 1)/n = e k(k 1)/(2n). Daraus folgt k 1 2 ( n ln q) Wenn wir jetzt fragen: Wie groß muss k sein, damit q 1 (oder p 2 ), dann bekommen wir daraus die Antwort: 1 2 k 1 2 ( n ln 2) Für unsere Geburtstage (n = 366), bekommen wir k 23. Das heißt: Wenn n = 366 und k = 23, dann ist die Wahrscheinlichkeit, dass zwei Personen am gleichen Tag Geburtstag haben, größer als 1/2. Die Formel gilt aber auch für andere Fälle: Wenn n sehr groß ist, gilt: k 1 2 8n ln 2 = 2 ln 2 n 1,2 n Zurück zu unseren Einweghashfunktionen, bei denen die gleiche statistische Analyse gilt: Kann die Hashfunktion n verschiedene Werte annehmen, so reichen k 1 2 ( n ln 2) Werte aus, damit die Wahrscheinlichkeit für zwei gleiche Hashwerte größer als 1/2 ist. Nehmen wir an, dass die Hashfunktion Werte mit N Bits berechnet, so ist n = 2 N, also k f(n) = 1 2 (1 + (1 + (8 ln 2)2 N 1,2 2 N. 53

54 Das heißt für eine Hashfunktion mit N Bits sind ungefähr k f(n) 2 N/2 verschiedene Eingaben nötig, um mit 50% Wahrscheinlichkeit zwei gleiche Hashwerte zu bekommen. Heutzutage wählt man daher mindestens N 128 (dies entspricht 64 Bits Sicherheit und damit DES). Für den digitalen Signaturstandard wird sogar N 160 verlangt. Zu AES (128 Bit Sicherheit) gehört eine Hash-Funktion mit N Beispiele aus der wirklichen Welt Fast alle Hash-Funktionen aus der wirklichen Welt (und alle im Folgenden vorgestellten) sind iterative Hashfunktionen. Das heißt: 1. Zuerst wird die Eingabe in Blöcke gleicher Länge aufgespalten: m 1,..., m k ; fehlende Bits im letzten Block werden nach einer bestimmten Regel ergänzt. Eine typische Blocklänge ist 512 Bits. 2. Dann werden diese Blöcke der Reihe nach abgearbeitet, mit Hilfe einer Kompressionsfunktion h und eines internen Zustands H i im i-ten Schritt: Der Prozess beginnt mit einem festen Wert H 0 des internen Zustands, und in jedem Schritt wird der Zustand verändert nach der Regel H i = h (H i 1, m i ). Der letzte Wert H k ist der Wert der Hash-Funktion. Dies hat mehrere wichtige Vorteile: 1. Es ist einfach zu spezifizieren und zu implementieren. 2. Man kann anfangen zu rechnen, wenn der erste Block bekannt ist. Damit kann auch ein Datenstrom von der Hash-Funktion verarbeitet werden. 54

55 6.4.1 MD4 MD4 (Message Digest 4) wurde 1990 von Ron Rivest vorgestellt. Der Output ist ein 128-Bit-Hashwert. MD4 ist sehr schnell, aber inzwischen sind Attacken bekannt. Schon früher, als nur Attacken auf Teile des Algorithmus veröffentlicht waren, verbesserte Ron Rivest MD4 zu MD5. Sicherheit: Es ist praktisch unmöglich, zwei Nachrichten zu finden, die denselben Hashwert haben. Keine Attacke ist besser als Brute Force. Direkte Sicherheit: Die Sicherheit von MD4 beruht nicht auf unbewiesenen Annahmen, wie: es ist schwierig, große Zahlen zu faktorisieren. Geschwindigkeit: MD4 ist geeignet für schnelle Implementationen in Software. Es beruht auf einfachen Operationen auf 32-Bit-Operanden. Einfachheit und Kompaktheit: MD4 ist so einfach wie möglich, ohne große Datenstrukturen oder ein kompliziertes Programm. Favorisiert Little-Endian-Architekturen: MD4 ist optimiert für Mikroprozessorarchitekturen (insbesondere Intel) MD5 MD5 ist im Design ähnlich zu MD4, aber komplizierter ( MD4 mit Sicherheitsgurt ). MD5 verarbeitet die Eingabe in Blöcken von 512 Bits, und zwar in (16) Teilblöcken zu je 32 Bit. Daher ist dieser Algorithmus sehr effizient auf 32-Bit-CPUs. Zunächst wird die Nachricht auf ein Vielfaches von 512 Bit verlängert. Die letzten 64 Bit sind dabei die Länge der Nachricht (als 64-Bit- Zahl); zwischen der eigentlichen Nachricht und diesem Längenfeld wird mit genau einem 1-Bit und so vielen 0-Bits wie nötig aufgefüllt. Dann werden die einzelnen 512-Bit-Blöcke verarbeitet, und zwar in jeweils 4 Runden, in jeder Runde 128 Bit. 55

56 Die Zwischenergebnisse werden in 4 Variablen à 32 Bit gespeichert, die wie folgt initialisiert werden: A = 0x B = 0x89abcdef C = 0xfedcba98 D = 0x Diese Operation wird solange wiederholt, bis alle Eingabeblöcke abgearbeitet sind. Das Ergebnis ist dann der 128-Bit-Hashwert ABCD. Jede Runde besteht aus 16 Operationen, die etwas unterschiedlich sind. Message Block (512) D CB A A B C D MD5: Hauptschleife a M j t j b c d Nichtlin. Funkt. <<< s MD5: Eine Rundenoperation Dabei bedeutet <<< s einen zirkulären Linksshift um s Bit. Die Werte A, B, C, D werden zyklisch auf a, b, c, d abgebildet. 56

57 6.4.3 SHA (Secure Hash Algorithm) SHA ist Teil des Secure Hash Standard (SHS), der von NIST (mit Hilfe der NSA) zur Benutzung für den Digital Signature Standard entworfen wurde. Es heißt, die Designprinzipien seien ähnlich wie bei MD4 ; sie wurden aber nicht im Detail veröffentlicht. SHA-1 erzeugt einen 160-Bit-Hashwert. Wie bei MD5 wird die Nachricht zunächst auf ein Vielfaches von 512 Bit verlängert. Die Hauptschleife besteht wiederum aus 4 Runden, die allerdings komplizierter sind als bei MD5: W t K t e i 1 e i d i 1 d i c i 1 Nichtl. Fkt. c i b i 1 <<< 30 b i a i 1 <<< 5 a i Probleme iterativer Hash-Funktionen Verlängerung Angenommen, wir haben eine Nachricht m, bestehend aus k Blöcken m 1,..., m k, mit Hashwert h(m). Dann kann ein Angreifer einen Block m k+1 anfügen, und den Hashwert dieser neuen Nachricht m berechnen als h(m ) = h (h(m), m k+1 ). Da der Hashwert stimmt, kann der Empfänger diese Manipulation nicht entdecken! 57

58 Kollision bei Nachrichtenteilen Angenommen, es gebe zwei verschiedene Nachrichten m und m mit gleichem Hashwert h(m) = h(m ). Wenn ich nun an beide Nachrichten den gleichen Text X anfüge, so ist der Hashwert der neuen, verlängerten Nachrichten m X und m X immer noch gleich. Der Angreifer muss also nur noch zu einer gegebenen Nachricht m X einen Teil m und m finden, sodass h(m) = h(m ). Dann ist automatisch auch h(m X) = h(m X). 1. Zu jeder Nachricht m berechne zuerst h(m), dann hänge h(m) und m zusammen, und berechne davon den Hashwert: h(h(m) m). 2. Zu jeder Nachricht m berechne zuerst h(h(m)). 3. HMAC HMAC HMAC ist die Bezeichnung für einen MAC mit Hilfe einer Einweg-Hashfunktion h. Gegeben unsere Nachricht m und unser geheimer Schlüssel, so berechnet der HMAC-Algorithmus: a und b sind Konstanten. h((k a) h((k b) m)). Vorteil: Kollisionen spielen keine große Rolle, weil a und b die Rolle eines Schlüssels spielen. HMAC wird an vielen Stellen benutzt. Probleme: Es ist möglich, in MD5 Kollisionen zu erzeugen. Weiterhin sind 128 Bit in unseren Zeiten zu wenig. Die Geburtstagsattacke zeigt, dass 2 64 Versuche ausreichen, um eine Kollision zu finden. 58

59 2004 wurde nachgewiesen, dass es mit vertretbarem Aufwand möglich ist, zu einer Nachricht mit einem bestimmten Hashwert eine zweite, unterschiedliche, Nachricht mit demselben Hashwert zu erzeugen, und zwar für: MD4, MD5 und Andere (RIPEMD, HAVAL- 128, SHA-0). SHA-1 war nicht betroffen. Zunächst war keine kryptografische Attacke gegen SHA-1 bekannt. Wie bei MD5 wird argumentiert, dass 160 Bit zu wenig sind, weil man in 2 80 Versuchen eine Kollision finden kann. In diesem Jahr wiesen drei chinesische Forscher nach, dass SHA-1 gebrochen werden kann, und zwar durch eine Kollision in 2 69 Versuchen. Damit ist SHA-1 für digitale Signaturen nicht mehr zu empfehlen. Es gibt bereits neue amerikanische Standards SHA-224, SHA-256, SHA-384, SHA-512. Allerdings ist SHA-384 ziemlich sinnlos, weil man 512 Bit berechnet und dann 128 Bit weg lässt. Diese Algorithmen sind deutlich langsamer als SHA Benutzerauthentifikation Wie kann sich eine Person (eine Benutzerin) gegenüber einem Rechner (Zielsystem) ausweisen? Die naive Methode benutzt einen Benutzernamen und ein Passwort, das nur der Benutzerin bekannt ist. Probleme: 1. Benutzername und Passwort werden im Klartext übertragen und können abgehört werden. Lösung: Verschlüsselung 2. Selbst verschlüsselter Verkehr ist protokollier- und wiederholbar ( Replay Attack ). Mögliche Lösungen: Wechsel der Schlüssel, Zeitstempel (Timestamps), Einmalpasswörter (Beispiel: TANs) 59

60 3. Ein Angreifer könnte sich den Schlüssel beschaffen. Damit wäre die gesamte Methode unsicher. 4. Die Passwörter sind auf dem Zielsystem abgelegt. Lösung: lege Hashwerte der Passwörter ab, damit sind die Passwörter auf dem Zielsystem nicht entschlüsselbar. 5. Das Zielsystem ist nicht identifizierbar, ein aktiver Angreifer könnte den Benutzerinnen die Identität des Zielsystem vorspiegeln und so in den Besitz der Passwörter kommen. Wie kann man sich vor der Replay-Attacke schützen? Eine mögliche Lösung heißt Challenge-Response-Methode und funktioniert so: 1. Das Zielsystem schickt ein zufällig gewähltes Bitmuster RAND an die Benutzerin, die sich authentifizieren will. 2. Die Benutzerin wendet einen Algorithmus auf RAND an, der von ihrem Passwort abhängt, f k (RAND), und schickt das Ergebnis an das Zielsystem. 3. Das Zielsystem berechnet ebenfalls f k (RAND) und vergleicht. Auf den ersten Blick sieht das so aus, als müsste doch das Passwort auf dem Zielsystem hinterlegt sein. Nein! Denn man kann ja auch zum Beispiel den Hashwert des Passwortes hinterlegen. Gegen ein Ausspähen des und Einbruch in das Zielsystem nützt das allerdings auch nur begrenzt. Nach wie vor ist dies nur einseitige Authentifikation, das Zielsystem könnte vorgespiegelt sein. Dies kann man durch gegenseitige Challenge-Response lösen. Praktische Anwendungen: GSM-Handy, dort erfolgt eine Challenge- Response-Authentifizierung des Handy mit Hilfe der SIM-Karte. Erst bei UMTS authentifiziert sich auch das Netz gegenüber dem Handy. 60

61 6.6 Zero-Knowledge-Protokolle Alle bisher vorgestellten Systeme beruhen mehr oder weniger auf dem so genannten Prinzip des Gemeinsamen Geheimnisses (Shared Secret): es gibt eine (geheime) Information, die beiden Seiten, Benutzerin wie Zielsystem, bekannt ist. Kann ich das auch ohne gemeinsames Geheimnis machen? Kann ich einen Kommunikationspartner davon überzeugen, dass ich etwas weiß, ohne ihm das Wissen selbst mitzuteilen? Ja! Die Antwort liefern die Zero-Knowledge-Protokolle. Nach n Versuchen, ist die Wahrscheinlichkeit, dass Circe das Geheimnis nicht kennt, 2 n Das Fiat-Shamir-Protokoll Das Fiat-Shamir-Protokoll wurde 1986 von Adi Shamir und Amos Fiat vorgestellt. Es wurde für den Einsatz auf Chipkarten entwickelt und beruht darauf, dass es äußerst schwierig ist, die modulare Quadratwurzel einer großen Zahl v zu berechnen. Seien n, v positive ganze Zahlen. Gesucht ist eine Zahl s mit der Eigenschaft s 2 = v (mod n). Wenn n genügend groß ist ( Dezimalstellen bzw Binärstellen), dann ist die Kenntnis von s ein Geheimnis, dass man gut hüten sollte. Zu Beginn wählt man in einer Authentisierungszentrale n als Produkt zweier ungefähr gleich langer Primzahlen p, q: n = p q. n wird öffentlich gemacht; p und q werden geheim gehalten! Denn: wenn man die Quadratwurzeln (mod p) und (mod q) kennt, kann man die Quadratwurzel (mod (pq)) daraus sozusagen zusammensetzen. Diese Zahlen müssen so groß sein, dass es praktisch unmöglich ist, p und q als Primfaktoren von n zu berechnen. 61

62 Für jeden Benutzer wird jetzt eine Zahl s bestimmt, die das Geheimnis des Benutzers ist, und daraus v = s 2 (mod n) berechnet. Benutzerin Alice beweist folgendermaßen, dass sie s kennt, ohne die geringste Information über s selbst preiszugeben: 1. Alice wählt zufällig eine Zahl r, die teilerfremd zu n ist, berechnet x = r 2 (mod n), und sendet diese Zahlt x an das Zielsystem. 2. Das Zielsystem wählt zufällig ein Bit b aus und sendet es an Alice (Challenge). (Die Wahl dieses Bits entspricht der Wahl Odysseus, ob er Rechts! oder Links! ruft.) 3. Alice berechnet: (a) Im Fall b = 1: y = r s (mod n), (b) Im Fall b = 0: y = r (mod n), und sendet y an das Zielsystem. 4. Das Zielsystem berechnet y 2 (mod n) und prüft (a) Im Fall b = 1: y 2 (mod n) = r 2 s 2 (mod n) = x v (mod n), (b) Im Fall b = 0: y 2 (mod n) = r 2 (mod n) = x (mod n). 1. Die Challenge ist die Frage nach entweder r oder r s. Da Alice s kennt, kann sie beide Fragen richtig beantworten. 2. Ein Angreifer, der s nicht kennt, kann nur eine der beiden Fragen richtig beantworten. Denn er hat zwei Möglichkeiten: (a) Er hofft, dass das Zielsystem b = 0 sendet. Dann wählt er (wie Alice) eine Zahl r, die teilerfremd zu n ist und sendet x = r 2 im ersten Schritt. Hat er richtig geraten, so sendet er im dritten Schritt y = r. (b) Er hofft, dass das Zielsystem b = 1 sendet. Dann wählt er eine Zahl r, die teilerfremd zu n ist, und sendet x = r 2 v 1 im ersten Schritt. Hat er richtig geraten, so sendet er im dritten Schritt y = r, denn y 2 = r 2 = x v. Kennt er s nicht, ist die Wahrscheinlichkeit, die richtige Antwort zu geben, pro Schritt 1/2, nach n Schritten 2 n. 1. Beide Seiten müssen nur einfache Operationen durchführen. 62

63 2. Das Zielsystem verwendet nur öffentliche Informationen, nur Alice kennt s. (s selbst bleibt geheim.) 3. Das Verfahren beruht darauf, dass es praktisch unmögliche ist, die modulare Quadratwurzel zu berechnen. 6.7 Chipkarten Eine Chipkarte ist eine Plastikkarte mit einem eingebetteten Minirechner. Damit kann zum ersten Mal Sicherheit auf der kryptografischer Basis realisiert werden, und zwar für jedermann, nicht nur für Experten! Das liegt am Zusammentreffen zweier Eigenschaften: Chipkarten sind ideal für Kryptografie: Speicherung geheimer Schlüssel, Ausführung kryptografischer Algorithmen Chipkarten sind ideal für Menschen: einfach zu benutzen (PIN) Zugangskontrolle mit Chipkarte Der übliche Passwortmechanismus wird in zwei Schritte zerlegt: 1 Die Kartenbesitzerin identifiziert sich der Chipkarte gegenüber mit ihrer PIN, die innerhalb der Karte verifiziert wird. Das heißt insbesondere, dass die PIN nirgendwo sonst gespeichert wird! Man kann eine Reihe von nützlichen Mechanismen einbauen: zum Beispiel die automatische Sperre der Karte, wenn die PIN dreimal falsch eingegeben wird, oder sogar der Benutzerin erlauben, die PIN zu ändern. Auch die Länge kann variabel sein. 2 Wenn die PIN stimmt, identifiziert sich die Chipkarte dem Rechner gegenüber mit einem Challenge-Response-Verfahren. Dafür brauchen Chipkarte und Rechner einen gemeinsamen Algorithmus f und einen geheimen Schlüssel k (shared secret). Der Rechner sendet eine Zufallszahl RAND an die Karte, diese berechnet f k (RAND) und schickt das Ergebnis zurück. Da sich die Nachricht jedes mal ändert, kann ein Angreifer mit einer abgehörten Nachricht nichts anfangen. 63

64 6.8 Anwendungen in der realen Welt: MS-CHAP und Kerberos PPTP und MS-CHAP Das Point-to-Point Tunneling Protocol (PPTP) ist ein Protokoll von Microsoft für sichere Kommunikation über (unsichere) TCP/IP-Verbindungen. (Im Verbindungsassistenten nennt sich das einfach VPN.) Die ursprüngliche (NT-)Implementation dieses Protokolls war unsicher, sowohl bei der Authentifikation als auch bei der Verschlüsselung. Ich beschränke mich hier auf die Authentifikation mit MS-CHAP. Näheres siehe im Artikel von Bruce Schneier. Der PPTP-Server läuft auf NT 4 oder 5 (W2K(3)) Server. Es gab zunächst drei Authentifizierungsmethoden: 1. Passwort wird im Klartext übertragen (Verbindung unverschlüsselt). 2. Passwort-Hash wird übertragen (Verbindung unverschlüsselt). 3. Challenge-Response mittels MS-CHAP (Verbindung verschlüsselt). Passwort-Hashes Es wurden gleichzeitig zwei verschiedene Hash-Funktionen verwendet, vermutlich der Rückwärtskompatibilität wegen: Lan-Manager-Hash: 1. Das Passwort wird durch Abschneiden oder Auffüllen mit 0-Bytes auf 14 Byte Länge gebracht (b 1... b 14 ). 2. Alle Kleinbuchstaben werden in die entsprechenden Großbuchstaben umgewandelt. 3. Die zwei Hälften à 7 Byte, also 56 Bits werden als DES-Schlüssel benutzt, um festgelegte Konstanten c 1 und c 2 (!) zu verschlüsseln. 4. Die beiden jeweils 8 Byte langen Ergebnisse ergeben zusammen den 16 Byte langen LAN-Manager-Hashwert. Lan-Manager-Hash: Dies ist ein sehr schwacher Hash! Zum Beispiel: ist das Passwort nicht länger als 7 Buchstaben, dann ist der besteht der zweite DES-Schlüssel aus lauter 0-Bits, und damit sind die letzten 8 Byte des LAN-Manager-Hashes konstant und bekannt! 64

65 NT-Passwort-Hash: Wandle das Passwort (das wiederum aus maximal 14 Zeichen bestehen darf) nach Unicode um und berechne daraus den 16 Byte langen MD4-Hash. Problem: es werden immer beide Hashwerte benutzt. Damit ist das Verfahren nur so gut wie der schwächere LAN-Manager-Hash. Das MS-CHAP-Verfahren (Version 1) 1. Der Klient fordert ein Login an. 2. Der Server sendet eine zufällige 8-Byte-Challenge. 3. Der Klient berechnet den Lan-Manager-Hash des Passwortes, fügt fünf 0-Bytes hinzu, um drei 56 Bit lange DES-Schlüssel zu bekommen. Die Server-Challenge wird mit jedem dieser drei DES-Schlüssel verschlüsselt, die Ergebnisse werden zu einer 24 Byte langen Antwort zusammengefasst. Das gleiche Verfahren wird mit dem NT- Passwort-Hash durchgeführt. Die Ergebnisse gehen zurück an den Server. 4. Der Server führt dieselben Operationen durch und vergleicht, aber nur mit einem der beiden 24 Byte langen Ergebnisse, abhängig von einem Flag im Antwortpaket des Klienten. Der andere 24-Byte-Block wird ignoriert. Probleme: 1. Es reicht aus, den schwachen LAN-Manager-Hash zu attackieren. 2. Weil drei Teile unabhängig voneinander verschlüsselt werden, kann man das Protokoll selbst attackieren: Ist das Passwort maximal 7 Zeichen lang, so sind die letzten 8 Byte des LAN-Manager-Hashes konstant. Daher bestehen die letzten 8 Byte des 24-Byte langen Antwortblocks aus dem Challenge, das mit dieser Konstanten verschlüsselt ist! 3. Der Server ist nicht authentisiert. Kurz gesagt, das Protokoll selbst ist so unsicher, dass es mit einfachen Mitteln möglich ist, dem Server eine falsche Identität vorzutäuschen. Dazu kommt dann noch, dass die Verschlüsselung des Datenverkehrs auch nicht sicher war. Microsoft hat dann nachgelegt und eine neue Version entwickelt, die die Probleme vermeidet: MS-CHAPv2. 65

66 Das MS-CHAP-Verfahren (Version 2) Der Klient fordert ein Login an. Der Server sendet eine zufällige 16 Byte lange Challenge. Der Klient erzeugt ebenfalls eine 16 Byte lange Zufallszahl ( Peer Authentication Challenge ). Aus der Server-Challenge, der Peer Authentication Challenge und dem Benutzernamen des Klienten wird mittels SHA-1 ein 8 Byte langer Hashwert erzeugt. Wie bei MS-CHAPv1 werden aus dem NT-Passwort-Hash drei DES- Schlüssel erzeugt, die diesen Hashwert verschlüsseln. Der Klient sendet dem Server die Peer Authentication Challenge und das 24 Byte lange Ergebnis der Verschlüsselung. Der Server führt dieselben Berechnungen durch und prüft die Gültigkeit. Ist das Ergebnis richtig, erzeugt er aus der Peer Authentication Challenge und dem NT-Passwort-Hash eine 20 Byte lange Peer Authenticator Response und sendet sie an den Klienten. Der Klient führt die gleichen Operationen durch und prüft das Ergebnis. Damit wird sichergestellt, dass auch der Server das NT-Passwort- Hash kennt. Probleme: Warum so kompliziert? NT-Passwort-Hash ist durch Brute-Force-Attacke knackbar. Schwache Passworte sind nach wie vor leicht knackbar Kerberos Kerberos wurde am MIT für das Athena-Projekt entwickelt. Kerberos 4 war die erste öffentliche Version (1987). Kerberos 5 (1991) ist die Authentisierungsmethode in Windows-Domänen seit NT 5 (W2K). Kerberos benutzt Shared Secrets. 66

67 Dreh- und Angelpunkt ist der Kerberos Authentication Server, genannt Key Distribution Center (KDC), bei dem Benutzer und Netzwerkdienste ( Principals ) ihre geheimen Schlüssel hinterlegen. Daher muss dieser Rechner sicher sein (in W2K: DC). Für Benutzer ist dieser geheime Schlüssel eine verschlüsselte Version des Passwortes. Die Grundidee ist sehr einfach. Alice hat mit dem KDC einen Schlüssel K A vereinbart, Bob ebenso K B. Daher können Alice und Bob, jede(r) für sich, sicher mit dem KDC kommunizieren. Wenn aber Alice und Bob sicher miteinander reden wollen, erzeugt der KDC einen gemeinsamen Schlüssel K AB, den Alice und Bob benutzen können. Damit ist es möglich, Nachrichten zu verschicken, die einen Principal von der Identität eines anderen überzeugen. Im Detail geht das so: 1. Alice will mit Bob reden und teilt das dem KDC mit. Der KDC sendet einen neuen geheimen Schlüssel K AB, und dazu nochmal K AB, diesmal aber mit Bobs geheimem Schlüssel K B (den Alice nicht kennt) verschlüsselt. Diese beiden Teilnachrichten sind mit Alices geheimen Schlüssel K A verschlüsselt, sodass nur Alice sie lesen kann. 2. Damit hat Alice schon einmal den gemeinsamen Schlüssel K AB. Den zweiten Teil sendet Alice nun an Bob, der ihn entschlüsselt und damit auch K AB erhält. Also haben Alice und Bob jetzt einen gemeinsamen geheimen Sitzungsschlüssel, mit dem der Netzwerkverkehr zwischen den beiden Parteien verschlüsselt wird. 3. Ist die Sitzung beendet, wird der zugehörige Schlüssel zerstört, das heißt, beide Parteien löschen ihn. Der KDC vergisst (löscht) den Schlüssel sofort, nachdem er ausgegeben wurde. Der KDC muss also keine zusätzlichen Daten speichern, und kann deshalb mehrfach vorhanden sein. Die Verschlüsselung selbst erfolgt mit DES (oder 3DES) im CBC- Modus, oder (W2K) mit RC4-HMAC. Die Schlüssel haben eine begrenzte Gültigkeit (typisch: zehn Stunden). 67

68 Ein Netzwerkdienst, zum Beispiel ein Dateiserver, ist genauso ein Principal wie ein Benutzer, hat also auch einen Schlüssel beim KDC hinterlegt. Ein Ticket ist eine sichere Methode, einen Server von der Identität eines Klienten zu überzeugen. Es gilt immer nur für einen Server und einen Klienten und enthält: Name und Netzwerkadresse des Klienten Name des Servers Gültigkeitsdauer (Timestamp), typisch Stunden bis maximal Tage. Einen Sitzungsschlüssel Das Ticket ist mit dem geheimen Schlüssel des Servers verschlüsselt; damit ist der Klient sicher, dass nur der zuständige Server etwas damit anfangen kann. Zum Anfordern eines Dienstes wird neben dem Ticket ein Authenticator benutzt. Dieser ist (im Gegensatz zum Ticket) nur einmal gültig und ist mit dem Sitzungsschlüssel der beiden Partner verschlüsselt. Er enthält: Name des Klienten Zeitstempel Sitzungsschlüssel (optional) Es gibt einen speziellen Dienst, den Ticket Granting Service (TGS). Dieser kann Tickets für alle anderen Dienste ausgeben, wenn der Klient sich mit dem initialen Ticket Granting Ticket bei ihm identifiziert. Authentisierungsschritte: 1. Klient fordert Ticket-Granting-Ticket (TGT) an. 2. Kerberos (KDC) sendet TGT. 3. Klient benutzt TGT, um ein Server-Ticket anzufordern. 4. TGS sendet Server-Ticket. 5. Klient benutzt Server-Ticket, um Dienst anzufordern. 68

69 Kerberos (KDC) TGS 1. TGT? Klient 2. TGT! 3./4. Server-Ticket 5. Dienst anfordern Server Sicherheit von Kerberos Alle Rechner müssen die gleiche Uhrzeit haben. Da Tickets eine gewisse Lebensdauer haben, gibt es die Möglichkeit von Replay Attacks. Passworte können geraten werden! Die Kerberos-Software auf allen beteiligten Rechnern muss sicher und vertrauenswürdig sein. 7 Public-Key-Kryptografie Bisher: Symmetrische Kryptosysteme, das heißt: 1. Wer verschlüsseln kann, kann auch entschlüsseln. 2. Vor der Verschlüsselung muss der geheime Schlüssel ausgetauscht werden. Geht s auch anders? Ja! Mai 1976: Whitfield Diffie und Martin Hellman veröffentlichen ihre Arbeit: New Directions in Cryptography. Sie enthält drei wichtige neue Konzepte: 1. Versenden verschlüsselter Nachrichten ohne Schlüsselaustausch (nur theoretisch, ohne konkretes Verfahren), 2. Konzept der Digitalen Signatur 69

70 3. Schlüsselaustausch über einen unsicheren Kanal. 1977: RSA-Algorithmus bietet konkretes Verfahren. 7.1 Idee der Public-Key-Kryptografie Jeder Teilnehmer hat ein Paar von Schlüsseln, einen geheimen Schlüssel d (private key) und einen öffentlichen Schlüssel e (public key). Es ist praktisch unmöglich, von e (öffentlich) auf d (geheim) zu schließen. Dies definiert ein asymmetrisches Kryptosystem. e dient zum Verschlüsseln: e : Klartext Geheimtext. Wir schreiben: g = E B (k), um die Verschlüsselung des Klartextes k mit dem öffentlichen Schlüssel der Person B zu bezeichnen. Nur mit d kann ich die Nachricht wieder entschlüsseln: Wir schreiben: k = D B (g). d : Geheimtext Klartext. Mathematisch gesprochen: e definiert eine Einwegfunktion, d eine Hintertür, um die Umkehrung doch berechnen zu können. Wenn ich jemandem eine geheime Nachricht senden will, besorge ich mir den öffentlichen Schlüssel des Empfängers, verschlüssele damit und sende das Ergebnis. Nur der Empfänger besitzt den zugehörigen geheimen Schlüssel, um die Nachricht entschlüsseln zu können. Ein asymmetrisches Kryptosystem heißt Public-Key-Verschlüsselungssystem (oder auch: asymmetrisches Verschlüsselungssystem), wenn für jede Nachricht m gilt: c = E(m), m = D(c), das heißt, D macht E rückgängig. Vorteile Kein Schlüsselaustausch Nur ein Schlüssel je Teilnehmer Neue Teilnehmer können jederzeit hinzugefügt werden. 70

71 Nachteile Wie garantiere ich, dass ich den öffentlichen Schlüssel des Empfängers bekomme (und keine Fälschung)? Lösung: PKI (Public Key Infrastructure), kommt später. Asymmetrische Verfahren sind langsam. 7.2 Erste Realisierung: RSA-Algorithmus Autoren: Ronald Rivest, Adi Shamir, Leonard Adleman Idee: Für jeden Teilnehmer nehme zwei etwa gleich große Primzahlen p, q, berechne n = p q und bestimme zwei natürliche Zahlen e und d so, dass gilt: e d = s(p 1)(q 1) + 1 Dann ist d der geheime Schlüssel, e (zusammen mit dem so genannten Modul n) der öffentliche Schlüssel. Verschlüsselung einer Zahl m < n: Entschlüsselung mit d: Zauberei? Nein, Zahlentheorie! c = m e mod n m = c d mod n 7.3 Kleiner Zahlentheoretischer Exkurs Von Leonard Euler ( ) stammt ein nach ihm benannter Satz, aus dem folgende Aussage abgeleitet werden kann: Seien p, q Primzahlen, n = p q. Für jede natürliche Zahl m n und jede natürliche Zahl s gilt: m s(p 1)(q 1)+1 m (mod n). Beispiel: p = 2, q = 5. Dann gilt für s = 1: m 5 m (mod 10) für m 10. Mit dieser Aussage können wir beweisen: m = m für m < n, 71

72 denn es gilt: m = c d mod n = (m e mod n) d mod n = (m e ) d mod n = m e d mod n = m s(p 1)(q 1)+1 mod n m (mod n) = m. Damit ist bewiesen, dass die Methode tatsächlich funktioniert. Wie schwer ist es, e und d zu finden? Die Antwort liefert der Euklidische Algorithmus (um 300 v. Chr.): Für jede natürliche Zahl e, die teilerfremd zu (p-1)(q-1) ist, kann man leicht eine natürliche Zahl d finden, so dass gilt: e d = s(p 1)(q 1) + 1. e wird vorgegeben, d und s ergeben sich im Laufe der Rechnung. In unserem Fall ist die Voraussetzung leicht erfüllt, weil n = p q ist, und damit teilerfremd zu p 1 und q 1. Anders formuliert: wenn p und q bekannt sind, sind e und d leicht zu berechnen. Umgekehrt, ist es schwer, d zu berechnen, wenn es schwer ist, p und q zu bestimmen. Achtung: Die Bedingung, dass e teilerfremd zu (p 1) und (q 1) sein muss, bedeutet, dass n mod e 1 sein muss! In der Praxis wählt man kleine Zahlen für e. Ist e zum Beispiel 3 oder 5, denn dann muss man nur (m 3 mod n) oder (m 5 mod n) berechnen. Wir werden später sehen, dass man häufig auch die vierte Fermat-Zahl e = = wählt. Dieses Problem hat zwei Aspekte: Angreifer: Ich habe e und n, ich will d berechnen! In diesem Fall reduziert sich das Problem auf die Frage: wie schwer ist es, eine gegebene natürliche Zahl n in ihre Primfaktoren zu zerlegen? Damals (1977): 512 Bit sind schwer. Heute werden 2048 Bit als Länge für die Zahl n empfohlen. Benutzer: Ich brauche zwei etwa gleich große Primzahlen p und q, aus denen ich meine Schlüssel berechnen kann! Es gibt zwar sehr viele Primzahlen (zum Beispiel ist im Bereich der 512 Bit langen Zahlen jede 354te Zahl eine Primzahl), aber trotzdem muss ich prüfen, ob eine Zahl eine Primzahl ist. Zwar sind p und q nur etwa halb so lang wie n, was meinen Aufwand kleiner macht, aber im Prinzip stehe ich vor demselben Problem wie der Angreifer. Die Lösung bieten probabilistische Primzahltests. Solche Tests können nicht beweisen, dass eine Zahl eine Primzahl ist, aber sie können diese 72

73 Aussage mit einer gewissen Wahrscheinlichkeit treffen. Allerdings haben sie eine ganz entscheidende Eigenschaft: die Feststellung, dass eine Zahl keine Primzahl ist, ist immer richtig. Es kann also nur vorkommen (mit einer kleinen Wahrscheinlichkeit), dass der Test eine Zahl zur Primzahl erklärt, obwohl sie keine ist. Beispiel: Miller-Rabin-Test Miller-Rabin-Test Input: p, ein Kandidat für eine Primzahl, a, eine Zufallszahl, die kleiner als p ist. Liefert dieser Test die Aussage, dass eine Zahl eine Primzahl ist, so ist die Wahrscheinlichkeit allerhöchstens 1/4, dass sie doch zusammengesetzt ist. Wiederholt man den Test k-mal mit verschiedenen Zahlen a, so ist diese Wahrscheinlichkeit höchstens 4 k, für k = 10 also schon etwa Dies ist allerdings eine sehr pessimistische Annahme, realistischer sind Fehlerhäufigkeiten von 1/10000 (an Stelle von 1/4 für einen Durchgang des Tests. Bewaffnet mit diesem Wissen können wir mit vertretbarem Aufwand Primzahlen von k Bits Länge zufällig bestimmen, und zwar so: 1. Wir wählen zufällig ein Bitmuster der Länge k, in dem das erste und letzte Bit 1 sind. (Das erste Bit, weil die Länge sonst kleiner als k wäre, und das letzte Bit, weil Primzahlen immer ungerade sind.) Damit haben wir einen Kandidaten n. 2. Wir prüfen, ob n durch kleine Primzahlen teilbar ist: 3, 5, 7, 11,... Dies ist nicht wirklich nötig, geht aber sehr schnell und schließt einen große Zahl von möglichen Kandidaten aus. Testet man zum Beispiel nur auf Division durch 3, 5 und 7, so hat man schon über die Hälfte der Kandidaten eliminiert. Häufig testet man für alle Primzahlen unter 256 (80%); sehr effizient ist es, auf alle Primzahlen unter 2000 zu testen. 1. (RSA-spezifischer Test:) Wir prüfen, ob n mod e 1, und zwar für alle Werte von e, die wir verwenden. (Das sind nur ein paar mögliche Zahlen.) 2. Wir führen den Miller-Rabin-Test für ein zufälliges a < n durch. Wiederhole dies noch viermal. 3. Fällt n durch einen der Tests, fange von vorne an. 73

74 7.4 Besonderheiten des RSA-Verfahrens Normalerweise: Verschlüsselung mit öffentlichem Schlüssel e, Entschlüsselung mit geheimem Schlüssel d. Weil aber bei RSA die Methode (modulare Exponentiation) dieselbe ist, gilt auch die Umkehrung: Was mit dem geheimen Schlüssel d verschlüsselt wird, kann mit dem öffentlichen Schlüssel e entschlüsselt werden, denn für k < n gilt: (k d mod n) e mod n = k d e mod n = k. Diese Eigenschaft gilt nicht für jedes asymmetrische Verschlüsselungssystem. Multiplikativität: Wenn ich die Verschlüsselung zweier Nachrichten kenne, kann ich die Verschlüsselung des Produktes berechnen: (m 1 m 2 ) e mod n = m e 1m e 2 mod n = (m e 1 mod n)(m e 2 mod n). Dies bietet eine Angriffsmöglichkeit, da ich für gewisse Nachrichten (der Form m 1 m 2 ) die Verschlüsselung vorhersagen kann. Mögliche Lösung: Klartexte einschränken, zum Beispiel so, dass das letzte Byte immer gleich dem ersten ist. Dann ist m 1 m 2 so gut wie nie eine gültiger Klartext. Sehr kurze Nachrichten: Nehmen wir an, dass der Exponent e = 5 ist, und dass die Nachricht so kurz ist, dass m < 5 n gilt. Dann wird m e = m 5 < n und damit m 5 mod n = m 5 übertragen, und ein Angreifer kann einfach die fünfte Wurzel berechnen, um an die ursprüngliche Nachricht zu kommen. Abhilfe: Struktur der ursprünglichen Nachricht verschleiern ( encoding function ). 7.5 Hybride Kryptosysteme Asymmetrische Verschlüsselung ist langsam. Deswegen benutzt man meistens die asymmetrische Verschlüsselung nur zum Austausch des Schlüssels für ein symmetrisches Kryptosystem: 1. Der Sender A wählt einen geheimen Schlüssel k und verschlüsselt seine Nachricht m damit: g 1 = f k (m). 2. Der Sender verschlüsselt k mit dem öffentlichen Schlüssel e des Empfängers B: g 2 = E B (k) und sendet g 1 und g 2 an B. 74

75 3. B entschlüsselt zunächst g 2 mit seinem geheimen Schlüssel: k = D B (g 2 ), erhält damit k. Damit kann er g 1 schnell entschlüsseln. Beispiele für hybride Systeme: SSL/TLS, PGP Die Sicherheit eines hybriden Systems ist nur so gut wie die Sicherheit der Bestandteile: kann ich den symmetrischen Teil brechen, habe ich die Nachricht; kann ich den asymmetrischen Teil brechen, bekomme ich den geheimen Schlüssel k und kann damit die Nachricht entschlüsseln. 7.6 Schlüsselaustausch nach Diffie und Hellman Der Schlüsselaustausch in einem hybriden Kryptosystem ist nicht symmetrisch: Der Sender A wählt den geheimen Schlüssel k und überträgt ihn an B. Schöner wäre es, wenn A und B die gleiche Rolle spielen würden. In ihrer Arbeit aus dem Jahre 1976 schlugen Diffie und Hellman eine symmetrische Methode zum Schlüsselaustausch vor: 1. Die beiden Partner A und B vereinbaren eine Primzahl p eine natürliche Zahl g < p. Diese brauchen nicht geheim zu sein. 2. A und B wählen je eine natürliche Zahl a bzw. b, die beide kleiner als p 1 sind und halten sie geheim. A berechnet: α = g a mod p und schickt α an B, B berechnet: β = g b mod p und schickt β an A. 3. A berechnet: k a = β a mod p, B berechnet: k b = α b mod p. Diese beiden Zahlen k a und k b sind gleich, denn: k a = β a mod p = (g b mod p) a mod p = g ba mod p, k b = α b mod p = (g a mod p) b mod p = g ab mod p. k a = k b = k ist dann ein gemeinsames Geheimnis. A und B nehmen dieses gemeinsame Geheimnis entweder direkt als Schlüssel, oder sie berechnen daraus den Schlüssel auf eine vorher vereinbarte Weise. (Dies kann eine öffentlich bekannte Methode sein, zum Beispiel die Vorschrift: Nimm die ersten 56 Bit als DES-Schlüssel! ) Diese Verfahren ist wieder praktisch unmöglich zu knacken, weil die Berechnung des diskreten Logarithmus schwierig ist. 75

76 7.7 Andere Verschlüsselungsverfahren Eng mit dem DH-Verfahren zusammen hängt das ElGamal-Verschlüsselungsverfahren (Taher El Gamal 1985) (und andere, zum Beispiel Massey-Omura): Alle Teilnehmer haben dieselbe Primzahl p und natürliche Zahl g < p. B hat als geheimen Schlüssel b < p 1, als öffentlichen Schlüssel β = g b mod p. A wählt zufällig eine Zahl a < p 1 und berechnet k = β a mod p. Dann wird die Nachricht m mit einem Verfahren f mit Schlüssel k verschlüsselt: c = f k (m). A sendet an B: c und α = g a mod p. B wendet seinen geheimen Schlüssel b auf α an: k = α b mod p. Damit entschlüsselt B den Geheimtext c: m = f 1 k (c). Bemerkungen: Im ursprünglichen ElGamal-Schema war f k (m) = k m mod p, aber das ist eine unnötige Einschränkung. ElGamal ist ein sogenanntes randomisiertes Verschlüsselungsverfahren: A kann jedes mal eine andere Zahl a wählen. Dadurch entsteht aus demselben Klartext jedes mal ein anderer Geheimtext; die Geheimtexte sind zufällig und gleichverteilt, wenn a dies ist. Dies erschwert die Kryptoanalyse, zum Beispiel die Anwendung statistischer Tests. Ein weiteres Schema, das auf dem DH-Schlüsselaustausch beruht, wurde von Jim Massey (ETH Zürich) und Jim Omura (UC) unabhängig voneinander entwickelt. Es beruht auf Shamirs No-Key-Algorithmus. Dabei wird ohne Austausch von Schlüsseln trotzdem verschlüsselt kommuniziert! Man kann sich das Prinzip dieses Algorithmus mit Hilfe von Koffern mit Vorhängeschlössern veranschaulichen. 1. A steckt die zu übermittelnde Nachricht in einen Koffer, versieht diesen mit einem Vorhängeschloss und behält den Schlüssel. Der verschlossene Koffer wird an B geschickt. 2. B verschließt den Koffer mit einem weiteren Vorhängeschloss, behält den Schlüssel und schickt den Koffer an A zurück. 76

77 3. A entfernt das erste Schloss, dessen Schlüssel sie behalten hat, lässt das zweite Schloss unangetastet und schickt den Koffer an B zurück. 4. B öffnet das verbleibende Schloss und kann die Nachricht aus dem Koffer entnehmen. Was bedeutet das für die Kryptografie, die ja mit Zahlen und Operationen auf Zahlen arbeitet, und nicht mit Schlössern und Schlüsseln? Wir brauchen eine doppelte Verschlüsselung (für A und B), bei der es egal ist, in welcher Reihenfolge die Entschlüsselungen durchgeführt werden, denn den obigen Schritten entsprechen folgende Operationen auf der Nachricht m: 1. A berechnet f ka (m) und schickt dies an B. 2. B berechnet f kb (f ka (m)) und schickt dies an A. 3. A kehrt seine Operation um: f 1 k A (f kb (f ka (m))) und schickt dies an B. 4. B berechnet f 1 k B (f 1 k A (f kb (f ka (m)))). Damit dies wieder m ergibt, muss gelten: f kb (f ka (m)) = f ka (f kb (m)). Dies ist eine kommutative symmetrische Verschlüsselung. Massey-Omura-Schema Alle Teilnehmer vereinbaren: eine Primzahl p so, dass p 1 einen großen Primfaktor hat. Jeder Teilnehmer T wählt einen Schlüssel e T, der teilerfremd zu p 1 ist und berechnet mit dem euklidischen Algorithmus eine Zahl d T so, dass e T d T 1 (mod p 1) ist. Beide Zahlen e T und d T werden geheimgehalten. Aus dem Satz von Euler folgt dann, dass m e T d T A berechnet: α = m e A mod p und schickt dies an B. mod p = m ist. B berechnet: β = α e B mod p = m e A e B mod p und schickt dies an A. 77

78 A berechnet: γ = β d A mod p = α d A e b mod p = m d Ae A e B mod p und schickt dies an B. = (m d Ae A mod p) e B mod p = m e B mod p B berechnet γ d B mod p = m d Be B mod p = m. Zum Knacken dieses Verfahrens ist wieder die Berechnung des diskreten Logarithmus notwendig. Ein Problem dieses Schemas ist seine Anfälligkeit für eine so genannte Man-in-the-middle-Attacke: Ein Angreifer C fängt die Nachrichten ab und gibt sich A gegenüber als B und B gegenüber als A aus. Das Schema hat keine Vorkehrung, einen solchen Eingriff zu entdecken. C wickelt mit beiden Seiten das Protokoll ab und ist am Ende im Besitz der Klartextnachricht m. 7.8 Weiterführende Methoden Elliptische Kurven Public-Key-Kryptosysteme beruhen auf mathematischen Strukturen, nämlich Gruppen und endlichen Körpern. Rechnen mit ganzen Zahlen oder modulo einer Primzahl sind ein einfaches Beispiel dieser Strukturen. Man RSA oder DH auch auf anderen Gruppen und endlichen Körpern aufbauen, zum Beispiel auf so genannten elliptischen Kurven über einem Galoiskörper GF (2 n ). Vorteil: Viele bekannte kryptoanalytische Methoden funktionieren nicht gut mit solchen elliptischen Kurven. Nachteil: Die Mathematik ist viel schwieriger. Link zum Tutorial 8 Die digitale Signatur Die Idee der digitalen Signatur ist abgeleitet von der handschriftlichen Unterschrift: 78

79 Nur die richtige Person kann ihre eigene Unterschrift produzieren. Jeder kann die Unterschrift prüfen (zumindest im Prinzip). Idee der Anwendung eines asymmetrischen Kryptosystems: Ein asymmetrisches Kryptosystem heißt Signaturschema, wenn für jede Nachricht m mit Hilfe des öffentlichen Schlüssels E überprüft werden kann, ob m und D(m) zusammenpassen. Man schreibt: D(m) = sig. Beispiel: 1. A unterschreibt eine Nachricht mit ihrem geheimen Schlüssel D A und sendet m und sig = D(m) an B. 2. B überprüft, ob m und D(m) zusammenpassen. 8.1 Digitale Signatur mit dem RSA-Algorithmus Bei RSA gilt: E(D(m)) = m. Das heißt, man kann sig = D(m) überprüfen, indem man E(sig) berechnet: E(sig) = E(D(m)) = m. Da dabei m wiedergewonnen wird, spricht man von einem Signaturverfahren mit Nachrichtenrückgewinnung. Konkret: 1. Um eine Nachricht m zu signieren, berechnet A als Signatur: 2. Um s zu verifizieren berechnet B: s = m d A mod n. s e A = m e A d A mod n = m. Dies ist nur korrekt, wenn A wirklich ihren geheimen Schlüssel d A benutzt hat. Ein entscheidender Unterschied zur handschriftlichen Signatur ist, dass die digitale Signatur untrennbar mit der Nachricht verbunden ist. Weder Nachricht noch Signatur kann nachträglich verändert werden, ohne dass die digitale Signatur ungültig wird. 79

80 Schlüssel unterschieben: Der Angreifer C überzeugt B davon, dass e C der öffentliche Schlüssel von A ist. Da B der Sache traut, glaubt er, alle mit d C signierten Nachrichten, seien von A unterschrieben. Existenzielle Fälschung: C wählt irgendeine Zahl s < n. Dann behauptet C, s sei eine Signatur von A. Zur Verifikation berechnet B m = s e A mod n und glaubt, A habe m signiert. Wenn m jetzt auch noch ein halbwegs sinnvoller Text ist, wird B dem glauben. Multiplikativität: Sind s 1 und s 2 die Signaturen von m 1 und m 2, so ist s = s 1 s 2 mod n = m d 1m d 2 mod n = (m 1 m 2 ) d mod n die Signatur von m = m 1 m 2. Aus zwei gültigen Signaturen lässt sich so leicht eine dritte gültige Signatur berechnen, ohne den zugehörigen privaten Schlüssel zu kennen. Redundanz: Signiere nur Texte, deren Binärdarstellung zum Beispiel aus zwei gleichen Hälften besteht. Signatur mit Hashwert: Wende eine öffentliche, kollisionsresistente Einweg- Hashfunktion h(x) auf den Text an, und berechne die Signatur wie folgt: s = h(m) d mod n. Hier müssen m und s versendet werden, da man aus s die Nachricht m nicht zurückgewinnen kann. Der Empfänger berechnet s e mod n und vergleicht mit h(m). In der Praxis wählt man eine gängige 160- Bit-Hashfunktion (zum Beispiel SHA-1) und wendet eine Expansionsfunktion an, um einen langen Bitstring zu bekommen. 8.2 Andere Public-Key-Verfahren Für die digitale Signatur lässt sich sofort jedes Public-Key-Verfahren verwenden, bei dem Verschlüsselung und Entschlüsselungsmethode vertauschbar sind, das heißt E(D(m)) = m. Aber es geht auch anders ElGamal-Signatur Bei dem ElGamal-Verfahren sind Entschlüsselung und Verschlüsselung nicht vertauschbar; daher sieht das Signaturverfahren etwas anders aus als die weiter oben vorgestellte ElGamal-Verschlüsselung. 80

81 A wählt einmal eine Primzahl p und eine Zahl g < p. A wählt a < p 1 und berechnet α = g a mod p. Der geheime Schlüssel ist a, der öffentliche Schlüssel besteht aus (p, g, α). Signiert wird eine Nachricht m mit Hilfe einer Hashfunktion h(x). A wählt zufällig eine Zahl k < p 1, die zu p 1 teilerfremd ist und berechnet r = g k mod p Die Signatur besteht aus (r, s). s = k 1 (h(m) a r) mod (p 1) Verifikation der Signatur: überprüfe zunächst, dass 1 r p 1. Dann berechne α r r s = (g a ) r (g k ) k 1 (h(m) a r) mod p = g h(m) mod p. Probleme des ElGamal-Signatur-Verfahrens 1. Kann durch Berechnung des diskreten Logarithmus geknackt werden (sehr schwierig). 2. Unter gewissen Bedingungen ist das Knacken einfacher, nämlich wenn (a) p 3 (mod 4), (b) g ein Teiler von p 1 ist, (c) die Berechnung diskreter Logarithmen in einer Untergruppe möglich ist (das heißt, wenn g nicht zu groß ist). 3. Für jede Signatur muss die Zahl k neu gewählt werden, sonst lässt sich der geheime Schlüssel a berechnen! 4. Es muss eine Hashfunktion verwendet werden, sonst ist die existenzielle Fälschung möglich. 5. Dieses Verfahren ist deutlich aufwändiger als RSA: die Überprüfung erfordert drei modulare Exponentiationen. 81

82 8.2.2 Der Digital Signature Algorithm (DSA) 1991 vorgeschlagen von NIST; Teil des Digital Signature Standard (DSS, 1994); NSA wieder beteiligt. Effizientere Variante von ElGamal, nur zwei modulare Exponentiationen, die Exponenten sind nur 160 Bit lang. 1. Eine Primzahl p der Länge L, wobei L zwischen 512 und 1024 liegt und ein Vielfaches von 64 ist, als Formel ausgedrückt: t < p < t, t = 0, 1, 2, 3, 4, 5, 6, 7, 8, (Ursprünglich sollte p genau 512 Bit lang sein, dieses wurde aber als zu kurz kritisiert.) 2. Eine Primzahl q der Länge 160 Bit, das heißt, < q < 2 160, 3. p 1 ist durch q teilbar, das heißt, q ist ein Primfaktor von p 1, 4. eine Zahl x < p 1, sodass 5. eine Zahl a < q. 1. Berechne α = g a mod p. g = x (p 1)/q mod p > 1, 2. Der geheime Schlüssel ist die Zahl a, der öffentliche Schlüssel besteht aus des Zahlen (p, q, g, α). 3. Eine Einweg-Hashfunktion h(m), DSS schreibt SHA-1 vor (160 Bit). Erzeugung der Signatur Die Signatur der Nachricht m berechnet sich wie folgt: Absender A wählt eine Zufallszahl k < q und berechnet: Die Signatur besteht aus (r, s). r = (g k mod p) mod q, s = k 1 (h(m) + a r) mod q. 82

83 Überprüfung der Signatur Der Empfänger überprüft zunächst, dass 1 r, s q 1 sind. Dann berechnet er ((g (s 1 h(m)) mod q α (rs 1 ) mod q ) mod p) mod q = ((g (s 1 (h(m)+ar)) mod q ) mod p) mod q = (g k mod p) mod q = r. Effizienz DSA ist bei Prüfen der digitalen Unterschrift um einen Faktor von langsamer als RSA. Beschleunigung durch Vorberechnung: r hängt nicht von der Nachricht ab, sondern nur von der Zufallszahl k: r = (g k mod p) mod q. Daher kann man im Voraus einige Zufallszahlen erzeugen und die zugehörigen Werte von r für die nächsten Nachrichten berechnen, ohne die Nachrichten selber zu kennen. Alle Exponenten sind maximal 160 Bit lang. Sicherheit Neues k für jede Signatur wählen: kann eine Angreiferin zwei Nachrichten abhören, die mit dem gleichen Wert von k verschlüsselt wurden, so kann sie den geheimen Schlüssel a daraus gewinnen! Gute Hashfunktion wählen, Überprüfung von 1 r, s q 1, die Länge von p bestimmt die Sicherheit (512 Bit waren zu wenig!) RSA-Verschlüsselung mit DSA Angenommen, man hat eine Prozedur für DSA implementiert, die bei Eingabe von (p, q, g, k, x, h = H(m)) die Werte r und s zurück liefert: DSAsign(p,q,g,k,x,h,r,s) 83

84 Dann kann man dieselbe Prozedur auch zur RSA-Verschlüsselung mit Modul n, Nachricht m und öffentlichem Schlüssel e benutzen: DSAsign(n,n,m,e,0,0,r,s) Der verschlüsselte Text ist der Wert von r. Ist d der geheime Schlüssel und m die verschlüsselte Nachricht, so liefert DSAsign(n,n,m,d,0,0,r,s) die Klartextnachricht als r zurück. ElGamal-Verschlüsselung mit DSA Auch ElGamal-Verschlüsselung einer Nachricht m mit öffentlichem Schüssel β ist damit möglich (mit f k (m) = k m mod p): Man wähle eine Zufallszahl a und rufe die Prozedur wie folgt auf: DSAsign(p,p,g,a,0,0,alpha,s) α ist der erste gewünschte Wert, s wird weggeworfen. Dann rufe DSAsign(p,p,beta,a,0,0,k,s) auf, s wird wieder weggeworfen und DSAsign(p,p,m,1,k,0,r,c) aufgerufen. Diesmal wird r weggeworfen; c ist zusammen mit der Zahl α der gewünschte Geheimtext. Die zugehörige Entschlüsselung funktioniert dann so: man nehme α und den geheimen Schlüssel b und berechne: DSAsign(p,p,alpha,b,0,0,k,s) s wird ignoriert, und man berechnet aus k und c: DSAsign(p,p,1,k,c,0,r,m) m ist der Klartext der Nachricht. Ein Wort der Warnung Dies funktioniert nur, wenn der DSA-Algorithmus für beliebige Eingabewerte implementiert ist. Bei der Signatur muss ja q 160 Binärstellen haben, und p mindestens 512, höchstens

85 9 Das Schlüsselverteilungsproblem Alle öffentlichen Schlüssel sind allgemein bekannt. Es muss aber sichergestellt sein, zu welcher Person ein öffentlicher Schlüssel gehört, sonst könnte ein Angreifer einen falschen öffentlichen Schlüssel unterschieben. Wie kann B garantieren, dass ein öffentlicher Schlüssel d zur Person A gehört? 9.1 Lösungsansatz Theorie 1. A übergibt den eigenen öffentlichen Schlüssel e A persönlich an B sichere Methode aber nur in sehr kleinem Rahmen praktikabel. 2. C übergibt seinen öffentlichen Schlüssel e C persönlich an B. A übergibt e A persönlich an C. C erstellt eine digitale Signatur sig C (Name A, d A ) des Paares aus Name und Schlüssel von A und schickt sie zusammen mit e A per an B weiter. Name, öffentliche Schlüssel und Signatur zusammen bezeichnet man als Zertifikat. Wenn B dem Überbringer C vertraut, vertraut er auch Cs digitaler Signatur und glaubt daher, dass e A der öffentliche Schlüssel von A ist Ad-Hoc-Vertrauen Letzteres kann man auch über mehrere Personen fortsetzen: B traut C, C traut A und E, A traut D und F, D traut G und H, E traut F, G traut C, H traut G. Nehmen genügend Personen teil, so ergibt sich ein Netzwerk des Vertrauens ( web of trust ). Auf dieser ad-hoc Methode baut die Schlüsselverteilung bei PGP auf. Es gibt keine Regel, wie genau Schlüssel weitergegeben werden; jeder Teilnehmer entscheidet selber, ob er einer digitalen Signatur soweit traut, dass er den damit unterschriebenen Schlüssel für richtig hält oder sogar selber digital signiert. Dies erfordert keine weitere Organisation und hat sich in begrenztem Rahmen bisher auch bewährt. Die entstandene Schlüsselsammlung heißt keyring (Schlüsselbund). Das System leidet an zwei grundsätzlichen Problemen: Zum einen muss es immer einen Vertrauenspfad zu einem anderen Teilnehmer geben, damit man an den öffentlichen Schlüssel dieser Person gelangen kann. Das funktioniert gut in begrenztem Rahmen, aber zum Beispiel für ein System, das alle Menschen auch nur in einer Stadt umfasst, ist es zu kompliziert. 85

86 Das führt zum zweiten Problem: Das Konzept von PGP ist dem durchschnittlichen Computerbenutzer nicht nahe zubringen. (Es ist schon schwierig genug, das Konzept eines Public-Key-Kryptosystems zu erklären!) Hierarchisches Vertrauen Einen anderen Weg geht die hierarchische Methode: Hier gibt es eine zentrale Instanz, der alle Teilnehmer vertrauen. Diese Instanz kann entweder alle Schlüssel der Teilnehmer direkt überprüfen und signieren oder aber diese Aufgabe an Unterinstanzen delegieren. Dadurch wird garantiert, dass der öffentliche Schlüssel eines jeden Teilnehmers von einer vertrauenswürdigen Instanz digital signiert ist. Eine solche Instanz nennt man eine Certificate Authority (CA), die oberste Instanz in einer Hierarchie Root- CA. Eine Root-CA signiert ihren öffentlichen Schlüssel mit dem dazugehörigen geheimen Schlüssel. Das bedeutet: man kann zwar die Gültigkeit eines Root-CA-Zertifikats überprüfen, indem man die digitale Unterschrift prüft, aber dem Zertifikat selbst und damit der Root-CA muss man vertrauen. Beispiel Die Firma MBI will die öffentlichen Schlüssel aller Angestellten signieren. Dazu richtig sie eine zentrale Root-CA Z am Firmensitz in den USA ein. Damit nicht alle Angestellten persönlich dorthin reisen müssen, um ihre Identität nachzuweisen, werden in allen Ländern, in denen die Firma Niederlassungen hat, länderspezifische Signaturstellen (CAs) eingerichtet. Die zentrale Signaturinstanz Z signiert die öffentlichen Schlüssel aller dieser Signaturstellen. Damit nicht alle Angestellten in Deutschland zum Sitz der Niederlassung reisen müssen, werden an allen Standorten standortspezifische Signaturinstanzen eingerichtet, deren öffentliche Schlüssel von der für Deutschland zuständigen Signaturinstanz D digital signiert werden. Jede Angestellte muss jetzt nur noch bei der Signaturinstanz S ihres Standortes persönlich vorsprechen, um ihren öffentlichen Schlüssel digital signieren zu lassen. Die so bestätigten öffentlichen Schlüssel werden im Firmennetzwerk veröffentlicht. Wenn ein Angestellter B in den USA den öffentlichen Schlüssel einer Angestellten A in Deutschland braucht, besorgt er sich diesen im Firmennetzwerk und überprüft die Kette der Signaturen: As Schlüssel ist von S signiert. Die Gültigkeit der Signatur von S kann er mit dem öffentlichen Schlüssel von S prüfen. Der wiederum ist von D signiert, der öffentliche 86

87 Schlüssel von D von Z. Den einzigen Schlüssel, den B also wirklich auf sichere und nachweisbare Weise braucht, ist der der Root-CA Z. Solch eine Struktur nennt man eine Public-Key-Infrastruktur (PKI). Allerdings gehört noch mehr dazu: es muss zum Beispiel möglich sein, einen öffentlichen Schlüssel für ungültig zu erklären. Ein Teilnehmer könnte nämlich seinen privaten Schlüssel verlieren (womit der öffentliche Schlüssel nutzlos wird, weil das Gegenstück fehlt), oder noch schlimmer, der private Schlüssel könnte gestohlen oder gar bekannt werden. In diesen Fällen muss dies der zuständigen Signaturinstanz gemeldet werden. Diese veröffentlicht eine oder mehrere Listen ungültiger Schlüssel, oder sie bietet sogar die Möglichkeit, über das Internet nachzufragen, ob ein öffentlicher Schlüssel gültig ist oder nicht. (CRL=Certificate Revocation List). Zertifikate haben eine begrenzte Gültigkeitsdauer. Dies hat mehrere Gründe: Je länger ein Zertifikat gültig ist, desto größer ist die Chance, dass es kompromittiert wird. Ein Zertifikat, das selber zertifiziert wurde, kann nicht länger gültig sein, als das ausstellende Zertifikat. Beim Erneuern eines Zertifikats kann man die darin enthaltene Information aktualisieren (Name, Adresse, usw.). Typische Gültigkeitsdauer ist einige Monate bis einige Jahre. Das Root-CA-Zertifikat müssen alle Teilnehmer einmal auf sichere Weise bekommen. Dies ist aber viel einfacher, als viele Zertifikate auf sichere Weise zu erhalten. Zum Beispiel enthalten die Web-Browser vom Hersteller schon eine die Zertifikate einer ganzen Reihe von vertrauenswürdigen Root-CAs. Basis der Zertifikatsdienste ist der Standard X.509 (CCITT). Er regelt das Format der Zertifikate und was man alles an Attributen unterbringen kann. Unglücklicherweise ist es ein sehr komplizierter Standard. 9.2 Probleme des theoretischen Ansatzes Das Zertifikat ist an einen Namen gebunden. Was ist ein Name? (PGP: Name/ ) Was ist eine gute CA? Wem vertraue ich? 87

88 Ideal wäre eine universelle CA, sozusagen für Alles und Alle. Aber welche Bank traut einer staatlichen Stelle? Es gibt keine Organisation, der jeder und jede vertraut. Indirekte Authorisierung: Einem (Benutzer-)Zertifikat sind gewisse Rechte zugeordnet, zum Beispiel der Zugriff auf das (eigene) Bankkonto (Access Control List, ACL). Problem: Diese Zuordnung ist extern zum Zertifikat und damit getrennt angreifbar. Direkte Authorisierung: Die Zugriffsrechte (zum Beispiel auf das Bankkonto) sind Teil des Zertifikats. Problem: Die Zugriffsrechte müssen bei der Ausstellung des Zertifikats eingetragen werden, also auch organisiert und festgelegt sein. 9.3 PKI: Realistischer Lösungsansatz Jede Anwendung hat ihre eigene PKI mit eigener CA. Jeder Benutzer ist zu einer gegebenen Zeit Mitglied vieler verschiedener PKIen. Er/Sie muss für jede PKI jeweils verschiedene Schlüssel benutzen. Derselbe Schlüssel ließe sich nur dann in zwei (oder mehr) PKI-Systemen benutzen, wenn beide mindestens technisch gleich funktionieren (zum Beispiel denselben Signaturalgorithmus benutzen mit der derselben Schlüssellänge usw.). Der Zweck der einzelnen PKI ist, einem Schlüssel eine Art Beglaubigung (englisch: credential) zuzuordnen. Die PKI der Bank dient zur Beglaubigung des Zugriffs auf das Bankkonto, die PKI des Arbeitsgebers kann den Zugriff auf das Firmennetzwerk beglaubigen. 9.4 PKI: Widerruf eines Zertifikats Der Widerruf eines Zertifikats ist ein schwieriges Problem. Die Möglichkeit muss es geben, denn zum Beispiel muss ein Arbeitgeber den Zugang zum Firmennetzwerk sperren können, wenn ein Mitarbeiter ausscheidet. Einen gewöhnlichen Ausweis aus Papier oder Plastik kann man vernichten. Ein elektronisches Zertifikat kann nicht vernichtet werden, da niemand weiß, wie viele Kopien davon angelegt wurden und wo sie gespeichert sind. Manche PKI-Implementationen ignorieren das Problem. Tatsächlich sind PKIen ohne Widerruf praktisch nutzlos: Schlüssel werden kompromittiert, und die PKI muss damit umgehen können. 88

89 Es gibt in Wesentlichen zwei funktionierende Lösungen für dieses Problem: kurze Gültigkeit und Widerrufslisten Widerruf durch begrenzte Gültigkeit Wenn die Gültigkeit eines Zertifikats nach kurzer Zeit wieder abläuft (10 Minuten bis 24 Stunden), muss die Benutzerin für jede Benutzung jedes mal ein neues Zertifikat anfordern. Ein Widerruf ist nicht erforderlich, man braucht nur eine hinreichend schnelle CA, die das Zertifikat bei Bedarf sofort ausstellt. Nachteil: es ist nicht möglich, ein Zertifikat vor Ablauf zu widerrufen. Daher ist diese Methode nicht geeignet für Anwendungen, die einen sofortigen Widerruf erfordern Widerruf mittels Widerrufsliste Eine Widerrufsliste (Englisch: Certificate Revocation List, CRL) ist eine Datenbank, die alle widerrufenen Zertifikate enthält. Jeder, der ein Zertifikat überprüfen will, muss nicht nur die digitale Signatur prüfen, sondern auch, dass das Zertifikat nicht in der CRL auftaucht. Jede CRL enthält auch die Information, ab und bis wann sie gültig ist, damit man eine veraltete CRL sofort erkennen kann. Vorteile einer zentralen CRL-Datenbank: Der Widerruf eines Zertifikats geschieht praktisch instantan: einmal eingetragen, kann ein Zertifikat nicht mehr benutzt werden. Es gibt keine Begrenzung der Anzahl der widerrufenen Zertifikate. Nachteile einer zentralen CRL-Datenbank: Alle Zertifikate müssen online geprüft werden, um die Datenbank abzufragen. Die CRL-Datenbank ist ein single point of failure. Auswege: Redundante, verteilte CRL-Datenbank: teuer und schwierig. Jeder Teilnehmer hat eine Kopie der CRL: nur für relativ kurze Listen machbar Jeder Teilnehmer (Klient) hält die Kopie der CRL nur für kurze Zeit (Caching): das regelmäßige Update produziert eine hohe Netzlast. 89

90 9.4.3 OCSP Online Certificate Status Protocol OCSP dient zur Abfrage des aktuellen Zustands eines Zertifikats: Ein Klient erfragt die Gültigkeit eines Zertifikats bei einem so genannten Responder, dessen Antwort (Gut/Zurückgezogen/Unbekannt) digital signiert ist. Die Antwort ist aktuell. Die Netzwerklast ist deutlich geringer als bei der vollständigen Übertragung der gesamten CRL. Transportprotokoll ist HTTP. Die URL für den Responder sollte im X.509-Zertifikat enthalten sein. 9.5 Beispiele: Zertifikate nach X.509 Zur Demonstration hier der Inhalt eines Zertifikats, dessen Gültigkeitsdauer bereits abgelaufen ist (erzeugt mit openssl). Certificate: Data: Version: 3 (0x2) Serial Number: 2 (0x2) Signature Algorithm: md5withrsaencryption Issuer: C=DE, ST=Rhineland-Palatinate, L=Mainz, O=Proteosys, OU=Certificate Issuing Authority, CN=Proteosys of Mainz Issuing CA/ =ca@proteosys.de Validity Not Before: Oct 10 15:43: GMT Not After : Aug 6 15:43: GMT Subject: C=DE, ST=Rhineland-Palatinate, L=Mainz, O=Proteosys, CN=imap.proteosys/ =postmaster@proteosys.de Subject Public Key Info: Public Key Algorithm: rsaencryption RSA Public Key: (1024 bit) Modulus (1024 bit): 00:af:1f:64:56:5f:58:ce:8c:df:8b:fa:98:42:73: 82:31:8a:71:73:6d:54:5a:da:33:9f:28:24:28:49: 5f:f3:33:a9:0d:f2:b7:a9:a5:51:31:bf:91:60:7f: df:4c:db:7d:30:5f:13:8a:55:3d:b4:45:7a:d9:72: bb:f5:f0:24:51:f7:31:0b:64:5a:c1:c1:1c:1d:e4: 32:25:2d:87:f9:9b:d8:c9:0b:23:45:b1:04:75:98: 2e:f8:a7:40:83:d5:52:7f:7d:a3:c9:96:77:27:15: 0d:96:15:e3:cf:3b:a9:6f:14:e9:39:e1:0e:2d:1b: 4e:03:0e:3b:05:fb:71:9a:23 Exponent: (0x10001) X509v3 extensions: X509v3 Subject Alternative Name: postmaster@proteosys.de Netscape Comment: OpenSSL generated custom server certificate Netscape Cert Type: 90

91 SSL Server Signature Algorithm: md5withrsaencryption 31:93:99:e4:10:01:1f:28:9d:b8:7e:63:0e:15:44:f4:fb:9c: 60:de:8c:07:03:bc:e0:2b:b5:13:72:9e:9a:98:e5:c5:3f:47: c8:8f:12:40:34:26:38:87:d4:c7:a5:b3:77:f7:85:a7:18:92: eb:6f:98:49:d2:b6:d1:ad:42:27:b0:45:e0:1c:9a:68:7c:07: eb:be:46:b4:da:ab:38:3d:b6:cc:a1:80:74:2d:aa:ca:3f:b5: aa:de:84:6f:ca:ad:17:94:74:77:54:0d:7b:dd:fe:d4:d7:b2: a8:f1:28:c7:c9:a6:1c:a0:7b:78:82:0d:05:0a:41:24:de:82: 28:f6:8f:0a:20:d0:07:f5:c7:ae:ff:b2:1e:c5:43:1d:c0:aa: bb:27:3f:63:2e:71:79:bc:a8:07:64:a8:22:2e:79:d9:c9:6b: 57:4b:15:6b:03:3c:04:2b:21:5b:4f:af:37:1c:47:3f:73:a5: 9a:cf:30:00:b5:e5:c3:3c:76:b8:81:34:0a:30:01:c9:bb:d1: f4:6a:b2:18:35:7b:90:31:06:9f:9a:e8:8f:de:5b:ac:ad:c8: a6:b5:f7:19:99:8f:21:17:14:5e:6b:c3:bd:37:16:04:0b:3c: 76:9b:9f:61:e8:4f:76:b5:56:90:f0:87:df:2e:21:eb:96:74: 84:54:f4:a6 Dasselbe Zertifikat, dargestellt im Internet Explorer: Ein Root-CA-Zertifikat von Verisign, Inc., dargestellt im Internet Explorer: 91

92 PGP verwendet ein etwas anderes Konzept zum Widerruf eines öffentlichen PGP-Schlüssels: Es wird ein so genanntes Revocation Certificate erzeugt, das mit dem zugehörigen privaten Schlüssel signiert ist. Dadurch kann nur der Besitzer des privaten Schlüssels den öffentlichen Schlüssel als ungültig markieren. Das Revocation Certificate wird als Update des öffentlichen Schlüssel verteilt. Neuere Versionen von PGP erlauben es, dieses Recht an andere private Schlüssel zu delegieren. PGP-Schlüssel werden über ein weltweites Netzwerk von so genannten PGP-Keyservern verteilt. Öffentliche Schlüssel können von jedem auf diese Server geladen werden. Updates vorhandener Schlüssel (neue Signaturen oder Widerruf) werden erkannt und korrekt in der Keyserver-Datenbank vermerkt. 92

93 10 Anonymität Wird eine verschlüsselte Nachricht gesendet, so ist der Inhalt der Nachricht verborgen. Nicht verborgen sind: die Identität des Absenders, die Identität des Empfängers, die Tatsache, dass eine Nachricht gesendet wird. Man kann also drei Arten von Anonymität unterscheiden: Anonymität des Absenders, Anonymität des Empfängers, Anonymität der Nachrichtenbeziehung. Wozu Anonymität? Beispiele Erhebung vertraulicher Daten Elektronische Wahlen Anonymer Chat Elektronisches Geld 10.1 Einfache Modelle für Anonymität Anonymität des Empfängers: Broadcasting Anonymität des Senders: Pseudonyme Anonymität der Kommunikationsbeziehung: Rauschen 10.2 Elektronisches Geld Gewünschte Eigenschaften einer elektronischen 2-Euro-Münze sind: Sie wird von jedem Händler oder Automaten als Äquivalent von 2 akzeptiert. 93

94 Wenn die elektronische Münze einmal akzeptiert wurde, kann niemand mehr feststellen, wer sie eingelöst hat (so genannte blinde Signatur). Gehen wir von einem asymmetrischen Signaturschema aus, der Einfachheit halber nehmen wir RSA. Die ausgebende Bank hat ein spezielles Paar von öffentlichem/geheimen Schlüsseln: Modul n, öffentlicher Exponent e, geheimer Exponent d. Ein Kunde möchte ein elektronische 2 -Stück erwerben. Er erzeugt dazu zwei etwa gleich große Zahlen V und C. V ist das Rohmaterial für die Münze, C dient zur Verschleierung (Camouflage). Er bildet die Zahl W durch zweimaliges hintereinander schreiben der Zahl V und berechnet mit Hilfe des öffentlichen Schlüssels (e, n) der Bank die Zahl S = C e W mod n = E(C) W mod n, die er an die Bank schickt. Die Bank bucht 2 von seinem Konto ab und berechnet T = S d mod n = D(S) Die elektronische Münze ist dann Z = T C 1 mod n = S d C 1 mod n = C ed W d C 1 mod n = C W d C 1 mod n = W d mod n = D(W ). Jeder Händler oder Kaugummiautomat kann die Gültigkeit mit Hilfe des öffentlichen Schlüssels der Bank überprüfen: E(Z) = Z e mod n = W ed mod n = W, und anschließend muss überprüft werden, dass W aus zwei gleichen Hälften besteht. Eigenschaften dieser elektronischen Münze Anonymität Z ist nur dem Kunden der Bank bekannt, nicht der Bank selbst, denn die kennt nur S und T. Damit kann niemand von Z auf den Kunden schließen. Reproduzierbarkeit Die Münze kann jederzeit kopiert werden. Um die Gültigkeit zu prüfen, muss bei der Bank nachgefragt werden, ob die Münze schon eingelöst wurde. Es handelt sich um ein Online- Münzsystem. 94

95 Es gibt auch Vorschläge für Offline-Münzsysteme. Dabei bleibt beim ersten Einlösen die Person anonym. Wird versucht, dieselbe Münze ein zweites Mal einzulösen, kann die Bank die Person finden, an die die Münze ausgegeben wurde. 11 Beispiele aus der realen Welt 11.1 Was ist das? (aus einer Software-Ankündigung) Legion of the Bouncy Castle Java Cryptography API 1.24 by David Hook - Monday, June 14th :58 PDT About: The Legion of the Bouncy Castle Java Cryptography API provides a lightweight cryptography API in Java, a provider for the JCE and JCA, a clean-room implementation of the JCE 1.2.1, generators for Version 1 and Version 3 X.509 certificates, PKCS12 support, and APIs for dealing with S/MIME, CMS, OCSP, and OpenPGP. Versions are provided for the J2ME, and JDK Changes: This release patched a problem that could affect the encoding of ASN.1 bit strings. Modifications were made to OpenPGP secret key ring processing to handle user attribute packets and GPG comment packets. The OpenPGP API now supports the creation of key ring sub-keys. A bug in the lightweight CBCBlockCipherMac class was fixed, and JARs compiled and tested against JDK 1.5 were provided Was ist PKCS? PKCS (Public-Key Cryptography Standards) ist ein Satz von Standards für die Implementation von Public-Key-Kryptografie. Er wurde ausgegeben von der Firma RSA, in Zusammenarbeit mit einem Industriekonsortium. PKCS#1 RSA Cryptography Standard: Empfehlungen für die Implementation des RSA-Algorithmus für Public-Key-Kryptografie. PKCS#7 Cryptographic Message Syntax (CMS) Standard: beschreibt eine allgemeine Syntax für Daten, die kryptografisch verarbeitet werden, wie digitale Signaturen oder digitale Umschläge. PKCS#10 Certification Request Syntax Standard: beschreibt die Syntax für einen request for certification eines öffentlichen Schlüssels, eines Namens, und eventuell eines Satzes von Attributen. 95

96 PKCS#12 Personal Information Exchange Syntax Standard: beschreibt ein portables Format zur Speicherung der privaten Schlüssel, Zertifikate und sonstigen Geheimnisse eines Benutzers Die CCITT-Standards Das CCITT Comité Consultatif International Téléphonique et Télégraphique ist die Vorläuferorganisation der ITU International Telecommunication Union. Es handelt sich um eine 1932 gegründete internationale Organisation zur Abstimmung weltweiter Standards im Bereich der Daten- und Telekommunikation. Für uns wichtig sind folgende Standards: X.208 Recommendation X.208: Specification of Abstract Syntax Notation One (ASN.1) X.209 Recommendation X.209: Specification of Basic Encoding Rules for Abstract Syntax Notation One (ASN.1) X.500 Recommendation X.500: The Directory Overview of Concepts, Models and Services X.509 Recommendation X.509: The Directory Authentication Framework ASN.1 Abstract Syntax Notation One (ASN.1) ist ein Standard zur Übertragung strukturierter Daten über ein Netzwerk. ASN.1 definiert die abstrakte Syntax der Information, aber nicht, wie die Information kodiert wird. Es gibt eine Reihe von Kodierungsregeln für die konkrete Representation der Daten, der abstrakte Syntax in ASN.1 beschrieben ist. Die Standardkodierungsregeln sind: BER Basic Encoding Rules - X.209, CER Canonical Encoding Rules DER Distinguished Encoding Rules PER Packed Encoding Rules 96

97 ASN.1 plus eine dieser Kodierungsregeln erlaubt den Austausch strukturierter Daten zwischen verschiedenen Anwendungsprogrammen über Netzwerke. Dabei werden die Datenstrukturen unabhängig von Maschinenarchitektur und Implementierungssprache beschrieben. Beispiel: Zwei Anwendungsprogramme sollen den öffentlichen Schlüssel für einen Benutzer austauschen. Die zu übertragenden Informationen sind: Name der Benutzers (String) adresse des Benutzers (String) Verschlüsselungsverfahren (Nummer in einer Aufzählung) Öffentlicher Schlüssel (eine Folge von Bits) ASN.1 beschreibt, wie ich diese Informationen (String,String,Nummer,Bitfolge) abstrakt darstelle ( jetzt kommt ein String der Länge 10 ), die zugehörige Kodierungsregel, wie die Informationen übertragen werden. Die Bedeutung der Daten ist Sache der Anwendungsprogramme! X.509 X.509 ist ein Standard für PKI. X.509 spezifiziert Standardformate für digitale Zertifikate. Ursprünglich (X.509v1) wurde ein streng hierarchisches System der CAs angenommen, die möglichen Felder waren genau festegelegt. X.509v3 (Version 3) erlaubt das Hinzufügen neuer Felder und damit auch andere Topologien. Ein X.509-Zertifikat, das eine CA erstellt, bindet einen öffentlichen Schlüssel an einen Distinguished Name (X.500) oder an einen sogenannten Alternative Name, zum Beispiel eine -Adresse oder einen DNS-Eintrag. Enthält das X.509-Zertifikat nur einen öffentlichen Schlüssel, so wird es meist als.cer-datei in Base-64- oder DER-Kodierung gespeichert. Möglich ist auch die Benutzung des PKCS #7-Standards (.p7b). 97

98 Enthält das X.509-Zertifikat auch den privaten Schlüssel, so wird es normalerweise als.pfx-datei gemäß dem PKCS #12-Standard gespeichert. Struktur eines X.509-Zertifikats Zertifikat Version Seriennummer ID des Algorithmus Aussteller Gültigkeit * Nicht vor * Nicht nach Subjekt Informationen über den Öffentlicher Schlüssel * Public-Key-Algorithmus * Der öffentliche Schlüssel selbst Unique Identifier des Ausstellers Unique Identifier des Subjekts Erweiterungen nach X.509v3 Algorithmus der digitalen Signatur Digitale Signatur Beispiel: Zertifikat im X.509-Format: Certificate: Data: Version: 3 (0x2) Serial Number: 38 (0x26) Signature Algorithm: md5withrsaencryption Issuer: C=DE, ST=Rhineland-Palatinate, L=Mainz, O=Proteosys, OU=Root Certificate Authority, CN=Proteosys Root CA/ Address=ca@p Validity Not Before: Sep 16 12:31: GMT Not After : Oct 5 12:31: GMT Subject: C=DE, ST=Rhineland-Palatinate, L=Mainz, O=Proteosys, OU=Certificate Issuing Authority, CN=Proteosys of Mainz Issuing CA/e Subject Public Key Info: Public Key Algorithm: rsaencryption RSA Public Key: (2048 bit) Modulus (2048 bit): 00:c2:21:4f:3a:92:bf:64:3c:c7:bb:05:b2:5e:d3: 8d:d4:cb:7d:28:1d:14:ed:db:68:67:f2:2d:3d:48: f3:5f:8b:e1:92:62:4a:0b:be:a0:56:0c:72:a1:09: 59:77:a7:25:83:df:1c:4b:19:78:79:95:08:7a:8c: b2:8c:af:ee:f8:ea:d6:c9:74:cd:2e:64:92:40:9a: 30:0e:79:b5:b7:98:ea:5e:fb:e2:10:11:4b:53:3d: 98

99 80:74:d7:bc:3b:1a:af:be:a5:77:d0:8f:9c:2f:92: 48:38:67:66:10:ad:96:1f:73:88:72:3c:1d:39:0c: dd:32:a4:44:f0:3e:0c:81:8c:c0:a7:fd:20:5c:5f: 41:92:0e:ed:b8:b2:8b:2d:75:a9:71:e0:cc:c9:68: cf:f1:8e:27:2c:70:60:88:d3:8c:55:7c:74:f1:fc: 7f:58:30:6b:fe:63:8c:65:34:89:e0:77:98:bb:b2: 63:ca:a4:7d:5e:43:12:3e:0d:3d:32:ca:f7:be:fb: 38:10:26:4a:5b:bf:d9:32:2b:6d:9c:be:6f:13:8b: f7:df:67:92:4d:2a:06:76:5d:2b:f0:6b:13:ed:b7: fd:bc:a3:d4:8d:3f:49:19:3a:2a:61:62:e6:34:b1: 14:da:d1:47:0b:6f:8d:5e:07:e9:be:91:5c:fa:ef: 17:17 Exponent: (0x10001) X509v3 extensions: X509v3 Subject Alternative Name: X509v3 Basic Constraints: CA:TRUE Signature Algorithm: md5withrsaencryption a5:99:2d:2f:ce:ae:b0:32:d9:28:1d:be:5c:0e:84:34:35:d8: 60:12:d5:ce:2b:51:7e:ed:83:10:93:cb:03:fa:ba:91:5b:9a: 39:39:65:77:46:df:1a:47:c4:f5:d6:23:1c:cc:64:90:e4:5e: 34:62:69:25:e4:ac:7c:ea:ee:49:b5:f4:0d:ad:96:b9:de:28: 1b:fe:85:d9:11:90:30:f2:7a:a6:a9:c0:a8:df:f1:b2:37:6a: 3a:d7:02:fe:6f:0c:1f:10:5f:4a:1e:74:fe:35:dc:f7:99:f5: 5c:ca:92:8b:9b:13:0a:99:39:d4:9e:d4:d7:8d:bf:ee:28:bc: 3d:a8:01:a4:ab:a9:b4:32:a1:65:f3:1f:cb:95:0f:bc:f2:c4: 12:42:0d:0a:42:1c:9c:03:c2:b4:d1:c1:fd:9b:3c:9d:74:a7: e7:b0:be:7e:b5:dd:07:c3:0e:98:75:61:60:27:7f:78:ca:e1: fa:84:92:75:f2:f9:b8:d6:7b:eb:37:59:fd:7d:dc:68:89:f7: 94:15:7f:31:9a:a2:f5:8d:1b:ef:4a:7f:b5:ca:0d:e6:3d:33: e0:7b:31:77:ff:c1:0a:42:21:03:54:70:bf:a8:fc:29:10:a6: ba:f3:87:f4:2c:c4:41:0e:dd:9a:1e:62:ff:a6:aa:a4:8a:42: 3d:19:f3:90 Die abstrakte ASN.1-Darstellung: 0:d=0 hl=4 l=1050 cons: SEQUENCE 4:d=1 hl=4 l= 770 cons: SEQUENCE 8:d=2 hl=2 l= 3 cons: cont [ 0 ] 10:d=3 hl=2 l= 1 prim: INTEGER :02 13:d=2 hl=2 l= 1 prim: INTEGER :26 16:d=2 hl=2 l= 13 cons: SEQUENCE 18:d=3 hl=2 l= 9 prim: OBJECT :md5withrsaencryption 29:d=3 hl=2 l= 0 prim: NULL 31:d=2 hl=3 l= 177 cons: SEQUENCE 34:d=3 hl=2 l= 11 cons: SET 36:d=4 hl=2 l= 9 cons: SEQUENCE 38:d=5 hl=2 l= 3 prim: OBJECT :countryname 43:d=5 hl=2 l= 2 prim: PRINTABLESTRING :DE 47:d=3 hl=2 l= 29 cons: SET 49:d=4 hl=2 l= 27 cons: SEQUENCE 51:d=5 hl=2 l= 3 prim: OBJECT :stateorprovincename 56:d=5 hl=2 l= 20 prim: PRINTABLESTRING :Rhineland-Palatinate 78:d=3 hl=2 l= 14 cons: SET 80:d=4 hl=2 l= 12 cons: SEQUENCE 82:d=5 hl=2 l= 3 prim: OBJECT :localityname 87:d=5 hl=2 l= 5 prim: PRINTABLESTRING :Mainz 94:d=3 hl=2 l= 18 cons: SET 96:d=4 hl=2 l= 16 cons: SEQUENCE 98:d=5 hl=2 l= 3 prim: OBJECT :organizationname 103:d=5 hl=2 l= 9 prim: PRINTABLESTRING :Proteosys 114:d=3 hl=2 l= 35 cons: SET 116:d=4 hl=2 l= 33 cons: SEQUENCE 118:d=5 hl=2 l= 3 prim: OBJECT :organizationalunitname 123:d=5 hl=2 l= 26 prim: PRINTABLESTRING :Root Certificate Authority 151:d=3 hl=2 l= 26 cons: SET 153:d=4 hl=2 l= 24 cons: SEQUENCE 155:d=5 hl=2 l= 3 prim: OBJECT :commonname 160:d=5 hl=2 l= 17 prim: PRINTABLESTRING :Proteosys Root CA 179:d=3 hl=2 l= 30 cons: SET 181:d=4 hl=2 l= 28 cons: SEQUENCE 183:d=5 hl=2 l= 9 prim: OBJECT : address 194:d=5 hl=2 l= 15 prim: IA5STRING :ca@proteosys.de 211:d=2 hl=2 l= 30 cons: SEQUENCE 213:d=3 hl=2 l= 13 prim: UTCTIME : Z 228:d=3 hl=2 l= 13 prim: UTCTIME : Z... 99

100 11.4 Verschüsselung und das OSI-Schichtenmodell Zusätzliche Sicherheit (Verschlüsselung/Authentisierung) bei der Datenübertragung kann im Prinzip auf eine von zwei Weisen hinzugefügt werden: Zusätzliche Sicherheit der Kommunikationsverbindung selbst, in den Schichten 1-4 (Beispiel: IPsec in Schicht 3). Zusätzliche Sicherheit kann um die Daten herum gebaut werden und ist damit von der Kommunikationsverbindung unabhängig (oft als end-to-end -Sicherheit bezeichnet) SSL/TLS (Schicht 4) Das TLS-Protokoll (Transport Layer Security) ist eine Art Kompromiss zwischen sicherer Kommunikationsverbindung und end-to-end- Sicherheit. Es implementiert end-to-end-sicherheit, die für die beteiligten Applikationen wie eine sichere Kommunikationsverbindung aussieht. Dadurch können die Applikationen ihre eigenen Protokolle als zusätzliche Ebene über TLS implementieren. Beispiel: http/https TLS 1.0 ist der Nachfolger von SSL, Version 3 (1995). SSL steht für Secure Socket Layer und wurde von Netscape entwickelt. 100

DES der vergangene Standard für Bitblock-Chiffren

DES der vergangene Standard für Bitblock-Chiffren DES der vergangene Standard für Bitblock-Chiffren Klaus Pommerening Fachbereich Mathematik der Johannes-Gutenberg-Universität Saarstraße 1 D-55099 Mainz Vorlesung Kryptologie 1. März 1991, letzte Änderung:

Mehr

Primzahlen und RSA-Verschlüsselung

Primzahlen und RSA-Verschlüsselung Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also

Mehr

Klassische Verschlüsselungsverfahren

Klassische Verschlüsselungsverfahren Klassische Verschlüsselungsverfahren Matthias Rainer 20.11.2007 Inhaltsverzeichnis 1 Grundlagen 2 2 Substitutionschiffren 2 2.1 Monoalphabetische Substitutionen....................... 3 2.1.1 Verschiebechiffren............................

Mehr

11. Das RSA Verfahren und andere Verfahren

11. Das RSA Verfahren und andere Verfahren Chr.Nelius: Kryptographie (SS 2011) 31 11. Das RSA Verfahren und andere Verfahren Eine konkrete Realisierung eines Public Key Kryptosystems ist das sog. RSA Verfahren, das im Jahre 1978 von den drei Wissenschaftlern

Mehr

10. Kryptographie. Was ist Kryptographie?

10. Kryptographie. Was ist Kryptographie? Chr.Nelius: Zahlentheorie (SoSe 2015) 39 10. Kryptographie Was ist Kryptographie? Die Kryptographie handelt von der Verschlüsselung (Chiffrierung) von Nachrichten zum Zwecke der Geheimhaltung und von dem

Mehr

Kapitel 3: Etwas Informationstheorie

Kapitel 3: Etwas Informationstheorie Stefan Lucks 3: Informationstheorie 28 orlesung Kryptographie (SS06) Kapitel 3: Etwas Informationstheorie Komplexitätstheoretische Sicherheit: Der schnellste Algorithmus, K zu knacken erfordert mindestens

Mehr

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

Kryptographische Systeme (M, C, K, e, d) Symmetrische Verfahren (gleicher Schlüssel zum Verschlüsseln und Entschlüsseln): Was bisher geschah Kryptographische Systeme (M, C, K, e, d) Symmetrische Verfahren (gleicher Schlüssel zum Verschlüsseln und Entschlüsseln): Substitutions-Chiffren (Permutationschiffren): Ersetzung jedes

Mehr

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

1 Kryptosysteme 1 KRYPTOSYSTEME. Definition 1.1 Eine Kryptosystem (P(A), C(B), K, E, D) besteht aus 1 RYPTOSYSTEME 1 ryptosysteme Definition 1.1 Eine ryptosystem (P(A), C(B),, E, D) besteht aus einer Menge P von lartexten (plaintext) über einem lartextalphabet A, einer Menge C von Geheimtexten (ciphertext)

Mehr

Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer

Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer Allgemein: Das RSA-Verschlüsselungsverfahren ist ein häufig benutztes Verschlüsselungsverfahren, weil es sehr sicher ist. Es gehört zu der Klasse der

Mehr

Zeichen bei Zahlen entschlüsseln

Zeichen bei Zahlen entschlüsseln Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

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

12 Kryptologie. ... immer wichtiger. Militär (Geheimhaltung) Telebanking, Elektronisches Geld E-Commerce WWW... 12 Kryptologie... immer wichtiger Militär (Geheimhaltung) Telebanking, Elektronisches Geld E-Commerce WWW... Kryptologie = Kryptographie + Kryptoanalyse 12.1 Grundlagen 12-2 es gibt keine einfachen Verfahren,

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

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

monoalphabetisch: Verschiebechiffren (Caesar), multiplikative Chiffren polyalphabetisch: Vigenère-Chiffre Was bisher geschah Kryptographische Systeme (M, C, K, E, D) Symmetrische Verfahren (gleicher Schlüssel zum Verschlüsseln und Entschlüsseln): Substitutions-Chiffren (Permutationschiffren): Ersetzung jedes

Mehr

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

Schutz von Informationen bei Übertragung über unsichere Kanäle Beispiele für zu schützende Informationen Kryptographie Motivation Schutz von Informationen bei Übertragung über unsichere Kanäle Beispiele für zu schützende Informationen Geheimzahlen (Geldkarten, Mobiltelefon) Zugriffsdaten (Login-Daten, Passwörter)

Mehr

Verschlüsselung. Kirchstraße 18 Steinfelderstraße 53 76831 Birkweiler 76887 Bad Bergzabern. 12.10.2011 Fabian Simon Bfit09

Verschlüsselung. Kirchstraße 18 Steinfelderstraße 53 76831 Birkweiler 76887 Bad Bergzabern. 12.10.2011 Fabian Simon Bfit09 Verschlüsselung Fabian Simon BBS Südliche Weinstraße Kirchstraße 18 Steinfelderstraße 53 76831 Birkweiler 76887 Bad Bergzabern 12.10.2011 Fabian Simon Bfit09 Inhaltsverzeichnis 1 Warum verschlüsselt man?...3

Mehr

Kryptographie eine erste Ubersicht

Kryptographie eine erste Ubersicht Kryptographie eine erste Ubersicht KGV bedeutet: Details erfahren Sie in der Kryptographie-Vorlesung. Abgrenzung Steganographie: Das Kommunikationsmedium wird verborgen. Klassische Beispiele: Ein Bote

Mehr

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

Kryptographische Systeme (M, C, K, E, D) Symmetrische Verfahren (gleicher Schlüssel zum Verschlüsseln und Entschlüsseln): Was bisher geschah Kryptographische Systeme (M, C, K, E, D) Symmetrische Verfahren (gleicher Schlüssel zum Verschlüsseln und Entschlüsseln): Substitutions-Chiffren (Permutationschiffren): Ersetzung jedes

Mehr

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

Kryptologie. Verschlüsselungstechniken von Cäsar bis heute. Arnulf May Kryptologie Verschlüsselungstechniken von Cäsar bis heute Inhalt Was ist Kryptologie Caesar Verschlüsselung Entschlüsselungsverfahren Die Chiffrierscheibe Bestimmung der Sprache Vigenére Verschlüsselung

Mehr

Kryptologie. Nicolas Bellm. 24. November 2005

Kryptologie. Nicolas Bellm. 24. November 2005 24. November 2005 Inhalt Einleitung 1 Einleitung 2 Klassische Skytale Monoalphabetische Verfahren Polyalphabetische Verfahren 3 Moderne Symmetrische Assymetrische 4 Ausblick Einleitung Einleitung Die ist

Mehr

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

RSA-Verschlüsselung. Verfahren zur Erzeugung der beiden Schlüssel: RSA-Verschlüsselung Das RSA-Verfahren ist ein asymmetrisches Verschlüsselungsverfahren, das nach seinen Erfindern Ronald Linn Rivest, Adi Shamir und Leonard Adlemann benannt ist. RSA verwendet ein Schlüsselpaar

Mehr

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

5. Übung zum G8-Vorkurs Mathematik (WiSe 2011/12) Technische Universität München Zentrum Mathematik PD Dr. hristian Karpfinger http://www.ma.tum.de/mathematik/g8vorkurs 5. Übung zum G8-Vorkurs Mathematik (WiSe 2011/12) Aufgabe 5.1: In einer Implementierung

Mehr

6.2 Perfekte Sicherheit

6.2 Perfekte Sicherheit 04 6.2 Perfekte Sicherheit Beweis. H(B AC) + H(A C) = H(ABC) H(AC) + H(AC) H(C) Wegen gilt Einsetzen in die Definition gibt = H(AB C). H(A BC) = H(AB C) H(B C). I(A; B C) = H(A C) H(AB C) + H(B C). Da

Mehr

Grundlagen der Kryptographie

Grundlagen der Kryptographie Grundlagen der Kryptographie Seminar zur Diskreten Mathematik SS2005 André Latour a.latour@fz-juelich.de 1 Inhalt Kryptographische Begriffe Primzahlen Sätze von Euler und Fermat RSA 2 Was ist Kryptographie?

Mehr

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

Zahlen und das Hüten von Geheimnissen (G. Wiese, 23. April 2009) Zahlen und das Hüten von Geheimnissen (G. Wiese, 23. April 2009) Probleme unseres Alltags E-Mails lesen: Niemand außer mir soll meine Mails lesen! Geld abheben mit der EC-Karte: Niemand außer mir soll

Mehr

Was heißt Kryptographie I? Understanding Cryptography Christof Paar und Jan Pelzl

Was heißt Kryptographie I? Understanding Cryptography Christof Paar und Jan Pelzl Was heißt Kryptographie I? Understanding Cryptography Christof Paar und Jan Pelzl Die Autoren Dr.-Ing. Jan Pelzl Prof. Dr.-Ing. Christof Paar Gliederung Historischer Überblick Begrifflichkeiten Symmetrische

Mehr

Seminar für LAK. Angewandte Mathematik

Seminar für LAK. Angewandte Mathematik LV-Nummer: 250115 Wintersemester 2009/2010 Ao. Univ.-Prof. Dr. Peter Schmitt Seminar für LAK Angewandte Mathematik Martin Kletzmayr Matrikelnummer: 0304008 Studienkennzahl: A 190 313 406 Email: martin.kletzmayr@gmx.net

Mehr

Einfache kryptographische Verfahren

Einfache kryptographische Verfahren Einfache kryptographische Verfahren Prof. Dr. Hagen Knaf Studiengang Angewandte Mathematik 26. April 2015 c = a b + a b + + a b 1 11 1 12 2 1n c = a b + a b + + a b 2 21 1 22 2 2n c = a b + a b + + a b

Mehr

Advanced Encryption Standard. Copyright Stefan Dahler 20. Februar 2010 Version 2.0

Advanced Encryption Standard. Copyright Stefan Dahler 20. Februar 2010 Version 2.0 Advanced Encryption Standard Copyright Stefan Dahler 20. Februar 2010 Version 2.0 Vorwort Diese Präsentation erläutert den Algorithmus AES auf einfachste Art. Mit Hilfe des Wissenschaftlichen Rechners

Mehr

Kryptographische Verfahren. zur Datenübertragung im Internet. Patrick Schmid, Martin Sommer, Elvis Corbo

Kryptographische Verfahren. zur Datenübertragung im Internet. Patrick Schmid, Martin Sommer, Elvis Corbo Kryptographische Verfahren zur Datenübertragung im Internet Patrick Schmid, Martin Sommer, Elvis Corbo 1. Einführung Übersicht Grundlagen Verschlüsselungsarten Symmetrisch DES, AES Asymmetrisch RSA Hybrid

Mehr

Lenstras Algorithmus für Faktorisierung

Lenstras Algorithmus für Faktorisierung Lenstras Algorithmus für Faktorisierung Bertil Nestorius 9 März 2010 1 Motivation Die schnelle Faktorisierung von Zahlen ist heutzutage ein sehr wichtigen Thema, zb gibt es in der Kryptographie viele weit

Mehr

Lehreinheit E V2 Verschlüsselung mit symmetrischen Schlüsseln

Lehreinheit E V2 Verschlüsselung mit symmetrischen Schlüsseln V-Verschlüsslung Lehreinheit Verschlüsselung mit symmetrischen Schlüsseln Zeitrahmen 70 Minuten Zielgruppe Sekundarstufe I Sekundarstufe II Inhaltliche Voraussetzung V1 Caesar-Chiffre Für Punkt 2: Addieren/Subtrahieren

Mehr

AES. Jens Kubieziel jens@kubieziel.de. 07. Dezember 2009. Friedrich-Schiller-Universität Jena Fakultät für Mathem atik und Informatik

AES. Jens Kubieziel jens@kubieziel.de. 07. Dezember 2009. Friedrich-Schiller-Universität Jena Fakultät für Mathem atik und Informatik Angriffe gegen Jens Kubieziel jens@kubieziel.de Friedrich-Schiller-Universität Jena Fakultät für Mathem atik und Informatik 07. Dezember 2009 Angriffe gegen Outline 1 Zur Geschichte 2 3 Angriffe gegen

Mehr

VON. Kryptographie. 07. März 2013. Powerpoint-Präsentation

VON. Kryptographie. 07. März 2013. Powerpoint-Präsentation VON 07. März 2013 & Kryptographie Powerpoint-Präsentation 1 Allgemeines über die Kryptographie kryptós= griechisch verborgen, geheim gráphein= griechisch schreiben Kryptographie + Kryptoanalyse= Kryptologie

Mehr

10. Public-Key Kryptographie

10. Public-Key Kryptographie Stefan Lucks 10. PK-Krypto 274 orlesung Kryptographie (SS06) 10. Public-Key Kryptographie Analyse der Sicherheit von PK Kryptosystemen: Angreifer kennt öffentlichen Schlüssel Chosen Plaintext Angriffe

Mehr

Exkurs Kryptographie

Exkurs Kryptographie Exkurs Kryptographie Am Anfang Konventionelle Krytographie Julius Cäsar mißtraute seinen Boten Ersetzen der Buchstaben einer Nachricht durch den dritten folgenden im Alphabet z. B. ABCDEFGHIJKLMNOPQRSTUVWXYZ

Mehr

Ein Scan basierter Seitenangriff auf DES

Ein Scan basierter Seitenangriff auf DES Ein Scan basierter Seitenangriff auf DES Seminar Codes & Kryptographie SS04 Tobias Witteler 29.06.2004 Struktur des Vortrags 1. Einführung / Motivation 2. Struktur von DES 3. Die Attacke Begriffsklärung:

Mehr

Einführung in die moderne Kryptographie

Einführung in die moderne Kryptographie c by Rolf Haenni (2006) Seite 1 Von der Caesar-Verschlüsselung zum Online-Banking: Einführung in die moderne Kryptographie Prof. Rolf Haenni Reasoning under UNcertainty Group Institute of Computer Science

Mehr

1 Mathematische Grundlagen

1 Mathematische Grundlagen Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.

Mehr

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

27. Algorithmus der Woche Public-Key-Kryptographie Verschlüsseln mit öffentlichen Schlüsseln 27. Algorithmus der Woche Public-Key-Kryptographie Verschlüsseln mit öffentlichen Schlüsseln Autor Dirk Bongartz, RWTH Aachen Walter Unger, RWTH Aachen Wer wollte nicht schon mal eine Geheimnachricht übermitteln?

Mehr

Einführung in die verschlüsselte Kommunikation

Einführung in die verschlüsselte Kommunikation Einführung in die verschlüsselte Kommunikation Loofmann AFRA Berlin 25.10.2013 Loofmann (AFRA Berlin) Creative Common BY-NC-SA 2.0 25.10.2013 1 / 37 Ziele des Vortrages Wie funktioniert Verschlüsselung?

Mehr

KRYPTOLOGIE KRYPTOLOGIE

KRYPTOLOGIE KRYPTOLOGIE KRYPTOLOGIE Die Kryptologie beschäftigt sich mit dem Verschlüsseln von Nachrichten. Sie zerfällt in zwei Gebiete: die Kryptographie, die sich mit dem Erstellen von Verschlüsselungsverfahren beschäftigt,

Mehr

Leseprobe. Wolfgang Ertel. Angewandte Kryptographie. ISBN (Buch): 978-3-446-42756-3. ISBN (E-Book): 978-3-446-43196-6

Leseprobe. Wolfgang Ertel. Angewandte Kryptographie. ISBN (Buch): 978-3-446-42756-3. ISBN (E-Book): 978-3-446-43196-6 Leseprobe Wolfgang Ertel Angewandte Kryptographie ISBN (Buch): 978-3-446-42756-3 ISBN (E-Book): 978-3-446-43196-6 Weitere Informationen oder Bestellungen unter http://www.hanser-fachbuch.de/978-3-446-42756-3

Mehr

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

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.

Mehr

Computeralgebra in der Lehre am Beispiel Kryptografie

Computeralgebra in der Lehre am Beispiel Kryptografie Kryptografie Grundlagen RSA KASH Computeralgebra in der Lehre am Beispiel Kryptografie Institut für Mathematik Technische Universität Berlin Kryptografie Grundlagen RSA KASH Überblick Kryptografie mit

Mehr

Informationssicherheit - Lösung Blatt 2

Informationssicherheit - Lösung Blatt 2 Informationssicherheit - Lösung Blatt 2 Adam Glodek adam.glodek@gmail.com 13.04.2010 1 1 Aufgabe 1: One Time Pad 1.1 Aufgabenstellung Gegeben ist der folgende Klartext 12Uhr (ASCII). Verschlüsseln Sie

Mehr

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

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Vollständigkeit halber aufgeführt. Gehen wir einmal davon aus, dass die von uns angenommenen 70% im Beispiel exakt berechnet sind. Was würde

Mehr

Cacherhochschule CHS. Teil II polyalphabetische Substitutionschiffren

Cacherhochschule CHS. Teil II polyalphabetische Substitutionschiffren Cacherhochschule CHS Multi-Mystery Rätselhilfe -Event Teil II polyalphabetische Substitutionschiffren Herzlich willkommen! Kurz zur Erinnerung: Teil I behandelte Chiffren und Codes Polybios, Vanity, ROT

Mehr

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

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

Mehr

Einführung in die Algebra

Einführung in die Algebra Prof. Dr. H. Brenner Osnabrück SS 2009 Einführung in die Algebra Vorlesung 13 Einheiten Definition 13.1. Ein Element u in einem Ring R heißt Einheit, wenn es ein Element v R gibt mit uv = vu = 1. DasElementv

Mehr

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

10.6 Authentizität. Geheimhaltung: nur der Empfänger kann die Nachricht lesen 10.6 Authentizität Zur Erinnerung: Geheimhaltung: nur der Empfänger kann die Nachricht lesen Integrität: Nachricht erreicht den Empfänger so, wie sie abgeschickt wurde Authentizität: es ist sichergestellt,

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

Mehr

Beweisbar sichere Verschlüsselung

Beweisbar sichere Verschlüsselung Beweisbar sichere Verschlüsselung ITS-Wahlpflichtvorlesung Dr. Bodo Möller Ruhr-Universität Bochum Horst-Görtz-Institut für IT-Sicherheit Lehrstuhl für Kommunikationssicherheit bmoeller@crypto.rub.de 6

Mehr

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

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Zählen und Zahlbereiche Übungsblatt 1 1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Für alle m, n N gilt m + n = n + m. in den Satz umschreiben:

Mehr

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

Asymmetrische. Verschlüsselungsverfahren. erarbeitet von: Emilia Winkler Christian-Weise-Gymnasium Zittau Asymmetrische Verschlü erarbeitet von: Emilia Winkler Christian-Weise-Gymnasium Zittau Gliederung 1) Prinzip der asymmetrischen Verschlü 2) Vergleich mit den symmetrischen Verschlü (Vor- und Nachteile)

Mehr

Betriebsarten von Blockchiffren. ECB Electronic Code Book Mode. Padding. ECB Electronic Code Book Mode

Betriebsarten von Blockchiffren. ECB Electronic Code Book Mode. Padding. ECB Electronic Code Book Mode Betriebsarten von Blockchiffren Blocklänge ist fest und klein. Wie große Mengen an Daten verschlüsseln? Blockchiffre geeignet verwenden: ECB Mode (Electronic Code Book) CBC Mode (Cipher Block Chaining)

Mehr

Zur Sicherheit von RSA

Zur Sicherheit von RSA Zur Sicherheit von RSA Sebastian Petersen 19. Dezember 2011 RSA Schlüsselerzeugung Der Empfänger (E) wählt große Primzahlen p und q. E berechnet N := pq und ϕ := (p 1)(q 1). E wählt e teilerfremd zu ϕ.

Mehr

Symmetrische und Asymmetrische Kryptographie. Technik Seminar 2012

Symmetrische und Asymmetrische Kryptographie. Technik Seminar 2012 Symmetrische und Asymmetrische Kryptographie Technik Seminar 2012 Inhalt Symmetrische Kryptographie Transpositionchiffre Substitutionchiffre Aktuelle Verfahren zur Verschlüsselung Hash-Funktionen Message

Mehr

Informationsblatt Induktionsbeweis

Informationsblatt Induktionsbeweis Sommer 015 Informationsblatt Induktionsbeweis 31. März 015 Motivation Die vollständige Induktion ist ein wichtiges Beweisverfahren in der Informatik. Sie wird häufig dazu gebraucht, um mathematische Formeln

Mehr

Modul Diskrete Mathematik WiSe 2011/12

Modul Diskrete Mathematik WiSe 2011/12 1 Modul Diskrete Mathematik WiSe 2011/12 Ergänzungsskript zum Kapitel 4.2. Hinweis: Dieses Manuskript ist nur verständlich und von Nutzen für Personen, die regelmäßig und aktiv die zugehörige Vorlesung

Mehr

Wie Sie beliebig viele PINs, die nur aus Ziffern bestehen dürfen, mit einem beliebigen Kennwort verschlüsseln: Schritt 1

Wie Sie beliebig viele PINs, die nur aus Ziffern bestehen dürfen, mit einem beliebigen Kennwort verschlüsseln: Schritt 1 Wie Sie beliebig viele PINs, die nur aus Ziffern bestehen dürfen, mit einem beliebigen Kennwort verschlüsseln: Schritt 1 Zunächst einmal: Keine Angst, die Beschreibung des Verfahrens sieht komplizierter

Mehr

3 Betriebsarten bei Blockverschlüsselung

3 Betriebsarten bei Blockverschlüsselung 3 Betriebsarten bei Blockverschlüsselung Die Anwendung einer Blockverschlüsselungsfunktion f : F n 2 Fn 2 auf längere (oder kürzere) Bitfolgen erfordert zwei Maßnahmen: 1 die Folge in n-bit-blöcke aufspalten,

Mehr

Projekt u23 Symmetrische Kryptografie, Betriebsmodi von Blockchiffren

Projekt u23 Symmetrische Kryptografie, Betriebsmodi von Blockchiffren Symmetrische Kryptografie Betriebsmodi von Blockchiffren und was man sonst damit machen kann Martin e.v. https://koeln.ccc.de 12. Oktober 2015 Definition Krypto-System Tupel (M, C, K, E, D) Message, Ciphertext,

Mehr

Von Cäsar bis RSA. Chiffrierung von der 1. bis zur 8. Klasse. Dr. Anita Dorfmayr Universität Wien. Lehrerfortbildungstag der ÖMG Wien, 13.

Von Cäsar bis RSA. Chiffrierung von der 1. bis zur 8. Klasse. Dr. Anita Dorfmayr Universität Wien. Lehrerfortbildungstag der ÖMG Wien, 13. Von Cäsar bis RSA Chiffrierung von der 1. bis zur 8. Klasse Dr. Anita Dorfmayr Universität Wien Lehrerfortbildungstag der ÖMG Wien, 13. April 2007 Gliederung Einführung Geschichte Zielsetzungen der Kryptografie

Mehr

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

Umstellung des Schlüsselpaares der Elektronischen Unterschrift von A003 (768 Bit) auf A004 (1024 Bit) Umstellung des Schlüsselpaares der Elektronischen Unterschrift von A003 (768 Bit) auf A004 (1024 Bit) 1. Einleitung Die Elektronische Unterschrift (EU) dient zur Autorisierung und Integritätsprüfung von

Mehr

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

Mathematik: Mag. Schmid Wolfgang Arbeitsblatt 3 1. Semester ARBEITSBLATT 3 RECHNEN MIT GANZEN ZAHLEN ARBEITSBLATT 3 RECHNEN MIT GANZEN ZAHLEN Wir wollen nun die Rechengesetze der natürlichen Zahlen auf die Zahlenmenge der ganzen Zahlen erweitern und zwar so, dass sie zu keinem Widerspruch mit bisher geltenden

Mehr

RSA-Verschlüsselung. von Johannes Becker Gießen 2006/2008

RSA-Verschlüsselung. von Johannes Becker Gießen 2006/2008 RSA-Verschlüsselung von Johannes Becker Gießen 2006/2008 Zusammenfassung Es wird gezeigt, wieso das nach Ronald L. Rivest, Adi Shamir und Leonard Adleman genannte RSA-Krptosstem funktioniert, das mittlerweile

Mehr

Der Zwei-Quadrate-Satz von Fermat

Der Zwei-Quadrate-Satz von Fermat Der Zwei-Quadrate-Satz von Fermat Proseminar: Das BUCH der Beweise Fridtjof Schulte Steinberg Institut für Informatik Humboldt-Universität zu Berlin 29.November 2012 1 / 20 Allgemeines Pierre de Fermat

Mehr

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

Codierungsverfahren SS 2011. Reed-Solomon-Codes zur Mehrblock-Bündelfehler-Korrektur Reed-Solomon-Codes zur Mehrblock-Bündelfehler-Korrektur Wie die zyklischen BCH-Codes zur Mehrbitfehler-Korrektur eignen sich auch die sehr verwandten Reed-Solomon-Codes (= RS-Codes) zur Mehrbitfehler-Korrektur.

Mehr

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

Konzepte von Betriebssystemkomponenten: Schwerpunkt Sicherheit. Asymmetrische Verschlüsselung, Digitale Signatur Konzepte von Betriebssystemkomponenten: Schwerpunkt Sicherheit Thema: Asymmetrische Verschlüsselung, Digitale Signatur Vortragender: Rudi Pfister Überblick: Asymmetrische Verschlüsselungsverfahren - Prinzip

Mehr

Sowohl die Malstreifen als auch die Neperschen Streifen können auch in anderen Stellenwertsystemen verwendet werden.

Sowohl die Malstreifen als auch die Neperschen Streifen können auch in anderen Stellenwertsystemen verwendet werden. Multiplikation Die schriftliche Multiplikation ist etwas schwieriger als die Addition. Zum einen setzt sie das kleine Einmaleins voraus, zum anderen sind die Überträge, die zu merken sind und häufig in

Mehr

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

Das RSA-Verfahren. Armin Litzel. Proseminar Kryptographische Protokolle SS 2009 Das RSA-Verfahren Armin Litzel Proseminar Kryptographische Protokolle SS 2009 1 Einleitung RSA steht für die drei Namen Ronald L. Rivest, Adi Shamir und Leonard Adleman und bezeichnet ein von diesen Personen

Mehr

Übungen zu. Grundlagen der Kryptologie SS 2008. Hochschule Konstanz. Dr.-Ing. Harald Vater. Giesecke & Devrient GmbH Prinzregentenstraße 159

Übungen zu. Grundlagen der Kryptologie SS 2008. Hochschule Konstanz. Dr.-Ing. Harald Vater. Giesecke & Devrient GmbH Prinzregentenstraße 159 Übungen zu Grundlagen der Kryptologie SS 2008 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

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

Mathematische Grundlagen der Kryptographie. 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe. Stefan Brandstädter Jennifer Karstens Mathematische Grundlagen der Kryptographie 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe Stefan Brandstädter Jennifer Karstens 18. Januar 2005 Inhaltsverzeichnis 1 Ganze Zahlen 1 1.1 Grundlagen............................

Mehr

Theoretische Informatik SS 04 Übung 1

Theoretische Informatik SS 04 Übung 1 Theoretische Informatik SS 04 Übung 1 Aufgabe 1 Es gibt verschiedene Möglichkeiten, eine natürliche Zahl n zu codieren. In der unären Codierung hat man nur ein Alphabet mit einem Zeichen - sagen wir die

Mehr

Kryptographie Reine Mathematik in den Geheimdiensten

Kryptographie Reine Mathematik in den Geheimdiensten Kryptographie Reine Mathematik in den Geheimdiensten Priska Jahnke 10. Juli 2006 Kryptographie Reine Mathematik in den Geheimdiensten Kryptographie (Kryptologie) = Lehre von den Geheimschriften Kaufleute,

Mehr

Einführung in die Kodierungstheorie

Einführung in die Kodierungstheorie Einführung in die Kodierungstheorie Einführung Vorgehen Beispiele Definitionen (Code, Codewort, Alphabet, Länge) Hamming-Distanz Definitionen (Äquivalenz, Coderate, ) Singleton-Schranke Lineare Codes Hamming-Gewicht

Mehr

Wie bleibt unser Geheimnis geheim?

Wie bleibt unser Geheimnis geheim? Wie bleibt unser Geheimnis geheim? Jan Tobias Mühlberg Wie bleibt unser Geheimnis geheim? MuT, Wintersemester 2009/10 Jan Tobias Mühlberg & Johannes Schwalb muehlber@swt-bamberg.de Lehrstuhl: Prof. Lüttgen,

Mehr

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!. 040304 Übung 9a Analysis, Abschnitt 4, Folie 8 Die Wahrscheinlichkeit, dass bei n - maliger Durchführung eines Zufallexperiments ein Ereignis A ( mit Wahrscheinlichkeit p p ( A ) ) für eine beliebige Anzahl

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 15: Reguläre Ausdrücke und rechtslineare Grammatiken Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/25 Was kann man mit endlichen

Mehr

Zahlensysteme: Oktal- und Hexadezimalsystem

Zahlensysteme: Oktal- und Hexadezimalsystem 20 Brückenkurs Die gebräuchlichste Bitfolge umfasst 8 Bits, sie deckt also 2 8 =256 Möglichkeiten ab, und wird ein Byte genannt. Zwei Bytes, also 16 Bits, bilden ein Wort, und 4 Bytes, also 32 Bits, formen

Mehr

Anleitung über den Umgang mit Schildern

Anleitung über den Umgang mit Schildern Anleitung über den Umgang mit Schildern -Vorwort -Wo bekommt man Schilder? -Wo und wie speichert man die Schilder? -Wie füge ich die Schilder in meinen Track ein? -Welche Bauteile kann man noch für Schilder

Mehr

Der Advanced Encryption Standard (AES)

Der Advanced Encryption Standard (AES) Der Advanced Encryption Standard (AES) Prof. Dr. Rüdiger Weis TFH Berlin Sommersemester 2008 Geschichte des AES Die Struktur des AES Angriffe auf den AES Aktuelle Ergebnisse DerAdvanced Encryption Standard

Mehr

Grundlagen der Informatik

Grundlagen der Informatik Mag. Christian Gürtler Programmierung Grundlagen der Informatik 2011 Inhaltsverzeichnis I. Allgemeines 3 1. Zahlensysteme 4 1.1. ganze Zahlen...................................... 4 1.1.1. Umrechnungen.................................

Mehr

7 Rechnen mit Polynomen

7 Rechnen mit Polynomen 7 Rechnen mit Polynomen Zu Polynomfunktionen Satz. Zwei Polynomfunktionen und f : R R, x a n x n + a n 1 x n 1 + a 1 x + a 0 g : R R, x b n x n + b n 1 x n 1 + b 1 x + b 0 sind genau dann gleich, wenn

Mehr

Zusammenfassung der Vorlesung vom 15.4.2015

Zusammenfassung der Vorlesung vom 15.4.2015 Zusammenfassung der Vorlesung vom 15.4.2015 Für welche Schutzziele ist Kryptographie der geeignete Schutzmechanismus? Was genau kann erreicht werden (verhindern / entdecken)? Was besagt das Prinzip von

Mehr

Wir arbeiten mit Zufallszahlen

Wir arbeiten mit Zufallszahlen Abb. 1: Bei Kartenspielen müssen zu Beginn die Karten zufällig ausgeteilt werden. Wir arbeiten mit Zufallszahlen Jedesmal wenn ein neues Patience-Spiel gestartet wird, muss das Computerprogramm die Karten

Mehr

2 Wörter und Würmer oder Warum einfach, wenn s auch kompliziert geht?

2 Wörter und Würmer oder Warum einfach, wenn s auch kompliziert geht? 2 Wörter und Würmer oder Warum einfach, wenn s auch kompliziert geht? Ein Wort, ein Satz : aus Chiffren steigen erkanntes Leben, jäher Sinn (Gottfried Benn). In diesem Kapitel stehen polyalphabetischen

Mehr

Sicherer Datenaustausch mit EurOwiG AG

Sicherer Datenaustausch mit EurOwiG AG Sicherer Datenaustausch mit EurOwiG AG Inhalt AxCrypt... 2 Verschlüsselung mit Passwort... 2 Verschlüsseln mit Schlüsseldatei... 2 Entschlüsselung mit Passwort... 4 Entschlüsseln mit Schlüsseldatei...

Mehr

Anleitung Thunderbird Email Verschlu sselung

Anleitung Thunderbird Email Verschlu sselung Anleitung Thunderbird Email Verschlu sselung Christoph Weinandt, Darmstadt Vorbemerkung Diese Anleitung beschreibt die Einrichtung des AddOn s Enigmail für den Mailclient Thunderbird. Diese Anleitung gilt

Mehr

Blockverschlüsselung und AES

Blockverschlüsselung und AES Blockverschlüsselung und AES Proseminar/Seminar Kryptographie und Datensicherheit SoSe 2009 Universität Potsdam ein Vortrag von Linda Tschepe Übersicht Allgemeines SPNs (Substitutions- Permutations- Netzwerke)

Mehr

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

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes. Binäre Bäume Definition: Ein binärer Baum T besteht aus einer Menge von Knoten, die durch eine Vater-Kind-Beziehung wie folgt strukturiert ist: 1. Es gibt genau einen hervorgehobenen Knoten r T, die Wurzel

Mehr

Theoretische Grundlagen der Informatik WS 09/10

Theoretische Grundlagen der Informatik WS 09/10 Theoretische Grundlagen der Informatik WS 09/10 - Tutorium 6 - Michael Kirsten und Kai Wallisch Sitzung 13 02.02.2010 Inhaltsverzeichnis 1 Formeln zur Berechnung Aufgabe 1 2 Hamming-Distanz Aufgabe 2 3

Mehr

Das Persönliche Budget in verständlicher Sprache

Das Persönliche Budget in verständlicher Sprache Das Persönliche Budget in verständlicher Sprache Das Persönliche Budget mehr Selbstbestimmung, mehr Selbstständigkeit, mehr Selbstbewusstsein! Dieser Text soll den behinderten Menschen in Westfalen-Lippe,

Mehr

ONLINE-AKADEMIE. "Diplomierter NLP Anwender für Schule und Unterricht" Ziele

ONLINE-AKADEMIE. Diplomierter NLP Anwender für Schule und Unterricht Ziele ONLINE-AKADEMIE Ziele Wenn man von Menschen hört, die etwas Großartiges in ihrem Leben geleistet haben, erfahren wir oft, dass diese ihr Ziel über Jahre verfolgt haben oder diesen Wunsch schon bereits

Mehr

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

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten Das große x -4 Alles über das Wer kann beantragen? Generell kann jeder beantragen! Eltern (Mütter UND Väter), die schon während ihrer Elternzeit wieder in Teilzeit arbeiten möchten. Eltern, die während

Mehr

Lineare Gleichungssysteme

Lineare Gleichungssysteme Brückenkurs Mathematik TU Dresden 2015 Lineare Gleichungssysteme Schwerpunkte: Modellbildung geometrische Interpretation Lösungsmethoden Prof. Dr. F. Schuricht TU Dresden, Fachbereich Mathematik auf der

Mehr

Das Leitbild vom Verein WIR

Das Leitbild vom Verein WIR Das Leitbild vom Verein WIR Dieses Zeichen ist ein Gütesiegel. Texte mit diesem Gütesiegel sind leicht verständlich. Leicht Lesen gibt es in drei Stufen. B1: leicht verständlich A2: noch leichter verständlich

Mehr

Wichtig ist die Originalsatzung. Nur was in der Originalsatzung steht, gilt. Denn nur die Originalsatzung wurde vom Gericht geprüft.

Wichtig ist die Originalsatzung. Nur was in der Originalsatzung steht, gilt. Denn nur die Originalsatzung wurde vom Gericht geprüft. Das ist ein Text in leichter Sprache. Hier finden Sie die wichtigsten Regeln für den Verein zur Förderung der Autonomie Behinderter e. V.. Das hier ist die Übersetzung der Originalsatzung. Es wurden nur

Mehr

Es gilt das gesprochene Wort. Anrede

Es gilt das gesprochene Wort. Anrede Sperrfrist: 28. November 2007, 13.00 Uhr Es gilt das gesprochene Wort Statement des Staatssekretärs im Bayerischen Staatsministerium für Unterricht und Kultus, Karl Freller, anlässlich des Pressegesprächs

Mehr