Kryptosysteme, Digitale Signaturen, Keymanagement

Slides:



Advertisements
Ähnliche Präsentationen
Eine Einführung in das RSA-Verfahren an Beispielen
Advertisements

Beispiel: RSA Man nehme 2 große Primzahlen p und q. p = 3 , q = 5
Beispiel zum RSA-Algorithmus
Hash-Tabellen und -Funktionen Hash-Tabellen in Java
Eine dynamische Menge, die diese Operationen unterstützt,
Vorlesung Programmieren II
Algebraische Zahlen: Exaktes Rechnen mit Wurzeln
Asymmetrische Kryptographie
SS 2007 FG Datenbanken – Interaktive Systeme, Fachbereich 17 Praktische Informatik Prof. Dr. Lutz Wegner Elektronische Signatur Waldemar Wiegel Sommer.
Zusammenfassung der Vorwoche
B-Bäume.
Geschichte und Anwendung des Software-Pakets Pretty Good Privacy (PGP)
Grundlagen der Kryptologie
Kryptographische Hash-Funktionen
Zahlentheorie Algebra und Kryptografie
Lehrstuhl Informatik III: Datenbanksysteme Achim Landschoof 28. April 2009 Strukturierte P2P Systeme 1 Achim Landschoof Betreuerin: Dipl.-Inf. Jessica.
Sortierverfahren Richard Göbel.
Sortierverfahren Richard Göbel.
Proseminar : Allgegenwärtiges Rechnen
Proseminar Kryptographie – Kolja Engelmann Sichere Signatursysteme Proseminar Kryptographie Kolja Engelmann,
Algorithmentheorie 04 –Hashing
WS Algorithmentheorie 05 - Treaps Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (17 –Turingmaschinen) Prof. Dr. Th. Ottmann.
Kapitel 6 Differenzierbarkeit. Kapitel 6: Differenzierbarkeit © Beutelspacher Juni 2005 Seite 2 Inhalt 6.1 Die Definition 6.2 Die Eigenschaften 6.3 Extremwerte.
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Algorithmen und Komplexität Teil 1: Grundlegende.
PKJ 2005/1 Stefan Dissmann Zusammenfassung der Vorwoche Variable stehen für (einen) Wert, der sich im Programmablauf ändern kann. Variablen besitzen einen.
Bit Commitment mit quadratischen Resten Vortrag von Josef Pozny
Christian Schindelhauer
Ein Public Key Kryptosystem mit perfekten Codes in Graphen.
Wir suchen ‘ mit m = m    ‘ c  ‘ mod 26
(Ron Rivest, Adi Shamit, Leonard Adleman , 1977)
Hashverfahren und digitale Signaturen
© by S.Strudthoff 2005 SET Sichere Kreditkartenzahlung im Internet.
Ralf KüstersDagstuhl 2008/11/30 2 Ralf KüstersDagstuhl 2008/11/30 3.
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Überblick über die Kryptographie
Einwegfunktionen mit und ohne „Falltür“
7.1 Externes Suchen Bisherige Algorithmen: geeignet, wenn alle Daten im Hauptspeicher. Große Datenmengen: oft auf externen Speichermedien, z.B. Festplatte.
KRYPTOGRAFIE.
Kryptographische Hashalgorithmen
Kryptograhie Wie funktioniert Electronic Banking?
Hashfunktionen SHA-1 (Secure Hash Algorithm)
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/ /23.1.
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Hartmut Klauck Universität Frankfurt WS 06/
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Polynome und schnelle Fourier-Transformation
Übung Datenbanksysteme II Index- strukturen
Ganzheitliches Projekt-, Ressourcen- und Qualitätsmanagement 1 Reports und AddOns Auf den folgenden Seiten wird Ihnen die Funktionsweise der Reports und.
SET – Secure Electronic Transaction
Symmetrische Blockchiffren DES – der Data Encryption Standard
Algorithmen und Datenstrukturen Übungsmodul 11
(C) 2003, Hermann Knoll, HTW Chur, Fachhochschule Ostschweiz 1 RSA-Algorithmus 1978 von Ronald Rivest, Adi Shamir und Leonard Adleman erfunden.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Analyse der Laufzeit von Algorithmen
IT-Sicherheit Kapitel 3 - Public Key Kryptographie
Pretty Good Privacy Public Encryption for the Masses
Michal Olejniczak Pawel Kiedrowski
© 2013 TravelTainment Kryptographie in der IT Kryptographische Verfahren und ihre Anwendung in der IT.
Systems Architecture RSA & DSA Signaturen Elliptische-Kurven-Kryptographie Mechmet Chiousemoglou Christian Krause 29.Mai.
Kryptographie ● Motivation ● Theoretisches ● Symmetrische Verschlüsselung: RC4 ● Asymmetrische Verschlüsselung: RSA.
Secure Hash Algorithm Cetin Cigdem,
Manuel Blechschmidt & Volker Grabsch CdE Sommerakademie 2006 Kirchheim
Aufgabenteil (mit Hilfsmittel)
 Präsentation transkript:

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

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

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.

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

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

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

ISO/IEC 9796: Notation Beispiel: k=1024, d=150, z=19, r=3, t=64 Symbol Bedeutung k Bitlänge der Signatur d Bitlänge der zu signierenden Nachricht; d ≤ 8 (k+3)/16 z z = d/8 r Anzahl der Füllbits +1: r = 8z-d+1 t t = (k-1)/16; 2t Bytes enthalten zumindest k-1 Bits Beispiel: k=1024, d=150, z=19, r=3, t=64

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

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

ISO/IEC 9796: Signieren Redundanz π Message 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. Message Auffüllen Erweiterung π 1 2 3 4 5 6 7 8 9 A B C D E F Redundanz MR = S(MEt)MEtS(MEt-1)MEt-1... S(ME1)ME1 ME = MEtMEt-1 … ME2ME1 Signatur

ISO/IEC 9796: Signieren Message 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0110. man erhält eine k-Bit Nachricht IR Auffüllen Erweiterung Redundanz Truncating/forcing Signatur MR = S(MEt)MEtS(MEt-1)MEt-1... S(ME1)ME1

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

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 Signatur öffnen zurückweisen akzeptieren

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

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

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

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 Signatur öffnen message recovery Redundanz prüfen zurückweisen akzeptieren

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 …

PKCS #1: Notation Symbol Bedeutung |X| Bytelänge von X EB encryption block n RSA-Modul k k=|n| p, q n = p.q BT Blocktyp e (n,e) public key d (n,d) private key M Nachricht S Signatur MD, MD´ Hashwerte (unter MD2 oder MD5) PS Füllstring (padding string)

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

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

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. Signatur Bytestring2Integer RSA Integer2Bytestring Parsen zurückweisen akzeptieren

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

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

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.

DSS: Signieren und Verifizieren 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 q und y = r.s-1 mod q. Prüfe r = (gx .Ay mod p) mod q.