Regine Schreier 20.04.2016 Kryptographie Verschlüsselungsverfahren Private-Key-Verfahren und Public-Key-Verfahren RSA-Verfahren ◦ Schlüsselerzeugung ◦ Verschlüsselung ◦ Entschlüsselung Digitale Signatur mit RSA 2 Lehre der Datenverschlüsselung Schutzziele Vertraulichkeit Integrität Authentizität Zurechenbarkeit 3 Definition Ein Verschlüsselungsverfahren oder Kryptosystem ist ein Fünftuppel (Ƥ,Ƈ,Ƙ,Ɛ,Ɗ) mit folgenden Eigenschaften: 1) Menge Ƥ Klartextraum (Plaintext), Elemente Klartexte 2) Menge Ƈ Chiffretextraum (Ciphertext), Elemente Schlüsseltexte oder Chiffretexte 3) Menge Ƙ Schlüsselraum (Key), Elemente Schlüssel 4) Familie von Funktionen Ɛ={Ek: Ƥ → Ƈ | k∊Ƙ}, Elemente Verschlüsselungsfunktionen 5) Familie von Funktionen Ɗ={Dk: Ƈ → Ƥ | k∊Ƙ}, Elemente Entschlüsselungsfunktionen 6) ∀e∊Ƙ ∃d∊Ƙ ∀p∊Ƥ : Dd(Ee(p))=p 4 Grundsätzliche Idee Alice möchte die Nachricht m∊Ƥ vertraulich an Bob schicken Übermittlung von c Benötigt e∊Ƙ Berechnet Chriffretext c=Ee(m) Benötigt d∊Ƙ Berechnet Klartext m=Dd(c) 5 Beispiel „Verschiebungschiffren“ Idee: ABC → DEF „Verschieben um 3“ Klartext-, Chiffretext- und Schlüsselraum ist ∑={A,B,C,…,Z} Identifizierung von Buchstaben mit Zahlen ermöglicht das Rechnen mit Buchstaben A B C D E F G H I 0 1 2 3 4 5 6 ∑= ℤ/26ℤ 7 8 J K L M N O P Q R S T U V W X Y Z 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 6 Definition: Kongruenz und Restklassen a ist kongruent zu b modulo n mit a,b∊ℤ und n∊ℕ, wenn n die Differenz b-a teilt. Schreibweise: a ≡ b mod n. Äquivalente Aussagen: 1) a ≡ b mod n 2) a = b+kn mit k∊ℤ 3) a und b lassen bei Division durch n denselben Rest. Kongruenz modulo n ist eine Äquivalenzrelation. Äquivalenzklasse [a] = {b∊ℤ | b ≡ a mod n} = a+nℤ heißen Restklassen von a mod n. [a]+[b]≔[a+b] [a]•[b]≔[a•b] 7 Beispiel „Verschiebungschiffren“ A B C D E F 0 1 2 3 4 5 G H I 6 7 8 J K L M N O P Q R S T U V W X Y Z 9 10 Identifizierung ∑ = ℤ/26ℤ 11 12 13 14 15 16 17 18 Ver- & Entschlüsselungsschlüssel ist [e] ∊ ℤ/26ℤ Verschlüsselungsfunktion E[e] : [x] ↦ [x+e] Entschlüsselungsfunktion D[e] : [y] ↦ [y-e] KRYPTOGRAPHIE E[5] PWDUYTLWFUMNJ 19 20 21 22 23 24 (z.B. K=[10]) 25 ([e]=[5]) ([10] ↦ [15]) ([15] ↦ [10]) D[5] KRYPTOGRAPHIE 8 Idee e und d stimmen überein bzw. d lässt sich aus e leicht berechnen (symmetrisches Kryptosystem) Ablauf Alice und Bob tauschen Schlüssel über eine sicher Leitung aus Alice verschlüsselt m zu c=Ee(m) Übertragung von c Bob entschlüsselt c zu m=Dd(c) Problematik Verteilung und Verwaltung der Schlüssel 9 Annahme In einem Netzwerk mit n Teilnehmern wollen alle geheim miteinander kommunizieren können. 1. Möglichkeit Je zwei Teilnehmer tauschen Schlüssel geheim aus => Schlüssel müssen geheim übertagen werden 71,7 Millionen Internetnutzern in Deutschland (Stand 2015) => Geheimer Austausch von 2,6•1015 Schlüssel 2. Möglichkeit Zentrale Stelle für Kommunikation => Jeder tauscht Schlüssel mit zentralen Stelle aus 10 Idee e und d sind verschieden und d lässt sich nicht mit vertretbarem Aufwand aus e bestimmen - asymmetrisches Kryptosystem. Dazu nutzen Public-Key-Verfahren schwer zu lösende Berechnungsprobleme aus der Zahlentheorie. Ablauf Bob (Empfänger) veröffentlicht e und hält d geheim Übertragung von c Alice (Absender) nutzt öffentlich zugängige e und verschlüsselt m zu c=Ee(m) Bob entschlüsselt c zu m=Dd(c) e öffentlicher Schlüssel (public key), d geheimer Schlüssel (private key) 11 Öffentliche Schlüsselverzeichnisse Name Öffentlicher Schlüssel Regine 26144365903653672949 Bob … 39620737184385387456 … Problematik Sicherheit des öffentlichen Verzeichnis „Man muss sicher gehen können, dass der im öffentlichen Verzeichnis stehende Schlüssel auch tatsächlich der öffentliche Schlüssel des Empfängers ist und dieser nicht manipuliert wurde.“ => Digitale Signaturen 12 Private-Key-Verfahren gelten als sehr sicher, beinhalten jedoch die Problematik der Verteilung und Verwaltung der Schlüssel Public-Key-Verfahren vereinfachen Schlüsselmanagement Bekannte Public-Key-Verfahren sind nicht so effizient im Vergleich zu vielen Private-Key-Verfahren => In Praxis häufig Kombination beider Verfahren Beispiel: Hybrid-Verfahren 13 Erste und bis heute wichtigste Public-Key-Verfahren Erfinder (1978) Ron Rivest Adi Shamir Len Adleman Zugrundeliegendes zahlentheoretische Berechnungsproblem: Zerlegung großer Zahlen in Primfaktoren 14 Definition Eine natürliche Zahl p>1 heißt Primzahl, wenn sie genau 2 positive Teiler besitzt, nämlich 1 und p. Man sagt a teilt n, wenn es eine ganze Zahl b gibt mit n=a⋅b. a heißt Teiler von n. Hauptsatz der elementaren Zahlentheorie Jede natürliche Zahl a>1 kann als Produkt von Primzahlen geschrieben werden. Bis auf die Reihenfolge sind die Faktoren in diesem Produkt eindeutig bestimmt. 15 Bob (Empfänger) wählt zufällig Primzahlen p und q und berechnet das sogenannte RSA-Modul n=p⋅q p und q werden etwa gleichgroß gewählt p und q mit Bit-Länge 256 => n mit Bit-Länge 512 (Mindestlänge) Experimentelle Untersuchungen zeigen: Langfristige Sicherheit erfordert Bit-Länge von 1024 bzw. 2048 Zufällige Auswahl ein Primzahl mit fester Bit-Länge erfolgt über mathematisches Verfahren 16 Bob (Empfänger) wählt eine natürliche Zahl e mit (1) (2) 1 < e < ɸ(n) = (p-1)⋅(q-1) ggT(e,ɸ(n)) = 1 Eulersche Phi-Funktion ɸ : ℕ → ℕ mit ɸ(n) ≔ |{a∊ℕ | 1≤a≤n und ggT(a,n)=1}| Falls p und q teilerfremd gilt: ɸ(p⋅q) = ɸ(p)⋅ɸ(q) => ɸ(n) = ɸ(p⋅q) = ɸ(p)⋅ɸ(q) = (p-1)⋅(q-1) 17 Auswahl von e e wird so gewählt, dass Verschlüsselung möglichst effizient (bzgl. Rechenaufwand), aber dennoch sicher ist Nach Voraussetzung ist 1<e => e sollte nicht beliebig groß werden e≠2, da ɸ(n)=(p-1)⋅(q-1) gerade und somit ggT(2,ɸ(n))=2 => kleinste mögliche e ist e=3 Low-Exponent-Attacke => e = 216+1 = 65537 üblich 18 Bob (Empfänger) bestimmt natürliche Zahl d mit (1) (2) 1 < d < ɸ(n) = (p-1)⋅(q-1) d⋅e ≡ 1 mod ɸ(n) d existiert d wird über den erweiterten Euklidischen Algorithmus bestimmt => Öffentlicher Schlüssel (n,e) mit n RSA-Modul und e Verschlüsselungsexponent Bob veröffentliche (n,e) Geheime Schlüssel d mit d Entschlüsselungsexponent 19 Alice (Absender) verschlüsselt Klartext m zum Chiffretext c mittels Verschlüsselungsfunktion E(n,e) : Ƥ → Ƈ E(n,e)(m) = me mod n = c Alice übermittelt c an Bob Klartextraum Ƥ = {m∊ℕ | 0 ≤ m <n} Üblich ist n mit Bit-Länge 1024 und e=65537 => Berechnung von sehr großer Zahlen nötig => Verfahren „Schnelle Exponentiation“ 20 Bob entschlüsselt Chiffretext c zurück zum Klartext m mittels der Entschlüsselungsfunktion Dd : Ƈ → Ƥ Dd(c) = cd mod n Denn es gilt: m ≡ cd mod n 21 Ziel: Tim muss sichergehen können, dass Lena tatsächlich der Urheber eines Dokuments ist Ablauf: Schlüsselerzeugung Lena erzeugt die Schlüssel (n,e) und d Lena veröffentlicht (n,e) Signaturerzeugung Lena berechnet für das Dokument m die Signatur s = md mod n Lena verschickt m und s Verifikation Tim besorgt sich den öffentlichen Schlüssel (n,e) Tim überprüft, ob m = se mod n 22 Buchmann, J. (2010). Einführung in die Kryptographie (5. Auflage). Heidelberg: Springer. 23