Un Deterministic RNG es un generador de números pseudoaleatorios: calcula valores mediante un procedimiento fijo en lugar de medir un nuevo fenómeno físico aleatorio para cada uno. Parte de una entrada llamada seed y mantiene un estado interno, la información necesaria para el siguiente cálculo. Repetir todo el procedimiento con las mismas entradas reproduce los resultados. Esto facilita las pruebas. Un generador criptográfico seguro necesita además un buen diseño y suficiente entropía: incertidumbre sobre la entrada desde la perspectiva del atacante.
Imagina que pausas un cálculo y guardas su memoria. Si lo reanudas en ese punto y le das las mismas entradas posteriores, puede continuar igual. NIST SP 800-90A describe estos generadores como DRBG. Importan el algoritmo, la configuración y el orden de las solicitudes. Añadir entropía nueva, lo que se llama reseeding, cambia el estado. Por eso, compartir seed no garantiza que programas distintos produzcan lo mismo. [1]
Incluso un programa sencillo de simulación puede producir números que parezcan aleatorios. Eso no basta para proteger una cartera. RFC 4086 advierte que un atacante puede predecir algunas de esas secuencias aunque superen pruebas estadísticas. Un generador criptográficamente fuerte debe seguir siendo impredecible en la práctica tras revelarse parte de la salida. Importan el diseño, la calidad y el secreto del material inicial, no solo la palabra «determinista». [2]
Al investigar un fallo, ayuda reproducir exactamente la misma situación. Por eso la función randombytes_buf_deterministic() de libsodium devuelve la misma secuencia para el mismo seed. El desarrollador puede publicar el resultado esperado para que otros lo comprueben. Precisamente por eso, un seed de prueba público no debe usarse en una cartera real: cualquiera podría calcular el mismo «secreto». [3]
BIP32 utiliza una reproducibilidad parecida para derivar claves, aunque no es el mismo procedimiento que generar datos aleatorios de uso general. Crea un árbol de claves a partir de un seed. La ruta de derivación selecciona la rama utilizada. Con el mismo seed y la misma ruta se pueden recuperar las mismas claves. Otra dirección derivada no añade, por sí sola, entropía nueva e independiente al secreto original. [4]
En BIP39, las palabras de recuperación, llamadas mnemonic, son solo parte de la entrada. PBKDF2 las combina con una passphrase, un secreto adicional opcional, para calcular el seed de la derivación posterior. Una passphrase distinta produce otro resultado aunque las palabras no cambien. Recuperar las mismas claves exige todas las entradas originales y el método de derivación correspondiente. Que coincidan las palabras no basta para comprobarlo. [5]
Una firma digital demuestra que el titular de la clave secreta correspondiente autorizó una transacción. RFC 6979 describe cómo calcular el valor auxiliar k de la firma a partir de esa clave y del mensaje firmado. Este paso no necesita obtener un valor aleatorio nuevo cada vez. Sigue siendo necesaria una buena aleatoriedad al crear la clave original. Una firma correcta no arregla una clave que era adivinable desde el principio. [6]
Recuperar las mismas claves mediante BIP32 es deseable; repetir por accidente valores que debían ser nuevos no lo es. Una instantánea de una máquina virtual guarda el estado del equipo, incluida la memoria. Como advierte libsodium, restaurarla puede repetir el estado y los resultados del generador. Al copiar un entorno, no se puede suponer que cada copia en ejecución creará automáticamente secretos independientes. [3] [4]
El desarrollador compara el resultado con un vector de prueba: una entrada conocida y su salida esperada. La coincidencia demuestra que el programa calcula bien ese ejemplo. No prueba que el dispositivo real obtenga entropía de calidad. NIST SP 800-90A trata por separado los mecanismos y los requisitos de sus entradas. También importan la versión, la configuración y la incorporación de entropía; la etiqueta Deterministic RNG no demuestra por sí sola la seguridad de la cartera. [1]
Para obtener la imagen más completa, lee esta entrada junto con CSPRNG, Random Number Generator, HD Wallet, Seed Generation. También enlazan con esta entrada CSPRNG, COLDCARD RNG Incident (2026).