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 Eigenschaften guter Zufallszahlen Sicherheitsaspekte Test Entropie-Test Chi-Quadrat-Test Spektraltest Run-Test Verfahren Lineare Kongruenzgenerator Schieberegister mit Rückkopplung Beispiele Sicherheit mit Zufallszahlen TCP/IP Inital Sequence Number Homebanking-Applet Unix-Device /dev/(u)random 17.01.2002 Zufall im Rechner WS 2001/02 2 1
Arten von Zufall echter Zufall radioaktiver Zerfall Tastaturanschläge (Computer) Mausbewegugen (Computer) Münzwerfen ( Kopf oder Zahl ) Ziehung der Lottozahlen (mit Maschine) Würfeln computer-generierter Zufall Pseudo Random Number Generator (PRNG) (nur möglich mit endlicher Periode) 17.01.2002 Zufall im Rechner WS 2001/02 3 Anwendungsgebiete Zufallszahlen brauchen wir bei statistischen Simulationen numerischen Analysen unvoreingenommene Entscheidungsfindungen Computerprogrammierung kryptografische Algorithmen Tests von Effektivität und Effizienz von Programmen Computerspiele mit Würfeln, Rouletterädern oder gemischten Spielkarten 17.01.2002 Zufall im Rechner WS 2001/02 4 2
Eigenschaften guter Zufallszahlen Prüfprogramme nötig unabhängig (Spektraltest, Run-Test) gleichverteilt (Entropie-Test, X 2 -Test) relativ einfach realisierbar mit großer Periode errechnet reproduzierbar und einfach und effizient berechenbar 17.01.2002 Zufall im Rechner WS 2001/02 5 Sicherheitsaspekte Computer: Menge genau definierter Kommandos Innenleben des PRNG rekonstruierbar (endliche Periode) glücklicherweise große Periode Ausweg: Echte Zufallszahlen von www.random.org 17.01.2002 Zufall im Rechner WS 2001/02 6 3
Entropie Maß für Gleichverteilung bzw. "Informationsgehalt" der Quelle (in bit) Formel: negierte Summe über p i * log 2 (p i ), 1 <= i <= n log 2 (x) für 0<x<1 ist negativ wenn alle p i gleich, dann Entropie maximal = log 2 (n) Beispiel: Die Wahrscheinlichkeit eines Flugzeugunglücks ist statistisch geringer als die Wahrscheinlichkeit für einen Autounfall. Wird in den Nachrichten von einem Flugzeugunglück berichtet, ist der Informationsgehalt dieser Meldung größer. 17.01.2002 Zufall im Rechner WS 2001/02 7 Chi-Quadrat-Test Test für Gleichverteilung Formel: erwartete Anzahl = np s, tatsächliche Anzahl = Y s 17.01.2002 Zufall im Rechner WS 2001/02 8 4
Beispiel: Chi-Quadrat-Test Summe der Augen zweier Würfel V = = 7,14583 Tabelle 17.01.2002 Zufall im Rechner WS 2001/02 9 Tabelle: Chi-Quadrat-Test 17.01.2002 Zufall im Rechner WS 2001/02 10 5
Spektraltest sehr mächtig und komplex mit Schulmathematik nicht zu erfassen untersucht, wie stark eine Zufallszahl von ihrem Vorgänger abhängt LCG mit der Formel X n+1 = (137 X n + 187) mod 256 ergibt folgendes Diagramm 17.01.2002 Zufall im Rechner WS 2001/02 11 Veranschaulichung: Spektraltest 17.01.2002 Zufall im Rechner WS 2001/02 12 6
Run-Test Durchführung einfach, Interpretation komplex Anzahl der Zahlen, die hintereinander ohne Unterbrechung aufwärts ansteigen ( run-up ) bzw. abwärts abfallen ( run-down ) gut: 1 5 9 4 8 3 4 1 9 2 + + - + - + - + - schlecht: 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 + + + + - + + + + - + + + + - + + + + 17.01.2002 Zufall im Rechner WS 2001/02 13 Lineare Kongruenzgeneratoren Formel: X n =(a * X n-1 + b) mod m X 0 = Startwert a = Multiplikator b = Inkrement m = Modulus 0 < a < m 0 < b < m ggt(b, m) = 1 17.01.2002 Zufall im Rechner WS 2001/02 14 7
LCG - Beispiel X n =(a * X n-1 + b) mod m a = 5, X 0 = 13, b=7, m = 37 O n = X n mod 8 i 0 1 2 3 4 5 6 X i 13 35 34 29 5 4 27 31 O i 5 3 2 4 3 7 17.01.2002 Zufall im Rechner WS 2001/02 15 Schieberegister mit Rückkopplung 17.01.2002 Zufall im Rechner WS 2001/02 16 8
TCP/IP Inital Sequence Number ISN zufällig bei TCP/IP-Verbindungen, von Host erstellt Verbindung nachverfolgen, richtig fortführen, Integrität Hacker: nächste ISN erraten + IP-Spoofing neue TCP/IP-Verbindung eröffnen bestehende TCP/IP-Verbindung kompromittieren Lösung: Zufallszahlen aus externer Quelle nehmen (IO-Interrupts, Tastatur, Mausbewegung, Hardware) 17.01.2002 Zufall im Rechner WS 2001/02 17 Onetime-Passwort bei SSL 17.01.2002 Zufall im Rechner WS 2001/02 18 9
Unix-Device /dev/(u)random seit Linux-Kernel 1.3.30 Schnittstelle zum Zufallszahlengenerator des Kernels Zufallszahlengenerator sammelt Umgebungsrauschen von Gerätetreibern und anderen Quellen in einem Entropie-Pool /dev/(u)random: gibt Zufallsbytes aus Entropie-Pool aus random: wird geblockt, wenn Entropie-Pool leer Sicherheit + urandom: PRNG springt ein, wenn Entropie-Pool leer Sicherheit Problem: Entropie-Pool leer bei Systemboot vor Shutdown: EP in Datei speichern während Booten: Datei in EP zurückschreiben 17.01.2002 Zufall im Rechner WS 2001/02 19 10