Pregunta

El problema no es acerca de la aleatoriedad en sí (que hemos rand), pero en criptográficamente segura PRNG.Lo que puede ser usado en Linux, o idealmente POSIX?¿NSS tiene algo útil?

Aclaración:Yo sé acerca de /dev/random, pero se puede ejecutar fuera de la piscina de entropía.Y no estoy seguro de si /dev/urandom está garantizado para ser criptográficamente seguro.

¿Fue útil?

Solución

Uso /dev/random (requiere la intervención del usuario, por ejemplo, los movimientos del ratón) o /dev/urandom.El último tiene una piscina de entropía, y no requiere ninguna entrada de usuario, a menos que la piscina está vacía.

Se puede leer en la piscina como esta:

char buf[100];
FILE *fp;
if (fp = fopen("/dev/urandom", "r")) {
    fread(&buf, sizeof(char), 100, fp);
    fclose(fp);
}

O algo como eso.

Otros consejos

De Wikipedia (cursiva mía):

Una contraparte de /dev/random /dev/urandom ("desbloqueado" de origen aleatorio), que vuelve a utilizar la piscina interior para producir más de pseudo-aleatorio de bits.Esto significa que la llamada no se bloque, pero el resultado puede contener menos de la entropía de la correspondiente lectura de /dev/random.El la intención es servir como un criptográficamente segura generador de números pseudoaleatorios.Esto puede ser utilizado para menos aplicaciones seguras.

El /dev/random el dispositivo está destinado a ser una fuente de criptográficamente segura bits.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top