2a. Kryptographische Basistechniken
2a.5 Physikalische Zufallserzeugung
Hauptquelle: D. Eastlake, S. Crocker, J. Schiller (MIT):
Randomness Recommendations for Security.
Request for Comments 1750, December 1994
Siehe auch:
Frage: Wie kann man »echten« (physikalischen) Zufall am Computer erzeugen?
Anwendungen
- Bitstrom-Verschlüsselung: One Time Pad [Klartext XOR Zufallsbits = Geheimtext],
- probabilistische Verschlüsselung [fk(Klartext, Zufallszahl)
= Geheimtext],
- Schlüsselerzeugung für andere kryptographische Verfahren,
- Startwerte für »perfekte« (= kryptographisch sichere)
algorithmische Zufallsgeneratoren,
- Zufallswerte für kryptographische Protokolle.
Für statistische Anwendungen und Simulationen sind gute algorithmische
(= »Pseudo-«) Zufallsgeneratoren meist ausreichend. Für kryptographische
Anwendungen sind die Anforderungen viel strenger.
Kritik häufig verwendeter Methoden
1. Systemuhren
- Zufallsausbeute gering, von fraglicher Qualität,
- Suchraum sehr klein.
2. Systemereignisse (Zeitpunkt, Dauer, Inhalt)
- Benutzer-Ereignisse wie Mausbewegungen und Tastenbetätigung
- Zeiten schwer zugänglich, besonders bei gepufferter Eingabe.
- Inhalte oft wenig zufällig.
[Bei PGP zur Schlüsselerzeugung verwendet.]
- Externe Ereignisse wie Ankunft von Netzpaketen oder
Systempuffer von Mehrbenutzersystemen
- Könnten vom »Gegner« manipuliert werden.
3. Auswahl aus großer Datenbasis
[z. B. CD (600 M) oder Usenet-News (täglich > 50 M)]
- Echter Suchraum ziemlich klein (~ 5×109 bei der CD, also
etwa 32 Bits »Zufall«).
Design-Gesichtspunkte
- Mit einem »perfekten« (algorithmischen) Zufallsgenerator kann man eine
»echte« Zufallsfolge beträchtlich verlängern.
Man braucht aber einen »echt« zufälligen Startwert aus einer
genügend großen Grundmenge (etwa > 280 bei Gleichverteilung
nach heutigem Stand der
Technik), um vor vollständiger Suche sicher zu sein.
- Die Effizienz muss bei den meisten Anwendungen nicht besonders hoch sein;
pro Anforderung werden höchstens ein paar hundert Bits
benötigt, und diese Anforderungen sind selten.
- Ungleichmäßig verteilte oder sonst gestörte »echte«
Zufallsfolgen können durch Kompressions- oder
Verschlüsselungsalgorithmen
(z. B. AES oder binäre Addition einer Pseudozufallsfolge)
in gleichverteilte umgewandelt werden
(bei bekannter Verteilung auch durch einfache Transformationen).
- Genügend viel »echter« Zufall kann durch geeignetes Mixen
schwacher Zufallsquellen erzeugt werden,
z. B. mit Hilfe kryptographischer Hash-Funktionen.
Geeignete Zufallsquellen
1. Rauschen (`jitter') auf einem geeigneten Oszillator
- Als Standard-Bauteil für Computer geeignet (billig und schnell).
- Intel-CPUs
[Cave: Vertrauensfrage!]
2. Turbulenzen der Luftströmung um eine rotierende Festplatte
- Ebenfalls durch billiges Hardwareteil auszuwerten.
- Durch FFT und Kompression Gleichverteilung herstellen.
- Erreichbar über 100 Bits/Sekunde.
[Don Davis, Ross Ihaka, and Philip Fenstermacher:
Cryptographic Randomness from Air Turbulence in Disk Drives,
Crypto '94, Lecture Notes in Computer Science 839 (1994).]
3. Auslesen von /dev/audio
- ..., wenn kein Mikrophon angeschlossen ist;
- durch Kompression Gleichverteilung herstellen.
cat /dev/audio | compress > random-bits-file
4. Rauschen von Videokamera mit abgedeckter Linse
5. Radioaktiver Zerfall
Portable Notlösung
Guter Mix von mehreren Benutzer- und Systemereignissen.
Auf Unix-Systemen: /dev/random oder /dev/urandom -
Ein »Entropie-Pool« wird laufend nachgefüllt und bei Bedarf
abgerufen.
- Bei /dev/random wird bei leerem Pool gewartet,
- bei /dev/urandom wird gegebenenfalls mit Pseudozufallszahlen
aufgefüllt.
Beispiel - DoD-Empfehlung zur Erzeugung sicherer Passwörter
- Use an initialization vector determined from
- the system clock,
- system ID,
- user ID, and
- date and time;
- use a key determined from
- system interrupt registers,
- system status registers, and
- system counters; and,
- as plain text, use an external randomly generated 64 bit
quantity such as 8 characters typed in by a system
administrator.
The password can then be calculated from the 64 bit `cipher text'
generated in 64-bit Output Feedback Mode (DES).
(As many bits as are needed can be taken from these 64 bits
and expanded into a pronounceable word, phrase, or other
format if a human being needs to remember the password.)
[United States of America, Department of Defense, Computer Security Center,
Password Management Guideline, CSC-STD-002-85 (»Green Book«).]
Zusammenfassung
- Die existierende Hardware bietet auf vielen Systemen
geeignete Zufallsquellen.
Diese müssen aber mit Sorgfalt verwendet werden.
- Durch geeignete Transformationen können auch aus einer
schlechten Zufallsquelle einige gute Zufalls-Bits extrahiert werden.
- Das Problem der Systemabhängigkeit kann durch geeignete
Auswertung einer umfangreichen Kombination von
Systemereignissen gemildert werden.
- Vorschlag: Physikalische Zufallsquelle in jedes System
integrieren, genormte Schnittstelle anbieten.
- Praktische Empfehlung: ca. 100 - 120 Bits physikalisch erzeugen;
bei Mehrbedarf expandieren mit Hilfe von perfektem Zufallsgenerator.
Vorlesung Datenschutz und Datensicherheit,
Johannes-Gutenberg-Universität Mainz
Autor: Klaus Pommerening, 31. März 1999; letzte Änderung: 30. November 2001.
E-Mail an
Pommerening@imsd.uni-mainz.de.