Hmac
Nonce-less Encrypt-then-HMAC 是否與 poly1305 一樣安全
在閱讀https://crypto.stackexchange.com/a/88732/87450時,我注意到它建議 encrypt-then-HMAC 作為分區攻擊的防禦。然而據我所知,與 poly1305 不同,HMAC 不使用 nonce,並且在poly1305 論文中DJB 說:
Poly1305-AES 使用隨機數有幾個原因。首先,沒有隨機數的可比較協議的安全邊界看起來像 $ C(C+D)L/2^{106} $ 而不是 $ DL/2^{106} $ - 這裡 $ C $ 是發件人認證的消息數量, $ D $ 是偽造嘗試的次數,並且 $ L $ 是最大消息長度——因此不能放心地用於大消息 $ C $ . 其次,nonce 允許 AES 的呼叫與 Poly1305-AES 中的大多數其他操作並行執行,從而減少了許多情況下的延遲。第三,出於各種原因,大多數協議無論如何都具有隨機數:例如,安全加密需要隨機數,並且隨機數允許對重播消息進行微不足道的拒絕。
如果我們考慮除分區攻擊之外的所有威脅,這是否意味著與 poly1305 相比,HMAC 是次要的選擇?
如果我們考慮除分區攻擊之外的所有威脅,這是否意味著與 poly1305 相比,HMAC 是次要的選擇?
針對具有有限中間狀態的 MAC 的一次攻擊
$$ 1 $$是一個試圖在兩個不同 MAC 評估之間的中間狀態中找到衝突的方法;然後,攻擊者可以使用該中間碰撞來生成偽造品。 Poly1305的內部中間狀態為130位;相比之下,HMAC-SHA256 的中間狀態為 256 位;這個更大的中間狀態意味著找到內部碰撞要困難得多。
$$ 1 $$: 即一次處理消息,並以有限的位數匯總它到目前為止已處理的消息。