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.
3 22. April 2004
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 anfallenden kleinere Datenmengen (Str ¨ome).
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.
1 22. April 2004
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.
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⊕cj
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 verschl ¨usselter Bl ¨ocke auf z.B.
2n/4beschr ¨anken.
7 22. April 2004
Mehrfachverschl ¨usselung
Doppelte Verschl ¨usselung:
c=E(k2,E(k1,m)).
m=D(k1,D(k2,c)).
#K= 2n.
Sicherheit bez ¨uglich exhaustive search22n statt 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.
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.
5 22. April 2004
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.
Whitening
c=k3⊕E(k2,m⊕k1).
Sicherheit maximal22n: 1.ci=k3⊕E(k2,mi⊕k1).
2.ci⊕cj=E(k2,mi⊕k1)⊕E(k2,mj⊕k1).
3.dc=ci⊕cj,dm=mi⊕mj,m=mi⊕k1. 4.dc=E(k2,m)⊕E(k2,m⊕dm).
5.22nTests und ca.2nL ¨osungenk2,m.
6. Ausk2,mm ¨ogliche Schl ¨usselk1,k3ausrechnen, an weiterenci,mi testen.
Schl ¨ussell ¨ange aufrnvergr ¨oßern mit Sicherheitszuwachs auf2rnim allgemeinen schwierig (sonst mitn= 1anwenden ...)
11 22. April 2004
Blockchiffren
Designziele:
•Konfusion, Verschleiern des Zusammenhangs zwischen Klar- und Chiffretext.
•Diffusion, Verteilen der Information im Klartext ¨uber den Chiffretext.
•Lawineneffekt, jedes Bit im Chiffretext soll von jedem Bit des Klartexts und des Schl ¨ussels abh ¨angen.
•Noch mehr: Jedes Bit des Chiffretext soll sich mit
Wahrscheinlichkeit1/2 ¨andern, wenn irgendein Bit des Klartexts oder des Schl ¨ussels ge ¨andert wird.
⇒soll sich wie eine zuf ¨allige Funktion verhalten.
Meet-in-the-middle Angriff
Bekannt:c1=E(k2,E(k1,m1)),c2=E(k2,E(k1,m2)).
1. Berechne und speichereE(k0
1,m1)f ¨ur allek01∈K.
2. BerechneD(k0
2,c1)f ¨ur allek02∈K.
3. F ¨urD(k02,c1) =E(k01,m1)testec2=E(k02,E(k01,m2)).
4. Ist der Test ok, dann mit großer Wahrscheinlichkeitk1=k01und k2=k20.
Ben ¨otigt Speicher der Gr ¨oße#K, Laufzeit ungef ¨ahrr#K,rkonstant.
Abk ¨urzung: MITM
9 22. April 2004
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 Laufzeit2n−1und Speicher2n.
Vermutlich trotzdem n ¨utzlich, wenn Anzahl Verschl ¨usselungen beschr ¨ankt.
k1,k2,k3 unabh ¨angig und zuf ¨allig:
Known Plaintext MITM Angriff in Laufzeit22nund Speicher2n. Modus erlaubt R ¨uckw ¨artskompatibilit ¨at, wennk1=k2.
Substitutions-Permutationsnetzwerke
Block und Schl ¨ussel mit XOR verkn ¨upfen:
•mi=mi−1⊕ki.
Bl ¨ocke in mehrere Teilbl ¨ocke aufteilen:
•mi= (mi,j)j.
Auf die Teilbl ¨ocke eine Substitutionschiffre anwenden:
•(πS(mi,j))j.
Die Bits der zusammengefaßten Teilbl ¨ocke permutieren:
•mi+1=πP((πS(mi,j))j).
( Die PermutationπPwird in der letzten Runde aus Symmetriegr ¨unden nicht angewendet, daf ¨urmrundkr+1mit XOR verbunden. )
15 22. April 2004
Data Encryption Standard - DES
•Entwickelt um 1977
•Ist de-facto der internationale Standard f ¨ur Bankensicherheit.
•Vermutlich der am meisten analysierte kryptographische Algorithmus.
•Kurze Geschichte:
– Ausschreibung f ¨ur ein Verfahren durch NBS (heute NIST).
– Vorg ¨anger Lucifer bei IBM entwickelt (Feistel, Coppersmith).
– Untersuchung durch NSA und Ver ¨anderung derS-Boxen.
– Geheimhaltung der Design-Kriterien bis in die 90er (Hintert ¨ur-Spekulationen).
– 1990 Entdeckung der differentiellen Kryptanalyse, war NSA schon damals bekannt ...
Blockchiffren Konstruktion
Der Eingabeblock wird durch mehrfache Anwendung einer
Rundenfunktion bearbeitet. F ¨ur jede Runde wird ein Rundenschl ¨ussel anhand eines Schl ¨usselschemas erzeugt.
Die Rundenfunktionen stellt im allgemeinen kein sicheres
Verschl ¨usselungsverfahren dar, erst die mehrfache Anwendung ergibt die Sicherheit.
Bei den Rundenfunktionen werden im wesentlichen Feistel- und Substitutions-Permutationsnetzwerke unterschieden.
Diei-te Runde:mi=g(mi−1,ki).
13 22. April 2004
Feistel Netzwerke
Bl ¨ocke in zwei gleiche H ¨alften auteilen:
•mi= (Li,Ri).
Verschl ¨usseln:
•Li=Ri−1
•Ri=Li−1⊕f(Ri−1,ki).
Entschl ¨usseln:
•Li−1=Ri⊕f(Li,ki).
•Ri−1=Li.
f muß nicht injektiv sein.
DES
Diekisind 48 Bit Schl ¨ussel und setzen sich aus einer Auswahl permutierter Bits auskzusammen:
1.kwird in zwei 28 Bit Bl ¨ocke aufgeteilt.
2. Diese werden in Anh ¨angigkeit der Rundenanzahl rotiert.
3. Aus den 56 Bit werden 48 gem ¨aß einer festen Regel ausgew ¨ahlt.
Schwache Schl ¨ussel:
•Linke und rechte H ¨alfte vonknur Einsen oder Nullen.
Keine weiteren schwachen Schl ¨ussel bekannt.
Es gibt noch 6 semi-schwache Schl ¨usselpaare(k,l)mitE(k,·) =E(l,·).
19 22. April 2004
DES
Sicherheit von DES:
•Probleme im wesentlichen nur wegen zu kleiner Schl ¨ussell ¨ange.
•Stark gegen differentielle Kryptanalyse.
•Differentielle und lineare Kryptanalyse brauchen>240Klartexte, nicht praktikabel.
•Brute-Force (256Schritte) praktikabel.
Hardware:
•Deep Crack (1998): 250.000 Dollar, ein Schl ¨ussel in 50h.
•Man kann davon ausgehen, daß es heute (bei den
entsprechenden Organisationen) Hardware gibt, die das viel schneller schafft.
DES
Blockl ¨ange 64 Bit, Schl ¨ussell ¨ange 56 Bit.
Feistel Chiffre mit 16 Runden.
Die Feistel-Funktion f :{0,1}32× {0,1}48→ {0,1}32ist definiert wie folgt:
1.Ri−1 wird auf 48 Bit erweitert und permutiert, so daß 16 Bit doppelt auftreten (Diffusion, Lawineneffekt).
2. XOR mit dem Rundenschl ¨usselkiund Aufteilung in 8 Bl ¨ockeBivon je 6 Bit.
3. Anwendung derS-BoxSi:{0,1}6→ {0,1}4aufBi,Ci=Si(Bi).
4. Anwendung der PermutationPaufC1. . .C8, Ergebnis ist f(Ri−1,ki).
17 22. April 2004
DES
Nach dem letzten Feistelschritt werdenL16undR16vertauscht.
Dem gesamten Feistel Netzwerk wird eine Permutation IP∈S({0,1}64)vorgeschaltet undIP−1nachgeschaltet.
Dies hat keine kryptographische Bedeutung.
Zusammenfassend also:
1.IPauf Block anwenden:(L0,R0)←IP(m).
2.16Runden Feistel-Netzwerk.
3.R17←L16undL17←R16.
4.IP−1auf Block anwenden:c←IP−1(L17,R17).
DES
Sicherheit von DES:
•Exportversionen von DES haben sogar nur 40 Bit Schl ¨ussel!
•Triple-DES (EDE) mit ca. 112 Bit effektiver Schl ¨ussell ¨ange.
Moore’s Law: Rechenleistung verdoppelt sich alle 18 Monate.
Also alle 15 Jahre 10 Bit Reduktion der Sicherheit im bezug auf die ben ¨otigte Zeit.
Heutzutage werden mindestens 128 Bit Schl ¨ussell ¨ange und Blockl ¨ange angestrebt.
21 22. April 2004
Advanced Encryption Standard - AES
Reaktion auf den auslaufenden DES (langsamen Tripel-DES).
1997 Ausschreibung vom NIST f ¨ur Nachfolger von DES.
•Blockchiffre mit 128 Bit Blockl ¨ange, 128/192/256 Bit Schl ¨ussell ¨ange.
•Offene Dokumentation, Referenzimplementierungen.
•Bedingung: nicht patentiert, frei verwendbar.
•Offener, internationaler Prozess.
•1999: F ¨unf Kandidaten: MARS, RC6, Rijndael, Serpent, Twofish.
•2000/2001: Rijndael wird AES.
Alle f ¨unf Kandidaten wurden als sicher eingestuft.
Wird von US Beh ¨orden benutzt (f ¨ur
”sensitive“, nicht
”classified“
Daten). Weite Verbreitung (zu erwarten).