Nicht nur können Verschlüsselungsverfahren haben Zufälligkeit, aber in einigen Fällen (zB Public-Key - Verschlüsselung), sie müssen randomisiert werden. Dies ist kein Problem, da ein korrektes Verschlüsselungsschema erforderlich ist, dh für jede Nachricht und jeden Schlüssel , der
über die Zufälligkeit .mk
Pr[ DEC( ENC(k,m,R) )=m]=1
R
Der Grund , dass die öffentliche Schlüsselschemata zufällig sein muss ergibt sich aus der Art , wie wir Sicherheit definieren: Wir haben nicht den Geheimtext wünschen Leck jegliche Informationen über die verschlüsselte Nachricht. Das klassische Beispiel ist das folgende. Angenommen, ist der öffentliche bzw. der geheime Schlüssel, und der Gegner fängt eine verschlüsselte Nachricht die an eine Einheit im Feld gesendet wird. Der Gegner weiß, dass die Nachricht entweder "ATTACK" oder "RETREAT" ist, weiß aber nicht, welche. Eine Sache, die der Gegner tun kann, ist, beide Nachrichten mit dem öffentlichen zu verschlüsseln . Lassen Sie und . If(pk,sk)cpkcA=ENCpk("ATTACK ")cR=ENCpk("RETREAT")ENCist deterministisch, kann der Gegner die Nachricht mit Sicherheit herausfinden, indem er mit und .ccAcR
Die Art und Weise, wie dieser Begriff formal definiert wird, wird als semantische Sicherheit bezeichnet :
Ein Verschlüsselungsschema ist semantisch sicher, wenn ein Gegner das folgende Spiel nicht mit einer Wahrscheinlichkeit von deutlich mehr als :A1/2
- Ein Herausforderer generiert Schlüssel und sendet den öffentlichen Schlüssel an den Gegner.C(pk,sk)pk
- A wählt zwei Nachrichten gleicher Länge und und gibt beide an .m0m1C
- C wählt gleichmäßig ein Bit und sendet .b∈{0,1}ENC(mb)
- A muss angeben, welche Nachricht verschlüsselt wurde: oder , er muss das Bit ausgeben .m0m1b
(Ich lasse den Sicherheitsparameter weg, der für die Definition von "vernachlässigbar" oder "erkennbar" entscheidend ist. Wir müssen davon ausgehen, dass die Generierung der Schlüssel von abhängt und dass der Vorteil oben liegt ist in vernachlässigbar , dh kleiner als )
κκA1/2κκ−ω(1)