[发明专利]HMAC-SM3密码算法的侧信道能量分析方法及装置有效
申请号: | 201510149096.2 | 申请日: | 2015-03-31 |
公开(公告)号: | CN106161001B | 公开(公告)日: | 2019-03-26 |
发明(设计)人: | 王立辉;郭丽敏;张志敏;李大为;罗鹏;莫凡 | 申请(专利权)人: | 上海复旦微电子集团股份有限公司;国家密码管理局商用密码检测中心 |
主分类号: | H04L9/06 | 分类号: | H04L9/06 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 潘彦君;骆苏华 |
地址: | 200433 上海市杨浦区*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: |
本发明提供了一种HMAC‑SM3密码算法的侧信道能量分析方法及装置。所述方法包括:分析获得第一密钥数据Kin的值;分析获得第二密钥数据Kout的值;根据所获得的第一密钥数据Kin的值以及第二密钥数据Kout的值,生成消息摘要。其中,分析获得第一密钥数据Kin的值包括:向所述密码模块输入消息组M;采集所述密码模块对所输入的每条消息进行处理的过程中所产生的能量消耗信息;在j=1时,先分别选择 |
||
搜索关键词: | hmac sm3 密码 算法 信道 能量 分析 方法 装置 | ||
【主权项】:
1.一种HMAC‑SM3密码算法的侧信道能量分析方法,其特征在于,SM3密码算法的压缩函数在第j轮的迭代运算过程中,产生第一变量TT1j,第二变量TT2j,其中:TT1j=FFj(Aj,Bj,Cj)+Dj+SS2j+Wj′,TT2j=GGj(Ej,Fj,Gj)+Hj+SS1j+Wj,SS1j=((Aj<<<12)+Ej+(Tj<<<j))<<<7,
0≤j≤63,且j为整数,A,B,C,D,E,F,G,H均为基于HMAC‑SM3密码算法的密码模块的寄存器,所述密码模块每次调用SM3密码算法时,第二个压缩函数的初始值均为当前调用SM3密码算法时各个所述寄存器的初始状态值A0,B0,C0,D0,E0,F0,G0,H0顺序排列所形成的数据序列,FFj(Aj,Bj,Cj)为对Aj,Bj和Cj布尔函数求值,GGj(Ej,Fj,Gj)为对Ej,Fj和Gj布尔函数求值,Wj、Wj′为对消息mi的一消息分组进行扩展后生成的字,Tj为常量;所述密码模块每次调用SM3密码算法的过程中,第p个压缩函数运算后的结果为Vp,1≤p≤N,p为整数,N为每次调用SM3密码算法的过程中调用压缩函数的总次数;所述分析方法包括:分析获得第一密钥数据Kin的值,所述第一密钥数据Kin为所述密码模块第一次调用SM3密码算法时,第二个压缩函数的初始值,采用如下步骤获得Kin:向基于HMAC‑SM3密码算法的密码模块输入消息组M={m0,m1,...,mi,...,mn},其中,n为正整数,0≤i≤n,且i为整数;采集所述密码模块应用HMAC‑SM3密码算法对所输入的每条消息进行处理的过程中所产生的能量消耗信息,并建立能量消耗矩阵;在j=0时,分别选择第一变量TT10和第二变量TT20作为分析对象,根据所输入的消息以及对应采集到的能量消耗数据,采用侧信道能量分析方法,先分别获得(FF0(A0,B0,C0)+D0+SS20)和(GG0(E0,F0,G0)+H0+SS10)的值,再分别获得第一变量TT10和第二变量TT20的值,即变量A1和E1的值;在j=1时,先分别选择
和
作为分析对象,分别根据所述变量A1和E1的值,以及对应采集到的能量消耗数据,采用侧信道能量分析方法,分别获得变量B1、F1的值;再分别选择
和
作为分析对象,分别根据所获得的变量B1、A1的值以及变量F1和E1的值,以及对应采集到的能量消耗数据,采用侧信道能量分析方法,分别获得变量C1、G1的值;再根据所获得的变量B1和C1的值,分别获得变量A0和B0的值;最后根据所获得的变量F1和G1的值,分别获得变量E0和F0的值;在j=1时,选择第一变量TT11或(FF1(A1,B1,C1)+D1)作为分析对象,根据所获得的变量A1、B1和C1的值,以及对应采集到的能量消耗数据,采用侧信道能量分析方法获得变量D1的值;选择第二变量TT21或(GG1(E1,F1,G1)+H1)作为分析对象,根据所获得的变量E1、F1和G1的值,以及对应采集到的能量消耗数据,采用侧信道能量分析方法获得变量H1的值;再根据所获得的变量D1和H1的值,分别获得变量C0和G0的值;在j=0时,选择(FF0(A0,B0,C0)+D0+SS20)作为分析对象,根据所获得的变量A0、B0和C0的值,获得变量D0的值;选择(GG0(E0,F0,G0)+H0+SS10)作为分析对象,根据所获得的变量E0、F0和G0的值,获得变量H0的值;根据所述变量A0、B0、C0、D0、E0、F0、G0和H0的值,获得所述第一密钥数据Kin的值;分析获得第二密钥数据Kout的值;根据所获得的第一密钥数据Kin的值以及第二密钥数据Kout的值,生成消息摘要。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海复旦微电子集团股份有限公司;国家密码管理局商用密码检测中心,未经上海复旦微电子集团股份有限公司;国家密码管理局商用密码检测中心许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201510149096.2/,转载请声明来源钻瓜专利网。