CN113940028A - 实现白盒密码的方法和装置 - Google Patents
实现白盒密码的方法和装置 Download PDFInfo
- Publication number
- CN113940028A CN113940028A CN202080039898.7A CN202080039898A CN113940028A CN 113940028 A CN113940028 A CN 113940028A CN 202080039898 A CN202080039898 A CN 202080039898A CN 113940028 A CN113940028 A CN 113940028A
- Authority
- CN
- China
- Prior art keywords
- box
- software application
- implementation
- mask
- field representation
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 239000002131 composite material Substances 0.000 claims abstract description 35
- 230000009466 transformation Effects 0.000 claims abstract description 12
- 230000015654 memory Effects 0.000 claims description 6
- 230000001419 dependent effect Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 28
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 24
- 230000006870 function Effects 0.000 description 18
- 239000011159 matrix material Substances 0.000 description 16
- 238000004364 calculation method Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 8
- 238000013507 mapping Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 101100379081 Emericella variicolor andC gene Proteins 0.000 description 2
- XEEYBQQBJWHFJM-UHFFFAOYSA-N Iron Chemical compound [Fe] XEEYBQQBJWHFJM-UHFFFAOYSA-N 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000010205 computational analysis Methods 0.000 description 2
- 238000013478 data encryption standard Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 239000000126 substance Substances 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- 102000001324 CD59 Antigens Human genes 0.000 description 1
- 108010055167 CD59 Antigens Proteins 0.000 description 1
- 101100391182 Dictyostelium discoideum forI gene Proteins 0.000 description 1
- 241001657585 Rudra Species 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 235000000332 black box Nutrition 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007728 cost analysis Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000003313 weakening effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9017—Indexing; Data structures therefor; Storage structures using directory or table look-up
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9027—Trees
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/16—Obfuscation or hiding, e.g. involving white box
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
Abstract
一种用于在软件应用中实现白盒块密码以创建与软件应用具有相同功能的安全软件应用的装置、方法和计算机介质。通过以下方式创建块密码的实现:应用原始有限域表示和复合域表示之间的同构,并使用所述同构将密码重构为仅使用复合域元素的操作,包括异或、线性变换和S‑box;将原始S‑box分解成几个代数步骤,并将这些步骤中的一些合并到密码的其他部分中;在S‑box的非线性步骤中,利用复合域表示中的算法实现原始有限域表示中的取逆;应用m个输入共享因子和n个输出共享因子的初始阈值实现来为S‑box的非线性步骤生成查找表;将进一步的阈值实现应用于密码的不同步骤以生成查找表。将块密码应用于软件应用的至少一部分,以创建安全软件应用,并且由此提高执行安全软件应用的计算平台的安全性。
Description
技术领域
本公开涉及白盒安全实现和可以应用于SM4编码方案的相关白盒密码。
背景技术
术语“密码学”指代在第三方存在的情况下用于安全通信的技术,第三方有时被称为“对手”或“攻击者”。可以构建防止第三方或公众读取私人消息的各种协议。密码学的应用包括电子商务、基于芯片的支付卡、数字货币、计算机密码和内容流。现代密码算法是围绕计算难度假设设计的,这使得这样的算法在实践中难以被任何对手破解。从理论上讲,打破这样的系统是可能的,但是为了阻止潜在的攻击者,这样做优选是不切实际的。
密码学的“黑盒”攻击模型基于如下前提:对手无法访问密码的内部操作及其使用的密钥,对手只能访问其输入和输出。该模型是大多数现代密码算法的开发和设计的基础,包括数据加密标准(DES)、高级加密标准(AES)和许多其他算法。然而,黑盒攻击模型的该前提,即攻击者无法访问设备的内部操作,不适用于许多现实世界的安全问题。
“白盒”攻击模型假设对手具有更高的可见性和控制水平。白盒攻击模型可以应用在许多更现代的实现中,在这些实现中,攻击者诸如在可能具有调试工具或安装了恶意软件的移动电话或个人计算机中可以具有对操作的完整可见性和控制。这提出了一个挑战,即开发对策以防止对手提取信息(诸如密码密钥)或影响操作从而在白盒模型中产生不期望的结果。因此,研究对白盒模型中的颠覆的对策变得越来越重要。
“White-box cryptography and an AES implementation”(Chow, S., Eisen,P., Johnson, H.和Van Oorschot, P.C.)密码学中所选领域国际研讨会,第250-270页(Springer,柏林,海德堡,2002年8月)描述了对白盒攻击的对策,并且从而使学术界普遍认识到白盒场景中的对策可能是可行的思想。白盒AES实现的一般思想是将秘密密钥隐藏在AES的S-box中,将AES分解成几个步骤,并插入秘密随机双射来混淆每个步骤。为了保持实现在功能上等同于AES,插入的部分最终将被取消。然而,AES白盒实现已经被成功攻击。2004年,Billet、Gilbert和Ech-Chatbi提出了一种对AES白盒实现的高效攻击(称为BGE攻击)。BGE攻击提取了工作因子为230的嵌入式AES密钥,并且所述攻击因此是一种实用的攻击。
许多专用的白盒实现是已知的。一些在白盒攻击环境中实现标准密码,并且一些人专注于各种非标准密码的设计,所述非标准密码预期在白盒攻击下是安全的。这样的密码被称为“白盒密码”。然而,针对白盒实现的密码分析研究已经取得了重大进展。一些攻击是白盒模型独有的,因为它们需要详细的结构来进行分析。这包括代数攻击,诸如BGE攻击。附加地,在某些场景下,“提升攻击”是可能的,因为确实需要确定密钥,因为提升的算法可以用作预言机,并且随机性的源可以被覆盖。
诸如DPA(差分功率分析)之类的“灰盒”攻击已经以DCA(差分计算分析)的名义被重新利用,并且可以重新评估在白盒场景中的有效性。例如,简单共享方案的优势是,当没有噪声时,共享因子(share)数量的功率丢失,从而增加了必须收集用于分析的轨迹数量,白盒场景中就是这样的情况。保留了这些对策的一些益处。任何设计良好的共享方案、包括用于对抗由于硬件电子脉冲(glitch)引起的泄漏的阈值方案都提供了一些优势,因为通过隐藏直接相关性使得标识信息泄漏变得更复杂。
由于其流行性,AES一直是分析和对策的焦点,并且文献中已经公布和分析了AES的几种白盒实现。SM4是较新的标准化密码,并且在白盒环境中没有得到太多分析。SM4是无线LAN WAPI的中国国家标准中使用的块密码(block cipher)。SM4算法由Lu Shuwang发明,并于2016年8月成为中国国家标准(GB/T 32907-2016)。SM4密码具有大小为128位的块(block)。它使用8位S-box,并且密钥大小为128位。唯一使用的操作是32位按位异或、32位循环移位和S-box应用。一个数据的块的加密或解密由32轮组成。每一轮更新内部状态的四分之一(即32位)。非线性密钥调度用于产生轮密钥。解密使用与加密相同的轮密钥,只是它们的顺序相反。SM4的圆形结构与AES具有几个相似之处,包括由有限域中的取逆确定的8位S-box,然后是在四个S-box的输出之间进行的线性扩散。
第一个白盒SM4实现由Xiao, Y.、Lai, X.的“White-Box Cryptography and aWhite-Box Implementation of the SMS4 Algorithm”(上海交通大学:中国上海,2009年,第24-34页)提出。Xiao等人的密码在类似BGE攻击的攻击中被证明是不安全的。另一个白盒SM4实现方案是在Shi, Y.、Wei, W.和He, Z.的“Lightweight White-box SymmetricEncryption Algorithm Against Node Capture for WSNs”(Sensors, 15(5), pp.11928-11952, 2015)中提出的。该实现使用对偶密码的概念和随机选择的非奇异矩阵来构造SM4的功能等同的白盒加密算法。Lin, Tingting等人的“Security Evaluation andImprovement of a White-Box SMS4 Implementation Based on Affine EquivalenceAlgorithm”(The Computer Journal 61.12: 1783-1790, 2018)对该实现进行了分析,并描述了可以如何使用仿射等价算法来提取密钥。
发明内容
本文描述的实现是可以应用于SM4的白盒实现。以一种新颖的方式应用技术来创建抵抗白盒攻击的固定密钥SM4的实际实现。所述技术包括使用通过S-box结构使其可能的复合域,用4位中间变量重新表述整个密码以减小总表大小,专用查找表,以及应用阈值方案,其中在生成共享因子时使用处理状态的其他部分来生成共享因子。本文描述的白盒SM4实现抵抗已知的白盒攻击,诸如仿射等价攻击、类BGE攻击和类DCA攻击。
一种实现包括一种用于在软件应用中实现白盒块密码以创建与软件应用具有相同功能的安全软件应用的方法、装置或计算机可读介质,该方法包括通过以下各项创建块密码的实现:
在原始有限域表示和复合域表示之间应用同构,并使用该同构将密码重构为仅使用复合域元素的操作,包括异或、线性变换和S-box;将原始S-box分解成几个代数步骤,并将这些步骤中的一些合并到密码的其他部分中;在S-box的非线性步骤中,利用复合域表示中的算法实现原始有限域表示中的取逆;应用m个输入共享因子和n个输出共享因子的初始阈值实现来为S-box的非线性步骤生成查找表;将进一步的阈值实现应用于密码的不同步骤以生成查找表;和
将块密码应用于软件应用的至少一部分,以创建安全软件应用,并且由此增加执行安全软件应用的计算平台的安全性。
附图说明
下面将结合附图描述本发明的实现,其中:
图1是根据公开的实现的关于一轮SM4块密码的框图;
图2是根据所公开的实现的SM4中的逐字节操作示例的框图;
图3是根据所公开的实现的由阈值实现生成的查找表的框图;
图4是根据所公开的实现的第一轮的一个分支的处理的框图;
图5是根据所公开的实现的用于掩码生成的查找表的框图;
图6是基于图5的查找表的掩码生成的框图;
图7是根据所公开的实现的计算步骤的框图;
图8是根据所公开的实现的计算步骤的框图;
图9是根据所公开的实现的计算步骤的框图;
图10是根据所公开的实现的计算步骤的框图;
图11是根据所公开的实现的用于创建T-box的过程的框图;
图12是根据所公开的实现的查找表的框图;
图13是根据所公开的实现的第二轮的第一分支的计算的框图;
图14是根据所公开的实现的掩码消除数据流的框图;
图15是根据所公开的实现的第三轮的第一分支的计算的框图;
图16是根据所公开的实现的第三轮的第一分支的加法操作的计算的框图;
图17是根据所公开的实现的第四轮的第一分支的计算的框图;
图18是根据所公开的实现的第四轮的第一分支的加法操作的计算的框图;
图19是根据所公开的实现的改变的查找表的框图;
图20是根据所公开的实现的密文恢复计算的框图;
图21是根据所公开的实现的“类型II表”的框图;
图22是根据所公开的实现的“类型III 表”的框图;
图23是根据所公开的实现的“类型Iv表”的框图;
图24是根据所公开的实现的针对单个列的组合查找表的框图;
图25是根据所公开的实现的简化的T-box的框图;
图26是根据所公开的实现与8×16表组合的4个T-box的框图;
图27是根据所公开的实现用于执行功能的架构的示意图;
图28是根据所公开的实现的高级方法的流程图。
具体实施方式
在描述公开的实现的新颖方面之前,将更详细地描述SM4。SM4被选择用在有线认证和隐私基础设施(WAPI)标准中,在中国获得官方授权,并且在为WLAN产品提供数据机密性方面发挥重要作用。SM4具有128位密钥大小、128位块大小和32轮不平衡Feistel网络结构。令 是明文,是轮密钥。然后,图1中的100示出了SM4加密操作。如所示,输入的是明文。然后,对于:
所得到的输出,密文是:
其中:
○ 解密过程与加密过程相同,只是使用轮密钥的顺序相反。
同构映射和操作表示取决于域多项式和不同的基。我们在每个级别自由选取任一类型的基。和之间的同构映射可以以已知的方式找到,诸如由以下各项教导的:Rudra, A., Dubey、P.K., Jutla、C.S., Kumar、V., Rao, J.R.和Rohatgi, P.的“Efficient Rijndael Encryption Implementation with Composite FieldArithmetic”(国际密码硬件和嵌入式系统研讨会,第171-184页,Springer,柏林,海德堡,2001年5月);Paar, C. 的“Efficient VLSI Architectures for Bit-parallelComputation in Galois fields”(实验数学研究所博士论文,埃森大学,1994年);和Wong,M.M.、Wong, M.L.D.、Hijzin, I.和Nandi, A.K.的“Composite field GF (((2 2) 2) 2)AES S-box with Direct Computation in GF (2 4) Inversion”(亚洲信息技术(CITA11),2011年第7届国际会议,第1-6页,IEEE)。诸如乘法和乘法逆的用于表示操作的已知方法的细节可以在Canright, D.的2005年8月的“A Very Compact S-box for AES”(密码硬件和嵌入式系统国际研讨会,第441-455页,Springer,柏林,海德堡,2011年7月)中找到。
阈值实现是众所周知的侧信道攻击对策,如由Nikova, S., Rechberger, C. andRijmen, V. December的“Threshold implementations Against Side-channel Attacksand Glitches”(国际信息和通信安全会议,第529-545页,Springer,柏林,海德堡。2006年12月)教导的。这样的攻击基于秘密共享和多方计算。在公开的实现中,使用了阈值系统,该系统需要n个函数f i 的集合来计算函数f的输出。n个函数f i 的输出的集合被称为输出共享因子。
○ 特性2(正确性)。共享因子的总和给出了期望的输出。
输入共享因子和输出共享因子的数量影响阈值实现的特性。例如,如果在针对每个输入X、Y和Z有三个共享因子的情况下应用阈值实现,并且对于函数有三个输出共享因子,则不保证一致性。如何为此类函数创建阈值实现的细节是众所周知的,并且本文不进一步讨论。例如,更多的细节和构造可以在以下各项中找到:Bilgin B、Nikova S、Nikov V、Rijmen V、Stütz G的“Threshold implementationsof all 3×3 and 4×4 S-boxes”(加密硬件和嵌入式系统国际研讨会,9,第76-91页,Springer,柏林,海德堡,2012年9月);Nikova, S.、Rechberger, C. 和Rijmen, V.的12月“Threshold Implementations Against Side-channel Attacks and Glitches”(信息和通信安全国际会议,第529-545页,Springer,柏林,海德堡,2006年12月);Nikova, S.、Rijmen, V.和Schläffer, M.的“Secure Hardware Implementation of Non-linearFunctions in the Presence of Glitches”(信息安全和密码学国际会议,第218-234页,Springer,柏林,海德堡,2008年12月)。所公开的实现使用TI来指示阈值实现。
在详细描述所公开的实现之前,下面讨论几种技术。Chow, S.、Eisen, P.、Johnson, H. 和Van Oorschot, P.C.的“White-box cryptography and an AESimplementation”(密码学中所选领域国际研讨会,第250-270页,Springer,柏林,海德堡,2002年8月)教导了S-box的代数结构可以表示为:
其中
然而,申请人发现这与SM4的S-box表不匹配。因此,矩阵A 2 和不可约多项式以一种新颖的方式被修改。验证示出,以下参数和不可约多项式将正确生成SM4 S-box的查找表:
可以注意到,多项式仅仅是互反多项式(相反的系数),并且C 1 、A 2 和C 2 是相同的,但是矩阵A 2 实质上是不同的。
在每轮中,并行应用四个8位S-box,并且线性变换L可以表述为8×8矩阵组成的块矩阵。这允许整个SM4操作以用字节范围的操作来表述。32×32线性变换L表述为8×8矩阵的4×4块矩阵:
每轮中的32位输入/输出和轮密钥表示为四个字节的级联,各自为:
例如,如果密钥字节固定在S-box中,则可以利用图2中200所示的过程来计算X4的第一个字节。在图2中最终异或之前的并行四个逐字节操作序列(分别为201、202、203和204)在本文被称为四个“分支”。
1.当生成表时,将输入X的每个可能值随机拆分成m个共享因子。输入X的共享因子的集合是,其中它们中的m-1个是从伪随机数生成器(PRNG)生成的随机值(例如),并且最后一个共享因子由 计算。与Y、Z等相同。注意,输入共享因子仅在表的生成中使用,但是查找表的输入是X、Y、Z…。
2.给定函数F i ,利用以下各项计算n个输出共享因子:
如上所述,假设存在这样的阈值实现,并且TI用于指示应用了阈值实现。
可以对所有可能的输入X、Y、Z…重复步骤1和2,以获得对应的输出共享因子。图3中所示的查找表是基于输入及其对应的输出共享因子生成的。本文用虚线框标示查找表。
为了提供对诸如仿射等价攻击、BGE攻击和类DCA攻击之类的现有白盒攻击的抵抗,所公开的实现可以基于以下规则来创建:
1.应用掩码的方式(至少在S-box上)不应该是仿射的。
2.掩码可以是数据相关的。
3.算法的结构应该尽可能模糊。
4.白盒SM4实现中和标准SM4中每个步骤的输出之间的相关性不能用于应用分析。
5.每个掩码可以取决于倒置树结构中较早的掩码。
在所公开的实现中,每个中间变量被拆分成四位半字节。在将SM4中的操作(诸如异或、移位和S-box)划分成几个步骤的情况下,将处理4位数据以及掩码,并且将生成对应的查找表。阈值实现用于扩展一些查找表的输出空间,并且同时产生掩码。对S-box中的4位数据应用同构映射来模糊内部操作。整个加密仅由查找表组成,不需要其他计算。
在第一轮中,描述了实现图2的第一分支的示例。其他分支可以以类似的方式实现。如图4中所示,选择每个输入的4个共享因子和3个输出共享因子的阈值实现,并将其应用于生成图5中所示的查找表500的函数。每个输入划分成两个四位半字节:。使用查找表,掩码从和生成,并且掩码从和生成,其中 。数据流在图6中的600处描绘,在这两种情况下使用相同的表。
为了计算和,加法是通过几个步骤完成的。在每个步骤中,取消一些掩码并添加新的掩码。首先,函数用于生成查找表。使用查找表,我们得到和,其中r和i与之前相同。该数据流在图7中的700处描述,其中相同的表被使用两次。注意,表的生成不特定于变量,但是数据流是利用该示例中使用的特定变量示出的。
然后,选择每个输入的2个共享因子和2个输出共享因子()的阈值实现,并将其应用于函数,以生成的查找表。使用查找表,我们从得到,并且从得到,其中r和i与之前相同。该数据流在图8中的800处示出。接下来,选择每个输入的4个共享因子和3个输出共享因子()的阈值实现,并将其应用于函数,以生成的查找表。使用查找表,我们从得到,并且从得到,其中r和i与之前相同。该数据流在图9中的900处示出。因此,我们从左侧数据流得到 并且从右侧数据流得到 。
如以上指出的,固定密钥S-box的代数结构可以表示为:
令
可以为函数生成六个查找表:
图10的数据流1000示出了该计算。从左手边的数据流中,我们得到:
标准S-box的剩余部分可以计算为:
现在可以使用图11中所示的数据流1100创建T-box。掩码数据和是T-box的输入。为了混淆T-Box的输入和输出之间的关系,利用阈值实现创建了查找表。然而,为具有8位输入的逆函数构造均匀的阈值共享因子是不切实际的,因此使用同构将8位操作映射到所选复合域的4位操作。当取逆完成时,将用于将值映射回到域。利用以下步骤,为所有可能的输入和对应的输出生成查找表T-box。在图11的步骤1中,通过计算和来抵消来自和的掩码。我们得到的y。在图11的步骤2中,计算。在图11的步骤3中,在复合域中计算。然后同构映射T被用于将标准8位值变换成复合域中的两个4位值。申请人已经实现了寻找T的程序,并且实验示出存在120个2次不可约多项式,并且对于每个,存在128个从到的映射。因此,对于T存在15360个候选。每个T都是8×8可逆矩阵。选取一个,并在图11的步骤4中计算。在图11的步骤5中,和被计算为的逆。由于选取了多项式基和,的逆由下式给出:
其中是的4×4块矩阵,是的前4位半字节的三个共享因子,是的后4位半字节的三个共享因子。计算和,其中。该矩阵用于将复合域的两个4位值变换回标准的8位值;和分别是SM4的仿射变换的线性和常数部分。结果是我们从第一分支获得了六个掩码值。利用上面小节中使用的相同方法,针对剩余三个分支我们得到()。为了计算,我们将与每个分支的输出相乘并将它们相加到一起:
令
对于第二轮,也使用该轮的第一分支,如图13中的1300所示,作为示例。在该分支中,除了加法操作之外,所有的步骤都与第一轮的第一个分支相同。由于 是掩码数据,因此在加法操作中应该取消掩码。查找表仅在步骤3中改变,即使用4个输入共享因子和3个输出共享因子的阈值实现()来计算和。该数据流在图14中的1400处描绘。该轮的结果是:
图15在1500图示了第三轮的第一分支的数据流。该轮的第一个分支如下,并且如图16中的1600所示。与第二轮类似,除了加法操作外,所有步骤与第一轮的第一个分支相同。由于和是掩码数据,因此可以在该部分中取消掩码。我们仅在步骤2中改变查找表,即使用2个输入共享因子和2个输出共享因子的阈值实现()来计算和。
该轮的结果是:
第五轮的第一分支的处理如图17的1700所示。与第二轮和第三轮类似,除了加法操作之外,所有步骤都与第一轮的第一个分支相同。如在图18的1800处所示,在此重复使用在前几轮中生成的查找表。该轮的结果是:
对于剩余的轮次,除了在计算和的剩余三个字节中之外,数据流与第四轮相同。因为在第五轮中,所有输入都是掩码数据。第五部分中的二输入查找表:计算可以改变为三输入查找表,以取消附加的掩码,并且其他查找表保持相同。第一个半字节用作示例,并且图19指示了1900处改变的表和数据流。对于其他半字节,可以用类似的方式改变查找表。
现在可以为八个函数构建八个查找表,如图20的2000所示:
结果是以下密文:
任何白盒实现的一个重要准则是性能。下面评估上述实现的性能。作为第一步骤,通过以下算法评估查找表的存储成本。
在部分V:计算X40和部分VI:X4的剩余三个字节中,对于一个分支存在32个查找表。四轮之后,必须添加八个查找表。
存储成本为。如上面指出的,该实现具有276个查找表。后两部分具有最高的存储要求。在部分IV中:创建T-box,为每个密钥字节生成T-box,以将密钥保存在算法的唯一非线性组件中。为了降低存储要求,可以将密钥字节从T-box中移除,并嵌入到小的查找表中。影响是针对所有回合和所有分支将仅存在一个T-box。降低存储需求的另一种方法是使用矩阵操作,而不是部分V:计算X40和部分VI:X4的剩余三个字节中的查找表。这两种方法都以安全性换取性能。上述存储成本分析是在PC(CPU E3-1240 v5 @ 3.50GHz,内存:16GB)上进行的。实验示出,该实现的吞吐量为119KB/s。
不言而喻,块密码的首要标准是安全性。感兴趣的三种主要密码系统攻击模型包括黑盒攻击、灰盒攻击和白盒攻击。黑盒是常规的攻击模型,其中对手仅具有对密码系统的输入和输出的访问权。作为官方的加密标准,SM4在抵抗诸如差分和线性攻击之类的经典块密码攻击方面具有良好的性能。
“灰盒”是一种攻击模型,其中对手可以使用泄露的信息来部署侧信道密码分析。不同的泄露信息可以导致不同的灰盒攻击。DCA(差分计算分析)是针对密码系统白盒实现的强有力的侧信道攻击。DCA成功的主要原因是期望值(来自标准密码规范)和掩码中间值(来自白盒实现)之间不可忽略的相关性,这是由白盒实现中使用的编码中的线性不平衡引起的。所公开的实现是抗DCA的,因为当输入均匀分布时,来自阈值实现的输出均匀分布,因此SM4和其白盒实现之间的数据相关性被削弱。
在白盒攻击模型中,实际的对称加密实现通常无法找到严格的安全证明。代替将白盒安全性降低到解决计算上不可行的数学问题,白盒实现的安全性是通过检查它对已知攻击是否安全来评估的。下面评估所公开的实现对抗两种众所周知的白盒攻击(BGE攻击和仿射等价攻击)的安全性。
除了灰盒攻击之外,针对白盒实现的最早的攻击是BGE攻击。该攻击最初是为了恢复Chow等人的白盒AES实现的轮密钥而构建的。白盒AES实现包括几个表述(外部输入和输出编码除外):
1.通过利用T-box替换每个S-box,将轮密钥嵌入S-box中:
3.为了保护,在之前插入8×8仿射“混合”双射,并且在之后插入32 × 32仿射双射MB。同时,级联非线性置换被用于解码/编码4位输入/输出,并被称为输入解码/输出编码。结果得到的查找表被命名为类型II表,并在图21中的2100处示出。为了消除MB的影响,查找表负责取逆。MB的逆被预先乘以适当的四个混合双射的逆,并被拆分成四个子映射。该查找表被命名为类型III表,并在图22中的2200处示出。
5.来自一列的四个字节与前面的步骤并行处理,并与异或操作相组合,并且称为类型IV表,如图23中2300所示。
BGE攻击过程总结如下。
阶段5。使用相同的方法恢复轮的轮密钥字节。
BGE攻击的两个基石是阶段2和阶段3。阶段3的关键点是和之间仿射关系的存在。为了对所公开的实现应用类似BGE的攻击,检查两个阶段。由于在实现中不使用非线性编码,因此可以跳过阶段2。对于阶段3,应该考虑构造函数集。函数是依赖于密钥的,因此必须包括T-box。
考虑到T-box本身。和都不能表示为输入的函数。T-box 2500的输入和输出如图25中所示。在不失一般性的情况下,通过删除一些下标来简化图25的T-box2500。和是用和计算的,它们是来自阈值实现的输出。基于阈值实现的特性1,每个输出都独立于输入变量中的每个的至少一个共享因子。换句话说,输入与和中的每一个之间不存在函数关系。用于计算和的函数使用作为输入,这意味着或中的每一个不具有与输入的函数关系。因此,以T-box结尾的查找表的任何组合都不能用于构造具有仿射关系的函数集。
T-box后面的查找表是上面的部分V中生成的两组16个表。为了抵消阈值实现的影响,我们可以将四个T-box与来自四个分支的个表相组合,如图26中的2600所示。可以获得函数集,并且容易证明该集的函数具有仿射关系。然而,注意到,是12位输入,这与的输入大小不匹配。因此,S-box在函数上的影响不能被抵消,并且在阶段4中攻击失败。
现在看仿射等价攻击抗性。对于两个S-box 和,仿射等价算法的目的是测试是否存在两个可逆的矩阵和,以及两个n维向量和,使得。在Biryukov, A.、De Canniere, C.、Braeken, A.等人的“A Toolbox for Cryptanalysis: Linear and Affine Equivalence Algorithms”(密码学进展-欧洲密码2003,第33-50页,Spring,柏林海德堡,2003年5月)中,提出了解决仿射等价问题的几种算法。通常,非线性变换或仿射映射被用来模糊S-box。由于BGE攻击中的阶段2可以用于移除变换的非线性部分并保留仿射部分,因此模糊的S-box(在本文称为T-box)可以近似等同于原始S-box。因此,仿射等价算法是对大多数常规白盒实现的高效攻击。然而,这样的仿射等价攻击不适用于所公开的实现,因为T-box的输入和输出的大小分别是12位和24位,这与标准S-box的大小不同,并且矩阵和将是非正方形的。
常规的白盒实现将SM4拆分成几个步骤,并使用仿射变换来保护每个步骤。然而,上述公开的实现采用了不同的方法。S-box拆分为两个步骤,从而模糊了S-box的边界,并有助于在密钥嵌入S-box中时保护密钥。其次,中的元素和操作被映射到复合域,这增加了标识原始操作的难度。第三,使用了阈值实现技术,削弱了白盒实现和标准SM4之间的相关性。这些技术共同保护SM4免受类BGE攻击、仿射等价攻击和DCA攻击。下面的表1比较了公开的实现和常规的实现。虽然所公开的实现具有较大的存储需求,但是它在抵抗流行的白盒攻击方面具有良好的性能。
表1.WB-SM4实现之间的比较
* Xiao, Y.; Lai, X.的“White-Box Cryptography and a White-BoxImplementation of the SMS4 Algorithm”;上海交通大学:中国上海,2009年,第24-34页。
** Shi, Y.、Wei, W.和He, Z.的“lightweight white-box symmetricencryption algorithm against node capture for WSNs”,传感器,15(5),第11928-11952页,2015年。
所公开的实现基于复合域和阈值实现。该实现在4位半字节上工作,而不是在字节上工作。阈值实现使得掩码值的分布均匀,并且独立于对应的未掩码值。较小的复合域中的操作减小了查找表的大小。所公开的实现抵抗常规的白盒攻击,诸如仿射等价攻击、类BGE攻击和类DCA攻击。
如图27中所示,上述实现可以由计算机或计算系统2700完成。计算系统27可以包括计算设备2712,计算设备2712具有一个或多个处理器2714和存储指令的一个或多个存储器,当指令被处理器2714执行时,完成所公开的计算和存储。计算机系统可以包括服务器、客户端计算平台和/或外部资源2720,它们可以经由一个或多个电子通信链路可操作地链接。例如,这样的电子通信链路可以至少部分地经由诸如互联网和/或其他网络的网络来建立。作为非限制性示例,计算系统可以包括一个或多个远程计算设备2718,包括台式计算机、膝上型计算机、手持计算机、平板计算平台、上网本、智能手机、游戏控制台、服务器和/或其他计算平台。计算设备2712可以包括通信线路或端口,以使能实现与网络和/或其他计算平台的信息交换。存储器可以包括电子存储设备,该电子存储设备可以包括以电子方式存储信息的非暂时性存储介质。电子存储的电子存储介质可以包括与计算设备2712集成(即,基本上不可移动)提供的系统存储装置和/或经由例如端口(例如,USB端口、火线端口等)或驱动器(例如,磁盘驱动器等)可移除地连接到计算设备2712的可移除存储中的一个或这两者。电子存储装置可以包括一个或多个光学可读存储介质(例如,光盘等)、磁可读存储介质(例如磁带、磁硬盘驱动器、软盘驱动器等)、基于电荷的存储介质(例如,EEPROM、RAM等)、固态存储介质(例如闪存驱动器等)和/或其他电子可读存储介质。电子存储装置可以包括一个或多个虚拟存储资源(例如,云存储、虚拟专用网络和/或其他虚拟存储资源)。电子存储装置可以存储软件算法、由(一个或多个)处理器确定的信息、从计算设备2712接收的信息、所描述的数据结构和/或处理器2714用来执行如本文描述的功能的其他信息和机器可读指令2716。
(一个或多个)处理器可以包括数字处理器、模拟处理器、设计用于处理信息的数字电路、设计用于处理信息的模拟电路、状态机和/或用于以电子方式处理信息的其他机制中的一个或多个。(一个或多个)处理器可以被配置成通过软件;硬件;固件;软件、硬件和/或固件的某种组合;和/或用于配置(一个或多个)处理器上的处理能力的其他机制执行模块。如本文使用的,术语“模块”可以指代执行归因于该模块的特定功能的任何组件或组件集。这可以包括在执行处理器可读指令期间的一个或多个物理处理器2714、处理器可读指令、电路、硬件、存储介质或任何其他组件。
图28图示了根据所公开的实现的用于在软件应用中实现白盒块密码以创建具有与软件应用相同功能的安全软件应用的高级方法。该过程可以由诸如图27中所示的系统的任何计算平台完成。在2802,在原始有限域表示和复合域表示之间应用同构,并且该同构用于将密码重构为仅使用复合域元素的操作,包括异或、线性变换和S-box。在2804,原始的S-box被分解成几个代数步骤,并将这些步骤中的一些合并到密码的其他部分。在2806,在S-box的非线性步骤中,用复合域表示中的算法实现原始有限域表示中的取逆。在2808,应用m个输入共享因子和n个输出共享因子的阈值实现来为S-box的非线性步骤生成查找表。在2810,进一步的阈值实现被应用于所得到的密码的不同步骤,以生成查找表。在2812,将所得到的块密码应用于软件应用的至少一部分,以创建安全软件应用,并且从而增加执行安全软件应用的计算平台的安全性。
尽管已经基于当前被认为是最实用和优选的实现方式,出于说明的目的详细描述了本技术,但是应当理解,这样的细节仅仅是为了该目的,并且该技术不限于所公开的实现,而是相反,旨在覆盖在所附权利要求的精神和范围内的修改和等同布置。例如,应当理解,本技术考虑到,在可能的程度上,任何实现的一个或多个特征可以与任何其他实现的一个或多个特征相组合。此外,可以从实现中添加或移除特征以对应于特定应用。
Claims (18)
1.一种用于在软件应用中实现白盒块密码以创建与软件应用具有相同功能的安全软件应用的方法,所述方法包括:
通过以下方式创建块密码的实现:
在原始有限域表示和复合域表示之间应用同构,并使用所述同构将密码重构为仅使用复合域元素的操作,包括异或、线性变换和S-box;
将原始S-box分解成几个代数步骤,并将这些步骤中的一些合并到密码的其他部分中;
在S-box的非线性步骤中,利用复合域表示中的算法实现原始有限域表示中的取逆;
应用m个输入共享因子和n个输出共享因子的初始阈值实现来为S-box的非线性步骤生成查找表;
将进一步的阈值实现应用于密码的不同步骤以生成查找表;和
将块密码应用于软件应用的至少一部分,以创建安全软件应用,并且由此增加执行安全软件应用的计算平台的安全性。
2.根据权利要求1所述的方法,其中所述原始有限域表示包括8位元素。
3.根据权利要求1所述的方法,其中所述复合域表示包括两个4位元素。
5.根据权利要求1所述的方法,其中所述初始阈值实现生成掩码并扩展所述查找表的输出,由此模糊所述S-box。
6.根据权利要求5所述的方法,其中每个掩码取决于倒置树结构中较早的掩码。
7.一种用于在软件应用中实现白盒块密码以创建与软件应用具有相同功能的安全软件应用的装置,所述装置包括:
至少一个硬件处理器;和
至少一个存储器,可操作地耦合到所述处理器,并在存储器上存储指令,当所述指令被所述至少一个硬件处理器执行时,使得所述至少一个硬件处理器:
通过以下方式创建块密码的实现:
在原始有限域表示和复合域表示之间应用同构,并使用所述同构将密码重构为仅使用复合域元素的操作,包括异或、线性变换和S-box;
将原始S-box分解成几个代数步骤,并将这些步骤中的一些合并到密码的其他部分中;
在S-box的非线性步骤中,利用复合域表示中的算法实现原始有限域表示中的取逆;
应用m个输入共享因子和n个输出共享因子的初始阈值实现来为S-box的非线性步骤生成查找表;
将进一步的阈值实现应用于密码的不同步骤以生成查找表;和
将块密码应用于软件应用的至少一部分,以创建安全软件应用,并且由此增加执行安全软件应用的计算平台的安全性。
8.根据权利要求7所述的装置,其中所述原始有限域表示包括8位元素。
9.根据权利要求7所述的装置,其中所述复合域表示包括两个4位元素。
11.根据权利要求7所述的装置,其中所述初始阈值实现生成掩码并扩展所述查找表的输出,由此模糊所述S-box。
12.根据权利要求11所述的装置,其中每个掩码取决于倒置树结构中较早的掩码。
13.其上存储有指令的非暂时性计算机可读介质,当所述指令被计算平台的处理器执行时,使得计算平台执行用于在软件应用中实现白盒块密码的方法,以创建与软件应用具有相同功能的安全软件应用,所述方法包括:
通过以下方式创建块密码的实现:
在原始有限域表示和复合域表示之间应用同构,并使用所述同构将密码重构为仅使用复合域元素的操作,包括异或、线性变换和S-box;
将原始S-box分解成几个代数步骤,并将这些步骤中的一些合并到密码的其他部分中;
在S-box的非线性步骤中,利用复合域表示中的算法实现原始有限域表示中的取逆;
应用m个输入共享因子和n个输出共享因子的初始阈值实现来为S-box的非线性步骤生成查找表;
将进一步的阈值实现应用于密码的不同步骤以生成查找表;和
将块密码应用于软件应用的至少一部分,以创建安全软件应用,并且由此增加执行安全软件应用的计算平台的安全性。
14.根据权利要求13所述的方法,其中所述原始有限域表示包括8位元素。
15.根据权利要求13所述的方法,其中所述复合域表示包括两个4位元素。
17.根据权利要求13所述的方法,其中所述初始阈值实现生成掩码并扩展所述查找表的输出,由此模糊所述S-box。
18.根据权利要求17所述的方法,其中每个掩码取决于倒置树结构中较早的掩码。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/368922 | 2019-03-29 | ||
US16/368,922 US20200313850A1 (en) | 2019-03-29 | 2019-03-29 | Method and apparatus for implementing a white-box cipher |
PCT/IB2020/052693 WO2020201899A1 (en) | 2019-03-29 | 2020-03-23 | Method and apparatus for implementing a white-box cipher |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113940028A true CN113940028A (zh) | 2022-01-14 |
CN113940028B CN113940028B (zh) | 2024-03-15 |
Family
ID=70190010
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080039898.7A Active CN113940028B (zh) | 2019-03-29 | 2020-03-23 | 实现白盒密码的方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (2) | US20200313850A1 (zh) |
EP (1) | EP3949246A1 (zh) |
CN (1) | CN113940028B (zh) |
WO (1) | WO2020201899A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116566588A (zh) * | 2023-04-25 | 2023-08-08 | 广州南网科研技术有限责任公司 | 一种白盒sm4算法的防护方法及装置 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11632231B2 (en) * | 2020-03-05 | 2023-04-18 | Novatek Microelectronics Corp. | Substitute box, substitute method and apparatus thereof |
FR3108225B1 (fr) * | 2020-03-16 | 2022-11-11 | St Microelectronics Rousset | Détection de fautes par un circuit électronique |
CN112636903A (zh) * | 2021-03-11 | 2021-04-09 | 北京信安世纪科技股份有限公司 | 构造方法、加密方法、解密方法、装置、设备及存储介质 |
CN113691364B (zh) * | 2021-08-31 | 2024-02-09 | 衡阳师范学院 | 一种基于位片技术的动态s盒分组密码的加密及解密方法 |
WO2023081222A1 (en) * | 2021-11-03 | 2023-05-11 | Arris Enterprises Llc | White-box processing for encoding with large integer values |
WO2023107285A1 (en) * | 2021-12-07 | 2023-06-15 | Cryptography Research, Inc. | Low-latency multi-domain masking |
CN114205157B (zh) * | 2021-12-13 | 2024-04-12 | 航天信息股份有限公司 | 基于冗余轮的sm4白盒加密实现方法、计算机设备和介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040139340A1 (en) * | 2000-12-08 | 2004-07-15 | Johnson Harold J | System and method for protecting computer software from a white box attack |
US20120254625A1 (en) * | 2011-03-30 | 2012-10-04 | Apple Inc. | Protecting states of a cryptographic process using group automorphisms |
CN103119888A (zh) * | 2010-08-20 | 2013-05-22 | 苹果公司 | 用于不安全环境中的块密码处理的装置和方法 |
WO2013189253A1 (zh) * | 2012-06-18 | 2013-12-27 | 西安西电捷通无线网络通信股份有限公司 | 一种利用对称密码算法进行数据加解密的方法及查表装置 |
CN104065473A (zh) * | 2014-06-25 | 2014-09-24 | 成都信息工程学院 | Sm4分组密码算法s盒的紧凑实现方法 |
US20150278554A1 (en) * | 2014-03-31 | 2015-10-01 | Stmicroelectronics S.R.L. | Encryption device of a substitution-box type, and corresponding encryption method and computer program product |
CN105681025A (zh) * | 2016-01-29 | 2016-06-15 | 中国科学院信息工程研究所 | 一种国家密码标准算法sm4的安全白盒实现方法和装置 |
US20170093571A1 (en) * | 2015-09-24 | 2017-03-30 | Intel Corporation | Double affine mapped s-box hardware accelerator |
WO2018113014A1 (zh) * | 2016-12-22 | 2018-06-28 | 深圳国微技术有限公司 | 掩码s盒、分组密钥计算单元、装置及对应的构造方法 |
CN109450632A (zh) * | 2019-01-11 | 2019-03-08 | 西安电子科技大学 | 基于白盒分组密码clefia分析的密钥恢复方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9189425B2 (en) * | 2011-09-01 | 2015-11-17 | Apple Inc. | Protecting look up tables by mixing code and operations |
US10505709B2 (en) * | 2015-06-01 | 2019-12-10 | Nxp B.V. | White-box cryptography interleaved lookup tables |
DE102016008456B4 (de) * | 2016-07-12 | 2018-03-29 | Giesecke+Devrient Mobile Security Gmbh | White Box AES Implementierung |
-
2019
- 2019-03-29 US US16/368,922 patent/US20200313850A1/en not_active Abandoned
-
2020
- 2020-03-23 CN CN202080039898.7A patent/CN113940028B/zh active Active
- 2020-03-23 EP EP20717280.0A patent/EP3949246A1/en active Pending
- 2020-03-23 WO PCT/IB2020/052693 patent/WO2020201899A1/en unknown
-
2022
- 2022-04-28 US US17/731,894 patent/US20220271916A1/en active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040139340A1 (en) * | 2000-12-08 | 2004-07-15 | Johnson Harold J | System and method for protecting computer software from a white box attack |
CN103119888A (zh) * | 2010-08-20 | 2013-05-22 | 苹果公司 | 用于不安全环境中的块密码处理的装置和方法 |
US20120254625A1 (en) * | 2011-03-30 | 2012-10-04 | Apple Inc. | Protecting states of a cryptographic process using group automorphisms |
WO2013189253A1 (zh) * | 2012-06-18 | 2013-12-27 | 西安西电捷通无线网络通信股份有限公司 | 一种利用对称密码算法进行数据加解密的方法及查表装置 |
US20150278554A1 (en) * | 2014-03-31 | 2015-10-01 | Stmicroelectronics S.R.L. | Encryption device of a substitution-box type, and corresponding encryption method and computer program product |
CN104065473A (zh) * | 2014-06-25 | 2014-09-24 | 成都信息工程学院 | Sm4分组密码算法s盒的紧凑实现方法 |
US20170093571A1 (en) * | 2015-09-24 | 2017-03-30 | Intel Corporation | Double affine mapped s-box hardware accelerator |
CN105681025A (zh) * | 2016-01-29 | 2016-06-15 | 中国科学院信息工程研究所 | 一种国家密码标准算法sm4的安全白盒实现方法和装置 |
WO2018113014A1 (zh) * | 2016-12-22 | 2018-06-28 | 深圳国微技术有限公司 | 掩码s盒、分组密钥计算单元、装置及对应的构造方法 |
CN109450632A (zh) * | 2019-01-11 | 2019-03-08 | 西安电子科技大学 | 基于白盒分组密码clefia分析的密钥恢复方法 |
Non-Patent Citations (5)
Title |
---|
GUOQIANG BAI等: "Differential Power Attack on SM4 block cipher", 《2018 17TH IEEE INTERNATIONAL CONFERENCE ON TRUST, SECURITY AND PRIVACY IN COMPUTING AND COMMUNICATIONS/ 12TH IEEE INTERNATIONAL CONFERENCE ON BIG DATA SCIENCE AND ENGINEERING》 * |
WEI LI等: "Hardware Implementation of SM4 Based on Composite Filed S-box and It’s Security against Machine Learning Attack", 《2018 IEEE INTERNATIONAL CONFERENCE ON ELECTRON DEVICES AND SOLID STATE CIRCUITS (EDSSC)》 * |
李新超;钟卫东;刘明明;李栋;: "基于秘密共享的SM4算法S盒实现方案", 计算机工程, no. 11 * |
李新超;钟卫东;张帅伟;马双棚;: "一种基于门限实现的SM4算法S盒实现方案", 计算机工程与应用, no. 17 * |
梁浩;乌力吉;张向民;: "基于复合域的SM4算法的设计与实现", 微电子学与计算机, no. 05 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116566588A (zh) * | 2023-04-25 | 2023-08-08 | 广州南网科研技术有限责任公司 | 一种白盒sm4算法的防护方法及装置 |
CN116566588B (zh) * | 2023-04-25 | 2023-12-01 | 广州南网科研技术有限责任公司 | 一种白盒sm4算法的防护方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US20220271916A1 (en) | 2022-08-25 |
EP3949246A1 (en) | 2022-02-09 |
WO2020201899A1 (en) | 2020-10-08 |
US20200313850A1 (en) | 2020-10-01 |
CN113940028B (zh) | 2024-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113940028B (zh) | 实现白盒密码的方法和装置 | |
US20120170739A1 (en) | Method of diversification of a round function of an encryption algorithm | |
US8966279B2 (en) | Securing the implementation of a cryptographic process using key expansion | |
US8504845B2 (en) | Protecting states of a cryptographic process using group automorphisms | |
AU2011292312B2 (en) | Apparatus and method for block cipher process for insecure environments | |
US9143317B2 (en) | Protecting against white box attacks using column rotation | |
CN110235409A (zh) | 使用同态加密被保护的rsa签名或解密的方法 | |
US20120121083A1 (en) | Encryption apparatus and method | |
US8675866B2 (en) | Multiplicative splits to protect cipher keys | |
EP3477889B1 (en) | Using white-box in a leakage-resilient primitive | |
JP2020510879A (ja) | 楕円曲線点乗算デバイス及び方法 | |
JP2020521392A (ja) | 暗号装置及び方法 | |
KR102290025B1 (ko) | 화이트 박스 aes 구현 | |
Yap et al. | On the effective subkey space of some image encryption algorithms using external key | |
Biryukov et al. | Multiset-algebraic cryptanalysis of reduced Kuznyechik, Khazad, and secret SPNs | |
KR102327771B1 (ko) | 테이블 기반 구현에서의 차수 2 이상의 dca 공격에 대응하는 방법 | |
Lin et al. | A new Feistel-type white-box encryption scheme | |
EP3258639A1 (en) | Cryptography apparatus protected against side-channel attack using constant hamming weight substitution-box | |
Baek et al. | Analytic Toolbox for White-Box Implementations: Limitation and Perspectives. | |
Kim | A White-box Implementation of SEED | |
US20200342787A1 (en) | Method and apparatus for decrypting cryptogram using auxiliary secret key | |
Yang et al. | LWARX: Lightweight ARX white-box cipher for satellite communications | |
Yang et al. | WAS: improved white-box cryptographic algorithm over AS iteration | |
Banerjee et al. | A New Proposed Data Security Model in Cloud Computing Environment | |
Lin et al. | A DCA-resistant Implementation of SM4 for the White-box Context |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |