CN104052590A - 基于侧信道相关能量分析的频域分析方法 - Google Patents

基于侧信道相关能量分析的频域分析方法 Download PDF

Info

Publication number
CN104052590A
CN104052590A CN201410184491.XA CN201410184491A CN104052590A CN 104052590 A CN104052590 A CN 104052590A CN 201410184491 A CN201410184491 A CN 201410184491A CN 104052590 A CN104052590 A CN 104052590A
Authority
CN
China
Prior art keywords
key
energy
matrix
round key
wheel
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
CN201410184491.XA
Other languages
English (en)
Other versions
CN104052590B (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
Tsinghua University
Datang Microelectronics Technology Co Ltd
Original Assignee
Tsinghua University
Datang Microelectronics Technology 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 Tsinghua University, Datang Microelectronics Technology Co Ltd filed Critical Tsinghua University
Priority to CN201410184491.XA priority Critical patent/CN104052590B/zh
Publication of CN104052590A publication Critical patent/CN104052590A/zh
Application granted granted Critical
Publication of CN104052590B publication Critical patent/CN104052590B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明公开了一种基于侧信道相关能量分析的频域分析方法,应用于加密解密信息技术领域,包括以下步骤:选择频域分析方法执行过程中具有函数关系的关键点;采集密码模块运算过程中关键点的能量消耗信息转换到频域;根据频域能量消耗信息建立频域能量消耗矩阵;基于关键点的函数关系和猜测密钥计算对应的假设中间值得到假设中间值矩阵;将假设中间值矩阵通过汉明距离能量模型映射为仿真能量消耗矩阵;计算仿真能量消耗矩阵与频域能量消耗矩阵的相关系数,基于相关系数分析得到密钥。本发明将采集到的时域能量信息转换到频域上,克服了时钟随机化防护措施对侧信道能量分析的影响,能更有效地对具有时钟随机化防护措施的SM4密码算法进行分析。

Description

基于侧信道相关能量分析的频域分析方法
技术领域
本发明涉及加密解密信息技术领域,具体地说,涉及一种具有时钟随机化防护措施的SM4密码算法的频域分析方法。
背景技术
随着信息科技的发展,侧信道能量分析方法被用于加密信息的分析。该方法因实施方便、相对成本低廉而被广泛使用。侧信道能量分析方法利用密码芯片在运算过程中泄露的各种物理信息(如功耗、电磁辐射、声音、可见光等)来解密密码系统。
在SM4密码算法模块中采用时钟随机化防护措施来抵抗时域侧信道能量分析。在密码算法的每一次执行中,时钟随机化防护措施通过改变操作的执行时刻来造成能量消耗的随机化。这种防护措施从时间维度上改变了能量消耗的特征,使得密码模块的能量泄露在时间上不再具有连贯性,进而使能量迹无法在时间轴上对齐。一旦能量迹不能在时间轴上对齐,采用时域方法进行解密就不再有效。
基于上述情况,亟需一种采用侧信道能量分析方法来对有时钟随机化防护措施的SM4密码算法进行分析的方法。
发明内容
为解决上述问题,本发明提供了一种采用相关能量分析方法(CPA)对具有时钟随机化防护措施的SM4密码算法进行频域分析的方法。
根据本发明的一个实施例,基于侧信道相关能量分析的频域分析方法,包括以下步骤:
选择频域分析方法执行过程中的具有函数关系的关键点;
采集密码模块运算过程中关键点的能量消耗信息,得到关键点的实际时域能量迹;
将采集到的实际时域能量迹转换为实际频域能量迹,根据实际频域能量迹建立实际频域能量消耗矩阵;
基于关键点的函数关系,通过猜测密钥集合中的每一个值来计算对应的假设中间值,从而得到假设中间值矩阵;
将假设中间值矩阵通过汉明距离能量模型映射为仿真能量消耗矩阵;
计算仿真能量消耗矩阵与实际频域能量消耗矩阵的相关系数,基于相关系数得到加密/解密的密钥。
根据本发明的一个实施例,将实际时域能量迹经傅里叶变换转换成实际频域能量迹,对有时钟随机化防护措施的SM4密码算法进行频域分析。
根据本发明的一个实施例,所述关键点为S盒的输出。
根据本发明的一个实施例,关键点的函数关系为:
Sout=f(d,k)
其中,d是已知的随机的明文/密文;
k是输入单个S盒的8比特密钥,k∈{0,1,2,…,255}。
根据本发明的一个实施例,获得实际时域能量迹的步骤包括:
选择D组明文/密文进行加密/解密运算,在密码模块运算的同时采集关键点的能量消耗信息;
在每一次密码模块运行期间记录一条能量迹,记作ti=(ti,1,ti,2,…,ti,T),ti为第i组明文/密文的能量迹,T为采样的时间点数,对于D组明文/密文数据可以记录D条能量迹,这些能量迹构成D×T的实际时域能量消耗矩阵EtD×T
根据本发明的一个实施例,将实际时域能量迹转换为实际频域能量迹的步骤包括:
在一条能量迹ti=(ti,1,ti,2,…,ti,T)上选取在密码模块运算过程中包含关键点的的能量消耗区域t'=(ti,m,ti,m+1,…,ti,m+N),m为采样时间点,N为采样点的个数;
对t'按以下公式做傅里叶变换:
Si'=FFT(t')
得到实际时域能量迹在频域的分布;
对Si'按以下公式求功率谱密度:
P=lim(|Si'|2/N)
得到实际频域能量迹的功率谱密度在频域的分布;
对D条能量迹求取功率谱密度构成实际频域能量消耗矩阵EfD×T,将实际时域能量消耗矩阵EtD×T变成实际频域能量消耗EfD×T
根据本发明的一个实施例,获得假设中间值矩阵的步骤包括:
遍历猜测每一个S盒的密钥k的可能取值情况,k∈{0,1,2,…,255};
根据猜测的S盒密钥k和已知的S盒输入的D组明文/密文,按以下公式来计算假设中间值:
Souti,j=f(di,kj)
通过计算可以得到一个大小为D×M的中间值矩阵VD×M,其中M=256,di为D组明文/密文中的第i组明文/密文,kj为猜测的密钥的可能取值,j∈{0,1,2,…,255}。
根据本发明的一个实施例,选用汉明距离能量模型作为能量映射模型,该模型前序状态为S盒输入,后续状态为S盒输出,即:
h i , j = HD ( Sin i , j , Sout i , j ) = HW ( Sin i , j ⊕ Sout i , j )
hi,j构建将假设中间值矩阵VD×M映射为D×M的仿真能量消耗矩阵HD×M,Sini,j为S盒输入,Souti,j为S盒输出。
根据本发明的一个实施例,基于相关系数获得密钥的步骤包括:
对仿真能量消耗矩阵HD×M的每一列hp和实际频域能量消耗矩阵EfD×T的每一列sq'计算相关系数ρp,q,得到一个大小为M×N的相关系数矩阵RM×N
对ρp,q的值进行判断,ρp,q的值越大,则列hp和列sq'的匹配程度越高,寻找相关系数矩阵RM×N中的最大值所在的行p就是用于该S盒的正确的密钥值rki,j,其中rki,j为正确的第i轮轮密钥第j个字节,由于在SM4密码算法中采用四个S盒进行轮密钥的产生,每个S盒产生密钥的一个字节,所以需重复猜测密钥到计算相关系数的步骤,分别获得第i轮轮密钥的其他三个密钥字节,从而得到第i轮正确的轮密钥rki
对于前四轮,使用轮密钥rki进行第i轮密码运算得到第i轮的轮密钥输出,第i轮的轮密钥输出即第i+1轮的轮密钥输入,根据前面所述获得轮密钥的方法,依次获得前四轮的加密轮密钥(rk0,rk1,rk2,rk3)=(K4,K5,K6,K7),然后根据密钥扩展算法逆运算得到加密密钥,或解密轮密钥(rk0,rk1,rk2,rk3)=(K35,K34,K33,K32),然后根据密钥扩展算法逆运算得到解密密钥,其中,Ki为轮密钥;
对于后四轮,使用轮密钥rki反推进行第i轮密码运算得到第i-1轮的轮密钥输出,第i-1轮的轮密钥输出即第i轮的轮密钥输入,根据前面所述获得轮密钥的方法,依次获得后四轮的加密轮密钥(rk31,rk30,rk29,rk28)=(K35,K34,K33,K32),然后根据密钥扩展算法逆运算得到加密密钥,或解密轮密钥(rk31,rk30,rk29,rk28)=(K4,K5,K6,K7),根据密钥扩展算法逆运算得到解密密钥,其中,Ki为轮秘钥。
本发明带来了以下有益效果:
本发明针对具有时钟随机化防护措施的SM4密码算法进行分析,将采集到的时域能量信息转换到频域上,创新地提出了频域CPA的方法,克服了时钟随机化防护措施对侧信道能量分析的影响,解决了时域CPA中时间点不对齐的问题,能更有效地对具有时钟随机化防护措施的SM4密码算法进行分析。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要的附图做简单的介绍:
图1是SM4密码算法的加密结构和密钥扩展算法流程图;
图2是是频域CPA分析流程图;
图3是以S盒为攻击对象以及以S盒输入作为前序状态,S盒输出作为后续状态的汉明距离能量模型;
图4是70000组明文SM4加密运算一条采样时域能量波形;
图5是70000组明文SM4加密运算十条采样时域能量波形的重合图;
图6是70000组明文SM4加密运算一条采样时域能量波形进过傅里叶变换后,求功率谱密度后的频域能量波形;
图7是对第32轮S盒汉明距离模型频域CPA分析结果,分别对应4个S盒;
图8是对第31轮S盒汉明距离模型频域CPA分析结果,分别对应4个S盒;
图9是对第30轮S盒汉明距离模型频域CPA分析结果,分别对应4个S盒;
图10是对第29轮S盒汉明距离模型频域CPA分析结果,分别对应4个S盒;
图11是时域CPA分析流程图;
图12是对第32轮S盒汉明距离模型时域CPA分析结果,分别对应4个S盒。
具体实施方式
以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。
另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
如图1所示为SM4密码算法的加密结构和密钥扩展算法流程图。
设明文输入为 ( X 0 , X 1 , X 2 , X 3 ) ∈ ( Z 2 32 ) 4 , 密文输出为 ( Y 0 , Y 1 , Y 2 , Y 3 ) ∈ ( Z 2 32 ) 4 , 第i轮的输入为 ( X i , X i + 1 , X i + 2 , X i + 3 ) ∈ ( Z 2 32 ) 4 , 第i轮使用的轮密钥为 rk i ∈ ( Z 2 32 ) 4 , 其中i=0,1,2,…31。
SM4密码算法的加密变换公式为:
X i + 4 = F ( X i , X i + 1 , X i + 2 , X i + 3 , rk i ) = X i ⊕ T ( X i + 1 ⊕ X i + 2 ⊕ X i + 3 ⊕ rk i ) - - - ( 1 )
其中是一个可逆变换,由非线性变换τ和线性变换L复合而成,即T(.)=L(τ(.))。
τ由4个并行的S盒构成,设输入为输出为则输入和输出的关系由以下公式表示:
(b0,b1,b2,b3)=τ(A)=(Sbox(a0),Sbox(a1),Sbox(a2),Sbox(a3))   (2)
非线性变换τ的输出是线性变换L的输入,设输入为输出为则:
C = L ( B ) = B &CirclePlus; ( B < < < 2 ) &CirclePlus; ( B < < < 10 ) &CirclePlus; ( B < < < 18 ) &CirclePlus; ( B < < < 24 ) - - - ( 3 )
所以进行32轮迭代运算后的密文输出为(Y0,Y1,Y2,Y3)=(X35,X34,X33,X32)。
SM4算法的轮密钥由加密密钥通过密钥扩展算法生成,如图1所示。密钥扩展算法与加密算法结构类似,仅线性变换L移位函数不一致。设初始加密密钥为 ( MK 0 , MK 1 , MK 2 , MK 3 ) &Element; ( Z 2 32 ) 4 , 则:
( K 0 , K 1 , K 2 , K 3 ) = ( MK 0 &CirclePlus; FK 0 , MK 1 &CirclePlus; FK 1 , MK 2 &CirclePlus; FK 2 , MK 3 &CirclePlus; FK 3 ) - - - ( 4 )
其中(FK0,FK1,FK2,FK3)为给定的已知常量。
轮密钥的生成方法为:
rk i = K i + 4 = K i &CirclePlus; T &prime; ( K i + 1 &CirclePlus; K i + 2 &CirclePlus; K i + 3 &CirclePlus; CK i ) i = 0,1,2 , . . . 31 - - - ( 5 )
其中CKi为给定的已知常量,其中T'与加密算法轮函数中T基本相同,只将其中的线性变换L修改为L',即:
T'(.)=L'(τ(.))     (6)
L &prime; ( B ) = B &CirclePlus; ( B < < < 13 ) &CirclePlus; ( B < < < 23 ) - - - ( 7 )
SM4算法的解密变换与加密变换结构相同,不同的仅是轮密钥的使用顺序。加密时轮密钥的使用顺序为:(rk0,rk1,…,rk31),解密时轮密钥的使用顺序为(rk31,rk30,…,rk0)。
针对开启时钟随机化防护措施的SM4密码算法实现模块,采用频域CPA方法实现SM4密码算法的分析。如图2所示为采用频域CPA方法实现SM4密码算法频域分析的算法流程图。
如图2所示,采用频域CPA方法实现SM4密码算法的分析,首先选取算法的关键点。在该方法中,分析的关键点为S盒的输出,关键点的函数关系由以下公式表示:
Sout=f(d,k)     (8)
其中,d是已知的随机的明文/密文;
k是输入单个S盒的密钥,k∈{0,1,2,…,255}。
随机选择D组明文/密文进行加密/解密运算,在密码模块运算的同时采集对应时间的能量消耗信息,一组明文/密文进行加密/解密运算即为一条能量迹。在每一次密码模块运行期间,记录一条能量迹,记作ti=(ti,1,ti,2,…,ti,T),其中T为采样时间点数,i为D组明文/密文中的第i组明文/密文。对于D组明文/密文数据可以记录D条能量迹,这些能量迹就构成了D×T的实际时域能量消耗矩阵EtD×T。对于时域CPA分析,正确地对齐测量获得的能量迹非常重要,即矩阵EtD×T中每一列的能量消耗必须是由相同的操作引起的。如果SM4密码算法具有时钟随机化防护措施,使得能量迹无法在时间轴上对齐,而一旦能量迹不能在时间轴上对齐,时域上的CPA侧信道能量分析方法就不再有效。
帕斯瓦尔定理由以下公式表示:
E = &Sigma; n = - &infin; &infin; | x [ n ] | 2 = 1 2 &pi; &Integral; - &pi; &pi; | X ( e j&omega; ) | 2 dw - - - ( 9 )
其中, x [ n ] &RightArrow; F X ( e j&omega; ) .
该定理表明信号的总能量既可以按照每单位时间内的能量在整个时间内的积分计算出来,也可以按照每单位频率内的能量在整个频率范围内的积分而得到。所以时域内信号的能量等于频域内信号的能量,即离散信号经傅里叶变换,总能量保持不变,符合能量守恒定律。
首先在一条能量迹ti=(ti,1,ti,2,…,ti,T)上选取包含关键点的能量消耗区域t'=(ti,m,ti,m+1,…,ti,m+N),其中,i为第i组的明文/密文,m为采样时间点,N为采样点的个数。然后对t'做傅里叶变换,变换公式为:
Si'=FFT(t')     (10)
再对Si'求功率谱密度,功率谱密度的求取公式为:
P=lim(|Si'|2/N)     (11)
对D条能量迹求取功率谱密度后就构成了实际频域能量消耗矩阵EfD×T。这样就将原来时域上的实际时域能量消耗EtD×T变成了频域上的实际能量消EfD×T
在将实际时域能量消耗变换为实际频域能量消耗的同时,遍历猜测每一个S盒在k∈{0,1,2,…,255}范围内的可能取值情况。根据猜测的S盒密钥和已知的S盒输入通过公式(8)来计算S盒输出的假设中间值。针对每一个猜测值对应一个假设中间值,D条能量迹构成一个大小为D×M的中间值矩阵VD×M,其中M=256。
如图3所示,能量模型选用汉明距离能量模型。汉明距离能量模型前序状态为S盒输入,后续状态为S盒输出,即:
h i , j = HD ( Sin i , j , Sout i , j ) = HW ( Sin i , j &CirclePlus; Sout i , j ) - - - ( 12 )
hi,j构建了将中间值矩阵VD×M映射为D×M仿真能量消耗矩阵HD×M,其中Sini,j为S盒输入,Souti,j为为S盒输出。
对仿真能量消耗矩阵HD×M的每一列hp和实际频域能量消耗矩阵EfD×T的每一列Sq'计算相关系数ρp,q,得到一个大小为M×N的相关系数矩阵RM×N
对ρp,q的值进行判断,ρp,q的值越大,则列hp和列Sq'的匹配程度越高。寻找相关系数矩阵RM×N中的最大值所在的行p就是用于该S盒的正确的密钥值rki,j。其中rki,j为正确的第i轮轮密钥第j个字节。由于在SM4密码算法中采用四个S盒进行轮密钥的产生,每个S盒产生密钥的一个字节,所以需重复猜测密钥到计算相关系数的步骤,分别获得第i轮轮密钥的其他三个密钥字节,从而得到第i轮正确的轮密钥rki
对于前四轮,使用轮密钥rki进行第i轮密码运算得到第i轮的轮密钥输出,第i轮的轮密钥输出即第i+1轮的轮密钥输入,根据前面所述获得轮密钥的方法,依次获得前四轮的加密轮密钥(rk0,rk1,rk2,rk3)=(K4,K5,K6,K7),然后根据密钥扩展算法逆运算得到加密密钥,或解密轮密钥(rk0,rk1,rk2,rk3)=(K35,K34,K33,K32),然后根据密钥扩展算法逆运算得到解密密钥,其中,Ki为轮密钥。
对于后四轮,使用轮密钥rki反推进行第i轮密码运算得到第i-1轮的轮密钥输出,第i-1轮的轮密钥输出即第i轮的轮密钥输入,根据前面所述获得轮密钥的方法,依次获得后四轮的加密轮密钥(rk31,rk30,rk29,rk28)=(K35,K34,K33,K32),然后根据密钥扩展算法逆运算得到加密密钥,或解密轮密钥(rk31,rk30,rk29,rk28)=(K4,K5,K6,K7),根据密钥扩展算法逆运算得到解密密钥,其中,Ki为轮秘钥。
如果不能通过相关系数分析计算取得该轮轮密钥,则需选择新的猜测密钥进行新一轮解密。
以下通过一个具体的实施例来说明本方法的实施过程及效果。以对采用SM4密码算法实现加密运算的第32轮进行CPA解密为例,已知该轮的轮密钥为0x DA3248F1。
用70000组随机明文进行加密运算,采集每组明文对应的功耗能量波形形成能量迹。如图4所示,横轴为采样时间,纵轴为功耗能量幅度。设定采样频率,在密码模块的运算过程中,一条能量迹采集40000个时间点。如图5所示,将十条采样时域能量波形进行重合观察,可以发现,由于时钟随机化防护措施的打开,从时域上干扰了将能量迹相同的操作进行对齐,所以CPA时域能量分析方法在具有时钟随机化防护措施的SM4密码算法中难以分析成功。
通过试验分析得知,与SM4的32轮加密运算相关的采样能量消耗在70us~90us之间,所以与SM4的32轮加密运算相对应的时间点约为5000个,故采样时域能量消耗矩阵为Et70000×5000。SM4加密运算的第32轮约在88us~89us之间,所以在分析第32轮轮密钥时,需要将88us~89us的时域能量矩阵Et70000×250经过傅里叶变换求取功率谱密度转换成频域上的能量消耗矩阵Ef70000×250。将一条时域能量迹88us~89us之间的点转换为频域上的能量迹,如图6所示。之后再遍历猜测第32轮轮密钥的第1个字节,猜测范围为k∈{0,1,2,…,255},根据每一个猜测的密钥值计算出对应的假设中间值,从而形成假设中间值矩阵V70000×256。以S盒输入作为前序状态,S盒输出作为后续状态的汉明距离能量模型将假设中间值矩阵V70000×256映射成仿真能量消耗矩阵H70000×256
对仿真能量消耗矩阵H70000×256的每一列hp和实际频域能量消耗矩阵Ef70000×250的每一列Sq'计算相关系数ρp,q,得到相关系数矩阵R256×7000。选择R256×7000中最大值对应的猜测密钥字节作为第32轮轮密钥的第1字节。同理依次分析第32轮轮密钥的其他3个字节,得到第32轮轮密钥rk31
分析结果如表1所示,分别列出了猜测4个轮密钥字节时,前4个最大的相关系数及其对应的猜测密钥字节。对于第32轮,正确的猜测密钥字节对应的相关系数远远大于其他3个错误的猜测密钥字节对应的相关系数。图7是对第32轮S盒汉明距离模型频域CPA分析结果图,选择相关系数中幅值最大点对应的猜测密钥。
表1
在获得第32轮轮密钥后,使用频域CPA分析第31轮轮密钥。已知该轮轮密钥为0x FB97980A。SM4加密运算的第31轮运算约在87.5us~88.5us之间,所以在分析第31轮轮密钥时,需要将87.5us~88.5us的时域能量矩阵Et70000×250经过傅里叶变换并求取功率谱密度转换成频域上的能量消耗矩阵Ef70000×250。之后再遍历猜测第31轮轮密钥的第1个字节,根据每一个猜测的密钥值计算出对应的中间值,从而形成中间值矩阵V70000×256。以S盒输入作为前序状态,S盒输出作为后续状态的汉明距离能量模型将中间值矩阵V70000×256映射成仿真能量消耗矩阵H70000×256
对仿真能量消耗矩阵H70000×256的每一列hp和实际频域能量消耗矩阵Ef70000×250的每一列Sq'计算相关系数ρp,q,得到相关系数矩阵R256×7000。选择R256×7000中最大值对应的猜测密钥字节作为第31轮轮密钥的第1字节。同理依次分析第31轮轮密钥的其他3个字节,得到第31轮轮密钥rk30
表2
分析结果如表2所示,分别列出了猜测4个轮密钥字节时,前4个最大的相关系数及其对应的猜测密钥字节。对于第31轮,正确的猜测密钥字节对应的相关系数远远大于其他3个错误的猜测密钥字节对应的相关系数。图8是对第31轮S盒汉明距离模型频域CPA分析结果图。
在获得第31轮轮密钥后,使用频域CPA分析第30轮轮密钥。已知该轮轮密钥为0x C242F8FE。SM4加密运算的第30轮运算约在87us~88us之间,所以在分析第30轮轮密钥时,需要将87us~88us的时域能量矩阵Et70000×250经过傅里叶变换求取功率谱密度转换成频域上的能量消耗矩阵Ef70000×250。之后再遍历猜测第30轮轮密钥的第1个字节,根据每一个猜测的密钥值计算出对应的中间值,从而形成中间值矩阵V70000×256。以S盒输入作为前序状态,S盒输出作为后续状态的汉明距离能量模型将中间值矩阵V70000×256映射成仿真能量消耗矩阵H70000×256
表3
对仿真能量消耗矩阵H70000×256的每一列hp和实际频域能量消耗矩阵Ef70000×250的每一列Sq'计算相关系数ρp,q,得到相关系数矩阵R256×7000。选择R256×7000中最大值对应的猜测密钥字节作为第30轮轮密钥的第1字节。同理依次分析第30轮轮密钥的其他3个字节,得到第30轮轮密钥rk29
分析结果如表3所示,分别列出了猜测4个轮密钥字节时,前4个最大的相关系数及其对应的猜测密钥字节。对于第30轮,正确的猜测密钥字节对应的相关系数远远大于其他3个错误的猜测密钥字节对应的相关系数。图9是对第30轮S盒汉明距离模型频域CPA分析结果图。
在已经获得第30轮轮密钥后,使用频域CPA分析第29轮轮密钥。已知该轮轮密钥为0x FC555991。SM4加密运算的第29轮运算约在86us~87us之间,所以在分析第29轮轮密钥时,需要将86us~87us的时域能量矩阵Et70000×250经过傅里叶变换求取功率谱密度的方式转换成频域上的能量消耗矩阵Ef70000×250。之后再遍历猜测第29轮轮密钥的第1个字节,根据每一个猜测的密钥值计算出对应的中间值,从而形成中间值矩阵V70000×256。以S盒输入作为前序状态,S盒输出作为后续状态的汉明距离能量模型将中间值矩阵V70000×256映射成仿真能量消耗矩阵V70000×256
表4
对仿真能量消耗矩阵H70000×256的每一列hp和实际频域能量消耗矩阵Ef70000×250的每一列Sq'计算相关系数ρp,q,得到相关系数矩阵256×7000。选择R256×7000中最大值对应的猜测密钥字节作为第29轮轮密钥的第1字节。同理依次分析第29轮轮密钥的其他3个字节,得到第29轮轮密钥rk28
分析结果如表4所示,分别列出了猜测4个轮密钥字节时,前4个最大的相关系数及其对应的猜测密钥字节。对于第29轮,正确的猜测密钥字节对应的相关系数远远大于其他3个错误的猜测密钥字节对应的相关系数。图10是对第29轮S盒汉明距离模型频域CPA分析结果图。
依次获得后4轮的加密轮密钥(rk31,rk30,rk29,rk28)=(K35,K34,K33,K32)后,根据密钥扩展算法逆运算得到128比特SM4加密密钥0x E5 83 A2 F9 C6 35 8D 61 AC 1E 3922 D2 F6 8A 15。
对于开启时钟随机化防护措施的SM4算法密码实现模块,按照图11时域CPA分析方法,以S盒为攻击对象以及以S盒输入作为前序状态,S盒输出作为后续状态的汉明距离能量模型,对加密运算第32轮进行侧信道能量时域分析解密。已知该轮轮密钥为0x DA3248F1。
使用进行频域CPA分析时采集的70000组随机明文进行加密的能量迹,即时域能量消耗矩阵为Et70000×5000。SM4加密运算的第32轮约在88us~89us之间,所以对88us~89us之间的区域进行侧信道能量分析解密。
遍历猜测第32轮轮密钥的第1个字节,根据每一个猜测的密钥值计算出对应的假设中间值,从而形成假设中间值矩阵V70000×256。以S盒输入作为前序状态,S盒输出作为后续状态的汉明距离能量模型将假设中间值矩阵V70000×256映射成仿真能量消耗矩阵H70000×256
对仿真能量消耗矩阵H70000×256的每一列hp和实际时域能量消耗矩阵Ef70000×250的每一列Sq'计算相关系数ρp,q,得到相关系数矩阵R256×7000。选择R256×7000中最大值对应的猜测密钥字节作为第32轮轮密钥的第1字节。同理依次分析第32轮轮密钥的其他3个字节,得到第32轮轮密钥rk31
分析结果如表5所示,分别列出了猜测4个轮密钥字节时,前4个最大的相关系数及其对应的猜测密钥字节。从第32轮轮密钥的时域CPA分析结果来看,相关系数最大的值与其他3个相关系数的值的差异并不显著,所以时域CPA对有时钟随机化防护措施的SM4算法分析失效。图12是对第32轮S盒汉明距离模型时域CPA分析结果图,从图中可以看出CPA时域能量波形图不能对齐。
表5
所以对有时钟随机化防护措施的SM4密码算法进行侧信道能量分析解密,频域CPA比时域CPA更为有效。
本领域技术人员应该明白,本发明所述的方法和系统并不限于具体实施方式中所述的实施例,上面的具体描述只是为了解释本发明的目的,并非用于限制本发明。本领域技术人员根据本发明的技术方案得出其他的实施方式,同样属于本发明的技术创新范围,本发明的保护范围由权利要求及其等同物限定。
虽然本发明所揭露的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

Claims (9)

1.一种基于侧信道相关能量分析的频域分析方法,包括以下步骤:
选择频域分析方法执行过程中的具有函数关系的关键点;
采集密码模块运算过程中关键点的能量消耗信息,得到关键点的实际时域能量迹;
将采集到的实际时域能量迹转换为实际频域能量迹,根据实际频域能量迹建立实际频域能量消耗矩阵;
基于关键点的函数关系,通过猜测密钥集合中的每一个值来计算对应的假设中间值,从而得到假设中间值矩阵;
将假设中间值矩阵通过汉明距离能量模型映射为仿真能量消耗矩阵;
计算仿真能量消耗矩阵与实际频域能量消耗矩阵的相关系数,基于相关系数得到加密/解密的密钥。
2.如权利要求1所述的方法,其特征在于,将实际时域能量迹经傅里叶变换转换成实际频域能量迹,对有时钟随机化防护措施的SM4密码算法进行频域分析。
3.如权利要求1所述的方法,其特征在于,所述关键点为S盒的输出。
4.如权利要求3所述的方法,其特征在于,关键点的函数关系为:
Sout=f(d,k)
其中,d是已知的随机的明文/密文;
k是输入单个S盒的8比特密钥,k∈{0,1,2,…,255}。
5.如权利要求1所述的方法,其特征在于,获得实际时域能量迹的步骤包括:
选择D组明文/密文进行加密/解密运算,在密码模块运算的同时采集关键点的能量消耗信息;
在每一次密码模块运行期间记录一条能量迹,记作ti=(ti,1,ti,2,…,ti,T),ti为第i组明文/密文的能量迹,T为采样的时间点数,对于D组明文/密文数据可以记录D条能量迹,这些能量迹构成D×T的实际时域能量消耗矩阵EtD×T
6.如权利要求5所述的方法,其特征在于,将实际时域能量迹转换为实际频域能量迹的步骤包括:
在一条能量迹ti=(ti,1,ti,2,…,ti,T)上选取在密码模块运算过程中包含关键点的的能量消耗区域t'=(ti,m,ti,m+1,…,ti,m+N),m为采样时间点,N为采样点的个数;
对t'按以下公式做傅里叶变换:
Si'=FFT(t')
得到实际时域能量迹在频域的分布;
对Si'按以下公式求功率谱密度:
P=lim(|Si'|2/N)
得到实际频域能量迹的功率谱密度在频域的分布;
对D条能量迹求取功率谱密度构成实际频域能量消耗矩阵EfD×T,将实际时域能量消耗矩阵EtD×T变成实际频域能量消耗EfD×T
7.如权利要求6所述的方法,其特征在于,获得假设中间值矩阵的步骤包括:
遍历猜测每一个S盒的密钥k的可能取值情况,k∈{0,1,2,…,255};
根据猜测的S盒密钥k和已知的S盒输入的D组明文/密文,按以下公式来计算假设中间值:
Souti,j=f(di,kj)
通过计算可以得到一个大小为D×M的中间值矩阵VD×M,其中M=256,di为D组明文/密文中的第i组明文/密文,kj为猜测的密钥的可能取值,j∈{0,1,2,…,255}。
8.如权利要求7所述的方法,其特征在于,选用汉明距离能量模型作为能量映射模型,该模型前序状态为S盒输入,后续状态为S盒输出,即:
h i , j = HD ( Sin i , j , Sout i , j ) = HW ( Sin i , j &CirclePlus; Sout i , j )
hi,j构建将假设中间值矩阵VD×M映射为D×M的仿真能量消耗矩阵HD×M,Sini,j为S盒输入,Souti,j为S盒输出。
9.如权利要求8所述的方法,其特征在于,基于相关系数获得密钥的步骤包括:
对仿真能量消耗矩阵HD×M的每一列hp和实际频域能量消耗矩阵EfD×T的每一列Sq'计算相关系数ρp,q,得到一个大小为M×N的相关系数矩阵RM×N
对ρp,q的值进行判断,ρp,q的值越大,则列hp和列Sq'的匹配程度越高,寻找相关系数矩阵RM×N中的最大值所在的行p就是用于该S盒的正确的密钥值rki,j,其中rki,j为正确的第i轮轮密钥第j个字节,由于在SM4密码算法中采用四个S盒进行轮密钥的产生,每个S盒产生密钥的一个字节,所以需重复猜测密钥到计算相关系数的步骤,分别获得第i轮轮密钥的其他三个密钥字节,从而得到第i轮正确的轮密钥rki
对于前四轮,使用轮密钥rki进行第i轮密码运算得到第i轮的轮密钥输出,第i轮的轮密钥输出即第i+1轮的轮密钥输入,根据前面所述获得轮密钥的方法,依次获得前四轮的加密轮密钥(rk0,rk1,rk2,rk3)=(K4,K5,K6,K7),然后根据密钥扩展算法逆运算得到加密密钥,或解密轮密钥(rk0,rk1,rk2,rk3)=(K35,K34,K33,K32),然后根据密钥扩展算法逆运算得到解密密钥,其中,Ki为轮密钥;
对于后四轮,使用轮密钥rki反推进行第i轮密码运算得到第i-1轮的轮密钥输出,第i-1轮的轮密钥输出即第i轮的轮密钥输入,根据前面所述获得轮密钥的方法,依次获得后四轮的加密轮密钥(rk31,rk30,rk29,rk28)=(K35,K34,K33,K32),然后根据密钥扩展算法逆运算得到加密密钥,或解密轮密钥(rk31,rk30,rk29,rk28)=(K4,K5,K6,K7),根据密钥扩展算法逆运算得到解密密钥,其中,Ki为轮秘钥。
CN201410184491.XA 2014-05-05 2014-05-05 基于侧信道相关能量分析的频域分析方法 Active CN104052590B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410184491.XA CN104052590B (zh) 2014-05-05 2014-05-05 基于侧信道相关能量分析的频域分析方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410184491.XA CN104052590B (zh) 2014-05-05 2014-05-05 基于侧信道相关能量分析的频域分析方法

Publications (2)

Publication Number Publication Date
CN104052590A true CN104052590A (zh) 2014-09-17
CN104052590B CN104052590B (zh) 2017-06-16

Family

ID=51504977

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410184491.XA Active CN104052590B (zh) 2014-05-05 2014-05-05 基于侧信道相关能量分析的频域分析方法

Country Status (1)

Country Link
CN (1) CN104052590B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105553638A (zh) * 2015-12-07 2016-05-04 成都芯安尤里卡信息科技有限公司 针对sm4一阶掩码算法的二阶频域能量分析攻击
CN108242993A (zh) * 2016-12-26 2018-07-03 航天信息股份有限公司 一种侧信道信号和参考信号的对齐方法及装置
US10015006B2 (en) 2014-11-05 2018-07-03 Georgia Tech Research Corporation Systems and methods for measuring side-channel signals for instruction-level events
CN109150506A (zh) * 2017-06-19 2019-01-04 深圳职业技术学院 一种彩虹签名的侧信道分析方法及装置
CN109214176A (zh) * 2018-09-06 2019-01-15 成都三零嘉微电子有限公司 一种基于短时域分析的侧信道信号预处理方法
CN109257160A (zh) * 2018-12-05 2019-01-22 电子科技大学 一种基于决策树的侧信道模板攻击方法
CN109428707A (zh) * 2017-08-21 2019-03-05 埃沙尔公司 测试电路对侧信道分析的抵抗的方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103138917A (zh) * 2013-01-25 2013-06-05 国家密码管理局商用密码检测中心 以s盒输入为基础的汉明距离模型在sm4密码算法侧信道能量分析的应用
CN103166752A (zh) * 2013-01-25 2013-06-19 国家密码管理局商用密码检测中心 选择轮函数为攻击对象进行sm4密码算法侧信道能量分析的应用

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103138917A (zh) * 2013-01-25 2013-06-05 国家密码管理局商用密码检测中心 以s盒输入为基础的汉明距离模型在sm4密码算法侧信道能量分析的应用
CN103166752A (zh) * 2013-01-25 2013-06-19 国家密码管理局商用密码检测中心 选择轮函数为攻击对象进行sm4密码算法侧信道能量分析的应用

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
O. SCHIMMEL, P. DUPLYS, E. B¨OHL, J. HAYEK, W. ROSENSTIEL: "Correlation power analysis in frequency domain", 《COSADE 2010 - WORKSHOP ON CONSTRUCTIVE SIDE-CHANNEL ANALYSIS AND SECURE DESIGN》 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10015006B2 (en) 2014-11-05 2018-07-03 Georgia Tech Research Corporation Systems and methods for measuring side-channel signals for instruction-level events
US10541803B2 (en) 2014-11-05 2020-01-21 Georgia Tech Research Corporation Systems and methods for measuring side-channel signals for instruction-level events
CN105553638A (zh) * 2015-12-07 2016-05-04 成都芯安尤里卡信息科技有限公司 针对sm4一阶掩码算法的二阶频域能量分析攻击
CN108242993A (zh) * 2016-12-26 2018-07-03 航天信息股份有限公司 一种侧信道信号和参考信号的对齐方法及装置
CN109150506A (zh) * 2017-06-19 2019-01-04 深圳职业技术学院 一种彩虹签名的侧信道分析方法及装置
CN109428707A (zh) * 2017-08-21 2019-03-05 埃沙尔公司 测试电路对侧信道分析的抵抗的方法
CN109214176A (zh) * 2018-09-06 2019-01-15 成都三零嘉微电子有限公司 一种基于短时域分析的侧信道信号预处理方法
CN109257160A (zh) * 2018-12-05 2019-01-22 电子科技大学 一种基于决策树的侧信道模板攻击方法
CN109257160B (zh) * 2018-12-05 2023-07-04 电子科技大学 一种基于决策树的侧信道模板攻击方法

Also Published As

Publication number Publication date
CN104052590B (zh) 2017-06-16

Similar Documents

Publication Publication Date Title
CN104052590A (zh) 基于侧信道相关能量分析的频域分析方法
CN103166752B (zh) 选择轮函数为攻击对象进行sm4密码算法侧信道能量分析的应用
CN103138917B (zh) 以s盒输入为基础的汉明距离模型进行sm4密码算法侧信道能量分析方法
CN103227717A (zh) 选择轮密钥异或输入进行sm4密码算法侧信道能量分析的应用
CN103825722B (zh) 一种sm4密码算法的二阶侧信道能量分析方法
CN104202145A (zh) 针对sm4密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法
CN103647637A (zh) 一种对简单掩码的sm4算法进行二阶侧信道能量分析方法
CN105490802A (zh) 基于gpu的改进sm4并行加解密通信方法
CN105553638A (zh) 针对sm4一阶掩码算法的二阶频域能量分析攻击
CN104486073A (zh) 一种字符型数据的加密、解密方法
JP2001324925A5 (zh)
CN102833514A (zh) 测量矩阵受控的图像压缩感知与图像加密方法
CN103679008A (zh) 一种高效的安全芯片功耗攻击测试方法
CN104065473A (zh) Sm4分组密码算法s盒的紧凑实现方法
CN103916248A (zh) 一种全同态加密公钥空间压缩方法
CN103916236A (zh) 面向aes算法的抗功耗攻击方法及电路实现
CN109218008A (zh) 一种针对sm4密钥扩展算法的模板攻击方法
CN105117653B (zh) 一种近红外光谱数据加密方法
CN101582170A (zh) 一种基于椭圆曲线密码体制的遥感图像加密方法
CN102158338B (zh) 一种针对Twofish加密芯片的DFA分析方法及系统
JP2005134478A (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
CN102938698A (zh) 基于压缩感知理论的安全数据传输方法
CN104717060A (zh) 一种攻击椭圆曲线加密算法的方法和攻击设备
Liu et al. Image encryption algorithm based on chaotic modulation of arnold dual scrambling and DNA computing
CN104735652A (zh) 一种适用于无线传感器网络的混沌加密方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: DATANG MICROELECTRONIC TECHN CO., LTD. BUSINESS PA

Free format text: FORMER OWNER: DATANG MICROELECTRONIC TECHN CO., LTD.

Effective date: 20150421

C41 Transfer of patent application or patent right or utility model
C53 Correction of patent of invention or patent application
CB03 Change of inventor or designer information

Inventor after: Wu Liji

Inventor after: Zhang Zhenbin

Inventor after: Dong Gang

Inventor after: Wang An

Inventor after: Li Dawei

Inventor after: Luo Peng

Inventor before: Wu Liji

Inventor before: Zhang Zhenbin

Inventor before: Dong Gang

Inventor before: Wang An

COR Change of bibliographic data

Free format text: CORRECT: INVENTOR; FROM: WU LIJI ZHANG ZHENBIN DONG GANG WANG AN TO: WU LIJI ZHANG ZHENBIN DONG GANG WANG AN LI DAWEI LUO PENG

TA01 Transfer of patent application right

Effective date of registration: 20150421

Address after: 100084 Beijing, Haidian District, 100084 box office box office, Tsinghua University,

Applicant after: Tsinghua University

Applicant after: Datang Microelectronics Technology Co., Ltd.

Applicant after: State Cryptography Administration Commercial Code Testing Center

Address before: 100084 Beijing, Haidian District, 100084 box office box office, Tsinghua University,

Applicant before: Tsinghua University

Applicant before: Datang Microelectronics Technology Co., Ltd.

GR01 Patent grant