正在改變H(R∥A∥M)H(R‖一個‖米)H(Rmathbin{Vert}Amathbin{Vert}M)至H(R∥A∥H(米))H(R‖一個‖H(米))H(Rmathbin{Vert}Amathbin{Vert}H(M))在 EdDSA …
EdDSA 計算 $ s=(r+H(R\mathbin{\Vert}A\mathbin{\Vert}M)\cdot a)\bmod\ell $ 和 $ r=H(h\mathbin{\Vert}M) $ , 和
- $ H $ 作為散列函式(SHA2/512);
- $ B $ 作為發電機;
- $ A $ 作為公鑰;
- $ a $ 是秘密指數;
- $ r $ 是每個簽名隨機的;
- $ h $ 作為秘密種子( $ h[b~.!.~2b-1] $ 在論文中)。
如果出現,對簽名的安全性有什麼影響 $ M $ 被替換為 $ H(M) $ 或者 $ H(A\mathbin{\Vert}M) $ ,從而產生 $ s=(r+H(R\mathbin{\Vert}A\mathbin{\Vert}H(A\mathbin{\Vert}M))\cdot a)\bmod\ell $ 和 $ r=H(h\mathbin{\Vert}H(A\mathbin{\Vert}M)) $ ?
這意味著消息在簽名期間只需要散列一次,這對於長消息更有效,但簽名會失去任何安全質量嗎?具體來說,該論文說簽名提供了抗碰撞性,這會隨著 $ M $ 被取代 $ H(M) $ ? 關於什麼 $ H(A\mathbin{\Vert}M) $ ?
假設這是您正在談論的論文,您的修改完全消除了底層雜湊函式中對沖突的彈性 $ H $ . EdDSA 方案(以及它所基於的 Schnorr 方案)在 $ H $ . 具體來說,在通用組模型中,Schnorr 方案已被證明是安全的,即使 $ H $ 不耐碰撞;安全所需的只是 $ H $ 能夠抵抗隨機前綴原像攻擊和隨機前綴第二原像攻擊(本質上,給定隨機 $ R $ :給定 $ h $ 很難找到 $ M $ 英石 $ H(R||M)=h $ , 並給定 $ N $ 很難找到 $ N^\prime $ 英石 $ H(R||N)=H(R||N^\prime) $ 和 $ N\ne N^\prime $ ).
所以 EdDSA 可以完美地使用不抗碰撞的雜湊;據我們所知,它不需要抗碰撞,只需要隨機前綴原像和隨機前綴第二原像抗性。
但是,您的修改很容易受到 $ H $ : 如果 $ H(M)=H(M^\prime) $ , 那麼如果你散列 $ M $ 在簽名之前,您最終會得到一個 EdDSA 簽名 $ H(M)=H(M^\prime) $ 其中(根據您的修改)是簽名 $ M^\prime $ . 如果你改為 $ H(A||M) $ ,發現任何選擇前綴衝突的攻擊者可以創建兩條消息,使得一個的簽名是另一個的簽名。如果你使用 $ H(A||M) $ 作為要簽名的東西,可以找到任意兩條消息的人 $ H(A||M)=H(A||N) $ 再次可以為一個簽名並將其用作另一個的有效簽名。有了一個好的散列函式,他們就找不到所說的衝突,但是 Schnorr(以及 EdDSA)的設計是這樣的,如果他們能做到這一點,它就不會破壞。
如果有人收到消息 $ M $ 與 $ (R,S) $ ,並找到第二個原像 $ H(R||A||M) $ (IE $ M^\prime $ 英石 $ H(R||A||M^\prime)=H(R||A||M) $ ,然後簽名為 $ M $ 適用於 $ M^\prime $ . 然而,只有發現碰撞能力的攻擊者無法利用這一點:他們無法控制 $ R $ , 和 $ R $ 每個人都不一樣 $ M $ . 所以找到一個碰撞 $ f(M)=H(R||A||M) $ 對攻擊者無用;為了利用碰撞,碰撞消息之一必須具有 $ H(h||M)B=R $ ,對於碰撞對中的通用對象,情況並非如此。碰撞攻擊不適用,因為碰撞對僅在它們以其中一個的秘密函式為前綴時發生碰撞時才有幫助,通常情況並非如此。