一种针对sm4密码算法轮输入汉明重量的模板攻击方法

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