对抗对基于表的实现的2阶和更高阶DCA攻击的方法技术

技术编号:21178485 阅读:46 留言:0更新日期:2019-05-22 12:39
本发明专利技术涉及一种用于对抗2阶和更高阶DCA攻击的方法,所述2阶和更高阶DCA攻击应用于加密算法的分组密码的基于编码的表(TCabi,j)的实现,所述加密算法的分组密码要应用于消息(m),所述方法包括以下步骤:‑将要应用于消息(m)的加密算法分组密码转换为一系列查找表(Tabi,j),‑应用秘密可逆编码以得到一系列查找表(TCi,j),‑计算依赖于消息的掩蔽值,包括:基于至少两个不同的消息导出函数(F1,F2)计算针对表网络的输入的至少两份掩蔽值(mmask1,mmask2),‑使用计算的依赖于消息的掩蔽值(mmask1,mmask2)重新随机化所述表(TCi,j),‑基于随机化的表(TCi,j)的网络计算要应用于消息(m)的轮回。

A Method of Countering 2nd-order and Higher-order DCA Attacks to Table-based Implementation

The present invention relates to a method for countering second-order and higher-order DCA attacks. The second-order and higher-order DCA attacks are applied to the implementation of encoding-based tables (TCabi, j) for block ciphers of cryptographic algorithms. The block ciphers of the cryptographic algorithms are applied to messages (m). The method includes the following steps: (1) The block ciphers of cryptographic algorithms to be applied to messages (m) are converted into a series of lookups. Tables (Tabi, j), Secret reversible encoding is applied to obtain a series of lookup tables (TCi, j), calculation of message-dependent masking values, including: calculation of at least two masking values (mmask1, mmask2) for input to table networks based on at least two different message export functions (F1, F2), use of computed message-dependent masking values (mmask1, mmask2) to re-randomize the tables (TCi, j) Network computing based on randomized tables (TCi, j) is applied to message (m) recycling.

【技术实现步骤摘要】
【国外来华专利技术】对抗对基于表的实现的2阶和更高阶DCA攻击的方法
本专利技术涉及一种用于对抗对分组密码的基于编码的表的实现应用的2阶和更高阶DCA攻击的方法。更具体地,本专利技术涉及在“白盒”术语下已知的加密分组密码(如DES和AES)的软件实现。本专利技术还涉及实现所述方法的设备。
技术介绍
白盒实现背后的构思是将密钥嵌入加密操作的实现中,使得攻击者难以提取关于该密钥的信息。白盒密码术的学术研究始于2002年在Chow、Eisen、Johnson和vanOorschot的开创性工作中。他们提出了一些通用技术,这些通用技术可用于帮助创建抵抗密钥提取的加密实现。他们应用这些技术来产生分组密码AES和DES的示例实现。目前,所有学术白盒技术在理论上都已被使用密码分析技术打破。然而,市场上可获得基于白盒密码术的商业解决方案。差分计算分析(DCA)是最近为评估白盒实现的安全性而引入的攻击。它是差分功率分析(DPA)攻击的软件对应物。与针对DPA所做的工作类似,攻击者必须在执行加密实现期间收集软件痕迹。DCA论文的作者开发了插件用于产生软件执行痕迹,软件执行痕迹包含有关正被访问的存储器地址的信息。通过使用这些痕迹,作者展示了DCA如何能够从所有公开可获得的实现标准化密码术的白盒程序(包括非商业化白盒程序)中提取密钥。该攻击既不需要关于查找表使用的知识,也不需要显著的逆向工程努力。阻止一阶DPA的通常建议的方式是随机掩蔽,随机掩蔽可以应用于对抗DCA攻击。智能卡情境和白盒情境之间的重要差别是,虽然智能卡通常提供可靠的熵源,但在白盒环境中并非如此。然后,随机掩蔽对抗措施必须适应于白盒环境。而且,然而已知的是,如果攻击者知道如何每次计算多次关联功耗,则可以使掩蔽失效。这被称为二阶,或更一般地,高阶功率分析。已知在实践中发动这些高阶DPA攻击更加复杂。与针对DPA攻击定义的内容类似,当攻击者尝试每次执行多次关联计算值时,可以考虑高阶DCA攻击。在软件安全性情境中,高阶攻击似乎比侧信道分析的情况更容易发动。DCA攻击是最近的,并且目前,1阶DCA足以攻击白盒实现。为了防止1阶DCA攻击,例如可以使用例如在EP2406916中提出的可变编码。不知道解决相同技术问题的明显的替代方式。而且,目前,DCA攻击尚未泛化到二阶DCA或更高阶。这可能是文献中目前尚未考虑高阶DCA攻击的原因。新颖的是提出针对DCA攻击泛化的对抗措施。在任何情况下,等待这种二阶攻击,并且因此期望对抗措施。
技术实现思路
本专利技术的目的在于提供一种分组密码的软件实现,该软件实现可以抵抗2阶或更高阶的直接DCA。本专利技术基于加密DES/AES的基于编码的表的实现,例如由Chow等人提出的。这种实现用于提供局部安全性,局部安全性意味着不可能通过检查编码的S盒来提取任何有用的信息。这意味着攻击必须是非局部的。然而,Chow等人提出的DES/AES的基于编码的表的实现对任何阶的DCA都没有抵抗力。因此,本专利技术的目的在于避免上述恶意DCA攻击或至少使上述恶意DCA攻击更加困难。更一般地,本专利技术是在基于编码的表的实现上应用的对抗措施,以便抵抗2阶或更高阶t的DCA并且抵抗组合攻击,其中在执行期间攻击者能够最多固定1个或者更高数量p-1个相关值。从本专利技术最广泛的意义上,本专利技术被定义为用于对抗2阶及更高阶DCA攻击的方法,所述DCA攻击被应用在要应用于消息的加密算法的分组密码的基于编码的表的实现上,所述方法包括以下步骤:-将要应用在消息上的加密算法分组密码转换成一系列查找表,-应用秘密可逆编码以得到一系列查找表,-计算依赖于消息的掩蔽值,包括基于至少两个不同的消息导出函数F1和F2计算针对表网络的输入的表示为mmask1和mmask2的至少两份掩蔽值,-使用计算的依赖于消息的掩蔽值重新随机化所述表,-基于随机化的表网络计算要应用于消息的轮回。此解决方案将需要攻击者在组合攻击中修改至少2个值或更多数量的值。一个附加属性是,如果攻击者在执行期间成功设置到恒定的一个相关值或p-1个相关值,则随机化方法继续起作用。因此,根据本专利技术的方法允许降低恶意攻击的风险。至少,对于恶意攻击者来说,攻击实施更复杂。根据优选实施例,针对表网络的输入的表示为mmask1和mmask2的至少两份掩蔽值的计算还基于使用混淆技术在代码中混淆的至少两个秘密恒定值emask1和emask2。这使得能够在攻击者已猜出或逆转对输入消息m应用的导出函数的规范的情况下防止攻击者能够计算掩蔽值mmask1和mmask2的值。实际上,需要知道混淆值emask1和emask2才能计算mmask1和mmask2。在特定实现中,如下那样获得所述至少两份掩蔽值,其中n是取决于所涉及的加密算法分组密码的整数:h1=F1(m)(或者h1=F1(M))h2=F2(m)(或者h2=F2(M))该实现使得能够保证,假设在h1和h2的计算或h1和h2的截断过程期间攻击者试图将一个值固定到恒定值,则mmask1和mmask2这两个值将都不是恒定的,并且假设攻击者在计算mmask1和mmask2结束时试图固定一个值,那么这两个值中的一个将不是恒定的。此实现防止如下可能性:攻击者使用单个故障点将在仅修改一个值的情况下把mmaskl和mmask2设置到恒定值。根据第一应用,加密算法分组密码是DES算法的一部分,n=96。这对应于本专利技术对DES算法的应用。消息m是长度为64位的分组密码DES的输入消息。函数F1可以应用于例如输入分组消息m或应用于DES的初始排列IP之后的分组消息,并且M=IP(m)具有64位长度。F1和F2的输出长度为192位或更大,并且emask1、emask2、mmask1和mmask2的长度为96位。根据另一个应用,加密算法分组密码是AES算法的一部分,n=128。这对应于本专利技术对AES算法的应用。消息m是长度为128位的分组密码AES的输入消息。F1和F2的输出长度为256位或更大,并且emask1、emask2、mmask1和mmask2的长度为128位。根据本专利技术的有利特征,进一步使用随机秘密函数来导出所有掩蔽值,所述随机秘密函数被累积地应用于几层表。利用此特征,可以一方面根据mmaskl并且另一方面根据mmask2以确定的方式导出掩蔽值的两个序列,掩蔽值的两个序列将遍及实现中不同层的表使用,以便掩蔽表的输入和输出值。为了防止攻击者从中间掩蔽值导出掩蔽值,必须尽可能地将导出函数的规范保密。甚至更有利地,随机秘密函数被累积地应用于连续层的表。通过对连续层的表累积地应用随机秘密函数,它增加了侧信道分析的复杂性,因为掩蔽值在实现中在每一层的表处都被改变。优点是它降低由于多次使用相同掩蔽值而导致的信息泄漏的风险。根据特定实现,随机秘密函数的累积应用如下,i是第一层的表的索引:对于第一层的表,对于所有x,利用mmask1,l是第一层中表i的掩蔽的值,计算:对第一层的这种应用提供了安全性优势,因为对输入进行掩蔽的值(即mmaskl、、i)从未被明确计算,并且对输出进行掩蔽的值(即G(mmask1,i)G(mmask2,i))也从未被明确计算,同时利用值mmaskl、immask2、i对输入并且利用值G(mmask1,i)G(mmask2,i)对输出,表本文档来自技高网
...

【技术保护点】
1.用于对抗2阶和更高阶DCA攻击的方法,所述2阶和更高阶DCA攻击应用于加密算法的分组密码的基于编码的表(TCi,j)的实现,所述加密算法的分组密码要应用于消息(m),所述方法包括以下步骤:‑ 将要应用于消息(m)的加密算法分组密码转换为一系列查找表(Tabi,j),‑ 应用秘密可逆编码以得到一系列查找表(TCi,j),‑ 计算依赖于消息的掩蔽值,包括:基于至少两个不同的消息导出函数(F1,F2)计算针对表网络的输入的至少两份掩蔽值 (mmask1,mmask2),‑ 使用计算的依赖于消息的掩蔽值(mmask1,mmask2)重新随机化所述表(TCi,j),‑ 基于随机化的表(TCi,j)的网络计算要应用于消息(m)的轮回。

【技术特征摘要】
【国外来华专利技术】2016.09.27 EP 16306234.21.用于对抗2阶和更高阶DCA攻击的方法,所述2阶和更高阶DCA攻击应用于加密算法的分组密码的基于编码的表(TCi,j)的实现,所述加密算法的分组密码要应用于消息(m),所述方法包括以下步骤:-将要应用于消息(m)的加密算法分组密码转换为一系列查找表(Tabi,j),-应用秘密可逆编码以得到一系列查找表(TCi,j),-计算依赖于消息的掩蔽值,包括:基于至少两个不同的消息导出函数(F1,F2)计算针对表网络的输入的至少两份掩蔽值(mmask1,mmask2),-使用计算的依赖于消息的掩蔽值(mmask1,mmask2)重新随机化所述表(TCi,j),-基于随机化的表(TCi,j)的网络计算要应用于消息(m)的轮回。2.根据权利要求1所述的方法,其中,针对所述表(TCi,j)网络的输入的至少两份掩蔽值(mmask1,mmask2)的计算还基于使用混淆技术在代码中混淆的至少两个秘密恒定值(emask1,emask2)。3.根据权利要求2所述的方法,其中,所述至少两份掩蔽值(mmask1,mmask2)如下那样获得,其中n是取决于所涉及的加密算法分组密码的整数:h1=F1(m)(或者h1=F1(M))h2=F2(m)(或者h2=F2(M))。4.根据权利要求3所述的方法,其中,所述加密算法分组密码是DES算法的一部分,n=96。5.根据权利要求3所述的方法,其中,所述加密算法分组密码是AES算法的一部分,n=128。6.根据权利要求2至5之一所述的方法,其中,随机秘密函数(G)还用于导出所有掩蔽值,所述随机秘密函数被应用于几层表。7.根据权利要求6所述的方法,其中,所述随机秘密函数(G)累积地应用于连续层的表。8.根据权利要求7所述的方法,其中,所述随机秘密函数(G)的累积应用如下,i是所述层中的表的索引,对于第一层的表(T),计算:对于所有X,并且对于所有x,。9.根据权利要求7所述的方法,其中,所述随机秘密函数(G)的累积应用如下,i是所述层中的表的索引:对于第一层的表,对于所有x,计算:。10.根据权利要求8或9之一所述的方法,其中随机秘密函数(G)的累积应...

【专利技术属性】
技术研发人员:A古热
申请(专利权)人:格马尔托股份有限公司
类型:发明
国别省市:法国,FR

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

1