2.3. Payload Data (载荷数据)
Payload Data 是一个可变长度字段, 包含由 Next Header 字段描述的数据 (来自原始 IP 报文)。Payload Data 字段是强制性的, 长度为整数字节。如果用于加密载荷的算法需要加密同步数据, 例如 Initialization Vector (IV, 初始化向量), 则此数据在 Payload 字段中显式携带, 但它在 ESP 中不作为单独的字段列出, 即显式 IV 的传输对 ESP 是不可见的。(参见图 2。) 任何需要这种显式的每报文同步数据的加密算法必须指示此类数据的长度, 任何结构以及此数据的位置, 作为指定算法如何与 ESP 一起使用的 RFC 的一部分。(通常, IV 紧接在密文之前。参见图 2。) 如果此类同步数据是隐式的, 则派生数据的算法必须是算法定义 RFC 的一部分。(如果包含在 Payload 字段中, 加密同步数据, 例如 Initialization Vector (IV), 通常本身不被加密 (参见表 1 和表 2), 尽管它有时被称为密文的一部分。)
请注意, 下一层协议首部的开始必须相对于 ESP 首部的开始按如下方式对齐。对于 IPv4, 此对齐是 4 字节的倍数。对于 IPv6, 对齐是 8 字节的倍数。
关于在存在 IV 的情况下确保 (真实) 密文的对齐, 请注意以下几点:
-
对于某些基于 IV 的操作模式, 接收方将 IV 视为密文的开始, 直接将其馈送到算法中。在这些模式中, (真实) 密文开始的对齐在接收方不是问题。
-
在某些情况下, 接收方从密文中单独读取 IV。在这些情况下, 算法规范必须说明如何实现 (真实) 密文的对齐。