Upload
christoph-schiessl
View
112
Download
0
Embed Size (px)
Citation preview
IT-SicherheitKapitel 3 - Public Key
Kryptographie
Prof. Dr. Michael Braun
Wintersemester 2010/2011
Einführung
Symmetrische Kryptographie
Sender und Empfänger verwenden denselben Schlüssel.
Die Teilnehmer müssen sich voll vertrauen.
Bei N Teilnehmern muss jeder Teilnehmer N-1 Schlüssel geheim halten.
Bei Hinzukommen eines neuen Teilnehmers müssen alle Teilnehmer ihre Schlüsseldatei aktualisieren.
Es sind hohe Sicherheitsanforderung für den Schlüsseltransport notwendig.
Asymmetrische Kryptographie
Es gibt ein Schlüsselpaar bestehend aus einem privaten und einem dazugehörigen öffentlichen Schlüssel.
Es besteht eine mathematische Beziehung zwischen dem privaten und dem öffentlichen Schlüssel.
Der private Schlüssel soll nicht aus dem öffentlichen Schlüssel ableitbar sein.
Der öffentliche Schlüssel kann beliebig über einen nicht vertraulichen Kanal verteilt werden.
Schlüsselmanagement
Jeder Teilnehmer besitzt ein asymmetrisches Schlüsselpaar.
Jeder Teilnehmer hält seinen privaten Schlüssel geheim.
Die öffentlichen Schlüssel sind jeweils allen Teilnehmern bekannt (z.B. über ein öffentliches Verzeichnis).
Bei N Nutzern sind nur noch N Schlüsselpaare nötig.
Vertrauliche Kommunikation (Forts.)
Mike‘s public key
Ted‘spublic key
Alice‘spublic key
Bob‘spublic key
Joy‘s public key
plain text
ciphertext
Bob‘spublic key
cipher text
plaintext
Bob‘sprivate
key
Öffentliches Verzeichnis
asymmetric
encryption
asymmetric
decryption
Geschichte
Anfang der 1970er erfinden Mathematiker beim britischen Geheimdienst (angeblich) „Non-Secret Cryptography“.
1976 publizieren Whitfield Diffie und Martin Hellman ihren richtungsweisenden Artikel.
1978 veröffentlichen Ron Rivest, Adi Shamir und Leonard Adleman das RSA-Verfahren.
1985 publiziert Taher ElGamal ein Verschlüsselungs- und Signaturverfahren auf Basis von Diffie-Hellman.
Falltürfunktionen
Laufzeit
Eine Funktion f heißt genau dann Laufzeit eines Algorithmus, wenn für alle Eingabelängen n der Algorithmus höchstens f(n) Schritte benötigt.
Ein Schritt ist eine einfache Operation auf einer Turing-Maschine, eine Maschineninstruktion oder ein Hochsprachenbefehl. Die verschiedenen Definitionen von „Schritt“ sollen bis auf multiplikative Konstanten gleich sein.
f(n) wird nicht exakt über eine Formel bestimmt, sondern für große Werte von n approximiert.
O-Notation• Es gilt genau dann f = O(g), wenn es zwei Zahlen c
und N gibt, so dass f(n) ≤ c * g(n) gilt für alle n ≥ N.
c * g(n)
f(n)
g(n)
Nn
Laufzeit (Forts.)
Ein Algorithmus mit Eingabelänge n hat genau dann
lineare Laufzeit, wenn die Laufzeit O(n) beträgt.
polynomielle Laufzeit, wenn die Laufzeit O(na) für eine natürliche Zahl a > 1 beträgt.
exponentielle Laufzeit, wenn die Laufzeit O(cn) für ein c > 1 beträgt.
Eine lineare und polynomielle Laufzeit ist effizient.
Komplexitätsklassen
Die Komplexitätsklasse P beschreibt diejenigen Probleme zu deren Lösung es einen Algorithmus mit polynomieller Laufzeit gibt.
Die Komplexitätsklasse NP beschreibt diejenigen Probleme, bei denen die Verifikation einer Lösung eine polynomielle Laufzeit besitzt.
P versus NP
P ist eine Teilmenge von NP.
Offen ist die Frage P = NP?
•Ist jedes Problem, deren Lösung in polynomieller Laufzeit verifizierbar ist auch in polynomieller Laufzeit lösbar?
• Im August wurde ein 103 Seiten langer Beweis eingereicht mit der Behauptung P ≠ NP (wird derzeit von den Experten geprüft).
Einweg- und Falltürfunktionen
Eine Abbildung f heißt Einwegfunktion, falls gilt:
y = f(x) ist effizient berechenbar.
x = f-1(y) ist nicht effizient berechenbar.
Eine Abbildung f heißt Falltürfunktion, falls gilt:
f ist eine Einwegfunktion.
x = f-1(y) ist effizient berechenbar mit Hilfe einer Zusatzinformation.
Kryptographie mit Falltürfunktionen
Ein Teilnehmer A wählt eine Falltürfunktion f, bei der nur er die Zusatzinformation kennt.
Der Teilnehmer B wendet die Falltürfunktion f auf seine Nachricht x an und sendet das Ergebnis y = f(x) an A.
Unter der Annahme, dass nur A die Zusatzinformation kennt, kann A die Funktion f umkehren und die Nachricht x = f-1(y) entschlüsseln.
Kandidaten für Falltürfunktionen
Faktorisierung ganzer Zahlen
Diskreter Logarithmus
Elliptische Kurven
Digitale Signaturen
Digitale Signatur
Mit Public Key Kryptographie kann man mittels digitaler Signatur die folgende Schutzziele realisieren:
Integrität
Nachrichtenauthentizität
Verbindlichkeit
Integrität und Nachrichtenauthentizität können auch mit Message Authentication Codes realisiert werden, aber die Verbindlichkeit gewährleistet ausschließlich die digitale Signatur.
Digitale Signatur (Forts.)
Mike‘s Mike‘s public keypublic key
Ted‘sTed‘spublic keypublic key
Alice‘sAlice‘spublic keypublic key
Bob‘sBob‘spublic keypublic key
Joy‘s Joy‘s public keypublic key
plain plain texttext
signatursignaturee
Alice‘sAlice‘spublic keypublic key
true/true/falsefalse
plainplaintexttext
Alice‘sAlice‘sprivate private
keykey
Alice Bob
signatursignaturee
signaturesignaturegenerationgeneration signaturesignature
verificationverification
Digitale Signatur (Forts.)
Ein Teilnehmer A kann eine gültige digitale Signatur mit einem privaten Schlüssel erzeugen.
Jeder andere Teilnehmer B kann die Echtheit der digitalen Signatur von A mit dem öffentlichen Schlüssel von A verifizieren.
Es wird dabei gefordert, dass es praktisch unmöglich sein muss, ohne den privaten Schlüssel eine gültige digitale Signatur erzeugen zu können.
Hash & Sign• Problem:
Public-Key-Verfahren sind sehr langsam.
Die digitale Signatur ist ebenso lang wie die Nachricht.
• Lösung:
Hashen der Nachricht und Signieren des Hashwertes.
Die Fälschungssicherheit, die Verifizierbarkeit und die Verbindlichkeit gelten zunächst für den Hashwert.
Durch eine kollisionsresistente Hashfunktion übertragen sich die Eigenschaften auch auf die Nachricht.
Hash & Sign (Forts.)
Mike‘s Mike‘s public keypublic key
Ted‘sTed‘spublic keypublic key
Alice‘sAlice‘spublic keypublic key
Bob‘sBob‘spublic keypublic key
Joy‘s Joy‘s public keypublic key
hash hash valuevalue
signatursignaturee
Alice‘sAlice‘spublic keypublic key
true/true/falsefalse
hashhashvaluevalue
Alice‘sAlice‘sprivate private
keykey
Alice Bob
signatursignaturee
plain plain texttext
signaturesignaturegenerationgeneration signaturesignature
verificationverification
hashhashfunctionfunction
hashhashfunctionfunction
Kryptographischer Umschlag
Verschlüsselung gewährleistet Vertraulichkeit.
Digitale Signaturen gewährleisten Authentizität.
Ein kryptographischer Umschlag gewährleistet beides:
Nachricht signieren.
Nachricht und Signatur verschlüsseln.
Kryptographischer Umschlag (Forts.)
Mike‘s Mike‘s public keypublic key
Ted‘sTed‘spublic keypublic key
Bob‘sBob‘spublic keypublic key
Alice‘sAlice‘spublic keypublic key
Joy‘s Joy‘s public keypublic key
Bob‘sBob‘spublic keypublic key
Alice‘sAlice‘sprivate private
keykey
signaturesignaturegenerationgeneration
concatenatconcatenatee
asymmetriasymmetricc
encryptionencryption
signaturesignature plain textplain text
cipher cipher texttext
cipher cipher texttext
asymmetriasymmetricc
decryptiondecryption
Bob‘sBob‘sprivate private
keykey
Alice‘sAlice‘spublic keypublic key
signaturesignatureverificationverification
plain textplain textsignaturesignature
true/falsetrue/false
BobAlice
Hybridverfahren
Symmetrisch vs. asymmetrisch
Asymmetrische Verfahren haben gegenüber den symmetrischen Verfahren den Vorteil, dass nicht ein gemeinsamer Schlüssel über einen vertraulichen Kanal ausgetauscht werden muss.
Symmetrische Verfahren lassen sich gegenüber asymmetrischen Verfahren sehr effizient implementieren (ca. 1000 mal schneller).
Da es meist mathematische Angriffe auf asymmetrische Verfahren gibt, ist die Schlüssellänge weitaus größer als bei symmetrischen Verfahren.
Symmetrisch vs. asymmetrisch (Forts.)
Ziel ist es die Vorteile von asymmetrischen und symmetrischen Verfahren zu nutzen.
Hybride Verfahren verschlüsseln die eigentliche Nachricht symmetrisch, wobei mittels asymmetrischer Verschlüsselung ein symmetrischer Schlüssel vertraulich transportiert wird.
Hybride Verschlüsselung
Mike‘s Mike‘s public keypublic key
Ted‘sTed‘spublic keypublic key
Alice‘sAlice‘spublic keypublic key
Bob‘sBob‘spublic keypublic key
Joy‘s Joy‘s public keypublic key
keykey encryptedencryptedkeykey
Bob‘sBob‘spublic keypublic key
keykey
Bob‘sBob‘sprivate private
keykey
Alice Bob
asymmetriasymmetricc
encryptionencryption
asymmetriasymmetricc
decryptiondecryption
encryptedencryptedkeykey
plain plain texttext
cipherciphertexttext
symmetricsymmetricencryptionencryption
plainplaintexttext
symmetricsymmetricdecryptiondecryption
cipherciphertexttext
Standards
IEEE P1363
Schlüsselvereinbarungsprotokolle
Schlüsseltransportprotokolle
Signaturalgorithmen
Der Standard empfiehlt keine Schlüssellängen
ANSI
X9.30-1 Digital Signature Algorithm (DSA)
X9.30-2 Hashing Algorithms for DSA
X9.31-1 RSA Signature Algorithm
X9.31-2 Hashing Algorithms for RSA
X9.42 Key Management using Diffie-Hellman
X9.62 Elliptic Curve Digital Signature Algorithm (ECDSA)
X9.63 Elliptic Curve Key Agreement and Transport
Public Key Crypto Standards
PKCS#1 RSA Cryptography
PKCS#3 Diffie-Hellman Key Agreement
PKCS#5 Password Based Cryptography
PKCS#6 Extended Certificate Syntax
PKCS#7 Cryptographic Message Syntax
PKCS#8 Private Key Information Syntax
Public Key Crypto Standards (Forts.)
PKCS#9 Selected Attribute Types
PKCS#10 Certification Request Syntax
PKCS#11 Cryptographic Token Interface
PKCS#12 Personal Information Exchange Syntax
PKCS#13 Elliptic Curve Cryptography
PKCS#15 Cryptographic Token Information Format