CN111211886B - 针对sm2解密算法的能量分析检测方法 - Google Patents
针对sm2解密算法的能量分析检测方法 Download PDFInfo
- Publication number
- CN111211886B CN111211886B CN202010312514.6A CN202010312514A CN111211886B CN 111211886 B CN111211886 B CN 111211886B CN 202010312514 A CN202010312514 A CN 202010312514A CN 111211886 B CN111211886 B CN 111211886B
- Authority
- CN
- China
- Prior art keywords
- energy curve
- energy
- segment
- decryption algorithm
- curve segment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/26—Testing cryptographic entity, e.g. testing integrity of encryption key or encryption algorithm
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种针对SM2解密算法的能量分析检测方法,包括S1、向SM2解密设备输入测试数据M、C和d,并采集SM2运算时的能量曲线,其中M是明文,C为是由私钥d对应的公钥加密产生的密文;S2、同时扫描能量曲线上多倍点运算中倍点曲线片段和点加曲线片段,获得分析结果d';S3、判断分析结果d'和私钥d的二进制表示中除最低位外是否相同,若是,则SM2解密算法设计不安全,否则SM2解密算法设计安全。本方案相对现有技术而言,需要能量曲线少,检测过程中不需要人为逐比特进行攻击检测,同时解放了检测人员的劳力和精力,提高了检测分析的自动化水平,提高了检测分析的效率、简易型、灵活性、有效性、正确性。
Description
技术领域
本发明涉及密码算法实现分析检测领域,具体涉及一种针对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进一步包括:
S203、初始化计数器j=1和相关系数阈值为refcor,初始化分析结果d'为空及起始索引标记startindex=1和序号i=1,d'中元素个数为私钥d的二进制数据长度len,d'[j]为d'中第j个元素;
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;
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={t 1,…,t n },其中t i 表示曲线T上第i个采样点值i∈{1,…,n}。
在步骤S2中,同时扫描能量曲线上多倍点运算中倍点曲线片段和点加曲线片段,获得分析结果d';
在本发明的一个实施例中,所述步骤S2(参考图3)进一步包括:
S203、初始化计数器j=1和相关系数阈值为refcor,初始化分析结果d'为空及起始索引标记startindex=1和序号i=1,d'中元素个数为私钥d的二进制数据长度len,d'[j]为d'中第j个元素;
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;
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'的获取,可以找到能量曲线上那些片段运行的是多倍点运算,并通过分析多倍点运算使用的私钥;采用该种方式可以大幅降低能量权限的使用量,最少使用一条能量曲线即可达到准确检测。
本方案采用步骤S201~步骤S212的方式进行检测后,基于一条或少量能量曲线就可以实现安全检测的主要原理为:
多倍点运算是有多个点加运算和倍点运算构成,由于点加运算和倍点的运算不相同,所以反应到能量曲线上二者消耗的能量也不相同。虽然运算的数据不相同,但是在运算的操作方面上相同的倍点运算或点加运算,其能量曲线相似。所以可以在一条能量曲线上通过计算倍点和点加曲线段的相似性来安全分析多倍点运算。
在步骤S3中,判断分析结果d'和私钥d的二进制表示中除最低位外是否相同,若是,则SM2解密算法设计不安全,否则SM2解密算法设计安全。
实施时,本方案优选所述步骤S3进一步包括:
S32、将分析结果d'和私钥d的二进制表示中除最低位外依次进行比较,j从1到(len-1)比较参数k j 和d' [len-j]是否相等,若都相等,则SM2解密算法设计不安全,否则,SM2解密算法设计安全。
将私钥d转换成二进制数据后,可以便于采用程序自动化实现私钥对比,降低检测人员的工作强度。
Claims (3)
1.针对SM2解密算法的能量分析检测方法,其特征在于,包括:
S1、向SM2解密设备输入测试数据M、C和d,并采集SM2运算时的能量曲线,其中M是明文,C为是由私钥d对应的公钥加密产生的密文;
S2、同时扫描能量曲线上多倍点运算中倍点曲线片段和点加曲线片段,获得分析结果d';
S3、判断分析结果d'和私钥d的二进制表示中除最低位外是否相同,若是,则SM2解密算法设计不安全,否则SM2解密算法设计安全;
所述步骤S2进一步包括:
S203、初始化计数器j=1和相关系数阈值为refcor,初始化分析结果d'为空及起始索引标记startindex=1和序号i=1,d'中元素个数为私钥d的二进制数据长度len,d'[j]为d'中第j个元素;
S205、判断相关系数ρT,B的绝对值是否大于refcor,若是,则能量曲线段Ti i+lb-1进行的是倍点运算,执行步骤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;
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上采样点的总个数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010312514.6A CN111211886B (zh) | 2020-04-20 | 2020-04-20 | 针对sm2解密算法的能量分析检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010312514.6A CN111211886B (zh) | 2020-04-20 | 2020-04-20 | 针对sm2解密算法的能量分析检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111211886A CN111211886A (zh) | 2020-05-29 |
CN111211886B true CN111211886B (zh) | 2020-07-14 |
Family
ID=70787297
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010312514.6A Active CN111211886B (zh) | 2020-04-20 | 2020-04-20 | 针对sm2解密算法的能量分析检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111211886B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112968761B (zh) * | 2021-03-15 | 2022-04-19 | 北京理工大学 | 一种针对密码算法的人工智能侧信道分析方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104780051A (zh) * | 2015-04-24 | 2015-07-15 | 成都信息工程学院 | 针对sm2公钥密码加密算法的侧信道攻击的方法 |
CN104836666A (zh) * | 2015-04-20 | 2015-08-12 | 成都信息工程学院 | 一种针对sm2解密算法的能量分析攻击的方法 |
CN104917608A (zh) * | 2015-05-19 | 2015-09-16 | 清华大学 | 一种密钥抗功耗攻击的方法 |
CN107204856A (zh) * | 2017-08-01 | 2017-09-26 | 北京智慧云测科技有限公司 | 一种检测椭圆曲线算法漏洞的方法及装置 |
CN108964914A (zh) * | 2017-05-17 | 2018-12-07 | 中国科学技术大学 | 抗侧信道攻击的sm2点乘架构 |
CN109600232A (zh) * | 2018-12-05 | 2019-04-09 | 北京智慧云测科技有限公司 | 针对sm2签名算法的攻击验证、防护方法及装置 |
CN110460425A (zh) * | 2019-09-24 | 2019-11-15 | 北京银联金卡科技有限公司 | 一种面向侧信道密码能量泄漏信号的攻击方法及系统 |
CN110611559A (zh) * | 2019-08-21 | 2019-12-24 | 广东工业大学 | 基于算法层的抗侧信道攻击sm2点乘架构及其运算方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150089638A1 (en) * | 2013-09-25 | 2015-03-26 | International Business Machines Corporation | Smart meter security system and method |
-
2020
- 2020-04-20 CN CN202010312514.6A patent/CN111211886B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104836666A (zh) * | 2015-04-20 | 2015-08-12 | 成都信息工程学院 | 一种针对sm2解密算法的能量分析攻击的方法 |
CN104780051A (zh) * | 2015-04-24 | 2015-07-15 | 成都信息工程学院 | 针对sm2公钥密码加密算法的侧信道攻击的方法 |
CN104917608A (zh) * | 2015-05-19 | 2015-09-16 | 清华大学 | 一种密钥抗功耗攻击的方法 |
CN108964914A (zh) * | 2017-05-17 | 2018-12-07 | 中国科学技术大学 | 抗侧信道攻击的sm2点乘架构 |
CN107204856A (zh) * | 2017-08-01 | 2017-09-26 | 北京智慧云测科技有限公司 | 一种检测椭圆曲线算法漏洞的方法及装置 |
CN109600232A (zh) * | 2018-12-05 | 2019-04-09 | 北京智慧云测科技有限公司 | 针对sm2签名算法的攻击验证、防护方法及装置 |
CN110611559A (zh) * | 2019-08-21 | 2019-12-24 | 广东工业大学 | 基于算法层的抗侧信道攻击sm2点乘架构及其运算方法 |
CN110460425A (zh) * | 2019-09-24 | 2019-11-15 | 北京银联金卡科技有限公司 | 一种面向侧信道密码能量泄漏信号的攻击方法及系统 |
Non-Patent Citations (2)
Title |
---|
"一种针对SM2揭秘算法的侧信道攻击方法";史汝辉;《密码学报》;20150531;全文 * |
"基于重采样的差分频域分析方法";王喆;《计算机学报》;20150430;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111211886A (zh) | 2020-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8402287B2 (en) | Protection against side channel attacks | |
CN108604981B (zh) | 用于估计秘密值的方法和设备 | |
CN110460425B (zh) | 一种面向侧信道密码能量泄漏信号的攻击方法及系统 | |
Wang et al. | Ridge-based DPA: Improvement of differential power analysis for nanoscale chips | |
Bauer | Attacking exponent blinding in RSA without CRT | |
CN111817842B (zh) | 一种针对rsa-crt运算的能量分析攻击测试装置和方法 | |
CN105426707A (zh) | 一种指令级密码算法识别方法和系统 | |
CN111211886B (zh) | 针对sm2解密算法的能量分析检测方法 | |
CN114785478A (zh) | 应用于多项式硬件乘法的侧信道相关能量分析方法及系统 | |
Bhattacharya et al. | Utilizing performance counters for compromising public key ciphers | |
Patel et al. | Random forest profiling attack on advanced encryption standard | |
Kabin et al. | Horizontal Attacks using K-Means: Comparison with Traditional Analysis Methods | |
Zhou et al. | Analysis on the parameter selection method for FLUSH+ RELOAD based cache timing attack on RSA | |
Jin et al. | Adaptive channel estimation in side channel attacks | |
Hu et al. | Software implementation of aes-128: Side channel attacks based on power traces decomposition | |
CN117200963A (zh) | 针对sm2解密算法的能量分析检测方法 | |
Zhang et al. | A novel template attack on wnaf algorithm of ECC | |
CN113728605A (zh) | 异常检测方法以及异常检测装置 | |
Maro et al. | Power Analysis of Kuznyechik cipher on Arduino Nano board | |
Zhou et al. | S-box pooling: towards more efficient side-channel security evaluations | |
Nikolova et al. | Software Implementation of CRA and TRA to Recover the AES-128 Key using Side-Channel Signals with Python3 | |
Kim et al. | Research on autoencdoer technology for malware feature purification | |
US11995191B2 (en) | Side-channel attack on HMAC-SHA-2 and associated testing | |
Bache et al. | Multivariate TVLA-efficient side-channel evaluation using confidence intervals | |
US20220414227A1 (en) | Side-channel attack on hmac-sha-2 and associated testing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |