本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWS Encryption SDK 初始化向量参考
本页面提供了在您构建与 AWS Encryption SDK兼容的加密库时可供参考的信息。如果您不需要构建自己的兼容加密库,则可能不需要此信息。 要 AWS Encryption SDK 在支持的编程语言之一中使用,请参阅编程语言。 有关定义适当 AWS Encryption SDK 实现要素的规范,请参阅中的AWS Encryption SDK 规范 |
AWS Encryption SDK 提供所有支持的算法套件所需的初始化向量
每个 96 位(12 字节)IV 是通过两个按以下顺序串联的 big-endian 字节数组构造的:
-
64 位:0(保留以供将来使用)
-
32 位:帧序列号。对于标头身份验证标签,该值全部为零。
在引入数据密钥缓存之前, AWS Encryption SDK 总是使用新的数据密钥来加密每条消息,而且所有消息都是IVs随机生成的。随机生成的数据密钥IVs在密码学上是安全的,因为数据密钥从未被重复使用。当SDK引入数据密钥缓存(故意重复使用数据密钥)时,我们改变了SDK生成IVs方式。
使用不能在消息中重复的确定性IVs会显著增加在单个数据密钥下可以安全执行的调用次数。此外,缓存的数据密钥始终使用具有密钥派生函数