Konstruktion CPA-sicherer Verschlüsselung
Algorithmus VerschlüsselungΠB
SeiF eine längenerhaltende, schlüsselabhängige Funktion aufnBits.
Wir definierenΠB = (Gen,Enc,Dec)für Nachrichtenraum M={0,1}n.
1 Gen:Wählek ∈R {0,1}n.
2 Enc:Fürm∈ {0,1}nwähler ∈R {0,1}nund berechne c := (r,Fk(r)⊕m).
3 Dec:Fürc = (c1,c2)∈ {0,1}n× {0,1}n berechne m:=Fk(c1)⊕c2.
Sicherheit von Π
BSatzSicherheit vonΠB
SeiF eine Pseudozufallsfunktion. Dann istΠBCPA-sicher.
Intuition:
Fk(r)ist nicht unterscheidbar vonn-Bit Zufallsstring.
D.h. in der zweiten Komponente ist die Verteilung ununterscheidbar von einem One-Time Pad.
Vorsicht: Benötigen, dassr nicht wiederverwendet wird.
Beweis:
SeiAein CPA-Angreifer mit Vorteil(n).
Konstruieren mittelsAeinen UnterscheiderDfürFk(·)undf(·).
Unterscheider D
Algorithmus UnterscheiderD
EINGABE: 1n,O:{0,1}n← {0,1}n(mitO=Fk(·)oderO=f(·))
1 Beantworte VerschlüsselungsanfragenEnck(m0i)vonAwie folgt:
Wähleri ∈R {0,1}nund sende(ri,O(ri)⊕m)anA.
2 Beantworte Challenge(m0,m1)vonAwie folgt:
Wähler ∈R{0,1}n,b∈R{0,1}und sende(r,O(r)⊕mb)anA.
3 Erhalte nach weiteren Verschlüsselsanfragen vonABitb0. AUSGABE:=
(1 fallsb0 =b, Interpretation:O=Fk(·) 0 sonst, Interpretation:O=f(·) .
Fall 1:O=Fk(·), d.h. wir verwenden eine Pseudozufallsfunktion.
Dann ist die Verteilung vonAidentisch zuΠB. Damit gilt Ws[DFk(·)(1n) =1] =Ws[PrivKA,Πcpa
B(n) =1] = 12+(n).
Unterscheider D
1n ri
O(ri)
r O(r)
Ausgabe
UnterscheiderD
ri∈R{0,1}n c0i= (ri,O(ri)⊕m0i)
r∈R{0,1}n b∈R{0,1}
c= (r,O(r)⊕mb)
Ausgabe:
(1 ifb=b0 0 else
1n
m0i c0i
(m0, m1) c
m0i c0i
b0
A
m0i ∈ M f¨uri= 1, . . . , q
m0, m1∈ M
b0∈ {0,1}
Verwenden einer echten Zufallsfunktion
Fall 2:O=f(·), d.h. wir verwenden eine echte Zufallsfunktion.
SeiΠ0 das ProtokollΠB unter Verwendung vonf(·)stattFk(·).
SeiRepeatdas Ereignis, dassr in einer der Verschlüsselungs- anfragen verwendet wurde.
Für alle AngreiferAgiltWs[PrivKA,Πcpa0(n) =1]
= Ws[PrivKA,Πcpa0(n) =1∧Repeat] +Ws[PrivKA,Πcpa0(n) =1∧Repeat]
≤ Ws[Repeat] +Ws[PrivKA,Πcpa0(n) =1|Repeat]
Ein ppt AngreiferAstelle insgesamt polynomiell viele Anfragen.
Seiq(n)die Anzahl der Anfragen. Dann gilt Ws[Repeat] = Ws[r =r1∨. . .∨r =rq]
≤ Ws[r =r1] +. . .+Ws[r =rq] = 2qn =negl(n).
Fall 2:(Fortsetzung)
Aufgrund der perfekten Sicherheit des One-Time Pads gilt Ws[PrivKA,Πcpa0(n) =1|Repeat] = 12.
Es folgtWs[Df(·)(1n) =1] =Ws[PrivKA,Πcpa0(n) =1]≤ 12+negl(n).
Aus der Pseudozufälligkeit vonF folgt insgesamt negl(n)≥
Ws[DFk(·)(1n) =1]
| {z }
1 2+(n)
−Ws[Df(·)(1n) =1]
| {z }
≤12+negl(n)
. Es folgt≤negl(n)für alle polynomiellen AngreiferA.
Nachrichten beliebiger Länge
Algorithmus VerschlüsselungΠ0B
SeiF eine längenerhaltende, schlüsselabhängige Funktion aufnBits.
Wir definierenΠ0B = (Gen,Enc,Dec)für Nachrichtenraum M={0,1}∗.
1 Gen:Wählek ∈R {0,1}n.
2 Enc:Fürm=m1. . .m` mitmi ∈ {0,1}nwähler1, . . .r`mit ri ∈R {0,1}nund berechne
c := (r1, . . . ,r`,Fk(r1)⊕m1, . . . ,Fk(r`)⊕m`).
3 Dec:Fürc = (c1, ...,c2`)∈({0,1}n)2` berechne m:=Fk(c1)⊕c`+1. . .Fk(c`)⊕Fk(c2`).
CPA-Sicherheit von Π
0BSatzCPA-Sicherheit vonΠ0B
SeiF eine Pseudozufallsfunktion. Dann istΠ0BCPA-sicher.
Beweis:
Aus der CPA-Sicherheit vonΠB folgt die mult-CPA Sicherheit von ΠBund damit die CPA-Sicherheit vonΠ0B.
Nachteil:Chiffretexte sind doppelt so lang wie Klartexte (Nachrichtenexpansion 2).
Pseudozufallspermutationen
Definitionschlüsselabhängige Permutation
SeienF,F−1pt Algorithmen.F heißtschlüsselabhängige Permutation aufnBits falls
1 F berechnet eine Funktion{0,1}m× {0,1}n → {0,1}n, so dass für allek ∈ {0,1}m die FunktionFk(·)eine Bijektion ist.
2 Fk−1(·)berechnet die Umkehrfunktion vonFk(·).
DefinitionPseudozufallspermutation
SeiF eine schlüsselabhängige Permutation aufnBits. Wir bezeichnen F alsPseudozufallspermutation, falls für alle pptDgilt
Ws[DFk(·)(1n) =1]−Ws[Df(·)(1n) =1]
≤negl(n), mitk ∈R {0,1}m undf ∈RPermn, wobeiPermndie Menge aller Permutationen aufnBits ist.
Starke Pseudozufallspermutationen
SatzPseudozufallspermutationen und Pseudozufallsfunktionen Jede Pseudozufallspermutation ist eine Pseudozufallsfunktion.
Beweis:Übung.
DefinitionStarke Pseudozufallspermutation (Blockchiffre)
SeiF eine schlüsselabhängige Permutation aufnBits. Wir bezeichnen F alsstarke Pseudozufallspermutation (Blockchiffre), falls für alle ppt Dgilt
Ws[DFk(·),Fk−1(·)(1n) =1]−Ws[Df(·),f−1(·)(1n) =1]
≤negl(n), mitk ∈R {0,1}n undf ∈RPermn.
Konstruktion von (starken) PRPs
Algorithmus FeistelnetzwerkF(r) mitr Runden EINGABE:n,r ≥0,x ∈ {0,1}n,k ∈({0,1}n)r
1 Seik =k1, . . . ,kr mitki ∈ {0,1}n.
2 Setze(L0||R0) :=x mitL0,R0∈ {0,1}n2.
3 Fori=1 tor
I SetzeLi :=Ri−1undRi :=Li−1⊕Fki(Ri−1).
AUSGABE:Fk(r)(x) := (Lr||Rr)
Invertierung einer Feisteliteration:Ri−1:=Li undLi−1:=Ri⊕Fki(Li).
Fakt
SeiF eine Pseudozufallsfunktion. Dann istF(3)eine Pseudozufallspermutations undF(4)eine starke Pseudozufallspermutation (Blockchiffre).
Blockchiffren als kryptographische Primitive
Anmerkungen:Blockchiffren
Praktische Realisierungen von starken Pseudozufalls- permutationen bezeichnet man alsBlockchiffren.
Wir haben gesehen, dass BlockchiffrenFk(·)zur Konstruktion CPA-sicherer Verschlüsselung verwendet werden können.
Vorsicht: Blockchiffren selbst sind keine sicheren Verschlüs- selungsverfahren.
c :=Fk(m)ist eine deterministische, unsichere Verschlüsselung.
D.h. wir benötigen einen Randomisierungsprozess bei Enc.
Bsp:DES (Data Encryption Standard, 1976) F :{0,1}56× {0,1}64 → {0,1}64
Problem des zu kleinen Schlüsselraums
bester bekannter KPA Angriff mit 243 Klartexten AES (Advanced Encryption Standard, 2002)
{0,1}k× {0,1}128 → {0,1}128 ∈ {128, 256}
Modes of Operation – Electronic Code Book (ECB)
Ziel:Verschlüsseln von Nachrichtenm=m1. . .m` ∈({0,1}n)` mittels Blockchiffre unter Verwendung kleiner Nachrichtenexpansion.
Algorithmus Electronic Code Book (ECB) Modus
1 Enc:c := (Fk(m1), . . . ,Fk(m`))
2 Dec:m:=Fk−1(c1), . . . ,Fk−1(m`)
Nachteil:
Enc ist deterministisch, d.h. ECB ist nicht mult-KPA sicher.
Daher sollte der ECB Modus nie verwendet werden.
ECB
m1
Fk
c1
Fk−1
m1
m2
Fk
c2
Fk−1
m2
· · ·
· · ·
· · · m`
Fk
c`
Fk−1
m`
Modes of Operation – Cipher Block Chaining (CBC)
Algorithmus Cipher Block Chaining (CBC) Modus
1 Enc:Wähle Initialisierungsvektorc0:=IV ∈R{0,1}n. Berechne ci :=Fk(ci−1⊕mi) füri =1, . . . , `.
2 Dec:Fürc = (c0,c1, . . . ,c`)berechne
mi :=Fk−1(ci)⊕ci−1 füri =1, . . . , `.
Vorteile:
CPA-Sicherheit von CBC kann gezeigt werden.
Nachrichtenexpansion ist `+1` . Nachteil:
Verschlüsselung muss sequentiell durchgeführt werden.
CBC
IV
m1
Fk
c1
Fk−1
m2
Fk
c2
Fk−1
m`
Fk
c`
Fk−1 . . .