保护白盒实现方案不受攻击的制作方法_5

文档序号:9435993阅读:来源:国知局
的数目增加了n倍,S卩,接收到16n个输入字节。这意味着为了计算第二字节 的单个输出字节,不将四个Q盒输出字节相加,而是将4n个Q盒输出字节相加。文中,可以 将这4n个输出字节划分为四个n元组,其中每个n元组经由关系Mj') = 及(少> 表示原始S 盒的输出。如上所述,出于以下原因,通常不对总和为h(y)的n个值Pjy),P2(y),...,My)进行明确异或。
[0144] 假定经由例如查找表来明确异或n个值0i(y),0 2(y),. . .,0n(y)。代替对S盒 的输入进行攻击,然后攻击者可以对值h(y)进行攻击,值h(y)与S盒的输入具有固定双射 关系。如果以不同顺序对4n个值进行异或和/或在对这些值进行异或的同时对下一回合 应用拆分函数ai,则上述不再可能出现,在这种情况下,不再显式地对(y),02(y),..., Pn(y)进行异或。
[0145] 还应注意,由于S盒通常与其它函数相结合,通常不显式地计算Pjy)。在将S盒 与它随后的MixColumns运算相合并的实施例中,同样是这样的。因此,针对MixColumns系 数MC,计算值MC? 0.j(y),而不是0.j(y)。
[0146] 实施例的特征在于:rGW的选择依赖于基于输入的计算并且它不是固定的。在 上述实施例中,n= 4,rGw的选择仅依赖于输入字节中的一个。能够使用更多输入字节 来进行计算以便进一步强化对Billet攻击的对抗性。这在下文进一步对此进行描述,其中 n= 2,rGW的选择依赖于四个输入字节。
[0147] 现在描述本发明的第二示例实施例,该实施例用于实现计算AES的第一回合的输 出字节z2,3。类似地运行对其它字节的计算。在第一回合中,计算n= 2-字节元组am(z2, 3),a2,3,2(z2,3),其中仿射函数a2,3,^择来自W并且不是固定的。对于一些ckeGF(2s)\{0} 作为来自W的要素意味着:xBQY,其中C2 = 1十q。
[0148] 第一回合存在对z2,3的值做贡献的4个输入字节。首先,如上所述,对这四个输入 字节执行Q盒运算。令y1>3,2是这四个Q盒运算的第i个输出字节。现在令(^是6?(28)中 y1>3,2的前四个半字节的乘积,除非ci它等于1。在ci等于1的情况下将ci设置为2。也就 是说:
[0149]
[0150] 应注意,()没2,1,〇,〇,〇)表示通过向半字节添加1和3个零而获得的字节。此 外,C2 。应注意,(^和c2都不等于〇,这是必要条件。然后,以上述相同方式使用cp (:2值。可以将这种实施例扩展为其它n值。此外,还可以使用用于确定(^值的其它计算, 以便令将Xi拆分为n个值会根据输入而改变。将这种计算合并在由查找表实现的多个函 数中,以便混乱正在执行的函数。
[0151] 在本发明的其它实施例中,除了拆分输入之外,还可以拆分密码函数的S盒或非 线性映射函数。例如,在AES中,可以将输入ajx),a2(x),...,an(x)中的每个输入到 m个拆分S盒中。拆分S盒的总和将是原始的AESS盒。然后,可以以和上述拆分输入的 实施例相似的方式,来组合所拆分S盒的输出。此外,可以在同时待审的题为"SPLITTING S-BOXESINAWHITE-BOX頂PLEMENTATIONTORESISTATTACKS"的美国专利申请No.TBD,AttorneyDocketNumber81629146US01中找到对使用拆分S盒的描述,其通过全文引用合 并与此。此外,可以将密码函数使用的任何非线性映射函数实现为单个函数或可以组成以 产生与所述非线性函数具有相同最终输出的函数组。
[0152] 可以在计算机上将根据本发明实施例的方法实现为计算机执行方法,或实现为专 用硬件,或二者的组合。可以将根据本发明的方法的可执行代码存储在计算机程序介质上。 计算机程序介质的示例包括存储器设备、光学存储设备、集成电路、服务器、线上软件等。
[0153]在本发明的实施例中,计算机程序可以包括计算机程序代码,适用于当在计算机 上运行计算机程序时,执行根据本发明的方法的所有步骤。优选地,计算机程序包括在非暂 时计算机可读介质上。
[0154]此外,由于白盒密码通常非常复杂和/或混乱,人们对它的写入感到乏味。因此, 有利的是具有以自动方式创建根据本发明实施例的密码系统的方法。
[0155] 可以在计算机上将创建根据本发明的密码系统的方法实现为计算机执行方法,或 实现为专用硬件,或二者的组合。可以将根据本发明的方法的可执行代码存储在计算机程 序介质上。在这种方法中,计算机程序可以包括计算机程序代码,用于当在计算机上运行所 述计算机程序时执行所述方法的所有步骤。计算机程序包括在非暂时性计算机可读介质 上。
[0156]在处理器上运行的用于执行本发明实施例的具体软件的任何组合构成了专用机 器。
[0157]本发明实施例的硬件系统实现方案可以包括实现白盒实现方案的基本块的硬件 元件。这些硬件元件可以包括例如查找表或有限状态机。这些硬件要素可以是互连的以便 全面执行白盒实现方案。
[0158] 如本文所用,应将术语"非暂时性机器可读存储介质"理解为包括暂时性的传播信 号,并且包括所有形式的易失性和非易失性存储器。
[0159] 如本文所用,应将术语"处理器"理解为包括诸如微处理器、场可编程门阵列 (FPGA)、专用集成电路(ASIC)和其它类似处理器件的多种器件。当在所述处理器上执行软 件时,所述组合成为单个具体机器。
[0160]本领域技术人员应认识到:文中的任何框图代表体现本发明原理的示意电路的构 思图。
[0161]尽管具体参考本发明的特定示例方面详细描述了多种示例实施例,然而应认识 至IJ,本发明包括其它实施例,本发明的详情包括多种明显方面的修改。对本领域技术人员显 而易见的是可以在本发明的精神和范围内进行多种变形和修改。因此,上述公开、描述和附 图仅是说明目的,而不是以任何方式限制本发明,本发明仅由权利要求来限定。
【主权项】
1. 一种通过将输入消息映射到输出消息的密码系统执行加密钥的密码运算的方法,其 中所述密码运算包括至少一个回合,所述至少一个回合包括配置为将输入数据映射到输出 数据的非线性映射函数,所述方法包括: 由所述密码系统将所述输入数据拆分为n个拆分输入数据,其中对输入数据的拆分基 于输入消息的值而改变; 将每个拆分输入数据输入到所述非线性映射函数中,以便获得n个拆分输出数据,其 中n个拆分输出数据的组合表示输出数据,其中当将所述输入数据输入到非线性映射函数 中时,得到所述输出数据。2. 根据权利要求1所述的方法,其中将每个拆分输入数据输入到所述非线性映射函数 中包括:将每个拆分输入数据输入到多个拆分映射函数中,其中对所述多个拆分映射函数 进行异或得到所述非线性映射函数。3. 根据权利要求1所述的方法,其中拆分和输入步骤与所述加密钥的密码运算的当前 回合有关,所述当前回合产生当前回合的输出,作为所述加密钥的密码运算的下一回合的 输入,其中所述加密钥的密码运算对所述加密钥的密码运算的下一回合的输入重复所述拆 分和输入步骤,所述输入数据被拆分为m个输入数据。4. 根据权利要求3所述的方法,其中下一回合中的m值大于当前回合中的n值,所述下 一回合是加密钥的密码运算的第二到最后回合。5. 根据权利要求3所述的方法,其中当前回合中的n值大于下一回合中的m值,其中所 述当前回合是加密钥的密码运算的第二回合。6. 根据权利要求1所述的方法,其中所述将输入数据拆分为n个拆分输入数据是前一 回合的一部分,其中前一回合的输出成为当前回合的输入。7. 根据权利要求1所述的方法,其中对输入数据的拆分依赖于输入数据的多个不同部 分。8. 根据权利要求1所述的方法,其中查找表实现所述加密钥的密码运算。9. 根据权利要求1所述的方法,其中有限状态机实现所述加密钥的密码运算。10. 根据权利要求1所述的方法,其中所述将每个拆分输入数据输入到所述非线性映 射函数中还包括:输入f1 〇ai〇f (X),其中函数f对输入数据X执行密钥添加函数,a1是 第i个拆分输入数据。11. 一种通过将输入消息映射到输出消息的密码系统执行加密钥的密码运算的方法, 其中所述密码运算包括至少一个回合,所述至少一个回合包括配置为将输入数据映射到输 出数据的非线性映射函数,所述方法包括: 由所述密码系统基于所述输入数据选择n对映射,其中所述n对映射包括第一映射和 第二映射,第一和第二映射是所述非线性函数的自等价集合,其中当将输入数据输入到所 述非线性函数中时,所述非线性函数的输出的第二映射的组合得到所述非线性函数的输出 的已知函数; 通过针对n个第一输入映射的每个,计算输入数据的第一映射,来将输入数据拆分为n个拆分输入数据; 将n个拆分输入数据中的每个输入到所述非线性映射函数中以便获得n个拆分输出数 据。12. 根据权利要求11所述的方法,其中将n个拆分输入数据中的每个输入到所述非线 性映射函数中包括:将n个拆分输入数据中的每个输入到多个拆分映射函数中,其中对所 述多个拆分映射函数进行异或得到所述非线性映射函数。13. 根据权利要求11所述的方法,其中选择、拆分和输入步骤与所述加密钥的密码运 算的当前回合有关,所述当前回合产生当前回合的输出,作为所述加密钥的密码运算的下 一回合的输入,其中所述加密钥的密码运算对所述加密钥的密码运算的下一回合的输入重 复所述选择、拆分和输入步骤,其中,将输入数据拆分为m个输入数据。14. 根据权利要求13所述的方法,其中下一回合中的m值大于当前回合中的n值,其中 所述下一回合是加密钥的密码运算的第二到最后回合。15. 根据权利要求13所述的方法,其中当前回合中的n值大于下一回合中的m值,其中 所述当前回合是加密钥的密码运算的第二回合。16. 根据权利要求11所述的方法,其中所述将输入数据拆分为n个拆分输入数据是前 一回合的一部分,其中前一回合的输出成为当前回合的输入。17. 根据权利要求11所述的方法,其中n个第一映射是仿射的。18. 根据权利要求17所述的方法,其中n个第二映射是仿射的。19. 根据权利要求11所述的方法,其中对输入数据的拆分依赖于输入数据的一个部 分。20. 根据权利要求11所述的方法,其中对输入数据的拆分依赖于输入数据的多个不同 部分。21. 根据权利要求11所述的方法,其中查找表实现所述加密钥的密码运算。22. 根据权利要求11所述的方法,其中有限状态机实现所述加密钥的密码运算。23. 根据权利要求11所述的方法,其中将每个拆分输入数据输入到所述非线性映射函 数中还包括:输入f1 〇ai〇f(x),其中函数f对输入数据X执行密钥添加函数,ai是第i 个第一映射。24. 根据权利要求11所述的方法,其中所述已知函数基于输入数据。
【专利摘要】一种执行将输入消息映射到输出消息的加密钥的密码运算的方法,其中密码运算包括至少一个回合,所述至少一个回合包括配置为将输入数据映射到输出数据的非线性映射函数,所述方法包括:将输入数据拆分为n个拆分输入数据,其中对输入数据的拆分基于输入消息的值而改变;将每个拆分输入数据输入到非线性映射函数中,以便获得n个拆分输出数据,其中n个拆分输出数据的组合表示输出数据,其中当将所述输入数据输入到非线性映射函数中时,得到所述输出数据。
【IPC分类】H04L29/06, H04L9/06
【公开号】CN105187364
【申请号】CN201510111665
【发明人】W·P·A·J·米歇尔斯
【申请人】恩智浦有限公司
【公开日】2015年12月23日
【申请日】2015年3月13日
【公告号】EP2922234A1, US20150270949
当前第5页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1