[发明专利]一种针对SM2解密算法的能量分析攻击的方法有效
申请号: | 201510186060.1 | 申请日: | 2015-04-20 |
公开(公告)号: | CN104836666B | 公开(公告)日: | 2019-04-12 |
发明(设计)人: | 王敏;吴震;饶金涛;杜之波;李大为;罗鹏 | 申请(专利权)人: | 成都信息工程学院;成都芯安尤里卡信息科技有限公司;国家密码管理局商用密码检测中心 |
主分类号: | H04L9/32 | 分类号: | H04L9/32;H04L9/08 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 610225 四川省成都*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 针对 sm2 解密 算法 能量 分析 攻击 方法 | ||
1.针对SM2解密算法的侧信道能量分析的方法,以SM2解密算法的中运用私钥进行标量乘法运算为攻击目标,其特征在于,所述方法包括以下步骤:
S1:攻击进行标量乘法的私钥d,初始化i=0;
S2:随机选择密文C=(C1||C2||C3)输入;
S3:选择倍点运算结果的最低32位作为中间值,采用侧信道能量攻击的方法攻击出私钥d的第i比特di,其中,i=0,1,2,3,…255,所述侧信道能量攻击方法采用差分能量分析(DPA,Different Power Analysis)或相关性能量分析(CPA,Corrlation PowerAnalysis);
S4:使i自增1,返回步骤S3继续攻击下一比特,直到得出私钥的所有比特;
S5:根据所述256位私钥完全破解后,将破解出的私钥,进行解密运算,若能进行正常解密,说明攻击成功,反之攻击失败。
2.根据权利要求1的方法,其特征在于,所述S3中采用的侧信道能量攻击方法为CPA攻击方法,所述CPA攻击方法包括以下步骤:
S21:每次输入一个密文Ci(1≤i≤n),共输入n组,初始化k=1;用私钥进行解密运算采集每次的能量轨迹每组曲线m个点,建立采样能量消耗矩阵其中ti,j为第i条能量轨迹第j个点的能耗值;
S22:猜测密钥dk,计算第k次倍点运算的中间值,确定中间值矩阵,猜测密钥0或者1,依次计算中间值矩阵为其中矩阵元素为计算的中间值;
S23:选择能量攻击模型,选择汉明重量模型作为能量攻击模型,将中间值映射为假设能量消耗值矩阵,计算中间值的汉明重量,得出假设能量消耗矩阵其中矩阵元素为中间值的假设能耗值;
S24:计算假设能量消耗矩阵与采集能量迹矩阵的线性相关系数,得到正确的猜测密码:其中ρj,n,表示第j个猜测密钥对应的假设能量消耗与第n个时间点能量曲线之间的线性相关系数,表示假设能耗均值,表示第j个点的能耗均值;
计算两个矩阵所有列列之间的相关系数,得到假设能量消耗矩阵和能量曲线矩阵的相关系数矩阵为:选取R矩阵中的最大值,最大值对应的猜测密钥值即为正确密钥;
S25:使k自增1,返回S22~S25,一直到恢复出所有的私钥。
3.根据权利要求1的方法,其特征在于,所述S3中采用的侧信道能量攻击方法为DPA攻击方法,所述DPA攻击方法包括以下步骤:
S31:每次输入一个密文Ci(1≤i≤n),共输入n组,初始化k=1;用私钥进行解密运算采集每次的能量轨迹每组曲线m个点,建立采样能量消耗矩阵其中ti,j为第i条能量轨迹第j个点的能耗值;
S32:猜测密钥dk,计算第k次倍点运算的中间值,确定中间值矩阵,猜测密钥0或者1,依次计算中间值矩阵为其中矩阵元素为计算的中间值;
S33:选择能量攻击模型,选择汉明重量模型作为能量攻击模型,将中间值映射为假设能量消耗值矩阵,计算中间值的汉明重量,得出假设能量消耗矩阵其中矩阵元素为中间值的假设能耗值;
S34:根据假设能量消耗矩阵的值将采集的能量曲线分为两个集合:
S0={Tij|wi,h<16(0≤i≤n,0≤j≤m,h=1,2)}
S1={Tij|wi,h>16(0≤i≤n,0≤j≤m,h=1,2)}
S35:计算在均值差S中出现一个最大尖峰时对应的即为正确的猜测密钥;
S36:k自增1,返回S32~S36,一直到恢复出所有的私钥。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都信息工程学院;成都芯安尤里卡信息科技有限公司;国家密码管理局商用密码检测中心,未经成都信息工程学院;成都芯安尤里卡信息科技有限公司;国家密码管理局商用密码检测中心许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510186060.1/1.html,转载请声明来源钻瓜专利网。