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