¿Por qué los generadores de números aleatorios basados en hardware se consideran mejores que los generadores basados en software?

1

Los generadores de números aleatorios (RNG) basados en hardware obtienen su aleatoriedad del ruido alrededor. Los generadores basados en software obtienen esto generalmente a partir de la entrada del usuario, como mover el mouse sobre una pantalla (como hace TrueCrypt).

¿Qué hace que los RNG de hardware sean más seguros (más aleatorios) que los generadores basados en software?

    
pregunta Eelke 22.05.2017 - 17:47
fuente

2 respuestas

4

Para responder directamente: los SW se basan en algoritmos informáticos que pueden ser predecibles o limitados.

Lea esta comparación aquí con ventajas y desventajas. En general, el promedio de HW RNG es mejor en comparación con el promedio de SW RNG.

Pero aunque HW RNG se llama "verdadero" y SW RNG (basado en un algoritmo) se llama "pseudo", no considero que un RNG de hardware sea siempre mejor.

En el caso del hardware, se trata de qué tan bien está el diseño, qué tan lejos llega con la implementación y qué más puede afectar el resultado.

En el caso de la entrada del usuario, se trata de qué tan bien un usuario puede aleatorizar. Un RNG basado en el movimiento del mouse puede ser mejor o peor en comparación con un hardware promedio dependiendo de la habilidad del usuario. Del mismo modo, un RNG de hardware puede ser mejor o peor que el promedio de RNG basado en el movimiento del mouse, según la habilidad del diseñador HW.

    
respondido por el Overmind 23.05.2017 - 13:53
fuente
3

El software RNG tiene un estado interno que se actualiza mediante el ruido de entrada. Este estado también se baraja al recuperar valores del generador.

El hardware básico RNG no tiene un estado interno. Un buen generador de hardware sembrará continuamente un RNG de software para evitar problemas de distribución y evitar interferencias (el ruido de entrada no podría ser tan aleatorio en un ataque).

Si el estado de un RNG de software se filtra o se hace público, no proporcionará ninguna aleatoriedad, ya que un atacante podrá generar las mismas salidas. De esta manera, un RNG de hardware es mejor porque no tiene un estado que pueda filtrarse. Por ejemplo, algunos RNG de software tienen un estado que se inicializa con datos públicos o deficientes antes de que puedan reunir suficiente ruido. Este es un problema con las máquinas virtuales que comparten el mismo estado inicial (evite generar claves SSH o PGP en una máquina virtual). Por otro lado, un generador de hardware básico puede, en teoría, ser influenciado por su entrada.

    
respondido por el A. Hersean 23.05.2017 - 14:16
fuente

Lea otras preguntas en las etiquetas