3.2. 推荐的 Nonce 构成 (Recommended Nonce Formation)
3.2. 推荐的 Nonce 构成 (Recommended Nonce Formation)
推荐采用下述方法构造 nonce. nonce 的格式如图 1 所示: 起始若干八位字节为 Fixed 字段, 末尾若干八位字节为 Counter 字段. 对每一固定密钥, 这两个字段的长度 (从而 nonce 总长度) 固定. 实现应该支持 Counter 字段长为四 (4) 个八位字节的 12 八位字节 nonce.
<----- variable ----> <----------- variable ----------->
+---------------------+----------------------------------+
| Fixed | Counter |
+---------------------+----------------------------------+
Figure 1: Recommended nonce format
当将 Counter 字段视为网络字节序无符号整数时, 连续 nonce 的 Counter 字段构成单调递增序列. 对给定加密设备生成的所有 nonce, Counter 字段的长度必须保持不变. Counter 部分对第一个 nonce 应该等于零, 每生成下一个 nonce 递增一. 但是, 若方便, 可以跳过某个 Counter 值而不使用. 例如, 应用可选择跳过初始 Counter=0, 将首个 nonce 的 Counter 设为 1. 因此, 当 Counter 字段长为 C 个八位字节时, 至多可生成 2^(8*C) 个 nonce.
对给定加密设备生成的所有 nonce, Fixed 字段必须保持不变. 若不同设备使用同一密钥加密, 则每个不同设备必须使用互异的 Fixed 字段, 以保证 nonce 唯一. 因此, 当 Fixed 字段长为 F 个八位字节时, 至多可有 2^(8*F) 个不同加密方共享同一密钥.