在白盒实现方案中拆分s盒以防止攻击的制作方法

文档序号:9330524阅读:326来源:国知局
在白盒实现方案中拆分s盒以防止攻击的制作方法
【技术领域】
[0001] 本文所公开的多种示例实施例总体上涉及保护白盒密码组件不受攻击。
【背景技术】
[0002] 互联网向用户提供了对数字内容进行访问的方便性和普遍性。由于互联网是强大 的分发渠道(distribution channel),许多用户设备力图直接访问互联网。用户设备可以 包括个人计算机、膝上型计算机、机顶盒、支持互联网的媒体播放器、移动电话、智能电话、 平板、移动热点或能够访问互联网的任何其它设备。将互联网用作正版内容的分发媒介产 生了关于保护内容提供者利益的紧迫问题。越来越多的用户设备使用加载有适合软件的处 理器来运行,以便呈现(回放)诸如音频和/或视频等数字内容。对回放软件进行控制是 强加内容所有者利益的一种方式,包括可以使用内容的条款和条件。以前的许多用户设备 是封闭式系统。现今,越来越多的平台是部分开放的。可以假定一部分用户具有对硬件和 软件的完全控制并接入硬件和软件,其中硬件和软件提供对内容的访问,并且具有大量时 间和资源来攻击和避开任何内容保护机制。因此,内容提供者必须在恶意网络社区上向合 法用户传递内容,在所述恶意网络社区中,并非所有用户或用户设备是可以信任的。
[0003] 例如,安全软件应用一旦被调用就执行多种功能,例如用于保护并认证数字内容 的密码功能。为了抵御攻击,这些算法必须是混乱的(隐藏的),以便防止对所述算法进行 反向工程和修改,或禁止获得特定用户安全信息。因此,可以通过由实现安全软件的处理器 的指令集限定的多种功能,执行安全软件应用功能。例如,模糊这些功能的一种方式是通过 使用查找表。
[0004] 内容提供者必须在恶意网络社区上向合法用户传递内容,在所述恶意网络社区上 并非所有用户或设备是可以信任的。这样引起白盒密码学的开发。在白盒密码学情境下, 假定用户完全控制对内容提供访问的硬件和软件,并具有无限量的时间和资源来攻击和避 开任何内容保护机制。强加可以使用内容的条款和条件的安全软件代码应是防篡改的。数 字版权管理是安全软件应用的普通应用。对分布于用户设备上的受保护内容进行数字版权 管理的一般方法是使用例如DES (数据加密标准)、AES (高级加密标准)或使用其它已知加 密原理来对数字内容进行加密,并使用解密密钥来恢复数字内容。必须保护这些解密密钥 以便防止对受保护的内容进行未授权访问。
[0005] 在数字版权管理情况下,攻击者完全控制对所保护内容进行管理和访问的软件。 因此,攻击者可以修改软件并还可以搜索以获得用于对所保护内容进行加密的密码密钥。 可以通过分析软件指令、在操作期间监控存储器(具体地,当运行密码函数或使用调试器 时),来发现这种密钥。
[0006] 广泛使用DRM和其它安全软件引起了对安全的、防篡改的软件的需要,安全的、防 篡改的软件设法使利用软件的篡改变得复杂化。存在多种用于增加软件应用的防篡改的技 术。大部分的这种技术是基于通过在所述软件应用的控制路径和数据路径二者中添加随机 性和复杂性的面纱,来隐藏所包含的应用知识。这种技术的构思在于仅通过代码检查(code inspection)来使得提取信息变得更加困难。因此,更难以寻找例如处理对所述安全应用的 访问和准许控制的代码,并对其进行改变。
[0007] 如本文所用,白盒密码学包括在攻击者完全控制运行白盒密码软件的系统的环境 下,执行密码功能的安全软件应用。因此,攻击者可以修改输入和输出,跟踪所述软件的运 算,在任何时刻采样并监控所述软件使用的存储器,甚至修改软件。因此,需要以防止公开 在所述安全功能中使用的安全信息的方式来执行安全功能。可以以多种方式来执行白盒密 码功能。这种方法包括:模糊(obscuring)软件代码;使用模糊对秘密信息的使用的复杂数 学函数;使用查找表;使用有限状态机;或执行密码功能并隐藏安全函数所需的秘密信息 的任意其它方法。白盒实现方案还可以包含包括抗调试和防篡改特性的组件。

【发明内容】

[0008] 下文提出对多种示例实施例的简要概述。可能在以下概述中进行了一部分简化和 省略,简化和省略是为了强调和介绍所述多种示例实施例的一些方面,而不是为了限制本 发明的范围。下文是对示例实施例的详细描述,足以允许本领域技术人员利用本发明构思。
[0009] 多种示例实施例涉及一种执行将输入消息映射到输出消息的加密钥的密码运算 (keyed cryptographic operation)的方法,其中所述输入消息包括m个输入数据,所述输 出消息包括m个输出数据,其中所述密码运算包括至少一个回合,所述密码运算规定了用 于将输入数据映射到输出数据的替换盒(substitution box),所述方法包括:使用η个拆 分替换盒将m个输入数据中的每个变换为η个输出数据,其中所述η个拆分替换盒总和为 所规定的替换盒;以及混合和组合mxn个输出数据。
[0010] 描述了多种示例实施例,还包括:m个拆分替换盒集合,每个集合中包括η个拆分 替换盒,其中应用到多个输入数据中的每个的所有拆分替换盒集合是彼此不同的,每个集 合中包括η个拆分替换盒,所述η个拆分替换盒总和为所规定的替换盒。
[0011] 描述了多种示例实施例,还包括:m个拆分替换盒集合,每个集合中包括η个拆分 替换盒,其中应用到多个输入数据中的每个的至少两个拆分替换盒集合是彼此不同的,每 个集合中包括η个拆分替换盒,所述η个拆分替换盒总和为所规定的替换盒。
[0012] 描述了多种示例实施例,其中所述混合和组合mxn个输出数据包括:在将m个输出 集合中的每个集合的η个输出中的至少一个与该输出集合的其它n-1个输出中之前,将所 述η个输出中的至少一个与另一集合的η个输出中的至少一个输出相组合。
[0013] 描述了多种实施例,其中所述输入数据是输入到加密钥的密码运算的第一回合中 的未编码数据。
[0014] 描述了多种实施例,其中组合的输出数据用于计算输出消息的一部分,其中所述 输出消息是加密钥的密码运算的最后回合的未编码输出。
[0015] 描述了多种实施例,其中所述密码运算是高级加密标准。
[0016] 描述了多种实施例,其中所述密码运算是数据加密标准。
[0017] 描述了多种实施例,其中使用与η个拆分替换盒相对应的η个查找表,来实现所述 使用η个拆分替换盒将输入数据变换为η个输出数据,其中所述η个查找表将η个拆分替 换盒与密码密钥相组合。
[0018] 描述了多种实施例,其中对η个输出数据进行编码,在η个查找表中实现所述编 码。
[0019] 描述了多种实施例,其中使用与η个拆分替换盒相对应的η个有限状态机,来实现 使用η个拆分替换盒将输入数据变换为η个输出数据,其中所述η个有限状态机将η个拆 分替换盒与密码密钥相组合。
[0020] 此外,多种示例实施例涉及一种执行高级加密标准(AES)密码运算的方法,包括: 通过AES密码运算的第一回合,接收AES状态的四个未编码输入列字节;将第一个未编码 输入列字节输入到η个第一查找表中,以便获得η个第一输出值,其中所述η个第一查找表 中的每个查找表组合η个第一拆分S盒之一、第一密码密钥以及MixColumn常数,其中所述 η个第一拆分S盒总和为AES S盒;将第二个未编码输入列字节输入到η个第二查找表,以 便获得η个第二输出值,其中所述η个第二查找表中的每个查找表组合η个第二拆分S盒 之一、第二密码密钥以及MixColumn常数,其中所述η个第二拆分S盒总和为AES S盒;将 第三个未编码输入列字节输入到η个第三查找表,以便获得η个第三输出值,其中所述η个 第三查找表中的每个查找表组合η个第三拆分S盒之一、第三密码密钥以及MixColumn常 数,其中所述η个第三拆分S盒总和为AES S盒;将第四个未编码输入列字节输入到η个第 四查找表中,以便获得η个第四输出值,其中所述η个第四查找表中的每个查找表组合η个 第四拆分S盒之一、第四密码密钥以及MixColumn常数,其中所述η个第四拆分S盒总和为 AES S盒;所述将η个编码的第一、第二、第三和第四输出值混合并组合为AES密码运算的 第一回合的输出AES状态的编码输出字节。
[0021] 描述了多种实施例,还包括:接收AES密码运算的最后回合的输入状态的四个编 码输入列字节;将第一个编码输入列字节输入到m个第一查找表中,以便获得m个第一输出 值,其中所述m个第一查找表中的每个查找表组合m个第二拆分S盒之一、第一密码密钥以 及MixColumn常数,其中所述m个第二拆分S盒总和为AES S盒;将第二个编码输入列字节 输入到m个第二查找表中,以便获得m个第二输出值,其中所述m个第二查找表中的每个查 找表组合m个第二拆分S盒之一、第二密码密钥以及MixColumn常数;将第三个编码输入列 字节输入到m个第三查找表中,以便获得m个第三输出值,其中
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1