Signature

EdDSA 密鑰生成中的散列

  • October 9, 2022

在 Ed25519 上的 EdDSA 中,公鑰計算的算法如下:

h = hash (privateKey)
h[0] &= 0xF8
h[31] &= 0x7F
h[31] |= 0x40
publicKey = h * B

問題是採取什麼行動 $ h $ 需要位嗎?

  1. EdDSA 密鑰生成中的散列

這在論文中被描述為

合法使用者選擇 $ A = [a]B $ , 在哪裡 $ a $ 是一個隨機的秘密;a 的推導 $ H(k) $ 確保足夠的隨機性。

如果不應用散列,則對此類公鑰的簽名進行驗證是沒有問題的。 2. 問題是需要對 h 位執行什麼操作?

這清楚地清除了低位,因此它是 8 的倍數,並且這消除了曲線上的小組,即該資訊雖然很小,但可以在小子組攻擊中洩露。在此答案中查看更多資訊 3. 清除與第 0 位有關,那麼第 31 位呢?

這主要是由於可能的定時攻擊(在此站點中)

堅持建議和標準;見RFC 8709

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