针对SM2解密算法的能量分析检测方法技术

技术编号:24333781 阅读:63 留言:0更新日期:2020-05-29 21:09
本发明专利技术公开了一种针对SM2解密算法的能量分析检测方法,包括S1、向SM2解密设备输入测试数据M、C和

Energy analysis detection method for SM2 decryption algorithm

【技术实现步骤摘要】
针对SM2解密算法的能量分析检测方法
本专利技术涉及密码算法实现分析检测领域,具体涉及一种针对SM2解密算法的能量分析检测方法。
技术介绍
密码算法的实现用微控制器指令实现,微控制器拥有一套指令集,一般包括算术指令、逻辑指令、数据传送指令和转移指令等。每条指令作用于几个字节,并涉及微控制器的不同组件,如算术逻辑单元、存储器或一些外围设备(如通信端口)。这些微控制器组件在物理上分离,并且其功能和实现方式各不相同。所以,它们具有不同的能量消耗特征,这将在能量迹中产生不同特征的模式。例如,作用于片内存储器的数据传送指令比作用于片外存储器的数据传送指令需要的时钟周期更少。此外,片外总线比片内总线具有更高的能量消耗。这些事实使得通过能量迹对指令进行区分成为可能。简单能量分析攻击,就是通过对一定时间范围内的电路电磁或者能量消耗进行分析,区分电路的不同状态,从而识别算法实现的技术细节,如图1所示,在ECC密码算法的多倍点运算实现中,点加运算和倍点运算的能量曲线如图1所示,由于点加运算和倍点运算实现上差异导致二者能量曲线不相同。目前,专利文献CN201510186060.1公开的一种针对SM2解密算法的能量分析攻击的方法能够实现SM2解密算法的检测,该方法的大体实现思路是:以SM2算法中的解密算法运用私钥d进行标量乘法为攻击点,根据不同的密文C输入,得到不同的中间结果,采用侧信道能量攻击方法逐次攻击出私钥的单个bit,一直到恢复出整个私钥,恢复出私钥的所有bit后,可以通过解密算法进行验证。专利文献CN201510186060.1公开的方法虽然能够实现SM2解密算法的检测,但是在实现检测过程中,其需要采集若干条能量曲线,每次攻击需要逐比特的进行人为检测,存在曲线数据量大及检测复杂和检测时间长等缺点。
技术实现思路
针对现有技术中的上述不足,本专利技术提供的针对SM2解密算法的能量分析检测方法解决了安全芯片密码检测中针对SM2密码算法检测分析时,检测所需能量曲线条数多,检测效率低的问题。为了达到上述专利技术目的,本专利技术采用的技术方案为:提供一种针对SM2解密算法的能量分析检测方法,其包括:S1、向SM2解密设备输入测试数据M、C和d,并采集SM2运算时的能量曲线,其中M是明文,C为是由私钥d对应的公钥加密产生的密文;S2、同时扫描能量曲线上多倍点运算中倍点曲线片段和点加曲线片段,获得分析结果d';S3、判断分析结果d'和私钥d的二进制表示中除最低位外是否相同,若是,则SM2解密算法设计不安全,否则SM2解密算法设计安全。其中,所述步骤S2进一步包括:S201、在能量曲线T上选择倍点运算对应的能量曲线段,能量曲线段的采样点数为lb=be-bs+1,bs和be分别为能量曲线段在能量曲线T中的起点和终点索引;S202、在能量曲线T上选择点加运算对应的能量曲线段,能量曲线段的采样点数为la=ae-as+1,as和ae分别为能量曲线段在能量曲线T中的起点和终点索引;S203、初始化计数器j=1和相关系数阈值为refcor,初始化分析结果d'为空及起始索引标记startindex=1和序号i=1,d'中元素个数为私钥d的二进制数据长度len,d'[j]为d'中第j个元素;S204、在能量曲线T上选取第i到(i+lb-1)个采样点作为能量曲线段,并计算能量曲线段和能量曲线段的相关系数;S205、判断相关系数的绝对值是否大于refcor,若是,则能量曲线段进行的是倍点运算,执行步骤S206,否则执行步骤S212;S206、判断计数器j是否等于1,若是,则d'[j]=0,i=i+lb-1,startindex=i,j=j+1,之后执行步骤S212,否则执行步骤S207;S207、判断能量曲线段的采样点数la是否大于i-startindex,若是,则d'[j]=0,i=i+lb-1,startindex=i,j=j+1,之后执行步骤S212,否则令ii=startindex,跳转到步骤S208;S208、在能量曲线T上选取第ii到(ii+la-1)个采样点的能量曲线段,并计算能量曲线段和能量曲线段的相关系数;S209、判断相关系数绝对值是否大于refcor,若是,则能量曲线段进行的是点加运算,d'[j-1]=1,d'[j]=0,j=j+1,之后进入步骤S212,否则执行步骤S210;S210、令ii=ii+1,并判断ii是否小于i-la,若是,返回步骤S208,否则跳转到步骤S211;S211、d'[j]=0,j=j+1,i=i+lb-1,startindex=i;S212、令i=i+1,并判断i是否小于n-lb,若是,返回步骤S204,否则输出分析结果d',n为能量曲线T上采样点的总个数。本专利技术的有益效果为:本方案基于同时扫描能量曲线上多倍点运算中倍点曲线片段和点加曲线片段,通过获得的分析结果d'可以快速地对SM2解密算法的安全性进行判断,该种方式采用少量能量曲线即可相对准确地进行检测。在具体得到分析结果d'时,使用相关系数法以遍历的方式在多倍点运算对应的能量曲线上选择曲线段,计算该曲线段和倍点曲线段以及点加曲线段的相关系数,分析多倍点运算使用的私钥。通过这种方式得到分析结果d'降低了检测分析所需的能量曲线条数,最少使用一条能量曲线即可进行检测分析,在检测过程中可以采用计算机自动实现,不需要人为逐比特进行攻击检测,同时解放了检测人员的劳力和精力,提高了检测分析的自动化水平,提高了检测分析的效率、简易型、灵活性、有效性、正确性。附图说明图1为点加运算和倍点运算的能量曲线。图2为SM2解密算法的能量分析检测方法的流程图。图3为SM2解密算法的能量分析检测方法详细的流程图。具体实施方式下面对本专利技术的具体实施方式进行描述,以便于本
的技术人员理解本专利技术,但应该清楚,本专利技术不限于具体实施方式的范围,对本
的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本专利技术的精神和范围内,这些变化是显而易见的,一切利用本专利技术构思的专利技术创造均在保护之列。如图2所示,本方案提供的针对SM2解密算法的能量分析检测方法S包括步骤S1至步骤S3。在步骤S1中,向SM2解密设备输入测试数据M、C和d,并采集SM2运算时的能量曲线,其中M是明文,C为是由私钥d对应的公钥加密产生的密文。能量曲线T是按照采样时间顺序T由n个采样点组成T={t1,…,tn},其中ti表示曲线T上第i个采样点值i∈{1,…,n}。在步骤S2中,同时扫描能量曲线上多倍点运算中倍点曲线片段和点加曲线片段,获得分析结果d';在本专利技术的一个实施例中,所述步骤S2(参考图3)进一步包括:S201、在能量曲线T上选择倍点运算对应的能量曲线段,能量曲线段的采样点数为lb=be-bs+1,bs和be分别为能量曲线段在能量曲线T中的起本文档来自技高网
...

【技术保护点】
1.针对SM2解密算法的能量分析检测方法,其特征在于,包括:/nS1、向SM2解密设备输入测试数据M、C和

【技术特征摘要】
1.针对SM2解密算法的能量分析检测方法,其特征在于,包括:
S1、向SM2解密设备输入测试数据M、C和d,并采集SM2运算时的能量曲线,其中M是明文,C为是由私钥d对应的公钥加密产生的密文;
S2、同时扫描能量曲线上多倍点运算中倍点曲线片段和点加曲线片段,获得分析结果d';
S3、判断分析结果d'和私钥d的二进制表示中除最低位外是否相同,若是,则SM2解密算法设计不安全,否则SM2解密算法设计安全。


2.根据权利要求1所述的针对SM2解密算法的能量分析检测方法,其特征在于,所述步骤S2进一步包括:
S201、在能量曲线T上选择倍点运算对应的能量曲线段,能量曲线段的采样点数为lb=be-bs+1,bs和be分别为能量曲线段在能量曲线T中的起点和终点索引;
S202、在能量曲线T上选择点加运算对应的能量曲线段,能量曲线段的采样点数为la=ae-as+1,as和ae分别为能量曲线段在能量曲线T中的起点和终点索引;
S203、初始化计数器j=1和相关系数阈值为refcor,初始化分析结果d'为空及起始索引标记startindex=1和序号i=1,d'中元素个数为私钥d的二进制数据长度len,d'[j]为d'中第j个元素;
S204、在能量曲线T上选取第i到(i+lb-1)个采样点作为能量曲线段,并计算能量曲线段和能量曲线段的相关系数;
S205、判断相关系数的绝对值是否大于refcor,若是,则能量曲线段进行的是倍点运算,执行步骤S206,否则执行步骤S212;
S206、判断计数器j是否等于1,若是,则d'[j]=0,i=i+lb-1,startindex=i,j=j+1,之后执行步骤S212,否则执行步骤S207;
S207、判断能量曲线段的采样点数...

【专利技术属性】
技术研发人员:杜之波吴震王敏向春玲
申请(专利权)人:成都信息工程大学成都芯安尤里卡信息科技有限公司
类型:发明
国别省市:四川;51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1