对Grain - 128a的条件差分密码分析
1. 引言
Grain是一类轻量级流密码,具有硬件实现规模小的特点。它允许使用公开的初始向量(IV),通过依赖密钥和初始向量的初始化机制来生成密钥流的初始状态。Grain有两个版本:Grain v1使用80位密钥,Grain - 128a使用128位密钥,且后者内置了可选的认证支持。
Grain v1是面向硬件的eSTREAM流密码组合的决赛入围者。Grain - 128a基于其前身Grain - 128设计,但采用了略有不同的非线性函数,旨在增强其抵御针对Grain - 128已知攻击的能力。
Grain v1和Grain - 128a都基于非线性反馈移位寄存器(NFSR),具有相似的结构。条件差分密码分析技术可应用于此类结构,通过对密码的公共变量(即初始向量)施加条件来控制差分的传播,根据条件是否涉及秘密变量,可进行密钥恢复或区分攻击,该技术还可扩展到高阶差分密码分析。而动态立方体攻击与条件差分密码分析相关,但由于Grain v1更新函数的复杂度较高,这些攻击对其不适用。
本文旨在比较Grain - 128a和Grain - 128在高阶差分攻击(包括条件差分密码分析)方面的安全性。通过研究初始化机制中的单项式结构,发现动态立方体攻击对Grain - 128a无效,这是在选定IV场景下对Grain - 128a安全性的首次分析。
2. 背景知识
2.1 立方体攻击
对于大多数流密码,输出位可以用F2上的主多项式$p(k_1, \ldots, k_n, v_1, \ldots, v_m)$表示。该多项式可拆分为两个多项式之和:
$p(k