[发明专利]一种可抵御能量分析攻击的SM4方法有效
申请号: | 201410704525.3 | 申请日: | 2014-11-26 |
公开(公告)号: | CN104333447B | 公开(公告)日: | 2017-10-10 |
发明(设计)人: | 周玉洁;朱念好 | 申请(专利权)人: | 上海爱信诺航芯电子科技有限公司 |
主分类号: | H04L9/06 | 分类号: | H04L9/06 |
代理公司: | 上海信好专利代理事务所(普通合伙)31249 | 代理人: | 张妍,徐雯琼 |
地址: | 200241 上海*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 抵御 能量 分析 攻击 sm4 方法 | ||
1.一种可抵御能量分析攻击的SM4方法,其特征在于,该方法采用一阶掩码密钥扩展引擎对输入的密钥执行密钥扩展运算,输出轮密钥给二阶掩码加解密引擎,二阶掩码加解密引擎对输入的明文和轮密钥执行32轮循环迭代运算后,输出密文,或者二阶掩码加解密引擎对输入的密文和轮密钥执行32轮循环迭代运算后,输出明文;
一阶掩码密钥扩展引擎和二阶掩码加解密引擎同时工作,一阶掩码密钥扩展引擎每一轮生成一个轮密钥,输出给二阶掩码加解密引擎执行加解密运算;
所述的一阶掩码密钥扩展引擎对输入的密钥执行密钥扩展运算中,32轮循环迭代过程中使用了4个补偿变换,一阶掩码密钥扩展引擎的4个补偿变换C0、C1、C2、C3定义为:
其中,表示按比特异或,128比特的随机数从左到右按字划分成4个部分,记为r0、r1、r2、r3,在32轮循环迭代中,随机数一直保持不变,设第i轮循环迭代的输入值在没有掩码的情况下记为k0i、k1i、k2i、k3i,i=1~32,每一轮补偿变换后的值存储在四个32比特的寄存器Reg0、Reg1、Reg2、Reg3中;
将寄存器Reg1、寄存器Reg2、寄存器Reg3中的值与CKi做异或操作,作为一阶掩码型S盒MS变换的输入:
其中,CKi的值采用SM4算法文本中的标准值;
MS变换的构造采用公式表示如下:
将MS变换的结果作为L′变换的输入:
L′变换是SM4算法文本中规定的线性变换,L′变换的构造采用公式表示如下:
将寄存器Reg0的值与L′变换的结果做异或操作,作为补偿变换C3的输入:
所述的二阶掩码加解密引擎对输入的明文或密文和轮密钥执行32轮循环迭代运算中,32轮循环迭代过程中使用了4个补偿变换,二阶掩码加解密引擎的4个补偿变换C0、C1、C2、C3定义为:
其中,设第i轮循环迭代的初始值在没有掩码的情况下记为ai,从左到右分成4个字,依次记为a0i、a1i、a2i、a3i,第i轮对应的随机数为ri,从左到右分成4个字,依次记为r0i、r1i、r2i、r3i,i=1~32,32轮循环迭代过程均使用不同的随机数,即每轮的随机数都会更新,每一轮补偿变换后的值存储在四个32比特的寄存器Reg0、Reg1、Reg2、Reg3中;
将寄存器Reg1、寄存器Reg2、寄存器Reg3中的值与轮密钥rki做异或操作,作为二阶掩码型S盒MS变换的输入:
rki为第i轮的轮密钥;
MS变换的构造采用公式表示如下:
将MS变换的结果作为L变换的输入:
L变换为SM4算法文本中规定的线性变换,L变换的构造采用公式表示如下:
将寄存器Reg0的值与L变换的结果做异或操作,作为补偿变换C3的输入:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海爱信诺航芯电子科技有限公司,未经上海爱信诺航芯电子科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410704525.3/1.html,转载请声明来源钻瓜专利网。