CN104219040A - 防对称密码算法受攻击的方法 - Google Patents
防对称密码算法受攻击的方法 Download PDFInfo
- Publication number
- CN104219040A CN104219040A CN201310221986.0A CN201310221986A CN104219040A CN 104219040 A CN104219040 A CN 104219040A CN 201310221986 A CN201310221986 A CN 201310221986A CN 104219040 A CN104219040 A CN 104219040A
- Authority
- CN
- China
- Prior art keywords
- child
- execution sequence
- computing
- random number
- operations
- 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
Links
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开了一种防对称密码算法受攻击的方法,涉及信息安全技术领域。包括以下步骤:分析密码算法一轮中相互独立的子操作;利用随机数发生器产生的随机数来确定本轮运算中子操作的执行顺序;下一轮利用随机数发生器产生的新的随机数确定运算中子操作的执行顺序;每一轮都采用新的随机数确定运算中子操作的执行顺序,直到结束。本发明通过随机数来确定运算中子操作的执行顺序,使得一连串的子操作执行的前后顺序不可预测,攻击者得到的样本之间的相互关系难以确定,因而能够有效降低攻击者收集到的信息的信噪比,也就能够有效抵御功耗分析攻击。
Description
技术领域
本发明涉及信息安全领域,特别是涉及一种防对称密码算法受攻击的方法。
背景技术
随着信息技术的发展,数据的机密性和完整性受到越来越多的关注,在早期人们还主要关注协议和算法的安全性,但自从旁路攻击(SideChannel Attacks)被提出以后,人们越来越多的开始关注芯片的实现,以及针对芯片所面临的攻击所采取的抗攻击措施。
旁路攻击主要是基于物理特征的分析技术,包括功耗分析,电磁分析,错误分析,时间分析等等。功耗分析是指通过分析密码运算过程中呈现的电流/电压变化得出功耗的变化,进而将功耗与密钥信息联系起来,最终获取密钥信息。功耗分析技术又分为简单功耗分析(SPA)和差分功耗分析(DPA)。SPA是指根据功耗曲线上所呈现的特殊特征来推测密钥信息,DPA利用的是操作数的变化所引起的微小的功耗变化,需要通过对大量功耗曲线进行统计分析,最终得出密钥信息。电磁分析与功耗分析类似,只是获取曲线的方式有别。错误分析是利用错误结果进行分析得出密钥信息的分析技术。时间分析是指有的算法运行时间会因密钥的不同而不同,因而可以通过运行时间来推测密钥。
实施功耗分析攻击需要收集大量的信息,这些获取的信息中有有用的信息(例如,与密钥相关的信息),也有噪声(例如,对确定密钥有干扰或无关的信息)。从测量中获得信息的质量可以用信噪比来表示,即信号量与噪声量之比的度量单位。恢复密钥所必须的信息数量由测量和分析的技术决定,但是与信噪比的平方成反比关系。即信噪比降低300倍,信息量会增加到90,000倍。
在硬件防御功耗分析措施方面,通常包括引入噪声的方式降低测量精度和在算法级提供保护。引入噪声的方式比较多,比如电流扰动、假操作等。一个典型的算法级技术是盲化方法(masking),但是要完全实现随机盲化在时间和硬件方面的开销都很难被目前的应用所接受,而固定盲化方法的安全性又很难保证;另外一个技术是电路一级的双轨逻辑,其面积和时延方面的开销都很大,并且其实现的技术难度比较大。
发明内容
针对上述技术中的现状,本发明所要解决的技术问题是提供一种防对称密码算法受攻击的方法,它相对安全而又易于实现,能有效降低信噪比,增加攻击需要的样本数,从而增加攻击的难度。
为解决上述技术问题,本发明的防对称密码算法受攻击的方法,包括如下步骤:
步骤一、将密码算法一轮中相互独立的运算分解为多个子操作,一个时钟执行一个子操作;
步骤二、利用随机数发生器产生的随机数来确定第一轮运算中子操作的执行顺序,并执行完第一轮的所有运算;
步骤三、利用随机数发生器产生的新的随机数来确定第二轮运算中子操作的执行顺序,并执行完第二轮的所有运算;
步骤四、其余各轮运算,每一轮都采用随机数发生器产生的新的随机数来确定本轮运算中子操作的执行顺序,直到所有运算结束。
步骤一中所述的将密码算法一轮中相互独立的运算分解为多个子操作,每个子操作可大可小,根据具体实现的效率来确定。
步骤二、三、四中所述的随机数的位数由子操作的个数确定,力争使得每个子操作出现在每个位置的概率相等。
本发明采用子操作乱序执行的方式来防止对称密码算法受攻击;即通过随机数来确定运算中子操作的执行顺序,使得一连串的子操作执行的前后顺序不可预测,攻击者得到的样本之间的相互关系难以确定,使攻击者不能正确对齐数据;由于噪音显著增加(因为包含不相关的样本),并且有用信号降低(因为存在较少的良好样本),使攻击者收集到的信息的信噪比大大降低,增加了攻击需要的样本数,从而增加功耗分析攻击的难度,有效抵御功耗分析攻击。
本发明执行速度快,所占用的芯片面积小,易于实现。
附图说明
下面结合附图与具体实施方式对本发明作进一步详细的说明:
附图是所述防对称密码算法受攻击的方法一实施例流程图。
具体实施方式
所述防对称密码算法受攻击的方法,包括以下步骤:分析密码算法一轮中相互独立的子操作;利用随机数发生器产生的随机数来确定本轮运算中子操作的执行顺序;下一轮利用随机数发生器产生的新的随机数确定运算中子操作的执行顺序;每一轮都采用新的随机数确定运算中子操作的执行顺序,直到结束。
参见附图所示,下面以AES(高级加密标准Advanced EncryptionStandard)的加密过程为例来介绍本发明。
AES轮变换的输入包括16个字节的数据和16个字节的密钥,最终产生16个字节的输出。16字节的输出数据来自于四个列混合(Mixcolumn)模块运算的结果,将来自于同一个列混合模块的4个字节分为1组,一共有4组。
AES轮变换的操作包括密钥加(Addkey)操作,由密钥加模块实现;字节替换(SubBytes)操作,由字节替换模块实现;行移位(ShiftRow)操作;列混合(Mixcolumn)操作,由列混合模块实现。输出字节的分组方式将自动实现行移位操作的功能,因此轮变换的操作仅剩下密钥加操作,字节替换操作和列混合操作。
根据输出数据的分组方式,将产生这4组输出数据的输入数据和密钥也相应的分为4组,这4组输入数据(Data_Column1,Data_Column2,Data_Column3,Data_Column4)和密钥(Key_Column1,Key_Column2,Key_Column3,Key_Column4)参与的运算是相互独立的。其中,第一组输入数据Data_Column1为参与第一列运算的数据(4个字节);第二组输入数据Data_Column2为参与第二列运算的数据(4个字节);第三组输入数据Data_Column3为参与第三列运算的数据(4个字节);第四组输入数据Data_Column4为参与第四列运算的数据(4个字节);第一组密钥Key_Column1为参与第一列运算的密钥(4个字节);第二组密钥Key_Column2为参与第二列运算的密钥(4个字节);第三组密钥Key_Column3为参与第三列运算的密钥(4个字节);第四组密钥Key_Column4为参与第四列运算的密钥(4个字节)。
第一个四选一选择器Mux1和第二个四选一选择器Mux2用两位随机数rand_sel[1:0]来选择4组输出数据的产生顺序,也即是随机选择产生某组输出的输入数据和密钥参与运算。图中,data为被选择出的参与当前运算的一组输入数据(4个字节);key为被选择出的参与当前运算的一组密钥(4个字节)。
每组输出数据由寄存器(registers)进行暂存,但不能覆盖没有参与本轮运算的输入数据,等待所有本轮的输出产生后,该组输出数据又作为下一轮运算的输入数据参与运算。
所有轮运算结束后,将得到最终的加密结果。
本发明通过随机数来确定运算中子操作的执行顺序,使得一连串的子操作执行的前后顺序不可预测,攻击者得到的样本之间的相互关系难以确定,因而能够有效降低攻击者收集到的信息的信噪比,也就能够有效抵御功耗分析攻击。
以上通过具体实施方式对本发明进行了详细的说明,但这些并非构成对本发明的限制。在不脱离本发明原理的情况下,本领域的技术人员还可做出许多变形和改进,这些也应视为本发明的保护范围。
Claims (3)
1.一种防对称密码算法受攻击的方法,其特征在于,包括如下步骤:
步骤一、将密码算法一轮中相互独立的运算分解为多个子操作,一个时钟执行一个子操作;
步骤二、利用随机数发生器产生的随机数来确定第一轮运算中子操作的执行顺序,并执行完第一轮的所有运算;
步骤三、利用随机数发生器产生的新的随机数来确定第二轮运算中子操作的执行顺序,并执行完第二轮的所有运算;
步骤四、其余各轮运算,每一轮都采用随机数发生器产生的新的随机数来确定本轮运算中子操作的执行顺序,直到所有运算结束。
2.如权利要求1所述的方法,其特征在于:步骤一中所述子操作可大可小,根据具体实现的效率来确定。
3.如权利要求1所述的方法,其特征在于:步骤二、三、四中所述的随机数的位数由子操作的个数确定。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310221986.0A CN104219040A (zh) | 2013-06-05 | 2013-06-05 | 防对称密码算法受攻击的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310221986.0A CN104219040A (zh) | 2013-06-05 | 2013-06-05 | 防对称密码算法受攻击的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104219040A true CN104219040A (zh) | 2014-12-17 |
Family
ID=52100205
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310221986.0A Pending CN104219040A (zh) | 2013-06-05 | 2013-06-05 | 防对称密码算法受攻击的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104219040A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN201039199Y (zh) * | 2007-04-13 | 2008-03-19 | 华中科技大学 | 一种抗功耗攻击的字节替换电路 |
US20120121083A1 (en) * | 2010-11-16 | 2012-05-17 | Samsung Electronics Co., Ltd. | Encryption apparatus and method |
CN102468954A (zh) * | 2010-11-10 | 2012-05-23 | 上海华虹集成电路有限责任公司 | 防对称密码算法受攻击的方法 |
-
2013
- 2013-06-05 CN CN201310221986.0A patent/CN104219040A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN201039199Y (zh) * | 2007-04-13 | 2008-03-19 | 华中科技大学 | 一种抗功耗攻击的字节替换电路 |
CN102468954A (zh) * | 2010-11-10 | 2012-05-23 | 上海华虹集成电路有限责任公司 | 防对称密码算法受攻击的方法 |
US20120121083A1 (en) * | 2010-11-16 | 2012-05-17 | Samsung Electronics Co., Ltd. | Encryption apparatus and method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Tiri | Side-channel attack pitfalls | |
CN105871536B (zh) | 一种基于随机延时的面向aes算法的抗功耗攻击方法 | |
CN102447556A (zh) | 一种基于随机偏移的抗差分功耗分析des加密方法 | |
Mather et al. | Multi-target DPA attacks: Pushing DPA beyond the limits of a desktop computer | |
CN103560877B (zh) | 攻击密钥的方法及装置 | |
Han et al. | Covert timing channel detection method based on time interval and payload length analysis | |
Moradi et al. | Masked dual-rail precharge logic encounters state-of-the-art power analysis methods | |
CN103795527A (zh) | 防止基于功耗分析攻击aes算法的软件掩码防护方案 | |
Saab et al. | Side-channel protections for cryptographic instruction set extensions | |
Zheng et al. | How to compare selections of points of interest for side-channel distinguishers in practice? | |
CN102468954B (zh) | 防对称密码算法受攻击的方法 | |
CN101908111B (zh) | 一种利用dpa曲线极性进行密钥提取的方法及系统 | |
CN107204841A (zh) | 一种抵御差分功耗攻击的分组密码多s盒实现的方法 | |
Hu et al. | An effective differential power attack method for advanced encryption standard | |
Wang et al. | New methods of template attack based on fault sensitivity analysis | |
CN109347621A (zh) | 基于随机延时s盒的可防御碰撞攻击的高速aes加密电路 | |
Zhang et al. | An efficient differential fault attack against SIMON key schedule | |
Zhao et al. | Systematic construction and comprehensive evaluation of kolmogorov-smirnov test based side-channel distinguishers | |
Do et al. | Low complexity correlation power analysis by combining power trace biasing and correlation distribution techniques | |
CN104219040A (zh) | 防对称密码算法受攻击的方法 | |
Hu et al. | Software implementation of aes-128: Side channel attacks based on power traces decomposition | |
CN102932147A (zh) | 基于隐马尔科夫模型的椭圆曲线密码计时攻击方法 | |
Zhou et al. | Electromagnetic side channel attack against embedded encryption chips | |
De Mulder et al. | Practical DPA attacks on MDPL | |
CN103647640A (zh) | 针对des第二轮l寄存器翻转的功耗攻击方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20141217 |