一种针对sm4密码算法轮输出的模板攻击方法

文档序号:8546049阅读:292来源:国知局
一种针对sm4密码算法轮输出的模板攻击方法
【技术领域】
[0001] 本发明涉及密码算法分析检测领域,尤其涉及一种针对SM4密码算法轮输出的模 板攻击的方法。
【背景技术】
[0002] 随着信息和分析电路技术的发展,对硬件密码电子设备的破解不再单纯的停留在 协议和算法上,而是从其处理数据的过程中泄露的信息入手,进行破解。硬件密码电子设备 在处理信息的工程中存在能量、电磁、错误和时间等信息的泄露,利用这些泄露的信息对密 码电子设备进行攻击,就是所谓的侧信道攻击(SideChannelAttacks),侧信道攻击可分 为能量分析攻击、电磁攻击和错误攻击等,其中能量分析攻击因效率较高,成为侧信道的主 要手段。
[0003] 模板攻击是基于密码芯片能量消耗与正在处理数据的相关性的基础上实施的。其 攻击过程通常包括两个阶段:第一个阶段是对所有可能猜测密钥的能量消耗特征进行刻 画;第二个阶段是采集被攻击密码芯片上的侧信道信息,计算其与所刻画的能量消耗特征 的匹配程度,即可得到有关正确密钥的信息。由于模板攻击非常有效、实现简单且无需大量 资源,所以目前是侧信道分析攻击研宄领域的重点之一。
[0004] 支持向量机是建立在统计学习理论和结构风险最小化的原理基础上的一种极其 学习的方法。支持向量机是数据挖掘中的一项新技术,是借助于最优化方法解决机器学 习的问题的新工具,它由Vapnik等提出的一种新的机器学习方法,它以结构风险最小为 原则,它本质上是求解凸二次规划问题,在解决小样本、非线性和高维模式识别问题中有 较大优势。当样本为两类可分时,其基本思想是对于样本集(Xi, ,i=l, 2,…,n,xGRd, ye{-1,+1},通过非线性的核函数(}>把样本从原始的数据空间映射到高维的特征空间Q, 在高维的特征空间上构造一个最优的分类超平面,使得分类的数据被超平面正确的分开。 通过引入满足Mercer,条件的核函数K(Xi,yi),求解二次规划的问题:
【主权项】
1. 针对SM4密码算法轮输出的模板攻击方法,以SM4算法的轮输出作为模板攻击的目 标,其特征在于所述方法包括以下步骤: 51 :选择性的输入明文或者密文和随机已知密钥,建立轮输出Xi+4(i=0, 1,2, 3)为运算 中间值的汉明重量/汉明距离的模板,每轮轮输出共建立33个模板; 52 :分别将每轮的33个模板建立对应的33个支持向量机分类器,针对每一个模板建立 分类器时,当前模板为正类,其余的模板为负类;通过选择性明文或密文的输入,建立未知 密钥的模板T ;通过选择性的输入明文或密文,使当前轮轮输入Xi的第j (0 < j < 31)比特 得到更新,建立新的未知模板Τ',利用分类器分别对模板T和Τ'进行匹配,得出其对应的汉 明重量或者汉明距离分别为HW和服',比较HW和HT的大小,即可得出当前轮密钥的第j 比特,重复上面的过程,直到恢复出前4轮的字密钥; 53 :在S2的基础上,得出前四轮的字密钥,运用SM4密钥扩展算法逆运算得到未知的 SM4的密钥。
2. 前述Sl具体包括以下步骤: 511 :选择SM4加/解密轮输出为模板攻击的攻击点; 512 :轮数 i=0 ; 513 :输入明文或者密文和随机已知密钥,选择轮输出的Xi+4的汉明重量或者汉明距离 建立模板,如果选择汉明重量,则X i+4的汉明重量表示为h=HW(X i+4),如果选择汉明距离,则 Xi+4的汉明距离表示为h=HW(X i+4 ? PreX i+4),其中PreXi+4是汉明距离模型的X i+4前续状态, 根据h的不同,将曲线划分为33个集合,记为HW。,HW1,……,HW 32; 514 :针对每一个集合利用主成分分析进行降维处理,最后将均值向量 ?和降维矩阵Y组成的模板T =< I, Y >,33个集合共33个模板; 515 :轮数i自加1,返回S13~S15的步骤,直到前四轮的轮输出的模板建立完成。
3. 前述S2具体包括以下步骤: 521 :初始化轮数i=0 ; 522 :对当前轮进行模板攻击的匹配,此时攻击的目标是Ci,Ci是固定未知的,且和最终 攻击目标轮子密钥咖相对应,选择特殊的明文或者密文输入,轮输入X PXi^Xit2和X i+3,满 足条件为Xi+1 ? X i+2 ? X i+3=D,D表示固定常数,如果能量模型为汉明重量模型,选择为\已 知固定数,表示〇=\;如果能量模型为汉明距离模型,选择为X i田PreX i+4为已知固定数,表 示为 O= Xi ? PreX i+4; 523 :对SM4加密卡或者加密设备进行加密m次,采集相应的能量曲线; S24:对能量曲线进行处理,建立待测试的模板,设待测模板为T ; S25:利用支持向量机建立基本的分类模型,此发明利用的是一对一的支持向量机模 型,对每个模板建立一个支持向量机分类器,每攻击一轮密钥时,需要建立33个支持向量 机分类器,在针对每一个建立支持向量机是当前的模板为正类、其它模板为负类,组合成训 练的数据进行训练; 526 :将待测模板T作为测试数据,利用建立好33个的支持向量机分类器进行预测分 析,将待测试的模板T通过所有的分类器,找出属于输出为正类的一个,设预测的结果的汉 明重量或者汉明距离为HW ; 527 :初始化j=0 ; 528 :如果O的第j位为b,通过选择性的输入明文或密文,对当前轮输入进行更新,重 新建立一个新的模板,只更新〇的第j位,将〇的第j位取反,表示为5 ; 529 :利用新的明文对SM4加密卡或者加密设备进行加密m次,采集相应的能量曲线; 5210 :对能量曲线进行处理,建立待测试的模板,设待测模板为Τ' ; 5211 :将待测模板Τ'作为测试数据,利用建立好33个的支持向量机分类器进行预测分 析,将待测试的模Τ'通过所有的分类器,找出属于输出为正类的一个,设预测的结果的汉明 重量或者汉明距离为服'; 5212 :比较HW和HT的大小,若服>服',则Ci的第j位为石,反之C i的第j位为b ; 5213 :j自加1,返回步骤S28~S213,直到Ci完全恢复; 5214 :根据SM4密码算法的线性变换和非线性变换的逆运算,由Ci得到S盒子的输入, 表示为6,且6=父1+1田父1+2田父1+3田浊1,故轮子密钥浊 1为浊1=父1+1田父1+2田父1+3田6=0田6; 5215 :轮数i自加1,返回S22~S215的步骤,直到得出前四轮的字密钥rVrVrk# rk3〇
【专利摘要】本发明公开了一种针对SM4密码算法轮输出的模板攻击方法。该方法以特殊的路输入为前提,将SM4算法轮输出作为攻击点,选择轮输出的汉明重量或者汉明距离建立模板,以较少的模板数量就能实现针对SM4密码算法轮输出的模板攻击;同时在模板匹配阶段以选择性的输入作为基础,利用支持向量机作为判别分析的工具,只需要两次匹配就可以破解出线性变换输出的一个比特,再有非线性变换和线性变换的逆变换反推出轮子密钥。该方法有效解决了现阶段针对SM4密码算法轮数的模板攻击不可行的问题。
【IPC分类】H04L9-06
【公开号】CN104868990
【申请号】CN201510176805
【发明人】杜之波, 吴震, 饶金涛, 王敏, 李大为, 罗鹏, 赵东艳, 张海峰, 唐晓柯, 胡晓波, 甘杰, 刘辉志
【申请人】成都信息工程学院, 成都芯安尤里卡信息科技有限公司, 国家密码管理局商用密码检测中心, 北京南瑞智芯微电子科技有限公司
【公开日】2015年8月26日
【申请日】2015年4月15日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1