如何從 Ed25519 加密的私鑰中提取 BIP39 助記詞?
如何從 Ed25519(Ed25519+libsodium,8 用於鹽,48 用於密鑰加 32 字節)加密私鑰生成 BIP39 助記符?我有一個 Ed25519 加密的私鑰(我知道它的密碼)。我想從中創建一個BIP39 助記符。
這是將在其他地方生成的私鑰導入 Nano Ledger S 錢包。我知道不建議這樣做,但我知道風險並希望將其作為練習。
Ed25519 私鑰可以有幾種典型形式中的任何一種——幾乎總是只有 32 字節或 64 字節字元串。您擁有或需要哪種形式取決於您使用的軟體或協議。
例如,對於一個BIP32風格的分層錢包,您幾乎可以肯定需要完整的 64 字節字元串編碼 PRF 秘密和秘密標量。我不了解 Nano Ledger S:如果您想要關於它的具體答案,您必須指出有關 Nano Ledger S 實施的特定協議的特定文件。
如果您已經擁有Ed25519 私鑰,則無法從中生成 BIP39 助記詞,因為 BIP39 是一種通過生成助記詞來生成密鑰的系統,密鑰是從該助記詞中派生出來的。 為不是從一個私鑰生成的私鑰發明一個 BIP39 助記符將是密碼學的一項驚人壯舉,展示了對 SHA-256 的令人難以置信的結構化原像攻擊。
如果您想通過助記符生成Ed25519 私鑰,那麼您原則上可以使用 BIP39。您使用的軟體是否支持它,我不能說。
如果您想要的只是 Ed25519 私鑰或任何其他(例如)32 字節字元串的令人難忘的表示,您可以獲取(例如)256 個條目的單詞列表,並將每個八位字節映射到一個單詞,從而產生一個 32 個單詞助記符。如果 32 字太長,您可以使用 65536 條目的單詞列表並將 32 字節的字元串映射到 16 字的助記符。這不是 BIP39,但它是一種可能令人難忘的方式,您可以備份 Ed25519 私鑰。