¿La aleatoriedad de vanitygen es lo suficientemente segura?

Si dos personas corren, vanitygen 1abcdefg¿cuál es la probabilidad de que ambas personas obtengan la misma clave pública y clave privada?

Espero que la respuesta sea menor que 0.0000001. Pero para esto es vanigygennecesario usar un algoritmo aleatorio (no simple while(true){ i++; test()}).

Mi pregunta es: por lo general, cuando creo una billetera, usando http://bitaddress.org , necesito mover el mouse para agregar algo de aleatoriedad adicional , pero vanitgygen no usa este método.

Al inspeccionar el código de vanitygenen GitHub, veo que usan funciones aleatorias. ¿Puedo confiar en ello? ¿Es realmente aleatorio? ¿Cómo puede ser seguro? ¿Es usar el tiempo de la máquina o qué?

Respuestas (1)

Si dos personas ejecutan vanitygen 1abcdefg ¿Cuál es la probabilidad de que ambas personas obtengan la misma clave pública y clave privada?

Si mil millones de supercomputadoras probaran cada una mil millones de claves por segundo durante mil millones de años, las probabilidades de una colisión de claves seguirían siendo menos de una entre mil millones.

Espero que la respuesta sea menor a 0.0000001.

Sí, mucho menos.

Pero para este vanigygen es necesario usar un algoritmo aleatorio (no simple while (true) { i ++; test ()}).

Solo necesita un lugar de inicio aleatorio. Puede incrementar desde allí si lo desea. El número de posibles lugares de inicio tiene 77 dígitos cuando se expresa en notación decimal.

¿Cómo puede la computadora generar un lugar de inicio aleatorio, que tiene 77 dígitos...? Si es solo new Date().valueOf(), no es real al azar.
@Aminadav: Es posible que desee leer sobre generadores de números pseudoaleatorios criptográficamente seguros .
@Aminadav ¡Este es un problema muy bien entendido! Obtener la aleatoriedad correcta es difícil y extremadamente importante y los desarrolladores o el software de criptomonedas (al menos, los competentes) son muy cuidadosos para hacerlo bien. A menudo, se utilizan fuentes de aleatoriedad física real, como el ruido de disparo, las variaciones de temperatura de la zona microscópica y las fuerzas de cizallamiento turbulentas. (Las computadoras reales no son máquinas teóricamente perfectas, se encuentran con el mundo físico analógico de maneras medibles).
Esa es mi pregunta si puedo confiar en este software de código abierto vanitygen. ¿Cómo elegir un problema aleatorio? ¿En qué se basa?
@nate. He leído la wiki. Cuenta sobre la seguridad. No explica cómo la computadora de la máquina puede Behar el número aleatorio del estado inicial del bosque
@Aminadav Vanitygen sigue las mejores prácticas actuales, incluido el uso del grupo de entropía del sistema en plataformas que tienen uno. El grupo de entropía del sistema extrae la aleatoriedad física causada por cosas como la inestabilidad en la señal del reloj de la CPU causada por las variaciones de temperatura en su cristal de cuarzo. (Vanitygen no implementó esto ellos mismos, eso habría sido una tontería).
@Aminadav También usa múltiples fuentes de aleatoriedad y un algoritmo que asegura que el resultado sea al menos tan fuerte como su entrada más fuerte . Por lo tanto, puede mezclar información de la memoria del sistema, sincronización del disco y todo tipo de otras cosas sin temor a que el uso de demasiadas fuentes débiles produzca un resultado débil.
Descubrí que es un verdadero secreto cómo funcionan esos generadores de números aleatorios. Pero algunas personas aplican ingeniería inversa a esto: en.wikipedia.org/wiki/CryptGenRandom#Method_of_operation