Authentication
流密碼的認證加密模式?
分組密碼具有 GCM 或 OCB 等模式,它們結合原語來提供身份驗證和加密。
流密碼是否有類似的結構,它只使用一個加密原語——實際的流密碼(或密鑰流)來提供身份驗證和加密?
對於流密碼,類似 OCB 的模式似乎是不可能的。它與密鑰排列的概念緊密耦合,即(可調整的)分組密碼。
許多經過身份驗證的加密實際上結合了兩個不同的原語。只是規範和 API 隻公開了組合。
本質上,這些異或密鑰流進入消息以對其進行加密(即它們使用同步流密碼),然後使用 MAC 驗證密文。他們經常使用部分密鑰流作為 MAC 的一次性密鑰。
- AES-GCM是通過將稱為 GHash 的多項式一次性 MAC 與流密碼 AES-CTR 相結合而建構的。
雖然 AES 本身是一種分組密碼,但 AES-CTR 的行為類似於流密碼。GCM 不會以阻止使用流密碼的方式使用 AES。
- Salsa20-Poly1305是通過將稱為 Poly1305 的多項式一次性 MAC 與流密碼 Salsa 相結合而建構的。
- Poly1305-AES是通過將稱為 Poly1305 的多項式一次性 MAC 與流密碼 AES-CTR 相結合而建構的。
然後有一些流密碼無需單獨的原語即可提供身份驗證。這些結構不是同步流密碼,不能與一次性密碼或普通密鑰流一起使用。
延伸到最佳答案
ACORN(輕量級認證密碼)是一種基於流的 AE 方案,是 CAESAR 的決賽入圍者之一。它在硬體方面優於 AES-GCM 模式,尤其是在受限環境(資源和能源消耗)和軟體(小程式碼量)方面。