CN105049400B - 在白盒实现方案中拆分s盒以防止攻击 - Google Patents

在白盒实现方案中拆分s盒以防止攻击 Download PDF

Info

Publication number
CN105049400B
CN105049400B CN201510111975.6A CN201510111975A CN105049400B CN 105049400 B CN105049400 B CN 105049400B CN 201510111975 A CN201510111975 A CN 201510111975A CN 105049400 B CN105049400 B CN 105049400B
Authority
CN
China
Prior art keywords
box
output
fractionation
replacement box
input
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
CN201510111975.6A
Other languages
English (en)
Other versions
CN105049400A (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 CN105049400A publication Critical patent/CN105049400A/zh
Application granted granted Critical
Publication of CN105049400B publication Critical patent/CN105049400B/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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
    • 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
    • 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
    • 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

Abstract

一种执行将输入消息映射到输出消息的加密钥的密码运算的方法,其中所述输入消息包括m个输入数据,所述输出消息包括m个输出数据,其中所述密码运算包括至少一个回合,所述密码运算规定了用于将输入数据映射到输出数据的替换盒,所述方法包括:使用n个拆分替换盒将m个输入数据中的每个变换为n个输出数据,其中所述n个拆分替换盒总和为所规定的替换盒;以及混合并组合mxn个输出数据。

Description

在白盒实现方案中拆分S盒以防止攻击
技术领域
本文所公开的多种示例实施例总体上涉及保护白盒密码组件不受攻击。
背景技术
互联网向用户提供了对数字内容进行访问的方便性和普遍性。由于互联网是强大的分发渠道(distribution channel),许多用户设备力图直接访问互联网。用户设备可以包括个人计算机、膝上型计算机、机顶盒、支持互联网的媒体播放器、移动电话、智能电话、平板、移动热点或能够访问互联网的任何其它设备。将互联网用作正版内容的分发媒介产生了关于保护内容提供者利益的紧迫问题。越来越多的用户设备使用加载有适合软件的处理器来运行,以便呈现(回放)诸如音频和/或视频等数字内容。对回放软件进行控制是强加内容所有者利益的一种方式,包括可以使用内容的条款和条件。以前的许多用户设备是封闭式系统。现今,越来越多的平台是部分开放的。可以假定一部分用户具有对硬件和软件的完全控制并接入硬件和软件,其中硬件和软件提供对内容的访问,并且具有大量时间和资源来攻击和避开任何内容保护机制。因此,内容提供者必须在恶意网络社区上向合法用户传递内容,在所述恶意网络社区中,并非所有用户或用户设备是可以信任的。
例如,安全软件应用一旦被调用就执行多种功能,例如用于保护并认证数字内容的密码功能。为了抵御攻击,这些算法必须是混乱的(隐藏的),以便防止对所述算法进行反向工程和修改,或禁止获得特定用户安全信息。因此,可以通过由实现安全软件的处理器的指令集限定的多种功能,执行安全软件应用功能。例如,模糊这些功能的一种方式是通过使用查找表。
内容提供者必须在恶意网络社区上向合法用户传递内容,在所述恶意网络社区上并非所有用户或设备是可以信任的。这样引起白盒密码学的开发。在白盒密码学情境下,假定用户完全控制对内容提供访问的硬件和软件,并具有无限量的时间和资源来攻击和避开任何内容保护机制。强加可以使用内容的条款和条件的安全软件代码应是防篡改的。数字版权管理是安全软件应用的普通应用。对分布于用户设备上的受保护内容进行数字版权管理的一般方法是使用例如DES(数据加密标准)、AES(高级加密标准)或使用其它已知加密原理来对数字内容进行加密,并使用解密密钥来恢复数字内容。必须保护这些解密密钥以便防止对受保护的内容进行未授权访问。
在数字版权管理情况下,攻击者完全控制对所保护内容进行管理和访问的软件。因此,攻击者可以修改软件并还可以搜索以获得用于对所保护内容进行加密的密码密钥。可以通过分析软件指令、在操作期间监控存储器(具体地,当运行密码函数或使用调试器时),来发现这种密钥。
广泛使用DRM和其它安全软件引起了对安全的、防篡改的软件的需要,安全的、防篡改的软件设法使利用软件的篡改变得复杂化。存在多种用于增加软件应用的防篡改的技术。大部分的这种技术是基于通过在所述软件应用的控制路径和数据路径二者中添加随机性和复杂性的面纱,来隐藏所包含的应用知识。这种技术的构思在于仅通过代码检查(codeinspection)来使得提取信息变得更加困难。因此,更难以寻找例如处理对所述安全应用的访问和准许控制的代码,并对其进行改变。
如本文所用,白盒密码学包括在攻击者完全控制运行白盒密码软件的系统的环境下,执行密码功能的安全软件应用。因此,攻击者可以修改输入和输出,跟踪所述软件的运算,在任何时刻采样并监控所述软件使用的存储器,甚至修改软件。因此,需要以防止公开在所述安全功能中使用的安全信息的方式来执行安全功能。可以以多种方式来执行白盒密码功能。这种方法包括:模糊(obscuring)软件代码;使用模糊对秘密信息的使用的复杂数学函数;使用查找表;使用有限状态机;或执行密码功能并隐藏安全函数所需的秘密信息的任意其它方法。白盒实现方案还可以包含包括抗调试和防篡改特性的组件。
发明内容
下文提出对多种示例实施例的简要概述。可能在以下概述中进行了一部分简化和省略,简化和省略是为了强调和介绍所述多种示例实施例的一些方面,而不是为了限制本发明的范围。下文是对示例实施例的详细描述,足以允许本领域技术人员利用本发明构思。
多种示例实施例涉及一种执行将输入消息映射到输出消息的加密钥的密码运算(keyed cryptographic operation)的方法,其中所述输入消息包括m个输入数据,所述输出消息包括m个输出数据,其中所述密码运算包括至少一个回合,所述密码运算规定了用于将输入数据映射到输出数据的替换盒(substitution box),所述方法包括:使用n个拆分替换盒将m个输入数据中的每个变换为n个输出数据,其中所述n个拆分替换盒总和为所规定的替换盒;以及混合和组合mxn个输出数据。
描述了多种示例实施例,还包括:m个拆分替换盒集合,每个集合中包括n个拆分替换盒,其中应用到多个输入数据中的每个的所有拆分替换盒集合是彼此不同的,每个集合中包括n个拆分替换盒,所述n个拆分替换盒总和为所规定的替换盒。
描述了多种示例实施例,还包括:m个拆分替换盒集合,每个集合中包括n个拆分替换盒,其中应用到多个输入数据中的每个的至少两个拆分替换盒集合是彼此不同的,每个集合中包括n个拆分替换盒,所述n个拆分替换盒总和为所规定的替换盒。
描述了多种示例实施例,其中所述混合和组合mxn个输出数据包括:在将m个输出集合中的每个集合的n个输出中的至少一个与该输出集合的其它n-1个输出中之前,将所述n个输出中的至少一个与另一集合的n个输出中的至少一个输出相组合。
描述了多种实施例,其中所述输入数据是输入到加密钥的密码运算的第一回合中的未编码数据。
描述了多种实施例,其中组合的输出数据用于计算输出消息的一部分,其中所述输出消息是加密钥的密码运算的最后回合的未编码输出。
描述了多种实施例,其中所述密码运算是高级加密标准。
描述了多种实施例,其中所述密码运算是数据加密标准。
描述了多种实施例,其中使用与n个拆分替换盒相对应的n个查找表,来实现所述使用n个拆分替换盒将输入数据变换为n个输出数据,其中所述n个查找表将n个拆分替换盒与密码密钥相组合。
描述了多种实施例,其中对n个输出数据进行编码,在n个查找表中实现所述编码。
描述了多种实施例,其中使用与n个拆分替换盒相对应的n个有限状态机,来实现使用n个拆分替换盒将输入数据变换为n个输出数据,其中所述n个有限状态机将n个拆分替换盒与密码密钥相组合。
此外,多种示例实施例涉及一种执行高级加密标准(AES)密码运算的方法,包括:通过AES密码运算的第一回合,接收AES状态的四个未编码输入列字节;将第一个未编码输入列字节输入到n个第一查找表中,以便获得n个第一输出值,其中所述n个第一查找表中的每个查找表组合n个第一拆分S盒之一、第一密码密钥以及MixColumn常数,其中所述n个第一拆分S盒总和为AES S盒;将第二个未编码输入列字节输入到n个第二查找表,以便获得n个第二输出值,其中所述n个第二查找表中的每个查找表组合n个第二拆分S盒之一、第二密码密钥以及MixColumn常数,其中所述n个第二拆分S盒总和为AES S盒;将第三个未编码输入列字节输入到n个第三查找表,以便获得n个第三输出值,其中所述n个第三查找表中的每个查找表组合n个第三拆分S盒之一、第三密码密钥以及MixColumn常数,其中所述n个第三拆分S盒总和为AES S盒;将第四个未编码输入列字节输入到n个第四查找表中,以便获得n个第四输出值,其中所述n个第四查找表中的每个查找表组合n个第四拆分S盒之一、第四密码密钥以及MixColumn常数,其中所述n个第四拆分S盒总和为AES S盒;所述将n个编码的第一、第二、第三和第四输出值混合并组合为AES密码运算的第一回合的输出AES状态的编码输出字节。
描述了多种实施例,还包括:接收AES密码运算的最后回合的输入状态的四个编码输入列字节;将第一个编码输入列字节输入到m个第一查找表中,以便获得m个第一输出值,其中所述m个第一查找表中的每个查找表组合m个第二拆分S盒之一、第一密码密钥以及MixColumn常数,其中所述m个第二拆分S盒总和为AES S盒;将第二个编码输入列字节输入到m个第二查找表中,以便获得m个第二输出值,其中所述m个第二查找表中的每个查找表组合m个第二拆分S盒之一、第二密码密钥以及MixColumn常数;将第三个编码输入列字节输入到m个第三查找表中,以便获得m个第三输出值,其中所述m个第三查找表中的每个查找表组合m个第二拆分S盒之一、第三密码密钥以及MixColumn常数;将第四个编码输入列字节输入到m个第四查找表中,以便获得m个第四输出值,其中所述m个第四查找表中的每个查找表合并m个第二拆分S盒之一、第四密码密钥以及MixColumn常数;将m个编码的第一、第二、第三和第四输出值组合为AES密码运算的最后回合的输出状态的未编码输出字节。
描述了多种实施例,其中所述密码运算包括第一回合和第二回合,所述输入消息包括m个输入数据,所述输出消息包括m个输出数据,密码运算规定了用于将输入数据映射到输出数据的替换盒,所述方法还包括:使用n个第一拆分替换盒将m个未编码的第一回合输入数据中的每个变换为n个编码的第一回合输出数据,其中所述n个第一替换盒总和为所规定的替换盒;混合并组合mxn个编码的第一回合输出数据。
描述了多种实施例,还包括:使用i个第二拆分替换盒将m个编码的最后回合输入数据中的每个变换为m个编码的最后回合输出数据,其中所述i个第一替换盒总和为所规定的替换盒;以及将所述mxi个编码的第一回合输出数据混合并组合为未编码的最后回合输出数据。
描述了多种实施例,其中所述密码运算是高级加密标准。
描述了多种实施例,其中所述密码运算是数据加密标准。
描述了多种实施例,其中使用与n个第一拆分替换盒相对应n个查找表,来实现所述将输入数据变换为n个输出数据,其中所述n个查找表将所述n个拆分替换盒与密码密钥相组合。
描述了多种实施例,其中对n个输出数据进行编码,并在n个第一查找表中实现所述编码。
描述了多种实施例,其中使用与n个第一拆分替换盒相对应的n个有限状态机,来实现所述使用n个第一拆分替换盒将输入数据变换为n个输出数据,其中所述n个有限状态机将所述n个拆分替换盒与密码密钥相组合。
此外,多种实施例涉及一种用由白盒系统执行的指令编码的非暂时性机器可读存储介质,其中所述白盒系统执行将输入消息映射到输出消息的加密钥的密码运算,其中所述输入消息包括m个输入数据,所述输出消息包括m个输出数据,其中密码运算包括至少一个回合,所述密码运算规定了用于将输入数据映射到输出数据的替换盒,所述非暂时性机器可读存储介质包括:用于使用n个拆分替换盒将m个输入数据中的每个变换为n个输出数据的指令,其中所述n个拆分替换盒总和为所规定的替换盒;以及用于混合并组合mxn个输出数据的指令。
描述了多种实施例,还包括:m个拆分替换盒集合,每个集合中包括n个拆分替换盒,其中应用到多个输入数据中的每个的所有拆分替换盒集合是彼此不同的,每个集合中包括n个拆分替换盒,所述n个拆分替换盒总和为所规定的替换盒。
描述了多种示例实施例,还包括:m个拆分替换盒集合,每个集合中包括n个拆分替换盒,其中应用到多个输入数据中的每个的至少两个拆分替换盒集合是彼此不同的,每个集合中包括n个拆分替换盒,所述n个拆分替换盒总和为所规定的替换盒。
描述了多种示例实施例,其中所述混合并组合mxn个输出数据的指令包括:在将m个输出集合中的每个集合的n个输出中的至少一个与该输出集合的其它n-1个输出相组合之前,将所述n个输出中的至少一个与另一集合的n个输出中的至少一个输出相组合。
描述了多种实施例,其中所述输入数据是输入到加密钥的密码运算第一回合的中的未编码数据。
描述了多种实施例,其中组合的输出数据用于计算输出消息的一部分,其中所述输出消息是加密钥的密码运算的最后回合的未编码输出。
描述了多种实施例,其中所述密码运算是高级加密标准。
描述了多种实施例,其中所述密码运算是数据加密标准。
描述了多种实施例,其中使用与n个拆分替换盒相对应的n个查找表,来实现所述使用n个拆分替换盒将输入数据变换为n个输出数据的指令,其中所述n个查找表将n个拆分替换盒与密码密钥相组合。
描述了多种实施例,其中对n个输出数据进行编码,在n个查找表中实现所述编码。
描述了多种实施例,其中使用与n个拆分替换盒相对应的n个有限状态机,来实现使用n个拆分替换盒将输入数据变换为n个输出数据的指令,其中所述n个有限状态机将n个拆分替换盒与密码密钥相组合。
此外,多种示例实施例涉及一种产生在白盒系统中将输入消息映射到输出消息的密码运算的白盒实现方案的方法,其中所述输入消息包括m个输入数据,所述输出消息包括m个输出数据,其中密码运算包括至少一个回合,所述密码运算规定了用于将输入数据映射到输出数据的替换盒,所述方法包括:产生加密钥的密码运算的白盒实现方案还包括:产生n个拆分替换盒,其中所述n个拆分替换盒总和为所规定的替换盒;以及在白盒系统中实现mxn个输出数据的混合和组合。
描述了多种示例实施例,其中所述拆分替换盒还包括:m个拆分替换盒集合,每个集合中包括n个拆分替换盒,其中应用到多个输入数据中的每个的所有拆分替换盒集合是彼此不同的,每个集合中包括n个拆分替换盒,所述n个拆分替换盒总和为所规定的替换盒。
描述了多种示例实施例,其中所述拆分替换盒还包括:m个拆分替换盒集合,每个集合中包括n个拆分替换盒,其中应用到多个输入数据中的每个的至少两个拆分替换盒集合是彼此不同的,每个集合中包括n个拆分替换盒,所述n个拆分替换盒总和为所规定的替换盒。
描述了多种示例实施例,其中所述混合并组合mxn个输出数据包括:在将m个输出集合中的每个集合的n个输出中的至少一个与该输出集合的其它n-1个输出相组合之前,将所述n个输出中的至少一个与另一集合的n个输出中的至少一个输出相组合。
描述了多种实施例,其中所述输入数据是输入到加密钥的密码运算第一回合中的未编码数据。
描述了多种实施例,其中组合的输出数据用于计算输出消息的一部分,其中所述输出消息是加密钥的密码运算的最后回合的未编码输出。
描述了多种实施例,其中所述密码运算是高级加密标准。
描述了多种实施例,其中所述密码运算是数据加密标准。
描述了多种实施例,其中使用与n个拆分替换盒相对应的n个查找表,来实现所述n个拆分替换盒,其中所述n个查找表将n个拆分替换盒与密码密钥相组合。
描述了多种实施例,其中对n个输出数据进行编码,在n个查找表中实现所述编码。
描述了多种实施例,其中使用与n个拆分替换盒相对应的n个有限状态机,来实现所述n个拆分替换盒,其中所述n个有限状态机将n个拆分替换盒与密码密钥相组合。
附图说明
为了更好地理解多种示例实施例,参考附图,在附图中:
图1示出了AES的回合的主要步骤;
图2示出了对多个回合的输入进行固定编码的白盒AES实现方案;
图3示出了通过查找表的网络来计算一个输出半字节(output nibble);
图4示出了图3的网络表的一部分,其中通过对输入和输出进行编码来使所述网络表变得混乱;
图5示出了根据具有两个拆分S盒的实施例,通过查找表网络计算一个输出半字节。
为了便于理解,将相同的附图标记用于表示具有实质上相同或相似的结构和/或实质上相同或相似的功能的元件。
具体实施方式
以下描述和附图示出了本发明的原理。因此,尽管文中并未明确描述或示出,然而应认识到本领域技术人员可以想出体现本发明原理的多种布置,这些布置包括在本发明的范围内。此外,本文记载的所有示例主要显式地用于教学目的以帮助读者理解本发明的原理和发明人所提供的构思,以促进现有技术,应将本发明理解为不限于这种具体记载的示例和条件。此外,除非指出(例如,“否则”或“或替代地”),否则文中使用的术语“或”是指非排除性的或(即,和/或)。此外,本文所述的多种实施例不必是互相排除性的,这是由于可以将一些实施例合并为一个或更多个其它实施例,以形成新的实施例。
存在若干个原因使得密码算法的软件实现方案优于硬件实现方案。例如,这可以是以下情况:由于在密钥被泄露的情况下软件解决方案是可更新的,由于软件解决方案成本较低,或由于应用开发者对实现白盒系统的硬件没有影响。尽管下文对实施例的描述针对的是在处理器上运行的软件实现方案,然而应注意,这些实施例还可以被部分地或全部地实现为硬件。可以将所述的查找表和有限状态机实现为硬件,以便执行上述多种功能。
在以下文章中提出了高级加密标准(AES)和数据加密标准(DES)的白盒实现方案的基于表格的方法:Stanley Chow、Philip Eisen、Harold Johnson和Paul C.VanOorschot的“White-Box Cryptography and an AES Implementation”,in SelectedAreas in Cryptography:9th Annual International Workshop,SAC 2002,St.John’s,Newfoundland,Canada,2002年8月15-16日,下文中称作“Chow 1”;以及Stanley Chow,PhilEisen,Harold Johnson和Paul C.van Oorschot的“A White-Box DES Implementationfor DRM Applications”,in Digital Rights Management:ACM CCS-9Workshop,DRM2002,Washington,D.C.,USA,2002年11月18日,下文中称作“Chow 2”。Chow 1和Chow 2公开了如下方法:通过对具有随机双射表格进行编码的组合,使用基于表格的方法来隐藏密码密钥;并通过将密码边界推动到包含应用,来扩展密码边界。
Chow描述了将密码算法实现为查找表网络。接着,通过将查找表网络的输入和输出进行编码,即,通过对该实现方案中的中间值进行编码,来使该查找表网络变得混乱。Chow 1和Chow 2观察到:在AES和DES的白盒实现方案中,第一和最后回合的实现方案是特别困难的。原因在于:为了兼容AES和DES,不在第一回合中应用输入编码,不在最后回合中应用输出编码,而所有其它回合具有编码输入和编码输出。Chow 1和Chow 2通过使用外部编码避免了该问题。这意味着通过外部编码f对算法的输入进行编码,其中所述外部编码f被放在周围计算机程序中的除了输入的其它地方。类似地,通过外部编码g对所述算法的输出进行编码,其中在周围程序中的其它地方去除所述外部编码g。因此,不实现密码功能F(诸如AES),而实现这种方法具有两个主要缺点。第一方面,问题在于如何在周围程序中隐藏输入编码和输出编码。毕竟该问题仅发生在调用密码函数的白盒实现方案之前和之后。其次,如果白盒实现方案与周围程序没有紧密连接(例如,当从网络或介质接收输入时和/或在网络上发送输出或在介质上存储输出时),则无法应用该方法。
例如,假定用半字节编码仅对白盒实现方案中的AES S盒进行编码。对于基于表格的白盒实现方案,这意味着将其隐藏在查找表中,其中,Gi和Fi是半字节编码,定义了密钥添加。然后,Chow 1示出了可以使用所谓的频率签名得到(G1||G2)和它们非正式地利用由于将两个输入半字节和两个输出半字节严格分离而泄露出的信息。为了查看这种泄露信息,观察到:如果改变了第一个输入半字节T,则已知的是这种改变与在底层S的第一个输入半字节中的修改相对应。
本发明实施例下文描述了一种新的白盒技术,可以用于增强第一回合的白盒实现方案,其中第一回合的白盒实现方案不具有外部输入编码。这种技术还可以应用于最后回合以便提供一部分附加安全性。
可以使用多个基本块来实现安全软件。在一些块构建在一个或更多个先前块的输出上的意义下,多个基本块是互连的。基本块可以以硬件实现,例如,实现为计算机芯片。基本块可以使用开关板、状态机或任何其它适合结构,以便在计算机硬件中实现功能。基本块还可以以运行在通用计算机芯片(例如,微处理器)上的软件来实现。例如,基本块可以使用包括算术指令的多个计算机指令,多个计算机指令共同实现基本块的功能。可以在软件和硬件二者中使用的基本块的广泛使用的实现方案是查找表。例如,Chow 1和Chow 2采用该方法来实现AES和DES块暗号。查找表实现方案包括列出可能输入值、输出值的列表。所述输入值在查找表中可以是明确的。在这种情况下,查找表实现方案能够通过在输入值的列表中搜索特定输入,来将特定输入映射到特定输出。当发现了特定输入时,同样就发现特定输出。例如,可以将特定输出存储在特定输入的旁边。优选地,仅隐含式地存储输入值,而非显式地存储。例如,如果可能输入是连续范围的数字或字符串,则可以将查找表限制为存储输出值的列表。例如,可以将特定输入数字映射到由数字表示的位置处存储的特定输出。
例如,可以通过针对可能的输入计算函数输出值并将输出存储在列表中,来创建函数的查找表。如果函数依赖于多个输入,则可以针对多个输入的所有可能组合,计算并存储所述输出。查找表特别适合于实现以不规则的方式将输入映射到输出的非线性函数。如下所示,可以通过向白盒实现方案的查找表中的一个或更多个查找表应用固定混乱输入编码和固定输出编码,来进一步混乱白盒实现方案。接着,完全预估应用固定混乱输入编码和输出编码的结果。使用这种技术,可以用相同维数的(具有相同数目的输入比特,并产生相同数目的输出比特)混乱的查找表来替换查找表。以这种混乱方式使用的输入编码和输出编码在最终白盒实现方案中并非是明确的。
将基本块网络布置为在与输入消息一起存在时计算输出消息。通常,基于多个基本输入块来运算输入消息。多个其它基本块可以采用来自一个或更多个所述基本输入块和/或输入的输入。另外的其它基本块可以采用所述输入消息、所述基本输入块的输出以及所述其它基本块的输出的任何组合形式的输入。最终,一些基本退出块集合(即,至少一个)产生输出消息的全部或一部分作为输出。在这种情况下,出现了共同计算从输入消息到输出消息的映射的基本块网络。
使用的密钥可以是密码密钥,并且可以包含足够大的熵值以抵抗所预期的暴力攻击。应注意,在白盒实现方案中,密钥通常并非明确存在于该实现方案中。这样将存在通过观察实现方案而找到密钥的风险。通常,密钥仅隐含式地存在。已知多种方式来将密钥隐藏在密码系统中。通常,至少使用部分评估的方法,在该方法中,评估需要密钥输入的基本块,只要基本块不依赖于输入消息。例如,可以通过预先将密钥值与掩膜值进行异或(XOR),来部分评估基本运算,在所述基本运算中,需要将输入值、不依赖于输入消息的掩膜值(例如,来自S盒的值)与上述密钥值进行异或。在这种情况下,尽管密钥值并非明确存在于实现方案中,然而该运算仍依赖于密钥值。相反,只有密钥值和掩膜值之间的异或存在于实现方案中。应注意,更复杂的方式和/或隐藏密钥的其它方式与本发明实施例是兼容的。
使用AES(高级编码标准)块暗号来描述下文的示例实施例,由于AES已成为块暗号广泛使用的标准。AES是块大小为128比特或16字节的块暗号。将明文划分为16字节的块,所述16字节形成加密算法的初始状态,加密算法的最终状态是密文。在加密算法的任何给定点处,这些16字节是加密算法的状态。为了概念上解释AES,将状态字节组织为4x4字节的矩阵。AES包括多个回合,回合的数目依赖于密钥大小。每个回合包括类似的处理步骤,这些类似的步骤对状态矩阵的字节、行或列进行运算,每个回合在这些处理步骤中使用不同回合密钥。
图1示出了AES回合的一些主要处理步骤。处理步骤包括:
AddRoundKey 110-将状态的每个字节与回合密钥的字节进行异或;
SubBytes 120-使用查找表的字节到字节排列;
ShiftRows 140-将所述状态的每行旋转固定数目的字节;以及
MixColumns 150-使用GF(28)中的模乘运算来处理每列。
步骤SubBytes 120、ShiftRows 130和MixColumns 150不依赖于所使用的特定密钥。将密钥应用于步骤AddRoundKey 110。除了步骤ShiftRows 140之外,还可以对4x4状态矩阵的每列执行处理步骤,而不需要知道其他列。因此,可以将它们认为是32比特运算,由于每列由四个8比特的值构成。虚线150表示重复处理,直到执行了所需数目的回合为止。
这些步骤中的每个或步骤组合可以由查找表或查找表网络来表示。如果通过与回合密钥进行异或来执行AddRoundKey 110步骤,则密钥对于白盒攻击环境中的攻击者是可见的。AddRoundKey 110步骤还可以嵌入在查找表中,使得找出所述密钥变得不显而易见。实际上,能够用查找表网络替换全部回合的AES。例如,可以使用查找表来实现SubBytes120、ShiftRows 130和MixColumns 150步骤。下文详细地讨论了AES的可能白盒实现方案,以便在下文描述本发明的实施例,此外在Chow1中可以找到对这种实现方案的更详细描述。此外,可以在查找表实现方案中使用其它变型,变型仍在本发明的范围内。
图2示出了对回合的输入(即,对S盒的输入)进行固定编码的白盒AES实现方案。如图所示,通过fi对16个输入字节中的每个进行编码,通过gi对输出字节中的每个进行编码。应注意,在AES的标准实现方案中,不对输入进行编码,不对输出进行编码。
如上所示,可以使用频率签名攻击来破坏图2所示的白盒实现方法,所述频率签名攻击确定在被混乱的S盒的行和列中的半字节的频率。通过以攻击者未知的形式将S盒拆分为两个或更多个S盒,使得拆分S盒的总和是原始S盒,来解决该问题。
为了描述本发明的实施例,对基于表格的白盒AES实现方法进行基本描述。对用于实现基于表格的白盒AES的方法的更详细描述参阅Chow 1。Chow 1描述了使用特定尺寸的表格来破坏一些函数的具体实现方案。应认识到:可以对表格进行多种其它拆分,得到查找表的不同函数和不同尺寸。此外,当下文所述的本发明实施例使用基于表格的AES白盒实现方案时,可以根据所述实施例执行其它暗号和密码函数。此外,可以使用其它类型的白盒实现方案(例如,有限状态机实现方案),代替基于表格的实现方案。
将对基于表格的白盒AES的描述分为两个步骤。在第一步骤中,将AES的回合描述为查找表网络。在第二步骤中,通过对它们的输入和输出进行编码来混乱所述表格。
步骤1:将AES实现为查找表的网络
AES对16字节的数据块进行运算。通常将这些数据块描述为4x4字节矩阵,称作包括字节x1,1,x1,2,x1,3,...x4,4的状态。参考图1的上述AES的回合包括以下运算:AddRoundKey110,SubBytes 120、ShiftRows 130和MixColumns 140。可以将前两个运算(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)中的代数式
来根据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。然后,可以通过将这些查找表的结果进行异或,来计算任何输出字节z1,j,即, 应注意,可以将Q盒的序数i,j,l理解为“回合的输入字节i,j对回合的输出字节l,j的贡献”。可以实现异或以便对两个半字节(即,4比特值)中的每个进行运算,作为查找表,从而减小异或表格的大小。因此,可以实现Q盒以便产生输出半字节,使得减小对Q盒的输出进行运算的异或表格的大小。因此,已将对AES回合的每个输出字节zl,j的计算描述为查找表网络。图3示出了用于计算字节z2,3的单个输出半字节的查找表网络。
图3示出了通过查找表的网络来计算一个输出半字节。Q盒中的上标指数(1)表示表格仅提供Q盒的输出的第一半字节。输入字节集合x1,3,x2,3,x3,3和x4,3被输入到Q盒320、322、324、326。查找表320和322的输出被馈送到XOR 330,查找表324和326的输出被馈送到XOR 332。XOR 330和332的输出被馈送到XOR 334。XOR 334的输出是输出状态340的输出z2,3的第一半字节。可以使用附加Q盒以及类似XOR网络,以相同方式计算输出状态340的输出z2,3的第二半字节。此外,可以通过接收来自输入状态的一列字节,并将其转换为输出状态的对应列的输出,来实现其它集合的表格,以便将输入状态310完全转换为输出状态340。
步骤2:混乱表格和中间值
在图3所述的实现方案中,可以从Q盒中方便地提取密钥。仅向所述输出应用反向MixColumns乘法和反向S盒,以揭示出明AddRoundKey运算。为了防止这样,用任意双射函数对所有查找表的输入和输出进行编码。Chow 1描述了此方法。这意味着:将查找表与对输出进行编码的编码函数以及与对输入进行解码的解码函数合并。选择进行编码,使得对一个表格的输出编码与在下一表格中假定的输入编码相匹配。图4针对第一回合描述了图3的实现方案的一部分。在该示例中,不对该回合的输入进行编码,以便符合AES。在下一回合中处理输出编码。也就是说,与第一回合不同,第二回合(以及后续回合)假定对输入进行编码。备选地,第一回合可以接收编码输入。然后,必须将该输入编码应用于所述包含白盒实现方案的软件程序中的某处。类似地,如果所述输出符合AES,则最后回合可以不包括输出编码。应注意,在所获得的白盒实现方案中,查找表和中间值都是混乱的。
如上所述,将S盒与密钥添加运算合并,通过对它的输入和输出进行编码来使该结果变得混乱。对于基于表格的白盒AES实现方案,这意味着针对每个回合创建查找表对于第一回合,F是当该接口应与标准AES可兼容时的单位函数。类似地,在最后回合中,G是当该接口应与标准AES可兼容时的单位函数。
为了克服攻击者可以使用频率签名攻击的这种问题,S盒可以被拆分为r个S盒S1,S2,...,Sr,其中r≥2,创建r个隐藏拆分S盒S1,S2,...,Sr的表格。任意选择拆分S盒函数Si(不必是双射性的),使得:
然后,这些拆分S盒函数S1,S2,...,Sr被隐藏在r个查找表T1,T2,...,Tr中,其中:
拆分S盒函数对于回合1特别有用,其中Fi是单位函数。此外,该拆分S盒函数可以在最后回合中提供一些优点,其中Gi是单位函数。应注意,所有表格Ti具有相同的输入字节。然后,可以通过如上所述的合并MixColumn常数MC,来根据Ti表格计算Qi表格。
图3示出了根据值x1,3,x2,3,x3,3,x4,3计算值z2,3的第一个半字节的表格网络。现在针对r=2,描述了根据本发明实施例的用于根据值x1,3,x2,3,x3,3,x4,3计算值z2,3的第一个半字节的表格网络。应注意,还可以使用r≥2的其他值。可以通过如图4所示的使该网络变得混乱并通过对第一回合的所有输出半字节重复该操作,来获得根据本实施例的白盒实现方案。可以以与如图3所示相同的方式对除了最后回合的其它回合进行操作,其中除了输出编码之外,Q表格现在还具有输入编码。根据类似方式,可以以与第一回合相似的方式将拆分S盒用于最后回合。在其它实施例中,可以将拆分S盒用于密码函数的所有回合中。
将图3的表格Qi,i,l定义为:
其中表示在GF(28)中与x相乘。在该实施例中,将S盒S拆分为两个任意函数S1和S2,其中通过随机选择S1并定义来创建这种拆分S盒S1和S2(对于该情况,存在256256个可能性)。针对上述表格Qi,j,l,将这些函数S1和S2与密钥添加和MixColumns合并获得以下表格:
这样得到:
图5示出了根据具有两个拆分S盒的实施例,通过查找表网络计算一个输出半字节。根据上述Qi,j,l的等式,得到:图5的表格网络与图3所示的表格网络计算相同值。O盒和P盒中的上标(1)表示该表格仅提供O盒和P盒的输出的第一半字节。输入状态510下的输入字节集合x1,3,x2,3,x3,3和x4,3被输入到O盒520、522、524、526中。输入状态510下的输入字节集合x1,3,x2,3,x3,3和x4,3还被输入到P盒530、532、534、536中。O盒520、522、524、526和P盒530、532、534、536的输出被输入到异或网络540中。异或网络540将其输入组合为输出状态的输出z2,3的第一个半字节。可以使用附加O盒与P盒以及类似异或网络来以相同方式计算输出状态的输出z2,3的第二个半字节。此外,可以实现附加表格集合,以便通过从输入状态接收字节列并将它们转换为输出状态的对应列输出,来将输入状态510完全转换为输出状态。应注意,以混合输出的方式来组合O盒和P盒的输出。这种混合确保不直接组合单个输入字节(例如,x1,3)的O盒和P盒的输出。如果这么做,则攻击者将具有与不对S盒进行任何拆分的情况下相同的系统输入和输出。可以从异或网络540中看出,首先组合不同输入字节的输出拆分S盒,因此确保单个输入字节的S盒输出本身决不会组合。
此外,尽管示出为将拆分相同S盒集合应用到每个输入字节,然而能够针对每个输入字节选择不同拆分S盒集合。
可以在计算机上将根据本发明实施例的方法实现为计算机执行方法,或实现为专用硬件,或二者的组合。可以将根据本发明的方法的可执行代码存储在计算机程序介质上。计算机程序介质的示例包括存储器设备、光学存储设备、集成电路、服务器、线上软件等。
在本发明的实施例中,计算机程序可以包括计算机程序代码,适用于当在计算机上运行计算机程序时,执行根据本发明的方法的所有步骤。优选地,计算机程序包括在非暂时计算机可读介质上。
此外,由于白盒密码通常非常复杂和/或混乱,人们对它的写入感到乏味。因此,有利的是具有以自动方式创建根据本发明实施例的密码系统的方法。例如,用于产生加密系统的自动方法应以攻击者未知的方式产生拆分S盒。
可以在计算机上将创建根据本发明的密码系统的方法实现为计算机执行方法,或实现为专用硬件,或二者的组合。可以将根据本发明的方法的可执行代码存储在计算机程序介质上。在这种方法中,计算机程序可以包括计算机程序代码,用于当在计算机上运行所述计算机程序时执行所述方法的所有步骤。计算机程序包括在非暂时性计算机可读介质上。
在处理器上运行的用于执行本发明实施例的具体软件的任何组合构成了专用机器。
本发明实施例的硬件系统实现方案可以包括实现白盒实现方案的基本块的硬件元件。这些硬件元件可以包括例如查找表或有限状态机。这些硬件要素可以是互连的以便全面执行白盒实现方案。
如本文所用,应将术语“非暂时性机器可读存储介质”理解为包括暂时性的传播信号,并且包括所有形式的易失性和非易失性存储器。
如本文所用,应将术语“处理器”理解为包括诸如微处理器、场可编程门阵列(FPGA)、专用集成电路(ASIC)和其它类似处理器件的多种器件。当在所述处理器上执行软件时,所述组合成为单个具体机器。
本领域技术人员应认识到:文中的任何框图代表体现本发明原理的示意电路的构思图。
尽管具体参考本发明的特定示例方面详细描述了多种示例实施例,然而应认识到,本发明包括其它实施例,本发明的详情包括多种明显方面的修改。对本领域技术人员显而易见的是可以在本发明的精神和范围内进行多种变形和修改。因此,上述公开、描述和附图仅是说明目的,而不是以任何方式限制本发明,本发明仅由权利要求来限定。

Claims (20)

1.一种执行将输入消息映射到输出消息的白盒加密钥的密码运算的方法,其中密码运算实现是白盒密码运算实现,其中所述输入消息包括m个输入数据,所述输出消息包括m个输出数据,其中所述密码运算包括至少一个回合,所述密码运算规定了用于将输入数据映射到输出数据的替换盒,所述方法包括:
使用n个拆分替换盒将m个输入数据中的每个变换为n个输出数据,其中所述n个拆分替换盒总和为所规定的替换盒,其中n个拆分替换盒的输出数据是经秘密编码的,该编码对n个拆分替换盒中的每个是不同的,其中秘密编码集成于n个拆分替换盒,且秘密编码将n个拆分替换盒的输出值对攻击者隐藏;以及
混合并组合m×n个经编码的输出数据。
2.根据权利要求1所述的方法,还包括:m个拆分替换盒集合,每个集合中包括n个拆分替换盒,其中应用到多个输入数据中的每个的所有拆分替换盒集合是彼此不同的,所述n个拆分替换盒总和为所规定的替换盒。
3.根据权利要求1所述的方法,还包括:m个拆分替换盒集合,每个集合中包括n个拆分替换盒,其中应用到多个输入数据中的每个的至少两个拆分替换盒集合是彼此不同的,所述n个拆分替换盒总和为所规定的替换盒。
4.根据权利要求1所述的方法,其中所述混合并组合m×n个经编码的输出数据包括:在将m个输出集合中的每个集合的n个输出中的至少一个与该输出集合的其它n-1个输出相组合之前,将所述n个输出中的至少一个与另一集合的n个输出中的至少一个输出相组合。
5.根据权利要求1所述的方法,其中所述输入数据是输入到所述加密钥的密码运算的第一回合的未编码数据。
6.根据权利要求1所述的方法,其中组合的输出数据用于计算输出消息的一部分,其中所述输出消息是加密钥的密码运算的最后回合的未编码输出。
7.根据权利要求1所述的方法,其中所述密码运算是高级加密标准。
8.根据权利要求1所述的方法,其中所述密码运算是数据加密标准。
9.根据权利要求1所述的方法,其中使用与n个拆分替换盒相对应的n个查找表,来实现所述使用n个拆分替换盒将输入数据变换为n个输出数据,其中所述n个查找表将n个拆分替换盒与密码密钥相组合。
10.根据权利要求1所述的方法,其中使用与n个拆分替换盒相对应的n个有限状态机,来实现使用n个拆分替换盒将输入数据变换为n个输出数据,其中所述n个有限状态机将n个拆分替换盒与密码密钥相组合。
11.一种在白盒系统中产生将输入消息映射到输出消息的密码运算的白盒实现方案的方法,其中所述输入消息包括m个输入数据,所述输出消息包括m个输出数据,其中所述密码运算包括至少一个回合,所述密码运算规定了用于将输入数据映射到输出数据的替换盒,所述方法包括:
产生加密钥的密码运算的白盒实现方案还包括:
产生n个拆分替换盒,其中所述n个拆分替换盒总和为所规定的替换盒,其中n个拆分替换盒的输出数据是经秘密编码的,该编码对n个拆分替换盒中的每个是不同的,其中秘密编码集成于n个拆分替换盒,且秘密编码将n个拆分替换盒的输出值对攻击者隐藏;以及
在白盒系统中实现m×n个经编码的输出数据的混合和组合。
12.根据权利要求11所述的方法,其中所述拆分替换盒还包括m个拆分替换盒集合,每个集合中包括n个拆分替换盒,其中应用到多个输入数据中的每个的所有拆分替换盒集合是彼此不同的,所述n个拆分替换盒总和为所规定的替换盒。
13.根据权利要求11所述的方法,其中所述拆分替换盒还包括:m个拆分替换盒集合,每个集合中包括n个拆分替换盒,其中应用到多个输入数据中的每个的至少两个拆分替换盒集合是彼此不同的,所述n个拆分替换盒总和为所规定的替换盒。
14.根据权利要求11所述的方法,其中所述混合并组合m×n个经编码的输出数据包括:在将m个输出集合中的每个集合的n个输出中的至少一个与该输出集合的其它n-1个输出相组合之前,将所述n个输出中的至少一个与另一集合的n个输出中的至少一个输出相组合。
15.根据权利要求11所述的方法,其中所述输入数据是输入到加密钥的密码运算的第一回合的未编码数据。
16.根据权利要求11所述的方法,其中组合的输出数据用于计算输出消息的一部分,其中所述输出消息是加密钥的密码运算的最后回合的未编码输出。
17.根据权利要求11所述的方法,其中所述密码运算是高级加密标准。
18.根据权利要求11所述的方法,其中所述密码运算是数据加密标准。
19.根据权利要求11所述的方法,其中使用与n个拆分替换盒相对应的n个查找表,来实现所述n个拆分替换盒,其中所述n个查找表将n个拆分替换盒与密码密钥相组合。
20.根据权利要求11所述的方法,其中使用与n个拆分替换盒相对应的n个有限状态机,来实现所述n个拆分替换盒,其中所述n个有限状态机将n个拆分替换盒与密码密钥相组合。
CN201510111975.6A 2014-03-19 2015-03-13 在白盒实现方案中拆分s盒以防止攻击 Active CN105049400B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/219,734 2014-03-19
US14/219,734 US9838198B2 (en) 2014-03-19 2014-03-19 Splitting S-boxes in a white-box implementation to resist attacks

Publications (2)

Publication Number Publication Date
CN105049400A CN105049400A (zh) 2015-11-11
CN105049400B true CN105049400B (zh) 2019-01-11

Family

ID=52705992

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510111975.6A Active CN105049400B (zh) 2014-03-19 2015-03-13 在白盒实现方案中拆分s盒以防止攻击

Country Status (3)

Country Link
US (1) US9838198B2 (zh)
EP (1) EP2924677B1 (zh)
CN (1) CN105049400B (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9425961B2 (en) * 2014-03-24 2016-08-23 Stmicroelectronics S.R.L. Method for performing an encryption of an AES type, and corresponding system and computer program product
US10171234B2 (en) * 2015-12-16 2019-01-01 Nxp B.V. Wide encoding of intermediate values within a white-box implementation
EP3220306B1 (en) * 2016-02-22 2018-11-07 Eshard Method of testing the resistance of a circuit to a side channel analysis
CN105681026B (zh) * 2016-03-10 2019-06-18 中国科学院计算技术研究所 适用于轻量级加密算法的动态s盒构造方法及系统
US10223511B2 (en) * 2016-03-30 2019-03-05 Nxp B.V. Watermarking input and output of a white-box implementation
EP3258639A1 (en) * 2016-06-14 2017-12-20 Gemalto Sa Cryptography apparatus protected against side-channel attack using constant hamming weight substitution-box
CN107623566B (zh) * 2016-07-15 2022-09-06 青岛博文广成信息安全技术有限公司 基于非线性变换的sm4白盒实现方法
FR3061822B1 (fr) * 2017-01-10 2019-05-10 Safran Identity & Security Procede de chiffrement ou de dechiffrement d'un n-uplet de donnees avec un n-uplet de cles secretes predeterminees
FR3066845B1 (fr) * 2017-05-24 2019-06-14 Idemia Identity And Security Procede de signature electronique d'un document avec une cle secrete predeterminee
CN109670320B (zh) * 2017-10-13 2023-04-25 三星电子株式会社 加密设备和解密设备、以及其操作方法
US10630462B2 (en) * 2017-10-27 2020-04-21 Nxp B.V. Using white-box in a leakage-resilient primitive
FR3078464A1 (fr) * 2018-02-26 2019-08-30 Stmicroelectronics (Rousset) Sas Procede et circuit de mise en oeuvre d'une table de substitution
US11218291B2 (en) * 2018-02-26 2022-01-04 Stmicroelectronics (Rousset) Sas Method and circuit for performing a substitution operation
FR3078463A1 (fr) * 2018-02-26 2019-08-30 Stmicroelectronics (Rousset) Sas Procede et dispositif de realisation d'operations en table de substitution
CN110971411B (zh) * 2019-12-02 2022-07-12 南京壹证通信息科技有限公司 一种基于sotp技术对私钥乘加密的sm2同态签名方法
WO2023192772A2 (en) * 2022-03-29 2023-10-05 The Board Of Regents For Oklahomaagricultural And Mechanical Colleges A reconfigurable architecture for improvement and optimization of advanced encryption standard
CN116633529B (zh) * 2023-07-25 2023-10-31 中电信量子科技有限公司 采用派生密钥增强白盒sm4密码算法的方法及设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070014394A1 (en) * 2003-04-25 2007-01-18 Wulf Harder Data processing method
CN101536398A (zh) * 2006-11-17 2009-09-16 皇家飞利浦电子股份有限公司 用于白盒实现的加密方法
EP2363974A1 (en) * 2010-02-26 2011-09-07 Research In Motion Limited Variable table masking for cryptographic processes
CN102461058A (zh) * 2009-03-10 2012-05-16 爱迪德有限责任公司 具有输入相关编码的白盒密码系统
CN102484581A (zh) * 2009-06-19 2012-05-30 耶德托公司 使用中间数据更改的具有可配置密钥的白盒密码系统
US20130259226A1 (en) * 2012-04-02 2013-10-03 Apple Inc. Methods and apparatus for correlation protected processing of cryptographic operations

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2327911A1 (en) * 2000-12-08 2002-06-08 Cloakware Corporation Obscuring functions in computer software
US20030086564A1 (en) * 2001-09-05 2003-05-08 Kuhlman Douglas A. Method and apparatus for cipher encryption and decryption using an s-box
EP1510028A4 (en) * 2002-05-23 2008-01-23 Atmel Corp CRYPTOGRAPHIC MOTOR OF TECHNICAL EQUIPMENT BASED ON ADVANCED ENCRYPTION STANDARD (AES)
US8296577B2 (en) * 2004-06-08 2012-10-23 Hrl Laboratories, Llc Cryptographic bus architecture for the prevention of differential power analysis
WO2010132895A1 (en) * 2009-05-15 2010-11-18 Eric Myron Smith System for encrypting and decrypting a plaintext message with authentication
US9455833B2 (en) 2014-04-28 2016-09-27 Nxp B.V. Behavioral fingerprint in a white-box implementation

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070014394A1 (en) * 2003-04-25 2007-01-18 Wulf Harder Data processing method
CN101536398A (zh) * 2006-11-17 2009-09-16 皇家飞利浦电子股份有限公司 用于白盒实现的加密方法
CN102461058A (zh) * 2009-03-10 2012-05-16 爱迪德有限责任公司 具有输入相关编码的白盒密码系统
CN102484581A (zh) * 2009-06-19 2012-05-30 耶德托公司 使用中间数据更改的具有可配置密钥的白盒密码系统
EP2363974A1 (en) * 2010-02-26 2011-09-07 Research In Motion Limited Variable table masking for cryptographic processes
US20130259226A1 (en) * 2012-04-02 2013-10-03 Apple Inc. Methods and apparatus for correlation protected processing of cryptographic operations

Also Published As

Publication number Publication date
EP2924677B1 (en) 2020-02-19
CN105049400A (zh) 2015-11-11
US9838198B2 (en) 2017-12-05
US20150270950A1 (en) 2015-09-24
EP2924677A1 (en) 2015-09-30

Similar Documents

Publication Publication Date Title
CN105049400B (zh) 在白盒实现方案中拆分s盒以防止攻击
CN105187364B (zh) 保护白盒实现方案不受攻击
CN106888080B (zh) 保护白盒feistel网络实施方案以防错误攻击
CN105024803B (zh) 白箱实现中的行为指纹
CN110235409A (zh) 使用同态加密被保护的rsa签名或解密的方法
EP3169017B1 (en) Split-and-merge approach to protect against dfa attacks
CN105721135B (zh) 使用替换盒实施加密操作的方法
CN106888081B (zh) 白盒实施方案内中间值的宽编码
CN105184115B (zh) 用于将隐式完整性或可信性检查包括到白箱实现中的方法
EP3632032B1 (en) Cryptographic device and method
EP3477889B1 (en) Using white-box in a leakage-resilient primitive
CN105024992B (zh) 在单个白箱实现中实现使用相关安全性设置
CN107273724B (zh) 为白盒实施方案的输入和输出加水印
CN105095695A (zh) 经由白箱实现的不正确功能行为实现授权
CN105721134B (zh) 使用带有多个外部编码的单个白盒实现
CN105978680B (zh) 一种加密钥的加密运算方法
CN105022937A (zh) 用于将白箱实现紧附到周围程序的接口兼容方式
CN105281893B (zh) 用于引入白箱实现对串集合的依赖性的方法
Gu et al. White-box cryptography: practical protection on hostile hosts
CN105024808B (zh) 无需改变密钥的安全性补丁
EP3267618A1 (en) Equality check implemented with secret sharing
EP2940920A2 (en) Security patch without changing the key
Muthusundari et al. Safe Encryption Algorithm for Secured Message Communication Using Dcombo: A New Sorting Technique
Nielson Core Cryptography Technology
Veeran Cryptography Analysis Through Hybrid Model Algorithm

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