用于引入白箱实现对串集合的依赖性的方法
【专利说明】
[0001] 本专利申请涉及Michiels等的题为"METHODFORINCLUDINGAN頂PLICIT INTEGRITYORAUTHENTICITYCHECKINTOAWHITE-BOXIMPLEMENTATION"的美国专利申请 No. 14/263, 429 (下文称为"相关申请")。
技术领域
[0002] 这里公开的多种示例性实施例一般地涉及用于引入白箱实现对串集合的依赖性 的方法。
【背景技术】
[0003] 互联网给用户带来了对数字内容的便捷且普及的访问。由于互联网是强大的分发 通道,所以许多用户设备都力求能够直接访问互联网。用户设备可以包括个人计算机、膝上 型计算机、机顶盒、互联网启用的媒体播放器、移动电话、智能手机、平板电脑、移动热点或 能够访问互联网的任意其它设备。将互联网用作版权内容的分发介质在确保内容提供商的 利益方面带来了极大的挑战。用户设备越发普遍地使用加载了适当软件的处理器来呈现 (回放)数字内容(比如音频和/或视频)。对回放软件的控制是加强内容拥有者的利益 的一种手段,其中包括可以使用所述内容的条款和条件。此前,许多用户设备是封闭系统。 如今,越来越多的平台变为部分开放的。一些用户可以被假定为能够完全地控制和访问提 供内容访问的硬件和软件,并拥有大量时间和资源来攻击和绕过任意内容保护机制。结果, 内容提供商必须在社区的恶意网络上将内容递送给合法用户,其中所述社区中并不是所有 用户或用户设备都是可信的。
[0004] 可以访问安全软件应用来执行多种功能,比如用来保护和认证数字内容的密码功 能。为了对抗攻击,必须对这些算法进行模糊处理(隐藏),以防止对算法进行反向工程和 修改或禁止获得用户特定安全信息。从而,可以通过如实现安全软件的处理器的指令集所 限定的多种功能来执行安全软件应用的功能。例如,一种用来掩盖这些功能的手段是使用 查找表。
[0005] 对数字版权管理(DRM)和其它安全软件的广泛使用引起了对于寻求使得对软件 的篡改更加复杂的安全、防篡改的软件的需求。存在多种用来提高软件应用的防篡改的技 术。这些技术大多基于以下方面:通过在软件应用的控制和数据路径中都加入随机性和复 杂性掩饰来隐藏所述应用的嵌入知识。其背后的构思在于,只通过代码检查来提取信息将 更加困难。因此,找到处理安全应用的访问和许可控制的代码并进而将其改变是更加困难 的。
[0006] 本文所使用的白箱密码包括在攻击者已经对运行白箱密码软件的系统完全控制 的环境中执行密码功能的安全软件应用。从而,攻击者可以修改输入和输出,追踪软件的操 作,在任意时刻对软件所使用的存储器进行采样和监测,甚至修改软件。从而,需要通过防 止公开安全功能中使用的秘密信息的方式来执行安全功能。可以通过多种方式来实现白箱 密码功能。这些方法包括:掩盖软件代码;使用掩盖秘密信息的使用的复杂数学函数;使用 查找表;使用有限状态机;或执行密码功能但隐藏这些安全功能所需的秘密信息的任何其 它方法。白箱实现还可以包含包括反调试和防篡改属性的组件。
[0007] 密码算法的软件实现比硬件实现更受欢迎有多种理由。比如,可以是因为在密钥 泄漏的情况下软件方案是可更新的、因为其成本低、或因为应用开发者不对实现白箱系统 的硬件有任何影响。
【发明内容】
[0008] 下文给出了对多种示例性实施例的简要概述。以下概述中可以进行一些简化和省 略,其是为了强调和介绍多种示例性实施例的一些方面,而不是为了限制本发明的范围。随 后的内容中将对足以使得本领域技术人员能够实施和使用发明构思的示例性实施例进行 详细描述。
[0009] 多种示例性实施例涉及一种编码有指令的非瞬时机器可读存储介质,所述指令由 密码实现在密码系统中执行以用于执行密码操作,所述非瞬时机器可读存储介质包括:用 于由所述密码系统接收标识串值的指令;用于由所述密码系统接收输入消息的指令;用于 由所述密码系统执行将所述输入消息映射到输出消息的带密钥密码操作的指令,其中当所 述标识串值是绑定串值的集合中的一个绑定串值时,所述输出消息是正确结果,其中所述 集合包括多个绑定串值。
[0010] 描述了多种实施例,其中,当所述标识串值不在所述绑定串值的集合中时,存在输 出消息是不正确结果的输入消息。
[0011] 描述了多种实施例,其中,所述标识串值基于所述密码实现的标识。
[0012] 描述了多种实施例,其中,所述标识串值基于所述密码系统中的码的一部分的散 列。
[0013] 描述了多种实施例,其中,所述标识串值基于所述密码系统的标识。
[0014] 描述了多种实施例,其中,所述标识串值基于用户密码。
[0015] 描述了多种实施例,其中,密码实现包括多个函数,所述多个函数包括第一函数和 第二函数,以及所述非瞬时机器可读存储介质还包括:用于基于所述标识串值对所述第一 函数的输出进行编码的指令;以及用于对经编码的所述第一函数的输出执行所述第二函数 的指令,其中所述第二函数包括:使用所述绑定串值的集合对所述第一函数的经编码的输 出进行解码。
[0016] 描述了多种实施例,其中,密码实现包括多个函数,所述多个函数包括第一函数和 第二函数,以及所述非瞬时机器可读存储介质还包括:用于使用所述绑定串值的集合对所 述第一函数的输出进行编码的指令;用于对经编码的所述第一函数的输出执行第二函数 的指令,其中所述第二函数包括基于所述标识串值对所述第一函数的经编码的输出进行解 码。
[0017] 描述了多种实施例,其中密码实现包括多个函数,所述多个函数包括第一函数第 二函数,以及所述非瞬时机器可读存储介质还包括:用于使用所述标识串值对所述第一函 数的输出进行扰动的指令;以及用于对所述第一函数的经扰动的输出执行所述第二函数的 指令,其中所述第二函数包括使用所述绑定串值的集合补偿所述第一函数的输出的扰动。
[0018] 描述了多种实施例,其中,密码实现包括多个函数,所述多个函数包括第一函数和 第二函数,以及所述非瞬时机器可读存储介质还包括:用于基于所述标识串值在所述第一 函数的计算中引入扰动的指令;以及用于基于所述绑定串值的集合在所述第二函数的计算 期间补偿所述第一函数的所述计算中的扰动的指令。
[0019] 描述了多种实施例,其中,密码实现包括多个函数,所述多个函数包括第一函数和 第二函数,以及所述非瞬时机器可读存储介质还包括:用于基于所述绑定串值的集合在所 述第一函数的计算中引入扰动的指令;以及用于基于所述标识串值在所述第二函数的计算 期间补偿所述第一函数的所述计算中的扰动的指令。
[0020] 描述了多种实施例,其中,所述密码系统包括有限状态机的网络。
[0021] 描述了多种实施例,其中,所述密码系统包括查找表的网络。
[0022] 描述了多种实施例,其中,所述密码操作是高级加密系统(AES)或数据加密标准 (DES)之一。
[0023] 描述了多种实施例,其中,所述密码实现包括多个函数,所述多个函数包括第一函 数和第二函数,以及所述非瞬时机器可读存储介质还包括:用于基于所述标识串值修改所 述第一函数的指令。
[0024] 描述了多种实施例,其中,所述第一函数是多个指令,并且基于所述标识串值修改 所述第一函数包括:基于所述标识串值产生修改串值,并且其中使用所述修改串值来实现 所述多个指令的一部分。
[0025] 此外,多种示例性实施例涉及一种在密码系统中产生将输入消息映射到输出消息 的密码操作的密码实现的方法,所述密码系统将所述密码实现绑定到绑定串值,所述方法 包括:接收指定所述绑定串值的集合的信息;修改密码实现以接收标识串值;基于所接收 的指定所述绑定串值的集合的信息修改所述密码实现,以使得:当所接收的标识串值是所 述绑定串值的集合中的一个绑定串值时,所述密码实现输出正确输出消息。
[0026] 描述了多种实施例,其中,当所接收的标识串值不是所述绑定串值的集合中一个 绑定串值时,所述密码实现输出不正确输出消息。
[0027] 描述了多种实施例,其中,所述标识串值基于所述密码实现的标识。
[0028] 描述了多种实施例,其中,所述标识串值基于所述密码实现的一部分的散列。描述 了多种实施例,其中,所述标识串值基于所述密码系统的标识。
[0029] 描述了多种实施例,其中,所述标识串值基于用户密码。
[0030] 描述了多种实施例,其中,所述密码实现包括多个函数,所述多个函数包括第一函 数和第二函数,以及修改所述密码实现以使得:基于所述标识串值对所述第一函数之一的 输出进行编码;以及对经编码的所述第一函数的输出执行第二函数,其中所述第二函数包 括使用所述绑定串值的集合对所述第一函数的经编码的输出进行解码。
[0031] 描述了多种实施例,其中,所述密码实现包括多个函数,所述多个函数包括第一函 数和第二函数,以及修改所述密码实现以使得:基于所述绑定串值的集合对所述第一函数 之一的输出进行编码;以及对经编码的所述第一函数的输出执行第二函数,其中所述第二 函数包括基于所述标识串值对所述第一函数的经编码的输出进行解码。
[0032] 描述了多种实施例,其中,所述密码实现包括多个函数,所述多个函数包括第一函 数和第二函数,以及修改所述密码实现以使得:使