本发明涉及芯片安全攻击检测领域。本发明提出了针对sm4能量分析攻击和差分分析联合攻击的方法,攻击时选择一定约束条件的明文输入,利用能量分析攻击的原理攻击sm4算法的第二轮和第四轮,得到敏感固定的中间值,然后利用sm4算法s盒差分分析原理,得到前4轮的轮密钥,最终恢复原始128bit密钥,扩展了sm4算法的攻击检测分析的方法。
背景技术
sm4密码算法包括加解密算法和密钥扩展算法,加解密算法与密钥扩展算法都采用32轮非线性迭代结构,明密文、初始密钥的分组长度均为128bit.
(1)sm4加解密算法
sm4算法采用非线性迭代结构,以字(表示为)
轮变换t:
设输入为a,输出为b,
(2)sm4密钥扩展算法
sm4加解密算法的轮密钥由原始密钥通过密钥扩展算法生成,如图2所示。设原始128bit密钥mk=(mk0,mk1,mk2,mk3),
1)首先计算
2)然后计算对于i=0,1,2..31,
fk=(fk0,fk1,fk2,fk3),为系统参数
(3)能量分析攻击分析
在能量分析攻击中,相关性能量分析攻击是目前应用最为广泛的攻击方式之一。2004年,ericbrier等提出了相关性攻击分析,相关性攻击分析主要是利用统计学中的皮尔逊相关系数ρ,具体攻击流程如下:
1)随机输入n组明文信息mi,i=1,2,3...n,采集在每组明文输入密码算法在运行过程泄露的功耗信息pi,i=1,2,3...n;
2)通过猜测密钥ki,ki∈ω,ω为密钥空间,利用假设的密钥产生相应的假设中间值,根据假设中间值的汉明重量或者汉明距离,计算得到假设的能量消耗,记为wi,j
3)根据皮尔逊相关系数计算pi和wi,j的相关系数,相关系数最大时对应的密钥即为正确的密钥。
(4)sm4算法s盒差分分析原理
现代分组密码大都采用s查表操作来提高密码算法的非线性度,但恰是s盒差分特性,使s盒面临着差分分析的风险。对于sm4算法而言,令
同时令δai=δa0,j,δa1,j,δa2,j,δa3,j,),i=1,2,…32为第i轮s盒的输入差分,δbi=(δb0,j,δb1,j,δb2,j,δb3,j,)i=1,2,…32为第i轮s盒的输出差分,δci=(δb0,j,δb1,j,δb2,j,δb3,j,)(i=1,2,3…32)为第i轮l变换的输出差分,令l的逆变换为l-1,则有δbi=l-1(δci)。定义一个集合
目前针对sm4攻击的方法主要是选择明文进行能量分析攻击,选择所在的轮数较多,并且选择的攻击点是线性运算,不利于进行攻击分析。
技术实现要素:
为了克服现有技术的上述缺点,本发明提出了一种针对sm4算法的联合攻击方法。
本发明解决其技术问题所采用的技术方案是:一种针对sm4算法的联合攻击方法,包括如下步骤:
步骤一、初始化i=0;
步骤二、选择明文输入
步骤三、重新选择一组输入
步骤四、重新选择一组输入
步骤五、利用s盒差分分析恢复出rki和rki+1;
步骤六、判断i是否小于2:若是,则令i=i+2,然后进入步骤二;若否,则进入步骤七;
步骤七、利用前4轮轮密钥恢复出原始密钥。
与现有技术相比,本发明的积极效果是:
本发明将能量分析攻击和差分分析攻击相结合,提出了针对sm4算法的能量分析和差分分析的联合攻击方法,该方法选择s盒非线性输出作为攻击中间值,通过选择明文实现跨轮能量分析攻击,攻击第二轮和第四轮的敏感中间值,然后通过s盒的差分分析可以快速的计算出轮密钥,提高攻击效率。此外,本发明方法还可以扩展到所有的对称密码算法的联合攻击中。
附图说明
本发明将通过例子并参照附图的方式说明,其中:
图1为sm4加密算法的示意图;
图2为sm4密钥扩展算法的示意图;
图3为本发明的联合攻击的流程图。
具体实施方式
本发明提出了跨轮攻击和差分分析相结合的方法,该方法只需对第1轮和第3轮进行选择明文输入,其基本思想如下:
设x4为第一轮选择输入为a1=(a0,1,a1,1,a2,1,a3,1,)时轮输出的结果,此时选择输入的约束条件为:
则有:
此时t(a1)为未知固定值,x0为随机值,令对应的第二轮输入设为a2,s盒输出为b2,则有
令
key1为固定值,因此可以选择key1为能量分析攻击目标,此时选择攻击的中间值为第二轮的s盒非线性变换的输出。在攻击出key1之后,由于key1中存在两个未知数,是无法得出轮密钥的。
重新选择明文,此时的约束条件为:
则有:
此时t(a′1)为未知固定值,x′0为随机值,令对应的第二轮输入设为a′2,s盒输出为b′2,则有
令
重新选择明文,此时的约束条件为:
则有:
此时t(a″1)为未知固定值,x″0为随机值,令对应的第二轮输入设为a″2,s盒输出为b″2,则有
令
选择产生的敏感中间值进行攻击key1″,能量分析攻击出key1″。
由上面的分析可以得出,
最后由前4轮的轮密钥和密钥扩展算法反推出原始的128bit密钥。具体如下: