【技术实现步骤摘要】
本专利技术涉及数据安全
,特别涉及一种基于SM3算法的密码模块的防攻击方法及装置。
技术介绍
密码杂凑算法被广泛应用于数字签名和验证、消息认证码的生成和验证以及随机数的生成等方面,满足了多种密码应用的安全需求。其中,SM3算法是我国唯一的密码杂凑算法,应用较为广泛。基于SM3算法的密码模块在对输入的信息进行处理的过程中,会计算一系列的中间值。所计算的中间值的功耗与所述密码模块的密钥存在一定的相关性。因此,攻击者在对基于SM3算法的密码模块进行攻击时,可以采用侧信道能量分析的方法对所述中间值的侧信道信息进行分析,最终获得所述密码模块的密钥。
技术实现思路
本专利技术实施例解决的问题是如何防止攻击者采用侧信道能量分析方法获得基于SM3算法的密码模块的密钥。为解决上述问题,本专利技术实施例提供一种基于SM3算法的密码模块的防攻击方法,所述密码模块包括第一寄存器A,B,C,D,E,F,G,H,所述密码模块对接收到的消息m进行扩展后得到消息m′,且消息m′=B(0)B(1)…B(i)…B(n-1),B(i)为消息m′的第i个消息分组,i和n为整数,0≤i≤n-1;所述方法包括:在所述密码模块调用SM3算法的压缩函数对消息m′的第i个消息分组B(i)进行迭代运算以前,获取分别与所述第一寄存器A,B,C,D,E,F,G,H对应的随机数r0,0,r0,1,r0,2,r0,3,r0,4,r0,5,r0,6,r0,7,并分别存储在第二寄存器中;将所获取到的随机数分别与对应的第一寄存器的初始值进行异或运算,并将异或运算后的结果作为第1轮迭代运算中所述第一寄存器的起始值A′0 ...
【技术保护点】
一种基于SM3算法的密码模块的防攻击方法,其特征在于,所述密码模块包括第一寄存器A,B,C,D,E,F,G,H,所述密码模块对接收到的消息m进行扩展后得到消息m′,且消息m′=B(0)B(1)…B(i)…B(n‑1),B(i)为消息m′的第i个消息分组,i和n为整数,0≤i≤n‑1;所述方法包括:在所述密码模块调用SM3算法的压缩函数对消息m′的第i个消息分组B(i)进行迭代运算以前,获取分别与所述第一寄存器A,B,C,D,E,F,G,H对应的随机数r0,0,r0,1,r0,2,r0,3,r0,4,r0,5,r0,6,r0,7,并分别存储在第二寄存器中;将所获取到的随机数分别与对应的第一寄存器的初始值进行异或运算,并将异或运算后的结果作为第1轮迭代运算中所述第一寄存器的起始值A′0,B′0,C′0,D′0,E′0,F′0,G′0,H′0;当所述密码模块调用SM3算法的压缩函数对所述消息分组B(i)进行迭代运算时,将所述压缩函数中的算术加运算转换为掩码的模加运算;计算前M轮迭代运算的每一轮迭代运算中各个第一寄存器的值及对应的掩码;将第M轮迭代运算获得的各个第一寄存器的值分别与对应的掩码进 ...
【技术特征摘要】
1.一种基于SM3算法的密码模块的防攻击方法,其特征在于,所述密码模块包括第一寄存器A,B,C,D,E,F,G,H,所述密码模块对接收到的消息m进行扩展后得到消息m′,且消息m′=B(0)B(1)…B(i)…B(n-1),B(i)为消息m′的第i个消息分组,i和n为整数,0≤i≤n-1;所述方法包括:在所述密码模块调用SM3算法的压缩函数对消息m′的第i个消息分组B(i)进行迭代运算以前,获取分别与所述第一寄存器A,B,C,D,E,F,G,H对应的随机数r0,0,r0,1,r0,2,r0,3,r0,4,r0,5,r0,6,r0,7,并分别存储在第二寄存器中;将所获取到的随机数分别与对应的第一寄存器的初始值进行异或运算,并将异或运算后的结果作为第1轮迭代运算中所述第一寄存器的起始值A′0,B′0,C′0,D′0,E′0,F′0,G′0,H′0;当所述密码模块调用SM3算法的压缩函数对所述消息分组B(i)进行迭代运算时,将所述压缩函数中的算术加运算转换为掩码的模加运算;计算前M轮迭代运算的每一轮迭代运算中各个第一寄存器的值及对应的掩码;将第M轮迭代运算获得的各个第一寄存器的值分别与对应的掩码进行异或运算,并将异或运算后的结果作为第M+1轮迭代运算中各个第一寄存器的起始值,其中1≤M≤64。2.如权利要求1所述的基于SM3算法的密码模块的防攻击方法,其特征在于,所述掩码的模加运算包括:当所述掩码的模加运算的输入为x’和y′,且x’和y′的布尔掩码分别为rx和ry时,所述掩码的模加运算的输出为z’,z’的布尔掩码为rz,输入x’和y′与输出z’以及对应的掩码满足以下条件:zk′=xk′⊕yk′⊕ck-1′,]]>rz,k=rx,k⊕ry,k⊕ry,k-1,]]>0≤k≤s-1;其中:z′k,x′k及y′k分别表示输出z’、输入x’和y′的第k个比特位的值,rz,k,rx,k及ry,k分别表示掩码rz、rx和ry的第k个比特位的值,ry,-1=0,c′k-1满足以下条件:当k=0时,c′-1=0,当k=1时,c′0=MUX(MUX(ry,0,y′0;rx,0),MUX(y′0,ry,0;rx,0);x′0),当2≤k≤s-1时,c′k-1=MUX(MUX(rx,k-1,x′k-1;ry,k-1),MUX(xk-1′,rx,k-1;ry,k-1);yk-1′)]]>⊕MUX(MUX(rx,k-1⊕ry,k-1,xk-1′⊕yk-1′;ry,k-2),]]>MUX(xk-1′⊕yk-1′,rx,k-1⊕]]>ry,k-1;ry,k-2);ck-2′);]]>MUX表示选择函数。3.如权利要求1所述的基于SM3算法的密码模块的防攻击方法,其特征在于,所述M的值为16。4.如权利要求1所述的基于SM3算法的密码模块的防攻击方法,其特征在于,所述M的值为4。5.如权利要求1-4任一项所述的基于SM3算法的密码模块的防攻击方法,其特征在于,所述随机数r0,0,r0,1,r0,2,r0,3,r0,4,r0,5,r0,6,r0,7分别与对应的各个第一寄存器的值的长度相同。6.一种基于SM3算法的密码模块的防攻击装置...
【专利技术属性】
技术研发人员:郭丽敏,王立辉,张志敏,李大为,罗鹏,莫凡,
申请(专利权)人:上海复旦微电子集团股份有限公司,国家密码管理局商用密码检测中心,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。