¿Qué función desempeñan los cifrados de hash y de bloque en la generación de números aleatorios?

4

Leí acerca de los generadores de números pseudoaleatorios y hubo ciertas demandas sobre qué "función de hash subyacente" y "cifrado de bloque subyacente" usar. ¿Qué papel desempeñan los algoritmos de hash y los cifrados de bloque en la generación de números aleatorios?

    
pregunta JFB 25.01.2018 - 14:01
fuente

2 respuestas

2

Las funciones de hash a menudo se usan como una función de mezcla para tomar datos de entrada potencialmente sesgados y transformarlos de tal manera que es muy poco probable que esos sesgos tengan un impacto negativo en la calidad del estado RNG del sistema. Esto es útil cuando está intentando acumular entropía de fuentes que pueden contener solo aleatoriedad parcial, y algunos de los datos posiblemente pueden estar influenciados por un atacante. Siempre que cualquiera de los bits de entrada sea desconocido e impredecible, los bits de salida del hash mantendrán esa imprevisibilidad.

Los cifrados simétricos se utilizan a menudo para producir DRBGs - generadores de bits aleatorios deterministas. Al configurar un cifrado como AES o RC4 como un cifrado de flujo con un valor semilla secreto como clave, la salida del cifrado se convierte en un generador de bits aleatorios criptográficamente seguro. Esto es útil en los casos en que necesita números aleatorios repetibles pero seguros, por ejemplo. donde dos sistemas necesitan producir el mismo flujo de números aleatorios pero la aleatoriedad debe ser segura.

    
respondido por el Polynomial 25.01.2018 - 14:18
fuente
0

Cuando necesite un generador de números pseudoaleatorios criptográficamente seguro (uno en el que no pueda predecir el resultado de la salida anterior), un método común es reutilizar una primitiva criptográfica diferente.

Un patrón común es utilizar un algoritmo de cifrado o hash y constantemente devolver su salida como entrada.

Cuando usa un algoritmo de cifrado con una clave secreta, puede usar la salida completa de cada ronda como números pseudoaleatorios. Cuando usas un algoritmo hash, solo usas una parte de él o agregas un valor de sal secreto a cada hash-round.

    
respondido por el Philipp 25.01.2018 - 14:15
fuente

Lea otras preguntas en las etiquetas