基于动态改变中间数据存储位置的抗攻击方法及电路实现的制作方法

文档序号:7802309阅读:585来源:国知局
基于动态改变中间数据存储位置的抗攻击方法及电路实现的制作方法
【专利摘要】本发明公开了一种基于动态改变加密算法中间数据存储位置的抗功耗攻击方法及电路实现,通过破坏假设功耗值的获取从而抵抗功耗攻击,在DES算法运算时动态改变DES算法中间数据存储的寄存器位置,将相邻两轮的中间数据保存在不同的寄存器中,从而有效抵抗基于汉明距离模型的功耗分析攻击。本方法灵活性高,面积代价小,抗功耗攻击能力强。同时此方法具有很强的扩展性,可以用于抵抗算法中其他潜在的攻击点;也可以很好移植到到其他密码算法中。为设计安全性高,有效抵抗功耗攻击的密码芯片提供了很好的解决方案和设计方法。
【专利说明】基于动态改变中间数据存储位置的抗攻击方法及电路实现
【技术领域】
[0001]本发明涉及集成电路硬件实现和信息安全【技术领域】,尤其是一种面向DES(数据加密标准)密码算法硬件电路的抗功耗攻击方法。
【背景技术】
[0002]随着现代社会的日益信息化、数字化与网络化,以密码设备为代表的信息安全产品已经渗入到国家安全和人民生活的方方面面。密码产品可以采用软件实现,但由于硬件实现比软件实现有更快的速度优势,基于硬件实现的密码设备已成为研究热点。各种基于DES (Data Encryption Standard,数据加密标准)、AES (Advanced Encryption Standard,高级加密标准)、RSA等算法的密码芯片得到了广泛地研究和开发。
[0003]密码芯片也面临着各种各样的安全风险,近年来以差分功耗攻击(DifferentialPower Analysis, DPA)为代表的旁路攻击(Side-Channel Attack, SCA,又译为“侧信道攻击”)对密码设备的安全性提出了严峻的挑战。功耗攻击是一种非入侵式攻击,攻击者首先大量获取密码设备在加解密操作时泄露的功耗信息,然后根据明文(或者密文)建立功耗的数学模型,得到大量中间值,将中间值和实际功耗进行对比分析,采用统计处理方法计算出相关系数,从而分析出关键的密钥信息。如何抵抗功耗分析攻击(也可简称为抗攻击),保护算法安全是学术界一个重要的研究点。
[0004]在采集到大量实际功耗后,功耗攻击得以成功的关键在于建立准确的功耗数学模型。汉明重量模型和汉明距离模型是常见的功耗模型。在汉明重量模型中,攻击者假设功耗与被处理数据中被置位的比特数成正比,该数据之前和之后的数据不考虑。汉明距离模型的基本思想是计算数字电路在某个特定时段内电路中O — I转换和I — O转换的总数,然后利用转换的总数来刻画电路在该时间段内的功耗。
[0005]密码电路由CMOS晶体管组成,基本状态为高电平和低电平,分别表示数字电路中的逻辑“I”和逻辑“O”。基本电路单元在维持某一固定状态时,电路的能量消耗较小,仅有少量静态功耗;当基本单元发生“O”到“1”,或者“I”到“O”的翻转时,电路中晶体管会瞬间导通,产生功耗较大的动态功耗。可见数字电路的功耗主要来自于电路的状态转换,而并不依赖于数据本身,并且翻转的器件越多,功耗越大。所以使用汉明距离模型能够更好的刻画密码芯片电路的能量消耗,在某一时刻,如果能够计算得到电路翻转前的数据DO和翻转后的数据D1,从而算出数据的汉明距离,得到数据翻转的个数,就可以和真实的功耗值建立联系。
[0006]根据信息论知识,汉明距离是两个等长二进制数串对应位置不同字符的个数。假设已知两个数据DO和D1,则两个数据汉明距离为:
[0007]HD(D05D1) = A/i^(D0 0D1);
[0008]其中HW代表数据的汉明重量,即数据中“I”的个数,比如一个4比特数据Data ‘1011’,其中有三个1,那么Data的汉明重量为3,HW(Data) = 3 表示异或操作,为
数字逻辑的基本操作之一。[0009]汉明距离模型一般用于对寄存器的功耗进行描述。通过该模型,攻击者可以建立数据传输存储时始、终态间器件翻转个数与功耗之间的相对关系,从而进一步实施功耗攻击。
[0010]DES分组密码算法模块包括初始操作,多次轮操作,轮末操作;算法每一轮都需要一个子密钥,算法每一轮的中间结果保存在寄存器中。DES密码算法电路在基于相关系数的差分功耗攻击中,中间数据寄存器会泄露汉明距离,从而被用来当作假设功耗值用在攻击分析中
[0011]攻击者一般选取中间数据存储的寄存器为攻击点,攻击者首先猜测密钥,进一步猜测相邻两轮的中间值,计算汉明距离,作为寄存器变化所产生的功耗模型,然后采集实际功耗,将功耗模型与实际功耗(或仿真功耗)进行统计分析,得到正确的密钥。

【发明内容】

[0012]发明目的:目前DES密码算法电路在基于相关系数的差分功耗攻击中,中间数据寄存器会泄露汉明距离,从而被用来当作假设功耗值用在攻击分析中。
[0013]原始DES的加密过程可以划分为3个阶段:
[0014]1.64位明文通过初始置换IP,实现明文的比特重排,同时把64bit明文分为Ltl和R0两部分。Ltl是比特重排后的前32bit,R0是后32bit。
[0015]2.进行16轮迭代运算。16次迭代运算具有相同的计算结构,记做F函数,包含5个操作:扩展置换,密 钥异或,S盒替换,置换操作,异或操作。每一轮得到64比特中间数据Dn,分为左边32比特数据1^和右边32bit数据Rn(n = Ρ..16)。通过迭代运算,DES将子密钥和数据结合起来,子密钥由初始密钥生成,此步骤是DES的核心步骤。
[0016]3.将16次迭代变换后得到的结果通过一个逆变换矩阵ΙΡ—1,得到密文输出。DES加密硬件实现16轮迭代时,每一轮的中间数据Dn(η = 1..16)都保存在两个32比特寄存器中,左边32比特中间数据Ln,保存在32比特寄存器Lmsci中,右边32比特中间数据Rn保存在32比特寄存器Rmsci中。攻击者通过猜测每一轮6比特密钥可以得到中间数据的某4比特的值,从而建立汉明距离模型。以攻击者选取第一轮和第二轮的中间值作为攻击点为例,攻击者可以建立两个汉明距离模型。
[0017]攻击时刻1,第一轮加密结束:
[0018]功耗模型:针对Rreg。,汉明距离 HD 二 HW{K, {Abil)十 Rt {4bil ));
[0019]攻击时刻2,第二轮加密结束:
[0020]功耗模型:针对Lragtl,汉明距离 HD = HW(L^Abit)十 L2(46/i));
[0021]进行汉明距离模型攻击时,猜测6比特密钥,即可猜测得到RdPR1以及!^和匕中4bit的数值,攻击者可成功建立汉明距离模型。
[0022]本发明针对上述缺陷,通过添加冗余寄存器并改变中间数据存储的寄存器位置,从而使得任一寄存器不再泄露相邻两轮的中间数据的汉明距离,以此提供一种有效的DES算法电路的抗功耗攻击方法。
[0023]技术方案:一种基于动态改变加密算法中间数据存储位置的抗攻击方法,其特征在于,在DES加密算法模块中添加控制模块和冗余寄存器,DES分组密码算法根据所述控制模块产生的标志位,动态改变每一轮中间计算数据存储的寄存器位置。
[0024]进一步的,所述的方法具体包括如下步骤:
[0025]步骤一,DES加密硬件实现需要16轮迭代,其中每一轮的中间数据保存在左右两个32比特寄存器Lregtl和Rregtl中,左边32比特中间数据Ln(η = 1..16),保存在32比特寄存器Lregtl中,右边32比特中间数据Rn保存在32比特寄存器Rregtl中,在DES加密模块中增加控制模块及左右两个32比特冗余寄存器Lregl和Rms1,所述控制模块产生I比特标志位flag, DES加密的每一轮中间结果数据根据flag的值,选择目标寄存器;
[0026]步骤二,初始标志位flag的值为0,flag的值根据轮数交替变化,DES算法进行奇数轮加密运算时flag为1,即第I, 3,5...15轮加密flag % I, DES算法进行偶数轮加密时flag为O,即第2,4,6..16轮加密时flag为O ;
[0027]步骤三,DES算法运算时,输入的64比特明文通过初始置换IP,实现明文的比特重排,同时把64比特明文分为左右两部分明文Ltl和Rtl,所述左边部分明文Ltl是比特重排后的前32比特,所述右边部分明文Rtl是比特重排后的后32比特,通过迭代运算,DES将子密钥和数据结合起来,子密钥由初始密钥生成,此步骤是DES的核心步骤,此时flag为0,DES将上述左右两部分明文分别对应保存在所述的左右寄存器Lregtl和Rregtl中;[0028]步骤四,DES进行16轮迭代操作,16次迭代运算具有相同的结构,记做F函数,包含扩展置换、密钥异或、S盒替换、置换操作、与上一轮数据异或5个操作;上一轮64比特中间数据经过这5个操作得到这一轮的64比特中间数据,所述这一轮中间数据根据flag标志位的值保存到中间寄存器中,如果flag为0,此轮中间数据的左32比特数据Ln保存在左寄存器Lmsci中,右32比特数据R1J呆存在右寄存器Rmsci中;如果flag为1,此轮中间数据的左32比特数据Ln保存在左冗余寄存器Lms1中,右32比特数据Rn保存在右冗余寄存器RMgl中。
[0029]步骤五,将16次迭代变化的结果通过逆变换矩阵,得到密文输出。
[0030]一种基于动态改变中间数据存储位置的抗攻击电路,其特征在于,该电路是采用上述抗功耗攻击方法实现的具有抗功耗攻击的DES密码算法硬件电路,所述电路在DES加密算法模块中添加控制模块和冗余寄存器,DES分组密码算法根据所述控制模块产生的标志位,动态改变每一轮中间计算数据存储的寄存器位置。
[0031]本发明的抗功耗攻击原理说明如下:通过添加冗余中间寄存器和标志位方法,DES相邻两轮的中间数据不再保存在同一寄存器中,避免了相邻两轮数据的汉明距离的泄露。攻击者无法成功建立汉明距离模型,以攻击者选取Rmsci和Lregtl作为攻击寄存器为例,在Rmsci和Lmsci第一次发生数据变化时,建立两个汉明距离模型。
[0032]攻击时刻1,Rreg0第一次数据变化:
[0033]功耗模型:针对Rreg。,汉明距离 HD = /7W(R0(4ft//)?/?2(输/));
[0034]攻击时刻2,Lreg0第一次数据变化:
[0035]功耗模型:针对Lrag。,汉明距离HD 二十 1^(4/)//));
[0036]进行汉明距离模型攻击时,猜测6比特密钥,可以猜测得到Rc^PR1以及!^和匕的数值,但如果不知道第一轮加密的子密钥,无法猜测得到R2和L3,因为第二轮,第三轮的数据经过密钥异或、置换、S盒等操作,数据已经完全打散,无法预测。(RnSDES第η轮中间数据右32比特数据,Rn SDES第η轮中间数据左32比特数据,(η = O, 1,2..16)),可见采
用动态改变加密算法中间数据存储位置的方法后,对于Rregtl和Lregtl,攻击者无法成功建立汉明距离模型,从而可以有效的抵抗功耗攻击。
[0037]同理,对于对于RMgl和Lragl,建立汉明距离时,
[0038]攻击时刻1,Rregl第一次数据变化:
[0039]功耗模型:针对Rregl,汉明距离 HD = HW(R, (4bil)十 Hi (Abil ));
[0040]攻击时刻2,Lregl第一次数据变化:
[0041]功耗模型:针对Lregl,汉明距离HD = //F(L2(4to)?L4(4to));
[0042]攻击者无法得到&和L4的数据,无法正确建立汉明距离模型,从而有效的抵抗基于汉明距离模型的功耗攻击。
[0043]有益效果:由于基于汉明距离模型的功耗攻击的原理是用一定的方法凸显出密码算法电路在工作过程中的动态能量消耗与被处理的数据汉明距离之间的相关性,如果能够切断功耗与所处理数据距离之间的相关性,就可以达到抗功耗攻击的效果。本发明只需要添加一些冗余寄存器和标志位,即可通过动态的改变算法运行中的中间数据的存储位置来切断实际功耗和数据之间的相关性,从而非常有效的抵御功耗攻击。此外,该方法和电路的实现简单易行,面积代价很小,相对于整个大系统几乎可以忽略。最后,此方法具有很强的扩展性,可以用于抵抗算法中其他潜在的攻击点;也可以很好移植到到其他密码算法中。综上,本发明为设计具有抗功耗攻击能力的密码芯片提供了很好的解决方案。
【专利附图】

【附图说明】
[0044]图1为普通DES算法的一轮操作;
[0045]图2为DES算法基于汉明距离模型的功耗攻击原理;
[0046]图3动态改变轮中间数据存储位置的抗功耗攻击原理图;
[0047]图4 一种基于动态改变加密算法中间数据存储位置方法的电路图;
[0048]图5为原始DES算法功耗攻击结果图;
[0049]图6本发明改进DES算法的功耗攻击结果图。
【具体实施方式】
[0050]下面结合附图和具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
[0051]如图1所示,DES的加密过程可以划分为3个阶段:
[0052]1.64位明文通过初始置换IP,实现明文的比特重排,同时把64比特明文分为Ltl和R0两部分。U是比特重排后的前32比特明文,R0是后32比特明文。
[0053]2.进行16轮迭代运算,16次迭代运算具有相同的结构,记做F函数,包含5个操作扩展置换,密钥异或,S盒替换,置换操作,异或操作。每一轮得到64比特中间数据,分为左边32比特数据Ln和右边32比特数据Rn(n = L...16)。通过迭代运算,DES将子密钥和数据结合起来,子密钥由初始密钥生成,此步骤是DES的核心步骤。[0054]3.将16次迭代变换后得到的结果通过一个逆变换矩阵IP—1,得到密文输出。
[0055]DES加密硬件每一轮的中间数据都保存在两个32比特寄存器中,左边32比特中间数据Ln (η = 1..16),保存在32比特寄存器LMg(l中,右边32比特中间数据Rn保存在32比特寄存器RMgQ中。
[0056]如图2所示,攻击者通过猜测每一轮6比特密钥可以得到中间数据的某4比特的值,从而建立汉明距离模型。以攻击者选取第一轮和第二轮的中间值作为攻击点为例,攻击者可以建立两个汉明距离模型。
[0057]攻击时刻1,第一轮加密结束:
[0058]功耗模型:针对Rregtl,汉明距离 HD=(4/n./)十 6(4/”./));
【权利要求】
1.一种基于动态改变加密算法中间数据存储位置的抗攻击方法,其特征在于,在DES加密算法模块中添加控制模块和冗余寄存器,DES分组密码算法根据所述控制模块产生的标志位,动态改变每一轮中间计算数据存储的寄存器位置,具体包括如下步骤: 步骤一,DES加密硬件实现需要16轮迭代,其中每一轮的中间数据保存在左右两个32比特寄存器(Lregtl和Rmsci)中,在DES加密模块中增加控制模块及左右两个32比特冗余寄存器(Liegl和Riegl),所述控制模块产生I比特标志位flag,DES加密的每一轮中间结果数据根据flag的值,选择目标寄存器; 步骤二,初始标志位flag的值为O,flag的值根据轮数交替变化,DES算法进行奇数轮加密运算时flag为1,DES算法进行偶数轮加密时flag为O ; 步骤三,DES算法运算时,输入的64比特明文通过初始置换IP,实现明文的比特重排,同时把64比特明文分为左右两部分明文(Ltl和Rtl),所述左边部分明文(Ltl)是比特重排后的前32比特,所述右边部分明文(Rtl)是比特重排后的后32比特,此时flag为0,DES将上述左右两部分明文分别对应保存在所述的左右寄存器(Lregtl和Rregtl)中; 步骤四,DES进行16轮迭代操作,16次迭代运算具有相同的结构,记做F函数,包含扩展置换、密钥异或、S盒替换、置换操作、与上一轮数据异或5个操作;上一轮64比特中间数据经过这5个操作得到这一轮的64比特中间数据,这一轮中间数据根据flag标志位的值保存到上述寄存器(Lregtl或Rmsci或Lms1或RMgl)中,如果flag为O,此轮中间数据的左32比特数据(Ln)保存在左寄存器U中,右32比特数据(Rn)保存在右寄存器(Rregtl)中;如果flag为1,此轮中间数据的左32比特数据(Ln)保存在左冗余寄存器(Lregl)中,右32比特数据(Rn)保存在右冗余寄存器(Rms1)中; 步骤五,将16次迭代变化的结果通过逆变换矩阵,得到密文输出。
2.一种采用权利要求1所述的方法实现的具有抗功耗攻击的DES密码算法硬件电路,所述电路在DES加密算法模块中添加控制模块和冗余寄存器,DES分组密码算法根据所述控制模块产生的标志位,动态改变每一轮中间计算数据存储的寄存器位置。
【文档编号】H04L9/06GK103905182SQ201410173997
【公开日】2014年7月2日 申请日期:2014年4月25日 优先权日:2014年4月25日
【发明者】单伟伟, 戴文韬, 伏星源 申请人:东南大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1