Elliptic-Curves
secp256k1:理論上是否可以使用不同的密鑰、消息雜湊和 k 生成相同的簽名?
對於給定的私鑰 $ d $ , 隨機的 $ k $ 和消息雜湊 $ h $ 是否可能存在不同的集合 $ d $ , $ k $ 和 $ h $ 它使用產生相同的簽名 $ \text{secp256k1} $ 曲線?
我們想要 $ (r,s) $ 兩組不同的相同 $ d,k,h $
在 ECDSA 中
- $ r = x_0([k]G) \bmod n $ 在哪裡 $ k \in [1,n-1] $ 和 $ x_o $ 是標量乘法的 x 座標 $ [k]G $
- $ s = k^{-1}\cdot (h+r\cdot d) $ 在哪裡 $ h $ 是最左邊的位 $ h $ 以適應組順序(為簡單起見,我們稱它為 $ h $ 再次)。
現在我們想要同樣的 $ (r,s) $ 為了 $ d,k,h $ 和 $ d’,k’,h’ $
- $ r = x_0([k]G) = x_0([k’]G) $ 雖然這可能表明 $ k=k’ $ 它不是。原因是座標場 $ p $ 小於訂單 $ n $ 的基點。因此,我們可以有除瑣碎之外的解決方案。
- $ s = k^{-1}\cdot (h+r\cdot d) = k’^{-1}\cdot (h’+r\cdot d’) $ ,
然後與 $ k’=k $ 我們有;
$$ \begin{align} (d’-d)\cdot r &= (h-h’) \ \end{align} $$
然後與 $ k’\neq k $ 和 $ c = k^{-1} $ 和 $ c’ = k’^{-1} $ (對於我們的眼睛)我們有;
$$ \begin{align} c’\cdot h + c’ \cdot r \cdot d &= c\cdot h’ + c \cdot r \cdot d’ \ c’\cdot h -c\cdot h’ &= c \cdot c \cdot d’ -c’ \cdot r \cdot d \ c’\cdot h -c\cdot h’ &= r \cdot ( c \cdot d’ -c’ \cdot d) \ \end{align} $$
正如我們所知道的 $ r $ ;
任何一個
- 我們需要找到一個合適的 $ d’ $ 對於給定的 $ d $ 對於給定的不同雜湊值。這是免費的,因為我們只是通過算術找到了私鑰。
- 或者,我們需要找到一條產生所需雜湊值的消息 $ h’ $ 使我們平等。這很難,因為我們需要打破 SHA256 的原像電阻。
正如我們所看到的,這是可能的,但很難。
對於案件 $ k’\neq k $ 計算是相似的。