本发明专利技术公开了一种抵抗故障攻击的防护方法和装置,其中,该方法包括:将第一运算结果存储于第一寄存器,将第二运算结果存储于第二寄存器;读取第一存储器中的第一运算结果,并将第一运算结果存储于第三存储器;读取第二存储器中的第二运算结果,并将第二运算结果存储于第四存储器;判断存储有第一运算结果的存储器中的第一运算结果与存储有第二运算结果的存储器中的第二运算结果是否相同,当判断结果为第一运算结果与第二运算结果均相同时,输出运算结果。该方法采用多级存储的方式存储运算结果,并分别进行多次比较判断,可以有效抵抗多点的故障攻击,提高算法的安全性。
【技术实现步骤摘要】
本专利技术涉及安全芯片领域,具体地,涉及一种抵抗故障攻击的防护方法和装置。
技术介绍
随着信息技术和计算机技术的发展和广泛应用,信息安全越来越受到人们的重视。近年来一些常用的攻击技术也趋于成熟,如侧信道攻击、故障攻击、物理攻击等,这些都对芯片的安全防护提出更高要求。于是,人们越来越关注芯片的设计,尤其是芯片中针对各种攻击的防护措施。侧信道攻击主要是利用芯片的功耗、电磁等信息进行攻击,如SPA、DPA、CPA等方法。故障攻击主要通过一些手段诱导运行过程中的芯片产生错误,改变芯片的行为和运行结果,如DFA等。物理攻击则是通过对芯片进行掀盖、腐蚀等操作,进而通过逆向工程等方法进行攻击。现在比较成熟的芯片硬件的防护主要是引入噪声、时钟扰乱和对密码模块加入掩码等方法。故障攻击最重要的操作是需要得到故障注入后的结果,如果防故障攻击方法能够判断出芯片遭遇了故障攻击,就可以不输出结果,攻击者也就无法继续攻击。现有抵抗故障攻击的方法是将两次运算结果直接进行比较,由于攻击者可以利用激光等手段攻击CPU的比较结果,使得现有方法仍然不能有效抵抗故障攻击。
技术实现思路
本专利技术是为了克服现有抵抗故障攻击的方法仍然不能有效抵抗故障攻击的缺陷,根据本专利技术的一个方面,提出一种抵抗故障攻击的防护方法。本专利技术实施例提供的一种抵抗故障攻击的防护方法,包括:获取第一运算结果和第二运算结果,并将第一运算结果存储于第一寄存器,将第二运算结果存储于第二寄存器;读取第一存储器中的第一运算结果,并将第一运算结果存储于第三存储器;读取第二存储器中的第二运算结果,并将第二运算结果存储于第四存储器;判断存储有第一运算结果的存储器中的第一运算结
果与存储有第二运算结果的存储器中的第二运算结果是否相同,当判断结果为第一运算结果与第二运算结果均相同时,输出运算结果。在上述技术方案中,该方法还包括:读取第三存储器中的第一运算结果,并将第一运算结果存储于第五存储器;读取第四存储器中的第二运算结果,并将第二运算结果存储于第六存储器。在上述技术方案中,判断存储有第一运算结果的存储器中的第一运算结果与存储有第二运算结果的存储器中的第二运算结果是否相同,包括:判断第一存储器中的第一运算结果与第二存储器中的第二运算结果是否相同;判断第三存储器中的第一运算结果与第四存储器中的第二运算结果是否相同;或判断第一存储器中的第一运算结果与第四存储器中的第二运算结果是否相同;判断第三存储器中的第一运算结果与第二存储器中的第二运算结果是否相同。在上述技术方案中,同时执行判断存储有第一运算结果的存储器中的第一运算结果与存储有第二运算结果的存储器中的第二运算结果是否相同中的判断步骤;或按照先后顺序依次执行判断存储有第一运算结果的存储器中的第一运算结果与存储有第二运算结果的存储器中的第二运算结果是否相同中的判断步骤。本专利技术是为了克服现有抵抗故障攻击的方法仍然不能有效抵抗故障攻击的缺陷,根据本专利技术的一个方面,提出一种抵抗故障攻击的防护装置。本专利技术实施例提供的一种抵抗故障攻击的防护装置,包括:预处理模块,用于获取第一运算结果和第二运算结果,并将第一运算结果存储于第一寄存器,将第二运算结果存储于第二寄存器;多级存储模块,用于读取第一存储器中的第一运算结果,并将第一运算结果存储于第三存储器;读取第二存储器中的第二运算结果,并将第二运算结果存储于第四存储器;多级判断模块,用于判断存储有第一运算结果的存储器中的第一运算结果与存储有第二运算结果的存储器中的第二运算结果是否相同,当判断结果为第一运算结果与第二运算结果均相同时,输出运算结果。在上述技术方案中,多级存储模块还用于:读取第三存储器中的第一运算结果,并将第一运算结果存储于第五存储器;读取第四存储器中的第二运算结果,并将第二运算结果存储于第六存储器。在上述技术方案中,多级判断模块具体用于:判断第一存储器中的第一运算结果与第二存储器中的第二运算结果是否相同;判断第三存储器中的第一运算结果与第四存储器中的第二运算结果是否相同;或判断第一存储器中的第一运算结果与第四存储器中的第二运算结果是否相同;判断第三存储器中的第一运算结果与第二存储器中的第二运算结果是否相同。在上述技术方案中,多级判断模块具体用于:同时执行判断存储有第一运算结果的存储器中的第一运算结果与存储有第二运算结果的存储器中的第二运算结果是否相同中的判断步骤;或按照先后顺序依次执行判断存储有第一运算结果的存储器中的第一运算结果与存储有第二运算结果的存储器中的第二运算结果是否相同中的判断步骤。本专利技术实施例提供的一种抵抗故障攻击的防护方法和装置,采用多级存储的方式存储运算结果,并分别进行多次比较判断,只有在所有判断结果均相同时才输出运算结果,从而加大了攻击者的攻击难度,该方法可以有效抵抗多点的故障攻击,提高安全性。同时,该装置不需要增加芯片面积和功耗,抵抗故障攻击效果显著。本专利技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本专利技术而了解。本专利技术的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。下面通过附图和实施例,对本专利技术的技术方案做进一步的详细描述。附图说明附图用来提供对本专利技术的进一步理解,并且构成说明书的一部分,与本专利技术的实施例一起用于解释本专利技术,并不构成对本专利技术的限制。在附图中:图1为本专利技术实施例中抵抗故障攻击的防护方法的流程图;图2为实施例一中抵抗故障攻击的防护方法的流程图;图3为实施例一中抵抗故障攻击的防护方法的流程示意图;图4为本专利技术实施例中抵抗故障攻击的防护装置的结构图。具体实施方式下面结合附图,对本专利技术的具体实施方式进行详细描述,但应当理解本专利技术的保护范围并不受具体实施方式的限制。根据本专利技术实施例,提供了一种抵抗故障攻击的防护方法,图1为该方法的流程图,具体包括:步骤101:获取第一运算结果和第二运算结果,并将第一运算结果存储于第一寄存器,将第二运算结果存储于第二寄存器。其中,上述第一运算结果和第二运算结果均为对同一明文进行正常加密运算后的结果,该结果即为明文加密后的密文。步骤102:读取第一存储器中的第一运算结果,并将第一运算结果存储于第三存储器;读取第二存储器中的第二运算结果,并将第二运算结果存储于第四存储器。本专利技术实施例中,采用多级存储的方式存储运算结果。其还可以包括第五存储器和第六存储器,具体的:读取第三存储器中的第一运算结果,并将第一运算结果存储于第五存储器;读取第四存储器中的第二运算结果,并将第二运算结果存储于第六存储器。存储的级数越多,判断的次数越多,故障攻击的难度越大。步骤103:判断存储有第一运算结果的存储器中的第一运算结果与存储有第二运算结果的存储器中的第二运算结果是否相同,当上述判断结果为第一运算结果与第二运算结果均相同时,输出运算结果。本专利技术实施例中,由于采用多级存储的方式存储运算结果,相应的可以有多次判断步骤。具体的,步骤103中的判断步骤包括两种判断方式:顺序判断方式和交叉判断方式。具体的,在步骤103中:顺序判断方式为:判断第一存储器中的第一运算结果与第二存储器中的第二运算结果是否相同;判断第三存储器中的第一运算结果与第四存储器中的第二运算结果是否相同。交叉判本文档来自技高网...
【技术保护点】
一种抵抗故障攻击的防护方法,其特征在于,包括:获取第一运算结果和第二运算结果,并将所述第一运算结果存储于第一寄存器,将所述第二运算结果存储于第二寄存器;读取第一存储器中的第一运算结果,并将所述第一运算结果存储于第三存储器;读取第二存储器中的第二运算结果,并将所述第二运算结果存储于第四存储器;判断存储有第一运算结果的存储器中的所述第一运算结果与存储有第二运算结果的存储器中的所述第二运算结果是否相同,当判断结果为所述第一运算结果与所述第二运算结果均相同时,输出运算结果。
【技术特征摘要】
1.一种抵抗故障攻击的防护方法,其特征在于,包括:获取第一运算结果和第二运算结果,并将所述第一运算结果存储于第一寄存器,将所述第二运算结果存储于第二寄存器;读取第一存储器中的第一运算结果,并将所述第一运算结果存储于第三存储器;读取第二存储器中的第二运算结果,并将所述第二运算结果存储于第四存储器;判断存储有第一运算结果的存储器中的所述第一运算结果与存储有第二运算结果的存储器中的所述第二运算结果是否相同,当判断结果为所述第一运算结果与所述第二运算结果均相同时,输出运算结果。2.根据权利要求1所述的方法,其特征在于,还包括:读取第三存储器中的第一运算结果,并将所述第一运算结果存储于第五存储器;读取第四存储器中的第二运算结果,并将所述第二运算结果存储于第六存储器。3.根据权利要求1所述的方法,其特征在于,所述判断存储有第一运算结果的存储器中的所述第一运算结果与存储有第二运算结果的存储器中的所述第二运算结果是否相同,包括:判断所述第一存储器中的第一运算结果与所述第二存储器中的第二运算结果是否相同;判断所述第三存储器中的第一运算结果与所述第四存储器中的第二运算结果是否相同;或判断所述第一存储器中的第一运算结果与所述第四存储器中的第二运算结果是否相同;判断所述第三存储器中的第一运算结果与所述第二存储器中的第二运算结果是否相同。4.根据权利要求3所述的方法,其特征在于,同时执行所述判断存储有第一运算结果的存储器中的所述第一运算结果与存储有第二运算结果的存储器中的所述第二运算结果是否相同中的判断步骤;或按照先后顺序依次执行所述判断存储有第一运算结果的存储器中的所述第一运算结果与存储有第二运算结果的存储器中的所述第二运算结果是否相同中的判断步骤。...
【专利技术属性】
技术研发人员:李娜,王于波,原义栋,李大为,罗鹏,雷银华,胡晓波,
申请(专利权)人:北京南瑞智芯微电子科技有限公司,国家电网公司,国家密码管理局商用密码检测中心,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。