Implementación de BIP39, quiero generar una semilla BIP39 de 512 bits a partir de 12 mnemónicos pero fallé

Tengo una pregunta. Utilicé el sitio web ( https://www.mobilefish.com/download/ethereum/bip39.html ) para generar una mnemónica de 12 palabras (lista de palabras en inglés) sin contraseña y obtuve lo siguiente:

"órgano tasa senior panel primera tarea sirena sala venado excitar proyecto de licenciatura"

Y la semilla de 512 bits es como: "53329c51c9416d4d2fe46ecd8edab1c9a5289b3366c98bb6ee843e7bd4242ee46b6be686aef697d23278062d8c033cf2788df96cc4f24375682f396eb9a6"

Sin embargo, traté de generar semilla de 512 bits por mí mismo pero fallé.

Usé PBKDF2 SHA-512 Hashes en línea: https://stuff.birkenstab.de/pbkdf2/

E ingresó como a continuación pero obtuvo un resultado incorrecto. Mensaje: organrateseniorpanelfirsttasksirenroomdeerexcitebachelorproject Salt: mnemónico Iteraciones: 2048 Longitud de la clave: 64

Lo que tengo es: 559c3427c333595e3ef78cc19d7f412452a763a09b66c8c7da2b49ecf12cd5d51ae7cb9bffe9d33ca358a421e984b626053192eea36ba909d307df0fa9ceda60

Por favor, ayuda a responderla.... ¡Gracias!

Veo que su pregunta fue respondida y que funcionó, pero para aquellos que puedan ver esta pregunta más adelante, me gustaría señalar que el mensaje en la función PBKDF2 son las palabras mnemotécnicas separadas por espacios, no concatenadas una tras otra .

Respuestas (1)

Solo como nota al margen: lo que obtienes de 12 palabras es una semilla de 512 bits de longitud porque se estiró con PBKDF2. La entropía es de solo 128 bits con 12 palabras (cada palabra representa 11 bits de información ~= 132 bits con una suma de comprobación de 4 bits).

Si observa una biblioteca como https://github.com/bitcoinjs/bip39/blob/master/src/index.js , por ejemplo, verá que los espacios entre las palabras no se eliminan. Si pega las palabras originales en la herramienta PBKDF2, obtiene la semilla correcta.

¡Gracias por su respuesta! Sin embargo, no creo que hayas respondido a mi pregunta. En BIP32: To create a binary seed from the mnemonic, we use the PBKDF2 function with a mnemonic sentence (in UTF-8 NFKD) used as the password and the string "mnemonic" + passphrase (again in UTF-8 NFKD) used as the salt. The iteration count is set to 2048 and HMAC-SHA512 is used as the pseudo-random function. The length of the derived key is 512 bits (= 64 bytes).indica que se usa mnemónico sentense como contraseña y cadena "mnemónico" + frase de contraseña como sal.
En el punto 3, todavía no puedo generar la semilla correcta de 512 bits con "9c76470ecfc577bc325ddf3949d844d6".
Lo siento, tienes razón. Lo que describí fue BIP32 (que usa HMAC-SHA512). Olvidé que BIP39 también hace estiramiento de teclas. Edité mi respuesta.