一种分组加密算法防攻击的掩码方法和装置与流程

文档序号:11841876阅读:285来源:国知局
一种分组加密算法防攻击的掩码方法和装置与流程

本发明涉及分组加密算法防攻击的技术领域,具体地,涉及一种分组加密算法防攻击的掩码方法和装置。



背景技术:

随着计算机网络技术和通信技术迅速发展,信息安全问题日益突出,解决这一问题的有效手段之一是使用现代密码技术,各种密码算法不断出现。分组密码算法是一种最常用的加密手段,具有速度快、易于标准化和便于软硬件实现等特点。目前比较流行的分组密码算法有DES算法、AES算法等。

随着测量技术和攻击技术的不断进步,对密码算法的各种分析和攻击方法不再局限于算法本身,出现了许多针对密码算法实现载体的攻击方法,侧信道攻击是其中威胁性较强的一种方法。攻击者利用密码设备在运行过程中泄露的侧信息如功耗、时间、电磁辐射等,对密码系统进行攻击和分析。掩码方法是目前抵抗侧信道攻击比较常用的一种方法,通过对加密操作的中间值进行掩盖使得攻击变得困难。

现有防侧信道攻击的掩码技术在同一轮运算的不同位置会出现相同的掩码,或者第一轮运算与最后一轮运算带的掩码是相同的,如果攻击者对这两个带有相同掩码值的运算位置进行异或,可以消去掩码的影响进而实施有效的高阶攻击。



技术实现要素:

本发明是为了克服现有掩码技术不能有效防止侧信道攻击中的高阶攻击的缺陷,根据本发明的一个方面,提出一种分组加密算法防攻击的掩码方法。

本发明实施例提供的一种分组加密算法防攻击的掩码方法,包括:将获取的明文与第一掩码M1进行异或运算,将引入第一掩码M1的明文作为第1轮运算的输入值,并执行第1轮运算;在执行第i轮运算之前,将获取的第i-1轮的运算结果与掩码Mi进行异或运算,再与抵消掩码Mi-1’进行异或运算,将两次异或运算后的结果作为第i轮运算的输入值,其中,2≤i≤n,n为分组 加密算法的轮数;抵消掩码Mi-1’用于抵消第i-1轮的运算结果中引入的一个掩码;在执行完第n轮运算之后,将第n轮的运算结果与抵消掩码Mn’进行异或运算,并将异或运算结果作为分组加密算法的密文输出;抵消掩码Mn’用于抵消第n轮的运算结果中引入的所有掩码。

在上述技术方案中,在将获取的明文与第一掩码M1进行异或运算步骤之后,还包括:将引入第一掩码M1的明文存入寄存器中。

在上述技术方案中,在将引入第一掩码M1的明文存入寄存器中步骤之后,还包括:将从寄存器中读取的引入第一掩码M1的明文与掩码m进行异或运算,第1轮运算的输入值为引入第一掩码M1和掩码m的明文。

在上述技术方案中,该方法还包括:在第1轮运算中引入随机数R1,且在第i轮运算中引入随机数Ri。

在上述技术方案中,抵消掩码Mi-1’还用于抵消第i-1轮的运算结果中引入的随机数Ri-1;抵消掩码Mn’还用于抵消第n轮的运算结果中引入的随机数Rn。

本发明是为了克服现有掩码技术不能有效防止侧信道攻击中的高阶攻击的缺陷,根据本发明的一个方面,提出一种分组加密算法防攻击的掩码装置。

本发明实施例提供的一种分组加密算法防攻击的掩码装置,包括:

第一掩码模块,用于将获取的明文与第一掩码M1进行异或运算,将引入第一掩码M1的明文作为第1轮运算的输入值,并执行第1轮运算;

掩码处理模块,用于在执行第i轮运算之前,将获取的第i-1轮的运算结果与掩码Mi进行异或运算,再与抵消掩码Mi-1’进行异或运算,将两次异或运算后的结果作为第i轮运算的输入值,其中,2≤i≤n,n为分组加密算法的轮数;抵消掩码Mi-1’用于抵消第i-1轮的运算结果中引入的一个掩码;

抵消掩码模块,用于在执行完第n轮运算之后,将第n轮的运算结果与抵消掩码Mn’进行异或运算,并将异或运算结果作为分组加密算法的密文输出;抵消掩码Mn’用于抵消第n轮的运算结果中引入的所有掩码。

在上述技术方案中,该装置还包括:寄存模块;

寄存模块用于在第一掩码模块在将获取的明文与第一掩码M1进行异或运算之后,将引入第一掩码M1的明文存入寄存器中。

在上述技术方案中,该装置还包括:第二掩码模块;

第二掩码模块用于在寄存模块将引入第一掩码M1的明文存入寄存器中之后,将从寄存器中读取的引入第一掩码M1的明文与掩码m进行异或运算,且第1轮运算的输入值为引入第一掩码M1和掩码m的明文。

在上述技术方案中,该装置还包括:

随机数模块,用于在第1轮运算中引入随机数R1,且在第i轮运算中引入随机数Ri。

在上述技术方案中,抵消掩码Mi-1’还用于抵消第i-1轮的运算结果中引入的随机数Ri-1;抵消掩码Mn’还用于抵消第n轮的运算结果中引入的随机数Rn。

本发明实施例提供的一种分组加密算法防攻击的掩码方法和装置,采用了多值掩码的方法,每轮运算中有互相不同的掩码参与运算,每个运算位置保证了不同掩码,可以避免对相同掩码的高阶攻击,使加密算法更安全可靠。通过对明文引入掩码m,进一步可以保证运算位置至少有两个不同掩码,进一步提高安全性,更加有效抵抗对相同掩码的高阶攻击。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:

图1为本发明实施例中分组加密算法防攻击的掩码方法的流程图;

图2为本发明实施例中掩码方法的流程示意图;

图3为实施例一中分组加密算法防攻击的掩码方法的流程图;

图4为实施例一中掩码方法的流程示意图;

图5为本发明实施例中分组加密算法防攻击的掩码装置的第一结构示意图;

图6为本发明实施例中分组加密算法防攻击的掩码装置的第二结构示 意图。

具体实施方式

下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解本发明的保护范围并不受具体实施方式的限制。

根据本发明实施例,提供了一种分组加密算法防攻击的掩码方法,图1为该方法的流程图,具体包括:

步骤101:将获取的明文与第一掩码M1进行异或运算,将引入第一掩码M1的明文作为第1轮运算的输入值,并执行第1轮运算。

优选的,在步骤101中的将获取的明文与第一掩码M1进行异或运算步骤之后,还包括:将引入第一掩码M1的明文存入寄存器中。即明文在存入寄存器之前执行了与第一掩码M1进行异或运算的步骤,从而寄存器中所存储的明文引入了第一掩码M1,从而保护了寄存器中的数据,可有效抵抗汉明距离攻击。

优选的,在上述将引入第一掩码M1的明文存入寄存器中步骤之后,还包括:将从寄存器中读取的引入第一掩码M1的明文与掩码m进行异或运算。第1轮运算的输入值为引入第一掩码M1和掩码m的明文。

通过再与掩码m进行异或运算,从而可以使第一轮运算的输入值引入有两个不同的掩码,使每轮的运算位置保证至少有两个不同的掩码,可以进一步提高安全性。该步骤的具体作用将在下面进行详细阐述。

步骤102:在执行第i轮运算之前,将获取的第i-1轮的运算结果与掩码Mi进行异或运算,再与抵消掩码Mi-1’进行异或运算,将两次异或运算后的结果作为第i轮运算的输入值,其中,2≤i≤n,n为分组加密算法的轮数;抵消掩码Mi-1’用于抵消第i-1轮的运算结果中引入的一个掩码。

本发明实施例中,抵消掩码也是一种掩码,通过与引入掩码的运算结果进行异或,从而可以消除其他掩码(例如M1、M2等)的作用。具体的,参见图2所示,在步骤102中,每次执行第i轮运算之前,先引入一个掩码Mi,然后再通过引入抵消掩码Mi-1’来抵消第i-1轮的运算结果中引入的一个掩码。即在每一轮运算之前先加入新的掩码,再退掉一个旧的掩码,从而保证每轮运算均包含掩码且每轮运算中引入的掩码并不完全相同,从而可以有效抵抗高阶攻击。

例如,在执行第2轮运算之前(即i=2),将第1轮的运算结果先与掩码M2进行异或,再与抵消掩码M1’进行异或;此时由于第1轮的运算结果中只引入了第一掩码M1,因此抵消掩码M1’用来抵消第一掩码M1的作用。此时,第2轮运算的输入值只引入了掩码M2。同理,第i轮运算引入了掩码Mi,若n个掩码M1-Mn互不相同,则每一轮运算引入的掩码也不相同;根据具体情况可以设置M1-Mn互不相同,或M1-Mn部分相同、部分不相同。

同时,执行完每一轮运算后,需要将运算存入寄存器。由于每一轮的运算结果均引入了一个掩码,从而同样可以保护寄存器中的数据,可有效抵抗汉明距离攻击。

步骤103:在执行完第n轮运算之后,将第n轮的运算结果与抵消掩码Mn’进行异或运算,并将异或运算结果作为分组加密算法的密文输出;抵消掩码Mn’用于抵消第n轮的运算结果中引入的所有掩码。

如上,第n轮的运算结果中引入了掩码Mn,通过抵消掩码Mn’可以抵消该掩码Mn的作用,从而最终输出不带掩码的密文。

本发明实施例提供的一种分组加密算法防攻击的掩码方法,采用了多值掩码的方法,每轮运算中有互相不同的掩码参与运算,每个运算位置保证了不同掩码,可以避免对相同掩码的高阶攻击,使加密算法更安全可靠。

优选的,本发明实施例提供的一种分组加密算法防攻击的掩码方法还包括:在第1轮运算中引入随机数R1,且在第i轮运算中引入随机数Ri。在每一轮运算中引入新的随机数,结合已经带有的掩码,可以进一步提高加密算法的安全性,使攻击者更难获得想要的结果。

其中,当每一轮运算过程中引入随机数时,抵消掩码Mi-1’还用于抵消第i-1轮的运算结果中引入的随机数Ri-1;抵消掩码Mn’还用于抵消第n轮的运算结果中引入的随机数Rn。

下面通过一个实施例详细介绍该掩码方法的流程。

实施例一

在实施例一中,为第1轮运算引入第一掩码M1和掩码m,且每一轮运算中引入随机数。方法流程具体如图3和图4所示:

步骤301:将获取的明文与第一掩码M1进行异或运算。

步骤302:将引入第一掩码M1的明文存入寄存器中。

图4中,Reg代表寄存器。

步骤303:将从寄存器中读取的引入第一掩码M1的明文与掩码m进行异或运算,异或运算的结果作为第1轮运算的输入值。

步骤304:执行第1轮运算,引入随机数R1,并将运算结果存入寄存器中。

步骤305:在执行第i轮运算之前,将获取的第i-1轮的运算结果与掩码Mi进行异或运算,再与抵消掩码Mi-1’进行异或运算,将两次异或运算后的结果作为第i轮运算的输入值。

其中,2≤i≤n,n为分组加密算法的轮数;抵消掩码Mi-1’用于抵消第i-1轮的运算结果中引入的一个掩码。

当每一轮运算中没有引入随机数时,仍然以第2轮运算之前为例。第1轮的运算结果引入了第一掩码M1和掩码m,抵消掩码M1’用于抵消第一掩码M1的作用或抵消掩码m的作用。在实施例一中,以先引入先抵消的原则抵消前一轮中引入的掩码;即,由于掩码引入的顺序为M1→m→M2→M3→…→Mn,则Mi-1’依次抵消M1、m、M2…Mn的掩码效果。

第1运算结果与掩码M2异或后,引入三个掩码(M1、m和M2),再与抵消掩码M1’异或后,引入了两个掩码(m和M2),即第2轮运算的输入值引入了掩码m和M2。

相应的,抵消掩码M2’用于抵消掩码m的作用,所以第3轮运算的输入值引入了掩码M2和M3。之后的第4轮至第n轮,每一轮的运算均引入了两个掩码,且第n轮运算的输入值引入了掩码Mn-1和Mn。

而在实施例一中,由于每一轮引入了随机数。此时抵消掩码Mi-1’还用于抵消第i-1轮的运算结果中引入的随机数Ri-1。具体的,以第2轮运算之前(即i=2)为例。抵消掩码M1’除了用于抵消掩码M1的作用,还用于抵消随机数R1的作用。

步骤306:执行第i轮运算,引入随机数Ri,并将运算结果存入寄存器中。

步骤307:在执行完第n轮运算之后,将第n轮的运算结果与抵消掩码Mn’进行异或运算,并将异或运算结果作为分组加密算法的密文输出。

在实施例一中,第n轮的运算结果引入了掩码Mn-1、Mn和随机数Rn,抵消掩码Mn’用于抵消第n轮的运算结果中引入的所有掩码(即掩码Mn-1和 Mn),同时还用于抵消第n轮的运算中中引入的随机数Rn。最终密文不带有掩码和随机数。

需要说明的是,在实施例一中,抵消掩码采用先引入先抵消的原则抵消前一轮中引入的掩码,即抵消掩码Mi-1’用于抵消第i-1轮的运算结果中在先引入的一个掩码,这样可以保证每一轮运算时、每轮之间均引入了两个不同的掩码(第一轮引入了M1和m,第二轮引入了m和M2,第三轮引入了M2和M3……)。

而如果不采用先引入先抵消的原则,则可能某些轮运算中并不能保证有两个不同的掩码,但能保证每轮运算之间至少有一个不同的掩码。例如,采用后引入先抵消的原则,即抵消掩码Mi-1’用于抵消第i-1轮的运算结果中在后引入的一个掩码(如,第一轮运算中先引入M1,后引入m,则M1’抵消m的作用),这样能保证每轮运算过程中引入了两个掩码,但是轮运算之间引入只有一个掩码是不同的(此时,第一轮引入了M1和m,第二轮引入了M1和M2,第三轮引入了M1和M3……)。

因此,实施例一中采用先引入先抵消的原则抵消前一轮中引入的掩码是最优的实施例;但是只要抵消掩码Mi-1’可以抵消第i-1轮的运算结果中引入的一个掩码,则也可以保证每轮运算之间至少有一个不同的掩码参与了运算。

本发明实施例提供的一种分组加密算法防攻击的掩码方法,采用了多值掩码的方法,每轮运算中有互相不同的掩码参与运算,每个运算位置保证了不同掩码,可以避免对相同掩码的高阶攻击,使加密算法更安全可靠。通过对明文引入掩码m,进一步可以保证运算位置至少有两个不同掩码,进一步提高安全性,更加有效抵抗对相同掩码的高阶攻击。

以上详细介绍了掩码方法的具体流程,该方法也可以通过装置实现,下面详细介绍该装置的结构和功能。

本发明实施例提供的一种分组加密算法防攻击的掩码装置,参见图5所示,包括:第一掩码模块501、掩码处理模块502和抵消掩码模块503。

第一掩码模块501,用于将获取的明文与第一掩码M1进行异或运算,将引入第一掩码M1的明文作为第1轮运算的输入值,并执行第1轮运算;

掩码处理模块502,用于在执行第i轮运算之前,将获取的第i-1轮的运算结果与掩码Mi进行异或运算,再与抵消掩码Mi-1’进行异或运算,将两次 异或运算后的结果作为第i轮运算的输入值,其中,2≤i≤n,n为分组加密算法的轮数;抵消掩码Mi-1’用于抵消第i-1轮的运算结果中引入的一个掩码;

抵消掩码模块503,用于在执行完第n轮运算之后,将第n轮的运算结果与抵消掩码Mn’进行异或运算,并将异或运算结果作为分组加密算法的密文输出;抵消掩码Mn’用于抵消第n轮的运算结果中引入的所有掩码。

优选的,参见图6所示,本发明实施例提供的掩码装置还包括:寄存模块504。

寄存模块504用于在第一掩码模块501在将获取的明文与第一掩码M1进行异或运算之后,将引入第一掩码M1的明文存入寄存器中。

优选的,参见图6所示,该掩码装置还包括:第二掩码模块505。

第二掩码模块505用于在寄存模块504将引入第一掩码M1的明文存入寄存器中之后,将从寄存器中读取的引入第一掩码M1的明文与掩码m进行异或运算,且第1轮运算的输入值为引入第一掩码M1和掩码m的明文。

优选的,参见图6所示,该掩码装置还包括:随机数模块506。

随机数模块506用于在第1轮运算中引入随机数R1,且在第i轮运算中引入随机数Ri。

其中,抵消掩码Mi-1’还用于抵消第i-1轮的运算结果中引入的随机数Ri-1;抵消掩码Mn’还用于抵消第n轮的运算结果中引入的随机数Rn。

本发明实施例提供的一种分组加密算法防攻击的掩码方法和装置,采用了多值掩码的方法,每轮运算中有互相不同的掩码参与运算,每个运算位置保证了不同掩码,可以避免对相同掩码的高阶攻击,使加密算法更安全可靠。通过对明文引入掩码m,进一步可以保证运算位置至少有两个不同掩码,进一步提高安全性,更加有效抵抗对相同掩码的高阶攻击。

本发明能有多种不同形式的具体实施方式,上面以图1-图6为例结合附图对本发明的技术方案作举例说明,这并不意味着本发明所应用的具体实例只能局限在特定的流程或实施例结构中,本领域的普通技术人员应当了解,上文所提供的具体实施方案只是多种优选用法中的一些示例,任何体现本发明权利要求的实施方式均应在本发明技术方案所要求保护的范围之内。

最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的 技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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