对故障注入产生的错误数据进行分析的方法及计算机产品技术

技术编号:32456004 阅读:13 留言:0更新日期:2022-02-26 08:34
本发明专利技术公开了一种对故障注入产生的错误数据进行分析的方法及计算机产品。所述方法包括:从故障注入攻击产生的数据中提取出错误数据;根据第一运算的第一输入数据,运行第二运算,得到包含每轮运算结果在内的第二输出数据;以第一输出数据为输入运行第二运算得到包含每轮运算结果在内的第三输出数据;将第二输出数据与第三输出数据中相对应轮运算的结果进行异或运算后计算汉明重量,得到各个轮次对应的汉明重量;以最小的汉明重量对应的轮次为出错轮次,输出所述出错轮次。本发明专利技术能够找出出错轮次,进而可以客观准确地对系统进行评测,为后续的故障注入攻击的实施提供了便利条件。件。件。

【技术实现步骤摘要】
对故障注入产生的错误数据进行分析的方法及计算机产品


[0001]本专利技术涉及用于密码设备的密码模块评测
,更具体地,本专利技术涉及一种对故障注入产生的错误数据进行分析的方法及计算机产品。

技术介绍

[0002]对于密码芯片等密码设备中的密码算法模块的测试,采用故障注入的攻击方式时,其产生的故障会可干扰密码芯片的正常运行,使密码算法输出非预期数据(或者说异常数据、错误数据)。对于特定参数下的故障注入攻击测试,其产生的非预期输出的结果中包含了大量的密钥信息,可以用于破解加密算法。例如,利用RSA

CRT模幂运算中一次出错所产生的错误输出可以破解其密钥;对于DES算法,基于DFA攻击可由其错误输出恢复出其密钥。由于故障注入攻击对密码设备中运行的密码算法产生了严重威胁,因此故障注入已成为密码设备测评的重要内容。
[0003]故障注入攻击的实施分为故障产生阶段和结果分析阶段。在故障产生阶段,需要通过某种手段,改变密码设备的运行环境,然后诱发芯片发生故障,发生某种特定类型的错误。常见的引发芯片故障的方式有时钟突变、电压毛刺、激光注入及电磁注入等。在结果分析阶段,对错误输出进行分析获取密钥信息。典型的分析方法包括差分故障分析、safe

error攻击分析、故障灵敏度分析等方法。通过结果分析,可以对密码设备中的密码算法模块进行测评,以评判系统的安全性。
[0004]然而,在结果分析阶段,不同的分析方法得出的结论不同,某些方法甚至可能产生错误的结果,因此有必要对现有技术的分析方法进行改进以得到更加可信的评测结果。

技术实现思路

[0005]基于此,有必要针对上述存在的问题,提供一种对故障注入产生的错误数据进行分析的方法;同时,本专利技术还提供了基于上述方法的计算机设备和计算机可读存储介质。
[0006]根据本专利技术的第一方面,本专利技术实施例提供了一种用于对故障注入错误数据进行分析的方法,利用故障注入的方式攻击第一运算(f),所述第一运算(f)根据第一输入数据(in)得到第一输出数据(out),第一运算(f)的逆运算为第二运算(g),所述方法包括:从所述攻击产生的数据中提取出错误数据;以所述第一输入数据(in)重新运行第一运算(f),并以其结果(f(in))为输入,运行第二运算(g),得到包含每轮运算结果在内的第二输出数据(g(f(in)));以第一输出数据(out)为输入,运行第二运算(g),得到包含每轮运算结果在内的第三输出数据(g(out));将第二输出数据(g(f(in)))与第三输出数据(g(out))中相对应轮运算的结果(IR0,IR1,

,IR
n
;IR
′0,IR
′1,

,IR

n
)进行异或运算后计算汉明重量,得到各个轮次对应的汉明重量;以最小的汉明重量对应的轮次为出错轮次,输出所述出错轮次。
[0007]在一个实施例中,还对所述出错轮次的异或运算结果进行检测,以查找值为1的比特;进而检测出错轮运算结果(IR
j
或IR

j
)的相应比特的值;响应于所述相应比特的值全为0或全为1,并且所述相应比特的数量在M以上,则输出出错类型为数据置位错误,所述M为预
设值;否则输出错误类型为局部性错误。
[0008]在一个实施例中,增加轮次,重新运行第一运算(f),得到包含每轮运算结果在内的第四输出数据;将所述第一输出数据(out)与所述第四输出数据的各轮运算结果分别进行比较;响应于所述第一输出数据(out)与第四输出数据中一轮运算结果相等,输出该轮运算对应的轮次,并且记录错误类型为轮运算次数错误。
[0009]在一个实施例中,响应于所述第一输出数据(out)与第四输出数据中任一轮运算结果均不相等,则记录错误类型不属于轮运算次数错误。
[0010]在一个实施例中,所述增加轮次包括:增加为所述第一运算(f)原有运算轮次的2

5倍。
[0011]在一个实施例中,所述第一运算(f)为加密运算,第二运算(g)为解密运算,或者:所述第一运算(f)为解密运算,第二运算(g)为加密运算。
[0012]在一个实施例中,所述第一运算为对称加密算法。
[0013]根据本专利技术的第二方面,本专利技术实施例还提供了一种用于对故障注入错误数据进行分析的装置,包括处理器和存储器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序以实现如上述任一项方法实施例所述的步骤。
[0014]根据本专利技术的第三方面,本专利技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被执行时实现如上述任一方法实施例所述的步骤。
[0015]本专利技术的技术效果包括:一方面,对于结果分析的意义在于:可用于对异常输出的错误数据进行分析,还原故障发生过程,深入了解故障运行方式,客观准确地对系统进行评测;另一方面,对于故障产生的意义在于:由于本专利技术可以区分出错误类型,因此测试人员可以相应地筛选出与这些错误类型对应的故障注入参数,从而为后续的故障注入攻击的实施提供便利条件;例如在后续测试过程中,若希望产生某一类错误,则选择该类错误的对应故障注入参数即可,从而对攻击模块的选取和实施提供支持,进而提升了攻击效率,显著降低了攻击难度。
附图说明
[0016]通过参考附图阅读下文的详细描述,本专利技术示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本专利技术的若干实施方式,并且相同或对应的标号表示相同或对应的部分,其中:
[0017]图1示出了根据本专利技术一个实施例的对故障注入错误数据进行分析的方法的流程示意图;
[0018]图2示出了图1中步骤S1的详细流程图;
[0019]图3示出了根据本专利技术另一个实施例的对故障注入错误数据进行分析的方法的流程示意图;
[0020]图4示出了根据本专利技术又一个实施例的对故障注入错误数据进行分析的方法的流程示意图;
[0021]图5示出了一个基于计算机程序的实验例;
[0022]图6示出了实施本专利技术实施例的一种计算机设备的结构图。
具体实施方式
[0023]为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细地说明。应当理解,此处描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。
[0024]对于加密解密算法,通过对不同故障注入错误的深入研究发现,并非所有的错误输出都可以用于恢复密钥,只有特定的错误才能够用于恢复密钥。例如:对于经典的针对DES的差分故障分析,需要在第14、15轮运算时注入故障,并且故障只会影响R部分运算结果,并不会干扰L部分运算。根据统计分析结果发现,为了确定整个DES密钥,平均需要40个错误数据。
[0025]错误的类型与故障注入参数(注入时机、故障注入的强度和持续时本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于对故障注入产生的错误数据进行分析的方法,利用故障注入的方式攻击第一运算(f),所述第一运算(f)根据第一输入数据(in)得到第一输出数据(out),第一运算(f)的逆运算为第二运算(g),其特征在于,所述方法包括:从所述攻击产生的数据中提取出错误数据;以所述第一输入数据(in)重新运行第一运算(f),并以其结果(f(in))为输入,运行第二运算(g),得到包含每轮运算结果在内的第二输出数据(g(f(in)));以第一输出数据(out)为输入,运行第二运算(g),得到包含每轮运算结果在内的第三输出数据(g(out));将第二输出数据(g(f(in)))与第三输出数据(g(out))中相对应轮运算的结果(IR0,IR1,

,IR
n
;IR
′0,IR
′1,

,IR

n
)进行异或运算后计算汉明重量,得到各个轮次对应的汉明重量;以最小的汉明重量对应的轮次为出错轮次,输出所述出错轮次。2.根据权利要求1所述的方法,其特征在于,还对所述出错轮次的异或运算结果进行检测,以查找值为1的比特;进而检测出错轮运算结果(IR
j
或IR

j
)的相应比特的值;响应于所述相应比特的值全为0或全为1,并且所述相应比特的数量在M...

【专利技术属性】
技术研发人员:韩绪仓王慧平胡莹贾靖靖王飞宇
申请(专利权)人:中金金融认证中心有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1