AWS Encryption SDK的正文经过身份验证的附加数据 (AAD) 参考 - AWS Encryption SDK

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

AWS Encryption SDK的正文经过身份验证的附加数据 (AAD) 参考

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

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

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

对于每个加密操作,您必须为 AES-GCM 算法提供其他经过身份验证的数据 (AAD)。这适用于帧和非帧正文数据。有关 AAD 及其在 Galois/Counter Mode (GCM) 中用法的更多信息,请参阅 Recommendations for Block Cipher Modes of Operations: Galois/Counter Mode (GCM) and GMAC

下表描述了组成正文 AAD 的字段。字节是按显示的顺序附加的。

正文 AAD 结构
字段 长度(字节)
消息 ID 16
正文 AAD 内容 变量。请参阅以下列表中的正文 AAD 内容
序列号 4
内容长度 8
消息 ID

在消息标头中设置的相同 消息 ID 值。

正文 AAD 内容

使用的正文数据类型确定的 UTF-8 编码值。

对于非帧数据,请使用 AWSKMSEncryptionClient Single Block 值。

对于帧数据中的常规帧,请使用 AWSKMSEncryptionClient Frame 值。

对于帧数据中的最终帧,请使用 AWSKMSEncryptionClient Final Frame 值。

序列号

解释为 32 位无符号整数的 4 字节值。

对于帧数据,这是帧序列号。

对于非帧数据,请使用值 1(在十六进制表示法中编码为 4 字节 00 00 00 01)。

内容长度

为加密算法提供的明文数据的长度(字节)。这是一个解释为 64 位无符号整数的 8 字节值。