22
Kryptographie

Kryptographie - Mitarbeiter-Servermitarbeiter.hs-heilbronn.de/~vstahl/signalverarbeitung1/krypto.pdf · Kryptographie Lösung: Verwendung von Schlüsseln Sender Verschlüsselung Klartext

  • Upload
    hakien

  • View
    221

  • Download
    0

Embed Size (px)

Citation preview

Kryptographie

Kryptographie

Sender EmpfängerNachricht

Angreifer

Ziele:

Vertraulichkeit

Angreifer kann die Nachricht nicht lesen (Flüstern).

Integrität

Angreifer kann die Nachricht nicht ändern ohne dassder Empfänger dies merkt (Versiegeln).

Authentizität

Von einer Nachricht kann festgestellt werden, wer siegeschrieben hat (Unterschrift).

NichtabstreitbarkeitVersand und Empfang kann nicht abgestritten werden (Einschreiben).

Unverzichtbare Voraussetzung z.B. für eCommerce

Kryptographie

Ziel: Vertraulichkeit

Sender

Verschlüsselung

Klartext

Entschlüsselung

Empfänger

Klartextverschlüsselte

Nachricht

Probleme:

Algorithmen zur Ver/Entschlüsselung müssen geheim gehalten werden.

Jedes Sender/Empfänger Paar braucht sein eigenes Verschlüsselungsverfahren.

Wie einigen sich Sender und Empfänger auf ein Verfahren ohne dass diesein Angreifer mitkriegt?

KryptographieLösung: Verwendung von Schlüsseln

Sender

Verschlüsselung

Klartext

Entschlüsselung

Empfänger

Klartextverschlüsselte

Nachricht

Algorithmen zur Ver/Entschlüsselung öffentlich bekannt.

Jedes Sender/Empfänger Paar muss sich nur noch auf einen gemeinsamen (geheimen) Schlüssel einigen.

Problem: Austausch des Schlüssels ohne dass dies der Angreifer mitkriegt!

Schlüssel Schlüssel

Symmetrische Kryptographie:

gleicher Schlüssel zum Ver- und Entschlüsseln.Verfahren z.B. DES, IDEA, AES, RC4, RC5, Blowfish…

Kryptographie

Realität (z.B. Internet, Mobilfunk)

Sender und Empfänger können keinen geheimen Schlüssel austauschenda prinzipiell jede Nachricht abgefangen werden kann.

Ist unter diesen Umständen eine vertrauliche Kommunikationtheoretisch überhaupt möglich?

Lösung: Asymmetrische Kryptographie (Public Key Verfahren)

Zwei unterschiedliche, zueinander passende Schlüssel:• public key zum Verschlüsseln (öffentlich)• private key zum Entschlüsseln (geheim)

Idee:

Sender Empfänger

Erzeuge Schlüsselpaarpublic key, private key

Veröffentliche public key

Verschlüssele Nachricht mit public key des Empfängers

Sende verschlüsselteNachricht

Entschlüssele Nachricht mit private key

public key

verschlüsselteNachricht

1976 Diffie Hellman, 1977 RSA, 1979, Rabin, 1985 Elgamal, aktuell Elliptic Curve Cryptography

Asymmetrische Kryptographie

Asymmetrische Kryptographie

Analogie Briefkasten:

Jeder kann etwas in den Briefkasten des Empfängers werfen(verschlüsseln mit public key des Empfängers)

Nur der Empfänger kann seinen Briefkasten öffnen(entschlüsseln mit seinem private key)

Konsequenz:

Jeder Teilnehmer braucht nur einen Briefkasten (Schlüsselpaar)!

Bei n Teilnehmern:

• n(n-1)/2 Schlüssel bei symmetrischer Kryptographie• n Schlüsselpaare bei asymmetrischer Kryptographie

Asymmetrische Kryptographie

Angriffsmöglichkeiten:

Private Key des Empfängers durch Probieren erraten.Schlüssellänge z.B. 1024 Bit21024 ≈ 10300 Möglichkeiten, vgl. nur 1080 Atome im Universum

Private Key aus Public Key des Empfängers errechnen.Erfordert Faktorisierung sehr großer Zahlen.Aus Aufwandsgründen praktisch nicht machbar!

Asymmetrische Kryptographie

Integrität und AuthentizitätZiel:

Verhindern dass Angreifer eine Nachricht unbemerkt verändern kann.Nachweisen dass eine Nachricht von einem bestimmten Autor stammt.

Idee: Autor verschlüsselt die Nachricht mit seinem private key.Jeder kann die Nachricht mit dem public key des Autors entschlüsseln.Beweis dass der Autor die Nachricht verfasst (verschlüsselt) hat.

Autor

Verschlüssele Nachricht Nmit private key: N‘

Veröffentliche N und N‘

Erzeuge Schlüsselpaarpublic key, private key

Veröffentliche public key

Tester

Wenn N = N‘‘ dann wurde N mit dem private key des

Autors verschlüsselt.Da diesen nur der Autor kennt,stammt N garantiert vom Autor.

Entschlüssele N‘ mitpublic key des Autors: N‘‘

Asymmetrische Kryptographie

Verbesserung:

Autor muss nicht die ganze Nachricht verschlüsseln,es genügt ein Hash Wert („Quersumme“, „digitaler Fingerabdruck“).Hash Funktionen z.B. MD5 (128 Bit) oder SHA-1 (160 Bit)

Autor

Verschlüssele Hash Wert nmit private key: n‘(digitale Signatur)

Veröffentliche N und n‘

Erzeuge Schlüsselpaarpublic key, private key

Veröffentliche public key

Tester

Wenn n = n‘‘ dann wurde n mit dem private key des

Autors verschlüsselt.Da diesen nur der Autor kennt,stammt N garantiert vom Autor.

Entschlüssele n‘ mitpublic key des Autors: n‘‘

Berechne Hash Wert von N: n.

Berechne Hash Wert von Nachricht N: n.

Asymmetrische Kryptographie

Angriff auf öffentlichen Schlüssel – aktiver Angriff

Angreifer fälscht den öffentlichen Schlüssel des Empfängers.Dadurch kann er jede Nachricht lesen, die dem Empfänger geschickt wird!

Empfänger Sender

public key desEmpfängers

Angreifer

public key desAngreifers

Empfänger SenderAngreifer

Nachricht mitpublic key des

Angreifersverschlüsselt

Nachricht mitpublic key desEmpfängersverschlüsselt

Sender und Empfänger merken hiervon gar nichts!

„Man in the middle attack“

Asymmetrische Kryptographie

Lösung: Zertifikate.

Garantie, dass ein öffentlicher Schlüsseltatsächlich von der genannten Person stammt.

Wie kann ich meinen public key zertifizieren lassen?

Gehe mit public key und Personalausweis zu Zertifizierungsbehörde.Diese erstellt ein Dokument, in dem mein Name und mein public key stehtund signiert es mit ihrem private key.

Wie kann ich sicher sein, den korrekten public key von Person x zu bekommen?

Verlange Zertifikat von x.Prüfe Signatur mit public key der Zertifizierungsbehörde.Entnehme public key von x aus dem Zertifikat.

Asymmetrische Kryptographie

Problem:Viel zu kompliziert für den Durchschnitts-Surfer!!!

Lösung:

Secure Socket Layer (SSL)Verschlüsselung und Prüfung von Zertifikatengeschieht automatisch ohne dass man etwas davon merkt.

HTTPS: HTTP über SSLWebserver authentifiziert sich über ein Zertifikat.Daten werden verschlüsselt übertragen.

Sender

SSL

Empfänger

SSL

Klartext KlartextVerschlüsselt

Client

Symmetrische Kryptographieverschlüsselt mit K.

Überprüfe Zertifikat,erhalte public key des Servers

Erzeuge Session Key K

Server

Entschlüssle Session Key K mit private key

Sende Zertifikat an Client

Verschlüssle K mit public keydes Servers und sende ihn

an den Server

Kryptographie

Zertifikat

Session Key K verschlüsselt mit public key des Servers

Symmetrische Kryptographieverschlüsselt mit K.

SymmetrischeKryptographie

Hybride Verfahren: asymmetrische Kryptographie rechenaufwändig!

Nur der Session Key K für symmetrische Kryptographie wird mit asymmetrischerKryptographie verschlüsselt.Effizienter da symmetrische Kryptographie weniger Rechenaufwand kostet.

RSA Verfahrenfür asymmetrische Kryptographie

Zuerst Zahlen modulo m nehmen, dann rechnen!Zwischenergebnisse bleiben dann immer kleiner als m.

Kehrwert modulo m

Sender Empfänger

RSA Algorithmus