CN103916235A - 随机插入伪轮运算对的抗功耗攻击方法 - Google Patents

随机插入伪轮运算对的抗功耗攻击方法 Download PDF

Info

Publication number
CN103916235A
CN103916235A CN201210595913.3A CN201210595913A CN103916235A CN 103916235 A CN103916235 A CN 103916235A CN 201210595913 A CN201210595913 A CN 201210595913A CN 103916235 A CN103916235 A CN 103916235A
Authority
CN
China
Prior art keywords
computing
false ring
power consumption
false
aes
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.)
Pending
Application number
CN201210595913.3A
Other languages
English (en)
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.)
Beijing CEC Huada Electronic Design Co Ltd
Original Assignee
Beijing CEC Huada Electronic Design Co Ltd
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 Beijing CEC Huada Electronic Design Co Ltd filed Critical Beijing CEC Huada Electronic Design Co Ltd
Priority to CN201210595913.3A priority Critical patent/CN103916235A/zh
Publication of CN103916235A publication Critical patent/CN103916235A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明是一种随机插入伪轮运算对的抗功耗攻击方法,用于信息安全领域的智能卡芯片。本发明利用在轮运算中各模块之间随机插入伪轮运算对的方法,设计了抗功耗攻击的AES硬件电路。此AES硬件电路在智能卡中承担加密运算协处理器的作用。伪轮运算对为两个轮运算操作,一个正向的加密计算,另一个逆向的解密计算,因此伪轮运算对不影响数据逻辑,但是可以扰乱电路功耗开销,起到抗功耗攻击的效果。本发明能够有效地防御针对智能卡芯片的功耗攻击,可应用于对智能卡芯片安全性要求较高的设计中。

Description

随机插入伪轮运算对的抗功耗攻击方法
技术领域
本发明主要应用于高安全应用领域的智能卡中,也可以适用于各种需要防御对AES进行功耗攻击的安全芯片中。
背景技术
美国国家标准局(NIST,National Institute of Standards and Technology)经过三次候选算法大会于2001年11月26日采纳AES为一个标准,并在2001年12月4日的联邦记录中作为FIPS197公布。AES算法采用对称分组体制,密钥长度可以为128位、192位或者256位,共有四种基本变换。输入明文以后,与密钥经过若干轮变换,最终输出密文。AES加密芯片也就是能够对数据进行AES算法加密的芯片,该芯片经常被应用在智能卡中,作为智能卡内的数据加密模块,对接收到的数据进行加密,使智能卡能够与读卡器进行保密性的数据交互。
智能卡(SmartCard),也叫IC卡,是一个使用集成电路工艺制造的带有微处理芯片的、具有标准规格的卡片。智能卡需要在芯片内部实现密码算法的运算以保证芯片内数据的安全。在众多的加密算法中,AES是比较常用的一个。
1999年Kocher提出了差分功耗攻击方法,之后业界对功耗攻击方法进行了深入研究。功耗攻击的基本原理是,密码设备的瞬态功耗与其运算的中间数据相关,而中间数据又与密钥相关。因此,通过分析密码设备的瞬态功耗,可以获得密钥信息,从而达到完全破解密钥的目的。功耗攻击可以绕过破解密码算法的数学难题,不需要破坏智能卡,是一种经济有效的攻击方式。功耗攻击可以分为三大类:简单功耗攻击、差分功耗攻击和相关功耗攻击。
本发明用随机插入伪轮运算对的方法设计了硬件AES电路,可以有效地防御对AES实施功耗攻击。
发明内容
本发明的内容在于实现了一种利用随机插入伪轮运算对抗功耗攻击方法。数字电路是由若干个相同的逻辑门组成,每个逻辑门的功耗包括静态功耗和动态功耗两部分。逻辑门的静态功耗相对较小,动态功耗占逻辑门总功耗的主要部分。动态功耗主要由逻辑门信号的翻转产生,当信号由“0”变化到“1”,或者由“1”变化到“0”,即为翻转,逻辑门就会产生功耗。但维持“0”或者“1”不变,即没有翻转,不产生功耗。因此,电路运行时产生的功耗与内部运行数据存在相关性,功耗攻击就是利用了这个原理。
根据功耗攻击的特点,如果功耗与数据之间的相关性被破坏,该攻击方法便不会起作用。随机插入伪轮运算对即可实现这一点。
本发明利用随机插入伪轮运算对的方法,在128位明文和密钥的AES硬件电路中插入与数据运行无关的伪轮运算对,并通过随机数控制器来控制插入伪轮运算对的数量。随机数控制器的每一比特,代表插入伪轮运算对的位置和数量。从而实现了电路运行功耗与数据之间的相互独立。
经过伪轮运算对的数据,数值不变。伪轮运算对的插入点在AES轮运算的各个模块之间,随机数的每一比特,代表插入伪轮运算对的位置和数量,随机数某一位为“0”时,表示在该位置插入一个伪轮运算对;某一位为“1”时,表示在该位置插入两个伪轮运算对。在AES加密过程中,随机地在AES轮运算的各个模块之间插入伪轮运算对。
伪轮运算对包含一个正向加密伪轮运算和另一个逆向解密伪轮运算,正向加密伪轮运算与AES轮运算执行相同操作,是一个加密的过程,逆向解密伪轮运算是对正向加密伪轮运算所加密数据的解密过程。每一个AES轮运算都包含加轮密钥操作、字节替换操作、行移位操作和列混合操作。每一个逆向解密轮运算都包含逆列混合操作、逆行移位操作、逆字节替换操作和加轮密钥操作。伪轮运算对的轮密钥为固定值,与输入的明文和密钥均无关,且正向加密轮运算和逆向解密轮运算的轮密钥相同,轮顺序相反。
现有的AES硬件电路设计,对防御功耗攻击的效果并不显著。使用本发明所公开的方法后,不管输入什么样的明文和密钥,功耗和数据都无规律可循,彻底破坏了电路运行功耗与内部数据的相关性。攻击者无法利用功耗信息来破译密钥,实现了智能卡加密运算过程的安全。
附图说明
图1随机插入伪轮运算对的AES总体结构图
图2AES结构图
图3AES轮变换电路结构图
图4伪轮运算对结构图
图5随机插入伪轮运算对结构图
具体实施方式
图1是本发明的总体结构图。在128位明文和密钥的AES硬件电路中加入了伪轮运算对模块以及随机数控制器,实现在AES加密过程中,随机地在各模块之间插入伪轮运算对。图2是128位AES执行的结构图,AES算法通过加轮密钥、字节替换、行移位和列混合操作实现对输入明文的加密。其中加轮密钥是将明文和密钥进行异或运算;字节替换是通过一个查找表,每一个8位的输入都会对应唯一的一个8位输出;轮变换的中间结果被排列成一个矩阵,行移位对该矩阵的各行以字节为单位进行移位操作;列混合是将该矩阵与一个常数矩阵相乘。通过十轮的变换,输出结果即为密文。第一轮输入明文,与初始密钥执行第一轮操作。假设输出值为State。将State作为第二轮的输入,与子密钥进行第二轮操作。第三轮到第九轮均按照此规则进行。第十轮时不做列混合操作,由图1中的bypass信号控制,最后再与第十轮的子密钥进行加轮密钥操作,输出结果即为最终密文。
根据AES算法的执行过程,轮变换电路结构如图3所示。共有四个基本操作,即加轮密钥模块、字节替换模块、行移位模块、列混合模块。为了使电路能够防御功耗攻击,在各个模块间加入了伪轮运算对。伪轮运算对的结构如图4所示,其结构包括两部分:正向伪轮运算和逆向伪轮运算。正向伪轮运算与AES轮运算执行相同操作,是一个加密的过程;逆向伪轮运算是对正向伪轮运算所加密数据的解密过程。伪轮运算对内有固定的密钥,该密钥由设计者定义,与AES硬件电路的密钥无关。这样经过伪轮运算对的数据,数值不会发生变化,但是执行过程与普通的AES轮运算基本一致。因此可以产生类似的功耗特征,从而破坏了功耗与数据之间的关联,起到防御功耗攻击的效果。伪轮运算对可以多次执行,无论执行次数如何,均不会影响最终密文的输出。
为了确定插入伪轮运算对的位置和数量,在电路中加入了随机数控制器。如图1所示,两个模块之间为一个插入点,再加上输入输出端口位置,所以十轮运算共有41个插入点。该41个插入点由随机数控制,随机数控制器对于每一次加密生成一个41比特的随机数,随机数的每一比特对应一个插入点。每一比特的数值控制插入伪轮运算对的个数。当该比特为“0”时,插入一个伪轮运算对;当该比特为“1”时,插入两个伪轮运算对。如图5是随机插入伪轮运算对的结构图。
由于整个电路的组合逻辑较长,为了提高电路性能,在伪轮运算对结构内插入寄存器,如图1所示。因为寄存器的插入,使得AES的轮变换和密钥扩展两部分的时序发生变化。每个伪轮运算对结构内均有一个寄存器,当伪轮运算对循环执行时(即在该点插入两个伪轮运算对时),不会再次经过寄存器,因此,整个电路的数据通路上共有四个寄存器。在AES加密运算中,第一轮使用初始密钥,第二轮到第十轮使用密钥扩展模块产生的子密钥,最后输出密文时,与子密钥执行加轮密钥操作。由于插入了四个寄存器,每一轮运算需要四个时钟周期完成,因此密钥扩展模块每四个时钟周期更新一次。随机数控制器只在输入明文时更新一次,确定此次加密插入伪轮运算对的方案。
本发明利用上述随机插入伪轮运算对的方法,扰乱电路的功耗特征以及电路执行的时序特征,破坏数据与功耗之间的关联,可以有效地防御功耗攻击。

Claims (7)

1.随机插入伪轮运算对的抗功耗攻击方法,其特征在于在明文和密钥的AES轮运算中插入与运算数据无关的伪轮运算对,并通过随机数控制插入的伪轮运算对数量,经过伪轮运算对的数据,数值不变,实现功耗与数据之间的相互独立。
2.根据权利要求1所述的方法,其特征在于伪轮运算对的插入点在AES轮运算的各个模块之间,随机数的每一比特数值,代表插入伪轮运算对的位置和数量,在AES加密过程中,随机地在AES轮运算的各个模块之间插入伪轮运算对。
3.根据权利要求1所述的方法,其特征在于伪轮运算对包含一个正向加密伪轮运算和一个逆向解密伪轮运算,正向加密伪轮运算与AES轮运算执行相同操作,是一个加密的过程,逆向解密伪轮运算是对正向加密伪轮运算所加密数据的解密过程。
4.根据权利要求1所述的方法,其特征在于每一个AES轮运算都包含加轮密钥操作、字节替换操作、行移位操作和列混合操作。
5.根据权利要求2所述的方法,其特征在于随机数某一比特为“0”时,表示在该位置插入一个伪轮运算对;某一比特为“1”时,表示在该位置插入两个伪轮运算对。
6.根据权利要求3所述的方法,其特征在于每一个逆向解密伪轮运算都包含逆列混合操作、逆行移位操作、逆字节替换操作和加轮密钥操作。
7.根据权利要求3所述的方法,其特征在于所述伪轮运算对的轮密钥为固定值,与输入的明文和密钥均无关,且正向加密轮运算和逆向解密轮运算的轮密钥相同,顺序相反。
CN201210595913.3A 2012-12-28 2012-12-28 随机插入伪轮运算对的抗功耗攻击方法 Pending CN103916235A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210595913.3A CN103916235A (zh) 2012-12-28 2012-12-28 随机插入伪轮运算对的抗功耗攻击方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210595913.3A CN103916235A (zh) 2012-12-28 2012-12-28 随机插入伪轮运算对的抗功耗攻击方法

Publications (1)

Publication Number Publication Date
CN103916235A true CN103916235A (zh) 2014-07-09

Family

ID=51041656

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210595913.3A Pending CN103916235A (zh) 2012-12-28 2012-12-28 随机插入伪轮运算对的抗功耗攻击方法

Country Status (1)

Country Link
CN (1) CN103916235A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106027221A (zh) * 2015-09-29 2016-10-12 深圳华视微电子有限公司 抵抗高阶差分功耗分析攻击的数据处理系统
CN107154843A (zh) * 2017-05-18 2017-09-12 北京万协通信息技术有限公司 一种抗功耗攻击的sm4算法的硬件实现系统
CN108737073A (zh) * 2018-06-22 2018-11-02 北京智芯微电子科技有限公司 分组加密运算中抵抗能量分析攻击的方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060153372A1 (en) * 2005-01-10 2006-07-13 Chong-Hee Kim Smart card and method protecting secret key
CN102509036A (zh) * 2011-09-28 2012-06-20 东南大学 一种可重构密码处理器及抗功耗攻击方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060153372A1 (en) * 2005-01-10 2006-07-13 Chong-Hee Kim Smart card and method protecting secret key
CN102509036A (zh) * 2011-09-28 2012-06-20 东南大学 一种可重构密码处理器及抗功耗攻击方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
刘人杰 等: ""抗功耗攻击的随机插入式分组密码系统"", 《信息技术》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106027221A (zh) * 2015-09-29 2016-10-12 深圳华视微电子有限公司 抵抗高阶差分功耗分析攻击的数据处理系统
CN106027221B (zh) * 2015-09-29 2019-04-19 深圳华视微电子有限公司 抵抗高阶差分功耗分析攻击的数据处理系统
CN107154843A (zh) * 2017-05-18 2017-09-12 北京万协通信息技术有限公司 一种抗功耗攻击的sm4算法的硬件实现系统
CN108737073A (zh) * 2018-06-22 2018-11-02 北京智芯微电子科技有限公司 分组加密运算中抵抗能量分析攻击的方法和装置

Similar Documents

Publication Publication Date Title
CN104468089B (zh) 数据保护装置及其方法
CN102509036B (zh) 一种可重构密码处理器及抗功耗攻击方法
CN102970132B (zh) 一种防止对分组算法进行功耗分析和电磁辐射分析的防护方法
CN104734842A (zh) 基于伪操作的电路旁路攻击抵御方法
CN102904716A (zh) 一种抗侧信道攻击的对策方法
CN101431405B (zh) Des加密方法及其硬件电路实现方法
CN107154843A (zh) 一种抗功耗攻击的sm4算法的硬件实现系统
CN103503362A (zh) 数据处理装置、数据处理方法以及程序
CN106487497A (zh) 对rijndael算法的dpa保护
CN105959107A (zh) 一种新型高安全的轻量级sfn分组密码实现方法
CN102710413A (zh) 一种抗dpa/spa攻击的系统和方法
CN102624520B (zh) 基于aes的192比特位密钥扩展系统及方法
CN103916235A (zh) 随机插入伪轮运算对的抗功耗攻击方法
CN103023634A (zh) 一种防止差分功耗分析的des装置
CN103746796A (zh) 一种实现智能卡sm4密码算法的协处理器
CN103873229B (zh) KLEIN加密AVR环境下抗timing和cache边信道攻击的快速保护方法
GB2532835A (en) Double-mix feistel network for key generation or encryption
CN105049203A (zh) 一种支持多工作模式的可配置3des加解密算法电路
Zhang et al. Securing the AES cryptographic circuit against both power and fault attacks
EP1625693A2 (en) A hardware implementation of the mixcolumn / invmixcolumn functions
CN101150392A (zh) 利用数字功耗补偿防功耗攻击的硬件3des
CN103647640B (zh) 针对des第二轮l寄存器翻转的功耗攻击方法
Panato et al. An IP of an Advanced Encryption Standard for Altera/spl trade/devices
Wadi et al. A low cost implementation of modified advanced encryption standard algorithm using 8085A microprocessor
CN203180936U (zh) 一种防止差分功耗分析的des装置

Legal Events

Date Code Title Description
C06 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
RJ01 Rejection of invention patent application after publication

Application publication date: 20140709

RJ01 Rejection of invention patent application after publication