View a markdown version of this page

AWS Encryption SDK 初始化向量参考 - AWS Encryption SDK

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

AWS Encryption SDK 初始化向量参考

本页面提供了在您构建与 AWS Encryption SDK兼容的加密库时可供参考的信息。如果您不需要构建自己的兼容加密库,则可能不需要此信息。

要 AWS Encryption SDK 在支持的编程语言之一中使用,请参阅编程语言

有关定义适当 AWS Encryption SDK 实现要素的规范,请参阅中的AWS Encryption SDK 规范 GitHub。

AWS Encryption SDK 提供所有支持的算法套件所需的初始化向量 (IV)。该开发工具包使用帧序列号构造一个 IV,以便同一消息中的两个帧不能具有相同的 IV。

每个 96 位(12 字节)IV 是通过两个按以下顺序串联的 big-endian 字节数组构造的:

  • 64 位:0(保留以供将来使用)

  • 32 位:帧序列号。对于标头身份验证标签,该值全部为零。

在引入数据密钥缓存之前, AWS Encryption SDK 始终使用新数据密钥加密每条消息,并随机生成所有 IV。随机生成的 IV 从加密角度上是安全的,因为从不重用数据密钥。在该开发工具包引入数据密钥缓存(有意重用数据密钥)后,我们更改了该开发工具包生成 IV 的方式。

通过使用无法在消息中重复的确定性 IV,可以显著增加可根据单个数据密钥安全执行的调用次数。此外,缓存的数据密钥始终使用具有密钥派生函数的算法套件。使用具有伪随机密钥派生函数的确定性 IV 从数据密钥派生加密密钥,可以在不超过加密边界的情况下加密 2^32 条消息。 AWS Encryption SDK