Systems Architecture RSA & DSA Signaturen Elliptische-Kurven-Kryptographie Mechmet Chiousemoglou Christian Krause 29.Mai 2007
2 May Systems Architecture Motivation
3 May Systems Architecture Inhalt RSA Überblick RSA Schlüsselpaar Datenkonvertierungsprimitive Signierungs-& Verifizierungsprimitive Signaturschemata mit Appendix - RSASSA-PKCS1-v1_5 - RSASSA-PSS DSA Algorithmus - Disketer Logarithmus - Restklassenkörper Elliptische Kurven Elliptische Kurven in DSA - Signieren - Verifizieren
4 May Systems Architecture RSA Überblick von Ron Rivest, Adi Shamir und Leonard Adleman am MITveröffentlicht - erste grosse Entwicklung im Bereich der Public-Key-Verfahren - zum verschlüsseln und signieren geeignet - deterministisches Verfahren - Clifford Cocks beschrieb ein gleichwertiges System 1973, bis 1997 jedoch unter Verschluss durch UK Geheimdienst bekommt MIT das US Patent, bis heute weit verbreitet - Problem bei sehr kurzen Nachrichten oder kleinem Exponent e - Praxis: RSA nur in Kombination mit weiteren Verschlüsselungsschemta einsetzbar
5 May Systems Architecture RSA Öffentlicher Schlüssel - besteht aus 2 Komponenten nRSA modulus, eine positive ganze Zahl eRSA öffentl. Exponent, eine positive ganze Zahl - n ist Produkt von u verschiedenen Primzahlen für - e ist eine ganze Zahl mit und es muss gelten: mit - Benennungskonvention
6 May Systems Architecture RSA Privater Schlüssel - (Einfach) 2 Komponenten nRSA modulus, eine positive ganze Zahl dRSA privater Exponent, eine positive ganze Zahl - d ist positive ganze Zahl für die gilt: - (Erweitert) Quintuple sowie eine Sequenz aus Triplets für jede weitere Primzahl Weiterhin soll gelten: mit
7 May Systems Architecture Datenkonvertierungsprimitive - I2OSP(x,xLen) (Integer-to-Octet-String primitive) Input:xganze Zahl, welche ungeformt werden soll xLenZiellänge des Strings Output: Xoctet String 1. x schreiben als Zahl der Länge xLen zur Basis octet erhält den Wert für - OS2IP(X) (Octet-String-to-Integer primitive) Umkehrfunktion zu I2OSP
8 May Systems Architecture RSA Signierungsprimitive RSASP1(K,m) Input:KRSA privater Schlüssel mNachricht, ganze Zahl mit Output:sSignatur, ganze Zahl mit (einfach) Signatur (erweitert) Algorithmus für beliebig viele Primzahlen 1. und 2. Wenn Wenn
9 May Systems Architecture RSA Verifikationsprimitive RSAVP1((n,e),s) Input(n,e)RSA öffentl. Schlüssel sSignatur OutputmNachricht Ausführung der Umkehroperation, um m wieder herzustellen Ein kleines Beispiel...
10 May Systems Architecture RSA Algorithmus
11 May Systems Architecture RSA Algorithmus
12 May Systems Architecture RSA Algorithmus
13 May Systems Architecture RSA Algorithmus
14 May Systems Architecture RSA Algorithmus
15 May Systems Architecture RSA Algorithmus
16 May Systems Architecture Signaturenschema mit Appendix RSASSA-PKCS1-v1_5 - kombiniert RSASP1 & RSAVP1 mit EMSA-PKCS1-v1_5 Schema - EMSA-PKCS1-v1_5 ist deterministisch - Nachrichtenlänge sehr gross, abhängig von Hashfunktion z.B. - Keine Nachrichtenrekonstruktion SignierenInputKRSA Privater Schlüssel Mzu signierende Nachricht OutSSignatur der Länge bytes
17 May Systems Architecture Signaturenschema mit Appendix
18 May Systems Architecture Signaturenschema mit Appendix RSASSA-PKCS1-v1_5 VerifizierenInput(n,e) RSA öffentl. Schlüssel MNachricht SSignatur Outgültige oder ungültige Signatur
19 May Systems Architecture Signaturenschema mit Appendix RSASSA-PSS (Probabilistic Signature Scheme) - kombiniert RSASP1 & RSAVP1 mit EMSA_PSS Schema - Sicherheit direkt abhängig von RSA Funktion - zusätzliche Sicherheit durch Zufallskomponente SignierenInputKRSA privater Schlüssel MNachricht OutputSSignatur der Länge bytes
20 May Systems Architecture Signaturenschema mit Appendix
21 May Systems Architecture Signaturenschema mit Appendix RSASSA-PSS (Probabilistic Signature Scheme) VerifizierenInput(n,e)RSA öffentl. Schlüssel MNachricht SSignatur Outgültig oder ungültig
22 May Systems Architecture Signaturenschema mit Appendix
23 May Systems Architecture Sicherheit von RSA - basiert auf 2 mathematischen Problemen: 1. Faktorisierung grosser Zahlen 2. Wurzel modulo n finden - kein polynomialer Algorithmus bekannt, aber auch kein Beweis für seine Nichtexistenz - bestes Ergebnis 2005: Faktorisierung einer 663bit Zahl (typische RSA Schlüssel verwenden bit) - Peter Shor: Shor's Algorithmus für Quantencomputer könnte RSA in vertretbarer Zeit knacken - ohne zusätzliche Verschlüsselungsschemta verwundbar gegenüber « chosen-ciphertext-Attacks » - Kocher 1995: mögliche Schwäche bei Timing Attacks -> Blinding
24 May Systems Architecture Diskreter Logarithmus Basiert auf Einwegfunktionen Einfach: Schwer:
25 May Systems Architecture Der Restklassenkörper Z p Z ist bekannt als Menge der ganzen Zahlen, samt der definierten Rechenoperationen Addition, Subtraktion und Multiplikation. Klassifiziert man die ganzen Zahlen nun nach dem Rest bezüglich der Division mit p, erhält man p Klassen; die Klassen der ganzen Zahlen, die dividiert mit p den Rest 0,1,..., p-1 haben.Eine Klasse enthällt alle ganzen Zahlen, die den gleichen Rest haben; natürlich nur für ein und dasselbe p. Die Gesamtheit dieser Klassen bildet die Menge Z p. Im Weiteren sei nun p eine Primzahl, da dies nötig ist, damit Z p ein Körper ist Gegeben sei p = 17, also besteht Z 17 aus den Klassen {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}
26 May Systems Architecture Grundlegende Begriffe
27 May Systems Architecture Grundlegende Begriffe Erzeuger Satz
28 May Systems Architecture Beispiele Log 3 4 mod 5 = 2 Log 4 3 mod 5 = n.d Log 4 4 mod 5 = 1 oder Log 4 4 mod 5 = 3
29 May Systems Architecture Digital Signature Algorithm DSA PARAMETER 1. Wähle ein Primzahl p mit 2 L-1 < p < 2 L wobei 512 L 1024 und L ein Vielfaches von 64 ist 2. Wähle ein Primzahl q mit p-1 = k * q, wobei < q < und k ein natürliche Zahl ist 3. g = h (p-1)/q mod p, wobei h ein integer mit 1 1 gilt 4. Wähle ein zufälliges x für das gilt : 0 < x < q 5. Berechne : y = g x mod p 6. k ist ein zufälliger integer für das gilt : 0 < k < q p, q, g sind öffentlich öffentlicher Schlüssel ist y geheimer Schlüssel ist x
30 May Systems Architecture Digital Signature Algorithm DSA SIGNATURE GENERATION r = (g k mod p) mod q s = (k -1 (SHA-1(M) + xr)) mod q SHA-1 ist der Hash Algorithmus M ist die Nachricht (r,s) ist der Unterschrift
31 May Systems Architecture Digital Signature Algorithm DSA SIGNATURE VERIFICATION w = (s) -1 mod q u1 = ((SHA-1(M))w) mod q u2 = ((r)w) mod q v = (((g) u1 (y) u2 ) mod p) mod q s r M sind empfangen Wenn v = r, dann wurde höchstwahrscheinlich nichts verändert.
32 May Systems Architecture Elliptische Kurven die Punkte der elliptischen Kurve bilden zusammen mit einer Verknüpfung "+" eine Gruppe. sind nicht singulär - keine Knoten - keine Spitzen
33 May Systems Architecture Elliptische Kurven
34 May Systems Architecture Elliptische Kurven
35 May Systems Architecture Elliptische Kurven DSA
36 May Systems Architecture Elliptische Kurven DSA Signieren
37 May Systems Architecture Elliptische Kurven DSA Verifizieren
38 May Systems Architecture Elliptische Kurven DSA Beispiel
39 May Systems Architecture Quellen ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-1/pkcs-1v2-1.pdf