man 4 random
tiene una descripción muy vaga de las fuentes de entropía del kernel de Linux:
El generador de números aleatorios reúne el ruido ambiental de los controladores de dispositivos y otras fuentes en un grupo de entropía.
Las transferencias de papel de Entropy en el generador de números aleatorios de Linux tampoco son mucho más específicas. Enumera:
add_disk_randomness()
,add_input_randomness()
yadd_interrupt_randomness()
.
Estos functinos son de random.c
, que incluye el siguiente comentario:
Las fuentes de aleatoriedad del entorno incluyen los tiempos entre teclados, los tiempos entre interrupciones de algunas interrupciones y otros eventos que son (a) no deterministas y (b) difíciles de medir para un observador externo.
Más abajo, hay una función que add_hwgenerator_randomness(...)
indica el soporte para generadores de números aleatorios de hardware.
Toda esa información es bastante vaga (o, en el caso del código fuente, requiere un conocimiento profundo del kernel de Linux para comprender). ¿Cuáles son las fuentes de entropía reales utilizadas y el kernel de Linux es compatible con cualquier generador de números aleatorios de hardware listo para usar?
fuente
cat /sys/devices/virtual/misc/hw_random/rng_available
.Sí, admite generadores de entropía de hardware listos para usar. Esto es necesario para servidores SSL de alta carga con muchas conexiones simultáneas iniciadas por segundo (Gmail, Facebook, Microsoft, etc.). Realmente no es necesario para servidores domésticos o servidores de pequeñas organizaciones. Tenga en cuenta que los generadores de entropía de hardware generalmente usan interfaces PCI, nada lujoso allí, por lo que puede ser compatible fácilmente. No estoy seguro si hay generadores de entropía de hardware propietarios que requieren controladores de código cerrado, probablemente no, ya que no es muy difícil y no es una industria muy rentable (a diferencia de las tarjetas gráficas).
http://en.wikipedia.org/wiki/Hardware_random_number_generator
fuente