Encryption
CBC模式加密的替代方案?
鑑於 CBC 模式加密容易受到填充預言機攻擊,下一個最佳選擇是什麼?
a) 在 API 方案中包含雜湊檢查,驗證雜湊,然後繼續進行 CBC。如果雜湊檢查失敗,則返回指示相同的錯誤。例如:包括作為消息的一部分需要驗證的 HMACSHA256(AES256(plaintext)) 校驗和。
b) 實現一個自定義 CBC 模式,在每個加密塊的末尾(在填充行上)包含一個 hmac/等效校驗和。例如:在“AES/CBC/PKCS5Padding/HMACSHA256”行上創建自己的方案。NIST / W3C 是否有任何計劃來納入這樣的計劃?
c) 切換到 GCM 模式加密。就加密強度而言,它與 CBC 相比如何?
GCM 是一個很好的替代方案,它提供內置的消息身份驗證,因此加密的消息不能被攻擊者操縱。
加密本身基於 CTR 模式,該模式易於理解並且在正確使用時是安全的。
需要注意的主要是 nonce 重用的嚴重性,用相同的鍵重用一個計數器值是災難性的,確保你正確使用 GCM,你會沒事的。