CN111800255A - 一种适用于分组密码白盒化的动态白盒库生成和使用方法 - Google Patents

一种适用于分组密码白盒化的动态白盒库生成和使用方法 Download PDF

Info

Publication number
CN111800255A
CN111800255A CN202010511316.2A CN202010511316A CN111800255A CN 111800255 A CN111800255 A CN 111800255A CN 202010511316 A CN202010511316 A CN 202010511316A CN 111800255 A CN111800255 A CN 111800255A
Authority
CN
China
Prior art keywords
white
box
dynamic
library
algorithm
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.)
Pending
Application number
CN202010511316.2A
Other languages
English (en)
Inventor
杨亚涛
张也
胡浩通
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BEIJING ELECTRONIC SCIENCE AND TECHNOLOGY INSTITUTE
Original Assignee
BEIJING ELECTRONIC SCIENCE AND TECHNOLOGY INSTITUTE
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by BEIJING ELECTRONIC SCIENCE AND TECHNOLOGY INSTITUTE filed Critical BEIJING ELECTRONIC SCIENCE AND TECHNOLOGY INSTITUTE
Priority to CN202010511316.2A priority Critical patent/CN111800255A/zh
Publication of CN111800255A publication Critical patent/CN111800255A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/16Obfuscation or hiding, e.g. involving white box

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提出的动态白盒库是由多个白盒查找表构成的,先选取多个初始密钥,通过分组密码算法的密钥扩展函数产生若干个子密钥,通过随机选取,选取出的n个互异的轮密钥,最后生成n个白盒查找表,这n个白盒查找表即为分组密码白盒化的动态白盒库。动态白盒库使用在分组密码白盒化方案的加解密过程中,即每一轮通过特定的方式选取本轮使用的白盒查找表,特定的方式是根据每一轮的中间变量和选表因子进行选取,为保证加解密的正确性,采用在一轮轮函数输入和输出都存在的中间变量进行计算。本发明相对于静态白盒安全性提升,相对于动态白盒实现容易。

Description

一种适用于分组密码白盒化的动态白盒库生成和使用方法
技术领域
本发明属于信息安全技术领域,具体涉及一种适用于分组密码白盒化的动态白盒库生成和使用方法。
背景技术
白盒密码需要抵抗白盒攻击,而白盒密码技术从实现方式上可以分成两类:静态白盒和动态白盒。在静态白盒中,密码算法结合特定的密钥经过白盒密码技术处理后形成特定的密码算法库,这种密码算法库即称为白盒库,白盒库具备特定的密码功能(加密、解密以及加解密),并能在白盒攻击环境下有效保护原有密钥的安全。静态白盒若想更新密钥,必须重新生成白盒库。在动态白盒中,白盒库生成后就不需要再更新,原始密钥经过同样的白盒密码技术转化为白盒密钥。白盒密钥是安全的,攻击者不能通过分析白盒密钥得到任何关于原始密钥的信息。
专利文献1(公开号:CN107947917A,公开日2018年04月20日)提出一种生成白盒密钥的方法及装置,用以解决现有技术中存在的密钥不安全的问题。主要包括:根据确定的第二参数组合,确定与所述第二参数组合匹配的第二代码块;运行所述第二代码块,得到白盒密钥,其中,所述第二参数组合至少包括:加密算法标识、原始密钥、目标功能。从而,使得密钥更新较为方便,且不需要更新白盒库文件,提升密钥的安全性。但整体来说,动态白盒加密流程较复杂,在实际使用过程中,时间效率较低。
专利文献2(公开号:CN109257162A,公开日2019年01月22日)公开了一种加密算法白盒化的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:将原始密钥与原算法过程结合后进行处理,得到变换算法过程;对变换算法过程进行查找表化处理,得到变换查找表;对变换查找表进行加解密处理,以隐藏原始密钥。该实施方式提升了加解密的执行效率,减小了变换查找表占用空间,且简化了运算过程,但是仍为静态白盒,更新白盒库不方便,安全性较低。
通过对上述两篇专利文献的分析,上述发明存在着不完善之处。静态白盒中,白盒库固定,每次加解密使用密钥相同,安全性较低,更新白盒库不方便。针对白盒算法上述需求以及克服现有技术的不足,本发明提出一种适用于分组密码白盒化的动态白盒库生成和使用方法,相对于静态白盒安全性提升,相对于动态白盒使用方便,实现容易。并且在我们的发明设计中考虑了实际问题,在尽可能的情况下兼顾空间和效率的平衡。
发明内容
本发明的方法中,采用了一种新的思想,提出了一种适用于分组密码白盒化的动态白盒库生成和使用方法。动态白盒库由多个白盒查找表组成,首先选取多个初始密钥,通过分组密码算法的密钥扩展函数产生若干个子密钥,再随机选取出n个互异的轮密钥和轮数个选表因子,接下来用选取的轮密钥生成n个白盒查找表,形成分组密码白盒化方案的动态加密解密白盒库。在基于动态白盒库的分组密码白盒化方案中,每一轮使用特定的方式进行选取本轮加解密所使用的查找表,特定的方式依赖于每一轮的中间变量和选表因子。采用在一轮轮函数输入和输出都存在的中间变量进行计算,从而保证正确加解密。
本发明的优势在于:
1.效率:本发明的复杂度可以通过查表、异或操作、和仿射变换的次数来衡量,每一轮过程划分为三个部分,第一部分包括3次仿射变换和2个异或操作,第二部分包括4次查表和5个异或操作,第三部分包括2次仿射变换和1个异或操作。整个发明算法的执行需要128次查表,160次32比特到32比特的仿射变换和256个异或操作。
XpartⅠ:34×37×(32×32+32)=1328448(比特);
XpartⅡ:37×4×(28×32)=1212416(比特);
XpartⅢ:32×(32×32+32)+32×37×(32×32+32)=1284096(比特);
本发明的方案整体占用的空间为:
1328448+1212416+1284096=3824960bit=478120B=466.914KB
2.安全性:白盒密码算法设计的主要目的是为了在白盒攻击环境中防止攻击者从密码算法的执行过程中抽取出密钥。本设计将密钥信息隐藏在查找表中,且增加了外部编码,使得查找表随机选取的输入和输出编码难以被攻破恢复,那么密钥信息也就不能被攻击者轻易得到。白盒算法的安全性主要看从查找表中分析出密钥或者恢复出输入输出编码的复杂度。无论是哪一种查找表,攻击者都不可能通过暴力穷搜的方式找出一种特定的查找表构造方法。从现有的白盒安全指标白盒多样性和白盒含混度来看,本发明设计的动态白盒库是安全的,攻击者很难从仿射变换或者查找表中推断出输入输出置乱编码及密钥信息。
附图说明
图1是动态白盒库生成和使用方法的结构示意图
图2是基于动态白盒库的SM4白盒算法整体流程图;
图3是基于动态白盒库的SM4白盒算法加密轮函数结构图;
图4是动态白盒库的查找表生成流程图。
具体实施方式
下面结合附图和具体实施例对本发明做进一步详细的说明,但不以任何方式限制本发明的范围。
如图1所示,本发明的动态白盒库适用于大部分的分组密码算法的白盒化,在本发明中以我国GM/T0002-2012《SM4分组密码算法》的白盒化方案为例进行动态白盒库的说明。
如图2所示,在SM4白盒算法的加密过程中,输入为128bit明文
Figure BDA0002528477650000031
经32轮白盒运算和1次反序变换得到128bit的输出密文
Figure BDA0002528477650000032
每一轮的白盒运算中都包含一次使用动态白盒库。
如图3所示,先计算X。
Figure BDA0002528477650000033
Figure BDA0002528477650000034
其中ο表示可逆仿射变换操作的合成,Pi+j
Figure BDA0002528477650000035
都是可逆仿射变换,Ai+j为GF(2)上的32×32可逆矩阵,ai+j是32bit的常量;
Figure BDA0002528477650000036
均为GF(2)上的8bit到8bit的可逆仿射变换;因Pi+j
Figure BDA0002528477650000037
都是随机选择并且保密的,只需保存一个32bit到32bit的复合仿射变换
Figure BDA0002528477650000038
然后通过第ri张查找表将32bit的X变换到32bit的Y。
本发明的动态白盒库有n个白盒表,白盒表依次命名为表0,表1,表2……,表n-1。将第i轮的中间变量Xi+2和Xi+3和选表因子Hi进行异或运算,即
Figure BDA0002528477650000039
其中,Wi为32bit,设Wi前8bit转换为十进制后模n的值为ri,本轮白盒加密就使用第ri张查找表。
在本发明的SM4白盒算法中,采用n=37。例如Wi的前8bit为11000001,那么ri计算如下:
ri=11000001 modn=(128+64+1)mod37=8
那么,本轮使用的查找表为第8张查找表。
最后计算Xi+4
Figure BDA00025284776500000310
其中Qri为随机选取32bit到32bit的可逆仿射变换,它作为查找表的输出编码;
Figure BDA00025284776500000311
为可逆放射变换,将与下一轮中的对Xi+4的置乱编码(Pi+4)抵消一部分;因P’i+4
Figure BDA00025284776500000312
都是随机选择并且保密的,只需保存两个32bit到32bit的复合仿射变换
Figure BDA0002528477650000041
动态白盒库的生成过程如下:
生成SM4白盒算法的动态白盒库需要生成n个查找表。首先随机选择3个128bit的初始密钥,k0=(MK0,MK1,MK2,MK3),k1=(MK4,MK5,MK6,MK7),k2=(MK8,MK9,MK10,MK11),使用标准SM4分组密码算法的密钥扩展算法对3个初始密钥进行密钥扩展,从而输出96个32bit的子密钥(rk0,rk1,...,rk95),从这96个子密钥中随机选取互异的69个子密钥,将其中37个作为轮密钥进行生成37个查找表,这37个轮密钥重新命名成(rk0,rk1,...,rk36),将另外的32个作为使用查找表的选表因子,这32个选表因子重新命名成(H0,H1,……H31)。
如图4所示,输入的32bitX=(a0,a1,a2,a3)和32bit轮密钥rkh(h=0,1,...,36),对原有T变换做编码,从而形成n=37个查找表,使得轮密钥隐藏在查找表中。设
rkh=(rkh,0,rkh,1,rkh,2,rkh,3) h=0,1,...,36
Figure BDA0002528477650000042
则每一个Shj都是与子密钥相关的,由于SM4标准算法的S盒是公开的,密码分析者得到Shj的时候依然可以得到密钥信息,因此,需要对Shj进行置乱编码。
Figure BDA0002528477650000043
其中,L表示SM4算法中T变换的线性变换,为一个GF(2)上的32×32的矩阵;Eh0,Eh1,Eh2,Eh3均为GF(2)上的8bit到8bit的可逆仿射变换,它作为查找表的输入编码;Qh为32bit到32bit的可逆仿射变换,它作为查找表的输出编码。
对n=37个轮密钥均进行上述变换,即可产生n=37个查找表,而这些查找表均为32bit到32bit的变换,大小为232×37,使得在实际使用中占用空间过大。因此,我们把整个变换拆分成4个小的查找表。
将X=(a0,a1,a2,a3)经过Ehj和Shj变换后的值记为(zh0,zh1,zh2,zh3),aj与zhj(j=0,1,2,3)是一一对应。
Figure BDA0002528477650000044
其中,Rhj(j=0,1,2,3)是32×8的矩阵。由上式可以看出,vhj与zhj(j=0,1,2,3)也是一一对应,所以aj与vhj(j=0,1,2,3)是一一对应,这样整个变换划分成4个8bit到32bit的查找表。
所以,在实际使用时,将32bit的X通过1次查找表变换到32bit的Y的过程,转换为4次查找表和3个结果异或的过程。

Claims (4)

1.一种适用于分组密码白盒化的动态白盒库生成和使用方法,其特征在于,描述了一种由多个白盒查找表构成的动态白盒库,即选取多个初始密钥,通过分组密码算法的密钥扩展函数生成若干个子密钥,通过随机选取,选取出的n个互异的轮密钥,进而生成n个白盒查找表,形成分组密码算法的动态加解密白盒库。
2.根据权利要求1所述的一种适用于分组密码白盒化的动态白盒库生成和使用方法,其特征在于,在动态白盒库使用过程中,通过特定的方式选取分组密码白盒化方案每一轮加解密使用的查找表,特定的方式即根据每一轮的中间变量和选表因子进行选取,为保证加解密的正确性,采用在一轮轮函数输入和输出都存在的中间变量进行计算。
3.根据权利要求1所述的一种适用于分组密码白盒化的动态白盒库生成和使用方法,其特征在于,其思路适用于多种分组密码算法的白盒化方案,是一种通用的动态白盒库,下面以基于动态白盒库的SM4白盒算法为例进行说明。
4. 基于动态白盒库的SM4白盒算法,其特征在于,算法采用n=37,随机选取3个128bit的初始密钥,用SM4的密钥扩展算法把这3个初始密钥进行密钥扩展,输出96个32bit的子密钥,从这96个子密钥中随机选取互异的69个,其中32个作为选表因子参与选择使用的白盒查找表,将这32个选表因子重新命名成(H 0, H 1,…, H 31);另外的37个作为轮密钥从而生成37个白盒查找表,将这37个轮密钥重新命名成rk 0, rk 1,…, rk 36,37个白盒查找表构成了SM4白盒算法的动态白盒库,依次命名为表0,表1,表2……,表36;SM4白盒算法中,第i轮轮函数输入4个32bit数值,输出4个32bit数值,首先计算X,然后将中间变量X i+2X i+3和选表因子H i 进行异或运算得到32bit的W i ,将W i 前8bit转换为十进制后模n=37的值,即为r i ,通过第r i 张白盒查找表将32bit的X变换到32bit的Y,最后计算X i+4,这里使用32bit到32bit的可逆仿射变换P i+4P i+4ˊ作为置乱编码,P i+4ˊ将与下一轮中的对X i+4的置乱编码(P i+4-1抵消一部分,因为置乱编码随机选取,P i+4ˊ仅与(P i+4-1抵消一部分,即使增加了外部编码,基于动态白盒库的SM4白盒算法加密结果与标准SM4算法加密结果也不同,但SM4白盒算法能够正确解密。
CN202010511316.2A 2020-06-08 2020-06-08 一种适用于分组密码白盒化的动态白盒库生成和使用方法 Pending CN111800255A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010511316.2A CN111800255A (zh) 2020-06-08 2020-06-08 一种适用于分组密码白盒化的动态白盒库生成和使用方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010511316.2A CN111800255A (zh) 2020-06-08 2020-06-08 一种适用于分组密码白盒化的动态白盒库生成和使用方法

Publications (1)

Publication Number Publication Date
CN111800255A true CN111800255A (zh) 2020-10-20

Family

ID=72802921

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010511316.2A Pending CN111800255A (zh) 2020-06-08 2020-06-08 一种适用于分组密码白盒化的动态白盒库生成和使用方法

Country Status (1)

Country Link
CN (1) CN111800255A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112507644A (zh) * 2020-12-03 2021-03-16 湖北大学 优化的sm4算法线性层电路
CN113162756A (zh) * 2021-03-31 2021-07-23 郑州信大捷安信息技术股份有限公司 一种基于查表的sm4算法实现方法和装置
CN113656810A (zh) * 2021-07-16 2021-11-16 五八同城信息技术有限公司 应用程序加密方法、装置、电子设备及存储介质
CN114491587A (zh) * 2022-01-13 2022-05-13 西安电子科技大学 基于类似sm4结构的白盒密码加解密方法
CN115987483A (zh) * 2022-12-19 2023-04-18 豪符密码检测技术(成都)有限责任公司 一种检测白盒密码的方法
CN116633529A (zh) * 2023-07-25 2023-08-22 中电信量子科技有限公司 采用派生密钥增强白盒sm4密码算法的方法及设备

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112507644A (zh) * 2020-12-03 2021-03-16 湖北大学 优化的sm4算法线性层电路
CN112507644B (zh) * 2020-12-03 2021-05-14 湖北大学 优化的sm4算法线性层电路
CN113162756A (zh) * 2021-03-31 2021-07-23 郑州信大捷安信息技术股份有限公司 一种基于查表的sm4算法实现方法和装置
CN113656810A (zh) * 2021-07-16 2021-11-16 五八同城信息技术有限公司 应用程序加密方法、装置、电子设备及存储介质
CN114491587A (zh) * 2022-01-13 2022-05-13 西安电子科技大学 基于类似sm4结构的白盒密码加解密方法
CN114491587B (zh) * 2022-01-13 2024-03-19 西安电子科技大学 基于类似sm4结构的白盒密码加解密方法
CN115987483A (zh) * 2022-12-19 2023-04-18 豪符密码检测技术(成都)有限责任公司 一种检测白盒密码的方法
CN115987483B (zh) * 2022-12-19 2024-01-30 豪符密码检测技术(成都)有限责任公司 一种检测白盒密码的方法
CN116633529A (zh) * 2023-07-25 2023-08-22 中电信量子科技有限公司 采用派生密钥增强白盒sm4密码算法的方法及设备
CN116633529B (zh) * 2023-07-25 2023-10-31 中电信量子科技有限公司 采用派生密钥增强白盒sm4密码算法的方法及设备

Similar Documents

Publication Publication Date Title
CN111800255A (zh) 一种适用于分组密码白盒化的动态白盒库生成和使用方法
JP4828082B2 (ja) 対称キー暗号用の置換ボックス
US8090098B2 (en) Method of generating message authentication code using stream cipher and authentication/encryption and authentication/decryption methods using stream cipher
US7860241B2 (en) Simple universal hash for plaintext aware encryption
CN106411518B (zh) 一种密钥不固定的对称白盒加密方法和装置
CN110278072A (zh) 一种16轮sm4-128/128白盒密码实现方法
KR100930577B1 (ko) 스트림 암호를 이용한 메시지 인증 코드 생성 방법과스트림 암호를 이용한 인증 암호화 방법 및 스트림 암호를이용한 인증 복호화 방법
CN108809626A (zh) 一种白盒sm4密码算法方案与系统
US8577023B2 (en) Encryption processing method, apparatus, and computer program utilizing different types of S-boxes
CN110474761A (zh) 一种16轮sm4-256白盒密码实现方法
JPH11509940A (ja) データブロックおよび鍵を非線形的に結合する暗号方法および装置
JPH0863097A (ja) データを暗号化するための対称暗号化方法およびシステム
CN103503362B (zh) 数据处理装置、数据处理方法以及程序
Fuhr et al. Collision attacks against CAESAR candidates: forgery and key-recovery against AEZ and Marble
CN113098675B (zh) 基于多项式完全同态的二进制数据加密系统及方法
JP2015191106A (ja) 暗号処理装置、および暗号処理方法、並びにプログラム
JP2015191107A (ja) 暗号処理装置、および暗号処理方法、並びにプログラム
CN116796345A (zh) 加解密方法、装置、设备及存储介质
RU2141729C1 (ru) Способ криптографического преобразования блоков двоичных данных
KR101240243B1 (ko) Aes의 ctr 모드에 따른 암호화 장치 및 방법
KR20080044150A (ko) 블록암호 해쉬 운영모드의 압축함수 설계 장치 및 방법
Lan et al. An area-efficient implementation of a Message Authentication Code (MAC) algorithm for cryptographic systems
KR101807259B1 (ko) 암호화 장치 및 방법
JP5916246B2 (ja) 暗号評価装置、暗号評価方法、及び、暗号評価プログラム
Labbi et al. Symmetric encryption algorithm for RFID systems using a dynamic generation of key

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20201020

WD01 Invention patent application deemed withdrawn after publication