2b. Kryptographische Protokolle

Technische Realisierung der digitalen Signatur


Idee

  1. Der Inhalt des Dokuments wird in eine ganze Zahl oder Bitkette I umgewandelt.
  2. Die Unterzeichnerin A = Alice berechnet als Unterschrift einen Wert S = f(I) mit einer Funktion f, die nur sie berechnen, deren Ergebnis aber jeder nachprüfen kann.
  3. Die Zahl S wird zusammen mit dem Dokument abgelegt (oder übermittelt).

(Zu) einfaches Beispiel: Unter der Annahme, dass Alice als einzige auf der Welt kubische Gleichungen lösen kann, würde sie S so bestimmen, dass S3 - S - I = 0.

Jeder könnte dann durch Einsetzen nachprüfen, dass S den korrekten Wert hat.


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.

[digitale Signatur]

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).

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

Nachteil: Alle bekannten asymmetrischen Verschlüsselungsverfahren sind langsam, 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 eine Prüfsumme q = h(m) mit dem privaten Schlüssel signiert: s = D(q).

Benötigt wird dazu eine kryptographische Prüfsumme (also eine Hash-Funktion), damit eine Signatur zu keinem anderen Dokument passt - dies ist genau die Forderung nach Kollisionsfreiheit.


Die digitale Signatur als kryptographisches Protokoll

[Signatur]

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)?

Lösung

Digitale Signatur durch Urheber der Software (oder Distributor).

Dazu muss der öffentliche Schlüssel des Urhebers beim Klienten zuverläsig 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.


Vorlesung Datenschutz und Datensicherheit, Johannes-Gutenberg-Universität Mainz
Autor: Klaus Pommerening, 31. März 1999; letzte Änderung: 25. Dezember 2001.
E-Mail an
Pommerening@imsd.uni-mainz.de.