Dsa

如果在 DSA/ECDSA 中發生衝突,會發生什麼rrr但不是ķķk?

  • June 7, 2019

在 DSA 中,值 $ r $ 生成為:

$ r = (g^k \bmod p) \bmod q $

ECDSA 類似,使用 $ x $ 發電機座標 $ g $ 標量乘以 $ k $ , 再次取模 $ q $ .

眾所周知,尤其是索尼, $ k $ 每條簽名的消息都必須不同,否則私鑰洩漏。

由於結構的原因,有可能但不太可能產生兩種不同的 $ k $ 導致相同的值 $ r $ 價值。如果您碰巧生成了兩個具有相同的不同消息的簽名 $ r $ 價值但不同 $ k $ 值,它會破壞安全性嗎?

如果您碰巧生成了兩個具有相同的不同消息的簽名 $ r $ 價值但不同 $ k $ 值,它會破壞安全性嗎?

不,它不會破壞安全性。

假設你碰巧使用了兩種不同的 $ k $ 值( $ k $ 和 $ k’ $ ) 恰好導致相同的結果 $ r $ . 然後,當你發布相應的 $ s $ 值,您將發布:

$$ s = k^{-1} (H(m) + xr) $$

$$ s’ = k’^{-1} (H(m’) + xr) $$

和 $ s, s’, r, H(m), H(m’) $ 已知。

那離開 $ k, k’, x $ 是三個未知變數;對於任何可能的 $ x $ 值(這是私鑰),有 $ k, k’ $ 使這些方程適合的值,因此我們不能推斷出 $ x $ 從這兩個方程。

相反,如果我們也知道 $ k = k’ $ (也就是說,如果實際 $ k $ value 被重用),然後將未知變數的數量減少到兩個;在這種情況下,它只是兩個變數中的一對線性方程 - 很容易求解。

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