白箱实现中的行为指纹的制作方法_2

文档序号:9306508阅读:来源:国知局
密 码操作还包括:用于确定所述输入消息是指纹标识消息的指令;以及用于当所述输入消息 是指纹标识消息时,修改所述密码操作的输出的指令。
[0029] 描述了多种实施例,其中,修改所述密码操作的输出包括:使用用户特定值来修改 所述输出。
[0030] 描述了多种实施例,其中,将所述指纹标识消息映射到输出消息包括多个回合,其 中所述回合包括非线性映射函数和带密钥密码操作的状态;所述回合之一包括:通过将所 述回合中的状态的一部分与当所述输入消息是所述指纹标识消息时针对所述状态的一部 分产生的值进行比较,来确定所述输入消息是所述指纹标识消息;以及所述一个回合包括: 当所述输入消息是指纹标识消息时,修改所述密码操作的所述输出。
[0031] 描述了多种实施例,其中,修改所述密码操作的所述输出包括:将用户特定值与所 述状态的所述部分进行组合。
[0032] 描述了多种实施例,其中,将所述回合中的状态的一部分与当所述输入消息是所 述指纹标识消息时针对所述状态的一部分产生的值进行比较包括:将所述回合中的非线性 函数的输出与当所述输入消息是所述指纹标识消息时从所述非线性函数产生的值进行比 较。
[0033] 描述了多种实施例,其中,所述密码系统包括有限状态机的网络。
[0034] 描述了多种实施例,其中,所述密码系统包括查找表的网络。
[0035] 描述了多种实施例,其中,所述密码操作是高级加密系统AES或数据加密标准DES 之一。
[0036] 描述了多种实施例,其中,所述密码系统包括查找表的网络,所述密码操作是高级 加密系统AES操作,所述AES操作包括所述AES操作的状态和多个回合,所述AES回合之一 包括:通过将所述回合中的状态的一部分与当所述输入消息是所述指纹标识消息时针对所 述状态的一部分产生的值进行比较,来确定所述输入消息是指纹标识消息;以及所述一个 AES回合包括:当所述输入消息是指纹标识消息时,修改S箱的输出,以将用户特定值与所 述S箱的所述输出进行组合。
[0037] 描述了多种实施例,其中,用于将所述回合中的状态的一部分与当所述输入消息 是所述指纹标识消息时针对所述状态的一部分产生的值进行比较的指令包括:用于将所述 回合中的S箱的输出与当所述输入消息是所述指纹标识消息时从所述S箱产生的值进行比 较的指令。
【附图说明】
[0038] 为了更好地理解各种示例性实施例,对附图进行参考,其中:
[0039] 图1示出了AES的一个回合的主要步骤;
[0040] 图2示出了在对回合的输入进行固定编码的情况下的白箱AES实现;
[0041] 图3示出了借助查找表的网络对一个输出半字节的计算;
[0042] 图4示出了通过对输入和输出进行编码而模糊处理的图3的网络表的一部分;
[0043] 图5示出了实现指纹标识的白箱实现;
[0044] 图6示出了对比特进行组合以确定输入消息是否是指纹标识消息的网络;
[0045] 图7示出了如图5中所示的掩盖(obscured)的白箱实现;
[0046] 图8示出了如图6中所示的掩盖的白箱实现;以及
[0047] 图9是示出了实现确定白箱实现的指纹标识的白箱实现的方法的流程图。
[0048] 为了便于理解,使用相同的附图标记来指代具有基本相同或相似的结构和/或基 本相同或相似的功能的元素。
【具体实施方式】
[0049] 说明书和附图示出了本发明的原理。从而,将理解的是,本领域技术人员能够设想 出实现本发明的原理并包括在其范围内的多种布置(尽管此处并未明确描述或示出)。此 外,这里所述的所有示例明显主要用于教导目的,以辅助读者理解本发明的原理以及发明 人为推进现有技术而贡献的构思,其被认为不限于具体描述的示例和条件。此外,本文中使 用的术语"或"指代非排他性的或(即和/或),除非另作指示(例如"或其它"或"或在备 选方式中")。此外,本文所述的多种实施例不必是互斥的,一些实施例可以与一个或多个其 它实施例进行组合以形成新的实施例。
[0050] 以下讨论涉及白箱密码,其原因在于它是最有挑战性的攻击模型。此外,在受到白 箱攻击的环境中部署和使用了许多密码实现。还存在黑箱攻击模型和灰箱攻击模型。在黑 箱攻击模型中,假定攻击者只能访问所述实现的输入和输出。在灰箱攻击模型中,假定除了 访问所述实现的输入和输出之外,攻击者还能够访问关于对实现的执行的侧通道信息。这 种侧通道信息可以包括功率、定时、电子发射等。因此,下述实施例的益处可用来防止这些 攻击级别以及其它可被定义的攻击级别中的任意一种。因此,在描述了白箱实现的情况下, 它们还意在包括使用以下实施例中所述的各种方法的黑箱实现以及灰箱实现。
[0051] 关于密码算法的软件实现的一个典型问题是代码提举(codelifting)。从而,白 箱实现仍可作为整体分发(尽管其可有效地隐藏密码密钥)。该白箱实现与密钥本身一样 有价值。例如,如果白箱实现实施了解密算法,则由于不具有密钥,接收方不能对消息进行 加密,但白箱实现足以对消息进行解密。这意味着对手非法地将白箱实现作为整体分发,而 不是分发深藏的密码密钥,其通常具有很高的价值,而不应以不受控的方式进行分发。
[0052] 然而,在积极的方面,软件方案相对来讲更容易取代。也就是说,一旦由对白箱实 现的非法分发所引起的(金融)损害过大,就可以选择使用新的白箱实现来替代该白箱实 现。备选地,可以定期地改变所述密钥(即白箱实现),其中不将新的白箱实现提供给已经 表现出非法行为的用户,以阻止非法行为并防止这些人员/设备尝试再次拷贝白箱实现。 通常,密钥仅隐式地存在。在其他实施例中,密钥可以包括动态密钥,该动态密钥例如获取 隐式密钥信息并将其与某种动态信息进行组合,以改变密码功能中使用的密钥。
[0053] 为了进行该操作,需要确定泄露的白箱实现的原始所有者的方式。美国专利 No. 8, 306, 216描述了一种用于将指纹放入每一个白箱实现的方法。更具体地,其描述了一 种用于构造基于表的白箱实现的方法,使得如果一个白箱实现泄露,则该方法可以通过检 查实现中的查找表内容来追溯源。该方法的问题在于,在查找表集合中寻找指纹可能非常 困难且耗时,这是因为对手可能已经向其应用了模糊处理技术。因此,仍然需要将指纹嵌入 白箱实现中,使得可以通过白箱实现的功能行为来确定原始所有者。下述实施例示出了这 种方法。
[0054] 因此,为了标识特定的白箱实现的副本,无需对代码进行分析,而是取而代之地观 测白箱实现的功能。可以通过不会显著地影响白箱实现的正常功能的方式来实现这一点。 因此,对手不能通过对白箱实现进行模糊处理来隐藏所复制的白箱实现的指纹。
[0055] 通常,密码算法的消息空间很大。例如,对于AES,128比特的数据块导致大小为 2128的消息空间。下述实施例通过(例如,基于表的)白箱实现执行密码算法A,使得针对 少量(k个)消息M,算法可以给出不正确的结果。这些不正确的结果使得针对每两个用户, 认为其白箱实现至少针对k个消息之一具有不同的结果。针对k个消息M的结果用作实现 的指纹,即,用于将其追溯到原始所有者。消息M也被称作指纹消息。
[0056] 如上所述,值k应当很小。更具体地,这意味着k个指纹消息在正常执行期间出现 的概率可忽略。例如,如果k= 1并且如果M是随机选择的,则这成立。
[0057] 这可以如下实现。白箱实现(例如,基于表的白箱实现)是密码算法A的模糊实 现。在这种白箱实现中,可以以模糊方式实现断言(predicate)P(m)G{〇,1}的计算,其 中,m是任何输入消息,并且其中,如果m不是可以针对其获得不正确的结果的k个消息之 一,贝IjP(m) = 0,如果m是这k个消息之一,贝IjP(m) = 1。在P(m) = 1的情况下,A的实现 被改变,使得其导致不正确的答案。在P(m) =0的情况下,A的实现提供正确的答案。因 为对整个白箱实现进行了大量模糊处理,因此难以对指纹部分进行检测和移除或修改。
[0058] 现在将描述AES的示例白箱实现。白箱密码是在软件中实现密码算法以使得攻击 者很难找到密钥的规则。这里,假定最强的可想到的(对于软件,最实际的)攻击模型,其 中假定对手具有对白箱实现的完全控制和完全访问。
[0059] 以下文献中提出了对于高级加密标准(AES)和数据加密标准(DES)的白箱 实现的基于表的方式:"White_BoxCryptographyandanAESImplementation", StanleyChow,PhilipEisen,HaroldJohnson,andPaulC.VanOorschot,Selected AreasinCryptography:9thAnnualInternationalWorkshop,SAC2002,St.John's, Newfoundland,Canada,Au
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1