Einführung in Computer Microsystems Kapitel 9 Entwurf eines eingebetteten Systems für Anwendungen in der IT-Sicherheit Prof. Dr.-Ing. Sorin A. Huss Fachbereich Informatik Integrierte Schaltungen und Systeme SS 2009 Integrierte Schaltungen und Systeme Einführung in Computer Microsystems Prof. Dr.-Ing. Sorin A. Huss 1
Übersicht Mathematische Grundlagen Kryptographie RSA Elliptische Kurven Hardware-Software-Codesign Demonstration des Entwurfs SS 2009 Integrierte Schaltungen und Systeme Einführung in Computer Microsystems Prof. Dr.-Ing. Sorin A. Huss 2
Galois-Körper G F(p) p Primzahl die Elemente, die als Rest bei Modulo-Rechnen bleiben können für 7 sind das z.b. die Elemente 0, 1, 2, 3, 4, 5, 6 Endlicher Körper für G F(13): 11 12 0 1 10 9 2 3 8 7 6 5 4 SS 2009 Integrierte Schaltungen und Systeme Einführung in Computer Microsystems Prof. Dr.-Ing. Sorin A. Huss 3
Modulare Addition/Subtraktion Es gilt (a) + ( a) 0 mod p Addition ist einfach: Falls a + b > p, dann rechne a + b p Subtraktion ist auch einfach: Falls a b < 0, dann rechne a b + p SS 2009 Integrierte Schaltungen und Systeme Einführung in Computer Microsystems Prof. Dr.-Ing. Sorin A. Huss 4
Modulare Multiplikation und Division Modulare Multiplikation: Für a, b GF gilt max(a b) = (p 1) 2 = p 2 2p + 1 Sukzessive Subtraktion von p ist sehr rechenintensiv Modulare Division: a/b a b ( 1) mod p Multiplikativ Inverses ist aufwändig zu berechnen (kleiner Satz von Fermat, siehe Folien Seite 7) SS 2009 Integrierte Schaltungen und Systeme Einführung in Computer Microsystems Prof. Dr.-Ing. Sorin A. Huss 5
Effiziente Multiplikation Mittels Montgomery Reduction realisiert Require: x = (x n 1,..., x 1, x 0), y = (y n 1,..., y 1, y 0), and m = (m n 1,..., m 1, m 0) with 0 x, y < m, m = m 1 mod 2 16 Ensure: xyr 1 mod m where R = 2 16n 1: a = (a n 1,..., a 1, a 0) := 0 2: for i from 0 to n 1 do 3: u := (a 0 + x i y 0)m mod 2 16 4: a := (a + x i y + u i m)/2 16 5: end for 6: if a m then a := a m end if 7: return a Mehr in den Übungen SS 2009 Integrierte Schaltungen und Systeme Einführung in Computer Microsystems Prof. Dr.-Ing. Sorin A. Huss 6
Der kleine Satz von Fermat Es gilt a p a mod p Da in einem Primkörper F p das a teilerfremd zu p sein muss, folgt gcd(a, p) = 1. a (p 1) 1 mod p a (p 2) a 1 mod p a (p 2) a 1 mod p SS 2009 Integrierte Schaltungen und Systeme Einführung in Computer Microsystems Prof. Dr.-Ing. Sorin A. Huss 7
RSA 1977 erfunden von Ronald L. Rivest, Adi Shamir und Leonard Adleman Asymmetrisches Verschlüsselungs-Verfahren ca. 1000-mal langsamer als AES Sicherheit: Schwierigkeit der Primfaktorzerlegung Häufig eingesetzt: IPSec, SSL,... SS 2009 Integrierte Schaltungen und Systeme Einführung in Computer Microsystems Prof. Dr.-Ing. Sorin A. Huss 8
RSA: Ablauf und Schlüsselparameter Berechne RSA-Modul n = p q mit p q zufällige Primzahlen Berechne Eulersche ϕ-funktion ϕ(n) = (p 1)(q 1) Wähle zu ϕ(n) teilerfremde Zahl e mit 1 < e < ϕ(n) Bestimme d mit d e 1 mod ϕ(n) (n, e) ist der öffentliche Schlüssel d ist der private Schlüssel Typische Größe für n: 1024, 2048, 3072, 4096 Bit SS 2009 Integrierte Schaltungen und Systeme Einführung in Computer Microsystems Prof. Dr.-Ing. Sorin A. Huss 9
RSA-Verschlüsselung c m e mod n Mit schneller Exponentation berechnen: z.b. x 3 mod n (x 2 mod n)(x mod n) m ist der Klartext Normalerweise ein symmetrischer Schlüssel, z.b. AES Typischerweise wird für e eine Fermat-Primzahl verwendet, z.b. 2 16 + 1, sonst bestehen Angriffsmöglichkeiten z.b. Low-Exponent-Angri: Wenn die gleichen Nachrichten verschlüsselt werden, kann der Angreifer unter Verwendung von e Schlüsseltexten die ursprüngliche Nachricht berechnen (mit Chinesischem Restsatz, siehe Seite 12) SS 2009 Integrierte Schaltungen und Systeme Einführung in Computer Microsystems Prof. Dr.-Ing. Sorin A. Huss 10
RSA-Entschlüsselung m c d mod n (wegen d e 1 mod n) Aufwändig, da d idr keine Fermat-Primzahl Berechnung mittels chinesischem Restsatz Exponentation in kleinen Modulen (z.b. 2x halbe Bitbreite) SS 2009 Integrierte Schaltungen und Systeme Einführung in Computer Microsystems Prof. Dr.-Ing. Sorin A. Huss 11
Chinesischer Restsatz Gegeben: System simultaner Kongruenzen, wobei a i ganze Zahlen und m i paarweise teilerfremde natürliche Zahlen sind: x ai mod m i Bestimme alle x, die alle Kongruenzen gleichzeitg lösen Setze m = n i=1 m i und M i = m/m i, wobei 1 i n Weil die m i teilerfremd sind, gilt: gcd(m i, M i ) = 1 Berechne mit dem erweiterten Euklidischen Algorithmus: y i M i 1 mod m i Setze x = ( n i=1 a iy i M i ) mod m Wegen a i y i M i a i mod m i und weil für j i m i ein Teiler von M j ist: aj y j M j 0 mod m i Daraus folgt: x ai y i M i + P n j=1,j i a jy j M j a i mod m i SS 2009 Integrierte Schaltungen und Systeme Einführung in Computer Microsystems Prof. Dr.-Ing. Sorin A. Huss 12
RSA-OAEP Schemata Reines RSA ist unsicher Adaptive Chosen Ciphertext Angriffe (das gleiche m wird wiederholt verschlüsselt) RSA-OAEP verhindert dies: Padding-Verfahren, um Chiretext oder Signatur auf eine bestimmte Struktur zu bringen fügt Zufall zu den Daten hinzu und verhindert teilweise Entschlüsselung ohne das Berechnen der Inversen von Einwegfunktionen (schwierig) SS 2009 Integrierte Schaltungen und Systeme Einführung in Computer Microsystems Prof. Dr.-Ing. Sorin A. Huss 13
Elliptische Kurven Kryptographie (ECC) 1986/1987 erfunden von Miller/Koblitz Asymmetrisches Verfahren, das Operationen auf elliptischen Kurven über endlichen Körpern benutzt Sicherheit: Schwierigkeit der Berechnung des diskreten Logarithmus in der Gruppe der Punkte der elliptischen Kurve wesentlich kürzere Schlüssel möglich: 160 Bit ECC 1024 Bit RSA Wichtigste bisher bekannte Alternative zu RSA-basierten Verfahren Häufig eingesetzt: SmartCards, Reisepass,... SS 2009 Integrierte Schaltungen und Systeme Einführung in Computer Microsystems Prof. Dr.-Ing. Sorin A. Huss 14
ECC-Kurvenparameter Vereinfachte Weierstraßsche Gleichung: E : y 2 = x 3 + ax + b Kurvenparameter D = (p, b, P, n) mit p: Die Primzahl p des zugrunde liegenden Primkörpers Fp. b: Der Parameter b der vereinfachten Weierstraÿschen Gleichung. Da a = 3 konstant ist, deniert alleinig b die Gleichung komplett. P: Der Basispunkt P = (xp, yp) der elliptischen Kurve. Er wird zur Derivation von Schlüsselsätzen benutzt. n: Die Ordnung des Basispunktes P. Es gilt np = O. SS 2009 Integrierte Schaltungen und Systeme Einführung in Computer Microsystems Prof. Dr.-Ing. Sorin A. Huss 15
Beispiele über R y 4 y 4 3 3 2 2 1 1 2 1 1 2 3 1 x 2 1 1 2 3 1 x 2 2 3 3 4 4 E 1 (R) : y 2 = x 3 2x + 3 4 E 2 (R) : y 2 = x 3 + 1 4 x + 3 2 SS 2009 Integrierte Schaltungen und Systeme Einführung in Computer Microsystems Prof. Dr.-Ing. Sorin A. Huss 16
ECC Punkt-Addition P + Q = R Um zwei Punkte zu addieren gibt es fünf Fälle: 1. Fall (P = O): Das Additionsergebnis ist Q (Identität). 2. Fall (Q = O): Das Additionsergebnis ist P (Identität). 3. Fall (Q = P): Das Additionsergebnis von P + ( P) = O. 4. Fall (Q = P): Die Punkt-Verdoppelung muss angewendet werden (sonst Division durch Null). 5. Fall (sonst): Die Gerade, die durch die Punkte P und Q läuft, schneidet die Kurve an einem dritten Punkt R. Spiegelt man diesen Punkt an der x-achse so erhält man das Additionsergebnis P + Q = R. ( ) 2 ( ) yq y P yq y P x R = x P x Q und y R = (x P x R ) y P. x Q x P x Q x P SS 2009 Integrierte Schaltungen und Systeme Einführung in Computer Microsystems Prof. Dr.-Ing. Sorin A. Huss 17
ECC Punkt-Addition II P + Q = R y 4 3 2 R = (x R, y R ) 1 Q = (x Q, y Q ) 4 3 2 1 1 2 3 4 x 1 P = (x P, y P ) 2 3 R = (x R, y R ) 4 SS 2009 Integrierte Schaltungen und Systeme Einführung in Computer Microsystems Prof. Dr.-Ing. Sorin A. Huss 18
ECC Punkt-Verdopplung 2P = P + P = R P = (x P, y P ) y 4 3 2 1 4 3 2 1 1 2 3 4 1 2 3 4 R = (x R, y R ) x R = (x R, y R ) Hinweis: Tangente in P ( ) 3x 2 2 x R = P + a 2x P 2y P ( ) 3x 2 y R = P + a (x P x R ) y P 2y P SS 2009 Integrierte Schaltungen und Systeme Einführung in Computer Microsystems Prof. Dr.-Ing. Sorin A. Huss 19
ECDSA Signatur-Generierung Digitale Signatur: Eine zu Daten berechnete Zahl, die die Urheberschaft und Zugehörigkeit zur Nachricht nachweist. Eingabe: Kurvenparameter D = (p, b, P, n) privater Schlüssel d, Klartext m Ausgabe: Signatur s 1. Berechne Hashwert e = H(m) 2. repeat 3. repeat 4. Wähle k [1, n) zufällig aus. 5. Berechne kp = R = (x R, y R ). 6. until r 0 7. Berechne s = k 1 (e + dr) mod n. 8. until s 0 9. return (r, s). SS 2009 Integrierte Schaltungen und Systeme Einführung in Computer Microsystems Prof. Dr.-Ing. Sorin A. Huss 20
Hashfunktionen bilden beliebig lange Strings auf Strings fester Länge ab. nie injektiv können mittels Kompressionsfunktionen generiert werden: h : Σ m Σ n, m > n Hashwert h(x) muss für alle x effizient berechenbar sein h(x) Einwegfunktion: Funktionswert leicht berechenbar, aber Umkehrung schwierig Kollision, wenn h(x) = h(x ) aber x x Alle Hash- und Kompressionsfunktionen besitzen Kollisionen, da sie nicht injektiv sind Es soll schwer sein gezielt Kollisionen zu nden SS 2009 Integrierte Schaltungen und Systeme Einführung in Computer Microsystems Prof. Dr.-Ing. Sorin A. Huss 21
Hashfunktionen II SHA-2 SHA-2 Familie: SHA224, SHA256, SHA384, SHA512 1995 entwickelt von NIST (National Institute of Standards and Technology) Feste Nachrichtenblocklänge (1024-Bit bei SHA512) Runden-basierte Verarbeitung (80 Runden bei SHA512) K t : Rundenkonstanten W t : Eingabestring A-H: Ergebnis nach 80 Runden SS 2009 Integrierte Schaltungen und Systeme Einführung in Computer Microsystems Prof. Dr.-Ing. Sorin A. Huss 22
ECDSA-Signatur validieren Eingabe: Kurvenparameter D = (p, b, P, n), öentlicher Schlüssel Q, Klartext m, Signatur (r, s). Ausgabe: Akzeptanz oder Zurückweisung der Signatur. 1. if r, s / [1, n 1) then 2. return Signatur zurückweisen. 3. end if 4. Berechne Hashwert e = H(m). 5. Berechne w = s 1 mod n. 6. Berechne u 1 = ew mod n und u 2 = rw mod n. 7. Berechne Punkt R = u 1P + u 2Q. 8. if R = O then 9. return Signatur zurückweisen. 10. end if 11. Berechne v = x R mod n. 12. if v = r then 13. return Signatur akzeptieren. 14. end if 15. return Signatur zurückweisen. SS 2009 Integrierte Schaltungen und Systeme Einführung in Computer Microsystems Prof. Dr.-Ing. Sorin A. Huss 23