CN105991289A - Sm3密码算法的侧信道能量分析方法及装置 - Google Patents

Sm3密码算法的侧信道能量分析方法及装置 Download PDF

Info

Publication number
CN105991289A
CN105991289A CN201510100622.6A CN201510100622A CN105991289A CN 105991289 A CN105991289 A CN 105991289A CN 201510100622 A CN201510100622 A CN 201510100622A CN 105991289 A CN105991289 A CN 105991289A
Authority
CN
China
Prior art keywords
data
message
matrix
dynamic token
cryptographic algorithm
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510100622.6A
Other languages
English (en)
Other versions
CN105991289B (zh
Inventor
郭丽敏
王立辉
张志敏
李大为
罗鹏
莫凡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
State Cryptography Administration Commercial Code Testing Center
Shanghai Fudan Microelectronics Group Co Ltd
Original Assignee
State Cryptography Administration Commercial Code Testing Center
Shanghai Fudan Microelectronics Group Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by State Cryptography Administration Commercial Code Testing Center, Shanghai Fudan Microelectronics Group Co Ltd filed Critical State Cryptography Administration Commercial Code Testing Center
Priority to CN201510100622.6A priority Critical patent/CN105991289B/zh
Publication of CN105991289A publication Critical patent/CN105991289A/zh
Application granted granted Critical
Publication of CN105991289B publication Critical patent/CN105991289B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Mobile Radio Communication Systems (AREA)

Abstract

本发明提供了一种SM3密码算法的侧信道能量分析方法及装置。所述方法适用于基于SM3密码算法的动态令牌,包括:向所述动态令牌输入消息组M;对所述消息组M中的每条消息执行以下操作,以获得所述动态令牌密钥中第N个字节的数据:对所述第一数据的第N个字节的数据进行猜测,获得第一猜测数据;计算与所述第一猜测数据对应的中间值,并建立中间值矩阵;将所述中间值矩阵映射成对应的仿真能量消耗矩阵;计算所述仿真能量消耗矩阵与所采集到的能量消耗矩阵之间的线性相关系数,获得线性相关系数矩阵;将所获取的线性相关系数中的最大值对应的第一猜测数据作为所述动态令牌密钥中第N个字节的数据。应用所述方法可以获取动态令牌的密钥。

Description

SM3密码算法的侧信道能量分析方法及装置
技术领域
本发明涉及数据分析技术领域,特别涉及一种SM3密码算法的侧信道能量分析方法及装置。
背景技术
密码杂凑算法被广泛应用于数字签名和验证,消息认证码的生成和验证以及随机数的生成等方面,满足了多种密码应用的安全需求。
SM3密码算法是我国公开发布的第一个密码杂凑算法,其对长度为l(l<264)比特的消息m,经过消息填充和迭代压缩等运算过程,生成256比特的杂凑值。
动态令牌是一种生成动态口令的终端设备,其主要依赖于所采用的密码算法,并结合用户的输入操作,生成动态的口令。因此,基于SM3密码算法的动态令牌可以满足密码应用的更高需求。
然而,在很多情况下,需要获取基于SM3密码算法的动态令牌的密钥,以破解所述动态令牌的密码。因此,需要提出一种分析方法,以获取基于SM3密码算法的动态令牌的密钥。
发明内容
本发明解决的问题是提出一种SM3密码算法的分析方法,以获取基于SM3密码算法的动态令牌的密钥。
为解决上述问题,本发明实施例提供一种SM3密码算法的侧信道能量分析方法,所述方法适用于基于SM3密码算法的动态令牌,所述方法包括:
向基于SM3密码算法的动态令牌输入消息组M={m0,m1,…,mi,…,mn},其中,每条消息中包括第一数据及第二数据,且每条消息中的第一数据均相同,第二数据均不同,n为正整数,0≤i≤n,且i整数;
采集所述动态令牌应用所述SM3密码算法对所输入的每条消息进行预处理的过程中,所产生的能量消耗信息,并建立能量消耗矩阵;
对所述消息组M中的每条消息执行以下操作,以获得所述动态令牌密钥中第N个字节的数据,直至获得所述动态令牌密钥中所有字节的数据:
对所述第一数据的第N个字节的数据进行猜测,获得第一猜测数据;
根据所述第一猜测数据及每条消息中的第二数据,计算在所述预处理过程中产生的与所述第一猜测数据对应的中间值,并建立中间值矩阵;
将所述中间值矩阵映射成对应的仿真能量消耗矩阵;
计算所述仿真能量消耗矩阵与所采集到的能量消耗矩阵之间的线性相关系数,获得线性相关系数矩阵;
选取所述线性相关系数矩阵中的最大值,并将所选取的线性相关系数对应的第一猜测数据作为所述动态令牌密钥中第N个字节的数据。
可选地,所述预处理的过程为SM3密码算法的消息扩展或函数压缩过程中同时对所述第一数据和第二数据进行处理的过程。
可选地,所述方法按照所述动态令牌密钥数据中字的前后顺序依次获得对应的数据。
可选地,采用汉明距离模型或汉明重量模型将所述中间值矩阵映射成仿真能量消耗矩阵。
本发明的实施例还提供了一种SM3密码算法的侧信道能量分析装置,所述装置适用于基于SM3密码算法的动态令牌,所述装置包括:
消息输出单元,用于向基于SM3密码算法的动态令牌输入消息组M={m0,m1,…,mi,…,mn},其中,每条消息中包括第一数据及第二数据,且每条消息中的第一数据均相同,第二数据均不同,n为正整数,0≤i≤n,且i整数;
采集单元,用于采集所述动态令牌应用所述SM3密码算法对所输入的每条消息进行预处理的过程中,所产生的能量消耗信息,并建立能量消耗矩阵;
处理单元,用于对所述消息组M中的每条消息进行处理,以获得所述动态令牌密钥中第N个字节的数据,直至获得所述动态令牌密钥中所有字节的数据,包括:
猜测子单元,用于对所述第一数据的第N个字节的数据进行猜测,获得第一猜测数据;
第一计算子单元,用于根据所述第一猜测数据及每条消息中的第二数据,计算在所述预处理过程中产生的与所述第一猜测数据对应的中间值,并建立中间值矩阵;
映射子单元,用于将所述中间值矩阵映射成仿真能量消耗矩阵;
第二计算子单元,用于计算所述仿真能量消耗矩阵与所采集到的能量消耗矩阵之间的线性相关系数,获得线性相关系数矩阵;
选取子单元,用于选取所述线性相关系数矩阵中的最大值,并将所选取的线性相关系数对应的第一猜测数据作为所述动态令牌密钥中第N个字节的数据。
可选地,所述采集单元用于将为SM3密码算法的消息扩展或函数压缩过程中同时对所述第一数据和第二数据进行处理的过程作为预处理的过程。
可选地,所述处理单元用于按照所述动态令牌密钥数据中字的前后顺序依次获得对应的数据。
可选地,所述映射子单元用于采用汉明距离模型或汉明重量模型将所述中间值矩阵映射成仿真能量消耗矩阵。
与现有技术相比,本发明的实施例具有以下优点:通过向基于SM3密码算法的动态令牌输入消息组,进而对所述消息组中的每条消息的第一数据进行猜测,再根据猜测到的数据获得对应的中间值,进而可以获得仿真能量消耗矩阵,由此可以通过计算所述仿真能量消耗矩阵与采集到的所述动态令牌对所述输入消息组进行预处理产生的能量消耗信息之间的线性关系,最终获得所述动态令牌密钥中第N个字节的数据。重复上述步骤就可以获得所述动态令牌的密钥中的所有字节的数据,因此可以成功地解决现有技术中无法获得所述动态令牌密钥的问题。
附图说明
图1是本发明实施例中SM3密码算法的侧信道能量分析方法的流程图;
图2是本发明实施例中SM3密码算法的侧信道能量分析装置的结构示意图。
具体实施方式
目前,由于基于SM3密码算法的动态令牌的安全性较高,导致在需要破解所述动态令牌的密钥时,无法获得所述动态令牌的密钥数据,造成了上述情况下的应用难题。
针对上述问题,本发明的实施例提供了一种SM3密码算法的侧信道能量分析方法,所述方法适用于基于SM3密码算法的动态令牌。通过向基于SM3密码算法的动态令牌输入消息组,一方面采集所述消息组所产生的能量消耗信息,建立对应的能量消耗矩阵;另一方面对消息组中每条消息的第一数据进行猜测,进而可以获得与猜测后的数据对应的中间值,建立中间值矩阵,再将所述中间值矩阵映射成仿真能量消耗矩阵,由此可以通过计算所述能量消耗矩阵与仿真能量消耗矩阵之间的线性相关系数,来获得述动态令牌密钥中第N个字节的数据。重复上述步骤,可以获得所述动态令牌密钥中所有字节的数据,也就获得了所述动态令牌的密钥。
为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细地说明。在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,因此本发明不受下面公开的具体实施例的限制。
图1是本发明实施例中SM3密码算法的侧信道能量分析方法流程图。由于基于SM3密码算法的动态令牌在调用SM3密码算法对接收到的消息进行处理的过程中,必然存在能量消耗泄露,因此可以通过对所述动态令牌调用的SM3密码算法进行侧信道的能量分析,以获得所述动态令牌的密钥。
如图1所示,所述方法可以包括步骤101至109。其中,通过执行步骤103至107可以获得基于SM3密码算法的动态令牌中第N个字节的数据。当获得所述动态令牌中所有字节的数据时,即可获得所述动态令牌的密钥。下面对上述步骤作详细说明:
步骤101,向基于SM3密码算法的动态令牌输入消息组M={m0,m1,…,mi,…,mn},其中,每条消息中包括第一数据及第二数据,且每条消息中的第一数据均相同,第二数据均不同,n为正整数,0≤i≤n,且i整数。
在本发明的实施例中,所述SM3密码算法的侧信道能量分析方法适用于基于SM3密码算法的动态令牌。也就是说,应用本发明实施例中的方法可以获取基于SM3密码算法的动态令牌的密钥。
在具体实施中,所述消息Mi中包括第一数据以及第二数据。其中,所述第一数据为未知数据,所述第二数据为预设的已知数据。消息组M中每条消息的第一数据均相同,第二数据均不同。例如,向所述动态令牌的输入的消息组M可以包括1000条消息,即N=1000,并且上述1000条消息中的第一数据均相同,第二数据均不同。
步骤102,采集所述动态令牌应用所述SM3密码算法对所输入的每条消息进行预处理的过程中,所产生的能量消耗信息,并建立能量消耗矩阵。
应用所述SM3密码算法的动态令牌在接收到消息Mi后,先对消息Mi进行消息填充,并对填充后的消息进行消息分组,再对分组后的消息进行迭代压缩处理。
具体地,对分组后的消息进行迭代压缩处理过程可以包括:对分组后的消息进行消息扩展的过程,以及对经消息扩展后的数据进行函数压缩的过程。
在具体实施中,所述动态令牌在调用SM3密码算法处理时,既包括只对第一数据进行处理的过程,又包括只对第二数据进行处理的过程,还包括同时对第一数据和第二数据进行处理的过程。在本发明的实施例中,所述预处理的过程为SM3密码算法的消息扩展或函数压缩过程中同时对所述第一数据和第二数据进行处理的过程。
采集对每条消息进行预处理时所产生的能量消耗信息,即在不同的时刻对预处理过程进行采样,由此可以获得N条消息在不同时刻消息的能量消耗值,根据所获得的能量消耗值建立能量消耗矩阵。
执行步骤103至107获得所述动态令牌密钥中第N个字节的数据,下面对步骤103至107进行详细说明:
步骤103,对所述第一数据的第N个字节的数据进行猜测,获得第一猜测数据。
在具体实施中,所述动态令牌密钥所包括的字节数是可以预先获知的。例如,获知所述第一数据包括4个字。也就是说,第一数据包括4个字节数。本发明的实施例中,可以先获取所述第一数据中任一字的数据,没有顺序限制。在获取所述第一数据的某一字的数据时,可以先获取其中任一字节的数据,没有顺序限制。
例如,当所述预处理的过程为函数压缩过程时,可以按照所述第一数据中字的前后顺序依次获得对应的数据,也就依次获得了动态令牌密钥数据中相应字节的数据。
对所述第一数据的第N个字节的数据进行猜测时,可以获得28个第一猜测数据。
步骤104,根据所述第一猜测数据及每条消息中的第二数据,计算在所述预处理过程中产生的与所述第一猜测数据对应的中间值,并建立中间值矩阵。
在具体实施中,所述动态令牌在调用SM3密码算法对每条消息进行预处理时,会产生与第一数据及第二数据相关的中间变量。将步骤103中获得的第一猜测数据及已知的第二数据代入中间变量的表达式中,即可获得一中间值。因此,对于一条消息,将所获得的28个第一猜测数据及对应的第二数据分别代入中间变量的表达式,即可获得28个中间值。对于n条消息则可以获得中间值矩阵。
步骤105,将所述中间值矩阵映射成对应的仿真能量消耗矩阵。
在具体实施中,可以采用汉明距离模型或汉明重量模型将所述中间值矩阵映射成仿真能量消耗矩阵。例如,在消息扩展的过程中,可以采用汉明重量模型将所述中间值矩阵映射成仿真能量消耗矩阵。在函数压缩的过程中,可以采用汉明距离模型将所述中间值矩阵映射成仿真能量消耗矩阵。
步骤106,计算所述仿真能量消耗矩阵与所采集到的能量消耗矩阵之间的线性相关系数,获得线性相关系数矩阵。
在具体实施中,计算述仿真能量消耗矩阵中任一第一猜测数据对应的列的数据,与所采集到的消息组在任一时刻的能量消耗值之间的线性相关系数,进而可以获得线性相关系数矩阵。
步骤107,选取所述线性相关系数矩阵中的最大值,并将所选取的线性相关系数对应的第一猜测数据作为所述动态令牌密钥中第N个字节的数据。
根据线性相关原理,所述线性相关系数矩阵中的最大值对应的第一猜测数据即为所述动态令牌密钥中第N个字节的数据。
步骤108,判断是否已经获得所述第一数据中所有字节的数据。
若没有全部获得所述第一数据中的数据,执行步骤109。
步骤109,N++。
即当没有全部获得所述第一数据中的数据时,继续执行步骤103至步骤107,以获得下一字节的数据。
需要说明的是,在本发明的实施例中,当没有全部获得所述第一数据中的数据时,既可以继续执行步骤103至步骤107,以获得下一字节的数据,也可以继续执行步骤103至步骤107,以获得其它任一字节的数据,没有顺序限制。
下面结合所述动态令牌调用SM3密码算法的具体过程,对所述方法进行详细说明:
所述动态令牌在接收到输入的消息组M后,首先调用SM3密码算法将每条消息进行填充,再对填充后的消息进行迭代压缩。
1、消息填充
以消息mi为例,消息mi的长度为l比特。首先将比特“1”添加到消息mi的末尾,再添加k个“0”,其中k是满足l+1+k≡448mod 512的最小的非负整数。然后再添加一个64位的比特串,所述比特串是长度l的二进制数据,由此获得填充后的消息mi′。消息mi′的比特长度为512的倍数,将填充后的消息mi′按512比特进行分组:
mi′=B(0)B(1)…B(x)…B(p-1),其中,p=(l+k+65)/512
根据上述过程可以对消息组M中每条消息进行消息填充,得到填充后的消息组M‘={m0‘,m1’,…,mi‘,…,mn’}。
2、迭代压缩
在具体实施中,所述迭代压缩过程可以包括对分组后的消息进行消息扩展的过程,以及对经消息扩展后的数据进行函数压缩的过程,下面对上述过程进行详细说明:
2.1、消息扩展
以对消息mi填充后的消息mi′中的消息分组B(x)进行为例,依次执行以下步骤,以将消息分组B(x)扩展生成132个字W0,W1,…,W67,W0′,W1′,…W63′:
a)将消息分组B(x)划分为16个字W0,W1,…,W15
b)对于j从16至63,依次进行如下运算:
W j &LeftArrow; P 1 ( W j - 16 &CirclePlus; W j - 9 &CirclePlus; ( W j - 3 < < < 15 ) ) &CirclePlus; ( W j - 13 < < < 7 ) &CirclePlus; W j - 6 - - - ( 1 )
c)对于j从0至63之间的每一个值,依次进行如下运算:
W j &prime; = W j &CirclePlus; W j + 4 - - - ( 2 )
其中置换函数 P 1 ( X ) = X &CirclePlus; ( X < < < 15 ) &CirclePlus; ( X < < < 23 ) , 式中X的单位为字。由此可以对填充后的消息组M‘中任一条消息mi‘进行消息扩展。
2.2、函数压缩
令A,B,C,D,E,F,G,H为字寄存器,SS1,SS2,TT1,TT2为中间变量,压缩函数V(x+1)=CF(V(x),B(x)),0≤x≤n-1,其中V(0)为已知的256比特初始值IV。计算过程描述如下:
ABCDEFGH←V(x)
对于j从0至63之间的每一个值,依次进行式(3)至(14)的运算:
SS1←((A<<<12)+E+(Tj<<<j))<<<7 (3)
SS 2 &LeftArrow; SS 1 &CirclePlus; ( A < < < 12 ) - - - ( 4 )
TT1←FFj(A,B,C)+D+SS2+Wj′ (5)
TT2←GGj(E,F,G)+H+SS1+Wj (6)
D←C (7)
C←B<<<9 (8)
B←A (9)
A←TT1 (10)
H←G (11)
G←F<<<19 (12)
F←E (13)
E←P0(TT2) (14)
V ( x + 1 ) &LeftArrow; ABCDEFGH &CirclePlus; V ( x )
函数压缩后的结果为V(p)
其中,迭代中使用的常数与函数如下:
常量 T j = 79 CC 4519 0 &le; j &le; 15 7 a 879 d 8 a 16 &le; j &le; 63 ;
布尔函数:
置换函数 P 0 ( X ) = X &CirclePlus; ( X < < < 9 ) &CirclePlus; ( X < < < 17 ) - - - ( 17 )
式(15)、(16)及(17)中X,Y,Z的单位均为字。
3、杂凑值
ABCDEFGH←V(p)
输出的256比特的杂凑值:y=ABCDEFGH。
假设第一数据K=W0|W1|W2|W3,第二数据ID=W4|W5|W6|W7,其中,“|”表示拼接符号,W0~W7的单位为字,每个字中包含四个字节。消息组M中的每条消息mi可以表示为:mi=K+IDi,所述第N个字节可以为第一数据K中任一字中的任一字节。下面分别对不同的预处理过程进行详细说明:
在消息扩展过程中,所述预处理过程可以为消息扩展中式(2)的过程。当所述预处理的过程为消息扩展中式(2)的过程时,获得所述动态令牌中第N个字节的数据的步骤如下:
1)对所述第N个字节数据中的K进行猜测,获得28个第一猜测数据K
2)将其中所述第一猜测数据K及一条消息中的ID值代入式(2)中,获得中间值vis,这样,将28个第一猜测数据K分别与每条消息中的ID值代入式(2)中,则可以获得中间值矩阵 V ( N &times; 256 ) = v 1,0 &CenterDot; &CenterDot; &CenterDot; v 1,255 &CenterDot; &CenterDot; &CenterDot; v i , s &CenterDot; &CenterDot; &CenterDot; v n , 0 &CenterDot; &CenterDot; &CenterDot; v n , 255 , 其中,s为0至255间的整数。
3)将中间值矩阵Vs映射的仿真能量消耗为:his=HW(vis),即第i条消息中第N个字节的数据为s时对应的仿真能量消耗。由此获得仿真能量消耗矩阵为: H ( N &times; 256 ) = h 1,0 &CenterDot; &CenterDot; &CenterDot; h 1,255 &CenterDot; &CenterDot; &CenterDot; h i , s &CenterDot; &CenterDot; &CenterDot; h n , 0 &CenterDot; &CenterDot; &CenterDot; h n , 255 .
4)计算所述仿真能量消耗矩阵H(N×256)中第一猜测数据为s时对应的列的数据,与所采集到的消息组在t时刻的能量消耗值之间的线性相关系数ρs,t,进而计算仿真能量消耗矩阵与采集到的能量消耗矩阵中所有列之间的相关系数,得到仿真能量消耗和采样能量消耗的相关系数矩阵为可以获得线性相关系数矩阵 R ( 256 &times; T ) = &rho; 0,0 &CenterDot; &CenterDot; &CenterDot; &rho; 0 , T - 1 &CenterDot; &CenterDot; &CenterDot; &rho; s , t &CenterDot; &CenterDot; &CenterDot; &rho; 255,0 &CenterDot; &CenterDot; &CenterDot; &rho; 255 , T - 1 . 其中,T为能量采集中的时间点个数。
5)选取R中的最大值ρm,n=max(ρs,t),对应的第一猜测数据s即为动态令牌密钥中第N个字节的数据。
6)重复步骤1)至5),分别获得其他字节的数据。
在函数压缩过程中,根据式(10)可知,A寄存器的值需要根据上一轮获得的TT1的值进行获取,根据式(14)可知,E寄存器的值需要根据上一轮获得的TT2的值进行获取。也就是说,当前轮的处理过程需要根据上一轮的处理结果进行处理,因此,在获取所述动态令牌密钥时,需要按照字的前后顺序依次获取,也就是依次获取所述第一数据K中相应字的数据。需要说明的是,在依次获取所述动态令牌某一字的过程中,可以先获取该字中任一字节的数据,没有顺序限制。
例如:当第一数据K=W0|W1|W2|W3时,先获取W0的数据,再依次获取W1至W3的数据。其中,在获取W0时,由于寄存器A至H的初始值均为已知,根据式(3)及式(4),分别可以获得j=0时的中间变量SS10和WW20。将所获得的中间变量SS10和SS20代入式(5),得到TT10=θ0+W0′,其中θ0=FF0(A0,B0,C0)+D0+SS20为已知固定值。由于式(5)同时对第一数据及第二数据进行处理,因此,可以将式(5)作为所述预处理的过程,相应地,TT10作为获取W0中数据的中间值。同样地,根据式(10)可知,A1=TT10,因此也可以将式(10)作为所述预处理的过程,相应地,A1作为获取字W0中数据的中间值。这样,参照前述步骤1)至6)即可获得W0相应字节的数据。在获得W0的数据后,依据同样原理可以依次可以获取W1至W3的数据。
需要说明的是,在具体实施中,应用本发明实施例中的侧信道能量分析方法可以在消息扩展过程中获取所述动态令牌的密钥,也可以在函数压缩过程中获取所述动态令牌的密钥。但无论具体在何过程中获取所述动态令牌的密钥,都不构成对本发明的限制。
应用上述方法可以获取基于SM3密码算法的动态令牌的密钥,成功地解决了现有技术中无法获取上述动态令牌密钥的问题。
为了使本领域技术人员更好地理解和实现本发明,以下对上述SM3密码算法的侧信道能量分析方法对应的装置进行详细描述。
如图2所示,所述装置适用于基于SM3密码算法的动态令牌。所述装置可以包括:消息输出单元201,采集单元202,以及处理单元203。
其中,所述消息输出单元201可以用于向基于SM3密码算法的动态令牌输入消息组M={m0,m1,…,mi,…,mn},其中,每条消息中包括第一数据及第二数据,且每条消息中的第一数据均相同,第二数据均不同,n为正整数,0≤i≤n,且i整数。所述采集单元202可以用于采集所述动态令牌应用所述SM3密码算法对所输入的每条消息进行预处理的过程中,所产生的能量消耗信息,并建立能量消耗矩阵。所述处理单元203可以用于对所述消息组M中的每条消息进行处理,以获得所述动态令牌密钥中第N个字节的数据,直至获得所述动态令牌密钥中所有字节的数据。
在具体实施中,所述处理单元203可以包括:猜测子单元2031,第一计算子单元2032,映射子单元2033,第二计算子单元2034,以及选取子单元2035。
其中,所述猜测子单元2031可以用于对所述第一数据的第N个字节的数据进行猜测,获得第一猜测数据。所述第一计算子单元2032可以用于根据所述第一猜测数据及每条消息中的第二数据,计算在所述预处理过程中产生的与所述第一猜测数据对应的中间值,并建立中间值矩阵。所述映射子单元2033可以用于将所述中间值矩阵映射成仿真能量消耗矩阵。所述第二计算子单元2034可以用于计算所述仿真能量消耗矩阵与所采集到的能量消耗矩阵之间的线性相关系数,获得线性相关系数矩阵。所述选取子单元2035可以用于选取所述线性相关系数矩阵中的最大值,并将所选取的线性相关系数对应的第一猜测数据作为所述动态令牌密钥中第N个字节的数据。
在具体实施中,所述采集单元202可以将为SM3密码算法的消息扩展或函数压缩过程中同时对所述第一数据和第二数据进行处理的过程作为预处理的过程。
在具体实施中,所述处理单元203可以按照所述动态令牌密钥数据中字的前后顺序依次获得对应的数据。
在具体实施中,所述映射子单元2033可以采用汉明距离模型或汉明重量模型将所述中间值矩阵映射成仿真能量消耗矩阵。
需要说明的是,在具体实施中,所述处理单元203的数量不受限制。所述装置可以只包括一个处理单元203,由所述处理单元203获取动态令牌密钥中所有字节的数据,也可以包括两个以上的处理单元203,由所述两个以上的处理单元203分别获取动态令牌密钥中所有字节的数据。但无论所述装置包括处理单元203的数量如何,均不构成对本发明的限制。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

Claims (8)

1.一种SM3密码算法的侧信道能量分析方法,其特征在于,适用于基于SM3密码算法的动态令牌,包括:
向基于SM3密码算法的动态令牌输入消息组M={m0,m1,…,mi,…,mn},其中,每条消息中包括第一数据及第二数据,且每条消息中的第一数据均相同,第二数据均不同,n为正整数,0≤i≤n,且i整数;
采集所述动态令牌应用所述SM3密码算法对所输入的每条消息进行预处理的过程中,所产生的能量消耗信息,并建立能量消耗矩阵;
对所述消息组M中的每条消息执行以下操作,以获得所述动态令牌密钥中第N个字节的数据,直至获得所述动态令牌密钥中所有字节的数据:
对所述第一数据的第N个字节的数据进行猜测,获得第一猜测数据;
根据所述第一猜测数据及每条消息中的第二数据,计算在所述预处理过程中产生的与所述第一猜测数据对应的中间值,并建立中间值矩阵;
将所述中间值矩阵映射成对应的仿真能量消耗矩阵;
计算所述仿真能量消耗矩阵与所采集到的能量消耗矩阵之间的线性相关系数,获得线性相关系数矩阵;
选取所述线性相关系数矩阵中的最大值,并将所选取的线性相关系数对应的第一猜测数据作为所述动态令牌密钥中第N个字节的数据。
2.如权利要求1所述的SM3密码算法的侧信道能量分析方法,其特征在于,所述预处理的过程为SM3密码算法的消息扩展或函数压缩过程中同时对所述第一数据和第二数据进行处理的过程。
3.如权利要求1所述的SM3密码算法的侧信道能量分析方法,其特征在于,所述方法按照所述动态令牌密钥数据中字的前后顺序依次获得对应的数据。
4.如权利要求1所述的SM3密码算法的侧信道能量分析方法,其特征在于,采用汉明距离模型或汉明重量模型将所述中间值矩阵映射成仿真能量消耗矩阵。
5.一种SM3密码算法的侧信道能量分析装置,其特征在于,适用于基于SM3密码算法的动态令牌,包括:
消息输出单元,用于向基于SM3密码算法的动态令牌输入消息组M={m0,m1,…,mi,…,mn},其中,每条消息中包括第一数据及第二数据,且每条消息中的第一数据均相同,第二数据均不同,n为正整数,0≤i≤n,且i整数;
采集单元,用于采集所述动态令牌应用所述SM3密码算法对所输入的每条消息进行预处理的过程中,所产生的能量消耗信息,并建立能量消耗矩阵;处理单元,用于对所述消息组M中的每条消息进行处理,以获得所述动态令牌密钥中第N个字节的数据,直至获得所述动态令牌密钥中所有字节的数据,包括:
猜测子单元,用于对所述第一数据的第N个字节的数据进行猜测,获得第一猜测数据;
第一计算子单元,用于根据所述第一猜测数据及每条消息中的第二数据,计算在所述预处理过程中产生的与所述第一猜测数据对应的中间值,并建立中间值矩阵;
映射子单元,用于将所述中间值矩阵映射成仿真能量消耗矩阵;
第二计算子单元,用于计算所述仿真能量消耗矩阵与所采集到的能量消耗矩阵之间的线性相关系数,获得线性相关系数矩阵;
选取子单元,用于选取所述线性相关系数矩阵中的最大值,并将所选取的线性相关系数对应的第一猜测数据作为所述动态令牌密钥中第N个字节的数据。
6.如权利要求5所述的SM3密码算法的侧信道能量分析装置,其特征在于,所述采集单元用于将为SM3密码算法的消息扩展或函数压缩过程中同时对所述第一数据和第二数据进行处理的过程作为预处理的过程。
7.如权利要求5所述的SM3密码算法的侧信道能量分析装置,其特征在于,所述处理单元用于按照所述动态令牌密钥数据中字的前后顺序依次获得对应的数据。
8.如权利要求5所述的SM3密码算法的侧信道能量分析装置,其特征在于,所述映射子单元用于采用汉明距离模型或汉明重量模型将所述中间值矩阵映射成仿真能量消耗矩阵。
CN201510100622.6A 2015-03-06 2015-03-06 Sm3密码算法的侧信道能量分析方法及装置 Active CN105991289B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510100622.6A CN105991289B (zh) 2015-03-06 2015-03-06 Sm3密码算法的侧信道能量分析方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510100622.6A CN105991289B (zh) 2015-03-06 2015-03-06 Sm3密码算法的侧信道能量分析方法及装置

Publications (2)

Publication Number Publication Date
CN105991289A true CN105991289A (zh) 2016-10-05
CN105991289B CN105991289B (zh) 2018-12-25

Family

ID=57039476

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510100622.6A Active CN105991289B (zh) 2015-03-06 2015-03-06 Sm3密码算法的侧信道能量分析方法及装置

Country Status (1)

Country Link
CN (1) CN105991289B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106656459A (zh) * 2016-11-17 2017-05-10 大唐微电子技术有限公司 一种针对sm3‑hmac的侧信道能量分析方法和装置
CN106982114A (zh) * 2017-03-12 2017-07-25 成都信息工程大学 一种针对sm3密码算法消息扩展的侧信道分析攻击的方法
CN109150506A (zh) * 2017-06-19 2019-01-04 深圳职业技术学院 一种彩虹签名的侧信道分析方法及装置
CN109547192A (zh) * 2018-11-08 2019-03-29 北京大学 Sm3密码杂凑算法的并行化优化方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103457719A (zh) * 2013-07-23 2013-12-18 国家密码管理局商用密码检测中心 一种对sm3密码算法hmac模式的侧信道能量分析方法
CN103825722A (zh) * 2013-11-19 2014-05-28 国家密码管理局商用密码检测中心 一种sm4密码算法的二阶侧信道能量分析方法
CN104092534A (zh) * 2014-07-09 2014-10-08 昆腾微电子股份有限公司 实现sm3密码杂凑算法中的迭代压缩的方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103457719A (zh) * 2013-07-23 2013-12-18 国家密码管理局商用密码检测中心 一种对sm3密码算法hmac模式的侧信道能量分析方法
CN103825722A (zh) * 2013-11-19 2014-05-28 国家密码管理局商用密码检测中心 一种sm4密码算法的二阶侧信道能量分析方法
CN104092534A (zh) * 2014-07-09 2014-10-08 昆腾微电子股份有限公司 实现sm3密码杂凑算法中的迭代压缩的方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106656459A (zh) * 2016-11-17 2017-05-10 大唐微电子技术有限公司 一种针对sm3‑hmac的侧信道能量分析方法和装置
CN106982114A (zh) * 2017-03-12 2017-07-25 成都信息工程大学 一种针对sm3密码算法消息扩展的侧信道分析攻击的方法
CN106982114B (zh) * 2017-03-12 2020-11-27 成都信息工程大学 针对sm3密码算法消息扩展的侧信道分析攻击的方法
CN109150506A (zh) * 2017-06-19 2019-01-04 深圳职业技术学院 一种彩虹签名的侧信道分析方法及装置
CN109150506B (zh) * 2017-06-19 2021-12-10 深圳职业技术学院 一种彩虹签名的侧信道分析方法及装置
CN109547192A (zh) * 2018-11-08 2019-03-29 北京大学 Sm3密码杂凑算法的并行化优化方法
CN109547192B (zh) * 2018-11-08 2020-11-03 北京大学 Sm3密码杂凑算法的并行化优化方法

Also Published As

Publication number Publication date
CN105991289B (zh) 2018-12-25

Similar Documents

Publication Publication Date Title
Lindell et al. Secure two-party computation via cut-and-choose oblivious transfer
CN103457719B (zh) 一种对sm3密码算法hmac模式的侧信道能量分析方法
CN103138917B (zh) 以s盒输入为基础的汉明距离模型进行sm4密码算法侧信道能量分析方法
CN104796250B (zh) 针对RSA密码算法M-ary实现的侧信道攻击方法
KR970064059A (ko) 데이타의 암호화방법 및 장치
CN105991289A (zh) Sm3密码算法的侧信道能量分析方法及装置
Kosba et al. How to Use SNARKs in Universally Composable Protocols.
CN103530474A (zh) 面向aes算法电路的差分功耗攻击测试方法
CN112613601B (zh) 神经网络模型更新方法、设备及计算机存储介质
CN110263586A (zh) 一种混沌密码系统的硬件安全评估方法
CN106656459A (zh) 一种针对sm3‑hmac的侧信道能量分析方法和装置
Yu et al. Pseudorandom functions in almost constant depth from low-noise LPN
CN104811297B (zh) 针对RSA之M-ary实现模乘余数输入侧信道攻击
Aly et al. Protocol verification and analysis using colored Petri nets
CN113158176A (zh) 基于sm2签名的公钥解析方法、装置、设备及存储介质
CN106330424A (zh) 基于sm3算法的密码模块的防攻击方法及装置
Dobbertin et al. Cryptographer's Toolkit for Construction of $8 $-Bit Bent Functions
CN115865302A (zh) 一种具有隐私保护属性的多方矩阵乘法计算方法
CN106161001B (zh) Hmac-sm3密码算法的侧信道能量分析方法及装置
KR20150112315A (ko) 묶음 검증 방법 및 장치
CN106161004B (zh) 一种hmac-sm3密码算法的侧信道能量分析方法及装置
CN109150506B (zh) 一种彩虹签名的侧信道分析方法及装置
Wang et al. Single-Trace Side-Channel Attacks on CRYSTALS-Dilithium: Myth or Reality?
CN106330443B (zh) 一种基于sm3算法的密码模块的防攻击方法及装置
CN112134679A (zh) 针对sm4的组合高阶侧信道攻击方法、装置、设备及介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant