Aes
使用 AES-CBC 作為流密碼是否存在安全風險?
我正在建構一個聊天應用程序,我想在他們打字時加密每個字元。我需要一個流密碼。我打算將 AES-CBC 模式與 HMAC 一起使用。如果我使用 AES-CBC 模式加密“0”以生成一次性填充塊,然後使用該一次性填充流通過 XOR 加密純文字,是否存在任何安全風險?
我的應用程序還有其他推薦的流密碼嗎?是否有任何流密碼具有內置身份驗證,因此我不必附加 HMAC 或身份驗證標籤?
*“AES-CBC 模式加密‘0’以生成一次性填充塊,然後使用該一次性填充流通過 XOR 加密純文字”*實際上是AES- OFB。
保密性很好,如果我們忽略實施問題並且它在完整性方面提供的保險比 AES-CBC 更少,那也很好。我支持 AES-GCM(沒有 HMAC)的建議,它解決了完整性問題,並且在現代開發環境中具有公平的可用性。
更新:這裡提出了一個很好的觀點,即AES-GCM-SIV不太容易發生 RNG 產生必要 IV 的災難性故障。當 AES-GCM-SIV 可用並且可以容忍兩次處理消息的需要時,這是一個很好的選擇。