Vous êtes sur la page 1sur 49

Zufallszahlengenerator

f ur ein Online Casino


Bachelorarbeit
eingereicht von
Barbara Fr

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

faire M unze wird endlich oft geworfen, wodurch eine endliche


Zufallszahlenfolge entsteht. Eine M unze ist also der einfachste Zufallszah-
lengenerator mit dem sich bin are Zufallsfolgen aus 0 und 1 erzeugen lassen
(0 f ur Kopf und 1 f ur Zahl). Es ist nicht m oglich vorherzusagen auf welche
Seite eine M unze fallen wird, wenn man sie wirft. Auch wenn man den Aus-
gang von sogar 1000 W urfen dokumentiert, ist es unm oglich den n achsten zu
wissen. Eine Zufallszahlenfolge, die mit einer M unze erstellt wurde, k onnte
demnach wie folgt aussehen: Angenommen die M unze wird 23 mal geworfen.
- 00101111011000010101110
- 11111111111111111111111 . . . keine Gleichverteilung
- 10010010010010010010010 . . . Periodizit at
Intuitiv w urde man sagen, dass nur die erste Folge zufallig ist, obwohl f ur
jede Zier das Auftreten an jeder Position gleich wahrscheinlich ist, n amlich
1
2
. Jede Folge von n M unzw urfen hat wahrscheinlichkeitstheoretisch die glei-
che Wahrscheinlichkeit von
1
2
n
. Somit gibt es beim 23-maligen Werfen ins-
gesamt 2
23
m ogliche Ausg ange, welche mit 2
23
alle gleich wahrscheinlich
sind. F ur das Online Casino muss eine Folge jedoch vielmehr Eigenschaften
erf ullen als nur die stochastische Unabh angigkeit, um als zuf allig zu gelten.
Sie muss eine ganze Reihe von statistischen Tests bestehen. Auerdem muss
Gleichverteilung herrschen und die Folge muss eine m oglichst hohe Periode
aufweisen. [24] [28]
Um die Zufalligkeit besser beschreiben zu k onnen betrachten wir die Kolmo-
gorovkomplexitat genauer. Diese Theorie behandelt im Besonderen endliche
Zufallszahlenfolgen.
Die Kolmogorovkomplexitat (auch Algorithmische Komplexitat ge-
nannt) kombiniert Informations- und Berechenbarkeitstheorie, um den Infor-
mationsgehalt eines einzelnen Objekts, auch Komplexit at genannt, absolut
und objektiv beschreiben zu k onnen. Somit ergibt sich daraus ein objektiver
Begri f ur die Zufalligkeit eines Objekts. Die Algorithmische Komplexit at
eines Objekts ist die L ange des k urzesten Programms, das dieses Objekt
erzeugt (also die k urzeste eektiv berechenbare Beschreibung). Je mehr Re-
gelm aigkeiten ein Objekt aufweist, desto k urzer l asst es sich beschreiben,
desto st arker komprimierbar ist es. Je weniger Struktur eine Zahlenfolge auf-
weist, desto weniger komprimierbar ist sie und damit zuf alliger. Die Berech-
nung ist bis auf eine additive Konstante unabhangig vom Maschinenmodell,
6
da das Programm als eine optimale universelle Turingmaschine gesehen wird.
[8]
1936 stellte Alan Turing (1912-1954) in seiner ber uhmten Arbeit On
Computable Numbers lange vor der Erndung der Computer ein Modell ei-
ner Rechenmaschine vor: die Turingmaschine. Diese Maschine soll m oglichst
einfach konzipiert sein und alles leisten konnen, was man durch einen Algo-
rithmus formulieren kann. [1]
Klassische Wahrscheinlichkeitstheorie erlaubt keine Aussage uber die Zu-
f alligkeit eines individuellen Objekts, sondern nur uber Erwartungen bez uglich
der Ergebnisse zuf alliger Prozesse.
Die Kolmogorovkomplexitat jedoch bietet eine gute Denition von Zuf allig-
keit: Nur Objekte, die nicht wesentlich k urzer als durch buchstabli-
ches Hinschreiben (also als das Objekt selbst) beschrieben werden
konnen, sind zufallig.
Weiters beschreibt diese Denition den Informationsgehalt eines Objekts
in Abh angigkeit vom Objekt selbst: Wie lang ist die k urzeste Beschreibung
dieses Objekts und gibt es uberhaupt eine k urzere Beschreibung?
Es gibt viele M oglichkeiten einen Zufallszahlengenerator zu konstruieren. In
den folgenden Abschnitten wird genauer auf die unterschiedlichen Arten ihrer
Entstehung, ihre Funktionsweise und die verschiedenen Anwendungsbereiche
eingegangen. Nur bei genauerer Betrachtung der diversen Generatoren wird
ersichtlich, welche f ur das Online Casino in Frage kommen.
2.2 Physikalische Generatoren
Zufallszahlengeneratoren werden entweder in physikalische Generatoren oder
in Algorithmische Generatoren eingeteilt. In diesem Kapitel werden physi-
kalische Zufallszahlengeneratoren beschrieben und erkl art, ob sie f ur die Er-
zeugung von Zufallszahlen f ur das Online Casino ben utzt werden k onnen.
Physikalische Generatoren, oder auch Hardware Generatoren genannt,
n utzen physikalische Prozesse zur Gewinnung von Zufallszahlen. Dabei k onnen
alle Arten von Quellen herangezogen werden.
Zufallsquellen aus der Natur:
- atomarer Zerfall (zuf allige Impulse je Zeiteinheit)
- thermisches Rauschen (zuf allige Spannung)
Zufallsexperimente:
7
- W urfeln
- M unzwurf
- ziehen aus einer Urne
Weitere zufallige Quellen sind die Tastenanschl age auf einer Computerta-
statur oder der Trac auf einer Netzwerkkarte. All diese Prozesse benotigen
eine relativ lange Zeit, um erzeugt und gemessen zu werden. F ur alle Quellen
gilt zusatzlich, um so l anger zwei Messungen zeitlich auseinander liegen, um
so weniger korreliert sind die Zahlen.
+ Der gr ote Vorteil der Hardware Generatoren ist, dass sie nicht de-
terministisch sind. Die gewonnenen Zahlen lassen sich durch keinen
mathematischen Algorithmus beschreiben, deshalb ist die Unvorher-
sagbarkeit mit diesen Generatoren am besten gew ahrleistet. Es gibt
keine Periode, was bedeutet dass die Folge unendlich ist. Solange die
Erzeugung nicht abgebrochen wird, wird niemals eine Wiederholung
auftreten. Somit ist die gewonnene Zahlenfolge nicht reproduzierbar,
also echt zufallig.
- Ihr gr oter Nachteil ist jedoch die Alterung der Messgerate. Beim Gei-
ger-M uller-Zahlrohr beispielsweise, ist die geringe Lebensdauer, welche
typischerweise auf eine Billion Pulse beschr ankt ist, ein weiteres Pro-
blem. Auerdem gelten physikalische Zufallszahlengeneratoren nicht als
schnell, was jedoch beim Online Casino vorausgesetzt wird. Zudem
muss die Abh angigkeit von Umweltein ussen wie Temperatur, Ma-
gnetfeldern und der Versorgungsspannung beachtet werden. Das Preis-
Leistungs Verhaltnis ist ebenfalls nicht vorteilhaft, wenig ezient sind
und die Anschaung mancher Ger ate hohe Kosten verursacht.
F ur das Online Casino wird in relativ kurzer Zeit eine sehr groe Menge an
Zufallszahlen ben otigt. Diese Anforderungen konnte kein physikalischer Zu-
fallszahlengenerator erf ullen, weshalb ein Algorithmischer Generator besser
geeignet ist.
2.3 Algorithmische Generatoren
Algorithmische Generatoren, auch Pseudozufallsgeneratoren genannt, sind
Instrumente zur determinierten (nicht zufalligen) Erzeugung von Zufallszah-
lenfolgen. Diese Generatoren werden im Gegensatz zu den physikalischen
8
Generatoren durch mathematische Algorithmen erzeugt. Jeder Algorithmus
beginnt sich nach einer gewissen Anzahl von Ausgaben zu wiederholen, da nur
ein begrenzter Zahlenbereich zur Verf ugung steht. Beim Online Casino muss
jedoch die Unvorhersagbarkeit gew ahrleistet sein, weshalb Wiederholungen
von Zahlenbl ocken untersagt sind. Sonst ware es m oglich Teile der Folge zu
reproduzieren. Da jeder Pseudozufallsgenerator periodisch ist, m ussen Algo-
rithmen mit einer m oglichst groen Periode gefunden werden.
Ein wichtiges Kriterum f ur die Sicherheit des Generators ist die Gleich-
verteilung. Wenn zum Beispiel Zahlen von 0 bis 1 erzeugt werden, sollen
25% der Zahlen zwischen 0 und 0,25 liegen. Ein Zufallszahlengenerator gilt
als vorhersagbar, wenn die Wahrscheinlichkeit eines Bits einer 0-1-Folge von
der Wahrscheinlichkeit
1
2
abweicht.
Pseudozufallsgeneratoren brauchen einen Startwert, auch

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:

Wenn man Zufallszahlen und Computer im selben Atemzug nennt, scheint


dies fast ein Widerspruch zu sein, das Wesen der Zufalligkeit ist das Fehlen
eines Verfahrens oder Mechanismus. [24]
Die Sicherheit eines Pseudozufallsgenerators sollte keinesfalls nur durch
die Geheimhaltung des Algorithmus gegeben sein. Das besagt auch das Kerck-
hossche Prinzip [5], das bereits 1883 von Auguste Kerckho formuliert wur-
de und immer noch der Grundsatz der modernen Kryptographie ist. Gute
Generatoren zeichnen sich dadurch aus, dass sie genauestens analysiert sind,
das Verfahren bekannt ist und sie trotzdem die Unvorhersagbarkeit noch
gew ahrleisten k onnen. Das Problem der Geheimhaltung besteht vorallem im
zwischenmenschlichen Bereich, beispielsweise k onnen durch Erpressung Ge-
heimnisse entlockt werden oder durch K undigungen in Firmen Algorithmen
absichtlich verraten werden. Weiters besteht das Problem auch in den immer
schneller werdenden Computern, die viele Algorithmen durch verschiedene
Attacken knacken k onnen. Ein Vorteil eines oentlichen Verschl usselungsal-
gorithmus besteht auerdem darin, dass Sicherheitsl ucken schneller entdeckt
werden, da jeder auf das Verfahren zugreifen und es uberpr ufen kann. Bei
9
einem oentlich zug anglichen Algorithmus steht es Experten aus aller Welt
frei, den Generator auf Fehler zu durchsuchen. Geheime Algorithmen sind
oft schwach und leicht zu knacken. [29]
Im Folgenden werden zwei Pseudozufallsgeneratoren als Beispiel dazu ge-
nauer erklart: der Lineare Kongruenzgenerator und der Blum-Blum-Shub
Generator.
Lineare Kongruenzgeneratoren
Der Lineare Kongruenzgenerator (englisch: linear congruential generator,
LCG) ist einer der altesten und bekanntesten Pseudozufallszahlengenera-
toren. Das Verfahren ist leicht zu verstehen und ebenso unkompliziert zu
verwenden.
Eine Folge (x
n
) von Zufallszahlen im ganzzahligen Intervall [0, . . . , m1] mit
m N wird durch folgende Rekursionsformel erzeugt:
x
n
= (a x
n1
+ b) (mod m)
Dabei ist x
n
die neu generierte

Zufallszahl. Weiter ist m mit m > 0 der


Modulus, a mit 0 < a < m der Multiplikator und x
0
mit x
0
< m der
Startwert.
Der LCG hat die Periode m. Bei geschickter Wahl der Parameter kann
man eine Periode der L ange m erreichen, und die gewonnenen Zahlen sind
kaum von einer gleichverteilten Folge zu unterscheiden. Die Qualit at des Ge-
nerators hangt also stark von den gew ahlten Parametern ab.
Der Lineare Kongruenzgenerator ist sehr schnell und ben otigt wenig Spei-
cher. Er sollte jedoch nicht f ur kryptographische Anwendungen oder andere
Berechnungen verwendet werden, bei denen Unvorhersagbarkeit vorausge-
setzt wird. Die Zahlen sind nicht wirklich zufallig, sondern haben nur einige
Eigenschaften von

echten Zufallszahlen. Mit zahlentheoretischen Methoden


ist leicht eine Kryptoanalyse moglich: Aus einem kurzen bekannten St uck der
Folge l asst sich der weitere Folgenverlauf vorhersagen, auch wenn alle Para-
meter unbekannt sind. [6]
Blum-Blum-Shub Generator
Der Blum-Blum-Shub Generator (kurz BBS-Generator) wurde von Lenore
Blum, Manuel Blum und Michael Shub entwickelt, nach denen er auch be-
nannt wurde. Dieser Softwaregenerator erzeugt eine Folge (x
i
) von Zufalls-
zahlen durch folgende Iterationsformel:
x
0
= s
2
(mod n)
x
i+1
= x
2
i
(mod n)
10
Die Variablen s und n werden nach diesem Prinzip gefunden: Zuerst w ahlt
man zwei Primzahlen p und q mit p ,= q und p q 3 (mod 4). Daraus wird
der Modul n als Produkt der beiden Primzahlen n = p q deniert. s ist der
zuf allig gew ahlte Startwert. Dabei ist darauf zu achten, dass der Startwert s
zum Modul n teilerfremd sein muss, das heit ggT(s, n) = 1.
Der BBS-Generator ist nicht f ur die stochastische Simulation geeignet,
da er sehr langsam ist und wie im Abschnitt 2.4 erklart wird, werden in dem
Gebiet der stochastischen Simulation in kurzer Zeit viele Zahlen ben otigt. Der
Generator gilt jedoch als sicher, aufgrund der Faktorisierung von n und der
quadratischen Reste modulo n. Die Suche nach einem nichttrivialen Teiler der
Zahl n ist schwierig. Je h oher man die Primzahlen p und q w ahlt, desto starker
sinkt die Wahrscheinilchkeit einen Teiler zu nden. Selbst moderne Computer
haben damit ihre Probleme.

Ahnlich ist es bei den quadratischen Resten. Es
ist aufwandig zu entscheiden, ob eine Zahl p (oder q) ein quadratischer Rest
einer anderen Zahl in einem Restklassenring ZnZ ist. [18] [7]
Der BBS-Generator ist nicht f ur das Online Casino geeignet, da er zu ine-
zient ist.
Algorithmische Generatoren werden vor allem in den Bereichen der Sto-
chastischen Simulation und der Kryptographie benotigt. Es bestehen groe
Unterschiede zwischen kryptographischen Generatoren und jenen, die in der
Stochastischen Simulation eingesetzt werden, da f ur die beiden Gebiete vollig
andere Vorraussetzungen erf ullt werden m ussen.
2.4 RNGs in der Stochastischen Simulation
Ein verl asslicher Pseudozufallszahlengenerator ist die essentielle Basis f ur je-
de Art der Stochastischen Simulation. Die dadurch erhaltenen Zufallszahlen
m ussen die komplexe Situation exakt simulieren, und zwar so, dass kein Un-
terschied zu in der Realit at erhaltenen Zahlen erkennbar ist. An jede einzelne
Situation werden nat urlich andere Anforderungen gestellt, jedoch sollte sich
der gew ahlte Generator an m oglichst viele Situationen ann ahern. Es gilt f ur
alle Generatoren:
Zahlen m ussen sich gut an die komplexen Situationen annahern
Generator muss gleichverteilte, realistische Zahlen liefern
Zuf alligkeit der Zufallszahlen: Erf ullung theoretischer Eigenschaften in
Bezug auf die zu simulierende Situation
11
Zufallszahlen m ussen statistische Tests bestehen
Generator muss moglichst viele Zahlen in sehr kurzer Zeit liefern
groe Periodenlange
Unvorhersagbarkeit der Zufallszahlen ist zweitrangig Reproduzier-
barkeit gew unscht
Welche Qualitatskriterien m ussen beim Wahlen eines geeigneteten Zu-
fallszahlengenerator beachtet werden? Deterministische Generatoren sind in
der Stochastischen Simulation von groem Vorteil, da bei gleichem Einga-
bewert immer wieder die selbe Zufallszahlenfolge generiert wird. Dies ist
besonders beim Testen, Verbessern und

Uberpr ufen der einzelnen komplexen
Situationen wichtig, da sonst riesige Mengen von Zahlen gespeichert werden
m ussten, um vergleichbare Ergebnisse zu erhalten. Dies h atte gigabytegroe
Datenbanken zur Folge. Um verschiedenste Situationen simulieren zu k onnen
wird ein ezienter Generator benotigt. Das bedeutet, er soll moglichst viele
Zahlen in sehr kurzer Zeit erzeugen. Eine sehr lange Periode ist wichtig, da-
mit keine gleichen Sequenzen in der erzeugten Folge vorkommen. Die L ange
der Periode muss anhand eines mathematischen Beweises belegt sein. Weiters
muss der Pseudozufallszahlengenerator in allen Plattformen benutzt werden
k onnen.
Empfehlenswert f ur die stochastische Simulation sind die schnellen und
zuverl assigen Generatoren von Makoto Matsumoto, wie der Mersenne Twi-
ster oder die Algorithmen von Pierre LEcuyer. [28]
Der Mersenne Twister wurde 1997 von Makoto Matsumoto und Takuji
Nishimura entwickelt. Hierbei handelt es sich um einen Pseudozufallszah-
lengenerator, der die schnelle Erzeugung hochwertiger Sequenzen von Pseu-
dozufallszahlen ermoglicht. Er hat die extrem lange Periode von 2
19937
1.
Diese Periodenl ange erkl art auch den Namen des Algorithmus: Sie ist eine
Mersenne-Primzahl und einige Eigenschaften des Algorithmus resultieren aus
dieser Eigenschaft. Der Generator liefert hochgradig gleichverteilte Sequen-
zen. Daraus folgt eine extrem kleine Korrelation zwischen aufeinanderfolgen-
den Wertefolgen der Ausgabesequenz. Er ist ein sehr schneller und ezienter
Algorithmus und alle Bits der Ausgabesequenz sind f ur sich gleichverteilt.
Generatoren, die in der stoschastischen Simulation verwendet werden,
sind v ollig ungeeignet f ur das Online Casino, da sie zwar sehr ezient sind
und gute gleichverteilte Zahlen liefern, jedoch reproduzierbar sind und eine
geringe Komplexit at aufweisen.
12
2.5 RNGs in der Kryptographie
Eine zweite Art von Pseudozufallszahlengeneartoren sind RNGs, die in der
Kryptographie verwendet werden. Das Ziel kryptographischer Generatoren
ist es, Sicherheit zu gewahrleisten. Die Zufallszahlenfolgen d urfen, im Ge-
gensatz zu jenen in der stochastischen Simulation, nicht reproduzierbar und
nicht vorhersagbar sein, auch wenn die Schnelligkeit der RNGs m oglicherwei-
se darunter leidet.
Kryptographische Generatoren arbeiten mit einem Schl ussel. Solange die-
ser Schl ussel geheim bleibt, gilt der Generator als sicher und es ist nicht
m oglich die Zahlen vorherzusagen. Pseudozufallsgeneratoren, die nicht aus
der Kryptographie stammen, benutzen oft keinen geheimen Schl ussel, wes-
halb die Zufallszahlenfolge leicht reproduzierbar ist, sobald dem Angreifer
der Algorithmus und ein einziger Wert der Folge bekannt sind.
Voraussetzungen f ur kryptographische Generatoren sind:
es darf trotz Kenntnis des Algorithmus und aller zuvor erzeugten Zahlen
keine Vorhersage der n achsten Zahl m oglich sein
die Sicherheit derartiger Generatoren beruht auf der Geheimhaltung
des Schl ussels, von dem die jeweils generierte Folge eindeutig abh angt,
da er den Anfangszustand des Generators bestimmt (kennt ein Angrei-
fer den geheimen Schl ussel kann er sofort alle Zahlen reproduzieren)
der Generator muss gegen alle bekannten Arten der Attacke resistent
sein
Die bekanntesten Formen der Attacke:
Vollstandige Suche (brute-force Attacke, Holzhammermethode)
Der Schl usselraum wird vollst andig durchsucht. Es werden alle
M oglichkeiten ausprobiert bis der passende Schl ussel gefunden ist
Schutz: Groe, eektive Schl ussellange, lange Periode
statistische Geheimtextanalyse (ciphertext-only Attacke)
Statistische oder zahlentheoretische Methoden
Mustererkennungsmethode
einfachstes Beispiel: Durch die Wahrscheinlichkeitsverteilung der
Buchstaben im Alphabet wird der Geheimtext entschl usselt. Das
h augste Zeichen im deutschen Geheimtext ist zum Beispiel der
Buchstabe e
13
Dierentielle Kryptoanalyse
Bei diesem Verfahren werden zwei ahnliche Klartexte, die sich nur
in wenigen bestimmten Punkten unterscheiden, durch das Ver-
schl usslungsverfahren, das meist aus mehreren Runden besteht,
geschickt. Nach jeder Runde werden Plain- und Ciphertexte ver-
glichen. Es wird versucht Muster in der Dierenz zu erkenen und
dadurch den geheimen Schl ussel herzuleiten [2]
Die Ausgabewerte eines kryptographisch sicheren Zufallszahlengenerators
k onnen nicht von

echten Zufallszahlen unterschieden werden. Statistische


Tests liefern keinen Hinweis darauf, dass die Zahlen keiner echt zuf alligen
Folge entstammen, da sie gleichverteilt sind und die Generatoren mit groen
Perioden arbeiten. [17]
Kryptographisch sichere Zufallszahlen k onnen durch folgende Verfahren er-
zeugt werden:
Blockchiren, (AES in Counter Mode, DES) Kapitel 2.8
Stromchiren, (One Time Pad) Kapitel 2.8
Einweg-Hashfunktionen, Unterkapitel 2.5
Als n achstes wird auf die zwei Verfahren Hashfunktionen und One-Time Pad
zur Zufallszahlenerzeugung eingegangen.
Hashfunktionen
Kryptographische Hashfunktionen nden ihre Anwendung in der

Uberpr ufung
von Passw ortern und der Digitalen Signatur. Sie werden hauptsachlich ver-
wendet, um Integrit at und Authentizit at eines Dokuments zu garantieren.
Digitale Signaturen haben eine ahnliche Funktion wie eine Unterschrift auf
einem Dokument.
Denition 2.5.1. (Hash-Funktion)
Eine Funktion h die zumindest folgende zwei Eigenschaften erf ullt, heit
Hash-Funktion:
- Kompression: h bildet einen Input x beliebiger Bitlange auf den Output
h(x) = y fester Bitlange n (zum Beispiel n = 128, 160, 192 oder 256 Bit)
ab.
- Eziente Berechnung: seien h und eine Eingabegroe x gegeben, so
gibt es ein ezientes Verfahren zur Berechnung von h(x).
14
Der Funktionswert h(x) wird Hash-Wert, Fingerabdruck oder einfach nur
Hash genannt. [27]
Da Hashfunktionen nicht injektiv und nicht notwendigerweise surjektiv
sind, ist es m oglich, dass Kollisionen entstehen.
Denition 2.5.2. (Kollision)
Sei eine Hash-Funktion h gegeben.
Eine Kollision zu h ist ein Paar (x, x

), x ,= x

mit der Eigenschaft h(x) =


h(x

). Hierbei sind sowohl (x, y) als auch (x

, y) g ultige Paare. [27]


Eine spezielle Hashfunktion ist die Einweg-Hashfunktion. Sie kann zur
Erzeugung von Zufallszahlen verwendet werden. Um die Sicherheit gew ahr-
leisten zu konnen ist es wichtig, dass der Hash-Wert h(x) relativ einfach
berechenbar ist, die Umkehrung jedoch beinahe unm oglich. F ur eine Einweg-
Hashfunktion muss also gelten:
- Es sollte mit gegebenem Output-Wert y schwer m oglich sein, einen
Wert x zu nden, mit h(x) = y
- Kollisionsresistenz: Es sollte nicht moglich sein, f ur einen gegebenen
Wert x einen weitern Wert x

, mit x ,= x

, zu nden, der denselben


Hashwert h(x) = h(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

gut eine Folge von


Zufallszahlen ist. Wie exakt die erzeugten Zahlen den statistischen Vorgaben
entsprechen, bestimmt die G ute eines Pseudozufallszahlengenerators. Dazu
geh ort die erzeugte Verteilung wie etwa die Normalverteilung, die Gleich-
verteilung, die Exponentialverteilung und ahnliche oder die Unabh angigkeit
aufeinanderfolgender Zahlen. Deshalb wurden verschiedenste Testbatterien
entwickelt, die die statistischen Vorgaben uberpr ufen. Besteht eine Zahlen-
folge verschiedene Testreihen T
1
, T
2
, . . . , T
n
, kann es immer noch m oglich sein
dass es einen Test T
n+1
gibt bei dem die Folge durchfallt. Zahlenfolgen die
vor einigen Jahren als zufallig galten, bestehen die moderneren Testbatte-
rien nicht mehr, da stetig neue und detailliertere Testverfahren entwickelt
werden. Das Ziel eines Zufallszahlengenerators ist es jedoch alle bekannten
16
statistischen Tests zu bestehen. Besonders strenge Anforderungen werden an
kryptographisch sichere Zufallszahlengeneratoren gestellt.
G utetests beruhen zum Beispiel auf dem Chi-Quadrat-Test und dem
Kolmogorow-Smirnow-Test, welche in der Bachelorarbeit

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

direkte Summe hat also nichts mit den gewohnten Summenbegrien zu


tun. [26]
26
Denition 3.1.14. (Polynom, formale Potenzreihe)
Sei (R, +, ) ein Ring. Wir bezeichnen die direkte Summe
(R, +) (R, +) (R, +) =: R[X]
mit R[X] und das direkte Produkt
(R, +) (R, +) (R, +) =: R[[X]]
mit R[[X]]. Wir nennen die Elemente von R[X] Polynome uber R und die
Elemente von R[[X]] formale Potenzreihen uber R.
F ur f = (a
0
, a
1
, a
2
, . . . ) R[X] heien a
0
, a
1
, . . . die Koezienten des
Polynoms f.
Das spezielle Polynom 0 = (0, 0, 0, . . . ) heit das Nullpolynom.
Sei f R[X] mit f ,= 0. Unter dem Grad von f verstehen wir die
nichtnegative ganze Zahl
deg(f) = maxn N 0 : a
n
,= 0.
Bemerkung 3.1.15. Wir erinnern an die Denition der direkten Summe
von Gruppen. Jedes Element f der direkten Summe
R[X] = (R, +) (R, +) (R, +) . . .
hat die Gestalt f = (a
0
, a
1
, a
2
, . . . ) mit a
i
R und es sind nur endlich viele
der a
i
verschieden vom Nullelement von R. Ab einer Stelle sind also alle
weiteren Koezienten a
i
gleich 0,
f = (a
0
, a
1
, a
2
, . . . , a
n
, 0, 0, . . . ).
Bemerkung 3.1.16. Aus der Vorlesung

Algebraische Strukturen wissen


wir in Zusammenhang mit dem direkten Produkt und der direkten Summe
von Gruppen, dass (R[X], +) mit der Verkn upfung (f = (a
0
, a
1
, a
2
, . . . ), g =
(b
0
, b
1
, b
2
, . . . ))
f + g = (a
0
+ b
0
, a
1
+ b
1
, a
2
+ b
2
, . . . )
eine kommutative Gruppe bildet.
Wir denieren nun auf R[X] eine zweite innere Verkn upfung:
f g = (c
0
, c
1
, c
2
, . . . ),
wobei
c
n
:=
n

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

Federal Information Processing Standard (FIPS).


Der Rijndael-Algorithmus bietet dem Benutzer eine variable Blockl ange
von 128, 192, 256 Bit und auch eine variable Schl ussell ange von 128, 192, 256
Bit.
32
Vorgangsweise von AES
Der einzige Unterschied zwischen AES und Rijndael ist die Blockl ange, die
bei AES mit 128 Bit festgelegt ist. Jeder Block wird aufgeteilt in Tabellen von
4 Zeilen, wobei die einzelnen Zellen die Zellengroe von einem Byte besitzen.
Ein Block des Ausgangszustandes wird mit S (State) bezeichnet.
S =
_
_
_
_
a
0,0
a
0,1
a
0,2
a
0,3
a
1,0
a
1,1
a
1,2
a
1,3
a
2,0
a
2,1
a
2,2
a
2,3
a
3,0
a
3,1
a
3,2
a
3,3
_
_
_
_
Abbildung 3.1: Ausgangszustand S
mit a
i,j
= 1 Byte, also 8 Bit.
Jeder Block wird nun verschiedenen Transformationen unterzogen. Die
Bl ocke werden jedoch nicht nur einmal mit dem Schl ussel verschl usselt, son-
dern AES wendet in jeder Runde Teile des erweiterten Originalschl ussels auf
die Klartextblocke an.
Die Rundenanzahl ist abhangig von der Schl ussellange k des Original-
schl ussels. Hierzu eine Tabelle 3.1 f ur die Rundenanzahl des Rijndael-Algo-
rithmus. F ur AES sind nur die Werte in der ersten Spalte wichtig, da die
Blockl ange auf b = 128 Bit festgelegt ist. b = Blockl ange; k = Schl ussell ange;
r = r(k, b)
r b = 128 b = 192 b = 256
k = 128 10 12 14
k = 192 12 12 14
k = 256 14 14 14
Tabelle 3.1: Die Parameter von Rijndael
Das heit, um einen Block zu verschl usseln braucht man h ochstens 14
Runden.
Es wird mit dem Ausgangszustand S begonnen. Wie in Abbildung 3.1 er-
kl art, ist S ein einzelner Block des Klartextes. Dieser durchlauft eine Runde.
Dann ist der erste Block des Klartextes einmal verschl usselt worden. Nach
einer Runde wird der neue Zustand mit S

bezeichnet. Das muss, abhangig


von der Schl ussellange entweder 10, 12 oder h ochstens 14 mal wiederholt
werden. Ist der erste Block abgearbeitet, also vollst andig verschl usselt, muss
man den nachsten Block des Ausgangszustandes S bearbeiten. Die Struktur
33
von AES ist sehr klar aufgebaut. Im n achsten Abschnitt dieser Arbeit werden
die einzelnen Transformationen einer Runde genauer erkl art.
S . . . Ausgangszustand

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

, das heit der erste


Eintrag der Matrix S wurde einmal verschl usselt.
Beispiel: Sei 53
(16)
gegeben. In Bin ardarstellung entspricht das 01010011
(2)
Das wird umgewandelt in Polynomform:
x
6
+ x
4
+ x + 1 GF(2
8
) = Z
2
[X]/x
8
+ x
4
+ x
3
+ x + 1
Als n achstes wird das multiplikative Inverse dieses Polynoms mit Hilfe des
erweiterten Euklidischen Algorithmus berechnet: Dazu wird zuerst der grote
gemeinsame Teiler berechnet:
(x
6
+ x
4
+ x + 1, x
8
+ x
4
+ x
3
+ x + 1)
(mittels Polynomdivision:
(x
8
+ x
4
+ x
3
+ x + 1) : (x
6
+ x
4
+ x + 1) = x
2
+ 1 und Rest x
2
)
(x
8
+ x
4
+ x
3
+ x + 1) = (x
2
+ 1) (x
6
+ x
4
+ x + 1) + x
2
(x
6
+ x
4
+ x + 1) = (x
4
+ x
2
) x
2
+ (x + 1)
(x
2
) = (x + 1) (x + 1) + 1
(x + 1) = (x + 1) 1 + 0
ggT(x
6
+ x
4
+ x + 1, x
8
+ x
4
+ x
3
+ x + 1) = 1
Wie erwartet ist der ggT eins.
35
Im folgenden wird r uckeingesetzt:
(x
2
) = 1 (x
8
+ x
4
+ x
3
+ x + 1) + (x
2
+ 1) (x
6
+ x
4
+ x + 1)
(x + 1) = (x
6
+ x
4
+ x + 1) + (x
4
+ x
2
) (x
2
) =
= (x
6
+ x
4
+ x + 1) + (x
4
+ x
2
) [(x
8
+ x
4
+ x
3
+ x + 1)+
+ (x
2
+ 1) (x
6
+ x
4
+ x + 1)]
= (x
6
+ x
4
+ x
1
) + (x
4
+ x
2
) (x
8
+ x
4
+ x
3
+ x + 1)+
+ (x
6
+ x
4
+ x
4
+ x
2
) (x
6
+ x
4
+ x + 1)
= (x
4
+ x
2
) (x
8
+ x
4
+ x
3
+ x + 1) + (x
6
+ x
2
+ 1) (x
6
+ x
4
+ x + 1)
1 = x
2
+ (x + 1) (x + 1) =
= (x
8
+ x
4
+ x
3
+ x + 1) + (x
2
+ 1) (x
6
+ x
4
+ x + 1) + (x + 1)
[(x
4
+ x
2
) (x
8
+ x
4
+ x
3
+ x + 1) + (x
6
+ x
2
+ 1) (x
6
+ x
4
+ x + 1)]
= (x
5
+ x
4
+ x
3
+ x
2
+ 1) (x
8
+ x
4
+ x
3
+ x + 1)+
+ (x
7
+ x
6
+ x
3
+ x) (x
6
+ x
4
+ x + 1)
Also:
1 = ggT(x
8
+ x
4
+ x
3
+ x + 1, x
6
+ x
4
+ x + 1)
(x
5
+ x
4
+ x
3
+ x
2
+ 1) (x
8
+ x
4
+ x
3
+ x + 1) mod(x
6
+ x
4
+ x + 1)
1 = ggT(x
8
+ x
4
+ x
3
+ x + 1, x
6
+ x
4
+ x + 1)
(x
7
+ x
6
+ x
3
+ x) (x
6
+ x
4
+ x + 1) mod(x
8
+ x
4
+ x
3
+ x + 1)
Das multiplikative Inverse von (x
6
+x
4
+x+1) ist also (x
7
+x
6
+x
3
+x).
Zur uckverwandelt in Bin ardarstellung: (a

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

Vous aimerez peut-être aussi