3.2.1. Partially Implicit Nonces (部分隐式 Nonce)
3.2.1. Partially Implicit Nonces (部分隐式 Nonce)
某些情形下, 希望不传输或不存储完整 nonce, 而在解密前根据上下文信息重建该值。例如, 密文可按序存于磁盘, 只要解密方知晓 nonce 生成规则, 即可由位置推断某段密文的 nonce。将与密文一起存储或发送的 nonce 部分称为显式部分 (explicit part); 推断得到的部分称为隐式部分 (implicit part)。当 nonce 的一部分为隐式时, 推荐 (RECOMMENDED) 对上文格式作如下特化。Fixed 字段再分为两个子字段: Fixed-Common 与 Fixed-Distinct, 如图 2。若不同设备使用同一密钥加密, 每个不同设备必须 (MUST) 使用互异的 Fixed-Distinct 字段。Fixed-Common 字段对所有 nonce 相同。Fixed-Distinct 字段与 Counter 字段必须 (MUST) 位于 nonce 的显式部分。Fixed-Common 字段可以 (MAY) 位于隐式部分。这些约定保证 nonce 易于由显式数据重建。
+-------------------+--------------------+---------------+
| Fixed-Common | Fixed-Distinct | Counter |
+-------------------+--------------------+---------------+
<---- implicit ---> <------------ explicit ------------>
Figure 2: Partially implicit nonce format
部分隐式 nonce 格式的理由如下。该构造方式体现了当前最佳实践; GCM 封装安全载荷 (Encapsulating Security Payload, ESP) [RFC4106] 与 CCM ESP [RFC4309] 均采用此法, 其中 Fixed 字段包含 Salt 值, nonce 最低八个八位字节在 ESP 分组中显式携带。在 GCM ESP 中, Fixed 字段长度至少为四个八位字节以容纳 Salt。在 CCM ESP 中, 因同样原因 Fixed 字段长度至少为三个八位字节。若干计数器模式变体 (含 CTR ESP) 也采用该 nonce 生成方法。