CN104780051B - 针对sm2公钥密码加密算法的侧信道攻击的方法 - Google Patents
针对sm2公钥密码加密算法的侧信道攻击的方法 Download PDFInfo
- Publication number
- CN104780051B CN104780051B CN201510199567.0A CN201510199567A CN104780051B CN 104780051 B CN104780051 B CN 104780051B CN 201510199567 A CN201510199567 A CN 201510199567A CN 104780051 B CN104780051 B CN 104780051B
- Authority
- CN
- China
- Prior art keywords
- attack
- curve
- public key
- energy
- channel
- 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
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开了一种针对SM2公钥密码加密算法的侧信道攻击的方法,其核心在于进行SM2公钥加密算法的侧信道攻击的过程中,选择C2=M⊕t作为攻击点,将M作为攻击的对象、t作为攻击的中间数据实施侧信道攻击,即可获取被加密的信息。针对SM2公钥密码加密算法,本发明不仅破解了加密运算的加密信息,而且提高了被攻击的信息与泄露信息之间的相关性,增强了灵活性、有效性和成功率。
Description
技术领域
本发明涉及密码算法分析检测领域,尤其涉及针对SM2公钥密码加密算法的侧信道攻击的方法。
背景技术
随着信息和分析电路技术的发展,对硬件密码电子设备的破解不再单纯的停留在协议和算法上,而是从其处理数据的过程中泄露的信息入手,进行破解。硬件密码电子设备在处理信息的工程中存在能量、电磁、错误和时间等信息的泄露,利用这些泄露的信息对密码电子设备进行攻击,就是所谓的侧信道攻击(Side Channel Attacks),侧信道攻击可分为能量分析攻击、电磁攻击和错误攻击等,其中能量分析攻击因效率较高,成为侧信道的主要手段。
侧信道攻击是通过采集加密芯片等硬件密码电子设备在进行加、解密或签名等操作时产生的能量消耗或者电磁,利用密码学和统计学原理等,分析和破译密钥信息的一种攻击方式,侧信道能量/电磁分析攻击又分为简单能量/电磁分析攻击、差分能量/电磁分析攻击和相关性能量/电磁分析攻击。
在侧信道能量分析攻击中,差分能量/电磁分析攻击的过程如下:
(1)随机选择N组不相同明文或密文Mi (i∈[1,N])进行加/解密运算,采集每组明文进行加密运算时设备产生的能量曲线/电磁曲线Ti (t),t∈{1,…,k},其中k为能量轨迹的采样点数。
(2)选择密钥Ki(l∈Ω,Ω为密钥空间),计算在Ki和Mi条件下,密码算法进行加密运算时在被攻击点产生的中间值Di,l。
(3)根据中间值Di,l确定选择函数F(Mi, Ki),根据选择函数将Ti (t)分为两个子集S0和S1,定义式如下:
={Ti(t)|F(Mi, Ki)=0}
={Ti(t)|F(Mi, Ki)=1}
(4)计算每个采样点上两个子集的能量/电磁平均之差,如S= -所示,其中|S0|和|S1|分别表示集合S0和S1中元素的个数。
若Ki选择不正确,当N比较大时,两个子集均值差S将趋近于零;若Ki选择正确,在均值差S中将会出现一个最大尖峰,通过该尖峰即可确定Ki选择正确。
相关性能量/电磁分析攻击的过程如下:
(1)随机选择N组不相同明文或密文Mi (i∈[1,N])进行加/解密运算,采集每组明文进行加密运算时设备产生的能量曲线/电磁曲线Ti(t),t∈{1,…,k},其中k为能量轨迹的采样点数。
(2)选择密钥Ki(l∈Ω,Ω为密钥空间),计算在Ki和Mi条件下,密码算法进行加密运算时在被攻击点产生的中间值Di,l。
(3)取中间值Di,l的汉明距离或者汉明重量建立能量模型hi,l,根据
=式计算Ti和hi相关性ρl。
(4)取相关系数最大值时对应的Ki,即为实际密钥。
国家密码管理局于2010年12月17日发布了SM2椭圆曲线公钥密码算法,并要求为对现有基于RSA算法的加解密系统、电子认证系统、密钥管理系统、应用系统进行升级改造。
SM2公钥密码加密算法规定发送者用接收者的公钥将消息加密成密文,接收者用在自己的私钥对收到的密文进行解密还原成原始消息。
设需要发送的消息为比特串M,klen为M的比特长度。
为了对明文M进行加密,作为加密者的用户A应实现以下运算步骤(如图1):
A1:用随机数发生器产生随机数k[1,n-1];
A2:计算椭圆曲线点C1=[k]G=(x1,y1),按照SM2椭圆曲线公钥密码算法中的字节串到比特串的转换和点到字节串的转换规则,将C1的数据类型转换为比特串;
A3:计算椭圆曲线点S=[h]PB,若S是无穷远点,则报错退出;
A4:计算椭圆曲线点[k]PB =( x2,y2),按照SM2椭圆曲线公钥密码算法中的字节串到比特串的转换和域元素到字节串的转换规则,将坐标x2、y2的数据类型转换为比特串;
A5:计算t=KDF(x2|| y2,klen),若t为全0比特串,则返回A1;
A6:计算C2=M⊕t;
A7:计算C3=Hash(x2|| M||y2);
A8:输出密文C= C1|| C2||C3。
发明内容
本发明的目的是提供一种针对SM2公钥密码加密算法的侧信道攻击的方法,已解决没有SM2公钥密码加密算法的私钥的情况下,无法从现有SM2椭圆曲线公钥密码加密运算中获取被加密的秘密信息的问题。
为解决上述技术问题,针对SM2公钥密码加密算法的侧信道攻击的方法,攻击流程图如图2所示,具体包括以下步骤:
S1:获取设备对被攻击信息进行加密运算时的能量曲线/电磁曲线Tn(t),采集到的总的曲线条数为N,以及对应的密文输出Cn,Cn=Cn,1||Cn,2||Cn,3;
S2:选择加密运算过程中的Cn,2=M⊕t作为攻击点,将将M作为攻击的对象,t作为攻击的中间数据实施侧信道攻击,即可获取被加密的信息。
进一步地,S2中采用的侧信道攻击方法为相关性能量/电磁分析攻击方法包括以下步骤:
S211:取M的二进制比特长度为k,攻击的二进制比特长度为L,攻击的起始比特位j=1;
S212:获取Mj,j+L-1的所有可能值,表示为m∈[0,2L-1]),根据m和第n条曲线对应的密文Cn,计算攻击的中间数据t=m⊕Cn,2,能量模型选择汉明重量模型,则计算t的汉明重量,表示为hn,c=HW(t);
S213:根据计算Tn(t)和hn,C,m的相关性系数ρn,c,m;
S214:取相关系数最大值时对应的m,即为Mj,j+L-1对应的实际数据;
S215:使j=j+L,如果j+L-1≥k,取L=k-j+1,否则L保持不变,跳转到步骤S212继续攻击M剩余的比特数据,直到M的所有比特被攻击完为止。
进一步地,S2中采用的侧信道攻击方法为差分能量/电磁分析攻击方法包括以下步骤:
S221:取M的二进制比特长度为k,攻击的二进制比特长度为L,攻击的起始比特位j=1;
S222:获取Mj,j+L-1的所有可能值,表示为m∈[0,2L-1]),根据m和第n条曲线对应的密文Cn,计算攻击的中间数据t=m⊕Cn,2,能量模型选择汉明重量模型,则计算t的汉明重量,表示为hn,c=HW(t);
S223:如果L=1,确定差分选择函数F(Cn,m,hn,c)=;如果L不为1,确定差分选择函数为:F(Cn,m,hn,c)=;
S224:根据选择函数将Tn(t)分为两个子集S0和S1,S0和S1定义式如下所示:
S0={Ti(t)| F(Cn,m,hn,c) =0},
S1={ Ti(t)| F(Cn,m,hn,c)=1};
S225:根据S= - 计算每个采样点上两个子集的能量/电磁平均之差,在均值差S中出现一个最大尖峰时对应的m,即为Mj,j+L-1对应的实际数据;
S226:使j=j+L,如果j+L-1≥k,取L=k-j+1,否则L保持不变,跳转到步骤S222继续攻击M剩余的比特数据,直到M的所有比特被攻击完为止。
本发明的有益效果为:本方法创造性的使用侧信道攻击解决了没有SM2椭圆曲线公钥密码加密的私钥的情况下,破解SM2椭圆曲线公钥密码加密的信息,此外本方法选取了恰当的攻击对象,提高了采样能量信息的信噪比和分析的成功率,本方法创造性地选择C2=M⊕t作为侧信道分析攻击的攻击点,提高了正确的猜测秘密信息和泄露信息之间的相关性,增强了分析有效性和成功率,本方法可以根据实际的计算能力,选择合适长度的比特进行攻击,从而增强了分析灵活性、有效性和成功率。
附图说明
图1为SM2公钥密码加密算法流程图;
图2为针对SM2公钥密码加密算法的侧信道攻击方法的流程图。
Claims (1)
1.针对SM2公钥密码加密算法的侧信道攻击的方法,其特征在于所述方法包括以下步骤:
S1:获取设备对被攻击信息进行加密运算时的能量曲线/电磁曲线Tn(t),采集到的总的曲线条数为N,以及对应的密文输出Cn,Cn=Cn,1||Cn,2||Cn,3;
S2:选择加密运算过程中的作为攻击点,将M作为攻击的对象,t作为攻击的中间数据实施侧信道攻击,即可获取被加密的信息,侧信道攻击为相关性能量/电磁分析攻击方法,攻击步骤如下:
S211:取M的二进制比特长度为k,攻击的二进制比特长度为L,初始化攻击的起始比特位j=1;
S212:获取Mj,j+L-1的所有可能值,表示为m∈[0,2L-1],根据m和第n条曲线对应的密文Cn,计算攻击的中间数据能量模型选择汉明重量模型,则计算t的汉明重量,表示为hn,C,m=HW(t);
S213:根据计算Tn(t)和hn,C,m的相关性系数ρn,c,m,,其中表示汉明重量均值,表示N条能量曲线/电磁曲线均值;
S214:取相关系数最大值时对应的m,即为Mj,j+L-1对应的实际数据;
S215:使j=j+L,如果j+L-1≥k,取L=k-j+1,否则L保持不变,跳转到步骤S212继续攻击M剩余的比特数据,直到M的所有比特被攻击完为止。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510199567.0A CN104780051B (zh) | 2015-04-24 | 2015-04-24 | 针对sm2公钥密码加密算法的侧信道攻击的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510199567.0A CN104780051B (zh) | 2015-04-24 | 2015-04-24 | 针对sm2公钥密码加密算法的侧信道攻击的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104780051A CN104780051A (zh) | 2015-07-15 |
CN104780051B true CN104780051B (zh) | 2019-04-12 |
Family
ID=53621310
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510199567.0A Active CN104780051B (zh) | 2015-04-24 | 2015-04-24 | 针对sm2公钥密码加密算法的侧信道攻击的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104780051B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108123790B (zh) * | 2016-11-30 | 2021-01-19 | 深圳先进技术研究院 | 一种侧信道攻击方法及装置 |
CN106685662B (zh) * | 2016-12-23 | 2019-09-24 | 中国电子科技集团公司第三十研究所 | 一种基于余数系统的商密sm2加密算法的白盒软件实现方法 |
CN106850223B (zh) * | 2017-03-02 | 2020-01-17 | 中国科学院信息工程研究所 | 一种基于信息泄露的公钥密码系统的私钥获取方法 |
CN109714310A (zh) * | 2018-11-07 | 2019-05-03 | 苏州蜗牛数字科技股份有限公司 | 一种sim卡的侧信道抗攻击方法 |
CN111211886B (zh) * | 2020-04-20 | 2020-07-14 | 成都信息工程大学 | 针对sm2解密算法的能量分析检测方法 |
CN116743505B (zh) * | 2023-08-14 | 2023-10-20 | 上海特高信息技术有限公司 | 一种基于国密的安全传输加密方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101908111A (zh) * | 2010-07-26 | 2010-12-08 | 武汉大学 | 一种利用dpa曲线极性进行密钥提取的方法及系统 |
CN103560877A (zh) * | 2013-11-01 | 2014-02-05 | 中国电子科技集团公司第十五研究所 | 攻击密钥的方法及装置 |
CN104202145A (zh) * | 2014-09-04 | 2014-12-10 | 成都信息工程学院 | 针对sm4密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101527867B1 (ko) * | 2007-07-11 | 2015-06-10 | 삼성전자주식회사 | 타원 곡선 암호 시스템에 대한 부채널 공격에 대응하는방법 |
JP5839659B2 (ja) * | 2011-06-20 | 2016-01-06 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
-
2015
- 2015-04-24 CN CN201510199567.0A patent/CN104780051B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101908111A (zh) * | 2010-07-26 | 2010-12-08 | 武汉大学 | 一种利用dpa曲线极性进行密钥提取的方法及系统 |
CN103560877A (zh) * | 2013-11-01 | 2014-02-05 | 中国电子科技集团公司第十五研究所 | 攻击密钥的方法及装置 |
CN104202145A (zh) * | 2014-09-04 | 2014-12-10 | 成都信息工程学院 | 针对sm4密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法 |
Non-Patent Citations (2)
Title |
---|
密码芯片能量分析攻击;李伟键;《2011年全国通信安全学术会议论文集》;20111231;全文 |
针对SMS4 轮输出的选择明文能量分析攻击;王敏,杜之波,吴震,饶金涛;《通信学报》;20150131;第36卷(第1期);全文 |
Also Published As
Publication number | Publication date |
---|---|
CN104780051A (zh) | 2015-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104780051B (zh) | 针对sm2公钥密码加密算法的侧信道攻击的方法 | |
Dubrova et al. | Breaking a fifth-order masked implementation of crystals-kyber by copy-paste | |
CN104202145B (zh) | 针对sm4密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法 | |
CN110235409B (zh) | 使用同态加密被保护的rsa签名或解密的方法 | |
EP1834438B1 (en) | Cryptography related to keys | |
CN101977112B (zh) | 一种基于神经网络混沌吸引子的公钥密码加密和解密方法 | |
CN110113155B (zh) | 一种高效无证书公钥加密方法 | |
Ngo et al. | Breaking masked and shuffled CCA secure Saber KEM by power analysis | |
CN108833390B (zh) | 一种基于矩阵变换的分组物理层加密方法 | |
US8331558B2 (en) | Method of cipher block chaining using elliptic curve cryptography | |
CN107682151A (zh) | 一种gost数字签名生成方法及系统 | |
CN115801224B (zh) | 一种云计算环境中支持浮点数运算的全同态加密方法 | |
CN104753665A (zh) | 一种针对sm4密码轮函数输出的侧信道能量攻击方法 | |
CN104463766A (zh) | 一种基于eca状态环的qr码加密和解密方法 | |
Jia et al. | A New Method of Encryption Algorithm Based on Chaos and ECC. | |
CN114826587A (zh) | 一种数据加密方法、解密方法及其装置、设备 | |
CN103427980A (zh) | 一种基于双矩阵变换的ofdm系统物理层安全算法 | |
CN103812658B (zh) | 一种基于流密码的安全通信协议 | |
Ji et al. | A Side-Channel Attack on a Masked Hardware Implementation of CRYSTALS-Kyber | |
Lee et al. | Pingpong-128, a new stream cipher for ubiquitous application | |
Stöttinger et al. | Side-channel resistance evaluation of a neural network based lightweight cryptography scheme | |
US20130058483A1 (en) | Public key cryptosystem and technique | |
Hisbullah et al. | Hybrid Encryption Based on Fernet and Rivest Shamir Adleman (RSA) | |
Lahraoui et al. | Securing Data Exchange with Elliptic Curve Cryptography: A Novel Hash-Based Method for Message Mapping and Integrity Assurance | |
Vigila et al. | A new elliptic curve cryptosystem for securing sensitive data applications |
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 |