密码攻击成功率分析
1. 攻击成功率概述
在密码学领域,攻击成功率是衡量攻击方法有效性的重要指标。这里主要探讨两种攻击方式的成功率,分别是Kara攻击和改进攻击。攻击成功率指的是在所有密钥恢复尝试中,成功恢复密钥的次数占比。具体而言,对于Kara攻击,其成功率是在完整GOST加密算法存在形如 (x, x) 的不动点时,函数 FK 也存在形如 (x, x) 不动点的概率;对于改进攻击,成功率是在完整GOST加密算法的 (x, x) 和 (y, y) 为不动点(x ≠ y)时,满足事件1或事件2的 ((x, x), (y, y)) 对出现的概率。
2. 对完整GOST的首次反射攻击成功率
2.1 攻击原理及成功率定义
在对完整GOST的攻击中,如果函数 FK[1, 8] 存在输入前后半部分相等的形如 (x, x) 的不动点,那么它一定是加密函数 EK 的不动点。但攻击是基于相反的假设,即当 EK 存在不动点时,假设它(可能)也是 FK[1, 8] 的不动点。
设 UF 是 FK[1, 8] 形如 (x, x) 的不动点集合,UE 是 EK 形如 (x, x) 的不动点集合。攻击的成功率 Pr(S) 定义为在 UE 非空的条件下,UF 非空的条件概率,即 Pr(S) = Pr(UF ≠ ∅|UE ≠ ∅)。
2.2 成功率计算定理
定理2 :假设当函数 FK 不存在形如 (x, x) 的不动点时,加密函数 EK 表现为随机行为。那么在 UE 非空的条件下,UF 非空的概率为:
[Pr(S) = Pr(UF \neq \emptyset|UE \ne