CN106888081B - 白盒实施方案内中间值的宽编码 - Google Patents

白盒实施方案内中间值的宽编码 Download PDF

Info

Publication number
CN106888081B
CN106888081B CN201611135849.5A CN201611135849A CN106888081B CN 106888081 B CN106888081 B CN 106888081B CN 201611135849 A CN201611135849 A CN 201611135849A CN 106888081 B CN106888081 B CN 106888081B
Authority
CN
China
Prior art keywords
size
box
output
input
layer
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.)
Active
Application number
CN201611135849.5A
Other languages
English (en)
Other versions
CN106888081A (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 CN106888081A publication Critical patent/CN106888081A/zh
Application granted granted Critical
Publication of CN106888081B publication Critical patent/CN106888081B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • 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/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • 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
    • 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
    • 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/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • 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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or 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/16Obfuscation or hiding, e.g. involving white box
    • 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/24Key scheduling, i.e. generating round keys or sub-keys for block encryption
    • 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/34Encoding or coding, e.g. Huffman coding or error correction

Landscapes

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

Abstract

一种用于通过密码系统中的带密钥的密码运算将输入消息映射到输出消息的方法,所述带密钥的密码运算包括多个替代层和状态数据,包括:在所述带密钥的密码运算的第一替代层中将所述输入消息映射到第一状态数据;在所述带密钥的密码运算的多个中间替代层中将所述第一状态数据映射到第二状态数据;以及在所述带密钥的密码运算的最终替代层中将所述第二状态数据映射到输出消息。

Description

白盒实施方案内中间值的宽编码
技术领域
本文所公开的各种示例性实施例大体上涉及密码函数的白盒实施方案内中间值的宽编码。
背景技术
因特网向用户提供对数字内容的适宜和广泛的访问。因为因特网是强大的分布式通道,许多用户装置力求直接访问因特网。用户装置可包括个人计算机、膝上型计算机、机顶盒、支持因特网的媒体播放器、移动电话、智能电话、平板计算机、移动无线热点,或能够访问因特网的任何其它装置。使用因特网作为用于有版权内容的分布媒体对保护内容提供商的利益产生有力的挑战。用户装置越来越多地使用加载有合适的软件的处理器来呈现(重放)数字内容,例如音频和/或视频。重放软件的控制是一种强制执行内容所有者的利益(包括可供使用的内容所依据的条款)的方式。先前许多用户装置是封闭系统。当今越来越多的平台是部分开放的。可假设一些用户具有对于提供对内容的访问的硬件和软件的完全控制及访问权,并具有大量时间和资源来攻击和绕过任何内容保护机构。其结果是,内容提供商必须跨越对于其中并非所有用户或用户装置可信任的团体敌对的网络将内容递送到合法用户。
可调用安全软件应用来实行各种函数,例如用于保护和验证数字内容的密码函数。为了对抗攻击,这些算法必须被模糊(隐藏)以便防止算法的逆向工程和修改或禁止获得特定用户的安全信息。因此,安全软件应用的功能可通过由实施该安全软件的处理器的指令集定义的各种函数来执行。例如,模糊这些函数的一种方式是通过使用查找表。
内容提供商必须跨越对于其中并非所有用户或装置可信任的团体敌对的网络将内容递送到合法用户。这就引起了白盒密码术的发展。在白盒密码术情形中,假设用户具有对于提供对内容的访问的硬件和软件的完全控制以及攻击和绕过任何内容保护机构的不受限制的时间量和资源。强制执行可供使用的内容所依据的条款的安全软件代码应防止被篡改。数字权限管理为安全软件应用的共同应用。用于分布到用户装置的受保护内容的数字权限管理中的一般方法是使用(例如)DES(数据加密标准)、AES(高级加密标准)或使用其它已知加密方案对数字内容进行加密,并使用解密密钥恢复数字内容。这些解密密钥必须被保护以防止对受保护材料的未授权的访问。
在数字权限管理的情形中,攻击者具有对强制执行受保护内容的管理和访问的软件的完全控制。因此,攻击者可修改软件以及试图获得用于对受保护内容进行加密的密码密钥。此类密钥可通过分析软件来发现。
关于密钥分布,媒体播放器必须从许可证数据库中检索解密密钥以便重放媒体。媒体播放器随后必须将此解密密钥存储在存储器中某处以用于已加密内容的解密。这样就让攻击者有两种选择来攻击密钥。首先,攻击者可逆向编写许可证数据库访问函数,从而允许攻击者从所有许可证数据库中检索资产密钥。在此情况下,攻击者不需要理解密码函数的内部工作。其次,攻击者可以观察内容解密期间对存储器的访问,攻击者可因此检索解密密钥。在这两种情况下,密钥都被视为被破解。
数字权限管理(DRM)和其它安全软件的广泛使用引起对安全的防篡改软件的需要,该软件力图使软件窜改变得复杂。存在各种用于提高软件应用的防篡改性能的技术。这些技术中的大多数是基于通过在软件应用的控制和数据路径中添加随机性和复杂度遮罩而隐藏对应用的嵌入式了解。这背后的概念是仅仅通过代码检测来提取信息变得更加困难。因而更难找到(例如)处理对安全应用的访问和许可控制的代码,并因此更难改变代码。
如本文所使用,白盒密码术包括一种安全软件应用,其在攻击者具有对运行白盒密码术软件的系统的完全控制的环境中执行密码函数。因此,攻击者可修改输入和输出、追踪软件操作、取样和监视软件在任何时间使用的存储器,甚至可修改软件。因此,需要通过防止揭露安全功能性中使用的机密信息的方式执行安全功能。白盒密码术功能可以各种方式实施。此类方法包括:模糊软件代码;使用模糊机密信息使用的复杂的数学函数;使用查找表;使用有限状态机;或任何其它执行密码函数但是隐藏那些安全功能所需的机密信息的方法。白盒实施方案还可包括一些组件,所述组件包括防调试和防篡改属性。
相对于硬件实施方案,优选加密算法的软件实施方案存在若干原因。如此(例如)可能是因为软件解决方案在密钥泄露的情况下可再生、因为其具有较低成本,或因为应用开发者对其中实施白箱系统的硬件没有影响。
发明内容
各种示例性实施例的简要概述在下文呈现。在以下概述中可以做出一些简化和省略,其意在突出并介绍各种示例性实施例的一些方面,但不限制本发明的范畴。足以允许本领域的普通技术人员产生并使用本发明概念的示例性实施例的详细描述将在后续部分呈现。
各种实施例涉及用于通过密码系统中带密钥的密码运算将输入消息映射到输出消息,所述带密钥的密码运算包括多个替代层和状态数据,包括:在带密钥的密码运算的第一替代层中将输入消息映射到第一状态数据,其中所述第一替代层包括实施所述第一替代层的N个基本块,并且其中将具有第一大小的非线性编码放置在所述第一替代层的N个基本块的输入和输出上,其中N是整数;在带密钥的密码运算的多个中间替代层中将第一状态数据映射到第二状态数据,其中所述中间替代层包括实施所述中间替代层的M个块,并且其中将具有第二大小的多个非线性编码放置在所述中间替代层的M个基本块的输入和输出上,其中M是整数;以及在带密钥的密码运算的最终替代层中将第二状态数据映射到输出消息,其中所述最终替代层包括实施所述最终替代层的K个基本块,并且其中将具有第三大小的非线性编码放置在所述最终替代层的K个基本块的输入和输出上,其中K是整数,其中第一大小和第三大小大于第二大小,其中N>M,并且其中K>M。
描述了各种实施例,其中第一大小和第三大小大于或等于第二大小的两倍。
描述了各种实施例,其中密码运算为高级加密标准(AES)。
描述了各种实施例,其中密码运算为数据加密标准(DES)。
描述了各种实施例,其中第一大小为8位,第二大小为4位,并且第三大小为8位。
描述了各种实施例,其中:在中间替代层中实施异或函数的基本块对4位输入进行运算以产生4位输出,并且在第一和最后替代层中实施异或函数的基本块对8位输入进行运算以产生8位输出。
描述了各种实施例,其中:在中间替代层中实施异或函数的基本块对具有第二大小的输入进行运算以产生具有第二大小的输出;在第一替代层中实施异或函数的基本块对具有第一大小的输入进行运算以产生具有第一大小的输出;以及在最后替代层中实施异或函数的基本块对具有第三大小的输入进行运算以产生具有第三大小的输出。
描述了各种实施例,其中还将线性编码放置在中间替代层中的M个基本块的输入和输出上。
其它各种实施例涉及非暂时性机器可读存储媒体,其经指令编码以实施通过密码系统中的带密钥的密码运算将输入消息映射到输出消息,所述带密钥的密码运算包括多个替代层和状态数据,包括:用于在带密钥的密码运算的第一替代层中将输入消息映射到第一状态数据的指令,其中所述第一替代层包括实施所述第一替代层的N个基本块,并且其中将具有第一大小的非线性编码放置在所述第一替代层的N个基本块的输入和输出上,其中N是整数;用于在带密钥的密码运算的多个中间替代层中将第一状态数据映射到第二状态数据的指令,其中所述中间替代层包括实施所述中间替代层的M个块,并且其中将具有第二大小的多个非线性编码放置在所述中间替代层的M个基本块的输入和输出上,其中M 是整数;以及用于在带密钥的密码运算的最终替代层中将第二状态数据映射到输出消息的指令,其中所述最终替代层包括实施所述最终替代层的K个基本块,并且其中将具有第三大小的非线性编码放置在所述最终替代层的K个基本块的输入和输出上,其中K是整数,其中第一大小和第三大小大于第二大小,其中N>M,并且其中K>M。
描述了各种实施例,其中第一大小和第三大小大于或等于第二大小的两倍。
描述了各种实施例,其中密码运算为高级加密标准(AES)。
描述了各种实施例,其中密码运算为数据加密标准(DES)。
描述了各种实施例,其中第一大小为8位,第二大小为4位,并且第三大小为8位。
描述了各种实施例,其中:在中间替代层中实施异或函数的基本块对4位输入进行运算以产生4位输出,并且在第一和最后替代层中实施异或函数的基本块对8位输入进行运算以产生8位输出。
描述了各种实施例,其中:在中间替代层中实施异或函数的基本块对具有第二大小的输入进行运算以产生具有第二大小的输出;在第一替代层中实施异或函数的基本块对具有第一大小的输入进行运算以产生具有第一大小的输出;以及在最后替代层中实施异或函数的基本块对具有第三大小的输入进行运算以产生具有第三大小的输出。
描述了各种实施例,其中还将线性编码放置在中间替代层中的M个基本块的输入和输出上。
附图说明
为了更好地理解各种示例性实施例,参看附图,其中:
图1示出AES的轮回的主要步骤;
图2示出具有对轮回的输入的固定编码的白盒AES实施方案;
图3示出借助于查找表的网络的一个输出半字节的计算;
图4示出通过对输入和输出进行编码来模糊的图3的网络表格的部分;
图5示出后面跟着Q盒的输出的两个4位非线性编码的8位线性编码的应用;以及
图6示出用于为用户装置提供安全内容以及处理该安全内容的软件应用的系统。
为了便于理解,相同的附图标号已用于指代具有大体上相同或类似结构和/或大体上相同或类似功能的元件。
具体实施方式
描述和附图示出了本发明的原理。因此将了解,本领域的技术人员将能够设计各种布置,尽管本文中未明确地描述或示出所述布置,但所述布置体现本发明的原理且包括在其范畴内。此外,本文中所述的所有例子主要明确地意在用于教学目的以辅助读者理解本发明的原理以及由本发明人所提供的概念,从而深化本领域,且所有例子应解释为不限于此类特定所述例子及条件。另外,除非另外指明(例如,“或另外”或“或在替代方案中”),否则如本文所使用的术语“或”指代非排他性的“或”(即,“和/或”)。并且,本文所描述的各种实施例不一定相互排斥,因为一些实施例可以与一个或多个其它实施例组合以形成新的实施例。
相对于硬件实施方案,优选加密算法的软件实施方案存在若干原因。如此(例如)可能是因为软件解决方案在密钥泄露的情况下可再生、因为其具有较低成本,或因为应用开发者对其中实施白箱系统的硬件没有影响。虽然下面的实施例的描述涉及在处理器上运行的软件实施方案,但应指出这些实施例也可部分或完全地在硬件中实施。所描述的查找表和有限状态机可在硬件中实施以执行所描述的各种功能。
下面的论文提出了针对高级加密标准(AES)和数据加密标准(DES) 的白盒实施方案的基于表格的方法:由Stanley Chow、Philip Eisen、Harold Johnson和Paul C.VanOorschot在2002年8月15到16日在加拿大纽芬兰岛圣约翰SAC2002第9届“选定区域的密码术”国际研讨会中提出的“白盒加密术和AES实施方案(White-Box Crytography and anAES Implementation)”,该论文在下文中被称为“Chow 1”;以及由Stanley Chow、PhilEisen、Harold Johnson和Paul C.Van Oorschot在2002年11 月18日在美国华盛顿特区数字权限管理:DRM 2002ACM CCS-9研讨会中提出的“用于DRM应用的白盒DES实施方案(AWhite-Box DES Implementation for DRM Applications)”,该论文在下文中被称为“Chow2”。Chow 1和Chow 2公开了使用基于表格的方法,通过随机双映射对其表格进行编码并通过将密码边界推送到包含应用中而延伸该密码边界的组合来隐藏密码密钥的方法。
如所提到,对于许多密码运算来说,期望具有白盒实施方案。本发明可应用(例如)于对称和不对称密码运算。并且,本发明可应用于块密码、流密码、消息认证方案、签名方案等。应注意,本发明还可应用于散列函数。如果散列函数被用作处理机密信息(例如,机密密钥、机密数据等)的构建块,则后者尤其有用。例如,本发明可应用于在带密钥的散列信息认证码(HMAC或KHMAC)中使用的散列函数。熟知的块密码包括:高级加密标准(AES)、安全并快速加密例程(SAFER及其变体SAFER+和SAFER++)、Blowfish加密法、数据加密标准(DES) 等。熟知的流密码为RC4。此外,任何块密码可用作使用适当的运算模式(例如,密码反馈(CFB)、计数器模式(CTR)等)的流密码。
输入消息可表示(例如)已加密内容数据,例如包含音频和/或视频数据的多媒体数据。已加密内容数据还可包括已加密软件,例如,表示某一计算机应用(例如,计算机游戏或办公室应用等)的已加密计算机代码。输入消息也可表示用于另一密码运算的密钥。后者可被用于(例如)密钥交换协议中,其中,根据本发明的白盒实施方案对表示新密钥的数据进行加密和/或解密。输入数据还可为纯数据,例如,纯用户数据。后者在消息认证方案中尤其有利。根据本发明的白盒实施方案可具有该实施方案仅可用于加密、仅可用于解密而非同时用于这两者的属性。例如,如果实施方案使用不是双映射的查找表,例如输入位比输出位更多的查找表,那么可以实现此属性。因此,如果用户仅具有白盒解密器,那么该用户可验证MAC代码,而不是创建新的MAC。这强化了此类消息认证方案的抗抵赖属性。
白盒实施方案可使用多个基本块来实施。多个基本块为互连的,在这个意义上,一些块基于先前块中的一个或多个块的输出而构建。基本块可(例如)作为计算机芯片在硬件中实施。基本块可使用开关板、状态机或用于在计算机硬件中实施功能的任何其它合适的构造。基本块也可实施在运行于通用计算机芯片(例如,微处理器)上的软件中。例如,基本块可使用多个计算机指令,包括算术指令,它们一起实施基本块的功能性。可在软硬件中使用的基本块的广泛使用的实施方案为查找表。例如,Chow 1和Chow 2采用此方法来实施AES和DES块密码。查找表实施方案包括列出可能的输入值、输出值的列表。在查找表中的输入值可为明确的。在此情况下,通过在输入值的清单中搜索特定输入,查找表实施方案可将特定输入映射到特定输出。在发现特定输入时,那么也发现特定输出。例如,特定输出可与特定输入在一起存储。优选地,输入值未明确存储,而仅是隐含地存储。例如,如果可能的输入为(例如)数值或位串的连续范围,那么查找表可被限制存储输出值的列表。例如,特定输入数值可被映射到存储在由该数值所指示的位置的特定输出。另外,有限状态机或代码模糊处理可用于实施白盒实施方案。
例如,通过计算其可能输入的函数的输出值并在列表中存储该输出,可产生用于该函数的查找表。如果函数取决于多个输入,那么可计算并存储用于该多个输入的所有可能组合的输出。查找表特别适合于实施非线性函数,其以不规律的方式将输入映射到输出。通过向白盒实施方案查找表的一个或多个应用固定的模糊输入编码和固定输出编码,该白盒实施方案可以另外被模糊,如下面所解释。接着,彻底预评估应用固定模糊输入编码和输出编码的结果。通过使用此技术,查找表将被具有相同尺寸的模糊查找表代替,其采用相同数量的输入位并产生相同数量的输出位。用于此类模糊处理中的输入编码和输出编码在最终的白盒实施方案中不是显式的。
基本块的网络被布置成在向它们呈现输入消息时计算输出消息。通常,通过数个基本输入块对输入消息进行运算。数个其它基本块可采用来自基本输入块中的一个或多个和/或输入的输入。又其它的基本块可以采用输入消息、基本输入块的输出和另外基本块的输出的任何组合的输入。最后,基本出口块的某个集合,即至少一个基本出口块,作为输出产生全部或部分输出消息。以此方式显现基本块的网络,其共同计算从输入消息到输出消息的映射。
所使用的密钥可为密码密钥,且可含有足够的熵来承受预见的强行攻击。应注意,在白盒实施方案中,密钥通常不是明确存在于该实施方案中。这样会有通过检测该实施方案发现密钥的风险。通常,该密钥仅隐含地存在。在密码系统中隐藏密钥的各种方式是已知的。通常,至少使用部分评估的方法,其中需要密钥输入的基本块到目前为止被评估为其并不取决于输入消息。例如,其中输入值、不取决于输入消息的掩蔽值(例如,来自替代盒(S盒)的值),以及密钥值需要进行异或运算的基本运算可以通过对该密钥值和该掩蔽值一起预先进行异或运算来进行部分评估。以此方式,运算仍然取决于密钥值,尽管该密钥值不是明确存在于该实施方案中。实际上,仅有在密钥值和掩蔽值之间的异或存在于实施方案中。应注意,隐藏密钥的更复杂的方式和/或另外的方式与本发明的实施例兼容。
引起关注的一类对白盒实施方案的攻击是通过密码硬件团体应用的硬件差分功率分析(DPA)攻击的软件对应部分。从20世纪90年代末开始,众所周知的是,在执行密码原语时获得的功率轨迹的统计分析可与所使用的机密密钥材料相关,并因此揭露了关于该机密密钥材料的信息。通常,在这种攻击中,假设一个人访问具有已知密码算法的硬件实施方案。I(pi,k)表示具有输入pi的算法的目标中间状态,且其中仅使用机密密钥的小部分,由k表示。假设在状态I(pi,k)下装置的功率消耗是数据依赖分量和某一随机噪声的总和,即,
Figure GDA0002992248700000091
其中在状态s期间,函数
Figure GDA0002992248700000092
返回装置的功率消耗,并且δ表示某一泄露噪声。常见的假设是,噪声是随机的且独立于中间状态,并且正态分布有零均值。因为对手可以访问硬件实施方案,所以该对手可获得三元组(ti,pi,ci)。此处pi是对手任意选择的一个明文输入,ci是硬件实施方案使用固定的未知密钥计算出的密文输出,且值ti示出在整个硬件实施方案的时间内计算输出密文ci的功率消耗。泄露
Figure GDA0002992248700000093
只是这整个功率轨迹ti的小部分。
攻击者的目标是在k的全部可能的假设下,通过比较装置的真实功率测量值ti与功率消耗的估计值来恢复密钥k的部分。差分功率分析 (DPA)攻击背后的概念是根据某一属性将测量迹线划分成两个不同的集合。举例来说,这个属性可为中间状态I(pi,k)的最低位的值。假设——并且这个假设实际上通过对未受保护的硬件进行测量而被确认——针对这两个集合的功率消耗的分布不同,即,它们具有不同的均值和标准差。
为了获得关于机密密钥k的部分的信息,针对每一迹线和输入pi,可列举全部可能的k的值(在攻击密钥字节时,值通常为28=256)、针对此密钥猜测计算中间值gi=I(pi,k),以及根据在gi处测量的这个属性将迹线ti划分成两个集合。如果密钥猜测k是正确的,那么子集平均值的差值将聚合成分布的均值的差值。然而,如果密钥猜测是错误的,那么集合中的数据可被视为测量值的随机取样和均值的差值应该聚合成零。如果可获得足够的迹线,那么这允许观测到正确的密钥猜测。此外,所需要的迹线的数目取决于测量噪声和分布均值(并且因此是平台特有的)。
虽然访问输出密文有助于验证经恢复密钥,但它不是绝对需要的。相反地,通过在最后轮回中瞄准中间值,一个人可攻击其中仅可访问输出密文的实施方案。相同的攻击可应用到解密运算。
为了评定可执行实施密码原语的二进制的安全性,可在对应的架构的CPU上执行二进制,并观测其安装差分功率分析攻击的功率消耗,所述二进制在白盒攻击模型中被设计成是安全的。然而,在白盒模型中,这可表现得好得多,因为模型意味着攻击者可观测到所有事物,而没有任何测量噪声。实际上,此类水平的观测可通过装备二进制来实现。从高水平来看,差分计算分析背后的概念是获得软件轨迹,例如,在执行白盒实施方案期间记录存储地址的轨迹。这些迹线用作到DPA攻击的输入。
本文中所描述的实施例示出了用于限制白盒实施方案中冲突的方法,因为这些实施例可被差分攻击利用。假设函数g返回算法的中间值,所述中间值可使用输入(由xi表示)的部分信息和机密密钥(由ki表示) 的部分信息计算出。假设v=g(xi,ki)表示算法的这个中间值。AES的典型例子是g瞄准仅使用单个输入和密钥字节的S盒计算。假设v的大小小于xi:这意味着冲突发生。换句话说,多个值xi映射到同一v。现在,可应用差分攻击,其中均值差值作为v的任何位上的区别符号。假设 f(v,j)返回v的第j位。在下文中,假设对手具有固定的j值。接着,每一个都与xi的值相关联的迹线被分成分别对应于f(v,j)=0和f(v,j)=1的两个集合V0和V1。假设p为迹线中的位置,在所述迹线中,白盒实施方案计算或使用值v,并假设这个值通过固定编码h进行编码。现在,首先猜想密钥已被正确地猜测出。接着,这两个集合V0和V1不相交;应注意,集合V0和V1是基于未编码的值。这意味着在位置p处处理的已编码的值 (对应于V0和V1中的这些迹线)也不相交。
接着,猜想密钥未被正确地猜测出。这意味着V0和V1产生可能的xi值的任意分割(对于正确的密钥猜测,并不基于中间值v在给定位置是具有1还是具有0)。由于所发生的冲突,这意味着在位置p处处理的已编码的值的集合很有可能对于V0和V1两者来说是一样的,即全部可能的值 h(v)很可能是一样的。这种不同行为的结果是,相比于针对不正确密钥猜测的,针对正确密钥猜测的在位置p处的用于V0和V1的迹线的平均值将极有可能更为不同。
其中发生上述问题的例子是在Chow的白盒AES实施方案中。那里, S盒的输出通过线性映射并接着通过非线性半字节编码进行编码。考虑一个输出半字节,并且出于简单解释的目的,不考虑线性映射。对于S 盒,24输入与相同4位半字节v冲突。因此,可应用上述攻击。如果还考虑线性映射,那么情形稍微更加复杂,因为随后存在S盒-输出位的混合物的已编码的半字节。在那种情况下,针对线性映射的不同选择,攻击者可多次应用攻击(以便更加精确:通过此映射的单个列的不同选择来满足环路)。
如上文所描述,如果攻击者可分离由固定编码进行编码的中间值v,那么攻击者可应用差分攻击,所述中间值具有作为得到其的输入(输出) 的部分的较小的熵。本文中所描述的实施例的特征包括以下两个方面。
首先,假设w为位串,并且由h(w)表示w的已编码版本,h(w)是白盒实施方案的中间结果。此外,假设w=u;r(即,u与r级联,其中u限定如下,并且r是具有任意长度的任意位串)。值u完全通过以下各者确定:(1)单个第一轮回的S盒输入和相关联的密钥字,或(2)单个最后轮回的S盒输出和相关联的密钥字。更确切地说,在情形(1)中,
Figure GDA0002992248700000121
在情形(2)中,
Figure GDA0002992248700000122
(其中,yi是最后轮回的输出)。那么,实施例的第一方面如下:已编码值h(w)的位长度是至少情形(1)中的S盒输入的位长度和至少情形(2)中的S盒输出的位长度。
应注意,在中间结果u不仅取决于xi(yi),还取决于输入(输出)的其它部分的情况下,攻击仍然有效,如果这些量值(contribution)满足以下属性:输入(输出)的这些部分保持恒定,那么它们在u中的比重 (contribution)由常量δ经由
Figure GDA0002992248700000123
Figure GDA0002992248700000124
来给出。因此,在对本发明的第一方面的上述描述中,应该包括u中其它S盒输入(输出)的这种可能的附加的依赖性。
这个方法的缺点是白盒实施方案的大小大大增加,因为S盒输出不再被拆分成半字节。因此,实施例的第二方面如下。宽编码仅仅应用于需要它们的轮回,即,第一个和最后一个轮回。在下文的实施例中,宽编码是对基本块的完整输出(例如,S盒的1字节输出)进行编码的编码。在密码函数的许多白盒实施方案中,各种基本块的实施方案可被拆分成半字节的运算(即,4位运算),以允许较小的图表。在其它轮回中,实施例的部分不满足实施例的第一方面的属性(出于性能原因)。应注意,这个实施例与AES尤其相关,但可使用其它密码函数的白盒实施方案来实施。
下面的白盒实施例使用AES(高级加密标准)块密码来描述,因为 AES已成为块密码的广泛使用的标准。AES为具有128位或16字节的块大小的块密码。明文被划分为具有16字节的块,所述明文形成加密算法的初始状态,加密算法的最终状态为密码文本。在加密算法中的任何给定点,这些16字节为该加密算法的状态。为了从概念上解释AES,状态的字节被组织为4x4字节的矩阵。AES包括轮回的次数,其取决于密钥大小。每次轮回包括在状态矩阵的字节、行或列上操作的类似处理步骤,在这些处理步骤中,每次轮回使用不同的轮回密钥。应注意,在使用AES作为例子的论述中,AES以特定方式限定轮回。在下面的实施例中,轮回为步骤的任何分组,其包括至少一个非线性映射函数,例如在AES中的S盒。因此,如下所述的轮回包括一个非线性映射函数和密码函数的其它步骤的任何组合。另外,轮回的边界可开始于非线性映射函数(例如,S盒)或开始于可与非线性映射函数(例如,密钥加法) 合并的任何其它运算。
图1示出AES的轮回的一些主要处理步骤。处理步骤包括:
AddRoundKey 110-状态的每个字节利用轮回密钥的字节进行异或运算;
SubBytes 120-使用查找表的字节到字节排列;
ShiftRows130-状态的每行被旋转固定字节数;以及
MixColumns 140-使用GF(28)中的模乘来处理每一列。
步骤SubBytes 120、ShiftRows 130和MixColumns 140与所使用的特定密钥无关。密钥被应用在步骤AddRoundKey 110中。除步骤 ShiftRows 130以外,可以对4x4状态矩阵的每一列执行处理步骤而无需了解其它列。因此,在每一列由四个8位值构成时,它们可以被看作是 32位运算。虚线150指示该过程被重复直到已执行所需次数的轮回。
这些步骤中的每一个或步骤的组合可由查找表或由查找表的网络表示。如果AddRoundKey 110步骤通过利用轮回密钥进行异或运算来实施,那么在白盒攻击情形下,密钥是攻击者可见的。AddRoundKey 110 步骤也可嵌入在查找表中,这使得找出密钥不太容易。实际上,通过查找表的网络,有可能替换AES的完整轮回。例如,SubBytes 120、ShiftRows 130和MixColumns 140步骤可使用表查找来实施。下文详细论述AES 的可能白盒实施方案以在下文中描述本发明的实施例,但是此实施方案的另外详细描述可见于Chow1。而且,可使用查找表实施方案的其它变体,它们在本发明的范畴内。
基于表格的白盒实施方案和有限状态机实施方案两者均具有在实施方案中的所有中间值被编码的特性(相比于标准实施方案)。使用有限状态机的白盒实施方案的例子在名称为“数据处理方法(Data Processing Method)”的美国专利公布2007/0014394以及由Wulf Harder和 AtisStraujums在2008年3月11日的名称为“同步MCFACTTM安全数据处理技术(Synchrosoft MCFACTTM Secure Data Processing Technology)”的再信任第六季会议的演示中公开,上述各者以引用的方式并入本文中以用于所有目的,如同在本文中完全阐述。图2示出在轮回的输入,即在S盒的输入上具有固定编码的白盒AES实施方案。如图所示,16个输入字节中的每一个由fi编码,以及输出字节中的每一个由gi编码。
为了描述本发明的实施例,将描述基于表格的白盒AES实施方案的基本描述。用于实施基于表格的白盒AES的方法的更详细描述参看 Chow 1。Chow 1示出了使用具有指定大小的表格来突破特定函数的具体实施方案。很好理解,可对表格进行各种其它划分,从而产生查找表的不同函数和不同大小。另外,虽然下文所述的本发明的实施例使用基于表格的AES的白盒实施方案,但是根据所述实施例,可实施其它密码和密码函数。而且,可使用不是基于表格的实施方案的其它类型的白盒实施方案,例如,有限状态实施方案。
基于表格的白盒AES描述被拆分成两个步骤。在第一步骤中,AES 的轮回被描述为查找表的网络。在第二步骤中,所述表格通过对它们的输入和输出进行编码而被模糊。
步骤1:将AES实施为查找表的网络。
AES对16字节的数据块进行运算。这些数据块通常被描述为4x4 字节矩阵,其被称为包括字节x1,1、x1,2、x1,3、……、x4,4的状态。如上文关于图1所描述的AES轮回包括以下运算:AddRoundKey 110、 SubBytes 120、ShiftRows 130和MixColumns 140。前两个运算AddRoundKey和SubBytes可以被合并到单个T盒运算中。也就是说,我们可以将输入字节xi,j的字节到字节函数Ti,j限定为
Figure GDA0002992248700000151
Figure GDA0002992248700000152
其中ki,j是基于AES密钥的16字节轮回密钥的单个字节。假设yi,j为Ti,j的输出。ShiftRows运算仅为输出字节yi,j的下标重新编号。为了易于陈述,此运算在本说明书中省略,但是其可并入到实施Ti,j的查找表中或可实施为状态矩阵的单独操控。在MixColumns步骤中,该轮回的输出字节zi,j根据4个输出字节y1,j、y2,j、y3,j和y4,j经由针对一些常量MCl,r的GF(28)中的代数表达式
Figure GDA0002992248700000153
Figure GDA0002992248700000154
来计算。
现在使用i,j,l=1,2,…,16限定每个字节到字节函数Qi,j,l(xi,j)= MCl,i·Ti,j(xi,j)的查找表。接着通过对这些查找表的结果进行异或运算,可计算任何输出字节zl,j,即
Figure GDA0002992248700000155
应注意,Q盒的下标i、j、l可以被解释为“轮回的输入字节i、j在该轮回的输出字节 l、j中的比重”。
异或运算可替换地被实施以对作为查找表的两个半字节(即,4位值)中的每一个进行运算以减小异或表格的大小。因此,Q盒可被实施以产生输出半字节,从而减小该表格的大小。因此,AES轮回的每个输出字节zl,j的计算已被描述为查找表的网络。计算字节z2,3的单个输出半字节的查找表的网络在图3中示出。
图3示出借助于查找表的网络的一个输出字节的计算。在输入状态 310中的一组输入字节x1,3、x2,3、x3,3和x4,3被输入到Q盒的查找表320、 322、324、326中。查找表320、322的输出u1、u2被馈送到异或330,以及查找表324和异或330的输出u3、u5被馈送到异或332。查找表326 和异或332的输出u4、u6被馈送到异或334。异或334的输出是输出状态的输出z2,3的第一半字节。Q盒还可被拆分成对两个半字节而不是整个字节进行运算的两个Q盒。这可通过使用额外Q盒以及相似的异或网络来完成。
另外,通过从输入状态接收字节列并将它们转换成输出状态的对应列的输出,可实施额外的表格集合,以将该输入状态310完全转换成该输出状态。
步骤2:模糊表格和中间值
在图3中所描绘的实施方案中,密钥可易于从Q盒提取。仅对该输出应用逆MixColumns乘积和逆S盒,以揭露纯AddRoundKey运算。为了防止这点,所有查找表的输入和输出利用任意双映射函数进行编码。这在Chow 1中描述。这意味着查找表与对该输出进行编码的编码函数和与对该输入进行解码的解码函数合并。选择编码以使得一个表格的输出编码匹配在下一个表格中假设的输入编码。用于第一轮回的图3的实施方案的一部分在图4中示出。在此例子中,到轮回的输入未进行编码,以便与AES兼容,但是对该轮回的输出进行编码。输出编码在下一轮回中进行处理。也就是说,不同于第一轮回,第二轮回(以及后续轮回) 假设其输入被编码。可替换的是,第一轮回可接收已编码的输入。接着,此输入编码必须被应用在包含白盒实施方案的软件程序中的其它地方。类似地,最后轮回可根据输出是否与AES兼容而包括或不包括输出编码。应注意,在所获得的白盒实施方案中,查找表和中间值两者被模糊。
图4示出通过对输入和输出进行编码来模糊的图3的网络表格的部分。查找表420、422、424、426对应于图3的查找表320、322、324、 326。查找表420、422、424、426的输入分别由函数g1、g2、g3、g4编码。查找表420、422、424、426的输出分别由函数f1、f2、f3、f4编码。异或430对应于异或330。异或430的输入使用f1 -1和f2 -1对输入进行解码。接着,异或430的输出由函数f5编码。异或432、434以类似方式具有如图所示的输入解码和输出编码。输出z2,3使用f7进行编码。这个模糊可应用在字节或半字节与Q盒配合使用的任一情形中。
与所呈现的白盒实施方案相关的问题是异或表格相当大:两个8位值异或运算成8位值。因此,Chow等人提出将编码拆分成8位线性部分和两个4位非线性部分。结果,异或可通过4位异或运算来实施。图 5示出后面跟着Q盒的输出的两个4位非线性编码的8位线性编码的应用。例如,Q盒的查找表420和422包括后面跟着4位非线性编码542、 544、552、554的8位线性编码540、550。随后,Q盒的查找表420和422的输出被输入到异或560、562,其将编码逆向。
然而,这种解决方案的问题是它容易受到DCA攻击的影响。现在描述其中仅应用有可能的图5的策略的实施例。这意味着如果针对某一函数g和值δ,
Figure GDA0002992248700000171
所述值δ在除了以外的某一其它输入是固定的情况下是固定的,那么8位值u由8位非线性编码进行编码。否则的话,编码被拆分成后面跟着多个较小非线性编码的线性编码。针对所描述的白盒AES,这意味着如图4所描述的那样实施第一和最后轮回(因此,全部异或表格是16到8位异或表格),并且如图5所描述的那样实施其它轮回(因此,全部异或表格是8到4位异或表格)。
图4和5的各个元件,例如,Q盒和异或,是可用于形成密码运算的白盒实施方案的基本块。Q盒和异或可形成实施替代运算(例如,AES S盒)的替代层。应注意,上述实施例意图保护密码函数的前两个替代层和最后两个替代层之间的攻击。
根据本发明的实施例的方法可在计算机系统上实施为计算机实施的方法。用于根据本发明的方法的可执行代码可存储在计算机程序媒体上。计算机程序媒体的例子包括存储器装置、光学储存装置、集成电路、服务器、在线软件等。因此,白盒系统可包括实施白盒计算机程序的计算机。此类系统还可包括其它硬件元件,所述硬件元件包括存储装置、用于利用外部系统以及在白盒系统的元件之间传输数据的网络接口。
在本发明的实施例中,计算机程序可包括适于当计算机程序在计算机上运行时执行根据本发明的方法的所有步骤的计算机程序代码。优选地,计算机程序实施在非暂时性计算机可读媒体上。
另外,因为白盒密码术往往冗长难以被人书写,所以是非常复杂和 /或模糊的。因此,具有以自动化的方式形成根据本发明的实施例的密码系统的方法是有利的。
形成根据本发明的密码系统的方法可在计算机上或在专用硬件中或两者的组合中实施为计算机实施的方法。用于根据本发明的方法的可执行代码可存储在计算机程序媒体上。在此类方法中,计算机程序可包括适于当计算机程序在计算机上运行时执行所述方法的所有步骤的计算机程序代码。计算机程序被实施在非暂时性计算机可读媒体上。
本文所述的密码系统可在用户装置(例如,移动电话、平板计算机、计算机、机顶盒、智能电视等)上实施。内容提供商,(例如,电视网络、视频流服务、金融机构、音乐流业务等)可向用户装置提供软件以从该内容提供商接收已加密内容。软件可具有如上所述被嵌入其中的加密密钥,并且还可包括如上所述的绑定串。接着内容提供商可向用户装置发送加密内容,该用户装置接着可使用所供应的软件进行解密并使用该内容。
图6示出用于为用户装置提供安全内容以及处理该安全内容的软件应用的系统。该系统包括内容服务器600、应用服务器620、用户装置 650、652以及数据网络640。用户装置650、652可经由数据网络640 请求访问由内容服务器600提供的安全内容。数据网络可为用户装置 650、652和内容服务器600以及应用服务器620之间提供连接的任何数据网络。用户装置650、652可为多个装置中的一个,例如机顶盒、媒体等浮电缆、数字视频记录器、平板计算机、移动电话、膝上型计算机、便携式媒体装置、智能手表、台式计算机、媒体服务器等。
用户的请求访问可首先需要下载可用于处理由内容服务器600提供的安全内容的软件应用。所述软件应用可从应用服务器620下载。软件应用可使用上文描述的技术进行模糊处理以及如上文描述进行操作。一旦用户装置650、652安装软件应用,用户装置随后就可从内容服务器 600下载安全内容并且使用所下载的软件应用来访问该安全内容。例如,所下载的软件应用程序可执行对从内容服务器接收的已加密内容的解密。在其它实施例中,软件应用可执行其它安全运算,例如加密、数字签名产生和验证等。
内容服务器600可控制对提供给用户装置650、652的安全内容的访问。因此,在内容服务器600接收安全内容的请求时,内容服务器600 可向所请求的用户装置传输该安全内容。同样,应用服务器620可控制对提供给用户装置650、652的软件应用的访问。因此,在内容服务器 600接收软件应用的请求时,应用服务器620可向所请求的用户装置传输该软件应用。在将软件应用或安全内容提供给用户装置之前,请求软件应用或安全内容的用户装置还可通过相应的服务器来认证。
内容服务器600可包含经由一个或多个系统总线608互连的处理器 602、存储器604、用户接口606、网络接口610和内容存储装置612。将理解,图6在一些方面中构成抽象图,且装置600的组件的实际组织可比所示出的更加复杂。
处理器602可为能够执行存储在存储器604或存储装置612中的指令的任何硬件装置。因此,该处理器可包含微处理器、现场可编程门阵列(FPGA)、专用集成电路(ASIC)或其它类似装置。
存储器604可包括各种存储器,例如,L1、L2或L3高速缓冲存储器或系统存储器。因而,存储器604 可包括静态随机存取存储器 (SRAM)、动态RAM(DRAM)、快闪存储器、只读存储器(ROM),或其它类似存储器装置。
用户接口606可包括用于实现与用户(例如,管理员)通信的一个或多个装置。例如,用户接口606可包括用于接收用户命令的显示器、鼠标和键盘。
网络接口610可包括用于实现与其它硬件装置的通信的一个或多个装置。例如,网络接口610可包括网络接口卡(NIC),其被配置成根据以太网协议通信。另外,网络接口610可实施TCP/IP堆栈以根据TCP/IP 协议通信。用于网络接口610的各种替代的或另外的硬件或配置将是显而易见的。
内容存储装置612可包括一个或多个机器可读内容存储媒体,例如只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储媒体、光学存储媒体、快闪存储器装置或类似存储媒体。在各种实施例中,内容存储装置612可存储将提供给用户的内容。
应用服务器620包括与内容服务器600的元件相同的元件,并且对内容服务器600中的相同元件的描述适用于应用服务器620。而且,内容存储装置612被应用存储装置632代替。另外,应注意,内容服务器和应用服务器可在单个服务器上实施。并且,此类服务器可以在分布式计算机系统上实施以及在云计算机系统上实施。
在处理器上运行以实施本发明的实施例的特定软件的任何组合构成特定专门机器。
如本文所使用,术语“非暂时性机器可读存储媒体”应理解为不包括暂时传播信号,但包括所有形式的易失性和非易失性存储器。此外,如本文所使用,术语“处理器”应理解为涵盖多种装置,例如微处理器、现场可编程门阵列(FPGA)、专用集成电路(ASIC)和其它类似处理装置。当软件在处理器上实施时,所述组合变为单个特定机器。
本领域的技术人员应了解,本文中的任何框图表示体现本发明的原理的说明性电路的概念视图。
尽管已经具体参考各种示例性实施例的特定示例性方面来详细地描述各种示例性实施例,但应理解,本发明能够容许其它实施例且其细节能够容许在各种显而易见的方面的修改。如对本领域的技术人员显而易见的,可以实现变化和修改,同时保持在本发明的精神和范畴内。因此,前述公开内容、描述和图式仅出于说明性目的且不以任何方式限制本发明,本发明仅由权利要求书限定。

Claims (8)

1.一种用于通过密码系统中的带密钥的密码运算过程将输入消息映射到输出消息的方法,所述带密钥的密码运算过程包括多个替代层和状态数据,其特征在于,包括:
在包括S盒的所述带密钥的密码运算过程的第一替代层中将所述输入消息映射到第一状态数据,其中所述第一替代层包括实施所述第一替代层的N个基本块,并且其中将具有第一大小的非线性编码放置在所述第一替代层的所述N个基本块的输入和输出上,其中N是整数;
在所述带密钥的密码运算过程的多个中间替代层中将所述第一状态数据映射到第二状态数据,每一中间替代层包括S盒,其中所述中间替代层包括实施所述中间替代层的M个基本块,并且其中将具有第二大小的多个非线性编码放置在所述中间替代层的所述M个基本块的输入和输出上,其中M是整数;以及
在包括S盒的所述带密钥的密码运算过程的最终替代层中将所述第二状态数据映射到输出消息,其中所述最终替代层包括实施所述最终替代层的K个基本块,并且其中将具有第三大小的非线性编码放置在所述最终替代层的所述K个基本块的输入和输出上,其中K是整数,
其中所述第一大小和第三大小大于所述第二大小,
其中N>M,且
其中K>M。
2.根据权利要求1所述的方法,其特征在于,所述第一大小和所述第三大小大于或等于所述第二大小的两倍。
3.根据权利要求1所述的方法,其特征在于,所述密码运算过程为高级加密标准(AES)。
4.根据权利要求1所述的方法,其中所述密码运算过程为数据加密标准(DES)。
5.根据权利要求1所述的方法,其特征在于,所述第一大小为8位,所述第二大小为4位,并且所述第三大小为8位。
6.根据权利要求4所述的方法,其特征在于:
在所述中间替代层中实施异或函数的基本块对4位输入进行运算以产生4位输出,以及
在所述第一替代层和所述最终替代层中实施异或函数的基本块对8位输入进行运算以产生8位输出。
7.根据权利要求1所述的方法,其特征在于:
在所述中间替代层中实施异或函数的基本块对具有所述第二大小的输入进行运算以产生具有所述第二大小的输出;
在所述第一替代层中实施异或函数的基本块对具有所述第一大小的输入进行运算以产生具有所述第一大小的输出;以及
在所述最终替代层中实施异或函数的基本块对具有所述第三大小的输入进行运算以产生具有所述第三大小的输出。
8.根据权利要求1所述的方法,其特征在于,还将线性编码放置在所述中间替代层中的所述M个基本块的所述输入和输出上。
CN201611135849.5A 2015-12-16 2016-12-09 白盒实施方案内中间值的宽编码 Active CN106888081B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/971,851 US10171234B2 (en) 2015-12-16 2015-12-16 Wide encoding of intermediate values within a white-box implementation
US14/971,851 2015-12-16

Publications (2)

Publication Number Publication Date
CN106888081A CN106888081A (zh) 2017-06-23
CN106888081B true CN106888081B (zh) 2021-08-13

Family

ID=57517747

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611135849.5A Active CN106888081B (zh) 2015-12-16 2016-12-09 白盒实施方案内中间值的宽编码

Country Status (3)

Country Link
US (1) US10171234B2 (zh)
EP (1) EP3182637B1 (zh)
CN (1) CN106888081B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10567159B2 (en) * 2017-06-07 2020-02-18 Nxp B.V. CMAC computation using white-box implementations with external encodings
KR102602696B1 (ko) * 2017-10-13 2023-11-16 삼성전자주식회사 암호화 장치 및 복호화 장치, 이들의 동작방법
US10140612B1 (en) * 2017-12-15 2018-11-27 Clover Network, Inc. POS system with white box encryption key sharing
EP3506558A1 (en) * 2017-12-28 2019-07-03 Koninklijke Philips N.V. Whitebox computation of keyed message authentication codes
GB2574642A (en) * 2018-06-13 2019-12-18 Nordic Semiconductor Asa Hardware accelerator
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
US11995191B2 (en) * 2021-06-25 2024-05-28 FortifyIQ, Inc. Side-channel attack on HMAC-SHA-2 and associated testing
CN116566588B (zh) * 2023-04-25 2023-12-01 广州南网科研技术有限责任公司 一种白盒sm4算法的防护方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101536398A (zh) * 2006-11-17 2009-09-16 皇家飞利浦电子股份有限公司 用于白盒实现的加密方法
CN105007256A (zh) * 2014-03-20 2015-10-28 恩智浦有限公司 用于在非信任平台上执行安全功能的安全模块
CN105024803A (zh) * 2014-04-28 2015-11-04 恩智浦有限公司 白箱实现中的行为指纹
CN105049400A (zh) * 2014-03-19 2015-11-11 恩智浦有限公司 在白盒实现方案中拆分s盒以防止攻击

Family Cites Families (26)

* 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
US8806187B1 (en) * 2009-12-03 2014-08-12 Google Inc. Protecting browser-viewed content from piracy
US7769165B2 (en) * 2005-10-14 2010-08-03 Microsoft Corporation Semi-public white-box cipher
EP2188944B1 (en) * 2007-09-13 2019-06-12 Irdeto B.V. Combined watermarking and decryption of content
EP2255317B1 (en) * 2008-03-05 2013-05-15 Irdeto B.V. Cryptographic system
WO2009140774A1 (en) * 2008-05-23 2009-11-26 Cloakware Corporation System and method for generating white-box implementations of software applications
US8175265B2 (en) * 2008-09-02 2012-05-08 Apple Inc. Systems and methods for implementing block cipher algorithms on attacker-controlled systems
US20100150343A1 (en) * 2008-12-15 2010-06-17 Nxp B.V. System and method for encrypting data based on cyclic groups
JP5688528B2 (ja) * 2009-03-10 2015-03-25 イルデト・ベー・フェー 入力に依存する符号化を用いたホワイトボックス暗号システム
KR101676326B1 (ko) * 2009-05-06 2016-11-15 이르데토 비.브이. 화이트박스 암호화를 사용하는 연동 바이너리 보호 방법
US20100303229A1 (en) * 2009-05-27 2010-12-02 Unruh Gregory Modified counter mode encryption
EP2443786A1 (en) * 2009-06-19 2012-04-25 Irdeto B.V. White-box cryptographic system with configurable key using intermediate data modification
EP2293487A1 (en) * 2009-09-08 2011-03-09 Thomson Licensing A method of diversification of a round function of an encryption algorithm
US8644500B2 (en) * 2010-08-20 2014-02-04 Apple Inc. Apparatus and method for block cipher process for insecure environments
CN103875001B (zh) * 2011-03-31 2017-04-19 爱迪德技术有限公司 用于保护密码散列函数的执行的方法和系统
EP2829010B1 (en) * 2012-03-20 2020-11-04 Irdeto B.V. Updating key information
KR20150090438A (ko) * 2014-01-29 2015-08-06 한국전자통신연구원 화이트박스 암호 장치 및 그 방법
CN103905462B (zh) * 2014-04-16 2017-05-17 深圳国微技术有限公司 可抵御差分功耗分析攻击的加密处理装置及方法
US10177912B2 (en) * 2014-05-09 2019-01-08 Sony Corporation Content individualization
US9515818B2 (en) * 2014-09-16 2016-12-06 Apple Inc. Multi-block cryptographic operation
US11234105B2 (en) * 2014-09-29 2022-01-25 Visa International Service Association Methods and systems for asset obfuscation
DE102014016548A1 (de) * 2014-11-10 2016-05-12 Giesecke & Devrient Gmbh Verfahren zum Testen und zum Härten von Softwareapplikationen
FR3029719B1 (fr) * 2014-12-04 2017-12-22 Commissariat Energie Atomique Methode de chiffrement a couches de confusion et de diffusion dynamiques
US9665699B2 (en) * 2015-03-13 2017-05-30 Nxp B.V. Implementing padding in a white-box implementation
US10372886B2 (en) * 2015-05-05 2019-08-06 Nxp B.V. Protecting the input/output of modular encoded white-box RSA/ECC
US10700849B2 (en) * 2015-07-30 2020-06-30 Nxp B.V. Balanced encoding of intermediate values within a white-box implementation

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101536398A (zh) * 2006-11-17 2009-09-16 皇家飞利浦电子股份有限公司 用于白盒实现的加密方法
CN105049400A (zh) * 2014-03-19 2015-11-11 恩智浦有限公司 在白盒实现方案中拆分s盒以防止攻击
CN105007256A (zh) * 2014-03-20 2015-10-28 恩智浦有限公司 用于在非信任平台上执行安全功能的安全模块
CN105024803A (zh) * 2014-04-28 2015-11-04 恩智浦有限公司 白箱实现中的行为指纹

Also Published As

Publication number Publication date
EP3182637B1 (en) 2021-03-31
EP3182637A1 (en) 2017-06-21
US10171234B2 (en) 2019-01-01
CN106888081A (zh) 2017-06-23
US20170180119A1 (en) 2017-06-22

Similar Documents

Publication Publication Date Title
CN106888081B (zh) 白盒实施方案内中间值的宽编码
CN106888080B (zh) 保护白盒feistel网络实施方案以防错误攻击
US10097342B2 (en) Encoding values by pseudo-random mask
US9838198B2 (en) Splitting S-boxes in a white-box implementation to resist attacks
US9602273B2 (en) Implementing key scheduling for white-box DES implementation
CN106953723B (zh) 防止dfa攻击的拆分和合并方法
US9455833B2 (en) Behavioral fingerprint in a white-box implementation
US10700849B2 (en) Balanced encoding of intermediate values within a white-box implementation
EP3099002A1 (en) Diversifying control flow of white-box implementation
CN107273724B (zh) 为白盒实施方案的输入和输出加水印
CN105978680B (zh) 一种加密钥的加密运算方法
CN106209346B (zh) 白盒密码技术交错查找表
EP3035584B1 (en) Using single white-box implementation with multiple external encodings
EP3413509B1 (en) Cmac computation using white-box implementations with external encodings
US9338145B2 (en) Security patch without changing the key

Legal Events

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