CN109981256A - 基于FeisitelBox结构的白盒分组密码构造方法及系统 - Google Patents
基于FeisitelBox结构的白盒分组密码构造方法及系统 Download PDFInfo
- Publication number
- CN109981256A CN109981256A CN201910264826.1A CN201910264826A CN109981256A CN 109981256 A CN109981256 A CN 109981256A CN 201910264826 A CN201910264826 A CN 201910264826A CN 109981256 A CN109981256 A CN 109981256A
- Authority
- CN
- China
- Prior art keywords
- wheel
- affine transformation
- function
- whitepack
- block cipher
- 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
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/0625—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
-
- 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
- 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
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于FeisitelBox结构的白盒分组密码构造方法及系统,该方法包括:输入n位明文,设置块的大小na、FeistelBox结构的迭代处理轮数r,采用T函数进行比特转换,将输入的na位比特转换为nb位比特输出,其中na+nb=n;在迭代处理轮数的轮与轮之间添加仿射变换,进行链式连接,每一轮的运行与上一轮、下一轮的运行紧密连接,通过把上一轮的仿射变换的逆变换嵌入到本轮的查找表运算中,再对查找表的结果应用上一轮的仿射变换,仿射变换层采用可逆的仿射变换矩阵;执行S1‑S2的加密运算,获得加密结果;该系统包括比特转换模块、仿射变换模块和执行运算模块。本发明使得攻击者无法获得密文的信息,增加了攻击者的破解密码难度,加强密钥存放的安全性。
Description
技术领域
本发明属于信息安全技术领域,具体涉及一种基于FeisitelBox结构的白盒分组密码构造方法及系统。
背景技术
随着网络和计算机的迅速发展,信息与每个人息息相关,人们对信息的保护愈加重视,如何有效保护自己的个人信息成为了大家重视的问题。传统的密码学中,加密环境默认是在黑盒环境下进行的。在黑盒环境中,是假设所有的加密算法处于绝对安全的环境下进行的,即使攻击者拿到了明文和密文以及加密算法,攻击者对软件运行内存状态,运行过程都无法得知并且无法更改。但是现实中,攻击者还是可以通过程序运行时的物理信息,比如运行时间,功率消耗,电磁辐射,频率等,获取软件运行数据。在不安全的环境中,密码软件的运行过程对于攻击者来说,是可见的,即软件运行过程透明化。这使得人们对软件安全性的需求不断增加。因此加解密算法的安全性基于密钥的安全性,能否将密钥隐藏在加解密算法中,有效的保护密钥,成了目前致力解决的问题。
现有技术中的提出DES和AES的白盒实现、国密算法SM4的白盒化实现,而Billet等人提出针对Chow白盒化AES的有效攻击(简称BGE攻击),使得几乎所有发布的DES和AES,SM4白盒实现方案都被密钥提取和表分解攻击这两种方式破坏了。
Andrey Bogdanoy和Takanori lsobeti提出的SPACE结构系列的分组密码。SPACE是Feistel网络结构的变体。SPACE是n位明文的输入,k位密钥,n位密文的输出。但是SPACE采用了非常保守的设计策略。第一,完全依赖于的Feistel结构,其不允许并行实现。第二,由于Feistel结构本身的对称性,加密过程可以推导出解密过程。将SPACE的方案用于白盒加解密中,对于解密,攻击者只要按照相反的顺序来使用密钥,倒推获得相应的明文。第三,SPACE的内部F函数需要调用至少一个完整的10轮AES-128。在文献[9]估计,执行单块加密需要调用至少128次全面的AES-128,在现实软件应用程序中是不太可行,不能接受的。
Andrey Bogdanov和Takanori Isobe等人设计了SPNbox分组密码。SPNbox一种新分组密码系列,它显着改进了SPACE分组密码。但SPNbox构造基于经典的置换排列网络结构,是基于SPN型小块密码,其由公共非线性和线性扩散层以及仿射变换层组成,密钥加密构建依赖密钥的S-box。关于小型内部分组密码的设计,存在效率问题,块的大小越小,避免中间相遇攻击所需的轮数就越多,这限制了它们的效率。这需要构建具非常小的块长度和相对大的密钥的更高效的块密码。但是,小块密码的快速密钥混合和高效的密钥调度功能基本上是未知的。
发明内容
为了克服现有技术存在的缺陷与不足,本发明提出一种基于FeisitelBox结构的白盒分组密码构造方法及系统,分析FesitelBox结构对隐藏密钥的独特保护性,并且实现了国密算法SM4白盒化。
为了达到上述目的,本发明采用以下技术方案:
本发明提供一种基于FeisitelBox结构的白盒分组密码构造方法,包括下述步骤:
S1:输入n位明文,设置块的大小na、FeistelBox结构的迭代处理轮数r,采用T函数进行比特转换,将输入的na位比特转换为nb位比特输出,其中na+nb=n;
S2:在迭代处理的轮与轮之间添加仿射变换,进行链式连接,通过把上一轮的仿射变换的逆变换嵌入到本轮的查找表运算中,再对查找表的结果应用上一轮的仿射变换,仿射变换层采用可逆的仿射变换矩阵;
S3:执行S1-S2的加密运算,获得加密结果。
作为优选的技术方案,步骤S1中所述T函数包括分组密码算法和随机密钥。
作为优选的技术方案,步骤S1的具体步骤为:
设置块的大小,其中每一块的大小是na=(n/l)比特,其中l表示块的数量,设在第r轮时,n位明文输入表示为其中表示第r轮时,xi是由na位组成的二进制数值;
设置T函数所述T函数为其中Ek表示具有n位明文和k位密钥的任意分组密码,C是nb=n-na位的二进制零值,msbu(x)是选择x的最显著的u位。
作为优选的技术方案,步骤S2中所述仿射变换采用线性映射函数和平移函数的复合,所述线性映射采用矩阵乘法,所述平移函数采用向量加法。
作为优选的技术方案,步骤S2中所述的在迭代处理轮数的轮与轮之间添加仿射变换,具体步骤为:
设X0表示为明文,XR表示为密文,r代表轮数,则每一轮更新的状态表示为:其中是表示仿射连接符,||是联接符,pr为仿射变换函数,表示T函数,是表示第r轮时的第一块分组,是表示第r轮的第l块分组;
pr为仿射变换函数,第i轮时表示为:
其中Ci是第i轮的对应x′i的可逆仿射变换矩阵,是第i-1轮对应x′i-1的Ci-1的可逆仿射变换矩阵,是第i-1轮对应x′i-1的Di-1的可逆仿射变换矩阵,Di是第i轮的对应x′i的可逆仿射变换矩阵,x′i是表示第i轮时,经过T函数输出的分组,x′i-1是表示第i-1轮时,经过T函数输出的分组。
作为优选的技术方案,所述可逆仿射变换矩阵根据线性映射矩阵及平移向量得到,具体为:
仿射变换映射f为:
其中,A表示线性映射矩阵,表示平移向量,
可逆仿射变换矩阵根据仿射变换映射f得到,表示为:
其中A-1为线性映射矩阵A的逆矩阵。
作为优选的技术方案,所述FeistelBox结构采用了随机无效轮的算法,随机无效轮在feistelbox结构中的具体步骤为,设Pl为输入明文的前半部分,Pr为输入明文的后半部分,α为任意的常数值,ki表示为密钥K的子密钥,i∈{1,...,n},β表示特定值,随机无效轮表示为:
作为优选的技术方案,还包括解密运算,具体步骤如下所述:
将迭代处理轮数第r轮的最后一个分组作为已知分组,输入T函数进行T函数的运算,T函数输出后与第r轮的各个分组进行异或运算,最后通过仿射变换依次输出得到第r-1轮的各个分组,得到解密结果。
本发明还提供一种基于FeisitelBox结构的白盒分组密码构造系统,包括:
比特转换模块:比特转换模块采用T函数进行比特转换,用于将输入的na位比特转换为nb位比特输出,且na+nb为输入明文的总比特数,所述比特转换模块包括分组密码算法和随机密钥;
仿射变换模块:用于在FeistelBox结构的迭代处理轮的轮与轮之间添加仿射变换,进行链式连接,把上一轮的仿射变换的逆变换嵌入到本轮的查找表运算中,再对查找表的结果应用上一轮的仿射变换,仿射变换模块采用可逆的仿射变换矩阵;
执行运算模块:用于执行比特转换模块与仿射变换模块的加密运算,获得加密结果。
作为优选的技术方案,还包括解密模块,将迭代处理第r轮的最后一个分组输入T函数进行T函数的运算,T函数输出后与第r轮的各个分组进行异或运算,再进行仿射变换后得到解密结果。
本发明与现有技术相比,具有如下优点和有益效果:
(1)本发明采用的FesitelBox结构中,轮与轮之间添加了仿射变换,通过把上一轮的仿射变换的逆变换嵌入到本轮的查找表运算中,再对查找表的结果应用上一轮的仿射变换,从而消除上一轮的仿射变换并应用独属于本轮的仿射变换,使得算法只能从上往下运算,因此攻击者难以仅从加密函数下得到解密函数,即使拿到解密函数也很难推出加密函数,使得存放密钥的安全性显著提高。
(2)本发明采用的FeistelBox的结构中,采用了随机无效轮的算法,可以检查和防止故障攻击,增加了攻击者攻击的难度,感染密文,使得攻击者无法获得任何关于本轮的密文的信息,增加了攻击者的破解密码难度。
(3)本发明采用FeistelBox结构中,T函数中选用的Ek分组密码的选择是任意的,产生了FeistelBox系列的分组密码,为白盒算法提供很多的研究方向。
(4)本发明设定FeistelBox的迭代处理轮数,在SM4安全的前提下,能保证整体GFN结构算法的在抗差分、线性、不可能差分等密码学分析下达到高于暴力破解SM4的安全性。
附图说明
图1为本实施例的FeistelBox结构示意图;
图2为本实施例的T表的算法结构图;
图3为本实施例的仿射变换图;
图4为本实施例的加密过程示意图;
图5为本实施例的解密过程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例
SPACE和SPNbox的设计为白盒算法提出了新的方向和思想,SPACE是n位明文的输入,k位密钥,n位密文的输出,设第r轮时,输入的n位明文,分为l块,其中每一块的大小为na=(n/l)bit。即可表示为:每一轮更新的状态即可表示为:其中nb=n-na,||是联接符。是一个被定义为的函数,Ek是具有n位明文和k位密钥的分组密码。C0是nb=n-na位的二进制零值,msb u(x)是选择x的最显著的u位。每一轮都是通过函数进行运算,进行查找。本实施例提出FeistelBox,一种新的高效白盒分组密码。FeistelBox是基于Feistel网络结构的变体。Feistel结构:一种由加密可以推到解密的结构。FeistelBox结构是以n位明文的输入,k位密钥加密,n位明文的输出。
本实施例要解决的技术问题是解决在不受信任的环境(白盒环境)下,加强密钥存放的安全性。本实施例中FeistelBox的设计结构,使得密钥提取的安全性大大增强。
SPACE和FeistelBox的构造都是基于经典的Feistel网络,主要差异是FeistBox在轮与轮之间加了仿射变换。对于加解密的推导,SPACE依赖的Feistel结构,由于本身的对称性,加密过程可以推导出解密过程。将SPACE的方案用于白盒加解密中,对于解密,攻击者只要按照相反的顺序来使用密钥,倒推获得相应的明文。与SPACE的设计相比,在FeistelBox结构中先是采用了SPACE的整体结构,但是与之不同的是,在每一轮之间加了仿射变换,进行链式连接,不可逆的解密过程,对密钥进行了双重保护。这大大增加了攻击者破解的难度,加密和解密操作就变得十分不同,不能由加密操作推出解密操作。这种差异使得FeistelBox在安全论据以及实现效率具有深远的效果。
在本实施例中,链式连接在Feistelbox中是,每一轮的运行都与上一轮和下一轮的运行紧密连接,每一轮单独被拿出来分析的结果是毫无意义的。对于攻击者而言,如果没有链式连接,每一轮的结果可以单独被拿出来进行分析,算法的安全性会大大降低。
在本实施例中,关于白盒的实现性,SPACE结构性能取决于轮数R。轮数R又和白盒表的大小密切相关。SPACE的密钥提取和分解问题的困难程度依赖于F函数中Ek分组密码,这样将这个密钥提取的安全性降低到了传统分组密码黑盒环境下。SPNbox的密钥保护在标准的黑盒环境中,依赖于良好的密钥恢复攻击的分组密码。但FeistelBox密钥提取的安全性的依赖于T函数中分组密码Ek的key。只要攻击者拿不到key,就无法破解。其中白盒表为:在白盒环境中,选定密钥,然后对明文和密文的映射进行置乱编码,结果用一个查找表表示。这样通过密钥混淆技术,白盒加解密过程转变为一系列查找表的过程。
在本实施例中,FeistelBox结构是基于Feistel结构和SPACE结构的改进。在Feistel网络结构中,加密和解密时是一样的,只是轮密钥是使用顺序的变化。但在FeistelBox结构中,加密无法直接推出解密。这是因为在FesitelBox结构中,轮与轮之间添加了仿射变换,通过把上一轮的仿射变换的逆变换嵌入到本轮的查找表运算中,再对查找表的结果应用上一轮的仿射变换,从而消除上一轮的仿射变换并应用独属于本轮的仿射变换,使得算法只能从上往下运算,因此攻击者难以仅从加密函数下得到解密函数。反之,攻击者拿到解密函数也很难推出加密函数。这使得存放密钥的安全性有显著的提高。
本实施例提供一种基于FeisitelBox结构的白盒分组密码构造系统,包括:
比特转换模块:比特转换模块采用T函数进行比特转换,用于将输入的na位比特转换为nb位比特输出,且na+nb为输入明文的总比特数,所述比特转换模块包括分组密码算法和随机密钥;
仿射变换模块:用于在FeistelBox结构的迭代处理轮的轮与轮之间添加仿射变换,进行链式连接,把上一轮的仿射变换的逆变换嵌入到本轮的查找表运算中,再对查找表的结果应用上一轮的仿射变换,仿射变换模块采用可逆的仿射变换矩阵;
执行运算模块:用于执行比特转换模块与仿射变换模块的加密运算,获得加密结果。
在本实施例中基于FeisitelBox结构的白盒分组密码构造系统,还设有解密模块执行解密运算,将迭代处理第r轮的最后一个分组输入T函数进行T函数的运算,T函数输出后与第r轮的各个分组进行异或运算,仿射变换后得到解密结果。
在本实施例中,FeistelBox结构是以n位明文的输入,k位密钥加密,n位明文的输出。
如图1所示,并结合图4,本实施例提供一种基于FeisitelBox结构的白盒分组密码构造方法,具体步骤为:
S1:输入n位明文,其中每一块的大小是na=(n/l)比特,其中l表示块的数量,例如是128位的明文输入,定义有16块时,则每一块的大小na是8位。设在第r轮时,n位明文输入,可表示为是表示第r轮时,xi是由na位组成的二进制数值;例如在第二轮时,则可表示为:
如图1、图2所示,采用T函数进行比特转换,将输入的na位比特转换为nb位比特输出,其中na+nb=n;T函数nb=n-na,r是轮数,T函数的作用是将输入的na比特转换为nb比特输出。例如第二轮时,将输入的8位转换为120位输出,可表示为:T函数可以定义为:Ek是具有n位明文和k位密钥的任意分组密码。C是nb=n-na位的二进制零值,msbu(x)是选择x的最显著的u位。
S2:在迭代处理轮数的轮与轮之间添加仿射变换,进行链式连接,每一轮的运行与上一轮、下一轮的运行紧密连接,通过把上一轮的仿射变换的逆变换嵌入到本轮的查找表运算中,再对查找表的结果应用上一轮的仿射变换,仿射变换层采用可逆的仿射变换矩阵;
如图1、图3所示,设X0表示为明文,XR表示为密文,r代表轮数,则每一轮更新的状态可以表示为:
其中是表示仿射连接符,||是联接符,是表示第r轮时的第一块分组,是表示第r轮的第l块分组;
pr是仿射变换函数,第i轮时,可表示为:其中Ci是第i轮对应x′i可逆仿射变换矩阵,是第i-1轮对应x′i-1的Ci-1的可逆仿射变换矩阵,是第i-1轮对应x′i-1的Di-1的可逆仿射变换矩阵,Di是第i轮对应x′i的可逆仿射变换矩阵,x′i是表示第i轮时,经过T函数输出的分组,x′i-1是表示第i-1轮时,经过T函数输出的分组。Ci和Di可以相同,也可以不同。例如第2轮的仿射变换可以表示为:
在本实施例中,仿射变换为两函数的复合:平移函数及线性映射函数。普通向量代数用矩阵乘法呈现线性映射函数,用向量加法表示平移函数。本实施例中的矩阵“A”表示线性映射函数,向量表示平移函数。仿射映射f表示为即则其可逆的仿射变换矩阵表示为其中A-1为线性映射矩阵A的逆矩阵。
S3:执行S1-S2的加密运算,获得加密结果。
如图5所示,本实施例还设有解密运算步骤,将迭代处理轮数第r轮的最后一个分组作为已知分组,输入T函数进行T函数的运算,T函数输出后与第r轮的各个分组进行异或运算,最后通过仿射变换依次输出得到第r-1轮的各个分组,得到解密结果。
在本实施例中,FeistelBox结构中的仿射变换层中的矩阵A必须是可逆的,可逆矩阵是设P是数域,A∈Pn×n,若存在B∈Pn×n,使得AB=BA=E,E为单位矩阵,则称A为可逆矩阵,B为A的逆矩阵,记为B=-1;
在本实施例中,FeistelBox的结构中增加了随机无效轮的方式,使得算法不能被错误的感染计算,可以检查和防止故障攻击,增加了攻击者攻击的难度,使得攻击者无法获得任何关于本轮的密文的信息,增加了攻击者的破解难度。
在本实施例中,随机无效轮是对于某一轮,无论该轮进行多少次的计算,始终与第一轮的结果一样。随机无效轮在feistelbox网络中的实现步骤为,设Pl为输入明文的左边部分,Pr为输入明文的右边部分,α为任意的常数值,ki表示为密钥K的子密钥,i∈{1,...,n},β表示特定值。则它们之间的联系为:
在本实施例中,FeistelBox结构中的仿射变换层中的矩阵A必须是可逆的,要用来抵消下一轮,但T函数中选用的Ek分组密码的选择是任意的,包括SM4国家商用密码,但不仅限于SM4。这产生了FeistelBox系列的分组密码,为白盒算法提供很多的研究方向。
在本实施例中,基于优化的高性能软件实现提供实验测量,并与CCS提出的SPACE系列白盒密码等效实例和Asiacrypt提出的SPNbox系列的白盒密码等效实例进行比较,如下表1、表2、表3所示:
其中,密钥k=128位,Ek为SM4国密算法,即FeistelBox-(8,R),输入的明文n=128位,块的数量l=16,每块大小na为8比特,T函数本实施例的实验数据均在1600MHz的Intel(R)Corei5-4210CPU双核上进行,所有性能数据均以每字节周期数(cpb)给出。
表1:英特尔平台上的FeistelBox和SPACE的白盒性能。
表2:英特尔平台上的FeistelBox白盒性能。
Algorithm | Rounds | Table size | Affine size |
FeistelBox-8 | 100 | 37.5KB | 400KB |
FeistelBox-8 | 200 | 750KB | 800KB |
FeistelBox-8 | 300 | 1.09MB | 1200KB |
FeistelBox-16 | 100 | 87.5MB | 400KB |
FeistelBox-16 | 200 | 112MB | 512KB |
FeistelBox-16 | 300 | 262.5MB | 1200KB |
表3:英特尔平台上的FeistelBox、SPACE和SPNbox的白盒性能。
本实施例经过实验测试众多FeistelBox的变体,选取了300轮作为FeistelBox的迭代处理轮数,该轮数在SM4安全的前提下,能保证整体GFN结构算法的抗差分、线性、不可能差分等密码学分析下达到高于暴力破解SM4的安全性。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
Claims (10)
1.一种基于FeisitelBox结构的白盒分组密码构造方法,其特征在于,包括下述步骤:
S1:输入n位明文,设置块的大小na、FeistelBox结构的迭代处理轮数r,采用T函数进行比特转换,将输入的na位比特转换为nb位比特输出,其中na+nb=n;
S2:在迭代处理的轮与轮之间添加仿射变换,进行链式连接,通过把上一轮的仿射变换的逆变换嵌入到本轮的查找表运算中,再对查找表的结果应用上一轮的仿射变换,仿射变换层采用可逆的仿射变换矩阵;
S3:执行S1-S2的加密运算,获得加密结果。
2.根据权利要求1所述的基于FeisitelBox结构的白盒分组密码构造方法,其特征在于,步骤S1中所述T函数包括分组密码算法和随机密钥。
3.根据权利要求1所述的基于FeisitelBox结构的白盒分组密码构造方法,其特征在于,步骤S1的具体步骤为:
设置块的大小,其中每一块的大小是na=(n/l)比特,其中l表示块的数量,设在第r轮时,n位明文输入表示为其中表示第r轮时,xi是由na位组成的二进制数值;
设置T函数所述T函数为其中Ek表示具有n位明文和k位密钥的任意分组密码,C是nb=n-na位的二进制零值,msbu(x)是选择x的最显著的u位。
4.根据权利要求1所述的基于FeisitelBox结构的白盒分组密码构造方法,其特征在于,步骤S2中所述仿射变换采用线性映射函数和平移函数的复合,所述线性映射采用矩阵乘法,所述平移函数采用向量加法。
5.根据权利要求1所述的基于FeisitelBox结构的白盒分组密码构造方法,其特征在于,步骤S2中所述的在迭代处理轮数的轮与轮之间添加仿射变换,具体步骤为:
设X0表示为明文,XR表示为密文,r代表轮数,则每一轮更新的状态表示为:
其中是表示仿射连接符,||是联接符,pr为仿射变换函数,表示T函数,是表示第r轮时的第一块分组,是表示第r轮的第l块分组;
pr为仿射变换函数,第i轮时表示为:
其中Ci是第i轮的对应x'i的可逆仿射变换矩阵,是第i-1轮对应xi-1的Ci-1的可逆仿射变换矩阵,是第i-1轮对应xi-1的Di-1的可逆仿射变换矩阵,Di是第i轮的对应x'i的可逆仿射变换矩阵,x'i是表示第i轮时,经过T函数输出的分组,x'i-1是表示第i-1轮时,经过T函数输出的分组。
6.根据权利要求1或5所述的基于FeisitelBox结构的白盒分组密码构造方法,其特征在于,所述可逆仿射变换矩阵根据线性映射矩阵及平移向量得到,具体为:
仿射变换映射f为:
其中,A表示线性映射矩阵,表示平移向量,
可逆仿射变换矩阵根据仿射变换映射f得到,表示为:
其中A-1为线性映射矩阵A的逆矩阵。
7.根据权利要求1所述的基于FeisitelBox结构的白盒分组密码构造方法,其特征在于,所述FeistelBox结构采用了随机无效轮的算法,随机无效轮在feistelbox结构中的具体步骤为,设Pl为输入明文的前半部分,Pr为输入明文的后半部分,α为任意的常数值,ki表示为密钥K的子密钥,i∈{1,...,n},β表示特定值,随机无效轮表示为:
8.根据权利要求1所述的基于FeisitelBox结构的白盒分组密码构造方法,其特征在于,还包括解密运算,具体步骤如下所述:
将迭代处理轮数第r轮的最后一个分组作为已知分组,输入T函数进行T函数的运算,T函数输出后与第r轮的各个分组进行异或运算,最后通过仿射变换依次输出得到第r-1轮的各个分组,得到解密结果。
9.一种基于FeisitelBox结构的白盒分组密码构造系统,其特征在于,包括:
比特转换模块:比特转换模块采用T函数进行比特转换,用于将输入的na位比特转换为nb位比特输出,且na+nb为输入明文的总比特数,所述比特转换模块包括分组密码算法和随机密钥;
仿射变换模块:用于在FeistelBox结构的迭代处理轮的轮与轮之间添加仿射变换,进行链式连接,把上一轮的仿射变换的逆变换嵌入到本轮的查找表运算中,再对查找表的结果应用上一轮的仿射变换,仿射变换模块采用可逆的仿射变换矩阵;
执行运算模块:用于执行比特转换模块与仿射变换模块的加密运算,获得加密结果。
10.一种基于FeisitelBox结构的白盒分组密码构造系统,其特征在于,还包括解密模块,将迭代处理第r轮的最后一个分组输入T函数进行T函数的运算,T函数输出后与第r轮的各个分组进行异或运算,再进行仿射变换后得到解密结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910264826.1A CN109981256B (zh) | 2019-04-03 | 2019-04-03 | 基于FeistelBox结构的白盒分组密码构造方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910264826.1A CN109981256B (zh) | 2019-04-03 | 2019-04-03 | 基于FeistelBox结构的白盒分组密码构造方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109981256A true CN109981256A (zh) | 2019-07-05 |
CN109981256B CN109981256B (zh) | 2022-08-05 |
Family
ID=67082636
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910264826.1A Active CN109981256B (zh) | 2019-04-03 | 2019-04-03 | 基于FeistelBox结构的白盒分组密码构造方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109981256B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111555862A (zh) * | 2020-05-13 | 2020-08-18 | 华南师范大学 | 基于掩码保护的随机冗余轮函数的白盒aes实现方法 |
CN111737689A (zh) * | 2020-06-10 | 2020-10-02 | 北京奇艺世纪科技有限公司 | 数据处理方法、处理器、电子设备、存储介质及程序产品 |
CN111901097A (zh) * | 2020-08-06 | 2020-11-06 | 成都卫士通信息产业股份有限公司 | 一种白盒实现方法、装置、电子设备及计算机存储介质 |
CN110247754B (zh) * | 2019-06-17 | 2020-12-01 | 中国科学院数学与系统科学研究院 | 一种分组密码fbc的实现方法及装置 |
CN112054896A (zh) * | 2020-08-12 | 2020-12-08 | 深圳市欢太科技有限公司 | 白盒加密方法、装置、终端及存储介质 |
CN112199696A (zh) * | 2020-10-09 | 2021-01-08 | 西安电子科技大学 | 基于白盒分组密码的加解密方法 |
CN113965311A (zh) * | 2021-10-19 | 2022-01-21 | 北京安御道合科技有限公司 | 一种实现格式保持加密的方法、系统、介质、终端及应用 |
CN114244552A (zh) * | 2021-10-27 | 2022-03-25 | 中国银行股份有限公司 | 基于区块链的数据加密传输方法及装置 |
CN117061092A (zh) * | 2023-10-12 | 2023-11-14 | 仰恩大学 | 一种Simon加密算法的可逆电路构造方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101023621A (zh) * | 2004-09-24 | 2007-08-22 | 塞纳普蒂克实验室有限公司 | 替代盒 |
CN101764686A (zh) * | 2010-01-11 | 2010-06-30 | 石家庄开发区冀科双实科技有限公司 | 一种用于网络与信息安全的加密方法 |
CN105681025A (zh) * | 2016-01-29 | 2016-06-15 | 中国科学院信息工程研究所 | 一种国家密码标准算法sm4的安全白盒实现方法和装置 |
US20170149559A1 (en) * | 2015-11-25 | 2017-05-25 | Nxp, B.V. | Protecting white-box feistel network implementation against fault attack |
-
2019
- 2019-04-03 CN CN201910264826.1A patent/CN109981256B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101023621A (zh) * | 2004-09-24 | 2007-08-22 | 塞纳普蒂克实验室有限公司 | 替代盒 |
CN101764686A (zh) * | 2010-01-11 | 2010-06-30 | 石家庄开发区冀科双实科技有限公司 | 一种用于网络与信息安全的加密方法 |
US20170149559A1 (en) * | 2015-11-25 | 2017-05-25 | Nxp, B.V. | Protecting white-box feistel network implementation against fault attack |
CN105681025A (zh) * | 2016-01-29 | 2016-06-15 | 中国科学院信息工程研究所 | 一种国家密码标准算法sm4的安全白盒实现方法和装置 |
Non-Patent Citations (3)
Title |
---|
BENEDIKT GIERLICHS ET AL.: "Infective Computation and Dummy Rounds: Fault Protection for Block Ciphers without Check-before-Output", 《LATINCRYPT 2012》 * |
LU ZHOU ET AL.: "Towards practical white-box lightweight block cipher implementations for IoTs", 《FUTURE GENERATION COMPUTER SYSTEMS 86 (2018)》 * |
龚涛等: "基于扩展Feistel结构S盒的构造分析", 《信息工程大学学报》 * |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110247754B (zh) * | 2019-06-17 | 2020-12-01 | 中国科学院数学与系统科学研究院 | 一种分组密码fbc的实现方法及装置 |
CN111555862B (zh) * | 2020-05-13 | 2023-04-28 | 华南师范大学 | 基于掩码保护的随机冗余轮函数的白盒aes实现方法 |
CN111555862A (zh) * | 2020-05-13 | 2020-08-18 | 华南师范大学 | 基于掩码保护的随机冗余轮函数的白盒aes实现方法 |
CN111737689A (zh) * | 2020-06-10 | 2020-10-02 | 北京奇艺世纪科技有限公司 | 数据处理方法、处理器、电子设备、存储介质及程序产品 |
CN111901097A (zh) * | 2020-08-06 | 2020-11-06 | 成都卫士通信息产业股份有限公司 | 一种白盒实现方法、装置、电子设备及计算机存储介质 |
CN112054896A (zh) * | 2020-08-12 | 2020-12-08 | 深圳市欢太科技有限公司 | 白盒加密方法、装置、终端及存储介质 |
CN112054896B (zh) * | 2020-08-12 | 2023-10-03 | 深圳市欢太科技有限公司 | 白盒加密方法、装置、终端及存储介质 |
CN112199696A (zh) * | 2020-10-09 | 2021-01-08 | 西安电子科技大学 | 基于白盒分组密码的加解密方法 |
CN112199696B (zh) * | 2020-10-09 | 2022-12-06 | 西安电子科技大学 | 基于白盒分组密码的加解密方法 |
CN113965311B (zh) * | 2021-10-19 | 2023-09-08 | 北京安御道合科技有限公司 | 一种实现格式保持加密的方法、系统、介质、终端及应用 |
CN113965311A (zh) * | 2021-10-19 | 2022-01-21 | 北京安御道合科技有限公司 | 一种实现格式保持加密的方法、系统、介质、终端及应用 |
CN114244552A (zh) * | 2021-10-27 | 2022-03-25 | 中国银行股份有限公司 | 基于区块链的数据加密传输方法及装置 |
CN114244552B (zh) * | 2021-10-27 | 2024-04-19 | 中国银行股份有限公司 | 基于区块链的数据加密传输方法及装置 |
CN117061092A (zh) * | 2023-10-12 | 2023-11-14 | 仰恩大学 | 一种Simon加密算法的可逆电路构造方法 |
CN117061092B (zh) * | 2023-10-12 | 2023-12-15 | 仰恩大学 | 一种Simon加密算法的可逆电路构造方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109981256B (zh) | 2022-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109981256A (zh) | 基于FeisitelBox结构的白盒分组密码构造方法及系统 | |
Seyedzade et al. | A novel image encryption algorithm based on hash function | |
Sahmoud et al. | Enhancement the Security of AES Against Modern Attacks by Using Variable Key Block Cipher. | |
Hong et al. | Rediscovery of time memory tradeoffs | |
CN110278072A (zh) | 一种16轮sm4-128/128白盒密码实现方法 | |
CN113940028A (zh) | 实现白盒密码的方法和装置 | |
Mousavi et al. | Security of Internet of Things using RC4 and ECC algorithms (case study: smart irrigation systems) | |
Bhattacharyya et al. | Secure message authentication against related-key attack | |
Chaitra et al. | A survey on various lightweight cryptographic algorithms on FPGA | |
Chen et al. | Cryptanalysis of a chaotic image cipher based on plaintext-related permutation and lookup table | |
Babu et al. | In depth survey on SMS4 architecture | |
Li et al. | Differential fault analysis on Camellia | |
Ananya et al. | Survey of applications, advantages, and comparisons of AES encryption algorithm with other standards | |
Gupta et al. | Ensuring data security in databases using format preserving encryption | |
Zhou et al. | Towards practical white-box lightweight block cipher implementations for IoTs | |
Tang et al. | A one-time pad encryption algorithm based on one-way hash and conventional block cipher | |
Forhad et al. | An improvement of advanced encryption standard | |
Singh et al. | Study & analysis of cryptography algorithms: RSA, AES, DES, T-DES, blowfish | |
Mahendra et al. | Enhanced AES using MAC address for cloud services | |
Srisakthi et al. | Towards the design of a stronger AES: AES with key dependent shift rows (KDSR) | |
Lin et al. | A new Feistel-type white-box encryption scheme | |
Huang et al. | Image observation on the modified ECB operations in Advanced Encryption Standard | |
Chahar et al. | Design of a new Security Protocol | |
Nakahara Jr | Lai-Massey Cipher Designs: History, Design Criteria and Cryptanalysis | |
Pirzada et al. | The parallel CMAC synthetic initialization vector algorithm implementation on FPGA |
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 |