IT-Sicherheit Kapitel 3 - Public Key Kryptographie Prof. Dr. Michael Braun Wintersemester 2010/2011.

Post on 06-Apr-2015

107 views 0 download

Transcript of IT-Sicherheit Kapitel 3 - Public Key Kryptographie Prof. Dr. Michael Braun Wintersemester 2010/2011.

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