Re: PGP / Diffie-Hellman
14. Okt 2004, 13:57
Einfach ausgedrückt benutzt PGP ein DH Verfahren das schon teilweise zur Schlüsselerzeugungsphase beim Empfänger abgearbeitet wurde.
Stell dir also vor Alice hat bei der Erzeugung ihres PGP-Schlüssels schon den 1. und 2. Schritt durchgefüht und speichert die dafür benutze Primzahl P,z und X == z^a mod P in ihrem öfentlichen Schlüssel. Im privaten Schlüsselteil speichert PGP demzufolge auch a.
Den öffentlichen Schlüssel legt sie auf die PGP Keyring Server, oderverschieckt sie an alle die mit ihre reden wollen.
Wenn Bob nun eine verschlüsselte Nachticht an Alice senden will, dann nimmt sie Alice öffentlichen Schlüssel aus seinem Keyring. Erzeugt ein Zufallwert b, erzeugt sym. Schlüssel mit KBob=X^b mod P, wobei er X,P und z eben aus dem öffetnlichen Schlüssel von Alice lädt. Mit KBob wird nun die nachricht verschlüsselt, und in diese verschlüsselte Nachtricht wird dann noch der Wert Y=z^b mod P angehangen.
Danach kann Bob die Werte KBob und b sicher im Speicher löschen, er benötigt sie nicht mehr.
Alice empfängt die Nachricht und den Wert Y. Sie lädt ihren privaten Schlüssel und lädt a. Sie bereichnet nun den sym. Sessionkey KAlice = Y^a mod P und entschlüsselt die Nachricht mit KAlice == KBob.
1.) Schlüsselerzeugung Alice
- erzeuge oder wähle große Primzahl P >= 2^1024
- erzeuge oder wähle Generator z > 2.
- erzeuge Zufallswert a < P.
- erzeuge vorläufigen Schlüsselteil X = z^a mod P
- speichere P,z und X im öffentlichen Schlüssel
- speichere P,z und a im privaten Schlüssel
- verschicke öffentlichen Schlüssel an alle Leute, eben auch Bob
2.) Bob will EMail an Alic senden
- Bob lädt public Schlüssel von Alice aus seinem Keyring, mit den Werten von P,z und X
- erzeuge zufälliges b < P.
- erzeuge Y = z^b mod P.
- erzeuge Kb = X^b mod P.
- verschlüssele Nachricht mit Kb.
- zerstöre b und Kb.
- sende verschl. Nachricht und Zahl Y als EMail zu Alice
3.) Alice will Bobs EMail lesen
- Alice lädt privaten Schlüssel mit P,z und a
- lädt Y aus EMail
- erzeugt Ka = Y^a mod P == Kb
- entschlüsselt Nachricht mit Ka
- liest Nachricht und zerstöert diese und Ka
Wie man sieht führt Alice schon während ihrer Schlüsselerzeugung einen teilweisen DH Schlüsselaustausch durch. Es dürfte dir klar sein das dies die mögliche Gesamtsicherheit des DH Verfahrens schächt. Denn nun wählt Alice nicht jedesmalu ein zufälliges a -> ergo. X neu aus.
Gruß Hagen
PS: ich hatte noch vergessen zu erwähnen das in der PGP Software meistens die Primzahl P und deren Generator Z hardcodiert gespeichert sind. D.h. diese beiden Werte sind für ALLE PGP Benutzer identisch und müssen demzufolge nicht in den Schlüsseln gespeichert werden. Dies ist denoch sicher, man kann also beim DH Verfahren die Werte P,Z öffentlich verteilen und gemeinsam benutzen.
|