Grain v1差分密码分析与代数攻击样本选择研究
一、Grain v1差分密码分析
- 差分引擎ββ - GrainKSA
- 原理 :对于Grain v1的差分密码分析,引入了差分引擎ββ - GrainKSA。其中,rt记录线性部分的差分传播,Ωt记录非线性函数g的差分。vt + n的定义lin(rt, Ωt, πt)捕获了xt + n和xβt + n之间的差异。
- πt的定义及异常处理 :πt的原始定义有时无法准确捕获zt和zβt之间的差异。例如,在引入第37位IV差分并运行β37 - GrainKSA时,在第30轮,根据Φ30和π30的原始计算,π30会被计算为2,但实际上z30和z3730是确定不等的。为避免这种情况,πt的定义修改为:
[
\pi_t =
\begin{cases}
1 & \text{如果}\Phi_t, \pi_t\text{出现异常}\
\text{lin}(\text{lin}(\Phi_t), 2 \cdot \text{OR}(\pi_t)) & \text{否则}
\end{cases}
]
- ββ - GrainKSA算法 :以下是ββ - GrainKSA的算法描述:
Input: Δ: An LFSR location