AES_inCounterMode

49
 Zufallszahlengenerator f¨ur ein Online Casino Bachelorarbeit eingereicht von Barbara Fr ¨ ohlich Stef anie Nemeth Isabella Sailer Betreuer: Ao.Univ.Prof. Dr. Peter Hellekalek Universit ¨ at Salzburg Juni 2010

description

Uploaded from Google Docs

Transcript of AES_inCounterMode

Page 1: AES_inCounterMode

5/12/2018 AES_inCounterMode - slidepdf.com

http://slidepdf.com/reader/full/aesincountermode 1/49

 

Zufallszahlengeneratorfur ein Online Casino

Bachelorarbeit

eingereicht von

Barbara Frohlich

Stefanie Nemeth

Isabella Sailer

Betreuer:

Ao.Univ.Prof. Dr. Peter Hellekalek

Universitat Salzburg

Juni 2010

Page 2: AES_inCounterMode

5/12/2018 AES_inCounterMode - slidepdf.com

http://slidepdf.com/reader/full/aesincountermode 2/49

 

Inhaltsverzeichnis

1 Einleitung 2

2 Grundlagen 52.1 Was ist Zufall? . . . . . . . . . . . . . . . . . . . . . . . . . . 52.2 Physikalische Generatoren . . . . . . . . . . . . . . . . . . . . 72.3 Algorithmische Generatoren . . . . . . . . . . . . . . . . . . . 82.4 RNGs in der Stochastischen Simulation . . . . . . . . . . . . . 112.5 RNGs in der Kryptographie . . . . . . . . . . . . . . . . . . . 132.6 Gute eines RNGs . . . . . . . . . . . . . . . . . . . . . . . . . 162.7 Stromchiffren . . . . . . . . . . . . . . . . . . . . . . . . . . . 192.8 Blockchiffren . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3 AES 243.1 Algebraische Voraussetzungen . . . . . . . . . . . . . . . . . . 243.2 Definition von AES . . . . . . . . . . . . . . . . . . . . . . . . 323.3 Counter Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

4 Resumee 43

1

Page 3: AES_inCounterMode

5/12/2018 AES_inCounterMode - slidepdf.com

http://slidepdf.com/reader/full/aesincountermode 3/49

 

Kapitel 1

Einleitung

Diese Arbeit widmet sich der Thematik zufalliger, nicht reproduzierbarerZahlen fur ein Online Casino. Zuerst stellt sich die essentielle Frage der De-finition der Zufalligkeit. Das Ziel ist es, einen passenden Zufallszahlengene-rator (englisch: Random Number Generator - RNG) zu finden, welcher dienotwendigen Bedingungen fur die Erzeugung von Zufallszahlen fur ein On-line Casino erfullt. Die Schwierigkeit besteht darin, den richtigen Generatorauszuwahlen, der die folgenden Punkte am Besten umsetzt:

• Effizienz

• Unvorhersagbarkeit der Zahlen

• keine erkennbaren Muster im Output

• Periodenlange soll gegenuber 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 thermischesRauschen eines Widerstands, Frequenzen eines Radiosignals oder radioak-tive Zerfallsvorgange. Diese naturlich gewonnenen Zahlen lassen sich durchkeinen mathematischen Algorithmus beschreiben oder finden, somit ist dieUnverhersagbarkeit mit diesen Generatoren am besten gewahrleistet. Jedochist ein physikalischer Generator zu langsam um eine solch große Menge anZahlen fur ein Online Casino zu liefern. Weiters ist auch die Lebenszeit

2

Page 4: AES_inCounterMode

5/12/2018 AES_inCounterMode - slidepdf.com

http://slidepdf.com/reader/full/aesincountermode 4/49

 

der Messgerate begrenzt, wodurch diese Erzeugungsmethode kostspielig und

umstandlich werden kann.Pseudozufallszahlengeneratoren werden im Gegensatz zu den vorher er-

wahnten physikalischen Generatoren durch mathematische Algorithmen er-zeugt, was bedeutet, dass sie deterministisch sind. Doch es stellt sich dieFrage: Wie kann ein deterministischer Generator zufallige, nicht reproduzier-bare Zahlen liefern, wenn sie zuerst durch einen vom Menschen programmier-ten Algorithmus erzeugt wurden? Heutzutage gibt es schon eine sehr großeVielfalt an unterschiedlichen Algorithmischen Generatoren, die mehr oderweniger sicher sind. Durch die Schnelligkeit der Computer werden immermehr Algorithmen geknackt, ehemals als sicher gegoltene Generatoren wer-

den entschlusselt und somit unsicher und unbrauchbar fur kritische Bereichewie Banken oder auch das Online Casino.

Der Vorteil der Pseudozufallsgeneratoren liegt in der Schnelligkeit undEffizienz. Da die Informatik eine sehr junge Wissenschaft ist, werden lau-fend schnellere Computer und bessere Algorithmen entwickelt. Das Problemder Ausfallsrate wie bei den physikalischen Generatoren ist hier nicht in die-sem Ausmaß gegeben, da Computer und Speicherplatten schnell und einfachausgetauscht werden konnen.

Es steht daher fest, dass ein Pseudozufallsgenerator fur das Online Casinoverwendet werden muss. Hierbei wird stark unter den Anwendungsgebieten

des Generators unterschieden. Die zwei Gebiete, in die unterteilt wird, sindGeneratoren in der Stochastische Simulation und Kryptographische Genera-toren. Generatoren, die in der Stochastischen Simulation verwendet werdensind sehr effizient, liefern jedoch reproduzierbare Zahlen. Diese Eigenschaftwurde jedoch die großte Gefahr fur das Online Casino bedeuten. Deshalbsind dafur alle Generatoren aus dem Gebiet der Stochastischen Simulationvollkommen ungeeignet.

In der Kryptographie wird vorallem darauf geachtet unvorhersagbare Zu-fallszahlen zu erhalten. Diese erzeugten Zahlen mussen gut bei StatistischenTests abschneiden, das heißt sie mussen eine Reihe von Tests bestehen, wel-che unterschiedliche Kriterien fur lokale und globale Zufalligkeit uberprufen.Lokal heißt in diesem Zusammenhang, dass Zahlen aus mehreren Teilinter-vallen getestet werden, wobei globale Tests die ganze Zufallszahlenfolge alsein Ganzes betrachten. Kryptographie ist nicht nur ein Werkzeug um na-tionale Geheimnisse und Strategien zu sichern, gleichzeitig wird sie auch inverschiedenen Gebieten wie elektronischer Datenverarbeitung und fur pri-vate Transaktionen uber das Internet verwendet. In all diesen Gebieten istSicherheit ein zentraler Aspekt, deshalb fallt auch die Thematik des OnlineCasinos in diesen Bereich.

3

Page 5: AES_inCounterMode

5/12/2018 AES_inCounterMode - slidepdf.com

http://slidepdf.com/reader/full/aesincountermode 5/49

 

Es gibt drei verschiedene Moglichkeiten einen Generator zu erhalten, der

kryptographisch sichere Zufallszahlen erzeugt:

• Stromchiffren

• Blockchiffren

• Hashfunktionen

Die Entscheidung fiel auf AES - Advanced Encryption Standard  , welcheszur Kategorie der Blockchiffren gehort. AES ist der wissenschaftlich fundier-teste Standard der modernen Verschlusselung. 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 Mathematikgroße Anerkennung gefunden. AES besteht alle statistischen Tests und kanndank verschiedener Betriebsmodi in vielen Bereichen eingesetzt werden. Spe-ziell der Counter Mode ermoglicht es, eine Blockchiffre als Stromchiffre zubehandeln, 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 Verstandnis dieserArbeit zu sehen. Sie liefert einen guten Uberblick zum Aufbau der einzelnenKapitel.

RNG

Physikalische RNGs Algoritmische RNGs

RNGs in der Kryptographie RNGs in der stoch.Simulation

↓ Hashfunktionen Blockchiffren Stromchiffren

AES DES↓

CTR - Mode

Tabelle 1.1: Arten von Zufallszahlengeneratoren

4

Page 6: AES_inCounterMode

5/12/2018 AES_inCounterMode - slidepdf.com

http://slidepdf.com/reader/full/aesincountermode 6/49

 

Kapitel 2

Grundlagen

2.1 Was ist Zufall?

Als erstes muss geklart werden, was man uberhaupt unter Zufall versteht.Die meisten Menschen haben Schwierigkeiten intuitiv das Wort zufallig zubeschreiben. Selbst Philosophen haben lange diskutiert um eine passendeDefinition zu finden.

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 wurde,ware dies ein Widerspruch zur Unvorhersagbarkeit und Sicherheit der Zah-len im Casino. Man konnte die Ausgange der Spiele praktisch vorhersehen.Das deutet schon auf die nachste Beschreibung hin: Von Zufall wird dann ge-sprochen, wenn ein Ereignis nicht vorhersagbar ist. Der Duden [20] definierteine Zufallszahl folgendermaßen:

Definition 2.1.1. Eine Zahl, die rein statistisch (”zufallig”) aus einer Mengevon Zahlen herausgegriffen wird, heißt Zufallszahl. Eine (unendliche) Folgevon Zahlen ohne (algorithmisches) Bildungsgesetz heißt Zufallszahlenfolge.

Der Begriff der Zufalligkeit spielt besonders beim statistischen Testeneine große Rolle. Wie soll ein Test Zufalligkeit beweisen, wenn unklar ist, wiedieses Wort eigentlich definiert ist oder was es zu bedeuten hat. Es ist obersteVoraussetzung, dass die Zahlen des Online Casinos diese mathematischenTest bestehen, deshalb ist es wichtig einige dieser Definitionen zu betrachten:

Zur Zufalligkeit einer einzelnen Zahl behauptet D. E. Knuth [23],dass es keine einzelne Zufallszahl im mathematischen Sinn gibt. (Warumsollte zum Beispiel die Zahl 1 zufallig sein.)

Zufallsbitfolgen mussen bestimmte Eigenschaften erfullen um als zufalligzu gelten. Diese konnen durch verschiedene Generatoren erzeugt werden auf 

5

Page 7: AES_inCounterMode

5/12/2018 AES_inCounterMode - slidepdf.com

http://slidepdf.com/reader/full/aesincountermode 7/49

 

welche ab Kapitel 2.2 eingegangen wird. Im folgenden Abschnitt wird die

Zufalligkeit solcher Folgen betrachtet.

Eine”

faire” Munze wird endlich oft geworfen, wodurch eine endlicheZufallszahlenfolge entsteht. Eine Munze ist also der einfachste Zufallszah-lengenerator mit dem sich binare Zufallsfolgen aus 0 und 1 erzeugen lassen(0 fur Kopf und 1 fur Zahl). Es ist nicht moglich vorherzusagen auf welcheSeite eine Munze fallen wird, wenn man sie wirft. Auch wenn man den Aus-gang von sogar 1000 Wurfen dokumentiert, ist es unmoglich den nachsten zuwissen. Eine Zufallszahlenfolge, die mit einer Munze erstellt wurde, konntedemnach wie folgt aussehen: Angenommen die Munze wird 23 mal geworfen.

- 00101111011000010101110

- 11111111111111111111111 . . . keine Gleichverteilung

- 10010010010010010010010 . . . Periodizitat

Intuitiv wurde man sagen, dass nur die erste Folge zufallig ist, obwohl fur jede Ziffer das Auftreten an jeder Position gleich wahrscheinlich ist, namlich12

. Jede Folge von n Munzwurfen hat wahrscheinlichkeitstheoretisch die glei-che Wahrscheinlichkeit von 1

2n. Somit gibt es beim 23-maligen Werfen ins-

gesamt 223 mogliche Ausgange, welche mit 2−23 alle gleich wahrscheinlich

sind. Fur das Online Casino muss eine Folge jedoch vielmehr Eigenschaftenerfullen als nur die stochastische Unabhangigkeit, um als zufallig zu gelten.Sie muss eine ganze Reihe von statistischen Tests bestehen. Außerdem mussGleichverteilung herrschen und die Folge muss eine moglichst hohe Periodeaufweisen. [24] [28]

Um die Zufalligkeit besser beschreiben zu konnen betrachten wir die Kolmo-gorovkomplexitat genauer. Diese Theorie behandelt im Besonderen endlicheZufallszahlenfolgen.

Die Kolmogorovkomplexitat (auch Algorithmische Komplexitat ge-nannt) kombiniert Informations- und Berechenbarkeitstheorie, um den Infor-mationsgehalt eines einzelnen Objekts, auch Komplexitat genannt, absolutund objektiv beschreiben zu konnen. Somit ergibt sich daraus ein objektiverBegriff fur die Zufalligkeit eines Objekts. Die Algorithmische Komplexitateines Objekts ist die Lange des kurzesten Programms, das dieses Objekterzeugt (also die kurzeste effektiv berechenbare Beschreibung). Je mehr Re-gelmaßigkeiten ein Objekt aufweist, desto kurzer lasst es sich beschreiben,desto starker komprimierbar ist es. Je weniger Struktur eine Zahlenfolge auf-weist, desto weniger komprimierbar ist sie und damit zufalliger. Die Berech-nung ist bis auf eine additive Konstante unabhangig vom Maschinenmodell,

6

Page 8: AES_inCounterMode

5/12/2018 AES_inCounterMode - slidepdf.com

http://slidepdf.com/reader/full/aesincountermode 8/49

 

da das Programm als eine optimale universelle Turingmaschine gesehen wird.

[8]1936 stellte Alan Turing (1912-1954) in seiner beruhmten Arbeit ”On

Computable Numbers” lange vor der Erfindung der Computer ein Modell ei-ner Rechenmaschine vor: die Turingmaschine. Diese Maschine soll moglichsteinfach konzipiert sein und alles leisten konnen, was man durch einen Algo-rithmus formulieren kann. [1]

Klassische Wahrscheinlichkeitstheorie erlaubt keine Aussage uber die Zu-falligkeit eines individuellen Objekts, sondern nur uber Erwartungen bezuglichder Ergebnisse zufalliger Prozesse.Die Kolmogorovkomplexitat jedoch bietet eine gute Definition von Zufallig-

keit: Nur Objekte, die nicht wesentlich kurzer als durch buchstabli-ches Hinschreiben (also als das Objekt selbst) beschrieben werdenkonnen, sind zufallig.

Weiters beschreibt diese Definition den Informationsgehalt eines Objektsin Abhangigkeit vom Objekt selbst: Wie lang ist die kurzeste Beschreibungdieses Objekts und gibt es uberhaupt eine kurzere Beschreibung?

Es gibt viele Moglichkeiten einen Zufallszahlengenerator zu konstruieren. Inden folgenden Abschnitten wird genauer auf die unterschiedlichen Arten ihrerEntstehung, ihre Funktionsweise und die verschiedenen Anwendungsbereiche

eingegangen. Nur bei genauerer Betrachtung der diversen Generatoren wirdersichtlich, welche fur das Online Casino in Frage kommen.

2.2 Physikalische Generatoren

Zufallszahlengeneratoren werden entweder in physikalische Generatoren oderin Algorithmische Generatoren eingeteilt. In diesem Kapitel werden physi-kalische Zufallszahlengeneratoren beschrieben und erklart, ob sie fur die Er-zeugung von Zufallszahlen fur das Online Casino benutzt werden konnen.

Physikalische Generatoren, oder auch Hardware Generatoren genannt,

nutzen physikalische Prozesse zur Gewinnung von Zufallszahlen. Dabei konnenalle Arten von Quellen herangezogen werden.

Zufallsquellen aus der Natur:

- atomarer Zerfall (zufallige Impulse je Zeiteinheit)

- thermisches Rauschen (zufallige Spannung)

Zufallsexperimente:

7

Page 9: AES_inCounterMode

5/12/2018 AES_inCounterMode - slidepdf.com

http://slidepdf.com/reader/full/aesincountermode 9/49

 

- Wurfeln

- Munzwurf 

- ziehen aus einer Urne

Weitere zufallige Quellen sind die Tastenanschlage auf einer Computerta-statur oder der Traffic auf einer Netzwerkkarte. All diese Prozesse benotigeneine relativ lange Zeit, um erzeugt und gemessen zu werden. Fur alle Quellengilt zusatzlich, um so langer zwei Messungen zeitlich auseinander liegen, umso weniger korreliert sind die Zahlen.

+ Der großte Vorteil der Hardware Generatoren ist, dass sie nicht de-terministisch sind. Die gewonnenen Zahlen lassen sich durch keinenmathematischen Algorithmus beschreiben, deshalb ist die Unvorher-sagbarkeit mit diesen Generatoren am besten gewahrleistet. Es gibtkeine Periode, was bedeutet dass die Folge unendlich ist. Solange dieErzeugung nicht abgebrochen wird, wird niemals eine Wiederholungauftreten. Somit ist die gewonnene Zahlenfolge nicht reproduzierbar,also echt zufallig.

- Ihr großter Nachteil ist jedoch die Alterung der Messgerate. Beim Gei-ger-Muller-Zahlrohr beispielsweise, ist die geringe Lebensdauer, welchetypischerweise auf eine Billion Pulse beschrankt ist, ein weiteres Pro-blem. Außerdem gelten physikalische Zufallszahlengeneratoren nicht alsschnell, was jedoch beim Online Casino vorausgesetzt wird. Zudemmuss die Abhangigkeit von Umwelteinflussen wie Temperatur, Ma-gnetfeldern und der Versorgungsspannung beachtet werden. Das Preis-Leistungs Verhaltnis ist ebenfalls nicht vorteilhaft, wenig effizient sindund die Anschaffung mancher Gerate hohe Kosten verursacht.

Fur das Online Casino wird in relativ kurzer Zeit eine sehr große Menge an

Zufallszahlen benotigt. Diese Anforderungen konnte kein physikalischer Zu-fallszahlengenerator erfullen, weshalb ein Algorithmischer Generator bessergeeignet ist.

2.3 Algorithmische Generatoren

Algorithmische Generatoren, auch Pseudozufallsgeneratoren genannt, sindInstrumente zur determinierten (nicht zufalligen) Erzeugung von Zufallszah-lenfolgen. Diese Generatoren werden im Gegensatz zu den physikalischen

8

Page 10: AES_inCounterMode

5/12/2018 AES_inCounterMode - slidepdf.com

http://slidepdf.com/reader/full/aesincountermode 10/49

 

Generatoren durch mathematische Algorithmen erzeugt. Jeder Algorithmus

beginnt sich nach einer gewissen Anzahl von Ausgaben zu wiederholen, da nurein begrenzter Zahlenbereich zur Verfugung steht. Beim Online Casino muss jedoch die Unvorhersagbarkeit gewahrleistet sein, weshalb Wiederholungenvon Zahlenblocken untersagt sind. Sonst ware es moglich Teile der Folge zureproduzieren. Da jeder Pseudozufallsgenerator periodisch ist, mussen Algo-rithmen mit einer moglichst großen Periode gefunden werden.

Ein wichtiges Kriterum fur die Sicherheit des Generators ist die Gleich-verteilung. Wenn zum Beispiel Zahlen von 0 bis 1 erzeugt werden, sollen25% der Zahlen zwischen 0 und 0,25 liegen. Ein Zufallszahlengenerator giltals vorhersagbar, wenn die Wahrscheinlichkeit eines Bits einer 0-1-Folge von

der Wahrscheinlichkeit 12 abweicht.Pseudozufallsgeneratoren brauchen einen Startwert, auch

”seed“ genannt,

damit die Berechnung der Zufallszahlenfolge beginnen kann. Bei gleichenStartwert erzeugen diese Generatoren immer die gleiche Folge. Deshalb mussder Startwert besonders bei kryptographischen Verwendungszwecken geheimbleiben, da sonst die ganze Zufallszahlenfolge reproduziert werden kann. Au-ßerdem soll nicht von irgendeiner erzeugten Zahl auf die nachste, oder garauf den Startwert geschlossen werden konnen.

Das Generieren von Zufallszahlen durch den Computer ist deshalb einProblem, 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 Zuf¨ alligkeit ist das Fehlen 

eines Verfahrens oder Mechanismus.“  [24]

Die Sicherheit eines Pseudozufallsgenerators sollte keinesfalls nur durchdie Geheimhaltung des Algorithmus gegeben sein. Das besagt auch das Kerck-

hoffs’sche Prinzip [5], das bereits 1883 von Auguste Kerckhoff formuliert wur-de und immer noch der Grundsatz der modernen Kryptographie ist. GuteGeneratoren zeichnen sich dadurch aus, dass sie genauestens analysiert sind,das Verfahren bekannt ist und sie trotzdem die Unvorhersagbarkeit nochgewahrleisten konnen. Das Problem der Geheimhaltung besteht vorallem imzwischenmenschlichen Bereich, beispielsweise konnen durch Erpressung Ge-heimnisse entlockt werden oder durch Kundigungen in Firmen Algorithmenabsichtlich verraten werden. Weiters besteht das Problem auch in den immerschneller werdenden Computern, die viele Algorithmen durch verschiedeneAttacken knacken konnen. Ein Vorteil eines offentlichen Verschlusselungsal-gorithmus besteht außerdem darin, dass Sicherheitslucken schneller entdecktwerden, da jeder auf das Verfahren zugreifen und es uberprufen kann. Bei

9

Page 11: AES_inCounterMode

5/12/2018 AES_inCounterMode - slidepdf.com

http://slidepdf.com/reader/full/aesincountermode 11/49

 

einem offentlich zuganglichen Algorithmus steht es Experten aus aller Welt

frei, den Generator auf Fehler zu durchsuchen. Geheime Algorithmen sindoft schwach und leicht zu knacken. [29]

Im Folgenden werden zwei Pseudozufallsgeneratoren als Beispiel dazu ge-nauer erklart: der Lineare Kongruenzgenerator und der Blum-Blum-ShubGenerator.

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 zuverwenden.Eine Folge (xn) von Zufallszahlen im ganzzahligen Intervall [0, . . . , m−1] mitm ∈ N wird durch folgende Rekursionsformel erzeugt:

xn = (a ∗ xn−1 + b) (mod m)

Dabei ist xn die neu generierte”

Zufallszahl“. Weiter ist m mit m > 0 derModulus, a mit 0 < a < m der Multiplikator und x0 mit x0 < m derStartwert.

Der LCG hat die Periode ≤ m. Bei geschickter Wahl der Parameter kannman eine Periode der Lange m erreichen, und die gewonnenen Zahlen sind

kaum von einer gleichverteilten Folge zu unterscheiden. Die Qualitat des Ge-nerators hangt also stark von den gewahlten Parametern ab.

Der Lineare Kongruenzgenerator ist sehr schnell und benotigt wenig Spei-cher. Er sollte jedoch nicht fur kryptographische Anwendungen oder andereBerechnungen verwendet werden, bei denen Unvorhersagbarkeit vorausge-setzt wird. Die Zahlen sind nicht wirklich zufallig, sondern haben nur einigeEigenschaften von

”echten“ Zufallszahlen. Mit zahlentheoretischen Methoden

ist leicht eine Kryptoanalyse moglich: Aus einem kurzen bekannten Stuck derFolge lasst 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 LenoreBlum, Manuel Blum und Michael Shub entwickelt, nach denen er auch be-nannt wurde. Dieser Softwaregenerator erzeugt eine Folge (xi) von Zufalls-zahlen durch folgende Iterationsformel:

x0 = s2 (mod n)xi+1 = x2

i (mod n)

10

Page 12: AES_inCounterMode

5/12/2018 AES_inCounterMode - slidepdf.com

http://slidepdf.com/reader/full/aesincountermode 12/49

 

Die Variablen s und n werden nach diesem Prinzip gefunden: Zuerst wahlt

man zwei Primzahlen p und q mit p = q und p ≡ q ≡ 3 (mod 4). Daraus wirdder Modul n als Produkt der beiden Primzahlen n = p · q definiert. s ist derzufallig gewahlte Startwert. Dabei ist darauf zu achten, dass der Startwert szum Modul n teilerfremd sein muss, das heißt ggT (s, n) = 1.

Der BBS-Generator ist nicht fur die stochastische Simulation geeignet,da er sehr langsam ist und wie im Abschnitt 2.4 erklart wird, werden in demGebiet der stochastischen Simulation in kurzer Zeit viele Zahlen benotigt. DerGenerator gilt jedoch als sicher, aufgrund der Faktorisierung von n und derquadratischen Reste modulo n. Die Suche nach einem nichttrivialen Teiler der

Zahl n ist schwierig. Je hoher man die Primzahlen p und q wahlt, desto starkersinkt die Wahrscheinilchkeit einen Teiler zu finden. Selbst moderne Computerhaben damit ihre Probleme. Ahnlich ist es bei den quadratischen Resten. Esist aufwandig zu entscheiden, ob eine Zahl p (oder q) ein quadratischer Resteiner anderen Zahl in einem Restklassenring Z\nZ ist. [18] [7]Der BBS-Generator ist nicht fur das Online Casino geeignet, da er zu ineffi-zient ist.

Algorithmische Generatoren werden vor allem in den Bereichen der Sto-chastischen Simulation und der Kryptographie benotigt. Es bestehen großeUnterschiede zwischen kryptographischen Generatoren und jenen, die in der

Stochastischen Simulation eingesetzt werden, da fur die beiden Gebiete volligandere Vorraussetzungen erfullt werden mussen.

2.4 RNGs in der Stochastischen Simulation

Ein verlasslicher Pseudozufallszahlengenerator ist die essentielle Basis fur je-de Art der Stochastischen Simulation. Die dadurch erhaltenen Zufallszahlenmussen die komplexe Situation exakt simulieren, und zwar so, dass kein Un-terschied zu in der Realitat erhaltenen Zahlen erkennbar ist. An jede einzelneSituation werden naturlich andere Anforderungen gestellt, jedoch sollte sich

der gewahlte Generator an moglichst viele Situationen annahern. Es gilt furalle Generatoren:

• Zahlen mussen sich gut an die komplexen Situationen annahern

• Generator muss gleichverteilte, realistische Zahlen liefern

• Zufalligkeit der Zufallszahlen: Erfullung theoretischer Eigenschaften inBezug auf die zu simulierende Situation

11

Page 13: AES_inCounterMode

5/12/2018 AES_inCounterMode - slidepdf.com

http://slidepdf.com/reader/full/aesincountermode 13/49

 

• Zufallszahlen mussen statistische Tests bestehen

• Generator muss moglichst viele Zahlen in sehr kurzer Zeit liefern

• große Periodenlange

• Unvorhersagbarkeit der Zufallszahlen ist zweitrangig → Reproduzier-barkeit gewunscht

Welche Qualitatskriterien mussen beim Wahlen eines geeigneteten Zu-fallszahlengenerator beachtet werden? Deterministische Generatoren sind inder Stochastischen Simulation von großem Vorteil, da bei gleichem Einga-

bewert immer wieder die selbe Zufallszahlenfolge generiert wird. Dies istbesonders beim Testen, Verbessern und Uberprufen der einzelnen komplexenSituationen wichtig, da sonst riesige Mengen von Zahlen gespeichert werdenmussten, um vergleichbare Ergebnisse zu erhalten. Dies hatte gigabytegroßeDatenbanken zur Folge. Um verschiedenste Situationen simulieren zu konnenwird ein effizienter Generator benotigt. Das bedeutet, er soll moglichst vieleZahlen in sehr kurzer Zeit erzeugen. Eine sehr lange Periode ist wichtig, da-mit keine gleichen Sequenzen in der erzeugten Folge vorkommen. Die Langeder Periode muss anhand eines mathematischen Beweises belegt sein. Weitersmuss der Pseudozufallszahlengenerator in allen Plattformen benutzt werden

konnen.Empfehlenswert fur die stochastische Simulation sind die schnellen undzuverlassigen Generatoren von Makoto Matsumoto, wie der Mersenne Twi-ster oder die Algorithmen von Pierre L’Ecuyer. [28]

Der Mersenne Twister wurde 1997 von Makoto Matsumoto und TakujiNishimura 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 219937 − 1.Diese Periodenlange erklart auch den Namen des Algorithmus: Sie ist eineMersenne-Primzahl und einige Eigenschaften des Algorithmus resultieren ausdieser 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 effizienterAlgorithmus und alle Bits der Ausgabesequenz sind fur sich gleichverteilt.

Generatoren, die in der stoschastischen Simulation verwendet werden,sind vollig ungeeignet fur das Online Casino, da sie zwar sehr effizient sindund gute gleichverteilte Zahlen liefern, jedoch reproduzierbar sind und einegeringe Komplexitat aufweisen.

12

Page 14: AES_inCounterMode

5/12/2018 AES_inCounterMode - slidepdf.com

http://slidepdf.com/reader/full/aesincountermode 14/49

 

2.5 RNGs in der Kryptographie

Eine zweite Art von Pseudozufallszahlengeneartoren sind RNGs, die in derKryptographie verwendet werden. Das Ziel kryptographischer Generatorenist es, Sicherheit zu gewahrleisten. Die Zufallszahlenfolgen durfen, im Ge-gensatz zu jenen in der stochastischen Simulation, nicht reproduzierbar undnicht vorhersagbar sein, auch wenn die Schnelligkeit der RNGs moglicherwei-se darunter leidet.

Kryptographische Generatoren arbeiten mit einem Schlussel. Solange die-ser Schlussel geheim bleibt, gilt der Generator als sicher und es ist nichtmoglich die Zahlen vorherzusagen. Pseudozufallsgeneratoren, die nicht aus

der Kryptographie stammen, benutzen oft keinen geheimen Schlussel, wes-halb die Zufallszahlenfolge leicht reproduzierbar ist, sobald dem Angreiferder Algorithmus und ein einziger Wert der Folge bekannt sind.

Voraussetzungen fur kryptographische Generatoren sind:

• es darf trotz Kenntnis des Algorithmus und aller zuvor erzeugten Zahlenkeine Vorhersage der nachsten Zahl moglich sein

• die Sicherheit derartiger Generatoren beruht auf der Geheimhaltungdes Schlussels, von dem die jeweils generierte Folge eindeutig abhangt,da er den Anfangszustand des Generators bestimmt (kennt ein Angrei-

fer den geheimen Schlussel kann er sofort alle Zahlen reproduzieren)

• der Generator muss gegen alle bekannten Arten der Attacke resistentsein

Die bekanntesten Formen der Attacke:

• Vollstandige Suche (brute-force Attacke, Holzhammermethode)

– Der Schlusselraum wird vollstandig durchsucht. Es werden alleMoglichkeiten ausprobiert bis der passende Schlussel gefunden ist

– Schutz: Große, effektive Schlussellange, lange Periode• statistische Geheimtextanalyse (ciphertext-only Attacke)

– Statistische oder zahlentheoretische Methoden

– Mustererkennungsmethode

– einfachstes Beispiel: Durch die Wahrscheinlichkeitsverteilung derBuchstaben im Alphabet wird der Geheimtext entschlusselt. Dashaufigste Zeichen im deutschen Geheimtext ist zum Beispiel derBuchstabe e

13

Page 15: AES_inCounterMode

5/12/2018 AES_inCounterMode - slidepdf.com

http://slidepdf.com/reader/full/aesincountermode 15/49

 

• Differentielle Kryptoanalyse

– Bei diesem Verfahren werden zwei ahnliche Klartexte, die sich nurin wenigen bestimmten Punkten unterscheiden, durch das Ver-schlusslungsverfahren, das meist aus mehreren Runden besteht,geschickt. Nach jeder Runde werden Plain- und Ciphertexte ver-glichen. Es wird versucht Muster in der Differenz zu erkenen unddadurch den geheimen Schlussel herzuleiten [2]

Die Ausgabewerte eines kryptographisch sicheren Zufallszahlengeneratorskonnen nicht von

”echten“ Zufallszahlen unterschieden werden. Statistische

Tests liefern keinen Hinweis darauf, dass die Zahlen keiner echt zufalligen

Folge entstammen, da sie gleichverteilt sind und die Generatoren mit großenPerioden arbeiten. [17]

Kryptographisch sichere Zufallszahlen konnen durch folgende Verfahren er-zeugt werden:

• Blockchiffren, (AES in Counter Mode, DES ) Kapitel 2.8

• Stromchiffren, (One Time Pad ) Kapitel 2.8

• Einweg-Hashfunktionen, Unterkapitel 2.5

Als nachstes wird auf die zwei Verfahren Hashfunktionen und One-Time Padzur Zufallszahlenerzeugung eingegangen.

Hashfunktionen

Kryptographische Hashfunktionen finden ihre Anwendung in der Uberprufungvon Passwortern und der Digitalen Signatur. Sie werden hauptsachlich ver-wendet, um Integritat und Authentizitat eines Dokuments zu garantieren.Digitale Signaturen haben eine ahnliche Funktion wie eine Unterschrift auf einem Dokument.

Definition 2.5.1. (Hash-Funktion)Eine Funktion h die zumindest folgende zwei Eigenschaften erfullt, heißtHash-Funktion :

- Kompression : h bildet einen Input x beliebiger Bitlange auf den Outputh(x) = y fester Bitlange n (zum Beispiel n = 128, 160, 192 oder 256 Bit)ab.

- Effiziente Berechnung : seien h und eine Eingabegroße x gegeben, sogibt es ein effizientes Verfahren zur Berechnung von h(x).

14

Page 16: AES_inCounterMode

5/12/2018 AES_inCounterMode - slidepdf.com

http://slidepdf.com/reader/full/aesincountermode 16/49

 

Der Funktionswert h(x) wird Hash-Wert, Fingerabdruck oder einfach nur

Hash genannt. [27]

Da Hashfunktionen nicht injektiv und nicht notwendigerweise surjektivsind, ist es moglich, dass Kollisionen entstehen.

Definition 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) gultige Paare. [27]

Eine spezielle Hashfunktion ist die Einweg-Hashfunktion. Sie kann zur

Erzeugung von Zufallszahlen verwendet werden. Um die Sicherheit gewahr-leisten zu konnen ist es wichtig, dass der Hash-Wert h(x) relativ einfachberechenbar ist, die Umkehrung jedoch beinahe unmoglich. Fur eine Einweg-Hashfunktion muss also gelten:

- Es sollte mit gegebenem Output-Wert y schwer moglich sein, einenWert x zu finden, mit h(x) = y

- K ollisionsresistenz: Es sollte nicht moglich sein, fur einen gegebenenWert x einen weitern Wert x, mit x = x, zu finden, der denselbenHashwert h(x) = h(x) ergibt

Obwohl Hashfunktionen gute pseudo-zufallige Folgen liefern konnen, sind sieungeeignet fur die Erzeugung von Zufallszahlen fur das Online Casino, da sievergleichsweise langsame Verfahren sind. Außerdem ist die Erfolgschance eineKollision zu finden 2−n, bei einer Output-Lange von n Bit des Hashwertes.[4] [27]

One-Time Pad

Das One-Time Pad, welches eine bewiesenermaßen sichere Verschlusselungs-methode ist, wurde von Gilbert Vernam 1918 entwickelt. Deshalb wird esauch oft als Vernam Chiffre bezeichnet.

Das One-Time Pad erzeugt eine große, sich nicht wiederholende Mengevon zufalligen, binaren Key-Buchstaben. Die Verschlusselung basiert darauf,dass Schlussel und Nachricht modulo 2 addiert, also mittels XOR verknupftwerden. Beim One-Time Pad handelt es sich um ein symmetrisches Ver-schlusselungsverfahren, das heißt das fur Ver- und Entschlusselung der selbeSchlussel verwendet wird.

Es stellt sich zunachst die Frage, warum das One-Time Pad nachweislichals sicheres Verfahren gilt. Seine Sicherheit hangt sehr stark von der Zufallig-keit des Schlussels ab, welcher durch einen Zufallszahlengenerator erzeugt

15

Page 17: AES_inCounterMode

5/12/2018 AES_inCounterMode - slidepdf.com

http://slidepdf.com/reader/full/aesincountermode 17/49

 

werden muss. Das One-Time Pad ist eine Stromchiffre, das heißt, dass Bit

fur Bit einzeln verschlusselt werden. Daraus resultiert, dass es ein sehr schnel-les und wenig komplexes Verfahren ist. Es ist wichtig, dass jedes Schlusselbitnur einmal zur Verschlusselung benutzt wird. Bei einer neuen Nachricht mussein neuer Schlussel benutzt werden um Sicherheit zu gewahrleisten.

One-Time Pads sind in der Theorie perfekte Verschlusselungsverfahren.In der Praxis haben sie jedoch einige Nachteile. Das erste Problem ist dasSpeichern des Schlussels: Sender und Empfanger mussen beide eine nieder-geschriebene Kopie des Schlussels bei sich haben. Das erleichtert es poten-tiellen Angreifern zum Schlussel zu gelangen. Weiters wird die Datenmenge,die ubertragen werden kann, von der Schlussellange begrenzt. Das heißt, dass

der Schlusselstrom genau so lang sein muss wie der Klartext. Will man bei-spielsweise große Videos codieren, ware ein sehr langer Schlusselstrom not-wendig, weshalb in diesem Fall das One-Time Pad hier nicht als passendesVerschlusselungsverfahren fundiert. Ein weiteres Problem stellt die Anfallig-keit dieses Verfahrens gegen Bitfehler dar. Funktioniert die Synchronisationnicht richtig, beispielsweise wenn Buchstaben verloren gehen, erscheint dieganze darauffolgende Nachricht falsch. Ein großer Nachteil des One-TimePads stellt die Erzeugung des Schlussels dar. Um einen zufalligen Schlusselzu erzeugen wird wiederrum ein Zufallszahlengenerator benotigt, womit manvor dem selben Problem steht einen sicheren Generator zu finden.

Der Hauptanwendungszweck dieses Verfahrens ist die Verschlusselung vonNachrichten, Emails und Dokumenten. Das One-Time Pad wird derzeit invielen Bereichnen genutzt und wird wahrscheinlich auch noch in der ZukunftAnwendung finden. [19] [14] [13]

2.6 Gute eines RNGs

Nun stellt sich die Frage, wie gepruft werden kann, wie”

gut“ eine Folge vonZufallszahlen ist. Wie exakt die erzeugten Zahlen den statistischen Vorgabenentsprechen, bestimmt die Gute eines Pseudozufallszahlengenerators. Dazu

gehort die erzeugte Verteilung wie etwa die Normalverteilung, die Gleich-verteilung, die Exponentialverteilung und ahnliche oder die Unabhangigkeitaufeinanderfolgender Zahlen. Deshalb wurden verschiedenste Testbatterienentwickelt, die die statistischen Vorgaben uberprufen. Besteht eine Zahlen-folge verschiedene Testreihen T 1, T 2, . . . , T  n, kann es immer noch moglich seindass es einen Test T n+1 gibt bei dem die Folge durchfallt. Zahlenfolgen dievor einigen Jahren als zufallig galten, bestehen die moderneren Testbatte-rien nicht mehr, da stetig neue und detailliertere Testverfahren entwickeltwerden. Das Ziel eines Zufallszahlengenerators ist es jedoch alle bekannten

16

Page 18: AES_inCounterMode

5/12/2018 AES_inCounterMode - slidepdf.com

http://slidepdf.com/reader/full/aesincountermode 18/49

 

statistischen Tests zu bestehen. Besonders strenge Anforderungen werden an

kryptographisch sichere Zufallszahlengeneratoren gestellt.Gutetests 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 GutknechtAxel nachzulesen sind. [16]

Als Beispiel eines Pseudozufallszahlengenerators nehmen wir den simu-lierten Munzwurf. Es kann nur eine Zahlenfolge von Nullen und Einsen er-zeugt werden (zum Beispiel Null fur Kopf und Eins fur Zahl). Anhand diesesBeispiels wird deutlich, dass allein die gleiche Haufigkeit beider Ergebnis-se nicht ausreicht, da etwa die Folge 0, 1, 0, 1, 0, 1, 0, 1, ... intuitiv nicht

zufallig erscheint. Es sollten moglichst auch die moglichen Paare aufeinanderfolgender Ergebnisse mit den erwarteten Haufigkeiten auftreten, auch Tripel,Quadrupel und so weiter.

Ein sehr einfaches Gutekriterium ist die Periodenlange, die im Verhaltniszum Wertebereich moglichst lang sein sollte. Dies ist etwa beim Mersenne-Twister in besonders starkem Maße der Fall. Ein simpler linearer Kongru-enzgenerator kann dagegen den Wertebereich pro Periode bestenfalls einmaldurchlaufen. Dies sollte umgekehrt als Mindestanforderung gesehen werdenund kann durch ein einfaches Kriterium gepruft werden (Satz von Knuth).[23]

17

Page 19: AES_inCounterMode

5/12/2018 AES_inCounterMode - slidepdf.com

http://slidepdf.com/reader/full/aesincountermode 19/49

 

Im folgenden Teil der Arbeit werden Strom- und Blockchiffren bearbei-

tet. Mit Hilfe dieser beiden Verfahren konnen Zufallszahlen fur das OnlineCasino in großen Mengen erzeugt werden. Um die beiden Typen von Chif-frierverfahren zu verstehen, sind zuerst einige Definitionen notig.

Definition 2.6.1. (Verschlusselungsverfahren, engl.: cryptosystem) Untereinem Verschlusselungsverfahren oder Kryptosystem versteht man ein Quin-tupel (P , C, K, E , D) mit den folgenden Eigenschaften:

1. P  ist eine nichtleere endliche Menge und wird Klartextraum genannt.Die Elemente von P heißen Klartextelemente (engl.: plaintext elements).

2. C ist eine nichtleere endliche Menge und wird der Chiffretextraum oderGeheimtextraum genannt. Die Elemente von C heißen Chiffretextele-mente (engl.: ciphertext elements).

3. K ist eine nichtleere Menge und wird der Schlusselraum genannt. Dieelemente von K heißen Schlussel (engl.: keys).

4. E  = {ek : k ∈ K} ist eine Familie von Funktionen mit der Eigenschaft:

∀ k ∈ K : ek : P −→ C

ist injektiv.Die Elemente von E  heißen Verschlusselungsfunktionen (engl.: encryp-tion functions).

5. D = {dk : k ∈ K} ist eine Familie von Funktionen mit der Eigenschaft:

∀ k ∈ K : dk : C −→ P 

ist injektiv.Die Elemente von D hei ßen Entschlusselungsfunktionen (engl.: decryp-tion functions).

6. Es gilt folgende Beziehung zwischen den Elementen von E  und D:

∀ k ∈ K ∃ k ∈ K : dk(ek( p)) = p ∀ p ∈ P 

[25]

18

Page 20: AES_inCounterMode

5/12/2018 AES_inCounterMode - slidepdf.com

http://slidepdf.com/reader/full/aesincountermode 20/49

 

2.7 Stromchiffren

Definition 2.7.1. (Stromchiffre) Fur eine endliche, nichtleere Menge A be-zeichne A* die Menge der endlichen Folgen mit Elementen aus A. Eine Strom-chiffre ist ein Chiffriersystem (P , C, K, E , D) mit folgenden Eigenschaften:

1. P  = C = K = A*

2. Fur jedes k ∈ A existieren zwei eindeutig bestimmte bijektive Funktio-nen ek : A → A und dk : A → A mit der Eigenschaft

dk ◦ ek = ek ◦ dk = Identitat

3. VerschlusselungSei p = ( pi)i≥1 ∈ P  und sei k = (ki)i≥1 ∈ K mindestens so lange wie p.Dann definieren wir die Verschlusselungsfunktion durch

ek( p) = (eki( pi))i≥1.

Sei c = (ci)i≥1 ∈ C und sei k = (ki)i≥1 ∈ K mindestens so lange wie c.Dann definieren wir die Entschlusselungsfunktion durch

dk(c) = (dki(ci))i≥1.

Die Folge p = ( pi)i≥1 hei ßt der Klartextstrom, k = (ki)i≥1 heißt der Schlussel-strom und c = (ci)i≥1 nennt man den Geheimtextstrom. [25]

2.8 Blockchiffren

Wie schon in der Ubersicht erwahnt, zerteilen Blockchiffren den Klartextin einzelne Blocke gleicher Lange, die sie nacheinander abarbeiten. ObwohlBlockchiffren etwas langsamer als Stromchiffren sind, haben sie einen großenVorteil: durch die verschiedenen Betriebsmodi sind sie in verschiedenen Auf-gabenbereichen vielseitig einsetzbar.

Fur das Online-Casino wird wichtig sein, dass man die Blockchiffre alsStromchiffre verwenden kann, um die Geschwindigkeit zu erhohen und mehrZufallszahlen in der gleichen Zeit erzeugen zu konnen. Dies ist nur mit be-stimmten Modi, wie der Counter Mode oder der OFB-Mode, moglich, welchein Kapitel 3.3 genauer erlautert werden.

Wie bei jedem Kryptosystem muss die Verschlusselungsfunktion ek injek-tiv sein, um den verschlusselten Klartext auch wieder eindeutig entschlusseln

19

Page 21: AES_inCounterMode

5/12/2018 AES_inCounterMode - slidepdf.com

http://slidepdf.com/reader/full/aesincountermode 21/49

 

zu konnen. Sei m die Blocklange und A das Zeichenalphabeth, dann ist eine

Blockchiffre das gleiche wie eine injektive Abbildung der endlichen MengeP  = Am in die endliche Menge C = An, wobei m ≤ n gelten muss. Dafur Blockchiffren aus praktischen Grunden festgelegt wurde, dass man mitgleichen Blocklangen arbeitet, wird m = n gesetzt.

Eine Blockchiffre ist also eine bijektive Abbildung  der Elemente p ∈ Am

auf die Elemente c ∈ Am. Da Computer hauptsachlich im Dualsystem ar-beiten, wird in der modernen Datenverarbeitung A = {0, 1} gewahlt. Oftwerden als Blocklange m die Werte 64, 128 oder 256 verwendet. Einerseitsnaturlich, um sie auf die Wortlange und damit die Rechenleistung modernerComputer abzustimmen, andererseits werden durch diese Werte kryptoanaly-

tische Attacken mittels Haufigkeitsanalyse erschwert, denn der Klartextraumist nun riesig.

Sei zum Beispiel p der Klartext, welcher in gleichlange Blocke der Langem aufgeteilt wird.

 p = p1 . . . pm pm+1 . . . p2m p2m+1 . . . p3mek ↓ ek ↓ ek ↓

c = c1 . . . cm cm+1 . . . p2m p2m+1 . . . p3m

c ist der ciphertext, also der verschlusselte Text. Er wurde blockweiseverschlusselt. [25]

Nun mochten wir die beiden Typen von Chiffrierverfahren noch einmalkurz vergleichen:

• Blockchiffren: Sie fassen den Klartext in Blocke gleiche Lange zusam-men und verschlusseln nacheinander Block fur Block.

Vorteile:

- Kryptographisch sehr sicher und effizient

- Wurde ein Block fehlerhaft verschlusselt, wirkt sich der Fehler

nicht auf die anderen Blocke aus, sondern diese konnen trotzdemnoch richtig verschlusselt bzw. entschlusselt werden

- kann dank verschiedener Betriebsmodi auch als Stromchiffre ver-wendet werden.

Nachteile:

- langsamer als Stromchiffren

20

Page 22: AES_inCounterMode

5/12/2018 AES_inCounterMode - slidepdf.com

http://slidepdf.com/reader/full/aesincountermode 22/49

 

Anwendungsbeispiele dazu sind die beiden viel verwendeten Verschlusslungs-

algorithmen AES und DES. Beide sind sehr bekannt, wobei DES schonetwas veraltet ist. AES ist zur Zeit das popularste Verschlusslungsver-fahren und gilt als besonders sicher. Auf diese beiden Algorithmen wirdin den Kapiteln 3.2 und 2.8 noch genauer eingegangen.

• Stromchiffren: Sie verschlusseln jedes Bit des Klartextes einzeln, nor-malerweise mit verschiedene Schlusseln.

Vorteile:

- besonders schnelles, effizientes Verfahren

Ein Anwendungsbeispiel fur Stromchiffren ist RC4. Eine Zufallsfol-ge wird hier aus einem nur einmalig zu verwendenden Schlussel er-zeugt. Der Klartext wird Bit fur Bit per XOR mit der Zufallsfolge ver-knupft, um die Daten zu verschlusseln. Der Algorithmus ist sehr kom-pakt und funf- bis zehnmal schneller als DES. Deshalb findet der RC4Algorithmus in einigen Echtzeit-Systemen Anwendung, wie beispiels-weise Mobilfunk (Cellular Digital Packet Data), SSH (Secure Shell),WLAN (Wireless LAN) oder den Dateiverschlusselungs-ProgrammenSecurePC und Cryptext Anwendung. [9]

21

Page 23: AES_inCounterMode

5/12/2018 AES_inCounterMode - slidepdf.com

http://slidepdf.com/reader/full/aesincountermode 23/49

 

DES

Der Data Encryption Standard ist die wohl bekannteste Blockchiffre. Sie wur-de in zahlreicher Sicherheitssoftware verwendet, da sie lange Zeit als sicher-stes Verschlusslungsverfahren galt. Heute gilt sie jedoch auf Grund modernerschneller Computer als nicht mehr sicher genug.

Historischer Hintergrund

Zu Beginn der 70er Jahre war die militarische Kryptologie bereits sehr weitfortgeschritten, jedoch waren kaum Verfahren fur den nichtmilitarischen Ge-brauch bekannt. Es gab aber hohen Bedarf nach einem einheitlichen Standard

fur die behordenubergreifende Verschlusselung vertraulicher Daten. Vor allemauf Grund der raschen Weiterentwicklung der elektronischen Datenverarbei-tung in kommerziellen Bereichen, wie im Bankenwesen, musste ein sicherer,effizienter Algorithmus gefunden werden.

Das National Bureau of Standards, eine Unterbehorde des US-Wirtschafts-ministeriums, veroffentlichte im Mai 1975 eine Aussschreibung fur ein kryp-tographisches Verfahren zur Verschlusselung von Daten. Die Beteiligung war jedoch enttauschend 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-cherheitsbehorde) wurde das modifizierte Verfahren unter dem Namen DataEncryption Standard im Janner 1977 zu einem nationalen Standard.

Die Rolle, die die NSA in der DES-Entwicklung hatte, ist sehr umstritten.Wegen der Modifikationen, die die NSA vor veroffentlichung des Verfahrensdurchfuhrte, gab es viele Spekulationen. Angeblich hatte die NSA eine

”Hin-

terture“ eingebaut, welcher ihr ein rascheres Knacken von DES ermoglicht.Bis heute gibt es keine Bestatigung dieser Hyptothese.

Ein Grund fur diese Anschuldigungen ist, dass die NSA auf eine Redukti-on der Schlussellange von 128 Bit bei Lucifer auf 56 Bit bei DES bestand. Da-

durch ist eine brute-force Attacke auf DES wesentlich leichter durchzufuhrenals beim ursprunglichen Algorithmus.Besonders bemerkenswert ist, dass die Entwickler von DES bereits einige

Attacken berucksichtigt hatten, die erst Jahre spater von der wissenschaft-lichen Offentlichkeit entdeckt wurden. Der bekannteste Angriff ist hier diedifferentielle Kryptoanalyse von Biham und Shamir. [25]

22

Page 24: AES_inCounterMode

5/12/2018 AES_inCounterMode - slidepdf.com

http://slidepdf.com/reader/full/aesincountermode 24/49

 

Feistel-Chiffre

Die Feistelchiffre bildet die Grundlage fur den Algorithmus von DES. Wiebei allen Blockchiffren, wird auch hier der Klartext in gleichgroße Bl ocke derLange von 64 Bit geteilt. Jeder Block wird dann halbiert. Dabei entstehenzwei ungefahr gleich große Teile Li und Ri. Auf diese beiden Teile wird dannin jeder Runde folgende Veranderung durchgefuhrt. Sei die Rundenanzahl n.In dieser Abbildung wird die i-te Runde betrachtet:

Abbildung 2.1: Eine Runde - DES Verschlusselung mit der Feistel-Chiffre

Der rechte Teil Ri−1 der Runde i − 1 wird zum linken Teil der darauffol-genden Runde: Li = Ri−1. Auf den rechten Teil Ri−1 wird eine Funktion f angewandt und der Rundenschlussel K i wird an dieser Stelle hinzugefugt.Danach addiert man bitweise den Ausgabewert dieser Funktion mit der lin-ken Seite Li−1 mittels XOR. Der rechte Teil der nachsten Runde entstehtalso folgenderweise: Ri = Li−1 ⊕ f (Ri−1, K i). Dieser Vorgang wird jede Run-de wiederholt. Nach n Durchgangen ist ein Block vollstandig verschlusselt.[25]

23

Page 25: AES_inCounterMode

5/12/2018 AES_inCounterMode - slidepdf.com

http://slidepdf.com/reader/full/aesincountermode 25/49

 

Kapitel 3

AES

3.1 Algebraische Voraussetzungen

Definition 3.1.1. (Gruppe)Sei G eine Menge und sei ∗ eine binare Operation auf  G, dh.∗ : G × G → GDann heißt (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

Definition 3.1.2. (Abelsche Gruppe)Sei (G, ∗) eine Gruppe. Sie heißt kommutativ oder abelsch, wenn uberdiesgilt:

5. ∀x, y ∈ G : x ∗ y = y ∗ x . . . Kommutativitat

Definition 3.1.3. (Ring)Sei R eine Menge mit 2 binaren Operationen

+ : R × R → R

· : R × R → R

Dann heißt (R, +, ·) ein Ring, wenn gilt:

1. (R, +) ist eine abelsche Gruppe

24

Page 26: AES_inCounterMode

5/12/2018 AES_inCounterMode - slidepdf.com

http://slidepdf.com/reader/full/aesincountermode 26/49

 

2. Die Operation · erfullt:

• ∀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 heißt (R, +, ·) ein Ring mit Einselement.

5. ∀x, y ∈ R x · y = y · x

dann heißt (R, +, ·) ein kommutativer Ring.

Definition 3.1.4. (Nullteilerfrei)Ein Ring (R, +, ·) heißt nullteilerfrei, wenn ∀a, b ∈ R mit a · b = 0

⇒ a = 0 oder b = 0.Bsp: (Z, +, ·) ist ein nullteilerfreier Ring.

Definition 3.1.5. (Nullteiler)

Falls in einem Ring (R, +, ·) mit den Elementen a, b ∈ R gilt: a = 0 undb = 0 , sodass gilt a · b = 0 dann heißen a und b Nullteiler von R.

Beispiel 3.1.6. Seien a =

1 12 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 12 2

·

1 1

−1 −1

=

0 00 0

[31]

Definition 3.1.7. (Korper)

Ein Ring (R, +, ·) heißt Korper, wenn (K \{0}, ·) eine abelsche Gruppe bildet.Definition 3.1.8. (endlicher Korper mit Primzahlordnung p)Ein Koper (K, +, ·) heißt endlicher Korper 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 heißt F  p endlicher Korper der Ordnung p. Er wird auch Galoisfeld derOrdnung p genannt. [26]

25

Page 27: AES_inCounterMode

5/12/2018 AES_inCounterMode - slidepdf.com

http://slidepdf.com/reader/full/aesincountermode 27/49

 

Definition 3.1.9. (Galoisfeld)

Ein endlicher Korper mit p = 2n Elementen heißt Galoisfeld, er ist also einendlicher Korper mit Ordnung 2n. Er wurde nach Evariste Galois benanntund wird mit GF (2n) bezeichnet. Dieser Korper ist besonders bedeutendfur die Informatik, da die Elemente als Bit-Folgen der Lange n interpretiertwerden konnen. [3]

Bemerkung 3.1.10. Der Verschlusselungsalgorithmus AES arbeitet im Ga-loisfeld GF (28). Das bedeutet alle Elemente sind Bit-Folgen der Lange 8.Diese Eigenschaft ist wichtig fur den Gebrauch von AES am Computer, dadiese mit solchen Bitstrings arbeiten.

Polynomringe

Definition 3.1.11. (Direktes Produkt, direkte Summe)Sei I  eine endliche oder abzahlbar unendliche Indexmenge I  = {1, 2, . . .}, furalle i ∈ I , sei Gi eine Gruppe mit neutralem Element ei.

Die Gruppe (G, ◦) heißt das direkte Produkt der Gruppen Gi und wirdmit

i∈I 

Gi

bezeichnet.

Die Gruppe (⊕i∈I Gi, ◦) heißt die (außere) direkte Summe der GruppenGi.

Bemerkung 3.1.12. Wenn I  = {1, . . . , n} jedoch eine endliche Indexmengeist, werden haufig andere Bezeichnungen eingefuhrt:

•n

i=1 Gi statt G1 × . . . × Gn

• ⊕ni=1Gi statt G1 ⊕ . . . ⊕ Gn

• falls gilt: G1 = G2 = . . . = Gn = G wird stattn

i=1 Gi immer Gn

geschrieben.

Bemerkung 3.1.13. Beim direkten Produkt (R, +) × (R, +) × (R, +) . . .der Gruppe (R, +) mit sich betrachtet man also eine innere Verknupfung auf dem karthesischen Produkt R × R × R × . . ..

Bei der direkten Summe (R, +) ⊕ (R, +) ⊕ (R, +) ⊕ . . . betrachtet maneine spezielle Teilmenge des karthesischen Produktes R×R×R×. . ., namlich jene

”Vektoren“ (r1, r2, r3, . . .), bei denen nur endlich viele

”Koordinaten“ ri

ungleich dem neutralen Element e der Gruppe (R, +) sind. Die Bezeichnung

”direkte Summe“ hat also nichts mit den gewohnten Summenbegriffen zu

tun. [26]

26

Page 28: AES_inCounterMode

5/12/2018 AES_inCounterMode - slidepdf.com

http://slidepdf.com/reader/full/aesincountermode 28/49

 

Definition 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 dieElemente von R[[X ]] formale Potenzreihen  uber R.

Fur f  = (a0, a1, a2, . . . ) ∈ R[X ] heißen a0, a1, . . . die Koeffizienten des

Polynoms f .Das spezielle Polynom 0 = (0, 0, 0, . . . ) heißt das Nullpolynom.Sei f  ∈ R[X ] mit f  = 0 . Unter dem Grad von f  verstehen wir die

nichtnegative ganze Zahl

deg(f ) = max{n ∈ N ∪ {0} : an = 0}.

Bemerkung 3.1.15. Wir erinnern an die Definition der direkten Summevon Gruppen. Jedes Element f  der direkten Summe

R[X ] = (R, +) ⊕ (R, +) ⊕ (R, +) ⊕ . . .

hat die Gestalt f  = (a0, a1, a2, . . . ) mit ai ∈ R und es sind nur endlich vieleder ai verschieden vom Nullelement von R. Ab einer Stelle sind also alleweiteren Koeffizienten ai gleich 0,

f  = (a0, a1, a2, . . . , an, 0, 0, . . . ).

Bemerkung 3.1.16. Aus der Vorlesung”

Algebraische Strukturen” wissenwir in Zusammenhang mit dem direkten Produkt und der direkten Summevon Gruppen, dass (R[X ], +) mit der Verknupfung (f  = (a0, a1, a2, . . . ), g =(b0, b1, b2, . . . ))

f  + g = (a0 + b0, a1 + b1, a2 + b2, . . . )

eine kommutative Gruppe bildet.Wir definieren nun auf  R[X ] eine zweite innere Verknupfung:

f  · g = (c0, c1, c2, . . . ),

wobei

cn :=n

k=0

ak bn−k ∀ n ≥ 0.

27

Page 29: AES_inCounterMode

5/12/2018 AES_inCounterMode - slidepdf.com

http://slidepdf.com/reader/full/aesincountermode 29/49

 

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, x3, x4, . . .), xi ∈ {0, 1} beliebig und  i ∈ {3, . . . , n}

Dann kann jedes Element  f  = (a0, a1, . . . , an, 0, 0, . . .) mit  ak = 0 f¨ ur  k > nvon  R[X ] in der Form 

f  = a0 + a1X + . . . + anX n

geschrieben werden.

Beweis: Aus der Definition der inneren Verknupfung ” · ” erhalten wir

X 2

= X  · X  = (0, 0, 1, 0, 0, . . .)

undX 3 = X  · X  · X  = (0, 0, 0, 1, 0, 0, . . .).

Es liegt daher die Vermutung nahe, dass

X n = (0, 0, . . . , 0  

 

 n−mal

, 1, 0, 0, . . .)

was mittels Induktkion zu beweisen ist. Von nun an identifizieren wir daskonstante Polynom (a, 0, 0, . . .) ∈ R[X ] mit dem Ringelement a. Weitersschreiben wir das Produkt

(a, 0, 0, . . .) · f 

fur f  ∈ R[X ] in der Form

af 

28

Page 30: AES_inCounterMode

5/12/2018 AES_inCounterMode - slidepdf.com

http://slidepdf.com/reader/full/aesincountermode 30/49

 

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, . . .)

fur alle a ∈ R. Daher erhalten wir fur f  = (a0, a1, . . . , an, 0, 0, . . .) ∈ R[X ]die Darstellung

f  = (a0, 0, 0, . . .) + (0, a1, 0, . . .) + (0, 0, a2, 0, . . .) + . . . + (0, . . . , 0, an, 0, 0, . . .)

= a0 + a1X + a2X 2 + . . . anX n.

Bemerkung 3.1.18. Sei (R, +, ·) ein Ring mit Einselement 1. Das SymbolX  bezeichnet keine Unbestimmte, sondern etwas ganz Bestimmtes:

• X  ist die Bezeichnung fur 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 Definition des Produktes zweier Polynome:

X 2 = (0, 0, 1, 0, 0, · · · ).

• X 3, X 4, X 5, ... ergeben sich analog.

• Nach obigen Lemma gilt fur f  = (a0, a1, . . . , an) ∈ R[X ] daher

f  = a0 + a1X  + a2X 2 + . . . + anX n.

Definition 3.1.19. (Teiler, Vielfaches, irred. Polynom)Sei (R, +, ·) (und damit auch (R[X ], +, ·)) ein Ring mit Einselement. Seienf, 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 heißt dann ein Teiler von f . Weiters heißt f  ein Vielfaches

von g, Schreibweise: g | f  Das Polynom g heißt ein echter Teiler von f , wenn

0 < deg g < deg f.

Ein Polynom f  heißt irreduzibel, wenn es keine echten Teiler besitzt. An-dernfalls heißt f  reduzibel. [26]

Soeben wurde erlautert wie Binarstrings bestimmter Lange als Polynomeangeschrieben werden konnen. Im nachsten Teil der Arbeit wird naher darauf eingegangen, wie man auf diese Polynome gewisse Operationen anwendet. Eswerden Multiplikation und Addition erklart.

29

Page 31: AES_inCounterMode

5/12/2018 AES_inCounterMode - slidepdf.com

http://slidepdf.com/reader/full/aesincountermode 31/49

 

Endliche Korper

Computer arbeiten hauptsachlich mit Binarstrings. Deshalb wollen wir binareWorter a und b einer festen Lange addieren und multiplizieren konnen. Istes moglich mit diesen Wortern ahnlich zu rechnen wie wir es von den ra-tionalen oder rellen Zahlen gewohnt sind? Wir versuchen also arithmeti-sche Operationen durchzufuhren. Haufig verwendete Werte fur die Langem der Binarstrings sind 32, 64, oder 128. Es sind also zwei Strings a =(a0, a1, . . . , am−1) und b = (b1, b2, . . . , bm−1), ai, bi ∈ {0, 1} gegeben, welcheaddiert und multipliziert werden sollen.

• Addition:

Ausgehend vom Korper (Z2, +, ·), betrachten wir das m-fache direkteProdukt der additiven Gruppe (Z2, +) mit sich selbst:

Zm2 = Z2 × Z2 × . . . × Z2

Dann ist (Zm2 , +) eine abelsche Gruppe. Die beiden Elemente (Worter)

a und b werden so addiert:

a + b = (a0, a1, . . . , am−1) + (b1, b2, . . . , bm−1)

= (a0 + b0, a1 + b1, . . . , am−1 + bm−1)

Stellt man sich das Ganze jetzt als Binarstrings vor wo wir an Stelle derRestklassen 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 = (a0, a1, . . . , am−1) undb = (b1, b2, . . . , bm−1) zu bilden, schreiben wir sie als Polynome in Z2[X ]an.

a = a0 + a1X + . . . + am−1X m−1

b = b0 + b1X + . . . + bm−1X m−1

Nach den Rechenregeln in Z2[X ] ist das Produkt folgendermaßen defi-niert:

a · b = a0b0 + (a1b0 + a0b1)X + . . . + am−1bm−1X 2m−2

Dieses Polynom kann man wieder zuruckverwandeln. Das entsprichtdann eindeutig dem neuen Binarstring. Wir nennen ihn c∗.

c∗ = (a0b0, a1b0 + a0b1, . . . , am−1b0 + . . . + a0bm−1, . . . , am−1bm−1)

30

Page 32: AES_inCounterMode

5/12/2018 AES_inCounterMode - slidepdf.com

http://slidepdf.com/reader/full/aesincountermode 32/49

 

Nun haben wir noch folgendes Problem: durch die Multiplikation der

beiden Strings a und b der Lange m haben wir einen String c∗ der Lange2m − 1 erhalten. Wir wollen aber einen Binarstring der Lange m, dawir unsere Multiplikation auf Zm

2 definieren mochten. Das Polynom desStrings c∗ konnen wir ohne Probleme durch ein anderes dividieren,da in Z die Division mit Rest definiert ist und Z2[X ] eine Teilmengevon Z ist wird die Division mit Rest vererbt. Wir reduzieren c∗ alsomodulo einem irreduziblem Polynom f , welches Grad m hat. Sei f  =t0 + t1X  + . . . + tmX m ∈ Z2[X ] mit dem Grad m. Dann existiert eineindeutige bestimmtes Polynom c ∈ Z2[X ] vom Grad kleiner oder gleichm − 1, sodass gilt:

a · b = c (mod f )

Das Polynom c, welches Rest der Division ist, hat diese Form:

c = c0 + c1X + . . . + cm−1X m−1

Diese Polynom kann eindeutig als Binarstring dargestellt werden:

c = (c0, c1, . . . , cm−1)

Somit erhalten wir c als Produkt der beiden Binarstrings a und b. [26]

31

Page 33: AES_inCounterMode

5/12/2018 AES_inCounterMode - slidepdf.com

http://slidepdf.com/reader/full/aesincountermode 33/49

 

3.2 Definition von AES

AES steht fur Advanced Encryption Standard . Es ist ein Verschlusselungs-verfahren, welches im Oktober 2000 als Nachfolger des DES beziehungsweiseTriple-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 effizienter. DES und auch dieVerbesserung Triple-DES sind dadurch nicht mehr sicher genug, da mit mo-dernen Rechnern bereits alle Szenarios durchprobiert werden konnen und dieVerschlusselung somit geknackt werden kann.

Auf Grund dessen, wurde Anfang 1997 mit der Suche um ein geeignetesVerfahren begonnen. Als Nachfolger von DES musste AES diese Kriterienerfullen:

• AES muss ein symmetrischer Algorithmus sein, und zwar eine Block-chiffre

• AES muss 128 Bit lange Blocke verwenden

• AES muss variable Schlussel von 128, 192 und 256 Bit Lange einsetzenkonnen

• Effizienz

• geringer Speicherbedarf 

• Einfachheit

• Implementierung in Hardware und Software gleichmaßig leicht

• Sicherheit gegen alle bekannten Formen der Attacke

Wie bei DES, wurde auch AES durch ein offentliches Auswahlverfah-ren gesucht. Am 2.10.2000 wurde der Gewinner des weltweiten Wettbewerbsbekannt gegeben: ein belgisches Verfahren namens Rijndael . Der AdvancedEncryption Standard, der ein Spezialfall des Rijndael-Algorithmus ist, wurdeam 26. November veroffentlicht. Seither gilt er als offizieller Standard der Ver-einigten Staaten und als

”Federal Information Processing Standard“ (FIPS).

Der Rijndael-Algorithmus bietet dem Benutzer eine variable Blocklangevon 128, 192, 256 Bit und auch eine variable Schlussellange von 128, 192, 256Bit.

32

Page 34: AES_inCounterMode

5/12/2018 AES_inCounterMode - slidepdf.com

http://slidepdf.com/reader/full/aesincountermode 34/49

 

Vorgangsweise von AES

Der einzige Unterschied zwischen AES und Rijndael ist die Blocklange, diebei AES mit 128 Bit festgelegt ist. Jeder Block wird aufgeteilt in Tabellen von4 Zeilen, wobei die einzelnen Zellen die Zellengroße von einem Byte besitzen.Ein Block des Ausgangszustandes wird mit S  (State) bezeichnet.

S  =

a0,0 a0,1 a0,2 a0,3a1,0 a1,1 a1,2 a1,3a2,0 a2,1 a2,2 a2,3a3,0 a3,1 a3,2 a3,3

Abbildung 3.1: Ausgangszustand S 

mit ai,j = 1 Byte, also 8 Bit.Jeder Block wird nun verschiedenen Transformationen unterzogen. Die

Blocke werden jedoch nicht nur einmal mit dem Schlussel verschlusselt, son-dern AES wendet in jeder Runde Teile des erweiterten Originalschlussels auf die Klartextblocke an.

Die Rundenanzahl ist abhangig von der Schlussellange k des Original-schlussels. Hierzu eine Tabelle 3.1 fur die Rundenanzahl des Rijndael-Algo-rithmus. Fur AES sind nur die Werte in der ersten Spalte wichtig, da die

Blocklange auf b = 128 Bit festgelegt ist. b = Blocklange; k = Schlussellange;r = r(k, b)

r b = 128 b = 192 b = 256

k = 128 10 12 14k = 192 12 12 14k = 256 14 14 14

Tabelle 3.1: Die Parameter von Rijndael

Das heißt, um einen Block zu verschlusseln braucht man hochstens 14Runden.

Es wird mit dem Ausgangszustand S  begonnen. Wie in Abbildung 3.1 er-klart, ist S  ein einzelner Block des Klartextes. Dieser durchlauft eine Runde.Dann ist der erste Block des Klartextes einmal verschlusselt worden. Nacheiner Runde wird der neue Zustand mit S  bezeichnet. Das muss, abhangigvon der Schlussellange entweder 10, 12 oder hochstens 14 mal wiederholtwerden. Ist der erste Block abgearbeitet, also vollstandig verschlusselt, mussman den nachsten Block des Ausgangszustandes S  bearbeiten. Die Struktur

33

Page 35: AES_inCounterMode

5/12/2018 AES_inCounterMode - slidepdf.com

http://slidepdf.com/reader/full/aesincountermode 35/49

 

von AES ist sehr klar aufgebaut. Im nachsten Abschnitt dieser Arbeit werden

die einzelnen Transformationen einer Runde genauer erklart.

S . . . Ausgangszustand↓

ByteSub

ShiftRow↓

MixColumn↓

Rundenschlussel↓

S’ . . . nachster 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  = ((ai,j)) mitEintragen von jeweils einem Byte geschrieben wurde, wird ausgewahlt undes wird ByteSub darauf angewendet:

ByteSub

Wie bereits in Kapitel 2.3 erklart wurde, ist es nicht sinnvoll, einen linearenGenerator fur das Online-Casino zu verwenden, da diese leicht zu knackensind. Jeder sichere Verschlusselungsalgorithmus braucht also einen nichtli-nearen Bestandteil um die Unvorhersagbarheit zu gewahrleisten.

Die Berechnung des multiplikativen Inversen einer Polynomfunktion istzum Beispiel eine nichtlineare Operation. AES nutzt diese Eigenschaft imByteSub - Vorgang.

Algorithmus:

Der Block S  wird jetzt wieder stuckweise, namlich Byte fur Byte, ab-gearbeitet. Dieser Algorithmus verwandelt 8 input-Bits (a7, a6, . . . , a0) in 8output-Bits (b7, b6, . . . , b0). Ein Eintrag (= 1 Byte) in der Matrix S  ent-spricht 8 Bits. Im Kapitel 3.1 uber algebraische Vorraussetzungen wurdebereits erklart, dass man 8 Bit (a7, a6, a5, . . . , a0) folgenderweise als Polynomanschreiben kann:

(a7, a6, a5, . . . , a0) = a7x7 + a6x6 + a5x5 . . . + a0x0

34

Page 36: AES_inCounterMode

5/12/2018 AES_inCounterMode - slidepdf.com

http://slidepdf.com/reader/full/aesincountermode 36/49

 

Von diesem Polynom wird das multipikative Inverse mit dem erweiterten

Euklidischen Algorithmus berechnet und wieder als Binarstring geschrieben,der mit (a7, a6, . . . , a0) 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.

bi = (ai + ai+4 + ai+5 + ai+6 + ai+7 + ci)mod2

Die Ausgabe der ersten Transformation von AES liefert den neuen Binarstring(b7, b6, . . . , b0) als ersten Eintrag des neuen Zustandes S , das heißt der ersteEintrag der Matrix S  wurde einmal verschlusselt.

Beispiel: Sei 53(16) gegeben. In Binardarstellung entspricht das 01010011(2)Das wird umgewandelt in Polynomform:

x6 + x4 + x + 1 ∈ GF (28) = Z2[X ]/x8 + x4 + x3 + x + 1

Als nachstes wird das multiplikative Inverse dieses Polynoms mit Hilfe deserweiterten Euklidischen Algorithmus berechnet: Dazu wird zuerst der großtegemeinsame Teiler berechnet:

(x6 + x4 + x + 1, x8 + x4 + x3 + x + 1)

(mittels Polynomdivision:

(x8 + x4 + x3 + x + 1) : (x6 + x4 + x + 1) = x2 + 1 und Rest x2)

(x8 + x4 + x3 + x + 1) = (x2 + 1) · (x6 + x4 + x + 1) + x2

(x6 + x4 + x + 1) = (x4 + x2) · x2 + (x + 1)

(x2) = (x + 1) · (x + 1) + 1

(x + 1) = (x + 1) · 1 + 0

→ ggT(x6 + x4 + x + 1, x8 + x4 + x3 + x + 1) = 1

Wie erwartet ist der ggT eins.

35

Page 37: AES_inCounterMode

5/12/2018 AES_inCounterMode - slidepdf.com

http://slidepdf.com/reader/full/aesincountermode 37/49

 

Im folgenden wird ruckeingesetzt:

(x2) = 1 · (x8 + x4 + x3 + x + 1) + (x2 + 1) · (x6 + x4 + x + 1)

(x + 1) = (x6 + x4 + x + 1) + (x4 + x2) · (x2) =

= (x6 + x4 + x + 1) + (x4 + x2) · [(x8 + x4 + x3 + x + 1)+

+ (x2 + 1) · (x6 + x4 + x + 1)]

= (x6 + x4 + x1) + (x4 + x2) · (x8 + x4 + x3 + x + 1)+

+ (x6 + x4 + x4 + x2) · (x6 + x4 + x + 1)

= (x4 + x2) · (x8 + x4 + x3 + x + 1) + (x6 + x2 + 1) · (x6 + x4 + x + 1)

1 = x2 + (x + 1) · (x + 1) =

= (x8 + x4 + x3 + x + 1) + (x2 + 1) · (x6 + x4 + x + 1) + (x + 1)·

· [(x4 + x2) · (x8 + x4 + x3 + x + 1) + (x6 + x2 + 1) · (x6 + x4 + x + 1)]

= (x5 + x4 + x3 + x2 + 1) · (x8 + x4 + x3 + x + 1)+

+ (x7 + x6 + x3 + x) · (x6 + x4 + x + 1)

Also:

1 = ggT (x8 + x4 + x3 + x + 1, x6 + x4 + x + 1)

≡ (x5 + x4 + x3 + x2 + 1) · (x8 + x4 + x3 + x + 1) mod(x6 + x4 + x + 1)

1 = ggT (x8 + x4 + x3 + x + 1, x6 + x4 + x + 1)

≡ (x7 + x6 + x3 + x) · (x6 + x4 + x + 1) mod(x8 + x4 + x3 + x + 1)

Das multiplikative Inverse von (x6 + x4 + x + 1) ist also (x7 + x6 + x3 + x).Zuruckverwandelt in Binardarstellung: (a7a6...a0) = (11001010). Nun

wird schon der Output-String berechnet:

b0 = a0 + a4 + a5 + a6 + a7 + c0) mod 2 = (0 + 0 + 0 + 1 + 1 + 1) mod 2 = 1

b1 = a1 + a5 + a6 + a7 + a0 + c1) mod 2 = (1 + 0 + 1 + 1 + 0 + 1) mod 2 = 0

...

Das Ergebnis lautet: (b7b6...b0) = (11101101) = ED(16) [18]

Um ByteSub nicht jedes mal durchrechnen zu mussen wurde die AESS-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 Losung des Binarstrings(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

Page 38: AES_inCounterMode

5/12/2018 AES_inCounterMode - slidepdf.com

http://slidepdf.com/reader/full/aesincountermode 38/49

 

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 5316nach einem Druchgang von Bytesub.

In den nachsten zwei Teilen von AES ShiftRow und MixColumn werdendie einzelnen Bytes ai,j des neuen Zustandes S  durchgemischt. Zuerst mitShiftRow:

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

Page 39: AES_inCounterMode

5/12/2018 AES_inCounterMode - slidepdf.com

http://slidepdf.com/reader/full/aesincountermode 39/49

 

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 Hilfeeiner invertierbaren Matrix A durchgemischt. Jedes Byte der neuen Spaltehangt von allen Bytes der alten Spalte ab.

Die input-Bytes a des Zustandes S  werden durchgemixt und als Ergebniserhalt man die Bytes b des neuen, veranderten Zustandes.

A ·

a0,i

a1,i

a2,i

a3,i

=

b0,i

b1,ib2,ib3,i

Beispiel: gegeben:

a0,i

a1,i

a2,i

a3,i

=

D432

F 4AE 

im Hexadezimalsystem. Es wird

immer im Hexadezimal- und Dualsystem gerechnet. Es entspricht

212

50244174

im Dezimalsystem.

Als invertierbare Matrix A ist

2 3 1 11 2 3 11 1 2 33 1 1 2

gegeben.

Also:

2 3 1 11 2 3 11 1 2 33 1 1 2

·

D432

F 4AE 

=

b0,ib1,ib2,ib3,i

⇒ b0,1 = 2 · D4 + 3 · 32 + 1 · F 4 + 1 · AE Man berechnet jetzt die einzelnen Summanden:

2 · D4 = 000000102 · 110101002 = x · (x7 + x6 + x4 + x2)

= (x8 + x7 + x5 + x3) mod(x8 + x4 + x3 + x + 1)

= 1101010002 mod(1000110112)

= 101100112 = B316

38

Page 40: AES_inCounterMode

5/12/2018 AES_inCounterMode - slidepdf.com

http://slidepdf.com/reader/full/aesincountermode 40/49

 

3 · 32 = 000000112 · 001100102

= (x + 1) · (x5 + x4 + x)

= (x6 + x2 + x5 + x5 + x4 + x) mod(x8 + x4 + x3 + x + 1)

= (x6 + x4 + x2 + x) mod(x+x4 + x3 + x + 1)

= 010101102 mod(1000110112)

= 010101102 = 5616

Nun verknupft man die Ergebnisse mit XOR:

b0,1 = B3 + 56 + F 4 + AE  = BF  [30]

KeyAddition

Hier findet die eigentliche Verschlusselung statt, denn nur hier wird derSchlussel verwendet. Dabei wird zwischen dem Block und dem gleichlangenRundenschlussel eine byteweise XOR-Verknupfung ausgefuhrt. Alle anderenTransformationen von AES sind invertierbar ohne Kenntnis des Schlussels.

Aus dem eigentlichen Schlussel K  werden die verschiedenen Runden-schlussel berechnet. Jeder dieser Rundenschlussel wird auf alle Blocke einerRunde 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 Verschlusselung der Klar-textblocke vor sich geht. Die Arbeitsweise einer Betriebsart ist unabhangigvon der Wahl der Blockchiffre. Je nach den Anforderungen der Anwendungverwendet man einen anderen Modus. Fur die Erzeugung von Zufallszah-len eignen sich nur zwei Modi, namlich der Output Feedback Mode und der

Counter Mode.

1. OFB (Output Feedback) Mode

In diesem Betriebsmodus wird der Verschlusselungsalgorithmus als Pseu-dozufallsfolgengenerator verwendet. Die Ausgabe der Blockchiffre wird,wie in in Abbildung 3.5 dargestellt, mit dem Klartext pi bitweise perXOR verknupft um daraus den Geheimtext ci zu bilden. Dieses Ver-fahren erzeugt damit einen Stromchiffre. Die Ausgabe eines Blockchif-freblockes wird gleichzeitig als Eingabe fur den nachsten Block genutzt.

39

Page 41: AES_inCounterMode

5/12/2018 AES_inCounterMode - slidepdf.com

http://slidepdf.com/reader/full/aesincountermode 41/49

 

Der Initialisierungsvektor c0 ist als Startwert zu sehen und vom gewahl-

ten Schlussel unabhangig.

Die Entschlusselung, die in Abbildung 3.6 gezeigt wird, erfolgt analog,nur dass anstatt des Klartextes pi der verschlusselte Text ci als Ein-gabe verwendet wird. Dieser wird mittels XOR mit der Ausgabe desvorhergehenden Blockes verknupft.

Einer der Vorteile ist, dass die Bitfolge bereits vorab berechnet wer-den kann. Weiters besteht bei diesem Modus der Vorteil, dass sich beider Entschlusselung Ubertragungsfehler nur auf die jeweilige fehlerhaf-te Bitstelle im entschlusselten Klartext auswirken. Somit pflanzt sich

der Fehler nicht im Klartext fort.Dieser Modus ist fur das Online Casion nicht geeignet, weil die Peri-odenlange nicht fixiert ist. Die Wahrscheinlichkeit dass eine hohe Peri-ode eintritt ist genauso wahrscheinlich wie eine kurze, was eine Gefahrfur die Sicherheit der erzeugten Zufallszahlen mit sich bringt.

Abbildung 3.5: OFB Verschlusselung

Abbildung 3.6: OFB Entschlusselung

2. Counter (CTR) Mode

Wie der OFB Modus verwandelt auch dieser Modus eine Blockchiffrein eine Stromchiffre. Anstatt einen Klartextblock als Eingabe fur dieBlockchiffrierung zu verwenden, nimmt man einen Zahler (counter) als

40

Page 42: AES_inCounterMode

5/12/2018 AES_inCounterMode - slidepdf.com

http://slidepdf.com/reader/full/aesincountermode 42/49

 

Eingabe. Dieser kann jede beliebige Funktion mit einer moglichst langen

Periode sein.

Abbildung 3.7: Verschlusselung im Counter Mode

Wie in Abbildung 3.7 gezeigt, erhoht man nach jeder Verschlusselungeines Blockes den Zahler um einen bestimmten Wert. Der Zahler mussaber nicht alle Werte der Reihe nach durchzahlen, sondern kann auchbeliebige Zufallszahlen verwenden. Der Vorteil des Counter Modus ist,dass man den i-ten Schlusselblock ki erzeugen und direkt auf diesenzugreifen kann, ohne dazu alle vorherigen Schlusselblocke generieren zu

mussen. Der Zahler wird einfach auf den i-ten internen Zustand gesetztund der gewunschte Block erzeugt.

Die Entschlusselung im Counter Mode ist analog zur Verschlusselung.Dies wird in Abbildung 3.8 veranschaulicht.

Abbildung 3.8: Entschlusselung im Counter Mode

Eine weitere wichtige Eigenschaft des CTR Modus fur das Online Casi-no ist, dass die Periodenlange, die im Gegensatz zum OFB Modus, be-kannt ist und sich nicht verandert. Wie schon erwahnt ist eine moglichst

41

Page 43: AES_inCounterMode

5/12/2018 AES_inCounterMode - slidepdf.com

http://slidepdf.com/reader/full/aesincountermode 43/49

 

lange Periode wichtig. Die Periodenlange vom Klartext ist dabei ident

mit der des Geheimtextes. Außerdem erfolgt keine Fehlerfortpflanzung,da die Blocke unabhangig von einander verschlusselt werden. Da dieWerte parallel berechnet werden ist dieser Modus besonders schnellund effizient. [11] [10] [12]

Aus den oben genannten Grunden ist der Counter Mode der einzige Be-triebsmodus, der fur das Online Casino geeignet ist.

42

Page 44: AES_inCounterMode

5/12/2018 AES_inCounterMode - slidepdf.com

http://slidepdf.com/reader/full/aesincountermode 44/49

 

Kapitel 4

Resumee

Zum Abschluss dieser Arbeit soll noch einmal die Entscheidungsfindung be-grundet werden. Nach eingehender Bearbeitung der Materie kamen wir zudem Schluss, dass der Advanced Encryption Standard im Counter Mode deram Besten geeignete Generator zur Zufallszahlenerzeugung fur ein Online Ca-sino ist. AES erzeugt Zufallszahlenfolgen, welche alle notigen Voraussetzun-gen erfullen, wie Gleichverteilung, Zufalligkeit, Unvorhersagbarkeit und einegroße Periodenlange. Dieser wissenschaftlich fundierter Generator ist sehr ef-fizient, da die Schnelligkeit durch den Counter Mode gewahrleistet wird unddieses Verfahren zerstort alle erkennbaren Muster im Output. Alle zur Zeitbekannten Attacken, selbst die differentielle Kryptoanalyse, sind wirkungslosgegen AES und es besteht auch die modernsten statistischen Testbatteri-en. Da der Algorithmus fur jeden offentlich zuganglich ist, und sich leichtin Programmiersprachen implementieren lasst, ist AES einfach verwendbar.Nach aktuellem Stand der modernen Forschung ist AES deshalb

”State of 

the Art“.

43

Page 45: AES_inCounterMode

5/12/2018 AES_inCounterMode - slidepdf.com

http://slidepdf.com/reader/full/aesincountermode 45/49

 

Abbildungsverzeichnis

2.1 Eine Runde - DES Verschlusselung mit der Feistel-Chiffre . . . 23

3.1 Ausgangszustand S  . . . . . . . . . . . . . . . . . . . . . . . . 333.2 Ablauf einer Runde . . . . . . . . . . . . . . . . . . . . . . . . 343.3 Die S - Box [18] . . . . . . . . . . . . . . . . . . . . . . . . . . 373.4 ShiftRow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373.5 OFB Verschlusselung . . . . . . . . . . . . . . . . . . . . . . . 403.6 OFB Entschlusselung . . . . . . . . . . . . . . . . . . . . . . . 403.7 Verschlusselung im Counter Mode . . . . . . . . . . . . . . . . 413.8 Entschlusselung im Counter Mode . . . . . . . . . . . . . . . . 41

44

Page 46: AES_inCounterMode

5/12/2018 AES_inCounterMode - slidepdf.com

http://slidepdf.com/reader/full/aesincountermode 46/49

 

Tabellenverzeichnis

1.1 Arten von Zufallszahlengeneratoren . . . . . . . . . . . . . . . 4

3.1 Die Parameter von Rijndael . . . . . . . . . . . . . . . . . . . 33

45

Page 47: AES_inCounterMode

5/12/2018 AES_inCounterMode - slidepdf.com

http://slidepdf.com/reader/full/aesincountermode 47/49

 

Literaturverzeichnis

[1] Turingmaschinen. http://www.hib-wien.at/leute/wurban/

informatik/automaten/turingmaschinen.pdf, 03.2010.

[2] Differenzielle 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. Marz 2010.

[5] Kerckhoffs’sches 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. Maerz2010.

[7] Blum Blum Shub- Generator. http://de.wikipedia.org/wiki/

Blum-Blum-Shub-Generator, 29. Maerz 2010.

[8] Kolmogorovkomplexitat. http://www.cs.uni-potsdam.de/ti/lehre/09-Kolmogorov/slides/slides-intro.pdf, April 2010.

[9] Blockchiffren. 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,Marz 2010.

46

Page 48: AES_inCounterMode

5/12/2018 AES_inCounterMode - slidepdf.com

http://slidepdf.com/reader/full/aesincountermode 48/49

 

[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. UniversitatSalzburg.

[26] Peter Hellekalek. Zahlentheorie und Algebra . 2008. Universitat Salzburg.

[27] Philipp Maislinger und Zeljka Ubovic. Sicherheit von Online-Casions.2010.

47

Page 49: AES_inCounterMode

5/12/2018 AES_inCounterMode - slidepdf.com

http://slidepdf.com/reader/full/aesincountermode 49/49

 

[28] Pierre L’Ecuyer. Uniform Random Number Generation.

[29] TCD THE DISTRIBUTED SYSTEMS GROUP, Computer Science De-partment. Random Number Generators: An Evaluation and Comparisonof Random.org and Some Commonly Used Generators. April 2005.

[30] Wikipedia. Rijndael mixcolumns, 2009. 21. April 2010.

[31] Wolfgang Schmidt. (Zahlentheorie Vorlesung). Universitat Salzburg,Sommersemester 2008.

48