Implementierung von BIP39, ich möchte einen BIP39-512-Bit-Seed aus 12 mnemonischen Zeichen generieren, bin aber fehlgeschlagen

Ich habe eine Frage. Ich habe die Website ( https://www.mobilefish.com/download/ethereum/bip39.html ) verwendet, um eine 12-Wörter-Mnemonik (englische Wortliste) ohne Passwort zu generieren, und habe Folgendes erhalten:

"Orgeltarif Seniorengremium erste Aufgabe Sirenenraum Hirsche begeistern Bachelorarbeit"

Und der 512-Bit-Seed ist wie folgt: „53329c51c9416d4d2fe46ecd8edab1c9a5289b3366c98bb6ee843e7bd4242ee46b6be686aef697d23278062d8c033cf2788df96cc4f24375682f399eb682f399eb69a6“

Ich habe jedoch versucht, selbst 512-Bit-Seed zu generieren, bin aber gescheitert.

Ich habe online PBKDF2 SHA-512 Hashes verwendet: https://stuff.birkenstab.de/pbkdf2/

Und wie unten eingegeben, aber falsches Ergebnis erhalten. Nachricht: Organrateseniorpanelfirsttaskssirenroomdeerexcitebachelorproject Salt: Mnemonik Iterationen: 2048 Schlüssellänge: 64

Was ich bekommen habe ist: 559c3427c333595e3ef78cc19d7f412452a763a09b66c8c7da2b49ecf12cd5d51ae7cb9bffe9d33ca358a421e984b626053192eea36ba909d307df0fa9ceda60

Bitte helfen Sie bei der Beantwortung.... Danke!

Ich sehe, Ihre Frage wurde beantwortet und Sie haben es zum Laufen gebracht, aber für diejenigen, die diese Frage später sehen, möchte ich darauf hinweisen, dass die Nachricht in der PBKDF2-Funktion die durch Leerzeichen getrennten mnemonischen Wörter sind, die nicht hintereinander verkettet sind .

Antworten (1)

Nur als Randbemerkung: Was Sie aus 12 Wörtern bekommen, ist ein Seed von 512 Bit Länge, weil es mit PBKDF2 gestreckt wurde. Die Entropie beträgt nur 128 Bit mit 12 Wörtern (jedes Wort repräsentiert 11 Bit Information ~= 132 Bit mit 4 Bit Prüfsumme).

Wenn Sie sich beispielsweise eine Bibliothek wie https://github.com/bitcoinjs/bip39/blob/master/src/index.js ansehen , sehen Sie, dass die Leerzeichen zwischen den Wörtern nicht entfernt werden. Wenn Sie die ursprünglichen Wörter in das PBKDF2-Tool einfügen, erhalten Sie den richtigen Seed.

Danke für deine Antwort! Ich glaube jedoch, dass Sie meine Frage nicht beantwortet haben. In 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).Es zeigt an, dass mnemonic sentense als Passwort und die Zeichenfolge "mnemonic" + passphrase als Salt verwendet werden.
In Punkt 3 kann ich mit "9c76470ecfc577bc325ddf3949d844d6" immer noch nicht den richtigen 512-Bit-Seed-Out generieren.
Entschuldigung, Sie haben recht. Was ich beschrieben habe, war BIP32 (das HMAC-SHA512 verwendet). Ich habe vergessen, dass BIP39 auch bereits Key-Stretching durchführt. Ich habe meine Antwort bearbeitet.