一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种非对称密匙加密方法与流程

2021-10-29 20:51:00 来源:中国专利 TAG:算法 加密 改进 非对称 优化


1.本发明涉及一种非对称密匙加密方法,属于电通信与改进算法优化技术领域。


背景技术:

2.现有技术中采用非对称加密算法对待加密数据进行加密,非对称加密算法的有效密匙长度为32位,密匙长度较短,这样对数据的加密性较低。待加密数据在进行迭代的过程比较单一,即使将密匙的长度增加,但是其迭代过程不会发生改变。


技术实现要素:

3.本发明要解决的技术问题是提供一种非对称密匙加密方法,用于解决上述问题。
4.本发明的技术方案是:一种非对称密匙加密方法,具体步骤为:
5.step1:增加初始获取数据量,对原文的信息长度进行1024bit取余,不足的进行填充,填充完后,信息的长度就是(1024*n 896)bit。通过改变填充方法,达到与现有算法不一致填充数据的目的,将m记为处理后的原文长度。
6.step2:对数据进行初始处理,数据初始处理后的信息长度为1024*(n 1)bit,然后用哈希算法将1024bit数据进行分组,变为256bit明文数据,从而增加分组位数,提高密文的复杂性。
7.step3:进行第一次循环,由密匙1与明文进行异或处理,得到新128bit密文数据。从而增加密匙长度,原有密匙长度大多为32bit,本发明将密匙长度增加至128bit,提高密匙的复杂性。
8.step4:进行第二次循环,由密匙2与第三步得出一次加密的密文数据进行异或处理,得到新的128bit密文。从而减少密匙与明文的处理非线性函数,由4个变为2个,缩短计算时间,提升加密效率。
9.step5:将经过二次加密后的密文数据按照加密的先后顺序进行拼接处理,得出明文对应的最终加密数据。从而将单次循环改进为二次循环,增加密文的复杂性,提高算法的安全性。
10.所述step1中进行填充具体为:奇数位填充1,偶数位填充0。
11.step2具体步骤为:
12.step2.1:将256bit加密数据分为2组128bit初始值,前128bit记为a0,后128位记为b0。
13.step2.2:将任意长密匙1分成n个128bit数据,不足的128bit进行补位,首位补1,其余位补0。
14.step2.3:将b0与密匙1进行异或处理,得到新的数据c0。
15.step3具体步骤为:
16.step3.1:将256bit加密数据分为2组128bit初始值,前128bit记为a0,后128位记为b0。
17.step3.2:将任意长密匙1分成n个128bit数据,不足的128bit进行补位,首位补1,其余位补0。
18.step3.3:将b0与密匙1进行异或处理,得到新的数据c0。
19.step3.4:将第一组作为循环方向,前4bit转为10进制为行,后4it转为10进制为列,查询循环方向表,确定循环方向。
20.step3.5:将最后一组作为单次循环位数,前4bit转为10进制为行,后4it转为10进制为列,查询循环位数表,确定循环位数。
21.step3.6:将处理后的数据a0记为b1,b0记为a1。
22.step4具体步骤为:
23.step4.1:将256bit加密数据分为2组128bit初始值,前128bit记为e0,后128位记为f0。
24.step4.2:将任意长密匙1分成n个128bit数据,不足的128bit进行补位,首位补1,其余位补0。
25.step4.3:将f0与密匙1进行异或处理,得到新的数据g0。
26.step4.4:将第一组作为循环方向,前4bit转为10进制为行,后4it转为10进制为列,查询对应循环方向表,确定循环方向。
27.step4.5:将最后一组作为单次循环位数,前4bit转为10进制为行,后4it转为10进制为列,查询对应循环位数表,确定循环位数。
28.step4.6:将处理后的数据e0记为f1,f0记为e1。
29.将经过二次加密数据e1和f1,按照处理的先后顺序拼接起来,输出密文。
30.本发明提出用户可以使用任意有限长度的密匙,其迭代过程中的循环方向、循环次数等都与密匙相关,这样增加了信息传递的安全性与可靠性。非对称密钥加密算法基础循环加工过程,准备需要用到的数据包括:
31.常数:a=(0123456789abcdef)16,b=(fedcba9876543210)16
32.非线性函数:f(x,y)=x

y;g(x,y)=(~x)

y
33.本发明的有益效果是:本发明通过对非对称密匙加密算法循环加工过程进行优化,减少了加密所用的时间,减少了子循环次数;通过将单次循环变为二次加工后循环,提高了加密的复杂度。
附图说明
34.图1是本发明的步骤流程图。
具体实施方式
35.下面结合附图和具体实施方式,对本发明作进一步说明。
36.实施例1:如图1所示,一种非对称密匙加密方法,先将任意长度的明文按字节长度进行分组,每组为256bit,将256bit按照128bit组分2组;再将密匙分为每组128bit,用密匙对明文进行处理,只对前组处理过的明文进行循环加密,主循环的循环次数为m/256*2,其中m为处理后的原文长度,每个循环中包含256/128*2=4次子循环。
37.具体步骤为:
38.step1:增加初始获取数据量;
39.将原始明文长度按照字节长度1024bit取余,并对明文进行填充,填充完后,信息的长度就是(1024*n 896)bit,用128bit填充原始明文长度,处理后的信息长度为1024*(n 1)bit。
40.step2:数据初始处理;
41.数据初始处理后的信息长度为1024*(n 1)bit,然后用哈希算法将1024bit数据变为256bit明文数据,将256bit按照128bit进行分2组,只对前组处理过的明文进行循环加密。
42.step3:第一次循环加密;
43.将密匙1进行分组,与明文一一对应进行异或处理,每次循环会产生一段新的128bit密文数据。
44.step4:第二次循环加密;
45.将密匙2进行分组,与经过一次加密后的密文一一对应进行异或处理,每次循环会产生一段新的128bit密文数据。
46.step5:输出密文;
47.将经过二次加密的密文数据,按照处理的先后顺序拼接起来,得到最终的密文数据。
48.本发明中具体加密过程为:
49.1、数据填充:
50.所述step1中明文对1024bit取余,如果结果不为896bit,则对原文进行填充;填充的方法是奇数位填充1,偶数位填充0。填充完成后信息的长度就是(1024*n 896)bit明文数据。
51.2、记录原文:
52.所述step1中,用128bit记录原文的真正长度,把长度的二进制值补在最后,使处理后的信息长度为1024*(n 1)bit。将处理后的明文数据记为m,将m按照256bit数据进行分组,组数为m/256组。
53.3、第一次密匙加密:
54.所述step3中,利用非对称密匙加密算法对第二步中哈希算法得到的256bit数据进行初次加密处理,得到256bit密文数据。其特征在于:将初次加密的256bit数据,分为2组128bit初始值。前128bit记为a0,后128bit记为b0。
55.3.1、密匙1分组:
56.所述step3中,将任意有限长度的密匙1进行分组处理,分成n个128bit的数据,不足128bit的进行补位,可以将首位补1,其余位补0。
57.3.2、原始明文加密:
58.在所述step3中,将b0与密匙1进行异或运算,得到新的128bit密文数据,记为数据c0,将该数据c0每8bit记为一组;先根据密匙1确定循环方向,将密匙1第一小组作为循环方向,将前4bit转换为10进制后作为行,后4bit转换为10进制后作为列,查询附表1循环方向表;再根据密匙1确定循环位数,将密匙1最后小组作为单次循环移位数,将前4bit转换为10进制后作为行,后4bit转换为10进制后作为列,查询附表2循环位数表。
[0059]1‑1‑
1111

1111

111

111
‑1‑1‑1‑1‑1‑
11111

111

11
‑1‑
1111
‑1‑1‑
11111
‑1‑1‑
11

111
‑1‑1‑1‑1‑1‑
11111

11

11
‑1‑1‑
11
‑1‑1‑
11
‑1‑
11
‑1‑1‑
1111

111111

11111111
‑1‑
111
‑1‑1‑
111

111
‑1‑
1111
‑1‑
111
‑1‑1‑1‑
11

11
‑1‑
11
‑1‑1‑1‑
11

11

11
‑1‑1‑1‑
111

11

1111

111
‑1‑1‑
11
‑1‑1‑
11

1111
‑1‑
1111
‑1‑1‑
1111111111

11
‑1‑1‑
11
‑1‑1‑
111
‑1‑1‑
11

11

11111
‑1‑1‑
11
‑1‑
11
‑1‑1‑
111111
‑1‑1‑1‑1‑1‑1‑1‑
11

1111111
‑1‑1‑
11
‑1‑1‑
1111
‑1‑1‑
11
‑1‑1‑
111111
‑1‑1[0060]
附表1:循环方向表
[0061]
3.3、第一次密文生成:
[0062]
将循环移位的数据c0记为新的密文数据a1,数据a0记为密文数据b1。
[0063]
4、第二次密匙加密:
[0064]
所述step4,将第一次密文进行二次加密,分为2组128bit待加密数据,前128bit记为e0,后128bit记为f0。
[0065]
4.1、密匙2分组:
[0066]
所述step4中,将任意有限长度的密匙2做分组处理,分成n个128bit的数据,不足128bit的进行补位,可以将首位补1,其余位补0。
[0067]
4.2、明文二次加密:
[0068]
在所述step4中,将e0与密匙2进行异或运算,得到新的128bit密文数据,记为数据g0,将该数据g0每8bit记为一组。先根据密匙2确定循环方向,将密匙2第一小组作为循环方向,将前4bit转换为10进制后作为行,后4bit转换为10进制后作为列,查询附表1循环方向;再根据密匙2确定循环位数,将密匙2最后小组作为单次循环位移数,将前4bit转换为10进制后作为行,后4bit转换为10进制后作为列,查询附表2循环位数表。
[0069]
77687846647855854884634844835753466684554467546453533874673567645476375678788677675448457647373444565754843667566336576444748664
74565577446847747846546875763636667477473644683545536388477843766834866643745434354666556875755357454433676458486657583336346688
[0070]
附表2:循环位数表
[0071]
4.3、第二次密文生成:
[0072]
经过明文二次加密,将循环位移过后的密文数据g0记为密文数据f1,数据f0记为密文数据e1。
[0073]
5、输出密文:
[0074]
原始明文经过二次加密,将经过二次循环的f1和e1按照处理的先后顺序拼接在一起,生成由密匙对应的密文。
[0075]
以上结合附图对本发明的具体实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜