¿La implementación de Android de SecureRandom produce números aleatorios verdaderos?

He leído que, generalmente, algunas implementaciones de SecureRandom pueden producir verdaderos números aleatorios .

En particular, los documentos Android dicen

Instancias de esta clase generarán una semilla inicial utilizando una fuente de entropía interna, como / dev / urandom

Pero ¿significa eso que producirá números aleatorios verdaderos (es decir, en lugar de números pseudo-aleatorios)?

Y si utilizo SecureRandom en Android de esta manera …

SecureRandom sr = new SecureRandom();

… ¿voy a obtener una salida realmente aleatoria cada vez que llamo sr.nextBoolean() ?

¿O es probable que la salida sea más (o menos?) Aleatoria si, en cambio, new SecureRandom().nextBoolean() salida haciendo esto cada vez: new SecureRandom().nextBoolean() ?

"True" y "pseudorandom" números aleatorios significan un montón de cosas diferentes para diferentes personas. Es mejor evitarlos.

/ Dev / urandom tiene un mal representante porque la gente no entiende las diferencias entre él y / dev / random (mucho, mucho menos diferencia de lo que cabría esperar).

Si usted está preguntando si la siembra de / dev / urandom podría comprometer la aptitud de SecureRandom para usarla con fines criptográficos, la respuesta es un rotundo "no".

Si usted tiene un poco de tiempo usted puede ser que quiera leer mi ensayo sobre la edición entera.

La respuesta clave es que / dev / urandom, tal como está definido por el kernel linux , está garantizado para no bloquear. El énfasis está en no estancar al usuario mientras se genera entropía suficiente. Si los documentos del androide dicen que están usando / dev / urandom para inicializar, Y hay entropía insuficiente en el núcleo para suministrar números aleatorios, el kernel volverá a un algoritmo pseudo-aleatorio.

Según la documentación del kernel, / dev / urandom se considera suficiente para casi todos los propósitos, excepto las "claves de cifrado duraderas". Teniendo en cuenta la descripción de su uso previsto, sospecho androide SecureRandom resultará ser lo suficientemente aleatorio para sus propósitos.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.