CN114491587B - 基于类似sm4结构的白盒密码加解密方法 - Google Patents
基于类似sm4结构的白盒密码加解密方法 Download PDFInfo
- Publication number
- CN114491587B CN114491587B CN202210038228.4A CN202210038228A CN114491587B CN 114491587 B CN114491587 B CN 114491587B CN 202210038228 A CN202210038228 A CN 202210038228A CN 114491587 B CN114491587 B CN 114491587B
- Authority
- CN
- China
- Prior art keywords
- bit
- block
- plaintext
- small
- small block
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 230000009466 transformation Effects 0.000 claims abstract description 15
- 125000004122 cyclic group Chemical group 0.000 claims description 8
- 230000001131 transforming effect Effects 0.000 claims description 3
- 230000006870 function Effects 0.000 description 18
- 238000004088 simulation Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开一种类似SM4结构的白盒密码加解密方法,主要解决现有加解密方法运行效率低及存储空间成本高的问题。其实现方案是:生成由128个查找表组成的加密密钥和由这些查找表逆序排列组成解密密钥;构建明文分组,并对其对进行异或操作,对异或操作后的明文分组利用生成的加密密钥依次进行第一次查表、线性变换、第二次查表的轮函数操作,得到新的明文分组;对新的明文分组进行反序变换,得到明文分组加密后的密文分组;对密文分组进行异或操作,并利用生成的解密密钥对其进行逆轮函数操作,得到新的密文分组:对新的密文分组进行反序变换,得到密文分组解密后的明文分组。本发明加解密运行效率高,存储空间成本低,可用于数字版权管理。
Description
技术领域
本发明属于网络信息安全技术领域,更进一步涉及一种加解密方法,可用于数字版权管理。
背景技术
随着密码应用的普及,密码算法已渗透到日常生活的方方面面,如数字内容分发、移动支付、无线传感器网络、物联网、云计算等场景。在这些场景中,密码算法所运行的终端处于不可信的开放环境,因此黑盒攻击模型不再适用。例如在数字版权管理DRM场景中,内容提供商向消费者提供经过加密的文本、音频、视频等数字内容,消费者在客户端解密数字内容。为了获取利益,恶意的消费者可能会提取客户端中的密钥并非法分发。为了刻画这种攻击,Chow等人于2002年提出了白盒攻击环境,也称白盒模型的概念。该白盒模型是一个理论研究的模型,它给定了一个更加极端的假设,给攻击者更大的权限。白盒攻击环境假定,加密软件运行在不安全的终端,攻击者可以完全访问加密算法和相关执行环境,获得观察和改变这些实现的全部或部分内部细节以及执行动态的能力,攻击者甚至可以随意更改中间值,或加密逻辑。在此模型下,攻击者对密码算法的实现有完全访问权。具体地,攻击者可以动态观测算法的运行过程、任意修改算法运行的中间状态等。由此可见,白盒模型相较于黑盒模型能更精确地刻画密码算法实现面临的实际攻击,因此这一领域具有重要的现实意义,而白盒分组密码算法能够保证加密算法不泄露加密密钥,且解密算法不泄露解密密钥。
Bai Kunpeng和Wu Chuankun在其发表的论文“A secure white box SM4implementation”(Security&Communication Networks,2016,9(10),pp.996-1006)中公开了一种基于复杂化内部编码的SM4白盒加解密方法。该方法构造了一个查找表生成器,以中国商用密码算法SM4的密钥k作为输入,输出一种8比特输入、32比特输出的TD表和另一种16比特输入、32比特输出的TR表。其中TD表用来执行输出解码以及新的输入编码,TR表用来执行SM4的轮函数。加密方法和解密方法的轮函数均迭代32轮。具体地,加密方法的每一轮需要查询16个TD表和12个TR表并执行20次异或操作。但是,该方法存在有两方面的不足,一是由于生成查找表的运行时间过高,因此运行效率不高,二是由于需要32MB的存储空间,因此存储空间成本太高。
发明内容
本发明目的在于针对上述现有技术的不足,提出一种基于类似SM4结构的白盒密码加解密方法,以提高解加密的运行效率,降低存储空间成本。
为实现上述目的,本发明的思路是:通过分别执行类似SM4结构的白盒密码轮函数操作以及反序变换和逆轮函数操作以及反序变换,解决加密方法和解密方法运行效率不高的问题;通过每一轮仅仅查询两次4个8比特输入、8比特输出的查找表,使查找表占用的存储空间大小仅为512KB,解决算法存储空间成本太高的问题。
根据上述思路,本发明的技术方案包括如下:
1.一种类似SM4结构的白盒密码加解密方法,其特征在于:使用与中国商用密码算法SM4相似的结构,改变其标准SM4的输入与输出,在加解密中分别依次执行异或操作和轮函数操作后,进行i轮迭代后,再进行反序变换,具体实现包括如下:
(1)生成加解密密钥:
1a)用主密钥生成伪随机序列,即将128比特主密钥输入到一个伪随机数发生器,生成伪随机比特序列;
1b)利用随机置换生成算法,将伪随机比特序列变换为128*256个8bit的随机置换,每个查找表按输入字典序排列,将每256个8bit的随机置换排列在一张查找表中,一共生成128个查找表;
1c)用这128个查找表一起组成加密密钥,用这128个查找表的逆序排列成解密密钥;
(2)构建明文分组,对其进行异或操作,并利用(1)生成的加密密钥进行轮函数操作,得到新的明文分组:
2a)选择128位随机的比特串作为明文分组,将每个128位的明文分组切分为4个32比特的小块,将4个小块按照从左到右的顺序排列得到明文分组(Xi,Xi+1,Xi+2,Xi+3),i为任意正整数;
2b)对明文分组中的后三个小块Xi+1,Xi+2,Xi+3进行异或操作,得到异或后的32比特的明文小块X,再对该小块X利用加密密钥进行类似SM4结构的白盒密码轮函数操作,得到更新后的32比特的明文小块X';
2c)将更新后的32位比特的明文小块X'与明文分组中的第一个小块X0进行异或操作,得到第五个明文小块Xi+4;
2d)将该小块Xi+4排列在明文分组中的三个小块Xi+1,Xi+2,Xi+3之后,组成当前的明文分组(Xi+1,Xi+2,Xi+3,Xi+4);
2e)重复步骤2b)-2d)共i次,产生的新的明文分组为(Xi+1,Xi+2,Xi+3,Xi+4);
(3)对新的明文分组(Xi+1,Xi+2,Xi+3,Xi+4)进行如下反序变换:
R(Xi+1,Xi+2,Xi+3,Xi+4)=(Xi+4,Xi+3,Xi+2,Xi+1),
得到明文分组加密后的密文分组(Xi+4,Xi+3,Xi+2,Xi+1);
(4)对密文分组进行异或操作,并利用(1)生成解密密钥进行逆轮函数操作,得到新的密文分组:
4a)对密文分组(Xi+4,Xi+3,Xi+2,Xi+1)中的后三位Xi+3,Xi+2,Xi+1进行异或操作,得到异或后的32比特的密文小块Y;
4b)对异或后的32比特的密文小块Y利用解密密钥进行类似SM4结构的白盒密码逆轮函数操作,得到更新后的32位比特密文小块Y';
4c)将更新后的32位比特密文小块Y'与(4a)中密文分组的第一个小块Xi+4进行异或操作得到Xi;
4d)将密文分组的后3个32比特的小块Xi+3,Xi+2,Xi+1与Xi依次排列,组成当前的密文分组(Xi+3,Xi+2,Xi+1,Xi);
4e)重复步骤4b)-4d)共i次,产生的新的密文分组为(Xi+3,Xi+2,Xi+1,Xi);
(5)对新密文分组(Xi+3,Xi+2,Xi+1,Xi)进行反序变换R(Xi+3,Xi+2,Xi+1,Xi)=(Xi,Xi+1,Xi+2,Xi+3),得到密文分组解密后的明文分组(Xi,Xi+1,Xi+2,Xi+3)。
本发明与现有技术相比,具有如下优点:
第一,本发明由于采用了随机置换生成算法生成加密密钥,采用了8比特输入、8比特输出的查找表,与现有技术相比,查找表更小,解决了加密方法和解密方法运行效率不高的问题;同时由于在加解密过程中分别依次执行32轮的异或操作和轮函数操作后,再进行反序变换的方案,提高了加解密运行速度。
第二,本发明由于采用了256个8比特输入、8比特输出的查找表,与现有技术相比,解决了解密方法存储空间成本太高的问题,使得本发明具有了解密存储空间成本低的优点。
附图说明
图1是本发明的实现流程图。
具体实施方式
本实例的技术关键是使用与中国商用密码算法SM4相似的结构,改变其标准SM4的输入与输出,本实例选但不限于迭代轮数i=32,在加解密中分别依次执行32轮的异或操作和轮函数操作后,再进行反序变换,下面结合附图对本发明实施例和效果作进一步的详细说明。
参照图1,对本本实例的实现步骤如下:
步骤1,生成加解密密钥。
1.1)用主密钥生成伪随机序列,即将将SM4算法的128比特主密钥输入到一个伪随机数发生器,从而生成伪随机比特序列;
1.2)利用随机置换生成算法,将伪随机比特序列变换为128*256个8bit的随机置换:
1.2.1)初始化堆栈以存储随机比特流;
1.2.2)初始化数组T[128][256]用来存储随机置换;
1.2.3)新建数组T[i][j],新建两个变量i和j;
1.2.4)令T[i][j]=j,令i=0,j=2;调用函数knuth-Yao(n):
1.2.4.1)输入一个正整数n,返回一个均匀随机整数n'并满足0≤n'≤n-1;
1.2.4.2)新建两个变量u和x,并令u=1,x=0;
1.2.4.3)将n与u进行比较:
若u<n,则令u'=2u,x'=2x+Rb,其中Rb是随机比特序列里的一个随机比特;
若u'>n,则新建一个变量d并令d=u'-n;
1.2.4.4)检查d是否符合条件x'≥d;
若是,则n的返回值n'为n'=x'-d;
若否,则令u=u'-d,并返回1.2.4.3);
1.2.5)新建一个变量k并执行k=knuth-Yao(j)+1,交换T[i][j-1]与T[i][k]:
1.2.6)令i加1,j加1,调用knuth-Yao(n)函数,再次执行k=knuth-Yao(j)+1,再次交换T[i][j-1]与T[i][k];
1.2.7)重复1.2.6)每次对i和j各加1,调用knuth-Yao(n)函数,执行k=knuth-Yao(j)+1;再交换T[i][j-1]与T[i][k],直到i=128,j=256结束,得到生成的加解密密钥:
TED={T[0],T[1],...,T[127]};
1.3)将每256个8bit的随机置换按输入字典序排列在一张查找表中,一共生成128个查找表;
1.4)用这128个查找表一起组成加密密钥,用这128个查找表的逆序排列成解密密钥。
步骤2,构建明文分组,对其进行异或操作,并利用(1)生成的加密密钥进行轮函数操作,得到新的明文分组。
2.1)选择128位随机的比特串作为明文分组,将每个128位的明文分组切分为4个32比特的小块,将4个小块按照从左到右的顺序排列得到明文分组(Xi,Xi+1,Xi+2,Xi+3),i=0,1,...,31,其中i表示循环轮次;
2.2)对明文分组中的后三个小块Xi+1,Xi+2,Xi+3进行异或操作,得到异或后的32比特的明文小块X;
2.3)对异或后的32比特的明文小块X利用加密密钥进行类似SM4结构的白盒密码轮函数操作,得到更新后的32比特的明文小块X':
2.3.1)第1次查表操作:将32比特的明文小块X切分为4个8比特的小块,将这4个小块按照从左到右的顺序排列;对每个小块对应的8比特索引,查找其在1.4)加密密钥的查找表中对应的8位比特串并得到相应的输出,即第1个小块查第1张表,第2个小块查第2张表,第3个小块查第3张表,第4个小块查第4张表,得到一次更新后的4个8比特小块;将该更新后的4个8比特小块按照从左到右的顺序排列成,得到一次更新后的32比特的明文小块X”;
2.3.2)线性层操作:将一次更新后的32比特的小块X”,依次分别循环左移2位、循环左移10位、循环左移18位、循环左移24位;再将更新后的32比特的小块X”与循环左移2位、循环左移10位、循环左移18位、循环左移24位后的这四个小块进行异或,得到异或后新的32比特明文小块X”';
2.3.3)第2次查表操作:将异或后新的32比特的明文小块X”'切分为4个8比特的小块,将4个小块按照从左到右的顺序排列;对每个小块对应的8比特索引,查找其在1.4)加密密钥的查找表中对应的8位比特串并得到相应的输出,即第1个小块查第1张表,第2个小块查第2张表,第3个小块查第3张表,第4个小块查第4张表,得到二次更新后的4个8比特小块;将该更新后的4个8比特小块按照从左到右的顺序排列,得到二次更新后的32比特的明文小块X'。
2.3)将更新后的32位比特的明文小块X'与明文分组中的第一个小块Xi+1进行异或操作,得到第五个明文小块Xi+4,将该小块Xi+4排列在明文分组中的三个小块Xi+1,Xi+2,Xi+3之后,组成当前的明文分组(Xi+1,Xi+2,Xi+3,Xi+4);
2.4)重复步骤2.2)-2.3)共32次,产生的新的明文分组为(X32,X33,X34,X35)。
步骤3,获取密文分组。
对新的明文分组(X32,X33,X34,X35)进行如下反序变换:
R(X32,X33,X34,X35)=(X35,X34,X33,X32),
(X35,X34,X33,X32)即为明文分组加密后的密文分组。
步骤4,对密文分组进行异或操作,并利用(1)生成解密密钥进行逆轮函数操作,得到新的密文分组。
4.1)对密文分组(X35,X34,X33,X32)中的后三位X34,X33,X32进行异或操作,得到异或后的32比特的密文小块Y;
4.2)对异或后的32比特的密文小块Y利用解密密钥进行类似SM4结构的白盒密码逆轮函数操作,得到更新后的32位比特密文小块Y':
4.2.1)第一次查表操作:将32比特的密文小块Y切分为4个8比特的小块,将这4个小块按照从左到右的顺序排列;对每个小块对应的8比特索引,查找其在1.4)中解密密钥的查找表中所对应的8位比特串并得到相应的输出,即第1个小块查第1张表,第2个小块查第2张表,第3个小块查第3张表,第4个小块查第4张表,得到一次更新后的4个8比特小块;将该更新后的4个8比特小块按照从左到右的顺序排列成1个一次更新后的32比特的密文小块Y”;
4.2.2)线性层操作:将一次更新后的32比特的密文小块Y”,依次分别循环左移2位、循环左移10位、循环左移18位、循环左移24位;再将该一次更新后的32比特的密文小块Y”与循环左移2位、循环左移10位、循环左移18位、循环左移24位后的这四个小块进行异或,得到异或后新的32比特密文小块Y”';
4.2.3)第二次查表操作:将异或后新的32比特的密文小块Y”'切分为4个8比特的小块,将该4个小块按照从左到右的顺序排列;对每个小块对应的8比特索引,查找其在1.3)解密密钥的查找表中所对应的8位比特串并得到相应的输出,即第1个小块查第1张表,第2个小块查第2张表,第3个小块查第3张表,第4个小块查第4张表,得到二次更新后的4个8比特小块;将该更新后的4个8比特小块按照从左到右的顺序排列,得到二次更新后的32比特的明文小块Y'。
4.3)将更新后的32位比特密文小块Y'与(4.1)中密文分组的第一个小块X35进行异或操作得到X31;
4.4)将密文分组的后3个32比特的小块X34,X33,X32与X31依次排列,得到当前的新密文分组(X34,X33,X32,X31);
4.5)重复4.1)-4.4)共32次,得到最终新的密文分组为(X3,X2,X1,X0)。
步骤5,对新的密文分组(X3,X2,X1,X0)进行反序变换:R(X3,X2,X1,X0)=(X0,X1,X2,X3),得到密文分组解密后的明文分组(X0,X1,X2,X3)。
本发明的效果可通过以下仿真实验进一步的说明:
1.仿真实验条件。
本发明的仿真实验的硬件平台:处理器为Intel(R)Core(TM)i5-4210M CPU,主频为2.6GHz,内存为8GB。
本发明的仿真实验的软件平台:Windows 10操作系统和Java 12.0.1。
仿真使用的现有技术为:白-武SM4白盒加解密方法,其是,Bai Kunpeng和WuChuankun在其发表的论文“A secure white box SM4 implementation”(Security&Communication Networks,2016,9(10),pp.996-1006)中公开的一种基于SM4的白盒加解密方法,简称白-武SM4白盒加解密方法。
2.仿真内容及其结果分析。
用本发明和一个现有技术的白-武SM4白盒加解密方法分别对128位的比特串进行加解密,对加解密运行的时间和存储空间对比。
仿真1,随机选择一个128位的比特串作为明文,分别采用本发明的加密方法与现有技术的加密方法对其进行加密,得到128位的比特串作为密文,测试运行需要消耗的时间,如表1。
表1加密消耗时间对比
由表1可以看出,本发明的加密方法与现有技术的白-武SM4白盒加解密方法的加密方法相比,需要耗费时间较少,证明本发明加密方法的运行时间效率优于白-武SM4白盒加密方法。
仿真2,随机选择一个128位的比特串作为密文,分别采用本发明的解密方法与现有技术的解密方法对其进行解密,得到128位的比特串作为明文,测试运行需要消耗的时间,结果如表2。
表2解密消耗时间对比
由表2可以看出,本发明的解密方法与现有技术的白-武SM4白盒加解密方法的解密方法相比,需要耗费时间较少,证明本发明解密方法的运行时间效率优于白-武SM4白盒解密方法。
仿真3,随机选择一个128位的比特串作为明文,分别采用本发明的加密方法与现有技术的加密方法对其进行加密,测试加密方法在内存中占用的空间大小,结果如表3。
表3.加密存储空间对比
由表3可以看出,本发明相比于现有技术,其占用的空间更小,证明本发明加密方法的存储空间成本优于现有技术加密方法的存储空间成本。
以上描述仅是本发明的一个具体实例,并未构成对本发明的任何限制,显然对于本领域的专业人员来说,在了解了本发明内容和原理后,都可能在不背离本发明原理、结构的情况下,进行形式和细节上的各种修改和改变,但是这些基于本发明思想的修正和改变仍在本发明的权利要求保护范围之内。
Claims (5)
1.一种类似SM4结构的白盒密码加解密方法,其特征在于:使用与中国商用密码算法SM4相似的结构,改变其标准SM4的输入与输出,在加解密中分别依次执行异或操作和轮函数操作后,进行i轮迭代后,再进行反序变换,具体实现包括如下:
(1)生成加解密密钥:
1a)用主密钥生成伪随机序列,即将128比特主密钥输入到一个伪随机数发生器,生成伪随机比特序列;
1b)利用随机置换生成算法,将伪随机比特序列变换为128*256个8bit的随机置换,每个查找表按输入字典序排列,将每256个8bit的随机置换排列在一张查找表中,一共生成128个查找表;
1c)用这128个查找表一起组成加密密钥,用这128个查找表的逆序排列成解密密钥;
(2)构建明文分组,对其进行异或操作,并利用(1)生成的加密密钥进行轮函数操作,得到新的明文分组:
2a)选择128位随机的比特串作为明文分组,将每个128位的明文分组切分为4个32比特的小块,将4个小块按照从左到右的顺序排列得到明文分组(Xi,Xi+1,Xi+2,Xi+3),i为任意正整数;
2b)对明文分组中的后三个小块Xi+1,Xi+2,Xi+3进行异或操作,得到异或后的32比特的明文小块X,再对该小块X利用加密密钥进行类似SM4结构的白盒密码轮函数操作,得到更新后的32比特的明文小块X';
2c)将更新后的32位比特的明文小块X'与明文分组中的第一个小块X0进行异或操作,得到第五个明文小块Xi+4;
2d)将该小块Xi+4排列在明文分组中的三个小块Xi+1,Xi+2,Xi+3之后,组成当前的明文分组(Xi+1,Xi+2,Xi+3,Xi+4);
2e)重复步骤2b)-2d)共i次,产生的新的明文分组为(Xi+1,Xi+2,Xi+3,Xi+4);
(3)对新的明文分组(Xi+1,Xi+2,Xi+3,Xi+4)进行如下反序变换:
R(Xi+1,Xi+2,Xi+3,Xi+4)=(Xi+4,Xi+3,Xi+2,Xi+1),
得到明文分组加密后的密文分组(Xi+4,Xi+3,Xi+2,Xi+1);
(4)对密文分组进行异或操作,并利用(1)生成解密密钥进行逆轮函数操作,得到新的密文分组:
4a)对密文分组(Xi+4,Xi+3,Xi+2,Xi+1)中的后三位Xi+3,Xi+2,Xi+1进行异或操作,得到异或后的32比特的密文小块Y;
4b)对异或后的32比特的密文小块Y利用解密密钥进行类似SM4结构的白盒密码逆轮函数操作,得到更新后的32位比特密文小块Y';
4c)将更新后的32位比特密文小块Y'与(4a)中密文分组的第一个小块Xi+4进行异或操作得到Xi;
4d)将密文分组的后3个32比特的小块Xi+3,Xi+2,Xi+1与Xi依次排列,组成当前的密文分组(Xi+3,Xi+2,Xi+1,Xi);
4e)重复步骤4b)-4d)共i次,产生的新的密文分组为(Xi+3,Xi+2,Xi+1,Xi);
(5)对新密文分组(Xi+3,Xi+2,Xi+1,Xi)进行反序变换R(Xi+3,Xi+2,Xi+1,Xi)=(Xi,Xi+1,Xi+2,Xi+3),得到密文分组解密后的明文分组(Xi,Xi+1,Xi+2,Xi+3)。
2.根据权利要1所述的方法,其特征在于:2b)中对异或后的32比特的明文小块X,进行类似SM4结构的白盒密码轮函数操作,实现如下:
第1次查表操作:将32比特的明文小块X切分为4个8比特的小块,将这4个小块按照从左到右的顺序排列;对每个小块对应的8比特索引,查找其在1b)加密密钥的查找表中对应的8位比特串并得到相应的输出,即第1个小块查第1张表,第2个小块查第2张表,第3个小块查第3张表,第4个小块查第4张表,得到一次更新后的4个8比特小块;将该更新后的4个8比特小块按照从左到右的顺序排列成,得到一次更新后的32比特的明文小块X”;
线性层操作:将一次更新后的32比特的小块X”,依次分别循环左移2位、循环左移10位、循环左移18位、循环左移24位;再将更新后的32比特的小块X”与循环左移2位、循环左移10位、循环左移18位、循环左移24位后的这四个小块进行异或,得到异或后新的32比特明文小块X”';
第2次查表操作:将异或后新的32比特的明文小块X”'切分为4个8比特的小块,将4个小块按照从左到右的顺序排列;对每个小块对应的8比特索引,查找其在1b)加密密钥的查找表中对应的8位比特串并得到相应的输出,即第1个小块查第1张表,第2个小块查第2张表,第3个小块查第3张表,第4个小块查第4张表,得到二次更新后的4个8比特小块;将该更新后的4个8比特小块按照从左到右的顺序排列,得到二次更新后的32比特的明文小块X'。
3.根据权利要1所述的方法,其特征在于:4b)中对异或后的32比特的密文小块Y进行类似SM4结构的白盒密码的逆轮函数操作,实现如下:
第一次查表操作:将32比特的密文小块Y切分为4个8比特的小块,将这4个小块按照从左到右的顺序排列;对每个小块对应的8比特索引,查找其在1b)中解密密钥的查找表中所对应的8位比特串并得到相应的输出,即第1个小块查第1张表,第2个小块查第2张表,第3个小块查第3张表,第4个小块查第4张表,得到一次更新后的4个8比特小块;将该更新后的4个8比特小块按照从左到右的顺序排列成1个一次更新后的32比特的密文小块Y”;
线性层操作:将一次更新后的32比特的密文小块Y”,依次分别循环左移2位、循环左移10位、循环左移18位、循环左移24位;再将该一次更新后的32比特的密文小块Y”与循环左移2位、循环左移10位、循环左移18位、循环左移24位后的这四个小块进行异或,得到异或后新的32比特密文小块Y”';
第二次查表操作:将异或后新的32比特的密文小块Y”'切分为4个8比特的小块,将该4个小块按照从左到右的顺序排列;对每个小块对应的8比特索引,查找其在1b)解密密钥的查找表中所对应的8位比特串并得到相应的输出,即第1个小块查第1张表,第2个小块查第2张表,第3个小块查第3张表,第4个小块查第4张表,得到二次更新后的4个8比特小块;将该更新后的4个8比特小块按照从左到右的顺序排列,得到二次更新后的32比特的明文小块Y'。
4.根据权利要求1所述的方法,其特征在于,所述1b)中利用随机置换生成算法,将伪随机比特序列变换为128*256个8bit的随机置换,实现如下:
1b1)初始化堆栈以存储随机比特流;
1b2)初始化数组T[128][256]用来存储随机置换;
1b3)新建数组T[i][j],新建两个变量i和j;
1b4)令T[i][j]=j,令i=0,j=2;
调用函数knuth-Yao(n),新建一个变量k并执行k=knuth-Yao(j)+1;
交换T[i][j-1]与T[i][k];
1b5)令i加1,j加1,调用knuth-Yao(n)函数,再次执行k=knuth-Yao(j)+1,再次交换T[i][j-1]与T[i][k];
1b6)对i和j每次各加1,调用knuth-Yao(n)函数,再执行k=knuth-Yao(j)+1;
再交换T[i][j-1]与T[i][k],直到i=128,j=256结束,得到生成的加解密密钥:
TED={T[0],T[1],...,T[127]}。
5.根据权利要求4所述的方法,其特征在于,所述1b4)中调用函数knuth-Yao(n),实现如下:
1b4.1)输入一个正整数n,返回一个均匀随机整数n'并满足0≤n'≤n-1;
1b4.2)新建两个变量u和x,并令u=1,x=0;
1b4.3)将n与u进行比较:
若u<n,则令u'=2u,x'=2x+Rb,其中Rb是随机比特序列里的一个随机比特;
若u'>n,则新建一个变量d并令d=u'-n;
1b4.4)检查d是否符合条件x'≥d;
若是,则n的返回值n'为n'=x'-d;
若否,则令u=u'-d,并返回1b4.3)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210038228.4A CN114491587B (zh) | 2022-01-13 | 2022-01-13 | 基于类似sm4结构的白盒密码加解密方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210038228.4A CN114491587B (zh) | 2022-01-13 | 2022-01-13 | 基于类似sm4结构的白盒密码加解密方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114491587A CN114491587A (zh) | 2022-05-13 |
CN114491587B true CN114491587B (zh) | 2024-03-19 |
Family
ID=81511034
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210038228.4A Active CN114491587B (zh) | 2022-01-13 | 2022-01-13 | 基于类似sm4结构的白盒密码加解密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114491587B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108270550A (zh) * | 2018-01-10 | 2018-07-10 | 成都卫士通信息产业股份有限公司 | 一种基于sm4算法的安全高效的白盒实现方法及装置 |
CN108809626A (zh) * | 2018-05-30 | 2018-11-13 | 北京安如山文化科技有限公司 | 一种白盒sm4密码算法方案与系统 |
CN109714154A (zh) * | 2019-03-05 | 2019-05-03 | 同济大学 | 代码体积困难白盒安全模型下的白盒密码算法 |
EP3637670A1 (en) * | 2018-10-11 | 2020-04-15 | QuBalt GmbH | Method and system for executing a cryptography scheme |
CN111625791A (zh) * | 2020-04-28 | 2020-09-04 | 郑州信大捷安信息技术股份有限公司 | 一种基于软件密码模块的密钥管理方法及系统 |
CN111800255A (zh) * | 2020-06-08 | 2020-10-20 | 北京电子科技学院 | 一种适用于分组密码白盒化的动态白盒库生成和使用方法 |
CN112199696A (zh) * | 2020-10-09 | 2021-01-08 | 西安电子科技大学 | 基于白盒分组密码的加解密方法 |
CN113541942A (zh) * | 2021-07-12 | 2021-10-22 | 西安电子科技大学 | 基于arx白盒分组密码的数字内容加解密方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8121294B2 (en) * | 2008-10-21 | 2012-02-21 | Apple Inc. | System and method for a derivation function for key per page |
-
2022
- 2022-01-13 CN CN202210038228.4A patent/CN114491587B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108270550A (zh) * | 2018-01-10 | 2018-07-10 | 成都卫士通信息产业股份有限公司 | 一种基于sm4算法的安全高效的白盒实现方法及装置 |
CN108809626A (zh) * | 2018-05-30 | 2018-11-13 | 北京安如山文化科技有限公司 | 一种白盒sm4密码算法方案与系统 |
EP3637670A1 (en) * | 2018-10-11 | 2020-04-15 | QuBalt GmbH | Method and system for executing a cryptography scheme |
CN109714154A (zh) * | 2019-03-05 | 2019-05-03 | 同济大学 | 代码体积困难白盒安全模型下的白盒密码算法 |
CN111625791A (zh) * | 2020-04-28 | 2020-09-04 | 郑州信大捷安信息技术股份有限公司 | 一种基于软件密码模块的密钥管理方法及系统 |
CN111800255A (zh) * | 2020-06-08 | 2020-10-20 | 北京电子科技学院 | 一种适用于分组密码白盒化的动态白盒库生成和使用方法 |
CN112199696A (zh) * | 2020-10-09 | 2021-01-08 | 西安电子科技大学 | 基于白盒分组密码的加解密方法 |
CN113541942A (zh) * | 2021-07-12 | 2021-10-22 | 西安电子科技大学 | 基于arx白盒分组密码的数字内容加解密方法 |
Non-Patent Citations (5)
Title |
---|
Jaesung Yoo 等.A method for secure and efficient block cipher using white-box cryptography.ICUIMC'12: Proceedings of the 6th International Conference on Ubiquitous Information Management and Communication.2012,(第89期),1-8. * |
Towards Secure and Efficient "white-box" Encryption;Gurgen Khachatrian 等;Journal of Universal Computer Science;20191231;第25卷(第8期);868-886 * |
一种NoisyRounds保护的白盒AES实现及其差分故障分析;孙涛 等;密码学报;20200615;第7卷(第03期);342-357 * |
一种基于Huffman和LZW编码的移动应用混淆方法;李承泽 等;软件学报;20170220;第28卷(第09期);2264-2280 * |
基于广义Feistel结构的分组图像加密算法;方鹏 等;安康学院学报;20130620;第25卷(第03期);20-25 * |
Also Published As
Publication number | Publication date |
---|---|
CN114491587A (zh) | 2022-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhu et al. | Cryptanalyzing and improving a novel color image encryption algorithm using RT-enhanced chaotic tent maps | |
Cid et al. | A security analysis of Deoxys and its internal tweakable block ciphers | |
CN106209358B (zh) | 一种基于长密钥的sm4密钥扩展算法的实现系统及其方法 | |
CN113940028B (zh) | 实现白盒密码的方法和装置 | |
CN107147487B (zh) | 对称密钥随机分组密码 | |
CN112199696B (zh) | 基于白盒分组密码的加解密方法 | |
Abdoun et al. | Secure hash algorithm based on efficient chaotic neural network | |
US9264234B2 (en) | Secure authentication of identification for computing devices | |
US20210036864A1 (en) | Method and system for generating a keccak message authentication code (kmac) based on white-box implementation | |
Luo et al. | [Retracted] Optimization of AES‐128 Encryption Algorithm for Security Layer in ZigBee Networking of Internet of Things | |
Sheng et al. | An efficient chaotic image encryption scheme using simultaneous permutation–diffusion operation | |
CN114491587B (zh) | 基于类似sm4结构的白盒密码加解密方法 | |
Rahul et al. | Chaos-based audio encryption algorithm using biometric image and SHA-256 hash algorithm | |
Muhalhal et al. | A hybrid modified lightweight algorithm for achieving data integrity and confidentiality | |
Cao et al. | Analysis and improvement of aes key expansion algorithm | |
Abdoun | Design, implementation and analysis of keyed hash functions based on chaotic maps and neural networks | |
CN112737767B (zh) | 抗差分功耗分析与时间攻击的消息认证码生成方法及系统 | |
CN115277239A (zh) | 数据库数据的加密方法及装置 | |
Shoukat et al. | Randomized substitution method for effectively secure block ciphers in IOT environment | |
WO2022026755A1 (en) | Secure massively parallel computation for dishonest majority | |
CN112507357A (zh) | 一种基于密钥生成器的多级接口设计方法 | |
Huang et al. | Covert communication scheme based on Bitcoin transaction mechanism | |
Windarta et al. | Two new lightweight cryptographic hash functions based on saturnin and beetle for the Internet of Things | |
CN114337993B (zh) | 一种应用于边缘物联代理的白盒sm4加解密方法及系统 | |
CN114254372B (zh) | 数据加密处理方法、系统及电子设备 |
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 |