Encryption

使用一個種子創建簽名密鑰對和加密密鑰

  • December 7, 2021

我正在努力創建一個安全的數字保險庫。我正在使用助記符來生成種子。種子用於生成用於身份驗證的簽名密鑰對。但是,我還想加密保管庫的內容以進行恢復。

相同的種子可以用於簽名和加密數據嗎?(如果有幫助,我可以添加鹽或一些確定性函式)。

這是相關的:使用單個 Ed25519 密鑰進行加密和簽名

但是我不確定它是否回答了這個問題。

如果您絕對需要宣傳一個既可用於公鑰認證加密(“crypto_box”)也可用於簽名(“crypto_sign”)的公鑰,這將是在 Twisted Edwards Ed25519 曲線之間映射密鑰對的原因(首選用於簽名操作)和蒙哥馬利曲線 Curve25519(首選用於 ECDH 操作)。例如,您會宣傳一個 Curve25519 公鑰,人們可以使用它來加密並向您發送數據,但您的軟體會在使用它來驗證簽名之前將其映射到 Ed25519 等效項。

但是,聽起來您正在為保管庫使用對稱加密(而不是非對稱加密)。因此,曲線之間的這種映射與您無關。

因此,使用諸如“加密”和“簽名”之類的字元串作為 HKDF-Expand 的資訊參數(連同您的種子作為均勻分佈的偽隨機密鑰)來生成對稱加密密鑰和簽名密鑰。如果您的種子是 256 位,並且您需要派生 256 位密鑰,那基本上等同於做HMAC-SHA256(seed || info)(請參閱https://datatracker.ietf.org/doc/html/rfc5869)。

引用自:https://crypto.stackexchange.com/questions/96483