Next: Weiteres wichtiges Zubehör
Up: Grundlagen der Kryptographie
Previous: Asymmetrische Chiffren
  Contents
Subsections
Ein wichtiges Werkzeug, das in vielen kryptographischen Protokollen
Verwendung findet, sind Einweg-Hashfunktionen. Eine Hashfunktion
erzeugt aus einem beliebig großen Datenblock einen eindeutigen
Hashwert mit fester Länge . Hashfunktionen finden auch in
anderen Bereichen der Informatik Verwendung. Um für kryptographische
Anwendungen zweckmäßig zu sein, muß aber noch mehr von der Funktion
gefordert werden: Zu einem gegebenen Datenblock muß es einfach sein,
den Hashwert zu berechnen, aber die Umkehrung, aus einem Hashwert
einen Datenblock zu generieren mit , sollte
berechnungsmäßig unmöglich sein. Daher kommt auch die Bezeichnung
``Einweg''-Hashfunktion. Ebenfalls berechnungsmäßig unmöglich sollte es
sein, zwei Datenblöcke und mit dem selben Hashwert
zu finden. Daraus resultiert, dass auch kleinste Änderungen am Text zu
unterschiedlichen Hashwerten führen müssen (Diffusion).
Einweg-Hashfunktionen eignen sich für eine einfache Möglichkeit zur
Authentifizierung von Kommunikationspartnern. Die Voraussetzung dafür ist,
dass die an der Kommunikation beteiligten Parteien ein Geheimnis
teilen. Zur Erläuterung des Vorgehens betrachte man folgende Situation:
Alice will Bob überzeugen, dass eine Nachricht von ihr stammt. Um
dieses zu tun, bildet Alice also den Hashwert der
Konkatenation der Nachricht und des Geheimnisses, wobei H eine
Einweg-Hashfunktion ist, auf die sich Alice und Bob im Vorfeld geeinigt
haben und das gemeinsame Geheimnis. Alice sendet zusammen mit
an Bob. Bob, der kennt, kann ebenfalls bilden und das Ergebnis
mit vergleichen. Wenn die Werte übereinstimmen, weiß Bob, dass die
Nachricht wirklich von Alice geschickt wurde. Da nur er und Alice das
Geheimnis kennen, hätte niemand außer Alice den Hashwert
generieren können, und da eine Einweg-Hashfunktion ist, ist es für dritte
auch trotz der Kenntnis von und unmöglich zu berechnen. Bob weiß
außerdem, dass der Text unverändert angekommen ist. Hätte eine dritte
Partei die Nachricht durch eine andere Nachricht ersetzt, wäre der
resultierende Hashwert
unterschiedlich zu dem mitgeschickten
. Diese Art der Authentifizierung findet u.a. bei IPSec
Verwendung.
Der Nachteil dieses Verfahrens ist, dass es Dritten
gegenüber keine Authentifizierung bietet (non-repudiation). Alice kann
sich zwar von der Identität Bobs überzeugen, hat aber keine Möglichkeit
einer dritten Person Clara zu beweisen, dass die Nachricht tatsächlich von
Bob stammt, da Clara weder das Geheimnis kennt, noch, bei
Offenlegung des Geheimnisses, aus auf Bob schließen kann.
Hier sollen zwei verbreitete
Einweghashfunktionenkurz erwähnt werden, die als weitgehend sicher gelten:
- Secure Hash Algorithm, SHA1 (NIST, 1994): SHA1 ist als Teil des DSA
(siehe 2.5.6) von der NSA entwickelt worden und berechnet einen Hashwert von
160 Bit.
- RIPE-MD 160, Europäische Union: RIPE-MD 160 ist eine sichere
Weiterentwicklung von MD4 und berechnet 160 Bit große Hashwerte.
Für viele Kommunikationsprotokolle hätte man gerne ein elektronisches
Äquivalent zur menschlichen Unterschrift, also eine Möglichkeit, digitale
Dokumente zu unterzeichnen. Die exakten Anforderungen an eine
sogenannte digitale Signatur lassen sich wie folgt auflisten:
- Authentizität: Der Empfänger kann sich von der Identität des
Unterzeichners überzeugen (Es muß für jede Person problemlos möglich
sein festzustellen, von wem die digitale Signatur erstellt wurde. Die
digitale Signatur identifiziert ihren Ersteller eindeutig).
- Fälschungssicherheit: Nur dem Unterzeichner ist es möglich, die
Signatur zu erzeugen.
- Überprüfbarkeit: Eine dritte Partei kann jederzeit die Signatur
verifizieren.
- Keine Wiederverwendbarkeit: Die Signatur bezieht sich nur auf das
unterzeichnete Dokument und kann keinesfalls für andere Dokumente
verwendet werden.
- Keine Veränderbarkeit, Integrität: Nachdem das Dokument
unterzeichnet ist, kann es nicht mehr verändert werden.
Es ist ersichtlich, dass, wenn alle diese Forderungen erfüllt sind, Vorgänge
wie digitales Unterzeichnen von Verträgen und ähnliches möglich sind.
Digitale Signaturen kann man weiterhin zur Authentifizierung von
Kommunikationspartnern oder Autoren digitaler Dokumente einsetzen.
Digitale Signaturen mittels asymmetrischer Chiffren
Vorausgesetzt die Reihenfolge der Anwendungen des geheimen und
öffentlichen Schlüssels ist unerheblich, eignen sich asymmetrische Chiffren
gut, um digitale Signaturen zu erstellen. Dabei wird wie folgt vorgegangen:
Alice chiffriert das betreffende Dokument mit ihrem geheimen Schlüssel.
Danach sendet sie das so unterzeichnete Dokument an Bob. Bob
dechiffriert das Dokument mit Alices öffentlichem Schlüssel. Betrachten wir
kurz, ob alle unsere Anforderungen an digitale Signaturen bei einem
derartigen Vorgehen erfüllt werden:
- Authentizität: Da Alices öffentlicher Schlüssel den Klartext ergibt, weiß
Bob, dass das Dokument von Alice stammt.
- Fälschungssicherheit: Nur Alice kennt ihren geheimen Schlüssel.
Niemand anderes hätte die Signatur erstellen können.
- Überprüfbarkeit: Jeder, der Alices öffentlichen Schlüssel kennt, kann die
Signatur bestätigen. Alice kann sie nicht zurücknehmen.
- Keine Wiederverwendbarkeit: Die Unterschrift bezieht sich nur auf
dieses Dokument, andere Dokumente ergeben andere Signaturen.
- Keine Veränderbarkeit, Integrität: Bei Veränderung des Dokuments ergibt
die Dechiffrierung mit Alices öffentlichem Schlüssel kein sinnvolles
Ergebnis.
In der Praxis wird oftmals nicht das gesamte Dokument unterzeichnet, (also
chiffriert) sondern nur der Hashwert des Dokuments. Dieses geschieht vor
allem aus Gründen der Effizienz (außerdem bleibt so das Dokument selbst,
auch ohne Überprüfung der digitalen Signatur, lesbar). Man kann sich
davon überzeugen, dass bei Benutzung einer Einweg-Hashfunktion mit
einem ausreichend großem Hashwert sich die Sicherheit der digitalen
Signatur dabei nicht ändert.
Digitale Signaturen mittels DSA
Bei digitalen Signaturen mit asymmetrischen Chiffren geht mit der
Signierung eine Verschlüsselung des Dokuments einher (falls das ganze
Dokument und nicht nur der Hashwert signiert wird). Dies ist nicht in allen
Fällen wünschenswert. Weiterhin muß man beachten, dass in manchen
Ländern Benutzung oder Export von Software, die Verschlüsselung
ermöglicht, restringiert ist. Also gibt es einen Bedarf nach Algorithmen, die
digitale Signaturen ohne einhergehende Verschlüsselung ermöglichen. Der
Digital Signature Algorithm (DSA), der 1991 von der NSA entwickelt wurde
und Teil des DSS (Digital Signature Standard) ist, verfolgt einen derartigen
Ansatz. Bei korrekter Implementation eignet er sich nur zum Signieren, aber
nicht zum Verschlüsseln. Auch beim DSA wird mit öffentlichen und
geheimen Schlüsseln gearbeitet und die Signatur wird auch hier unter
Verwendung des öffentlichen Schlüssels überprüft. Die Sicherheit des DSA
beruht auf der Schwierigkeit, den diskreten Logarithmus über endlichen
Körpern zu berechnen. Die Schlüssellänge ist variabel zwischen 512 und
1024 Bit. Wie auch schon beim DES wurde dem DSA bei seiner Einführung
mit Mißtrauen begegnet, da an seiner Entwicklung die NSA beteiligt war.
Tatsächlich besteht bei maliziöser Implementation des Algorithmus die
Möglichkeit, einen verdeckten Kanal in den DSA einzubauen, der nach und
nach den geheimen Schlüssel des Anwenders nach außen schleust. Da ein
solcher Kanal unmöglich zu entdecken ist, sollte man nur
vertrauenswürdige Implementationen des DSA verwenden.
Next: Weiteres wichtiges Zubehör
Up: Grundlagen der Kryptographie
Previous: Asymmetrische Chiffren
  Contents
willemATkoram.de