1 / 26

Kryptosysteme, Digitale Signaturen, Keymanagement

Kryptosysteme, Digitale Signaturen, Keymanagement. Digitale Signaturen Jürgen Ecker. Inhalt. Einführung RSA-Signaturen PKCS #1 ISO 9796 ElGamal-Signaturen DSS. Klassifikation. Digitale Signaturen mit message recovery

nonnie
Download Presentation

Kryptosysteme, Digitale Signaturen, Keymanagement

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Kryptosysteme,Digitale Signaturen, Keymanagement Digitale SignaturenJürgen Ecker

  2. Inhalt • Einführung • RSA-Signaturen • PKCS #1 • ISO 9796 • ElGamal-Signaturen • DSS

  3. Klassifikation • Digitale Signaturen mit message recovery • Aus der Signatur kann die signierte Nachricht ermittelt werden, diese braucht nicht zusätzlich gesendet zu werden. • Digitale Signaturen ohne message recovery • Die signierte Nachricht ist zweiteilig, die Nachricht wird zusätzlich zur Signatur benötigt, um die Unterschrift überprüfen zu können. • Randomisierte Signaturschemata • Die Signatur hängt außer von der Nachricht und vom Schlüssel auch noch von einem zufälligen Parameter ab. • Deterministische Signaturschemata • Die Signatur hängt nur von der Nachricht und vom Schlüssel ab.

  4. RSA-Signaturen mit message recovery • Setup: • Wähle RSA Schlüsselpaar (n,e), (n,d) • Wähle eine Redundanzfunktion R, die Nachrichten zu Zahlen zwischen 1 und n-1 macht (vorerst beliebig). • Signieren von m: • berechne m´ = R(m) Redundanz hinzufügen • berechne s = (m´)d mod n Signieren • Verifizieren von s: • berechne m´ = se mod n Signatur öffnen • prüfe, ob m´ in R(M) liegt Redundanz prüfen • berechne m = R-1(m´) message recovery

  5. RSA-Signaturen mit message recovery • Zur Redundanzfunktion • Die Redundanzfunktion ist so zu wählen, dass es praktisch unmöglich ist, ohne den private key eine Signatur s zu erzeugen, so dass se mod n in R(M) liegt, d.h. die geforderte Redundanz besitzt. • Beispiel: Die Funktionswerte von R sind immer von der Form xx

  6. RSA Signaturen in der Praxis: ISO/IEC 9796 • Eigenschaften • für PK Signaturschemata, • die aus k-Bit Nachrichten k-Bit Signaturen erzeugen • zum Signieren von Nachrichten begrenzter Länge • keine Hashfunktion benötigt • message recovery

  7. ISO/IEC 9796: Notation Beispiel: k=1024, d=150, z=19, r=3, t=64

  8. ISO/IEC 9796: Signieren Message • Auffüllen (padding):an die Nachricht m werden links 0 bis 7 Nullen angehängt, damit die Bitlänge ein Vielfaches von 8 wird. Man erhält die z-Byte Nachricht Auffüllen MP = mzmz-1… m2m1 Signatur

  9. ISO/IEC 9796: Signieren Message • Erweiterung (extension)MP wird so oft links an MP angehängt, bis die so entstehende Bytefolge aus t Bytes besteht. Gegebenenfalls werden beim letzten Mal nur mehr die ersten paar Bytes von rechts verwendet. Man erhält die t-Byte Nachricht Auffüllen Erweiterung ME = MEtMEt-1 … ME2ME1 MP = mzmz-1… m2m1 Signatur

  10. ISO/IEC 9796: Signieren Message • Redundanz • Verwendet wird eine Shadow-Funktion S • S(ab) = π(a)π(b) • man erhält die 2t-Byte-Folge • zuletzt wird das Byte S(MEz) durch rS(MEz) ersetzt. Auffüllen Erweiterung Redundanz MR = S(MEt)MEtS(MEt-1)MEt-1... S(ME1)ME1 ME = MEtMEt-1 … ME2ME1 Signatur

  11. ISO/IEC 9796: Signieren Message • Truncatingman nimmt die k-1 rechten Bits von MR und fügt links eine 1 an. • Forcingmit dem Rabin-Signaturverfahren lassen sich nur Nachrichten signieren, die modulo 16 kongruent zu 6 sind, daher ersetzt man das letzte Byte ab durch b0110. • man erhält eine k-Bit Nachricht IR Auffüllen Erweiterung Redundanz Truncating/forcing MR = S(MEt)MEtS(MEt-1)MEt-1... S(ME1)ME1 Signatur

  12. ISO/IEC 9796: Signieren Message • SignaturerstellungDie Nachricht IR wird signiert, man erhält eine k-Bit-Signatur s. Auffüllen Erweiterung Redundanz Truncating/forcing Signaturerstellung Signatur

  13. ISO/IEC 9796: Verifizieren • Signatur öffnenDie Signatur s wird geöffnet und geprüft, ob die Nachricht IR´ mit 1 beginnt und mit 0110 endet.Andernfalls wird die Signatur zurückgewiesen. Signatur Signatur öffnen zurückweisen akzeptieren

  14. ISO/IEC 9796: Verifizieren • Message recovery • Seien X die rechten k-1 Bits von IR´ • Seien abc0110 die rechten 4 Nibbles von X. • Stimmt das Format nicht, zurückweisen. • Ersetze abc0110 durch abπ-1(a)c. • Füge zwischen 0 und 15 Nullbits links an X an, um eine Bytefolge der Länge 2t zu erhalten Signatur Signatur öffnen message recovery zurückweisen akzeptieren

  15. ISO/IEC 9796: Verifizieren • Ermittlung von z und r: • Aus MR´ = MR´2tMR´2t-1…MR´2MR´1 berechnet man für alle 1≤i≤t MR´2iS(MR´2i-1) • Sind alle Ergebnisse gleich 0 wird die Signatur zurückgewiesen. • Sonst ist z der kleinste Wert, so dass MR´2zS(MR´2z-1) ≠ 0. • Dann ist r = (MR´2zS(MR´2z-1)) mod 16. Liegt r nicht zwischen 1 und 8, wird die Signatur zurückgewiesen. Signatur Signatur öffnen message recovery zurückweisen akzeptieren

  16. ISO/IEC 9796: Verifizieren • Ermittlung der ursprünglichen Nachricht • MP´i = MR´2i-1 für 1≤i≤z. • Sind die r-1 linken Bits von MP´ nicht gleich 0, so wird die Signatur zurückgewiesen. • Sonst besteht M´ aus den 8z-r+1 rechten Bits von MP´. Signatur Signatur öffnen message recovery zurückweisen akzeptieren

  17. ISO/IEC 9796: Verifizieren • Redundanz prüfenDie Nachricht M´ wird (wie beim Signieren) den Schritten Auffüllen, Erweitern, Redundanz unterworfen, ist das Ergebnis nicht MR´, so wird die Signatur zurückgewiesen. Signatur Signatur öffnen message recovery Redundanz prüfen zurückweisen akzeptieren

  18. RSA-Signaturen ohne message recovery • PKCS • Public Key Cryptography Standards • RSA Laboratories • ab 1991 • PKCS #1 • RSA Cryptography Standard • andere: • #3: DH-Key Agreement Standard • #6: Extended-Certificate Syntax Standard • #12: Personal Information Exchange Syntax Standard • #13: Elliptic Curve Cryptography Standard • …

  19. PKCS #1: Notation

  20. PKCS #1: Signieren und Verifizieren • HashingNachricht wird mit MD2 oder MD5 gehasht • CodierungHashwert und Hashfunktionsidentifikator werden ASN.1- und anschließend BER-codiert. Nachricht Hashing Codierung Signatur

  21. PKCS #1: Signieren und Verifizieren • Formatierung • D Bytestring mit |D| ≤ k-11. • BT (Blocktyp) ist 00 oder 01, empfohlen wird BT=01. • PS (padding string) ist Bytestring mit |PS| = k-3-|D|; ist BT=00, dann sind alle Bytes von PS gleich 00,ist BT=01, dann sind alle Bytes von PS gleich FF. • EB = 00BTPS00D. Nachricht Hashing Codierung Blockformatierung Bytestring2Integer RSA Integer2Bytestring Signatur

  22. PKCS #1: Signieren und Verifizieren • Parsenprüfen, ob der Bytestring von der Form 00BTPS00D ist, wobei • D Bytestring mit |D| ≤ k-11. • BT (Blocktyp) ist 00 oder 01 • PS (padding string) ist Bytestring mit |PS| = k-3-|D|; ist BT=00, dann sind alle Bytes von PS gleich 00,ist BT=01, dann sind alle Bytes von PS gleich FF. Signatur Bytestring2Integer RSA Integer2Bytestring Parsen zurückweisen akzeptieren

  23. PKCS #1: Signieren und Verifizieren • DecodierungBER-decodieren, Hashwert und Hashfunktionsidentifikator auslesen. Falls nicht decodierbar oder sinnlos, Signatur zurückweisen. Signatur Bytestring2Integer RSA Integer2Bytestring • HashingHashwert mit Hashfunktion gemäß Identifikator berechnen und vergleichen. Gegebenenfalls Signatur zurückweisen. Parsen Decodierung zurückweisen Hashing + Vergleich akzeptieren

  24. DSS • Digital Signature Standard • DSA (Digital Signature Algorithm) • FIPS 186 • Variante des ElGamal-Signaturschemata • verwendete Hashfunktion ist SHA-1

  25. DSS: Schlüsselerzeugung • Wähle q, so dass 2159 < q < 2160. • Wähle t, so dass 0 ≤ t < 8. Wähle t=8. • Wähle p prim, so dass gilt 2511+64t < p < 2512+64t und q | p-1. • Wähle ein Element g der Ordnung q in Zp*. • Wähle a zufällig, so dass 1 < a < q-1. • Berechne A = ga mod p. • Public key ist (p,q,g,A), secret key ist a.

  26. DSS: Signieren und Verifizieren • Signieren: • Wähle k zufällig, so dass 1 < k < q. • Berechne r = (gk mod p) mod q. • Berechne s = k-1(h(m)+ar) mod q. • Signatur ist (r,s). • Verifizieren: • Prüfe 0 < r < q und 0 < s < q. • Berechne x = s-1.h(m) mod qund y = r.s-1 mod q. • Prüfe r = (gx .Ay mod p) mod q.

More Related