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.
3 25. Oktober 2007
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. )
Entschl ¨usselung durch Invertierung dieser Runden.
Blockchiffren Designziele
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.
1 25. Oktober 2007
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).
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).
7 25. Oktober 2007
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 Abh ¨angigkeit der Rundenanzahl rotiert.
3. Aus den 56 Bit werden 48 gem ¨aß einer festen Regel ausgew ¨ahlt.
Schwache Schl ¨usselkmitE(k,·) =D(k,·):
•Linke und rechte H ¨alfte vonknur Einsen oder Nullen.
•Keine weiteren schwachen Schl ¨ussel bekannt.
Semi-schwache Schl ¨usselpaare(k,l)mitE(k,·) =E(l,·):
•6 sind bekannt.
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 ...
5 25. Oktober 2007
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−1wird auf 48 Bit erweitert und permutiert, so daß 16 Bits 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).
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 classified SECRET≥128, f ¨ur TOP SECRET≥192). Weite Verbreitung (zu erwarten).
11 25. Oktober 2007
Endliche K ¨ orper
Sind sehr wichtig in der Kryptographie und Codierungstheorie ( ¨Ubertragungsfehlerkorrektur). N ¨utzlich bei der Beschreibung von Rijndael.
Ein K ¨orper ist eine Menge, in der man wie inRoderCrechnen kann, also mit+,−,·, /.
Endliche K ¨orper haben nur endlich viele Elemente.
pPrimzahl. Modulo prechnen liefertZ/(p). Ist endlicher K ¨orperFp.
•Elemente dargestellt durch{0,1, . . .,p−1}.
•Beispiel p = 5:−1 = 4weil4 + 1 = 5 = 0inFp.
•Invertieren mit euklidischem Algorithmus zur ggT-Berechnung:
1 = ra + spimpliziertr = 1/a. Beispiel1 =−3·3 + 2·5, also−3 = 1/3.
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.
9 25. Oktober 2007
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 in Bezug auf die ben ¨otigte Zeit.
Heutzutage werden mindestens 128 Bit Schl ¨ussell ¨ange und Blockl ¨ange angestrebt.
Polynome
Primpolynom f ∈K[x]: Kann nicht als Produkt nicht konstanter Polynome geschrieben werden (analog zur Primzahl).
•x2−1nicht prim:x2−1 = (x−1)(x + 1).
•x2+ x + 1∈F2[x]prim.
Thm: Jedes Polynom kann in ein Produkt von Primpolynomen zerlegt werden. Die Zerlegung ist bis auf Multiplikation mit Konstanten eindeutig.
•Nicht eindeutig:x2−1 = (x−1)(x + 1) = (2x−2)(3x + 3)inF5[x].
Bew: ¨Ublicherweise in der Algebra.
15 25. Oktober 2007
Endliche K ¨ orper
K =Fp, f ∈K[x]Primpolynom. InK[x]modulo f rechnen, ergibt K[x]/( f ). Ist endlicher K ¨orperFpnmitpnElementen.
•Primpolynome beliebigen Grads gibt es in Tabellen.
•Invertieren wieder mit euklidischem Algorithmus, jetzt f ¨ur Polynome mit Hilfe der Polynomdivision. Beispiel:K =F2,
f = x2+ x + 1,x·(x + 1) + f = 1. Alsox = 1/(x + 1)inF4.
•InK[x]/( f )gilt f (x) = 0.
Man schreibt h ¨aufigFpn=Fp[ζ]mit f (ζ) = 0.
Elemente inFpnk ¨onnen also durch Polynome vom Grad≤n−1inζ
¨uberFpdargestellt werden. Es gilt#Fpn= pn.
Polynome
Polynome ¨uber (endlichen) K ¨orpernK.
•Sind Ausdr ¨ucke der Forma0+ a1x + a2x2+· · ·+ arxr mit Koeffizienten ai∈Kundxeiner
”Variablen“.
•Gleichheit zweier Polynome genau dann, wenn die Koeffizienten vorxigleich sind f ¨ur allei.
•+,−,·wie gewohnt und sinnvoll.
•Graddeg( f ) := rwenn f = a0+ a1x + a2x2+· · ·+ arxrundar6= 0.
•deg( f )≤0: f heißt konstant.
Beispiel:
•(x + 1)(x−1) = x2+ x−x−1 = x2−1.
•2x + 16= 2x + 2, x + 26= 2x + 2, x6= 0.
•deg(x) = 1,deg(x2) = 2,deg(1) = 0,deg(0) =−∞.
13 25. Oktober 2007
Polynome
Menge der Polynome ¨uberK ist damit ein Ring (K ¨orper ohne/).
Wird mitK[x]bezeichnet.
Division mit Rest: F ¨ur f,g∈K[x]schreibe f = hg + rmith,r∈K[x]und deg(r)<deg(g).
•Wie in der Schule m ¨oglich, ist analog zur Division mit Rest inZ.
•hundrsind eindeutig bestimmt.
• f durchgteilbar⇔r = 0.
•K ¨onnen damit inK[x]modulogrechnen, Ergebnisse sind dier.
• f = x2+ 1,g = x−1:x2+ 1 = x2−1 + 2 = (x + 1)(x−1) + 2, alsoh = x + 1 undr = 2.
AES - Rijndael
Die Operationen in den einzelnen Runden sind:
AddRoundKey: Addition vonkizumi, liefertmi+1. SubstBytes: Koeffweise Anwendung vonπS∈S(F
28)aufmi:
•φist eine affin-lineare Abbildung aufF
28alsF2-Vektorraum, wird weiter unten definiert.
•DamitπS(x) :=φ(1/x)f ¨urx6= 0undπS(0) := 0.
ShiftRows: Zeile jinmium j−1Positionen nach links shiften.
MixColumns: Multiplikation vonmimitM =
ζ ζ+ 1 1 1
1 ζ ζ+ 1 1
1 1 ζ ζ+ 1
ζ+ 1 1 1 ζ
von links.
19 25. Oktober 2007
AES - Rijndael
Ausf ¨uhrung der Runden:
1. Eingabem0= m.
2. AddRoundKey f ¨uri = 0.
3. F ¨uri = 1, . . . ,n−1: SubstBytes, ShiftRows, MixColumns, AddRoundKey.
4. F ¨uri = n: SubstBytes, ShiftRows, AddRoundKey.
5. Ausgabec = mn.
F ¨ur Entschl ¨usselung inverse Operationen benutzen.
Diffusion durch ShiftRows und MixColumns.
Konfusion durch SubstBytes und AddRoundKey.
Endliche K ¨ orper
Fpnauch einn-dimensionalerFp-Vektorraum.
Thm: F ¨ur jedesnistFpnbis auf Isomorphie eindeutig bestimmt.
Thm: Es gibtw∈Fpn, so daß sich jedesa∈Fpnmita6= 0in der Form a = wsf ¨ur einsmit0≤s≤pn−2schreiben l ¨aßt.
Bew: ¨Ublicherweise in der Algebra.
(F2)8:
•Sind Bytes.
•Addition entspricht XOR.
• −1 = 1, daher Subtraktion gleich Addition.
•Identifikation mitF
28unter einer Basis1,ζ, . . . ,ζ7.
17 25. Oktober 2007
AES - Rijndael
Basiert auf (verallgemeinertem) Substitutions-Permutationsnetzwerk.
•128 Bit Blockl ¨ange,
•128/192/256 Bit Schl ¨ussell ¨ange,
•entsprechend 10/12/14 Runden.
Im folgenden(F2)8∼=F2[ζ]∼=F
28alsF2-Vektorr ¨aume mit ζ8+ζ4+ζ3+ζ+ 1 = 0und(b7, . . . ,b0)7→∑7i=0biζi.
Der jeweils zu bearbeitende Blockmi(state block) und Rundenschl ¨usselkiim Netzwerk ist eine Matrix∈(F
28)4×4. Hierbei spaltenweise arbeiten: Ein Block oder Rundenschl ¨ussel(b0, . . . ,b15) ergibt die Matrix(b4(i−1)+ j−1)1≤i,j≤4.
Genaue Details im FIPS-197 und unter http://www.nist.gov/aes.
AES - Rijndael
Rijndael ist sehr schnell, besonders auf Chipkarten (im Vergleich doppelt so schnell wie andere Verfahren).
Sicherheit von Rijndael:
•Rundenzahl recht knapp gehalten.
•Wird immer noch intensiv untersucht.
Die Struktur von Rijndael ist sehr algebraisch. Daher gibt es eine einfache, geschlosse algebraische Formel f ¨ur die Verschl ¨usselung.
•Manche sehen dies als m ¨oglichen Angriffspunkt an.
•Es k ¨onnte aber auch helfen, die Sicherheit zu beweisen.
•XL (extended linearisation): Verfahren zum L ¨osen von Gleichungssystemen mit vielen Unbekannten.
•Effizienz von XL?
23 25. Oktober 2007
Angriffe auf Blockchiffren
Brute-Force, exhaustive search (nach dem Schl ¨ussel), Meet-in-the-middle, CPA.
•Alles oder trickreich ausprobieren→effektive Schl ¨ussell ¨ange.
Differentielle Kryptoanalyse
•Man untersucht, wie ¨Anderungen (Differenzen) am Klartext sich durch die Runden fortpflanzen, u. mit welcher Wahrscheinlichkeit.
Lineare Kryptoanalyse
•Man untersucht, mit welcher Wahrscheinlichkeit lineare Relationen zwischen Klartext- und Chiffretextbits gelten.
Diese Techniken sind statistisch und ziemlich detailliert.
Lassen sich (im wesentlichen) nicht auf DES und Rijndael anwenden.
AES - Rijndael
Blockl ¨angeb = 4,6,8des Schl ¨usselkin Worten (4Bytes).
Schl ¨usselschema zur Bestimmung derki(KeyExpansion):
•Schreibek = (w0, . . . ,wb−1)mitwj∈(F
28)4.
•F ¨ur j≥b:wj←wj−b+ f ( j,wj−1), wobei f unten definiert ist.
•ki←(w4i, . . . ,w4i+3)f ¨ur0≤i≤n.
Definition von f:
•SubstWord:πSauf(F
28)4erweitern durch byteweise Anwendung.
•RotWord: RotWord(B0,B1,B2,B3) = (B1,B2,B3,B0),Bi∈F
28.
•F ¨ur j = 0 mod bist f ( j,wj−1) =SubstWord(RotWord(wj−1)) + (ζj/b−1,0,0,0).
•F ¨urb>6und j = 4 mod bist f ( j,wj−1) =SubstWord(wj−1).
•In allen anderen F ¨allen ist f ( j,wj−1) = wj−1.
21 25. Oktober 2007
AES - Rijndael
Definition vonφ:F
28→F
28:
•ψ:F
28→ {g∈F2[x]|deg(g)<8}mitψ(∑7i=0biζi) :=∑7i=0bixi, ψistF2-linear und bijektiv.
•φ( f ) :=ψ−1((x4+ x3+ x2+ x + 1)ψ( f ) + x6+ x5+ x + 1 mod x8+ 1).
•φ−1(g) =ψ−1((x6+ x3+ x)ψ(g) + x2+ 1 mod x8+ 1).
•Hierbei bezeichnet mod den Rest nach Division mitx8+ 1.
Daφaffin-linear und bijektiv ist, kann manφauch mit Hilfe einer invertierbaren Matrix aus(F2)8×8definieren (siehe z.B. das FIPS-197 Dokument).
Angriffe auf Blockchiffren
Timing Angriffe, Power Analysis:
•wenn Ausf ¨uhrungszeit oder Energieverbrauch vom Schl ¨ussel abh ¨angt.
•Zeit- bzw. Energiemessung liefert Information ¨uber den Schl ¨ussel.
•Gegenmaßnahme: Algorithmus entsprechend modifizieren.
Differential Fault Analysis:
•Hardware-m ¨aßiger Eingriff auf Bits und Programmausf ¨uhrung (z.B. in Chipkarte).
•Speziell Related-Key Angriff.
•Dann Untersuchung der ge ¨anderten/fehlerhaften Verschl ¨usselung.
•Starke Anforderung an die Hardware ...
Diese Angriffe sind auch f ¨ur andere kryptographische Algorithmen relevant.
25 25. Oktober 2007