密码分析中的算法效率与攻击策略研究
1. 密钥字节排名与组合算法的效率测试
为了测试密钥字节排名和组合算法的效率,研究人员比较了多种策略,这些策略由以下三种战术组合而成:
1. 是否使用密钥字节算法。若不使用,密钥字节候选值将按照未观察到的值的顺序进行测试。
2. 是否获取密文直到直方图填满(即所有可能的值都被观察到)。若不要求直方图填满,则使用之前讨论过的更好策略,即仅使用三个阶段来限制候选值和阶段的数量。
3. 是否使用组合算法。
这三种战术的组合产生了 (2^3 = 8) 种可能的策略。然而,其中有 (2^2 = 4) 种策略,在获取足够的加密数据以填满经验直方图的情况下,会产生相同的结果。因为在这种情况下,只有一个密钥字节候选值,测试所有候选值与仅测试一个候选值是相同的。而且,出于同样的原因,使用密钥字节排名算法与否必然会得到相同的结果。因此,这 4 种策略可简化为 1 种,最终只剩下 5 种策略。
进一步发现,如果不使用密钥字节排名算法且不确保直方图填满,那么成功率与是否使用组合算法无关。这表明了密钥字节排名的重要性,因为组合算法依赖于密钥字节排名的结果。
最终剩下的四种策略如下:
- 策略 1:使用密钥字节排名算法;不要求填满直方图;使用组合算法。
- 策略 2:使用密钥字节排名算法;不要求填满直方图;不使用组合算法。
- 策略 3:不使用密钥字节排名算法;不要求填满直方图。
- 策略 4:要求填满直方图。据了解,这是 Zhang 等人使用的策略。
1.1 策略成功率分析
通过对这四种策略进行 1000 次尝试,得到了它们的成功率。结果