Académique Documents
Professionnel Documents
Culture Documents
ohlich
Stefanie Nemeth
Isabella Sailer
Betreuer:
Ao.Univ.Prof. Dr. Peter Hellekalek
Universit
at Salzburg
Juni 2010
Inhaltsverzeichnis
1 Einleitung 2
2 Grundlagen 5
2.1 Was ist Zufall? . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2 Physikalische Generatoren . . . . . . . . . . . . . . . . . . . . 7
2.3 Algorithmische Generatoren . . . . . . . . . . . . . . . . . . . 8
2.4 RNGs in der Stochastischen Simulation . . . . . . . . . . . . . 11
2.5 RNGs in der Kryptographie . . . . . . . . . . . . . . . . . . . 13
2.6 G ute eines RNGs . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.7 Stromchiren . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.8 Blockchiren . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3 AES 24
3.1 Algebraische Voraussetzungen . . . . . . . . . . . . . . . . . . 24
3.2 Denition von AES . . . . . . . . . . . . . . . . . . . . . . . . 32
3.3 Counter Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4 Resumee 43
1
Kapitel 1
Einleitung
Diese Arbeit widmet sich der Thematik zufalliger, nicht reproduzierbarer
Zahlen f ur ein Online Casino. Zuerst stellt sich die essentielle Frage der De-
nition der Zufalligkeit. Das Ziel ist es, einen passenden Zufallszahlengene-
rator (englisch: Random Number Generator - RNG) zu nden, welcher die
notwendigen Bedingungen f ur die Erzeugung von Zufallszahlen f ur ein On-
line Casino erf ullt. Die Schwierigkeit besteht darin, den richtigen Generator
auszuw ahlen, der die folgenden Punkte am Besten umsetzt:
Ezienz
Unvorhersagbarkeit der Zahlen
keine erkennbaren Muster im Output
Periodenl ange soll gegen uber dem Wertebereich lang sein
Gleichverteilung der Zahlen (Diskrepanz)
wissenschaftlich fundierter Generator
Wie man in der Graphik 1.1 sieht, wird primar zwischen physikalischen Gene-
ratoren, auch Hardwaregeneratoren genannt, und Pseudozufallsgeneratoren,
auch als Algorithmische Generatoren bezeichnet, unterschieden.
Hardware Generatoren nutzen physikalische Prozesse, wie thermisches
Rauschen eines Widerstands, Frequenzen eines Radiosignals oder radioak-
tive Zerfallsvorg ange. Diese nat urlich gewonnenen Zahlen lassen sich durch
keinen mathematischen Algorithmus beschreiben oder nden, somit ist die
Unverhersagbarkeit mit diesen Generatoren am besten gew ahrleistet. Jedoch
ist ein physikalischer Generator zu langsam um eine solch groe Menge an
Zahlen f ur ein Online Casino zu liefern. Weiters ist auch die Lebenszeit
2
der Messger ate begrenzt, wodurch diese Erzeugungsmethode kostspielig und
umst andlich werden kann.
Pseudozufallszahlengeneratoren werden im Gegensatz zu den vorher er-
w ahnten physikalischen Generatoren durch mathematische Algorithmen er-
zeugt, was bedeutet, dass sie deterministisch sind. Doch es stellt sich die
Frage: Wie kann ein deterministischer Generator zuf allige, nicht reproduzier-
bare Zahlen liefern, wenn sie zuerst durch einen vom Menschen programmier-
ten Algorithmus erzeugt wurden? Heutzutage gibt es schon eine sehr groe
Vielfalt an unterschiedlichen Algorithmischen Generatoren, die mehr oder
weniger sicher sind. Durch die Schnelligkeit der Computer werden immer
mehr Algorithmen geknackt, ehemals als sicher gegoltene Generatoren wer-
den entschl usselt und somit unsicher und unbrauchbar f ur kritische Bereiche
wie Banken oder auch das Online Casino.
Der Vorteil der Pseudozufallsgeneratoren liegt in der Schnelligkeit und
Ezienz. Da die Informatik eine sehr junge Wissenschaft ist, werden lau-
fend schnellere Computer und bessere Algorithmen entwickelt. Das Problem
der Ausfallsrate wie bei den physikalischen Generatoren ist hier nicht in die-
sem Ausma gegeben, da Computer und Speicherplatten schnell und einfach
ausgetauscht werden k onnen.
Es steht daher fest, dass ein Pseudozufallsgenerator f ur das Online Casino
verwendet werden muss. Hierbei wird stark unter den Anwendungsgebieten
des Generators unterschieden. Die zwei Gebiete, in die unterteilt wird, sind
Generatoren in der Stochastische Simulation und Kryptographische Genera-
toren. Generatoren, die in der Stochastischen Simulation verwendet werden
sind sehr ezient, liefern jedoch reproduzierbare Zahlen. Diese Eigenschaft
w urde jedoch die gr ote Gefahr f ur das Online Casino bedeuten. Deshalb
sind daf ur alle Generatoren aus dem Gebiet der Stochastischen Simulation
vollkommen ungeeignet.
In der Kryptographie wird vorallem darauf geachtet unvorhersagbare Zu-
fallszahlen zu erhalten. Diese erzeugten Zahlen m ussen gut bei Statistischen
Tests abschneiden, das heit sie m ussen eine Reihe von Tests bestehen, wel-
che unterschiedliche Kriterien f ur lokale und globale Zufalligkeit uberpr ufen.
Lokal heit in diesem Zusammenhang, dass Zahlen aus mehreren Teilinter-
vallen getestet werden, wobei globale Tests die ganze Zufallszahlenfolge als
ein Ganzes betrachten. Kryptographie ist nicht nur ein Werkzeug um na-
tionale Geheimnisse und Strategien zu sichern, gleichzeitig wird sie auch in
verschiedenen Gebieten wie elektronischer Datenverarbeitung und f ur pri-
vate Transaktionen uber das Internet verwendet. In all diesen Gebieten ist
Sicherheit ein zentraler Aspekt, deshalb fallt auch die Thematik des Online
Casinos in diesen Bereich.
3
Es gibt drei verschiedene M oglichkeiten einen Generator zu erhalten, der
kryptographisch sichere Zufallszahlen erzeugt:
Stromchiren
Blockchiren
Hashfunktionen
Die Entscheidung el auf AES - Advanced Encryption Standard , welches
zur Kategorie der Blockchiren gehort. AES ist der wissenschaftlich fundier-
teste Standard der modernen Verschl usselung. Obwohl der Algorithmus seit
2000 publik ist, ist es noch nicht gelungen, die durch AES erzeugten Zufalls-
zahlen zu rekonstruieren. Dieser Generator hat im Gebiet der Mathematik
groe Anerkennung gefunden. AES besteht alle statistischen Tests und kann
dank verschiedener Betriebsmodi in vielen Bereichen eingesetzt werden. Spe-
ziell der Counter Mode erm oglicht es, eine Blockchire als Stromchire zu
behandeln, was sie wesentlich schneller macht.
Deshalb liegt der Fokus dieser Bachelorarbeit auf AES in Counter Mode.
Die folgende Graphik 1.1 ist als Leitfaden zum besseren Verst andnis dieser
Arbeit zu sehen. Sie liefert einen guten
Uberblick zum Aufbau der einzelnen
Kapitel.
RNG
Physikalische RNGs Algoritmische RNGs
RNGs in der Kryptographie RNGs in der stoch.
Simulation
Hashfunktionen Blockchiren Stromchiren
AES DES
CTR - Mode
Tabelle 1.1: Arten von Zufallszahlengeneratoren
4
Kapitel 2
Grundlagen
2.1 Was ist Zufall?
Als erstes muss gekl art werden, was man uberhaupt unter Zufall versteht.
Die meisten Menschen haben Schwierigkeiten intuitiv das Wort zufallig zu
beschreiben. Selbst Philosophen haben lange diskutiert um eine passende
Denition zu nden.
Ein Beispiel dazu: Ein Spiel im Casino wird ein paar Mal hintereinan-
der verloren. Der weit verbreitete, aber falsche Glaube ist, dass nach dieser
Pleite wieder eine Reihe Gewinne folgt. Wenn man das glauben w urde,
w are dies ein Widerspruch zur Unvorhersagbarkeit und Sicherheit der Zah-
len im Casino. Man k onnte die Ausgange der Spiele praktisch vorhersehen.
Das deutet schon auf die n achste Beschreibung hin: Von Zufall wird dann ge-
sprochen, wenn ein Ereignis nicht vorhersagbar ist. Der Duden [20] deniert
eine Zufallszahl folgendermaen:
Denition 2.1.1. Eine Zahl, die rein statistisch (zuf allig) aus einer Menge
von Zahlen herausgegrien wird, heit Zufallszahl. Eine (unendliche) Folge
von Zahlen ohne (algorithmisches) Bildungsgesetz heit Zufallszahlenfolge.
Der Begri der Zuf alligkeit spielt besonders beim statistischen Testen
eine groe Rolle. Wie soll ein Test Zuf alligkeit beweisen, wenn unklar ist, wie
dieses Wort eigentlich deniert ist oder was es zu bedeuten hat. Es ist oberste
Voraussetzung, dass die Zahlen des Online Casinos diese mathematischen
Test bestehen, deshalb ist es wichtig einige dieser Denitionen zu betrachten:
Zur Zufalligkeit einer einzelnen Zahl behauptet D. E. Knuth [23],
dass es keine einzelne Zufallszahl im mathematischen Sinn gibt. (Warum
sollte zum Beispiel die Zahl 1 zuf allig sein.)
Zufallsbitfolgen m ussen bestimmte Eigenschaften erf ullen um als zufallig
zu gelten. Diese k onnen durch verschiedene Generatoren erzeugt werden auf
5
welche ab Kapitel 2.2 eingegangen wird. Im folgenden Abschnitt wird die
Zuf alligkeit solcher Folgen betrachtet.
Eine
seed genannt,
damit die Berechnung der Zufallszahlenfolge beginnen kann. Bei gleichen
Startwert erzeugen diese Generatoren immer die gleiche Folge. Deshalb muss
der Startwert besonders bei kryptographischen Verwendungszwecken geheim
bleiben, da sonst die ganze Zufallszahlenfolge reproduziert werden kann. Au-
erdem soll nicht von irgendeiner erzeugten Zahl auf die n achste, oder gar
auf den Startwert geschlossen werden k onnen.
Das Generieren von Zufallszahlen durch den Computer ist deshalb ein
Problem, weil der Computer anhand festgelegter Algorithmen vorgeht, die
stets bei identischem Input das selbe Ergebnis produzieren, also determini-
stisch sind. Dazu bemerkt Dewdney:
), x ,= x
, mit x ,= x
) ergibt
Obwohl Hashfunktionen gute pseudo-zuf allige Folgen liefern konnen, sind sie
ungeeignet f ur die Erzeugung von Zufallszahlen f ur das Online Casino, da sie
vergleichsweise langsame Verfahren sind. Auerdem ist die Erfolgschance eine
Kollision zu nden 2
n
, bei einer Output-L ange von n Bit des Hashwertes.
[4] [27]
One-Time Pad
Das One-Time Pad, welches eine bewiesenermaen sichere Verschl usselungs-
methode ist, wurde von Gilbert Vernam 1918 entwickelt. Deshalb wird es
auch oft als Vernam Chire bezeichnet.
Das One-Time Pad erzeugt eine groe, sich nicht wiederholende Menge
von zuf alligen, bin aren Key-Buchstaben. Die Verschl usselung basiert darauf,
dass Schl ussel und Nachricht modulo 2 addiert, also mittels XOR verkn upft
werden. Beim One-Time Pad handelt es sich um ein symmetrisches Ver-
schl usselungsverfahren, das heit das f ur Ver- und Entschl usselung der selbe
Schl ussel verwendet wird.
Es stellt sich zun achst die Frage, warum das One-Time Pad nachweislich
als sicheres Verfahren gilt. Seine Sicherheit h angt sehr stark von der Zuf allig-
keit des Schl ussels ab, welcher durch einen Zufallszahlengenerator erzeugt
15
werden muss. Das One-Time Pad ist eine Stromchire, das heit, dass Bit
f ur Bit einzeln verschl usselt werden. Daraus resultiert, dass es ein sehr schnel-
les und wenig komplexes Verfahren ist. Es ist wichtig, dass jedes Schl usselbit
nur einmal zur Verschl usselung benutzt wird. Bei einer neuen Nachricht muss
ein neuer Schl ussel benutzt werden um Sicherheit zu gew ahrleisten.
One-Time Pads sind in der Theorie perfekte Verschl usselungsverfahren.
In der Praxis haben sie jedoch einige Nachteile. Das erste Problem ist das
Speichern des Schl ussels: Sender und Empf anger m ussen beide eine nieder-
geschriebene Kopie des Schl ussels bei sich haben. Das erleichtert es poten-
tiellen Angreifern zum Schl ussel zu gelangen. Weiters wird die Datenmenge,
die ubertragen werden kann, von der Schl ussell ange begrenzt. Das heit, dass
der Schl usselstrom genau so lang sein muss wie der Klartext. Will man bei-
spielsweise groe Videos codieren, ware ein sehr langer Schl usselstrom not-
wendig, weshalb in diesem Fall das One-Time Pad hier nicht als passendes
Verschl usselungsverfahren fundiert. Ein weiteres Problem stellt die Anfallig-
keit dieses Verfahrens gegen Bitfehler dar. Funktioniert die Synchronisation
nicht richtig, beispielsweise wenn Buchstaben verloren gehen, erscheint die
ganze darauolgende Nachricht falsch. Ein groer Nachteil des One-Time
Pads stellt die Erzeugung des Schl ussels dar. Um einen zufalligen Schl ussel
zu erzeugen wird wiederrum ein Zufallszahlengenerator ben otigt, womit man
vor dem selben Problem steht einen sicheren Generator zu nden.
Der Hauptanwendungszweck dieses Verfahrens ist die Verschl usselung von
Nachrichten, Emails und Dokumenten. Das One-Time Pad wird derzeit in
vielen Bereichnen gen utzt und wird wahrscheinlich auch noch in der Zukunft
Anwendung nden. [19] [14] [13]
2.6 G ute eines RNGs
Nun stellt sich die Frage, wie gepr uft werden kann, wie
Statistisches Te-
sten von Zufallszahlen von Cemper Beate, Florian Thomas und Gutknecht
Axel nachzulesen sind. [16]
Als Beispiel eines Pseudozufallszahlengenerators nehmen wir den simu-
lierten M unzwurf. Es kann nur eine Zahlenfolge von Nullen und Einsen er-
zeugt werden (zum Beispiel Null f ur Kopf und Eins f ur Zahl). Anhand dieses
Beispiels wird deutlich, dass allein die gleiche Haugkeit beider Ergebnis-
se nicht ausreicht, da etwa die Folge 0, 1, 0, 1, 0, 1, 0, 1, ... intuitiv nicht
zuf allig erscheint. Es sollten m oglichst auch die m oglichen Paare aufeinander
folgender Ergebnisse mit den erwarteten H augkeiten auftreten, auch Tripel,
Quadrupel und so weiter.
Ein sehr einfaches G utekriterium ist die Periodenl ange, die im Verh altnis
zum Wertebereich moglichst lang sein sollte. Dies ist etwa beim Mersenne-
Twister in besonders starkem Mae der Fall. Ein simpler linearer Kongru-
enzgenerator kann dagegen den Wertebereich pro Periode bestenfalls einmal
durchlaufen. Dies sollte umgekehrt als Mindestanforderung gesehen werden
und kann durch ein einfaches Kriterium gepr uft werden (Satz von Knuth).
[23]
17
Im folgenden Teil der Arbeit werden Strom- und Blockchiren bearbei-
tet. Mit Hilfe dieser beiden Verfahren k onnen Zufallszahlen f ur das Online
Casino in groen Mengen erzeugt werden. Um die beiden Typen von Chif-
frierverfahren zu verstehen, sind zuerst einige Denitionen notig.
Denition 2.6.1. (Verschl usselungsverfahren, engl.: cryptosystem) Unter
einem Verschl usselungsverfahren oder Kryptosystem versteht man ein Quin-
tupel (T, (, /, c, T) mit den folgenden Eigenschaften:
1. T ist eine nichtleere endliche Menge und wird Klartextraum genannt.
Die Elemente von T heien Klartextelemente (engl.: plaintext elements).
2. ( ist eine nichtleere endliche Menge und wird der Chiretextraum oder
Geheimtextraum genannt. Die Elemente von ( heien Chiretextele-
mente (engl.: ciphertext elements).
3. / ist eine nichtleere Menge und wird der Schl usselraum genannt. Die
elemente von / heien Schl ussel (engl.: keys).
4. c = e
k
: k / ist eine Familie von Funktionen mit der Eigenschaft:
k / : e
k
: T (
ist injektiv.
Die Elemente von c heien Verschl usselungsfunktionen (engl.: encryp-
tion functions).
5. T = d
k
: k / ist eine Familie von Funktionen mit der Eigenschaft:
k / : d
k
: ( T
ist injektiv.
Die Elemente von T hei en Entschl usselungsfunktionen (engl.: decryp-
tion functions).
6. Es gilt folgende Beziehung zwischen den Elementen von c und T:
k / k
/ : d
k
(e
k
(p)) = p p T
[25]
18
2.7 Stromchiren
Denition 2.7.1. (Stromchire) F ur eine endliche, nichtleere Menge A be-
zeichne A* die Menge der endlichen Folgen mit Elementen aus A. Eine Strom-
chire ist ein Chiriersystem (T, (, /, c, T) mit folgenden Eigenschaften:
1. T = ( = / = A*
2. F ur jedes k A existieren zwei eindeutig bestimmte bijektive Funktio-
nen e
k
: A A und d
k
: A A mit der Eigenschaft
d
k
e
k
= e
k
d
k
= Identit at
3. Verschl usselung
Sei p = (p
i
)
i1
T und sei k = (k
i
)
i1
/ mindestens so lange wie p.
Dann denieren wir die Verschl usselungsfunktion durch
e
k
(p) = (e
k
i
(p
i
))
i1
.
Sei c = (c
i
)
i1
( und sei k = (k
i
)
i1
/ mindestens so lange wie c.
Dann denieren wir die Entschl usselungsfunktion durch
d
k
(c) = (d
k
i
(c
i
))
i1
.
Die Folge p = (p
i
)
i1
hei t der Klartextstrom, k = (k
i
)
i1
heit der Schl ussel-
strom und c = (c
i
)
i1
nennt man den Geheimtextstrom. [25]
2.8 Blockchiren
Wie schon in der
Ubersicht erwahnt, zerteilen Blockchiren den Klartext
in einzelne Bl ocke gleicher L ange, die sie nacheinander abarbeiten. Obwohl
Blockchiren etwas langsamer als Stromchiren sind, haben sie einen groen
Vorteil: durch die verschiedenen Betriebsmodi sind sie in verschiedenen Auf-
gabenbereichen vielseitig einsetzbar.
F ur das Online-Casino wird wichtig sein, dass man die Blockchire als
Stromchire verwenden kann, um die Geschwindigkeit zu erh ohen und mehr
Zufallszahlen in der gleichen Zeit erzeugen zu k onnen. Dies ist nur mit be-
stimmten Modi, wie der Counter Mode oder der OFB-Mode, moglich, welche
in Kapitel 3.3 genauer erlautert werden.
Wie bei jedem Kryptosystem muss die Verschl usselungsfunktion e
k
injek-
tiv sein, um den verschl usselten Klartext auch wieder eindeutig entschl usseln
19
zu k onnen. Sei m die Blocklange und / das Zeichenalphabeth, dann ist eine
Blockchire das gleiche wie eine injektive Abbildung der endlichen Menge
T = /
m
in die endliche Menge ( = /
n
, wobei m n gelten muss. Da
f ur Blockchiren aus praktischen Gr unden festgelegt wurde, dass man mit
gleichen Blockl angen arbeitet, wird m = n gesetzt.
Eine Blockchire ist also eine bijektive Abbildung der Elemente p /
m
auf die Elemente c /
m
. Da Computer haupts achlich im Dualsystem ar-
beiten, wird in der modernen Datenverarbeitung / = 0, 1 gew ahlt. Oft
werden als Blocklange m die Werte 64, 128 oder 256 verwendet. Einerseits
nat urlich, um sie auf die Wortl ange und damit die Rechenleistung moderner
Computer abzustimmen, andererseits werden durch diese Werte kryptoanaly-
tische Attacken mittels H augkeitsanalyse erschwert, denn der Klartextraum
ist nun riesig.
Sei zum Beispiel p der Klartext, welcher in gleichlange Bl ocke der Lange
m aufgeteilt wird.
p = p
1
. . . p
m
p
m+1
. . . p
2m
p
2m+1
. . . p
3m
e
k
e
k
e
k
c = c
1
. . . c
m
c
m+1
. . . p
2m
p
2m+1
. . . p
3m
c ist der ciphertext, also der verschl usselte Text. Er wurde blockweise
verschl usselt. [25]
Nun m ochten wir die beiden Typen von Chirierverfahren noch einmal
kurz vergleichen:
Blockchiren: Sie fassen den Klartext in Bl ocke gleiche L ange zusam-
men und verschl usseln nacheinander Block f ur Block.
Vorteile:
- Kryptographisch sehr sicher und ezient
- Wurde ein Block fehlerhaft verschl usselt, wirkt sich der Fehler
nicht auf die anderen Blocke aus, sondern diese konnen trotzdem
noch richtig verschl usselt bzw. entschl usselt werden
- kann dank verschiedener Betriebsmodi auch als Stromchire ver-
wendet werden.
Nachteile:
- langsamer als Stromchiren
20
Anwendungsbeispiele dazu sind die beiden viel verwendeten Verschl usslungs-
algorithmen AES und DES. Beide sind sehr bekannt, wobei DES schon
etwas veraltet ist. AES ist zur Zeit das popularste Verschl usslungsver-
fahren und gilt als besonders sicher. Auf diese beiden Algorithmen wird
in den Kapiteln 3.2 und 2.8 noch genauer eingegangen.
Stromchiren: Sie verschl usseln jedes Bit des Klartextes einzeln, nor-
malerweise mit verschiedene Schl usseln.
Vorteile:
- besonders schnelles, ezientes Verfahren
Ein Anwendungsbeispiel f ur Stromchiren ist RC4. Eine Zufallsfol-
ge wird hier aus einem nur einmalig zu verwendenden Schl ussel er-
zeugt. Der Klartext wird Bit f ur Bit per XOR mit der Zufallsfolge ver-
kn upft, um die Daten zu verschl usseln. Der Algorithmus ist sehr kom-
pakt und f unf- bis zehnmal schneller als DES. Deshalb ndet der RC4
Algorithmus in einigen Echtzeit-Systemen Anwendung, wie beispiels-
weise Mobilfunk (Cellular Digital Packet Data), SSH (Secure Shell),
WLAN (Wireless LAN) oder den Dateiverschl usselungs-Programmen
SecurePC und Cryptext Anwendung. [9]
21
DES
Der Data Encryption Standard ist die wohl bekannteste Blockchire. Sie wur-
de in zahlreicher Sicherheitssoftware verwendet, da sie lange Zeit als sicher-
stes Verschl usslungsverfahren galt. Heute gilt sie jedoch auf Grund moderner
schneller Computer als nicht mehr sicher genug.
Historischer Hintergrund
Zu Beginn der 70er Jahre war die militarische Kryptologie bereits sehr weit
fortgeschritten, jedoch waren kaum Verfahren f ur den nichtmilitarischen Ge-
brauch bekannt. Es gab aber hohen Bedarf nach einem einheitlichen Standard
f ur die beh orden ubergreifende Verschl usselung vertraulicher Daten. Vor allem
auf Grund der raschen Weiterentwicklung der elektronischen Datenverarbei-
tung in kommerziellen Bereichen, wie im Bankenwesen, musste ein sicherer,
ezienter Algorithmus gefunden werden.
Das National Bureau of Standards, eine Unterbeh orde des US-Wirtschafts-
ministeriums, ver oentlichte im Mai 1975 eine Aussschreibung f ur ein kryp-
tographisches Verfahren zur Verschl usselung von Daten. Die Beteiligung war
jedoch entt auschend gering, weshalb nur ein einziger Kandidat in Frage kam.
IBM lieferte den vielversprechenden Vorschlag, der auf eine Weiterentwick-
lung des in Zusammenarbeit mit Horst Feistel entwickelten Algorithmus
Lu-
cifer basiert. Nach einigen
Uberarbeitungen der NSA (deutsch: Nationale Si-
cherheitsbeh orde) wurde das modizierte Verfahren unter dem Namen Data
Encryption Standard im J anner 1977 zu einem nationalen Standard.
Die Rolle, die die NSA in der DES-Entwicklung hatte, ist sehr umstritten.
Wegen der Modikationen, die die NSA vor ver oentlichung des Verfahrens
durchf uhrte, gab es viele Spekulationen. Angeblich h atte die NSA eine
Hin-
tert ure eingebaut, welcher ihr ein rascheres Knacken von DES erm oglicht.
Bis heute gibt es keine Bestatigung dieser Hyptothese.
Ein Grund f ur diese Anschuldigungen ist, dass die NSA auf eine Redukti-
on der Schl ussell ange von 128 Bit bei Lucifer auf 56 Bit bei DES bestand. Da-
durch ist eine brute-force Attacke auf DES wesentlich leichter durchzuf uhren
als beim urspr unglichen Algorithmus.
Besonders bemerkenswert ist, dass die Entwickler von DES bereits einige
Attacken ber ucksichtigt hatten, die erst Jahre spater von der wissenschaft-
lichen
Oentlichkeit entdeckt wurden. Der bekannteste Angri ist hier die
dierentielle Kryptoanalyse von Biham und Shamir. [25]
22
Feistel-Chire
Die Feistelchire bildet die Grundlage f ur den Algorithmus von DES. Wie
bei allen Blockchiren, wird auch hier der Klartext in gleichgroe Bl ocke der
L ange von 64 Bit geteilt. Jeder Block wird dann halbiert. Dabei entstehen
zwei ungef ahr gleich groe Teile L
i
und R
i
. Auf diese beiden Teile wird dann
in jeder Runde folgende Ver anderung durchgef uhrt. Sei die Rundenanzahl n.
In dieser Abbildung wird die i-te Runde betrachtet:
Abbildung 2.1: Eine Runde - DES Verschl usselung mit der Feistel-Chire
Der rechte Teil R
i1
der Runde i 1 wird zum linken Teil der darauol-
genden Runde: L
i
= R
i1
. Auf den rechten Teil R
i1
wird eine Funktion f
angewandt und der Rundenschl ussel K
i
wird an dieser Stelle hinzugef ugt.
Danach addiert man bitweise den Ausgabewert dieser Funktion mit der lin-
ken Seite L
i1
mittels XOR. Der rechte Teil der nachsten Runde entsteht
also folgenderweise: R
i
= L
i1
f(R
i1
, K
i
). Dieser Vorgang wird jede Run-
de wiederholt. Nach n Durchg angen ist ein Block vollst andig verschl usselt.
[25]
23
Kapitel 3
AES
3.1 Algebraische Voraussetzungen
Denition 3.1.1. (Gruppe)
Sei G eine Menge und sei eine binare Operation auf G, dh.
: GG G
Dann heit (G, ) eine Gruppe, wenn gilt:
1. x, y G x y G . . . Abgeschlossenheit
2. x, y, z G x (y z) = (x y) z . . . Assoziativitat
3. e G : e x = x e = x x G . . . Neutrales Element
4. x G x
1
G : x
1
x = x x
1
= e . . . Inverses Element
Denition 3.1.2. (Abelsche Gruppe)
Sei (G, ) eine Gruppe. Sie heit kommutativ oder abelsch, wenn uberdies
gilt:
5. x, y G : x y = y x . . . Kommutativitat
Denition 3.1.3. (Ring)
Sei R eine Menge mit 2 binaren Operationen
+ : R R R
: R R R
Dann heit (R, +, ) ein Ring, wenn gilt:
1. (R, +) ist eine abelsche Gruppe
24
2. Die Operation erf ullt:
x, y R : x y R . . . Abgeschlossenheit
x, y, z R : x (y z) = (x y) z . . . Assoziativitat
3. Es gelten die Distributivgesetze:
x (y + z) = x y + x z
(x + y) z = x z + y z
Falls uberdies
4. e R : e x = x e = x x R
dann heit (R, +, ) ein Ring mit Einselement.
5. x, y R x y = y x
dann heit (R, +, ) ein kommutativer Ring.
Denition 3.1.4. (Nullteilerfrei)
Ein Ring (R, +, ) heit nullteilerfrei, wenn a, b R mit a b = 0
a = 0 oder b = 0.
Bsp: (Z, +, ) ist ein nullteilerfreier Ring.
Denition 3.1.5. (Nullteiler)
Falls in einem Ring (R, +, ) mit den Elementen a, b R gilt: a ,= 0 und
b ,= 0 , sodass gilt a b = 0 dann heien a und b Nullteiler von R.
Beispiel 3.1.6. Seien a =
_
1 1
2 2
_
und b =
_
1 1
1 1
_
zwei Elemente des
Rings der reellen 2 2 Matritzen. Dann sind a und b Nullteiler dieses Rings,
denn:
_
1 1
2 2
_
_
1 1
1 1
_
=
_
0 0
0 0
_
[31]
Denition 3.1.7. (K orper)
Ein Ring (R, +, ) heit Korper, wenn (K0, ) eine abelsche Gruppe bildet.
Denition 3.1.8. (endlicher K orper mit Primzahlordnung p)
Ein K oper (K, +, ) heit endlicher K orper wenn die Menge K endlich ist.
Sei p prim und bezeichne F
p
= 0, 1, . . . , p 1. Sei
: Z
p
F
p
a a (mod p)
Dann heit F
p
endlicher Korper der Ordnung p. Er wird auch Galoisfeld der
Ordnung p genannt. [26]
25
Denition 3.1.9. (Galoisfeld)
Ein endlicher K orper mit p = 2
n
Elementen heit Galoisfeld, er ist also ein
endlicher Korper mit Ordnung 2
n
. Er wurde nach Evariste Galois benannt
und wird mit GF(2
n
) bezeichnet. Dieser K orper ist besonders bedeutend
f ur die Informatik, da die Elemente als Bit-Folgen der Lange n interpretiert
werden k onnen. [3]
Bemerkung 3.1.10. Der Verschl usselungsalgorithmus AES arbeitet im Ga-
loisfeld GF(2
8
). Das bedeutet alle Elemente sind Bit-Folgen der L ange 8.
Diese Eigenschaft ist wichtig f ur den Gebrauch von AES am Computer, da
diese mit solchen Bitstrings arbeiten.
Polynomringe
Denition 3.1.11. (Direktes Produkt, direkte Summe)
Sei I eine endliche oder abz ahlbar unendliche Indexmenge I = 1, 2, . . ., f ur
alle i I, sei G
i
eine Gruppe mit neutralem Element e
i
.
Die Gruppe (G, ) heit das direkte Produkt der Gruppen G
i
und wird
mit
iI
G
i
bezeichnet.
Die Gruppe (
iI
G
i
, ) heit die ( auere) direkte Summe der Gruppen
G
i
.
Bemerkung 3.1.12. Wenn I = 1, . . . , n jedoch eine endliche Indexmenge
ist, werden haug andere Bezeichnungen eingef uhrt:
n
i=1
G
i
statt G
1
. . . G
n
n
i=1
G
i
statt G
1
. . . G
n
falls gilt: G
1
= G
2
= . . . = G
n
= G wird statt
n
i=1
G
i
immer G
n
geschrieben.
Bemerkung 3.1.13. Beim direkten Produkt (R, +) (R, +) (R, +) . . .
der Gruppe (R, +) mit sich betrachtet man also eine innere Verkn upfung auf
dem karthesischen Produkt R R R . . ..
Bei der direkten Summe (R, +) (R, +) (R, +) . . . betrachtet man
eine spezielle Teilmenge des karthesischen Produktes RRR. . ., namlich
jene
Vektoren (r
1
, r
2
, r
3
, . . .), bei denen nur endlich viele
Koordinaten r
i
ungleich dem neutralen Element e der Gruppe (R, +) sind. Die Bezeichnung
k=0
a
k
b
nk
n 0.
27
Somit erhalten wir ein Tripel (R[X], +, ) mit dem Nullelement
0 = (0, 0, 0, . . . )
und dem Einselement
1 = (1, 0, 0, . . . ),
falls der Ring (R, +, ) ein Einselement 1 besitzt.
Lemma 3.1.17. Sei (R, +, ) ein Ring mit Einselement und sei
X = (0, 1, 0, x
3
, x
4
, . . .), x
i
0, 1 beliebig und i 3, . . . , n
Dann kann jedes Element f = (a
0
, a
1
, . . . , a
n
, 0, 0, . . .) mit a
k
= 0 f ur k > n
von R[X] in der Form
f = a
0
+ a
1
X + . . . + a
n
X
n
geschrieben werden.
Beweis: Aus der Denition der inneren Verkn upfung erhalten wir
X
2
= X X = (0, 0, 1, 0, 0, . . .)
und
X
3
= X X X = (0, 0, 0, 1, 0, 0, . . .).
Es liegt daher die Vermutung nahe, dass
X
n
= (0, 0, . . . , 0
. .
nmal
, 1, 0, 0, . . .)
was mittels Induktkion zu beweisen ist. Von nun an identizieren wir das
konstante Polynom (a, 0, 0, . . .) R[X] mit dem Ringelement a. Weiters
schreiben wir das Produkt
(a, 0, 0, . . .) f
f ur f R[X] in der Form
af
28
Diese Festlegung ist sinnvoll, denn
aX = (a, 0, 0, . . .) (0, 1, 0, 0, . . .) = (0, a, 0, 0, . . .)
aX
2
= (0, 0, a, 0, . . .)
aX
3
= (0, 0, 0, a, 0, . . .)
f ur alle a R. Daher erhalten wir f ur f = (a
0
, a
1
, . . . , a
n
, 0, 0, . . .) R[X]
die Darstellung
f = (a
0
, 0, 0, . . .) + (0, a
1
, 0, . . .) + (0, 0, a
2
, 0, . . .) + . . . + (0, . . . , 0, a
n
, 0, 0, . . .)
= a
0
+ a
1
X + a
2
X
2
+ . . . a
n
X
n
.
Bemerkung 3.1.18. Sei (R, +, ) ein Ring mit Einselement 1. Das Symbol
X bezeichnet keine Unbestimmte, sondern etwas ganz Bestimmtes:
X ist die Bezeichnung f ur das Polynom (0, 1, 0, 0, ) R[X].
X
2
ist das Produkt des Polynoms X = (0, 1, 0, 0, ) mit sich selbst.
Es gilt daher nach der Denition des Produktes zweier Polynome:
X
2
= (0, 0, 1, 0, 0, ).
X
3
, X
4
, X
5
, ... ergeben sich analog.
Nach obigen Lemma gilt f ur f = (a
0
, a
1
, . . . , a
n
) R[X] daher
f = a
0
+ a
1
X + a
2
X
2
+ . . . + a
n
X
n
.
Denition 3.1.19. (Teiler, Vielfaches, irred. Polynom)
Sei (R, +, ) (und damit auch (R[X], +, )) ein Ring mit Einselement. Seien
f, g R[X]. Wir sagen, das Polynom g teilt das Polynom f, falls ein h
R[X] existiert mit
f = g h.
Das Polynom g heit dann ein Teiler von f. Weiters heit f ein Vielfaches
von g, Schreibweise: g [ f Das Polynom g heit ein echter Teiler von f, wenn
0 < deg g < deg f.
Ein Polynom f heit irreduzibel, wenn es keine echten Teiler besitzt. An-
dernfalls heit f reduzibel. [26]
Soeben wurde erl autert wie Binarstrings bestimmter Lange als Polynome
angeschrieben werden k onnen. Im n achsten Teil der Arbeit wird naher darauf
eingegangen, wie man auf diese Polynome gewisse Operationen anwendet. Es
werden Multiplikation und Addition erklart.
29
Endliche K orper
Computer arbeiten hauptsachlich mit Bin arstrings. Deshalb wollen wir binare
W orter a und b einer festen L ange addieren und multiplizieren k onnen. Ist
es moglich mit diesen W ortern ahnlich zu rechnen wie wir es von den ra-
tionalen oder rellen Zahlen gewohnt sind? Wir versuchen also arithmeti-
sche Operationen durchzuf uhren. H aug verwendete Werte f ur die Lange
m der Binarstrings sind 32, 64, oder 128. Es sind also zwei Strings a =
(a
0
, a
1
, . . . , a
m1
) und b = (b
1
, b
2
, . . . , b
m1
), a
i
, b
i
0, 1 gegeben, welche
addiert und multipliziert werden sollen.
Addition:
Ausgehend vom K orper (Z
2
, +, ), betrachten wir das m-fache direkte
Produkt der additiven Gruppe (Z
2
, +) mit sich selbst:
Z
m
2
= Z
2
Z
2
. . . Z
2
Dann ist (Z
m
2
, +) eine abelsche Gruppe. Die beiden Elemente (W orter)
a und b werden so addiert:
a + b = (a
0
, a
1
, . . . , a
m1
) + (b
1
, b
2
, . . . , b
m1
)
= (a
0
+ b
0
, a
1
+ b
1
, . . . , a
m1
+ b
m1
)
Stellt man sich das Ganze jetzt als Bin arstrings vor wo wir an Stelle der
Restklassen 0 und 1 einfach 0 und 1 schreiben, ist es klar erkennbar,
dass es sich bei dieser Addition um XOR handelt.
Multiplikation:
Um das Produkt von den beiden Strings a = (a
0
, a
1
, . . . , a
m1
) und
b = (b
1
, b
2
, . . . , b
m1
) zu bilden, schreiben wir sie als Polynome in Z
2
[X]
an.
a = a
0
+ a
1
X + . . . + a
m1
X
m1
b = b
0
+ b
1
X + . . . + b
m1
X
m1
Nach den Rechenregeln in Z
2
[X] ist das Produkt folgendermaen de-
niert:
a b = a
0
b
0
+ (a
1
b
0
+ a
0
b
1
)X + . . . + a
m1
b
m1
X
2m2
Dieses Polynom kann man wieder zur uckverwandeln. Das entspricht
dann eindeutig dem neuen Bin arstring. Wir nennen ihn c.
c = (a
0
b
0
, a
1
b
0
+ a
0
b
1
, . . . , a
m1
b
0
+ . . . + a
0
b
m1
, . . . , a
m1
b
m1
)
30
Nun haben wir noch folgendes Problem: durch die Multiplikation der
beiden Strings a und b der Lange m haben wir einen String c der Lange
2m 1 erhalten. Wir wollen aber einen Binarstring der L ange m, da
wir unsere Multiplikation auf Z
m
2
denieren mochten. Das Polynom des
Strings c k onnen wir ohne Probleme durch ein anderes dividieren,
da in Z die Division mit Rest deniert ist und Z
2
[X] eine Teilmenge
von Z ist wird die Division mit Rest vererbt. Wir reduzieren c also
modulo einem irreduziblem Polynom f, welches Grad m hat. Sei f =
t
0
+ t
1
X + . . . + t
m
X
m
Z
2
[X] mit dem Grad m. Dann existiert ein
eindeutige bestimmtes Polynom c Z
2
[X] vom Grad kleiner oder gleich
m1, sodass gilt:
a b = c (mod f)
Das Polynom c, welches Rest der Division ist, hat diese Form:
c = c
0
+ c
1
X + . . . + c
m1
X
m1
Diese Polynom kann eindeutig als Bin arstring dargestellt werden:
c = (c
0
, c
1
, . . . , c
m1
)
Somit erhalten wir c als Produkt der beiden Bin arstrings a und b. [26]
31
3.2 Denition von AES
AES steht f ur Advanced Encryption Standard. Es ist ein Verschl usselungs-
verfahren, welches im Oktober 2000 als Nachfolger des DES beziehungsweise
Triple-DES als symmetrisches Verfahren von John Daemen und Vincent Rij-
men entwickelt wurde.
Wegen der raschen Fortschritte der Rechenleistung bei modernen Com-
putern wurde die brute-force Attacke immer ezienter. DES und auch die
Verbesserung Triple-DES sind dadurch nicht mehr sicher genug, da mit mo-
dernen Rechnern bereits alle Szenarios durchprobiert werden k onnen und die
Verschl usselung somit geknackt werden kann.
Auf Grund dessen, wurde Anfang 1997 mit der Suche um ein geeignetes
Verfahren begonnen. Als Nachfolger von DES musste AES diese Kriterien
erf ullen:
AES muss ein symmetrischer Algorithmus sein, und zwar eine Block-
chire
AES muss 128 Bit lange Blocke verwenden
AES muss variable Schl ussel von 128, 192 und 256 Bit L ange einsetzen
k onnen
Ezienz
geringer Speicherbedarf
Einfachheit
Implementierung in Hardware und Software gleichm aig leicht
Sicherheit gegen alle bekannten Formen der Attacke
Wie bei DES, wurde auch AES durch ein oentliches Auswahlverfah-
ren gesucht. Am 2.10.2000 wurde der Gewinner des weltweiten Wettbewerbs
bekannt gegeben: ein belgisches Verfahren namens Rijndael. Der Advanced
Encryption Standard, der ein Spezialfall des Rijndael-Algorithmus ist, wurde
am 26. November ver oentlicht. Seither gilt er als ozieller Standard der Ver-
einigten Staaten und als
ByteSub
ShiftRow
MixColumn
Rundenschl ussel
S . . . n achster Zustand
Abbildung 3.2: Ablauf einer Runde
Wie man in Abbildung 3.2 sieht, wird mit dem Ausgangszustand S ge-
startet. Der erste Block, der in Abbildung 3.1 als Matrix S = ((a
i,j
)) mit
Eintr agen von jeweils einem Byte geschrieben wurde, wird ausgew ahlt und
es wird ByteSub darauf angewendet:
ByteSub
Wie bereits in Kapitel 2.3 erkl art wurde, ist es nicht sinnvoll, einen linearen
Generator f ur das Online-Casino zu verwenden, da diese leicht zu knacken
sind. Jeder sichere Verschl usselungsalgorithmus braucht also einen nichtli-
nearen Bestandteil um die Unvorhersagbarheit zu gew ahrleisten.
Die Berechnung des multiplikativen Inversen einer Polynomfunktion ist
zum Beispiel eine nichtlineare Operation. AES n utzt diese Eigenschaft im
ByteSub - Vorgang.
Algorithmus:
Der Block S wird jetzt wieder st uckweise, n amlich Byte f ur Byte, ab-
gearbeitet. Dieser Algorithmus verwandelt 8 input-Bits (a
7
, a
6
, . . . , a
0
) in 8
output-Bits (b
7
, b
6
, . . . , b
0
). Ein Eintrag (= 1 Byte) in der Matrix S ent-
spricht 8 Bits. Im Kapitel 3.1 uber algebraische Vorraussetzungen wurde
bereits erkl art, dass man 8 Bit (a
7
, a
6
, a
5
, . . . , a
0
) folgenderweise als Polynom
anschreiben kann:
(a
7
, a
6
, a
5
, . . . , a
0
) = a
7
x
7
+ a
6
x
6
+ a
5
x
5
. . . + a
0
x
0
34
Von diesem Polynom wird das multipikative Inverse mit dem erweiterten
Euklidischen Algorithmus berechnet und wieder als Bin arstring geschrieben,
der mit (a
7
, a
6
, . . . , a
0
) bezeichnet wird.
Es folgt der letzte Schritt, in welchem die output-Bits berechnet werden:
Sei c = (0, 1, 1, 0, 0, 0, 1, 1) gegeben.
b
i
= (a
i
+ a
i+4
+ a
i+5
+ a
i+6
+ a
i+7
+ c
i
)mod2
Die Ausgabe der ersten Transformation von AES liefert den neuen Binarstring
(b
7
, b
6
, . . . , b
0
) als ersten Eintrag des neuen Zustandes S
7
a
6
...a
0
) = (11001010). Nun
wird schon der Output-String berechnet:
b
0
= a
0
+ a
4
+ a
5
+ a
6
+ a
7
+ c
0
) mod 2 = (0 + 0 + 0 + 1 + 1 + 1) mod 2 = 1
b
1
= a
1
+ a
5
+ a
6
+ a
7
+ a
0
+ c
1
) mod 2 = (1 + 0 + 1 + 1 + 0 + 1) mod 2 = 0
.
.
.
Das Ergebnis lautet: (b
7
b
6
...b
0
) = (11101101) = ED
(16)
[18]
Um ByteSub nicht jedes mal durchrechnen zu m ussen wurde die AES
S-Box, welche wir in Abbildung 3.3 sehen, entwickelt.
Die S-Box ersetzt den ByteSub-Algorithmus. Alle Eintrage sind im Hexa-
dezimalsystem angegeben. Will man beispielsweise die L osung des Bin arstrings
(0, 1, 0, 1, 0, 0, 1, 1, ) nach einem ByteSub-Durchlauf, berechnet man die He-
xadezimaldarstellung davon. Das ist 53. Nun muss man nur noch in den
36
Abbildung 3.3: Die S - Box [18]
Zeilen (X) die Nummer 5, und in den Spalten (Y ) die Nummer 3 suchen.
Zusammen landet man bei ED. Das entspricht dem Binarstring von 53
16
nach einem Druchgang von Bytesub.
In den nachsten zwei Teilen von AES ShiftRow und MixColumn werden
die einzelnen Bytes a
i,j
des neuen Zustandes S durchgemischt. Zuerst mit
ShiftRow:
Abbildung 3.4: ShiftRow
ShiftRow
In diesem Schritt werden die einzelnen Zeilen von S zyklisch nach links ver-
schoben. Zeile 0 bleibt unverandert, wahrend Zeile 1 um 1 Spalte, Zeile 2
37
um 2 Spalten und Zeile 3 um 3 Spalten verschoben wird. Abbildung 3.4
veranschaulicht diesen Vorgang.
MixColumn
In diesem Abschnitt werden die einzelnen Spalten des Blocks S mit Hilfe
einer invertierbaren Matrix A durchgemischt. Jedes Byte der neuen Spalte
h angt von allen Bytes der alten Spalte ab.
Die input-Bytes a des Zustandes S werden durchgemixt und als Ergebnis
erh alt man die Bytes b des neuen, veranderten Zustandes.
A
_
_
_
_
a
0,i
a
1,i
a
2,i
a
3,i
_
_
_
_
=
_
_
_
_
b
0,i
b
1,i
b
2,i
b
3,i
_
_
_
_
Beispiel: gegeben:
_
_
_
_
a
0,i
a
1,i
a
2,i
a
3,i
_
_
_
_
=
_
_
_
_
D4
32
F4
AE
_
_
_
_
im Hexadezimalsystem. Es wird
immer im Hexadezimal- und Dualsystem gerechnet. Es entspricht
_
_
_
_
212
50
244
174
_
_
_
_
im Dezimalsystem.
Als invertierbare Matrix A ist
_
_
_
_
2 3 1 1
1 2 3 1
1 1 2 3
3 1 1 2
_
_
_
_
gegeben.
Also:
_
_
_
_
2 3 1 1
1 2 3 1
1 1 2 3
3 1 1 2
_
_
_
_
_
_
_
_
D4
32
F4
AE
_
_
_
_
=
_
_
_
_
b
0,i
b
1,i
b
2,i
b
3,i
_
_
_
_
b
0,1
= 2 D4 + 3 32 + 1 F4 + 1 AE
Man berechnet jetzt die einzelnen Summanden:
2 D4 = 00000010
2
11010100
2
= x (x
7
+ x
6
+ x
4
+ x
2
)
= (x
8
+ x
7
+ x
5
+ x
3
) mod(x
8
+ x
4
+ x
3
+ x + 1)
= 110101000
2
mod(100011011
2
)
= 10110011
2
= B3
16
38
3 32 = 00000011
2
00110010
2
= (x + 1) (x
5
+ x
4
+ x)
= (x
6
+ x
2
+ x
5
+ x
5
+ x
4
+ x) mod(x
8
+ x
4
+ x
3
+ x + 1)
= (x
6
+ x
4
+ x
2
+ x) mod(x
+
x
4
+ x
3
+ x + 1)
= 01010110
2
mod(100011011
2
)
= 01010110
2
= 56
16
Nun verkn upft man die Ergebnisse mit XOR:
b
0,1
= B3 + 56 + F4 + AE = BF [30]
KeyAddition
Hier ndet die eigentliche Verschl usselung statt, denn nur hier wird der
Schl ussel verwendet. Dabei wird zwischen dem Block und dem gleichlangen
Rundenschl ussel eine byteweise XOR-Verkn upfung ausgef uhrt. Alle anderen
Transformationen von AES sind invertierbar ohne Kenntnis des Schl ussels.
Aus dem eigentlichen Schl ussel K werden die verschiedenen Runden-
schl ussel berechnet. Jeder dieser Rundenschl ussel wird auf alle Bl ocke einer
Runde angewandt. S K = S
Danach ist eine Runde vollendet und das Ganze wird je nach Rundenan-
zahl oft wiederholt.[18]
3.3 Counter Mode
Die verschiedenen Betriebsmodi bestimmen, wie die Verschl usselung der Klar-
textbl ocke vor sich geht. Die Arbeitsweise einer Betriebsart ist unabh angig
von der Wahl der Blockchire. Je nach den Anforderungen der Anwendung
verwendet man einen anderen Modus. F ur die Erzeugung von Zufallszah-
len eignen sich nur zwei Modi, n amlich der Output Feedback Mode und der
Counter Mode.
1. OFB (Output Feedback) Mode
In diesem Betriebsmodus wird der Verschl usselungsalgorithmus als Pseu-
dozufallsfolgengenerator verwendet. Die Ausgabe der Blockchire wird,
wie in in Abbildung 3.5 dargestellt, mit dem Klartext p
i
bitweise per
XOR verkn upft um daraus den Geheimtext c
i
zu bilden. Dieses Ver-
fahren erzeugt damit einen Stromchire. Die Ausgabe eines Blockchif-
freblockes wird gleichzeitig als Eingabe f ur den nachsten Block genutzt.
39
Der Initialisierungsvektor c
0
ist als Startwert zu sehen und vom gew ahl-
ten Schl ussel unabh angig.
Die Entschl usselung, die in Abbildung 3.6 gezeigt wird, erfolgt analog,
nur dass anstatt des Klartextes p
i
der verschl usselte Text c
i
als Ein-
gabe verwendet wird. Dieser wird mittels XOR mit der Ausgabe des
vorhergehenden Blockes verkn upft.
Einer der Vorteile ist, dass die Bitfolge bereits vorab berechnet wer-
den kann. Weiters besteht bei diesem Modus der Vorteil, dass sich bei
der Entschl usselung
Ubertragungsfehler nur auf die jeweilige fehlerhaf-
te Bitstelle im entschl usselten Klartext auswirken. Somit panzt sich
der Fehler nicht im Klartext fort.
Dieser Modus ist f ur das Online Casion nicht geeignet, weil die Peri-
odenl ange nicht xiert ist. Die Wahrscheinlichkeit dass eine hohe Peri-
ode eintritt ist genauso wahrscheinlich wie eine kurze, was eine Gefahr
f ur die Sicherheit der erzeugten Zufallszahlen mit sich bringt.
Abbildung 3.5: OFB Verschl usselung
Abbildung 3.6: OFB Entschl usselung
2. Counter (CTR) Mode
Wie der OFB Modus verwandelt auch dieser Modus eine Blockchire
in eine Stromchire. Anstatt einen Klartextblock als Eingabe f ur die
Blockchirierung zu verwenden, nimmt man einen Z ahler (counter) als
40
Eingabe. Dieser kann jede beliebige Funktion mit einer m oglichst langen
Periode sein.
Abbildung 3.7: Verschl usselung im Counter Mode
Wie in Abbildung 3.7 gezeigt, erh oht man nach jeder Verschl usselung
eines Blockes den Z ahler um einen bestimmten Wert. Der Z ahler muss
aber nicht alle Werte der Reihe nach durchzahlen, sondern kann auch
beliebige Zufallszahlen verwenden. Der Vorteil des Counter Modus ist,
dass man den i-ten Schl usselblock k
i
erzeugen und direkt auf diesen
zugreifen kann, ohne dazu alle vorherigen Schl usselbl ocke generieren zu
m ussen. Der Z ahler wird einfach auf den i-ten internen Zustand gesetzt
und der gew unschte Block erzeugt.
Die Entschl usselung im Counter Mode ist analog zur Verschl usselung.
Dies wird in Abbildung 3.8 veranschaulicht.
Abbildung 3.8: Entschl usselung im Counter Mode
Eine weitere wichtige Eigenschaft des CTR Modus f ur das Online Casi-
no ist, dass die Periodenlange, die im Gegensatz zum OFB Modus, be-
kannt ist und sich nicht verandert. Wie schon erw ahnt ist eine m oglichst
41
lange Periode wichtig. Die Periodenlange vom Klartext ist dabei ident
mit der des Geheimtextes. Auerdem erfolgt keine Fehlerfortpanzung,
da die Bl ocke unabh angig von einander verschl usselt werden. Da die
Werte parallel berechnet werden ist dieser Modus besonders schnell
und ezient. [11] [10] [12]
Aus den oben genannten Gr unden ist der Counter Mode der einzige Be-
triebsmodus, der f ur das Online Casino geeignet ist.
42
Kapitel 4
Resumee
Zum Abschluss dieser Arbeit soll noch einmal die Entscheidungsndung be-
gr undet werden. Nach eingehender Bearbeitung der Materie kamen wir zu
dem Schluss, dass der Advanced Encryption Standard im Counter Mode der
am Besten geeignete Generator zur Zufallszahlenerzeugung f ur ein Online Ca-
sino ist. AES erzeugt Zufallszahlenfolgen, welche alle n otigen Voraussetzun-
gen erf ullen, wie Gleichverteilung, Zuf alligkeit, Unvorhersagbarkeit und eine
groe Periodenlange. Dieser wissenschaftlich fundierter Generator ist sehr ef-
zient, da die Schnelligkeit durch den Counter Mode gew ahrleistet wird und
dieses Verfahren zerst ort alle erkennbaren Muster im Output. Alle zur Zeit
bekannten Attacken, selbst die dierentielle Kryptoanalyse, sind wirkungslos
gegen AES und es besteht auch die modernsten statistischen Testbatteri-
en. Da der Algorithmus f ur jeden oentlich zug anglich ist, und sich leicht
in Programmiersprachen implementieren l asst, ist AES einfach verwendbar.
Nach aktuellem Stand der modernen Forschung ist AES deshalb
State of
the Art.
43
Abbildungsverzeichnis
2.1 Eine Runde - DES Verschl usselung mit der Feistel-Chire . . . 23
3.1 Ausgangszustand S . . . . . . . . . . . . . . . . . . . . . . . . 33
3.2 Ablauf einer Runde . . . . . . . . . . . . . . . . . . . . . . . . 34
3.3 Die S - Box [18] . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.4 ShiftRow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.5 OFB Verschl usselung . . . . . . . . . . . . . . . . . . . . . . . 40
3.6 OFB Entschl usselung . . . . . . . . . . . . . . . . . . . . . . . 40
3.7 Verschl usselung im Counter Mode . . . . . . . . . . . . . . . . 41
3.8 Entschl usselung im Counter Mode . . . . . . . . . . . . . . . . 41
44
Tabellenverzeichnis
1.1 Arten von Zufallszahlengeneratoren . . . . . . . . . . . . . . . 4
3.1 Die Parameter von Rijndael . . . . . . . . . . . . . . . . . . . 33
45
Literaturverzeichnis
[1] Turingmaschinen. http://www.hib-wien.at/leute/wurban/
informatik/automaten/turingmaschinen.pdf, 03.2010.
[2] Dierenzielle Kryptoanalyse Wikipedia. http://de.wikipedia.org/
wiki/Differenzielle_Kryptoanalyse, 08. Juni 2010.
[3] Galoiskorper. http://www.fbmn.h-da.de/
~
ochs/pdf/mathe1/
galois.pdf, 1. Mai 2010.
[4] Hashfunktion Wikipedia. http://de.wikipedia.org/wiki/
Hashfunktion, 10. M arz 2010.
[5] Kerckhossches Prinzip. http://de.wikipedia.org/wiki/
Kerckhoffs_Prinzip, 17. Juni 2010.
[6] Linearer Kongruenzgenerator. http://www.staff.uni-mainz.de/
pommeren/DSVorlesung/KryptoBasis/PseudoZuf.html, 27. Maerz
2010.
[7] Blum Blum Shub- Generator. http://de.wikipedia.org/wiki/
Blum-Blum-Shub-Generator, 29. Maerz 2010.
[8] Kolmogorovkomplexit at. http://www.cs.uni-potsdam.de/ti/lehre/
09-Kolmogorov/slides/slides-intro.pdf, April 2010.
[9] Blockchiren. http://random.mat.sbg.ac.at/
~
peter/students/
unterlagen/KRY_Blockchiffren.pdf, Februar 2010.
[10] Betriebsarten. http://www.inf.uos.de/kombalg/lehre/dkv0607/
praesenz/betriebsarten.pdf, Marz 2010.
[11] Computersicherheit. http://public.beuth-hochschule.de/
~
rweis/
vorlesungen/ComputerSicherheit/WeisBlockCipherModes.pdf,
M arz 2010.
46
[12] Kryptographie. http://th.informatik.uni-mannheim.de/teach/
Krypto-06/Krypto-SS06-08.pdf, Marz 2010.
[13] Andrew S. Tannenbaum. EBOOK Computer Networks, volume 4. 2003.
[14] Ao. Univ.Prof. Dr. Andreas Uhl. Skriptum zur VO Grundlagen IT-
Sicherheit und Kryptographie. http://www.cosy.sbg.ac.at/
~
uhl/
crypt2.pdf.
[15] Burkhard Lenze. Basiswissen Angewandte Mathematik.
[16] Cemper Beate und Florian Thomas und Gutknecht Axel. Statistisches
Testen von Zufallszahlen. 2010.
[17] TU Chemnitz. Kryptographisch sichere Zufallszahlen. http://www.
tu-chemnitz.de/urz/lehre/rs/rs02/krypto/crrng.htm, 17. Febru-
ar 2010.
[18] Douglas R. Stinson. Cryptography - Theory and Practice, volume 2.
Chapmann & Hall/CRC, United States of America, 2002.
[19] Dr. Cetin Kaya Koc. One-Time Pad or Vernam Cipher. http:
//security.ece.orst.edu/koc/ece575/notes/L3.pdf.
[20] Duden Verlag , Mannheim. Duden Informatik. 1997.
[21] Gerald und Susanne Teschl. Mathematik fuer Informatiker Band 1:
Diskrete Mathematik und Lineare Algebra. Springer Verlag GmbH, 2006.
[22] Harald Niederreiter. Random Number Generation and Quasi-Monte
Carlo Methods, SIAM. 1992.
[23] D. E. Knuth. The Art of Computer Programming, volume 2: Seminu-
merical Algorithms. Addison Wesley, 1997.
[24] Lado Kumsiashvili und Alexander Podlich. (Pseudo-) Zufallszah-
len. http://www.mathematik.uni-kassel.de/
~
debeerst/krypto/
projekte/Zufallszahlen.pdf, 2007.
[25] Peter Hellekalek. Einf uhrung in die Kryptologie. 2008. Universit at
Salzburg.
[26] Peter Hellekalek. Zahlentheorie und Algebra. 2008. Universitat Salzburg.
[27] Philipp Maislinger und Zeljka Ubovic. Sicherheit von Online-Casions.
2010.
47
[28] Pierre LEcuyer. Uniform Random Number Generation.
[29] TCD THE DISTRIBUTED SYSTEMS GROUP, Computer Science De-
partment. Random Number Generators: An Evaluation and Comparison
of Random.org and Some Commonly Used Generators. April 2005.
[30] Wikipedia. Rijndael mixcolumns, 2009. 21. April 2010.
[31] Wolfgang Schmidt. (Zahlentheorie Vorlesung). Universit at Salzburg,
Sommersemester 2008.
48