白盒密码实现专题

白盒密码实现研究综述

  • 吕继强 , * ,
  • 李雅楠 ,
  • 陈至立 ,
  • 陈泽萱
展开
  • 北京航空航天大学网络空间安全学院,北京 100191
吕继强()。

网络出版日期: 2025-01-25

基金资助

国家自然科学基金(61972018)

版权

版权所有©《网络空间安全科学学报》编辑部 2024

A survey of research on white-box cryptography

  • LÜ Jiqiang , * ,
  • LI Yanan ,
  • CHEN Zhili ,
  • CHEN Zexuan
Expand
  • School of Cyber Science and Technology, Beihang University, Beijing 100191, China

Online published: 2025-01-25

Copyright

Copyright ©2024 Journal of Aeronautical Materials. All rights reserved.

摘要

白盒密码实现是为了在白盒安全模型或场景中保障信息安全性,以软件实现代替可信硬件,降低密码部署的成本,增加密码使用的便捷性。白盒安全模型或场景假定攻击者可以完全控制密码算法实现运行平台,获得密码算法实现的任何运行信息。目前,白盒密码实现有两个主要的研究方向:一是现有密码算法的白盒实现的设计与安全分析,二是具有理想安全性的白盒密码的设计与安全分析。其中,前者又可细分为现有密码算法明密文带外部编码的白盒实现的设计与安全分析和现有密码算法明密文不带外部编码的白盒实现的设计与安全分析。本文综述了白盒密码实现研究进展,介绍了白盒密码实现常用的安全分析方法,总结了白盒密码实现的研究现状。

本文引用格式

吕继强 , 李雅楠 , 陈至立 , 陈泽萱 . 白盒密码实现研究综述[J]. 网络空间安全科学学报, 2024 , 2(6) : 36 -56 . DOI: 10.20172/j.issn.2097-3136.240603

Abstract

White-box cryptography aims to provide security in white-box security model or scenario, to replace the hardware-based cryptographic solutions with software implementations, and to reduce the deployment cost and leverage usage flexibility. The white-box security model or security scenario assumes that the attacker can fully control the running environment of a cryptographic implementation and obtain any running information. At present, there are two main research directions on white-box cryptography: one is the design and analysis of white-box implementations of existing cryptographic algorithms, which can be further classified into the design and analysis of white-box implementations with or without external encodings; the other is the design and analysis of white-box cryptography with ideal security. The research progress of the design and analysis of white-box cryptography and implementation was summarized, the widely used white-box cryptanalytic methods were briefed, and the research status on white-box cryptography was summarized.

0 引言

现代密码算法基本遵从算法公开、安全性完全依赖密钥的设计准则(Kerckhoffs准则),一般默认运行在传统的黑盒安全模型(或安全场景)下,即攻击者只能获得密码算法(实现)的输入和输出信息(算法规格除外),而对其实现的运行信息则一无所知。然而,随着社会的发展,密码算法的应用场景不断扩展,密码算法也经常被部署在物理不安全的设备平台上,密码算法的运行环境不再都是传统的黑盒安全模型。20世纪90年代中后期逐渐发展出了灰盒安全模型[1-3],即攻击者不仅可以获得密码算法(实现)的输入与输出,还能获取算法实现运行时的某些侧信道信息。例如,1996年Kocher的时间分析[1]、1997年Boneh等的故障分析[2]、1999年Kocher等的能量分析[3]。2002年,Chow等提出了白盒安全模型以及相应的白盒密码概念[4-5],即攻击者不仅可以获得密码算法(实现)的输入与输出,还完全掌控密码算法实现的运行平台,获取密码算法实现所有的运行信息,如中间数值、CPU调用、内存寄存器、内存调试器等,即白盒攻击者能力涵盖了黑盒攻击者能力和灰盒攻击者能力。其一般用于如下场景:服务提供方(或通信发送方)需要在客户端(或通信接收方)设备上运行服务提供方的密码算法,但客户端设备完全由客户控制。这三个安全模型基本可以囊括密码算法所有的现实应用场景,其中黑盒安全模型代表大量传统常规的攻击者能力最低的应用场景,而白盒安全模型代表很多新兴前沿的攻击者能力最高的应用场景,如数字版权管理(Digital Rights Management,DRM)、智能手机、智能汽车领域[6-7]
白盒密码的现实应用需求极大地推动了白盒密码实现的研究,其主要包括白盒密码实现方案的设计和白盒密码实现方案的安全分析。白盒密码实现方案的设计主要关注方案的可用性和安全性,可用性主要是存储复杂度和运行性能,安全性主要是密钥恢复(或密钥提取(Key Extraction))攻击,有时根据具体应用场景还涉及代码提取(Code Lifting)攻击。代码提取攻击是指攻击者可以获得白盒密码实现程序代码,以正确地处理它选择的任意原始输入数据,从而获得相应的真正输出,如利用白盒加密方案代码来加密它选定的真正明文,这在某些应用场景中会造成安全性问题。
目前,白盒密码实现有两个主要的研究方向:一是2002年伴随白盒密码概念出现的现有(一般是黑盒)密码算法(特别是密码算法标准)的白盒实现的设计与安全分析;二是自2014 年开始的旨在取得理想(黑盒)安全性的白盒密码算法的设计与安全分析。现有密码算法的白盒实现的设计与安全分析又可细分为传统的明密文带外部(白盒)编码的白盒实现的设计与安全分析和明密文(有时仅明文或密文)不带外部编码的白盒实现的设计与安全分析。
白盒密码实现方案由服务提供方提供,运行在客户端设备上,客户可以在客户端上使用特定工具观察密码实现运行情况。白盒密码实现的目的是在白盒安全场景中保障信息安全性,以软件实现代替可信硬件,降低密码部署的成本,增加密码使用的便捷性。现有密码算法的白盒实现一般关注的是密码算法标准的白盒实现,国际上普遍关注的是美国高级加密标准AES(Advanced Encryption Standard)分组密码[8]的白盒实现,而国内则普遍关注我国国家标准SM4分组密码[9]的白盒实现。明密文带外部编码的白盒实现旨在利用外部编码在某种程度上防止密钥恢复攻击和代码提取攻击,隐蔽的外部编码一般与白盒实现客户端一一对应绑定。该类白盒实现在密钥更新时一般保持外部编码不变,只需要在客户端更新与密钥和其他参数相关的白盒实现软件,但其一般仍然需要在一定的可信硬件环境中去掉外部编码以恢复真正的原始输出(该真正原始输出一般嵌套在具体应用中,攻击者无法获得)。因此,明密文带外部编码的白盒实现虽然可以很大程度上以软件实现代替可信硬件,但没有做到完全用软件代替硬件。此外,外部编码的存在实际上把密码算法转换成了一个与原始密码算法输入输出完全不同的白盒密码算法,使用外部编码及密钥的白盒密码某种程度上类似于含有公钥及私钥的公钥密码体制。明密文不带外部编码的白盒实现旨在完全用白盒软件代替可信硬件,以保持与原始密码算法一样的输入输出,此类白盒实现也是2016年开始的差分计算类白盒安全分析所针对的情况。除了个别对白盒实现友好的密码算法,现有密码算法的白盒实现一般难以取得在黑盒安全模型下的理想黑盒安全性,只要能够在具体实际应用中提供相应的可用性和超出相应级别的安全防护即可。2014 年,Biryukov等设计了一种全新的白盒密码算法ASASA[10],开启了旨在取得理想黑盒安全性的白盒密码研究方向。现有密码算法的白盒实现和旨在取得理想黑盒安全性的白盒密码各有优缺点,前者一般是针对密码算法标准,具有良好的对外兼容性,比较适合需要对外兼容的应用场景,但一般难以取得理想的黑盒安全性,甚至难以取得超出实际复杂度级别的安全性;后者则旨在取得理想的黑盒安全性,但由于是全新算法而往往导致对外兼容性不佳,比较适合对外兼性要求不高而安全性要求较高的专用场景。
综合而言,与黑盒密码和灰盒密码相比,白盒密码相对小众,研究面并不大。白盒密码已经被研究20多年,整体上采用混淆的方式,但目前所有已发表的AES密码算法白盒实现方案均被实际复杂度级别的攻击所攻破,不满足一般现实应用的安全要求。在工业界,很多服务提供方由于迫切的现实应用需求研发使用了一些未经过公开论证的白盒密码实现方案,期望以隐匿白盒密码实现方案的方式来取得安全性[11-14],但其一旦被逆向工程出来则往往很容易被攻破。
本文综述了20多年来的白盒密码实现研究,组织如下:首先,综述了现有密码算法的白盒实现设计与安全分析方向的研究进展。其次,综述了具有理想黑盒安全性的白盒密码设计与安全分析方向的研究进展。再次,简要介绍了白盒密码实现常用的安全分析方法。最后,总结了白盒密码实现领域的研究现状。

1 现有密码算法的白盒实现研究

2002年,Chow等在提出白盒密码概念时给出了AES分组密码算法的一个白盒实现方案[4]。为了防止密钥恢复攻击和代码提取攻击,Chow等的白盒AES实现方案使用输入外部编码和输出外部编码来保护真正的明密文,但这实际上把原始密码算法转变成了输入输出不同的密码算法,其从某种意义上来说是不同的密码算法。现有密码算法明密文不带外部编码的白盒实现不改变原始密码算法的输入输出,是现有密码算法白盒实现的另一个研究方向,也是2016年出现的差分计算分析[15](Differential Computational Analysis,DCA)所针对的情况。现有密码算法的白盒实现设计主要是面向密码算法标准,通过混淆技术保护计算过程中的敏感信息,实现密码算法的功能和安全目标。

1.1 现有密码算法明密文带外部编码的白盒实现研究

白盒密码在2002年提出时是面向美国高级加密标准AES以及美国数据加密标准DES(Data Encryption Standard)分组密码算法[16]的,之后逐渐发展到其他密码算法和密码原语,如ARX(Addition,Rotation,XOR)型分组密码[17]、流密码[18]、消息认证码[19]、公钥加密[20]、数字签名[21]。当前,关于密码算法的白盒实现,国际上普遍关注的仍是AES分组密码的白盒实现,而国内则普遍关注我国国家标准SM4分组密码的白盒实现。下面将简要介绍明密文带外部编码的AES、SM4以及ARX型分组密码白盒实现的研究。

1.1.1 明密文带外部编码的白盒AES实现研究

AES分组密码[8]采用SPN(Substitution Permutation Networks)结构,其加密流程由四个基本变换构成,即轮密钥加ARK(AddRoundKey)、S盒变换SB(ShiftRows)、行移位SR(SubBytes)和列变换MC(MixColumns)。
Chow等[4]的白盒AES实现方案整体上可以理解为按以下方式产生[22]:首先,服务提供方在确定主密钥后计算各个轮密钥,在黑盒安全模型下给出基于查找表的AES加密(或解密,这里以加密为例)实现,也就是将AES加密用一系列黑盒表来实现(每个表有一个执行顺序编号,相邻或相近的操作有时可以合并成一个表以降低存储、提高运行效率)。然后,服务提供方通过在每个黑盒实现表的输入端和输出端各添加一层随机生成的不对外公开的白盒编码产生相应的白盒表,其中白盒编码用来保证原始的真正数据不会暴露,每个黑盒表的输入端白盒编码是上个黑盒表(如果存在的话)的输出端白盒编码的逆,从而在该白盒表输入端抵消上一个白盒表输出端白盒编码的影响,但又不暴露原始的真正数据。最后,服务提供方分别用一层白盒编码来保护(原始的真正)明文和密文,目的是防止密钥恢复攻击和代码提取攻击。每层白盒编码的具体形式根据黑盒表的不同情况和期望的安全级别而有所不同,有时只是一层线性或仿射变换操作(一般是矩阵乘法),有时是一层线性或仿射变换操作和一层类似分组密码S盒层非线性查表操作的串行级联,分别提供扩散和混淆的作用。作用在明文或密文上的白盒编码一般称为外部编码(External Encoding),而其他编码一般称为内部编码(Internal Encoding)。概括性地,假设$E:{{\mathrm{GF}}} _2^n \mapsto {{\mathrm{GF}}} _2^n$是一个$n$比特分组密码,$ {f_i}:{\text{GF}}_2^n \mapsto {\text{GF}}_2^n $是每一轮的轮函数,其中下标$i$表示轮数。根据上述原理,轮函数的白盒实现可以表示为复合函数的形式:
$ {\bar f_i} = {h_i} \circ {f_i} \circ g_i^{ - 1}, $
其中,$g_i^{ - 1},{h_i}:{\text{GF}}_2^n \mapsto {\text{GF}}_2^n$分别表示当前轮函数的输入编码和输出编码,${g_i} = {h_{i - 1}}$为上一轮轮函数(如果存在的话)的输出编码。于是,分组密码的白盒实现可以表示为:
$ \bar E = {\mathbf{OUT}} \circ {f_m} \circ g_m^{ - 1} \circ \cdots \circ {h_1} \circ {f_1} \circ {\mathbf{IN}}, $
其中,${\mathbf{IN}}、{\mathbf{OUT}}$是外部编码,其他编码为内部编码,这些内部编码和外部编码一般是由一些小的编码并联或/和串联组成。
$n$轮AES加密的黑盒查找表实现如下。对应于一个S盒的轮密钥字节加、字节行移位和S盒变换可以组合成一个所谓的T盒:$ {{T}}_j^r(x) = S\left( {x \oplus K_{{j^*}}^r} \right) $,其中,$K_{{j^*}}^r$是对应于第$j$S盒的轮密钥字节,每个列变换${\text{MC}}$的输入是4个字节共32比特,如果直接实现的话存储复杂度太大,但其可以转变成为4个8~32比特的小表${\text{M}}{{\text{C}}_0}$${\text{M}}{{\text{C}}_1}$${\text{M}}{{\text{C}}_2}$${\text{M}}{{\text{C}}_3}$,这4个小表的XOR和是一列变换${\text{MC}}$的32比特输出,每个小表对应的输入是一个S盒,其可以与之前对应的T盒合并成一个8~32比特的表${\text{M}}{{\text{C}}_{j\text{mod} 4}} \circ {{T}}_j^r(x)$。最后一轮加密的查找表实现有所不同,因为它没有列变换且还有一个轮密钥加,其可以由16个T盒构成:$ {{T}}_j^r(x) = S\left( {x \oplus K_{{j^*}}^r} \right) \oplus K_j^{r + 1} $
基于上述黑盒查找表实现,第$r$轮AES加密的白盒实现如图1所示。首先,在每个黑盒${\text{M}}{{\text{C}}_{j\text{mod} 4}} \circ {{T}}_j^r(x)$的输入端和输出端各添加一层白盒编码:输入端编码是上一轮输出编码的逆运算,包括两小层,第一小层是两个并联4比特非线性编码(4比特非线性查找表)的逆运算,第二小层是一个8比特线性编码(矩阵变换)的逆运算;输出端编码也由两小层构成,第一小层是一个32比特的常规可逆线性编码,第二小层是8个并联4比特的非线性编码${\text{M}}{{\text{B}}_*}$,这里对应于一列4个S盒的4个32比特输出线性编码${\text{M}}{{\text{B}}_*}$相同,从而4个${\text{M}}{{\text{C}}_{j\text{mod} 4}} \circ {{T}}_j^r(x)$值被同一线性编码保护,便于后续计算。然后,用一系列8比特到4比特的白盒XOR表计算每列${\text{M}}{{\text{B}}_*}$线性编码后的值,每个白盒XOR表的输入是两个4比特。最后,将${\text{M}}{{\text{B}}_*}$常规编码转变成由4个8比特矩阵构成的对角块编码(对角矩阵),这是因为上述每列${\text{M}}{{\text{B}}_*}$线性编码是一般矩阵编码,而下一轮每个S盒的真正输入应是对应的原来真正的一字节。因此,这轮白盒实现将原来真正的该轮每个输出字节用一层8比特常规线性编码以及一层两个4比特非线性编码保护。
图 1 Chow等的一轮白盒AES加密实现图

Fig.1 An encryption round of Chow et al.’s white-box AES implementation

AES解密的白盒实现类似。
白盒密码实现方案由服务提供方设计或提供,服务提供方在产生完整的白盒加密或解密实现方案后,除了外部编码,所有内部编码都无须保存。根据客户端应用需求,将白盒加密或/和解密实现方案部署在客户端,但客户端需要在可信硬件环境中消除输出编码${\mathbf{OUT}}$,以恢复原来真正的密文或明文。例如,在具体应用中,服务提供方在本地产生加密的数据密文后,添加对应客户端的相应外部编码${\mathbf{IN}}$,将被外部编码${\mathbf{IN}}$保护的密文发送到客户端。在客户端运行白盒解密实现方案,输出带外部编码${\mathbf{OUT}}$的明文,然后在可信(硬件)环境中去掉外部编码${\mathbf{OUT}}$以恢复真正的明文,真正的明文直接用于后续捆绑的服务,客户端无法获得该过程中真正的明密文。服务提供方在更换密钥时,只需要产生新的白盒实现表,只要保持输出外部编码${\mathbf{OUT}}$不变,便无须改变可信硬件,从而降低了密码更换的成本,增加了密码使用的便捷性。Chow等的这种白盒实现设计常被称为CEJO白盒实现框架。
然而,2004年,Billet等[23]给出了针对Chow等白盒AES实现方案的代数攻击,以$\mathcal{O}({2^{30}})$的时间复杂度恢复了密钥。
2006年,Bringer 等[24]提出了一个添加扰乱项(即冗余操作)的白盒AES实现方案。但是,2010年,De Mulder等[25]$\mathcal{O}({2^{17}})$的时间复杂度消除了扰乱项的影响,给出了一个等价的简化白盒实现方案。
2008年,Michiels等[26]针对更具一般性的SLT(Substitution-Linear Transformation)结构分组密码的白盒实现,给出了一个基于仿射等价算法[27]的攻击。
这些研究表明,Chow等白盒AES实现方案中的4比特非线性编码,相对8比特或32比特线性编码可以比较容易地被消除。2009年,Xiao和Lai[28]提出了只使用线性编码的白盒AES实现方案,其中一个基本的白盒表包括两个S盒,一轮加密如图2所示。但是,2012年,De Mulder等[29]给出了针对Xiao-Lai白盒AES实现方案的一个基于线性等价算法的密钥恢复攻击,时间复杂度为$\mathcal{O}({2^{32}})$
图 2 Xiao-Lai的一轮白盒AES加密实现图

Fig.2 An encryption round of Xiao-Lai’s white-box AES implementation

2010年,Karroumi[30]提出了一个基于对偶密码(Dual Cipher)思想的白盒AES实现方案。
2013年,Lepoint等[31]在Tolhuizen[32]工作的基础上改进了Billet等[23]的代数攻击,将时间复杂度降为$\mathcal{O}({2^{22}})$,同时给出了一个基于碰撞思想的密钥恢复攻击,时间复杂度也为$\mathcal{O}({2^{22}})$。Lepoint等说明了Karroumi的白盒AES实现方案[30]类似于Chow等的白盒AES实现方案,他们的两个攻击也同样适用于Karroumi的白盒AES实现方案。
2014年,Luo等[33]通过使用AES行移位操作的矩阵运算形式和非线性编码改进了Xiao-Lai白盒AES实现方案。
2016年,Baek等[34]给出了在非线性编码大小与S盒大小不能整除情况下恢复非线性编码的算法,以及在S盒层由几个小S盒并行构成情况下(之前的仿射等价问题一般将S盒层看作一个整体的非线性函数)的专用仿射等价求解算法(Specialized Affine Equivalence Algorithm,SAEA),表明(小的)非线性编码相对(大的)线性编码可以相对容易地被消除,其作用有限,得出了“可以通过同时并行处理两个或多个AES加密以增大中间状态来提高安全性”的结论。同时,给出了一个只使用仿射编码且同时处理两个或多个明文的白盒AES实现方案,其中输入仿射编码采用结构化的稀疏矩阵(并不是所有单位输入都影响一个单位输出)。然而,同年,Cheon等[35]给出了一个针对输入编码是结构化稀疏矩阵的仿射等价求解算法,以$\mathcal{O}({2^{33}})$的时间复杂度恢复了Baek等白盒AES实现方案的密钥。此外,2016年,McMillion和Sullivan[36]研究了使用S盒仿射自等价来构造自等价编码作为白盒AES实现内部编码的一部分的情况,证明了这种编码形式并不安全。
2018年,Derbez等[37]提出了针对S盒层由几个小S盒并行构成且输入输出编码是常规仿射编码情况的仿射等价求解算法,根据S盒层中各小S盒是否相同、S盒是否是自等价两种情况,利用Biryukov等的确定性仿射等价求解算法[27]和Dinur的概率性仿射等价求解算法[38],给出了上述两种情况组合成的四种情形下的相应攻击复杂度,以$\mathcal{O}({2^{31}})$的时间复杂度恢复了Baek等白盒AES实现方案的密钥。Derbez等的仿射等价方法可以看作是Baek等和Cheon等仿射等价算法的一般化拓展。此外,由于S盒常有的自等价属性,Derbez等声明他们的仿射等价算法仅适用于SPN结构分组密白盒实现的密钥恢复攻击。
2018年,Bai等[39]通过结合代数攻击、仿射等价算法等方式以$\mathcal{O}({2^{44}})$的时间复杂度恢复了Luo等的白盒AES实现方案的密钥,并给出了一个改进的白盒AES实现方案,其特点是将每个S盒的输入分成两个(或多个)份额,一轮加密如图3所示。
图 3 Bai等的一轮白盒AES加密实现图

Fig.3 An encryption round of Bai et al.’s white-box AES implementation

2019年,Amadori等[40]利用故障注入和Billet等代数攻击[23]的思想,攻击了Chow等的AES白盒实现方案。
2020年,Sun等[41]提出了一种基于NoisyRounds(通过在AES第十轮后添加与第九轮列混合操作和第十轮结构一致的轮函数)的白盒AES实现方案来抵抗故障攻击。
2021年,Lee等[42]提出了一种基于冗余查找表来抵抗故障攻击的白盒实现方案,其核心思想是在各轮原有查找表的基础上,额外使用不同的编码生成多个同一类型的查找表,这些表称为冗余表。
2022年,Lu等[43]提出了针对Lepoint等碰撞攻击的两个简化扩展方法。其中,第一个扩展方法仅针对SPN结构分组密码,仅需要对连续两轮分别执行Lepoint等碰撞攻击的第一步;第二个扩展方法不限于SPN结构分组密码,仅需要对连续两轮分别执行Lepoint等碰撞攻击的第一步和对其中第一轮执行Lepoint等碰撞攻击的第二步,两个扩展方法最后的密钥恢复通过计算直接得出。Lu等简化的碰撞攻击不需要Lepoint等的第二步和/或第三步,避免了它们所要求的前提性假设条件,因此可以攻击更广泛的白盒密码实现方案。特别地,Lu等以$\mathcal{O}({2^{20}})$的时间复杂度恢复了Bai等的白盒AES实现方案以及其他白盒AES实现方案的密钥。同时,Lu等也展示了当前的碰撞攻击不适用于一个基本白盒实现表包括两个S盒的情况,这是因为所构造的碰撞方程组的秩远小于其未知数的个数(导致可能解的空间太大)。
2023年,Deng等[44]利用深度学习方法解决了在分析采用Sun等基于NoisyRounds保护技术的白盒实现时遇到的分组密码轮边界不清晰的问题,首次在白盒实现研究中使用了人工智能技术。
至此,明密文带外部编码的白盒AES实现的设计与安全分析研究基本结束。最近虽有一些白盒AES方案被提出,但大都是差分计算类型攻击所关注的明密文不带外部编码的白盒实现。综上所述,伴随白盒密码概念的提出,明密文带外部编码的白盒AES实现代表着白盒AES实现设计的保守底线,已经被研究了二十多年,研究者尝试了很多不同的设计思路,但目前仍没有高安全性与高性能的白盒实现方案,安全性没有超出实际复杂度级别。

1.1.2 明密文带外部编码的白盒SM4实现研究

不同于AES分组密码采用的SPN结构,SM4分组密码[9]采用(广义)Feistel结构,其加密流程由三个基本变换构成,即轮密钥加、S盒变换和线性变换L
SM4分组密码白盒实现的研究成果基本上是借鉴上述白盒AES实现的研究成果,简要介绍如下。
2009年,Xiao和Lai[45]基于CEJO框架提出了只使用仿射编码的白盒SM4实现方案,其一轮加密结构如图4所示,其中XOR使用常规黑盒实现,没有使用查找表。
图 4 Xiao-Lai的一轮白盒SM4加密实现图

Fig.4 An encryption round of Xiao-Lai’s white-box SM4 implementation

2014年,Shi等[46]提出了基于对偶密码思想的白盒SM4实现方案,该方案使用线性编码。
2016年,Bai和Wu[47]提出了把每个S盒输入分成两个(或多个)份额的白盒SM4实现方案,该方案使用仿射编码,其一轮加密结构如图5所示。
图 5 Bai-Wu的一轮白盒SM4加密实现图

Fig.5 An encryption round of Bai-Wu’s white-box SM4 implementation

2018年,Lin等[48]利用线性等价算法,以$\mathcal{O}({2^{49}})$的时间复杂度攻击了Shi等的白盒实现方案,并给出了改进的方案。同年,Pan等[49]指出Xiao-Lai白盒SM4实现方案和 Bai-Wu白盒SM4实现方案的安全性主要依赖仿射编码的常数部分,其等价的密钥数目分别为$61\;200 \cdot {2^{32}}$$61\;200 \cdot {2^{128}}$
2020年,Yao和Chen[50]提出了利用冗余操作扩充内部状态的白盒SM4实现方案,该方案使用仿射编码。
2023年,Yuan和Chen[51]在分析明密文不带外部编码的Bai-Wu白盒SM4实现方案抵抗差分计算分析的安全性后,给出了针对第一轮和最后一轮添加单字节非线性编码的白盒SM4实现方案(前面几轮和后面几轮也相应地有所调整,但中间一些轮与Bai-Wu方案相同)。同年,Yang等[52] 基于SM4分组密码算法,提出了一个利用多个初始密钥生成动态白盒库的全新白盒密码算法WBDL(其严格来说不属于现有密码算法的白盒实现类别,但由于具有很高的相似性,特别是一轮的结构类似于Xiao-Lai白盒SM4实现方案,这里把它当做这类看待)。
2024年,Chen等[53]提出了基于S盒仿射等价编码的白盒SM4实现方案。同年,Lu等[54]论证了(当前的)碰撞攻击方法不适用于Xiao-Lai白盒SM4实现方案、Shi 等的白盒SM4实现方案和Yao-Chen白盒SM4实现方案,因为所构造的碰撞方程组的秩远小于其未知数的个数(导致可能解的空间太大)。
最近,Chen和Lu[55]给出了针对Xiao-Lai白盒SM4实现方案、Bai-Wu白盒SM4实现方案、Shi 等的白盒SM4实现方案和Yao-Chen白盒SM4实现方案的仿射等价攻击,以实际级别时间复杂度恢复了密钥,首次显示了所有这类使用仿射编码(包括线性编码)的白盒SM4实现方案都是很不安全的。由于Yuan和Chen的白盒SM4实现方案的中间一些轮与Bai-Wu白盒SM4实现方案相同,所以它也不能抵抗Chen和Lu的基于仿射等价的密钥恢复攻击。在Yang等的WBDL白盒密码算法中,连续两轮使用同一初始密钥的概率较高,所以Chen和Lu的仿射等价攻击可以恢复部分输入输出编码,而它连续四轮使用同一初始密钥的概率不容忽略,因此它也以一定的概率不能抵抗Chen和Lu的基于仿射等价的密钥恢复攻击。

1.1.3 明密文带外部编码的ARX结构分组密码白盒实现研究

2020年,Ranea和Preneel[56]证明了基于CEJO框架的白盒实现可以转化为自等价编码的白盒实现,提出了针对采用自等价编码的SPN结构跟组密码白盒实现的通用攻击方法。
2022年,Vandersmissen等[17]提出了SPECK分组密码[57]的自等价白盒实现,但证明了这种白盒实现是不安全的。同年,Ranea等[58]通过构造置换模加法的高次自等价生成轮函数的非线性编码,并通过构造轮函数的隐式表达生成查找表,提出了关于ARX型分组密码算法的隐式白盒实现。
2023年,Biryukov等[59]提出了一个代数攻击,攻破了Ranea等的隐式白盒实现。
ARX型分组密码白盒实现的研究成果为后续研究提供了借鉴。

1.2 现有密码算法明密文不带外部编码的白盒实现研究

上述明密文带外部编码的白盒实现在现实应用中仍需一定的可信硬件执行环境,而明密文不带外部编码的白盒实现旨在完全用白盒软件代替可信硬件,保持与原始密码算法一样的输入输出。目前,对现有密码算法明密文不带外部编码白盒实现的安全关注点主要在密钥恢复攻击方面。

1.2.1 对基于查找表的白盒实现的差分计算类安全攻击及防御

白盒密码实现以软件形式部署于客户端平台,在白盒安全场景中攻击者能够获得软件运行的权限,通过专用工具捕获软件运行时的内存信息。2016年,Bos等[15]利用动态二进制插桩(Dynamic Binary Instrumentation,DBI)工具开发了提取白盒实现执行过程中内存信息(内存地址与内存值)的工具[60],他们将这些内存信息处理为计算迹,如图6所示(黑色代表正在执行的指令,绿色表示正在读取内存,红色表示向内存写入数据)。 然后借鉴灰盒侧信道分析领域差分能量分析[3](Differential Power Analysis,DPA)的思想,提出了差分计算分析(DCA)方法,其无须知道白盒实现内部的细节,但要求明文端或/和密文端不带外部编码(或在攻击现有密码算法明密文带外部编码的白盒实现方案时假设外部编码可知),主要分析白盒实现过程中泄露的中间值。
图 6 不带外部编码的Chow等白盒AES实现内存可视化[61]

Fig.6 Visualization of a software execution trace of Chow’s white-box AES without external encodings [61]

2016年,Sasdrich等[62]提出了基于Walsh变换的谱分析,攻破了Chow等的白盒AES实现方案,将密钥信息的泄露归因于编码的非一阶免疫性。这是分析白盒实现的首个谱分析区分器,为研究内部编码的安全性提供了重要思路。
2017年,Banik等[63]利用差分分析[64]思想提出了零差分枚举攻击(Zero Difference Enumeration Attack,ZDE),并介绍了控制流混淆、表位置随机化和假操作三种抵抗计算类攻击的防护措施。
2018年,Bock等[65]给出了DCA攻击的数学原理,将密钥泄露归因于线性编码中存在汉明重量为1的行。同年,Lee等[66]提出了一种采用掩码技术的编码方案,该方案在白盒实现生成查找表期间,先对密码算法关键函数的输出施加布尔掩码,然后对结果进行非线性编码。
2019年,Zeyad等[67]提出了分桶计算攻击(Bucketing Computation Attack,BCA)。同年,Rivain和Wang[68]利用布尔函数理论给出了DCA的相关性统计区分器,将侧信道碰撞攻击和互信息攻击的思想引入了白盒实现计算类分析,定义了基于碰撞的区分器和互信息区分器。
通用的差分计算类区分器的构建基本至此,接下来研究者更加关注密钥泄露的度量与防护。
2020年,Lee等[69]基于Walsh变换的谱分析,指出白盒实现中线性变换泄露密钥信息的主要原因是与密钥相关的中间值的平衡分布。
2021年,Tang等[70]提出了在白盒场景中自适应的侧信道分析模型,攻破了Lee等的白盒方案[66]。同年,Carlet等[71]给出了基于向量布尔函数的谱分析区分器,以分析白盒实现的内部编码的安全性。
2022年,Lu等[43]给出了对Lee等的白盒AES实现方案[66]的碰撞攻击。
2023年,Tang等[72]给出了代数度计算分析(Algebraic Degree Computation Analysis,ADCA),其核心思想是利用S盒与内部编码之间代数度的差异来区分正确的密钥猜测。
2024年,Castelnovi和Houzelot[73]利用Walsh变换和相关性分析给出了8比特和4比特随机非线性编码的安全性分析。同年,Tang等[74]提出了选择明文计算分析(Chosen-Plaintext Computation Analysis,CP-CA),并将ADCA重构为选择明文线性编码分析(Chosen-Plaintext Linear Encoding Analysis,CP-LEA),攻破了SPECK分组密码的自等价白盒实现[17]和隐式白盒实现[58]。同年,Lee等[75]针对AES列混合操作存在的泄露进行防护,提出了将编码中的线性部分与AES轮函数的线性部分进行组合的编码设计思想。

1.2.2 对布尔电路实现的分析及防御

布尔电路实现是通过软件代替硬件布尔电路,这种实现方法相较于基于查找表的实现具有更低的存储。研究布尔电路实现的安全性是为了探索软件电路代替硬件电路的可能,由于白盒场景的攻击者具有更强的攻击能力,因此对于电路的防护需求更高。
2018年,Goubin等[76]提出了将软件实现转化为电路实现的方法,针对布尔电路实现给出了线性解码分析(Linear Decoding Analysis,LDA)并推广到高代数度场景,提出了高代数度解码分析(Higher-degree Decoding Analysis,HDDA)。同年,Biryukov和Udovenko[77]将布尔电路作为白盒实现的一种形式,提出了一个适用于布尔电路实现的可证明安全的掩码方案。
2019年,Bogdanov等[78]提出了高阶DCA(High-Order DCA,HO-DCA)方法来攻击线性掩码方案。
2020年,Goubin等[79]提出了数据依赖型高阶DCA(Data-Dependency HO-DCA,DDHO-DCA),攻破了Biryukov和Udovenko的掩码方案。
2021年,Biryukov和Udovenko[80]提出了假洗牌(Dummy Shuffling)防护方案来抵抗基于线性代数的计算类攻击LDA和HDDA。同年,Seker等[81]提出了一个可证明安全的白盒实现掩码方案;Battistello等[82]提出了基于Benaloh密码系统[83]的掩码方案。
2022年,Tang等[84]改进了DDHO-DCA,攻破了Seker等的掩码方案,并提出了高代数度高阶DCA(Higher-Degree HO-DCA,HDHO-DCA),攻破了Seker等的掩码方案以及Seker等掩码方案与Biryukov-Udovenko假洗牌方案的组合防护方案。2023年,Charlès和Udovenko[85]将攻击非线性的掩码方案抽象转换为带噪声的奇偶性学习(Learning Parity with Noise,LPN)问题,基于LPN问题的算法提出了WBLPN(White-Box Learning Parity with Noise)攻击方法,攻破了Biryukov-Udovenko假洗牌方案和Seker等掩码方案。
2024年,Charlès和Udovenko[86]提出了一种计算迹过滤方法来降低掩码方案的安全性,将过滤方法与LDA结合,提出了过滤线性解码攻击(Filtered LDA,FLDA),将攻破Seker等掩码方案的时间复杂度从指数级降至多项式级。

2 具有理想安全性的白盒密码研究

现有密码算法的白盒实现一般难以取得理想的黑盒安全性。旨在取得理想黑盒安全性的白盒密码是针对白盒安全场景而设计的全新密码算法,其目前大多借鉴分组密码的思想,将白盒密码的安全性建立在(分组长度较小的)分组密码的黑盒安全分析之上,一般不使用外部编码,安全关注点主要在密钥恢复攻击方面。但有的白盒密码算法除了考虑密钥安全性以外,还采用增大代码量等方式来防止代码提取攻击。下面将简要介绍具有理想黑盒安全性的白盒密码研究。
2014年,Biryukov等[10]提出了基于ASASA结构的白盒密码方案,开启了旨在取得理想黑盒安全性的白盒密码研究方向,其中A代表仿射层(Affine),S代表非线性层即S盒层,ASASA是AS迭代结构的一种。AS迭代结构由不同尺寸的仿射层和非线性层以不同迭代轮数构成,其中仿射层和非线性层可以根据密钥以确定性方式生成,该结构可由查找表的形式实现。这类白盒密码设计的安全性很大程度上依赖AS迭代结构分解的困难性,即攻击者难以通过AS迭代结构形成的查找表恢复其中具体的仿射变换和非线性变换,从而无法提取隐藏在其中的密钥。Biryukov等[10]设计了基于ASASA结构的弱白盒分组密码和强白盒公钥密码方案,其中强白盒可以满足单向性,即由白盒密码组件和给定密文无法恢复对应的明文,而弱白盒无法满足单向性。Biryukov等的弱白盒分组密码的整体结构如图7所示,其中每个$E_*^*$是一个小的SPN结构分组密码,L是线性变换。然而,2015年,Minaud等[87]成功分解了Biryukov等的ASASA结构,并对其弱白盒和强白盒方案进行了密钥恢复攻击;Biryukov等[88]提出了AS迭代结构的分解代数攻击,说明基于AS迭代结构白盒分组密码的安全性与分组长度和分解复杂度有关;Dinur等[89]也提出了对AS迭代结构的分解攻击,其优于Biryukov等的分解攻击。
图 7 Biryukov等的弱白盒分组密码结构

Fig.7 Structure of Biryukov et al.’s weak white-box block cipher

2015年,Bogdanov和Isobe[90]设计了采用广义Feistel结构的白盒分组密码算法族SPACE及N-SPACE,其密钥安全性建立在轮函数$F_*^*$表的黑盒安全性之上,其结构如图8所示。轮函数$F_*^*$表建立在分组密码${E_K}$之上,如AES分组密码,其具体构造如下:将${E_K}$的一部分输入比特固定为常数,剩余部分比特为输入变量,将${E_K}$输出的一部分比特丢弃不输出,剩余输出部分比特为输出变量。这样,该白盒密码算法的密钥恢复攻击可归结为轮函数$F_*^*$表的密钥恢复攻击,这远大于${E_K}$在黑盒安全模型下的密钥安全性,因为其中的一部分输出比特未知,攻击者无法获得具体的明文-密文对。此外,Bogdanov和Isobe提出了空间强度(Space Hardness)度量指标来衡量代码提取攻击的难度,其可以通过调整轮函数$ {F}_{*}^{*} $表的大小来调节。SPACE白盒密码算法的一次加密等于常规分组密码${E_K}$的多次加密,其运行性能不佳。
图 8 白盒分组密码SPACE的结构

Fig.8 Structure of the white-box block cipher SPACE

2016年,Bogdanov等[91]设计了轮函数可以一定程度地并行处理的SPN结构白盒分组密码族SPNbox,其结构如图9所示,其中${S_{{n_{{\mathrm{in}}}}}}$是一个分组长度不大于32比特的分组密码。其空间强度可以根据分组密码的分组长度进行调节,结合指令集实现的运行速度优于SPACE白盒算法。
图 9 白盒分组密码SPNbox的轮结构

Fig.9 Round structure of the white-box block cipher SPNbox

2016年, Fouque等[92]首次提出了具有可证明安全性的白盒算法WhiteBlock,建立了弱不可压缩性、强不可压缩性和加密不可压缩性三种理论模型。其中WhiteBlock的实例化PuppyCipher算法是基于Feistel结构和AES-128分组密码算法构造的,其性能优于SPACE白盒算法。
2017年,Cho等[93]基于Even-Mansour结构和AES分组密码算法设计了白盒分组密码算法族WEM,其结构简单,具有较高的软件实现效率。
2020年,Kwon等[94]提出了Feistel结构白盒分组密码算法FPL,证明了其在白盒攻击场景下的弱空间强度与强空间强度,该算法在多种指令集下(如AVX(Advanced Vector Extensions)、SSE(Streaming SIMD Extensions)和AES 指令集)性能表现良好。
2021年,Koike和Isobe[95]提出了SPN结构白盒分组密码算法族Yoroi,其能够在更换主密钥时只须更新由小的分组密码生成的不可压缩查找表,而无须更新主密钥生成的较大的查找表,从而提升了存储效率。然而,2022年, Todo和Isobe[96]给出了针对Yoroi算法的代码提取攻击,打破了该算法声称的存储表长寿命安全性。
最近,其他的白盒密码算法也被提出[97-100],它们大同小异,在此不做介绍。简而言之,具有理想安全性的白盒密码算法由于不是标准,其对外兼容性不佳,比较适合安全要求较高但兼容性要求不高的专用场景,与应用场景紧密相关,所以一些方案直接结合具体场景进行设计,如2020年Bock等[101]指出,白盒加密方案在移动支付场景下欲满足机密性和完整性,需要借助硬件绑定或是应用绑定的手段。

3 白盒密码实现常用安全分析方法

类似于黑盒密码算法的设计与安全分析,白盒密码实现的方案设计与安全分析也相克相生、交替发展。安全分析攻击一方面可以打破密码方案的安全性,另一方面也会促进密码方案的设计。本节将简要介绍白盒密码实现常用的几种安全分析攻击方法。与黑盒安全分析和灰盒侧信道安全分析方法一样,这些白盒安全分析攻击方法大致也可以分为主动攻击和被动攻击,在主动攻击中攻击者能够获取白盒实现的查找表并篡改实现的运行过程,在被动攻击中攻击者只能通过工具捕获白盒实现运行过程中泄露的中间数据,但不能进行篡改。

3.1 频率分析

频率分析是最基本的安全分析,其主要基于输入输出的分布不均匀性,特别是对于一些对白盒实现不友好的操作。虽然在其输入输出各添加一层白盒编码可以隐蔽真正的输入输出,但仍可以通过观察输入输出的分布频率来全部或部分地确定真正的输入输出信息,从而对方案的安全性造成影响。类似于黑盒场景下的算法随机性测试,频率分析虽然不算高级,但不容忽视,利用频率分析可以很容易地攻破有些密码算法白盒实现方案。

3.2 代数攻击

2004年,Billet等[23] 提出了针对Chow等白盒AES实现方案的代数攻击,其可归纳为以下三个阶段。
阶段一:选择连续的两轮,组合查找表,利用交换群之间同构的思想设计特定算法,重新构造前一轮轮函数的输出编码$\tilde Q$,满足$\tilde Q = Q \circ A$,其中,$Q$表示原始编码,$A$表示仿射变换。该算法的时间复杂度为$ \mathcal{O}({2^{24}}) $,将非线性编码的恢复问题转化为仿射编码的恢复问题。阶段一的时间复杂度为$ \mathcal{O}({2^{29}}) $
阶段二:由于前后两轮的内部编码相互抵消,攻击者可以通过连续两轮的输入输出将$\tilde Q$约减为仿射编码$A$。阶段二首先通过构造并求解线性方程组来恢复仿射编码,然后根据仿射编码恢复轮密钥字节。阶段二的时间复杂度为$ \mathcal{O}({2^{28}}) $
阶段三:采用阶段一和阶段二中的相关技术恢复一整轮的轮密钥,最后根据AES密钥扩展算法恢复AES的用户密钥。
2012年,Tolhuizen[32]改进了Billet等代数攻击的第一阶段,将其时间复杂度降为$ \mathcal{O}({2^{19}}) $。2013年,Lepoint等[31]改进了Billet等代数攻击的第一阶段和第二阶段,使攻击的整体时间复杂度降为$ \mathcal{O}({2^{22}}) $
Billet等的代数攻击是针对Chow等AES白盒实现方案的首个密钥恢复攻击,提供了消除非线性编码的方法。

3.3 仿射等价攻击

2003年,Biryukov等[27]研究了仿射等价求解问题,仿射等价问题的定义[27]如下:
定义1[27] 给定两个双射变换$S,F:{{\mathrm{GF}}} _2^n \mapsto {{\mathrm{GF}}} _2^n$,在${\text{GF}}_2^n$中检验是否存在两个可逆的仿射(或线性)变换($A,B$)满足$F = B \circ S \circ A$,如果存在,则称$(S,F)$是仿射(对应地,线性)等价的。另外,对于一个双射函数$S:{{\mathrm{GF}}} _2^n \mapsto {{\mathrm{GF}}} _2^n$,若在${\text{GF}}_2^n$中存在两个可逆的仿射(或线性)变换$(A,B)$满足$S = B \circ S \circ A$,则称函数$S$是仿射(对应地,线性)自等价的,$(A,B)$称为函数$S$的仿射(对应地,线性)自等价。
Biryukov等[27]给出了确定性的线性等价求解算法和仿射等价求解算法。他们的基本思路如下:首先猜测一个线性函数(仿射函数)的值,将其带入定义1的方程,从而获得关于另外一个线性函数(仿射函数)的信息,猜测的结果最终都要通过S盒的验证,这样交替往复就能找到满足条件的等价对。如果$S(0) \ne 0$(一般S盒都满足),线性等价和仿射等价算法的计算复杂度分别为$\mathcal{O}({n^3}{2^{2n}})$$\mathcal{O}({n^3}{2^n}) $;如果$S(0) = 0$,对应的计算复杂度分别为$\mathcal{O}({n^3}{2^{3n}})$$\mathcal{O}({n^3}{2^{2n}}) $。该算法不仅能判断两个函数是否等价,还能够找到所有符合条件的等价对。此外,他们还通过生日悖论给出了一个概率性的仿射等价求解算法,其计算复杂度为$\mathcal{O}({n^3}{2^{1.5n}})$,但是概率性求解算法不能确定两个函数是否不等价。
注意,在白盒实现中变换$(A,B)$经常是仿射编码,特别是非线性编码经常可以以相对较低的时间复杂度消除。因此,Biryukov等的仿射等价算法后来也常被用于白盒密码实现的安全分析。
2018年,Dinur[38]通过分析布尔函数代数性质的结构体rank table,提出了针对两个随机置换的概率性仿射等价算法,其计算复杂度为$\mathcal{O}({n^3}{2^n})$
在分析白盒实现方案时,经常通过组合白盒查找表来构造关于S盒的仿射等价问题,这时便可以通过仿射等价算法来求解仿射编码。注意,不同于Biryukov等的确定性等价求解算法,Dinur的等价求解算法针对的是随机置换,其在某些情况下成功的概率比较低,如S盒是自等价的情况。
其他白盒密码实现仿射等价安全分析的研究成果具体如下。2008年,Michiels等[26]给出了针对采用CEJO框架的一般化的SLT(Substitution-Linear Transformation)结构分组密码算法白盒实现的分析方法。首先利用Billet等攻击中消除非线性编码的技术,消除非线性编码后剩余为仿射编码,然后通过仿射等价算法并结合密码算法中扩散矩阵的性质恢复密钥。
Biryukov等和Dinur 的仿射等价算法将双射函数$ S $看作一个整体。2016年,Baek等[34]研究了双射函数$ S $由多个小S盒并行构成情况(此是分组密码轮函数的常见情况)下的仿射等价算法,利用Biryukov与Shamir的多集合攻击分析方法[102],拓展了恢复非线性编码的场景:在非线性编码的大小与S盒的大小不能相互整除的情况下,依然能以$\mathcal{O}\left( {\dfrac{n}{{{m_Q}}}{2^{3{m_Q}}}} \right)$的时间复杂度将非线性编码恢复为仿射编码,其中,$n$表示分组大小,${m_Q}$表示非线性编码的大小。另外,他们提出了专用仿射等价算法,其能以$\mathcal{O}\left( {\dfrac{n}{m}{m_A}^3{2^{3m}}} \right)$的计算复杂度恢复S盒层由多个S盒并行构成情况下的仿射编码,其中,$m$表示S盒的大小,${m_A}$表示仿射编码的大小。同年, Cheon等[35]给出了一个针对输入编码是结构化稀疏矩阵的仿射等价求解方法,其以$ \mathcal{O}({2^{33}}) $的时间复杂度恢复了Baek等白盒AES实现方案的密钥。
2018年,Derbez等[37]提出了针对S盒层由几个小S盒并行构成且输入输出编码是常规仿射编码情况的仿射等价求解算法,先用差分思想获得在一个S盒上不活跃的输入空间,再用空间求交集得到单个S盒的输入空间,最后利用Biryukov等的确定性仿射等价求解算法或Dinur的概率性仿射等价求解算法恢复仿射编码,其中攻击时间复杂度根据S盒层中各小S盒是否相同、S盒是否是自等价的情况而有所不同。在已知S盒且只能访问函数$F = B \circ ({S_1}, \cdots , {S_k}) \circ A$(不包括${F^{ - 1}}$)的条件下,如果S盒层中$k$个并列的S盒相同,且每个S盒都不是自等价的,求解满足$F = B' \circ ({S_1}, \cdots ,{S_k}) \circ A'$的仿射变换$\left( {A',B'} \right)$的时间复杂度为$\mathcal{O}\left( {{2^m} \cdot {n^3} + l \cdot {2^m} \cdot {n^3} + k \cdot {n^3} + k \cdot {2^m} \cdot {m^3}} \right)$;如果$k$个并列的S盒相同,且每个S盒都是自等价的,求解满足条件的仿射变换$\left( {A',B'} \right)$的时间复杂度为$\mathcal{O}\left( {{2^m} \cdot {n^3} + l \cdot {2^m} \cdot {n^3} + k \cdot {n^3} + k \cdot {2^{2m}} \cdot {m^3}} \right)$;如果$k$个并列的S盒互不相同,且每个S盒都不是自等价的,求解满足条件的仿射变换$\left( {A',B'} \right)$的时间复杂度为$\mathcal{O}\left( l \cdot {2^m} \cdot {n^3} + k \cdot {n^3} + m \cdot {2^m} \cdot {n^2} \right)$;如果S盒层在其他情况下,求解满足条件的仿射变换$\left( {A',B'} \right)$的时间复杂度为$\mathcal{O}\left( l \cdot {2^m} \cdot {n^3} + k \cdot {n^3} + m \cdot {2^{2m}} \cdot {n^2} \right)$,其中$m$表示S盒的大小,$n = k \cdot m$$l$表示测试值的数目。结合Baek等白盒实现方案的特点,Derbez等以$ \mathcal{O}({2^{31}}) $的时间复杂度恢复了其密钥。

3.4 碰撞攻击

2013年,Lepoint等[31]提出了对Chow等白盒AES实现的碰撞攻击,其可归纳为以下三个阶段:
阶段一:恢复$ {S}_{i}^{r} $(表示第r轮带输入编码和密钥的S盒)函数。首先组合查找表,构造两个S盒之间的定义碰撞函数:
$ \begin{gathered} f = (Q_0^r,Q_1^r,Q_2^r,Q_3^r) \circ MC \circ (S_0^r({x_0}),S_1^r({x_1}) ,\;\; S_2^r({x_2}),S_3^r({x_3})), \end{gathered} $
其中,$S_i^r( \cdot ) = S(P_i^r( \cdot ) \oplus k_i^r)$$P$$Q $分别表示输入编码和输出编码,${\text{MC}}$表示AES的列混合操作。通过两个S盒之间不同的输入而产生相同的输出,建立齐次方程组。大量实验验证,这个方程组系数矩阵的秩为509,而存在510个未知数,因此只有一个字节的自由变量。再利用Lai的高阶导数思想[103]构建代数度区分器,验证自由变量取值的正确性以恢复$S_i^r$
阶段二:恢复编码。根据碰撞函数,通过查找表获得碰撞函数的输出值,即$S_i^r$的值,然后由于$Q_i^r$是双射,根据第一阶段恢复的$S_i^r$函数就能求解内部编码$Q_i^r$
阶段三:恢复密钥。根据Chow等白盒AES实现方案的构造,第一轮最后一个字节的输出编码是第二轮一个S盒输入编码的逆。根据步骤二恢复的第$r$轮的输出编码就能得到第$r + 1$轮的输入编码,然后构造第$r + 1$轮关于轮密钥的区分器就能穷举性地恢复第$r + 1$轮的密钥,最后通过AES密钥扩展算法便可以恢复AES的用户密钥。
2022年,Lu等[43]提出了对Lepoint等碰撞攻击的两个简化扩展方法。首先在AES连续的两轮实施Lepoint等碰撞攻击的第一阶段,恢复两轮带输入编码的S盒:
$ \begin{gathered} {Y_r} = (S_0^r({x_0}),S_1^r({x_1}), \cdots ,S_{15}^r({x_{15}})), \\ {Y_{r + 1}} = (S_0^{r + 1}({y_0}),S_1^{r + 1}({y_1}), \cdots ,S_{15}^{r + 1}({y_{15}}))。 \\ \end{gathered} $
然后利用AES连续两轮之间的关系${Y_{r + 1}} = S \circ {\text{SR}}({\text{MC}}({Y_r}) \oplus {K^r})$,直接求解出前一轮的轮密钥,其中,${\text{SR}}$表示AES的行移位操作,${\text{MC}}$S盒都已知。该扩展方法主要是由于AES采用SPN结构,知道连续两轮S盒层的值即可直接算出中间的轮密钥,它不需要恢复轮函数的输出编码,也不需要通过区分器来穷举性地区分正确密钥,从而放宽了对白盒实现方案的条件要求,可以攻击更多的SPN结构白盒实现方案。特别地,Lu等以$ \mathcal{O}({2^{20}}) $的时间复杂度首次恢复了Bai等的白盒AES实现方案[39]以及其他白盒AES实现方案的密钥,结合之前他人的白盒AES实现安全分析结果可知,当时所有公开发表的明密文带外部编码的白盒AES实现方案均很不安全。此外,Lu等的研究也表明,(当前的)碰撞攻击虽然适用于基于单个S 盒构造的白盒AES实现方案,但不适用于基于两个S盒的白盒AES 实现方案,主要是因为碰撞方程组的秩远远小于方程组未知数的个数,导致遍历密钥候选值的复杂度高于实际可执行的复杂度。
碰撞攻击并非仅限于白盒AES实现方案,2023年,Lu和Wang[104]论证了碰撞攻击可以用于恢复基于单个S盒的白盒CLEFIA实现方案[105]的密钥(注意,与白盒AES实现类似,碰撞攻击不适用于基于两个S盒的白盒CLEFIA实现方案)。然而,碰撞攻击并不能应用于所有的分组密码算法白盒实现,2024年,Lu等[54]论证了碰撞攻击不适用于包括Xiao-Lai白盒SM4实现方案、Shi等的白盒SM4实现方案、Yao-Chen白盒SM4实现方案在内的白盒SM4实现,原因是碰撞方程组的秩远小于未知数的个数,不管白盒表是基于一个S盒的情况还是基于两个S盒的情况,这个碰撞方程组的秩应主要取决于SM4分组密码线性操作。
简言之,Lu等简化拓展的碰撞攻击方法在SPN结构下仅需要碰撞方程组存在且可解,如果解的自由度很高,会导致在恢复编码和轮密钥阶段的时间复杂度呈指数级增长。Lu等通过一定数量的实验发现,在随机编码的情况下,碰撞方程组的秩相同。但是尚不清楚,在不同编码情况下的碰撞方程组系数矩阵的秩是否相同。

3.5 故障攻击

灰盒侧信道分析中的故障攻击[2]较早地被应用于白盒实现安全分析中。2003年,Jacob等[106]通过差分故障分析思想[107]攻破了Chow等不带外部编码的白盒DES实现方案[5]
2019年,Amadori等[40]利用故障注入和Billet等代数攻击[23]的思想,攻击了带外部编码的Chow等的AES白盒实现。
故障攻击与差分计算类攻击都是从白盒实现的软件侧信道中获取泄露中间值进行分析,但不同的是,故障攻击是侵入式的主动攻击,而差分计算类型攻击是非侵入式的被动攻击。

3.6 差分计算类型分析

2016年,Bos等[15]将侧信道DPA的思想迁移到白盒实现安全分析中,提出了差分计算分析(DCA)攻击,其可以归纳为以下三个阶段。
阶段一:通过大量真正明文捕获计算迹(包含内存信息,通常转换成0、1比特序列),由于软件侧信道的监测是没有噪声的,因此计算迹的获取没有误差,更不需要物理侧信道分析中构建的物理量(如电流、电磁辐射)与数据运算的映射关系(如汉明重量模型)。
阶段二:选择与密钥相关的目标函数,如AES第一轮第一个S盒输出的最高有效位。通过明文和猜测密钥计算目标函数值,通过该值将明文对应的计算迹划分为两个集合。
阶段三:计算两个集合计算迹的均值差,选择绝对值大的均值差作为猜测密钥的分数,分数最高的猜测密钥最有可能是正确的密钥。
DCA面向不带外部编码的白盒实现。值得一提的是,DCA无须知道白盒实现的内部细节。对于使用Chow等[4]提出的编码,即8比特线性双射与两个4比特非线性双射的组合编码,DCA的效果并不好。
2018年,Bock等[65]解释了DCA成功攻击内部编码的原理,将密钥泄露归因于编码中线性部分存在汉明重量为1的行。
2019年,Bogdanov等[78]提出了针对线性掩码方案的高阶差分计算分析(HO-DCA)攻击。HO-DCA的攻击原理是,先根据掩码方案对计算迹进行预处理,生成高阶计算迹,然后对其进行一阶DCA分析。此外,他们还提出了多元高阶DCA方法,该方法基于极大似然准则,利用高阶计算迹中多个样本点的联合分布构造似然区分器,提高了DCA的攻击效率。
2020年,Goubin等[79]基于布尔电路白盒实现的数据依赖性提出了数据依赖型高阶差分计算分析(DDHO-DCA)攻击。该方法通过分析布尔电路中门电路的操作数生成新的数据依赖计算迹,避免了线性掩码产生的指数爆炸的影响,这是一种轻量化的去混淆技术,使DCA更高效。Goubin等使用DDHO-DCA攻破了Biryukov和Udovenko的掩码方案[77]
2022年,Tang等[84]针对高阶DCA不适用于高代数度掩码方案的问题,提出了高代数度高阶差分计算分析(HDHO-DCA)攻击,攻破了Seker等的掩码方案[81]以及Seker等的掩码方案与Biryukov-Udovenko假洗牌方案[80]的组合防护方案。此外,Tang等提出了三种改进DDHO-DCA的方法,并使用改进的DDHO-DCA攻破了Seker等的掩码方案。
上述这些差分计算类型分析方法基本是建立在差分计算分析思想的基础之上,但受差分计算分析的启发,研究者也提出了一些分析思想有所不同的安全分析方法,我们也将之归于差分计算类型分析,简要介绍如下。

3.6.1 基于线性代数的分析方法

2018年,Goubin等[76]提出了线性解码分析(LDA)攻击和高代数度线性解码分析(HDDA)攻击。LDA的原理是,根据选择的目标函数生成同一猜测密钥对应不同明文的预测值序列,建立预测值序列与真实明文生成的计算迹的线性方程组,如果该方程组可解,那么密钥猜测大概率就是正确密钥。LDA可以攻击使用线性掩码的白盒实现方案,如果掩码方案的代数度大于1,则可以使用HDDA。HDDA的原理是,先根据掩码方案对计算迹进行预处理,生成高代数度的迹,然后再应用LDA。
2023年,Charlès和Udovenko[85]将掩码方案中的非线性项当作噪声,将攻击高代数度的掩码方案的问题归约为带噪声的奇偶性学习问题,利用解决LPN问题的算法提出白盒LPN(WBLPN)攻击方法,攻击了白盒掩码方案,从理论和实验角度证明了在攻破Seker等掩码方案[81]与Biryukov-Udovenko假洗牌方案[80]的前提下,WBLPN的表现优于HO-DCA[78]和HDDA[76]
2024年,Charlès和Udovenko[86]提出了计算迹的过滤方法,通过固定白盒实现的中间值过滤迹的样本点,降低掩码防护的安全性。他们将过滤方法与LDA结合,提出了过滤线性解码攻击FLDA(Filtered Linear Decoding Analysis),从理论和实验角度证明了FLDA可以攻破任意阶和任意代数度的Seker等的掩码方案[81]。此外,他们还提出了三种优化技术,改进了基于线性代数的攻击方法LDA、HDDA和WBLPN。
线性代数思想不仅可以用于分析掩码体制,还可以分析内部编码的安全性。2023年,Tang等[72]利用求解线性方程组的思想,计算非线性编码的代数度,然后利用非线性编码与所保护S盒的代数度之间的差异构造代数度差分计算分析(ADCA)区分器。他们指出,内部编码的代数度小于S盒的代数度会导致密钥泄露。2024年,Tang等[74]利用ADCA思想攻破了SPECK分组密码算法的自等价白盒实现[17]和隐式白盒实现[58]

3.6.2 相关性分析

2019年,Rivain和Wang[68]利用相关性分析的思想,构建了基于布尔函数的Pearson相关系数区分器:
$ {\ell _k} = {\mathrm{Cor}}({\varphi _i}(X),{V_j}), $
其中,$ {V_j} $表示真实迹的样本值,$ {\varphi _i} $表示与密钥相关的预测值。通过测量猜测密钥产生的预测值与获取的计算迹之间的线性相关性区分正确密钥。他们还利用碰撞攻击思想生成碰撞计算迹,然后构建了根据密钥猜测产生的碰撞预测与碰撞计算迹的Pearson相关系数区分器。此外,他们还将侧信道分析互信息攻击的思想引入白盒实现的分析中,构造了猜测密钥产生的预测值与真实计算迹的互信息区分器:
$ {\ell _k} = \max {{{I}}} ({\varphi _k}(X);{V_j}), $
其中,$ {\varphi _k} $表示与密钥相关的中间值预测函数,$ {{I}} $表示互信息。这三种方法都是通过猜测密钥来预测中间值,然后分析预测值与真实值之间的相关性,从而将正确密钥(相关性高的密钥大概率是正确密钥)从密钥猜测集合中区分出来。
2024年,Castelnovi和Houzelot[73]建立了布尔函数Walsh谱与Pearson相关系数的联系,从编码角度研究了Rivain和Wang相关性分析成功攻击的原因,证明了4比特非线性编码无法保护S盒,并且给出了内部编码的设计建议。

3.6.3 谱分析

布尔函数的Walsh谱[108]可以表示为:
$ {\mathcal{W}_f}(u) = \sum\limits_{x \in \mathbb{F}_2^n} {{{( - 1)}^{f(x) \oplus < u,x > }}}, $
向量布尔函数的Walsh谱可以表示为:
$ {\mathcal{W}_F}(u,v) = \sum\limits_{x \in \mathbb{F}_2^n} {{{( - 1)}^{ < v,F(x) > \oplus < u,x > }}}, $
其中,$ < x,y > $表示向量内积。
2016年,Sasdrich等[62]提出了利用Walsh变换分析白盒实现的内部编码,利用布尔函数的相关免疫性构造区分器:
$ {\ell _k} = \arg \min \sum\limits_{u \in \mathbb{F}_2^n} {\sum\limits_i {\left| {{\mathcal{W}_{f{{(k)}_i}}}(u)} \right|} }, $
认为正确的密钥猜测会提高目标函数的相关免疫性。
2020年,Lee等[69]通过谱分析,分析了线性编码的安全性,区分器为:
$ {\ell _k} = \arg \min \sum\limits_{{{\mathrm{HW}}} (u) = 1} {\sum\limits_i {\left| {{\mathcal{W}_{f{{(k)}_i}}}(u)} \right|} }, $
其中,${{\mathrm{HW}}} $表示汉明重量。他们将密钥的泄露归因于与密钥相关的中间值的平衡分布,而非Bock等认为的编码中线性部分存在汉明重量为1的行。
2021年,Carlet等[71]构造了基于向量布尔函数Walsh谱的区分器:
$ {\ell _k} = \arg \max \# \left\{ {{\mathcal{W}_{F{{(k)}_i}}}(u,v) = 0|u,v \in \mathbb{F}_2^8} \right\}, $
指出在目标函数的线性部分(AES的列混合运算和内部编码线性部分的组合)是不可逆线性变换的条件下,该区分器比Sasdrich等的区分器[62]更有效。
谱分析的表现优于相关性分析[72],原因在于谱分析更关注内部编码的性质。但是现有的研究结果尚未从谱分析角度解释不同类型编码造成密钥泄露的根本原因。

4 结束语

白盒密码实现的目的是在白盒安全场景中保障信息的安全性,以软件实现代替可信硬件,降低密码部署的成本,增加密码使用的便捷性。本文梳理了二十多年来白盒密码实现领域的主要研究进展,包括现有密码算法的白盒实现和具有理想安全性的白盒密码两个研究方向。整体而言,这两个研究方向在安全性和兼容性方面各有优缺点,前者兼容性好,但一般不能取得理想的黑盒安全度;后者安全性好,但由于不是标准而存在与外部系统的兼容性问题。
在现有密码算法的白盒实现方面,明密文带外部编码的白盒实现代表着现有密码算法白盒实现方向的保守底线,明密文不带外部编码的白盒实现代表着现有密码算法白盒实现方向的终极目标。如果不能设计出高安全性与高效率的明密文带外部编码的白盒实现方案,那么高安全性与高效率的明密文不带外部编码的白盒实现方案也将无从谈起。另一方面,如果能够设计出高安全性与高效率的明密文不带外部编码的白盒实现方案,那么明密文带外部编码的白盒实现方案则无须研究。现有密码算法白盒实现的安全性和性能很大程度上受到原始密码算法及其所用基本操作的制约,有的密码算法或基本操作对白盒实现相对友好,存在相对安全高效的白盒实现方案,而有的密码算法或基本操作目前仍缺乏高安全性与高效率的白盒实现方案。特别是国内外广泛使用的AES与SM4分组密码算法,单独的S盒或线性变换具有完美的白盒实现方案,然而两者级联而来的轮函数及加密算法却仍然没有理想的白盒实现方案,甚至缺乏超越实际攻击复杂度级别的明密文带外部编码的白盒实现方案。
在具有理想安全性的白盒密码方面,有些白盒密码方案目前依旧是安全的,但仍须研究其安全性及如何进一步提高运行性能,特别是当前的白盒密码方案普遍使用增大代码量来抵抗代码提取攻击,这限制了白盒密码方案的现实应用范围。
结合当前的研究发展,未来的研究内容包括但不限于:
(1)现有密码算法,特别是AES与SM4等常用标准密码算法高安全性与高效率的白盒实现方案设计。
(2)深入研究白盒场景和灰盒场景的分析方法,揭示白盒实现密钥泄露的本质,如在计算类分析中评估白盒实现泄露的标准框架。
(3)如何抵抗代码提取攻击。现有密码算法的白盒实现使用外部编码,而具有理想黑盒安全性的白盒密码使用较大的代码量,两种方式都一定程度地阻碍了白盒密码实现的便捷性现实应用。
(4)研究可证明安全的掩码体制。基于布尔电路的实现在存储复杂度上优于基于查找表的实现,但掩码体制的安全性建立在随机数生成器以及一定数量的掩码份额之上,导致性能降低。白盒场景对掩码体制提出了更高的要求。
总之,我们需继续探索如何取得白盒密码实现的最终目标:在白盒安全场景中完全用软件代替可信硬件,符合期望的安全性、存储复杂度、运行性能等应用要求指标。
1
KOCHER P C. Timing attacks on implementations of Diffie-Hellman,RSA,DSS,and other systems[C]//CRYPTO 1996:Annual International Cryptology Conference. Springer,1996:104-113.

2
BONEH D,DEMILLO R A,LIPTON R J. On the importance of checking cryptographic protocols for faults[C]//EUROCRYPT 1997:International Conference on the Theory and Applications of Cryptographic Techniques. Springer,1997:37-51.

3
KOCHER P,JAFFE J,JUN B. Differential power analysis[C]//CRYPTO 1999:Annual International Cryptology Conference. Springer,1999:388-397.

4
CHOW S,EISEN P,JOHNSON H,et al. White-box cryptography and an AES implementation[C]//SAC 2002:International Workshop on Selected Areas in Cryptography. Springer,2003:250-270.

5
CHOW S,EISEN P,JOHNSON H,et al. A white-box DES implementation for DRM applications[C]//DRM 2002:ACM Workshop on Digital Rights Management. Springer,2002:1-15.

6
CYBER:Security techniques for protecting software in a white box model:ETSI TR 103 642[R]. Sophia-Antipolis:European Telecommunications Standards Institute,2018.

7
Information security,cybersecurity and privacy protection-security techniques-security properties and best practices for test and evaluation of white box cryptography:ISO/IEC TR 24485:2022[R]. Geneva:Switzerland.The International Organization for Standardization and the International Electrotechnical Commission,2022.

8
Advanced encryption standard (AES):NIST FIPS PUB 197[S]. Springfield:National Institute of Standards and Technology,2001.

9
信息安全技术 SM4 分组密码算法:GB/T 32907-2016[S]. 北京:中国质检出版社,2016.

Information security technology:SM4 block cipher algorthm:GB/T 32907-2016[S]. Beijing:China Quality Press,2016.

10
BIRYUKOV A,BOUILLAGUET C,KHOVRATOVICH D. Cryptographic schemes based on the ASASA structure:black-box,white-box,and public-key[C]//ASIACRYPT 2014:International Conference on the Theory and Application of Cryptology and Information Security. Springer,2014:63-84.

11
CryptoExperts. White-box cryptography [EB/OL]. (2016-08-14)[2024-12-02]. https://www.cryptoexperts.com/technolotech/white-box.

CryptoExperts. White-box cryptography [EB/OL]. (2016-08-14)[2024-12-02]. https://www.cryptoexperts.com/technolotech/white-box.

12
Thales.White-box cryptography[EB/OL].(2018-03-08)[2024-12-02]. https://cpl.thalesgroup.com/software-monetization/white-box-cryptography.

13
Mircosemi.White-box CRYPTO[EB/OL].(2018-05-29)[2024-12-02]. https://www.microsemi.com/document-portal/doc_download/134642-whiteboxcrypto-cryptographic-key-hiding-with-tunable-security-and-performance.

14
Sansec. Software cryptographic module[EB/OL]. (2022-01-06)[2024-12-02]. https://www.sansec.com.cn/product/10.htht.

15
BOS J W,HUBAIN C,MICHIELS W,et al. Differential computation analysis:hiding your white-box designs is not enough[C]//CHES 2016:International Conference on Cryptographic Hardware and Embedded Systems. Springer,2016:215-236.

16
Data encryption standard (DES):NIST FIPS PUB 46[S]. Springfield:National Institute of Standards and Technology,1999.

17
VANDERSMISSEN J,RANEA A,PRENEEL B. A white-box SPECK implementation using self-equivalence encodings[C]//ACNS 2022:International Conference on Applied Cryptography and Network Security. Springer,2022:771-791.

18
FUKUSHIMA K,HIDANO S,KIYOMOTO S. White-box implementation of stream cipher[C]//International Conference on Information Systems Security and Privacy. SciTePress,2017:263-269.

19
LU J Q,ZHAO Z G,GUO H Q. White-box implementation of the KMAC message authentication code[C]//ISPEC 2019:Information Security Practice and Experience Conference. Springer,2019:248-270.

20
SCHELKUNOV D. An approach for designing fast public key encryption systems using white-box cryptography techniques[J]. Journal of Computer Virology and Hacking Techniques,2024(20):441-445.

21
ZHANG Y D, HE D B, HUANG X Y, et al. White-box implementation of the identity-based signature scheme in the IEEE P1363 standard for public key cryptography[J]. IEICE Transactions on Information and Systems, 2020, 103 (2): 188- 195.

22
MUIR J A. A tutorial on white-box AES[M]//Advances in Network Analysis and its Applications. Berlin,Heidelberg:Springer,2012.

23
BILLET O,GILBERT H,ECH-CHATBI C. Cryptanalysis of a white-box AES implementation[C]//SAC 2004:International Workshop on Selected Areas in Cryptography. Springer,2005:227-240.

24
BRINGER J,CHABANNE H,DOTTAX E. White box cryptography:another attempt[J]. Cryptology ePrint Archive,2006,2006:468.

25
DE MULDER Y,WYSEUR B,PRENEEL B. Cryptanalysis of a perturbated white-box AES implementation[C]//INDOCRYPT 2010:International Conference on Cryptology in India. Springer,2010:292-310.

26
MICHIELS W,GORISSEN P,HOLLMANN H D L. Cryptanalysis of a generic class of white-box implementations[C]// SAC 2008:International Workshop on Selected Areas in Cryptography. Springer,2009:414-428.

27
BIRYUKOV A,DE CANNIERE C,BRAEKEN A,et al. A toolbox for cryptanalysis:linear and affine equivalence algorithms[C]//EUROCRYPT 2003:International Conference on the Theory and Applications of Cryptographic Techniques. Springer,2003:33-50.

28
XIAO Y Y,LAI X J. A secure implementation of white-box AES[C]//2nd International Conference on Computer Science and its Applications. IEEE,2009:1-6.

29
DE MULDER Y,ROELSE P,PRENEEL B. Cryptanalysis of the Xiao-Lai white-box AES implementation[C]//SAC 2012:International Conference on Selected Areas in Cryptography. Springer,2013:34-49.

30
KARROUMI M. Protecting white-box AES with dual ciphers[C]//ICISC 2010:International Conference on Information Security and Cryptology. Springer,2011:278-291.

31
LEPOINT T,RIVAIN M,DE MULDER Y,et al. Two attacks on a white-box AES implementation[C]//SAC 2013:International Conference on Selected Areas in Cryptography. Springer,2013:265-285.

32
TOLHUIZEN L. Improved cryptanalysis of an AES implementation[C]//33rd WIC Symposium on Information Theory in the Benelux. 2012:68-71.

33
LUO R,LAI X J,YOU R. A new attempt of white-box AES implementation[C]//2014 IEEE International Conference on Security,Pattern Analysis,and Cybernetics. IEEE,2014:423-429.

34
BAEK C H, CHEON J H, HONG H. White-box AES implementation revisited[J]. Journal of Communications and Networks, 2016, 18 (3): 273- 287.

DOI

35
CHEON J H,HONG H,LEE J,et al. An efficient affine equivalence algorithm for multiple S-boxes and a structured affine layer[C]//SAC 2016:International Conference on Selected Areas in Cryptography. Springer,2016:299-316.

36
MCMILLION B,SULLIVAN N. Attacking white-box AES constructions[C]// 2016 ACM Workshop on Software PROtection. ACM,2016:85-90.

37
DERBEZ P, FOUQUE P A, LAMBIN B, et al. On recovering affine encodings in white-box implementations[J]. IACR Transactions on Cryptographic Hardware and Embedded Systems, 2018, 2018 (3): 121- 149.

38
DINUR I. An improved affine equivalence algorithm for random permutations[C]//EUROCRYPT 2018:Annual International Conference on the Theory and Applications of Cryptographic Techniques. Springer,2018:413-442.

39
BAI K P, WU C K, ZHANG Z F. Protect white-box AES to resist table composition attacks[J]. IET Information Security, 2018, 12 (4): 305- 313.

DOI

40
AMADORI A,MICHIELS W,ROELSE P. A DFA attack on white-box implementations of AES with external encodings[C]//SAC 2019:International Conference on Selected Areas in Cryptography. Springer,2020:591-617.

41
孙涛, 唐国俊, 吴昕锴, 等. 一种NoisyRounds保护的白盒 AES 实现及其差分故障分析[J]. 密码学报, 2020, 7 (3): 342- 357.

SUN T, TANG G J, WU X K, et al. A NoisyRounds-based white-box AES implementation and corresponding differential fault analysis[J]. Journal of Cryptologic Research, 2020, 7 (3): 342- 357.

42
LEE S, JHO N S, KIM M. Table redundancy method for protecting against fault attacks[J]. IEEE Access, 2021, 9, 92214- 92223.

DOI

43
LU J Q,WANG M X,WANG C,et al. Collision-based attacks on white-box implementations of the AES block cipher[C]//SAC 2022:International Conference on Selected Areas in Cryptography. Springer,2024:328-352.

44
DENG T X,LI P,YANG S Z,et al. A deep-learning approach for predicting round obfuscation in white-box block ciphers[C]//ACNS 2023:International Conference on Applied Cryptography and Network Security. Springer,2023:419-438.

45
肖雅莹,来学嘉. 白盒密码及 SMS4 算法的白盒实现[C]//中国密码学会 2009年会论文集. 科学出版社,2009:24-34.

XIAO Y Y,LAI X J. White-box cryptography and implementations of SMS4[C]//ChinaCrypt 2009:Annual Conference of the Chinese Association of Cryptologic Research. Science Press,2009:24-34.

46
SHI Y,HE Z J. A lightweight white-box symmetric encryption algorithm against node capture for WSNs[C]//2014 IEEE Wireless Communications and Networking Conference. IEEE,2014:3058-3063.

47
BAI K P, WU C K. A secure white-box SM4 implementation[J]. Security and Communication Networks, 2016, 9 (10): 996- 1006.

DOI

48
LIN T T, YAN H L, LAI X J, et al. Security evaluation and improvement of a white-box SMS4 implementation based on affine equivalence algorithm[J]. The Computer Journal, 2018, 61 (12): 1783- 1790.

DOI

49
潘文伦,秦体红,贾音,等. 对两个SM4白盒方案的分析[J]. 密码学报,2018,5(6):651-670.

PAN W L,QIN T H,JIA Y,et al. Cryptanalysis of two white-box SM4 implementations[J]. Journal of Cryptologic Research,2018,5(6):651-670.

50
姚思, 陈杰. SM4算法的一种新型白盒实现[J]. 密码学报, 2020, 7 (3): 358- 374.

YAO S, CHEN J. A new method for white-box implementation of SM4 algorithm[J]. Journal of Cryptologic Research, 2020, 7 (3): 358- 374.

51
原梓清,陈杰. 一种抗差分计算分析的白盒 SM4 方案. 密码学报. 2023,10(2):386-396.

YUAN Z Q,CHEN J. A white-box SM4 scheme against differential computation analysis[J]. Journal of Cryptologic Research,2023,10(2):386-396.

52
杨亚涛, 董辉, 张也, 等. WBDL: 改进的SM4动态白盒密码算法[J]. 密码学报, 2023, 10 (4): 796- 812.

YANG Y T, DONG H, ZHANG Y, ZHANG Y S. WBDL: improved SM4 dynamic white-box cryptographic algorithm[J]. Journal of Cryptologic Research, 2023, 10 (4): 796- 812.

53
CHEN J, LUO Y N, LIU J, et al. A white-box implementation of SM4 with self-equivalence encoding[J]. The Computer Journal, 2024, 67 (3): 1087- 1098.

DOI

54
LU J Q, LI J Y, CHEN Z X, et al. Cryptanalysis of a type of white-box implementations of the SM4 block cipher[J]. The Computer Journal, 2024, 67 (5): 1663- 1673.

DOI

55
CHEN Z X,LU J Q. Affine equivalence-based key-recovery attacks on white-box implementations of the SM4 block cipher[C]//CT-RSA 2025:The Cryptographers’ Track at the RSA Conference. Springer,2025.

56
RANEA A,PRENEEL B. On self-equivalence encodings in white-box implementations[C]//SAC 2020:International Conference on Selected Areas in Cryptography. Springer,2021:639-669.

57
BEAULIEU R,SHORS D,SMITH J,et al. SIMON and SPECK:block ciphers for the Internet of Things[J]. Cryptology ePrint Archive,2015,2015:585.

58
RANEA A,VANDERSMISSEN J,PRENEEL B. Implicit white-box implementations:white-boxing ARX ciphers[C]//CRYPTO 2022:Annual International Cryptology Conference. Springer,2022:33-63.

59
BIRYUKOV A, LAMBIN B, UDOVENKO A. Cryptanalysis of ARX-based white-box implementations[J]. IACR Transactions on Cryptographic Hardware and Embedded Systems, 2023, 2023 (3): 97- 135.

60
Side-Chacnnel Marvels. Tracer[EB/OL]. (2019-07-26)[2024-12-02]. https://github.com/SideChannelMarvels/Tracer.

61
Side-Channel Marvels. DeadPool[EB/OL]. ( 2023-04-10)[2024-12-02]. https://github.com/SideChannelMarvels/Deadpool/tree/master/wbs_aes_openwhitopen_chow/traces.

62
SASDRICH P,MORADI A,GÜNEYSU T. White-box cryptography in the gray box:A hardware implementation and its side channels[C]//FSE 2016:International Conference on Fast Software Encryption. Springer,2016:185-203.

63
BANIK S, BOGDANOV A, ISOBE T, et al. Analysis of software countermeasures for white-box encryption[J]. IACR Transactions on Symmetric Cryptology, 2017, 2017 (1): 307- 328.

64
BIHAM E,SHAMIR A. Differential cryptanalysis of DES-like cryptosystems[C]//CRYPTO 1991:Annual International Cryptology Conference. Springer,1991:2-21.

65
ALPIREZ BOCK E,BRZUSKA C,MICHIELS W,et al. On the ineffectiveness of internal encodings-revisiting the DCA attack on white-box cryptography[C]//ACNS 2018:International Conference on Applied Cryptography and Network Security. Springer,2018:103-120.

66
LEE S, KIM T, KANG Y. A masked white-box cryptographic implementation for protecting against differential computation analysis[J]. IEEE Transactions on Information Forensics and Security, 2018, 13 (10): 2602- 2615.

DOI

67
ZEYAD M,MAGHREBI H,ALESSIO D,et al. Another look on bucketing attack to defeat white-box implementations[C]//COSADE 2019:International Workshop on Constructive Side-Channel Analysis and Secure Design. Springer,2019:99-117.

68
RIVAIN M, WANG J W. Analysis and improvement of differential computation attacks against internally-encoded white-box implementations[J]. IACR Transactions on Cryptographic Hardware and Embedded Systems, 2019, 2019 (2): 225- 255.

69
LEE S, JHO N S, KIM M. On the linear transformation in white-box cryptography[J]. IEEE Access, 2020, 8, 51684- 51691.

DOI

70
TANG Y F,GONG Z,SUN T,et al. Adaptive side-channel analysis model and its applications to white-box block cipher mplementations[C]//Inscrypt 2021:International Conference on Information Security and Cryptology. Springer,2021:399-417.

71
CARLET C, GUILLEY S, MESNAGER S. Structural attack (and repair) of diffused-input-blocked-output white-box cryptography[J]. IACR Transactions on Cryptographic Hardware and Embedded Systems, 2021, 2021 (4): 57- 87.

72
TANG Y F, GONG Z, LI B, et al. Revisiting the computation analysis against internal encodings in white-box implementations[J]. IACR Transactions on Cryptographic Hardware and Embedded Systems, 2023, 2023 (4): 493- 522.

73
CASTELNOVI L, HOUZELOT A. On the (im) possibility of preventing differential computation analysis with internal encodings[J]. IACR Transactions on Cryptographic Hardware and Embedded Systems, 2024, 2024 (3): 452- 471.

DOI

74
TANG Y F, GONG Z, ZHAO L J, et al. Unboxing ARX-based white-box ciphers: chosen-plaintext computation analysis and its applications[J]. IACR Transactions on Cryptographic Hardware and Embedded Systems, 2024, 2024 (3): 634- 670.

DOI

75
LEE S, KIM J N. Balanced encoding of near-zero correlation for an AES implementation[J]. IEEE Transactions on Information Forensics and Security, 2024, 19, 6589- 6603.

DOI

76
GOUBIN L,PAILLIER P,RIVAIN M,et al. How to reveal the secrets of an obscure white-box implementation[J]. Cryptology ePrint Archive,2018,2018:098.

77
BIRYUKOV A,UDOVENKO A. Attacks and countermeasures for white-box designs[C]//ASIACRYPT 2018:International Conference on the Theory and Application of Cryptology and Information Security. Springer,2018:373-402.

78
BOGDANOV A,RIVAIN M,VEJRE P S,et al. Higher-order DCA against standard side-channel countermeasures[C]// 10th International Workshop on Constructive Side-Channel Analysis and Secure Design. Springer,2019:118-141.

79
GOUBIN L, RIVAIN M, WANG J W. Defeating state-of-the-art white-box countermeasures with advanced gray-box attacks[J]. IACR Transactions on Cryptographic Hardware and Embedded Systems, 2020, 2020 (3): 454- 482.

80
BIRYUKOV A,UDOVENKO A. Dummy shuffling against algebraic attacks in white-box implementations[C]//EUROCRYPT 2021:Annual International Conference on the Theory and Applications of Cryptographic Techniques. Springer,2021:219-248.

81
SEKER O, EISENBARTH T, LISKIEWICZ M. A white-box masking scheme resisting computational and algebraic attacks[J]. IACR Transactions on Cryptographic Hardware and Embedded Systems, 2021, 2021 (2): 61- 105.

82
BATTISTELLO A,CASTELNOVI L,CHABRIER T. Enhanced encodings for white-box designs[C]//CARDIS 2021:International Conference on Smart Card Research and Advanced Applications. Springer,2021:254-274.

83
BENALOH J. Dense probabilistic encryption[C]//SAC 1993:International Workshop on Selected Areas of Cryptography. Springer,1994:120-128.

84
TANG Y F, GONG Z, CHEN J, et al. Higher-order DCA attacks on white-box implementations with masking and shuffling countermeasures[J]. IACR Transactions on Cryptographic Hardware and Embedded Systems, 2022, 2023 (1): 369- 400.

85
CHARLèS A, UDOVENKO A. LPN-based attacks in the white-box setting[J]. IACR Transactions on Cryptographic Hardware and Embedded Systems, 2023, 2023 (4): 318- 343.

86
CHARLÈS A, UDOVENKO A. White-box filtering attacks breaking SEL masking: from exponential to polynomial time[J]. IACR Transactions on Cryptographic Hardware and Embedded Systems, 2024, 2024 (3): 1- 24.

87
MINAUD B, DERBEZ P, FOUQUE P A, et al. Key-recovery attacks on ASASA[J]. Journal of Cryptology, 2018, 31 (3): 845- 884.

DOI

88
BIRYUKOV A,KHOVRATOVICH D. Decomposition attack on SASASASAS[J]. Cryptology ePrint Archive,2015,2015:646.

89
DINUR I,DUNKELMAN O,KRANZ T,et al. Decomposing the ASASA block cipher construction[J]. Cryptology ePrint Archive,2015,2015:507.

90
BOGDANOV A,ISOBE T. White-box cryptography revisited:Space-hard ciphers[C]//CCS 2015:ACM SIGSAC Conference on Computer and Communications Security. ACM,2015:1058-1069.

91
BOGDANOV A,ISOBE T,TISCHHAUSER E. Towards practical whitebox cryptography:optimizing efficiency and space hardness[C]//ASIACRYPT 2016:International Conference on the Theory and Application of Cryptology and Information Security. Springer,2016:126-158.

92
FOUQUE P A,KARPMAN P,KIRCHNER P,et al. Efficient and provable white-box primitives[C]//ASIACRYPT 2016:International Conference on the Theory and Application of Cryptology and Information Security. Springer,2016:159-188.

93
CHO J,CHOI K Y,DINUR I,et al. WEM:a new family of white-box block ciphers based on the Even-Mansour construction[C]//CT-RSA 2017:The Cryptographers’ Track at the RSA Conference. Springer,2017:293-308.

94
KWON J,LEE B H,LEE J,et al. FPL:white-box secure block cipher using parallel table look-ups[C]//CT-RSA 2020:The Cryptographers’ Track at the RSA Conference. Springer,2020:106-128.

95
KOIKE Y, ISOBE T. Yoroi: updatable whitebox cryptography[J]. IACR Transactions on Cryptographic Hardware and Embedded Systems, 2021, 2021 (4): 587- 617.

96
TODO Y, ISOBE T. Hybrid code lifting on space-hard block ciphers: application to Yoroi and SPNbox[J]. IACR Transactions on Symmetric Cryptology, 2022, 2022 (3): 368- 402.

97
LIN T T, LAI X J, XUE W J, et al. A new Feistel-type white-box encryption scheme[J]. Journal of Computer Science and Technology, 2017, 32, 386- 395.

DOI

98
YANG Y T, ZHAI Y Y, DONG H, et al. WAS: improved white-box cryptographic algorithm over AS iteration[J]. Cybersecurity, 2023, 6, 56.

DOI

99
YANG Y T,ZHAI Y Y,DONG H. SPN-AS:A new white-box cryptographic algorithm based on AS iteration structure[J]. Research Square Preprint,2023.

100
LIU J, RIJMEN V, HU Y P, et al. WARX: efficient white-box block cipher based on ARX primitives and random MDS matrix[J]. Science China: Information Sciences, 2022, 65 (3): 132302.

DOI

101
BOCK E A, AMADORI A, BRZUSKA C, et al. On the security goals of white-box cryptography[J]. IACR Transactions on Cryptographic Hardware and Embedded Systems, 2020, 2020 (2): 327- 357.

102
BIRYUKOV A,SHAMIR A. Structural cryptanalysis of SASAS[C]//EUROCRYPT 2001:International Conference on the Theory and Application of Cryptographic Techniques. Springer,2001:395-405.

103
LAI X J. Higher order derivatives and differential cryptanalysis[M]//Communications and Cryptography. Berlin, Heidelberg:Springer,1994.

104
LU J Q,WANG C. Cryptanalysis of two white-box implementations of the CLEFIA block cipher[C]//ICICS 2023:International Conference on Information and Communications Security. Springer,2023:51-68.

105
SU S,DONG H,FU G,et al. A white-box CLEFIA implementation for mobile devices[C]//2014 Communications Security Conference. IET,2014:1-8.

106
JACOB M,BONEH D,FELTEN E. Attacking an obfuscated cipher by injecting faults[C]//DRM 2002:ACM Workshop on Digital Rights Management. Springer,2002:16-31.

107
BIHAM E,SHAMIR A. Differential fault analysis of secret key cryptosystems[C]//CRYPTO 1997:Annual International Cryptology Conference. Springer,1997:513-525.

108
CARLET C. Boolean functions for cryptography and coding theory[M]. Cambridge:Cambridge University Press,2020.

文章导航

/