[发明专利]一种防功耗攻击的AES加密方法及电路有效
申请号: | 201910767061.3 | 申请日: | 2019-08-20 |
公开(公告)号: | CN112422272B | 公开(公告)日: | 2022-10-21 |
发明(设计)人: | 刘吉平;熊辉兵 | 申请(专利权)人: | 深圳市航顺芯片技术研发有限公司 |
主分类号: | H04L9/06 | 分类号: | H04L9/06;H04L9/00 |
代理公司: | 深圳市嘉勤知识产权代理有限公司 44651 | 代理人: | 辛鸿飞 |
地址: | 518000 广东省深圳市龙华区民治街道*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 功耗 攻击 aes 加密 方法 电路 | ||
1.一种防功耗攻击的AES加密方法,其特征在于,包括步骤:
(1)设置两个独立的寄存器组T和R,寄存器组T用于存储正常AES轮运算结果,R寄存器组用于存储扰码轮运算结果;
(2)初始化寄存器组T和R:将待加密的明文与M位初始密钥异或后输入寄存器组T;随机生成一组M位的初始扰码轮密钥,并存储在寄存器组R;
(3)通过密钥扩展将初始密钥扩展为N轮轮变换的轮密钥;随机生成N轮轮变换的扰码轮密钥;
(4)在第一至第N-1轮轮变换过程中,每次轮变换随机读取寄存器组T或R中存储的数据作为该轮轮变换的输入数据,然后依次对输入数据进行字节替换、行位移、列混合和密钥加运算;在执行密钥加运算时,若读取的输入数据为寄存器组T中所存储的数据,则通过本轮的轮密钥进行密钥加运算,将得到的正常轮运算结果存储至寄存器组T;若读取的输入数据为寄存器组R中所存储的数据,则通过本轮的扰码轮密钥进行密钥加运算,然后将通过扰码轮密钥进行密钥加运算后的结果存储至寄存器组R;
(5)执行第N轮轮变换时,随机读取寄存器组T或R存储的数据为当前轮变换输入数据;当读取寄存器组T内存储的数据作为输入数据时,对输入数据依次进行字节替换、行位移,然后通过本轮轮密钥进行密钥加运算后把结果存储在寄存器组T,此时寄存器组T的输出数据即为最终的加密密文;当读取寄存器组R内存储的数据作为输入数据时,对输入数据依次进行字节替换、行位移,然后通过本轮扰码轮密钥进行密钥加运算后把结果存储在寄存器组R,此时寄存器组R的输出数据即为最终的加密密文。
2.根据权利要求1所述的一种防功耗攻击的AES加密方法,其特征在于,当M取值128时,N取值为10;当M取值192时,N取值为12;当M取值256时,N取值为14。
3.一种用于实现权利要求1至2任意一项所述方法的电路,其特征在于,包括:
N轮轮运算单元、密钥扩展单元、真随机数发生器、真随机数移位寄存器、寄存器组T和R;其中,
密钥扩展单元对输入的初始密钥进行密钥扩展,生成N轮轮密钥;
真随机数发生器随机产生真随机数0和1;
真随机数移位寄存器输入真随机数的输出结果并串行移位,真随机数移位寄存器的输出即为轮变换的扰码轮密钥;
第一轮至第N-1轮轮变换单元结构相同,包括两个二选一选择器和依次级联的字节替换单元、行位移单元、列混合单元、密钥加单元;第一二选一选择器的选择控制输入端与真随机数发生器的输出端相连,1输入端输入当前轮的轮密钥,0输入端输入当前轮的扰码轮密钥,输出端连接密钥加单元的输入端;第二二选一选择器的选择控制输入端与真随机数发生器的输出端相连,1输入端连接寄存器组T的输出端,0输入端连接寄存器组R的输出端,输出端与本轮轮变换单元的字节替换单元输入端相连;密钥加单元的输出端分别连接寄存器组T和寄存器组R的输入端,而寄存器组T和寄存器组R的使能端连接真随机数发生器输出端;
第N轮轮变换单元包括字节替换单元、行位移单元、密钥加单元、第一二选一选择器和第二二选一选择器;其中,字节替换单元、行位移单元、密钥加单元依次级联;第一二选一选择器的选择控制输入端与真随机数发生器的输出端相连,1输入端输入当前轮的轮密钥,0输入端输入当前轮的扰码轮密钥,输出端连接密钥加单元的输入端;第二二选一选择器的选择控制端与真随机数发生器的输出端连接,1输入端连接寄存器组T的输出端,0输入端连接寄存器组R的输出端,输出端与本轮轮变换单元的字节替换单元输入端相连;密钥加单元的输出端分别连接寄存器组T和寄存器组R的输入端:
(1)把AES轮运算的结果存储在一组寄存器中完成流水线设计,这组寄存器包含了两个128位独立寄存器组,把这两个寄存器组分别命名为T和R,T寄存器组用于存储正常AES轮运算结果,R寄存器组用于存储扰码的轮运算结果;
(2)包含一个128位的移位寄存器组S,用于移位输入真随机数位,在AES运算期间,移位寄存器组S一直处于移位工作态;
(3)在进行轮运算前,对T寄存器组和R寄存器组分别赋初值,T寄存器组的初值为128位密文和128位初始轮密钥异或的结果,R寄存器组的初值等于128位真随机移位寄存器组S当前时刻的输出值;
(4)在第一至第N-1轮轮变换的过程中,若当前输入的真随机数位为0,则读取R寄存器组存储的扰码轮运算结果作为本轮轮变换的输入数据,依次进行字节替换、行位移、列混合后采用本轮的扰码轮密钥进行密钥加运算,然后将扰码轮运算结果存储在扰码轮运算结果寄存器组R;若当前输入的真随机数位为1,则读取寄存器组T存储的正常轮运算结果作为本轮轮变换的输入数据,依次进行字节替换、行位移、列混合后采用本轮的轮密钥进行密钥加运算,然后将轮运算结果存储在正常轮运算结果寄存器组T;
执行第N轮轮变换时,随机若当前输入的真随机数位为0,则读取寄存器组R存储的扰码轮运算结果作为本轮轮变换的输入数据,扰码轮密钥作为本轮轮密钥,然后依次进行字节替换、行位移、密钥加运算后把寄存器存储到扰码轮运算结果寄存器组R;若当前输入的真随机数位为1,则读取寄存器组T存储的正常轮运算结果作为本轮轮变换的输入数据,然后对输入的数据依次进行字节替换、行位移、密钥加运算后把结果存储到正常轮运算结果寄存器组T,寄存器组T的输出即为最终的加密密文。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市航顺芯片技术研发有限公司,未经深圳市航顺芯片技术研发有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910767061.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种免钉胶及其制备方法
- 下一篇:用于轨道车辆排水口的防火封堵器