对称密码与哈希函数的安全性分析与统计测试
1. 2 - 键XCBC攻击算法
2 - 键XCBC存在一定的安全风险,攻击者可以通过特定的算法进行攻击,攻击算法主要分为预计算和伪造两个阶段:
- 预计算(Precalculation) :
1. 攻击者选择任意消息 $M(i)$($i = 1, · · · 2$),满足 $0 ≤ len(M(i)) < b$,并获取其有效的标签 $tag(i)$。
2. 生成填充消息 $\tilde{M}(1) = M(1) || 10i$,其中 $b | len(\tilde{M}(1))$ 且 $0 ≤ i < b$。
3. 对可能的 $K_a$ 进行穷举搜索,找到正确的 $(K_a, K_c)$ 对:
- 对于每个 $K_a$ 的候选值 $K(i) a$,设置 $K(i)_c = P {K(i) a}(M(1)) ⊕ tag(1)$。
- 如果 $P {K(i) a}(M(2)) ⊕ K(i)_c == tag(2)$,则跳出循环并设置 $(K’_a, K’_c) = (K(i)_a, K(i)_c)$。
- 伪造(Forgery) :
1. 生成消息 $M’$,满足 $0 ≤ len(M’) < b$ 且 $M’ ≠ M(i)$ 对于任意 $i$。
2. 设置 $\tilde{M}’ = M’ || 10i$,其中 $b | len(\tilde{M}’)$ 且 $0 ≤ i < b$。
3. 生成 $M’$ 的标签 $tag’ =