一种抗差分功耗分析的数字加密标准改进方法及装置的制作方法

文档序号:7870859阅读:273来源:国知局
专利名称:一种抗差分功耗分析的数字加密标准改进方法及装置的制作方法
技术领域
本发明涉及对称加解密算法技术领域,尤其涉及一种抗差分功耗分析的数字加密标准(Data Encryption Standard,简称DES)改进方法及装置。
背景技术
随着智能卡技术的不断发展,智能卡芯片的安全性也面临越来越大的挑战。在众多加密算法中,DES算法是一种应用较广的对称加/解密算法。
密码系统在实际使用中,其硬件在运行中不可避免要泄露一些信息,如功耗,运行时间,电磁波等,利用上述信息对密码系统进行攻击已成为信息安全芯片产品的巨大威胁。 在众多旁路攻击手段中,简单功耗分析(SPA)和差分功耗分析(DPA)已被广泛使用,SPA是根据功耗曲线的特征及攻击者的经验直观地分析出加密硬件中执行的指令或操作,常被用来破解指令执行与某些数据有关的算法。DPA分析则可从功耗曲线微小的差分信号分析出所需的关键信息,但需要搜集大量的信息,并采集多组功耗曲线以及每条曲线对应的明文、 密文记录。DPA具有使用资源非常少,易于进行的特点,对加密硬件设备危害非常大,DPA 要比SPA强得多,而且更加难以预防,因此加密系统面临着严重的威胁。
为了抵御各种攻击,技术人员相应地提出了一些解决方法,目前主流的技术有引入随机数对密码算法执行过程中的中间运算结果进行随机化,使密码模块的功耗依赖于随机化后的中间运算结果,而独立于实际的中间运算结果,从而使DPA失效;添加随机噪声掩盖处理中间数据的功耗;使用操作与功耗不相关的特殊逻辑单元(如双规逻辑电路、预充电逻辑电路等),消除功耗和中间结果之间的相关性。
原标准DES算法的主流程图如图I所示,DES算法将64位的明文输入块变为64位的密文输出块,其功能是把输入的64位数据块按位重新组合,并把输出分为LO、RO两部分, 每部分各长32位,进行初始置换,然后经过16次迭代运算后得到L16、R16,将此作为输入, 进行逆置换,即得到密文输出。其中每一轮DES算法的f函数包括扩展置换、与密钥的异或、S盒代换和P盒置换操作,如图2所示。64位的输入密钥中第8,16, ......,64位包含了 8个奇偶效验位,压缩变换除去了奇偶效验位,并对剩下的56位进行位置换,有效的56位密钥经过压缩变换后分成两部分。从第一个周期开始,每个时钟循环左移一位或两位,锁存后作为下一轮输入,同时两部分也在合并后通过压缩变换产生48位的子密钥Kl,K2, K3,…… K16,作为f函数输入。
原始的DES实现方案没有任何防御技术,使得攻击者能够很容易地对齐和处理收集的功耗曲线。
在众多抵御方案中,其中研究最为广泛的是在算法中通过引入随机数来消除真实密钥和功耗相关性。2001年,Akkar和Giraud在施普林格(Springer-Verlag)科技期干丨J的文献《An Implementation of DES and AES Secure against some Attacks》中第一次将掩码技术用于DES算法的防护,算法通过引入掩码随机数X,改变S盒的结构来达到掩盖真实数据的目的。2005年,Jiqiang Lv在ACISP 2005:195-206的文献《EnhancedDES Implementation Secure against High-Order Differential Power Analys is inSmartcaixls》中引入三个32位随机数V1、V2和V3,并在原有S盒函数的基础上定义了六种不同的新S盒函数SM-Box对算法的中间结果进行掩盖。现有技术中,添加随机噪声掩盖处理中间数据的功耗的方法在实际应用中只能防御简单功耗分析,如果对同一明文的能量消耗进行测量然后求平均就能够来降低噪声,随着数字信号处理技术的发展,常规的噪声可以通过模式识别、自适应滤波、小波分析等技术手段滤除,增加噪声只会增加功耗分析需要的样本数而已;而采用数据与功耗不相关的特殊逻辑单元实现的方式也不切合实际,要想设计出功耗完全平衡的逻辑单元非常复杂,而且即使能够设计出完美的功耗平衡的逻辑电路,其面积也是芯片无法承受的;最可行的方法是在算法过程中引入随机掩码,消除中间数据和功耗信息的相关性,但目前的方案中几乎没有可以将算法进行完全的掩盖。

发明内容
本发明要解决的技术问题是提供一种数字加密标准改进方法及装置,解决现有技 术中无法有效消除真实密钥和功耗相关性的问题。为了解决上述技术问题,本发明提供了一种抗差分功耗分析的数字加密标准改进方法,包括对64位明文进行数字加密标准的16轮运算的S盒函数处理步骤中使以下由SM-Box表示的新S盒函数;在第1、6、11、12 轮中SM-Box (A) =S-Box (A) P^1(Vl)在第2、5、10、13 轮中SM-Box (A) =S-Box (A E(Vl)) P-1 (V2)在第3、4 轮中=SM-Box(A) =S-Box (A E (V2)) P-1 (VI V2)在第7、16 轮中SM-Box (A) =S-Box (A) P-1 (V3)在第8、15 轮中=SM-Box(A) =S-Box (A E (V3)) P-1 (V2)在第9、14 轮中=SM-Box(A) =S-Box (A E (V2)) P-1 (VI V3)其中,S-Box表示基准数字加密标准算法中使用置换表的S盒函数,A表示新S盒函数的输入数据,VI、V2、V3为32位随机数,E表示扩展置换函数,F1表示置换函数P的逆置换函数。进一步地,上述方法还可以具有以下特点所述方法还包括将所述明文与64位随机数X异或后进行初始置换;在所述16轮运算的每次运算中将前一轮得到的R值与XV31 Xl32_63的异或结果作为当前轮计算出的L值;在第16轮运算结束后将R的值作为前32位将L的值作为后32位构成64位数据后进行逆初始置换,与所述随机数X异或后得到密文。为了解决上述技术问题,本发明提供了一种抗差分功耗分析的数字加密标准改进装置,所述装置包括设置模块和执行模块;所述参数设置模块,用于设置三个32位随机数即VI、V2、V3 ;设置16轮运算中S盒函数处理步骤中由SM-Box表示的新S盒函数在第1、6、11、12 轮中SM-Box (A) =S-Box (A) P^1(Vl)在第2、5、10、13 轮中SM-Box (A) =S-Box (A E(Vl)) P-1 (V2)
在第3、4 轮中:SM-Box ⑷=S-Box (A E (V2)) P-1 (VI V2)
在第7、16 轮中:SM-Box (A) =S-Box (A) P-1 (V3)
在第8、15 轮中:SM-Box ⑷=S-Box (A E (V3)) P-1 (V2)
在第9、14 轮中:SM-Box ⑷=S-Box (A E (V2)) P-1 (VI V3)
其中,S-Box表示基准数字加密标准算法中使用置换表的S盒函数,A表示新S盒函数的输入数据,E表示扩展置换函数,F1表示置换函数P的逆置换函数;
所述执行模块,用于对输入的64位明文进行数字加密标准,在16轮运算的S盒函数处理步骤中使用所述新S盒函数。
进一步地,上述装置还可以具有以下特点
所述参数设置模块,用于设置64位随机数X ;
所述执行模块,还用于将所述明文与所述64位随机数X异或后进行初始置换;在所述16轮运算的每次运算中将前一轮得到的R值与XIch31 乂132_63的异或结果作为当前轮计算出的L值;在第16轮运算结束后将R的值作为前32位将L的值作为后32位构成64 位数据后进行逆初始置换,与所述随机数X异或后得到密文。
本发明结合不同的随机数改造的S盒函数,破坏了真实密钥信息和功耗曲线之间的相关性,给功耗分析获取信息带来很大难度达到抵御功耗分析的目的。本发明同时结合掩盖技术,在加密运算之前对明文进行预掩盖,并在每轮运算中进行随机数掩盖,有效的防止了信息泄露而被攻击,提高了其抗差分功耗分析攻击的能力。


图I是原始DES算法流程图2是原结DES算法中每一轮运算的步骤示意图3是本发明中的DES改进算法的示意图4是实施例中预掩盖和掩盖后的第一轮DES运算的示意图
图5是实施例中第二轮DES运算的示意图6是实施例中第三轮DES运算的示意图7是实施例中第16轮DES运算及密文恢复的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
原始DES实现方案中没有有效的防御技术,使得攻击者能够很容易地对齐和处理收集的功耗曲线。本发明未采用添加随机化噪声和功耗平衡器件的方法,因为第一种方法在实际的攻击中有很多的办法可以去除这些噪声,即使能够设计出随机性能很好的噪声源,如果攻击者采用电磁分析的攻击方法依然能旁路掉噪声的影响;第二种方法实现起来十分的困难,即使能够设计出完美的诸如双轨逻辑的功耗平衡单元库,但是其面积至少是现有单元的2倍以上,所以在面积上也不予以考虑。
经过上述分析,本发明提出了一种新的DES改进方法,如图3所示,此方法包括对64位明文进行数字加密标准的16轮运算的S盒函数处理步骤中使以下由SM-Box表示的新S盒函数;在第1、6、11、12 轮中SM-Box (A) =S-Box (A) P^1(Vl)在第2、5、10、13 轮中SM-Box (A) =S-Box (A E(Vl)) P-1 (V2)在第3、4 轮中=SM-Box(A) =S-Box (A E (V2)) P-1 (VI V2)在第7、16 轮中:SM-Box (A) =S-Box (A) P-1 (V3)在第8、15 轮中:SM-Box ⑷=S-Box (A E (V3)) P-1 (V2)在第9、14 轮中:SM-Box ⑷=S-Box (A E (V2)) P-1 (VI V3)其中,S-Box表示基准数字加密标准算法中使用置换表的S盒函数,A表示新S盒 函数的输入数据,VI、V2、V3为32位随机数,E表示扩展置换函数,F1表示置换函数P的逆置换函数。本发明中引入了新的S盒函数对数据进行掩盖,并引入了三个32位随机数V1、V2和V3使每一轮加密运算中用于掩盖数据的随机数不同,可以提高抵御功耗分析的能力。使用本方法的装置中设置模块和执行模块,参数设置模块用于设置三个32位随机数即VI、V2、V3,并设置16轮运算中S盒函数处理步骤中由SM-Box表示的新S盒函数;执行模块用于对输入的64位明文进行数字加密标准,在16轮运算的S盒函数处理步骤中使用所述新S盒函数。为了更好改善抵御时间攻击和功耗分析攻击的问题,本方法中还可引入一 64位随机数X,在运算开始之初将明文与64位随机数X异或后进行初始置换;在16轮运算的每次运算中将前一轮得到的R值与XV31 Xl32_63的异或结果作为当前轮计算出的L值;在第16轮运算结束后将R的值作为前32位将L的值作为后32位构成64位数据后进行逆初始置换,与随机数X异或后得到密文。使用此方法的装置中设置模块还需设置此64位随机数X,执行模块执行上述方法。下面对此方案进行详细说明。图4是预掩盖和掩盖后的第一轮DES运算的示意图。预掩盖的过程包括算法开始之初将64位随机数X与明文M进行异或。预掩盖完成后,执行初始置换(IP),然后执行第一轮DES运算。其中Xl代表X经过初始置换的值IP(X) ,XIch31和Xl32_63分别代表Xl的低32位和高32位,X2为Xl32_63经过扩展E变换的值E(X132_63)。第一轮DES运算中,R°即IP(M)32-63 X132-B3经过扩展置换(EP简称E)后结果为EP( IP(M)32_63) X2,此结果与密钥Kl异或后进入新的S盒,经过新的S盒变换后,经过P变换,得到OutSPl P—1 (VI Xich31 Xl32-B3),本结果只作示意之用OutSPl用于表示未经过随机数X预掩盖和新的S盒置换处理的情况下从P盒输出的结果。此结果与第一轮DES运算中1^°即IP (M)ch31 θ XIch31异或得到第一轮DES运算的R1,其中ResTmpl只作示意之用表示未经过随机数X预掩盖和新的S盒置换处理的情况下未被随机数掩盖的原始数据。为了最终能够还原得到真实的密文,在每一轮运算结束前,将R°与XltH31 Xl32-B3进行异或得到L1。图5和图6分别是第二、三轮DES运算的示意图。图7是第16轮DES运算及密文恢复的示意图。经过16轮运算后,在加解密运算结束前,交换高低32位数据的位置即将R15的值作为前32位将L15的值作为后32位构成64位数据后进行逆初始置换,与随机数X异或后得到密文。本方法中,在每一轮运算都根据上面新的S盒函数做相应的修改,并对数据进行掩盖,使加密运算从始至终都在随机数的掩盖下进行,从而增加功耗分析的难度。
本发明采用预随机化手段在加密运算开始时,就对数据进行随机化,并修改S盒函数对中间结果进行掩盖,结合每一轮采用不同的随机数,从始至终将数据用不同的随机数掩码,使功耗信息独立于中间运算结果,给SPA和DPA攻击获取信息带来很大难度。
如上所述,在整个DES的算法流程当中,所有的中间变量都被随机数掩码覆盖,破坏了真实密钥信息和功耗曲线之间的相关性,并且在加密运算之前就对明文进行了预掩盖,直到运算结束后恢复,有效的防止了信息泄露而被攻击,提高了其抗DPA攻击的能力。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
权利要求
1.一种抗差分功耗分析的数字加密标准改进方法,其特征在于, 对64位明文进行数字加密标准的16轮运算的S盒函数处理步骤中使以下由SM-Box表示的新S盒函数;在第 1、6、11、12 轮中=SM-Box(A) =S-Box(A) P-1 (Vl)在第 2、5、10、13 轮中:SM-Box ⑷=S-Box (A E(Vl)) P-1 (V2)在第 3、4 轮中=SM-Box(A) =S-Box (A E (V2)) P-1 (VI V2)在第 7、16 轮中SM-Box (A) =S-Box (A) P-1 (V3)在第 8、15 轮中=SM-Box(A) =S-Box (A E (V3)) P-1 (V2)在第 9、14 轮中:SM-Box ⑷=S-Box (A E (V2)) P-1 (VI V3) 其中,S-Box表示基准数字加密标准算法中使用置换表的S盒函数,A表示新S盒函数的输入数据,VI、V2、V3为32位随机数,E表示扩展置换函数,F1表示置换函数P的逆置换函数。
2.如权利要求I所述的方法,其特征在于, 所述方法还包括将所述明文与64位随机数X异或后进行初始置换;在所述16轮运算的每次运算中将前一轮得到的R值与XIch31 Xl32_63的异或结果作为当前轮计算出的L值;在第16轮运算结束后将R的值作为前32位将L的值作为后32位构成64位数据后进行逆初始置换,与所述随机数X异或后得到密文。
3.一种抗差分功耗分析的数字加密标准改进装置,其特征在于, 所述装置包括设置模块和执行模块; 所述参数设置模块,用于设置三个32位随机数即VI、V2、V3 ;设置16轮运算中S盒函数处理步骤中由SM-Box表示的新S盒函数在第 1、6、11、12 轮中=SM-Box(A) =S-Box(A) P-1 (Vl)在第 2、5、10、13 轮中:SM-Box ⑷=S-Box (A E(Vl)) P-1 (V2)在第 3、4 轮中=SM-Box(A) =S-Box (A E (V2)) P-1 (VI V2)在第 7、16 轮中SM-Box (A) =S-Box (A) P-1 (V3)在第 8、15 轮中=SM-Box(A) =S-Box (A E (V3)) P-1 (V2)在第 9、14 轮中:SM-Box ⑷=S-Box (A E (V2)) P-1 (VI V3) 其中,S-Box表示基准数字加密标准算法中使用置换表的S盒函数,A表示新S盒函数的输入数据,E表示扩展置换函数,F1表示置换函数P的逆置换函数; 所述执行模块,用于对输入的64位明文进行数字加密标准,在16轮运算的S盒函数处理步骤中使用所述新S盒函数。
4.如权利要求3所述的装置,其特征在于, 所述参数设置模块,用于设置64位随机数X ; 所述执行模块,还用于将所述明文与所述64位随机数X异或后进行初始置换;在所述·16轮运算的每次运算中将前一轮得到的R值与XIch31 Xl32_63的异或结果作为当前轮计算出的L值;在第16轮运算结束后将R的值作为前32位将L的值作为后32位构成64位数据后进行逆初始置换,与所述随机数X异或后得到密文。
全文摘要
本发明公开了一种抗差分功耗分析的数字加密标准改进方法及装置,对64位明文进行数字加密标准的16轮运算的S盒函数处理步骤中使以下由SM-Box表示的新S盒函数。本发明结合不同的随机数改造的S盒函数,破坏了真实密钥信息和功耗曲线之间的相关性,给功耗分析获取信息带来很大难度达到抵御功耗分析的目的。本发明同时结合掩盖技术,在加密运算之前对明文进行预掩盖,并在每轮运算中进行随机数掩盖,有效的防止了信息泄露而被攻击,提高了其抗差分功耗分析攻击的能力。
文档编号H04L9/06GK102983964SQ20121058606
公开日2013年3月20日 申请日期2012年12月28日 优先权日2012年12月28日
发明者田圆, 顾申, 高洪福 申请人:大唐微电子技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1