man 4 random
ma bardzo niejasny opis źródeł entropii jądra Linux:
Generator liczb losowych gromadzi hałas otoczenia ze sterowników urządzeń i innych źródeł w puli entropii.
Papierowe transfery Entropy w Linuksowym generatorze liczb losowych również nie są bardziej szczegółowe. Wymienia:
add_disk_randomness()
,add_input_randomness()
, iadd_interrupt_randomness()
.
Te funkcje pochodzą z random.c
, który zawiera następujący komentarz:
Źródła losowości ze środowiska obejmują czasy między klawiaturami, czasy między przerwami z niektórych przerwań oraz inne zdarzenia, które są (a) niedeterministyczne i (b) trudne dla zewnętrznego obserwatora.
W dalszej części znajduje się funkcja add_hwgenerator_randomness(...)
wskazująca obsługę sprzętowych generatorów liczb losowych.
Wszystkie te informacje są dość niejasne (lub, w przypadku kodu źródłowego, do głębokiej znajomości jądra Linuksa). Jakie są faktycznie używane źródła entropii i czy jądro Linuksa obsługuje sprzętowe generatory liczb losowych od razu po wyjęciu z pudełka?
źródło
cat /sys/devices/virtual/misc/hw_random/rng_available
.Tak, obsługuje gotowe sprzętowe generatory entropii. Jest to konieczne w przypadku serwerów SSL o wysokim obciążeniu z dużą liczbą jednoczesnych połączeń inicjowanych na sekundę (Gmail, Facebook, Microsoft itp.). Naprawdę nie jest to konieczne w przypadku serwerów domowych lub małych organizacji. Należy pamiętać, że sprzętowe generatory entropii zwykle używają interfejsów PCI, nic szczególnego, więc można je łatwo obsługiwać. Nie jestem pewien, czy istnieją opatentowane sprzętowe generatory entropii, które wymagają sterowników zamkniętych źródeł, prawdopodobnie nie, ponieważ nie jest to bardzo trudne i niezbyt opłacalna branża (w przeciwieństwie do kart graficznych inaczej).
http://en.wikipedia.org/wiki/Hardware_random_number_generator
źródło