CN102970132B - 一种防止对分组算法进行功耗分析和电磁辐射分析的防护方法 - Google Patents
一种防止对分组算法进行功耗分析和电磁辐射分析的防护方法 Download PDFInfo
- Publication number
- CN102970132B CN102970132B CN201110257273.0A CN201110257273A CN102970132B CN 102970132 B CN102970132 B CN 102970132B CN 201110257273 A CN201110257273 A CN 201110257273A CN 102970132 B CN102970132 B CN 102970132B
- Authority
- CN
- China
- Prior art keywords
- key
- grouping
- sub
- computing
- register
- 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
本发明提出了一种可以抵御通过功耗分析(简单功耗分析SPA和差分功耗分析DPA)或电磁辐射分析(DEMA)技术对分组算法模块、芯片和智能卡卡片等进行攻击以获取加解密运算密钥的技术。在有安全要求的各种应用领域中,例如但不限于,电子身份证、金融卡、社保卡等应用领域中,本发明能够地保护分组算法模块、芯片和智能卡卡片等的加解密运算密钥不被功耗分析或电磁辐射分析技术所破译获取,从而提高了对分组算法模块、芯片和智能卡卡片等的安全防护强度。本发明具有很好的创新性、实用性和有效性。
Description
技术领域
本发明主要应用于信息安全技术领域,是一种适用于安全芯片的防攻击技术。
背景技术
智能卡和计算机网络的迅速发展,不断普及,各种形式的专用密码电路和密码算法处理器得到广泛地应用,信息安全问题日益突出。常用的密码算法大致可以分为两类:以DES,AES(高级加密标准)为代表的分组密码算法和以RSA,ECC为代表的非对称算法。随着测量技术和分析技术的不断进步,攻击对象不再局限于密码算法本身,出现了许多针对密码算法实现载体(如集成电路)的攻击方法。侧信道攻击是这些方法中比较有代表性和威胁性较大的一种。一个实际应用的密码系统,其硬件部件在运行过程中不可避免要泄露一些信息,诸如功耗、时间、电磁波、以及差错信息等。利用上述泄露信息对密码系统进行攻击称为旁路攻击。常见的针对分组密码算法的旁路攻击技术是功耗分析和电磁分析。通过采集集成电路工作时的功耗曲线或者电磁辐射曲线,通过信号处理、数学分析,来获取密码算法的密钥。
加密硬件以半导体器件为基础,由大量晶体管构成,当晶体管上发生充放电时,电子从硅衬底流过,消耗能量,同时产生电磁辐射。代表0,1信息的大量晶体管电路翻转会导致功耗不同,使运算密钥与功耗或电磁辐射之间存在相关性。功耗分析和电磁分析就是依赖于加密硬件在运算过程中功耗消耗和电磁辐射与加密信息和密钥的相关性。
分组密码算法是信息安全的核心技术。通常的分组密码算法中,一个长的密钥在实际加密和解密的过程中,会拆分成多个子密钥。例如DES实际参与运算的48位密钥,会拆分成8组,每一组6个bits,和信息异或后送入8个不同的S盒。128位的AES类似,128位的密钥,拆分成16组,每组8个bits,和信息异或后参与以后的变换。这一点可以被攻击者所利用,容易遍历6bits或者8bits的子密钥,通过功耗分析或者电磁分析,先获取一部分密钥信息,逐一遍历分析其余的密钥分组,从而获得整个的密钥信息。
要想消除集成电路工作过程中和密码相关的功耗特征或者电磁特征,是比较困难的事情,代价也很大。从功耗分析和电磁分析方法提出以来,针对分组密码算法,如DES,AES,提出了许多的防护方法,有算法级别的方法,例如使用随机掩码,密码运算过程中插入随机等待等;有电路级别的方法,例如双轨编码,差分逻辑等。这些方法对运算性能和面积影响比较大,尤其对智能卡而言,由此带来的面积和功耗增加的代价是难以接受的。
发明内容
本发明针对分组密码算法,运用功耗分析或者电磁辐射分析,通过遍历子密钥的方式获取整个密钥的问题,提出来一种有别于其它防护方法的一种新的措施,本发明是采用RTL实现方式,使用标准单元库,逻辑资源开销比标准分组密码算法逻辑资源开销增加的较少。不需要特殊设计的门电路,不会过多增加逻辑资源开销,不需要掩盖运算功耗的复杂措施。本发明是通过使用虚密钥替换真实的子密钥,主动的遍历子密钥空间,使得攻击者运用功耗分析或者电磁辐射分析,通过遍历子密钥的方式获取整个密钥的攻击方法失效。通过本发明的方法,使得芯片进行密码运算时,功耗特征和电磁辐射特征和攻击者遍历的子密钥都相关。攻击者无法对其猜测的子密钥是否正确做出判断,从而使得攻击失效。
本发明公开的一种防止对分组算法进行功耗分析和电磁辐射分析的防护方法,在分组密钥算法的每轮运算中,使用虚密钥的值来代替实际运算的SBOX分组子密钥,虚密钥遍历所有的或部分的子密钥取值空间,当虚密钥和SBOX分组子密钥相等时,运算结果存储到一个子寄存器中,当虚密钥和SBOX分组子密钥不等时,运算结果存储到其它子寄存器中;当虚密钥遍历完毕所有的或部分的子密钥取值空间时,完成一轮运算,运算的正确结果则存储在多个分组子寄存器构成的寄存器中,然后在下一轮运算时,则对存储有上一轮正确结果的寄存器进行与前一轮相同的分组运算,以此类推,一直重复完成所有轮分组运算。
以一轮分组算法的加密运算的一个SBOX分组运算的2n+1次运算为例,对子寄存器RA[n+(i-1)*j:(i-1)*j](n表示子密钥的位数减一,i表示分组序号,j表示分组位宽)中的数据进行加密运算,当虚密钥和真正的子密钥相等时,运算结果存储到子寄存器RB[n+(i-1)*j:(i-1)*j],不等时,运算结果存储到子寄存器RC[n+(i-1)*j:(i-1)*j]。当虚密钥遍历完毕所有的子密钥取值空间时,完成一轮运算,寄存器RB[i*j-1:0]存储的是本轮的正确结果,寄存器RC[i*j-1:0]存储的是本轮的错误结果。等到再下一轮运算时,对子寄存器RB[n+(i-1)*j:(i-1)*j]存储的正确结果进行加密运算,正确的运算结果存储到子寄存器RC[n+(i-1)*j:(i-1)*j],错误的运算结果存储到子寄存器A[n+(i-1)*j:(i-1)*j]。等到再下一轮运算时,对子寄存器RC[n+(i-1)*j:(i-1)*j]存储的正确结果进行加密运算,正确的运算结果存储到子寄存器RA[n+(i-1)*j:(i-1)*j],错误的运算结果存储到寄存器子RB[n+(i-1)*j:(i-1)*j]。以此类推,直到完成所有的轮运算。
对分组算法,本发明使用计数器,但不限于计数器方式实现虚密钥,替代了分组密码算法每轮运算所使用的子密钥,计数器(虚密钥)的范围可以是所有的一个分组子密钥空间,也可以是部分分组子密钥空间。当进行分组算法的每一轮的一个SBOX分组运算时,计数器开始遍历所有的或部分的子密钥空间,运算过程中的所有的子密钥都用计数器替代。以分组算法的一轮加密运算进行2n+1次为例,对子寄存器RA[n+(i-1)*j:(i-1)*j]中的数据进行加密运算,当计数器和真正的子密钥相等时,运算结果存储到子寄存器RB[n+(i-1)*j:(i-1)*j],不等时,运算结果存储到子寄存器RC[n+(i-1)*j:(i-1)*j]。当计数器遍历完毕所有的子密钥空间时,完成一轮运算,寄存器RB[i*j-1:0]存储的是本轮的正确结果,寄存器RC[i*j-1:0]存储的是本轮的错误结果。下一轮运算时,对子寄存器RB[n+(i-1)*j:(i-1)*j]存储的正确结果进行加密运算,正确的运算结果存储到子寄存器RC[n+(i-1)*j:(i-1)*j],错误的运算结果存储到子寄存器RA[n+(i-1)*j:(i-1)*j]。再下一轮运算时,对子寄存器RC[n+(i-1)*j:(i-1)*j]存储的正确结果进行加密运算,正确的运算结果存储到子寄存器RA[n+(i-1)*j:(i-1)*j],错误的运算结果存储到子寄存器RB[n+(i-1)*j:(i-1)*j]。以此类推,直到完成所有的轮运算。
本发明同样适用于对分组算法重复进行2n+1次或小于2n+1次完整的分组运算,并在所有重复的完整分组运算中将各子密钥取值空间全部或部分遍历,最后输出分组运算的正确结果实现方式。
以DES重复进行2n+1次(共64次,每次16轮)完整加密运算为例,在第一次加密运算中的每一轮运算中,分别使用一组子密钥,得到一个加密结果,接下来再进行与第一次类似的另一次加密运算,并在其每一轮运算中,分别使用另一组子密钥,并得到第二个加密结果,以此类推,直到完成所有64次加密运算,共得到64个加密运算结果。在所有64次加密运算中的每次加密运算的相同的轮运算中,计数器将遍历所有子密钥空间一次。比如,第一次加密运算的第一轮运算到第64次加密运算的第一轮运算,在这64次加密运算的第一轮运算中,各个分组计数器将按某种方式分别在0到63中取值一次做为各个分组子密钥。所有64次加密运算的其余15轮运算也类似。最后,在所有64次DES加密运算中只有一次DES加密运算的结果是正确的,其每轮运算都使用真正的子密钥运算。重而得到正确结果。
附图说明
图1通常的DES算法硬件实现示意图
图2采用本发明的DES算法硬件实现示意图
图3采用本发明的DES算法R207/R208部分的详细硬件实现示意图
图4DES运算轮数和寄存器RA,RB,RC的使用示意图
具体实施方式
下面,以DES算法的硬件实现和并在每一轮DES运算进行计数器替换密钥为例,说明本发明的具体实施方式。
通常的DES算法的硬件实现如图1所表示。
64位寄存器RA(101)存储待处理的信息,其右半部分R(32位)经过扩展变换E(102),变为48位。和48位的轮密钥经过异或(103)运算,将生成48位结果,每6位一组,分为8组,分别送入8个S盒中(104)。每个S盒是6进4出的非线性变换。输出的32位结果经过P变换(105)和寄存器RA的左半部分L(32位)异或(106),最后结果再存入寄存器RA,完成一轮的运算。使用不同的轮密钥,进行16次轮运算,完成一次加密。
如果采用本发明的方法,可把DES算法的硬件实现修改为如图2和图3所示。
64位寄存器RA(201)存储待处理的信息,其右半部分R(32位)先经过P变换(202),再经过扩展变换E(203),变为48位。然后不再和轮密钥异或,而是和计数器异或(204),生成48位结果,然后每6位一组,分为8组,分别送入8个S盒中(205)。输出的32位结果经和寄存器RA的左半部分L(32位)异或(206),然后对8个结果分别进行判断,如果计数器(虚密钥)和真实密钥的子密钥相等,结果存入寄存器RB(207)相应的子部分,如果计数器(虚密钥)和真实密钥的子密钥不相等,结果存入寄存器RC(208)相应的子部分。由于计数器可采用随机计数方式,从而将真伪密钥比较器的输出也随机化,防止多条曲线叠加后信息泄露,对真伪密钥信息进行掩盖。
每一轮运算,计数器需要遍历所有的子密钥空间,对DES而言,子密钥是6位,遍历需要64个周期,即需要64个周期完成一轮运算。一轮运算结束后,寄存器RB(207)存储的是本轮正确的运算结果,寄存器RC(208)存储错误结果。对DES而言,并不需要在每一轮运算都进行子密钥空间遍历来抵御功耗或电磁分析的攻击,通常的攻击是针对第一轮或者最后一轮,所以采用本发明,完成一次加密或者解密增加的运算时间,在可以接受的范围。图4显示了16轮DES运算中,寄存器RA,寄存器RB,寄存器RC的使用。在第一轮的加密运算中,本轮待处理的数据存储在寄存器RA,运算的正确结果(计数器和轮密钥相等时)存入寄存器RB,错误结果存入寄存器RC。第二轮时,寄存器RB存储着上一轮的正确结果,也就是本轮待处理的数据,运算的正确结果存入寄存器RC,错误结果存入寄存器RA。第三轮时,寄存器RC存储着上一轮的正确结果,也就是本轮待处理的数据,运算的正确结果存入寄存器RA,错误结果存入寄存器RB。以此类推,直到16轮运算结束,寄存器RB存储着最终正确的运算结果。
本发明包括但不限于此具体实施方式。本发明是以DES为例进行阐述的,但本发明不只限于DES加解密算法运算的抗功耗分析和电磁场辐射分析的防护。本发明同样适用于所有分组加解密算法运算的抗功耗分析和电磁场辐射分析的防护。例如但不限于,DES、AES、3DES等分组加解密算法运算的抗功耗分析和电磁场辐射分析的防护。
Claims (2)
1.一种防止对分组算法进行功耗分析和电磁辐射分析的防护方法,其特征在于在分组密钥算法的每轮或某些轮运算中,使用虚密钥的值来代替实际运算的SBOX S盒分组子密钥,虚密钥遍历所有的或部分的子密钥取值空间,当虚密钥和SBOX S盒分组子密钥相等时,运算结果存储到一个子寄存器中,当虚密钥和SBOX S盒分组子密钥不等时,运算结果存储到其它子寄存器中;当虚密钥遍历完毕所有的或部分的子密钥取值空间时,完成一轮运算,运算的正确结果则存储在多个分组子寄存器构成的寄存器中,然后在下一轮运算时,则对存储有上一轮正确结果的寄存器进行与前一轮相同的分组运算,以此类推,一直重复完成所有轮分组运算。
2.如权利要求1所述的一种防止对分组算法进行功耗分析和电磁辐射分析的防护方法,其特征在于本方法也能对分组算法重复进行多次完整的分组运算,并在多次重复的完整的分组运算中将各分组子密钥全部或部分遍历,最后输出正确结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110257273.0A CN102970132B (zh) | 2011-08-31 | 2011-08-31 | 一种防止对分组算法进行功耗分析和电磁辐射分析的防护方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110257273.0A CN102970132B (zh) | 2011-08-31 | 2011-08-31 | 一种防止对分组算法进行功耗分析和电磁辐射分析的防护方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102970132A CN102970132A (zh) | 2013-03-13 |
CN102970132B true CN102970132B (zh) | 2015-02-18 |
Family
ID=47800027
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110257273.0A Active CN102970132B (zh) | 2011-08-31 | 2011-08-31 | 一种防止对分组算法进行功耗分析和电磁辐射分析的防护方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102970132B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108737073A (zh) * | 2018-06-22 | 2018-11-02 | 北京智芯微电子科技有限公司 | 分组加密运算中抵抗能量分析攻击的方法和装置 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104426653B (zh) * | 2013-08-30 | 2017-12-15 | 上海复旦微电子集团股份有限公司 | 一种数据处理方法和装置 |
CN103618595B (zh) * | 2013-09-13 | 2017-03-29 | 杭州晟元数据安全技术股份有限公司 | 一种抗功耗分析的密码算法代换电路 |
CN104700047A (zh) * | 2014-08-27 | 2015-06-10 | 北京中电华大电子设计有限责任公司 | 一种抵抗信息泄漏的安全设计方法 |
CN105809063B (zh) * | 2014-12-29 | 2019-01-15 | 联想(北京)有限公司 | 一种数据处理方法及安全芯片装置 |
CN104734842B (zh) * | 2015-03-13 | 2018-06-08 | 上海交通大学 | 基于伪操作的电路旁路攻击抵御方法 |
CN104734845B (zh) * | 2015-03-25 | 2018-11-23 | 上海交通大学 | 基于全加密算法伪操作的旁路攻击防护方法 |
CN105897408B (zh) * | 2016-06-14 | 2019-01-29 | 东南大学 | 一种基于随机延时的面向des算法的抗功耗攻击方法 |
CN105897399B (zh) * | 2016-06-14 | 2019-01-29 | 东南大学 | 一种基于寄存器掩码的面向des算法的抗功耗攻击方法 |
CN106961323B (zh) * | 2017-05-18 | 2022-12-09 | 桀安信息安全技术(上海)有限公司 | 一种密钥解密板卡、装置、系统及处理方法 |
CN114866217B (zh) * | 2022-04-07 | 2024-08-13 | 南京航空航天大学 | 基于数字真随机数生成器的抗功耗攻击sm4加密电路 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007251390A (ja) * | 2006-03-14 | 2007-09-27 | Sony Corp | 半導体集積回路 |
CN101196965A (zh) * | 2006-12-07 | 2008-06-11 | 上海安创信息科技有限公司 | 防攻击高级加密标准的加密芯片的算法 |
CN101729241A (zh) * | 2008-10-23 | 2010-06-09 | 国民技术股份有限公司 | 抵御差分能量攻击的aes加密方法 |
CN101739889A (zh) * | 2008-11-20 | 2010-06-16 | 索尼株式会社 | 密码处理装置 |
-
2011
- 2011-08-31 CN CN201110257273.0A patent/CN102970132B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007251390A (ja) * | 2006-03-14 | 2007-09-27 | Sony Corp | 半導体集積回路 |
CN101196965A (zh) * | 2006-12-07 | 2008-06-11 | 上海安创信息科技有限公司 | 防攻击高级加密标准的加密芯片的算法 |
CN101729241A (zh) * | 2008-10-23 | 2010-06-09 | 国民技术股份有限公司 | 抵御差分能量攻击的aes加密方法 |
CN101739889A (zh) * | 2008-11-20 | 2010-06-16 | 索尼株式会社 | 密码处理装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108737073A (zh) * | 2018-06-22 | 2018-11-02 | 北京智芯微电子科技有限公司 | 分组加密运算中抵抗能量分析攻击的方法和装置 |
CN108737073B (zh) * | 2018-06-22 | 2021-09-28 | 北京智芯微电子科技有限公司 | 分组加密运算中抵抗能量分析攻击的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102970132A (zh) | 2013-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102970132B (zh) | 一种防止对分组算法进行功耗分析和电磁辐射分析的防护方法 | |
KR101680918B1 (ko) | 특히 고차의 관측 공격에 대해 보호되는 암호화 회로 | |
KR102628466B1 (ko) | 메시지 부호화 및 복호화를 위한 블록 암호화 방법 및 이 방법을 구현하기 위한 암호화 장치 | |
US9571289B2 (en) | Methods and systems for glitch-resistant cryptographic signing | |
US9871651B2 (en) | Differential power analysis countermeasures | |
Ayoup et al. | Efficient selective image encryption | |
CN105406957B (zh) | 保护密码设备对抗实现攻击 | |
CN102402670A (zh) | 一种文件加解密方法 | |
CN104094553A (zh) | 防侧信道攻击的加密方法 | |
CN102388563A (zh) | 特别防御由其加密造成的信息泄露观测攻击的加密电路 | |
CN103795527A (zh) | 防止基于功耗分析攻击aes算法的软件掩码防护方案 | |
CN102752103A (zh) | 一种抗des功耗攻击的增强型mask掩码方法 | |
CN104301095A (zh) | Des轮运算方法和电路 | |
JP2004304800A (ja) | データ処理装置におけるサイドチャネル攻撃防止 | |
CN102970131A (zh) | 一种防止对分组算法进行功耗攻击的电路结构 | |
CN106254059A (zh) | 一种运算方法和安全芯片 | |
Bedoui et al. | A Secure Hardware Implementation for Elliptic Curve Digital Signature Algorithm. | |
CN107016292B (zh) | 防止通过功率分析进行窃听的电子电路及防止窃听的方法 | |
CN106936822B (zh) | 针对sms4抗高阶旁路分析的掩码实现方法及系统 | |
CN105743644B (zh) | 一种多变量二次方程的掩码加密装置 | |
Karri et al. | Parity-based concurrent error detection in symmetric block ciphers | |
Bagane et al. | Enriching AES through the key generation from Genetic Algorithm | |
Li et al. | Fuzzy matching template attacks on multivariate cryptography: a case study | |
JP2006025366A (ja) | 暗号化装置及び半導体集積回路 | |
Putra et al. | Security analysis of BC3 algorithm for differential power analysis attack |
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 | ||
C56 | Change in the name or address of the patentee | ||
CP02 | Change in the address of a patent holder |
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, Patentee 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 Patentee before: Beijing CEC Huada Electronic Design Co., Ltd. |