CN106357378B - 用于sm2签名的密钥检测方法及其系统 - Google Patents
用于sm2签名的密钥检测方法及其系统 Download PDFInfo
- Publication number
- CN106357378B CN106357378B CN201610703132.XA CN201610703132A CN106357378B CN 106357378 B CN106357378 B CN 106357378B CN 201610703132 A CN201610703132 A CN 201610703132A CN 106357378 B CN106357378 B CN 106357378B
- Authority
- CN
- China
- Prior art keywords
- template
- power consumption
- signature
- key
- consumption profile
- 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]
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
一种用于SM2签名的功耗分析方法及其系统,包括:定位模块、模板处理模块、匹配计算模块和密钥恢复模块,其中:定位模块将固定输入的密钥的部分公共信息定位至功耗曲线,同时寻找与公共信息类似的求逆阶段,得到对应的功耗曲线位置;模板处理模块对定位后的公共信息中的功耗曲线进行分类,并对每一类功耗曲线建立模板,计算模板信息;模板匹配模块根据模板处理模块中的模板信息与求逆结果的功耗曲线进行匹配,将匹配正确的结果输入至密钥恢复模块,通过密钥恢复模块得到正确的密钥信息;本发明设计合理,恢复正确率高,能够应用模板攻击而不需要完全控制设备,破除了模板攻击使用时必须知道密钥的壁垒。
Description
技术领域
本发明涉及的是一种计算机安全领域的技术,具体是一种用于SM2签名的密钥检测方法及其系统。
背景技术
在现实中,密码系统通常是以硬件或以硬件为表现形式的软件来实现的,譬如:智能卡、RFID、密码协处理器、SoC密码芯片、密码机。在这些密码系统的实现环境中,攻击者可以观察和测量密码变换的能量消耗、电磁辐射等信息,利用这些额外的信息有可能实现比传统的数学分析更有效的密码破译。这种环境下的攻击通常被人们称为”旁路攻击”(SideChannel Attack)。旁路攻击通常包括简单功耗分析(SPA)和差分功耗分析(DPA)。
其中,DPA攻击是通过记录密码设备对大量不同数据进行加密或解密操作时的功耗曲线,利用统计方法从功耗曲线中恢复出密码设备中的密钥,其分析效果也相对更加有效。DPA的思想能够应用于各种密码算法的分析中,包括对称密码算法和公钥密码算法。通常来说公钥密码算法执行时间更长,其泄露的功耗信息也越多,功耗信息利用方式也呈现多样化。但目前针对公钥ECC方案的分析,大都针对于其核心运算:标量乘运算。
由于标量乘运算是SM2乃至所有ECC方案安全性的基础,研究者们也提出了许多种针对标量乘运算的分析方法,包括:传统的DPA分析、水平分析以及水平碰撞分析等。为了防护这些分析方法,标量乘运算的实现方案也越来越安全,使得分析者很难从标量乘运算上获得有用信息。
如图1所示,基于椭圆曲线签名方案的SM2包含三大部分:标量乘运算、生成签名部分值r、生成整个签名对(r,s)。在生成整个签名对的过程中,存在针对密钥的求逆操作,即:(d+1)-1mod n,其中:d为签名的私钥且为不少于160bytes的大数,n为已知的SM2签名方案的公共参数。求逆操作(d+1)-1mod n有两种实现方式,一种为扩展欧几里德算法,该实现方式需消耗更多的硬件资源包括寄存器和电路面积;另一种通过模幂实现,即:(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为SM2标量乘运算中的随机数;如此一来,r×d运算就在求逆操作中消失了,也无法进行分析;而大多数SM2防护,都是针对标量乘和签名生成阶段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签名的部分公共信息定位到签名求逆阶段,得到该部分公共信息在求逆阶段的泄露位置;确定签名输出阶段r或s的位置,然后根据r或s的单字节值对泄露位置的功耗曲线进行分类,建立每一类功耗曲线的单字节值的模板;再将待测密钥的部分公共信息在求逆输出阶段的功耗曲线与模板进行匹配,匹配正确后即得待测密钥的求逆结果,完成模板攻击;最后根据求逆结果恢复所有字节信息,对所有字节信息求逆后减1,恢复密钥信息。
所述的定位是指:确定求逆位置和r或s输出后将完成标量乘运算后生成的部分与r或s的功耗曲线做相关性分析。
所述的单字节模板为:hi=(mi,Ci),i∈[0,255],其中:hi为值为i的模板,mi为功耗曲线的均值,Ci为功耗曲线的协方差矩阵。
所述的匹配的依据为:其中:p为功耗曲线与模板的匹配概率,t为被测功耗曲线。
所述的匹配候选正确值为:v*=argmaxi(p(t;hi)),其中:v*为匹配候选正确值,maxi()为所有i中概率最大值。
本发明涉及一种实现上述方法的检测系统,包括:定位模块、模板处理模块、匹配计算模块和密钥恢复模块,其中:定位模块将随机输入签名结果中的公共信息通过相关性进行定位,并通过签名结果输出部分的功耗特征定位至签名的求逆阶段;模板处理模块对定位模块中的功耗曲线进行分类,并对每一类功耗曲线建立模板,计算模板信息;模板匹配模块根据模板处理模块中的模板信息与待测密钥对应的功耗曲线进行匹配,将匹配正确的结果输入至密钥恢复模块,通过密钥恢复模块得到正确的密钥信息。
技术效果
与现有技术相比,本发明通过模板攻击和线下计算,不需要知道密钥或者攻击者控制一台与待测密码系统完全相同或类似的设备,即可通过其公共信息建立模板进行模板攻击,恢复最终密钥;本发明关注点在于SM2签名算法中防护方案的短板,即在标量乘运算与签名生成阶段添加了防护,针对求逆结果的分析仍然能够恢复出签名的私钥;为SM2签名算法的安全防护提供新的方向。
附图说明
图1为SM2签名流程图;
图2为密钥检测方法示意图;
图3为SM2签名的生成与求逆的存储功耗曲线;
图4为SM2签名的生成与求逆的存储功耗曲线部分放大图;
图5为求逆结果单字节功耗噪声分布图;
图6为签名结果单字节功耗噪声分布图;
图7为恢复成功率图;
图8为检测系统示意图。
具体实施方式
下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
实施例1
如图2所示,本实施例包括以下步骤:
步骤1、向密码系统中随机输入明文,循环执行SM2签名,将部分公共信息r定位到签名的求逆阶段,得到r在求逆阶段的泄露位置。
所述的定位是指:确定求逆位置和r或s输出后将完成标量乘运算后生成的部分与r或s的功耗曲线做相关性分析。
由于r或s的输出与求逆输出具有相同模式,因此两者都较易识别定位。
如图3和图4所示,求逆输出阶段和签名输出阶段的功耗曲线具有相似的行为模式,即”计算‐存储”,并且两者在功耗表现上模式也相同。在[1950,2150]的区间范围内,两者功耗体现出高度相似,而该处细微的差异则是由于噪声以及数据值不同造成的。
步骤2、根据单字节值对步骤1中的泄露位置的功耗曲线进行分类,建立每一类功耗曲线的单字节值的模板。
所述的单字节模板为:hi=(mi,Ci),i∈[0,255],其中:hi为值为i的模板,mi为功耗曲线的均值,Ci为功耗曲线的协方差矩阵。
步骤3、将待测密钥的部分公共信息r′在求逆阶段的功耗曲线与模板进行匹配,匹配正确后即得待测密钥的求逆结果。
所述的匹配的依据为:其中:p为功耗曲线与模板的匹配概率,t为被测功耗曲线。
所述的匹配候选正确值为:v*=argmaxi(p(t;hi)),其中:v*为匹配候选正确值,maxi()为所有i中概率最大值。
步骤4、根据步骤3得到的求逆结果恢复所有字节信息,结合已知模数进行线下计算,恢复待测密钥信息。
如图8所示,本实施例涉及上述密钥检测方法的系统,包括:定位模块、模板处理模块、匹配计算模块和密钥恢复模块,其中:定位模块将随机输入签名结果中的公共信息通过相关性进行定位,并通过签名结果输出部分的功耗特征定位至签名的求逆阶段;模板处理模块对定位模块中的功耗曲线进行分类,并对每一类功耗曲线建立模板,计算模板信息;模板匹配模块根据模板处理模块中的模板信息与待测密钥对应的功耗曲线进行匹配,将匹配正确的结果输入至密钥恢复模块,通过密钥恢复模块得到正确的密钥信息。
本实施例提出了一种新的信息利用方式,并寻找到了该信息利用的基础,即:SM2签名算法中不同位置的存储操作具有相同的存储模式及存储硬件。相同的存储模式及存储硬件是指在同一平台上实现的SM2签名算法如ASIC或FGPA,它们在存储器的硬件结构及存储模式上是相同的,只是在不同的时间发生存储行为。
所述的在不同的时间发生存储行为,是指在标量乘运算后存储结果坐标、计算得到签名部分公共信息r并进行存储、大数求逆结果存储及其他中间值计算的存储行为。基于不同时间的存储行为,其硬件表现形式相同,那么其功耗泄露情况也相似。
所述的功耗泄露情况相似,是指其在不同位置的泄露符合模板攻击的基本假设,即高斯噪声符合相同的分布,如图5和6所示。其中图5展示了签名输出阶段单点泄露最大值的噪声分布情况,而图6展示了求逆输出阶段单点泄露最大值的噪声分布情况。可以看到,两处几乎服从相同的分布,因此模板攻击能够发挥作用。
基于模板攻击,可以利用部分签名结果r的信息来建立模板,恢复(d+1)-1mod n结果后,再执行线下计算(((d+1)-1)-1mod n)-1,即可得到全部签名密钥。
所述的SM2签名方案中大数求逆,针对固定密钥值,其求逆结果相同。这意味着,对于SM2签名算法中大数求逆的模板匹配,能够运用多条曲线进行分析,能够保障其匹配的成功率,如图7所示,在实验情况下100条曲线即可达到95%的成功率。
本实施例对于SM2签名方案中高阶防护如标量运算的防护及签名生成时的防护都能产生有效攻击。
Claims (5)
1.一种用于SM2签名的密钥检测方法,其特征在于,通过将待测密码系统生成的SM2签名的部分公共信息定位到签名求逆阶段,得到该部分公共信息在求逆阶段的泄露位置,即向密码系统中随机输入明文,循环执行SM2签名,将部分公共信息r定位到签名的求逆阶段,得到r在求逆阶段的泄露位置;确定签名输出阶段r或s的位置,然后根据r或s的单字节值对泄露位置的功耗曲线进行分类,建立每一类功耗曲线的单字节值的模板;再将待测密钥的部分公共信息r′在求逆阶段的功耗曲线与模板进行匹配,匹配正确后即得待测密钥的求逆结果,完成模板攻击;最后根据求逆结果恢复所有字节信息,对所有字节信息求逆后减1,恢复密钥信息;
所述的定位是指:确定求逆位置和r或s输出后将完成标量乘运算后生成的部分与r或s的功耗曲线做相关性分析。
2.根据权利要求1所述的用于SM2签名的密钥检测方法,其特征是,所述的单字节模板为:hi=(mi,Ci),i∈[0,255],其中:hi为值为i的模板,mi为功耗曲线的均值,Ci为功耗曲线的协方差矩阵。
3.根据权利要求1所述的用于SM2签名的密钥检测方法,其特征是,所述的匹配的依据为:其中:p为功耗曲线与模板的匹配概率,t为被测功耗曲线。
4.根据权利要求1所述的用于SM2签名的密钥检测方法,其特征是,所述的匹配候选正确值为:v*=argmaxi(p(t;hi)),其中:v*为匹配候选正确值,maxi()为所有i中概率最大值。
5.一种实现如权利要求1~4中任一所述方法的检测系统,其特征在于,包括:定位模块、模板处理模块、匹配计算模块和密钥恢复模块,其中:定位模块将随机输入签名结果中的公共信息通过相关性进行定位,并通过签名结果输出部分的功耗特征定位至签名的求逆阶段;模板处理模块对定位模块中的功耗曲线进行分类,并对每一类功耗曲线建立模板,计算模板信息;模板匹配模块根据模板处理模块中的模板信息与待测密钥对应的功耗曲线进行匹配,将匹配正确的结果输入至密钥恢复模块,通过密钥恢复模块得到正确的密钥信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610703132.XA CN106357378B (zh) | 2016-08-22 | 2016-08-22 | 用于sm2签名的密钥检测方法及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610703132.XA CN106357378B (zh) | 2016-08-22 | 2016-08-22 | 用于sm2签名的密钥检测方法及其系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106357378A CN106357378A (zh) | 2017-01-25 |
CN106357378B true CN106357378B (zh) | 2019-04-05 |
Family
ID=57843686
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610703132.XA Active CN106357378B (zh) | 2016-08-22 | 2016-08-22 | 用于sm2签名的密钥检测方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106357378B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106712968B (zh) * | 2017-02-22 | 2019-08-30 | 北京智慧云测科技有限公司 | 密钥获取方法、数字签名方法和装置 |
CN109787741B (zh) * | 2017-11-15 | 2023-08-08 | 紫光同芯微电子有限公司 | 一种优化的智能卡密码算法模板攻击方法 |
CN111931176B (zh) * | 2020-09-29 | 2021-01-22 | 网御安全技术(深圳)有限公司 | 防御侧信道攻击的方法、装置及可读存储介质 |
CN113255010B (zh) * | 2021-05-21 | 2022-03-15 | 郑州信大捷安信息技术股份有限公司 | 一种用于协同签名及解密产品的检测方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1946204B1 (en) * | 2005-10-28 | 2010-04-28 | Telecom Italia S.p.A. | A method for scalar multiplication in elliptic curve groups over binary polynomial fields for side-channel attack-resistant cryptosystems |
CN104683102A (zh) * | 2013-11-29 | 2015-06-03 | 上海复旦微电子集团股份有限公司 | 一种sm2签名计算方法和装置 |
CN105868266A (zh) * | 2016-01-27 | 2016-08-17 | 电子科技大学 | 一种基于聚类模型的高维数据流离群点检测方法 |
-
2016
- 2016-08-22 CN CN201610703132.XA patent/CN106357378B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1946204B1 (en) * | 2005-10-28 | 2010-04-28 | Telecom Italia S.p.A. | A method for scalar multiplication in elliptic curve groups over binary polynomial fields for side-channel attack-resistant cryptosystems |
CN104683102A (zh) * | 2013-11-29 | 2015-06-03 | 上海复旦微电子集团股份有限公司 | 一种sm2签名计算方法和装置 |
CN105868266A (zh) * | 2016-01-27 | 2016-08-17 | 电子科技大学 | 一种基于聚类模型的高维数据流离群点检测方法 |
Non-Patent Citations (2)
Title |
---|
一种针对 RSA-CRT 的功耗分析攻击方法;成为等;《通信技术》;20110630;全文 |
抗攻击的SMS4密码算法集成电;徐艳华;《中国优秀硕士学位论文全文数据库》;20100715;全文 |
Also Published As
Publication number | Publication date |
---|---|
CN106357378A (zh) | 2017-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Batina et al. | {CSI}{NN}: Reverse engineering of neural network architectures through electromagnetic side channel | |
Carlini et al. | Cryptanalytic extraction of neural network models | |
Martinasek et al. | Innovative method of the power analysis | |
CN106357378B (zh) | 用于sm2签名的密钥检测方法及其系统 | |
CN108604981B (zh) | 用于估计秘密值的方法和设备 | |
KR20170098733A (ko) | 2차 이상의 부채널 분석에 대한 회로의 저항력을 테스트하는 방법 | |
EP2207087A1 (en) | Method for protecting a cryptographic device against SPA, DPA and timing attacks | |
CN104836666A (zh) | 一种针对sm2解密算法的能量分析攻击的方法 | |
EP3040901A1 (en) | System and method for aligning time-series data over a large range of time indices | |
Longo et al. | Simulatable leakage: Analysis, pitfalls, and new constructions | |
CN111835518A (zh) | 椭圆曲线公钥密码算法安全性测评中的错误注入方法及系统 | |
Batina et al. | Poster: Recovering the input of neural networks via single shot side-channel attacks | |
Aljuffri et al. | Applying thermal side-channel attacks on asymmetric cryptography | |
Martínez Padilla et al. | Security evaluation of Tree Parity Re-keying Machine implementations utilizing side-channel emissions | |
CN111934852A (zh) | 一种基于神经网络的aes密码芯片电磁攻击方法及系统 | |
Taouil et al. | Power side channel attacks: Where are we standing? | |
Jayasena et al. | TVLA*: Test vector leakage assessment on hardware implementations of asymmetric cryptography algorithms | |
CN105119929B (zh) | 单一恶意云服务器下的安全模指数外包方法及系统 | |
Ahmed et al. | Design of Lightweight Cryptography based Deep Learning Model for Side Channel Attacks | |
CN106301756B (zh) | 用于sm2签名的大数模幂求逆功耗检测方法及其系统 | |
CN105897401B (zh) | 基于比特的通用差分功耗分析方法及系统 | |
Cao et al. | Two lattice-based differential fault attacks against ECDSA with w NAF algorithm | |
Ahmed et al. | Detection of Crucial Power Side Channel Data Leakage in Neural Networks | |
Kabin et al. | Resistance of the Montgomery kP Algorithm against Simple SCA: Theory and Practice | |
CN105743644B (zh) | 一种多变量二次方程的掩码加密装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |