一种针对sm4密码轮函数输出的侧信道能量攻击方法

文档序号:8433553阅读:237来源:国知局
一种针对sm4密码轮函数输出的侧信道能量攻击方法
【技术领域】
[0001] 本发明设及密码算法分析检测领域,尤其设及一种针对SM4密码算法轮函数输出 的选择明文或密文侧信道能量分析攻击的方法。
【背景技术】
[0002] 随着信息和分析电路技术的发展,对硬件密码电子设备的破解不再单纯的停留在 协议和算法上,而是利用其处理数据的过程中泄露的信息进行破解。硬件密码电子设备在 处理信息的工程中存在能量、电磁、错误和时间等信息的泄露,利用该些泄露的信息对密码 电子设备进行攻击,就是所谓的侧信道攻击(Side化annelAttacks),侧信道攻击可分为 能量分析攻击、电磁攻击和错误攻击等,其中能量分析攻击因效率较高,成为侧信道的主要 手段。
[0003] 侧信道能量分析攻击是通过采集加密巧片等硬件密码电子设备在进行加、解密 或签名等操作时产生的能量消耗,利用密码学和统计学原理等,分析和破译密钥信息的一 种攻击方式。侧信道能量分析攻击又分为简单能量分析攻击(SimplePowerAnalysis, SPA)、差分能量分析攻击(DifferentialPowerAnalysis,DPA)和相关性能量分析攻击 (CorrelationPowerAnalysis,CPA)。
[0004] 在侧信道能量分析攻击中,CPA和DPA相比SPA具有更强的攻击性,所W能量分析 攻击中比较常用的是CPA和DPA。
[000引 其中,DPA攻击的过程如下; (1)随机选择N组不相同明文或密文Mi(iG[1,闲)进行加/解密运算,采集每组明文 进行加密运算时设备产生的能量曲线Ti(t),tG(1,…,k},其中k为能量轨迹的采样点 数。
[0006](2)选择密钥Ki(1GQ,Q为密钥空间),计算在Mi和K1条件下,密码算法进行 加密运算时在被攻击点产生的中间值町,1。
[0007] 做根据中间值Di,i确定选择函数F(Mi,Ki),根据选择函数将Ti(t)分为两个子集 S。和Si,定义式如下; S〇=化(t) |F(Mi,Ki)=0} Si=化(t) |F(Mi,Ki)=l} (4)计算每个采样点上两个子集的能量平均之差,如
【主权项】
1. 针对SM4密码算法轮函数输出的选择明文或密文侧信道能量攻击的方法,其特征在 于,所述方法包括以下步骤: 51 :选择明文或密文输入,使(Xi+1?Xi+2?X i+3)的其中一个字节为随机数,其它字节为 相同的固定数,采用侧信道能量攻击方法首先攻击出轮子密钥的字节和线性变换中的固定 数,然后攻击出线性变换中的其它所有固定数,将攻击出的数据,进行相应的运算,即可获 得完整的轮子密钥rki,其中i=0, 1,2, 3 ; 52 :根据所述前四轮轮子密钥,通过密钥扩展算法,逆向计算出初始 密钥。
2. 根据权利要求1所述的针对SM4密码算法轮函数输出的选择明文或密文侧信道能量 攻击的方法,其特征在于,所述Sl具体包括以下步骤: 511 :攻击加/解密的第一轮,初始化i=0 ; 512 :选择明文或密文输入,使(Xi+1 ? X i+2 ? X i+3)的第j个字节为随机数,表示为R,其 它字节为相同的固定数,表示为D,其中j e [〇,3]; S13:采用侧信道能量攻击方法首先攻击出轮子密钥的字节rku,和线性变换中的固定 数maski;』,然后攻击出线性变换中的其它固定字节maskUj+1)m()d4、mask Uj+2)m()d4和mask Uj+a mod4 * 514 :根据所述 rki;」、Iiiaski,」、Iiiaski, (j+1)Md4、Iiiaski,(神一和 mask i,(j+3)Md4计算出轮子密 钥 Tki; 515 :使i自增1,返回步骤S12继续攻击下一轮,直到得出加密运算或者解密运算的前 四轮的轮子密钥rk Q、rkp味和rk 3。
3. 所述S13中如果采用CPA攻击方法实现侧信道能量攻击,包括以下步骤: 51311 :采集SM4密码设备上加/解密时的能量曲线表示为Tn(t); 51312 :初始化k=j,攻击次数z=0 ; 51313 :根据汉明重量模型或汉明距离模型的攻击方式以及z的数值,取rki;」和mask i;」 或maski;k的所有可能值,并由此确定与攻击方式一致的基于汉明重量模型或汉明距离模型 的汉明函数h n,A,mask;
十算Tn (t)和 hn,rk,mask 的相关性 Ptrk'TOask ; 51315 :根据z数值和S1314计算得到的最大相关系数确定攻击结果rki; j和mask i; j或 Hiaski, k; 51316 :z=z+l,k=(k+l)mod4,如果z < 4,跳转到步骤S1313继续攻击(循环执行4次), 否则停止攻击。
4. 所述S13中采用DPA攻击方法实现侧信道能量攻击,包括以下步骤: 51321 :采集SM4密码设备上加/解密时的能量曲线表示为Tn(t); 51322 :初始化k=j,攻击次数z=0 ; 51323 :根据汉明重量模型或汉明距离模型的攻击方式以及z的数值,取rki;」和mask i;』 或maski;k的所有可能值,并由此确定与攻击方式一致的基于汉明重量模型或汉明距离模型 的汉明函数hn,A,mask; 51324 :确定DPA选择函数为
51325 :根据选择函数将Tn(t)分为两个子集\和S i,定义式如下所示: S0= {Tjt) IF(MilK1)=Oh S1=(TiU) IF(MilK1)=Ij ; 51326 :根据
计算每个采样点上两个子集的能量平均 之差;根据不同的z值,在均值差S中出现一个最大尖峰时对应不同的rki;j和mask i;j或 maski>k即为实际的攻击结果; 51327 :z=z+l,k=(k+l)mod4,如果z < 4,,跳转到步骤S1323继续攻击(循环执行4次), 否则停止攻击。
【专利摘要】本发明公开了一种针对SM4密码算法轮函数输出的选择明文或密文侧信道能量攻击的方法,包括以下步骤:S1:选择明文或密文输入,使(Xi+1⊕Xi+2⊕Xi+3)的其中一个字节为随机数,其它字节为相同的固定数,采用侧信道能量攻击方法首先攻击出轮子密钥的字节和线性变换中的固定数,然后攻击出线性变换中的其它所有固定数,将攻击出的数据,进行相应的运算,即可获得完整的轮子密钥rki,其中i=0,1,2,3;S2:根据所述前四轮轮子密钥rk0、rk1、rk2和rk3,通过密钥扩展算法,逆向计算出初始密钥。采用上述分析方法可以降低攻击采集曲线次数和选择明文次数,增强了分析的灵活性、攻击效率和成功率。
【IPC分类】H04L9-06
【公开号】CN104753665
【申请号】CN201510120694
【发明人】杜之波, 吴震, 饶金涛, 王敏, 李大为, 罗鹏
【申请人】成都信息工程学院, 成都芯安尤里卡信息科技有限公司, 国家密码管理局商用密码检测中心
【公开日】2015年7月1日
【申请日】2015年3月19日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1