Discrete-Logarithm

DSA 的安全修改?

  • May 28, 2022

DSA中,我們計算簽名 $ (r,s) $ 上 $ m $ 通過抽樣 $ k\in{1,…,q-1} $ 然後計算

$ r := g^k \bmod p $

$ s := k^{-1}(m+xr) \bmod q $

在驗證過程中,我們計算 $ v:=g^{m*s^{-1}}y^{rs^{-1}}\bmod p $ 然後檢查 $ r=v \bmod q $ .

**問:**離開好不好 $ k^{-1} $ 從計算出來 $ s $ (IE, $ s := m+x*r $ ) 然後改為檢查 $ g = v $ ?

**問:**離開好不好 $ k^{-1} $ 從計算出來 $ s $ (IE, $ s := m+x*r $ ) 然後改為檢查 $ g = v $ ?

換句話說,支票將是 $ g = g^{ms^{-1}}y^{rs^{-1}} $

現在,那將是不安全的;假設我們有一個有效的簽名 $ m $ ,也就是說,我們有值 $ (m, r, s) $ 這樣 $ g = g^{ms^{-1}}y^{rs^{-1}} $

然後,對於任意消息 $ m’ $ ,我們可以計算 $ s’ = m’m^{-1}s $ 和 $ r’ = rs’s^{-1} $ ; 我們有 $ g^{m’s’^{-1}}y^{r’s’^{-1}} = g^{ms^{-1}} y^{rs^{-1}} $ ,即 $ g $ (因為原簽名有效);那是, $ (m’, r’, s’) $ 是贗品。

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