Security

為什麼在 Schnorr 簽名中使用 32 字節公鑰而不是 33 字節不會失去安全性?

  • November 13, 2019

目前在郵件列表上有一個關於在 bip-schnorr 中使用時從公鑰中截斷第 33 個字節的討論。

公鑰是(x, y)座標,壓縮後的公鑰只是用y單個字節替換座標,表示其奇數。y然後可以從給定的座標導出完整的x座標,因此公鑰可以僅用 33 個字節而不是 64 個字節表示。

通過刪除“奇數”字節,公鑰將僅由x座標表示,這意味著曲線上有兩個可能的點可以表示。這也意味著同一個僅 x 座標的公鑰實際上可以從兩個不同的私鑰派生。

我的問題是,為什麼這不會影響 Schnorr 簽名的安全假設?是否只是一種微妙的效果,例如用 255 位安全性替換 256 位安全性?

從(最近更新的)bip-schnorr草案中:

當表示為攻擊者為計算密鑰而執行的橢圓曲線操作的數量時,隱式 Y 座標不會降低安全性。攻擊者可以通過在必要時否定該點來將任何給定的公鑰標準化為 Y 座標為二次餘數的點。這只是場元素的減法​​,而不是橢圓曲線運算。

這個想法是,如果以某種方式使用隱式 Y 座標不太安全,那麼攻擊者將始終使用它——即使在具有顯式 Y 座標的協議版本中也是如此。攻擊者將獲取完整的公鑰,剝離 Y 座標,在其上執行他的(可能更快的)隱式 Y ECDLP 求解器以找到私鑰,如果與該密鑰對應的實際點與他想要的相反,翻轉私鑰。

這證明 ECDLP 問題的難度不會因移除 Y 座標而受到有意義的影響。

引用自:https://bitcoin.stackexchange.com/questions/90118