我计划在gcm模式下使用aes加密来保护应用程序的静态数据。
我查阅了NIST关于GCM模式的建议。它提到iv的独特性是非常重要的。它说,如果(密钥,iv)对重复,对手可以构造密码文本伪造。
现在应用程序的设计是这样的:每当用户访问数据时,整个数据库都会被解密并加载到内存中。关闭应用程序时,数据将被加密并持久化到数据库中。
在这种情况下,生成和处理ivs的最佳方法是什么?

最佳答案

每次加密都需要一个新的nonce,即使是同一个字段,也不应该使用相同的nonce进行加密。最好从一个新的随机生成的iv开始每一次加密,并将这个随机预处理到密文中。如果你不这样做,你很可能泄露数据,甚至整个纯文本。

10-02 03:53
查看更多