Schnorr 簽名的安全性是否取決於所使用的散列函式?
創建 Schnorr 簽名時,數字 $ r $ 與消息連接以產生一個新值,然後對其進行散列以給出一個表示為的數字 $ e $ . 號碼 $ e $ ,以及在驗證期間使用的一些其他數據,然後將被發送到簽名驗證者。然後簽名驗證者將嘗試重新計算數字 $ r $ 使用提供給他們的資訊,一旦他們這樣做了,他們將連接數字 $ r $ 他們使用接收到的消息進行計算並使用相同的雜湊函式來獲得表示為的輸出 $ e\prime $ . 如果 $ e\prime = e $ ,簽名有效。
我的問題是:使用的雜湊函式是否有助於簽名算法的整體安全性,或者只是在簽名時用於壓縮數字的串聯 $ r $ 並將消息轉換成固定位數?
它確實有助於安全。特別是雜湊函式 $ H $ 必須是“隨機前綴原像抗性”以防止僅密鑰偽造和“隨機前綴第二原像抗性”以防止已知消息偽造。
通過“隨機前綴原像抗性”,我們的意思是給定一個輸出值 $ e $ 和一個隨機 $ r $ , 很難找到 $ m $ 這樣 $ H(r||m)=e $ (在第二種原像情況下,即使提供了範例 $ m $ ,很難找到第二個例子)。
如果這很容易,那麼我們可以選擇任意一個 $ e $ 和 $ s $ 和(按照 Schnorr 驗證過程)計算 $ r=g^sy^e $ 然後解決我們的原像問題 $ e $ 和 $ r $ 得到消息 $ m $ 為此 $ (s,e) $ 是一個有效的簽名。請注意,我們不一定可以控制 $ m $ 因此,這種攻擊是創建存在偽造的僅密鑰攻擊,並且該方案不會是 EUF-KOA 安全的。
同樣,在第二種原像情況下,我們可以為消息獲取現有簽名 $ m $ 並創建第二條消息 $ m’ $ 和 $ H(r||m)=H(r||m’) $ . 簽名 $ (s,e) $ 為了 $ m $ 也可以作為簽名 $ m’ $ 並且該方案不會是 EUF-KMA 安全的。