CN103647640A - 针对des第二轮l寄存器翻转的功耗攻击方法 - Google Patents
针对des第二轮l寄存器翻转的功耗攻击方法 Download PDFInfo
- Publication number
- CN103647640A CN103647640A CN201310637160.2A CN201310637160A CN103647640A CN 103647640 A CN103647640 A CN 103647640A CN 201310637160 A CN201310637160 A CN 201310637160A CN 103647640 A CN103647640 A CN 103647640A
- Authority
- CN
- China
- Prior art keywords
- power consumption
- register
- des
- computing
- round
- 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.)
- Granted
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本发明是一种针对数据加密标准(DES,Data Encryption Standard)第二轮运算中L寄存器翻转的功耗攻击方法。用于信息安全领域中,对DES算法的加密芯片进行安全性测评。本发明特征在于利用功耗攻击的方法对DES加密芯片进行攻击,攻击的对象是DES第二轮运算中L寄存器翻转泄露的功耗信息。利用该功耗信息,与第一轮的中间数据进行相关功耗分析(CPA,Correlation Power Analysis),即可获得DES算法的密钥信息。本发明可用于DES加密芯片防御功耗攻击的安全性测评,提高DES加密芯片的安全性。
Description
技术领域
本发明主要应用于信息安全领域对智能卡芯片安全性要求较高的场合中,对DES算法的加密芯片进行抗功耗攻击测试,提高芯片安全性。
背景技术
1973年5月15日,美国国家标准局在联邦记录中公开征集密码体制,这一举措最终导致了DES的出现。DES由IBM开发,它是对早期被称为Lucifer密码体制的改进。DES在1975年3月17日首次在联邦记录中公布,在经过大量的公开讨论后,1977年2月15日DES被采纳作为用于非国家保密机关的数据加密标准。1980年和1984年,DES分别得到美国标准协会和国际标准化组织的认可。至今,DES仍是工业界常用的密码算法之一。
DES算法的分组长度是64比特,密钥长度是56比特,属于Feistel结构密码,迭代轮数为16轮。采用DES算法加密时,64比特的明文首先经过一个初始置换,然后通过由轮密钥控制的16轮迭代变换,最后再通过初始置换的逆变换进而得到密文。DES加密芯片也就是能够对数据进行DES算法加密的芯片,该芯片经常被应用在智能卡中,作为智能卡内的数据加密模块,对接收到的数据进行加密,使智能卡能够与读卡器进行保密性的数据交互。
1999年Kocher提出了差分功耗攻击方法,之后业界对功耗攻击方法进行了深入研究。目前对于DES算法的功耗攻击主要集中在对DES第一轮运算的攻击上,因此密码芯片的设计者通常会在第一轮运算中加入一些防护措施,从而隐藏DES第一轮运算的功耗信息。例如,在第一轮运算中加入伪轮运算或者随机插入延时等,使得攻击者无法找到第一轮运算的位置。这些防护措施虽然可以起到防御功耗攻击的效果,但是带来了额外的成本开销。为了节省成本,设计者通常仅在第一轮中加入类似的防护措施。
功耗攻击的基本原理是,密码设备的瞬态功耗与其运算的中间数据相关,而中间数据又与密钥相关。因此,通过分析密码设备的瞬态功耗,可以获得密钥信息,从而达到完全破解密钥的目的。
数字电路是由若干个相同的逻辑门组成,每个逻辑门的功耗包括静态功耗和动态功耗两部分。逻辑门的静态功耗相对较小,动态功耗占逻辑门总功耗的主要部分。动态功耗主要由逻辑门信号的翻转产生,当信号由“0”变化到“1”,或者由“1”变化到“0”,即为翻转,逻辑门就会产生功耗。但维持“0”或者“1”不变,即没有翻转,不产生功耗。因此,电路运行时产生的功耗与内部运行数据存在相关性,功耗攻击就是利用了这个原理。
为了成功地进行功耗攻击,找到合适的中间数据至关重要。该中间数据越准确地反映芯片内部的功耗开销,功耗攻击就越容易成功。
从图中1可以看出,每次DES加密进行16轮运算,轮输出的中间结果保存在两个寄存器中,即L寄存器和R寄存器。L寄存器保存中间结果的高32位数据,R寄存器保存中间结果的低32位数据。在每一次的轮运算中,R寄存器的值与轮密钥经过f函数的运算,f函数的输出再与上一轮L寄存器的值异或,将异或结果保存在R寄存器中,即为本轮运算轮输出的低32位;上一轮R寄存器的值写入L寄存器中,即为本轮运算轮输出的高32位。反复进行16次上述操作,即完成了DES算法的16个轮运算。
发明内容
本发明用功耗攻击的方法攻击DES第二轮运算中L寄存器的翻转,解决了在第一轮加入防护措施时无法进行功耗攻击的问题。
本发明的内容在于发明了一种针对DES第二轮L寄存器翻转的功耗攻击方法。本发明选择的中间数据为DES第一轮运算中R寄存器的变化情况,即第一轮运算前写入R寄存器的数据与第一轮运算后写入R寄存器的数据,二者异或的结果。通过上述的功耗攻击原理可知,通过寄存器前后状态的异或值可以表征该寄存器的功耗开销。
本发明攻击的对象是DES第二轮运算中L寄存器的翻转,利用上述中间数据对DES功耗曲线上执行第二轮运算的位置进行功耗攻击,根据L寄存器翻转产生的功耗与中间数据的相关性,从而获得密钥。
针对DES第二轮L寄存器翻转的功耗攻击方法,其特征在于用功耗攻击的方法,利用DES第二轮运算中L寄存器翻转泄露的功耗信息,攻击DES加密芯片,获得DES算法的密钥,具体步骤如下:
a)在固定密钥的前提下,改变明文对DES加密芯片执行多次加密运算,采集每次加密时芯片的功耗,保存功耗曲线和该条曲线对应的明文;
b)利用该明文和猜测的密钥计算出相应的R1,将R0与R1异或,得到R寄存器在第一轮运算中寄存器翻转产生的功耗,并将该功耗作为功耗攻击的中间数据,其中R0为明文的低32位数据,R1;
c)计算每一条功耗曲线对应的中间数据,得到一个与曲线条数相同元素个数的中间数据数组,数组的个数与猜测密钥的个数相同;
d)在功耗曲线上找到第二轮运算中L寄存器更新的位置,记录每条曲线对应的L寄存器更新处的功耗大小,保存在一个功耗数组中;
e)分别用中间数据数组与功耗数组计算相关性,找出相关性最大的中间数据数组对应的密钥,该密钥即为真实密钥。
目前,很多DES加密芯片都对DES的第一轮运算加入了防护措施,使攻击者无法找到第一轮运算的位置,从而不能开展功耗攻击。使用本发明所公开的方法后,不必关注DES第一轮运算的位置,而是对第二轮运算进行攻击。利用第一轮的中间数据与第二轮功耗的相关性,即可成功攻击。本发明丰富了功耗攻击方法,对智能卡芯片的安全性提高有很大帮助。
附图说明
图1DES算法结构示意图
图2DES轮运算电路结构示意图
图3DES寄存器更新示意图
具体实施方式
图1是示意性地示出本发明针对的DES算法结构图,并给出了本发明的功耗攻击方法针对的攻击点。图1中灰色标记处是本发明的功耗攻击方法主要攻击点,攻击的是第二轮运算L寄存器的翻转。
图2给出了DES加密芯片轮运算部分的电路结构示意图,在轮运算中只有L寄存器和R寄存器,且两个寄存器工作在同一时钟信号下。因此每一个DES轮运算在一个时钟周期内完成,L寄存器和R寄存器每个时钟周期更新一次。具体的更新方式如图3所示。
在进行DES加密运算前,将准备加密的明文保存在L寄存器和R寄存器中。L寄存器保存明文的高32位数据,即图3中的L0;R寄存器保存明文的低32位数据,即图3中的R0。经过第一轮运算,输出的中间结果保存在L寄存器和R寄存器中,记为L1和R1;经过第二轮运算,输出的中间结果再次保存在L寄存器和R寄存器中,记为L2和R2。根据DES算法的执行过程可知:L1=R0、L2=R1。因此在第二轮中L1到L2的寄存器翻转,等同于第一轮运算中R0到R1的寄存器翻转。寄存器的翻转情况体现了功耗的大小,故在功耗曲线上执行第二轮运算的部分,可以间接地表征第一轮运算的功耗特征。
基于以上的分析,对DES加密芯片的功耗攻击主要分为以下几步进行。
首先,在固定密钥的前提下,改变明文对DES加密芯片执行多次加密运算。采集每次加密时芯片的功耗,保存功耗曲线和该条曲线对应的明文。
第二,利用该明文和猜测的密钥计算出相应的R1。由于R0已知(明文的低32位数据),将R0与R1异或,可以得到R寄存器在第一轮运算中寄存器翻转的多少。该翻转情况与真实的功耗开销大小成正比,故作为功耗攻击的中间数据。计算每一条曲线对应的中间数据,可以得到一个与曲线条数相同元素个数的中间数据数组,数组的个数与猜测密钥的个数相同。
第三,在功耗曲线上找到第二轮运算中L寄存器更新的位置,记录每条曲线对应的L寄存器更新处的功耗大小,保存在一个数组中。
第四,分别用中间数据数组与功耗数组计算相关性,找出相关性最大的中间数据数组对应的猜测密钥,该密钥即为真实密钥。
本发明利用上述功耗攻击方法,用DES第二轮运算中L寄存器翻转的功耗信息与第一轮运算的中间数据相关性,对DES加密芯片实施功耗攻击。对于在第一轮中加入伪轮运算和随机插入延时等防护的DES加密芯片设计,具有显著的攻击效果。
Claims (3)
1.针对DES第二轮L寄存器翻转的功耗攻击方法,其特征在于用功耗攻击的方法,利用DES第二轮运算中L寄存器翻转泄露的功耗信息,攻击DES加密芯片,获得DES算法的密钥,具体步骤如下:
a)在固定密钥的前提下,改变明文对DES加密芯片执行多次加密运算,采集每次加密时芯片的功耗,保存功耗曲线和该条曲线对应的明文;
b)利用该明文和猜测的密钥计算出相应的R1,将R0与R1异或,得到R寄存器在第一轮运算中寄存器翻转产生的功耗,并将该功耗作为功耗攻击的中间数据,其中R0为明文的低32位数据,R1为第一轮加密运算中R寄存器保存的低32位数据;
c)计算每一条功耗曲线对应的中间数据,得到一个与曲线条数相同元素个数的中间数据数组,数组的个数与猜测密钥的个数相同;
d)在功耗曲线上找到第二轮运算中L寄存器更新的位置,记录每条曲线对应的L寄存器更新处的功耗大小,保存在一个功耗数组中;
e)分别用中间数据数组与功耗数组计算相关性,找出相关性最大的中间数据数组对应的密钥,该密钥即为真实密钥。
2.根据权利要求1所述的方法,其特征在于在DES第二轮运算中存在L寄存器翻转,且该翻转情况与第一轮运算中R寄存器的翻转情况相同。
3.根据权利要求1所述的方法,其特征在于利用第一轮运算中R寄存器的变化情况作为区分函数进行攻击,该变化情况是指在第一轮运算前写入R寄存器的数据与第一轮运算后写入R寄存器的数据,二者异或的结果即为寄存器变化情况。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310637160.2A CN103647640B (zh) | 2013-12-03 | 2013-12-03 | 针对des第二轮l寄存器翻转的功耗攻击方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310637160.2A CN103647640B (zh) | 2013-12-03 | 2013-12-03 | 针对des第二轮l寄存器翻转的功耗攻击方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103647640A true CN103647640A (zh) | 2014-03-19 |
CN103647640B CN103647640B (zh) | 2016-09-14 |
Family
ID=50252803
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310637160.2A Active CN103647640B (zh) | 2013-12-03 | 2013-12-03 | 针对des第二轮l寄存器翻转的功耗攻击方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103647640B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103905182A (zh) * | 2014-04-25 | 2014-07-02 | 东南大学 | 基于动态改变中间数据存储位置的抗攻击方法及电路实现 |
CN105897399A (zh) * | 2016-06-14 | 2016-08-24 | 东南大学 | 一种基于寄存器掩码的面向des算法的抗功耗攻击方法 |
CN110190951A (zh) * | 2019-06-17 | 2019-08-30 | 中金金融认证中心有限公司 | 一种针对des算法l寄存器翻转的功耗攻击方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070263859A1 (en) * | 2005-12-19 | 2007-11-15 | Stmicroelectronics S.A. | Protection of the execution of a DES algorithm |
CN103067155A (zh) * | 2012-12-27 | 2013-04-24 | 东南大学 | 一种防止基于功耗分析的des算法攻击的方法及测试电路 |
-
2013
- 2013-12-03 CN CN201310637160.2A patent/CN103647640B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070263859A1 (en) * | 2005-12-19 | 2007-11-15 | Stmicroelectronics S.A. | Protection of the execution of a DES algorithm |
CN103067155A (zh) * | 2012-12-27 | 2013-04-24 | 东南大学 | 一种防止基于功耗分析的des算法攻击的方法及测试电路 |
Non-Patent Citations (2)
Title |
---|
吴克寿: "针对DES加密算法的DPA攻击仿真平台", 《计算机科学》 * |
顾星远: "软件实现的密码系统的旁路攻击防护研究", 《硕士学位论文》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103905182A (zh) * | 2014-04-25 | 2014-07-02 | 东南大学 | 基于动态改变中间数据存储位置的抗攻击方法及电路实现 |
CN103905182B (zh) * | 2014-04-25 | 2017-02-15 | 东南大学 | 基于动态改变中间数据存储位置的抗攻击方法及电路实现 |
CN105897399A (zh) * | 2016-06-14 | 2016-08-24 | 东南大学 | 一种基于寄存器掩码的面向des算法的抗功耗攻击方法 |
CN105897399B (zh) * | 2016-06-14 | 2019-01-29 | 东南大学 | 一种基于寄存器掩码的面向des算法的抗功耗攻击方法 |
CN110190951A (zh) * | 2019-06-17 | 2019-08-30 | 中金金融认证中心有限公司 | 一种针对des算法l寄存器翻转的功耗攻击方法及系统 |
CN110190951B (zh) * | 2019-06-17 | 2022-09-27 | 中金金融认证中心有限公司 | 一种针对des算法l寄存器翻转的功耗攻击方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103647640B (zh) | 2016-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1873671B2 (en) | A method for protecting IC Cards against power analysis attacks | |
CN103067155A (zh) | 一种防止基于功耗分析的des算法攻击的方法及测试电路 | |
CN104734842B (zh) | 基于伪操作的电路旁路攻击抵御方法 | |
CN104734845B (zh) | 基于全加密算法伪操作的旁路攻击防护方法 | |
EP2207087A1 (en) | Method for protecting a cryptographic device against SPA, DPA and timing attacks | |
CN1989726A (zh) | 用于执行加密计算的方法和装置 | |
CN105940439A (zh) | 使用排列应对对密码算法的旁通道攻击的对策 | |
CN103530474A (zh) | 面向aes算法电路的差分功耗攻击测试方法 | |
CN102904716A (zh) | 一种抗侧信道攻击的对策方法 | |
CN103903043B (zh) | 一种智能卡三位一体抗侧信道攻击防护方法和系统 | |
CN103795527A (zh) | 防止基于功耗分析攻击aes算法的软件掩码防护方案 | |
CN107154843A (zh) | 一种抗功耗攻击的sm4算法的硬件实现系统 | |
Moradi et al. | On the Portability of Side-Channel Attacks-An Analysis of the Xilinx Virtex 4, Virtex 5, and Spartan 6 Bitstream Encryption Mechanism | |
EP3291478A1 (en) | Software protection against differential fault analysis | |
CN106487499A (zh) | Rijndael算法的保护 | |
CN104301095A (zh) | Des轮运算方法和电路 | |
Fei et al. | An image encryption algorithm based on mixed chaotic dynamic systems and external keys | |
CN101908111B (zh) | 一种利用dpa曲线极性进行密钥提取的方法及系统 | |
CN103647640A (zh) | 针对des第二轮l寄存器翻转的功耗攻击方法 | |
Hu et al. | An effective differential power attack method for advanced encryption standard | |
CN103916235A (zh) | 随机插入伪轮运算对的抗功耗攻击方法 | |
CN108155984B (zh) | 一种基于能量分析的密码算法簇逆向工程分析方法 | |
Luo et al. | Cryptanalysis of a chaotic block cryptographic system against template attacks | |
CN103888245A (zh) | 一种智能卡的s盒随机化方法和系统 | |
CN108123792A (zh) | 一种sm4算法电路的功耗加扰方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 102209 Beijing, Beiqijia, the future of science and technology in the south area of China electronic network security and information technology industry base C building, Applicant after: Beijing CEC Huada Electronic Design Co., Ltd. Address before: 100102 Beijing City, Chaoyang District Lize two Road No. 2, Wangjing science and Technology Park A block five layer Applicant before: Beijing CEC Huada Electronic Design Co., Ltd. |
|
COR | Change of bibliographic data | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |