1
Der Rijndael Algorithmus
Vortrag im Fach KryptologieProf. Dr. Hoever
AES Advanced Encryption Standard
Vortragende: Fegler, Alexander & Hellmann, Jelle
2
Inhalt
- 1. Entstehung- 1.1 Auswahl des Nachfolgers - 1.2 Anforderungen - 1.3 Auswahlgründe
- 2. Arbeitsweise- 2.1 Mathematische Grundlagen- 2.2 Überblick Algorithmus- 2.3 State, Chipher Key number of rounds- 2.4 Round transformation (was pro Runde gemacht wird)- 2.4.1 Byte Sub- 2.4.2 Shift Row- 2.4.3 Mix Columm- 2.4.4 Round Key Addition- 2.4.5 Key Schedule (Key Expansion & Round Key Selection)
- 3. Anwendungsgebiete
- 4. Sicherheit
- 5. Fazit/Ausblick
3
1. Entstehung
Da DES immer unsicherer wurde, aufgrund seiner relativ kurzen Schlüssellänge von 56 Bit und weil 3DES eine schlechte Performance hatte, wurde 1997 in weiser Voraussicht vom NIST (National Institut forStandardisation and Technology) eine Initiative bzw. Wettbewerb ins Leben gerufen um den Nachfolger des DES zu suchen.Kurz darauf wurden in einem Workshop werden die genauen Anforderungenan den Algorithmus festgelegt.Nach knapp 4 Jahren die der Auswahlprozess gebraucht hatte, stand das Ergebnis fest, der Sieger des AES Wettbewerbes war der Rijndael Algorithmus.
Er wurde von den Belgiern Vicent Rijmen und Joan Daemen entwickelt.
4
1.1 Historie
1997 1998 1999 2000 2001
2. Januar ’97 Aufruf zur Initiative
15. April AES-Workshops
genaue Anforderungen
20. August 1. AES Konferenz 15 Algorithmen eingegangen
März 2. AES Konferenz Diskussion der bisherigen Resultate
15. April Ende der Begutachtung der Kandidaten
13./14. April 3. AES- Konferenz Analyse der 5 Endkandidaten
15. Mai Ende der öffentlichen Diskussion
2. Oktober Sieger ist Rinjdael
November FIPS- Standard als Manusskript
Februar Ende öffentliche Diskussion zum Standard
November FIPS Standard
5
1.2 Anforderungen
Anforderungen die vom NIST gestellt wurden waren:
Technische:
- AES muss symmetrischer Algorithmus sein -> Blockalgorithmus- AES muss mindestens 128 Bit lange Blöcke verwenden und Schlüssel von 128, 192
und 256 Bit verwenden können- AES soll gleichermaßen leicht in Hard- und Software implementierbar sein- AES soll in Hard- und Software eine überdurchschnittliche Performance haben- AES soll allen bekannten Methoden der Kryptanalyse widerstehen können,
insbesondere POWER- und TIMING- Attacken - Speziell für den Einsatz in Smartcards sollen geringe Ressourcen erforderlich
sein( kurze Codelänge, niedriger Speicherbedarf)
Weitere:
- Der Algorithmus muss frei von patentrechtlichen Ansprüchen sein und darf von jedermann unentgeltlich genutzt werden
- Umfangreiche Dokumentation
6
1.3 Auswahlgründe
NIST: „When considered togehter, Rijndael‘s combination of security, performance, efficiency, implementability and flexibility make it an appropriate selection for the AES“
Also aufgrund seiner Einfachheit und seiner exzellenten Performance- Eingangstext jede runde deterministischen Transformationen
unterworfen- Ergebnisse werden XOR mit den Rundenschlüssel verrechnet
Sicherheit kommt von der Konstruktion des Transformationen (S-Box) und der Durchführung mehrerer Runden.
Aber gerade wegen seiner algebraischen Struktur wurden/werden Schwächen vermutet
7
2.1 Mathematische Grundlagen
Ist ein Byte, so wird die dazugehörige Polynomdarstellung
betrachtet
Für jedes Byte ist ein Polynom vom Grad ≤ 7, so dass man definiert
Der Addition zweier Polynome f und g in GF(256) entspricht die XOR Verknüpfung ( )
der dazu gehörigen Bytes.
Beispiel:
01234567 aaaaaaaaa
012
23
34
45
56
67
7)( axaxaxaxaxaxaxaxf
}7)(:][{)256( 2 fgradxZfGF
1)( 246 xxxxxf
48357
110101001000001101010111
)1()1( 24677246
D
xxxxxxxxxx
1)( 7 xxxg
8
2.1 Mathematische Grundlagen
Um in GF(256) auch multiplizieren zu können, muss der Grad des Produktes zweier Polynome wieder reduziert werden. Dies geschieht mit der Modulo Rechung bzgl. eines Polynoms vom Grad 8 (=7+1).Daher wird für den AES Algorithmus ein festes irrreduzibles Polynom gewählt und zwar
Beispiel:
1)( 348 xxxxxm
1))(mod()()(
1)()(67
3456891113
xxxmxgxf
xxxxxxxxxgxf
1)( 246 xxxxxf 1)( 7 xxxg
9
2.1 Mathematische Grundlagen
Neutrale Element bzgl. ● ist das Byte 01
Das multiplikativ Inverse, kann mittels der erweiterten Euklid gefunden werden
a(x) und c(x) so berechen
Es gilt auch das Kommutativ- und das Distributivgesetz
Es folgt , das die 256 Bytes werte mit dem XOR ( ) als Addition und der obigen
Multiplikation ● den endlichen Körper GF(256) bilden.
In der Algebra ist ein endlicher Körper oder Galoisfeld (benannt nach dem
Mathematiker Evariste Galois) ein Körper mit nur endlich vielen Elementen.
1)(mod)()( xmxbxa )(mod)()(1 xmxaxb
)()()()())()(()( xcxaxbxaxcxbxa
1)()()()( xcxmxaxb
10
2.2 Algorithmus Übersicht
KlartextBenutzer-schlüssel
Eingabe eines Klartextes und eines Schlüssels durch den Benutzer
VerschlüsselungRundenbasierte Hintereinander-ausführung von verschiedenen Transformationsschritten
verschlüsselterText
Ausgabe des verschlüsselten Textes
11
2.3 Number of Rounds, State & Key
r b=128 b=192 b=256
k=128 10 12 14
k=192 12 12 14
k=256 14 14 14
a0,0 a0,1 a0,2 a0,3
a1,0 a1,1 a1,2 a1,3
a2,0 a2,1 a2,2 a2,3
a3,0 a3,1 a3,2 a3,3
Rundenanzahl ist abhängig von verwendeter Schlüssellänge k und verwendeter Blockgöße b
Zustand
4 Byte=32 Bit
k0,0 k0,1 k0,2 K0,3 k0,4 k0,5
k1,0 k1,1 k1,2 k1,3 k1,4 k1,5
k2,0 k2,1 k2,2 k2,3 k2,4 k2,5
k3,0 k3,1 k3,2 k3,3 k3,4 k3,5
Schlüssel
12
2.4 Verschlüsselungsprozess
Runde 1 bis ( r – 1 )
Anzahl der Runden ist abhängig von der Block- und Schlüssellänge
ByteSub
ShiftRow
MixColumn
AddRoundKey Rundenschlüssel
AddRoundKey
InitialisierungsrundeKlartext Schlüssel
Runde rByteSub
ShiftRow
AddRoundKey
verschlüsselter Text
13
2.4.1 Verschlüsselungsprozess
• monoalphabetische Verschlüsselung mit der Substitutionsbox
• Bytes im Block durch Äquivalente in der S-Box ersetzen
• S-Box meist als Array implementiert
• Transformation ist deterministisch
• Lediglich zur Vermischung der Bytes und Schutz gegen– differentielle und lineare Kryptanalyse– Interpolationsattacken
ByteSub
14
2.4.1 Verschlüsselungsprozess Beispiel
e99aa019
082a2bbe
488de2e3
f8c6f43d
1eb8e0d4
30e5f1ae
525d9811
41b4bf27
16bb54b00f2d416842e6bf0d89a18cf
df2855cee9879b948ed9691198f8e1e
9e1dc186b957610ef6034866b53e70d
8a8bbd4b1f74e8c6b4a61c2e2578bac
08ae7a65eaf46ca94ed58d6d37c8e7b
79e4959162acc25c2406490a3a32e0a
db0b5ede14b84688902a22dc4f81609
73195d643d7ec41744975fec130ccd8
d2f3ff1021dabcf5389d928f40a3517
a89f3c507f024585334d43fbaaefd06
cf584c4a39be6a5bb1fc20ed00d1535
842fe329b3d652a05a6e1b1a2c83094
75b227ebe280079a059618c323c7043
1531d871f1e534ccf73f362693fdb72
76abd7fe2b6730c56f6bf27b777c630
fedcba876543210
99
1e
35
dd
56
d3
ee
a7
b6
f9
cb
3b
12
a5
01
9
c072a49cafa2d4adf04759fa7dc982ca1
S-Box:
State vor ByteSub:
State nach ByteSub:
S-Box
ByteSub
15
2.4.2 Verschlüsselungsprozess
• Zeilen des State byteweise zyklisch nach links rotieren
• Anzahl der Verschiebungen ist zeilen- und blocklängenabhängigb=Blocklänge
• Transformation ist deterministisch
ShiftRow
b=128 b=192 b=256
Zeile 0 0 0 0
Zeile 1 1 1 1
Zeile 2 2 2 2
Zeile 3 3 3 4
16
2.4.2 Verschlüsselungsprozess Beispiel
1eb8e0d4
30e5f1ae
525d9811
41b4bf27
1eb8e0d4
e5f1ae30
9811525d
2741b4bf
ShiftRow
17
2.4.3 Verschlüsselungsprozess
• Spalten vermischen– Jede Zelle einer Spalte wird mit einer Konstanten multipliziert.
Konstantes Polynom:
c(x) = 03hx3 + 01hx2 + 01hx + 02h
– Die Ergebnisse werden XOR verknüpft
• Vorgehensweise beruht auf Transformation auf Galoisfeldern
• Transformation ist deterministisch
MixColumn
18
2.4.3 Verschlüsselungsprozess BeispielMixColumn
1eb8e0d4
e5f1ae30
9811525d
2741b4bf
Beispielrechnung für das erste Byte:
11010100 * 00000010 = 10110011 (d4 * 02 = b3)
10111111 * 00000011 = 11011010 (bf * 03 = da)
01101001 (b3 XOR da = 69)
01011101 * 00000001 = 01011101 (5d * 01 = 5d)
00110100 (69 XOR 5d = 34)
00110000 * 00000001 = 00110000 (30 * 01 = 30)
00000100 (34 XOR 30 = 04)2848e004
4c7a9ae5
26d31981
06f8cb66
19
2.4.4 Verschlüsselungsprozess
• KeyAddition in der Vorrunde und am Ende jeder weiteren Runde
• Rundenschlüssel bitweise XOR verknüpfen mit dem State
• Einzige Funktion, die den Algorithmus vom Schlüssel abhängig macht
AddRoundKey
20
2.4.4 Verschlüsselungsprozess Beispiel AddRoundKey
2848e004
4c7a9ae5
26d31981
06f8cb66
2a2388a0
0539b117
76392cfe
6ca354fa
Round keyState
026b68a4
49432bf2
50ea357f
6a5b9f9c
Neues State
Beispielrechnung für die erste Spalte:
10100100 (a4)
00000100 (04)
10100000 (a0)
10011100 (9c)
01100110 (66)
11111010 (fa)
01111111 (7f)
10000001 (81)
11111110 (fe)
11110010 (f2)
11100101 (e5)
00010111 (17)
21
Schlüsselgenerierung 1
• Schlüssel aufteilen in r + 1 Rundenschlüssel
• Benutzerschlüssel expandieren auf die Länge b * ( r + 1 )
• Der erste Rundenschlüssel ist identisch mit dem Benutzerschlüssel
• Berechnung weiterer Rundenschlüssel nach festem Schema…
22
Schlüsselgenerierung 2
• Für das Schema benötigte Elemente:
• RotWord():– verschiebt die 4 Bytes eines Wortes zyklisch um eine Position
nach links, d.h. RotWord([a0,a1,a2,a3]) = [ a1,a2,a3,a0]
• ByteSub():– S-Box auf jedes Byte eines Wortes anwenden (s.o.)
• Rcon-Tabelle:– Rcon[i] = [xi-1,0,0,0], wobei 0 das Nullbyte und xi-1 die (i-1)-te
Potenz von x=(02)hex bzgl. der Multiplikation ● in GF (28) bezeichnet
23
Schlüsselgenerierung 3
…W[8]W[7]W[6]W[5]W[4]W[3]W[2]W[1]W[0]
ByteSub
RotWord
Rcon[1]
ByteSub
RotWord
Rcon[2]
01 02 04 08 10 20 40 80 1b 36
00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00
Rcon:
24
Entschlüsselung
• Zunächst AddRoundKey(State, Roundkey)
• Dann die einzelnen Runden– InvByteSub(State)– InvShiftRow(State)– InvMixColumn(State)– AddRoundKey(State, InvMixColumn(Roundkey))
• Letzte Runde ohne InvMixColumn und mit dem gewöhnlichen AddRoundKey(State, Roundkey)
25
3. Anwendungsgebiete
Verschlüsselungsstandard 802.11i für Wireless LAN & seinem Wi-Fi-Äquivalent WPA2 außerdem noch SSH und IPsec.
Weiterhin wird der Algorithmus zur Verschlüsselung diverser komprimierter Dateiarchive verwendet.
Tools die AES verwenden:
PGP (gnuPgp), Steganos Safe, Winzip 9.0SSL 3.0 (RSA + AES), Skype
Linux:
loop-aes von Jari Ruusu, aespipe
26
4. Sicherheit
Bruteforce & theoretische Folgen
(AES mit 256 Bit Schlüssel)
Speicheraufwand : für alle Schlüssel
Wenn es möglich wäre pro Atom 1 Schlüssel zu speichernHätte der Speicher eine Masse von g das entspricht Sternenmassen
Bei 128 Bit Schlüssel nur noch ca. 300 t Speichermasse ca. TByte
Wenn man jetzt 1 Mrd. Computer hat, wovon jeder pro Sekunde 1 Mrd. Keys testet, so bräuchte man immer noch im Durchschnitt 5 Billionen Jahre um an den Schlüssel zu gelangen.
2562
4610 1410
2410
27
4. Sicherheit Stärken
Einfluss der Schlüssel
Verknüpfung des Rundenschlüssel vor der ersten Runde und als letzter schritt innerhalb einer Runde-> Jedes Bit ist vom Schlüssel abhängig
Nichtlineare Schicht
Die S-Box ist eine stark nichtlineare OperationDie Konstruktion der S-Box sorgt für nahezu idealen Schutz vor der linearen und differentiellen Kryptanalyse
Lineare Schicht
Die ShiftRow and MixColumn sorgen für eine optimale Durchmischung der Bits eines Blockes.
28
4. Sicherheit/Angriffe (akademische Erfolge) 1
• 2001 als geschlossene Formel mit 1 Billionen Summanden (Niels Ferguson, Richard Schroeppel, Doug Whiting)niemand weiß, ob daraus jemals ein sinnvoller Angriff auf AES konstruiert werden kann
• 2002 algebraische Besonderheiten (große Systeme quadratischen Gleichungen) (Eli Biham)128-Bit AES: GLS 8000 Gleichungen mit 1600 Variablen
• 2002 aus XL Verfahren -> XSL Verfahren (Josef Pieprzyk, Nicolas Courtouis) eXtended Sparse Linearization
• 2002 AES Spezialfall von BES (Big Encryption System) (Sean Murphy, Matt Robshaw)
29
4. Sicherheit/Angriffe (akademische Erfolge) 2
Gleichungssysteme mit folgenden Eigenschaften:
- stark überbestimmt (mehr Gleichungen als Variable)- Schwach besetzt( größte Teil der Koeffizienten=0)- Besonders reguläre Struktur
Besonderheiten:
- Coutouis & Pieprzyk XSL Methode könnte AES in Schritten knacken
- Angriff nicht auf Statistik sondern Algebra
- Sicherheit von Produktalgorithmen nicht mehr exponentiell mit Rundenzahl steigend
Sean Murphy and Matt Robwerts , AES Spezialfall von BES besonders runde Struktur -> Rechenaufwand könnte sich dann auf reduzieren.
2302
1002
30
4. Sicherheit
Theoretische Angriffe haben aus 2 Gründen keine praktische Bedeutung
1) Komplexität der Angriffe bei Rechenschritten2) Angriffe sind umstritten und noch nicht implementiert
“2^100 Rechenschritte sind eine utopisch große Zahl. Ein aus GHz-Pentium-Prozessoren aufgebauter Rechencluster, der die Arbeit binnen eines Jahres schaffen Sollte hätte einen Stromverbrauch von vielen Millionen Gigawatt, was viele Größenordnungen über der Weltenergieproduktion liegt.“ [ct02/21/038]
Außerdem tauchen in den harten mathematischen Arbeiten immer wiederFormulierungen wie „könnte“ und „vermutlich“ auf .
Trotzdem ist durch diese Veröffentlichungen das makellose Image von AES ein wenig angekratzt.
1002
31
5. Fazit/Ausblick
• Hardwarenahe( d.h. Einfach zu implementieren)• Optimiertes C-Programm besteht aus nur ~ 500 Zeilen Code• Einfaches Design• Ohne Patentansprüche• Bis heute kein praktikabler Angriff gefunden
• Aber wahrscheinlich nicht mehr für die nächsten 20 Jahre sicher• Wenn sich der Rechenaufwand innerhalb eines Jahres um
„reduziert“ warum dann nicht noch Faktor oder drauflegen, dann wäre erster praktikabler Angriff denkbar
• Aber noch bestimmt 10 Jahre sicher, weil nicht ohne beträchtlichen Aufwand knackbar
1302202 402
32
Literatur
• iX10/2001, iX12/2002
• ct 11/05 ,ct 7/05, ct 17/03
• http://www.schneier.com/paper-rijndael.html
• http://www.cryptosystem.net/aes/
• http://www.chscene.ch/ccc/ds/66/008_aes.html
• http://csrc.nist.gov/CryptoToolkit/aes/
• http://www.wikipedia.de
• http://www.itl.nist.gov/fipspubs/ FIPS 197 Paper
• http://www.esat.kuleuven.ac.be/~rijmen/rijndael/
• http://csrc.nist.gov/CryptoToolkit/aes/rijndael/Rijndael-ammended.pdf
• http://www.realtec.de/privat/arbeiten.shtml
Top Related