encryption - 初始化向量(四)——更新频率

标签 encryption cryptography encryption-symmetric

这是一个非常简单的问题,涉及初始化向量 (IV),当使用对称加密(例如 AES)和 CBC 时。

我的问题:IV 是否应该针对每个新的明文进行更改,还是为每个新 session 创建一个就足够了?

目前我使用 java 来实现我的实现和 Cipher 类,我注意到它确实第一次创建了一个新的 IV,但是同样的 IV 也用于后来的明文。

也许有一些关于这个主题的阅读资源?

谢谢:)

最佳答案

在 CBC 中,为了获得最大的安全性,IV 必须是不可预测的。

Should the IV change for each new plaintext or
does it suffice to create one for each new session?

我不太清楚你赋予“plaintext”和“session”的含义。

如果你的意思是每个 session 都有一个新的、新鲜的 key ,并且交换的数据被分成几部分然后加密,那么 CBC 通常会应用于整个片段链,这意味着密文 block block Pn-1 可以用作 block Pn 的 IV。因此,您在整个疗程中只需要一次静脉注入(inject)。

Perhaps there is some reading resources about this topic?

当然,NIST SP 800-38A , 第 6.2 节。

关于encryption - 初始化向量(四)——更新频率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11912582/

相关文章:

cryptography - 彩虹表作为大型素数分解的解决方案

c# - 加密 JWT 安全 token 支持的算法

ssl - 如何验证我的 TLS 服务器是否正在加密流量?

Java Cipher - AES 填充问题

assembly - 是否有 ARM 处理器支持片上硬件随机数生成器?

algorithm - 短消息公钥加密算法

c# - 这个 AesManaged 的​​包装器可以吗?

java - 如果我使用自己的 key ,为什么需要散列?

java - 如何在android中解析 "input must be under 256 bytes"?

c - openssl 文件解密错误 bad decrypt。错误的 key 或不兼容的 Openssl 版本?