Elliptic-Curves

Curve25519 密鑰對的數字簽名

  • August 8, 2021

我有 Wireguard 使用的一對Curve25519密鑰的公鑰/私鑰。

如何使用此密鑰對生成/驗證數字簽名?

最好,我想使用EdDSA/Ed25519,但我很難從 Wireguard 使用的 Curve25519 密鑰中導出 Ed25519 密鑰對。

我認為不可能按照您的要求進行操作,因為生成用於 ECDH 與 Ed25519 的密鑰的方式不同。

考慮一個 Wireguard 密鑰對 ( sk1, pk1)。請注意,這sk1只是 32 個隨機字節,其中設置/清除了適當的位(),並且pk1源自sk1典型的 ECDH 方式()。

對於 Ed25519 簽名,您需要對 32 個隨機字節進行雜湊處理以產生 64 個字節,其中一半用於派生公鑰,另一半用於創建簽名時使用。

因此,您可以sk2從中派生私鑰sk1並用於sk2創建 Ed25519 簽名。但是根據評論中的討論,聽起來您想在無法訪問的情況下驗證這些簽名sk1(大概在 Wireguard 隧道的另一端,只有pk1)。並且由於您無法從 推導sk1出來pk1,因此您無法SHA512(sk1)從計算pk1。因此,你不能pk2pk1一個人那裡得到。

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