Hash
我們可以使用更有效的雜湊來生成簽名嗎?
是否可以使用更有效的散列 - 例如基於 GHASH 的散列 - 而不是用於簽名生成的加密散列?
換句話說,快速散列和私鑰操作的組合能否提供我們期望的加密散列的安全性?假設底層原語是安全的,這樣的方案能否被證明是安全的?
正如評論中已經提到的,您不需要抗碰撞性。您可以擺脫目標碰撞阻力 (TCR)。TCR 的安全遊戲考慮了雜湊函式族,並要求攻擊者在了解它必須在哪個族函式下找到它之前選擇它將找到衝突的消息。這適用於雜湊和簽名簽名方案,您有一個固定長度的簽名方案,該方案無需先對消息進行雜湊處理(如 RSA),然後添加一個雜湊函式以通過對其雜湊簽名來處理任意長度的消息(如 RSA-FDH )。使用 TCR,您可以選擇一個隨機函式索引並使用雜湊對其進行簽名。
如果您想獲得標準模型安全性,這裡的一個問題是函式索引(鍵)必須在消息長度中具有對數長度。至少我們不知道任何 TCR 的域擴展器比這更好。但是,我將省略細節。“啟發式”構造是 Halevi 和 Krawczyk 的RMX 構造。
對於像 (EC)DSA 這樣的基於 Fiat-Shamir 的結構,事情並不那麼容易,因為您不能只是“額外地”簽署索引。但是,您可以做的是重用隨機隨機數(想想 $ g^r $ 在 Schnorr 中)作為 Mironov 在本文中指出的索引。實際上,那篇論文更詳細地討論了我剛剛寫的很多東西。
如果你想變弱,你就會開始遇到問題。如果您使用雜湊來壓縮您正在簽名的消息,則需要某種抗碰撞性(TCR 就是)。至少,您肯定需要第二原像抗性(當您實際輸出碰撞時,也可能會考慮抗碰撞性的變體……)。如果您的雜湊不具備抗二次原像性,則惡意方在看到消息簽名對後,總是可以提出簽名有效的衝突消息。