Poly1305 是否有像 GCM/GHASH 這樣的弱鍵?
與 GCM 一起使用時,一些分組密碼密鑰很弱;看到這個問題。這發生在乘數 $ H $ 由 key 決定的最終在一個小階子群中 $ \mathbb{F}_{2^{128}} $ .
Poly1305 的結構與 GHASH 非常相似。這是相同的想法:在一個塊中添加一個塊,然後在一個欄位中乘以一個鍵確定的常量。GHASH 使用 $ \mathbb{F}{2^{128}} $ (二進製欄位)和 Poly1305 使用 $ \mathbb{F}{2^{130}-5} $ (主要領域);其他差異很小。
Poly1305 是否存在與弱鍵相同的問題?命令, $ 2^{130}-5-1 $ , 有因數 $ {2, 23, 32985101, 897064739519922787230182993783} $ .
可能有少數密鑰可以通過在數千萬塊長的經過身份驗證的消息中交換塊來檢測。還有平凡的零弱鍵和平凡的1鍵。
回想一下,Poly1305 MAC 添加劑的計算公式為 $$ \left(\sum_i c_i r^i\pmod{2^{130}-5}\right)\pmod{2^{128}} $$ 在哪裡 $ c_i $ 是對消息塊的輕微模仿,並且 $ r $ 是 MAC 密鑰。顯然,如果 $ r=0 $ 那麼添加劑總是為零。這很容易檢測,因為對消息的任何修改仍將進行身份驗證。如果 $ r=1 $ , 交換任何 $ c_i $ 和 $ c_j $ 不會改變添加劑。交換兩個消息塊將實現這一點,前提是最終的消息塊都不是。
同樣,如果 $ r\equiv -1\pmod{2^{130}-5} $ (對應於 2 階的子群),然後交換 $ c_i $ 和 $ c_j $ 在哪裡 $ i $ 和 $ j $ 具有相同的奇偶性不會改變加法交換塊 $ m_i $ 和 $ m_j $ 將實現這一點,前提是兩者都不是最終塊。然而這 $ r $ 不能作為 Poly1305 密鑰出現,因為它的二進製表達式是 11111111….11010 並且 Poly1305 密鑰在位置 28、29、30、31、32、33、60、61、62、63、64 中必須有零位, 65、66、92、93、94、95、96、97、124、125、126、127、128 和 129(請注意,這是大約 $ 2^{-24} $ 元素mod的條件 $ 2^{130}-5 $ ).
寫作 $ p=2^{130}-5 $ 並註意到 2 是原始根 mod $ p $ , 我們寫 $ \omega_{23}\equiv 2^{(p-1)/23}\pmod p $ 和權力 $ \omega_{23} $ 都是為了 23. 交換 $ c_i $ 和 $ c_j $ 在哪 $ i $ 和 $ j $ 是全等的 mod 23 不會改變添加劑時 $ r\equiv\omega_{23}^k $ 對於一些 $ k $ 給出另外 23 個可能的弱鍵。但是,這些密鑰中沒有一個可能滿足以下位條件 $ r $ (我沒有檢查)。46 階的另外 23 個鍵也是如此。
但是,如果我們寫 $ \omega_{32985101}\equiv 2^{(p-1)/32985101}\pmod p $ , 交換 $ c_i $ 和 $ c_j $ 在哪 $ i $ 和 $ j $ 是全等的 mod 32985101 不會改變添加劑 $ r\equiv\omega_{32985101}^k $ 對於一些 $ k $ 這是一個更大的潛在弱密鑰家族,其中有六個可能會匹配 $ r $ (我沒有完成搜尋,但它很簡單)。結束的消息 $ 2^{25} $ 塊並非不可想像。
可能還有更多與 order 元素對應的鍵 $ 2\times 32985101 $ , $ 23\times 32985101 $ 和 $ 46\times 32985101 $ . 897064739519922787230182993783 劃分順序的元素理論上也對應其他弱鍵,但消息長度約為 $ 2^{100} $ 塊是不切實際的,應該出於其他原因避免使用。