Linux.pl
Opcje wyszukiwania podręcznika man:
Lista stron man zaczynających się od znaku:
A   B   C   D   E   F   G   H   I   J   K   L   M   N   O   P   Q   R   S   T   U   V   W   X   Y   Z   ALPHA   NUM   OTHER   ALL
RANDOM(4)               Podręcznik programisty Linuksa               RANDOM(4)

NAZWA
       random, urandom - urządzenia źródłowe liczb losowych jądra

OPIS
       Specjalne  urządzenia  znakowe  /dev/random  i  /dev/urandom  (obecne w
       Linuksie od wersji 1.3.30) stanowią interfejs do  wbudowanego  w  jądro
       generatora  liczb losowych. Plik /dev/random ma główny numer urządzenia
       1 i poboczny numer 8. Plik /dev/urandom ma główny numer urządzenia 1  i
       poboczny numer 9.

       Generator  liczb  losowych  zbiera  szum  środowiskowy  ze  sterowników
       urządzeń i innych źródeł do puli losowej. Generator przechowuje również
       szacunkową  liczbę  bitów szumu w puli losowej. Z owej puli tworzone są
       liczby losowe.

       W trakcie odczytu, urządzenie /dev/random będzie zwracać losowe  bajty,
       spośród  oszacowanej liczby bitów szumu w puli.  /dev/random nadaje się
       najlepiej do zastosowań,  w  których  potrzebna  jest  losowość  bardzo
       wysokiej  jakości,  jak  np.  jednorazowa maska lub generowanie kluczy.
       Jeśli pula losowa jest pusta, odczyt z /dev/random będzie wstrzymany do
       czasu zebrania dodatkowego szumu środowiskowego.

       Odczyt  z  urządzenia  /dev/urandom zwróci tyle bajtów, ile zażądano. W
       efekcie, jeśli nie ma wystarczającego chaosu w puli  losowej,  zwracane
       wartości są teoretycznie narażone na atak kryptograficzny w stosunku do
       algorytmów wykorzystywanych przez sterownik. Wiedza na  ten  temat  nie
       jest  dostępna  w obecnych nie zastrzeżonych publikacjach, ale istnieje
       teoretyczna możliwość przeprowadzenia  takiego  ataku.  Jeśli  jest  to
       problemem w przypadku twojego programu, użyj /dev/random.

KONFIGURACJA
       Jeśli  w  systemie  nie  ma plików /dev/random i /dev/urandom, można je
       utworzyć przy użyciu następujących poleceń:

               mknod -m 644 /dev/random c 1 8
               mknod -m 644 /dev/urandom c 1 9
               chown root:root /dev/random /dev/urandom

       Gdy Linux uruchamiany jest  przy  niewielkim  udziale  operatora,  pula
       losowa  może  być w dość przewidywalnym stanie. Faktyczna ilość szumu w
       puli losowej jest wówczas poniżej ilości szacowanej. Aby przeciwdziałać
       temu  efektowi,  pomocne  jest zapamiętywanie informacji o puli losowej
       pomiędzy kolejnymi uruchomieniami systemu. Aby działo się to  automaty-
       cznie,  należy  dodać  następujące wiersze do stosownych skryptów star-
       towych Linuksa:

            echo "Inicjowanie generatora liczb losowych w jądrze..."
            random_seed=/var/run/random-seed
            # Przechowanie wartości losowej od jednego startu systemu
            # do kolejnego startu. Ładujemy, a potem zachowujemy całą
            # pulę losową.
            if [ -f $random_seed ]; then
                cat $random_seed >/dev/urandom
            else
                touch $random_seed
            fi
            chmod 600 $random_seed
            poolfile=/proc/sys/kernel/random/poolsize
            [ -r $poolfile ] && bytes=`cat $poolfile` || bytes=512
            dd if=/dev/urandom of=$random_seed count=1 bs=$bytes

       Trzeba  również  dodać  następujące  wiersze  do   stosownego   skryptu
       uruchamianego podczas zamykania systemu Linuksa:

            # Przechowanie losowych danych pomiędzy wyłączeniem a wyłą-
            # czeniem komputera. Zachowywanie puli losowej generatora.
            echo "Zachowywanie danych losowych..."
            random_seed=/var/run/random-seed
            touch $random_seed
            chmod 600 $random_seed
            poolfile=/proc/sys/kernel/random/poolsize
            [ -r $poolfile ] && bytes=`cat $poolfile` || bytes=512
            dd if=/dev/urandom of=$random_seed count=1 bs=$bytes

INTERFEJS PROC
       Pliki  w katalogu /proc/sys/kernel/random (obecnym od wersji 2.3.16) są
       dodatkowym intefejsem do urządzenia /dev/random.

       Plik z prawami tylko do odczytu entropy_avail dostarcza  dostępną  pulę
       losową. Zazwyczaj będzie to 4096 (bitów), całość dostępnej puli.

       Plik  poolsize  podaje  rozmiar puli losowej. Zazwyczaj - 512 (bajtów).
       Może być zmienione na dowolną wartość, dla której dostępny  jest  algo-
       rytm. Obecnie możliwe wartości to: 32, 64, 128, 256, 512, 1024, 2048.

       Plik  read_wakeup_threshold zawiera liczbę bitów entropii potrzebnej do
       obudzenia procesu, który zasnął, czekając na entropię z pliku /dev/ran-
       dom.  Domyślnie - 64.  Plik write_wakeup_threshold zawiera liczbę bitów
       entropii poniżej której zostanie uśpiony proces, który wykona  select()
       lub poll(), aby otworzyć do zapisu urządzenie /dev/random.  Wartości te
       mogą być zmienione przez zapis do tych plików.

       Pliki tylko do odczytu uuid i boot_id zawierają losowe łańcuchy znaków,
       takie jak 6fd5a44b-35f4-4ad4-a9b9-6b9be13e1fe9.  Pierwszy z tych plików
       jest generowany na nowo przy każdym odczycie, a drugi  jest  generowany
       tylko raz.

PLIKI
       /dev/random
       /dev/urandom

AUTOR
       Generator liczb losowych w jądrze został napisany przez Theodore'a Ts'o
       (tytso@athena.mit.edu).

ZOBACZ TAKŻE
       mknod (1)
       RFC  1750,  "Randomness  Recommendations   for   Security"   (Zalecenia
       dotyczące bezpieczeństwa losowości)

Linux                             2003-10-25                         RANDOM(4)

Time taken: 0.00071 seconds


Created with the man page lookup class by Andrew Collington, php@amnuts.com