Technische Universität Dresden. Diplomarbeit

Größe: px
Ab Seite anzeigen:

Download "Technische Universität Dresden. Diplomarbeit"

Transkript

1 Technische Universität Dresden Fakultät Elektrotechnik und Informationstechnik Institut für Nachrichtentechnik Diplomarbeit zum Thema Untersuchung und effiziente Implementierung von Algorithmen zur Erzeugung von Pseudozufallszahlen zur Erlangung des akademischen Grades Diplomingenieur (Dipl.-Ing.) eingereicht von: Dirk Blumenstein am: Betreuer: verantw. Hochschullehrer: Dipl.-Ing. Martin Mittelbach Prof. Dr.-Ing. habil. Adolf Finger

2 Selbständigkeitserklärung Hiermit erkläre ich, Dirk Blumenstein, dass die am heutigen Tag beim Prüfungsausschuss der Fakultät Elektrotechnik und Informationstechnik eingereichte Diplomarbeit zum Thema Untersuchung und effiziente Implementierung von Algorithmen zur Erzeugung von Pseudozufallszahlen vollkommen selbständig von mir verfasst, keine anderen als die angegebenen Quellen und Hilfsmittel verwendet und Zitate kenntlich gemacht wurden. Dresden, den Dirk Blumenstein

3 Inhaltsverzeichnis Abkürzungen und mathematische Zeichen iii 1 Einleitung Hintergrund und Motivation Ziel der Arbeit und Gliederung Zufallszahlen und Zufallszahlengeneratoren Mathematische Beschreibung eines allgemeinen Pseudozufallszahlengenerators Anforderungen an Pseudozufallszahlengeneratoren Klassifizierung von Pseudozufallszahlengeneratoren Bemerkungen zur Wahl geeigneter Startwerte Transformation in beliebige Verteilungen Testverfahren zur Bewertung von Generatoren Pseudozufallszahlengeneratoren Generatoren für Simulations- und Testverfahren Quadratmittengenerator Lineare und nicht lineare Kongruenzgeneratoren Mehrfach Rekursive Generatoren Generatoren in F Multiplikation mit Carry - Generatoren Kombination von Generatoren

4 Inhaltsverzeichnis ii Chaotische Generatoren mit zufälliger Periodenlänge Generatoren für kryptographische Anwendungen X d mod N - Generatoren oder Powergeneratoren Vergleich und Zusammenfassung verschiedener Generatoren Ein Programm zur Erzeugung von Zufallszahlen Programmfunktionen Bemerkungen zum RUNS und Kolmogorow Smirnov Test Programmstruktur Zusammenfassung und Ausblick 58 A Anhang 61 A.1 Linksammlung zu Zufallszahlengeneratoren Abbildungsverzeichnis 63 Tabellenverzeichnis 64 Literaturverzeichnis 65

5 Abkürzungen und mathematische Symbole iii Abkürzungen Abkürzung Bezeichnung CSPRBG GFSR LFSR LCG MRG MSG MWCG NIST PRNG RNG TGFSR WELL engl.cryptographically secure pseudorandom bit generator engl. generalized linear feedback shift register engl. linear feedback shift register engl. linear congruential generator engl. multiple recursive generator engl. middle-square generator engl. multiply with carry generator National Institut of Standards and Technology engl. pseudorandom number generator engl. random number generator engl. twisted generalized linear feedback shift register engl. Well Equidistributed Long-period Linear Mathematische Zeichen Symbol Bezeichnung x C F(x) F 1 (x) F n (x) f(s) g(s) ggt(a,b) N floor Funktion Korrelationskoeffizient Verteilungsfunktion der Zufallsvariable X Umkehrfunktion der Verteilungsfunktion der Zufallsvariable X empirische Verteilungsfunktion von n Zufallszahlen Zustandsübergangsfunktion eines allgemeinen Generators Ausgabefunktion eines allgemeinen Generators Funktion zur Berechnung des größten gemeinsamen Teilers der ganzen Zahlen a und b Menge der nichtnegativen ganzen (natürlichen) Zahlen

6 Abkürzungen und mathematische Symbole iv N P(x n ) s i u n x n Menge der positiven ganzen Zahlen Wahrscheinlichkeit des Auftretens des Elementes x n Zustand eines allgemeinen Generators n tes Element einer Folge von normierten Zufallszahlen n tes Element einer Folge von Zufallszahlen (X n ) n N Realisierung einer Folge von Zufallszahlen Z Menge der ganzen Zahlen ρ Periodenlänge eines Generators ρ max maximale Periodenlänge eines Generators

7 1 Einleitung Auch nach über fünfzig Jahren stellt das Gebiet der Erzeugung von Zufallszahlen noch immer einen bedeutenden Forschungsschwerpunkt dar. Man kann dieses Forschungsgebiet in zwei Schwerpunkte unterteilen. Einerseits beschäftigt man sich mit der Generierung von sogenannten echten Zufallszahlen. Dies ist aber nur in Verbindung mit meist aufwendigen technischen Geräten möglich. Der andere Schwerpunkt beinhaltet die rein rechentechnische Produktion von Zufallszahlen mit Hilfe geeigneter Algorithmen. Da jeder zur Verfügung stehende Computer ein deterministisches Verhalten aufweist, interessiert man sich nicht für das Erzeugen echter Zufallzahlen, sondern dafür, wie man mit diesen Maschinen Zahlen mit zufälligem Charakter produzieren kann. Auf solchem Wege erstellte Zahlen nennt man demnach scheinbare Zufallszahlen oder auch Pseudozufallszahlen. (Der Begriff Pseudo stammt aus dem Griechischen und bedeutet falsch.) Aufgrund der Berechenbarkeit von Pseudozufallszahlen ist neben der Suche nach geeigneten Algorithmen zum Generieren auch die Entwicklung von Testverfahren zur Bewertung der Zufälligkeit ein großes Anliegen dieses Forschungsbereiches. 1.1 Hintergrund und Motivation Pseudozufallszahlen werden heute in verschiedenen bedeutenden Bereichen verwendet. Zwei Hauptanwendungsgebiete sind computergestützte Simulations- und Testverfahren vor allem in Verbindung mit Monte Carlo Methoden [Fis97b]. Aber auch

8 1 Einleitung 2 auf dem Gebiet der Kryptographie in Verbindung mit Datenübertragungssystemen kann heutzutage nicht mehr auf Zufallszahlen verzichtet werden. Dabei steht hauptsächlich das Generieren kryptographisch sicherer Schlüssel im Vordergrund [MvOV96]. Auf der Suche nach immer schnelleren Algorithmen zum Erzeugen riesiger Mengen von Pseudozufallszahlen mit guten statistischen Eigenschaften sind verschiedene mathematische Konzepte entwickelt worden. Diese Arbeit gibt einen Überblick zum Stand derzeitiger Forschungen und den gebräuchlichsten Verfahren zur computergestützten Erzeugung von Pseudozufallszahlen. 1.2 Ziel der Arbeit und Gliederung Das Ziel dieser Arbeit ist eine Zusammenstellung und Systematisierung heute verwendeter Algorithmen zur Erzeugung von Pseudozufallszahlen. Dabei erfolgt die Klassifizierung vor allem im Hinblick auf die verschiedenen Anwendungsgebiete und die mathematische Struktur der einzelnen Generatoren. Im zweiten Teil wird das erstellte Programm vorgestellt, welches einige moderne Methoden zur Generierung von Pseudozufallszahlen beinhaltet. Einige Grundlagen über Zufallszahlen werden im zweiten Kapitel erläutert. Angefangen mit der Klärung wichtiger Begriffe werden in den weiteren Abschnitten Eigenschaften und damit verbundene Anforderungen zusammengetragen. Weiterhin beinhaltet Kapitel 2 eine Einführung zur Transformation gleichverteilter Zufallszahlen in Zufallszahlen, die einer anderen Verteilungsfunktion genügen. Abschließend werden einige Verfahren zum Testen erzeugter Zufallszahlen erwähnt. In Kapitel 3 werden Algorithmen zur Generierung von Pseudozufallszahlen vorgestellt. Aufgrund der Vielzahl von Verfahren zur Erzeugung von Pseudozufallszahlen konnten nicht alle Methoden berücksichtigt werden. Einerseits liegt der Schwerpunkt auf bekannten Generatoren wie den linearen Kongruenzgeneratoren. Desweiteren sol-

9 1 Einleitung 3 len aktuelle Veröffentlichungen von Pseudozufallszahlengeneratoren eine bedeutende Rolle spielen. Kapitel 4 beinhaltet die Dokumentation des erstellten Programmes zur Erzeugung von Pseudozufallszahlen. Da für viele Algorithmen bereits effiziente Implementierungen öffentlich zur Verfügung stehen, liegt das Hauptaugenmerk auf der Integration der verschiedenen Pakete in einem Programm sowie auf dem Erstellen einer modernen graphischen Benutzeroberfläche. Abschließend werden im letzen Kapitel eine Zusammenfassung der Arbeit und Ideen zur Vervollständigung und Erweiterung einer Übersicht für Möglichkeiten zur Generierung von Pseudozufallszahlen präsentiert.

10 2 Zufallszahlen und Zufallszahlengeneratoren Als eine Folge von Zufallszahlen bezeichnet man eine Zahlenfolge (X n ) n N deren Elemente X n aus dem Alphabet U statistisch voneinander unabhängig sind. Die Wahrscheinlichkeit mit der ein Element X n U auftritt, kann mit einer bestimmten Verteilungsfunktion F(x) = P(X x) beschrieben werden. Das Alphabet U kann entweder endlich oder unendlich viele Elemente enthalten. Geräte oder Anwendungen zur Produktion von Zufallszahlen nennt man Generatoren (RNG, engl.random number generator). Je nach Methode der Generierung unterscheidet man zwei Arten: echte oder physikalische Zufallszahlen und scheinbare Zufallszahlen (Pseudozufallszahlen). Echte Zufallszahlen werden auch physikalische Zufallszahlen genannt, da man sie aus Realisierungen zufälliger Prozesse eines physikalischen Experiments gewinnt, zum Beispiel atomare Zerfallsvorgänge, Würfelexperimente oder thermisches Rauschen. Jedoch haben die physikalischen Generatoren entscheidende Nachteile. Erstens ist die technische Umsetzung oft mit großem Aufwand verbunden, was wiederum hohe Kosten bedeutet. Weiterhin sind die physikalischen Generatoren für viele Anwendungen zu langsam, das heißt, sie produzieren nicht genügend Zufallszahlen pro

11 2 Zufallszahlen und Zufallszahlengeneratoren 5 Zeiteinheit. Der dritte und wohl entscheidende Nachteil ist, dass es mit sehr hoher Wahrscheinlichkeit nicht möglich ist, mit einem physikalischen Generator ein und die selbe Ausgabesequenz unmittelbar hintereinander und beliebig oft zu erzeugen. Diese auch als Reproduzierbarkeit bezeichnete Eigenschaft wird jedoch von vielen Anwendungen von Zufallszahlen gefordert. Möchte man die von einem physikalischen Generator erzeugte Folge von Zufallszahlen mehrfach verwenden, muss die gesamte Zufallszahlenfolge in irgendeiner Weise abgespeichert werden, was schließlich wieder einen erhöhten Aufwand bedeutet. Um schnelle und kostengünstigere Generatoren zu erhalten, entwickelte man mit der Erfindung des Computers Algorithmen zur Erzeugung von Zahlenfolgen mit ähnlich guten statistischen Eigenschaften wie denen von echten Zufallszahlenfolgen. Aufgrund der deterministischen Arbeitsweise eines Computers produzieren solche algorithmischen Generatoren keine echten Zufallszahlen sondern sogenannte scheinbare oder auch Pseudozufallszahlen. Demzufolge werden algorithmische Generatoren auch Pseudozufallszahlengeneratoren (PRNG, engl.pseudo random number generator) genannt. Im Wesentlichen bestehen solche Algorithmen aus einer Rekursionsvorschrift und einem oder mehreren Startwerten, je nachdem, wieviele bereits generierte Zahlen zur Berechnung der folgenden Pseudozufallszahl mit einbezogen werden. Somit genügt es, wenn man sich den Algorithmus und die verwendeten Startwerte merkt, um die angestrebte Reproduzierbarkeit einer Folge von Pseudozufallszahlen zu erreichen. Das Alphabet U von Pseudozufallszahlen, die mit einem Computer erstellt werden, ist immer endlich, weil mit den verschiedenen Datenstrukturen eines Computers nur eine begrenzte Anzahl von Werten dargestellt werden kann. Man unterscheidet periodische und nichtperiodische Algorithmen, wobei periodische Generatoren in der Praxis eine wesentlich größere Rolle spielen. Die Gründe dafür sind die einfachere Implementierung und der dementsprechend geringere Rechenaufwand. Im weiteren Verlauf dieser Arbeit werden ausschließlich Pseudozufallszahlen und verschiedene periodische Pseudozufallszahlengeneratoren betrachtet. Aus diesem Grund

12 2 Zufallszahlen und Zufallszahlengeneratoren 6 sind in der Folge, wenn nicht ausdrücklich anders darauf hingewiesen wird, immer Pseudozufallszahlen und -generatoren gemeint, auch wenn der Verständlichkeit halber unter Umständen von Zufallszahlen und Zufallszahlengeneratoren die Rede ist. 2.1 Mathematische Beschreibung eines allgemeinen Pseudozufallszahlengenerators Alle Zufallszahlengeneratoren, die in dieser Arbeit auftauchen, beruhen auf einem deterministischen Algorithmus und können mit der allgemeinen Struktur G = (S, µ, f, U, g) beschrieben werden. Diese Struktur definiert einen Generator G mit einer endlichen Menge S von möglichen Zuständen s S, einer Zustandsübergangs- oder auch Transitionsfunktion f : S S, dem Ausgabealphabet U und der Ausgabefunktion g : S U. Der Zustand des Zufallszahlengenerators ändert sich entsprechend der Rekursionsgleichung s i = f(s i 1 ) für i 0 (s 0 wird als Startzustand oder auch als Saat bezeichnet), und die Ausgabe u i U im Zustand i ergibt sich durch u i = g(s i ). Die Wahrscheinlichkeitsverteilung µ der Menge S wird zur Wahl des Startzustandes s 0 benutzt. Die Ausgabewerte u 0, u 1,... sind die erzeugten scheinbaren Zufallszahlen. Für jeden Generator G existieren ganze Zahlen j > 0, sodass s i+j = s i gilt. Die kleinste Zahl j, die diese Gleichung erfüllt, wird auch als Periodenlänge ρ bezeichnet. Offensichtlich beruht die Periodizität dieser Generatoren auf der Tatsache, dass die Zustandsmenge S endlich ist. Die maximale Periodenlänge ρ max kann nicht größer als die Kardinalzahl S der Menge S sein.

13 2 Zufallszahlen und Zufallszahlengeneratoren Anforderungen an Pseudozufallszahlengeneratoren In diesem Abschnitt werden einige Kriterien zusammengetragen anhand derer man die Generatoren hinsichtlich ihrer Qualität bewerten und vergleichen kann. Je nach Verwendungszweck der erzeugten Zufallszahlen können die Anforderungen an den jeweiligen Generator durchaus variieren. Für Generatoren im Bereich der Simulationsanwendungen werden folgende Forderungen gestellt: Gleichverteilung der erzeugten Zufallszahlen praktisch statistische Unabhängigkeit aufeinanderfolgender Zufallszahlen möglichst wenige Korrelationen große Periodenlänge ρ des Generators effiziente Implementierung bezüglich Schnelligkeit, Speicherplatzbedarf und Portabilität Die wohl wichtigste Anforderung an PRNGs für Simulationen ist die Gleichverteilung der einzelnen Elemente. Solche Elemente können entweder einzelne Zufallszahlen oder auch Teilfolgen einer Folge von Zufallszahlen sein. Bis zu welcher Zahl d eine Gleichverteilung beliebiger d-tupel u i,d = (u i,...,u i+d 1 ) (i 0, d > 0) von aufeinander folgenden Zufallszahlen im d-dimensionalen Raum nachgewiesen werden kann, ist also ein wichtiges Maß zur Beurteilung der Güte von Generatoren. Weil das Ausgabealphabet U und die Zustandsmenge S endlich sind, gibt es auch nur endlich viele Vektoren u i,d. Diese Vektoren bilden also wieder eine Menge Ψ d = {(u i,1,...,u i,d ) : s 0 S}, welche alle Tupel von d aufeinanderfolgenden Ausgabewerten aller Folgen von Zufallszahlen, die aus allen möglichen Startzuständen entstehen können, enthält. Betrachtet man die Verteilung der als Punkte im d-dimensionalen Raum dargestellten

14 2 Zufallszahlen und Zufallszahlengeneratoren 8 Vektoren (u i,d,...,u i+d 1,d ) (d 2), so stellt man fest, dass bei vielen Typen von Generatoren alle Punkte auf parallelen Geraden, Ebenen oder entsprechenden Hyperebenen liegen. Aus diesem Grund spricht man auch von einer Gitterstruktur des jeweiligen Generators. Für eine relativ gleichmäßige Verteilung sollte der Abstand zwischen den Geraden (d = 2) beziehungsweise Ebenen möglichst klein sein. Im Allgemeinen erzeugen Generatoren also Sequenzen von Zufallszahlen, die einer Gleichverteilung unterliegen. Gelegentlich werden aber auch Zufallszahlen gefordert, die einer anderen Verteilungsfunktion genügen. Eine kurze Einführung zu Transformationen von Zufallszahlen wird im Abschnitt 2.5 erfolgen. Eine echte statistische Unabhängigkeit kann mit einem PRNG natürlich nicht erreicht werden. Da die meisten Algorithmen eine Rekursionsformel verwenden, welche aus einer oder mehreren bereits generierten Zahlen eine neue Pseudozufallszahl berechnet, werden solche Zahlen theoretisch nie unabhängig voneinander sein. Zur Beurteilung der praktischen Unabhängigkeit wird zum Beispiel das Monotonieverhalten der erzeugten Folge von Zufallszahlen untersucht. Man vergleicht die Anzahl von monoton steigenden (oder monoton fallenden) Teilsequenzen einer bestimmten Länge mit einem entsprechenden Vergleichswert aus Untersuchungen von Folgen echter Zufallszahlen. Ein weiteres Maß für die praktische Unabhängigkeit einer Sequenz (u 0, u 1,...,u n 1 ) von Zufallszahlen (der Länge n) ist der Korrelationskoeffizient C [Knu81]. n (u j u j+q ) ( u j )( u j+q ) C = (n u 2 j ( u j ) 2 )(n u 2 j+q ( u j+q ) 2 ) (2.1) Der Summationsindex j läuft für alle Summationen von j = 0 bis j = n 1. Beachtet werden muss, dass der Sonderfall u 0 = u 1 = = u n 1, für den der Nenner zu null wird, ausgeschlossen ist. Der Korrelationskoeffizient beschreibt also wie stark die um q Stellen zyklisch verschobene Folge (u q,...,u n 1, u 0,..., u q 1 ) (0 < q < n) von der unverschobenen Originalsequenz (u 0, u 1,...,u n 1 ) abhängt. Entscheidend für die Unabhängigkeit oder auch Abhängigkeit ist der Betrag von C. Dieser liegt

15 2 Zufallszahlen und Zufallszahlengeneratoren 9 immer im Bereich 0 C 1. Je kleiner der Betrag von C ist, desto unabhängiger sind die Sequenzen voneinander. Eine möglichst große Periodenlänge wird von allen periodischen PRNGs gefordert. Ansonsten ist der scheinbar zufällige Charakter dieser Folgen natürlich nicht mehr gegeben. Die Periodenlänge eines Generators sollte mathematisch nachweisbar sein, da eine experimentelle Überprüfung wegen der sehr großen Periodenlängen neuerer Generatoren oft nicht möglich ist. Allgemein kann man sagen, dass die Periodelänge möglichst größer als die maximal geforderte Anzahl von Zufallszahlen sein sollte. Natürlich sollten gute Generatoren auch entsprechend viele Zufallszahlen pro Zeiteinheit generieren, was unter der Eigenschaft Schnelligkeit verstanden wird. Der Speicherplatzbedarf sollte möglichst gering sein, weil der Generator ja nur ein Werkzeug für andere Systeme (Simulationsprogramme) ist. Mit Portabilität ist gemeint, dass die Implementierung in verschiedenen Software- oder Hardewareumgebungen möglich sein soll. Für kryptographische Anwendungen entwickelte Generatoren gelten die bisher gestellten Anforderungen im Prinzip auch. Um einen sicheren PRNG zu entwickeln, gibt es aber weitere Forderungen. Ein bedeutender sicherheitstechnischer Aspekt ist die Unvorhersagbarkeit von Zufallszahlen. So wird von kryptographisch sicheren Zufallszahlen gefordert, dass es praktisch nicht möglich ist, weitere Zufallszahlen zu berechnen oder mit einer großen Wahrscheinlichkeit vorauszusagen, selbst wenn die bisher erzeugte Folge von Zufallszahlen bekannt ist. Weiterhin sollte es kein Verfahren geben, welches eine kryptographisch sichere Pseudozufallszahlenfolge von einer Folge echter Zufallszahlen mit praktisch endlichem Rechenaufwand unterscheiden kann [MvOV96]. Einige aus den gestellten Anforderungen abgeleitete Testverfahren zur Bewertung der PRNGs werden aus Gründen der Komplexität in dieser Arbeit im Abschnitt 2.6 ebenfalls nur kurz vorgestellt.

16 2 Zufallszahlen und Zufallszahlengeneratoren 10 Viele Generatoren erzeugen sogenannte normierte Pseudozufallszahlen. Darunter versteht man die Begrenzung der möglichen Zufallszahlen auf das Einheitsintervall I = [0, 1]. Das bedeutet also eine Beschränkung des Ausgabealphabets U. Die Ausgabefunktion g muss dann dementsprechend gewählt werden. Betrachten wir beispielsweise einen Generator mit der Zustandsmenge S = {0, 1, 2,..., M}. Die Ausgabefunktion zur Erzeugung normierter Zufallszahlen könnte dann zum Beispiel u i = s i M (2.2) sein. Diese Normierung soll sowohl die Transformation in eine andere Verteilung als auch die verschiedenen Testverfahren erleichtern. Weiterhin könnte man es als eine Art Schnittstelle zwischen den verschiedenen Generatoren und den zahlreichen Anwendungen betrachten. Unter Umständen ist diese Normierung bereits in der Definition von Pseudozufallszahlen enthalten. 2.3 Klassifizierung von Pseudozufallszahlengeneratoren Eine Einteilung der Generatoren bezüglich mathematischer Strukturen in bestimmte Klassen ist nicht ohne weiteres möglich. Man kann jedoch jedem Algorithmus bestimmte Eigenschaften zuordnen. Solche Eigenschaften sind zum Beispiel: periodisch / nicht periodisch einfach rekursiv / mehrfach rekursiv lineare / nicht lineare Rekurionsvorschrift Da nicht periodische Generatoren heute nur eine untergeordnete Rolle spielen, werden sie im weiteren Verlauf der Arbeit nicht weiter beachtet. Aus diesem Grund werden an dieser Stelle einige Bemerkungen eingefügt. Ein Beispiel für nicht periodische Generatoren ist die Verwendung der Nachkommastellen von transzendenten

17 2 Zufallszahlen und Zufallszahlengeneratoren 11 Zahlen, wie der Eulerschen Zahl e oder der Zahl π. Man vermutet, dass, wenn die Zahlenreihe lang genug ist, die Ziffern gleichverteilt sind. Jedoch ist der rechnerische Aufwand zur Erzeugung dieser Nachkommastellen viel zu groß. Deshalb werden solche Generatoren praktisch nicht benutzt. Auch die Klassifizierung nach möglichen Anwendungsgebieten hat sich als schwierig herausgestellt. So ist es zum Beispiel möglich, die meisten für Simulationen verwendeten Generatoren auch für kryptographische Anwendungen entsprechend zu erweitern. Solche Verfahren werden in dieser Arbeit jedoch nicht weiter betrachtet. Letztendlich erscheint jedoch die Systematiserung hinsichtlich der Hauptverwendungszwecke am übersichtlichsten. Als weiteres Kriterium wurden die oben aufgeführten Eigenschaften (hauptsächlich Rekursivität und Linearität, da alle betrachteten Generatoren periodisch sind) benutzt, um weitere Unterklassen zu definieren. Diese Klassifizierung ist keineswegs eindeutig, da es ohne weiteres möglich ist, einige Generatoren in mehrere Klassen einzuordnen. Die nicht linearen Generatoren werden hauptsächlich für kryptographische Anwendungen benutzt, da die unerwünschte Vorhersagbarkeit dadurch deutlich erschwert wird. Dagegen finden lineare Generatoren in allen Gebieten Anwendung, weil der Vorteil des geringeren Rechenaufwandes und somit höherer Geschwindigkeit gegenüber nicht linearen Generatoren oft den entscheidenen Ausschlag zugunsten einer linearen Rekurionsvorschrift gibt. 2.4 Bemerkungen zur Wahl geeigneter Startwerte Da alle betrachteten Pseudozufallszahlengeneratoren deterministische Algorithmen sind, entsteht für einen bestimmten Startwert immer die gleiche Ausgabesequenz. Um dies zu vermeiden verwendet man möglichst zufällige Startwerte. Mit Hilfe eines Pseudozufallszahlengenerators wird der zufällige Startwert praktisch zu einer Folge von Zufallszahlen ausgedehnt. Bei kryptographischen Anwendungen kann es vor-

18 2 Zufallszahlen und Zufallszahlengeneratoren 12 kommen, dass aus Sicherheitsgründen ein Startwert nur einmal verwendet werden darf. Die folgende Übersicht nennt die gängigsten Methoden zur Initialisierung von Generatoren. aktuelle Systemzeit des Rechners Zeitdifferenz zwischen zwei Tastenanschlägen oder Mausbewegungen Inhalt bestimmter Systemspeicher (vozugsweise Eingangs- oder Ausgangspuffer) beliebige Nutzereingaben bestimmte Betriebssystemwerte wie Systemauslastung oder Netzwerkaktivität Ausgaben eines echten Zufallszahlengenerators oder eines weiteren Pseudozufallszahlengenerators Bei Generatoren mit sehr großen Periodenlängen und nicht periodischen Generatoren ist es auch möglich, die zuletzt generierten Zufallszahlen als Startwerte für einen weiteren Durchlauf zu verwenden. 2.5 Transformation in beliebige Verteilungen Wie bereits erwähnt, sind, hauptsächlich bei Simulationsanwendungen, unter Umständen Folgen von Zufallsgrößen gefordert, welche einer bestimmten Verteilung unterliegen. Ausgangspunkt für alle folgenden Transformationen sind im Intervall [0, 1] gleichverteilte Zufallszahlen u i. Die allgemeine Transformationsvorschrift für eine kontinuierliche Verteilungsfunktion lautet ([Sch99], [Aff90]): x i = F 1 (u i ) (F 1 (x) Umkehrfunktion der Verteilungsfunktion F(x)) (2.3)

19 2 Zufallszahlen und Zufallszahlengeneratoren 13 Die neuen Zufallszahlen x i erhält man also mit Hilfe der Umkehrfunktion der geforderten Verteilungsfunktion F(x), falls die Verteilungsfunktion und deren Umkehrfunktion analytisch berechnet werden können. Zum besseren Verständnis soll das folgende Beispiel zur Transformation in exponentialverteilte Zufallszahlen dienen. F(x, λ) = 1 e λx für x 0 0 für x < 0 u = F(x, λ) = 1 e λx x = ln (1 u) λ (2.4) Weil die Zufallszahl 1 u genau wie u im Intervall [0, 1] gleichverteilt ist, folgt, dass die Zahlenreihe x i = ln u i λ (2.5) der Wahrscheinlichkeit F(x, λ) folgt. Diese Methode kann zur Erzeugung beliebig verteilter Zufallsziffern benutzt werden, insofern die Umkehrfunktion F 1 analytisch bestimmt werden kann. Da eine intensive Betrachtung dieses Themas aus Komplexitätsgründen nicht möglich war, wird für weitere Transformationsverfahren auf die angegebene Literatur verwiesen ([Zie78], [Sch99], [Aff90]). Für häufig verwendete Transformationen existieren bereits frei verfügbare Implementierungen. Einige Beispiele sind die stocc Bibliothek, erhältlich unter die Newran02B Bibliothek von net oder die RANDLIB90 Bibliothek von Diese Bibliotheken beinhalten bereits jeweils einen Generator zur Erzeugung gleichverteilter Zufallszahlen auf die aber hier nicht weiter eingegangen wird.

20 2 Zufallszahlen und Zufallszahlengeneratoren Testverfahren zur Bewertung von Generatoren Grundsätzlich werden zwei Arten von Testverfahren zur Beurteilung der Güte von Pseudozufallszahlengeneratoren unterschieden. Einerseits wird versucht aus der mathematischen Struktur der angewendeten Algorithmen Rückschlüsse auf die Eigenschaften der Zufallszahlenfolge zu gewinnen. Solche Tests werden als theoretische Verfahren bezeichnet. Zum Beispiel zählen Methoden zur Bestimmung der Periodenlänge zu den theoretischen Tests, da die experimentelle Bestimmung der oft sehr großen Periodenlänge nur schwer möglich ist. Die zweite Klasse von Testverfahren sind sogenannte empirische Tests. Die Idee besteht darin, die von einem Generator erzeugten Zufallszahlen mit Hilfe statistischer Tests bezüglich Eigenschaften wie Unabhängigkeit oder Gleichverteilung als Merkmal der Zufälligkeit zu überprüfen. Man betrachtet den Generator als black box und untersucht lediglich die generierte Folge von Zufallszahlen. Im Gegensatz zu theoretischen Verfahren spielt die Struktur des Generators also keine Rolle. Die folgende Übersicht zeigt die wichtigsten empirischen Verfahren: 1. Kolmogorow - Smirnow Test 2. χ 2 - Test oder χ 2 - Anpassungstest 3. Poker - Test 4. Serial - Test 5. Run - Test 6. Korrelations Test Beim Kolmogorow - Smirnow Test wird die empirische Verteilungsfunktion der zu testenden Sequenz von n generierten Zufallszahlen u 1, u 2,...,u n F n (x) = Anzahl der u 1, u 2,..., u n, die x sind n (2.6)

21 2 Zufallszahlen und Zufallszahlengeneratoren 15 gebildet und mit der geforderten theoretischen Verteilungsfunktion F(x) = P(X x) verglichen. Je geringer der Abstand zwischen den beiden Funktionen ist, desto besser ist das Testergebnis. Für den χ 2 - Test wird die Menge der möglichen Zufallszahlen U in k Kategorien unterteilt. Mit der Wahrscheinlichkeit p j fällt die Zufallszahl u i in die Kategorie j. Die aktuelle Anzahl von Zufallszahlen der Testsequenz u 1, u 2,..., u n in Kategorie j ist Y j. Letztendlich vergleicht man die aktuelle Anzahl Y j jeder Kategorie mit der zu erwartenden Anzahl von n p j Werten in der Kategorie j. Beim Pokertest betrachtet man jeweils k aufeinander folgende Werte der Testsequenz u 1, u 2,...,u n, überprüft wieviele unterschiedliche Zufallszahlen jedes k-tupel enthält und vergleicht diese Beobachtungen mit entsprechenden Referenzwerten. Der Serial Test bewertet die Testsequenz u 1, u 2,...,u n bezüglich der Verteilung beliebiger 2-Tupel. Auch hier wird wiederum eine Gleichverteilung der 2-Tupel angestrebt. Alle bisher beschriebenen Testverfahren beurteilen die Zufälligkeit der Testsequenz in Bezug auf die Verteilung der erzeugten Zufallszahlen. Im Folgenden werden noch zwei Tests zur Beurteilung der praktischen Unabhängigkeit vorgestellt. Mit dem RUNS Test wird die Länge von Blöcken bestimmt, die ein gleiches Monotonieverhalten aufweisen. Entweder man ermittelt von der Testsequenz die Länge der Blöcke, wo die Zufallszahlen monoton steigen ( RUNS UP ) oder die Länge der Blöcke, in denen der Betrag der Zahlen monoton abnimmt ( RUNS DOWN ). Die Anzahl der Blöcke einer Länge wird wiederum mit theoretischen Werten verglichen. Betrachtet man die Beispielfolge: (X n ) = (0, 123; 0, 357; 0, 789; 0, 425; 0, 224; 0,416;0, 95) erhält man einen RUNS UP der Länge drei und einen RUNS UP der Länge zwei oder einen RUNS DOWN der Länge drei.

22 2 Zufallszahlen und Zufallszahlengeneratoren 16 Der Korrelationstest soll, wie der Name schon sagt, mögliche Zusammenhänge innerhalb der Zufallszahlenfolge aufdecken. Hauptsächlich ist dieser Test eine Implementierung des in Abschnitt 2.2 vorgestellten Korrelationskoeffizienten C. Eventuell vorhandene verdeckte Abhängigkeiten innerhalb der Testsequenz können damit am Besten gefunden werden. Ein weiteres wichtiges Verfahren, das weder zu den empirischen noch zu den theoretischen Tests zählt, ist der Spektraltest. Er wird bei Generatoren angewendet, die auf einer Gitterstruktur (siehe Abschnitt 2.2) basieren und bewertet den Generator bezüglich der beschriebenen Abstände in der Gitterstruktur. Da vielen heute verwendeten Algortihmen eine Gitterstruktur zugrundeliegt (z.b. Lineare Kongruenzgeneratoren, siehe Abschnitt 3.1.2), ist der Spektraltest heute eines der wichtigsten Testverfahren. Alle Generatoren, die zusätzlich zu den empirischen und theoretischen Tests den Spektraltest bestehen, werden heute als gut bewertet. Dagegen gilt ein Generator als ungenügend, wenn er den Spektraltest nicht besteht, auch wenn er bei den anderen Tests zufriedenstellend abgeschnitten hat. Auch für die Suche nach geeigneten Parametern für verschiedene Typen von Generatoren ist der Spektraltest von großer Bedeutung. Letztendlich muss jedoch beachtet werden, dass die Ergebnisse der einzelnen Tests sich immer auf die verwendeten Zufallszahlen beziehen. Wird, zum Beispiel, der Generator mit einem anderen Startwert initialisiert, kann das Testergebnis dieser Folge schon wieder anders ausfallen [Hel98], was natürlich bei einem guten Generator nicht der Fall sein sollte. Man kann sich auch nicht auf ein paar wenige Tests verlassen, da keiner dieser Tests Aussagen über Zufälligkeit einer Folge macht sondern immer nur ein bestimmtes Merkmal untersucht. Um Aussagen über die Qualität eines Generators machen zu können, ist es nötig, mehrere sehr lange erzeugte Folgen von Zufallszahlen einer Reihe von Tests zu unterziehen. Eine ausführliche Beschreibung aller heute gängigen Methoden zur Bewertung der Güte von Generatoren mit denen Pseudozufallszahlen erzeugt werden, ist in [Knu81]

23 2 Zufallszahlen und Zufallszahlengeneratoren 17 zu finden. Für empirische Tests und den Spektraltest existieren zahlreiche frei verfügbare Softwarepakete. Die DIEHARD Batterie von George Marsaglia, erhältlich unter zählt wohl zu den Bekanntesten.

24 3 Pseudozufallszahlengeneratoren In diesem Kapitel werden einige Verfahren zur Erzeugung von Pseudozufallszahlen vorgestellt und beschrieben. Dabei soll vor allem der mathematische Zusammenhang der verschiedenen Generatoren im Vordergrund stehen. Im ersten Abschnitt sind Generatoren für verschiedene Simulations- und Testanwendungen aufgeführt. Im Abschnitt 3.2 werden ein paar wenige Pseudozufallsgeneratoren, welche im Bereich der Kryptographie verwendet werden, vorgestellt. Aus welchen Gründen auch immer sind Informationen über Generatoren für kryptographische Anwendungen sehr rar, weshalb der Schwerpunkt auf Generatoren für Simulations- und Testanwendungen liegt. Abschließend enthält der Abschnitt 3.3 eine Zusammenfassung und Gegenüberstellung der Generatoren. 3.1 Generatoren für Simulations- und Testverfahren Quadratmittengenerator Einer der ersten Algorithmen zur Erzeugung von Pseudozufallszahlen ist der Quadratmittengenerator von John von Neumann, der den auch als Middle-square-Methode bekannten Generator (MSG, engl. middle-square generator) bereits 1949 vorstellte [Aff90]. Wegen der begrenzten Rechenkapazität wurde die Rekursionsvorschrift sehr einfach gehalten:

25 3 Pseudozufallszahlengeneratoren Wähle einen Startwert x 0 mit 2j Stellen (j N ) 2. Die neue Zahl x i (i = 1, 2, 3,...) erhält man durch quadrieren des Vorgängers x i 1 und extrahieren der 2j mittleren Zahlen 3. ist die Anzahl der Stellen 2j ungerade, wird eine Null vorangestellt Mit den mathematischen Gleichungen für die Zustandsübergangsfunktion f und die Ausgabefunktion g x 2 f(s i 1 ) = s i = x i = i 1 c j x 2 i 1 c 2j (3.1) c 3j g(s i ) = u i = x i c 2j (3.2) lässt sich dieser Generator sehr leicht implementieren. Die x Funktion (floor Funktion) liefert dabei die größte ganze Zahl kleiner oder gleich x und der Parameter c repräsentiert das entsprechende Zahlensystem (zum Beispiel: c = 10 - Dezimalzahlensystem oder c = 2 - Binärzahlensystem). So zufällig die Zahlenfolge auch erscheinen mag, birgt diese Methode einen entscheidenden Nachteil. Es ist ein allgemeines Problem des Quadratmittengenerators, dass sich bereits nach wenigen Durchläufen ein periodisches Verhalten einstellt. Ein Beispiel mit j = 2 und dem beliebigen Startwert x 0 = 6523 ist in Tabelle 3.1 angegeben. Anhand der Beispielsequenz kann man erkennen, dass schon ab dem Zustand i = 63 eine sich immer wiederholende Folge von vier Ausgabewerten auftritt. Aus diesem Grund wird die Middle-square-Methode heute nicht mehr verwendet und ist mehr oder weniger nur noch von historischer Bedeutung.

26 3 Pseudozufallszahlengeneratoren 20 i x i x 2 i u i , , , , , , , , , , Tabelle 3.1: Beispielsequenz eines Quadratmittengenerators Lineare und nicht lineare Kongruenzgeneratoren Der lineare Kongruenzgenerator (LCG, engl.linear Congruential Generator) zählt heute noch immer zu den am häufigsten verwendeten Methoden zur Erzeugung von Pseudozufallszahlen. Erstmals 1949 von D. H. Lehmer erwähnt, ist es heute einer der am Besten auf statistische Eigenschaften untersuchte Pseudozufallszahlengenerator [Knu81]. Die allgemeine Form f(s i 1 ) = s i = x i = (ax i 1 + c) mod m, i 1, 0 < x i < m (3.3) g(s i ) = u i = x i m, 0 < u i < 1 (3.4)

27 3 Pseudozufallszahlengeneratoren 21 enthält vier grundlegende Parameter. m, (Modul) m N a, (Multiplikator) 0 < a < m c, (Inkrement) 0 c < m x 0, (Startwert) 0 x 0 < m (3.5) Die Wahl der Parameter ist dabei keineswegs beliebig. Um die maximale Periodenlänge ρ max = m 1 zu erreichen, muss folgendes beachtet werden: 1. c modulo m ist gleich eins (ggt(c, m) = 1), 2. ist p ein Primteiler von m, so muss auch a 1 durch p teilbar sein, 3. ist 4 ein Teiler von m, so muss auch a 1 durch 4 teilbar sein. Weiterhin sollte für den Modul m eine möglichst große Primzahl gewählt werden, damit der Fall x i = 0 ausgeschlossen werden kann und die maximale Periodenlänge erreicht wird. Aufgrund der intensiven Untersuchungen zur Verbesserung der linearen Kongruenzgeneratoren enstanden weitere Algorithmen. Eine Variante ist der sogenannte multiplikative Kongruenzgenerator. Aus Gleichung 3.3 erhält man die Zustandsübergangsgleichung indem das Inkrement c = 0 gesetzt wird. Die Ausgabefunktion g ist identisch (Gleichung 3.4). f(s i 1 ) = s i = x i = (ax i 1 ) mod m, i 1 (3.6) Der Vollständigkeit halber sei erwähnt, dass D. H. Lehmer diese Variante des Kongruenzgenerators bevorzugte, um den Rechenaufwand so gering wie möglich zu halten [PM88]. Er wies aber bereits auf die Möglichkeit c 0 hin. Die Idee zur Vergrößerung der Periodenlänge unter Verwendung eines Inkrementes c 0 stammt von Thompson (1958) [Knu81].

28 3 Pseudozufallszahlengeneratoren 22 Name Modul m Multiplikator a Inkrement c Startwert x 0 Ansi-C Minimal Standard RANDU SIMSCRIPT NAG s LCG Maple s LCG Tabelle 3.2: Parameter bekannter LCG s (Quelle: [Hel98]) In Tabelle 3.2 sind einige bekannte Beispiele für LCG s aufgeführt. Darunter befindet sich auch das wohl prominenteste Beispiel eines häufig verwendeten jedoch nicht zu empfehlenden Generators namens RANDU (siehe [Knu81]). Aufgrund seiner ungünstigen Gitterstuktur für d = 3 sollte er für anspruchsvolle Anwendungen nicht mehr verwendet werden. Weitere günstige Parameter für multiplikative Kongruenzgeneratoren sind in [L E91] zu finden. Stellvertretend für die Vielzahl an möglichen linearen Kongruenzgeneratoren soll der Minimal Standard Algorithmus von Stephen K. Park und Keith W. Miller hier kurz vorgestellt werden [PM88]. Wie man in Gleichung 3.7 sieht, handelt es sich beim Minimal Standard um einen multiplikativen Kongruenzgenerator. f(s i 1 ) = s i = x i = 16807x i 1 mod = 7 5 x i 1 mod (3.7) Die Verwendung der Mersenne Primzahl m = wurde bereits von D. H. Lehmer in [Leh51] vorgeschlagen, jedoch erst Mitte der 60ziger Jahre mit Entwicklung der 32 Bit Arithmetik als Rechenstandard wieder aufgegriffen [PM88]. Der Multiplikator a = 7 5, entdeckt von Lewis, Goodman und Miller [LGM69], in Verbindung mit dem genannten Modul ermöglicht die maximale Periodenlänge von ρ =

29 3 Pseudozufallszahlengeneratoren 23 Der in Gleichung 3.7 definierte Generator wurde laut [PM88] zahlreichen Tests zur Überprüfung der Zufälligkeit der erzeugten Zahlen unterzogen. Diese bestand der Minimal Standard zwar nicht mit Bestnoten, jedoch ist es laut Schrage [Sch79] möglich, ihn in jeder höheren Programmiersprache ohne Überlauf zu implementieren. Im Laufe der Zeit entstanden Abwandlungen der linearen Kongruenzmethode. Beispiele dafür sind der quadratische Kongruenzgenerator (Gleichung 3.8, [Knu81]), der inverse Kongruenzgenerator (ICG, engl.inversive Congruential Generator, Gleichung 3.9, [Hel98]) und der explizit inverse Kongruenzgenerator (EICG, engl.explizite Inversive Congruential Generator, Gleichung 3.10, [Hel98]). Diese drei Varianten von Kongruenzgeneratoren zählen jedoch wegen ihrer nicht linearen Rekursionsgleichungen zu den nicht linearen Generatoren. f(s i 1 ) = s i = x i = (bx 2 i 1 + ax i 1 + c) mod m, i > 0 (3.8) f(s i 1 ) = s i = x i = ax i 1 + c mod m, i > 0 (3.9) f(s i 1 ) = s i = x i = a(i + i 0 ) + c mod m, i 0 (3.10) mit m N, und 0 < a, c, b, i 0 m (z = z 1 mod m, 0 < z < m) Um normierte Zufallszahlen zu erhalten, kann man die in Gleichung 3.4 definierte Ausgabefunktion verwenden. Wiederum ist aber die Wahl der Parameter für die Periodenlänge und statistischen Eigenschaften der Zufallsziffern ausschlaggebend ([Knu81], [Hel98]). Der entscheidende Nachteil gegenüber linearen Kongruenzgeneratoren ist die deutlich langsamere Implementierung der nichtlinearen Rekursionsformeln. Verglichen mit einem LCG sind zum Beispiel die inversen Generatoren laut [Hel98] drei bis zehnmal langsamer. Darum sind diese Methoden etwas in den Hintergrund geraten und werden hier nicht so ausführlich dargestellt.

30 3 Pseudozufallszahlengeneratoren Mehrfach Rekursive Generatoren 1973 erwähnte A. Grube erstmals mehrfach rekursive Generatoren (MRG, engl.multiple Recursive Generator) [L E90]. Die Besonderheit besteht darin, dass die neue Zufallszahl nicht nur aus dem Vorgänger sondern aus den letzten k Zufallszahlen (k N) berechnet wird. Ein allgemeiner MRG ist durch die Rekursionsgleichung x i = (α 1 x i α k x i k ) mod m, i k, 0 α j m (3.11) mit den Startwerten (x 0, x 1,...,x k 1 ) definiert. Für k = 0 erhält man, wie leicht zu sehen ist, die Rekursionsgleichung für einen multiplikativen Kongruenzgenerator, welchen man folglich als einen Sonderfall der MRGs betrachten kann. Die Zustandsübergangsfunktion f eines allgemeinen MRGs lautet entsprechend f(s i 1 ) = s i = As i 1 mod m (i > 0) (3.12) mit s i = x i k+1 x i k+2. x i 1 x i und A = α k α k 1 α k 2 α 1 Um normierte Zufallszahlen zu erhalten, wird als Ausgabefunktion wieder g(s i ) = u i = x i /m definiert. Die maximale Periodenlänge von ρ max = m k 1 wird laut [L E90] erreicht, wenn der Modul m eine Primzahl ist und das sogenannte charakteristische Polynom z p(z) = det(a ze) = z k α j z k j = z k α 1 z k 1 α k (3.13) j=1 ein primitives Polynom (modulo m) ist. Die Matrix E ist eine k k Einheitsmatrix. Ein primitives Polynom ist erstens irreduzibel, dass heißt, es lässt sich in dem endlichen Körper F m k mit m k Elementen nicht in Faktoren zerlegen, und zweitens

31 3 Pseudozufallszahlengeneratoren 25 besitzt es eine Nullstelle, die ein primitives (erzeugendes) Element des Körpers F m k ist [Knu81]. Mit Hilfe eines primitiven Elementes lassen sich durch Potenzieren (modulo m) alle weiteren Elemente des endlichen Körpers erzeugen. Wie man sieht, werden im schlimmsten Fall bei jeder Iteration k Multiplikationen durchgeführt, was doch eine wesentlich schlechtere Effizienz im Vergleich mit LCGs bedeutet. Um die Anzahl der Multiplikationen zu verringern, gibt es zwei Ansätze. Der erste führt zu den schnellen mehrfach rekursiven Generatoren (FMRG, engl.fast Multiple Recursive Generator), vorgeschlagen von Deng und Lin [DD00]. Diese speziellen MRGs haben die Form x i = (αx i k ± x i 1 ) mod m, i k. (3.14) Bis auf zwei α i werden alle anderen Null gesetzt, um Multiplikationen einzusparen. Für die Wahl des Parameters α wird in [DD00] wegen besserer Implementierungen die Bedingung α < m angegeben. Eine andere Variante, die auf dem selben Prinzip beruht, wird in [L E90] beschrieben. So hat man gute Generatoren gefunden, wenn das charakteristische Polynom p(z) ein primitives Trionamial der Form p(z) = z k α j z k j α k ist. Die Rekursionsgleichung lautet dann wie folgt: x i = (α j x i j + α k x i k ) mod m, i k. (3.15) Die von Lih-Yuan Deng und Hongquan Xu in [DX03] beschriebene Gruppe von DX-k-s Generatoren benutzt einen weiteren Ansatz. Diese Generatoren besitzen s Koeffizienten α j ungleich null, welche alle gleich gewählt werden. Klammert man die restlichen α j 0 aus, so wird wiederum die Anzahl der nötigen Multiplikationen stark reduziert. In [DX03] wurden folgende Generatoren mit s 4, k = 102 und k = 120 betrachtet: DX-k-2 (α 1 = α k = b): x i = b(x i k + x i 1 ) mod m (3.16)

32 3 Pseudozufallszahlengeneratoren 26 DX-k-3 (α 1 = α k/2 = α k = b): x i = b(x i k + x i k/2 + x i 1 ) mod m (3.17) DX-k-4 (α 1 = α 2k/3 = α k/3 = α k = b): x i = b(x i k + x i 2k/3 + x i k/3 + x i 1 ) mod m. (3.18) Als Beispiel sei hier der Algorithmus DX genannt (Gleichung 3.19). x i = (x i x i x i 503 +x i 1 ) mod , i 1511 (3.19) Aufgrund dieser Parameter ergibt sich eine sehr große Periodenlänge von ρ = m ,5. Nach den bisherigen Recherchen ist der DX der Generator mit der größten Periodenlänge. Ob die Kritik von Pierre L Ecuyer und Renée Touzin in [LT03] bezüglich nicht so guter statistischer Eigenschaften an den vorgestellten FMRGs aus [DD00] auch auf den oben genannten DX Generator zutrifft, konnte nicht eindeutig ermittelt werden. Als Alternative, sowohl im Bezug auf schnelle Implementierungen als auch große Periodenlängen, empfehlen sie unter anderem den in Abschnitt beschriebenen Generator MT19937 oder auch den kombinierten MRG MRG32k3a aus [L E99], welcher im Abschnitt erwähnt wird. Laut [LT03] besitzen diese Generatoren bessere statistische Eigenschaften und deren Periodenlänge ist für viele Anwendungen ausreichend Generatoren in F 2 Hauptsächlich werden Generatoren mit Werten und Operationen des endlichen Körpers F 2 = ({0, 1},, ) definiert, weil es eine sehr schnelle und effiziente Implementierung der Operationen modulo zwei ermöglicht. Die Operationen und sind die Addition modulo zwei beziehungsweise die binäre Multiplikation, welche auch als XOR und AND bezeichnet werden. Meistens reichen einfache Bitoperationen wie

33 3 Pseudozufallszahlengeneratoren 27 bitweise Addition, Verschiebeoperationen sowie bitweise Und- und Oderverknüpfungen für die Umsetzung in einem Programm aus. Im Prinzip handelt es sich ebenfalls um mehrfach rekursive Generatoren mit der Beschränkung auf den Körper F 2. Die allgemeine Form (siehe [LP05]) lässt sich durch die Gleichungen f(s i 1 ) = s i = As i 1, (3.20) w g(s i ) = u i = y i, l 1 2 l, (3.21) l=1 mit y i = Bs i (3.22) mit dem k dimensionalen Zustandsvektor im Zustand i s i = (s i,0,..., s i,k 1 ) T F k 2 und dem w dimensionalen Ausgabevektor im Zustand i y i = (y i,0,..., y i,w 1 ) T F w 2 (i, k, w N) beschreiben. Die k k Matrix A bezeichnet man als Zustandsübergangsmatrix oder auch als Transitionsmatrix und die w k Matrix B als Ausgabematrix. Alle Werte von A und B sind Elemente aus F 2 und alle Operationen werden in F 2 (modulo 2) durchgeführt. Wie in [L E94] beschrieben, kann die Sequenz {s i,j, i 0} für jedes ganzzahlige j mit der Rekusionsformel s i,j = (a 1 s i 1,j + + a k s i k,j ) mod 2 (a j F 2 ) (3.23) beschrieben werden. Man kann diese Form unter anderem auch für einfache Implementierungen verwenden. Das Polynom p(z) (Gleichung 3.24) wird analog zum letzten Abschnitt als charakteristisches Polynom bezeichnet und als Nachweis einer maximalen Periodenlänge benutzt. Die Matrix E ist wieder die Einheitsmatrix und alle a j sind Elemtente von F 2. p(z) = det(a ze) = z k a 1 z k 1 a k 1 z a k mod 2 (3.24) Wie in [Knu81] ausführlich hergeleitet, erzeugt ein Generator nach dem Grundschema (Gleichungen 3.22) nur dann eine Sequenz mit maximaler Länge ρ max = 2 k 1, wenn das charakteristische Polynom p(z) wiederum ein primitives Polynom der Ordnung k (a k = 1) im endlichen Körper F 2 ist. Um mehrere Iterationen in einem Schritt

34 3 Pseudozufallszahlengeneratoren 28 durchzuführen, multipliziert man die meist vorberechnete Matrix A ν mit s i und man erhält den Zustandsvektor im Zustand ν s i+ν. Neben den linearen Kongruenzgeneratoren, die aufgrund ihrer Einfachheit noch immer sehr verbreitet sind, gehören Zufallszahlengeneratoren in F 2 heute wohl zu den am häufigsten angewendeten Methoden zur Generierung von Pseudozufallszahlen. Die Generatoren des Körpers F 2 bieten wohl die besten Eigenschaften für eine deterministische Erzeugung von scheinbaren Zufallszahlen. Sie ermöglichen sehr große Periodenlängen, eine effiziente Implementierung aufgrund der einfachen Rechenregeln in F 2 sowie nachweisbar sehr gute statistische Eigenschaften besonders im Bereich der mehrdimensionalen Gleichverteilung [L E94]. Als problematisch hat sich jedoch der Entwurf geeigneter Matrizen A und B sowie die Suche nach geeigneten Parametern herausgestellt. Aufgrund der vielen Möglichkeiten werden Parameter, mit der Forderung eine maximale Periodenlänge zu erzeugen, zufällig ausgewählt. Anschließend wird der entsprechende Generator geeigneten Tests unterzogen und die zugehörigen Parameter entweder für gut oder ungeeignet befunden. Als Vertreter dieser Klasse von Genratoren sind die in [LMP05] beschriebenen WELL- Generatoren (engl. well equidistributed long-period linear), linear rückgekoppelte Schieberegister Generatoren (LFSR, engl. linear feedback shift generators, oder auch Tausworthe Generatoren, siehe [L E96b], [L E96c])und die GFSR (engl. generalized feedback shift generators) und twisted GFSR Generatoren (TGFSR) zu erwähnen [MK94]. Dabei zeichnen sich vor allem die neueren WELL-Generatoren durch große Periodenlängen (bis zu ρ = ) aus. Eine Zusammenfassung der Entwicklungen in diesem Gebiet der letzten Jahre ist in [LP05] dargestellt. Die LFSR oder auch Tausworthe Generatoren modulo zwei wurden erstmals 1965 von R. C. Tausworthe beschrieben. Sie erzeugen eine Bitfolge (x i ) i N, welche durch folgende Rekursionsgleichung definiert ist: x i = a 1 x i a k x i k mod 2. (3.25)

35 3 Pseudozufallszahlengeneratoren 29 Alle a j s sind Elemente von {0, 1} und a k = 1 als Voraussetzung für eine maximale Periodenlänge. Entsprechend normierte Pseudozufallszahlen u i erhält man aus einem Block von w Bits, welcher aller s Schritte erzeugt wird, wie folgt. w u i = x is+l 1 2 l w, s N (3.26) l=1 Mit der Zustandsübergangsmatrix s A = (A 0 ) s =...., 1 a k a k 1 a 1 dem Zustandsvektor s i = (s i,0, s i,1,..., s i,k 1 ) T = (x i k, x i k+1,..., x i ) T und den ersten w Zeilen einer k k Einheitsmatrix E (w k) als Ausgabematrix B lassen sich LFSR Generatoren auch mit den allgemeinen Gleichungen (3.20, 3.21 und 3.22) beschreiben [LP05]. In Abbildung 3.1 ist die Prinzipschaltung eines allgemeinen Schieberegistergenerators zu sehen. x i x i-1 x i-2 x D D... i-k+2 x i-k+1 x i-k D D a1 a2 ak 2 ak 1 ak = 1... Abbildung 3.1: Allgemeines Blockschaltbild eines linearen Schieberegisters Wegen der nicht so guten statistischen Eigenschaften eines einzelnen LFSR Generators werden nur noch Kombinationen von zwei oder mehr LFSRs zur Erzeugung von Zufallszahlen verwendet ([L E96b], [L E96c]).

36 3 Pseudozufallszahlengeneratoren 30 Wie der Name schon sagt, sind die generalized feedback shift generators eine Verallgemeinerung der LFSRs. Im Falle der GFSR Generatoren ist die Zustandsübergangsmatrix A eine pq pq Matrix der Form [LP05]: A = 0 0 E p S E p E p E p 0 (3.27) für beliebige ganze positive Zahlen p und q, der p p Einheitsmatrix E p und der p p Teilmatrix S, welche je nach Typ unterschiedlich aussieht. Die Einheitsmatrix E p in der ersten Zeile von A tritt in den Spalten (r 1)p+1 bis rp für eine beliebige positive Zahl r p auf. Für die Ausgabematrix B werden die ersten w Zeilen der pq pq Einheitsmatrix benutzt. Der Zustandsvektor s i = (x i, x i 1,..., x i q ) T eines GFSR Generators besteht aus q Spaltenvektoren der Länge p, welche Elemente des Körpers F 2 enthalten. Etwas übersichtlicher ist die äquivalente Darstellung mit der allgemeinen Rekursionsgleichung: x i = x i 1 x i 2 x i q (i q) (3.28) mit den p-bit Vektoren x j, die bitweise modulo 2 addiert werden ( ). Laut [LP05] wählt man oft w = p und für die Matrix S ebenfalls eine p p Einheitsmatrix. Diese Spezialisierung führt zu der verkürzten Rekursionsgleichung: x i = x i r x i q (i q). (3.29) Solche speziellen GFSRs nennt man auch trinomial basierende GFSRs. Sie sind sehr schnell, haben aber nur eine maximale Periodenlänge von ρ max = 2 q 1, weil jedes Bit von s i der selben Sequenz der Länge ρ = 2 q 1 folgt, die mit dem charakteristischen Polynom p(z) = z q z q r 1 definiert ist. Die Bezeichnung trinomial

Zufallszahlen. Diskrete Simulation. Zufallszahlengeneratoren - Zufallszahlen

Zufallszahlen. Diskrete Simulation. Zufallszahlengeneratoren - Zufallszahlen Zufallszahlen Zufallszahlengeneratoren Transformation von Zufallszahlen Test von Zufallszahlengeneratoren Otto-von-Guericke-Universität Magdeburg Thomas Schulze Zufallszahlengeneratoren - Zufallszahlen

Mehr

Nr. 4: Pseudo-Zufallszahlengeneratoren

Nr. 4: Pseudo-Zufallszahlengeneratoren Proseminar: Finanzmathematische Modelle und Simulationen Martin Dieckmann WS 09/0 Nr. 4: Pseudo-Zufallszahlengeneratoren Begriff Pseudo-Zufallszahl Zufallszahlen im Rechner entstehen letztlich immer durch

Mehr

15 Grundlagen der Simulation

15 Grundlagen der Simulation 15 Grundlagen der Simulation 15.1 Einführung Komplexe Problemstellungen, die einer analytischen Behandlung nur sehr schwer oder gar nicht zugänglich sind Lösung von diskreten (oder analytischen) Optimierungsaufgaben,

Mehr

IT-Security. Teil 15: Zufall

IT-Security. Teil 15: Zufall IT-Security Teil 15: Zufall 09.05.17 1 Literatur [15-1] http://de.wikipedia.org/wiki/kryptographisch_sicherer_zufallszahlen generator [15-2] https://gnupg.org/documentation/manuals/gcrypt/fips-prng- Description.html

Mehr

Erzeugung von Pseudozufallszahlen mit Computern

Erzeugung von Pseudozufallszahlen mit Computern Erzeugung von Pseudozufallszahlen mit Computern Basisgeneratoren und deren Einfluss auf die Qualität der Ergebnisse Lorenz Hauswald IKTP, TU Dresden 7 Dezember 2011 1 / 26 Gliederung Grundlagen 1 Grundlagen

Mehr

7 Zufallszahlen, Simulation

7 Zufallszahlen, Simulation 7 Zufallszahlen, Simulation Es ist nützlich, Folgen von i.i.d. R[0, 1]-verteilten Zufallszahlen auf einem Rechner erzeugen zu können vgl. Simulation, Monte-Carlo-Verfahren). Letztere sind i.a. keine echten

Mehr

Pseudozufallsgeneratoren

Pseudozufallsgeneratoren Pseudozufallsgeneratoren In welchen kryptographischen Verfahren werden keine Zufallszahlen benötigt? Wie generiert man Zufallszahlen in einer deterministischen Maschine wie dem Computer? Wenn man eine

Mehr

Programmiertechnik II

Programmiertechnik II Zufallszahlen Motivation Simulation Frisörbeispiel Stichprobenauswahl Telefonumfragen Numerische Algorithmen naives Beispiel: Berechnung von Pi Automatisiertes Testen Beispiel aus Übungsaufgabe "Faire"

Mehr

Anhang 1: Lamellare Strukturen in Systemen mit Bolaamphiphilen

Anhang 1: Lamellare Strukturen in Systemen mit Bolaamphiphilen Anhang 1: Lamellare Strukturen in Systemen mit Bolaamphiphilen Charakteristische Konfigurationen von Systemen aus 1848 6-segmentigen Bolaamphiphilen (10 Vol%) im Bereich stabiler Schichtphasen. Dunkle

Mehr

Simulation von Zufallsvariablen und Punktprozessen

Simulation von Zufallsvariablen und Punktprozessen Simulation von Zufallsvariablen und Punktprozessen 09.11.2009 Inhaltsverzeichnis 1 Einleitung 2 Pseudozufallszahlen 3 Punktprozesse Zufallszahlen Definition (Duden): Eine Zufallszahl ist eine Zahl, die

Mehr

UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 8. Zufallszahlen Generatoren Anwendungen

UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 8. Zufallszahlen Generatoren Anwendungen UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1 Übung 8 Zufallszahlen Generatoren Anwendungen Institut für Pervasive Computing Johannes Kepler Universität Linz Altenberger Straße 69, A-4040

Mehr

Grundlagen der Monte-Carlo-Simulation

Grundlagen der Monte-Carlo-Simulation Grundlagen der Monte-Carlo-Simulation Prof. Dr. V. Schmidt und S. Luck j 8. November 2007 page 2 Contents Motivation Erzeugung von SPZZ Software Transformation von SPZZ page 3 Motivation Motivation fur

Mehr

1 Zufallszahlen jede Zahl gleichen Wahrscheinlichkeit Zufallszahlenfolge unabhängiger, identisch ver- teilter

1 Zufallszahlen jede Zahl gleichen Wahrscheinlichkeit Zufallszahlenfolge unabhängiger, identisch ver- teilter Zufallszahlen Zufallszahlen werden für viele Anwendungen im Computer benötigt. Hauptanwendungsgebiete sind die Simulation und die Statistik. Besonders bei der Programmierung von Spielen werden Zufallszahlen

Mehr

Stochastik-Praktikum

Stochastik-Praktikum Stochastik-Praktikum Zufallszahlen und Monte Carlo Peter Frentrup Humboldt-Universität zu Berlin 17. Oktober 2017 (Humboldt-Universität zu Berlin) Zufallszahlen und Monte Carlo 17. Oktober 2017 1 / 23

Mehr

Kryptographische Protokolle

Kryptographische Protokolle Kryptographische Protokolle Lerneinheit 2: Generierung von Primzahlen Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Wintersemester 2018/2019 15.11.2018 Einleitung Einleitung Diese Lerneinheit

Mehr

Anyone who considers arithmetical methods of producing random digits is, of course, in a state of sin.

Anyone who considers arithmetical methods of producing random digits is, of course, in a state of sin. Randomisierte Algorithmen Anyone who considers arithmetical methods of producing random digits is, of course, in a state of sin. John von Neumann, 1951 1 / 59 Randomisierte Algorithmen Randomisierte Algorithmen

Mehr

13 Mehrdimensionale Zufallsvariablen Zufallsvektoren

13 Mehrdimensionale Zufallsvariablen Zufallsvektoren 3 Mehrdimensionale Zufallsvariablen Zufallsvektoren Bisher haben wir uns ausschließlich mit Zufallsexperimenten beschäftigt, bei denen die Beobachtung eines einzigen Merkmals im Vordergrund stand. In diesem

Mehr

Pollards Rho-Methode zur Faktorisierung

Pollards Rho-Methode zur Faktorisierung C A R L V O N O S S I E T Z K Y Pollards Rho-Methode zur Faktorisierung Abschlusspräsentation Bachelorarbeit Janosch Döcker Carl von Ossietzky Universität Oldenburg Department für Informatik Abteilung

Mehr

Wahrscheinlichkeitsrechnung und Statistik

Wahrscheinlichkeitsrechnung und Statistik 6. Vorlesung - 2018 Diskrete ZG eine diskrete ZG X wird vollständig durch ihre Wahrscheinlichkeitsverteilung beschrieben ( ) x1 x X 2... x i... = p 1 p 2... p i... P(X (a, b]) = und die Verteilungsfunktion

Mehr

Lineare Kongruenzgeneratoren und Quicksort

Lineare Kongruenzgeneratoren und Quicksort Seminar Perlen der theoretischen Informatik Dozenten: Prof. Johannes Köbler und Olaf Beyersdorff Lineare Kongruenzgeneratoren und Quicksort Ausarbeitung zum Vortrag Mia Viktoria Meyer 12. November 2002

Mehr

Statistik I für Betriebswirte Vorlesung 4

Statistik I für Betriebswirte Vorlesung 4 Statistik I für Betriebswirte Vorlesung 4 Prof. Dr. Hans-Jörg Starkloff TU Bergakademie Freiberg Institut für Stochastik 25. April 2016 Prof. Dr. Hans-Jörg Starkloff Statistik I für Betriebswirte Vorlesung

Mehr

Zufallszahlen in AntBrain

Zufallszahlen in AntBrain Zufallszahlen SEP 291 Zufallszahlen in AntBrain Spezifikation, Teil II: Zum Beispiel könnte ein Objekt vom Typ Match die Spielfelder nach jeweils 1000 Spielrunden speichern; bei einer Anfrage nach den

Mehr

Inhalt. Mathematik für Chemiker II Lineare Algebra. Vorlesung im Sommersemester Kurt Frischmuth. Rostock, April Juli 2015

Inhalt. Mathematik für Chemiker II Lineare Algebra. Vorlesung im Sommersemester Kurt Frischmuth. Rostock, April Juli 2015 Inhalt Mathematik für Chemiker II Lineare Algebra Vorlesung im Sommersemester 5 Rostock, April Juli 5 Vektoren und Matrizen Abbildungen 3 Gleichungssysteme 4 Eigenwerte 5 Funktionen mehrerer Variabler

Mehr

Kapitel 1. Vektoren und Matrizen. 1.1 Vektoren

Kapitel 1. Vektoren und Matrizen. 1.1 Vektoren Kapitel 1 Vektoren und Matrizen In diesem Kapitel stellen wir die Hilfsmittel aus der linearen Algebra vor, die in den folgenden Kapiteln öfters benötigt werden. Dabei wird angenommen, dass Sie die elementaren

Mehr

Probabilistische Algorithmen

Probabilistische Algorithmen Probabilistische Algorithmen Michal Švancar Gerardo Balderas Hochschule Zittau/Görlitz 21. Dezember 2014 Michal Švancar, Gerardo Balderas (HSZG) Probabilistische Algorithmen 21. Dezember 2014 1 / 40 Inhaltsverzeichnis

Mehr

Pseudo-Zufallsgeneratoren basierend auf dem DLP

Pseudo-Zufallsgeneratoren basierend auf dem DLP Seminar Codes und Kryptografie SS 2004 Struktur des Vortrags Struktur des Vortrags Ziel Motivation 1 Einleitung Ziel Motivation 2 Grundlegende Definitionen Zufallsgeneratoren 3 Generator Sicherheit 4 Generator

Mehr

Wahrscheinlichkeitsverteilungen und ihre Implementierung in Root. Eric Volkmann

Wahrscheinlichkeitsverteilungen und ihre Implementierung in Root. Eric Volkmann Wahrscheinlichkeitsverteilungen und ihre Implementierung in Root Eric Volkmann Inhalt Mathematische Definition Random Number Generators Wichtige Verteilungen Anwendungsbeispiel: Monte-Carlo Simulation

Mehr

Von den ganzen Zahlen zu GF(p)

Von den ganzen Zahlen zu GF(p) Endliche Körper p. 1 Von den ganzen Zahlen zu GF(p) Aus dem Ring aller ganzen Zahlen gewinnt man endliche Körper wie folgt: Man führt das Rechnen modulo n ein (modulare Arithmetik) und erhält so endliche

Mehr

Probabilistische Primzahltests

Probabilistische Primzahltests 23.01.2006 Motivation und Überblick Grundsätzliches Vorgehen Motivation und Überblick Als Primzahltest bezeichnet man ein mathematisches Verfahren, mit dem ermittelt wird, ob eine gegebene Zahl eine Primzahl

Mehr

Statistik, Datenanalyse und Simulation

Statistik, Datenanalyse und Simulation Dr. Michael O. Distler distler@kph.uni-mainz.de Mainz, 16. November 2009 2. Monte Carlo-Methoden 2.1 Zufallszahlen - Warum? 2.2 Zahlendarstellung im Rechner 2.3 Generatoren 2.3.1 Linear kongruente Generatoren

Mehr

15.3 Statistische Tests von Pseudozufallszahlen

15.3 Statistische Tests von Pseudozufallszahlen 15.3 Statistische Tests von Pseudozufallszahlen Def. 52 Ein Test ist eine Entscheidungsvorschrift, die über die Akzeptanz genau einer von zwei alternativen Hypothesen entscheidet. Bsp. 109 (Analogie zur

Mehr

Kapitel III Ringe und Körper

Kapitel III Ringe und Körper Kapitel III Ringe und Körper 1. Definitionen und Beispiele Definition 117 Eine Algebra A = S,,, 0, 1 mit zwei zweistelligen Operatoren und heißt ein Ring, falls R1. S,, 0 eine abelsche Gruppe mit neutralem

Mehr

Modellbildung und Simulation

Modellbildung und Simulation Modellbildung und Simulation 6. Vorlesung Wintersemester 2007/2008 Klaus Kasper Value at Risk (VaR) Gaußdichte Gaußdichte der Normalverteilung: f ( x) = 1 2π σ x e 2 2 x ( x µ ) / 2σ x Gaußdichte der Standardnormalverteilung:

Mehr

Einführung in die Simulation. Dr. Christoph Laroque Wintersemester 11/12. Dresden,

Einführung in die Simulation. Dr. Christoph Laroque Wintersemester 11/12. Dresden, Fakultät Informatik, Institut für Angewandte Informatik, Professur Modellierung und Simulation Einführung in die Simulation Dr. Christoph Laroque Wintersemester 11/12 Dresden, 11.10.2011 01.11.2011 Einführung

Mehr

Statistics, Data Analysis, and Simulation SS 2015

Statistics, Data Analysis, and Simulation SS 2015 Mainz, May 12, 2015 Statistics, Data Analysis, and Simulation SS 2015 08.128.730 Statistik, Datenanalyse und Simulation Dr. Michael O. Distler Dr. Michael O. Distler

Mehr

Statistik I für Betriebswirte Vorlesung 3

Statistik I für Betriebswirte Vorlesung 3 Statistik I für Betriebswirte Vorlesung 3 Dr. Andreas Wünsche TU Bergakademie Freiberg Institut für Stochastik 15. April 2019 Dr. Andreas Wünsche Statistik I für Betriebswirte Vorlesung 3 Version: 1. April

Mehr

HM II Tutorium 1. Lucas Kunz. 24. April 2018

HM II Tutorium 1. Lucas Kunz. 24. April 2018 HM II Tutorium 1 Lucas Kunz 24. April 2018 Inhaltsverzeichnis 1 Theorie 2 1.1 Körper...................................... 2 1.2 Gruppen..................................... 2 1.3 Vektorraum...................................

Mehr

Informationssicherheit III

Informationssicherheit III Zufall im Rechner Präsentation im Rahmen der Lehrveranstaltung Informationssicherheit III WS 2001/2002 Jochen Rondorf 17.01.2002 Zufall im Rechner WS 2001/02 1 Agenda Arten von Zufall Anwendungsgebiete

Mehr

Pr[X t+1 = k] = Pr[X t+1 = k X t = i] Pr[X t = i], also. (q t+1 ) k = p ik (q t ) i, bzw. in Matrixschreibweise. q t+1 = q t P.

Pr[X t+1 = k] = Pr[X t+1 = k X t = i] Pr[X t = i], also. (q t+1 ) k = p ik (q t ) i, bzw. in Matrixschreibweise. q t+1 = q t P. 2.2 Berechnung von Übergangswahrscheinlichkeiten Wir beschreiben die Situation zum Zeitpunkt t durch einen Zustandsvektor q t (den wir als Zeilenvektor schreiben). Die i-te Komponente (q t ) i bezeichnet

Mehr

37 Gauß-Algorithmus und lineare Gleichungssysteme

37 Gauß-Algorithmus und lineare Gleichungssysteme 37 Gauß-Algorithmus und lineare Gleichungssysteme 37 Motivation Lineare Gleichungssysteme treten in einer Vielzahl von Anwendungen auf und müssen gelöst werden In Abschnitt 355 haben wir gesehen, dass

Mehr

5.1 Determinanten der Ordnung 2 und 3. a 11 a 12 a 21 a 22. det(a) =a 11 a 22 a 12 a 21. a 11 a 21

5.1 Determinanten der Ordnung 2 und 3. a 11 a 12 a 21 a 22. det(a) =a 11 a 22 a 12 a 21. a 11 a 21 5. Determinanten 5.1 Determinanten der Ordnung 2 und 3 Als Determinante der zweireihigen Matrix A = a 11 a 12 bezeichnet man die Zahl =a 11 a 22 a 12 a 21. Man verwendet auch die Bezeichnung = A = a 11

Mehr

Zufallszahlen Mathematik zum Nachbilden von Zufälligkeit SommerUni 2013 Bergische Universität Wuppertal Autor: Prof. Dr.

Zufallszahlen Mathematik zum Nachbilden von Zufälligkeit SommerUni 2013 Bergische Universität Wuppertal Autor: Prof. Dr. Zufallszahlen Mathematik zum Nachbilden von Zufälligkeit SommerUni 23 Bergische Universität Wuppertal Autor: Prof. Dr. Roland Pulch Aufgabe: Konstruiere Zufallszahlen aus der Menge {,, 2, 3, 4, 5, 6, 7,

Mehr

1. Welche Eigenschaften sollte ein Pseudo-Random Generator haben?

1. Welche Eigenschaften sollte ein Pseudo-Random Generator haben? Die Themen 1. Welche Eigenschaften sollte ein Pseudo-Random Generator haben? Er sollte von wirklichen Zufallsgeneratoren nicht unterscheidbar sein?! Eine viel zu starke Forderung: Stattdessen sollte ein

Mehr

Monte-Carlo Tests. Diplomarbeit. Wiebke Werft. Mathematisches Institut der Heinrich-Heine-Universität Düsseldorf

Monte-Carlo Tests. Diplomarbeit. Wiebke Werft. Mathematisches Institut der Heinrich-Heine-Universität Düsseldorf Monte-Carlo Tests Diplomarbeit Wiebke Werft Mathematisches Institut der Heinrich-Heine-Universität Düsseldorf Düsseldorf im Dezember 2003 Betreuung: Prof. Dr. Arnold Janssen Inhaltsverzeichnis Einleitung

Mehr

Zahlen und metrische Räume

Zahlen und metrische Räume Zahlen und metrische Räume Natürliche Zahlen : Die natürlichen Zahlen sind die grundlegendste Zahlenmenge, da man diese Menge für das einfache Zählen verwendet. N = {1, 2, 3, 4,...} bzw. N 0 = {0, 1, 2,

Mehr

Wahrscheinlichkeitsrechnung und Statistik

Wahrscheinlichkeitsrechnung und Statistik 8. Vorlesung Pseudozufallszahlen sind, wie der Name schon sagt, keine echten Zufallszahlen, sondern werden durch Generatoren erzeugt. Als Pseudozufallszahlen bezeichnet man Zahlenfolgen die durch einen

Mehr

1 Zahlentheorie. 1.1 Kongruenzen

1 Zahlentheorie. 1.1 Kongruenzen 3 Zahlentheorie. Kongruenzen Der letzte Abschnitt zeigte, daß es sinnvoll ist, mit großen Zahlen möglichst einfach rechnen zu können. Oft kommt es nicht darauf, an eine Zahl im Detail zu kennen, sondern

Mehr

A2.3: Reduzible und irreduzible Polynome

A2.3: Reduzible und irreduzible Polynome A2.3: Reduzible und irreduzible Polynome Wichtige Voraussetzungen für das Verständnis der Kanalcodierung sind Kenntnisse der Polynomeigenschaften. Wir betrachten in dieser Aufgabe Polynome der Form wobei

Mehr

Einführung (1) In der Praxis finden Sie viele Anwendungsfelder für Zufallszahlen. Beispiele

Einführung (1) In der Praxis finden Sie viele Anwendungsfelder für Zufallszahlen. Beispiele 11. Zufallszahlen 1 Einführung (1) In der Praxis finden Sie viele Anwendungsfelder für Zufallszahlen. Beispiele sind 1. Computersimulationen 2. Optimierungsprobleme und 3. Hochdimensionale Integrale. Problemstellung:

Mehr

Statistik für Ingenieure Vorlesung 6

Statistik für Ingenieure Vorlesung 6 Statistik für Ingenieure Vorlesung 6 Prof. Dr. Hans-Jörg Starkloff TU Bergakademie Freiberg Institut für Stochastik 05. Dezember 2017 3.4.3 Stetige Gleichverteilung Parameter: Intervall [a, b] R. Zufallsgröße

Mehr

Prinzipien zur Erzeugung von Zufallszahlen in der Informatik

Prinzipien zur Erzeugung von Zufallszahlen in der Informatik ien zur Erzeugung von Zufallszahlen in der Informatik Vortragender: Dipl.-Inform. Thomas Hinze 1. Motivation 2. Grundlegende Begriffe und Zusammenhänge 3. Klassifikation der ien 4. ien zur Erzeugung echter

Mehr

Statistik für Ingenieure Vorlesung 3

Statistik für Ingenieure Vorlesung 3 Statistik für Ingenieure Vorlesung 3 Prof. Dr. Hans-Jörg Starkloff TU Bergakademie Freiberg Institut für Stochastik 14. November 2017 3. Zufallsgrößen 3.1 Zufallsgrößen und ihre Verteilung Häufig sind

Mehr

13 Pseudo-Zufallszahlen

13 Pseudo-Zufallszahlen 13 Pseudo-Zufallszahlen 13.1 Die folgenden Worte werden John von Neumann zugeschrieben: Anyone who considers arithmetical methods of producing random digits is, of course, in a state of sin. Trotzdem werden

Mehr

Zusatzmaterial zu Kapitel 4

Zusatzmaterial zu Kapitel 4 1 ERMITTLUNG DER TRANSITIONSMATRIX MIT DER SYLVESTER-FORMEL 1 Zusatzmaterial zu Kapitel 4 1 Ermittlung der Transitionsmatrix mit der Sylvester- Formel Wir nehmen an, dass das Zustandsmodell eines linearen

Mehr

5. Aufgabenblatt mit Lösungsvorschlag

5. Aufgabenblatt mit Lösungsvorschlag Einführung in Computer Microsystems Sommersemester 2010 Wolfgang Heenes 5. Aufgabenblatt mit Lösungsvorschlag 19.05.2010 Aufgabe 1: Logik, Latch, Register Geben Sie für alle folgen reg-variablen an, ob

Mehr

Wirtschaftsmathematik Formelsammlung

Wirtschaftsmathematik Formelsammlung Wirtschaftsmathematik Formelsammlung Binomische Formeln Stand März 2019 (a + b) 2 = a 2 + 2ab + b 2 (a b) 2 = a 2 2ab + b 2 (a + b) (a b) = a 2 b 2 Fakultät (Faktorielle) n! = 1 2 3 4 (n 1) n Intervalle

Mehr

3 Systeme linearer Gleichungen

3 Systeme linearer Gleichungen 3 Systeme linearer Gleichungen Wir wenden uns nun dem Problem der Lösung linearer Gleichungssysteme zu. Beispiel 3.1: Wir betrachten etwa das folgende System linearer Gleichungen: y + 2z = 1 (1) x 2y +

Mehr

Zufallszahlenerzeugung

Zufallszahlenerzeugung Zufallszahlenerzeugung Anwendunsgebiete: z.b.: - Computerspiele - Kryptographie - Monte-Carlo-Methoden - Simulation Melanie Kaspar, Prof. Dr. B. Grabowski 1 Wie erzeuge ich Zufallszahlen, die sich so verhalten,

Mehr

Explizite Formeln für rekursiv definierte Folgen

Explizite Formeln für rekursiv definierte Folgen Schweizer Mathematik-Olympiade Explizite Formeln für rekursiv definierte Folgen Aktualisiert: 6 Juni 014 In diesem Skript wird erklärt, wie man explizite Formeln für rekursiv definierte Folgen findet Als

Mehr

Musterlösung zur Aufgabe A2.1

Musterlösung zur Aufgabe A2.1 Abschnitt: 2.1 Wahrscheinlichkeit und relative Häufigkeit Musterlösung zur Aufgabe A2.1 a) Man sollte dieser Nachfrage zumindest glauben, dass Kandidat A wahrscheinlich gewinnt. b) Die Wahrscheinlichkeit,

Mehr

31 Polynomringe Motivation Definition: Polynomringe

31 Polynomringe Motivation Definition: Polynomringe 31 Polynomringe 31.1 Motivation Polynome spielen eine wichtige Rolle in vielen Berechnungen, einerseits weil oftmals funktionale Zusammenhänge durch Polynome beschrieben werden, andererseits weil Polynome

Mehr

4. Übungsblatt zur Mathematik II für Inf, WInf

4. Übungsblatt zur Mathematik II für Inf, WInf Fachbereich Mathematik Prof Dr Streicher Dr Sergiy Nesenenko Pavol Safarik SS 010 11 15 Mai 4 Übungsblatt zur Mathematik II für Inf, WInf Gruppenübung Aufgabe G13 (Basistransformation) ( ) 15 05 Die lineare

Mehr

Grundlagen der Arithmetik und Zahlentheorie

Grundlagen der Arithmetik und Zahlentheorie Grundlagen der Arithmetik und Zahlentheorie 1.0 Teilbarkeit In diesem Abschnitt werden wir einerseits die ganzen Zahlen an sich studieren und dabei besonders wichtige Zahlen, die Primzahlen, entsprechend

Mehr

Algebra und Zahlentheorie WS 13/14

Algebra und Zahlentheorie WS 13/14 Algebra und Zahlentheorie WS 13/14 FU Berlin David Müßig http://page.mi.fu-berlin.de/def/auz14/ muessig@mi.fu-berlin.de 21.01.2014 1 Hintergrund: Basen & Vektorräume 1.1 Grundlegende Begriffe Da einige

Mehr

4 Funktionenfolgen und normierte Räume

4 Funktionenfolgen und normierte Räume $Id: norm.tex,v 1.57 2018/06/08 16:27:08 hk Exp $ $Id: jordan.tex,v 1.34 2018/07/12 20:08:29 hk Exp $ 4 Funktionenfolgen und normierte Räume 4.7 Kompakte Mengen Am Ende der letzten Sitzung hatten wir zwei

Mehr

9.2 Invertierbare Matrizen

9.2 Invertierbare Matrizen 34 9.2 Invertierbare Matrizen Die Division ist als Umkehroperation der Multiplikation definiert. Das heisst, für reelle Zahlen a 0 und b gilt b = a genau dann, wenn a b =. Übertragen wir dies von den reellen

Mehr

Lineare Algebra I für Mathematiker Lösungen

Lineare Algebra I für Mathematiker Lösungen Lineare Algebra I für Mathematiker Lösungen Anonymous 24. April 2016 Aufgabe 1 Beantworten Sie bitte die folgenden Fragen. Jeder Vektorraum hat mindestens ein Element. Q ist ein R-Vektorraum (mit der Multiplikation

Mehr

3 a) Berechnen Sie die normierte Zeilenstufenform der Matrix A = normierte Zeilenstufenform:

3 a) Berechnen Sie die normierte Zeilenstufenform der Matrix A = normierte Zeilenstufenform: 1. Aufgabe (9 Punkte) In dieser Aufgabe müssen Sie Ihre Antwort nicht begründen. Es zählt nur das Ergebnis. Tragen Sie nur das Ergebnis auf diesem Blatt im jeweiligen Feld ein. 0 1 3 a) Berechnen Sie die

Mehr

3.6 Eigenwerte und Eigenvektoren

3.6 Eigenwerte und Eigenvektoren 3.6 Eigenwerte und Eigenvektoren 3.6. Einleitung Eine quadratische n n Matrix A definiert eine Abbildung eines n dimensionalen Vektors auf einen n dimensionalen Vektor. c A x c A x Von besonderem Interesse

Mehr

4.5 Wachstumsfunktionen

4.5 Wachstumsfunktionen 4.5 Wachstumsfunktionen Wenn man die Entwicklung einer Pflanze modelliert, ist es zweckmäßig, das Verzweigen und das Längenwachstum in verschiedenen Regeln zu modellieren. Das wurde zum Beispiel in den

Mehr

Mathematik II für Studierende der Informatik (Analysis und lineare Algebra) im Sommersemester 2018

Mathematik II für Studierende der Informatik (Analysis und lineare Algebra) im Sommersemester 2018 (Analysis und lineare Algebra) im Sommersemester 2018 15. April 2018 1/46 Die Dimension eines Vektorraums Satz 2.27 (Basisergänzungssatz) Sei V ein Vektorraum über einem Körper K. Weiter seien v 1,...,

Mehr

Blockmatrizen. Beispiel 1 Wir berechnen das Produkt von A R 4 6 mit B R 6 4 :

Blockmatrizen. Beispiel 1 Wir berechnen das Produkt von A R 4 6 mit B R 6 4 : Blockmatrizen Beispiel 1 Wir berechnen das Produkt von A R 4 6 mit B R 6 4 : 2 1 3 1 1 0 1 0 1 0 0 2 1 1 11 1 1 4 0 1 0 1 0 1 4 1 0 2 1 0 1 0 1 0 3 1 2 1 = 2 4 3 5 11 1 1 4 0 1 0 1 0 1 5 1 2 1 2 4 3 5

Mehr

Zufallszahlen in Testbetten und Simulationen

Zufallszahlen in Testbetten und Simulationen Zufall Wofür brauchen wir Zufallszahlen? Zufall Wofür brauchen wir Zufallszahlen? Simulation von Dingen, die wir nicht genau beschreiben wollen Zufall Wofür brauchen wir Zufallszahlen? Simulation von Dingen,

Mehr

Mathematik II Frühjahrssemester 2013

Mathematik II Frühjahrssemester 2013 Mathematik II Frühjahrssemester 213 Prof. Dr. Erich Walter Farkas Kapitel 7: Lineare Algebra Kapitel 7.5: Eigenwerte und Eigenvektoren einer quadratischen Matrix Prof. Dr. Erich Walter Farkas Mathematik

Mehr

5.2 Rechnen mit Matrizen

5.2 Rechnen mit Matrizen 52 Rechnen mit Matrizen 52 Rechnen mit Matrizen 97 Für Matrizen desselben Typs ist eine Addition erklärt, und zwar durch Addition jeweils entsprechender Einträge Sind genauer A = (a ij ) und B = (b ij

Mehr

Lineares Gleichungssystem - Vertiefung

Lineares Gleichungssystem - Vertiefung Lineares Gleichungssystem - Vertiefung Die Lösung Linearer Gleichungssysteme ist das "Gauß'sche Eliminationsverfahren" gut geeignet - schon erklärt unter Z02. Alternativ kann mit einem Matrixformalismus

Mehr

Lineare Schieberegisterfolgen

Lineare Schieberegisterfolgen Lineare Schieberegisterfolgen Sei K ein endlicher Körper. Man nehme zwei Vektoren x 0 a0 x n 1, a n 1 K n n 1 x n := a i x i und betrachte die lineare Abbildung : K n K n, die durch i=0, berechne x 0 x

Mehr

k np g(n, p) = Pr p [T K] = Pr p [T k] Φ. np(1 p) DWT 4.1 Einführung 359/467 Ernst W. Mayr

k np g(n, p) = Pr p [T K] = Pr p [T k] Φ. np(1 p) DWT 4.1 Einführung 359/467 Ernst W. Mayr Die so genannte Gütefunktion g gibt allgemein die Wahrscheinlichkeit an, mit der ein Test die Nullhypothese verwirft. Für unser hier entworfenes Testverfahren gilt ( ) k np g(n, p) = Pr p [T K] = Pr p

Mehr

Grundlagen: Algorithmen und Datenstrukturen

Grundlagen: Algorithmen und Datenstrukturen Grundlagen: Algorithmen und Datenstrukturen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2010

Mehr

Lineare Gleichungssystem

Lineare Gleichungssystem Lineare Gleichungssystem 8. Juli 07 Inhaltsverzeichnis Einleitung Der Gauß-Algorithmus 4 3 Lösbarkeit von Gleichungssystemen 6 Einleitung Wir haben uns bisher hauptsächlich mit dem Finden von Nullstellen

Mehr

3 Lineare Algebra (Teil 1): Lineare Unabhängigkeit

3 Lineare Algebra (Teil 1): Lineare Unabhängigkeit 3 Lineare Algebra (Teil : Lineare Unabhängigkeit 3. Der Vektorraum R n Die Menge R n aller n-dimensionalen Spalten a reeller Zahlen a,..., a n R bildet bezüglich der Addition a b a + b a + b. +. :=. (53

Mehr

Miller-Rabin Test. Primzahl- und Zerlegbarkeitstests. Zeugen für die Zerlegbarkeit ganzer Zahlen

Miller-Rabin Test. Primzahl- und Zerlegbarkeitstests. Zeugen für die Zerlegbarkeit ganzer Zahlen Miller-Rabin Test Primzahl- und Zerlegbarkeitstests Sei N eine positive ganze Zahl. Wie kann man möglichst effizient feststellen, ob N eine Primzahl oder zerlegbar ist? Dies ist die Aufgabe von Primzahlund

Mehr

Einführung in die Theorie der Markov-Ketten. Jens Schomaker

Einführung in die Theorie der Markov-Ketten. Jens Schomaker Einführung in die Theorie der Markov-Ketten Jens Schomaker Markov-Ketten Zur Motivation der Einführung von Markov-Ketten betrachte folgendes Beispiel: 1.1 Beispiel Wir wollen die folgende Situation mathematisch

Mehr

Prüfungsfragen zur Vorlesung Algebra und Diskrete Mathematik. Sommersemester 2018

Prüfungsfragen zur Vorlesung Algebra und Diskrete Mathematik. Sommersemester 2018 Prüfungsfragen zur Vorlesung Algebra und Diskrete Mathematik Sommersemester 2018 Erläutern Sie die Sätze über die Division mit Rest für ganze Zahlen und für Polynome (mit Koeffizienten in einem Körper).

Mehr

Messprotokoll: Aufnahme der Quantenzufallszahl

Messprotokoll: Aufnahme der Quantenzufallszahl Messprotokoll: Aufnahme der Quantenzufallszahl Am 19. Juni 2009 wurden für Max Mustermann um 8:35 Uhr mit Hilfe von einzelnen Photonen 993.097 Zufallszahlen generiert. Der Zufallsgenerator steht im Quantenoptiklabor

Mehr

5 Lineare Gleichungssysteme und Determinanten

5 Lineare Gleichungssysteme und Determinanten 5 Lineare Gleichungssysteme und Determinanten 51 Lineare Gleichungssysteme Definition 51 Bei einem linearen Gleichungssystem (LGS) sind n Unbekannte x 1, x 2,, x n so zu bestimmen, dass ein System von

Mehr

Mathematik I+II Frühlingsemester 2019 Kapitel 8: Lineare Algebra 8.5 Eigenwerte und Eigenvektoren

Mathematik I+II Frühlingsemester 2019 Kapitel 8: Lineare Algebra 8.5 Eigenwerte und Eigenvektoren Mathematik I+II Frühlingsemester 219 Kapitel 8: Lineare Algebra 8.5 Eigenwerte und Eigenvektoren Prof. Dr. Erich Walter Farkas http://www.math.ethz.ch/ farkas 1 / 46 8. Lineare Algebra: 5. Eigenwerte und

Mehr

Exemplar für Prüfer/innen

Exemplar für Prüfer/innen Exemplar für Prüfer/innen Kompensationsprüfung zur standardisierten kompetenzorientierten schriftlichen Reifeprüfung AHS Juni 2015 Mathematik Kompensationsprüfung 14 Angabe für Prüfer/innen Hinweise zur

Mehr

6. Lösungsblatt

6. Lösungsblatt TECHNISCHE UNIVERSITÄT DARMSTADT FACHGEBIET THEORETISCHE INFORMATIK PROF. JOHANNES BUCHMANN DR. JULIANE KRÄMER Einführung in die Kryptographie WS 205/ 206 6. Lösungsblatt 9..205 Ankündigung Es besteht

Mehr

Endliche Körper und Codierung SS Übungsblatt. 9. Bestimmen Sie alle primitiven Elemente (Erzeuger der multiplikativen Gruppe) von

Endliche Körper und Codierung SS Übungsblatt. 9. Bestimmen Sie alle primitiven Elemente (Erzeuger der multiplikativen Gruppe) von Endliche Körper und Codierung SS 2007 1. Übungsblatt 1. Sei p eine Primzahl und 0 j p 1. Zeigen Sie, dass ( ) p 1 j ( 1) j (mod p). 2. Sei R ein kommutativer Ring der Charakteristik p > 0 (prim). Zeigen

Mehr

Angewandte Stochastik

Angewandte Stochastik Angewandte Stochastik Dr. C.J. Luchsinger 13 Allgemeine Theorie zu Markov-Prozessen (stetige Zeit, diskreter Zustandsraum) Literatur Kapitel 13 * Grimmett & Stirzaker: Kapitel 6.9 Wie am Schluss von Kapitel

Mehr

(Allgemeine) Vektorräume (Teschl/Teschl 9)

(Allgemeine) Vektorräume (Teschl/Teschl 9) (Allgemeine) Vektorräume (Teschl/Teschl 9) Sei K ein beliebiger Körper. Ein Vektorraum über K ist eine (nichtleere) Menge V, auf der zwei Operationen deniert sind, die bestimmten Rechenregeln genügen:

Mehr

Lösungshinweise zur Klausur. Mathematik für Informatiker III. (Dr. Frank Hoffmann) 18. Februar 2008

Lösungshinweise zur Klausur. Mathematik für Informatiker III. (Dr. Frank Hoffmann) 18. Februar 2008 Lösungshinweise zur Klausur Mathematik für Informatiker III (Dr. Frank Hoffmann) 8. Februar 8 Aufgabe Algebraisches I /6++ (a) Rechnen Sie zunächst nach, dass die Menge B = {,, von Vektoren eine Basis

Mehr

Proseminar Komplexitätstheorie P versus NP Wintersemester 2006/07. Nichtdeterministische Turingmaschinen und NP

Proseminar Komplexitätstheorie P versus NP Wintersemester 2006/07. Nichtdeterministische Turingmaschinen und NP Proseminar Komplexitätstheorie P versus NP Wintersemester 2006/07 Vortrag am 17.11.2006 Nichtdeterministische Turingmaschinen und NP Yves Radunz Inhaltsverzeichnis 1 Wiederholung 3 1.1 Allgemeines........................................

Mehr

Lösungsmenge L I = {x R 3x + 5 = 9} = L II = {x R 3x = 4} = L III = { }

Lösungsmenge L I = {x R 3x + 5 = 9} = L II = {x R 3x = 4} = L III = { } Zur Einleitung: Lineare Gleichungssysteme Wir untersuchen zunächst mit Methoden, die Sie vermutlich aus der Schule kennen, explizit einige kleine lineare Gleichungssysteme. Das Gleichungssystem I wird

Mehr

) (1 BE) 1 2 ln 2. und somit

) (1 BE) 1 2 ln 2. und somit 1 Aufgaben aus dem Aufgabenpool 1 1.1 Analysis A1_1 Eine Funktion f ist durch 1 x f(x) e 1, x IR, gegeben. Ermitteln Sie die Nullstelle der Funktion f. ( ) b) Die Tangente an den Graphen von f im Punkt

Mehr

Übungen zur Linearen Algebra 1

Übungen zur Linearen Algebra 1 Übungen zur Linearen Algebra 1 Wintersemester 2014/201 Universität Heidelberg - IWR Prof. Dr. Guido Kanschat Dr. Dörte Beigel Philipp Siehr Blatt 10 Abgabetermin: Freitag, 16.01.201, 11 Uhr Lösungen der

Mehr

Übungen zu Einführung in die Lineare Algebra und Geometrie

Übungen zu Einführung in die Lineare Algebra und Geometrie Übungen zu Einführung in die Lineare Algebra und Geometrie Andreas Cap Wintersemester 2014/15 Kapitel 1: Einleitung (1) Für a, b Z diskutiere analog zur Vorlesung das Lösungsverhalten der Gleichung ax

Mehr