ECB – Electronic Code Book Mode
Eigenschaften:
•mi= mjdannci= cj, also Regelm ¨aßigkeiten und Wiederholungen
¨ubertragen sich.
•Unabh ¨angigeci, ¨Ubertragungsfehler auf Block beschr ¨ankt.
Beispiel: Bei Bildern bleiben h ¨aufig Konturen erkennbar!
Probleme:
•Chiffretext zu Klartext am Anfang/Ende von Nachrichten extrahierbar.
•Block replay: Mischen/Einf ¨ugen von bekanntem Chiffretext m ¨oglich.
Anwendung: Besser nicht (u.U. Verschl ¨usselung von Schl ¨usseln).
3 26. Oktober 2006
Padding
Klartextmin Bl ¨ocke der passenden Gr ¨oße aufteilenm = m1m2· · ·mt. Padding=Letzten Block durch (zuf ¨allige) Bits erg ¨anzen.
Vom Standpunkt der Kryptographie ist egal, wie man erg ¨anzt (da jeder Klartext sicher verschl ¨usselt werden soll).
Warum nicht nur Nullen anh ¨angen?
Ans ¨atze:
•Eine Eins und soviele Nullen anh ¨angen, wie n ¨otig.
•Zuf ¨allige Bytes und Anzahl zu entfernender Bytes hinten anh ¨angen.
Betriebsarten von Blockchiffren
Blockl ¨ange ist fest und klein. Wie große Mengen an Daten verschl ¨usseln?
Blockchiffre geeignet verwenden:
•ECB Mode (Electronic Code Book)
•CBC Mode (Cipher Block Chaining)
•CFB Mode (Cipher Feedback)
•OFB Mode (Output Feedback)
•CTR Mode (Counter Mode)
Diese Betriebsarten (ohne CTR) wurden urspr ¨unglich f ¨ur DES entwickelt, k ¨onnen aber mit jedem Blockchiffre verwendet werden.
Sind standardisiert.
1 26. Oktober 2006
ECB – Electronic Code Book Mode
Einfachste Herangehensweise.
Klartextmin Bl ¨ocke der passenden Gr ¨oße aufteilenm = m1m2· · ·mt. Letzten Block durch (zuf ¨allige) Bits erg ¨anzen, falls n ¨otig.
Verschl ¨usselung durchc = c1c2· · ·ct mitci=E(k,mi).
Entschl ¨usseln durchmi=D(k,ci).
Bild unverschl ¨ usselt
(ausgeliehen von N. Smart, F. Vercauteren)
7 26. Oktober 2006
Bild verschl ¨ usselt im ECB Mode CBC – Cipher Block Chaining Mode
Klartextmin Bl ¨ocke der passenden Gr ¨oße aufteilenm = m1m2· · ·mt. Letzten Block durch (zuf ¨allige) Bits erg ¨anzen, falls n ¨otig.
Verschl ¨usselung durchc = (c0)c1c2· · ·ct mitc0= IV und ci=E(k,mi⊕ci−1)f ¨uri≥1.
Entschl ¨usseln durch
mi=D(k,ci)⊕ci−1f ¨uri≥1.
IV ist zuf ¨allig gew ¨ahlt, oder wird ausmerzeugt (so daß es nur (!) f ¨urmvorkommt, z.B. die Verschl ¨usselung einer eindeutigen Nachrichtennummer).
Braucht nicht geheim gehalten zu werden.
5 26. Oktober 2006
CBC – Cipher Block Chaining Mode
Eigenschaften:
•Kontextabh ¨angig:cih ¨angt voncjmit j<iab.
•Regelm ¨aßigkeiten und Wiederholungen werden (durch unterschiedliche IV) verwischt.
•Fehler incibetrifft nurmiund lokalmi+1.
•Block replay nicht m ¨oglich.
Anwendung: Ist der Standardmodus. Verschl ¨usseln langer Nachrichten.
OFB – Output Feedback Mode
Eigenschaften:
•Entschl ¨usseln=Verschl ¨usseln, nurE benutzt.
•Kein Padding notwendig.
•Fehler incibleiben lokal.
•cih ¨angt nicht voncjf ¨ur j<iab.
•Vergleichbar zum One-Time Pad.
Probleme:
•Gefahr: Gleiches IV, gleicheki(!).
•kiperiodisch.
Anwendung:
•Satellitenkommunikation (wegen der Fehler).
•Filesysteme/Datenbanken wegen wahlfreiem Zugriff.
11 26. Oktober 2006
CFB – Cipher Feedback Mode
Klartextmin Bl ¨ocke der passenden Gr ¨oße aufteilenm = m1m2· · ·mt. Verschl ¨usselung durchc = c1c2· · ·ct mit
c0= IV undki=E(k,ci−1)f ¨ur1≤i≤t, ci= mi⊕kif ¨ur1≤i≤t.
Entschl ¨usseln durch
c0= IV undki=E(k,ci−1)f ¨ur1≤i≤t, mi= ci⊕kif ¨ur1≤i≤t.
IV wird wie bei CBC benutzt. Beim Ver- und Entschl ¨usseln vonmi bzw.cikann man auch in geeigneter Weise nur einen Teil vonki verwenden.
Bild verschl ¨ usselt im CBC Mode
9 26. Oktober 2006
OFB – Output Feedback Mode
Klartextmin Bl ¨ocke der passenden Gr ¨oße aufteilenm = m1m2· · ·mt. Verschl ¨usselung durchc = c1c2· · ·ct mit
k0= IV undki=E(k,ki−1)f ¨ur1≤i≤t, ci= mi⊕kif ¨ur1≤i≤t.
Entschl ¨usseln durch
k0= IV undki=E(k,ki−1)f ¨ur1≤i≤t, mi= ci⊕kif ¨ur1≤i≤t.
IV wird wie bei CBC benutzt. Beim Ver- und Entschl ¨usseln vonmi bzw.cikann man auch nur einen Teil vonkiverwenden, wenn die Blockl ¨ange kleiner als die Schl ¨ussell ¨ange ist.
CTR – Counter Mode
CTR hat nach [FerSch] im wesentlichen nur Vorteile gegen ¨uber den anderen Modes.
Eigenschaften:
•NurE erforderlich.
•Kein Padding notwendig.
•Parallelisierbar.
•Wahlfreier Zugriff.
•Fehler incibleiben lokal.
•Vergleichbar zum One-Time Pad.
Robustheit: Die Nonce muß pro verschl ¨usselter Nachrichtmeindeutig sein. Diesbez ¨uglich ist CBC robuster als CTR.
Ist standardisiert f ¨ur AES.
15 26. Oktober 2006
Bemerkungen
Bit twiddling Angriffe: ¨Andert man Bits inci, so ¨andern sich auch die entsprechenden Bits inmi. Bei CBC und CFB wird dar ¨uberhinausmi+1 zum Großteil gest ¨ort.
In den Modes daher nach M ¨oglichkeit chiffrierte Pr ¨ufsummen (MAC) verwenden.
CBC:ci= cj⇔mi⊕ci−1= mj⊕cj−1⇔mi⊕mj= ci−1⊕cj−1. CTR: nurmi⊕mj6= ci⊕cjzu erfahren.
Birthday Angriff bei kleiner Blockl ¨ange: Ist die Blockl ¨ange2n, so kann man nach ca.2n/2verschl ¨usselten Bl ¨ocken erwarten, daß zwei Chiffretexte gleich sind. Daher Anzahl mit gleichem Schl ¨ussel verschl ¨usselter Bl ¨ocke auf z.B.2n/4beschr ¨anken.
CFB – Cipher Feedback Mode
Eigenschaften:
•Entschl ¨usseln=Verschl ¨usseln, nurE benutzt.
•Kein Padding notwendig.
•cih ¨angt voncjf ¨ur j<iab.
•Fehler incierzeugt Fehler lokal inmiund inmi+1. Anwendung:
•St ¨uckweise anfallende kleinere Datenmengen (Str ¨ome).
13 26. Oktober 2006
CTR – Counter Mode
Klartextmin Bl ¨ocke der passenden Gr ¨oße aufteilenm = m1m2· · ·mt. Verschl ¨usselung durchc = c1c2· · ·ct mit
ki=E(k,Nonce⊕i)f ¨ur1≤i≤t, ci= mi⊕kif ¨ur1≤i≤t.
Entschl ¨usseln durch
ki=E(k,Nonce⊕i)f ¨ur1≤i≤t, mi= ci⊕kif ¨ur1≤i≤t.
Nonce ist eine
”Number to be used once“ (!) und wird ¨ahnlich wie IV verwendet.
Mehrfachverschl ¨ usselung
Dreifache Verschl ¨usselung (EDE):
c =E(k3,D(k2,E(k1,m))).
m =D(k1,E(k2,D(k3,c))).
k1= k3,k2unabh ¨angig und zuf ¨allig:
CPA-MITM Angriff in LaufzeitO(#K)und SpeicherO(#K).
Vermutlich trotzdem n ¨utzlich, wenn Anzahl Verschl ¨usselungen beschr ¨ankt.
k1,k2,k3 unabh ¨angig und zuf ¨allig:
Known Plaintext MITM Angriff in LaufzeitO(#K2)und SpeicherO(#K).
Modus erlaubt R ¨uckw ¨artskompatibilit ¨at, wennk1= k2.
19 26. Oktober 2006
Whitening
c = k3⊕E(k2,m⊕k1).
Sicherheit maximalO(#K2)unter Known-Plaintext Angriff:
1. Seienci= k3⊕E(k2,mi⊕k1),cj= k3⊕E(k2,mj⊕k1).
2. Dann giltci⊕cj=E(k2,mi⊕k1)⊕E(k2,mj⊕k1).
3. Definieredc = ci⊕cj,dm = mi⊕mj,m = mi⊕k1. 4. Betrachte Gleichungdc =E(x,y)⊕E(x,y⊕dm).
5. Nach#K2Tests ca.#KL ¨osungenx,ygefunden, darunterx = k2
undy = mi⊕k1odery = mj⊕k1.
6. Dannk1= y⊕miundk3= ci⊕E(x,y)oderk1= y⊕mjund k3= cj⊕E(x,y). M ¨oglichkeiten an weiterenci,mitesten.
Schl ¨ussell ¨ange aufr log2(#K)vergr ¨oßern mit Sicherheitszuwachs auf
#Krim allgemeinen schwierig (sonst mitn = 1anwenden, liefert ...)
Mehrfachverschl ¨ usselung
Doppelte Verschl ¨usselung:
c =E(k2,E(k1,m)).
m =D(k1,D(k2,c)).
Es gelte#K = 2n.
Sicherheit bez ¨uglich exhaustive search22nstatt vorher2n(?).
Problem, wennE(k2,E(k1,·)) =E(k3,·)f ¨ur eink3.
( Die PermutationenDES(k,·)erzeugen eine Untergruppe von S({0,1}56)der Ordnung≥102499).
Unter Known-Plaintext Angriff Sicherheit nur2n+1statt22n:
Meet-in-the-middle Angriff. Daher wird doppelte Verschl ¨usselung im allgemeinen nicht verwendet.
17 26. Oktober 2006
Meet-in-the-middle Angriff
Es gelte#K = #M = #C.
Gegeben/bekannt:c1,c2,m1,m2mitc1=E(k2,E(k1,m1)), c2=E(k2,E(k1,m2)).
1. Berechne und speichereE(k′
1,m1)f ¨ur allek′1∈K.
2. BerechneD(k′
2,c1)f ¨ur allek′2∈K.
3. F ¨urD(k′
2,c1) =E(k′
1,m1)testec2=E(k′
2,E(k′
1,m2)).
4. Liefert eine kleine MengeZvon(k′1,k′2)mit(k1,k2)∈Z.
( Gr ¨oße vonZidealerweise erwartungsgem ¨aß gleich1. ) Ben ¨otigt Speicher der Gr ¨oßeO(#K), Laufzeit ebenfallsO(#K).
Abk ¨urzung: MITM