Ctr
如果我的消息不重複,我可以使用 MAC 作為 CTR 模式隨機數嗎?
我為具有限制性低 MTU 的網路協議設計加密。我的目標是 128 位強度;AES-128-CCM 將為每個數據包添加 128 個隨機數位和 128 個 MAC 位。將 MTU 減少 32 個字節是不可接受的,我必須想出一個增加較小成本的解決方案。
協議消息在重新加密之間不會重複,因為它們包含足夠大的序列號(我可以指定重新加密的頻率)。
**問題:**我可以使用數據包 MAC 作為 CTR 模式加密的 nonce 嗎?
AFAIK 對“計數器”值的唯一要求是它不會針對相同的密鑰重複,並且由消息唯一性保證(假設 MAC 不會發生衝突)。這樣的“重用”將在每個數據包中為我節省 16 個 nonce 字節。
是的,但是要使用精確指定的已知算法,請查看SIV 操作模式。“SIV”代表合成 IV。IV 是初始化向量,它是隨機數(或隨機數和初始計數器值,取決於定義)。
不出所料,它依賴於 CTR 模式的機密性和 CMAC 的身份驗證標籤,它兼作 IV - 很像 CCM。
CCM 的問題是您會遇到雞/蛋問題,因為 MAC 是在協議結束時計算的。儘管您可以以不同的方式實現協議,但我建議您改用久經考驗的模式。
除此之外,至少在我看來,CCM 模式是一種可怕的實施模式。
SIV 確實存在它是一個完整的兩遍協議的問題。您必須對每個數據包進行兩次加密:一次用於創建 SIV,一次用於加密。由於您已經準備好 IV,因此解密更容易,因此您至少可以將兩個通道結合起來。