跳到主要内容

3.4. Example Usage (使用示例)

3.4. Example Usage (使用示例)

要使用 AEAD 算法, 应用必须规定加密算法各输入如何由应用数据定义, 以及密文与 nonce 如何传递。最清晰的做法是: 先用构成各输入的数据分别描述每个输入, 再用 AEAD 加密操作的输出描述应用数据格式。

例如, AES-GCM ESP [RFC4106] 可表述如下。AEAD 输入为:

P = RestOfPayloadData || TFCpadding || Padding || PadLength ||
NextHeader

N = Salt || IV

A = SPI || SequenceNumber

其中符号 "||" 表示拼接, 字段 RestOfPayloadData, TFCpadding, Padding, PadLength, NextHeader, SPI, SequenceNumber 的定义见 [RFC4303], 字段 Salt 与 IV 的定义见 [RFC4106]。RestOfPayloadData 字段仅包含由 NextHeader 字段所描述类型的明文数据, 不含其他数据。(回顾: PayloadData 字段同时包含 IV 与 RestOfPayloadData; 图示见 [RFC4303] 图 2。)

ESP 分组格式可写为:

ESP = SPI || SequenceNumber || IV || C

其中 C 为 AEAD 密文 (本例中包含认证标签)。请注意, 此处未描述 ESP 扩展序号 (Extended Sequence Number) 的用法。