一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

针对SNOW3G算法的侧信道安全性检测方法

2022-05-06 06:35:58 来源:中国专利 TAG:

针对snow3g算法的侧信道安全性检测方法
技术领域
1.本发明涉及的是一种计算机安全领域的技术,具体是一种用于差分功耗分析(dpa)以及相关性功耗分析(cpa)的针对snow3g算法的侧信道安全性检测方法。


背景技术:

2.snow3g是由etsi/sage于2006年设计的一个流密码算法,该算法已被3gpp(3rd generation partnership project)采纳为国际加密标准,成为4g/5g移动通信中机密性保护算法和完整性保护算法的核心算法。密码算法在物理设备上运行时会泄漏可能包含敏感数据的侧信道信息,这些信息可被利用成为设备的安全隐患,因此对于这些物理设备需要有对应的安全检测方案以确定设备是否具有抗侧信道攻击的能力。


技术实现要素:

3.本发明针对现有技术无法通过分析snow3g算法的功耗信息进行安全检测的不足,提出一种针对snow3g算法的侧信道安全性检测方法,利用相关性功耗分析方法,结合snow3g算法结构,能够在较短的时间内实现安全性检测。
4.本发明是通过以下技术方案实现的:
5.本发明涉及一种针对snow3g算法的侧信道安全性检测方法,通过采集snow3g算法在待测物理设备上运行时产生的包含snow3g算法执行信息的功耗曲线,检测是否能够从功耗曲线中解析出snow3g算法中包含密钥信息的状态参数,从而得到待测物理设备的安全性检测结果。
6.所述的运行是指:snow3g算法执行信息指算法中的查表操作,即根据给定的索引值从查找表中得到对应的值,其中查找表具有256个索引项,索引值范围为0-255。
7.所述的状态参数包括:算法初始化过程中三个特定寄存器和的状态值,其中j代表初始化的轮次,即代表第j轮初始化操作后r1的状态值,该状态参数通过对查表操作使用相关性功耗分析,恢复出该查表操作的索引值。
8.所述的相关性功耗分析是指:一部分查找表的索引inx等价于固定不变的分量a与随机变化的分量b相异或的结果,即inx=a^b;另一部分查找表的索引inx等价于固定不变的分量a与随机变化的分量b相异或再与固定不变的分量c相加的结果,即inx=(a^b) c,其中:随机分量b是外部已知量,a和c是内部未知量;通过遍历固定不变的分量a的所有可能值或同时遍历固定不变的分量a和c的所有可能值,用已知的随机变化的分量b与分量a的猜测值a

异或得到猜测索引inx

=b^a

,或与猜测值a

异或后再与猜测值c

相加得到猜测索引inx

=(b^a

) c

);用inx

查表得到假设的输出值out

,再将输出值out

和对应的功耗曲线计算皮尔森相关性系数,当且仅当inx

=inx时相关系数达到最大。对于猜测值仅有a

的部分,只有a

=a时有inx

=inx;对于猜测值包括a

和c

两个值的部分,存在两组a

和c

值使得inx

=inx。
9.所述的安全性检测结果是指:利用采集到的功耗曲线解析snow3g算法中包含密钥信息的状态参数,当从功耗曲线中解析得到的对应的状态参数生成的估计密钥与实际密钥相同,则待测物理设备安全性检测不通过。
10.所述的解析是指:通过32次cpa分析的结果得到snow3g算法所使用的密钥,具体为:第1到5次cpa分析恢复和的值,其中第1次cpa分析针对以第4字节(最低字节)为索引值的查表操作的功耗信息,恢复第4字节中两个未知量的两组可能值,第2、3、4次cpa分析分别针对以第3、2、1字节为索引值的查表操作的功耗信息,恢复第3、2、1字节中两个未知量的两组可能值,第5次cpa分析针对以第1字节为索引值的查表操作的功耗信息,将由第1到4次cpa分析得到的4组可能值组合得到的16组值筛选为两组值,由这两组值分别计算得到的和的值相同。第6到10次cpa分析恢复和的值,其中第6、7、8、9次cpa分析针对以第4、3、2、1字节为索引值的查表操作的功耗信息,恢复第4、3、2、1字节中两个未知量的两组可能值,第10次cpa分析针对以第1字节为索引值的查表操作的功耗信息,将由第6到9次cpa分析得到的4组可能值组合得到的16组值筛选为两组值,由这两组值分别计算得到的和的值相同。第11到15次cpa分析恢复和的值,其中第11、12、13、14次cpa分析针对以第4、3、2、1字节为索引值的查表操作的功耗信息,恢复第4、3、2、1字节中两个未知量的两组可能值,第15次cpa分析针对以第1字节为索引值的查表操作的功耗信息,将由第11到14次cpa分析得到的4组可能值组合得到的16组值筛选为两组值,由这两组值分别计算得到的和的值相同。第16到20次cpa分析恢复和的值,其中第16、17、18、19次cpa分析针对以第4、3、2、1字节为索引值的查表操作的功耗信息,恢复第4、3、2、1字节中两个未知量的两组可能值,第20次cpa分析针对以第1字节为索引值的查表操作的功耗信息,将由第16到19次cpa分析得到的4组可能值组合得到的16组值筛选为两组值,由这两组值分别计算得到的和的值相同。第21到24次cpa分析恢复和的值,其中第21次cpa针对以第4字节(最低字节)为索引值的查表操作的功耗信息,恢复第4字节中唯一的未知量,第22、23、24次cpa分析针对以第3、2、1字节为索引值的查表操作的功耗信息,恢复第3、2、1字节中唯一的未知量,组合4次得到的未知量值,计算得到和的值。第25到28次cpa分析恢复和的值,其中第25、26、27、28次cpa分析针对以第4、3、2、1字节为索引值的查表操作的功耗信息,恢复第4、3、2、1字节中唯一的未知量,组合4次得到的未知量值,计算得到和的值。第29到32次cpa分析恢复和的值,其中第29、30、31、32次cpa分析针对以第4、3、2、1字节为索引值的查表操作的功耗信息,恢复第4、3、2、1字节中
唯一的未知量,组合4次得到的未知量值,计算得到和的值。最后由和计算得到key

[0],由和计算得到key

[1],由和计算得到key

[2],由和计算得到key

[3]。
[0011]
所述的密钥恢复过程中第1到5、6到10、11到15、16到20次分析之间可以并行执行,内部相互依赖且串行执行。第1到5、21到24、25到28次分析相互依赖且串行执行,第11到15和29到32次分析相互依赖且串行执行。
[0012]
本发明涉及一种实现上述方法的安全性检测系统,包括:功耗信息读取模块、第一相关性功耗分析模块、第二相关性功耗分析模块和结果组合模块,其中:功耗信息读取模块载入snow3g算法执行时产生的功耗信息并传输至第一相关性功耗分析模块和第二相关性功耗分析模块;第一相关性功耗分析模块分析收到的功耗信息,将分析结果分别输出至结果组合模块和第二相关性功耗分析模块;第二相关性功耗分析模块结合第一相关性功耗分析模块的结果分析收到的功耗信息,将结果输出至结果组合模块;结果组合模块将多个分析结果进行计算组合得到估计密钥,当估计密钥与实际密钥相同时判定待测物理设备安全性检测不通过。技术效果
[0013]
本发明能够从物理设备运行snow3g算法时产生的功耗曲线中在有限的时间以及有限的计算资源下完成对待测设备上运行的snow3g算法的分析,给出待测设备安全性检测结果。
附图说明
[0014]
图1为本发明方法示意图。
具体实施方式
[0015]
如图1所示,为本实施例涉及的一种针对snow3g算法的侧信道安全性检测方法,将物理设备运行snow3g算法过程产生的功耗曲线存储在计算机中,对该曲线集进行分析。将曲线集传输至第一相关性功耗分析模块中进行第1到20次cpa分析;将第1到20次cpa分析结果输出至结果组合模块,将第1到5次和11到15次cpa分析结果以及曲线集传输至第二相关性功耗分析模块中依次进行第21到32次cpa分析,将分析结果输出至结果组合模块。最终将所有的分析结果进行计算组合,得到预测密钥key

,当预测密钥key

与实际密钥key相同,则待测物理设备安全性检测不通过。
[0016]
所述方法具体包括以下步骤:
[0017]
步骤1、读取功耗曲线集g,将g输出至第一相关性功耗分析模块和第二相关性功耗分析模块;
[0018]
步骤2、第一相关性功耗分析模块结合第4字节中已知部分b,遍历未知部分a

和c

,生成所有可能的索引inx

,根据所有的索引,生成所有的查找表输出out

。使用out

和曲线集g计算皮尔森相关系数,寻找最大相关系数对应的a

和c

的组合,得到2组值。再依次恢复第3、2、1字节中两个未知部分a

和c

的两组值。将4个字节各自对应的2组值进行组
合得到16组4字节值,遍历这16组a

和c

计算的值,用的第1字节作为索引inx

,根据所有的索引生成查找表输出out

,与曲线集g计算皮尔森相关系数,寻找最大相关系数对应的a

和c

的组合,最终得到2组值,这两组值分别与已知部分b计算得到的值相同,进一步计算得到和的值;
[0019]
步骤3、在第一相关性功耗分析模块中按照步骤2的方法进行第6到10、11到15、16到20次cpa分析过程,依次得到和和和的值;
[0020]
步骤4、将第一相关性功耗分析模块得到的结果输出至结果组合模块,将结果和和输出至第二相关性功耗分析模块;
[0021]
步骤5、第二相关性功耗分析模块结合第4字节中已知部分b(第4字节),遍历未知部分a

,生成所有可能的索引inx

,进一步生成所有的查找表输出out

。使用out

和曲线集g计算皮尔森相关系数,寻找最大相关系数对应的a

。再依次恢复第3、2、1字节中未知部分a

的值。将四个值组合得到中未知部分的值,计算确定和的值。再结合第4、3、2、1字节中对应的已知部分b(的第4、3、2、1字节)依次确定对应的未知部分a

,组合得到中未知部分的值,计算确定和的值。结合第4、3、2、1字节中对应的已知部分b(的第4、3、2、1字节)依次确定对应的未知部分a

,组合得到中未知部分的值,计算确定和的值。将得到的结果输出至结果组合模块;
[0022]
当完成32次cpa分析后,跳转至结果组合模块。该模块利用前面的分析结果计算组合出密钥key

。用和计算出key

[0],和计算出key

[1],和计算出key

[2],和计算出key

[3]。将4个密钥字组合得到预测密钥key

,通过判断key

与key的值是否相等,给出待测设备的安全性结果。
[0023]
经过具体实际实验,在装载芯片atmega128a的单片机上运行3gpp提供的snow3g算法实现,以密钥key=0x9e1005b3b57ee5dd1be0447381727d32和随机的iv值在上述装置运行snow3g算法,采集产生的功耗曲线进行分析,能够得到的实验数据如表1和表2所示:
[0024]
表1为32次cpa攻击得到的未知量的值,对于每次cpa攻击表中列出相关系数排名前三的猜测值,可以看出排名第一猜测值的相关系数明显高出排名第二和排名第三猜测值的相关系数,可以很容易确定出最佳的猜测值。
[0025]
表1
[0026]
表2为iv=0x00000000000000000000000000000000时算法的状态参数值,其中计算得到计算得到到计算得到计算得到计算得到以上计算中的
‘‑’
均为模2
32
减法操作。最终组合得到的key

与实际使用的key一致,表明该待测物理设备存在功耗信息泄漏,安全性检测不通过。
[0027]
表2sno3g初始化轮次r1r2r350x0ebe5e5e**60x3d172fe30x53a1aa5d*70x653a0ef40x989617ca0x7ee52fee80x798b42270x6bd8244e0xc815e3da90xe9432a550x295b657c0xa482720e100xe8bd9bf90xdc0f1dd30xf0d8800a110x4dba1b0b
ꢀꢀ
[0028]
与现有技术无法完成对snow3g算法的分析相比,本发明仅需使用少量算法在待测物理设备上运行时产生的功耗曲线即可在较短时间内实现待测物理设备的安全性检测。在没有任何抗侧信道分析防御措施的情况下,整个分析系统所需的功耗曲线在2000条以内,分析时间在1小时以内,时间复杂度低。
[0029]
上述具体实施可由本领域技术人员在不背离本发明原理和宗旨的前提下以不同
的方式对其进行局部调整,本发明的保护范围以权利要求书为准且不由上述具体实施所限,在其范围内的各个实现方案均受本发明之约束。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献