Kryptografische Protokolle

Größe: px
Ab Seite anzeigen:

Download "Kryptografische Protokolle"

Transkript

1 Kryptografische Protokolle Lerneinheit 1: Zufallszahlengeneratoren Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester

2 Einleitung Einleitung Zufallszahlen spielen in der Kryptografie eine wichtige Rolle. Die Sicherheit vieler Verfahren (z.b. RSA) hängt von der Qualität der eingesetzten Zufallszahlengeneratoren ab. Folgende Themen werden behandelt: Anforderungen an Zufallszahlengeneratoren Lineare-Kongruenzen Generator Blum-Blum-Shub Generator Fortuna Generator auf Basis von AES Die Lerneinheit basiert auf Kapitel 8 von Stinson: Cryptography Theory and Practice und Kapitel 10 von Ferguson, Schneier: Practical Cryptography Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 2 / 96

3 Einleitung Unterscheidung Echte Zufallsdaten Messung von physikalischen Ereignissen z.b. zeitlichen Abständen von Tastatureingaben Erzeugung in der Regel aufwändig Zufallsdaten nicht immer verfügbar Pseudo Zufallsdaten Berechnung mit einem (deterministischen) Algorithmus Zufallsfolge hängt ausschließlich von einem Initialwert (Seed) ab Voraussetzung: Geheimhaltung des Seed Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 3 / 96

4 Einleitung Definition Bit Generator (k, l)-bit Generator Definition. Seien k, l positive ganze Zahlen, so dass l k + 1. Ein (k, l)-bit Generator ist eine Funktion f : {0, 1} k {0, 1} l, die in Polynomialzeit berechenbar ist. Die Eingabe s 0 {0, 1} k nennt man einen Seed, die Ausgabe f (s 0 ) wird als erzeugte Bitfolge bezeichnet. Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 4 / 96

5 Einleitung Definition Bit Generator (k, l)-bit Generator (Forts.) Bemerkungen: Die erzeugte Bitfolge ist mindestens ein Bit länger als der Seed Da f deterministisch ist, hängt die erzeugte Bitfolge ausschließlich vom Seed ab Ziel: Konstruktion von (k, l)-bit Generatoren, deren erzeugte Bitfolge zufällig aussieht. Einen derartigen Generator nennt man dann Pseudo-Random Bit Generator (PRBG) Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 5 / 96

6 Einleitung Linearer Kongruenzgenerator Linearer Kongruenzgenerator Definition (k, l)-bit Linearer Kongruenzgenerator. Sei m 2 eine ganze Zahl und seien a, b ganze Zahlen mit 1 a, b m 1. Sei k = log 2 m und sei l k + 1 eine ganze Zahl. Der Seed ist eine ganze Zahl s 0 {0, 1,..., m 1}. Für i = 1,..., l ist s i definiert als: s i = (a s i 1 + b) mod m Die erzeugte Bitfolge ist f (s 0 ) = (z 1, z 2,..., z l ), wobei z i = s i mod 2 Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 6 / 96

7 Einleitung Linearer Kongruenzgenerator Algorithmus LKG(a, b, m, s 0 ) LKG(a, b, m, s 0 ) Input: k-bit Zahl m, a, b {1,..., m}, s 0 {0,..., m 1} Output: l-bit Folge (z 1,..., z l ) 1 for i := 1 to l do 2 s i := (a s i 1 + b) mod m 3 z i := s i mod 2 4 return (z 1,..., z l ) Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 7 / 96

8 Einleitung Linearer Kongruenzgenerator Beispiel Linearer Kongruenzgenerator Konstruktion eines (5, 10)-bit Generators: Wähle m = 31, a = 3, b = 5. Die Zufallsbitfolge wird unter Einsatz der Funktion s (3s + 5) mod 31 berechnet Die interne Zufallsfolge durchläuft 2 Zyklen: Der Wert 13 ist offensichtlich nicht als Seed geeignet Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 8 / 96

9 Einleitung Linearer Kongruenzgenerator Beispiel Linearer Kongruenzgenerator (Forts.) Zufallsbits von Zyklus 1: i s i 1 s i mod i s i 1 s i mod i s i 1 s i mod Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 9 / 96

10 Einleitung Linearer Kongruenzgenerator Beispiel Linearer Kongruenzgenerator (Forts.) Seeds mit den jeweiligen erzeugten Bitfolgen: Seed Bitfolge Seed Bitfolge Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 10 / 96

11 Einleitung Linearer Kongruenzgenerator Beispiel Linearer Kongruenzgenerator (Forts.) Häufigkeit der Bitfolgen: Bitfolge Seeds , , , 19 Bitfolge Seeds , Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 11 / 96

12 Einleitung Linearer Kongruenzgenerator RSA Generator Der RSA Generator ist ein (k, l)-generator, der ist folgendermaßen aufgebaut ist: Seien p, q zwei verschiedene (k/2)-bit Primzahlen Sei n = p q. Sei e {2,... φ(n) 2} eine Zahl mit gcd(e, φ(n)) = 1 Der Seed ist eine Zahl s 0 {2,..., n 2}. Definiere s i = s e i 1 mod n z i = s i mod 2 für i = 1,..., l und f (s 0 ) = (z 1,..., z l ) Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 12 / 96

13 Einleitung Linearer Kongruenzgenerator Beispiel RSA Generator Ziel ist die Konstruktion eines (32, 48)-bit RSA Generators. Hierzu werden die 16-bit Primzahlen p = und q = ausgewählt. Die Werte von n und φ(n) sind: n = p q = φ(n) = (p 1) (q 1) = Als Exponent wird e = 5 gewählt Offensichtlich gilt gcd(e, φ(n)) = 1, denn ist kein Vielfaches von 5 Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 13 / 96

14 Einleitung Linearer Kongruenzgenerator Beispiel RSA Generator (Forts.) Bitfolge für den Seed s 0 = 133: i s i s i mod i s i s i mod Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 14 / 96

15 Einleitung Linearer Kongruenzgenerator Beispiel RSA Generator (Forts.) Bitfolge für den Seed s 0 = 133 (Teil 2): i s i s i mod i s i s i mod Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 15 / 96

16 Anforderungen an PRBGs Anforderungen Anforderungen Zwei Anforderungen an PRBGs: Sicherheit es ist mit vertretbarem Aufwand nicht möglich, eine erzeugte Bitfolge von einer echten Zufallsfolge zu unterscheiden Geschwindigkeit die Berechnung der Bitfolgen muss effizient durchführbar sein Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 16 / 96

17 Anforderungen an PRBGs Wahrscheinlichkeitsverteilungen Wahrscheinlichkeitsverteilungen Definition. Eine Wahrscheinlichkeitsverteilung über der Menge {0, 1} k ist eine Funktion µ : {0, 1} k [0, 1] mit x {0,1} k µ(x) = 1. Steht die Zufallsvariable X für das Ereignis dann ist Ziehen eines Worts aus {0, 1}k, Prob µ [X = x] = µ(x) die Wahrscheinlichkeit, dass das Wort x gezogen wird. Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 17 / 96

18 Anforderungen an PRBGs Wahrscheinlichkeitsverteilungen Gleichverteilung über {0, 1} l Die Gleichverteilung µ u über der Menge {0, 1} l weist jedem Wort dieselbe Wahrscheinlichkeit zu. Es gilt für alle x {0, 1} l : µ u (x) = 1 2 l Bemerkung: Aus kryptografischer Sicht ist die Gleichverteilung eine ideale Wahrscheinlichkeitsverteilung Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 18 / 96

19 Anforderungen an PRBGs Wahrscheinlichkeitsverteilungen Verteilung eines (k, l)-bit Generators Gegeben: (k, l)-bit Generator f Annahme: Der Seed wird unter Gleichverteilung aus {0, 1} k gezogen. Ansatz: Sei x {0, 1} l beliebig gewählt. Die Menge Seed(x) enthält alle Seeds, für die f die Bitfolge x erzeugt. Formal: Seed(x) = {s {0, 1} k f (s) = x} Die Wahrscheinlichkeit, dass f das Wort x {0, 1} l erzeugt, ist gleich µ f (x) = s Seed(x) µ u (s) = Seed(x) 2 k. Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 19 / 96

20 Anforderungen an PRBGs Unterscheidbarkeit von Wahrscheinlichkeitsverteilungen Intuitive Idee Gegeben: Wahrscheinlichkeitsverteilungen µ 0 und µ 1 über {0, 1} l Frage: Gibt es einen Algorithmus DST mit folgenden Eigenschaften? DST berechnet eine Funktion von {0, 1} l nach {0, 1} DST hat polynomiale Laufzeit Auf Eingabe eines Wortes x {0, 1} l kann DST mit einer gewissen Chance korrekt entscheiden, ob x gemäß µ 0 oder µ 1 erzeugt wurde Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 20 / 96

21 Anforderungen an PRBGs Unterscheidbarkeit von Wahrscheinlichkeitsverteilungen ε-unterscheidbarkeit Definition. Seien µ 0 und µ 1 Wahrscheinlichkeitsverteilungen über der Menge {0, 1} l. Sei DST : {0, 1} l {0, 1} eine Funktion und ε > 0. Definiere für i = 0, 1 den Wert E DST (µ i ) als E DST (µ i ) = µ i (x) x {0,1} l :DST(x)=1 Die Funktion DST ist ein ε-unterscheider von µ 0 und µ 1, falls E DST (µ 0 ) E DST (µ 1 ) ε Falls DST in Polynomialzeit berechenbar ist, dann nennt man DST einen Polynomialzeit ε-unterscheider. Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 21 / 96

22 Anforderungen an PRBGs Unterscheidbarkeit von Wahrscheinlichkeitsverteilungen ε-unterscheidbarkeit (Forts.) Definition. Seien µ 0 und µ 1 Wahrscheinlichkeitsverteilungen über der Menge {0, 1} l. µ 0 und µ 1 sind ε-unterscheidbar, falls es einen ε-unterscheider DST für µ 0 und µ 1 gibt. µ 0 und µ 1 sind in Polynomialzeit ε-unterscheidbar, falls es einen Polynomialzeit ε-unterscheider DST für µ 0 und µ 1 gibt. Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 22 / 96

23 Anforderungen an PRBGs Unterscheidbarkeit von Wahrscheinlichkeitsverteilungen Anwendung von ε-unterscheidbarkeit Gegeben: (k, l)-bit Generator f Annahme: Jeder Seed erzeugt eine andere Bitfolge. Für die aus f abgeleitete Wahrscheinlichkeitsverteilung µ f gilt: Es gibt 2 k Wörter in {0, 1} l, die jeweils mit Wahrscheinlichkeit 1 2 k erzeugt werden. Es gibt 2 l 2 k Wörter in {0, 1} l, die nicht erzeugt werden. Konsequenz: µ f unterscheidet sich stark von der Gleichverteilung µ u über {0, 1} l. Anforderung: f gilt als kryptografisch sicherer PRBG, falls für alle ε > 0 gilt, dass µ f nicht ε-unterscheidbar von µ u ist. Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 23 / 96

24 Anforderungen an PRBGs Unterscheidbarkeit von Wahrscheinlichkeitsverteilungen Zur Illustration ein Beispiel Beispiel. Gegeben ist ein (k, l)-bit Generator f, der ausschließlich Bitfolgen erzeugt, in denen die Anzahl Nullen gleich der Anzahl Einsen ist. Definiere DST(x 1... x l ) = { 1 ( µ f ) falls x 1... x l genau l 2 0 ( µ u ) sonst Nullen enthält Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 24 / 96

25 Anforderungen an PRBGs Unterscheidbarkeit von Wahrscheinlichkeitsverteilungen Zur Illustration ein Beispiel (Forts.) Es gilt und Wegen der Eigenschaft E DST [µ u ] = ( l ) l/2 2 l E DST [µ f ] = 1 lim l ( l ) l/2 = 0 2 l sind µ u und µ f für jedes ε, 0 < ε < 1, ε-unterscheidbar, falls l hinreichend groß ist Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 25 / 96

26 Anforderungen an PRBGs Unterscheidbarkeit von Wahrscheinlichkeitsverteilungen Beispiel: Linearer Kongruenzgenerator Gegeben ist ein (5, 10)-bit Linearer Kongruenzgenerator mit den Parametern a = 3, b = 5 und m = 31 Der Unterscheidungsalgorithmus basiert auf folgender Funktion: { 1 falls x l 1 x l, DST(x 1... x l 1 x l ) = 0 sonst. DST ordnet demnach x 1... x l dem Generator f zu, wenn die letzten beiden Bits verschieden sind. Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 26 / 96

27 Anforderungen an PRBGs Unterscheidbarkeit von Wahrscheinlichkeitsverteilungen Beispiel: Linearer Kongruenzgenerator (Forts.) Bitfolgen x mit DST(x) = 1: Bitfolge Häufigkeit Bitfolge Häufigkeit Gesamthäufigkeit: 18 Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 27 / 96

28 Anforderungen an PRBGs Unterscheidbarkeit von Wahrscheinlichkeitsverteilungen Beispiel: Linearer Kongruenzgenerator (Forts.) Anhand der Tabelle berechnet man: E DST (µ f ) = x {0,1} l :DST(x)=1 µ f (x) = Wird ein l-bit Wort zufällig unter Gleichverteilung gezogen, dann sind mit einer Wahrscheinlichkeit von 1 die letzten beiden Bits 2 verschieden. E DST (µ u ) = x {0,1} l :DST(x)=0 µ u (x) = 1 2 Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 28 / 96

29 Anforderungen an PRBGs Unterscheidbarkeit von Wahrscheinlichkeitsverteilungen Beispiel: Linearer Kongruenzgenerator (Forts.) Hieraus folgt: E DST (µ f ) E DST (µ u ) = = = 5 62 Ergebnis: DST ist ein Unterscheider für µ f und µ u Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 29 / 96

30 Anforderungen an PRBGs Next Bit Predictors Vorhersage des nächsten Bits Frage: Ist es ohne Kenntnis des Seeds möglich, für einen (k, l)-bit Generator vorherzusagen, welchen Wert das i-te Bit hat, wenn man die Bits x 1,..., x i 1 kennt? Antwort: Falls ja, dann ist der Generator nicht als sicher einzustufen Ziel: Formalisierung dieses Konzepts Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 30 / 96

31 Anforderungen an PRBGs Next Bit Predictors Definition Next Bit Predictor Definition. Sei f ein (k, l)-bit Generator. Angenommen, 1 i l 1. Die Funktion NBP : {0, 1} i 1 {0, 1} ist ein ε-next Bit Predictor für Bit i, falls NBP auf Eingabe von x 1... x i 1 das i-te Bit x i korrekt berechnet mit einer Wahrscheinlichkeit von 1 + ε, wobei ε > 0. 2 Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 31 / 96

32 Anforderungen an PRBGs Next Bit Predictors Anpassung der Wahrscheinlichkeitsverteilungen Sei µ eine Wahrscheinlichkeitsverteilung über {0, 1} l. Sei i {0,..., l} fest gewählt. Betrachte ein beliebiges Wort x 1... x i {0, 1} i. Die Menge aller Wörter in {0, 1} l mit Präfix x 1... x i ist Prefix(x 1... x i ) = {x 1... x i w w {0, 1} l i } Die Wahrscheinlichkeit, dass ein Wort mit Präfix x 1... x i auftritt, ist: µ i (x 1... x i ) = µ(z) z Prefix(x 1...x i ) Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 32 / 96

33 Anforderungen an PRBGs Next Bit Predictors Ein wichtiger Satz Betrachte einen (k, l)-bit Generator f. Die Zufallsvariable X i steht für den Wert des i-ten Bits einer Zufallsfolge, die gemäß µ f auftritt Definiere für eine Funktion NBP : {0, 1} i 1 {0, 1} p i NBP(x 1... x i 1 ) = Prob[X i = NBP(x 1... x i 1 ) x 1... x i 1 ] Satz. Eine Funktion NBP ist genau dann ein ε-next Bit Predictor für Bit i von f, wenn µ i 1 f x 1...x i 1 {0,1} i 1 (x 1... x i 1 ) p i NBP(x 1... x i 1 ) ε Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 33 / 96

34 Anforderungen an PRBGs Next Bit Predictors Beispiel: Linearer Kongruenzgenerator Beispiel. Betrachte für ein i {1, 2,..., 9} einen NBP, der folgende Funktion berechnet: NBP(x 1... x i 1 ) = 1 x i 1 Die Vorhersage ist also, dass auf eine 0 vermutlich eine 1 folgt, und umgekehrt Anwendung auf den linearen Kongruenzgenerator mit den Parametern a = 3, b = 5, m = 31 Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 34 / 96

35 Anforderungen an PRBGs Next Bit Predictors Beispiel: Linearer Kongruenzgenerator (Forts.) Analyse der Tabelle von Folie 10 für i = 5: x b = NBP(x) Seeds #Seeds , 14, , , 27, , , , 22, 24 3 Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 35 / 96

36 Anforderungen an PRBGs Next Bit Predictors Beispiel: Linearer Kongruenzgenerator (Forts.) Die Wahrscheinlichkeit, dass NBP(x) das Bit i = 5 korrekt vorhersagt, ist: = = = Also ist NBP(x) ein 9 -Next Bit Predictor für das Bit i = 5 62 Durch Analyse der Tabelle von Folie 10 stellt man fest, dass diese Funktion für alle i ein 9 -Next Bit Predictor ist 62 Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 36 / 96

37 Anforderungen an PRBGs Zusammenhänge Zusammenhänge Satz. Sei f ein (k, l)-bit Generator. Angenommen, es gibt einen Polynomialzeit ε-next Bit Predictor für ein Bit i {1,..., l} von f. Dann sind µ u und µ f ε-unterscheidbar. Satz. Sei f ein (k, l)-bit Generator. Angenommen, µ u und µ f sind ε-unterscheidbar. Dann existiert für mindestens ein i {1,..., l} ein Polynomialzeit ε -Next Bit Predictor für Bit i von f. l Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 37 / 96

38 Quadratische Reste Einleitung Definition Quadratischer Rest Definition. Sei p eine ungerade Primzahl. Die Zahl a Z p, a 0, ist ein quadratischer Rest modulo p, falls eine Zahl x Z p existiert, so dass x 2 a (mod p) Ist a kein quadratischer Rest, dann nennt man a quadratischen Nicht-Rest. Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 38 / 96

39 Quadratische Reste Einleitung Beispiel zu Quadratischen Resten Betrachte Z 11. a a Also ist die Menge der quadratischen Reste modulo 11 gleich {1, 3, 4, 5, 9} Die Menge der quadratischen Nicht-Reste ist {2, 6, 7, 8, 10} Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 39 / 96

40 Quadratische Reste Einleitung Also gibt es mit x ±y (mod p) mindestens zwei quadratische Reste Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 40 / 96 Anzahl der Quadratwurzeln Sei p eine ungerade Primzahl und sei a ein quadratischer Rest modulo p. Frage: Wieviele Lösungen hat die Gleichung x 2 a (mod p)? Sei y 0 eine der Lösungen (eine solche muss existieren, da a ein quadratischer Rest ist) Umformen: x 2 a (mod p) x 2 a 0 (mod p) (x + y)(x y) 0 (mod p)

41 Quadratische Reste Einleitung Anzahl der Quadratwurzeln (Forts.) Zu zeigen bleibt, dass x ±y (mod p) die beiden einzigen Lösungen sind. Angenommen, es gibt einen weiteren quadratischen Rest z Z p mit z ±y (mod p). Da p eine Primzahl ist, folgt wegen ZTK (Satz 5.2) aus dass p (z + y) oder p (z y) (z + y)(z y) 0 (mod p), Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 41 / 96

42 Quadratische Reste Einleitung Anzahl der Quadratwurzeln (Forts.) Fall 1: p (z + y). Also ist z + y ein Vielfaches von p. Wegen der Wahl von z gilt: 0 < z + y < 2p 1 Also muss z + y = p und somit z = p y gelten. Widerspruch! Fall 2: p (z y). Analog zu Fall 1. Ergebnis: Die Gleichung x 2 a (mod p) besitzt genau zwei Lösungen Die eine Lösung ist die Negation der anderen modulo p Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 42 / 96

43 Quadratische Reste Euler Kriterium Euler Kriterium Satz. Sei p eine ungerade Primzahl. Die Zahl a Z p ist genau dann ein quadratischer Rest, wenn a (p 1)/2 1 (mod p) Bemerkung: Mit dem Algorithmus zur modularen Exponentiation kann man effizient überprüfen, ob a ein quadratischer Rest modulo p ist. Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 43 / 96

44 Quadratische Reste Euler Kriterium Euler Kriterium (Forts.) Beweis. Angenommen, x 2 a (mod p) für ein x Z p. Unter Einsatz des Satzes von Fermat folgt: a (p 1)/2 (x 2 ) (p 1)/2 (mod p) x p 1 (mod p) 1 (mod p) Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 44 / 96

45 Quadratische Reste Euler Kriterium Euler Kriterium (Forts.) Angenommen, a (p 1)/2 1 (mod p). Sei b ein erzeugendes Element von Z p. Dann existiert ein i mit b i a (mod p). Es gilt: a (p 1)/2 (b i ) (p 1)/2 (mod p) b i(p 1)/2 (mod p) 1 (mod p) Da b die Ordnung p 1 hat, muss (p 1) (i(p 1)/2) gelten. Folglich ist i eine gerade Zahl und deshalb sind ±b i/2 mod p die beiden Quadratwurzeln von a. Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 45 / 96

46 Quadratische Reste Legendre Symbol Legendre Symbol Definition. Angenommen, p ist eine ungerade Primzahl. ( ) Für eine beliebige ganze Zahl a ist das Legendre Symbol definiert als ( ) a = p 0 falls a 0 (mod p) 1 falls a quadratischer Rest modulo p ist 1 falls a quadratischer Nicht-Rest modulo p ist Satz. Sei p eine ungerade Primzahl. Dann gilt ( ) a a (p 1)/2 (mod p) p für alle ganzen Zahlen a. a p Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 46 / 96

47 Quadratische Reste Zusammengesetzte Zahlen als Modul Quadratwurzeln von zusammengesetzten Zahlen Definition. Sei n eine beliebige ungerade ganze Zahl. Sei a eine ganze Zahl, die teilerfremd zu n ist, d.h., gcd(a, n) = 1. Falls es eine ganze Zahl y mit y 2 a (mod n) gibt, dann nennt man a einen quadratischen Rest modulo n. Andernfalls ist a ein quadratischer Nicht-Rest modulo n. Zu klären: Welche a sind quadratische Reste modulo n? Wieviele Quadratwurzeln hat ein quadratischer Rest modulo n? Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 47 / 96

48 Quadratische Reste Zusammengesetzte Zahlen als Modul Primzahlpotenzen Satz. Sei p eine ungerade Primzahl und sei k eine ganze Zahl mit k > 0. Sei a eine zu p teilerfremde Zahl, d.h., gcd(a, p) = 1. Angenommen, es existiert eine Zahl b Z p, so dass b 2 a (mod p k 1 ). Dann existiert genau ein x Z p k mit: (1) x 2 a (mod p k ) (2) x b (mod p k 1 ) Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 48 / 96

49 Quadratische Reste Zusammengesetzte Zahlen als Modul Primzahlpotenzen (Forts.) Beweis. Sei p eine ungerade Primzahl und a Z p. Annahme: Es gibt b Z p, so dass b 2 a (mod p k 1 ) Existenz von x: Laut Annahme ist b 2 = j p k 1 + a für eine ganze Zahl j. Laut (2) muss x = i p k 1 + b für eine ganze Zahl i sein. Einsetzen in (1) führt zu folgender Gleichung: (i p k 1 + b) 2 a (mod p k ) Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 49 / 96

50 Quadratische Reste Zusammengesetzte Zahlen als Modul Primzahlpotenzen (Forts.) Umformen: (i p k 1 + b) 2 a (mod p k ) (i p k 1 ) b i p k 1 + b 2 a (mod p k ) 2 b i p k 1 + b 2 a (mod p k ) 2 b i p k 1 + j p k 1 + a a (mod p k ) 2 b i p k 1 j p k 1 (mod p k ) Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 50 / 96

51 Quadratische Reste Zusammengesetzte Zahlen als Modul Primzahlpotenzen (Forts.) Wegen ZTK (Korollar 6.3) folgt: 2 b i p k 1 j p k 1 (mod p k ) 2 b i j (mod p) i j (2 b) 1 (mod p) i p k 1 j (2 b) 1 p k 1 (mod p k ) Also ist x = ( j (2 b) 1 ) p k 1 + b eine Quadratwurzel von a modulo p k Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 51 / 96

52 Quadratische Reste Zusammengesetzte Zahlen als Modul Primzahlpotenzen (Forts.) Eindeutigkeit von x: Angenommen, es gibt zwei verschiedene x 1 und x 2. die beide die Eigenschaften des Satzes erfüllen. Wegen (2) gilt x 1 = i 1 p k 1 + b und x 2 = i 2 p k 1 + b für zwei verschiedene ganze Zahlen i 1 und i 2 Wegen (1) folgt: Widerspruch! x1 2 x2 2 (mod p k ) (i 1 p k 1 + b) 2 (i 2 p k 1 + b) 2 (mod p k ) 2 b p k 1 i 1 2 b p k 1 i 2 (mod p k ) 2 b i 1 2 b i 2 (mod p) i 1 i 2 (mod p) Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 52 / 96

53 Quadratische Reste Zusammengesetzte Zahlen als Modul Primzahlpotenzen (Forts.) Satz. Sei p eine ungerade Primzahl, k > 0 eine ganze Zahl und a eine ganze Zahl mit gcd(a, ( p) k ) = 1. Die Kongruenz y 2 a (mod p k ) a hat keine Lösungen, falls = 1, und genau zwei Lösungen, falls p ( ) = 1. a p Beweis. Induktion über k und Verwendung des vorheriges Satzes Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 53 / 96

54 Quadratische Reste Zusammengesetzte Zahlen als Modul Zusammengesetzte Zahlen Satz. Sei n > 1 eine ungerade ganze Zahl mit der Primfaktorzerlegung l n = p e i i. i=1 Angenommen, gcd(a, n) = 1. ( ) a Falls p i = 1 für alle i = {1,..., l} gilt, dann besitzt die Kongruenz x 2 a (mod n) genau 2 l Lösungen modulo n. Andernfalls besitzt die Kongruenz keine Lösung modulo n. Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 54 / 96

55 Quadratische Reste Zusammengesetzte Zahlen als Modul Zusammengesetzte Zahlen (Forts.) Beweis. Betrachte eine ungerade ganze Zahl n mit der Primfaktorzerlegung l n = p l i i. Da gcd(p e i i, p e j j ) = 1 für alle i j gilt, folgt mit dem Chinesischen Restsatz (ZTK (Satz 9.1)), dass genau dann lösbar ist, wenn i=1 y 2 a (mod n) y 2 a (mod p e i i ) für alle i = 1,..., l lösbar ist Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 55 / 96

56 Quadratische Reste Zusammengesetzte Zahlen als Modul Zusammengesetzte Zahlen (Forts.) Laut dem vorherigen Satz ist y 2 a (mod p e i ( ) i ) genau dann lösbar, a wenn p i = 1. In diesem Fall gibt es genau 2 Lösungen. ( ) a Angenommen, es ist p i = 1 für alle i = 1,..., l. Es gibt 2 l Möglichkeiten, die Teillösungen zu einer Lösung modulo n zu kombinieren. Folglich gibt es 2 l Lösungen Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 56 / 96

57 Quadratische Reste Zusammengesetzte Zahlen als Modul Das Jacobi Symbol Seien n > 0 eine ungerade ganze Zahl mit der Primfaktorzerlegung n = l i=1 p e i i. Sei a eine ganze Zahl. Das Jacobi Symbol ( a n) ist definiert als ( a = n) l ( a i=1 p i ) ei Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 57 / 96

58 Blum-Blum-Shub Generator Definition Aufbau Blum-Blum-Shub Generator Der Blum-Blum-Shub (BBS) Generator ist ein (k, l)-generator f, der wie folgt aufgebaut ist. Seien p, q zwei verschiedene (k/2)-bit Primzahlen mit p q 3 (mod 4). Definiere n = p q. Sei s 0 ein quadratischer Rest modulo n. Definiere s i = s 2 i 1 mod n z i = s i mod 2 für alle i = 1,..., l und f (s 0 ) = (z 1,..., z l ). Beachte: Anstatt eines quadratischen Rests s 0 wählt man in der Regel eine beliebige Zahl s 1 Z n und setzt s 0 = s 2 1 mod n Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 58 / 96

59 Blum-Blum-Shub Generator Definition Beispiel: Blum-Blum-Shub Generator Sei p = 383, q = 503, n = p q = und s 0 = mod n = Die ersten erzeugten 20 Bits sind: i s i z i i s i z i i s i z i Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 59 / 96

60 Blum-Blum-Shub Generator Algorithmen BBS Algorithmen Initialisierung des Generators: BBSInit(n init, s init ) Input: Modul n init, Seed s init 1 n := n init 2 s := s 2 init mod n Berechnung des nächsten Bits: BBSGetBit() Output: Pseudo-zufälliges Bit 1 s := s 2 mod n 2 return s mod 2 Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 60 / 96

61 Blum-Blum-Shub Generator Algorithmen BBS Algorithmen (Forts.) Berechnung des nächsten Bytes: BBSGetByte() Output: Pseudo-zufälliges Byte 1 b := 0 2 for i := 1 to 8 do 3 b := 2 b + BBSGetBit() 4 return b Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 61 / 96

62 Blum-Blum-Shub Generator Sicherheitsbewertung Beobachtung Seien p und q zwei verschiedene ungerade Primzahlen. Sei n = p q. Für alle ganzen Zahlen a 0 gilt: 0 falls gcd(a, ( ) n) ( > ) 1 ( ) ( ) ( a a a a a 1 falls = = 1 oder = = 1 p q p q = ( ) ( ) n) a a 1 falls ein Wert von und gleich 1 und p q der andere gleich 1 ist Beachte: a ist ein quadratischer Rest modulo n falls ( ) ( ) a a = = 1 p q Aus ( a n) = 1 kann man nicht folgern, dass a ein quadratischer Rest modulo n ist Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 62 / 96

63 Blum-Blum-Shub Generator Sicherheitsbewertung Entscheidungsproblem QR Problem Quadratic Residues (QR) Gegeben: Eine ganze Zahl n, die das Produkt zweier ungerader Primzahlen p und q ist Eine ganze Zahl a Z n mit ( a n) = 1 Gefragt: Ist a ein quadratischer Rest modulo n? Bemerkungen: Bis heute ist kein Polynomialzeit Algorithmus für QR bekannt Kann man n effizient faktorisieren, dann ist QR ebenfalls effizient lösbar Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 63 / 96

64 Blum-Blum-Shub Generator Sicherheitsbewertung Monte Carlo Algorithmen Ein Monte Carlo Algorithmus A ist ein Algorithmus mit folgenden Eigenschaften: A berechnet eine Funktion f : {0, 1} {0, 1} A hat Zugriff auf einen Generator, der gleichverteilte Zufallsbits liefert Das von A berechnete Ergebnis ist korrekt mit einer Wahrscheinlichkeit von mindestens 1 + ε für ein ε > 0. 2 Formal: Für alle x {0, 1} gilt: Prob[A(x) = f (x)] ε Die Fehlerwahrscheinlichkeit von A auf Eingabe x ist Prob[A(x) f (x)] 1 2 ε Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 64 / 96

65 Blum-Blum-Shub Generator Sicherheitsbewertung Monte Carlo Algorithmen (Forts.) MajorityA(x, n) Input: Wort x {0, 1} Output: 0 oder 1 1 y := 0 2 for i := 1 to n do 3 if A(x) = 1 then 4 y := y if y n/2 then 6 return 1 7 else 8 return 0 Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 65 / 96

66 Blum-Blum-Shub Generator Sicherheitsbewertung Monte Carlo Algorithmen (Forts.) Satz. Angenommen, A ist ein Monte Carlo Algorithmus mit einer Fehlerwahrscheinlichkeit von höchstens 1 ε. Sei n = 2m + 1 für 2 eine ganze Zahl m > 0. Dann ist MajorityA(, n) ein Monte Carlo Algorithmus mit einer Fehlerwahrscheinlichkeit von höchstens (1 4ε 2 ) m 2 Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 66 / 96

67 Blum-Blum-Shub Generator Sicherheitsbewertung Monte Carlo Algorithmen (Forts.) Beweis. Sei x {0, 1}. Die Wahrscheinlichkeit, dass A(x) exakt i-mal ein korrektes Ergebnis liefert, ist ( ) ( ) i ( ) n i n 1 1 i 2 + ε 2 ε Die Wahrscheinlichkeit, dass MajorityA(x, n) nicht korrekt ist, ist: Prob[Fehler] m i=0 = # ( ) ( ) i ( ) 2m+1 i n 1 1 i 2 + ε 2 ε Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 67 / 96

68 Blum-Blum-Shub Generator Sicherheitsbewertung Monte Carlo Algorithmen (Forts.) # = ( 1 ) m ( ε 2 ε ) m+1 m i=0 ( ) m ( ) m+1 m 1 1 = 2 + ε 2 ε i=0 ( ) m ( ) m = 2 + ε 2 ε 2 2m = # ( n i ( ) n i ) ( 1 2 ε ) m i 1 + ε 2 }{{} 1 Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 68 / 96

69 Blum-Blum-Shub Generator Sicherheitsbewertung Monte Carlo Algorithmen (Forts.) (( ) ( )) m ( ) # = 2 + ε 2 ε 2 ε ( ) m ( ) 1 1 = 4 ε2 2 ε 2 2m ( ) 1 4ε 2 m ( ) 1 = 4 2 ε 4 m = ( 1 4ε 2) ( ) m 1 2 ε (1 4ε2 ) m 2 2 2m Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 69 / 96

70 Blum-Blum-Shub Generator Sicherheitsbewertung Monte Carlo Algorithmen (Forts.) Anwendung des Satzes: Angenommen, die Fehlerwahrscheinlichkeit von A soll auf einen Wert 0 < γ < 1 ε verkleinert werden. 2 Dann muss m so gewählt werden, dass Hieraus folgt: (1 4ε 2 ) m 2 γ 1 + log2 γ m = log 2 (1 4ε 2 ) Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 70 / 96

71 Blum-Blum-Shub Generator Sicherheitsbewertung Sicherheit des BBS-Generators Es gilt: ein (k, l)-bit BBS Generator ist ε-unterscheidbar von µ u es gibt einen (ε/l) Previous Bit Predictor für den (k, l)-bit BBS Generator es gibt einen Monte Carlo Algorithmus für QR mit einer Fehlerwahrscheinlichkeit von höchstens 1 2 ε l es gibt einen Monte Carlo Algorithmus für QR mit einer Fehlerwahrscheinlichkeit von höchstens γ für alle γ > 0 Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 71 / 96

72 Blum-Blum-Shub Generator Sicherheitsbewertung Sicherheit des BBS-Generators (Forts.) Vermutung: Es existiert kein Monte Carlo Algorithmus für QR mit einer Fehlerwahrscheinlichkeit von höchstens γ für alle γ > 0 Konsequenz: Ein (k, l)-bit BBS Generator ist nicht ε-unterscheidbar von der Gleichverteilung für alle ε > 0 Sicherheitsanforderung: Die Primzahlen p und q sowie der Seed müssen geheim gehalten werden Bemerkung: Der BBS-Generator ist selbst dann noch sicher, wenn log 2 log 2 k Bits in einem Schleifendurchlauf abgreift Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 72 / 96

73 Fortuna Pseudo Random Number Generator Einleitung Fortuna Pseudo Random Number Generator Entwicklung von Niels Ferguson und Bruce Schneier Weiterentwicklung des Yarrow PRNG Prinzip: Block Chiffre im Counter Mode Interner Zustand: 256 bit Schlüssel einer Blockchiffre 128 bit Zähler Fortuna erzeugt beliebig lange Byte Folgen Einsatz von AES und SHA-256 zur Verarbeitung des internen Zustands Ebenfalls geeignet: Serpent und Twofish Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 73 / 96

74 Fortuna Pseudo Random Number Generator Eigenschaften Eigenschaften Um zu verhindern, dass ein Angreifer anhand des internen Zustands Informationen über bereits erzeugte Byte-Folgen erlangen kann, wird der Schlüssel nach jeder Erzeugung gewechselt Um zu garantieren, dass die erzeugte Byte-Folge statistisch zufällig aussieht, wird die Anzahl Bytes, die in einem Aufruf erzeugt werden können, auf 2 20 = beschränkt Regelmässiges Reseeding verhindert, dass ein Angreifer anhand des internen Zustands zukünftige Byte-Folgen berechnen kann Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 74 / 96

75 Fortuna Pseudo Random Number Generator Counter Mode Counter Mode Aufgabe: Erzeugen eines Bitstroms unter Einsatz einer Blockchiffre Gegeben: Block Chiffre E, Schlüssel k, Klartext x 1,..., x l bestehend aus l Blöcken, Initialisierungswert n Verschlüsselung: Zwei Schritte: Für i = 1,..., l: 1. Berechne Blockschlüssel k i = E(k, n i) 2. Berechne Geheimtextblock y i = x i k i Ergebnis: Geheimtext y 1,..., y l Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 75 / 96

76 Fortuna Pseudo Random Number Generator Counter Mode Bemerkungen zum Counter Mode Die Wortlänge von n und i orientiert sich an der Blocklänge des Kryptosystems E Ist die Anzahl der zu verschlüssenden Blöcke nicht bekannt, dann wird i als interner Zähler implementiert, der nach jeder Verschlüsselung inkrementiert wird Die Kombination aus Schlüssel k und Initialwert Nonce darf nur einmal benutzt werden Die Laufzeit des Counter Modes hängt im Wesentlichen von der eingesetzten Blockchiffre E ab Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 76 / 96

77 Fortuna Pseudo Random Number Generator Counter Mode Aufbau des Initialisierungswerts Beispiel. Block Chiffre mit einer Blocklänge von 128 Bit Parameterwahl für den CTR Mode: Initialisierungswert, zusammengesetzt aus: Message ID (48 bit) Vergabe anhand der zu übertragenden Nachricht Nonce (16 bit) einmal zu verwendendes Wort Counter (64 bit) Ergebnis: Pro Schlüssel können 2 48 verschiedene Nachrichten verschlüsselt werden Die Länge einer Nachricht ist beschränkt auf höchstens 2 64 Byte Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 77 / 96

78 Fortuna Pseudo Random Number Generator Interner Zustand Interner Zustand von Fortuna Fortuna besitzt einen internen Zustand bestehend aus Schlüssel key (256 bit) Zähler cntr (128 bit) Der Zähler cntr wird entweder als Byte Array oder als natürliche Zahl in Least Significant Byte First (LSBF) Darstellung interpretiert. Ist cntr in dem Byte-Block p 0,..., p 15 abgespeichert, dann berechnet man die zugehörige Zahl als 15 cntr = p i 2 8i i=0 Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 78 / 96

79 Fortuna Pseudo Random Number Generator Algorithmen Initialisierung InitializeGenerator() Output: G = (key, cntr) Initialwerte für Schlüssel und Zähler 1 key := 0 2 cntr := 0 3 G := (key, cntr) 4 return G Beachte: Nach der Initialisierung ist der PRNG nicht einsatzbereit Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 79 / 96

80 Fortuna Pseudo Random Number Generator Algorithmen Reseeding Reseed(G, s) Input: Interner Zustand G = (key, cntr), Seed s 1 key := SHA-256(key s) 2 cntr := cntr + 1 Beachte: Der interne Zustand wird während des Reseedings verändert Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 80 / 96

81 Fortuna Pseudo Random Number Generator Algorithmen Generierung von 16-Byte-Blöcken GenerateBlocks(G, k) Input: Interner Zustand G = (key, cntr), Anzahl k der zu generierenden Blöcke Output: r Pseudo-Zufallsfolge mit 16k Bytes 1 if cntr = 0 then 2 error PRNG wurde nicht korrekt initialisiert. 3 r := ε 4 for i := 1 to k do 5 r := r AES(key, cntr) 6 cntr := cntr return r Beachte: Der interne Zustand wird während der Generierung verändert Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 81 / 96

82 Fortuna Pseudo Random Number Generator Algorithmen Generierung von beliebigen Byte-Folgen PseudoRandomData(G, n) Input: Interner Zustand G = (key, cntr), Anzahl n der zu generierenden Bytes Output: Pseudo-Zufallsfolge r mit n Bytes 1 if n < 0 or n > 2 20 then 2 error Inkorrekte Länge. 3 b := GenerateBlocks(G, n 16 ) 4 r := erste n Bytes von b 5 key := GenerateBlocks(G, 2) 6 return r Beachte: Der interne Zustand wird während der Generierung verändert Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 82 / 96

83 Fortuna Pseudo Random Number Generator Algorithmen Bemerkungen zu PseudoRandomData() Die Länge der erzeugten Byte-Folge wird beschränkt, um statistische Abweichungen zu echten Zufallsfolgen zu vermeiden Der Schlüssel wird erneuert, um zu verhindern, dass man die erzeugte Zufallsfolge rekonstruieren kann Um ein Datenleck zu verhindern, sollte die Implementierung keine Kopie von r zwischenspeichern und den für b und r benutzten Speicher überschreiben Eine Folge mit mehr als 2 20 Bytes kann durch wiederholtes Ausführen von PseudoRandomData() erzeugt werden Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 83 / 96

84 Fortuna Pseudo Random Number Generator Akkumulator Akkumulator Aufgabe: Sammeln von echten Zufallsdaten, die zum Reseeding eingesetzt werden Idee: Je mehr Quellen beim Reseeding berücksichtigt werden, desto geringer ist die Chance, dass ein Angreifer den neuen Seed berechnen kann Umsetzung: Der Akkumulator wird in den Generator integriert Mögliche Zufallsquellen: Dauer von Tastaturklicks Mausbewegungen und -klicks Zugriffszeit einer Festplatte Internet Zugriffe (Pings, etc.) Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 84 / 96

85 Fortuna Pseudo Random Number Generator Akkumulator Zufallsquellen und Random Pools Eigenschaften einer Zufallsquelle: Jede Quelle erhält eine eindeutige Nummer aus {0,..., 255} Eine Quelle liefert als Event eine kleine Anzahl echt zufälliger Bytes zurück Es besteht die Möglichkeit, mehrere Events zu einer längeren Byte-Folge zu konkatenieren Random Pools Es gibt 32 Pools, die mit P 0, P 1,..., P 31 bezeichnet werden Jeder Pool liefert eine Byte-Folge unbeschränkter Länge Diese Folge wird durch wiederholte Anwendung einer kryptografischen Hashfunktion berechnet Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 85 / 96

86 Fortuna Pseudo Random Number Generator Akkumulator Ablauf des Reseedings Die Daten einer Quelle werden zyklisch über alle Pools verteilt Bei Zuteilung einer Quelle an den Pool P i wird der Event an die Daten von P i angehängt Das Reseeding wird durchgeführt, wenn P 0 genügend Daten vorrätig hat Die Reseedings werden mit r = 1, 2, 3,... durchnummeriert Pool P i wird beim Reseeding r berücksichtigt, wenn 2 i ein Teiler von r ist Konsequenz: P 0 wird immer benutzt, P 1 wird jedes zweite Mal benutzt, P 2 wird jedes vierte Mal benutzt, usw. Wird ein Pool P i zum Reseeding benutzt, dann werden anschließend seine Daten gelöscht Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 86 / 96

87 Fortuna Pseudo Random Number Generator Akkumulator Sicherheitsbetrachtung Angriffspunkte: Der Angreifer hat Zugriff auf mehrere (aber nicht alle) Pools Der Angreifer kann selbst gefälschte Events einschleusen Ansatz: Da der Pool P i nur jedes 2 i -te Mal benutzt wird, um so mehr Daten hält er vor Falls es eine Zufallsquelle gibt, die der Angreifer nicht kennt, dann gibt es immer einen Pool, der genügend Daten sammelt, die gegen einen Angriff resistent sind Das System erholt sich von einer Kompromittierung innerhalb von einer kurzen Zeit von selbst Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 87 / 96

88 Fortuna Pseudo Random Number Generator PRNG mit Akkumulator Initialisierung InitializePRNG() Output: Interner Zustand R 1 for i := 0 to 31 do 2 P i := ε 3 reseed cntr := 0 4 G := InitializeGenerator() 5 R := (G, reseed cntr, P 0,..., P 31 ) 6 return R Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 88 / 96

89 Fortuna Pseudo Random Number Generator PRNG mit Akkumulator Generierung von Byte-Folgen RandomData(R, n) Input: Interner Zustand R = (G, reseed cntr, P 0,..., P 31 ) Anzahl n der zu generierenden Bytes Output: Pseudo-Zufallsfolge mit n Bytes 1 if length(p 0 ) min pool size and last reseed > 100ms then 2 reseed cntr := reseed cntr s := ε 4 for i {0, 1,..., 31} do 5 if 2 i reseed cntr then 6 s := s SHA-256(P i ) 7 P i := ε 8 Reseed(G, s) 9 return PseudoRandomData(G, n) Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 89 / 96

90 Fortuna Pseudo Random Number Generator PRNG mit Akkumulator Hinzufügen eines Events AddRandomEvent(R, s, i, e) Input: Interner Zustand R, Nummer der Quelle s {0, 1,..., 255}, Nummer des Pools i {0, 1,..., 31}, Daten des Events e (Folge von höchstens 32 Bytes) 1 if 1 length(e) 32 and 0 s 255 and 0 i 31 then 2 P i := P i s length(e) e 3 else 4 error Fehlerhafte Parameter Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 90 / 96

91 Fortuna Pseudo Random Number Generator Seed Dateien Anlegen einer Seed Datei Problem: Nach dem Booten des Rechners ist der PRNG nicht in der Lage, gute Zufallszahlen zu erzeugen, da zu wenige Events vorliegen Vorschlag: Abwarten, bis sich der Pool gefüllt hat Auslesen eines guten Seeds aus einer Datei, die beim Herunterfahren gespeichert wurde Sicherheitsvorkehrungen: Der Inhalt der Seed Datei muss geheim gehalten werden darf nur einmal benutzt werden Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 91 / 96

92 Fortuna Pseudo Random Number Generator Seed Dateien Lesen und Schreiben der Seed Datei WriteSeedFile(R, f ) Input: Interner Zustand R, Datei Handle f 1 write RandomData(G, 64) to f UpdateSeedFile(R, f ) Input: Interner Zustand R, Datei Handle f 1 read f to s 2 if length(s) < 64 then 3 error Zu wenig Daten für Reseed 4 Reseed(G, s) 5 write RandomData(G, 64) to f Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 92 / 96

93 Fortuna Pseudo Random Number Generator Seed Dateien Bemerkungen zu Seed Dateien Die Seed Datei sollte bei Start des Systems gelesen werden Beim Herunterfahren des Rechners muss ein Update der Seed Datei erfolgen Es empfiehlt sich, die Seed Datei regelmäßig zu aktualisieren Vorsicht ist beim Backup eines Systems geboten, da man damit die Seed Datei wieder herstellen kann Eine weitere Gefahr besteht darin, dass in der Regel die Daten nicht sofort auf die Festplatte geschrieben werden. Dies kann zu Inkonsistenzen führen Bei der Installation eines Computers muss darauf geachtet werden, dass die Seed Datei beim ersten Reboot nicht benutzt wird oder dass eine geeignete Datei erstellt wird Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 93 / 96

94 Abschließende Bemerkungen Hinweise zur Arbeit mit PRNGs Hinweise zur Arbeit mit PRNGs Die PRNGs von Programmiersprachen und Betriebssystemen erfüllen in der Regel nicht die Anforderungen an einen kryptografisch sicheren Pseudo-Zufallszahlengenerator Gute Quellen mit hoher Entropie sind oft schwer zu finden. Daher sollten möglichst viele Quellen angezapft werden. Fortuna ist gegen schlechte Quellen immun Der Einsatz von Seed Dateien ist einfach zu verstehen, aber schwierig zu implementieren. In der Regel sind Eingriffe in das Betriebssystem und sogar in die Firmware der Komponenten notwendig, um die Implementierung sicher zu gestalten Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 94 / 96

95 Abschließende Bemerkungen Generierung von Zahlen Generierung von gleichverteilten Zahlen Aufgabe: Generiere unter Gleichverteilung eine Zahl x {0, 1,..., n 1}, wobei n eine natürliche Zahl und keine Zweierpotenz ist Ansatz 1: Generiere zufällig eine Zahl y {0, 1,..., 2 log 2 n 1} und berechne x = y mod n Ergebnis: die resultierende Verteilung ist keine Gleichverteilung und somit nicht sicher Ansatz 2: Generiere solange zufällig eine Zahl x {0, 1,..., 2 log 2 n 1}, bis x {0, 1,..., n 1} Ergebnis: Die resultierende Verteilung ist eine Gleichverteilung, aber es sind gelegentlich mehrere Versuche notwendig, bis eine Zufallszahl vorliegt Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 95 / 96

96 Zusammenfassung Zusammenfassung Die Kryptografie stellt hohe Anforderungen an Pseudo-Zufallszahlengeneratoren Der Blum-Blum-Shub Generator gilt als der sicherste PRNG Fortuna ist ein PRNG, der auf AES im Counter Mode basiert Zufallsquellen mit hoher Entropie verbessern die Qualität der Zufallszahlen von Fortuna Für weitere Informationen zum Thema Zufallszahlen empfiehlt sich RFC 4086 (Randomness Requirements for Security) der Internet Engineering Task Force (IETF) Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Zufallszahlengeneratoren 96 / 96

Kryptographische Protokolle

Kryptographische Protokolle Kryptographische Protokolle Lerneinheit 2: Generierung von Primzahlen Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Wintersemester 2018/2019 15.11.2018 Einleitung Einleitung Diese Lerneinheit

Mehr

Kryptographische Protokolle

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

Mehr

Algorithmische Kryptographie

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

Mehr

IT-Security. Teil 15: Zufall

IT-Security. Teil 15: Zufall IT-Security Teil 15: Zufall 09.05.17 1 Literatur [15-1] http://de.wikipedia.org/wiki/kryptographisch_sicherer_zufallszahlen generator [15-2] https://gnupg.org/documentation/manuals/gcrypt/fips-prng- Description.html

Mehr

Probabilistische Primzahltests

Probabilistische Primzahltests 23.01.2006 Motivation und Überblick Grundsätzliches Vorgehen Motivation und Überblick Als Primzahltest bezeichnet man ein mathematisches Verfahren, mit dem ermittelt wird, ob eine gegebene Zahl eine Primzahl

Mehr

Pseudozufallsgeneratoren

Pseudozufallsgeneratoren Pseudozufallsgeneratoren In welchen kryptographischen Verfahren werden keine Zufallszahlen benötigt? Wie generiert man Zufallszahlen in einer deterministischen Maschine wie dem Computer? Wenn man eine

Mehr

Erzeugung von Pseudozufallszahlen

Erzeugung von Pseudozufallszahlen Erzeugung von Pseudozufallszahlen Proseminar Kryptografie und Datensicherheit Sommersemester 2009 Mario Frank Übersicht 1. Allgemeines 2. Anwendungen von PRBG 3. (k,l)-bit Generatoren 4. Unterscheidbarkeit

Mehr

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

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

Mehr

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

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

Mehr

Kryptographie und Komplexität

Kryptographie und Komplexität Kryptographie und Komplexität Einheit 4.4 Semantische Sicherheit 1. Sicherheit partieller Informationen 2. Das Verfahren von Rabin 3. Sicherheit durch Randomisierung Semantische Sicherheit Mehr als nur

Mehr

Kryptographie und Komplexität

Kryptographie und Komplexität Kryptographie und Komplexität Einheit 4.2 Primzahltests 1. Deterministische Primzahltests 2. Der Primzahltest von Solovay-Strassen 3. Der Milner-Rabin Test Wozu Primzahltests? RSA Schlüssel benötigen sehr

Mehr

8. Woche Quadratische Reste und Anwendungen. 8. Woche: Quadratische Reste und Anwendungen 163/ 238

8. Woche Quadratische Reste und Anwendungen. 8. Woche: Quadratische Reste und Anwendungen 163/ 238 8 Woche Quadratische Reste und Anwendungen 8 Woche: Quadratische Reste und Anwendungen 163/ 238 Quadratische Reste Ḋefinition Quadratischer Rest Sei n N Ein Element a Z n heißt quadratischer Rest in Z

Mehr

Kryptographie und Komplexität

Kryptographie und Komplexität Kryptographie und Komplexität Einheit 4.2 Primzahltests 1. Deterministische Primzahltests 2. Der Primzahltest von Solovay-Strassen 3. Der Milner-Rabin Test Wozu Primzahltests? RSA Schlüssel benötigen sehr

Mehr

Pseudo-Zufallsgeneratoren basierend auf dem DLP

Pseudo-Zufallsgeneratoren basierend auf dem DLP Seminar Codes und Kryptografie SS 2004 Struktur des Vortrags Struktur des Vortrags Ziel Motivation 1 Einleitung Ziel Motivation 2 Grundlegende Definitionen Zufallsgeneratoren 3 Generator Sicherheit 4 Generator

Mehr

1. Welche Eigenschaften sollte ein Pseudo-Random Generator haben?

1. Welche Eigenschaften sollte ein Pseudo-Random Generator haben? Die Themen 1. Welche Eigenschaften sollte ein Pseudo-Random Generator haben? Er sollte von wirklichen Zufallsgeneratoren nicht unterscheidbar sein?! Eine viel zu starke Forderung: Stattdessen sollte ein

Mehr

Lineare Kongruenzgeneratoren und Quicksort

Lineare Kongruenzgeneratoren und Quicksort Seminar Perlen der theoretischen Informatik Dozenten: Prof. Johannes Köbler und Olaf Beyersdorff Lineare Kongruenzgeneratoren und Quicksort Ausarbeitung zum Vortrag Mia Viktoria Meyer 12. November 2002

Mehr

Sicherheit von ElGamal Intuitiv: Eve soll c 2 = m g ab nicht von c 2 R G unterscheiden können.

Sicherheit von ElGamal Intuitiv: Eve soll c 2 = m g ab nicht von c 2 R G unterscheiden können. Sicherheit von ElGamal Intuitiv: Eve soll c 2 m g ab nicht von c 2 R G unterscheiden können. Protokoll Unterscheider EINGABE: q, g, g x 1 Eve wählt m G und schickt m an Alice. 2 Alice wählt b R {0, 1},

Mehr

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

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

Mehr

Diskreter Logarithmus und Primkörper

Diskreter Logarithmus und Primkörper Diskreter Logarithmus und Primkörper Neben dem RSA-Verfahren ist die ElGamal-Verschlüsselung 8 ein weiteres klassische Public-Key-Verfahren, welches von Taher ElGamal auf der Konferenz CRYPTO 84 vorgestellt

Mehr

Klausurtermin. Klausur Diskrete Mathematik I Do stündig

Klausurtermin. Klausur Diskrete Mathematik I Do stündig Klausurtermin Klausur Diskrete Mathematik I Do. 28.02.2008 3-stündig 07.12.2007 1 Wiederholung Komplexität modularer Arithmetik Addition: O(n) Multiplikation: O(n 2 ) bzw. O(n log 2 3 ) Exponentiation:

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Lerneinheit 3: Greedy Algorithmen Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester 2016 10.5.2016 Einleitung Einleitung Diese Lerneinheit

Mehr

Angewandte Kryptographie Praktikum 4

Angewandte Kryptographie Praktikum 4 Angewandte Kryptographie Praktikum 4 Thema: Public Key Kryptosysteme Wintersemester 2018/2019 Prof. Dr. Christoph Karg Hochschule Aalen Ziel dieses Praktikums ist die Implementierung des Rabin- und RSA-Kryptosystems

Mehr

Einwegfunktionen. Problemseminar. Komplexitätstheorie und Kryptographie. Martin Huschenbett. 30. Oktober 2008

Einwegfunktionen. Problemseminar. Komplexitätstheorie und Kryptographie. Martin Huschenbett. 30. Oktober 2008 Problemseminar Komplexitätstheorie und Kryptographie Martin Huschenbett Student am Institut für Informatik an der Universität Leipzig 30. Oktober 2008 1 / 33 Gliederung 1 Randomisierte Algorithmen und

Mehr

Zufallszahlen in AntBrain

Zufallszahlen in AntBrain Zufallszahlen SEP 291 Zufallszahlen in AntBrain Spezifikation, Teil II: Zum Beispiel könnte ein Objekt vom Typ Match die Spielfelder nach jeweils 1000 Spielrunden speichern; bei einer Anfrage nach den

Mehr

Berechenbarkeits- und Komplexitätstheorie

Berechenbarkeits- und Komplexitätstheorie Berechenbarkeits- und Komplexitätstheorie Lerneinheit 5: Die Klasse NP Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Wintersemester 2015/2016 26.9.2015 Einleitung Thema dieser Lerneinheit

Mehr

Beispiel für simultane Kongruenz

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

Mehr

6: Public-Key Kryptographie (Grundidee)

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

Mehr

Elliptic Curve Cryptography

Elliptic Curve Cryptography Elliptic Curve Cryptography Institut für Informatik Humboldt-Universität zu Berlin 10. November 2013 ECC 1 Aufbau 1 Asymmetrische Verschlüsselung im Allgemeinen 2 Elliptische Kurven über den reellen Zahlen

Mehr

Ein RSA verwandtes, randomisiertes Public Key Kryptosystem

Ein RSA verwandtes, randomisiertes Public Key Kryptosystem Seminar Codes und Kryptographie WS 2003 Ein RSA verwandtes, randomisiertes Public Key Kryptosystem Kai Gehrs Übersicht 1. Motivation 2. Das Public Key Kryptosystem 2.1 p-sylow Untergruppen und eine spezielle

Mehr

Kryptographische Algorithmen

Kryptographische Algorithmen Kryptographische Algorithmen Lerneinheit 6: Public Key Kryptosysteme Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Wintersemester 2016/2017 19.9.2016 Public Key Kryptosysteme Einleitung

Mehr

Konstruktion von MACs. Message Authentication Codes. Sicherheitsmodell CBC-MAC

Konstruktion von MACs. Message Authentication Codes. Sicherheitsmodell CBC-MAC Message Authentication Codes Entspricht Hashfunktionen mit geheimen Schlüsseln. h : K M H, MAC = h k (m). h parametrisierte Hashfunktion. m Nachricht. k geheimer Schlüssel. Mit der Nachricht m wird h k

Mehr

Digitale Signaturen. Andreas Spillner. Kryptografie, SS 2018

Digitale Signaturen. Andreas Spillner. Kryptografie, SS 2018 Digitale Signaturen Andreas Spillner Kryptografie, SS 2018 Ausgangspunkt Digitale Signaturen bieten unter anderem das, was man auch mit einer eigenhändigen Unterschrift auf einem Dokument bezweckt. Beispiel:

Mehr

Vorlesung Sicherheit

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

Mehr

Das Quadratische Reste Problem

Das Quadratische Reste Problem Das Quadratische Reste Problem Definition Pseudoquadrate Sei N = q mit, q rim. Eine Zahl a heißt Pseudoquadrat bezüglich N, falls ( a ) = 1 und a / QR N. N Wir definieren die Srache QUADRAT:= {a Z N (

Mehr

Vorlesung Sicherheit

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

Mehr

Diskrete Mathematik 1

Diskrete Mathematik 1 Ruhr-Universität Bochum Lehrstuhl für Kryptologie und IT-Sicherheit Prof. Dr. Alexander May M. Ritzenhofen, M. Mansour Al Sawadi, A. Meurer Lösungsblatt zur Vorlesung Diskrete Mathematik 1 WS 008/09 Blatt

Mehr

Kryptographie und Komplexität

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

Mehr

6 Zahlentheoretische Grundlagen

6 Zahlentheoretische Grundlagen 6 Zahlentheoretische Grundlagen 89 6 Zahlentheoretische Grundlagen In diesem Abschnitt stellen wir die Hilfsmittel aus der Zahlentheorie bereit, die wir zum Verständnis der Public-Key Verfahren, die im

Mehr

Algorithmentheorie Randomisierung

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

Mehr

4 Kryptologie. Übersicht

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

Mehr

Message Authentication Codes. Konstruktion von MACs. Hash-then-Encrypt. Sicherheitsmodell

Message Authentication Codes. Konstruktion von MACs. Hash-then-Encrypt. Sicherheitsmodell Message Authentication Codes Entspricht Hashfunktionen mit geheimen Schlüsseln. h : K M H, MAC = h k (m). h parametrisierte Hashfunktion. m Nachricht. k geheimer Schlüssel. Mit der Nachricht m wird h k

Mehr

3: Zahlentheorie / Primzahlen

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

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen Lerneinheit : Dynamisches Programmieren Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester.. Einleitung Diese Lerneinheit widmet sich einer

Mehr

Public-Key-Verschlüsselung und Diskrete Logarithmen

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

Mehr

9. Primitivwurzeln. O. Forster: Einführung in die Zahlentheorie

9. Primitivwurzeln. O. Forster: Einführung in die Zahlentheorie 9. Primitivwurzeln 9.1. Satz. Sei G eine zyklische Gruppe der Ordnung m und g G ein erzeugendes Element. Das Element a := g k, k Z, ist genau dann ein erzeugendes Element von G, wenn k zu m teilerfremd

Mehr

3 Public-Key-Kryptosysteme

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

Mehr

Miller-Rabin Test. Primzahl- und Zerlegbarkeitstests. Zeugen für die Zerlegbarkeit ganzer Zahlen

Miller-Rabin Test. Primzahl- und Zerlegbarkeitstests. Zeugen für die Zerlegbarkeit ganzer Zahlen Miller-Rabin Test Primzahl- und Zerlegbarkeitstests Sei N eine positive ganze Zahl. Wie kann man möglichst effizient feststellen, ob N eine Primzahl oder zerlegbar ist? Dies ist die Aufgabe von Primzahlund

Mehr

Vortrag zum Proseminar: Kryptographie

Vortrag zum Proseminar: Kryptographie Vortrag zum Proseminar: Kryptographie Thema: Oliver Czernik 6.12.2005 Historie Michael Rabin Professor für Computerwissenschaft Miller-Rabin-Primzahltest Januar 1979 April 1977: RSA Asymmetrisches Verschlüsselungssystem

Mehr

Kryptografische Protokolle

Kryptografische Protokolle Kryptografische Protokolle Lerneinheit 6: Elektronisches Geld Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester 2016 14.6.2016 Anforderungen an elektronisches Geld Sicherheit:

Mehr

Kryptografische Hashfunktionen

Kryptografische Hashfunktionen Kryptografische Hashfunktionen Andreas Spillner Kryptografie, SS 2018 Wo verwenden wir kryptografische Hashfunktionen? Der Hashwert H(x) einer Nachricht x wird oft wie ein Fingerabdruck von x vewendet.

Mehr

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

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

Mehr

Kapitel 6: Das quadratische Reziprozitätsgesetz

Kapitel 6: Das quadratische Reziprozitätsgesetz Kapitel 6: Das quadratische Reziprozitätsgesetz Ziel dieses Kapitels: die Untersuchung der Lösbarkeit der Kongruenzgleichung X also die Frage, ob die ganze Zahl Z eine Quadratwurzel modulo P besitzt. Im

Mehr

Zufall oder Absicht?

Zufall oder Absicht? Zufall oder Absicht? Randomisierung und Derandomisierung Prof. Markus Bläser Universität des Saarlandes 4. Januar 2010 1 / 21 Zufall oder Absicht? 1 Randomisierte Algorithmen 2 Polynom-Identitätstests

Mehr

13. Woche: NP-Vollständigkeit Satz von Cook-Levin Anwendungen in der Kryptographie

13. Woche: NP-Vollständigkeit Satz von Cook-Levin Anwendungen in der Kryptographie 13 Woche: NP-Vollständigkeit Satz von Cook-Levin Anwendungen in der Kryptographie 13 Woche: NP-Vollständigkeit, Satz von Cook-Levin, Anwendungen 276/ 333 N P-Vollständigkeit Ḋefinition NP-vollständig Sei

Mehr

Pollards Rho-Methode zur Faktorisierung

Pollards Rho-Methode zur Faktorisierung C A R L V O N O S S I E T Z K Y Pollards Rho-Methode zur Faktorisierung Abschlusspräsentation Bachelorarbeit Janosch Döcker Carl von Ossietzky Universität Oldenburg Department für Informatik Abteilung

Mehr

Diskrete Strukturen Kapitel 5: Algebraische Strukturen (Gruppen)

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

Mehr

RSA Parameter öffentlich: N = pq mit p, q prim und e Z RSA Parameter geheim: d Z φ(n)

RSA Parameter öffentlich: N = pq mit p, q prim und e Z RSA Parameter geheim: d Z φ(n) RSA Parameter { öffentlich: N = pq mit p, q prim und e Z RSA Parameter φ(n) geheim: d Z φ(n) mit ed = 1 mod φ(n). Satz RSA Parameter Generierung RSA-Parameter (N, e, d) können in Zeit O(log 4 N) generiert

Mehr

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

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

Mehr

Miller-Rabin Test. Primzahl- und Zerlegbarkeitstests. Zeugen für die Zerlegbarkeit ganzer Zahlen

Miller-Rabin Test. Primzahl- und Zerlegbarkeitstests. Zeugen für die Zerlegbarkeit ganzer Zahlen Miller-Rabin Test Primzahl- und Zerlegbarkeitstests Sei N eine positive ganze Zahl. Wie kann man möglichst effizient feststellen, ob N eine Primzahl oder zerlegbar ist? Dies ist die Aufgabe von Primzahlund

Mehr

7. Kongruenzrechnung Definition: Proposition: Korollar: Beispiel: b ( a kongruent b modulo n ) auf Z, definiert durch:

7. Kongruenzrechnung Definition: Proposition: Korollar: Beispiel: b ( a kongruent b modulo n ) auf Z, definiert durch: 7. Kongruenzrechnung 7. 1. Definition: Für n N sei die Relation: n a n b ( a kongruent b modulo n ) auf Z, definiert durch: a n b : n ( a b) a b ( mod n) Dies ist eine Äquivalenzrelation auf Z. Die Menge

Mehr

Randomisierte Algorithmen 2. Erste Beispiele

Randomisierte Algorithmen 2. Erste Beispiele Randomisierte Algorithmen Randomisierte Algorithmen 2. Erste Beispiele Thomas Worsch Fakultät für Informatik Karlsruher Institut für Technologie Wintersemester 2016/2017 1 / 35 Randomisierter Identitätstest

Mehr

Algorithmentheorie Randomisierung. Robert Elsässer

Algorithmentheorie Randomisierung. Robert Elsässer Algorithmentheorie 03 - Randomisierung Robert Elsässer Randomisierung Klassen von randomisierten Algorithmen Randomisierter Quicksort Randomisierter Primzahltest Kryptographie 2 1. Klassen von randomisierten

Mehr

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

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

Mehr

Kryptographie und Komplexität

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

Mehr

1 Das RSA-Verfahren und seine algorithmischen Grundlagen

1 Das RSA-Verfahren und seine algorithmischen Grundlagen 1 Das RSA-Verfahren und seine algorithmischen Grundlagen Das wichtigste d. h., am weitesten verbreitete und am meisten analysierte asymmetrische Verfahren ist das RSA-Verfahren, benannt nach seinen Erfindern

Mehr

Attacken auf RSA und Das Rabin Kryptosystem

Attacken auf RSA und Das Rabin Kryptosystem Attacken auf RSA und Das Rabin Kryptosystem Institut für Informatik Universität Potsdam 4. Januar 2005 Überblick Wiederholung: RSA Das RSA Kryptosystem Attacken auf RSA RSA-FACTOR Wieners Algorithmus Das

Mehr

PRIMES is in P. Ein Vortrag von Holger Szillat.

PRIMES is in P. Ein Vortrag von Holger Szillat. PRIMES is in P Ein Vortrag von Holger Szillat szillat@informatik.uni-tuebingen.de Übersicht Geschichte Notationen und Definitionen Der Agrawal-Kayal-Saxena-Algorithmus Korrektheit und Aufwand Fazit Geschichte

Mehr

Dr. Ing. Wilfried Dankmeier Eppstein im Taunus,

Dr. Ing. Wilfried Dankmeier Eppstein im Taunus, Modulare Quadratwurzeln beim Fiat-Shamir-Verfahren zur Authentikation (zu Grundkurs Codierung, 3. Auflage 2006, Vieweg Verlag, ISBN 3-528-25399-1, Unterkapitel 5.10, Seiten 303 ff) update vom 20.03.1996

Mehr

Dr. Ing. Wilfried Dankmeier Eppstein im Taunus,

Dr. Ing. Wilfried Dankmeier Eppstein im Taunus, Modulare Quadratwurzeln beim Fiat-Shamir-Verfahren zur Authentikation (zu Grundkurs Codierung, 3. Auflage 2006, Vieweg Verlag, ISBN 3-528-25399-1, Unterkapitel 5.10, Seiten 303 ff) update vom 20.03.1996

Mehr

Mathematisches Kaleidoskop 2014 Materialien Teil 2. Dr. Hermann Dürkop

Mathematisches Kaleidoskop 2014 Materialien Teil 2. Dr. Hermann Dürkop Mathematisches Kaleidoskop 2014 Materialien Teil 2 Dr. Hermann Dürkop 1 1.6 Quadratische Reste und das Legendre-Symbol Im folgenden seien die Moduln p immer Primzahlen. Wir haben bisher gesehen, ob und

Mehr

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

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

Mehr

Kryptographie und Komplexität

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

Mehr

Digitale Signaturen. RSA-FDH & das Random Oracle Model Björn Kaidel (mit Folien von Gunnar Hartung)

Digitale Signaturen. RSA-FDH & das Random Oracle Model Björn Kaidel (mit Folien von Gunnar Hartung) Digitale Signaturen RSA-FDH & das Random Oracle Model Björn Kaidel (mit Folien von Gunnar Hartung) FAKULTÄT FÜR INFORMATIK, INSTITUT FÜR THEORETISCHE INFORMATIK 0 2017-12-01 B. Kaidel Digitale Signaturen:

Mehr

Zufallsprimzahlen und eine Revolution in der Kryptographie Stefan Edelkamp

Zufallsprimzahlen und eine Revolution in der Kryptographie Stefan Edelkamp Zufallsprimzahlen und eine Revolution in der Kryptographie Stefan Edelkamp Fakultät für Mathematik und Informatik Universität of Bremen Übersicht des Vortrags 1 Einfache Kryptosysteme 2 Einmalschlüssel

Mehr

Der RSA-Algorithmus. 2. Anschließend ist n = p q und ϕ (n) = (p 1) (q 1) zu berechnen.

Der RSA-Algorithmus. 2. Anschließend ist n = p q und ϕ (n) = (p 1) (q 1) zu berechnen. Kapitel 4 Der RSA-Algorithmus Der RSA-Algorithmus ist das heute bekannteste Verfahren aus der Familie der Public-Key-Kryptosysteme. Es wurde 1978 der Öffentlichkeit vorgestellt und gilt bis heute als der

Mehr

6.2 Asymmetrische Verschlüsselung

6.2 Asymmetrische Verschlüsselung 6.2 Asymmetrische Verschlüsselung (asymmetric encryption, public-key encryption) Prinzip (Diffie, Hellman, Merkle 1976-78): Statt eines Schlüssels K gibt es ein Schlüsselpaar K E, K D zum Verschlüsseln

Mehr

Institut für Theoretische Informatik Prof. Dr. D. Hofheinz. Stammvorlesung Sicherheit im Sommersemester Klausur. Lösung

Institut für Theoretische Informatik Prof. Dr. D. Hofheinz. Stammvorlesung Sicherheit im Sommersemester Klausur. Lösung Institut für Theoretische Informatik Prof. Dr. D. Hofheinz Stammvorlesung Sicherheit im Sommersemester 2017 Klausur Lösung 02.08.2017 Vorname: Nachname: Matrikelnummer: Klausur-ID: Hinweise - Schreiben

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen Lerneinheit : Kürzeste Pfade in Graphen Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester 016.6.01 Einleitung Diese Lerneinheit beschäftigt

Mehr

RSA Verfahren. Kapitel 7 p. 103

RSA Verfahren. Kapitel 7 p. 103 RSA Verfahren RSA benannt nach den Erfindern Ron Rivest, Adi Shamir und Leonard Adleman war das erste Public-Key Verschlüsselungsverfahren. Sicherheit hängt eng mit der Schwierigkeit zusammen, große Zahlen

Mehr

Lösung zur Klausur zu Krypographie Sommersemester 2005

Lösung zur Klausur zu Krypographie Sommersemester 2005 Lösung zur Klausur zu Krypographie Sommersemester 2005 1. Bestimmen Sie die zwei letzten Ziffern der Dezimaldarstellung von 12 34 Es gilt: 12 34 = 12 32+2 = 12 32 12 2 = 12 (25) 12 2 = ((((12 2 ) 2 ) 2

Mehr

Vorlesung Mathematik 2 für Informatik

Vorlesung Mathematik 2 für Informatik Vorlesung Mathematik 2 für Informatik Inhalt: Modulare Arithmetik Lineare Algebra Vektoren und Matrizen Lineare Gleichungssysteme Vektorräume, lineare Abbildungen Orthogonalität Eigenwerte und Eigenvektoren

Mehr

Vorlesung Sicherheit

Vorlesung Sicherheit Vorlesung Sicherheit Dennis Hofheinz IKS, KIT 06.05.2013 1 / 25 Überblick 1 Hashfunktionen Erinnerung Angriffe auf Hashfunktionen Zusammenfassung Hashfunktionen 2 Asymmetrische Verschlüsselung Idee Beispiel:

Mehr

Aufgabe der Kryptografie

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

Mehr

5 Harte zahlentheoretische Probleme

5 Harte zahlentheoretische Probleme 5 Harte zahlentheoretische Probleme Die folgende Tabelle gibt einen Überblick über kryptologisch relevante zahlentheoretische Berechnungsprobleme. Effizient bedeutet dabei mit polynomialem Aufwand lösbar.

Mehr

1 Zahlentheorie. 1.1 Kongruenzen

1 Zahlentheorie. 1.1 Kongruenzen 3 Zahlentheorie. Kongruenzen Der letzte Abschnitt zeigte, daß es sinnvoll ist, mit großen Zahlen möglichst einfach rechnen zu können. Oft kommt es nicht darauf, an eine Zahl im Detail zu kennen, sondern

Mehr

Ferien-Übungsblatt 8 Lösungsvorschläge

Ferien-Übungsblatt 8 Lösungsvorschläge Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Ferien-Übungsblatt 8 Lösungsvorschläge Vorlesung Algorithmentechnik im WS 09/10 Problem 1: Probabilistische Komplexitätsklassen [vgl.

Mehr

Mathematisches Institut II Universität Karlsruhe Priv.-Doz. Dr. N. Grinberg

Mathematisches Institut II Universität Karlsruhe Priv.-Doz. Dr. N. Grinberg 1 Mathematisches Institut II 06.07.004 Universität Karlsruhe Priv.-Doz. Dr. N. Grinberg SS 05 Schnupperkurs: Ausgewählte Methoden zur Aufgabenlösung Vorlesung 5: Elementare Zahlentheorie: Teilbarkeit Primfaktorzerlegung

Mehr

1 Kryptographie - alt und neu

1 Kryptographie - alt und neu 1 Krytograhie - alt und neu 1.1 Krytograhie - alt [H] S. 9-14 und S. 18:.3.1. (Idee) - olyalhabetische Verschlüsselung, Vigenère (1550) 1. Primzahlen [RS] S. 89-93, wohl im wesenlichen ohne Beweise. Ausnahme

Mehr

Kryptographie - eine mathematische Einführung

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

Mehr

Kryptographische Algorithmen

Kryptographische Algorithmen Kryptographische Algorithmen Lerneinheit 6: Public Key Kryptosysteme Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Wintersemester 2016/2017 19.9.2016 Public Key Kryptosysteme Einleitung

Mehr

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

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

Mehr

Proseminar Datensicherheit & Versicherungsmathematik RSA-Verfahren

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

Mehr

Prinzipien der modernen Kryptographie Sicherheit

Prinzipien der modernen Kryptographie Sicherheit Prinzipien der modernen Kryptographie Sicherheit Prinzip 1 Sicherheitsziel Die Sicherheitsziele müssen präzise definiert werden. Beispiele für ungenügende Definitionen von Sicherheit: Kein Angreifer kann

Mehr

Prinzipien der modernen Kryptographie Sicherheit

Prinzipien der modernen Kryptographie Sicherheit Prinzipien der modernen Kryptographie Sicherheit Prinzip 1 Sicherheitsmodell Das Sicherheitsmodell (Berechnungsmodell, Angriffstypen, Sicherheitsziele) muss präzise definiert werden. Berechnungsmodell:

Mehr

2: Restklassen 2.1: Modulare Arithmetik

2: Restklassen 2.1: Modulare Arithmetik 2: Restklassen 2.1: Modulare Arithmetik Uhr: Stunden mod 24, Minuten mod 60, Sekunden mod 60,... Rechnerarithmetik: mod 2 w, w {8, 16, 32, 64} Prüfziffern mod 10 oder mod 11... 71 S. Lucks Diskr Strukt.

Mehr