¿Es posible evitar la siembra interna de un RNG y sembrar el generador manualmente usando los RAND_bytes () de OpenSSL?

4

Estoy tratando de escribir un generador de números aleatorios con la biblioteca OpenSSL. La función RAND_bytes () provista se auto-siembra con / dev / urandom. Es por eso que solo puedo reiniciar con la función RAND_seed (). Entonces, si estoy sembrando el generador, siempre será una combinación de la sembradora interna y mía.

¿Existe la posibilidad de evitar la siembra inicial, por lo que puedo sembrar manualmente el RNG sin que tenga lugar ninguna siembra interna?

Quiero evitar la siembra interna y sembrar el RNG manualmente, porque trato de escribir un generador de números aleatorios criptográficamente débiles, para propósitos de prueba.

    
pregunta Maximilian 18.04.2015 - 14:21
fuente

1 respuesta

1

Ahora que lo pienso, podrías implementar un motor con un RNG débil e insertarlo en OpenSSL usando:

ENGINE_set_default(e, ENGINE_METHOD_RAND);

Eso debería asegurarse de que se utiliza el generador de números aleatorios. Por supuesto, puede ser una buena idea ignorar cualquier información de semilla dada al RNG aleatorio por el OpenSSL.

Esto tiene la desventaja obvia de que puede ser difícil descubrir cuándo se usa el generador de números aleatorios para qué función. Pero no veo cómo esto no podría funcionar de otra manera.

    
respondido por el Maarten Bodewes 20.04.2015 - 11:39
fuente

Lea otras preguntas en las etiquetas