Erste Vorlesung Kryptographie Andre Chatzistamatiou October 14, 2013
Anwendungen der Kryptographie: geheime Datenübertragung Authentifizierung (für uns = Authentisierung) Daten Authentifizierung/Integritätsprüfung
Beispiel: Authentifizierung Wie kann Alice sicher sein, dass sie mit Bob verbunden ist? Alice=Studentin Bob=Sparkasse Essen/Google/... Das Verfahren basiert auf Public key Verschlüsselung (z.b. RSA, erfunden in 197x)= asymmetrischer Verschlüsselung. Bei asymmetrischen Verschlüsselungsverfahren gibt es ein Paar von Schlüsseln: einen öffentlichen Schlüssel, einen privaten Schlüssel.
Authentifizierung-Verfahren 1. Alice besorgt sich den öffentlichen Schlüssel von Bob. Bei einer Zertifizierungsstelle kann sie überprüfen ob es tatsächlich Bob s öffentlicher Schlüssel ist. 2. Alice testet mit einer Aufgabe an Bob, ob Bob den zum öffentlichen Schlüssel gehörigen privaten Schlüssel besitzt. Da nur Bob den zugehörigen privaten Schlüssel besitzt, weiß Alice, dass sie mit Bob verbunden ist.
Alice entschlüsselt M Alice M N Zufallszahl N Verschlüsselung von N Bob Ergebnis = M mittels öffentlichem Schlüssel mittels privatem Schlüssel Falls Alice N als Ergebnis der Entschlüsselung bekommt, dann kann sie sicher sein, dass Bob der Absender ist.
Sicherheit des Public key Verfahrens Damit das Public key Verfahren sicher ist muss das finden der Lösung X im Problem X vorgegebenes Resultat öffentlicher Schlüssel technisch nicht möglich sein.
Beispiel: Daten Authentifizierung Alice möchte sicher gehen, dass ihr Programm X die Orginalversion von Hersteller Bob ist. Bob hat dafür den Orginalversionen von Programm X eine Signatur hinzugefügt: Orginalversion Programm X Hash Funktion Ergebnis: Zahlenkombination Verschlüsselung mittels Bobs privatem Schlüssel Signatur der Orginalversion Programm X + Programm X signierte Orginalversion Programm X
Alice überprüft ihre Version von Programm X mittels der Signatur ihres Programms: Programm X Hash Funktion Ergebnis : M Signatur von Programm X Entschlüsselung mit Bobs öffentlichem Schlüssel Ergebnis : M Falls M = M, dann ist Programm X von Bob signiert worden.
Geheime Datenübertragung Beispiel: https = http + SSL/TLS, wobei das SSL/TLS Protokoll die Geheimhaltung sicherstellt. Alice https Bob=Sparkasse Essen/Google/... SSL/TLS hat zwei Schritte: 1. Shake hands. Alice authentifiziert Bob wie oben beschrieben. Konstruktion eines gemeinsamen Schlüssels. Der Schlüssel wird nur für diese Sitzung verwendet. 2. Verschlüsselte Kommunikation mit Hilfe des gemeinsamen Schlüssels.
Im zweiten Schritt werden symmetrische Verschlüsselungsverfahren verwendet. Symmetrisch bedeutet, dass der gleiche Schlüssel für die Ver/Entschlüsselung verwendet wird. Dieser darf nur Alice und Bob bekannt sein. Symmetrische Verfahren sind schneller als asymmetrische. Bei der Konstruktion eines gemeinsamen Schlüssels im ersten Schritt werden auch kryptographische Verfahren benutzt. Eines (Diffie-Hellmann) wird im folgenden vorgestellt.
Konstruktion eines gemeinsamen Schlüssels Sei E eine Verknüpfung mit zwei Argumenten so dass: E(E(x, y), z) = E(E(x, z), y). Ein wichtiges Beispiel: sei G eine Gruppe, E : G Z G (g, n) g n. Z.B. G = F p = F p \{0} mit der Multiplikation.
Diffie Hellmann Verfahren Sei P Bobs öffentlicher Schlüssel, Alice wählt sich eine Geheimzahl A und Bob wählt sich eine Geheimzahl B. Alice : Bob : öffentlich: P P privat: A B öffentlich: E(P, A) E(P, B) öffentlich: E(P, B) E(P, A) privat: E(E(P, B), A) = E(E(P, A), B)
Diskreter Logarithmus Problem Damit das Verfahren sicher ist, muss E(x, y) = z schwer nach y zu lösen sein, wenn x, z vorgegeben sind. Für G = F p und E wie oben, heißt dieses Problem der diskrete Logarithmus.