Authenticated-Encryption
NORX 雙工填充
Keccak作者定義的 MonkeyDuplex 結構在每個雙工塊中都有填充。
為什麼在NORX中只填充最後一個雙工塊?
是因為 NORX 有域分離,還是僅僅因為 Keccak 的作者在海綿頂部定義了雙工,實際上並不需要它,或者……?
NORX 中的 MonkeyDuplex 沒有每個雙工的填充,因為由於域分離它不需要。由於明文混合到密文中,它以海綿速率混合,就像 Keccak 在正常海綿操作期間所做的那樣。這使得它在給定的安全級別上更有效。
標準的 MonkeyDuplex 結構沒有域分離,但是當 NORX 使用時更接近 SpongeWrap (MonkeySpongeWrap?),它使用每個規範的固定速率和最後一個明文塊的不同域常數,因此沒有輸入的機會填充塊與未填充塊的衝突,這就是為什麼在沒有域分離的情況下對標準 MonkeyDuplex 進行填充的原因。
如果您查看NORX (PDF) 的規範,您會發現這實際上是不正確的,並且第一個尾部塊可能與最後一個純文字塊發生衝突。但這不是安全問題,因為在這個階段沒有數據輸出,在標籤生成之前還有一個最終的域分離。