Wie funktioniert das jetzt technisch
aus WeltraumWiki, der freien Wissensdatenbank
Disclaimer: Es wird El Gamal betrachtet, weil das bei GPG der Default für's verschlüsseln ist.
Schlüssel erzeugen
- Nutzer erzeugt Zufall
- ElGamal braucht Zufallszahl als Input (siehe Rosa)
- GPG setzt ElGamal ein, um aus Zufallszahl (und weiterem, siehe Rosa) den privaten und öffentlichen Schlüssel zu erzeugen (zwei Zahlen kodiert als Folgen von Nullen und Einsen)
- aber wie entsteht der Schlüsselstring, den man sich als ASCII angucken kann?
String verschlüsseln
- Man sagt gpg --encrypt String: Was tut GPG?
Beispiel:
- erstmal Zeichen in Zahlen umwandeln: <blank> = 99, A = 10, B = 11, ..., Z = 35
- “HALLO” wäre dann 1710212124.
- falls nötig, teilt man den String in mehrere kleinere Blöcke: 17142 12124
- Der String als Zahl, eine Zufallszahl und der öffentliche Schlüssel der Empfängerin werden gebraucht als Input für den Verschlüsselungsalgorithmus (siehe Rosa)
- GPG erzeugt eine Zufallszahl als "Session Key" und verschlüsselt diesen mit dem öffentlichen Schlüssel der Empfängerin
2. The sending OpenPGP generates a random number to be used as a
session key for this message only.
3. The session key is encrypted using each recipient's public key.
These "encrypted session keys" start the message.
4. The sending OpenPGP encrypts the message using the session key,
which forms the remainder of the message. Note that the message
is also usually compressed.
5. The receiving OpenPGP decrypts the session key using the
recipient's private key.
6. The receiving OpenPGP decrypts the message using the session key.
If the message was compressed, it will be decompressed.
- GPG geht so: (siehe [1] (http://en.wikipedia.org/wiki/OpenPGP)):
Verschlüsseln: Mit öffentlichem Schlüssel der Empfängerin wird ein geheimer session-key verschlüsselt. Beim Entschlüsseln wird session-key entschlüsselt, und der dann verwendet, um die Nachricht zu entschlüsseln --> VIEL SCHNELLER als nur public-key!
Signieren: Erst wird Message gehasht, der Hashwert wird dann mit RSA/DSA und dem private key gesigned.
- Ich glaub, wenn mans wirklich ganz genau wissen will, muß man RFCs lesen, wollen wir das (momentan :) )?
hier weitergucken (http://de.wikipedia.org/wiki/Elgamal-Kryptosystem)
![[Hauptseite]](/cryptowiki/stylesheets/images/wiki.png)