发明名称 基于动态改变中间数据存储位置的抗攻击方法及电路实现
摘要 本发明公开了一种基于动态改变加密算法中间数据存储位置的抗功耗攻击方法及电路实现,通过破坏假设功耗值的获取从而抵抗功耗攻击,在DES算法运算时动态改变DES算法中间数据存储的寄存器位置,将相邻两轮的中间数据保存在不同的寄存器中,从而有效抵抗基于汉明距离模型的功耗分析攻击。本方法灵活性高,面积代价小,抗功耗攻击能力强。同时此方法具有很强的扩展性,可以用于抵抗算法中其他潜在的攻击点;也可以很好移植到到其他密码算法中。为设计安全性高,有效抵抗功耗攻击的密码芯片提供了很好的解决方案和设计方法。
申请公布号 CN103905182B 申请公布日期 2017.02.15
申请号 CN201410173997.0 申请日期 2014.04.25
申请人 东南大学 发明人 单伟伟;戴文韬;伏星源
分类号 H04L9/06(2006.01)I;H04L9/08(2006.01)I 主分类号 H04L9/06(2006.01)I
代理机构 江苏永衡昭辉律师事务所 32250 代理人 王斌
主权项 一种基于动态改变加密算法中间数据存储位置的抗攻击方法,其特征在于,在DES加密算法模块中添加控制模块和冗余寄存器,DES分组密码算法根据所述控制模块产生的标志位,动态改变每一轮中间计算数据存储的寄存器位置,DES加密硬件实现需要16轮迭代,其中每一轮的中间数据保存在左右两个32比特寄存器(L<sub>reg0</sub>和R<sub>reg0</sub>)中,在DES加密模块中增加控制模块及左右两个32比特冗余寄存器(L<sub>reg1</sub>和R<sub>reg1</sub>),所述控制模块产生1比特标志位flag,DES加密的每一轮中间结果数据根据flag的值,选择目标寄存器;其中,初始标志位flag的值为0,flag的值根据轮数交替变化,DES算法进行奇数轮加密运算时flag为1,DES算法进行偶数轮加密时flag为0;DES算法运算时,输入的64比特明文通过初始置换IP,实现明文的比特重排,同时把64比特明文分为左右两部分明文(L<sub>0</sub>和R<sub>0</sub>),所述左边部分明文(L<sub>0</sub>)是比特重排后的前32比特,所述右边部分明文(R<sub>0</sub>)是比特重排后的后32比特,此时flag为0,DES将上述左右两部分明文分别对应保存在所述的左右寄存器(L<sub>reg0</sub>和R<sub>reg0</sub>)中;具体包括如下步骤:步骤一,DES进行16轮迭代操作,16次迭代运算具有相同的结构,记做F函数,包含扩展置换、密钥异或、S盒替换、置换操作、与上一轮数据异或5个操作;上一轮64比特中间数据经过这5个操作得到这一轮的64比特中间数据,这一轮中间数据根据flag标志位的值保存到左右两个32比特寄存器(L<sub>reg0</sub>和R<sub>reg0</sub>)或左右两个32比特冗余寄存器(L<sub>reg1</sub>和R<sub>reg1</sub>)中,如果flag为0,此轮中间数据的左32比特数据(L<sub>n</sub>)保存在左寄存器(L<sub>reg0</sub>)中,右32比特数据(R<sub>n</sub>)保存在右寄存器(R<sub>reg0</sub>)中;如果flag为1,此轮中间数据的左32比特数据(L<sub>n</sub>)保存在左冗余寄存器(L<sub>reg1</sub>)中,右32比特数据(R<sub>n</sub>)保存在右冗余寄存器(R<sub>reg1</sub>)中;步骤二,将第16次迭代变化的结果通过逆变换矩阵,得到密文输出。
地址 210096 江苏省南京市四牌楼2号