- Cramer–Shoup-Kryptosystem
-
Das Cramer–Shoup-Kryptosystem ist ein von Ronald Cramer und Victor Shoup entwickeltes asymmetrisches Kryptosystem, das als eine Erweiterung des Elgamal-Kryptosystems aufgefasst werden kann.[1] Es war das erste praktikable Verschlüsselungsverfahren, das im Standardmodell (ohne Zufallsorakel) gegen adaptive Chosen-Ciphertext-Angriffe sicher war. Die Sicherheit des Verfahrens beruht auf der Schwierigkeit des Decisional-Diffie-Hellman-Problems.
Inhaltsverzeichnis
Das Verfahren
Wie alle asymmetrischen Verschlüsselungen besteht auch das Cramer-Shoup-Verfahren aus drei Algorithmen.
Schlüsselerzeugung
- Zuerst wählt man eine (hier additiv geschriebene) zyklische Gruppe G von Primordnung q und in dieser zwei Erzeuger g1,g2. Zusätzlich muss noch eine kryptologische Hashfunktion H festgelegt werden. Diese Werte sind öffentliche Parameter und können von mehreren Benutzern gleichzeitig genutzt werden.
- Dann werden als geheimer Schlüssel zufällige gewählt.
- Aus diesen wird der öffentliche Schlüssel berechnet.
Verschlüsselung
Um eine Nachricht mit dem öffentlichen Schlüssel (c,d,h) zu verschlüsseln geht man wie folgt vor:
- Es wird ein zufälliges gewählt.
- e = hrm Das ist die Verschlüsselung der Nachricht wie bei ElGamal.
- α = H(u1,u2,e), wobei H eine universal-one-way Hashfunktion oder eine kollisionsresistente Hashfunktion ist.
- v = crdrα. Dieses Element stellt sicher, dass ein Angreifer nicht Teile des Chiffrats benutzen kann um weitere Chiffrate zu erzeugen und sichert so die für die Sicherheit notwendige Nicht-Verformbarkeit
Das Chiffrat besteht dann aus (u1,u2,e,v).
Entschlüsselung
Um ein Chiffrat (u1,u2,e,v) mit dem geheimen Schlüssel (x1,x2,y1,y2,z) zu entschlüsseln führt man zwei Schritte durch.
- Zuerst berechnet man α = H(u1,u2,e) and überprüft ob . Falls das nicht der Fall ist, wird die Entschlüsselung abgebrochen und eine Fehlermeldung ausgegeben.
- Falls nicht, berechnet man den Klartext .
Korrektheit
Die Korrektheit des Verfahrens folgt aus
- und m = e / hr.
Instanziierung
Als Sicherheitsniveau wählen wir die Standardlänge für generische Anwendungen von 128 bit.[2] Daraus ergibt sich eine Ausgabelänge von 256 bit für die Hashfunktion.[2] SHA-256 kann als kollisionsresistent angenommen werden.[3]
Man braucht eine Gruppe in welcher der diskrete Logarithmus schwierig zu berechnen ist, wie etwa . Dazu wählt man eine Primzahl p mit einer Länge von 3248 bit, so dass die Gruppe eine multiplikative Untergruppe von Primordnung q hat, wobei q eine Länge von 256 bit haben sollte [2]. Das heißt, dass q | (p − 1) gelten muss. Aus der Wahl der Parameter ergibt sich eine Länge von bit für den geheimen Schlüssel, und bit für den öffentlichen Schlüssel. Ein Chiffrat ist bit lang.
Einzelnachweise
- ↑ Ronald Cramer and Victor Shoup: A practical public key cryptosystem provably secure against adaptive chosen ciphertext attack. In: Proceedings of Crypto 1998. 1998, S. 13--25 (http://homepages.cwi.nl/~cramer/papers/cs.ps).
- ↑ a b c European Network of Excellence in Cryptology II (Hrsg.): ECRYPT II Yearly Report on Algorithms and Keysizes (2009–2010). 2010, S. 30–32 (PDF 2,4MB).
- ↑ European Network of Excellence in Cryptology II (Hrsg.): ECRYPT II Yearly Report on Algorithms and Keysizes (2009–2010). 2010, S. 52 (PDF 2,4MB).
Wikimedia Foundation.