¿Puede el cerebro humano generar números aleatorios criptográficamente seguros?

11

Un amigo mío preocupado por la seguridad estaba intentando generar entropía utilizando tiradas de dados aleatorias para generar una contraseña aleatoria, y sentí curiosidad por la seguridad de los generadores de números aleatorios y si ella podía hacer lo mismo simplemente pensando en dados aleatorios rollos ¿Se comprometería la seguridad de la generación de contraseñas / claves para usar números aleatorios generados por humanos en lugar de números aleatorios de un dado o un generador seguro de números aleatorios?

Puedo ver cómo los generadores de números aleatorios estándar incluidos en muchos lenguajes de programación pueden no ser criptográficamente seguros de manera conocida y explotable, pero ¿qué hay de los números aleatorios generados por el cerebro? Cuando le pregunté, ella dijo que los humanos eran terribles para generar entropía, pero no estoy seguro de que este sea el caso. ¿Cómo se clasifican los humanos en la generación de entropía clave y sería posible que una mente humana ocupe el lugar del generador de números aleatorios para la generación de clave / contraseña sin ser explotable?

    
pregunta MxSagan 26.08.2014 - 00:32
fuente

2 respuestas

4

Es plausible que la entropía pueda de alguna manera generarse a partir de procesos cerebrales, pero hacerlo directamente (por ejemplo, "pensar en un número aleatorio") es, en mi opinión, bastante fácil de descontar.

En una secuencia aleatoria de bits, el valor de cualquier bit dado es independiente de todos los otros bits en la secuencia. Sin embargo, si le pide a una persona que genere una secuencia aleatoria de bits, no hay forma de aislar la generación de un bit del conocimiento de qué bits lo precedieron.

    
respondido por el Stephen Touset 26.08.2014 - 00:59
fuente
6

Exploremos algunas posibilidades:

Formas de salida cognitivas

1. Números

Los humanos son malos para escoger números. Hay un sesgo obvio hacia los números impares, ya que son más exóticos . Hay encuestas como esta: Es 17 el número "más aleatorio" ?

Para mitigar un poco el sesgo, puedes dejar que la persona diga una larga secuencia de dígitos (0-9), pero el sesgo seguirá existiendo.

2. Cartas

Los humanos tienen habilidades lingüísticas extraordinarias [Cita requerida] . Esto significa que no hay forma de que no los utilicemos, ni siquiera por accidente. Es muy probable que después de decir T siga un H para una persona con el inglés como idioma principal. No me dejes comenzar con la frecuencia de letras muy sesgada.

3. Booleano

No he encontrado nada que apoye o refute mi sospecha, pero creo que un flujo de 0 y 1 también estará sesgado. Dado que el reconocimiento de patrones nos ha permitido sobrevivir, buscamos orden en el caos. Esto significa que es probable que una persona repita 0101 muchas veces, pero es necesario que haya todo tipo de patrones, no solo uno o dos presentes.

Técnicas de mitigación

1. Trate activamente de mantenerse alejado de los patrones

Esto es realmente difícil ya que los humanos son malos en probabilidades. Un indicador de esto es el problema de cumpleaños , aunque en realidad no es aplicable a esta pregunta.

2. Hash

La mejor manera es hacer hash de la salida desde arriba con una función de hash criptográficamente segura como SHA-512. Wikipedia dice que el texto en inglés tiene entre 0,6 y 1,3 bits de entropía para cada carácter del mensaje . Como la persona está tratando de decir cosas al azar, pero no está teniendo éxito, supongamos que se ajustan 2 bits por letra. Esto significa que una persona debe decir al menos 256 letras para tener suficiente entropía para una clave de 512 bits.

Otras técnicas

Deja que la aleatoriedad venga de los movimientos musculares. Esto ya se hace en algunas soluciones de software para generar aleatoriedad de alta calidad, si no se puede confiar en el RNG del sistema. El último Truecrypt viene a la mente.

    
respondido por el Artjom B. 26.08.2014 - 12:31
fuente

Lea otras preguntas en las etiquetas