LINUX RANDOM NUMBER
GENERATOR
2016/3/28
Linux Random Number
Generator
Entropy Source
Entropy Pool (random.c)
input_pool
nonblocking_pool blocking_pool
add_input_randomness() add_hwgenerator_randomness()
add_timer_randomness()
add_device_randomness()
/dev/random/dev/urandom
Interrupt
Requests
Human
Input
Device I/O
HW RNG
(hw_random.c)
Application
Read Read
3rd
party entropy
generator Daemon
(like rngd, haveged)
Write Write
User
space
Kernel
space
Get
Reference
 Ensuring Randomness with Linux's Random
Number Generator
 https://blog.cloudflare.com/ensuring-
randomness-with-linuxs-random-number-
generator/
 The Linux Random Number Generator
 https://pthree.org/2014/07/21/the-linux-random-
number-generator/

Slideshare - Linux Random Number Generator

  • 1.
  • 2.
    Linux Random Number Generator EntropySource Entropy Pool (random.c) input_pool nonblocking_pool blocking_pool add_input_randomness() add_hwgenerator_randomness() add_timer_randomness() add_device_randomness() /dev/random/dev/urandom Interrupt Requests Human Input Device I/O HW RNG (hw_random.c) Application Read Read 3rd party entropy generator Daemon (like rngd, haveged) Write Write User space Kernel space Get
  • 3.
    Reference  Ensuring Randomnesswith Linux's Random Number Generator  https://blog.cloudflare.com/ensuring- randomness-with-linuxs-random-number- generator/  The Linux Random Number Generator  https://pthree.org/2014/07/21/the-linux-random- number-generator/