本发明涉及计算机通信安全领域,尤其涉及一种密码算法的加性扩展实现方法。
背景技术:
1、密码算法,包括对称密码算法(也称分组密码算法)、非对称密码算法(公钥算法)和流密码算法中,按比特异或是一种常用的运算。按比特异或的特点是异或结果仅影响一个比特,不影响相邻的其它比特,即:比特间无扩散。同时运算也相对简单,快捷。
2、因为异或的简单和无扩散性,使得能量攻击有了目标点,在选择明文攻击中,可根据不同比特逐位选择而确认能量的极大值和极小值,从而获取密钥相关信息,安全性低。
技术实现思路
1、基于此,本发明的目的在于提供一种密码算法的加性扩展实现方法,与按比特异或相比,安全性更高,适合多种分组密码的扩展并适合更多模式。为实现上述目的,本发明的技术方案如下:
2、一种密码算法的加性扩展实现方法,包括加密过程和解密过程;
3、在加密过程中,在不改变密码算法核心运算的情况下,将分组密码算法、非对称密码算法或流密码算法中现有的加密模式中的按比特异或运算扩展为按l比特的gl群加法运算或减法运算;
4、在解密过程中,在不改变密码算法核心运算的情况下,将分组密码算法、非对称密码算法或流密码算法中现有的解密模式中的按比特异或运算扩展为按l比特的gl群加法运算或减法运算;
5、其中,按比特长度l定义二进制加法群gl=(0~n-1),n=2l,l≥2,l为正整数;
6、定义群单位元、群逆元素和群加法与减法如下:
7、a)群单位元为0;
8、b)群逆元素:a的逆元素a-1为a-1=n-a;
9、c)加法“+”:
10、a∈gl,b∈gl,则c=a+b定义为:
11、c=a+b mod n,c∈gl;
12、符号∈表示属于,即b∈gl表示b属于gl;
13、d)减法“-”:
14、a∈gl,b∈gl,则d=a-b定义为:d=a+b-1;
15、满足封闭性:
16、c)a∈gl,b∈gl,则c=a+b,且c∈gl;
17、d)a∈gl,b∈gl,则d=a-b=a+b-1,且d∈gl;
18、满足交换律:
19、a∈gl,b∈gl,则c=a+b=b+a,c∈gl。
20、在不改变分组密码算法核心运算的情况下,对多种加解密模式中的“按比特异或”运算,扩展为按“l比特的gl群加减法”运算。
21、为方便起见,本发明定义:分组数据在gl群的加减法运算如下:
22、已知:a、b、c和d是四个与分组长度n相同的二进制数,n=n*l,即:数据长度n可以被分拆成n个长度l的子数据段。则:
23、a=a1||a2||a3||…||an,b=b1||b2||b3||…||bn,c=c1||c2||c3||…||cn,
24、d=d1||d2||d3||…||dn,其中||表示数据拼接,则:
25、为方便起见,本发明定义a与b的加法如下:
26、c=a+b=c1||c2||c3||…||cn,记作c=(a+b)gl
27、其中:c1=a1+b1mod 2l,c2=a2+b2mod 2l,…,cn=an+bn mod 2l;
28、定义a与b的减法如下:
29、d=a-b=d1||d2||d3||…||dn,记作d=(a-b)gl
30、其中:d1=a1-b1mod 2l,d2=a2-b2mod 2l,…,dn=an-bn mod 2l;
31、进一步地,参照图1,对于所述分组密码算法,2≤l≤m,其中m为分组密码算法的分组长度,按l比特的gl群加法运算或减法运算具体如下:
32、两个分组长度为m的数据a和数据b,分别按照比特长度l分成m个子段,a={a1,a2,…,am},b={b1,b2,…,bm}。
33、按l比特的gl群加法运算为:c=a+b={c1,c2,…,cm},其中,ci=ai+bi mod2l,i=1,2,…,m;
34、按l比特的gl群减法运算为:d=a-b={d1,d2,…,dm},其中,di=ai-bi mod2l,i=1,2,…,m;
35、其中,加法符号“+”表示gl群的加法运算,减法符号“-”表示gl群的减法运算。
36、进一步地,在一个分组运算中,比特长度l为一个固定值,或者,比特长度l为2个或多个不同的值;
37、当比特长度l为一个固定值时,比特长度l为可被分组长度m整除的整数,即将原来m次比特的异或运算扩展为m次gl群加法或减法,表述为:l1=l2=…=lm=l,m=l1+l2+…+lm;m=m/l;其中,l1,l2…lm分别表示各个子段的比特长度;
38、或者,当比特长度l为2个或多个不同的值时,即将原来m次比特异或扩展为k次glk群加法或减法,表述为:m=l1+l2+…+lk,其中,k为整数,k≥2,k=m;l1,l2,…lk表示比特长度l为2个或多个不同的值,lk={l1,l2,…lk}。l1,l2…lk分别代表各个子段的比特长度。
39、进一步地,所述分组密码算法采用密文分组链接(cbc)模式、密文反馈(cfb)模式、输出反馈(ofb)模式或分组链接(bc)模式等采用按比特异或运算的密码运算模式。
40、进一步地,所述分组密码算法为国密对称分组密码算法或国际对称分组密码算法,所述国密对称分组密码算法为国密算法的sm1、sm4、sm6、sm7中的一种,所述国际对称分组密码算法为国际算法的des、tde、aes128、aes256中的一种。
41、进一步地,所述非对称密码算法为sm2算法或ecc算法;或者,所述流密码算法采用输出反馈(ofb)模式、计数器(ctr)模式或祖冲之zuc密码算法。
42、进一步地,对于分组密码算法、非对称密码算法或流密码算法,加密过程使用gl群加法运算,解密过程使用gl群减法运算;或者,加密过程使用gl群减法运算,解密过程使用gl群加法运算。
43、按比特异或运算扩展为按l比特的gl群加法运算或减法运算,可以是加密过程使用gl群加法运算,解密过程使用gl群减法运算;也可以是加密过程使用gl群减法运算,解密过程使用gl群加法运算。
44、进一步地,对于非分组密码算法,如非对称密码算法、流密码算法等密码算法数据长度不定,每次加密、解密的数据长度不同,可以按照如下方式使用加性扩展方式替代原有的按比特异或运算,具体地:
45、对于分组长度m的数据,先按照固定比特长度l进行分组,如果分组长度m是比特长度l的整数倍,则只要进行m次gl群加法或减法来替换原有的m次按比特异或运算即可,其中m=m/l;
46、对于分组长度m的数据,先按照固定比特长度l进行分组,如果m不是l的整数倍,即:m=m*l+n,其中n<l,n=m mod l。在此情况下,需要进行m次gl群加法或减法及一次gn群加法或减法来代替原有的m次按比特异或运算。
47、本发明的有益效果是:
48、本发明的密码算法的加性扩展实现方法,将按照单比特异或运算扩展为多比特的gl群的加法及减法运算,安全性更高。适合多种分组密码的扩展并适合更多模式;适合长报文加密后密文计算校验和的场景。