Nächste Seite: Radix-64-Format
Aufwärts: Verschlüsselungsverfahren und andere Algorithmen
Vorherige Seite: Der RSA Algorithmus
  Inhalt
Meistens ist es nicht praktikabel ein gesamtes Dokument zum Zwecke der Signatur zu verschlüsseln. An diesem Punkt können Hashfunktionen eingesetzt werden. Die Idee ist es, nicht das gesamte Dokument, sondern eine volumenmäßig kleinere Abbildung dieses Dokuments zu verschlüsseln bzw. zu signieren.
Bei der Verwendung in der TLS Spezifikation werden die Hashfunktionen zum Zwecke der Signatur eingesetzt. Dabei sind 2 wichtige Voraussetzungen zu erfüllen:
- es soll sehr unwahrscheinlich sein, daß zwei Datenmengen zufälligdie gleiche Prüfsumme ergeben. Dies wird umso besser erfüllt, je größer der Umfang der Prüfsumme ist. 512 Bit Prüfsummen sind in der Regel gut ausreichend.
- Es soll sehr schwierig sein, zu einer vorgegebenen Prüfsumme einen passenden Text zu finden , selbst dann wenn der Algorithmus bekannt ist. Hier kann natürlich die Notwendigkeit abgeleitet werden, daß eine sehr kleine Änderung im Dokument eine komplett andere Prüfsumme ergibt.
Der Ablauf der Signatur und Verifiaktion ist einfach: Server A bildet den Hashwert des zu sendenden Dokumentes und verschlüsselt diesen mit seinem privat key. Dieser wird jetzt zusammen mit dem Dokument zum Server B gesendet. Dieser entschlüsselt den Hashwert mit dem public Key des Servers A und vergleicht das Ergebnis mit dem zuvor selbst gebildeten Dokumentenhashwert. Ergibt dies eine Übereinstimmung ist das Dokument echt, d.h es stammt vom Server A da nur dieser seinen private key besitzt womit der Hashwert verschlüsslt wurde.
Das Verfahren ist relativ sicher, trotzdem gibt es mögliche Sicherheitsrisiken:
- Herstellen eines zweiten Dokumentes welches den gleichen Hashwert wie das Original besitzt. Dies ist aber sehr unwahrscheinlich, da es mehrere 100.000 Jahre dauern würde bis ein entsprechend zweites Dokument gefunden wäre.
- Die sogenannte Birthday Attack. Hier werden 2 Dokumente erzeugt die den gleichen Hashwert haben. Diese Methode ist etwas kurios, denn hier müßte man jemanden dazu bewegen ein Dokument A zu unterschreiben um auch einen gültige unterschrift zu B zu haben
Um Hashfunktionen sicher gegenüber der Geburtstagsattacke zu machen, sollte man mit 160 Bit Hashwerten arbeiten.
Als Beispiel Algorithmen wäre zu nennen:
- MD5 , arbeite mit 128 Bit
- SHA , arbeitet mit 160 Bit.
Der MD5-Fingerprint wurde von Ron Rivest am MIT entwickelt und 1991 veröffentlicht. Die Buchstaben MD stehen für Message Digest. Dieser Algorithmus ist eingehend getestet worden und es ist bislang keine Kritik daran aufgekommen. Diese Funktion berechnet aus einer beliebig langen Nachricht ein 128-Bit-Hashwert. Mittlerweile erscheint der Wert vielen als zu kurz, da es zu leicht ist, eine Nachricht zu finden, die zu einem bestimmten Hashwert paßt. Somit könnte man also die Unterschrift einer bestimmten Person unter ein anderes Dokument setzen. Momentan wird MD5 noch von PGP unterstützt.
Der Secure Hash Algorithmünd ist im Gegensatz zu MD5 160 Bit lang. Auch an diesem Algorithmus sind bislang keine Zweifel aufgekommen. SHA ist ab Version 5.x in PGP integriert. Man kann es dort anstatt von MD5 optional nutzen. Der Algorithmus ist von der NSA entwickelt worden.
Nächste Seite: Radix-64-Format
Aufwärts: Verschlüsselungsverfahren und andere Algorithmen
Vorherige Seite: Der RSA Algorithmus
  Inhalt
Philipp Hügelmeyer
2001-05-14