2b. Kryptographische Protokolle
Technische Realisierung der digitalen Signatur
Idee
- Der Inhalt des Dokuments wird in eine ganze Zahl oder Bitkette I
umgewandelt.
- Der Unterzeichner B = Bob berechnet als Unterschrift einen Wert
S = f(I) mit einer Funktion f, die nur er
berechnen, deren Ergebnis aber jeder nachprüfen kann.
- Die Zahl S wird zusammen mit dem Dokument abgelegt (oder
übermittelt).
(Zu) einfaches Beispiel: Unter der Annahme, dass Bob
als einziger auf der Welt kubische Gleichungen lösen kann, würde er
S so bestimmen, dass
S3 - S - I = 0.
Jeder könnte dann durch Einsetzen nachprüfen, dass S
den korrekten Wert hat.
(Im 16. Jahrhundert gab es tatsächlich eine Zeit, in der Tartaglia
als einziger auf der Welt kubische Gleichungen lösen konnte.)
Ansatz: Umkehrung der asymmetrischen Verschlüsselung
Bei der asymmetrischen Verschlüsselung kommt genau so ein Paar von
Funktion und Umkehrfunktion vor: Eine Richtung kann jeder berechnen, die
umgekehrte nur der Besitzer des privaten Schlüssels.
Der Urheber des Dokuments (oder Absender der Nachricht), Dr. Robert
Müller (Bob) verschlüsselt es mit seinem privaten Schlüssel
D zu s = D(m).
Die Empfängerin, Dr. Alice Miller (Alice) überprüft die Signatur
durch Anwendung des öffentlichen Schlüssels E nach der Formel
m = E(s) = ED(m).
Niemand sonst kann D(m) bilden.
Jeder kann die Echtheit mit Hilfe des öffentlichen
Schlüssels überprüfen.
Verfeinerung des Ansatzes
Problem: Alle bekannten asymmetrischen
Verschlüsselungsverfahren sind laaaaaaaaangsam, also ungeeignet für
große Datenmengen (Programme, Bilder) oder leistungsschwache
Geräte (persönliche Chipkarte).
Beschleunigung durch Verwendung einer Hash-Funktion:
- Statt der Originaldaten m wird ein Hashwert
q = h(m) mit dem privaten Schlüssel signiert:
s = D(q).
- Benötigt wird dazu eine kryptographische
Hash-Funktion, damit
die Signatur zu keinem anderen Dokument passt - dies ist genau die
Forderung nach Kollisionsfreiheit.
- Kollision bedeutet: Eine Signatur passt zu verschiedenen
Dokumenten. Das wäre sehr schlecht!
Die digitale Signatur als kryptographisches Protokoll
Anwendung 1: Sichere Software-Verteilung
Download von Software per FTP / aus WWW-Browser / als Applet:
Wer garantiert für die Echtheit (Authentizität,
Integrität)?
- Authentizität: Urheberschaft der Software kontrollierbar?
- Integrität: Freiheit von unbefugter Manipulation?
Lösung
- Digitale Signatur des Programmcodes durch den Urheber der Software
(oder den Distributor).
- Dazu muss der öffentliche Schlüssel des Urhebers beim Klienten
zuverlässig bekannt sein (z. B. durch sichere Verwahrung oder
durch - siehe später - ein Zertifikat).
- Diese Idee steckt hinter dem »Code Signing« von Microsoft,
wo sie zur Karikatur verzerrt wurde. Siehe den Artikel in
Crypto-Gram,
January 15, 2001.
Autor: Klaus Pommerening, 31. März 1999;
letzte Änderung: 18. Juli 2004.
E-Mail an Pommerening »AT« imbei.uni-mainz.de.