学术研究

基于毛刺探测模型的低随机数SM4一阶门限实现

  • 祝汉鹏 ,
  • 胡晓婷 , * ,
  • 张露露
展开
  • 江苏师范大学人工智能与计算机学院,徐州 221000

网络出版日期: 2026-07-09

基金资助

江苏师范大学博士基金(20XSRX014)

版权

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

Low-randomness first-order threshold implementation for SM4 based on the glitch-extended probing model

  • Zhu Hanpeng ,
  • Hu Xiaoting , * ,
  • Zhang Lulu
Expand
  • School of Artificial Intelligence and Computer Science, Jiangsu Normal University, Xuzhou 221000, China

Online published: 2026-07-09

Copyright

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

摘要

门限实现作为一种具有可证明安全性的抗侧信道攻击方法,已被广泛应用于各类密码算法中。尽管已有研究提出了多种针对SM4算法的侧信道攻击防护方案,但现有方案在面对毛刺扩展探测等新型攻击模型时仍存在安全缺陷。因此,本文提出一种改进的SM4算法S盒一阶门限实现方案。该方案基于塔域 GF((22)2)2结构设计S盒,重构满足门限特性的乘法器,并引入COTG(changing of the guards)技术优化随机数添加策略,将单个S盒的随机数消耗降低至10 bit。本文借助形式化验证工具SILVER,证明了该方案在毛刺扩展探测模型下的理论安全性,并通过测试向量泄露评估(test vector leakage assessment,TVLA)验证了整体物理电路的实际防护能力。实验结果表明,该方案可有效抵御一阶侧信道攻击。

本文引用格式

祝汉鹏 , 胡晓婷 , 张露露 . 基于毛刺探测模型的低随机数SM4一阶门限实现[J]. 网络空间安全科学学报, 2026 , 4(3) : 80 -91 . DOI: 10.20172/j.issn.2097-3136.260602

Abstract

Threshold implementation (TI), as a countermeasure against side-channel attacks with provable security, has been widely applied in cryptographic algorithms. Although various side-channel attack protection schemes for the SM4 algorithm have been proposed, existing schemes still exhibit security vulnerabilities when facing novel attack models such as the glitch-extended probing model. To this end, this paper proposes an improved first-order threshold implementation scheme for the S-box of the SM4 algorithm. This scheme designs the S-box based on the tower field GF((22)2)2 structure, reconstructs a multiplier that satisfies threshold properties, and introduces COTG (changing of the guards) technique to optimize the randomness addition strategy, reducing the randomness consumption of a single S-box to 10 bits. Furthermore, the theoretical security of the proposed scheme under the glitch-extended probing model is proven by utilizing the formal verification tool SILVER, and the actual protection capability of the overall physical circuit is validated through test vector leakage assessment (TVLA). The results demonstrate that the proposed scheme can effectively resist first-order side-channel attacks.

0 引言

自1999年Kocher等[1]首次提出差分功耗分析(differential power analysis,DPA)并成功攻破DES(data encryption standard)算法以来,DPA已成为嵌入式设备面临的主要物理安全威胁。此类攻击通过监测密码设备在运行时的功耗、电磁辐射等物理特征,并结合统计分析手段提取敏感信息,进而实现密钥恢复。目前,常见的侧信道攻击已涵盖简单功耗分析(simple power analysis,SPA)、差分功耗分析、相关功耗分析[2](correlation power analysis,CPA)、模板攻击[3](template attack,TA)以及故障攻击[4]等。这些物理攻击手段的不断演进,使得集成加密功能的嵌入式设备在实际部署中面临严峻的安全风险。
为抵御侧信道攻击,研究者提出了多种防护策略,其中掩码技术是当前主流的防护技术。根据运算类型的不同,掩码技术可分为布尔掩码和算术掩码:布尔掩码适用于涉及布尔操作的场景,如分组密码AES(advanced encryption standard)、SM4等;而算术掩码则更适合处理涉及算术运算的场景,如后量子密码算法等[5]。传统的掩码技术通过在运算过程中引入随机掩码来掩盖秘密信息与功耗之间的统计相关性,从而提升抗DPA的能力。但在硬件实现中,由于毛刺现象的存在,这种相关性无法完全被消除,从而使得安全方案面临失效风险。Nikova等[6]提出的门限实现(threshold implementation,TI)是首个在硬件加密中具备可证明安全性的掩码方案。该方案要求将代数次数为t的函数分解成(t×d)+1个份额(d为安全阶数),从而实现对d阶攻击的防护。然而,在高阶防护需求下,份额数量的增加会导致硬件面积开销显著增加。为降低总体开销,Reparaz等[7]提出一种仅需d+1个份额即可抵抗d阶攻击的TI方案,有效减少了面积开销。然而,该方案需要引入额外的新随机数以满足均匀性要求。为进一步降低随机数消耗,Daemen等[8]将COTG(changing of the guards)技术与门限实现结合,提出了一种随机数复用机制:在掩码计算过程中,利用与当前敏感变量计算无关的、已缓存的中间值来替代原本需要实时生成的新随机数,从而降低整体随机数的消耗。门限方案作为一种被证实的有效抗侧信道攻击技术,已被广泛应用于PRESENT[9]、AES[10]和PRINCE[11]等分组密码算法中。
在安全性验证方面,早期主要使用探针模型[12]进行理论评估,但该模型未能考虑实际硬件电路中由毛刺导致的泄露。因此,Faust等[13]提出了毛刺扩展探测模型,用于评估存在毛刺及耦合错误场景下门限实现的安全性。随着毛刺扩展探测模型的提出,后续的门限方案均在此理论框架下开展安全性验证与优化设计。Shahmirzadi等[14]提出了一种无需额外随机数的毛刺扩展探针安全方案。该方案基于2个份额构建一阶门限实现,并已成功应用于AES、PRINCE等算法的S盒构造。Yao等[15]进一步优化了该方法,提出了一种针对替换层中二次函数的优化设计策略,在保证一阶毛刺扩展探测安全的前提下,有效降低了时钟周期与硬件面积开销。
SM4算法作为我国自主研发的首个分组对称加密算法,广泛应用于金融、物联网、通信等领域。随着应用范围的扩大,侧信道攻击对其安全性的威胁日益凸显,如何抵御侧信道攻击成为国内外学者关注的研究热点。2014年,谭锐能等[16]从架构优化角度出发,提出了一种SM4多路径乘法掩码方法,通过在轮函数中构建多条数据路径并改进S盒变换,在低硬件资源和功耗开销的前提下,有效消除了关键中间信息的泄露。2015年,梁浩等[17]提出了基于复合域求逆的S盒掩码防护方案。该方案通过理论分析和Matlab仿真验证,证明了其具备抗一阶相关功耗攻击的能力。2016年,裴超[18]设计了一种基于S盒查找表的随机掩码方案,该方法无须掌握S盒的具体代数结构,仅需对S盒进行随机行列变换即可实现,具有良好的普适性。2018年,李新超等[19]采用门限实现技术,构造了秘密共享函数来替代S盒仿射变换,并基于复合域重新设计了S盒结构,有效实现了对一阶DPA的防护。但该研究缺乏实际的侧信道安全验证实验。2022年,武小年等[20]基于S盒的复合域分解,提出了一种二共享门限掩码方案,通过电路重构与S盒复用降低了硬件开销,具备有效抵抗CPA攻击的能力。2023年,蒲金伟等[21]在门限实现的基础上,针对S盒非线性求逆运算提出了无随机数共享方案,引入面向域乘法掩码技术,显著降低了随机数消耗。同时,设计了一种8位数据位宽的SM4串行架构,具有抗一阶DPA攻击的防护能力。然而,多数现有设计仍主要针对传统探针模型,部分方案虽具备一定的抗毛刺能力,但缺乏在毛刺扩展探测模型下的形式化安全验证。因此,本文设计实现了一种在毛刺扩展探测模型下可证安全的SM4掩码防护方案。

1 相关理论和技术

1.1 SM4算法

SM4[22]是一种对称分组密码算法,分组长度和密钥长度均为128 bit。算法包含32轮非线性迭代运算和1次反序变换。
图1给出SM4算法加密流程, 在加密时,128 bit明文$ X $被分为32 bit分量$ ({X}_{0},{X}_{1},{X}_{2},{X}_{3}) $,在32 bit轮密钥$ r{k}_{i}\in (Z_{2}^{32}) $的作用下,经32次轮函数F和最后的反序变换,输出式(1)所示的加密结果Y
图 1 SM4算法加密流程

Fig.1 SM4 algorithm encryption process

$ Y=({Y}_{0},{Y}_{1},{Y}_{2},{Y}_{3})=({X}_{35},{X}_{34},{X}_{33},{X}_{32}) $
轮函数F结构见图1,其逻辑表达式见式(2)。
$ \begin{aligned} {X}_{i+4}&=F({X}_{i},{X}_{i+1},{X}_{i+2},{X}_{i+3})\\&={X}_{i}\oplus T({X}_{i+1}\oplus {X}_{i+2}\oplus {X}_{i+3}\oplus r{k}_{i})\end{aligned}$
其中,T是可逆变换,非线性变换τ和线性变换L可表示为$ T(\cdot )=L(\tau (\cdot )) $τ变换包含4个并行的8 bit S盒变换,每个S盒变换完成一个字节变换操作。具体操作如公式(3)所示。
$ \begin{aligned}B&=\tau (A)\\&=((S{\mathrm{box}}({a}_{0}),S{\mathrm{box}}({a}_{1}),S{\mathrm{box}}({a}_{2}),S{\mathrm{box}}({a}_{3}))\end{aligned} $
首先将32 bit的输入A分成4个8 bit分量的$ {a}_{0},{a}_{1},{a}_{2},{a}_{3} $,然后对每个8 bit做S盒变换即可输出32 bit的B
SM4解密流程和加密流程相同,仅轮密钥使用顺序相反。
线性变换L由异或操作和循环移位操作构成。L的具体形式如式(4)所示:
$ \begin{aligned} L(B)=&B\oplus (B \lt < \lt 2)\oplus (B \lt < \lt 10)\oplus\\& (B \lt < \lt 18)\oplus (B \lt < \lt 24)\end{aligned}$

1.2 毛刺探测模型

毛刺探测模型是Faust等[13]提出的一种形式化安全模型,用于评估掩码算法在侧信道攻击下的安全性。该模型与Ishai等[12]提出的传统探测模型类似,均假设攻击者可在电路任意位置放置至多d个探测点,以获取相关电路信号信息。然而,与传统探测模型不同的是,毛刺扩展探测模型充分考虑了硬件电路中可能产生的毛刺信号。
在传统探测模型中,攻击者重点关注电路理想状态下的信号行为,该模型主要适用于软件实现的安全性分析场景。然而,在CMOS器件构成的硬件电路中,信号时延不一致引发的毛刺与瞬态逻辑翻转问题,导致传统安全分析模型在评估底层硬件实现物理安全性时存在准确性不足的缺陷。相比之下,毛刺扩展探测模型充分考虑了这一硬件实际特性。该模型假定攻击者不仅能够获取电路稳态信号,还可捕获因电路时序偏差产生的瞬时毛刺信号。通过将单点探测扩展为对目标连线及其所有依赖计算信号(直至寄存器)的同步探测,可更为全面地评估毛刺等物理现象对电路安全性的影响,为硬件实现提供了更严苛、贴合实际的安全性评估标准。
基于该攻击模型,研究人员开发了SILVER[23]、MaskVerif[24]、Prover[25]等多款形式化验证工具,实现了对底层小规模电路安全性的自动化评估。本文提出的SM4一阶门限实现方案基于毛刺扩展探测模型设计,并借助SILVER工具完成了S盒的安全性验证。

1.3 门限实现

门限实现结合了多方计算和秘密共享的思想,是一种已被证明安全的侧信道防护方案,即使在毛刺环境下也能保证电路安全性。其核心思想是将输入变量x拆分成m个份额,并将输出函数f分解为n个分量函数,若这些函数满足以下条件,即可抵御d阶侧信道攻击。
1)正确性:假定输入变量x被拆分成m个份额$ {x}_{1},{x}_{2},\cdots,{x}_{m} $,输出函数f被分解为$ {f}_{1},{f}_{2},\cdot \cdot \cdot ,{f}_{n} $,则它们必须满足$ x=\displaystyle\sum_{i=1}^{m} x_{i} $$ y=f(x)=\displaystyle\sum \limits_{i=1}^{n}{f}_{i} $
2)d阶不完整性[2]:如果输入变量被拆分为d+1个份额,那么输出函数$ f(x) $的任意d个分量最多仅依赖于d个输入部分,即任意d个分量函数的组合至少独立于输入变量的某一份额。这意味着攻击者即便获取了 d个分量函数的信息,也无法据此恢复原始的敏感数据,从而确保了敏感数据的安全。
3)均匀性:输入x的每个份额都以相同的概率出现,同时输出函数 $ f(x) $ 的每个分量也呈均匀分布特性,即各份额在统计上是独立且均衡的。

1.4 COTG技术

在门限实现中,通常需要在分量函数中引入随机数,以确保输出的均匀性。然而,随机数的生成本身会消耗大量的资源,因此减少对随机数的依赖一直是门限实现中的重要研究方向。COTG技术,是Daemen等[8]在Keccak的门限实现方案中首次提出的一种优化方案,其核心思想是:通过使用与当前中间值计算无关的非敏感变量,替代部分或全部随机数的使用,从而有效减少门限方案对随机数的依赖。该方法被广泛应用于AES[26]、Ascon[27]等算法中。
例如,在S盒的门限实现中,假定S盒变换被分解为3个分量函数(S0S1S2)。那么,在m个S盒并行实现方案中,其3份额输入(aibici)经S盒映射为3份额输出(AiBiCi)的过程可以表示为式(5)。
$ \begin{cases} {A}_{i}={S}_{0}({b}_{i},{c}_{i}),i \gt 0\\{B}_{i}={S}_{1}({a}_{i},{c}_{i}),i \gt 0\\{C}_{i}={S}_{2}({a}_{i},{b}_{i}),i \gt 0\end{cases} $
然而,通过式(5)直接计算得到的输出份额(AiBiCi)可能无法满足均匀性要求。为了确保均匀性,就需要在式(5)的分量函数中引入随机数,这显然会额外增加随机数消耗成本。然而,若采用COTG技术(该过程的分量函数可表示为式(6)),可以将原本需独立生成的随机数替换为相邻S盒的一个输入份额。由于该份额在代数上不参与当前S盒的掩码计算,因而与当前输出份额的分布统计相互独立,从而保证了输出的均匀性,同时有效降低了对额外随机数的依赖。
$ \begin{cases} {A}_{i}={S}_{0}({b}_{i},{c}_{i})+{b}_{i-1}+{c}_{i-1},i \gt 0\\{B}_{i}={S}_{1}({a}_{i},{c}_{i})+{c}_{i-1},i \gt 0\\{C}_{i}={S}_{2}({a}_{i},{b}_{i})+{b}_{i-1},i \gt 0\end{cases} $

1.5 基于毛刺探测的(d+1)-share门限实现

文献[7]证明,采用最少d+1个输入份额的门限实现方案,就可以有效抵御d阶DPA攻击。该方案引入随机数,并通过寄存器将运算分隔为扩散层和压缩层两个部分,以防止毛刺现象的传播,从而提高系统的毛刺探测安全性。
例如,在一个简单的两输入与门$ y=f(a,b) $的门限实现中,假定其两份额输入为$ ({a}_{0},{a}_{1},{b}_{0},{b}_{1}) $,输出份额为$ ({y}_{0},{y}_{1}) $,则其分量函数$ {f}_{i} $可以写成式(7)所示的形式。
$ \begin{aligned}{f}_{0}({a}_{0},{b}_{0})&={a}_{0}{b}_{0}\rightarrow {x}_{0},\\{f}_{1}({a}_{0},{b}_{1})&={a}_{0}{b}_{1}+r\rightarrow {x}_{1},{x}_{0}+{x}_{1}={y}_{0}\\{f}_{2}({a}_{1},{b}_{0})&={a}_{1}{b}_{0}+r\rightarrow {x}_{2},{x}_{2}+{x}_{3}={y}_{1}\\{f}_{3}({a}_{1},{b}_{1})&={a}_{1}{b}_{1}\rightarrow {x}_{3},\end{aligned} $
其中,r为随机数。
在实际实现时,分量函数$ {f}_{i} $的运算部分,被称为扩散层,其结果$ {x}_{0} $,$ {x}_{1} $,$ {x}_{2} $,$ {x}_{3} $被存储到寄存器。然后在压缩层将分量函数压缩成$ {y}_{i} $。由式(7)可知,分量函数中必须添加随机数$ r $ ,若缺少该随机数$ r $,压缩后的各输出份额y0y1无法与输入份额$ ({a}_{0},{a}_{1},{b}_{0},{b}_{1}) $保持概率分布独立性。
为减少随机数消耗,文献[14]提出了一种搜索方法,通过为各分量函数fi动态添加一次项$ a{}_{0},{a}_{1}, {b}_{0},{b}_{1} $中的若干项,搜索出满足均匀性要求的分量函数组合$ {f}_{0},{f}_{1},{f}_{2},{f}_{3}, $ 可以在不引入随机数r的情况下确保门限方案满足毛刺探测安全性。例如,式(8)就是对式(7)优化后的形式,能够在不依赖随机数的情况下实现二份额与逻辑门限计算。
$ \begin{aligned}{f}_{0}({a}_{0},{b}_{0})&={a}_{0}{b}_{0}\rightarrow {x}_{0},\\{f}_{1}({a}_{0},{b}_{1})&={a}_{0}{b}_{1}+{b}_{1}\rightarrow {x}_{1},{x}_{0}+{x}_{1}={y}_{0}\\{f}_{2}({a}_{1},{b}_{0})&={a}_{1}{b}_{0}\rightarrow {x}_{2},{x}_{2}+{x}_{3}={y}_{1}\\{f}_{3}({a}_{1},{b}_{1})&={a}_{1}{b}_{1}+{b}_{1}\rightarrow {x}_{3},\end{aligned} $

2 低随机数依赖的SM4一阶门限实现方案设计

由于S盒是SM4算法中唯一的非线性操作,也是整体算法重点防护的部分。因此,本节先重点介绍基于二份额门限实现的S盒设计方法,随后,简要阐述SM4密码算法的整体防护架构。由于本节涉及变量较多,为方便理解,相关符号说明见表1所示。
表 1 符号说明

Table 1 Symbol description table

符号说明 含义
x=(x0, x1) 表示x由两个份额x0, x1构成
$ x_{i}^{k} $ 表示xi的第k bit
$ {{{x}^{\prime}}}_{} $ 表示x是1 bit变量
x||y xy拼接
$ {f}_{{{x}_{\text{i}}}} $ 函数fxi个分量函数
mi 用于刷新函数以满足联合均匀性的随机数,
且该随机数取自S盒或经复用得到
其中,m0~m7为1 bit,m8m9为4 bit
ri 用于刷新函数以满足联合均匀性的
新随机数,均为1 bit

2.1 一阶毛刺探测安全的S盒防护方案

本文提出的一阶毛刺探测安全的S盒防护方案,基于Canright[28]提出的塔域分解S盒结构(如图2所示)进行构建。该结构利用线性映射,将GF(28)域上的求逆运算转化为GF(24)域的运算,并进一步降阶为GF(22)域,可以有效降低运算复杂度并减少硬件实现面积。在此结构的基础上,本文采用2份额的门限实现方案,在毛刺探测模型下实现对一阶侧信道攻击的有效防护。如图3~图5所示,所提出的S盒结构包含6个处理阶段,各阶段之间以虚线进行分隔。
图 2 基于塔域分解的S盒结构

Fig.2 S-box structure based on tower field decomposition

图 3 S盒门限实现第1和第2阶段

Fig.3 First and second stages of the threshold implementation for S-box

图 4 S盒门限实现第3和第4阶段

Fig.4 Third and fourth stages of the threshold implementation for S-box

图 5 S盒门限实现第5和第6阶段

Fig.5 The fifth and sixth stages of the threshold implementation for S-box

第1阶段:如图3所示,该阶段接受2份额8 bit数据a=(a0a1),通过线性映射输出2份额8 bit数据b=(b0b1)。若将线性映射后的数据直接作为下一阶段的输入,可能被毛刺探针探测到输入的相关信息,从而造成信息泄露。为保障线性运算的安全性,需要将映射结果存储于寄存器中。
第2阶段:此阶段的输入为2份额的8 bit数据b=(b0b1),输出为16个1 bit数据x0',x1',x2',x3',y0',y1',y2',y3',z0',z1',z2',z3',t0',t1',t2',t3'。由于本阶段需在GF(24)域上完成平方缩放运算和乘法运算,需按高低位将8 bit输入变量bi (i∈[0,1])拆分为两个4 bit数据cidi
为减少随机数的消耗,本方案将输入为cidi的乘法运算与平方缩放运算进行合并,推导出式(9)所示的综合布尔表达式,并以此来计算4 bit输出$ x||y||z||t $
$ \left\{\begin{aligned} & x={f}_{x}(c_{i}^{3},c_{i}^{2},c_{i}^{1},c_{i}^{0},d_{i}^{3},d_{i}^{2},d_{i}^{1},d_{i}^{0})\\&\quad=c_{i}^{3}d_{i}^{0}+c_{i}^{1}d_{i}^{2}+c_{i}^{1}d_{i}^{0}+c_{i}^{2}d_{i}^{1}+c_{i}^{0}d_{i}^{3}+c_{i}^{0}d_{i}^{1}+c_{i}^{2}d_{i}^{2}\\&\quad+c_{i}^{3}d_{i}^{3}+c_{i}^{3}d_{i}^{1}+c_{i}^{1}d_{i}^{3}+c_{i}^{1}d_{i}^{1}+c_{i}^{2}+c_{i}^{0}+d_{i}^{2}+d_{i}^{0}\\&y={f}_{y}(c_{i}^{3},c_{i}^{2},c_{i}^{1},c_{i}^{0},d_{i}^{3},d_{i}^{2},d_{i}^{1},d_{i}^{0})\\&\quad=c_{i}^{3}d_{i}^{2}+c_{i}^{2}d_{i}^{3}+c_{i}^{2}d_{i}^{2}++c_{i}^{3}d_{i}^{1}+c_{i}^{2}d_{i}^{0}+c_{i}^{0}d_{i}^{2}\\&\quad+c_{i}^{1}d_{i}^{3}+c_{i}^{1}d_{i}^{1}+c_{i}^{0}d_{i}^{0}+c_{i}^{3}+c_{i}^{1}++d_{i}^{3}+d_{i}^{1}\\&z={f}_{z}(c_{i}^{3},c_{i}^{2},c_{i}^{1},c_{i}^{0},d_{i}^{3},d_{i}^{2},d_{i}^{1},d_{i}^{0})\\&\quad=c_{i}^{3}d_{i}^{2}+c_{i}^{3}d_{i}^{0}+c_{i}^{1}d_{i}^{2}++c_{i}^{2}d_{i}^{3}+c_{i}^{2}d_{i}^{1}+c_{i}^{0}d_{i}^{3}+c_{i}^{3}d_{i}^{3}\\&\quad+c_{i}^{3}d_{i}^{1}+c_{i}^{1}d_{i}^{3}+c_{i}^{1}d_{i}^{1}+c_{i}^{0}d_{i}^{0}++c_{i}^{1}+c_{i}^{0}+d_{i}^{1}+d_{i}^{0}\\&t={f}_{t}(c_{i}^{3},c_{i}^{2},c_{i}^{1},c_{i}^{0},d_{i}^{3},d_{i}^{2},d_{i}^{1},d_{i}^{0})\\&\quad=c_{i}^{3}d_{i}^{3}+c_{i}^{2}d_{i}^{2}+c_{i}^{3}d_{i}^{1}+c_{i}^{2}d_{i}^{0}+c_{i}^{0}d_{i}^{2}+c_{i}^{1}d_{i}^{3}\\&\quad+c_{i}^{0}d_{i}^{0}+c_{i}^{1}d_{i}^{0}+c_{i}^{0}d_{i}^{1}+c_{i}^{0}+d_{i}^{0}\end{aligned}\right. $
其中,$ x_{i}^{k} $表示xi的第kbit。
针对由4个代数表达式xyzt构成的综合表达式,设计满足毛刺探测安全的防护方案,需同时满足两个核心要求:一是确保扩散层的分量函数不泄露敏感信息,二是保证压缩层输出份额在无寄存器存储条件下满足联合均匀分布特性,确保输出变量独立于输入变量。
文献[14]提出的搜索算法可用于对表达式xyzt进行分解,可以确保每个分量函数最多只包含各输入变量的一个份额,从而防止敌手通过探测单个分量函数获取完整输入变量的信息。该搜索算法首先将二次函数拆分成4个包含特定二次项的分量函数fi,再将这4个分量函数两两分组,每组对应一个输出份额。对于每个分量函数,算法会遍历搜索其代数范式中所有可能的一次项(含一个变量的项)和二次项(含两个变量的项)的组合。在筛选过程中,输出分组必须同时满足安全性和均匀性要求。
以式(9)中x的计算为例。通过搜索算法可以将函数fx分解为式$ {f}_{{{x}_{0}}} $,$ {f}_{{{x}_{1}}} $,$ {f}_{{{x}_{2}}} $,$ {f}_{{{x}_{3}}} $然后将分组$ {f}_{{{x}_{0}}} $,$ {f}_{{{x}_{1}}} $$ {f}_{{{x}_{2}}} $,$ {f}_{{{x}_{3}}} $分别压缩生成x的两个份额x0x1。具体实现时,压缩阶段放在第3阶段。
然而,该算法生成的表达式虽满足单组函数的均匀性(如x0x1),但无法保证在无寄存器存储条件下整体输出份额的联合均匀性,即压缩后的输出份额(如x0x1y0y1等)的概率分布是不一致的,这导致其不满足一阶毛刺安全性要求。因此,本方案采用文献[15]中的方法,为x添加随机数m0对分量函数进行刷新,以满足联合均匀性要求。这样,x最终的分量函数可以写成式(10)所示的$ {{{x}^{\prime}}}_{0} $,$ {{{x}^{\prime}}}_{1} $,$ {{{x}^{\prime}}}_{2} $,$ {{{x}^{\prime}}}_{3} $的形式。
$ \begin{cases} {{{x}^{\prime}}}_{0}={f}_{{{x}_{0}}}+{m}_{0}\\{{{x}^{\prime}}}_{1}={f}_{{{x}_{1}}}+{m}_{0}\rightarrow {x}_{0}={{{x}^{\prime}}}_{0}+{{{x}^{\prime}}}_{1}\\{{{x}^{\prime}}}_{2}={f}_{{{x}_{2}}}+{m}_{0}\\{{{x}^{\prime}}}_{3}={f}_{{{x}_{3}}}+{m}_{0}\rightarrow {x}_{1}={{{x}^{\prime}}}_{2}+{{{x}^{\prime}}}_{3}\end{cases} $
同理,对表达式yzt的分解函数分别引入独立随机数m1m2m3进行刷新处理,确保函数输出xyzt满足联合均匀分布条件,从而实现一阶毛刺探测安全。
进一步,为降低随机数的生成和存储开销,本方案基于COTG技术,从同轮运算另一S盒的16 bit输入(该输入与当前S盒运算无逻辑依赖关系)中,提取4个不相关的1 bit数据作为图3中的m0m1m2m3,取代了原方案中需独立生成的随机数,从而有效减少了随机数的使用量。
第3阶段:该阶段如图4所示,接收16个1 bit数据$ {{{x}^{\prime}}}_{0} $,$ {{{x}^{\prime}}}_{1} $,$ {{{x}^{\prime}}}_{2} $,$ {{{x}^{\prime}}}_{3} $,$ {{{y}^{\prime}}}_{0} $,$ {{{y}^{\prime}}}_{1} $,$ {{{y}^{\prime}}}_{2} $,$ {{{y}^{\prime}}}_{3} $,$ {{{z}^{\prime}}}_{0} $,$ {{{z}^{\prime}}}_{1} $,$ {{{z}^{\prime}}}_{2} $,$ {{{z}^{\prime}}}_{3} $,$ {{{t}^{\prime}}}_{0} $,$ {{{t}^{\prime}}}_{1} $,$ {{{t}^{\prime}}}_{2} $,$ {{{t}^{\prime}}}_{3} $作为输入,经处理后,输出主要分为两部分:k的2个2 bit分量k0k1;8个1 bit数据$ {{{x}^{\prime}}}_{4} $,$ {{{x}^{\prime}}}_{5} $,$ {{{x}^{\prime}}}_{6} $,$ {{{x}^{\prime}}}_{7} $,$ {{{y}^{\prime}}}_{4} $,$ {{{y}^{\prime}}}_{5} $,$ {{{y}^{\prime}}}_{6} $,$ {{{y}^{\prime}}}_{7} $
具体处理流程如下:首先将第2阶段输出的16个分量函数,按图4所示每两个为一组进行异或压缩,生成8个1 bit的中间结果,接着将这些结果拼接为两组4 bit数据e0e1。随后对4 bit数据ei (其中i∈[0,1])按高低2 bit进行切分,得到$ {o}_{i} $$ {t}_{i} $
完成拆分后,在GF(22)域上并行计算$ {o}_{i} $$ {t}_{i} $的平方缩放和乘法运算。其中,GF(22)平方缩放运算生成k=(k0k1)。本阶段的核心在于GF(22)上的乘法运算,其代数表达式是一个二次布尔函数,如式(11)所示。
$ \begin{cases} {x}^{\prime}={f}_{{{x}^{\prime}}}({a}^{\prime},{b}^{\prime},{c}^{\prime},{d}^{\prime})={b}^{\prime}{c}^{\prime}+{a}^{\prime}{d}^{\prime}+{b}^{\prime}{d}^{\prime}\\{y}^{\prime}={f}_{{{y}^{\prime}}}({a}^{\prime},{b}^{\prime},{c}^{\prime},{d}^{\prime})={a}^{\prime}{c}^{\prime}+{b}^{\prime}{c}^{\prime}+{a}^{\prime}{d}^{\prime}\end{cases} $
其中,$ {a}^{\prime}||{b}^{\prime} $$ {c}^{\prime}||{d}^{\prime} $分别表示2 bit乘数和被乘数,$ {x}^{\prime}||{y}^{\prime} $为2 bit输出。
与前一阶段类似,首先对表达式进行搜索,以找到满足均匀性条件的($ {x}^{\prime} $$ {y}^{\prime} $)的分量函数。以$ {x}^{\prime} $为例,可以搜索得到式(12)中所示的$ {f}_{{{x}^{\prime}}0} $,$ {f}_{{{x}^{\prime}}1} $,$ {f}_{{{x}^{\prime}}2} $,$ {f}_{{{x}^{\prime}}3} $分量函数,随后,向各分量函数中添加随机数m4,并将结果存储至相应的寄存器中,以确保这两个函数输出能满足联合均匀性的要求。
$ \left\{\begin{aligned} & {f}_{{{x}^{\prime}}0}({{{a}^{\prime}}}_{0},{{{b}^{\prime}}}_{0},{{{c}^{\prime}}}_{0},{{{d}^{\prime}}}_{0})={{{b}^{\prime}}}_{0}{{{c}^{\prime}}}_{0}+{{{a}^{\prime}}}_{0}{{{d}^{\prime}}}_{0}+{{{b}^{\prime}}}_{0}{{{d}^{\prime}}}_{0}\\&{f}_{{{x}^{\prime}}1}({{{a}^{\prime}}}_{1},{{{b}^{\prime}}}_{1},{{{c}^{\prime}}}_{0},{{{d}^{\prime}}}_{0})={{{b}^{\prime}}}_{1}+{{{b}^{\prime}}}_{1}{{{c}^{\prime}}}_{0}+{{{a}^{\prime}}}_{1}{{{d}^{\prime}}}_{0}+{{{b}^{\prime}}}_{1}{{{d}^{\prime}}}_{0}\\&{f}_{{{x}^{\prime}}2}({{{a}^{\prime}}}_{0},{{{b}^{\prime}}}_{0},{{{c}^{\prime}}}_{1},{{{d}^{\prime}}}_{1})={{{b}^{\prime}}}_{0}{{{c}^{\prime}}}_{1}+{{{a}^{\prime}}}_{0}{{{d}^{\prime}}}_{1}+{{{b}^{\prime}}}_{0}{{{d}^{\prime}}}_{1}\\&{f}_{{{x}^{\prime}}3}({{{a}^{\prime}}}_{1},{{{b}^{\prime}}}_{1},{{{c}^{\prime}}}_{1},{{{d}^{\prime}}}_{1})={{{b}^{\prime}}}_{1}+{{{b}^{\prime}}}_{1}{{{c}^{\prime}}}_{1},+{{{a}^{\prime}}}_{1}{{{d}^{\prime}}}_{1}+{{{b}^{\prime}}}_{1}{{{d}^{\prime}}}_{1}\\&x_{4}^{\prime}={f}_{{{x}^{\prime}}0}+{m}_{4}+{m}_{5}\\&x_{5}^{\prime}={f}_{{{x}^{\prime}}1}+{m}_{4}\\&{x}_{3}=x_{4}^{\prime}+x_{5}^{\prime}\\&x_{6}^{\prime}={f}_{{{x}^{\prime}}2}+{m}_{4}+{m}_{5}\\&x_{7}^{\prime}={f}_{{{x}^{\prime}}3}+{m}_{4}\\&{x}_{4}=x_{6}^{\prime}+x_{7}^{\prime} \end{aligned}\right.$
需要注意的是,由于添加的随机数在份额异或运算后会相互抵消,而第3阶段中乘法器的输入包含了第2阶段的输入与输出份额,因此第3阶段中该乘法器的输入变量并不相互独立。为解决此问题,需要在$ {x}^{\prime} $的分解方案中添加额外的随机数m5进行刷新,以确保第3阶段的乘法器输入变量完全独立。对于$ {y}^{\prime} $表达式,采用与$ {x}^{\prime} $表达式相同的防护方案,同样引入随机数m6m7进行刷新处理。注意,上述4个单比特随机数(m4m5m6m7)同样基于COTG技术产生,这里不再赘述。
第4阶段:该阶段对应图4右侧部分,由GF(22)求逆模块和两个并行的GF(22)乘法模块构成,共消耗一个时钟周期。
该阶段的输入包括3个两份额变量k=(k0,k1),o=(o0,o1),t=(t0,t1)(每个份额为2 bit),以及8个1 bit数据$ {{{x}^{\prime}}}_{4} $,$ {{{x}^{\prime}}}_{5} $,$ {{{x}^{\prime}}}_{6} $,$ {{{x}^{\prime}}}_{7} $,$ {{{y}^{\prime}}}_{4} $,$ {{{y}^{\prime}}}_{5} $,$ {{{y}^{\prime}}}_{6} $,$ {{{y}^{\prime}}}_{7} $,其中oiti为第3阶段输入数据拆分后的值。
为防止毛刺现象,数据oiti两组值在每个时钟周期内均通过寄存器进行重新存储。经过本阶段处理后,最终输出16个1 bit数据$ {{{x}^{\prime}}}_{8} $,$ {{{x}^{\prime}}}_{9} $,$ {{{x}^{\prime}}}_{10} $,$ {{{x}^{\prime}}}_{11} $,$ {{{y}^{\prime}}}_{8} $,$ {{{y}^{\prime}}}_{9} $,$ {{{y}^{\prime}}}_{10} $,$ {{{y}^{\prime}}}_{11} $,$ {{{x}^{\prime}}}_{12} $,$ {{{x}^{\prime}}}_{13} $,$ {{{x}^{\prime}}}_{14} $,$ {{{x}^{\prime}}}_{15} $,$ {{{y}^{\prime}}}_{12} $,$ {{{y}^{\prime}}}_{13} $,$ {{{y}^{\prime}}}_{14} $,$ {{{y}^{\prime}}}_{15} $
具体实现时,首先将输入的8个1 bit分量函数每两个为一组进行异或压缩,生成4个1 bit的中间结果。随后按图4所示的方式拼接为两个2 bit份额g0g1,并将其与输入k0k1进行异或得到h0h1。接着将h0h1送入至GF(22)求逆模块中进行求逆,得到求逆的结果u0u1 ,并将其作为后续乘法器的输入。
在进入乘法器运算环节后,本阶段的两个并行GF(22)乘法器采用与前一阶段相同的防护策略,采用满足联合均匀性的分解函数方法,并分别引入随机数(r0,r1,r2,r3)与(r4,r5,r6,r7)对其进行刷新,将刷新后结果存入寄存器中。注意,这里的随机数ri和第1和第2阶段中的mi不同,它不是来自S盒的其他输入,而是新添加的随机数。
第5阶段:该阶段的操作如图5所示,主要包括两个GF(24)乘法运算单元,其运算仅需一个时钟周期即可完成。
该阶段输入为两个两份额变量c=(c0,c1),d=(d0,d1),以及16个1 bit数据$ {{{x}^{\prime}}}_{8} $,$ {{{x}^{\prime}}}_{9} $,$ {{{x}^{\prime}}}_{10} $,$ {{{x}^{\prime}}}_{11} $,$ {{{y}^{\prime}}}_{8} $,$ {{{y}^{\prime}}}_{9} $,$ {{{y}^{\prime}}}_{10} $,$ {{{y}^{\prime}}}_{11} $,$ {{{x}^{\prime}}}_{12} $,$ {{{x}^{\prime}}}_{13} $,$ {{{x}^{\prime}}}_{14} $,$ {{{x}^{\prime}}}_{15} $,$ {{{y}^{\prime}}}_{12} $,$ {{{y}^{\prime}}}_{13} $,$ {{{y}^{\prime}}}_{14} $,$ {{{y}^{\prime}}}_{15} $。输出为两组,共8个4 bit数据p0p1p2p3q0q1q2q3
这里需要说明,为防止毛刺传播,数据 cd自第2阶段起需通过寄存器逐级暂存,因此在进入第5阶段前共经历三级缓冲。
核心实现流程如下:首先对输入的16个1 bit数据进行异或压缩,分别得到中间结果。随后按图5所示进行拼接,得到两组4 bit数据v0v1,组成后续乘法器的输入。
接着,完成vc以及vd的GF(24)乘法运算。由于后续逆线性映射阶段为线性运算,各变量间无直接运算关系,故此阶段乘法器仅需满足联合均匀性要求即可。因此,本设计只需在两个乘法器中分别引入4 bit随机数m8m9即可满足安全性要求。
值得注意的是,最初通过COTG引入的1 bit随机数m0m1m2m3m4m6已分别在第2和第3阶段被异或操作抵消,且这些随机数与本阶段计算无关,故可安全复用。具体而言,m8m0m1m2m3拼接而成。类似地,m9可由m4m6与新添加的随机数r9r10拼接构成。
第6阶段:此阶段的输入为第5阶段寄存器缓存的8个4 bit数据,即p0p1p2p3q0q1q2q3。首先将输入数据按组进行异或压缩,输出得到2份额的4 bit数据n=(n0,n1)和l=(l0,l1)。具体如式(13)、(14)所示。
$ \begin{cases} {p}_{0}={v}_{0}{c}_{0} \\ {p}_{1}={v}_{0}{c}_{1}+{m}_{8}\\{p}_{2}={v}_{1}{c}_{0} \\ {p}_{3}={v}_{1}{c}_{1}+{m}_{8}\\{n}_{0}={p}_{0}+{p}_{1} \\ {n}_{1}={p}_{2}+{p}_{3}\end{cases} $
$ \begin{cases} {q}_{0}={v}_{0}{d}_{0} \\ {q}_{1}={v}_{0}{d}_{1}+{m}_{9}\\{q}_{2}={v}_{1}{d}_{0} \\ {q}_{3}={v}_{1}{d}_{1}+{m}_{9}\\{l}_{0}={q}_{0}+{q}_{1} \\ {l}_{1}={q}_{2}+{q}_{3}\end{cases} $
接着,将压缩后的4 bit份额按位拼接,得到2个8 bit数据s0=(n0||l0),s1=(n1||l1)。最后,对s=(s0,s1)进行逆线性映射操作,将数据从复合域转换回GF(28)域,从而获得S盒最终的2份额输出w=(w0w1)。

2.2 基于2-share的SM4一阶门限实现结构

本文提出的SM4门限实现方案采用二份额结构,整体架构如图6所示,主要包括密钥生成单元、加密处理单元,以及分别用于密钥生成和数据加密的两个独立部署的门限S盒。算法初始化时,系统引入随机数对初始的128 bit明文及密钥执行掩码操作,将其分别拆解为两份128 bit的数据份额,以此作为后续模块的输入。在加密操作启动前,密钥生成单元需经历9个时钟周期完成初始密钥的生成,随后将生成的密钥传递至加密处理单元,经过32轮循环运算后,最终输出加密结果。
图 6 2-shares的SM4一阶门限实现整体架构

Fig.6 Architectural framework of the first order threshold implementation for SM4 with two shares

2.3 基于COTG技术的随机数使用

为降低S盒防护方案中随机数的消耗,本文引入了COTG技术。由于本文仅使用单个S盒进行S盒变换,无法通过传统方法提取相同轮次并行的S盒输入来充当随机数。因此,本文采用多路选择器实现跨周期的掩码提取。在执行非线性变换τ阶段时,整体32×2 bit的输入数据被等分为4份8×2 bit的数据,并在第0~3个时钟周期内依次送入门限S盒模块进行处理。基于不同周期下S盒输入掩码与当前中间运算结果之间的数据独立性特征,本方案直接截取相邻时钟周期S盒输入的单路掩码(如第一份额的8 bit数据)充当Guards使用。具体如图7所示。此方法在有效减少随机数调用的同时,确保了单份额提取操作不会导致敏感信息的泄露。
图 7 S盒防护方案中Guards的添加方式

Fig.7 Method of adding Guards in the S-box protection scheme

3 安全性评估与硬件性能分析

3.1 S盒实现的安全性评估

为评估所设计方案的安全性,本文使用形式化验证工具SILVER对提出的SM4 算法S盒实现进行安全性验证。该工具能够基于不同安全模型(如探测安全、毛刺探测安全等) 评估加密电路的安全性。SILVER通过对现有设计网表中各逻辑门和连线的信号行为进行概率建模,在不修改原始设计的前提下,利用统计方法验证特定连线子集与输入敏感变量之间的统计独立性,从而判断是否存在敏感信息泄露的路径。
在SILVER验证前,本文采用NanGate 45 nm标准单元库,通过Synopsys Design Compiler进行逻辑综合并生成验证网表。为保证门限实现的非完备性特征,禁用了综合工具的跨模块优化选项。由图8 SILVER验证结果可知,本文设计实现的S盒一阶门限防护方案满足一阶毛刺探测安全性标准,且输入和输出掩码份额均具有联合均匀分布的性质。
图 8 SM4算法S盒实现的SILVER评估结果

Fig.8 Evaluation results of the SM4 algorithm S-box implementation using SILVER

3.2 SM4整体电路安全性评估

由于SM4算法采用迭代式结构,且其硬件电路复杂度较高,SILVER无法直接对其整体加密方案进行有效的安全性评估。为了评估SM4算法一阶防护方案的整体安全性,本文采用基于Welch’s t检测的TVLA(test vector leakage assessment)[29]技术对其进行验证。本实验采用搭载Spartan-6 FPGA的SAKURA-G评估板作为硬件测试平台,设置工作时钟频率为2 MHz。在波形采集阶段,利用PicoScope 3406D数字示波器以500 Msample/s的采样率,对密码模块加密时的功耗波形进行实时采集。
在使用TVLA评估电路整体安全性时,首先需要获取两种情况下的功耗数据:一种是明文固定不变的情况,另一种是明文随机变化的情况。随后,使用公式(15)计算检验统计量t的值。然后将计算得到的t值与预设的置信阈值进行比较,若某采样点的t值超出该范围,则可判断该点存在敏感信息泄露的风险。
$ t=\frac{{X}_{A}-{X}_{B}}{\sqrt{\dfrac{s_{A}^{2}}{{N}_{A}}+\dfrac{s_{B}^{2}}{{N}_{B}}}} $
在公式(15)中,符号中的下标AB分别代表待测的两个功耗样本集,XAXB分别表示对应的样本均值,SASB是样本方差,NANB是样本数量。
目前,Welch’s t检验在评测抗侧信道功耗攻击安全性时,业界普遍采用的置信阈值为$ \left| t\right| \gt 4.5 $。即如果t值在[−4.5,4.5]内,可认为系统具有抗侧信道攻击的能力,其置信度大于99.9999%。否则认为是不安全的。
为评估电路的整体安全性,为全面评估电路整体安全性,本文设置两组TVLA信息泄露对比实验:一组关闭伪随机数发生器(pseudo-random number generator,PRNG),一组开启PRNG。每组评估实验均采集10万条功耗曲线。图9图10分别给出了两组t值检验结果。
图 9 关闭PRN情况的一阶门限实现SM4防护方案的TVLA实验结果

Fig.9 TVLA results of a first-order threshold implementation of SM4 with PRNG disabled

图 10 打开PRNG情况的一阶门限实现SM4防护方案的TVLA实验结果

Fig.10 TVLA test results of a first-order threshold implementation of SM4 with PRNG enabled

3.3 硬件性能对比分析

本文硬件实现性能评估基于Synopsys Design Compiler工具,并采用NanGate 45 nm工艺库进行逻辑综合。表2给出SM算法不同门限实现的安全性和硬件性能对比。
表 2 SM4算法不同门限实现的安全性和硬件性能对比

Table 2 Comparison of security and hardware performance for different threshold implementations for SM4

方案 防护阶数 单个S盒面积( kGE) SM4面积( kGE) S盒随机数/bit 时延( CLK周期数) 加入密钥防护 安全模型
一阶探测 一阶毛刺探测
文献[17] 1 18.7 160 ×
文献[19] 1 28.0 58 160 ×
文献[21] 1 2.19 6.79 12 292 ×
本文 1 2.26 14.10 10 297
表2实验结果可知,基于COTG技术设计的S盒电路,对一阶毛刺探测模型具备可证明的安全防护能力。在随机数消耗方面,单轮S盒的随机数消耗量仅需10 bit,相比文献[19]和文献[21]的58 bit和12 bit方案,分别降低了82.8%和16.7%。然而,安全性提升也带来了相应的硬件开销增加。
时钟开销的增加主要源于硬件面积的折中设计,为有效缩减面积,各模块内部采用单S盒替代了传统的4个S盒并行架构,数据的分批输入与输出额外消耗了时钟周期。此外,考虑到SM4每轮加密均需实时调用轮密钥,若加密与密钥生成模块共享单一S盒将导致严重的串行等待,因此本方案选择在两模块中分别独立配置门限S盒。在面积开销方面,表现有所差异:单个S盒的面积较文献[21]增加了3.2%,而SM4整体面积相较文献[17]和文献[19]分别减少了24.6%和49.6%,但相较文献[21]则增加了107.7%。需要说明的是,文献[21]未对密钥生成模块提供防护,且其采用8 bit数据位宽的串行结构设计更为紧凑,因此面积较小。相比之下,本文方案虽然在面积上有所增加,但提供了对一阶毛刺探测的防护能力,有效提升了算法的抗侧信道攻击性能。

4 结束语

面向毛刺探测模型,本文构建了一种SM4算法的一阶二份额门限实现方案。该方案通过对乘法器进行分解构造,结合COTG技术,将S盒的随机数消耗压缩至10 bit,从而减少了系统对复杂随机数生成器的依赖。尽管在硬件实现层面引入了部分面积增加与时延开销,但SM4算法在该模型下的安全防护能力得到了显著增强。安全性验证结果表明,所提方案不仅在毛刺探测模型下具备可证明的安全性,且通过了基于Welch's t检验的一阶TVLA测试,可有效抵御一阶侧信道攻击。
后续研究将致力于在维持低随机数开销的前提下,进一步缩减整体防护方案的硬件实现面积。
1
Kocher P, Jaffe J, Jun B. Differential power analysis[C]// Advances in Cryptology—CRYPTO'99, 19th Annual International Cryptology Conference, Santa Barbara, CA, USA, 1999: 388-397.

2
Bellizia D, Scotti G, Trifiletti A. Fully integrable current-mode feedback suppressor as an analog countermeasure against CPA attacks in 40nm CMOS technology[C]//13th Conference on Ph. D. Research in Microelectronics and Electronics (PRIME). IEEE, 2017: 349-352.

Bellizia D, Scotti G, Trifiletti A. Fully integrable current-mode feedback suppressor as an analog countermeasure against CPA attacks in 40nm CMOS technology[C]//13th Conference on Ph. D. Research in Microelectronics and Electronics (PRIME). IEEE, 2017: 349-352.

3
Chari S, Rao J R, Rohatgi P. Template attacks[C]//International workshop on cryptographic hardware and embedded systems. Berlin, Heidelberg: Springer Berlin Heidelberg, 2002: 13-28.

Chari S, Rao J R, Rohatgi P. Template attacks[C]//International workshop on cryptographic hardware and embedded systems. Berlin, Heidelberg: Springer Berlin Heidelberg, 2002: 13-28.

4
Fuhr T, Jaulmes É, Lomné V, et al. Fault attacks on AES with faulty ciphertexts only[C]//2013 Workshop on Fault Diagnosis and Tolerance in Cryptography. IEEE, 2013: 108-118.

5
张舒琪, 李延斌, 王蓬勃, 等. 抗侧信道攻击的后量子密码掩码转换方案[J]. 网络空间安全科学学报, 2024, 2 (5): 44- 56.

DOI

Zhang S Q, Li Y B, Wang P B, et al. Mask conversion scheme on post quantum cryptographic for resisting side channel attacks[J]. Journal of Cybersecurity, 2024, 2 (5): 44- 56.

DOI

6
Nikova S, Rechberger C, Rijmen V. Threshold implementations against sidechannel attacks and glitches[C]//International Conference on Information and Communications Security. Berlin, Heidelberg: Springer Berlin Heidelberg, 2006: 529-545.

7
Reparaz O, Bilgin B, Nikova S, et al. Consolidating masking schemes[C]//Annual Cryptology Conference. Berlin, Heidelberg: Springer Berlin Heidelberg, 2015: 764-783.

8
Daemen J. Changing of the guards: a simple and efficient method for achieving uniformity in threshold sharing[C]//International Conference on Cryptographic Hardware and Embedded Systems. Cham: Springer International Publishing, 2017: 137-153.

9
Liu B, Tang M. MS‐LW‐TI: Primitive‐based first‐order threshold implementation for 4× 4 S‐boxes[J]. IET Information Security, 2024 (1): 8851878.

10
Dhooghe S, Shahmirzadi A R, Moradi A. Second-order low-randomness d+1 hardware sharing of the AES[C]//Proceedings of the 2022 ACM SIGSAC Conference on Computer and Communications Security. 2022: 815-828.

11
Dhooghe S, Ovchinnikov A. Threshold implementations with non-uniform inputs[C]//International Conference on Selected Areas in Cryptography. Cham: Springer Nature Switzerland, 2023: 97-123.

12
Ishai Y, Sahai A, Wagner D. Private circuits: Securing hardware against probing attacks[C]//CRYPTO 2003: Advances in Cryptology, Santa Barbara, USA, 2003: 463-481.

13
Faust S, Grosso V, Del Pozo S M, et al. Composable masking schemes in the presence of physical defaults & the robust probing model[J]. IACR Transactions on Cryptographic Hardware and Embedded Systems, 2018 (3): 89- 120.

DOI

14
Shahmirzadi A R, Moradi A. Reconsolidating first-order masking schemes: nullifying fresh randomness[J]. IACR Transactions on Cryptographic Hardware and Embedded Systems, 2021: 305-342.

15
Yao F, Chen H, Wei Y, et al. Optimizing AES threshold implementation under the glitch-extended probing model[J]. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 2024, 43 (7): 1984- 1997.

DOI

16
谭锐能, 卢元元, 田椒陵. 抗侧信道攻击的 SM4 多路径乘法掩码方法[J]. 计算机工程, 2014, 40 (5): 103- 108.

DOI

Tan R N, Lu Y Y, Tian J L. Multi-path multiplicative masking method of SM4 against side-channel attacks[J]. Computer Engineering, 2014, 40 (5): 103- 108.

DOI

17
梁浩, 乌力吉, 张向民. 基于复合域的SM4算法的设计与实现[J]. 微电子学与计算机, 2015, 32 (5): 16- 20.

DOI

Liang H, Wu L J, Zhang X M. Design and implementation of SM4 block cipher based on composite field[J]. Microelectronics & Computer, 2015, 32 (5): 16- 20.

DOI

18
裴超. 一种 SM4 掩码方法和抗 DPA 攻击分析[J]. 密码学报, 2016, 3 (1): 79- 90.

DOI

Pei C. A masking method of SM4 and analysis of anti-DPA attack[J]. Journal of Cryptologic Research, 2016, 3 (1): 79- 90.

DOI

19
李新超, 钟卫东, 张帅伟, 等. 一种基于门限实现的SM4算法S盒实现方案 [J]. 计算机工程与应用, 2018, 54 (17): 83-88.

Li X C, Zhong W D, Zhang S W, et al. A new threshold implementation of the S-box in SM4[J]. Journal of Cryptologic Research. 2018, 5(6): 641-650.

20
武小年, 李金林, 潘晟, 等. SM4算法门限掩码方案设计与实现[J]. 计算机应用研究, 2022, 39 (2): 572- 576.

DOI

Wu X N, Li J L, Pan S, et al. Design and implementation of threshold masking scheme for SM4 algorithm[J]. Application Research of Computers, 2022, 39 (2): 572- 576.

DOI

21
蒲金伟, 高倾健, 郑欣, 等. SM4抗差分功耗分析轻量级门限实现[J]. 计算机应用, 2023, 43 (11): 3490- 3496.

DOI

Pu J W, Gao Q J, Zheng X, et al. SM4 resistant differential power analysis lightweight threshold implementation[J]. Journal of Computer Applications, 2023, 43 (11): 3490- 3496.

DOI

22
吕述望, 苏波展, 王鹏, 等. SM4分组密码算法综述[J]. 信息安全研究, 2016, 2 (11): 995- 1007.

Lü S W, Su B Z, Wang P, et al. A review of the SM4 block cipher algorithm[J]. Information Security Research, 2016, 2 (11): 995- 1007.

23
Knichel D, Sasdrich P, Moradi A. SILVER-statistical independence and leakage verification[C]//International Conference on the Theory and Application of Cryptology and Information Security. Cham: Springer International Publishing, 2020: 787-816.

24
Barthe G, Belaïd S, Cassiers G, et al. maskverif: Automated verification of higher-order masking in presence of physical defaults[C]//European Symposium on Research in Computer Security. Cham: Springer International Publishing, 2019: 300-318.

25
Zhou F, Chen H, Fan L. Prover toward more efficient formal verification of masking in probing model[J]. IACR Transactions on Cryptographic Hardware and Embedded Systems, 2025 (1): 552- 585.

DOI

26
Gigerl B, Klug F, Mangard S, et al. Smooth passage with the guards: Second-order hardware masking of the AES with low randomness and low latency[J]. IACR Transactions on Cryptographic Hardware and Embedded Systems, 2024 (1): 309- 335.

DOI

27
Samwel N, Daemen J. DPA on hardware implementations of Ascon and Keyak[C]//Proceedings of the Computing Frontiers conference. 2017: 415-424.

28
Canright D. A very compact S-box for AES[C]//International Workshop on Cryptographic Hardware and Embedded Systems. Berlin, Heidelberg: Springer Berlin Heidelberg, 2005: 441-455.

29
郑震, 严迎建, 刘燕江. 侧信道能量信息测试向量泄漏评估技术[J]. 电子与信息学报, 2023, 45 (9): 3109- 3117.

DOI

Zheng Z, Yan Y J, Liu Y J. Test vector leakage assessment technique of side-channel power information[J]. Journal of Electronics & Information Technology, 2023, 45 (9): 3109- 3117.

DOI

文章导航

/