跳到主要内容

3.2. Recommended Nonce Formation (推荐的 Nonce 构成)

推荐 (RECOMMENDED) 采用下述方法构造 nonce。nonce 的格式如图 1 所示: 起始若干八位字节为 Fixed 字段, 末尾若干八位字节为 Counter 字段。对每一固定密钥, 这两个字段的长度 (从而 nonce 总长度) 固定。实现应该 (SHOULD) 支持 Counter 字段长为四 (4) 个八位字节的 12 八位字节 nonce。

   <----- variable ----> <----------- variable ----------->
+---------------------+----------------------------------+
| Fixed | Counter |
+---------------------+----------------------------------+

Figure 1: Recommended nonce format

当将 Counter 字段视为网络字节序无符号整数时, 连续 nonce 的 Counter 字段构成单调递增序列。对给定加密设备生成的所有 nonce, Counter 字段的长度必须 (MUST) 保持不变。Counter 部分对第一个 nonce 应该 (SHOULD) 等于零, 每生成下一个 nonce 递增一。但是, 若方便, 可以 (MAY) 跳过某个 Counter 值而不使用。例如, 应用可选择跳过初始 Counter=0, 将首个 nonce 的 Counter 设为 1。因此, 当 Counter 字段长为 C 个八位字节时, 至多可生成 2^(8*C) 个 nonce。

对给定加密设备生成的所有 nonce, Fixed 字段必须 (MUST) 保持不变。若不同设备使用同一密钥加密, 则每个不同设备必须 (MUST) 使用互异的 Fixed 字段, 以保证 nonce 唯一。因此, 当 Fixed 字段长为 F 个八位字节时, 至多可有 2^(8*F) 个不同加密方共享同一密钥。