¿Cómo sembrar adecuadamente el PRNG en OpenSSL?

10

Estoy creando una aplicación que se ejecuta en un nodo móvil con Ubuntu, que no genera suficientes bytes de entropía para / dev / random, y no siempre permanece conectada a Internet para usar soluciones típicas de recolección de entropía de socket, como EGD.

¿Existen buenas herramientas para recopilar la entropía necesaria en mi situación?

Solo para aclarar, tratando de obtener 1024 bytes (que parece ser el valor recomendado por el OpenSSL book ) a través de / dev / random tardó casi dos horas ...

    
pregunta efr4k 21.04.2011 - 23:42
fuente

1 respuesta

13

La forma correcta es usar /dev/urandom , no /dev/random . Hay muy pocos algoritmos criptográficos para los cuales /dev/random es incluso mejor teóricamente que /dev/urandom (esto sería algoritmos seguros de teoría de la información, no cosas mundanas como AES o RSA). /dev/urandom produce aleatoriedad de la calidad criptográfica siempre que pueda obtener en algún punto al menos 20 bytes de "aleatoriedad real", algo que el sistema operativo se encargó durante la instalación. /dev/urandom felizmente extiende esa semilla inicial en megabytes de pseudo-alea que es computacionalmente indistinguible de la verdadera aleatoriedad (eso es todo lo que necesitas), y nunca se bloqueará.

    
respondido por el Thomas Pornin 22.04.2011 - 01:07
fuente

Lea otras preguntas en las etiquetas