回旋校验方法及装置与流程

文档序号:11929681阅读:385来源:国知局
回旋校验方法及装置与流程

本发明涉及数据加密技术领域,具体涉及一种回旋校验的方法及装置。



背景技术:

密码算法在相应的密码模块中运行时,如果受到干扰或者攻击,比如,电源抖动、时钟抖动、激光注入或者电磁注入等,所述密码模块的输出可能会被攻击者操控,或者直接输出一个错误的值。

为了提高密码模块的抗干扰或攻击能力,在对输入数据进行加密或解密处理后,通常在所述密码模块输出加密或解密后的数据前,采用回旋校验的方法来验证加密或解密后的数据是否正确。以所述密码模块为加密模块为例,所述回旋校验,即将所述加密后的数据通过密码解密运算,再将解密后的数据与所述密码模块的输入数据进行比较。若二者相同,则所述密码模块未受到干扰或攻击,否则所述密码模块受到干扰或攻击。

然而,在上述回旋校验方法中,对所述加密或解密后的数据进行回旋校验所需要的时间较长,难以在对密码算法的安全和运行时间要求较高的情况下,满足用户的要求。



技术实现要素:

本发明解决的技术问题是如何缩短对加密或解密后的数据进行回旋校验的时间,提高密码算法的运行效率。

为解决上述技术问题,本发明实施例提供一种回旋校验方法,所述方法包括:

获取密码模块对输入数据进行第i轮加密运算后的结果以及第j轮加密运算后的结果,其中,1≤i<j≤N,N为对所述输入数据进行加密运算的总轮次,i、j及N均为正整数;

对所述第j轮加密运算后的结果进行k轮的解密运算,直至获得第i轮解密运算后的结果,其中,k=j-i;

将所述第i轮加密运算后的结果与所述第i轮解密运算后的结果进行比较,并根据比较结果判断所述密码模块是否受到干扰或攻击。

可选地,j=i+1。

可选地,i=N-1。

可选地,所述将所述第i轮加密运算后的结果与所述第i轮解密运算后的结果进行比较,并根据比较结果判断所述密码模块是否受到干扰或攻击,包括:

当所述第i轮加密运算后的结果与所述第i轮解密运算后的结果相同时,判定所述密码模块未受到干扰或攻击,否则判定所述密码模块受到干扰或攻击。

可选地,所述方法还包括:当判定所述密码模块受到干扰或攻击时,产生相应的报警信号。

本发明实施例还提供了另一种回旋校验方法,所述方法包括:

获取密码模块对输入数据进行第i轮解密运算后的结果以及第j轮解密运算后的结果,其中,1≤i<j≤N,N为对所述输入数据进行解密运算的总轮次,i、j及N均为正整数;

对所述第j轮解密运算后的结果进行k轮的加密运算,直至获得第i轮加密运算后的结果,其中,k=j-i;

将所述第i轮解密运算后的结果与所述第i轮加密运算后的结果进行比较,并根据比较结果判断所述密码模块是否受到干扰或攻击。

可选地,j=i+1。

可选地,i=N-1。

可选地,所述将所述第i轮解密运算后的结果与所述第i轮加密运算后的结果进行比较,并根据比较结果判断所述密码模块是否受到干扰或攻击,包括:

当所述第i轮解密运算后的结果与所述第i轮加密运算后的结果相同时, 判定所述密码模块未受到干扰或攻击,否则判定所述密码模块受到干扰或攻击。

可选地,还包括:当判定所述密码模块受到干扰或攻击时,产生相应的报警信号。

本发明实施例还提供了一种回旋校验装置,所述装置包括:

第一获取单元,适于获取密码模块对输入数据进行第i轮加密运算后的结果以及第j轮加密运算后的结果,其中,1≤i<j≤N,N为对所述输入数据进行加密运算的总轮次,i、j及N均为正整数;

解密单元,适于对所述第j轮加密运算后的结果进行k轮的解密运算,获得第i轮解密运算后的结果,其中,k=j-i;

第一判断单元,适于将所述第i轮加密运算后的结果与所述第i轮解密运算后的结果进行比较,并根据比较结果判断所述密码模块是否受到干扰或攻击。

可选地,j=i+1。

可选地,i=N-1。

可选地,所述第一判断单元适于当所述第i轮加密运算后的结果与所述第i轮解密运算后的结果相同时,判定所述密码模块未受到干扰或攻击,否则判定所述密码模块受到干扰或攻击。

可选地,所述装置还包括:第一报警单元,适于当判定所述密码模块受到干扰或攻击时,产生相应的报警信号。

本发明实施例还提供了另一种回旋校验装置,所述装置包括:

第二获取单元,适于获取密码模块对输入数据进行第i轮解密运算后的结果以及第j轮解密运算后的结果,其中,1≤i<j≤N,N为对所述输入数据进行解密运算的总轮次,i、j及N均为正整数;

加密单元,适于对所述第j轮解密运算后的结果进行k轮的加密运算,获得第i轮加密运算后的结果,其中,k=j-i;

第二判断单元,适于将所述第i轮解密运算后的结果与所述第i轮加密运算后的结果进行比较,并根据比较结果判断所述密码模块是否受到干扰或攻击。

可选地,j=i+1。

可选地,i=N-1。

可选地,所述第二判断单元适于当所述第i轮解密运算后的结果与所述第i轮加密运算后的结果相同时,判定所述密码模块未受到干扰或攻击,否则判定所述密码模块受到干扰或攻击。

可选地,所述装置还包括:第二报警单元,适于当判定所述密码模块受到干扰或攻击时,产生相应的报警信号。

与现有技术相比,本发明实施例的技术方案具有以下有益效果:

通过获取输入数据第i轮加密运算后的结果以及第j轮加密运算后的结果,并对第j轮加密运算后的结果进行k轮的解密运算,获得第i轮解密运算后的结果,从而可以通过比较第i轮加密运算后的结果与第i轮解密运算后的结果,来判断密码模块是否受到干扰或攻击。相对于通过比较第N轮加密运算的结果与输入数据来判断所述密码模块是否受到干扰或攻击的方式,由于对第j轮加密运算后的结果仅需执行j-i轮的解密运算即可进行比较,1≤i<j≤N,而非执行N轮的解密运算,因此可以在保证密码模块安全性的同时,有效缩短回旋校验的时间,提高密码算法的运行效率。

附图说明

图1是本发明实施例中一种回旋校验方法流程图;

图2是本发明实施例中一种回旋校验装置的结构示意图;

图3是本发明实施例中另一种回旋校验方法流程图;

图4是本发明实施例中另一种回旋校验装置的结构示意图。

具体实施方式

目前,密码模块通常采用回旋校验的方法,来验证加密或解密后的数据 是否正确。例如,在加密过程中,所述密码模块可以先调用加密算法对输入数据D进行N轮加密处理,获得加密结果TN,再对加密结果TN进行解密运算,获得解密后的结果D1,最后将解密后的结果D1与输入数据D进行比较,并根据比较结果判断加密结果T是否正确。

在上述回旋校验过程中,需要执行N轮的解密运算,才能获得相应的验证结果,导致整个回旋校验的时间较长,密码算法的运行效率降低。

针对上述问题,本发明实施例提供了一种回旋校验方法,所述方法通过获取对输入数据进行第i轮加密运算后的结果以及第j轮加密运算后的结果,进而对所述第j轮加密运算后的结果进行k轮的解密运算,从而可以根据解密运算后的结果及所述第i轮加密运算后的结果来判定所述密码模块是否受到干扰或攻击。由于仅对第j轮加密运算后的结果进行k轮的解密运算,即可判定所述密码模块是否受到干扰或攻击,1≤i<j≤N,因此可以有效缩短回旋校验的时间,提高密码算法的运行效率。

为使本发明的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。

如图1所示,本发明实施例提供了一种回旋校验方法,所述方法可以适用于对加密运算的结果进行回旋校验。所述方法可以包括以下步骤:

步骤101,获取密码模块对输入数据进行第i轮加密运算后的结果以及第j轮加密运算后的结果。

在具体实施中,所述密码模块对输入数据D进行加密时,需要进行N轮的轮变换加密运算。其中,第i轮轮变换加密运算结果为Ti,第j轮轮变换加密运算结果为Tj,1≤i<j≤N,i、j及N均为正整数。

在实际应用中,由于密码算法的扩散与混淆的特性,攻击者通常在密码模块执行后几轮的轮变换加密运算时进行攻击。换言之,攻击者通常在密码模块执行后几轮的轮变换加密运算时进行错误注入,进而根据错误输出结果推断出密钥。因此,无须将第N轮轮变换加密运算的结果与输入数据进行比较,仅需获取第j轮轮变换加密运算结果为Tj,并根据第j轮轮变换加密运算结果为Tj来判定所述密码模块是否受到干扰或攻击。

在本发明的一实施例中,j=i+1,此时Ti与Tj为相邻两轮轮变换加密运算的结果。

在本发明的另一实施例中,i=N-1,即此时Ti为第N-1轮轮变换加密运算的结果。相应地,Tj为第N轮轮变换加密运算的结果。

需要说明的是,在具体实施中,所述密码模块可以采用对称加密算法对所述输入数据D进行加密处理,也可以采用非对称加密算法对所述输入数据D进行加密处理。其中,所述对称加密算法可以包括DES算法、RC2算法、RC4算法、RC5算法和Blowfish算法等。所述非对称加密算法可以包括RSA算法、ECC算法和Knapsack算法等。具体无论采用何种加密算法对所述输入数据D进行加密处理,均不构成对本发明的限制,且均在本发明的保护范围之内。

步骤102,对所述第j轮加密运算后的结果进行k轮的解密运算,直至获得第i轮解密运算后的结果,其中,k=j-i。

具体地,获得第j轮轮变换加密运算结果为Tj后,调用解密算法对Tj执行1轮的解密运算,获得第j-1轮轮变换加密运算的结果Tj-1’;

调用解密算法对Tj-1’执行1轮的解密运算,获得第j-2轮轮变换加密运算的结果Tj-2’;

调用解密算法对Tj-1’执行1轮的解密运算,获得第j-3轮轮变换加密运算的结果Tj-3’;

……

依此类推,直至执行解密运算的次数为k次,获得计算结果Ti’,即获得第i轮解密运算后的结果Ti’。

例如,当j=i+1时,此时k=j-i=1,即仅执行1轮轮变换解密运算,即可获得第i轮解密运算后的结果。

步骤103,将所述第i轮加密运算后的结果与所述第i轮解密运算后的结果进行比较,并根据比较结果判断所述密码模块是否受到干扰或攻击。

在具体实施中,当所述第i轮加密运算后的结果Ti与所述第i轮解密运算 后的结果Ti’相同时,判定所述密码模块未受到干扰或攻击,否则判定所述密码模块受到干扰或攻击。

在具体实施中,为了使用户可以更加方便地获知验证结果,当判定所述密码模块受到干扰或攻击时,产生相应的报警信号,通过所述报警信号来通知用户所述密码模块受到干扰或攻击。

在具体实施中,当产生报警信号时,加/解密处理的最终运算结果虽然是错误结果,但与加/解密处理过程中泄露的信息仍存在一定联系。因此,为了进一步提高所述密码模块的安全性,可以令所述密码模块的输出为0或带随机信息的值,由此可以使得攻击者无法获得该错误结果,进一步提高所述密码模块的安全性。

由上述内容可知,通过获取对输入数据进行第i轮加密运算后的结果以及第j轮加密运算后的结果,仅对所述第j轮加密运算后的结果进行k轮的解密运算,即可根据解密运算后的结果及所述第i轮加密运算后的结果,来判定所述密码模块是否受到干扰或攻击,由此可以有效缩短回旋校验的时间,提高密码算法的运行效率。

为了使本领域技术人员更好地理解和实现本发明,以下对上述回旋校验方法对应的装置进行详细描述。

如图2所示,本发明实施例提供了一种回旋校验装置20,所述装置20可以包括:第一获取单元201,解密单元202以及第一判断单元203。其中:

所述第一获取单元201可以与密码模块的加密单元21连接,适于获取密码模块对输入数据进行第i轮加密运算后的结果以及第j轮加密运算后的结果,其中,1≤i<j≤N,N为对所述输入数据进行加密运算的总轮次,i、j及N均为正整数。

所述解密单元202适于对所述第j轮加密运算后的结果进行k轮的解密运算,获得第i轮解密运算后的结果,其中,k=j-i。

所述第一判断单元203适于将所述第i轮加密运算后的结果与所述第i轮解密运算后的结果进行比较,并根据比较结果判断所述密码模块是否受到干扰或攻击。

以所述密码算法为DES算法为例,此时N=16。令i=15,j=j+1=16,即第一获取单元201获取对输入数据D第15轮轮变换加密运算的结果T15,及第16轮轮变换加密运算的结果T16。所述解密单元202对第16轮轮变换加密运算的结果T16执行1轮的解密运算,获得解密运算后的结果T15’。所述第一判断单元203对T15及T15’进行比较,当所述第i轮加密运算后的结果与所述第i轮解密运算后的结果相同时,判定所述密码模块未受到干扰或攻击,否则判定所述密码模块受到干扰或攻击。

进一步地,所述装置20还可以包括第一报警单元(未示出)。所述第一报警单元(未示出)适于当判定所述密码模块受到干扰或攻击时,产生相应的报警信号。

如图3所示,本发明实施例还提供了另一种回旋校验方法,所述方法可以适用于对解密运算的结果进行回旋校验。所述方法包括如下步骤:

步骤301,获取密码模块对输入数据进行第i轮解密运算后的结果以及第j轮解密运算后的结果。

在具体实施中,所述密码模块对输入数据A进行解密时,需要进行N轮的轮变换解密运算。其中,第i轮轮变换解密运算结果为Yi,第j轮轮变换解密运算结果为Yj,1≤i<j≤N,i、j及N均为正整数。

在实际应用中,由于密码算法的扩散与混淆的特性,攻击者通常在密码模块执行后几轮的轮变换解密运算时进行攻击。换言之,攻击者通常在密码模块执行后几轮的轮变换解密运算时进行错误注入,进而根据错误输出结果推断出密钥。因此,无须将第N轮轮变换解密运算的结果与输入数据进行比较,仅需获取第j轮轮变换解密运算结果为Yj,并根据第j轮轮变换解密运算结果为Yj来判定所述密码模块是否受到干扰或攻击。

在本发明的一实施例中,j=i+1,此时Yi与Yj为相邻两轮轮变换解密运算的结果。

在本发明的另一实施例中,i=N-1,即此时Yi为第N轮轮变换解密运算的结果。相应地,Yj为第N轮中轮变换解密运算的结果。

需要说明的是,在具体实施中,所述密码模块可以采用对称解密算法对 所述输入数据A进行解密处理,也可以采用非对称解密算法对所述输入数据D进行解密处理。其中,所述对称解密算法可以包括DES算法、RC2算法、RC4算法、RC5算法和Blowfish算法等。所述非对称解密算法可以包括RSA算法、ECC算法和Knapsack算法等。具体无论采用何种解密算法对所述输入数据A进行解密处理,均不构成对本发明的限制,且均在本发明的保护范围之内。

步骤302,对所述第j轮解密运算后的结果进行k轮的加密运算,直至获得第i轮加密运算后的结果,其中,k=j-i。

具体地,获得第j轮轮变换解密运算结果为Yj后,调用解密算法对Yj执行1轮的加密运算,获得第j-1轮轮变换加密运算的结果Yj-1’;

调用解密算法对Yj-1’执行1轮的加密运算,获得第j-2轮轮变换加密运算的结果Yj-2’;

调用解密算法对Yj-1’执行1轮的加密运算,获得第j-3轮轮变换加密运算的结果Yj-3’;

……

依此类推,直至执行加密运算的次数为k次,获得计算结果Yi’,即获得第i轮加密运算后的结果Yi’。

例如,当j=i+1时,此时k=j-i=1,即仅执行1轮轮变换加密运算,即可获得第i轮加密运算后的结果。

步骤303,将所述第i轮加密运算后的结果与所述第i轮解密运算后的结果进行比较,并根据比较结果判断所述密码模块是否受到干扰或攻击。

在具体实施中,当所述第i轮解密运算后的结果Yi与所述第i轮解密运算后的结果Yi’相同时,判定所述密码模块未受到干扰或攻击,否则判定所述密码模块受到干扰或攻击。

在具体实施中,为了使用户可以更加方便地获知验证结果,当判定所述密码模块受到干扰或攻击时,产生相应的报警信号,通过所述报警信号来通知用户所述密码模块受到干扰或攻击。

在具体实施中,当产生报警信号时,加/解密处理的最终运算结果虽然是错误结果,但与加/解密处理过程中泄露的信息仍存在一定联系。因此,为了进一步提高所述密码模块的安全性,可以令所述密码模块的输出为0或带随机信息的值,由此可以使得攻击者无法获得该错误结果,进一步提高所述密码模块的安全性。

由上述内容可知,通过获取对输入数据进行第i轮解密运算后的结果以及第j轮解密运算后的结果,仅对所述第j轮解密运算后的结果进行k轮的加密运算,即可根据加密运算后的结果及所述第i轮解密运算后的结果,来判定所述密码模块是否受到干扰或攻击,由此可以有效缩短回旋校验的时间,提高密码算法的运行效率。

为了使本领域技术人员更好地理解和实现本发明,以下对上述回旋校验方法对应的装置进行详细描述。

如图4所示,本发明实施例提供了一种回旋校验装置40,所述装置40可以包括:第二获取单元401,加密单元402以及第二判断单元403。其中:

所述第二获取单元401与密码模块的解密单元41连接,适于获取密码模块对输入数据进行第i轮解密运算后的结果以及第j轮解密运算后的结果,其中,1≤i<j≤N,N为对所述输入数据进行解密运算的总轮次,i、j及N均为正整数。

所述加密单元402适于对所述第j轮解密运算后的结果进行k轮的加密运算,获得第i轮加密运算后的结果,其中,k=j-i。

所述第二判断单元403适于将所述第i轮解密运算后的结果与所述第i轮加密运算后的结果进行比较,并根据比较结果判断所述密码模块是否受到干扰或攻击。

在本发明的一实施例中,j=i+1,此时所述第j轮解密运算后的结果与第i轮解密运算后的结果为相邻两轮轮变换解密运算的结果。

在本发明的另一实施例中,i=N-1,即此时所述第i轮解密运算后的结果为第N-1轮轮变换解密运算的结果。

以所述密码算法为DES算法为例,此时N=16。令i=15,j=j+1=16,即第二获取单元401获取第15轮轮变换解密运算的结果Y15,及第16轮轮变换及密运算的结果Y16。所述加密单元402对第16轮轮变换解密运算的结果Y16执行1轮的加密运算,获得加密运算后的结果Y15’。所述第二判断单元403对Y15及Y15’进行比较,当所述第i轮加密运算后的结果Y15’与所述第i轮解密运算后的结果Y15相同时,判定所述密码模块未受到干扰或攻击,否则判定所述密码模块受到干扰或攻击。

进一步地,所述装置40还可以包括第二报警单元(未示出)。所述第二报警单元(未示出)适于当判定所述密码模块受到干扰或攻击时,产生相应的报警信号。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。

虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1