/dev/random

aus Wikipedia, der freien Enzyklopädie
(Weitergeleitet von /dev/urandom)
Wechseln zu: Navigation, Suche

/dev/random ist unter vielen Unix- und UNIX-ähnlichen Betriebssystemen eine spezielle Datei, von der Benutzer-Programme Zufallszahlen lesen können. Sie ist eine einheitliche Schnittstelle zu einem systemweiten Zufallszahlengenerator.

Dieser Zufallsgenerator sammelt Umgebungsrauschen von Gerätetreibern und anderen Quellen in einem Entropiepool. Der Generator speichert auch eine Abschätzung über die Anzahl der Bits im Entropiepool. Von diesem Entropiepool werden die Zufallszahlen generiert; die aktuelle Güte des Entropiepools lässt sich unter Linux aus der Datei /proc/sys/kernel/random/entropy_avail ermitteln. Beim Lesen gibt /dev/random nur solange Zufallszahlen zurück, bis die abgeschätzte Entropiemenge erschöpft ist. Wenn der Entropiepool leer ist, blockieren Lesezugriffe auf /dev/random, bis zusätzliches Umgebungsrauschen erhalten wurde.[1][2] /dev/random sollte ausreichend sein für Anwendungszwecke, die auf eine sehr hohe Qualität der Zufälligkeit angewiesen sind, wie etwa Verschlüsselung (beispielsweise One-Time-Pad oder Schlüsselerzeugung). Aus Performancegründen wird in der Praxis oft nur der Seed eines Pseudo-Zufallszahlengenerators von /dev/random gelesen (z. B. in OpenSSL, PGP und GnuPG).

/dev/urandom blockiert im Gegensatz zu /dev/random nicht, wenn eine definierte Entropieschwelle unterschritten wird. D. h. /dev/urandom ist für Anwendungen geeignet, die keine hohen Ansprüche an die Zufälligkeit der Zufallszahlen stellen und eine große Menge von Zufallszahlen benötigen. Ein Anwendungsbeispiel wäre z. B. ein Spiel.

Inhaltsverzeichnis

[Bearbeiten] Standardisierung

/dev/random ist weder im Filesystem Hierarchy Standard 2.3 noch in der Single Unix Specification 3.0 spezifiziert.

[Bearbeiten] Implementationen

/dev/random ist unter Solaris seit Solaris 9 (2002) integraler Bestandteil des Kernels.[3] Unter Linux wird die Schnittstelle /dev/random schon in Kernel-Versionen vor 2002 bereitgestellt.[4] In FreeBSD findet sich eine portable Implementation seit Juni 2000.[5]

[Bearbeiten] Verbesserung der Entropie

Über Software wie timer_entropyd[6] oder rng-tools lässt sich die Entropie verbessern sowie der Entropie-Pool vergrößern, sodass mehr Zufallszahlen zur Verfügung stehen.

[Bearbeiten] Einzelnachweise

  1. Linux manpage random(4)
  2. Solaris 10 manpage random(7d)
  3. http://blogs.sun.com/yenduri/entry/dev_random_in_solaris
  4. http://www.cosy.sbg.ac.at/~andi/SUNrand/
  5. http://svn.freebsd.org/viewvc/base/head/sys/dev/random/randomdev.c?view=log
  6. http://www.vanheusden.com/te/timer_entropyd-0.1.tgz
Meine Werkzeuge
Namensräume

Varianten
Aktionen
Navigation
Mitmachen
Drucken/exportieren
Werkzeuge
In anderen Sprachen