Mac
poly1305可以用作糾錯碼嗎?
給定消息 $ m $ 大小的 $ n $ , 關鍵 $ k $ , 和一個消息驗證碼 $ mac = poly1305(m, k) $ 知道損壞消息、mac 程式碼和密鑰的人可以糾正(或至少檢測到)消息的最小位翻轉量是多少?
消息上可以糾正的最小位翻轉量是多少
零位,Poly1305 不提供糾錯(至少 Bernstein 沒有在原始論文中聲明該屬性)。
(或至少檢測到)被知道損壞消息、mac 程式碼和密鑰的人?
已經可以檢測到一個位翻轉,它將以 0.5 的機會更改生成的雜湊的所有位。
當然,數據確實產生正確雜湊的可能性總是微不足道的(1 in $ 2^{128} $ 對於完整的 MAC 輸出)。但是,這不取決於翻轉了多少位。
通常,建議將 MAC 計算的完整輸出保留為身份驗證標籤。
如果您還想針對更改進行糾錯,您可以在消息 + 身份驗證標籤上包含一個糾錯程式碼塊。這樣,兩者都可以防止非惡意更改。或者您可以使用您自己的評論中指出的專用 MAC 算法。
就我個人而言,我沒有看到直接向Poly1305 計算添加糾錯功能的方法,但我不是說明這是否可能的最佳人選。