Private-Key-Kryptosysteme Public-Key-Kryptosysteme IT-Sicherheit WS 2016/2017 Jun.-Prof. Dr. Gábor Erdélyi Lehrstuhl für Entscheidungs- und Organisationstheorie, Universität Siegen Siegen, 29. November 2016 Private-Key-Kryptosysteme Public-Key-Kryptosysteme Wiederholung • Kryptologie - Einführung und Grundlagen • Symmetrische Kryptosysteme - Substitutions- und Permutationschiffen • Blockchiffre und Substitutionschiffre • Permutationschiffre • Verschiebungschiffre • Affine Chiffre • Kryptoanalyse der affinen Chiffre • Perfekte Geheimhaltung Private-Key-Kryptosysteme Public-Key-Kryptosysteme AES I • Advanced Encryption Standards (AES) - Seit 2002 der offizielle NIST-Standard • Anforderungen: • 128- bis 256-Bit Schlüssel • Eingabeblöcke bis 128 Bit • Für Software und Hardware leicht implementierbar • Geringe Resourcenanforderung • Sicher gegen bekannte Kryptoanalysemethoden • Entwickelt von Daemen und Rijmen (Rijndael-Verfahren) Private-Key-Kryptosysteme Public-Key-Kryptosysteme AES II • Arbeitet im Galois-Feld GF (28 ) • Jeder Klartextblock wird in mehreren Runden mit einer festen Abfolge von Funktionen bearbeitet. • Details im Buch von C. Eckert! • Anwendungen: • WLAN • SSH • Win.ZIP • Skype Private-Key-Kryptosysteme Public-Key-Kryptosysteme RSA • Rivest, Shamir, Adleman - 1978: Das erste Public-Key-Kryptosystem (in der offenen Literatur) • GCHQ: Ellis, Cocks und Williamson - 1973 • Basiert auf das Faktorisierungsproblem Private-Key-Kryptosysteme Public-Key-Kryptosysteme RSA - Protokoll I Schlüsselerzeugung: Bob wählt große Primzahlen p 6= q, berechnet n = pq. Er wählt einen Exponenten e ∈ N, für den gilt: 1 < e < ϕ(n) = (p − 1)(q − 1) und ggT (e, ϕ(n)) = 1 Er bestimmt das inverse Element d von e mod ϕ(n). (n, e) ist Bobs öffentlicher, und d sein privater Schlüssel. Private-Key-Kryptosysteme Public-Key-Kryptosysteme RSA - Protokoll II 1. (n, e) wird veröffentlicht. 2. Verschlüsselung: Jede Nachricht wird Blockweise verschlüsselt, sei m < n die zu verschlüsselnde Nachricht. Alice verschlüsselt: c = E(n,e) (m) = me mod n. 3. Alice schickt c an Bob. 4. Entschlüsselung: Bob entschlüsselt c: Dd (c) = c d mod n. Private-Key-Kryptosysteme Public-Key-Kryptosysteme RSA - Digitale Signatur 1. Alice wählt n = pq, e und d wie Bob in RSA. 2. (n, e) wird veröffentlicht. 3. Signieren: Alice signiert die Nachricht m mit: sigA (m) = md mod n. 4. Alice schickt die signierte Nachricht hm, sigA (m)i an Bob. 5. Verifikation: Bob verifiziert: m ≡ (sigA (m))e mod n. Private-Key-Kryptosysteme Public-Key-Kryptosysteme Primzahltests • RSA benutzt große Primzahlen • In der Praxis: raten - testen • Zufallsgenerator - In der Praxis nur Pseudozufallsgeneratoren • Die Primzahltests nutzen aus, dass Primzahlen relativ dicht liegen Private-Key-Kryptosysteme Public-Key-Kryptosysteme Primzahl-Theorem Theorem Ist π(N) die Anzahl der Primzahlen p mit p ≤ N, so gilt: π(N)lnN = 1. N N→∞ lim Private-Key-Kryptosysteme Public-Key-Kryptosysteme Primzahltests II • Probedivision (für große Zahlen unbrauchbar) • Fermat-Test • Miller-Rabin-Test • Solovay-Strassen-Test Private-Key-Kryptosysteme Public-Key-Kryptosysteme Faktorisierungsalgorithmen • (p − 1)-Methode von Pollard: Funktioniert gut für zusammengesetzte Zahlen mit Primfaktor p, so dass die Primfaktoren von p − 1 klein sind. • Das quadratische Sieb: • Mit einer Siebmethode bestimmt man Zahlen a und b mit a2 ≡ b2 mod n und a 6≡ ±b mod n. • Folglich teilt n die Zahl a2 − b 2 = (a − b)(a + b), aber nicht a − b oder a + b. • Daraus folgt, dass ggT (n, a − b) und ggT (n, a + b) sind nichttriviale Faktoren von n. • Zahlkörpersieb Private-Key-Kryptosysteme Public-Key-Kryptosysteme Faktorisierungsangriffe auf RSA • Ziel: Aus (n, e) den privaten Schlüssel d zu berechnen, in dem p und q von n = pq bestimmt werden. • Brute-Force: Hinreichend große Zahl n wählen, mind. 1024 Bits • Spezial-Faktorisierungsmethoden (z. B. Pollard): Wähle starke Primzahlen • Universal-Faktorisierungsmethoden (z.B, quadratisches Sieb): Große Primzahlen wählen Private-Key-Kryptosysteme Public-Key-Kryptosysteme Weitere Angriffe auf RSA • Faktorisieren mit der Euler-Funktion • Superverschlüsselung • Small-Message Attack • Wieners Angriff (funktioniert nur, wenn 3d < q < p < 2q) • Low-Exponent Attack √ 4 n und Private-Key-Kryptosysteme Public-Key-Kryptosysteme Fälschen von RSA-Signaturen • Eve fängt Nachrichten mit Signaturen ab: hm1 , sigA (m1 )i, . . . , hmk , sigA (mk )i • Eve erstellt ein neues Nachricht-Signatur-Paar hm, sigA (m)i durch m=r e k Y miei mod n; i=1 sigA (m) = r k Y i=1 (sigA (mi ))ei mod n; Private-Key-Kryptosysteme Public-Key-Kryptosysteme Chinesischer Restesatz Theorem Seien m1 , m2 , . . . , mk positive ganze Zahlen, mit Q ggT (mi , mj ) = 1 für i 6= j. Sei M = ki=1 mi , und seien a1 , a2 , . . . , ak beliebige ganze Zahlen. Für jedes i mit 1 ≤ i ≤ k definieren wir Mi = M/mi und sei yi = Mi−1 das inverse Element von Mi in Z∗mi . Dann hat das System von k Kongruenzen x ≡ ai mod mi , mit 1 ≤ i ≤ k, die eindeutige Lösung x= k X i=1 ai Mi yi mod M.