一种
抗差分
计算
分析
SM4
方案
原梓清
密码学报ISSN 2095-7025 CN 10-1195/TNJournal of Cryptologic Research,2023,10(2):386396密码学报编辑部版权所有.E-mail:http:/Tel/Fax:+86-10-82789618一种抗差分计算分析的白盒 SM4 方案*原梓清1,陈 杰1,21.西安电子科技大学 通信工程学院,西安 7100712.河南省网络密码技术重点实验室,郑州 450001通信作者:陈杰,E-mail:摘要:研究白盒密码的设计与分析对于保证密码算法在实际应用场景下的安全性具有重要意义.本文发现白鲲鹏等人提出的白盒 SM4 方案存在安全性漏洞,采用 Bos 等人的差分计算分析方法,可以在 8 分钟内恢复出整个初始密钥.基于非线性编码改进了该方案,可以抵抗差分计算分析.改进后方案需要的内存空间为 34.5 MB,各种查找表的白盒多样性的最小值为 2568.8,各种查找表的白盒含混度的最小值为2148.4,有效抵抗 Bos 等人的差分计算分析、潘文伦等人的攻击、BGE 攻击、林-来攻击、De Mulder 等人的攻击、MGH 攻击以及 Lepoint 等人的攻击.关键词:白盒密码;白盒实现;SM4 算法;旁信道分析;差分计算分析中图分类号:TP309.7文献标识码:ADOI:10.13868/ki.jcr.000601中文引用格式:原梓清,陈杰.一种抗差分计算分析的白盒 SM4 方案J.密码学报,2023,10(2):386396.DOI:10.13868/ki.jcr.000601英文引用格式:YUAN Z Q,CHEN J.A white-box SM4 scheme against differential computation analysisJ.Journal of Cryptologic Research,2023,10(2):386396.DOI:10.13868/ki.jcr.000601A White-box SM4 Scheme Against Differential Computation AnalysisYUAN Zi-Qing1,CHEN Jie1,21.School of Telecommunications Engineering,Xidian University,Xian 710071,China2.Henan Key Laboratory of Network Cryptography Technology,Zhengzhou 450001,ChinaCorresponding author:CHEN Jie,E-mail:Abstract:Design and analysis of white-box cryptography are of great significance for ensuring thesecurity of cryptographic algorithms in practical implementations.This paper reveals the securityvulnerability of the white-box SM4 scheme proposed by Bai Kunpeng et al.,the entire initial key canbe recovered within 8 minutes by the differential computation analysis(DCA)method of Bos et al.In order to resist differential computation analysis for the white-box SM4 scheme of Bai Kunpeng etal.,this paper proposes an improved scheme based on nonlinear coding.In the proposed scheme,thememory space requirement is 34.5 MB,the minimum value of white-box diversity of various look-uptables is 2568.8,and the minimum value of white-box ambiguity of various look-up tables is 2148.4.Theproposed scheme can effectively resist the differential computation analysis of Bos et al.,the attack*基金项目:陕西省自然科学基金基础研究计划(2021JM-126);河南省网络密码技术重点实验室研究课题(LNCT2022-A08)Foundation:Basic Research Program of Natural Science Foundation of Shaanxi Province(2021JM-126);OpenProject of Henan Key Laboratory of Network Cryptography Technology(LNCT2022-A08)收稿日期:2022-01-24定稿日期:2023-01-20原梓清 等:一种抗差分计算分析的白盒 SM4 方案387of Pan Wenlun et al.,the BGE attack,the Lin-Lai attack,the attack of De Mulder et al.,the MGHattack and the attack of Lepoint et al.Key words:white-box cryptography;white-box implementation;SM4 algorithm;side channelanalysis;differential computation analysis1引言传统密码算法假设运行环境是安全的,攻击者只能获取密码算法的输入输出,而无法得知密码算法的内部细节,此时的攻击模型为黑盒攻击模型.随着信息技术的快速发展,计算机、智能手机与互联网已被广泛应用于生产生活中,软件、视频、图像、音乐等数字产品被广泛传播.在这种情况下,数字产品的运行环境不再单纯可信,传统密码算法的安全性假设不再成立.因此,文献 1 中提出了白盒攻击模型的概念.在白盒攻击模型中,攻击者对运行密码算法的终端具有完全的控制力,可以直接观测或更改密码算法运行时的内部细节.为确保密码算法在白盒攻击模型中仍具有安全性,进而解决数字版权管理问题,文献 1 中提出了白盒密码的概念.白盒密码采取查找表等技术对密钥进行了混淆,即使攻击者对运行密码算法的终端具有完全的控制力,也不能提取密钥.在文献 1 中,Chow 等人还提出了一种将已有密码算法白盒化处理的方法,即将原密码算法修改为嵌入密钥的查找表网络,并对每个查找表的输入输出以及整个查找表网络的输入输出用混淆编码进行保护.基于此,Chow 等人设计了一个 AES 的白盒实现方案1以及一个 DES 的白盒实现方案2.此后的白盒实现方案大多沿用 Chow 等人的设计思路37.对白盒实现方案的安全性分析,目前主要有两种思路:一种是在纯白盒环境下,通过对算法内部细节的安全性分析找到漏洞,并采用查找表组合、仿射等价算法等手段消除混淆编码,对密钥相关的查找表进行分析并提取密钥.这类分析方法的典型代表有 Billet 等人提出的 BGE 攻击8、Michiels 等人提出的 MGH 攻击9、De Mulder 等人对肖-来白盒 SM4 方案的攻击10以及林婷婷等人对史扬白盒 SM4 方案的攻击11.另一种对白盒实现方案的分析思路,是在灰盒环境下,利用某些软件采集算法程序运行时泄露的信息,并采用相应的统计分析方法提取密钥.这类方法属于旁信道分析方法,分析时不需要洞悉密码算法的内部细节,对现有的白盒实现方案具有更高的实际威胁.近年来,针对白盒实现方案的旁信道分析方法不断得到完善1220,如今该类分析方法已成为检验白盒实现方案安全性的重要工具.本文利用差分计算分析13对白-武白盒 SM4 方案6进行安全性分析.分析表明,白-武白盒 SM4方案不能抵抗 Bos 等人的差分计算分析.为此,本文基于文献 14 的理论,采用非线性编码对白-武白盒SM4 方案进行了改进.改进后的白盒 SM4 方案能够抵抗 Bos 等人的差分计算分析、潘文伦等人的攻击、BGE 攻击、林-来攻击、De Mulder 等人的攻击、MGH 攻击以及 Lepoint 等人的攻击.2白-武白盒 SM4 方案白-武白盒 SM4 方案6针对标准 SM4 算法21采用随机的仿射变换进行编码,并应用查找表保护算法运行时的内部信息.该方案引入了较多的随机量,并且设计了更加复杂的内部编码和解码过程,这大大增加了该方案的分析难度.白-武白盒 SM4 方案的实现过程如下22:(1)根据密钥扩展算法,由 128 位的初始密钥生成 32 个 32 位的轮密钥 k1,k2,k32.(2)生成随机矩阵与随机向量:首先,生成 32 阶随机可逆矩阵 P0,P1,P35,E1,E2,E32,F1,F2,F32以及 32 位随机向量 pi,pi,j,pr+3,j,pr+3,j,er,0,er,1,er,5,fr,0,fr,1,fr,5.其中,i=0,1,35,i=0,1,34,j=0,1,2,3,r=1,2,32.3j=0pi,j=pi,3j=0pr+3,j=pr+3,3j=0pr+3,j=pr+3,pr+3 pr+3=pr+3,Er=diag(Er,0,Er,1,Er,2,Er,3),Fr=diag(Fr,0,Fr,1,Fr,2,Fr,3).然后按照以下步骤生成 16 位随机向量 ur,i:(a)计算 er=5i=0er,i,fr=5i=0fr,i.388Journal of Cryptologic Research 密码学报 Vol.10,No.2,Apr.2023(b)记 er=er,0er,1er,2er,3,fr=fr,0fr,1fr,2fr,3.(c)将 er,i,fr,i重组为 16 位向量 ur,i=er,ifr,i,其中 i=0,1,2,3,r=1,2,32.(3)用轮密钥、随机矩阵与随机向量生成查找表:第 r 轮,存储以下 16 个查找表(遍历 8 位的输入值 x 存储 32 位的输出值 y),具体过程可由式(1)式(7)表示.TCr,j:y=Pr+3(P1r1,j x P1r1 pr1,j)pr+3,j,j=0,1,2,3,(1)TAr,j:y=Er(P1r,j x P1r pr,j)er,j,j=0,1,(2)TAr,j+2:y=Er(P1r+1,j x P1r+1 pr+1,j)er,j+2,j=0,1,(3)TAr,j+4:y=Er(P1r+2,j x P1r+2 pr+2,j)er,j+4,j=0,1,(4)TBr,j:y=Fr(P1r,j+2 x P1r pr,j+2)fr,j,j=0,1,(5)TBr,j+2:y=Fr(P1r+1,j+2 x P1r+1 pr+1,j+2)fr,j+2,j=0,1,(6)TBr,j+4:y=Fr(P1r+2,j+2 x P1r+2 pr+2,j+2)fr,j+4,j=0,1.(7)遍历 16 位的输入值 x 存储 32 位的输出值 y 的 4 个查找表,可由式(8)表示.TDr,j:y=Pr+3 Mj S(E1r,jF1r,j)(x ur,j)kr,j)pr+3,j,(8)其中,r=1,2,32,j=0,1,2,3,(E1r,jF1r,j)是 8 16 矩阵,(E1r,jF1r,j)(x ur,j)表示将 16 位向量(x ur,j)的两个 8 位分量分别经