CN106301756B - 用于sm2签名的大数模幂求逆功耗检测方法及其系统 - Google Patents
用于sm2签名的大数模幂求逆功耗检测方法及其系统 Download PDFInfo
- Publication number
- CN106301756B CN106301756B CN201610704633.XA CN201610704633A CN106301756B CN 106301756 B CN106301756 B CN 106301756B CN 201610704633 A CN201610704633 A CN 201610704633A CN 106301756 B CN106301756 B CN 106301756B
- Authority
- CN
- China
- Prior art keywords
- module
- information
- signature
- key
- power consumption
- 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
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]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
一种用于SM2签名的大数模幂求逆功耗检测方法及其系统,包括:密钥检测模块、信息分类模块、模板处理模块、匹配计算模块和线下密钥恢复模块,其中:密钥检测模块执行SM2签名并得到密钥中间值的汉明重量信息后输出至信息分类模块;信息分类模块根据中间值的汉明重量信息对功耗曲线进行分类,并输出分类信息至模板处理模块;模板处理模块根据分类信息进行建模,并将模板信息输入匹配计算模块与待测SM2签名进行匹配,匹配计算模块将匹配结果输出至线下密钥恢复模块进行离线运算,获得待测SM2签名的密钥信息;本发明设计合理,针对SM2签名的求逆短板进行功耗曲线检测,为SM2签名防护提供了新的方向。
Description
技术领域
本发明涉及的是一种计算机安全领域的技术,具体是一种用于SM2签名的大数模幂求逆功耗检测方法及其系统。
背景技术
在现实中,密码系统通常是以硬件或以硬件为表现形式的软件来实现的,譬如:智能卡、 RFID、密码协处理器、SoC密码芯片、密码机。在这些密码系统的实现环境中,攻击者可以观察和测量密码变换的能量消耗、电磁辐射等信息,利用这些额外的信息有可能实现比传统的数学分析更有效的密码破译。这种环境下的攻击通常被人们称为”旁路攻击”(Side Channel Attack)。旁路攻击通常包括简单功耗分析(SPA)和差分功耗分析(DPA)。
其中,DPA攻击是通过记录密码设备对大量不同数据进行加密或解密操作时的功耗曲线,利用统计方法从功耗曲线中恢复出密码设备中的密钥,其分析效果也相对更加有效。DPA的思想能够应用于各种密码算法的分析中,包括对称密码算法和公钥密码算法。通常来说公钥密码算法执行时间更长,其泄露的功耗信息也越多,功耗信息利用方式也呈现多样化。但目前针对公钥ECC(椭圆曲线)方案的分析,大都针对于其核心运算:标量乘运算。
由于标量乘运算是SM2(一种椭圆曲线公钥密码算法)乃至所有ECC方案安全性的基础,研究者们也提出了许多种针对标量乘运算的分析方法,包括:传统的DPA分析、水平分析以及水平碰撞分析等。为了防护这些分析方法,标量乘运算的实现方案也越来越安全,使得分析者很难从标量乘运算上获得有用信息。
基于椭圆曲线签名方案的SM2包含三大部分:标量乘运算、生成签名部分值r、生成整个签名对(r,s)。在生成整个签名对的过程中,存在针对密钥的求逆操作,即:(d+1)-1modn,其中:d为签名的私钥且为不少于160bytes的大数,n为已知的SM2签名方案的公共参数。求逆操作(d+1)-1mod n有两种实现方式,一种为扩展欧几里德算法,但需消耗更多的硬件资源包括寄存器和电路面积;另一种通过模幂实现,如图1所示,即:(d+1)-1mod n= (d+1)n- 2mod n。该方法能够复用原电路中的模乘模块,节省电路面积。
在传统的DPA分析下,针对SM2签名的分析一般分为两种:一是针对标量乘运算进行分析,恢复标量,但由于SM2签名方案的标量为随机数,因此该分析仅在单条曲线下分析才有意义;二是针对生成整个签名对中的运算r×d进行DPA分析。而这两种分析又非常易于防护:对于标量乘的分析在单条曲线下实现针对SPA的防护及水平攻击防护;针对r×d分析,可通过修改生成整个签名对中的求逆操作实现,即:(d+1)-1*(k-r×d)mod n=(d+1)-1*(k-r×(d+1-1))mod n=((d+1)-1(k-r)-r)mod n,其中:k为用于标量乘运算的随机数;如此一来,r×d运算就在求逆操作中消失了,也无法进行分析;而(d+1)-1仍然存在。
经过对现有技术的检索发现,中国专利文献号CN104683102A,公布日2015.6.3,公开了一种SM2签名计算方法和装置,方法包括:获取签名r、未知的临时密钥k、私钥d和模数n;计算第一值,所述第一值为私钥d加1后的值;计算第二值,所述第二值为所述第一值的模逆;计算第三值,所述第三值为签名r和所述未知的临时密钥k的和;计算第四值,所述第四值为第三值和所述第二值的乘积;获取SM2的签名结果S,所述签名结果S为所述第四值减去r后对n取模的值。但该技术的分析对象在于第四值的产生过程,适用性较窄,在应用防护措施时,第四值有可能已经变化。
发明内容
本发明针对现有技术存在的上述不足,提出一种用于SM2签名的大数模幂求逆功耗检测方法及其系统,针对SM2签名的求逆运算采集功耗曲线,并根据模平方运算的中间值信息进行分类建模,通过与模板进行匹配实现模板攻击,结合离线运算,能够恢复SM2签名的私钥。
本发明是通过以下技术方案实现的:
本发明涉及一种用于SM2签名的大数模幂求逆功耗检测方法,在攻击者完全控制一台与待测密码系统完全相同或类似的设备的情况下,通过向该待测密码系统随机输入密钥循环执行SM2签名,得到求逆时的模幂算法的功耗曲线,并根据模平方运算的中间值信息对功耗曲线进行分类建模;采集待测SM2签名求逆时的功耗曲线,并与建立的模板进行匹配得到相应的模平方运算的中间值信息,完成模板攻击;根据待测SM2签名模平方运算的中间值信息并结合大数模乘运算进行离线运算,恢复完整的待测SM2签名的密钥信息。
所述的模平方运算的中间值信息是指模幂算法的第一个模平方中所有的中间结果的单字节汉明重量。
所述的建模是指:对分类后的功耗曲线进行建模,模板其中:hi为汉明重量为i的模板,为功耗曲线的均值,为功耗曲线的协方差矩阵。
所述的匹配的依据为:其中:p为功耗曲线与模板的匹配概率,t为被测功耗曲线。
所述的离线运算是指:利用大数模乘运算与模平方运算中间值的汉明重量,恢复对应密钥的完整信息。
本发明涉及一种实现上述方法的分析系统,包括:密钥检测模块、信息分类模块、模板处理模块、匹配计算模块和线下密钥恢复模块,其中:密钥检测模块执行SM2签名并得到密钥中间值的汉明重量信息后输出至信息分类模块;信息分类模块根据中间值的汉明重量信息对功耗曲线进行分类,并输出分类信息至模板处理模块;模板处理模块根据分类信息进行建模,并将模板信息输入匹配计算模块与待测SM2签名过程中的求逆部分的功耗曲线进行匹配,匹配计算模块将匹配结果输出至线下密钥恢复模块进行离线运算,获得待测SM2签名的密钥信息。
技术效果
与现有技术相比,本发明通过模板攻击与离线运算,根据求逆的功耗曲线恢复密钥;即使SM2签名在标量乘运算和部分签名生成阶段都添加了防护,针对求逆的分析仍然能够恢复 SM2签名中的私钥,为防护提供了新的方向。
附图说明
图1为现有模幂算法示意图;
图2为本发明的功耗检测方法示意图;
图3为SM2签名生成的功耗曲线;
图4为SM2大数求逆的功耗曲线;
图5为单字节恢复成功率;
图6为大数恢复执行时间;
图7为分析系统示意图。
具体实施方式
下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
实施例1
如图2所示,本实施例包括以下步骤:
步骤1、随机输入密钥,循环执行SM2签名并定位到大数求逆阶段,采用模幂算法采集功耗曲线,计算模平方运算的中间值信息。
所述的模平方运算的中间值信息是指:模幂算法第一个模平方中所有中间结果的单字节汉明重量。
由于第一个模平方运算总与密钥具有直接关系,恢复该值就能直接恢复密钥,因而选用第一个模平方运算中的中间值。
所述的模幂算法包括但不限于:从左向右实现的模幂算法和从右向左实现的模幂算法。
所述的第一个模平方的实际运算值为(d+1)×(d+1)mod n,其中:d为签名的私钥且为不小于160bytes的大数,n为已知的SM2签名方案的公共参数。
步骤2、根据步骤1得到的模平方运算的中间值信息对功耗曲线进行分类和建模。
所述的功耗曲线共分为九类。
如图3所示,在大数求逆阶段的8~10(*105)区域内,如图4所示的该区域功耗细节信息,通过对该区域分析可以快速定位到所需的模平方位置。
所述的建模的模板其中:hi为汉明重量为i的模板,为功耗曲线的均值,为功耗曲线的协方差矩阵。
如上表所示,所述的汉明重量范围为0~8,表示数据第一行有八个数据,代表所建立模板选择的八个功耗点,第一行数据为均值;均值下方为8*8矩阵,即协方差矩阵。
步骤3、采集待测SM2签名求逆时的功耗曲线和中间值的汉明重量,并与步骤2得到的模板进行匹配,得到待测SM2签名模平方运算中间值的汉明重量。
所述的匹配的依据为:其中:p为功耗曲线与模板的匹配概率,t为被测功耗曲线。
步骤4、根据步骤3中待测SM2签名的功耗曲线的中间值的汉明重量,结合大数模乘运算进行离线运算,恢复待测SM2签名求逆操作的底数值d+1,进而恢复完整密钥。
所述的离线运算是指:利用大数模乘运算与模平方运算中间值的汉明重量,恢复对应密钥的完整信息。
如图7所示,本实施例涉及一种实现上述方法的分析系统,包括:密钥检测模块、信息分类模块、模板处理模块、匹配计算模块和线下密钥恢复模块,其中:密钥检测模块执行SM2 签名并得到密钥中间值的汉明重量信息后输出至信息分类模块;信息分类模块根据中间值的汉明重量信息对功耗曲线进行分类,并输出分类信息至模板处理模块;模板处理模块根据分类信息进行建模,并将模板信息输入匹配计算模块与待测SM2签名过程中的求逆部分的功耗曲线进行匹配,匹配计算模块将匹配结果输出至线下密钥恢复模块进行离线运算,获得待测SM2签名的密钥信息。
如图5和图6所示,本实施例实施了一次完整的SM2签名密钥恢复,采用从左向右的模幂算法实现。通过图5可知,对于单字节密钥恢复,只需知道该字节参与运算的5个中间值即能够以80%的概率成功恢复,而20个以上的中间值的恢复成功率可达100%,适用于SM2签名算法的密钥长度;并且恢复不同字节数密钥所需的时间复杂度为线性,恢复128字节数据只需25ms;由此可知,本实施例即使在标量乘运算部分和签名生成阶段都添加了防护,只需要求逆运算以模幂实现便可完全恢复密钥信息。
本实施例的SM2签名算法的大数求逆是基于该算法中硬件模乘模块并以模幂实现;由于SM2签名的椭圆曲线参数已知,因而能够轻松定位到其模幂运算及密钥参与的模平方运算。
本实施例采用一种基于求逆的旁路分析方法及系统,适用于基于模幂实现求逆的场景,绕过防护较强部分,将重点转向不易发现的安全短板,获得密钥信息,同时为防护提供新的方向。
Claims (5)
1.一种用于SM2签名的大数模幂求逆功耗检测方法,其特征在于,在攻击者完全控制一台与待测密码系统完全相同或类似的设备的情况下,通过向该待测密码系统随机输入密钥循环执行SM2签名,得到求逆时的模幂算法的功耗曲线,并根据模平方运算的中间值信息对功耗曲线进行分类建模;采集待测SM2签名求逆时的模幂算法的功耗曲线,并与建立的模板进行匹配得到相应的模平方运算的中间值信息,完成模板攻击;根据待测SM2签名模平方运算的中间值信息并结合大数模乘运算进行离线运算,恢复完整的待测SM2签名的密钥信息;
所述的模平方运算的中间值信息是指模幂算法的第一个模平方中所有的中间结果的单字节汉明重量。
2.根据权利要求1所述的大数模幂求逆功耗检测方法,其特征是,所述的建模是指:对分类后的功耗曲线进行建模,模板其中:hi为汉明重量为i的模板,为功耗曲线的均值,为功耗曲线的协方差矩阵。
3.根据权利要求1所述的大数模幂求逆功耗检测方法,其特征是,所述的匹配的依据为:其中:p为功耗曲线与模板的匹配概率,t为被测功耗曲线。
4.根据权利要求1所述的大数模幂求逆功耗检测方法,其特征是,所述的离线运算是指:利用大数模乘运算与模平方运算中间值的汉明重量,恢复对应密钥的完整信息。
5.一种实现上述任一权利要求所述方法的分析系统,其特征在于,包括:密钥检测模块、信息分类模块、模板处理模块、匹配计算模块和线下密钥恢复模块,其中:密钥检测模块执行SM2签名并得到密钥中间值的汉明重量信息后输出至信息分类模块;信息分类模块根据中间值的汉明重量信息对待测密码系统随机输入密钥循环执行SM2签名,得到求逆时的模幂算法的功耗曲线进行分类,并输出分类信息至模板处理模块;模板处理模块根据分类信息进行建模,并将模板信息输入匹配计算模块与待测SM2签名过程中的求逆部分的功耗曲线进行匹配,匹配计算模块将匹配结果输出至线下密钥恢复模块进行离线运算,获得待测SM2签名的密钥信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610704633.XA CN106301756B (zh) | 2016-08-22 | 2016-08-22 | 用于sm2签名的大数模幂求逆功耗检测方法及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610704633.XA CN106301756B (zh) | 2016-08-22 | 2016-08-22 | 用于sm2签名的大数模幂求逆功耗检测方法及其系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106301756A CN106301756A (zh) | 2017-01-04 |
CN106301756B true CN106301756B (zh) | 2019-04-05 |
Family
ID=57614626
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610704633.XA Active CN106301756B (zh) | 2016-08-22 | 2016-08-22 | 用于sm2签名的大数模幂求逆功耗检测方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106301756B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109145616B (zh) * | 2018-08-01 | 2022-03-22 | 上海交通大学 | 基于高效模乘的sm2加密、签名和密钥交换的实现方法及系统 |
CN113965324B (zh) * | 2021-12-07 | 2022-04-19 | 国家信息技术安全研究中心 | 基于模板的rsa-crt实现模约减攻击的私钥恢复方法和系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102231102A (zh) * | 2011-06-16 | 2011-11-02 | 天津大学 | 基于余数系统的rsa密码处理方法及协处理器 |
CN103246494A (zh) * | 2013-05-27 | 2013-08-14 | 上海爱信诺航芯电子科技有限公司 | 一种抵抗能量分析和错误攻击的安全模幂计算方法 |
CN104836666A (zh) * | 2015-04-20 | 2015-08-12 | 成都信息工程学院 | 一种针对sm2解密算法的能量分析攻击的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IT1401937B1 (it) * | 2010-09-16 | 2013-08-28 | St Microelectronics Srl | Metodo di generazione di una firma digitale |
-
2016
- 2016-08-22 CN CN201610704633.XA patent/CN106301756B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102231102A (zh) * | 2011-06-16 | 2011-11-02 | 天津大学 | 基于余数系统的rsa密码处理方法及协处理器 |
CN103246494A (zh) * | 2013-05-27 | 2013-08-14 | 上海爱信诺航芯电子科技有限公司 | 一种抵抗能量分析和错误攻击的安全模幂计算方法 |
CN104836666A (zh) * | 2015-04-20 | 2015-08-12 | 成都信息工程学院 | 一种针对sm2解密算法的能量分析攻击的方法 |
Non-Patent Citations (2)
Title |
---|
模幂算法功耗分析攻击的研究;陈艾东;《中国博士学位论文全文数据库 信息科技辑》;20131115(第11期);全文 |
模式识别方法在密码系统旁路模板攻击中的应用研究;曾仲;《中国优秀硕士学位论文全文数据库 信息科技辑》;20160715(第7期);全文 |
Also Published As
Publication number | Publication date |
---|---|
CN106301756A (zh) | 2017-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Mansouri et al. | A novel one-dimensional sine powered chaotic map and its application in a new image encryption scheme | |
CN104868990B (zh) | 一种针对sm4密码算法轮输出的模板攻击方法 | |
Xu et al. | Hybrid side-channel/machine-learning attacks on PUFs: A new threat? | |
CN104717055B (zh) | 一种针对sm4密码算法轮输入汉明重量的模板攻击方法 | |
CN103560877B (zh) | 攻击密钥的方法及装置 | |
CN103167213A (zh) | 基于Cat映射与超混沌Lorenz系统的数字图像加密方法 | |
CN106357378B (zh) | 用于sm2签名的密钥检测方法及其系统 | |
Wang et al. | A selective image encryption algorithm based on a chaotic model using modular sine arithmetic | |
Shafee et al. | Privacy attacks against deep learning models and their countermeasures | |
Xu et al. | Rethinking FPGA security in the new era of artificial intelligence | |
CN111817842A (zh) | 一种针对rsa-crt运算的能量分析攻击测试装置和方法 | |
CN106301756B (zh) | 用于sm2签名的大数模幂求逆功耗检测方法及其系统 | |
CN102970131A (zh) | 一种防止对分组算法进行功耗攻击的电路结构 | |
Ahmed et al. | Detection of Crucial Power Side Channel Data Leakage in Neural Networks | |
CN105897401B (zh) | 基于比特的通用差分功耗分析方法及系统 | |
CN105743644B (zh) | 一种多变量二次方程的掩码加密装置 | |
Shakir et al. | 3D chaos graph deep learning method to encrypt and decrypt digital image | |
Ahmed et al. | Review on hybrid deep learning models for enhancing encryption techniques against side channel attacks | |
Karthikeyan et al. | FPGA Centric Attention Based Deep Learning Network Evoked Chaotic Encryption to Mitigate Side Channel Attacks | |
Wang et al. | Using Convolutional Neural Network to Redress Outliers in Clustering Based Side-Channel Analysis on Cryptosystem | |
Jiang et al. | Security Attack on Remote Sensing Equipment: PoIs Recognition Based on HW with Bi-LSTM Attention | |
Sumaryanti et al. | Improvement security in e-business systems using hybrid algorithm | |
Chekmarev et al. | Modeling security violation processes in machine learning systems | |
Ryu et al. | $\gamma $-Knife: Extracting Neural Network Architecture Through Software-Based Power Side-Channel | |
Guesmi et al. | Defensive approximation: Enhancing cnns security through approximate computing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |