CN101908111B - 一种利用dpa曲线极性进行密钥提取的方法及系统 - Google Patents

一种利用dpa曲线极性进行密钥提取的方法及系统 Download PDF

Info

Publication number
CN101908111B
CN101908111B CN2010102399075A CN201010239907A CN101908111B CN 101908111 B CN101908111 B CN 101908111B CN 2010102399075 A CN2010102399075 A CN 2010102399075A CN 201010239907 A CN201010239907 A CN 201010239907A CN 101908111 B CN101908111 B CN 101908111B
Authority
CN
China
Prior art keywords
polarity
dpa
peak value
power consumption
curve
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
Application number
CN2010102399075A
Other languages
English (en)
Other versions
CN101908111A (zh
Inventor
唐明
伍前红
张焕国
高思
窦青
沈菲
李渡
张驭宇
王国熹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan University WHU
Original Assignee
Wuhan University WHU
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan University WHU filed Critical Wuhan University WHU
Priority to CN2010102399075A priority Critical patent/CN101908111B/zh
Publication of CN101908111A publication Critical patent/CN101908111A/zh
Application granted granted Critical
Publication of CN101908111B publication Critical patent/CN101908111B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明涉及信息安全技术领域,尤其涉及一种利用DPA曲线极性进行密钥提取的方法。本发明包括测试要攻击的芯片,获得AES在该芯片上的具体实现情况下,每个bit产生DPA峰值的极性,获得攻击位置每个bit的DPA峰值极性,利用明文,对加密过程的中间状态进行划分,得出峰值极性,通过原始DPA极性数组与攻击DPA极性数组进行异或,从而得到密钥。本发明通过改良原始DPA攻击方法,利用DPA攻击中的峰值的极性,在提取原始DPA极性的基础上,完成极性DPA极性的提取,并将两者进行异或操作,从而进行密钥提取,与原始DPA攻击相比,本发明提出的方法在时间复杂度上有明显的改善。

Description

一种利用DPA曲线极性进行密钥提取的方法及系统
技术领域
本发明涉及信息安全技术领域,尤其涉及一种利用DPA曲线极性进行密钥提取的方法及系统。
背景技术
现今计算机的广泛应用,给我们带来了巨大的社会、经济效益,但同时也暴露了计算机信息安全方面的脆弱性,而其中密码是信息安全的关键所在。通过对密码进行分析,可以得到通信双方的通信内容,从而窃取别人的隐私等。因此,一个好的密码算法,需要有较好的抗攻击性。
相较传统意义上的密码分析,旁路式攻击(Side Channel Attack,SCA)是针对密码体制具体实现来获得有用的信息。其中包括TA、DPA、DFA、SPA等多种旁路式攻击。这类攻击较之其他的攻击方式,具有更隐蔽、更快速的特点。自提出以来,对很多密码系统的安全性构成了严重的威胁,而其中的能量攻击(PowerAttack,PA)以其容易实施、复杂度低等特点成为研究的热点。在参考文献1中,Paul Kocher首先提出了利用不同指令消耗能量不同来推测处理器正在执行的指令,从而获取信息的简单功耗攻击(Simple Power Analysis,SPA);进而提出了利用功耗与运算数据的相关性攻击的差分功耗攻击(Differential Power Analysis,DPA)。
在Paul Kocher提出的原始DPA攻击中,利用DPA差分所得的功耗曲线是否有峰值来判断是否猜测到了部分正确的密钥,而所得到的峰值的大小、极性并没有利用。而这里所提出的极性DPA攻击是对原始DPA攻击进行的改良。我们试图利用DPA峰值的极性,以降低原始DPA攻击的复杂度,从而更容易完成对密码的分析,得到正确密钥。
参考文献1:《Differential Power Analysis》,Paul Kocher,Joshua Jae,and Benjamin JunDifferential Power Analysis.Crypto99
发明内容
针对上述存在的技术问题,本发明的目的是提供一种利用DPA曲线极性进行密钥提取的方法及系统,利用DPA分析中曲线的正负极性,进行加密算法中密钥的分析与提取,本方法可用于对硬件加密设备或系统中已有密钥的提取,并可用于对硬件设备物理安全性的评价。
为达到上述目的,本发明采用如下的技术方案:
一种利用DPA曲线极性进行密钥提取的方法,包括:
测试要攻击的芯片,获得AES在该芯片上的具体实现情况下,每个bit产生DPA峰值的极性,获得攻击位置每个bit的DPA峰值极性;
利用明文,对加密过程的中间状态进行划分,得出峰值极性;
通过原始DPA极性数组与攻击DPA极性数组进行异或,从而得到密钥。
所述测试要攻击的芯片,获得AES在该芯片上的具体实现情况下,每个bit产生DPA峰值的极性,获得攻击位置每个bit的DPA峰值极性的步骤进一步包括以下子步骤:
①密钥寄存器清零或已知密钥值K;
②生成随机明文,利用芯片加密,记录功耗曲线组P[1..M][1..N]
其中,N为功耗曲线上的采样点数,M为功耗曲线条数,每条曲线上有N个采样点,一共记录M组功耗曲线;
③由于
Figure BSA00000210286000021
已知Plain[i]和K[127:0]相当于已知X[i][127:0],利用X[i][j]做划分,得到曲线集合P1{P[i][1..N]|X[i][j]=1}和P0{P[i][1..N]|X[i][j]=0},其中,X表示加密过程的中间状态,i表示使用的明文-功耗分组,j表示攻击的bit;其中Plain表示明文,K表示密钥,X表示加密过程的中间状态。
④计算ΔDj,获得bitj对应的DPA曲线以及峰值的极性,其中ΔDj表示第j bit DPA攻击所得到的DPA峰值;
⑤重复步骤③、④,得到全部128bit峰值极性,记做原始DPA极性数组pole[127:0]。
所述利用明文,对加密过程的中间状态进行划分,得出峰值极性的步骤进一步包括以下子步骤:
①生成随机明文,利用芯片加密,记录功耗曲线组P[1..M][1..N]
其中,N为功耗曲线上的采样点数,M为功耗曲线条数,每条曲线上有N个采样点,一共记录M组功耗曲线;
②由于由于Plain已知,利用Plain[j]做划分,得到曲线集合P0{P[i][1..N]|Plain[i][j]=0}和P0{P[i][1..N]|Plain[i][j]=0},其中,X表示加密过程的中间状态,i表示使用的明文-功耗分组,j表示攻击的bit;
③计算ΔDj_P,获得bitj对应的DPA曲线以及峰值的极性,ΔDj_P表示用Plain划分得到的ΔDj;
④重复步骤③、④,得到全部128bit峰值极性,记做pole_Attack[127:0]其中,pole_Attack表示攻击DPA极性数组。
所述通过原始DPA极性数组与攻击DPA极性数组进行异或,具体为:
直接用
Figure BSA00000210286000031
获得密钥。
一种利用DPA曲线极性进行密钥提取的系统,包括:
第一模块,用于测试要攻击的芯片,获得AES在该芯片上的具体实现情况下,每个bit产生DPA峰值的极性,获得攻击位置每个bit的DPA峰值极性;
第二模块,用于利用明文,对加密过程的中间状态进行划分,得出峰值极性;
第三模块,用于通过原始DPA极性数组与攻击DPA极性数组进行异或,从而得到密钥。
所述第一模块进一步包括以下子模块:
①密钥寄存器清零或已知密钥值K的子模块;
②生成随机明文,利用芯片加密,记录功耗曲线组P[1..M][1..N]的子模块
其中,N为功耗曲线上的采样点数,M为功耗曲线条数,每条曲线上有N个采样点,一共记录M组功耗曲线;
③由于
Figure BSA00000210286000032
已知Plain[i]和K[127:0]相当于已知X[i][127:0],利用X[i][j]做划分,得到曲线集合P1{P[i][1..N]|X[i][j]=1}和P0{P[i][1..N]|X[i][j]=0}的子模块,其中,X表示加密过程的中间状态,i表示使用的明文-功耗分组,j表示攻击的bit;
④计算ΔDj,获得bitj对应的DPA曲线以及峰值的极性的子模块,其中ΔDj表示第j bitDPA攻击所得到的DPA峰值;
⑤重复子模块③、④,得到全部128bit峰值极性,记做原始DPA极性数组pole[127:0]的子模块。
所述第二模块进一步包括以下子模块:
①生成随机明文,利用芯片加密,记录功耗曲线组P[1..M][1..N]的子模块
其中,N为功耗曲线上的采样点数,M为功耗曲线条数,每条曲线上有N个采样点,一共记录M组功耗曲线;
②由于由于Plain已知,利用Plain[j]做划分,得到曲线集合P0{P[i][1..N]|Plain[i][j]=0}和P0{P[i][1..N]|Plain[i][j]=0}的子模块,其中,X表示加密过程的中间状态,i表示使用的明文-功耗分组,j表示攻击的bit
③计算ΔDj_P,获得bitj对应的DPA曲线以及峰值的极性的子模块,ΔDj_P表示用Plain划分得到的ΔDj.
④重复子模块③、④,得到全部128bit峰值极性,记做pole_Attack[127:0]的子模块
其中,pole_Attack表示攻击DPA极性数组。
所述第三模块中通过原始DPA极性数组与攻击DPA极性数组进行异或,具体为:
直接用
Figure BSA00000210286000041
获得密钥。
本发明具有以下优点和积极效果:
1)通过改良原始DPA攻击方法,利用DPA攻击中的峰值的极性,在提取原始DPA极性的基础上,完成极性DPA极性的提取,并将两者进行异或操作,从而进行密钥提取;
2)当加密算法第一步为异或时,密钥提取时,对密码算法细节可以未知,实现细节可以未知;
3)与原始DPA攻击相比,本发明提出的方法在时间复杂度上有明显的改善。
附图说明
图1是本发明提出的利用DPA曲线极性进行密钥提取的方法的流程图。
具体实施方式
下面以具体实施例结合附图对本发明作进一步说明:
在Paul Kocher提出的原始DPA攻击中,首先在每次加密过程中使用数字示波器记录下加密芯片的功耗曲线,并记下N个采样点,更换明文,一共记录M组功耗曲线,再选择一个D函数对采集的样本进行划分,根据划分,计算差分功耗曲线,得到ΔD,找到能是ΔD最大的Ki值,即可获得正确的密钥。而在这里使用的极性DPA攻击,先完成原始DPA攻击,将得到的明文Plain与猜测的密钥K进行异或,再利用明文Plain进行划分得到ΔD_P,即可得到bit j对应的DPA曲线以及峰值的极性,从而获得密钥。据此,具体的步骤如下:
参见图1所示的利用DPA曲线极性进行密钥提取的方法的流程图,包括三个步骤:
1、原始极性采集阶段:测试要攻击的芯片,获得AES在该芯片上的具体实现情况下,每个bit产生DPA峰值的极性,获得攻击位置每个bit的DPA峰值极性。具体来说,采用以以下步骤实现:
①密钥寄存器清零或已知密钥值K,必要时可通过烧毁密钥寄存器的方式清零;
②生成随机明文,利用芯片加密,记录功耗曲线组P[1..M][1..N]
每条曲线上有N个采样点,一共记录M组功耗曲线
③由于
Figure BSA00000210286000051
已知Plain[i]和K[127:0]相当于已知X[i][127:0],利用X[i][j]做划分,得到曲线集合P1{P[i][1..N]|X[i][j]=1}和P0{P[i][1..N]|X[i][j]=0}(这里i表示使用的明文-功耗分组,j表示攻击的bit)
④计算ΔDj,即可得bitj对应的DPA曲线以及峰值的极性
⑤重复③④,得到全部128bit峰值极性,记做pole[127:0]
2、攻击极性采集阶段:利用明文,对加密过程的中间状态进行划分,得出峰值极性。该阶段密钥寄存器里的密钥是要攻击的密钥,
Figure BSA00000210286000052
由于已知明文,可以利用Plain代替X划分,得出峰值极性。具体来说,采用以下步骤实现:
①生成随机明文,利用芯片加密,记录功耗曲线组P[1..M][1..N]
每条曲线上有N个采样点,一共记录M组功耗曲线
②由于
Figure BSA00000210286000053
由于Plain已知,利用Plain[j]做划分,得到曲线集合P0{P[i][1..N]|Plain[i][j]=0}和P0{P[i][1..N]|Plain[i][j]=0}(这里i表示使用的明文-功耗分组,j表示攻击的bit)
③计算ΔDj_P(用Plain划分得到的ΔDj),即可得bitj对应的DPA曲线以及峰值的极性
④重复③④,得到全部128bit峰值极性,记做pole_Attack[127:0]
3、获取密钥阶段:通过原始DPA极性数组与攻击DPA极性数组进行异或,从而得到密钥。
直接用
Figure BSA00000210286000054
即可得密钥。
下表为上述过程使用的符号说明:
Figure BSA00000210286000055
下面对本发明提出的方法与原始DPA攻击对比:
Figure BSA00000210286000062
上述实例用来解释说明本发明,而不是对本发明进行限制,在本发明的精神和权利要求的保护范围内,对本发明做出任何的修改和改变,都落入本发明的保护范围。

Claims (4)

1.一种利用DPA曲线极性进行密钥提取的方法,其特征在于,包括以下步骤:
测试要攻击的芯片,获得AES在该芯片上的具体实现情况下,每个bit产生DPA峰值的极性,获得攻击位置每个bit的DPA峰值极性;
利用明文,对加密过程的中间状态进行划分,得出峰值极性;
通过原始DPA极性数组与攻击DPA极性数组进行异或,从而得到密钥;
所述测试要攻击的芯片,获得AES在该芯片上的具体实现情况下,每个bit产生DPA峰值的极性,获得攻击位置每个bit的DPA峰值极性的步骤进一步包括以下子步骤:
①已知密钥值K;
②生成随机明文,利用芯片加密,记录功耗曲线组P[1..M][1..N]
其中,N为功耗曲线上的采样点数,M为功耗曲线条数,每条曲线上有N个采样点,一共记录M组功耗曲线;
③由于X[i][127:0]=Plain[i][127:0]⊕K[127:0];已知Plain[i]和K[127:0]相当于已知X[i][127:0],利用X[i][j]做划分,得到曲线集合P1{P[i][1..N]|X[i][j]=1}和P0{P[i][1..N]|X[i][j]=0},其中,X表示加密过程的中间状态,i表示使用的明文-功耗分组,j表示攻击的bit,Plain为明文,K表示密钥;
④计算ΔDj,获得bitj对应的DPA曲线以及峰值的极性,其中ΔDj表示第j bit DPA攻击所得到的DPA峰值;
⑤重复步骤③、④,得到全部128bit峰值极性,记做原始DPA极性数组pole[127:0];
所述利用明文,对加密过程的中间状态进行划分,得出峰值极性的步骤进一步包括以下子步骤:
①生成随机明文,利用芯片加密,记录功耗曲线组P[1..M][1..N]
其中,N为功耗曲线上的采样点数,M为功耗曲线条数,每条曲线上有N个采样点,一共记录M组功耗曲线;
②由于X[i][127:0]=Plain[i][127:0]⊕K[127:0];由于Plain已知,利用Plain[j]做划分,得到曲线集合P0{P[i][1..N]|Plain[i][j]=0}和P0{P[i][1..N]|Plain[i][j]=0},其中,X表示加密过程的中间状态,i表示使用的明文-功耗分组,j表示攻击的bit;
③计算ΔDj_P,获得bitj对应的DPA曲线以及峰值的极性,ΔDj_P表示用Plain划分得到的ΔDj;
④重复步骤②、③,得到全部128bit峰值极性,记做pole_Attack[127:0]
其中,pole_Attack表示攻击DPA极性数组。
2.根据权利要求1所述的利用DPA曲线极性进行密钥提取的方法,其特征在于:
所述通过原始DPA极性数组与攻击DPA极性数组进行异或,具体为:
直接用pole⊕pole_Attack,获得密钥。
3.一种利用DPA曲线极性进行密钥提取的系统,其特征在于,包括:
第一模块,用于测试要攻击的芯片,获得AES在该芯片上的具体实现情况下,每个bit产生DPA峰值的极性,获得攻击位置每个bit的DPA峰值极性;
第二模块,用于利用明文,对加密过程的中间状态进行划分,得出峰值极性;
第三模块,用于通过原始DPA极性数组与攻击DPA极性数组进行异或,从而得到密钥;
第一模块进一步包括以下子模块:
①已知密钥值K的子模块;
②生成随机明文,利用芯片加密,记录功耗曲线组P[1..M][1..N]的子模块
其中,N为功耗曲线上的采样点数,M为功耗曲线条数,每条曲线上有N个采样点,一共记录M组功耗曲线;
③由于X[i][127:0]=Plain[i][127:0]⊕K[127:0];已知Plain[i]和K[127:0]相当于已知X[i][127:0],利用X[i][j]做划分,得到曲线集合P1{P[i][1..N]|X[i][j]=1}和P0{P[i][1..N]|X[i][j]=0}的子模块,其中,X表示加密过程的中间状态,i表示使用的明文-功耗分组,j表示攻击的bit;
④计算ΔDj,获得bitj对应的DPA曲线以及峰值的极性的子模块,其中ΔDj表示第jbitDPA攻击所得到的DPA峰值;
⑤重复子模块③、④,得到全部128bit峰值极性,记做原始DPA极性数组pole[127:0]的子模块;
第二模块进一步包括以下子模块:
①生成随机明文,利用芯片加密,记录功耗曲线组P[1..M][1..N]的子模块
其中,N为功耗曲线上的采样点数,M为功耗曲线条数,每条曲线上有N个采样点,一共记录M组功耗曲线;
②由于X[i][127:0]=Plain[i][127:0]⊕K[127:0];由于Plain已知,利用Plain[j]做划分,得到曲线集合P0{P[i][1..N]|Plain[i][j]=0}和P0{P[i][1..N]|Plain[i][j]=0}的子模块,其中,X表示加密过程的中间状态,i表示使用的明文-功耗分组,j表示攻击的bit;
③计算ΔDj_P,获得bitj对应的DPA曲线以及峰值的极性的子模块,ΔDj_P表示用Plain划分得到的ΔDj;
④重复子模块②、③,得到全部128bit峰值极性,记做pole_Attack[127:0]的子模块
其中,pole_Attack表示攻击DPA极性数组。
4.根据权利要求3所述的利用DPA曲线极性进行密钥提取的系统,其特征在于:
所述第三模块中通过原始DPA极性数组与攻击DPA极性数组进行异或,具体为:
直接用pole⊕pole_Attack,获得密钥。
CN2010102399075A 2010-07-26 2010-07-26 一种利用dpa曲线极性进行密钥提取的方法及系统 Active CN101908111B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010102399075A CN101908111B (zh) 2010-07-26 2010-07-26 一种利用dpa曲线极性进行密钥提取的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010102399075A CN101908111B (zh) 2010-07-26 2010-07-26 一种利用dpa曲线极性进行密钥提取的方法及系统

Publications (2)

Publication Number Publication Date
CN101908111A CN101908111A (zh) 2010-12-08
CN101908111B true CN101908111B (zh) 2013-06-19

Family

ID=43263568

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010102399075A Active CN101908111B (zh) 2010-07-26 2010-07-26 一种利用dpa曲线极性进行密钥提取的方法及系统

Country Status (1)

Country Link
CN (1) CN101908111B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102325021B (zh) * 2011-05-17 2014-04-02 武汉大学 一种dpa安全性评测与对抗方法及其装置
CN103580858B (zh) * 2013-11-06 2017-01-04 北京华大信安科技有限公司 Rsa算法私钥元素获取方法及获取装置
CN104836666B (zh) * 2015-04-20 2019-04-12 成都信息工程学院 一种针对sm2解密算法的能量分析攻击的方法
CN104780051B (zh) * 2015-04-24 2019-04-12 成都信息工程学院 针对sm2公钥密码加密算法的侧信道攻击的方法
CN105530091A (zh) * 2016-01-29 2016-04-27 易海博 一种tts签名的解密方法
WO2017219279A1 (zh) * 2016-06-22 2017-12-28 张升泽 电子芯片的功率绘制方法及系统
CN106126811A (zh) * 2016-06-22 2016-11-16 张升泽 电子芯片的功率绘制方法及系统

Also Published As

Publication number Publication date
CN101908111A (zh) 2010-12-08

Similar Documents

Publication Publication Date Title
CN101908111B (zh) 一种利用dpa曲线极性进行密钥提取的方法及系统
CN101951314B (zh) 对称密码加密中s-盒的设计方法
Khan et al. A new hybrid image encryption algorithm based on 2D-CA, FSM-DNA rule generator, and FSBI
CN104202145A (zh) 针对sm4密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法
Deng et al. Analysis and improvement of a hash-based image encryption algorithm
CN103530474A (zh) 面向aes算法电路的差分功耗攻击测试方法
CN104836666A (zh) 一种针对sm2解密算法的能量分析攻击的方法
CN108768620A (zh) 一种数据处理方法及装置
CN102523365A (zh) 一种基于元胞自动机的图像加密和解密方法
Muthavhine et al. An analysis and a comparative study of cryptographic algorithms used on the Internet of Things (IoT) based on avalanche effect
CN109450632A (zh) 基于白盒分组密码clefia分析的密钥恢复方法
CN104301095A (zh) Des轮运算方法和电路
CN103916236A (zh) 面向aes算法的抗功耗攻击方法及电路实现
CN104751065A (zh) 一种基于地理信息产品文件的加密方法
CN104780051A (zh) 针对sm2公钥密码加密算法的侧信道攻击的方法
Xu et al. Side-channel attack on a protected RFID card
Hu et al. An effective differential power attack method for advanced encryption standard
Fei et al. An image encryption algorithm based on mixed chaotic dynamic systems and external keys
CN103427980A (zh) 一种基于双矩阵变换的ofdm系统物理层安全算法
CN104009981A (zh) 一种基于对称加密的实时大数据隐私保护方法
Lim et al. Differential fault attack on lightweight block cipher PIPO
CN102932147A (zh) 基于隐马尔科夫模型的椭圆曲线密码计时攻击方法
CN103546277B (zh) 一种智能卡sm4算法的dpa攻击与密钥还原方法及系统
CN102509058B (zh) 基于冗余位替换的点类型gis矢量数据伪装与还原方法
Zhou et al. Electromagnetic side channel attack against embedded encryption chips

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant