一种基于随机偏移的抗差分功耗分析des加密方法

文档序号:7762039阅读:202来源:国知局
专利名称:一种基于随机偏移的抗差分功耗分析des加密方法
技术领域
本发明涉及一种信息加密方法,特别是需要抗差分功耗分析(DPA)的DES加密方法,尤其涉及一种基于随机偏移的抗差分功耗分析DES加密方法。
背景技术
近年来,密码算法的旁路攻击越来越受到关注和研究。旁路攻击(Side Channel Attacks, SCA)利用算法在电路中运行时所泄漏出来的非特意的信息从而分析出算法电路中的秘密数据。功耗分析是目前旁路攻击中最热门、研究最为广泛的类型,通过监测加密系统泄露的电流和电压等物理信息来进行攻击。功耗分析按照攻击手段主要可分为简单功耗分析(Simple Power Analysis, SPA)和差分功耗分析(Differential Power Analysis, DPA)两种,分别针对电路不同的弱点。简单功耗分析通过观察算法电路运行时的功耗特征来进行攻击;差异功耗分析对大量的明文(或密文)和功耗曲线进行统计分析获取密钥信肩、ο差异功耗分析的关键手段之一就是需要在算法运行时找出一个观察点,以便根据该观察点的值来进行功耗分组。差异功耗分析的基本步骤为首先采集大量的功耗曲线,然后根据选定的观察点对这些功耗曲线进行分组,然后必须要将各组的功耗曲线在时域上对齐之后,才能对功耗曲线进行统计分析。由于差异功耗分析处理的是时域信号,因此在时域上精确对齐功耗曲线是十分关键的一步。如果没有对齐的话,不同数据的功耗差异就无法在大量样本中得到累积。因此只有把所有功耗曲线对齐,之后的统计分析才有意义。DES算法为密码体制中的对称密码体制,又被成为美国数据加密标准,是1972年美国IBM公司研制的对称密码体制加密算法。其密钥长度为56位,明文按64位进行分组, 将分组后的明文组和56位的密钥按位替代或交换的方法形成密文组的加密方法。对于硬件实现的DES算法,差异功耗分析是最需要防范的。抵御差异功耗分析的常用方法为盲化方案,但是DES算法由于其本身算法的特点,即存在非线性的Sbox,很难对其进行彻底盲化。本发明中提出的抗攻击方法就是使得攻击者难以在时域上对齐功耗曲线,从而无法对DES加密实施差异功耗分析。

发明内容
本发明要解决的技术问题是提供一种基于随机偏移的抗差分功耗分析DES加密方法,能够通过将DES运算根据随机数在时域上进行偏移,使得DES运算的功耗曲线无法在时域上对齐,从而使得攻击者无法对其实施差异功耗分析。为解决上述技术问题,本发明提供一种基于随机偏移的抗差分功耗分析DES加密方法,并给出了采用该方法的一个DES加密的实现实例。本发明基于随机偏移的抗差分功耗分析DES加密方法如下(1)产生随机数r0 ;(幻根据随机数r0的值,将DES运算在时域上进行偏移;C3)在真DES非运算期间,插入假DES运算以掩盖真实DES运算的位置。步骤2中所述DES运算,包括整个DES加密或者解密运算,包括DES算法中的轮函数运算,包括DES算法中任何子运算和子函数。所述DES算法中任何子运算和子函数,包括 Sbox运算。步骤2和步骤3具体为首先将随机数rO对η取模得到余数mO,进行mO次假DES 运算,其中η为任何正整数;然后进行真DES运算,再进行(n-1-mO)次假DES运算。所述假DES运算是以假密钥进行DES运算。步骤2和步骤3中所述进行真DES运算过程中,产生随机数rl,根据随机数rl的值,将DES运算中子运算和子函数(包括Sbox运算)的运算顺序进行改变。将随机数rl对χ 取模得到余数ml,其中每轮函数中的sbox运算顺序如下sbox[ml% 8+1], sbox[ (ml+1) % 8+1], ......, sbox[(ml+7) % 8+1] 步骤2和步骤3中所述进行真DES运算过程中,产生随机数数组r2,根据随机数数组r2的值,将DES运算中子运算和子函数(包括Sbox运算)的运算顺序进行改变。所生成的随机数数组r2包含8个随机数r2 [1]到r2 [8],满足对于每一个随机数r2
r2[n]%8都不相等,将r2[n]对8取模得到余数m[n];其中每轮函数中的sbox运算顺序如下sbox[m[l]+l],sbox[m[2]+l],......,sbox[m[8]+l]。下面对基于随机偏移的抗差分功耗分析DES加密方法的原理进行一下说明本发明的方法就是使得攻击者难以在时域上对齐功耗曲线。根据随机数对DES运算进行时域上的偏移。偏移的运算包括整个DES加密或解密运算,DES运算中的轮函数运算,DES运算中的任何子运算和子函数,例如Sbox运算。在真实DES运算的前后,都根据随机数插入相应的假DES运算,并且使得真DES和假DES运算的功耗曲线难以区分,从而使得攻击者无法找到真实DES运算的位置,因此也就无法在时域上对齐功耗曲线。另外也可以对DES运算中可以改变时间顺序的子运算和子函数的计算顺序进行改变,例如可以不按照顺序计算Sboxl-SboxS,而是根据随机数的值来决定计算顺序。因此子运算和子函数每次计算的顺序都不同,从而使得攻击者无法定位子运算和子函数的运算位置。而差分功耗分析的前提就是必须在时域上精确对齐功耗曲线,否则不同数据的功耗差异就无法在大量样本中得到累积,即使是对应正确密钥段的差分曲线也不会出现明显的尖峰。因此使用随机偏移的DES加密方法可以抵御差分功耗分析。本发明的有益效果在于DES算法由于其本身算法的特点,很难对算法进行彻底盲化。与标准的DES加密实现方法相比,本发明中所采用的基于随机偏移的抗差分功耗分析DES加密方法能够通过对DES运算在时域上进行偏移,并且加入假的DES运算,使得攻击者无法从功耗曲线上区分真假DES来得知真实DES的运行位置,从而无法对齐功耗曲线,而差分功耗攻击的关键就是要对齐功耗曲线,因此该方法能够抵御差分功耗攻击。本发明在DES加密运算中使用随机偏移的方法,从而使得DES加密运算能够抵御差分功耗分析。本发明的其他优点,目的和特征将部分地在随后的描述中阐明,并且对本领域普通技术人员来说,部分内容将在审查下列内容时变得清楚,或者可以由本发明的实践而得知。利用在书面描述及其权利要求以及附图中具体指出的结构,可以实现和达到本发明的目的和其他优点。


下面结合附图和具体实施方式
对本发明作进一步详细的说明
图1是本发明实施例1的DES算法中Sbox函数运算在时域上的随机偏移示意图; 图 1 中,F-sboxl-F-sbox8 指假 Sbox 运算,T-sboxl-T_sbox8 指真 Sbox 运算;图2是本发明实施例1的DES算法轮函数中Sbox函数随机运算顺序示意图;图3是本发明实施例2的DES算法中Sbox函数运算在时域上的随机偏移示意图; 图 3 中,F-sboxl-F-sbox8 指假 Sbox 运算,T-sboxl-T_sbox8 指真 Sbox 运算;图4是本发明实施例2的DES算法轮函数中Sbox函数随机运算顺序示意图。
具体实施例方式实施例1参见图1和图2,本发明提供了一个基于随机偏移的抗差分功耗分析DES加密方法实施例。该实施例1中的DES加密运算每8个时钟周期计算一次轮函数。轮函数主要包含置换运算和8个Sbox运算,置换运算在轮函数第一个和最后一个时钟周期计算,每个时钟周期计算一个Sbox运算,Sbox运算的计算顺序由随机数决定。整个加密或者解密需要计算16轮函数,因此一共需要1 个时钟周期来完成DES运算。另外又由于需要插入假DES 来掩盖真实DES的运行位置,因此还需要加上假DES的运算时间。由此攻击者将无法确定真实Sbox的运算位置以及运算顺序,从而无法对齐功耗曲线来实施差异功耗分析。具体的DES加密算法流程如下描述步骤1,产生8位随机数rO ;步骤2,将rO对5取模(取余数运算% )得到余数mO ;步骤3,计算mO次假轮函数,即以假密钥进行轮函数的运算;如图1所示,当mO = 1时,计算1次假轮函数(见图1的r0-0);当mO = 2时,计算2次假轮函数(见图1的 rO-Ι);当mO = 3时,计算3次假轮函数(见图1的rO-η);步骤4,产生8位随机数r 1 ;步骤5,将rl对8取模得到余数ml ;步骤6,计算16轮真轮函数(r0undl-r0undl6)运算,其中每轮函数中的sbox运
算顺序如下:sbox[ml % 8+1], sbox[(ml+l) % 8+1], ......,sbox[(ml+7) % 8+1];如图 2
所示,当ml = 4时,每轮函数中的sbox运算顺序为sbox5,sbox6, sbox7, sbox8, sboxl, sbox2,sbox3,sbox4(见图2的rl-0);当ml = 3时,每轮函数中的sbox运算顺序为:sbox4, sbox5, sbox6, sbox7, sbox8, sboxl, sbox2, sbox3(见图 2 的 rl_l);当 ml = 1 时,每轮函数中的 sbox 运算顺序为:sbox2, sbox3, sbox4, sbox5, sbox6, sbox7, sbox8, sboxl (见图 2 的 rl-n)。步骤7,计算G-mO)次假轮函数,即以假密钥进行轮函数的运算;如图1所示,当 mO = 1时,计算3次假轮函数;当mO = 2时,计算2次假轮函数;当mO = 3时,计算1次假轮函数。实施例2参见图3和图4,本发明提供了另一个基于随机偏移的抗差分功耗分析DES加密方法的实施例。该实施例2中的DES加密运算每8个时钟周期计算一次轮函数。轮函数主要包含置换运算和8个Sbox运算,置换运算在轮函数第一个和最后一个时钟周期计算,每个时钟周期计算一个Sbox运算,Sbox运算的计算顺序由随机数决定。整个加密或者解密需要计算16轮函数,因此一共需要1 个时钟周期来完成DES运算。另外又由于需要插入假DES 来掩盖真实DES的运行位置,因此还需要加上假DES的运算时间。由此攻击者将无法确定真实Sbox的运算位置以及运算顺序,从而无法对齐功耗曲线来实施差异功耗分析。具体的DES加密算法流程如下描述步骤1,产生8位随机数rO ;步骤2,将rO对7取模(取余数运算% )得到余数mO ;步骤3,计算mO次假轮函数,即以假密钥进行轮函数的运算;如图3所示,当mO = 1时,计算4次假轮函数(见图3的rO-O);当mO = 2时,计算1次假轮函数(见图3的 rO-Ι);当mO = 3时,计算3次假轮函数(见图3的rO-n);步骤4,产生一组8位随机数数组r2,其中包含8个随机数r2 [1]到r2 [8],满足对于每一个随机数r2 [η],1 < η < 8,r2 [η] % 8都不相等;步骤5,将r2 [η]对8取模得到余数m[η];步骤6,计算16轮真轮函数(r0undl-r0undl6)运算,其中每轮函数中的sbox运算顺序如下:sbox[m[l]+l],sbox[m[2]+l],……,sbox [m[8]+1];如图4所示,当随机数数组 r2不同时,轮函数中的sbox运算顺序都不同;步骤7,计算(6-mO)次假轮函数,即以假密钥进行轮函数的运算;如图3所示,当 mO = 1时,计算2次假轮函数;当mO = 2时,计算5次假轮函数;当mO = 3时,计算3次假轮函数。
权利要求
1.一种基于随机偏移的抗差分功耗分析DES加密方法,其特征在于包括如下步骤步骤1,产生随机数rO;步骤2,根据随机数rO的值,将DES运算在时域上进行偏移;步骤3,在真DES非运算期间,插入假DES运算以掩盖真实DES运算的位置。
2.如权利要求1所述的一种基于随机偏移的抗差分功耗分析DES加密方法,其特征在于步骤2中所述DES运算,包括整个DES加密或者解密运算。
3.如权利要求1所述的一种基于随机偏移的抗差分功耗分析DES加密方法,其特征在于步骤2中所述DES运算,包括DES算法中的轮函数运算。
4.如权利要求1所述的一种基于随机偏移的抗差分功耗分析DES加密方法,其特征在于步骤2中所述DES运算,包括DES算法中任何子运算和子函数。
5.如权利要求4所述的一种基于随机偏移的抗差分功耗分析DES加密方法,其特征在于所述DES算法中任何子运算和子函数,包括Sbox运算。
6.如权利要求1所述的一种基于随机偏移的抗差分功耗分析DES加密方法,其特征在于步骤2和步骤3具体为首先将随机数rO对η取模得到余数mO,进行mO次假DES运算, 其中η为任何正整数;然后进行真DES运算;再进行(n-1-mO)次假DES运算。
7.如权利要求1或6所述的一种基于随机偏移的抗差分功耗分析DES加密方法,其特征在于所述假DES运算是以假密钥进行DES运算。
8.如权利要求6所述的一种基于随机偏移的抗差分功耗分析DES加密方法,其特征在于,步骤2和步骤3中所述进行真DES运算过程中,产生随机数rl,根据随机数rl的值,将 DES运算中子运算和子函数的运算顺序进行改变。
9.如权利要求8所述的一种基于随机偏移的抗差分功耗分析DES加密方法,其特征在于所述DES运算中子运算和子函数,包括Sbox运算。
10.如权利要求9所述的一种基于随机偏移的抗差分功耗分析DES加密方法,其特征在于所述根据随机数rl的值,将DES运算中子运算和子函数的运算顺序进行改变具体为 将随机数rl对8取模得到余数ml,其中每轮函数中的sbox运算顺序如下sboX[ml % 8+1], sbox[(ml+l) % 8+1], ......,sbox[(ml+7) % 8+1]。
11.如权利要求6所述的一种基于随机偏移的抗差分功耗分析DES加密方法,其特征在于步骤2和步骤3中所述进行真DES运算过程中,产生随机数数组r2,根据随机数数组 r2的值,将DES运算中子运算和子函数的运算顺序进行改变。
12.如权利要求11所述的一种基于随机偏移的抗差分功耗分析DES加密方法,其特征在于所述DES运算中子运算和子函数,包括Sbox运算。
13.如权利要求12所述的一种基于随机偏移的抗差分功耗分析DES加密方法,其特征在于所述根据随机数数组r2的值,将DES运算中子运算和子函数的运算顺序进行改变具体为所生成的随机数数组r2包含8个随机数r2[l]到r2 [8],满足对于每一个随机数 r2[n],l^n^8,r2[n]%8都不相等,将r2 [η]对8取模得到余数m[n];其中每轮函数中的 sbox 运算顺序如下sbox[m[l]+l],sbox[m[2]+1],......,sbox[m[8]+1]。
全文摘要
本发明公开了一种基于随机偏移的抗差分功耗分析DES加密方法,该方法如下将DES运算根据随机数在时域上进行偏移,同时插入假DES运算,并使得真DES和假DES的功耗曲线难以区分,从而使得攻击者无法找到真DES运行的位置。另外也可以对DES运算中子运算和子函数的运算顺序进行改变,使得攻击者无法确定运算的位置。在进行差分功耗分析时,攻击者将无法在时域上对齐需要统计分析的DES功耗曲线,从而无法累计大量样本的功耗差异来进行最终的统计分析。因此本发明中的方法能够抵抗差分功耗分析。
文档编号H04L9/06GK102447556SQ20101050601
公开日2012年5月9日 申请日期2010年10月14日 优先权日2010年10月14日
发明者柴佳晶 申请人:上海华虹集成电路有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1