Digitale Unterschriften &
Verschlüsselung
ÜBERSICHT
1. Motivation
2. Kommunikation ohne Verschlüsselung
3. Kommunikation mit Verschlüsselung
4. Prinzip der Verschlüsselung
5. Symmetrische Verschlüsselung (Private-Key-Verfahren)
6. Asymmetrische Verschlüsselung (Public-Key-Verfahren)
7. Hash Verfahren/ Hash Algorithmus
8. Digitale Unterschriften mit symmetrischer Verschlüsselung
9. Digitale Unterschriften mit asymmetrischer Verschlüsselung
A. Quellen
1. Motivation
Was sind digitale Unterschriften
und wozu werden sie benötigt? Dieser Text möchte
diese und ein paar andere Fragen, die zum Verständnis
der Materie dringend benötigt werden, beantworten.
Es
ist hilfreich sich zuerst Gedanken zu machen, was man eigentlich
mit einer herkömmlichen Unterschrift bezweckt.
Eine
Unterschrift belegt:
die
Urheberschaft (Authentizität) eines Dokuments
Durch die Unterschrift wird festgelegt, dass das Dokument
von dem Unterschreibenden selbst stammt.
die
Unverfälschtheit (Integrität) eines Dokuments
Ein schriftliches Dokument wird erst nach der Erstellung unterschrieben.
Durch die Unterschrift wird ausgedrückt, dass das Dokument,
so wie es vorliegt, vom Urheber stammt.
die Einmaligkeit eines Dokuments
Jedes Dokument wird separat unterschrieben. Damit wird die Einmaligkeit
eines Dokuments belegt. Die Unterschrift kann nicht kopiert
und für ein anderes Dokument verwendet werden.
die
Verbindlichkeit eines Dokuments
Der Unterschreibende kann nicht abstreiten, dass das Dokument
von ihm stammt.
Digitale
Unterschriften sind für den elektronischen Abschluss
von rechtsgültigen Verträgen nötig.
Nachfolgend
einige Grundlagen, die zum Verständnis benötigt
werden.
2.
Kommunikation ohne Verschlüsselung
Zwei
Menschen/Computer kommunizieren über einen Kanal miteinander.
Die Kommunikation wird nicht verschlüsselt. Deshalb kann
ein Eindringling, der den Kanal abhört, an die Daten
kommen.
3.
Kommunikation mit Verschlüsselung
Diese
beiden Personen/Computer kommunizieren über einen Kanal,
diese Kommunikation findet allerdings verschlüsselt statt.
Der Eindringling kann zwar den Kanal abhören,
mit den Daten aber nichts anfangen. Hier ist das Ziel der
Verschlüsselung, Daten/ Informationen vor nicht autorisierten
Personen zu schützen.
4.
Prinzip der Verschlüsselung
Sei
M = Nachricht
Ke = Schlüssel zur Verschlüsselung
Kd = Schlüssel zur Entschlüsselung
E = Chiffrieralgorithmus
D = Dechiffrieralgorithmus
C = Verschlüsselte Nachricht
Die verschlüsselte Nachricht
C erhält man, indem man die Nachricht M mit Hilfe des
Chiffrieralgorithmus E und des Schlüssels zur Verschlüsselung
Ke bearbeitet.
C = EKe (M)
Die ursprüngliche Nachricht
M erhält man, indem man die verschlüsselte Nachricht
C mit Hilfe des Dechiffrieralgorithmus D und des Schlüssels
zur Entschlüsselung Kd bearbeitet.
M = DKd (C)
D ist die Inverse zu E, weil
folgendes gilt: DKd (C) = DKd ( EKe (M) ) = M
5. Symmetrische Verschlüsselung
(Private-Key-Verfahren)
Bei der symmetrischen Verschlüsselung
sind Ke und Kd identisch, d.h. für das Verschlüsseln
und Entschlüsseln wird der gleiche Schlüssel benutzt.
Dies erfordert, dass der Schlüssel der zweiten Person
zugänglich gemacht werden muss. Falls man mit mehr als
einer Personen verschlüsselte Kommunikation betreiben
möchte, so müssen diese ebenfalls im Besitz des
Schlüssels sein.
Beispiel:
B möchte mit A kommunizieren. Hierzu ist es nötig,
dass A seinen Schlüssel B zukommen lässt. B verschlüsselt
seine Nachrichten an A mit dem Schlüssel K von A. A kann
mit seinem Schlüssel K die Nachricht entschlüsseln.
Hier wird deutlich, dass der Schlüssel K nicht über
einen unverschlüsselten Kanal übertragen werden
darf.
Die Schlüsselverwaltung
ist ein Hauptproblem der symmetrischen Verschlüsselung.
Als Schlüsselverwaltung bezeichnet man das Erzeugen,
Übertragen und das Speichern von Schlüsseln.
Ein Beispiel für ein symmetrischen
Verfahren ist DES (Data Encryption Standard).
6. Asymmetrische Verschlüsselung
(Public-Key-Verfahren)
Wenn unterschiedliche Schlüssel
Ke und Kd benutzt werden, so spricht man von asymmetrischer
Verschlüsselung. Kd und Ke weisen gleichartige Eigenschaften
auf. Dies bedeutet, dass die mit einem Schlüssel verschlüsselte
Nachricht nur mit dem zugehörigen zweiten Schlüssel
entschlüsselt werden kann.
Beispiel:
B möchte mit A kommunizieren. A hat zwei Schlüssel,
nämlich einen privaten Kpriv und eine öffentlichen
Schlüssel Kpub. Den privaten Schlüssel behält
A bei sich, den öffentlichen Schlüssel veröffentlicht
A oder kann ihn an B schicken, dies sogar im Klartext über
einen unverschlüsselten Kanal. B verschlüsselt mit
dem öffentlichen Schlüssel von A die Nachricht an
A. Nur A ist mit seinem privaten Schlüssel in der Lage
die Nachricht zu entschlüsseln.
Ein Beispiel für ein asymmetrisches
Verfahren ist RSA.
7. Hash Verfahren bzw. Hash
Algorithmus
Ein Hash Algorithmus H bildet
eine beliebige lange Binärfolge B auf eine eindeutigen
Hashwert F ab. F wird auch als Fingerabdruck (engl. : Digital
Fingerprint) bezeichnet.
Der Hash Algorithmus muss eine Einweg-Funktion sein, d.h.
es darf von dem Hashwert F nicht auf die Eingabe B geschlossen
werden.
H muss immer den selben Hashwert
F liefern. Falls auch nur ein Bit der Binärfolge geändert
wird, so muss H einen komplett anderen Hashwert F liefern.
Deshalb muss der Hash Algorithmus so konstruiert sein, dass
sämtliche Bits der Binärfolge B in den Hashwert
F einfliessen.
Die Wahrscheinlichkeit, dass
zwei unterschiedliche B den selben Hashwert F liefert, sollte
so niedrig wie möglich sein. Falls unterschiedliche B
das selbe F liefern, so spricht man von einer Kollision. Ganz
vermeiden lässt sich das natürlich nicht, weil der
Hash Algorithmus immer eine "Verdichtung" darstellt.
Falls ein Hash Algorithmus z.B. einen 16-Bit Hashwert F liefert,
so liegt die Wahrscheinlichkeit bei 1 zu 65000, dass es zu
einer Kollision kommt. Wählt man allerdings einen 128-Bit
Hashwert, so kann man relativ sicher sein, dass es zu keiner
Kollision kommt.
Der Hash Algorithmus MD5 liefert
z.B. aus einer beliebigen Binärfolge einen 128-Bit Hashwert.
8. Digitale Unterschriften
mit symmetrischer Verschlüsselung
A möchte an B ein digital
signiertes Dokument zusenden. Es sind folgende Schritte notwendig.
1. Das Dokument wird erstellt.
2. Berechnung des Hashwertes für das zu signierende Dokument.
3. Verschlüsselung des Hashwertes mit dem Schlüssel
K.
4. Der Hashwert wird dem Dokument angefügt und an Empfänger
B gesendet.
B empfängt das signierte Dokument. Bei B sind folgende
Schritte notwendig.
1. Das Dokument mit dem angehängten
Hashwert wird empfangen.
2. Trennen von Hashwert und Dokument
3. B berechnet mit dem gleichen Algorithmus einen Hashwert
des Dokuments.
4. Der verschlüsselte Hashwert des Dokuments wird mit
dem Schlüssel K enschlüsselt.
5. B vergleicht den selbst errechneten Hashwert mit dem entschlüsselten
Hashwert von A.
Falls das Dokument unterwegs von (A zu B) manipuliert wurde,
so kann B das herausfinden. Beim Vergleich der Hashwerte merkt
B, dass das Dokument verändert wurde. Die Hashwerte wären
nicht identisch. Die Unverfälschtheit (Integrität)
eines signierten Dokumentes kann also mit der symmetrischen
Verschlüsselung geprüft werden.
Wie sieht es mit der Urheberschaft (Authentizität) eines
Dokuments aus? Kann B gegenüber einem unabhängigen
Dritten beweisen, dass A der Urherber des signierten Dokuments
ist? Nein, da B selbst in Besitz des Schlüssels K ist,
könnte B selbst den Hashwert bilden und ihn mit dem Schlüssel
K verschlüsseln. Sämtliche Schritte, die A gemacht
hat, können von B ebenfalls gemacht werden.
9. Digitale Unterschriften
mit asymmetrischer Verschlüsselung
A möchte an B ein digital
signiertes Dokument zusenden. Es sind folgende Schritte notwendig.
1. Das Dokument wird erstellt.
2. Berechnung des Hashwertes für das zu signierende Dokument.
3. Verschlüsselung des Hashwertes mit dem privaten Schlüssel
Kpriv.
4. Der Hashwert wird dem Dokument angefügt und an Empfänger
B gesendet.
1. Das Dokument mit dem angehängten Hashwert wird empfangen.
2. Trennen von Hashwert und Dokument
3. B berechnet mit dem gleichen Algorithmus einen Hashwert
des Dokuments.
4. Der verschlüsselte Hashwert des Dokuments wird mit
dem öffentlichen Schlüssel Kpub von A entschlüsselt.
5. B vergleicht den selbst errechneten Hashwert mit dem entschlüsselten
Hashwert von A.
Falls das Dokument unterwegs von (A zu B) manipuliert wurde,
so kann das festgestellt werden. Beim Vergleich der Hashwerte
merkt B, dass das Dokument verändert wurde. Die Unverfälschtheit
(Integrität) eines signierten Dokumentes kann mit der
asymmetrischen Verschlüsselung geprüft werden.
Auch die Urheberschaft (Authentizität) des Dokuments
kann gegenüber einem Dritten nachgewiesen werden. Denn
nur A, der in Kenntnis seines privaten Schlüssels Kpriv
ist, kann den Hashwert verschlüsselt haben. Falls mit
Kpub der Hashwert entschlüsselt werden kann, ist das
ein Nachweis der Urheberschaft von A. B kann keinen Hashwert
erzeugen und mit dem Schlüssel Kpub verschlüsseln,
denn er lässt sich mit dem Kpub nicht öffnen. Nur
das, was mit Kpub verschlüsselt wurde lässt sich
mit Kpriv öffnen und umgekehrt.
A. Quellen
[1] Skript Grundlagen Verteilte
Systeme; Prof. Dr. Kurt Rothermel - Abteilung Verteilte Systeme
an der Universität Stuttgart
[2] Verteilte Systeme:
Konzepte und Design; Autor: George Coulouris / Jean Dollimore
/ Tim Kindberg; ISBN: 3-8273-7022-1
|