5. Calculation of the Hash (哈希计算)
5. Calculation of the Hash (哈希计算)
哈希计算使用 NSEC3 RDATA 字段中的三个: Hash Algorithm, Salt, 和 Iterations。
定义 H(x) 为使用 NSEC3 RR 选择的 Hash Algorithm 对 x 的哈希, k 为 Iterations 的数量, || 表示连接。然后定义:
IH(salt, x, 0) = H(x || salt), 和
IH(salt, x, k) = H(IH(salt, x, k-1) || salt), 如果 k > 0
那么所有者名称的计算哈希为
IH(salt, owner name, iterations),
其中所有者名称采用规范形式 (canonical form), 定义为:
所有者名称的线路格式 (wire format), 其中:
-
所有者名称完全展开 (没有 DNS 名称压缩) 并完全限定 (fully qualified);
-
所有大写 US-ASCII 字母替换为相应的小写 US-ASCII 字母;
-
如果所有者名称是通配符名称 (wildcard name), 则所有者名称采用其原始未展开形式, 包括 "*" 标签 (没有通配符替换);
此形式如 [RFC4034] 的 6.2 节所定义。
计算 Hash 的方法基于 [RFC2898]。