CN105095695A - 经由白箱实现的不正确功能行为实现授权 - Google Patents

经由白箱实现的不正确功能行为实现授权 Download PDF

Info

Publication number
CN105095695A
CN105095695A CN201510208353.5A CN201510208353A CN105095695A CN 105095695 A CN105095695 A CN 105095695A CN 201510208353 A CN201510208353 A CN 201510208353A CN 105095695 A CN105095695 A CN 105095695A
Authority
CN
China
Prior art keywords
input message
input
message
cryptographic
output
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510208353.5A
Other languages
English (en)
Other versions
CN105095695B (zh
Inventor
W·P·A·J·米歇尔斯
简·胡格布鲁格
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NXP BV
Original Assignee
NXP BV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NXP BV filed Critical NXP BV
Publication of CN105095695A publication Critical patent/CN105095695A/zh
Application granted granted Critical
Publication of CN105095695B publication Critical patent/CN105095695B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • H04L2209/043Masking or blinding of tables, e.g. lookup, substitution or mapping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/16Obfuscation or hiding, e.g. involving white box

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

一种密码***中使用单个密码密钥为多个不同的输入消息组提供单独的授权的授权方法,所述方法包括:由所述密码***接收来自第一输入消息组的第一输入消息;由所述密码***执行将所述第一输入消息映射到第一输出消息的带密钥密码操作,其中,当所述密码***被授权用于所述第一输入消息组时,所述带密钥密码操作产生正确输出消息,当所述密码***未被授权用于所述第一输入消息组时,所述带密钥密码操作不产生正确输出,以及所述多个输入消息组中的每一个具有相关联的输入消息集,其中所述输入消息集不重叠。

Description

经由白箱实现的不正确功能行为实现授权
技术领域
这里公开的多种示例性实施例一般地涉及经由白箱实现的不正确功能行为实现授权。
背景技术
互联网给用户带来了对数字内容的便捷且普及的访问。由于互联网是强大的分发通道,所以许多用户设备都力求能够直接访问互联网。用户设备可以包括个人计算机、膝上型计算机、机顶盒、互联网启用的媒体播放器、移动电话、智能手机、平板电脑、移动热点或能够访问互联网的任意其它设备。将互联网用作版权内容的分发介质在确保内容提供商的利益方面带来了极大的挑战。用户设备越发普遍地使用加载了适当软件的处理器来呈现(回放)数字内容(比如音频和/或视频)。对回放软件的控制是加强内容拥有者的利益的一种手段,其中包括可以使用所述内容的条款和条件。此前,许多用户设备是封闭***。如今,越来越多的平台变为部分开放的。一些用户可以被假定为能够完全地控制和访问提供内容访问的硬件和软件,并拥有大量时间和资源来攻击和绕过任意内容保护机制。结果,内容提供商必须在社区的恶意网络上将内容递送给合法用户,其中所述社区中并不是所有用户或用户设备都是可信的。
可以访问安全软件应用来执行多种功能,比如用来保护和认证数字内容的密码功能。为了对抗攻击,必须对这些算法进行模糊处理(隐藏),以防止对算法进行反向工程和修改或禁止获得用户特定安全信息。从而,可以通过如实现安全软件的处理器的指令集所限定的多种功能来执行安全软件应用的功能。例如,一种用来掩盖这些功能的手段是使用查找表。
对数字版权管理(DRM)和其它安全软件的广泛使用引起了对于寻求使得对软件的篡改更加复杂的安全、防篡改的软件的需求。存在多种用来提高软件应用的防篡改的技术。这些技术大多基于以下方面:通过在软件应用的控制和数据路径中都加入随机性和复杂性掩饰来隐藏所述应用的嵌入知识。其背后的构思在于,只通过代码检查来提取信息将更加困难。因此,找到处理安全应用的访问和许可控制的代码并进而将其改变是更加困难的。
本文所使用的白箱密码包括在攻击者已经对运行白箱密码软件的***完全控制的环境中执行密码功能的安全软件应用。从而,攻击者可以修改输入和输出,追踪软件的操作,在任意时刻对软件所使用的存储器进行采样和监测,甚至修改软件。从而,需要通过防止公开安全功能中使用的秘密信息的方式来执行安全功能。可以通过多种方式来实现白箱密码功能。这些方法包括:掩盖软件代码;使用掩盖秘密信息的使用的复杂数学函数;使用查找表;使用有限状态机;或执行密码功能但隐藏这些安全功能所需的秘密信息的任何其它方法。白箱实现还可以包含包括反调试和防篡改属性的组件。
密码算法的软件实现比硬件实现更受欢迎有多种理由。比如,可以是因为在密钥泄漏的情况下软件方案是可更新的、因为其成本低、或因为应用开发者不对实现白箱***的硬件有任何影响。
发明内容
下文给出了对多种示例性实施例的简要概述。以下概述中可以进行一些简化和省略,其是为了强调和介绍多种示例性实施例的一些方面,而不是为了限制本发明的范围。随后的内容中将对足以使得本领域技术人员能够实施和使用发明构思的示例性实施例进行详细描述。
多种示例性实施例涉及一种编码有指令的非瞬时机器可读存储介质,所述指令由密码***执行,所述密码***使用单个密码密钥为多个不同的输入消息组提供单独的授权,所述非瞬时机器可读存储介质包括:用于由所述密码***接收来自第一输入消息组的第一输入消息的指令;用于由所述密码***执行将所述第一输入消息映射到第一输出消息的带密钥密码操作的指令,其中,当所述密码***被授权用于所述第一输入消息组时,所述带密钥密码操作产生正确输出消息,当所述密码***未被授权用于所述第一输入消息组时,所述带密钥密码操作不产生正确输出,以及所述多个输入消息组中的每一个具有相关联的输入消息集,其中所述输入消息集不重叠。
描述了多种实施例,其中,当密码***未被授权用于所述第一输入时,所述带密钥密码操作产生不正确输出消息。
描述了多种实施例,其中,当密码***未被授权用于所述第一输入时,所述带密钥密码操作终止。
描述了多种实施例,还包括:用于接收来自第二输入消息组的第二输入消息的指令;以及用于由所述密码***执行将所述第二输入消息映射到第二输出消息的带密钥密码操作的指令,其中,当所述密码***被授权用于所述第二输入消息组时,所述带密钥密码操作产生正确输出消息,当所述密码***未被授权用于所述第二输入消息组时,所述带密钥密码操作不产生正确输出。
描述了多种实施例,其中,当密码***未被授权用于所述第二输入时,所述带密钥密码操作产生不正确输出消息。
描述了多种实施例,其中,当密码***未被授权用于所述第二输入时,所述带密钥密码操作终止。
描述了多种实施例,其中,所述密码***包括查找表的网络。
描述了多种实施例,其中,所述密码***包括有限状态机的网络。
描述了多种实施例,其中,所述密码操作是加密***AES或数据加密标准DES之一。
描述了多种实施例,其中,所述密码***包括查找表的网络,所述密码操作是高级加密***AES操作,所述查找表之一被修改以针对与未授权输入消息组相关联的输入消息产生不正确输出。
此外,多种示例性实施例涉及一种创建将输入消息映射到输出消息的密码操作的密码实现的方法,其中,所述密码实现使用单个密码密钥为多个不同输入消息组提供单独授权,所述方法包括:产生带密钥密码操作的密码实现;接收标识要由所述密码实现应用的授权设置的信息,其中,每一个所标识的授权设置具有相关联的输入消息组,其中每一个输入消息组与输入消息集相关联,并且其中所述输入消息集不重叠;基于所接收的标识所述授权设置的信息来修改所述密码实现,以使得:当所接收的输入消息与经过授权的输入消息组之一相关联时,所述密码实现输出与所接收的输入消息相关联的正确输出消息;以及当所接收的输入消息未与经过授权的输入消息组之一相关联时,所述密码实现输出与所接收的输入消息相关联的不正确输出消息或者终止所述带密钥密码操作的操作。
描述了多种实施例,其中,修改所述密码实现还包括:修改所述密码实现的仅与关联于非授权输入消息组的输入消息相关联的部分。
描述了多种实施例,其中,所述密码***包括查找表的网络。
描述了多种实施例,其中,所述带密钥密码操作是高级加密***AES或数据加密标准DES之一。
描述了多种实施例,其中,所述密码***包括查找表的网络,所述带密钥密码操作是高级加密***AES操作,所述查找表之一被修改以针对与未授权输入消息组相关联的输入消息产生不正确输出。
描述了多种实施例,其中,所述密码***包括查找表的网络,所述带密钥密码操作是高级加密***AES操作,所述查找表之一被修改以终止所述带密钥密码操作的操作。
描述了多种实施例,其中,所述密码***包括有限状态机的网络。
此外,多种示例性实施例涉及一种密码***中使用单个密码密钥为多个不同的输入消息组提供单独的授权的授权方法,包括:由所述密码***接收来自第一输入消息组的第一输入消息;由所述密码***执行将所述第一输入消息映射到第一输出消息的带密钥密码操作,其中,当所述密码***被授权用于所述第一输入消息组时,所述带密钥密码操作产生正确输出消息,当所述密码***未被授权用于所述第一输入消息组时,所述带密钥密码操作不产生正确输出,以及所述多个输入消息组中的每一个具有相关联的输入消息集,其中所述输入消息集不重叠。
描述了多种实施例,其中,当白箱***未被授权用于所述第一输入时,所述带密钥密码操作产生不正确输出消息。
描述了多种实施例,其中,当白箱***未被授权用于所述第一输入时,所述带密钥密码操作终止。
描述了多种实施例,还包括:接收来自第二输入消息组的第二输入消息;以及由白箱***执行将所述第二输入消息映射到第二输出消息的带密钥密码操作,其中,当所述白箱***被授权用于所述第二输入消息组时,所述带密钥密码操作产生正确输出消息,当所述白箱***未被授权用于所述第二输入消息组时,所述带密钥密码操作不产生正确输出。
描述了多种实施例,其中,当所述白箱***未被授权用于所述第二输入时,所述带密钥密码操作产生不正确输出消息。
描述了多种实施例,其中,当所述白箱***未被授权用于所述第二输入时,所述带密钥密码操作终止。
描述了多种实施例,其中,所述白箱***包括查找表的网络。
描述了多种实施例,其中,所述白箱***包括有限状态机的网络。
描述了多种实施例,其中,所述密码操作是高级加密***AES或数据加密标准DES之一。
描述了多种实施例,其中,所述白箱***包括查找表的网络,所述密码操作是高级加密***AES操作,所述查找表之一被修改以针对与未授权输入消息组相关联的输入消息产生不正确输出。
附图说明
为了更好地理解各种示例性实施例,对附图进行参考,其中:
图1示出了AES的一个回合的主要步骤;
图2示出了在对回合的输入进行编码的情况下的白箱AES实现;
图3示出了借助查找表的网络对一个输出半字节的计算;
图4示出了通过对输入和输出进行编码而模糊处理的图3的网络表的一部分;以及
图5是示出了利用使用相关安全性设置实现白箱实现的方法的流程图。
为了便于理解,使用相同的附图标记来指代具有基本相同或相似的结构和/或基本相同或相似的功能的元素。
具体实施方式
说明书和附图示出了本发明的原理。从而,将理解的是,本领域技术人员能够设想出实现本发明的原理并包括在其范围内的多种布置(尽管此处并未明确描述或示出)。此外,这里所述的所有示例明显主要用于教导目的,以辅助读者理解本发明的原理以及发明人为推进现有技术而贡献的构思,其被认为不限于具体描述的示例和条件。此外,本文中使用的术语“或”指代非排他性的或(即和/或),除非另作指示(例如“或其它”或“或在备选方式中”)。此外,本文所述的多种实施例不必是互斥的,一些实施例可以与一个或多个其它实施例进行组合以形成新的实施例。
以下讨论涉及白箱密码,其原因在于它是最有挑战性的攻击模型。此外,在受到白箱攻击的环境中部署和使用了许多密码实现。还存在黑箱攻击模型和灰箱攻击模型。在黑箱攻击模型中,假定攻击者只能访问所述实现的输入和输出。在灰箱攻击模型中,假定除了访问所述实现的输入和输出之外,攻击者还能够访问关于对实现的执行的侧通道信息。这种侧通道信息可以包括功率、定时、电子发射等。因此,下述实施例的益处可用来防止这些攻击级别以及其它可被定义的攻击级别中的任意一种。因此,在描述了白箱实现的情况下,它们还意在包括使用以下实施例中所述的各种方法的黑箱实现以及灰箱实现。
下面描述经由白箱实现的不正确功能行为实现授权的实施例。例如,设M1和M2是在相同的密钥下加密或需要在相同的密钥下加密的两个消息集或消息组。此外,设M1是用户u未被授权对其进行加密/解密的消息集,并且设M2是用户u被授权对其进行加密/解密的消息集。然后,可以通过白箱实现来实现密码算法,使得它针对来自M2的所有消息给出正确答案。然而,针对来自M1的任何消息,它计算不正确的值或者终止(例如,由于基于表的白箱实现中的丢失的查找表条目)。优选地,不正确***含与相应正确答案有关的尽量少的信息。这可以通过将错误引入白箱实现的前几个回合之一来实现。
举例说明,下述此类实施例可以用于数字电视***中的有条件访问。假设数字电视***具有16个频道。此外,假设用户可以单独地订购每一个频道。实现该***的一个方法是具有16个密钥并且通过使用不同的密钥对每一个频道进行加密。这由于需要使用和管理16个密钥而增加了复杂度。每一个密钥将需要其自己的白箱实现。这种复杂度仅随着***中的频道数量的增加而增加。下述实施例提供了使用相同的密钥对所有频道进行加密的备选方式。可以取而代之地将频道信息在所述消息中编码为4比特值,这导致16个非重叠的输入消息集Mi,其中,每一个消息集与数字电视***中的特定频道相关联。对频道信息的编码可以是显式的或隐式的。可以对输入消息进行编码,使得如果用户已经购买了针对来自集V的频道的许可,则用户接收到白箱实现,该白箱实现针对与集V中的频道相关联的消息正确工作并且在其它情况下不正确工作。虽然将数字电视***作为示例提供,但是这里所述的实施例可以应用于其他情形和***。在单个密钥用于对输入流中的数据执行密码功能的任何地方(其中,需要不同的授权来访问不同的输入流),可以应用这些实施例。
密码密钥在很多***的安全性方面起到了重要的作用。例如,它们用于认证、完整性校验、以及确保数据的机密性。在此类***中,隐藏密码密钥是必不可少的。如果对手能够提取密钥,则这损害了安全性。
现在将描述AES的示例白箱实现。白箱密码是在软件中实现密码算法以使得攻击者很难找到密钥的规则。这里,假定最强的可想到的(对于软件,最实际的)攻击模型,其中假定对手具有对白箱实现的完全控制和完全访问。
因此,期望使联网***中的密码密钥的数量保持较小。这之所以成立,不仅是由于存储器要求,而且还为了简化密钥处理并且防止对相同数据的多次加密的需要。因此,相同的密钥可以用于对数字电视***中的频道中的每一个进行编码。
下述实施例给出了如何经由白箱实现的不正确功能行为将白箱实现用于实现授权。该方法通过从与期望授权设置相关联的集中选择消息来操作。
以下文献中提出了对于高级加密标准(AES)和数据加密标准(DES)的白箱实现的基于表的方式:“White-BoxCryptographyandanAESImplementation”,StanleyChow,PhilipEisen,HaroldJohnson,andPaulC.VanOorschot,SelectedAreasinCryptography:9thAnnualInternationalWorkshop,SAC2002,St.John’s,Newfoundland,Canada,Aug.15-16,2002,下文称为“Chow1”;以及“AWhite-BoxDESImplementationforDRMApplications”,StanleyChow,PhilEisen,HaroldJohnson,andPaulC.vanOorschot,DigitalRightsManagement:ACMCCS-9Workshop,DRM2002,Washington,D.C.,USA,Nov.18,2002,下文称为“Chow2”。Chow1和Chow2公开了通过以下操作的组合来使用基于表的方式隐藏密码密钥的方法:使用随机双射对其表进行编码、以及通过将其进一步推入包含应用来扩展密码边界。
如上所述,针对许多密码操作,期望具有白箱实现。本发明可适用于例如对称或非对称密码操作。此外,本发明可以适用于块密码、流密码、消息认证方案、签名方案等。注意的是,本发明还可适用于散列函数。如果散列函数用作拥有秘密信息(例如秘密密钥、秘密数据等)的建造块,则后者尤其有用。例如,本发明可适用于带密钥(keyed)散列消息认证代码(HMAC或KHMAC)中使用的散列函数。熟知的块密码包括:高级加密标准(AES)、安全快速加密例程(SAFER,以及变形SAFER+和SAFER++)、Blowfish、数据加密标准(DES)等。熟知的流密码是RC4。此外,通过使用适当的操作模式(例如密码反馈(CFB)、计数器模式(CTR)等),可以将任意块密码用作流密码。
可以使用多个基本块实施白箱实现。采用将一些块构建在一个或多个之前的块的输出上的方式,将多个基本块互连。还可将基本块实现在运行于通用计算机芯片(例如微处理器)上的软件中。例如,基本块可以使用多个计算机指令,其中包括算术指令,这些指令一起实现基本块的功能。基本块的一种广泛使用的实现是查找表。例如,Chow1和Chow2采用这种方式来实现AES和DES块密码。查找表实现包括列表,该列表针对可能的输入值列出输出值。输入值在查找表中可以是显式的。在这种情况中,通过在输入值列表中搜索特定输入,查找表实现可以将特定输入映射到特定输出。当找到特定输入时,也找到了特定输出。例如,特定输出可以与特定输入存储在一起。优选地,输入值没有被显式地存储,而只是隐式地存储。例如,如果可能的输入是连续范围的编号或比特串,则查找表可被限制为存储输出值的列表。特定的输入编号可被映射到存储在由所述编号所指示的位置处的特定输出。此外,有限状态机或代码模糊可以用来实施白箱实现。
例如,可通过针对函数的可能输入计算其输出值并将所述输出存储在列表中来创建针对所述函数的查找表。如果所述函数取决于多个输入,则可针对多个输入的所有可能组合计算并存储所述输出。查找表尤其适于实现非线性函数,其不定期地将输入映射到输出。如下文所释,通过向其查找表中的一个或多个应用固定的模糊输入编码和固定的输出编码,可进一步对白箱实现进行模糊处理。然后,应用固定的模糊输入编码和输出编码的结果被完全预先评估。通过使用这一技术,查找表可被具有相同尺寸(其获取相同数量的输入比特,并产生相同数量的输出比特)的模糊查找表替代。在最终的白箱实现中,在这种模糊处理中使用的输入编码和输出编码不是显式的。
基本块的网络被布置为在被呈递了输入消息时计算输出消息。通常,通过多个基本输入块来对输入消息进行操作。多个进一步的基本输入块可从一个或多个所述基本输入块和/或从所述输入获取输入。再进一步的基本块可获取采用以下各项的任意组合形式的输入:输入消息、基本输入块的输出和所述进一步的基本块的输出。最终,基本退出块的某集合(即至少一个)产生输出消息的全部或部分,作为输出。通过这一方式,出现了基本块的网络,该网络共同地计算从输入消息到输出消息的映射。
所使用的密钥可以是密码密钥,并且可包含足够的熵来承受所预计的蛮力攻击。注意到,在白箱实现中,密钥通常并不显式地存在于所述实现中。这将冒着通过对实现的检查发现所述密钥的风险。通常,密钥只是隐式存在的。在其它实施例中,密钥可包括动态密钥,该动态密钥例如获取隐式密钥信息并将其与某种动态信息进行组合,以产生密码功能中使用的密钥。已知有多种方式来将密钥隐藏在密码***中。通常,至少使用部分评估的方法,其中只要需要密钥输入的基本块不取决于输入消息,则对其进行评估。例如,可通过事先对密钥值和掩码值一起进行异或处理来部分地评估基本操作(其中输入值、掩码值(其不取决于输入消息(例如来自S箱的值))和密钥值需要进行异或处理)。通过这种方式,操作仍然取决于密钥值,但是密钥值在所述实现中并不是显式存在的。取而代之地,所述实现中只存在密钥值和掩码值之间的异或处理。注意到,隐藏所述密钥的更为复杂的方式和/或进一步的方式与本发明是兼容的。
以下示例性实施例是使用AES(高级加密标准)块密码描述的,这是因为AES已经成为块密码的广泛使用的标准。AES是块大小为128比特或16字节的块密码。明文被分成16字节的块,这些块形成加密算法的初始状态,并且加密算法的最终状态是密码文本。在加密算法的任意给定点,这些16字节是加密算法的状态。为了在概念上解释AES,所述状态的字节被组织为4×4字节的矩阵。AES包括多个取决于密钥大小的回合。每个回合包括对状态矩阵的字节、列或行进行操作的相似的处理步骤,每个回合在这些处理步骤中使用不同的回合密钥。在使用AES作为示例的讨论中,注意到,AES以特定的方式定义回合。在以下实施例中,回合是步骤的任意群组,所述群组包括至少一个非线性映射函数,比如AES中的S箱。从而,下文所述的回合包括一个非线性映射函数和所述密码功能的其它步骤的任意组合。此外,回合的边界可以从非线性映射函数(例如,S-box)或者可以与非线性映射函数合并的任何其他操作(例如,密钥添加)开始。
图1示出了AES的一个回合的一些主要处理步骤。所述处理步骤包括:
AddRoundKey(添加回合密钥)110——所述状态的每个字节与回合密钥的字节进行异或处理;
SubBytes(替换字节)120——使用查找表进行字节到字节的置换;
ShiftRows(移位行)130——所述状态的每一行旋转固定数量的字节;以及
MixColumns(混合列)140——使用GF(28)中的模乘法来处理每一列。
步骤SubBytes120、ShiftRows130和MixColumns140独立于所使用的特定密钥。在步骤AddRoundKey110中应用密钥。除了步骤ShiftRows130,可在不知道其他列的情况下,对4x4状态矩阵的每一列执行处理步骤。因此,由于每一列由四个8比特值构成,所以它们可被认为是32比特操作。虚线150指示在已经执行了所需数量的回合之前重复所述处理。
这些步骤中的每一个或步骤的组合可由查找表或由查找表网络表示。如果AddRoundKey110步骤是通过与回合密钥进行异或处理实现的,则密钥在白箱攻击的情况下对于攻击者来讲是可见的。还可将AddRoundKey110步骤嵌入到查找表中,这使得不那么明显找到密钥。事实上,能够使用查找表网络来替代AES的完整回合。例如,可以使用表查找来实现SubBytes120、ShiftRows130和MixColumns140步骤。下文中充分详细地讨论了AES的可能白箱实现,以描述以下发明的实施例,但是在Chow1中可以找到对这一实现的进一步详细描述。此外,可以使用查找表实现的其它变形,这些变形在本发明的范围之内。
基于表的白箱实现和有限状态机实现都具有以下属性:实现中的所有中间值都被编码(与标准实现相比)。使用有限状态机的白箱实现的示例公开于标题为“DataProcessingMethod”的美国专利公开2007/0014394中,以及由WulfHarder和AtisStraujums在2008年3月11日在重新信任第六次季度会议上所作的题为“SynchrosoftMCFACTTMSecureDataProcessingTechnology”的报告,它们均通过引用并入本文以用于所有目的,如同在本文中完全阐述一样。图2示出了对回合的输入(即对S箱的输入)进行固定编码的白箱AES实现。如图所示,16个输入字节中的每一个都被fi编码,输出字节中的每一个都被gi编码。
为了描述本发明的实施例,将描述基于表的白箱AES实现的基本描述。对用于实现基于表的白箱AES的方法的更具体地描述,参见Chow1。Chow1示出了使用特定尺寸的表分解某些函数的特定实现。应该理解的是,可以对表进行各种其它划分,从而导致查找表的不同函数以及不同尺寸。此外,虽然本发明的下述实施例使用AES的基于表的白箱实现,但是可根据所述实施例来实现其它密码和密码功能。此外,可使用其它类型的白箱实现,而不是基于表的实现,例如有限状态实现。
将基于表的白箱AES的描述分为两个步骤。在第一个步骤中,AES的回合被描述为查找表网络。在第二个步骤中,通过对表的输入和输出进行编码来对表进行模糊处理。
步骤1:将AES实现为查找表网络
AES对16字节的数据块进行操作。它们通常被描述为4x4的字节矩阵,称为状态,包括字节x1,1、x1,2、x1,3...x4,4。上文中参照图1描述的AES的回合包括以下操作:AddRoundKey110、SubBytes120、ShiftRows130和MixColumns140。前两个操作AddRoundKey和SubBytes可以合并为单个T箱操作。也就是说,可以将针对输入字节xi,j的字节到字节函数Ti,j定义为其中ki,j是基于AES密钥的16字节回合密钥的单个字节。令yi,j为Ti,j的输出。ShiftRows操作仅是对输出字节yi,j进行索引重新编号。为了便于表述,在此处将这一操作略去,但这一操作可并入到实现Ti,j的查找表中或被实现为对状态矩阵的单独操控。在MixColumns步骤中,针对一些常数MCl,r,经由GF(28)中的代数表达式 z l , j = MC l , 1 · y 1 , j ⊕ MC l , 2 · y 2 , j ⊕ MC l , 3 · y 3 , j ⊕ MC l , 4 · y 4 , j 从根据4个输出字节y1,j、y2,j、y3,j和y4,j计算出所述回合的输出字节zi,j
现在针对每个字节到字节函数定义查找表Qi,j,l(xi,j)=MCl,i·Ti,j(xi,j)(其中i,j,l=1,2,...,16)。然后可通过对这些查找表的结果进行异或处理计算出任何输出字节zl,j,即 z l , j = Q 1 , j , l ( x 1 , j ) ⊕ Q 2 , j , l ( x 2 , j ) ⊕ Q 3 , j , l ( x 3 , j ) ⊕ Q 4 , j , l ( x 4 , j ) . 注意到,Q箱的索引i,j,li可被解释为“回合的输入字节i,j对回合的输出比特l,j的贡献”。可实现XOR,以对两个半字节(即4比特值)中的每一个进行操作,作为缩减XOR表的尺寸的查找表。从而,可实现Q箱,以产生输出半字节,从而减少表的尺寸。因此,AES回合的每个输出字节zl,j的计算被描述为查找表网络。图3示出了用来计算字节z2,3的单个输出半字节的查找表网络。
图3示出了借助查找表的网络对一个输出半字节的计算。Q箱中的上标索引(1)指示所述表只提供Q箱的输出的第一个半字节。输入状态310中的输入字节x1,3、x2,3、x3,3和x4,3的集合输入到Q箱320、322、324、326中。查找表320和322的输出馈入XOR330,查找表324和326的输出馈入XOR332。XOR330和332的输出馈入XOR334。XOR334的输出是输出状态340的输出z2,3的第一个半字节。可采用相同的方式使用另外的Q箱以及相似的XOR网络计算输出状态340的输出z2,3的第二个半字节。此外,可实现表的另外集合,以通过接收来自输入状态的字节列并将其转换成输出状态的相应列的输出来完全地将输入状态310转换成输出状态340。
步骤2:对表和中间值进行模糊处理
在图3中所示的实现中,可以容易地从Q箱提取密钥。仅将逆MixColumns乘法和逆S箱应用到所述输出会显露出清晰的AddRoundKey操作。为了防止这一点,使用任意双射函数对所有查找表的输入和输出进行编码。在Chow1中描述了这一点。这意味着将查找表与对输出进行编码的编码函数以及对输入进行解码的解码函数合并。编码被选为使得对一个表的输出编码与接下来的表中假定的输入编码相匹配。在图4中,针对第一回合,描述了图3中的实现的一部分。在该示例中,为了与AES一致,所述回合的输入未被编码,但所述回合的输出被编码。在下一回合中处理输出编码。也就是说,与第一回合不同,第二回合(以及之后的回合)假定输入被编码。备选地,第一回合可接收编码输入。然后,该输入编码必须应用于包含白箱实现的软件程序中的其它地方。类似地,根据输出是否将与AES一致,最后一个回合可以包括或不包括输出编码。注意到,在所获得的白箱实现中,查找表和中间值两者都被模糊处理。
上述对基于表查找的白箱实现的描述是为了AES的加密操作。注意到,通过使用SubBytes、ShiftRows和MixColumns操作的逆操作(invSubBytes、invShiftRows和invMixColumns),可以容易地将所述描述调整用于加密操作。从而,假定在以下实施例中可根据需要将上述描述用于对AES的加密或解密操作。
现在,将给出如何针对如上所述的数字电视***实现有条件访问应用。数字电视***具有16个频道,其均通过相同的密钥进行加密。用户u可以订购这16个频道的任何子集此外,在该实施例中假设内容提供商有一定自由度来对内容进行加密。也即是说,针对每一个消息m,存在几乎相同的消息集W(m)。如果m具有例如k比特填充,则集W(m)可以针对所有2k个可能填充包含m。备选地,用户可以向白箱实现的结果应用纠错码,在该情况下,W(m)由通过纠错码映射到m的所有消息构成。
内容提供商确保从Mi得到频道i中的所有消息。内容提供商可以通过以下方式来进行该操作:对来自W(m)的所有消息运行直到来自Mi的消息被找到。在使用纠错码的情况下,明文消息可能彼此具有某一距离。这意味着如果对明文消息应用有限次数的微扰,则仍然可以重构原始消息。内容提供商现在通过经由m中的扰动(例如,翻转比特)在W(m)中进行搜索来从Mi得到消息。然后,授权用户可以通过应用纠错码来找回消息m。
例如,考虑数字电视***使用AES来对其频道进行加密。此外,在AES的白箱实现中考虑第三回合的模糊T箱,比如,第一T箱T1,1。可以验证该查找表的输入取决于整个AES实现的所有16个输入字节。接下来,将Mi定义为针对其非模糊T箱操作T1,1的第1个半字节等于i(i=0,1,...,15)的二进制表示的消息集。内容提供商现在选择针对频道i的消息,使得所有选择的消息均在Mi中。内容提供商可以通过以下方式进行该操作:对来自W(m)的所有消息运行直到找到来自Mi的消息为止。如果W(m)足够大,则内容提供商将以非常高的概率成功。
接下来,对白箱实现进行修改,使得用户u仅得到来自Mi(如果i∈Vu)的消息的正确结果。这可以按如下方式完成。设r是白箱AES实现的第3回合中的T1,1的模糊查找表中的任意一行。通过编码的8比特输入f(xr)对该行进行索引,其中,xr是潜在T箱操作T1,1的输入。将xr (1)定义为xr的第1个半字节。现在,当且仅当时,第r行的值才被改变为不同的随机值。然后,实现期望的属性,即,用户u仅针对其已经订制的频道正确地对消息进行解密。
考虑来自用户没有订制的频道的消息m。从而,白箱实现改变第3回合中的中间结果中的字节。因此,该改变在产生最终结果之前经历AES的7个回合。这导致将显著偏离m的输出消息。因此,早期回合的改变导致显著偏离期望输出消息的输出消息,这提供了期望结果,即,来自非授权频道的消息解码为与正确消息显著不同的消息。因此,当密码功能是解密时,早期回合的改变对输出具有最大影响。当密码功能是加密时,后期回合的改变对输出具有最大影响。
在备选实施例中,可以将白箱实现修改为当对来自用户未授权的频道的消息进行处理时停止其执行,而不是产生不正确结果。这可以例如通过移除T1,1的模糊查找表中的此类行来完成。缺少来自查找表的输出值可以被解释为错误,这导致暂停对输入消息的密码处理。此时,可以做出关于该频道未被授权的指示。
根据本发明的实施例的方法可作为计算机实现方法实现于计算机上。针对根据本发明的方法的可执行代码可存储在计算机程序介质上。计算机程序介质的示例包括存储器设备、光存储设备、集成电路、服务器、在线软件等。从而,白箱***可包括实现白箱计算机程序的计算机。这种***还可包括其他硬件元件,其中包括存储设备、用于与外部***以及在白箱***的元件之间进行数据传输的网络接口。
在本发明的一种实施例中,计算机程序可以包括适于当计算机程序运行于计算机上时执行根据本发明的方法的所有步骤的计算机程序代码。优选地,计算机程序嵌入在非瞬时计算机可读介质上。
除了在非瞬时计算机可读介质上实现计算机程序之外,这种计算机程序还可被发送到用户或用户设备,以用于安装和使用。这可在任意通信网络(例如互联网)上实现。
此外,实现这里描述的实施例的用户设备可包括智能卡、支付卡、过境卡、访问卡和设备、移动电话、平板电脑、个人数字助理、便携式和台式计算机、机顶盒、数字视频记录、媒体流设备等。对上述实施例的使用可包括支付软件、安全访问、停车访问、过境访问和支付、银行业务、软件和数字媒体传输、安全通信、内容分发等。
此外,由于白箱密码通常是非常复杂的和/或模糊的,所以对于人们来说,写入会比较乏味。因此,具有一种用来以自动化的方式创建根据本发明的实施例的密码***的方法是有利的。
创建根据本发明的密码***的方法可作为计算机实现方法实现于计算机上或实现于专用硬件中或在两者的组合中。针对根据本发明的方法的可执行代码可存储在计算机程序介质上。在这种方法中,计算机程序可包括适于在计算机程序运行在计算机上时执行所述方法的所有步骤的计算机程序代码。计算机程序可以具体实现在非瞬时计算机可读介质上。
图5是示出了使用单个密码密钥实现为多个不同输入流提供单独授权的白箱实现的方法的流程图。首先,方法开始(505)。然后,产生密码操作的白箱实现(510)。这可如上所述使用多种方法和实现来产生。接下来,可以接收标识要由白箱实现应用的授权设置的信息(515)。然后,每一个标识的授权设置可以具有相关联的输入流,其中,每一个输入流与输入消息集相关联,其中,输入消息集不重叠。然后,可基于所接收的标识授权设置的信息修改白箱实现(520),从而:当接收的输入消息与授权输入消息之一相关联时,白箱实现输出与接收的输入消息相关联的正确输出消息;以及当接收的输入消息不与授权输入消息之一相关联时,白箱实现输出与接收的输入消息相关联的不正确输出消息或者终止带密钥密码操作的操作。然后,所述方法结束(525)。
用来实现本发明的实施例的处理器上运行的特定软件的任意组合构成特定的专用机器。
本文所使用的术语“非瞬时机器可读存储介质”将被理解为排除瞬时传播信号,但是包括所有形式的易失性和非易失性存储器。此外,本文所使用的术语“处理器”将被理解为涵盖多种设备,比如微处理器、现场可编程门阵列(FPGA)、专用集成电路(ASIC)以及其它类似的处理设备。当软件实现在处理器上时,所述组合变成单个特定机器。
本领域技术人员应该理解的是,本文中的任意框图表示实现本发明的原理的说明性电路的概念视图。
虽然参考特定示例性方面详细描述了多种示例性实施例,但应该理解的是,本发明能够具有其它实施例,并且能够在多种显然的方面修改其细节。对本领域技术人员明显的是,在保持在本发明的精神和范围之内的同时,可以进行各种变形和修改。从而,前述公开、描述和附图只是说明性的,而决不用来限制本发明,本发明只由权利要求限定。

Claims (17)

1.一种创建将输入消息映射到输出消息的密码操作的密码实现的方法,其中,所述密码实现使用单个密码密钥为多个不同输入消息组提供单独授权,所述方法包括:
产生带密钥密码操作的密码实现;
接收标识要由所述密码实现应用的授权设置的信息,其中,每一个所标识的授权设置具有相关联的输入消息组,其中每一个输入消息组与输入消息集相关联,并且其中所述输入消息集不重叠;
基于所接收的标识所述授权设置的信息来修改所述密码实现,以使得:
当所接收的输入消息与经过授权的输入消息组之一相关联时,所述密码实现输出与所接收的输入消息相关联的正确输出消息;以及
当所接收的输入消息不与经过授权的输入消息组之一相关联时,所述密码实现输出与所接收的输入消息相关联的不正确输出消息或者终止所述带密钥密码操作的操作。
2.根据权利要求1所述的方法,其中,修改所述密码实现还包括:修改所述密码实现的仅与关联于非授权输入消息组的输入消息相关联的部分。
3.根据权利要求1所述的方法,其中,所述密码***包括查找表的网络。
4.根据权利要求1所述的方法,其中,所述带密钥密码操作是高级加密***AES或数据加密标准DES之一。
5.根据权利要求1所述的方法,其中,
所述密码***包括查找表的网络,
所述带密钥密码操作是高级加密***AES操作,
所述查找表之一被修改,以针对与未授权的输入消息组相关联的输入消息产生不正确输出。
6.根据权利要求1所述的方法,其中,
所述密码***包括查找表的网络,
所述带密钥密码操作是高级加密***AES操作,
所述查找表之一被修改,以终止所述带密钥密码操作的操作。
7.根据权利要求1所述的方法,其中,所述密码***包括有限状态机的网络。
8.一种密码***中进行授权的方法,所述方法使用单个密码密钥为多个不同的输入消息组提供单独的授权,所述方法包括:
由所述密码***接收来自第一输入消息组的第一输入消息;
由所述密码***执行将所述第一输入消息映射到第一输出消息的带密钥密码操作,
其中,当所述密码***被授权用于所述第一输入消息组时,所述带密钥密码操作产生正确输出消息,
当所述密码***未被授权用于所述第一输入消息组时,所述带密钥密码操作不产生正确输出,以及
所述多个输入消息组中的每一个输入消息组具有相关联的输入消息集,其中所述输入消息集不重叠。
9.根据权利要求8所述的方法,其中,当白箱***未被授权用于所述第一输入时,所述带密钥密码操作产生不正确输出消息。
10.根据权利要求8所述的方法,其中,当白箱***未被授权用于所述第一输入时,所述带密钥密码操作终止。
11.根据权利要求8所述的方法,还包括:
接收来自第二输入消息组的第二输入消息;以及
由白箱***执行将所述第二输入消息映射到第二输出消息的带密钥密码操作,
其中,当所述白箱***被授权用于所述第二输入消息组时,所述带密钥密码操作产生正确输出消息,
当所述白箱***未被授权用于所述第二输入消息组时,所述带密钥密码操作不产生正确输出。
12.根据权利要求11所述的方法,其中,当所述白箱***未被授权用于所述第二输入时,所述带密钥密码操作产生不正确输出消息。
13.根据权利要求11所述的方法,其中,当所述白箱***未被授权用于所述第二输入时,所述带密钥密码操作终止。
14.根据权利要求8所述的方法,其中,所述白箱***包括查找表的网络。
15.根据权利要求8所述的方法,其中,所述白箱***包括有限状态机的网络。
16.根据权利要求8所述的方法,其中,所述密码操作是高级加密***AES或数据加密标准DES之一。
17.根据权利要求8所述的方法,其中,
所述白箱***包括查找表的网络,
所述密码操作是高级加密***AES操作,
所述查找表之一被修改,以针对与未授权输入消息组相关联的输入消息产生不正确输出。
CN201510208353.5A 2014-04-28 2015-04-28 经由白箱实现的不正确功能行为实现授权 Active CN105095695B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/263,191 US9363244B2 (en) 2014-04-28 2014-04-28 Realizing authorization via incorrect functional behavior of a white-box implementation
US14/263,191 2014-04-28

Publications (2)

Publication Number Publication Date
CN105095695A true CN105095695A (zh) 2015-11-25
CN105095695B CN105095695B (zh) 2018-05-04

Family

ID=54335863

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510208353.5A Active CN105095695B (zh) 2014-04-28 2015-04-28 经由白箱实现的不正确功能行为实现授权

Country Status (2)

Country Link
US (1) US9363244B2 (zh)
CN (1) CN105095695B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9584310B2 (en) 2014-03-19 2017-02-28 Nxp B.V. Protecting a white-box implementation against attacks
WO2016112338A1 (en) * 2015-01-08 2016-07-14 Intertrust Technologies Corporation Cryptographic systems and methods
US10505709B2 (en) * 2015-06-01 2019-12-10 Nxp B.V. White-box cryptography interleaved lookup tables
US10630462B2 (en) * 2017-10-27 2020-04-21 Nxp B.V. Using white-box in a leakage-resilient primitive
JP7383985B2 (ja) * 2019-10-30 2023-11-21 富士電機株式会社 情報処理装置、情報処理方法及びプログラム
US11632231B2 (en) * 2020-03-05 2023-04-18 Novatek Microelectronics Corp. Substitute box, substitute method and apparatus thereof
CN111681662B (zh) * 2020-06-01 2023-07-25 科大讯飞股份有限公司 车内交互音频加密方法、装置及设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110040964A1 (en) * 2007-12-21 2011-02-17 Lawrence Edward Nussbaum System and method for securing data
CN102484581A (zh) * 2009-06-19 2012-05-30 耶德托公司 使用中间数据更改的具有可配置密钥的白盒密码***
US20120163582A1 (en) * 2010-12-23 2012-06-28 Electronics And Telecommunications Research Institute Data encoding and decoding apparatus and method thereof for verifying data integrity
US20140101458A1 (en) * 2010-11-05 2014-04-10 Apple Inc. Code tampering protection for insecure environments

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10319435B4 (de) 2003-04-25 2018-07-26 Whitecryption Corporation Verfahren zur Verarbeitung von Daten zum Schutz eines Softwareprogramms vor Rekonstruktion
US20080005806A1 (en) * 2006-06-30 2008-01-03 Nokia Corporation Apparatus, network entity and associated methods and computer program products for selectively enabling features subject to digital rights management
US9380033B2 (en) 2014-04-28 2016-06-28 Nxp B.V. Implementing use-dependent security settings in a single white-box implementation
US9455833B2 (en) 2014-04-28 2016-09-27 Nxp B.V. Behavioral fingerprint in a white-box implementation

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110040964A1 (en) * 2007-12-21 2011-02-17 Lawrence Edward Nussbaum System and method for securing data
CN102484581A (zh) * 2009-06-19 2012-05-30 耶德托公司 使用中间数据更改的具有可配置密钥的白盒密码***
US20140101458A1 (en) * 2010-11-05 2014-04-10 Apple Inc. Code tampering protection for insecure environments
US20120163582A1 (en) * 2010-12-23 2012-06-28 Electronics And Telecommunications Research Institute Data encoding and decoding apparatus and method thereof for verifying data integrity

Also Published As

Publication number Publication date
CN105095695B (zh) 2018-05-04
US20150312223A1 (en) 2015-10-29
US9363244B2 (en) 2016-06-07

Similar Documents

Publication Publication Date Title
CN103875001B (zh) 用于保护密码散列函数的执行的方法和***
CN105024803A (zh) 白箱实现中的行为指纹
CN105095695B (zh) 经由白箱实现的不正确功能行为实现授权
CN105049400B (zh) 在白盒实现方案中拆分s盒以防止攻击
CN105721135B (zh) 使用替换盒实施加密操作的方法
CN105184115A (zh) 用于将隐式完整性或可信性检查包括到白箱实现中的方法
CN105024992B (zh) 在单个白箱实现中实现使用相关安全性设置
JP7065888B6 (ja) 暗号装置及び方法
CN106888080A (zh) 保护白盒feistel网络实施方案以防错误攻击
CN107273724B (zh) 为白盒实施方案的输入和输出加水印
CN105022937A (zh) 用于将白箱实现紧附到周围程序的接口兼容方式
CN106888081A (zh) 白盒实施方案内中间值的宽编码
CN104396182A (zh) 加密数据的方法
CN105007256A (zh) 用于在非信任平台上执行安全功能的安全模块
CN105721134B (zh) 使用带有多个外部编码的单个白盒实现
CN105978680A (zh) 在白盒实现方案中实现填充
EP2960891B1 (en) Method for introducing dependence of white-box implementationon a set of strings
CN105281893B (zh) 用于引入白箱实现对串集合的依赖性的方法
CN105024808A (zh) 无需改变密钥的安全性补丁
EP2940677A1 (en) Method for including an implicit integrity or authenticity check into a white-box implementation
EP2940919B1 (en) Realizing authorization via incorrect functional behavior of a white-box implementation
Nazarov et al. An Architecture Model for Active Cyber Attacks on Intelligence Info-communication Systems: Application Based on Advance System Encryption (AES-512) Using Pre-Encrypted Search Table and Pseudo-Random Functions (PRFs)
Panggabean et al. Implementation of academy information database security using the blowfish method on the Medicom Campus
Haria et al. Enhanced image encryption using AES algorithm with CBC mode: a secure and efficient approach
CN117768099A (zh) 一种数据处理方法、装置、设备及可读存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant