基于二次筛选的故障关联性攻击方法

未命名 09-10 阅读:91 评论:0


1.本发明涉及故障攻击技术领域,尤其涉及基于二次筛选的故障关联性攻击方法。


背景技术:

2.侧信道攻击在评估密码设备的性能方面起着重要作用。经典的侧信道方法有很多,如攻击功耗、运行时间、电磁泄漏等等。功耗分析是侧信道攻击的一个具有代表性的种类,包括简单功耗分析(spa)、相关功耗分析(cpa)、互信息分析(dpa)等。brier等人最早提出cpa,利用功耗模型计算功耗样本与假设中间值之间的相关系数,以识别出正确的密钥。annelie等人表明,当泄漏模型在仿射变换和高斯噪声假设下已知时,cpa几乎是最优的。
3.实际应用中,在高频高噪环境下cpa往往需要更多的功耗曲线才能恢复密钥,这意味着需要更多的计算时间和更大的计算量。另外,当候选密钥空间过大而无法遍历搜索时,往往使用cpa进行密钥部分字节的恢复。然而,在局部泄漏模型下,cpa的相关系数显著降低,对功耗曲线数量的需求也更大。为减少攻击所需的功耗曲线数量,密钥穷举和排名评估算法被提出,用于估计正确密钥的排名。然而,计算复杂度和内存需求过大的问题仍未得到较好解决。
4.近年来,关于cpa技术计算效率的研究受到了广泛关注。现有技术中提出了一种cpa的增强技术,以汉明距离对曲线进行分类,将dpa、多比特dpa和cpa相结合。yongdae等人提出了一种预处理技术,从功耗曲线集合中筛选出相关因素更高的子集再进行cpa。还存在以非自适应和自适应两种方式选择明文,对标准cpa进行了原始优化,减少了恢复密钥所需的功耗曲线数量的技术。上述方法均提高了cpa的计算效率,但在文中并未对计算复杂度展开具体分析。
5.现有技术提出了一种方法,以明文值建立向量模板索引,然后与功耗向量模型相关联。该方法与原始cpa计算相比,计算速度提高了200倍,并且在曲线数量较多时特别有效。寻找特征点(poi)以减少cpa的计算时间。上述方法均提高了cpa的计算速度和时间,但需要大量的功耗曲线作数据支撑。为此,我们提出一种基于二次筛选的故障关联性攻击方法。


技术实现要素:

6.基于背景技术存在的技术问题,本发明提出了一种基于二次筛选的故障关联性攻击方法,将cpa运用到故障攻击中,减少了假设中间值计算所需的故障概率曲线数量,解决了现有技术需要大量的功耗曲线作数据支撑的问题。
7.本发明提供如下技术方案:基于二次筛选的故障关联性攻击方法,包括如下步骤:
8.s1、选择所执行算法的某个中间值;
9.s2、选择明文,在加密过程中注入大量电压毛刺,建立故障概率曲线,对每个可能的密钥假设值,执行步骤s3-s5;
10.s3、给定数据向量,计算对应的假设中间值;
11.s4、将中间值映射为故障概率值;
12.s5、比较假设故障概率值和故障概率曲线,找出相关系数最大值对应的密钥假设值,即为正确的密钥。
13.优选的,所述步骤s1中选择aes-128算法中第1轮加密的第1个s盒的输出值作为中间值。
14.优选的,所述步骤s2中,mi表示第i次加密或解密操作时对应的数据值,对每个mi进行大量故障注入攻击,建立相应的故障概率曲线,记作pi′
=(p
i,1
,p
i,2
,

,p
i,n
),其中n表示该故障概率曲线的长度,对m个数据中的每一个,攻击者分别建立一条故障概率曲线,这些故障概率曲线记为一个m
×
n的矩阵p;
15.对每个可能的密钥假设值ki(1≤i≤k),执行步骤s3-s5。
16.优选的,所述步骤s3中,给定数据向量m=(m1,m2,

,mm),计算对应的假设中间值v
i,j
=f(mi,kj)i=1,2,

,m j=1,2,

,k。
17.优选的,所述步骤s4中,使用fphw模型,将假设中间值vi=(v
1,i
,v
2,i
,

,v
m,i
)映射为假设故障概率值hi=(h
1,i
,h
2,i
,

,h
m,i
),剔除hi中的相同值,得到hi'=(h
1,i
',h
2,i
',

,h
t,i
')。
18.优选的,所述步骤s5中,选择hi'对应的故障概率曲线集合pi'=(p1',p2',

,p
t
'),其中pi'=(p
i,1
',p
i,2
',

,p
i,r
')是经过特征点选择后的故障概率曲线,比较hi'和矩阵pi'的每一列p',得到ci'=(c
i,1
',c
i,2
',

,c
i,r
'),ci'的最大值记为ci';
19.对所有ci',其最大值记为c',c'=max{c1',c2',

,ck'},c'对应的密钥ki'即为正确的密钥。
20.优选的,所述步骤s1中建立故障概率曲线具体为:在第1轮加密第1个s盒操作前引入一段延时,在延时区间进行毛刺注入,对攻击时间窗口进行大量故障注入攻击,统计目标设备的响应情况,绘制故障概率曲线。
21.优选的,所述步骤s1中,在s盒操作的指令前添加触发信号一;在触发信号一前数微秒内添加触发信号二,在二者之间注入毛刺;
22.在上述攻击时间窗口内,从0v到毛刺电平极值的电压范围,以及从数百纳秒到数千纳秒的故障长度,注入大量故障;
23.以步进的方式选取合适的故障注入参数区间,使得时间窗口内每个切片的响应结果中损坏的占比都近似50%。
24.优选的,所述步骤s2中,对故障概率曲线进行特征点的选取,找出与攻击点相关性最强的采样点开展后续的攻击,首先基于输出数据的汉明重量对攻击曲线进行分类,然后,采用差分和方法进行特征点的选取。
25.本发明提供了基于二次筛选的故障关联性攻击方法,利用密码设备在故障注入攻击下故障概率的数据依赖性,建立了操作过程中的故障概率曲线。根据中间值的汉明重量对曲线进行分类并筛选,减少了假设中间值计算所需的故障概率曲线数量。同时,在故障概率曲线上寻找特征点(poi),大大减少样本数量及迭代次数。本发明的2f-fpfca无需访问密文,以较小的故障概率曲线量、较低的计算复杂度即可恢复密钥,并且受噪声影响很小,提高了cpa的攻击效率。
26.最后,基于mcu的aes-128算法实现开展了故障注入攻击,成功地恢复了正确的密
钥并对该方法的效果进行了评估。利用10条故障概率曲线即可成功进行密钥恢复,并且将计算复杂度减少了104倍。
附图说明
27.图1为本发明实施例攻击流程图;
28.图2为本发明实施例触发信号下毛刺波形图;
29.图3为本发明实施例故障概率曲线图;
30.图4为本发明实施例电压毛刺故障注入实验原理图;
31.图5为本发明实施例sod法选取特征点示意图;
32.图6为本发明实施例选取特征点后的故障概率曲线图;
33.图7为本发明实施例候选密钥相关系数图;
34.图8为本发明实施例成功率与故障概率曲线数量的关系图。
具体实施方式
35.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
36.如图1所示,本发明提供一种技术方案:基于二次筛选的故障关联性攻击方法,包括如下步骤:
37.s1、选择所执行算法的某个中间值。选择aes-128算法中第1轮加密的第1个s盒的输出值作为中间值。
38.s2、选择明文,在加密过程中注入大量电压毛刺,建立故障概率曲线。mi表示第i次加密或解密操作时对应的数据值。对每个mi进行大量故障注入攻击,建立相应的故障概率曲线,记作pi′
=(p
i,1
,p
i,2
,

,p
i,n
),其中n表示该故障概率曲线的长度。对m个数据中的每一个,攻击者分别建立一条故障概率曲线。这些故障概率曲线可记为一个m
×
n的矩阵p。由于在选取采样点时都以触发信号为起点进行了对齐,无需再开展对齐工作。这样,p中每一列pj的故障概率是在同一个时刻的,即由同一个操作引起的。
39.对每个可能的密钥假设值ki(1≤i≤k),执行步骤s3-s5。
40.s3、计算假设中间值。给定数据向量m=(m1,m2,

,mm),计算对应的假设中间值v
i,j
=f(mi,kj)i=1,2,

,m j=1,2,

,k。
41.s4、将中间值映射为故障概率值。使用fphw模型,将假设中间值vi=(v
1,i
,v
2,i
,

,v
m,i
)映射为假设故障概率值hi=(h
1,i
,h
2,i
,

,h
m,i
)。剔除hi中的相同值,得到hi'=(h
1,i
',h
2,i
',

,h
t,i
')。
42.s5、比较假设故障概率值和故障概率曲线。选择hi'对应的故障概率曲线集合pi'=(p1',p2',

,p
t
'),其中pi'=(p
i,1
',p
i,2
',

,p
i,r
')是经过特征点选择后的故障概率曲线。比较hi'和矩阵pi'的每一列p',得到ci'=(c
i,1
',c
i,2
',

,c
i,r
')。ci'的最大值记为ci'。
43.对所有ci',其最大值记为c',c'=max{c1',c2',

,ck'}。
44.c'对应的密钥ki'即为正确的密钥。
45.故障概率曲线建立的具体过程如下:
46.经调试分析可知,毛刺的作用时间较输入时刻稍有延迟。为确保毛刺能够影响到第1轮加密第1个s盒操作,在该操作前引入一段延时,在延时区间进行毛刺注入。
47.如图2所示,首先,在s盒操作的指令前添加触发信号,该触发信号称之为“小触发”信号。在小触发前数微秒内添加1个触发信号,称之为“大触发”信号。在二者之间注入毛刺,保证毛刺能够对该s盒操作产生影响。在两个触发信号间注入大量电压毛刺。
48.在上述攻击时间窗口内,选择从0v到毛刺电平极值(-6v)的电压范围,以及从数百纳秒到数千纳秒的故障长度,注入大量故障。以步进的方式选取合适的故障注入参数区间,使得时间窗口内每个切片的响应结果中损坏的占比都近似50%。
49.使用上述参数,对攻击时间窗口进行大量故障注入攻击,统计目标设备的响应情况,绘制故障概率曲线。如图3所示。
50.特征点选择的具体过程如下:
51.为了减少计算复杂度,对故障概率曲线进行poi的选取,找出与攻击点相关性最强的采样点开展后续的攻击。首先基于输出数据的hw对攻击曲线进行分类。然后,采用差分和方法(sod)进行poi的选取。
52.对于汉明重量i(i=0,1,

,8)的故障概率曲线traci(i=0,

,9),计算
[0053][0054]
随机明文的选取的具体过程如下:
[0055]
单字节数据的hw服从二项分布,表1给出了均匀分布的8比特数据的hw的概率分布。可以看出,s盒输出数据的hw分布是不均匀的,hw为0和8的数据出现的概率最小,hw为4的数据出现的概率最大。因此,随机选择的明文中必然存在大量重复。
[0056]
表1单字节数据的hw分布
[0057][0058]
由实验可知,相同汉明重量的s盒输出对应的故障概率曲线差异极小几乎完全一致,如表2所示。
[0059]
表2 hw相同数据的故障概率(a)hw=3
[0060][0061]
(b)hw=4
[0062][0063]
若选择s盒输出相同重量的明文,则其经过hw模型映射的假设中间值列向量相同,对应的故障概率曲线也几乎完全一致,则无法判断正确密钥。因此,选择s盒输出hw不同的明文,可以大大减少计算冗余。
[0064]
攻击测试及性能分析
[0065]
如图4所示,实验平台主要包括有攻击目标、故障注入控制器、示波器监控模块和数据采集处理模块。目标设备为dmcu-f405密码靶,其mcu为stm32f405rgt6。
[0066]
攻击者通过attacker软件不断发送明文,密码靶接收到明文后进行加密并将密文发送到pc端存储。故障注入控制器为mcu提供脉冲时延、毛刺电平、毛刺长度以及基线电平参数,在给定的脉冲时延下可产生任意长度的毛刺。
[0067]
首先,mcu开发板在加解密运行时给出触发信号,由故障注入控制器处理后产生毛刺信号。毛刺信号经过电流放大模块,转变为故障攻击所需的电压毛刺。然后,对mcu密码靶注入电压毛刺进行攻击。最后,攻击者统计分析密码靶的响应情况,建立故障概率曲线。
[0068]
经调试,注入毛刺的有效区间为2800~3700ns,即攻击的时间窗口确定。选择毛刺宽度为10ns至40ns,电压为-6v至-2v的故障注入参数开展攻击。
[0069]
使用上述参数,对时延为2800~3700ns的窗口进行大量故障注入攻击,统计目标设备的响应情况,绘制故障概率曲线。
[0070]
1)特征点的选择
[0071]
各采样点的sod值如图5所示。sod值越大,该采样点与汉明重量的相关性越大,故选取采样点2900、2904、2908、2912、2916ns为poi。
[0072]
根据上述5个poi对曲线分类,如图6所示,可以看出各类曲线间区分度较高。
[0073]
2)随机明文的选择
[0074]
仍选择第1轮加密第1个s盒的输出值为中间值,在该攻击点附近注入大量电压毛刺。对每个可能的密钥假设值ki(1≤i≤k),找出其最大的ci'。
[0075]
下面以k4=0x03为例,说明攻击过程。其假设故障概率值h4=(5,5,5,4,3,5,3,3),则h4'=(5,4,3)。筛选后的故障概率曲线集合为
[0076][0077]
3)攻击结果
[0078]
计算得到c3'=(-0.9973,-0.8660,-0.09443,-0.9997,-0.8930),c3'=-0.9997。
[0079]
对所有ki(1≤i≤256),其ci'如下所示。图7描述了各候选密钥的相关系数,可以看出密钥0x03的相关系数最接近-1,则密钥恢复正确。
[0080]
4)性能分析
[0081]
在2f-fpfca方法下,密码恢复的正确率与故障概率曲线数量的关系如图8所示。当故障概率曲线数量在10条及以上时,攻击者有100%的概率恢复出正确的密钥。
[0082]
随机选择10条明文进行密钥恢复。在每个密钥假设下,通过选择明文,实验中平均仅需要4.45条曲线即可完成密钥恢复。
[0083]
下面讨论该算法的计算复杂度λ,计算公式如下
[0084]
λ=16
×
256
×m×n[0085]
将m=4.45,n=5代入上式,计算得该算法的计算复杂度为9.11
×
104。
[0086]
近年来,一些针对aes-128算法的cpa及其改进方法不断被提出,例如有偏功耗曲线的cpa、基于ghm多小波算法的cpa、基于小波包的cpa、多重筛选的cpa、基于人工智能的分块cpa。
[0087]
下面将上述cpa攻击方法与本发明提2f-fpfca攻击方法进行比较,见表3。本发明提出两个标准以进行效果评估:恢复完整密钥所需的曲线数量和计算复杂度。
[0088]
表3cpa攻击方案对比(a)攻击成功所需曲线数量
[0089][0090]
(b)计算复杂度
[0091][0092]
由此可见,本发明基于mcu的aes-128算法开展了实验,在使用10条故障概率曲线的情况下成功地实现了密钥恢复。
[0093]
相比于现有的cpa攻击方法,本发明提出的方法主要有以下优点:
[0094]
1、受噪声影响小。选用fphw模型,无需收集密文,只关注攻击的响应情况,几乎不受噪声影响。
[0095]
2、正确密钥特征明显。正确密钥对应的实际故障概率与基于fphw模型的故障概率假设值相关系数高达-1,远远高于其他候选密钥。
[0096]
3、计算复杂度低。通过选择s盒输出hw不同的明文、特征点减少曲线及采样点数量,大大减少了计算复杂度,提高了攻击效率。
[0097]
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。

技术特征:
1.基于二次筛选的故障关联性攻击方法,其特征在于:包括如下步骤:s1、选择所执行算法的某个中间值;s2、选择明文,在加密过程中注入大量电压毛刺,建立故障概率曲线,对每个可能的密钥假设值,执行步骤s3-s5;s3、给定数据向量,计算对应的假设中间值;s4、将中间值映射为故障概率值;s5、比较假设故障概率值和故障概率曲线,找出相关系数最大值对应的密钥假设值,即为正确的密钥。2.根据权利要求1所述的基于二次筛选的故障关联性攻击方法,其特征在于:所述步骤s1中选择aes-128算法中第1轮加密的第1个s盒的输出值作为中间值。3.根据权利要求1所述的基于二次筛选的故障关联性攻击方法,其特征在于:所述步骤s2中,m
i
表示第i次加密或解密操作时对应的数据值,对每个m
i
进行大量故障注入攻击,建立相应的故障概率曲线,记作p
i

=(p
i,1
,p
i,2
,

,p
i,n
),其中n表示该故障概率曲线的长度,对m个数据中的每一个,攻击者分别建立一条故障概率曲线,这些故障概率曲线记为一个m
×
n的矩阵p;对每个可能的密钥假设值k
i
(1≤i≤k),执行步骤s3-s5。4.根据权利要求1所述的基于二次筛选的故障关联性攻击方法,其特征在于:所述步骤s3中,给定数据向量m=(m1,m2,

,m
m
),计算对应的假设中间值v
i,j
=f(m
i
,k
j
)i=1,2,

,mj=1,2,

,k。5.根据权利要求1所述的基于二次筛选的故障关联性攻击方法,其特征在于:所述步骤s4中,使用fphw模型,将假设中间值v
i
=(v
1,i
,v
2,i
,

,v
m,i
)映射为假设故障概率值h
i
=(h
1,i
,h
2,i
,

,h
m,i
),剔除h
i
中的相同值,得到h
i
'=(h
1,i
',h
2,i
',

,h
t,i
')。6.根据权利要求5所述的基于二次筛选的故障关联性攻击方法,其特征在于:所述步骤s5中,选择h
i
'对应的故障概率曲线集合p
i
'=(p1',p2',

,p
t
'),其中p
i
'=(p
i,1
',p
i,2
',

,p
i,r
')是经过特征点选择后的故障概率曲线,比较h
i
'和矩阵p
i
'的每一列p',得到c
i
'=(c
i,1
',c
i,2
',

,c
i,r
'),c
i
'的最大值记为c
i
';对所有c
i
',其最大值记为c',c'=max{c1',c2',

,c
k
'},c'对应的密钥k
i
'即为正确的密钥。7.根据权利要求1所述的基于二次筛选的故障关联性攻击方法,其特征在于:所述步骤s1中建立故障概率曲线具体为:在第1轮加密第1个s盒操作前引入一段延时,在延时区间进行毛刺注入,对攻击时间窗口进行大量故障注入攻击,统计目标设备的响应情况,绘制故障概率曲线。8.根据权利要求7所述的基于二次筛选的故障关联性攻击方法,其特征在于:所述步骤s1中,在s盒操作的指令前添加触发信号一;在触发信号一前数微秒内添加触发信号二,在二者之间注入毛刺;在上述攻击时间窗口内,从0v到毛刺电平极值的电压范围,以及从数百纳秒到数千纳秒的故障长度,注入大量故障;以步进的方式选取合适的故障注入参数区间,使得时间窗口内每个切片的响应结果中损坏的占比都近似50%。
9.根据权利要求1所述的基于二次筛选的故障关联性攻击方法,其特征在于:所述步骤s2中,对故障概率曲线进行特征点的选取,找出与攻击点相关性最强的采样点开展后续的攻击,首先基于输出数据的汉明重量对攻击曲线进行分类,然后,采用差分和方法进行特征点的选取。

技术总结
本发明涉及故障攻击技术领域,尤其涉及基于二次筛选的故障关联性攻击方法,包括如下步骤:S1、选择所执行算法的某个中间值;S2、选择明文,在加密过程中注入大量电压毛刺,建立故障概率曲线,对每个可能的密钥假设值,执行步骤S3-S5;S3、给定数据向量,计算对应的假设中间值;S4、将中间值映射为故障概率值;S5、比较假设故障概率值和故障概率曲线,找出相关系数最大值对应的密钥假设值,即为正确的密钥。本发明利用密码设备在故障注入攻击下故障概率的数据依赖性,建立了操作过程中的故障概率曲线。本发明无需访问密文,以较小的故障概率曲线量、较低的计算复杂度即可恢复密钥,并且受噪声影响很小,提高了CPA的攻击效率。提高了CPA的攻击效率。提高了CPA的攻击效率。


技术研发人员:吴童 周大伟 严博
受保护的技术使用者:中国人民解放军海军工程大学
技术研发日:2023.06.26
技术公布日:2023/9/7
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐