Dsa
如果在 DSA/ECDSA 中發生衝突,會發生什麼rrr但不是ķķk?
在 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 被重用),然後將未知變數的數量減少到兩個;在這種情況下,它只是兩個變數中的一對線性方程 - 很容易求解。