Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Kryptosysteme, Digitale Signaturen, Keymanagement Digitale Signaturen Jürgen Ecker.

Ähnliche Präsentationen


Präsentation zum Thema: "Kryptosysteme, Digitale Signaturen, Keymanagement Digitale Signaturen Jürgen Ecker."—  Präsentation transkript:

1 Kryptosysteme, Digitale Signaturen, Keymanagement Digitale Signaturen Jürgen Ecker

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

3 Folie 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 Folie 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 nSignieren Verifizieren von s: berechne m´ = s e mod nSignatur öffnen prüfe, ob m´ in R(M) liegtRedundanz prüfen berechne m = R -1 (m´)message recovery

5 Folie 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 s e 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 Folie 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 Folie 7 ISO/IEC 9796: Notation SymbolBedeutung kBitlänge der Signatur dBitlänge der zu signierenden Nachricht; d 8 (k+3)/16 zz = d/8 rAnzahl der Füllbits +1: r = 8z-d+1 tt = (k-1)/16 ; 2t Bytes enthalten zumindest k-1 Bits Beispiel: k=1024, d=150, z=19, r=3, t=64

8 Folie 8 ISO/IEC 9796: Signieren 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 Message Signatur MP = m z m z-1 … m 2 m 1

9 Folie 9 ISO/IEC 9796: Signieren 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 Message Signatur MP = m z m z-1 … m 2 m 1 ME = ME t ME t-1 … ME 2 ME 1

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

11 Folie 11 ISO/IEC 9796: Signieren Truncating man nimmt die k-1 rechten Bits von MR und fügt links eine 1 an. Forcing mit 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 man erhält eine k-Bit Nachricht IR Auffüllen Erweiterung Redundanz Truncating/forcing Message Signatur MR = S(ME t ) ME t S(ME t-1 ) ME t-1... S(ME 1 ) ME 1

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

13 Folie 13 ISO/IEC 9796: Verifizieren Signatur öffnen Die 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 öffnen Signatur akzeptieren zurückweisen

14 Folie 14 ISO/IEC 9796: Verifizieren Signatur öffnen message recovery Signatur akzeptieren zurückweisen 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

15 Folie 15 ISO/IEC 9796: Verifizieren Signatur öffnen message recovery Signatur akzeptieren zurückweisen Ermittlung von z und r: Aus MR´ = MR´ 2t MR´ 2t-1 … MR´ 2 MR´ 1 berechnet man für alle 1it 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.

16 Folie 16 ISO/IEC 9796: Verifizieren Signatur öffnen message recovery Signatur akzeptieren zurückweisen Ermittlung der ursprünglichen Nachricht MP´ i = MR´ 2i-1 für 1iz. 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´.

17 Folie 17 ISO/IEC 9796: Verifizieren Redundanz prüfen Die 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 öffnen message recovery Redundanz prüfen Signatur akzeptieren zurückweisen

18 Folie 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 Folie 19 PKCS #1: Notation SymbolBedeutungSymbolBedeutung |X|Bytelänge von XEBencryption block nRSA-Modulkk=|n| p, qn = p.qBTBlocktyp e(n,e) public keyd(n,d) private key MNachrichtSSignatur MD, MD´ Hashwerte (unter MD2 oder MD5) PS Füllstring (padding string)

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

21 Folie 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. Hashing Codierung Integer2Bytestring RSA Bytestring2Integer Blockformatierung Nachricht Signatur

22 Folie 22 PKCS #1: Signieren und Verifizieren Parsen prü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. Bytestring2Integer RSA Integer2Bytestring Parsen akzeptieren zurückweisen Signatur

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

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

25 Folie 25 DSS: Schlüsselerzeugung Wähle q, so dass < q < Wähle t, so dass 0 t < 8. Wähle t=8. Wähle p prim, so dass gilt t < p < t und q | p-1. Wähle ein Element g der Ordnung q in Z p *. Wähle a zufällig, so dass 1 < a < q-1. Berechne A = g a mod p. Public key ist (p,q,g,A), secret key ist a.

26 Folie 26 DSS: Signieren und Verifizieren Signieren: Wähle k zufällig, so dass 1 < k < q. Berechne r = (g k 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 q und y = r.s -1 mod q. Prüfe r = (g x.A y mod p) mod q.


Herunterladen ppt "Kryptosysteme, Digitale Signaturen, Keymanagement Digitale Signaturen Jürgen Ecker."

Ähnliche Präsentationen


Google-Anzeigen