Digitale Signaturen Einführung und das Schnorr Signatur Schema 1 Übersicht 1. Prinzip der digitalen Signatur 2. Grundlagen Hash Funktionen Diskreter Logarithmus 3. ElGamal Signatur Schema 4. Schnorr Signatur Schema Beispiel Laufzeit Sicherheit 2
1100101 0101100 Nachricht Hashwert Prinzip der Digitalen Signatur secret Geheimer Schlüssel Nachricht Signatur public Öffentlicher Schlüssel Signatur Nachricht + Signatur unsecure channel (Internet) Bob Alice Hashwert? = Entschlüsselte Signatur 1100101 0101100 1100101 0101100 3 Allgemeines Signaturschema (P, A, K, S, V) P: Menge von Nachrichten A: Menge von Signaturen K: Menge von Schlüsseln S: Menge von Funktionen, sodass es für alle k K ein sign k S gibt mit: V: Menge von Funktionen, sodass es für alle k K ein verify k V gibt mit: sign k : P A verify k : P x A {true,false} Für alle Nachrichten m P und jede Signatur y A muss gelten: verify(m,y) = {y = sign(m)} Ein Tupel (m,y), m P, y A, heißt signierte Nachricht mit Anhang 4
Hash Funktionen Ziele: Nachrichtengröße verkleinern: H: {0,1} * {0,1} t Einfach: h = H(m) zu berechnen Nicht einfach: Ein m zu gegebenem h zu berechnen Sicherheit bezüglich: Kollisionsresistenz Urbild (Preimage) 2. Urbild (2 nd -Preimage) Beispiele: SHA-1 (160 bit) MD5 (128 bit) 5 Ordnung und Generator Ein Element α Z p* mit p prim, besitzt die Ordnung n, wenn n die kleinste natürliche Zahl ist für die gilt: α n 1 mod p Ein erzeugendes Element α Z p* mit p prim, kann durch potenzieren jedes Element aus Z p* erzeugen: Z p * = <α> = {α i 0 i p-2} 6
Diskreter Logarithmus Gegeben: Multiplikative Gruppe Z p * mit p prim α Z p* mit der Ordnung n Ein Element β <α> Problem: Finde die Zahl a mit 0 a < n und α a = β mod p Anders formuliert: Berechne a = log α β mod p NP-vollständig? Algorithmus Baby-Step Giant-Step (Shanks) Pohlig-Hellman Laufzeit O( p) O( c q) Absicherung Großes p wählen Großen Primteiler in p-1 Index calculus ( 1 o(1)) ln plnln p O ( e + ) Großes p wählen 7 ElGamal Schlüsselgenerierung Z p* mit p prim und p 2 512 Erzeugendes Element α Z p * Geheimer Schlüssel a Z p* beliebig Öffentlicher Schlüssel β = α a mod p k = (p, α, a, β) K Öffentlich: (p, α, β) Geheim: a 8
ElGamal Signieren & Verifizieren Signieren einer Nachricht m: Verifizieren von (m, (γ, δ)): Zufällig k Z * p-1 γ = α k mod p δ = k -1 (H(m) - aγ) mod p-1 Sende (m, (γ, δ)) Korrekt, wenn α H(m) = β γ γ δ mod p β γ γ δ = α aγ α kδ = α aγ + h(m) - aγ = α h(m) (mod p) Erinnerung: Erzeugendes Element α Z p * β = α a 9 Warum die Schnorr Signatur? Einsatzgebiet: Schwache Rechner, schmale Bandbreite Kommunikation Smartcards Terminals Geforderte Eigenschaften: Kleine Signaturgröße Geringer Signieraufwand Hohe Sicherheit Schnorr Authentifizierungs Protokoll Gleiches Prinzip 10
Schnorr Schlüsselgenerierung Z p* mit p prim und p 2 512 Primzahl q mit q 2 140 und q p-1 α: q-te Wurzel von 1 mod p Mit einem erzeugenden Element α 0 Z p* wähle α = α 0 (p-1)/q mod p Geheimer Schlüssel a Z p* beliebig Öffentlicher Schlüssel β = α a mod p k = (p, q, α, a, β) K Öffentlich: (p, q, α, β) Geheim: a 11 Schnorr Signieren & Verifizieren Signieren einer Nachricht m: Verifizieren von (m, (γ, δ)): 1. Zufälliges k Z * q 2. x = α k mod p 3. γ = H(m x) 4. δ = k + aγ mod q 5. Sende (m, (γ, δ)) 1. x = β -γ α δ mod p 2. Korrekt, wenn H(m x ) = γ x = β -γ α δ = α -aγ α k + aγ = α -aγ + k + aγ = α k = x (mod p) Erinnerung: α Z p* mit Ordnung q β = α a 12
Schnorr Effizienz Schlüsselerzeugung: α = α (p-1)/q 0 mod p lange O((log p)³) β = α a mod p lange O((log p)³) Signieren: x = α k mod p lange O((log p)³) γ = H(m x) sehr kurz O(h) δ = k + aγ mod q kurz O((log q)²) Verifizieren: x = β -γ α δ mod p lange O((log p)³) H(m x ) = γ sehr kurz O(h) 13 Parameterwahl Sicherheit Total break Selektive Fälschung Andere Sicherheitsaspekte nicht bekannt Da die Nachricht m zusammen mit dem zufälligen k gehasht wird, wird ein Angriffpunkt aus ElGamal eleminiert [1] Per existentieller Fälschung unter adaptivly chosen message Angriff kann der d-log in der Untergruppe gelöst werden [3] 14
Security Complexity 2 t Schnorr Parameter Damit Signaturen die Sicherheit 2 t besitzt: q 2 2t Sicherheit vor Baby-Step Giant-Step 2 t e ln plnln p Sicherheit vor Index calculus Vorgeschlagene Mindestgrößen: t = 72 q 2 140 p 2 512 15 Total break Signaturschema ist gebrochen, wenn: Privater Schlüssel berechnet werden kann Beliebige Nachrichten signiert werden können Öffentlich: (p, q, α, β) Um geheimen Schlüssel zu bekommen, β = α a mod p lösen a = log α β mod p muss berechnet werden Bisher nicht in polynomieller Zeit lösbar 16
Selektive Fälschung Signieren einer beliebigen Nachricht m: 1. Zufällig k Z * q 2. x = α k mod p 3. γ = h(m x) a. δ = k + aγ mod q b. δ = log α (x β γ ) mod p Erinnerung verify(m,(γ,δ)): x = β -γ α δ mod p return γ = h(m,x) Da a unbekannt ist, δ raten. W keit für korrekte Signatur ca. 1/q Oder: d-log mod p berechnen 17 Schnorr ElGamal, RSA Schema Schnorr ElGamal RSA Signatur-Länge (mod: 512 bit) γ: 72 bit δ: 140 bit γ: 512 bit δ: 512 bit y: 512 bit #Mult mod p ** [1] sign: 210 + 0 verify: 228 sign: 750 verify: >2 Laufzeit (mod: 1024 bit) [5] KeyGen*: 6500 ms Sign*: 7 ms Verify*: 27 ms KeyGen: 1100 ms Sign: 43 ms Verify: 0.6 ms Schnorr und ElGamal: randomisiert RSA: deterministisch * Laufzeit vom vergleichbaren DSA ** Nicht-optimierte Laufzeiten! 18
Vorteile: Schnorr auf einen Blick Kleine Signaturgröße Effiziente Signierung Wahrscheinlich ähnlich sicher wie ElGamal Nachteile: (Un)Sicherheit nicht bewiesen Berechnungen in Untergruppe der Größe q Sicherheitsaspekt nicht bekannt Einsatzgebiete: Z. B. Smartcards 19 Quellen [1] C. P. Schnorr, Efficient Signature Generation by Smart Cards. Journal of Cryptography 4(3): 161-174, 1991. [2] D. R. Stinson, Cryptography Theory and Practice 2nd Ed., CRC Press, 2002. [3] D. Pointcheval, J. Stern, Security Proofs for Signature Schemes, Advances in Cryptology, Proc. of Eurocrypt '96, pages 387--398, 1996. [4] A. Menezes, P. van Oorschot, S. Vanstone, Handbook of Applied Cryptography, CRC Press, 1996. [5] M.J.Wiener, "Performance Comparison of Public-Key Cryptosystems", RSA CryptoBytes, Volume 4, Number 1, 1998. 20