Elliptic-Curves

EC簽名是否保留熵?

  • April 17, 2018

假設我有一個完美的熵源,我不知道它用於生成私鑰(我也不知道,但可以使用)。

如果我用這個未知的私鑰在恆定的數據(例如hash('foo'))上進行簽名,然後對該簽名進行雜湊處理,是否保留了原始熵?

換句話說,橢圓曲線簽名的輸出機率分佈函式是否類似於完美雜湊函式(即均勻),或者輸出是否集中在整個空間的其他函式中?

Ed25519 是一個典型的橢圓曲線簽名方案,在一組大素數階 $ \ell \approx 2^{252} $ 在田野上的曲線上 $ \mathbb F_p $ 為了 $ p = 2^{255} - 19 $ . 密鑰是一個統一的隨機 32 字節字元串;簽名是對點進行編碼的 64 字節字元串 $ R $ 在標準基點生成的曲線上,編碼一個標量 $ s \in \mathbb Z/\ell\mathbb Z $ .

因為對於任何固定消息 $ m $ key-to-signature 函式是從 32 字節空間到 64 字節空間的映射,它不可能在輸出空間上產生均勻分佈。 事實上,對於每一個選擇 $ R $ , 其中有 $ \ell $ 可能性,有一個獨特的選擇 $ s $ , 所以只有大約 $ 2^{252} $ 可能的簽名——顯然,一些密鑰共享一個共同的簽名 $ m $ (但碰撞很少,在實踐中並不重要)。

此外,簽名很容易與統一的隨機位串區分開來:標量總是小於 $ \ell $ , 和編碼 $ R $ 包含整數的編碼 $ x $ 這樣 $ (1 + x^2)/(1 + (121665/121666) x^2) $ 是二次餘數模 $ 2^{255} - 19 $ .

輸出分佈的熵是否與密鑰上的均勻分佈大致相同? 充其量它可以有大約 252 位熵,因為只有大約 $ 2^{252} $ 可能的簽名——但這非常接近密鑰中可能存在的 256 位熵。在最壞的情況下,它的熵不應該少於 128 位,因為如果不是,那麼將有一個隨機算法,其偽造成功的機率比Pollard的要好得多。 $ \rho $ 以可比的成本從公鑰中恢復秘密標量。

事實證明,我們或多或少隨機地在這些選項之間進行選擇: $ R $ 由一個標量確定 $ \mathbb Z/\ell\mathbb Z $ 由消息的偽隨機函式選擇,由密鑰加密。所以,對於不知道公鑰的任何人:是的,簽名的分佈大約有 252 位熵。

這就是為什麼你可以用它來製作VRF,儘管你需要更多的工作,比如輸出過濾器來獲得 VRF 的所有屬性,所以即使知道公鑰也不足以區分輸出和統一隨機也沒有輸出證明。

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