1.本发明涉及量子安全技术领域,具体涉及一种批量量子加密方法、设备及存储介质。
背景技术:
2.随着科技的不断发展,量子技术也在不断发展,随之而来的量子加密技术成为未来数据通信加密领域的核心技术。在双方通信的过程中,总难免会有第三方想去窃取通信过程中的信息,而量子加密技术的出现就是为了防止信息被窃取。量子加密的含义是把我们希望传送的信息,称为明文,通过量子密钥加密把明文变成一串只有接收方才能理解的信息,这个信息称为密文。而量子加密的安全性在实际运用中已经得到了肯定。
3.现有的量子加密方法是获取与明文同样字节的量子密钥,然后通过量子密钥对明文进行一字节一字节的加密,这种量子加密方法对于常规的数据处理是没有问题的;但是针对一些需要对大流量数据做量子加密的场景来说,比如音频数据、视频数据等,采用现有的量子加密方法其加密效率太低,而且耗时久,会造成数据的延迟,占用系统资源。
技术实现要素:
4.发明目的:本发明目的是提供一种批量量子加密方法、设备及存储介质,解决了在大流量数据做量子加密时,采用现有的量子加密方法其加密效率太低,而且耗时久,会造成数据延迟的问题。
5.技术方案:本发明一种批量量子加密方法,包括以下步骤:
6.(1)发送端接收明文的加密请求,并根据明文的字节长度和量子加密的加密比例确定获取的量子密钥串长度;再将量子密钥串的长度扩充至与明文相同的字节长度;
7.(2)然后,发送端根据本地系统的最小寻址单位将明文进行拆分成多个明文块并按拆分顺序标上序号,明文拆分完成后,将量子密钥串按照与明文拆分相同的方式进行拆分成多个量子密钥块并按拆分顺序标上序号;接着,将所有字节长度相同且序号相同的明文块和量子密钥块一一对应并分别进行量子加密得到对应的量子密文块,再将量子密文块标上序号;
8.(3)最后,发送端将所有量子密文块按序号顺序依次进行拼接得到完整的量子密文,再将完整的量子密文传输到接收端。
9.进一步地,所述根据明文的字节长度和量子加密的加密比例确定获取的量子密钥串长度具体过程为:
10.首先获取明文的字节长度记为a和量子加密的加密比例为1:b,然后利用明文的字节长度a除以量子加密的加密比例数值b得到商c,则获取的量子密钥串长度为c。
11.进一步地,所述将量子密钥串的长度扩充至与明文相同的字节长度具体过程为:
12.首先获取长度为c的量子密钥串,将量子密钥串的每一位密钥进行拆分并按拆分顺序标上序号,再将量子密钥串的每一位密钥复制b次,最后按照序号顺序进行拼接得到长
度为a的量子密钥串。
13.进一步地,所述发送端根据本地系统的最小寻址单位将明文进行拆分成多个明文块并按拆分顺序标上序号的具体过程为:
14.1)发送端获取本地系统的最小寻址单位字节长度记为m,然后利用明文字节长度a除以最小寻址单位字节长度m得到商e和余数f;
15.2)将字节长度为a的明文拆分成e个m字节的明文块和f个1字节的明文块,并按拆分顺序给每个明文块标上序号。
16.进一步地,所述发送端根据本地系统的最小寻址单位将明文进行拆分成多个明文块并按拆分顺序标上序号的具体过程为:
17.a)发送端获取本地系统的最小寻址单位字节长度记为m,然后根据明文字节长度a寻找最近邻的m
×2n
,且字节长度a≥m
×2n
,按从前往后的顺序从明文中拆分m
×2n
字节长度的明文记为第一明文块,剩下的明文字节长度为a1,n为自然数;
18.b)将剩下的明文字节长度a1与最小寻址单位字节长度m进行比较,若剩下的明文字节长度a1大于等于字节长度m,则根据剩下明文字节长度a1寻找最近邻的m
×2n
′
,且字节长度a1≥m
×2n
′
,按从前往后的顺序从剩下的明文中拆分m
×2n
′
字节长度的明文记为第二明文块,剩下的明文字节长度为a2,n
′
为自然数;若剩下的明文字节长度a1小于字节长度m,则将剩下的明文拆分成a1个1字节的明文块;
19.c)将剩下的明文字节长度a2与最小寻址单位字节长度m进行比较,若剩下的明文字节长度a2大于等于字节长度m,则根据剩下明文字节长度a2寻找最近邻的m
×2n
″
,且字节长度a2≥m
×2n
″
,按从前往后的顺序从剩下的明文中拆分m
×2n
″
字节长度的明文记为第三明文块,剩下的明文字节长度为a3,n
″
为自然数;若剩下的明文字节长度a2小于字节长度m,则将剩下的明文拆分成a2个1字节的明文块;
20.d)依此类推,直至剩下的明文字节长度a
x
小于字节长度m,此时已获得第一至第x明文块,然后将字节长度a
x
对应的明文拆分成a
x
个1字节的明文块并按拆分顺序标上序号。
21.进一步地,所述将所有字节长度相同且序号相同的明文块和量子密钥块一一对应并分别进行量子加密得到对应的量子密文块,再将量子密文块标上序号具体过程为:
22.首先将字节长度相同且序号相同的明文块和量子密钥块一一对应从而形成多个明文密钥对,然后发送端利用本地系统的指令集对每个明文密钥对进行量子加密得到多个量子密文块,最后将量子密文块标上与对应的明文块相同的序号。
23.本发明还包括一种计算机设备,所述计算机设备至少包括处理器和存储器,所述处理器用于执行存储器中存储的计算机程序时实现如上述权利要求中任一所述批量量子加密方法。
24.本发明还包括一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时实现如上述权利要求中任一所述批量量子加密方法。
25.本发明的有益效果:本发明在现有量子加密方法进行了创新,现有量子加密方法通过量子密钥对明文进行一字节一字节的加密,也就是进行了太多次的加密循环操作,导致了加密效率太低,而且耗时久;而本发明根据本地系统的最小寻址单位将明文和量子密钥串进行拆分成多个明文块和多个量子密钥块,然后将对应的明文块和量子密钥块进行量子加密得到对应的量子密文块,量子密文块再进行拼接得到完整的量子密文,由此可见,本
发明将一字节一字节的加密方式改成了基于本地系统最小寻址单位的批量加密方式,减少了系统的裁剪和内存运算,减少了加密次数,极大的提高量子加密的效率;同时,由于本发明针对的是大流量数据做量子加密的场景,因此获取量子密钥之后对量子密钥进行了扩充,不再是直接获取与明文同样字节的量子密钥,虽然在安全性上有所降低,但是能够防止持续的数据流造成的消耗和资源占用,非常适合用于大流量数据的量子加密。
附图说明
26.图1为本发明流程图;
27.图2为明文和量子密钥串进行拆分及量子加密示意图。
具体实施方式
28.下面结合附图和实施例对本发明做进一步描述:
29.实施例1
30.原先的量子加密,就是根据明文获取对应的量子密钥,再通过加密得到量子密文的过程,具体来说就是从量子密钥文件系统中获取与明文长度一样的量子密钥,再将明文拆分与量子密钥做一个字节一个字节的加密,其耗时耗资源可想而知。
31.本发明的批量量子加密方法,其根据本地系统的最小寻址单位将明文和量子密钥串进行拆分成多个明文块和多个量子密钥块,然后将对应的明文块和量子密钥块进行量子加密得到对应的量子密文块,量子密文块再进行拼接得到完整的量子密文;由此可见,本发明将一字节一字节的加密方式改成了基于本地系统最小寻址单位的批量加密方式,减少了加密次数,极大的提高量子加密的效率,其具体步骤如下:
32.(1)如图1所示,发送端接收明文的加密请求,并根据明文的字节长度和量子加密的加密比例确定获取的量子密钥串长度,其具体过程为:
33.首先获取明文的字节长度记为a和量子加密的加密比例为1:b,然后利用明文的字节长度a除以量子加密的加密比例数值b得到商c,则获取的量子密钥串长度为c。量子加密的加密比例,即每一份量子密钥串可以加密多少份明文,比例越高,量子密钥串的消耗就越小,但同时其加密的安全性就会降低,在音视频这种大数据流的情况下,这个比例就会相应提高一些,防止持续的数据流造成一定的性能消耗和资源占用。
34.举例说明:发送端对明文进行加密,假设这份明文长度为126字节,约定当前量子加密的加密比例为1:2,即每一份量子密钥串对应两份明文,利用明文的字节长度126除以量子加密的加密比例数值2得到商63,这样即表明获取63字节的量子密钥串才能完成接下来的量子加密过程。
35.然后,再将量子密钥串的长度扩充至与明文相同的字节长度,具体过程为:
36.首先获取长度为c的量子密钥串,将量子密钥串的每一位密钥进行拆分并按拆分顺序标上序号,再将量子密钥串的每一位密钥复制b次,最后按照序号顺序进行拼接得到长度为a的量子密钥串。
37.获取63字节的量子密钥串之后,根据当前的加密比例,将量子密钥串的每一位密钥进行拆分并按拆分顺序标上序号,再将量子密钥串的每一位密钥复制2次,这样就可以将量子密钥串扩充成符合要求的126字节的量子密钥串,扩充完之后,量子密钥串的长度和明
文的长度一样,这个时候用现有的加密方案就是一个字节一个字节的对应加密,需要循环126次加密才能得到最后的量子密文,加密效率太低,而且耗时久;
38.(2)接下来本发明进行批量加密的步骤,首先发送端根据本地系统的最小寻址单位将明文进行拆分成多个明文块并按拆分顺序标上序号,明文拆分完成后,将量子密钥串按照与明文拆分相同的方式进行拆分成多个量子密钥块并按拆分顺序标上序号;
39.如图2所示,由于明文拆分的方式和量子密钥串拆分的方式相同,此处以明文拆分为例,具体过程为:1)发送端获取本地系统的最小寻址单位字节长度记为m,然后利用明文字节长度a除以最小寻址单位字节长度m得到商e和余数f;2)将字节长度为a的明文拆分成e个m字节的明文块和f个1字节的明文块,并按拆分顺序给每个明文块标上序号。
40.发送端的本地系统最小寻址单位可以是32位寻址单位、64位寻址单位等等,假定当前发送端是支持64位寻址单位,64位寻址单位即相当于8字节寻址单位,然后利用明文字节长度126除以最小寻址单位字节长度8得到商15和余数6;那么就将明文拆分成15个8字节的明文块和6个1字节的明文块,并按拆分顺序给每个明文块标上序号,序号就是从1、2、3依次往后进行标注;与此同时,量子密钥串也按照这样的要求划分成同样的21份,并按拆分顺序标上序号,序号也是从1、2、3依次往后进行标注;
41.接着,将所有字节长度相同且序号相同的明文块和量子密钥块一一对应并分别进行量子加密得到对应的量子密文块,再将量子密文块标上序号,其具体过程为:首先将字节长度相同且序号相同的明文块和量子密钥块一一对应从而形成多个明文密钥对,然后发送端利用本地系统的指令集对每个明文密钥对进行量子加密得到多个量子密文块,最后将量子密文块标上与对应的明文块相同的序号。
42.也就是说,第一块8字节的明文块和第一块8字节的量子密钥块一一对应形成一个明文密钥对,发送端利用本地系统的指令集对该明文密钥对进行量子加密得到量子密文块,最后将量子密文块标上与对应的明文块相同的序号;同理,将所有明文块和量子密钥块利用系统指令集做量子加密;
43.(3)最后,发送端将所有量子密文块按序号顺序依次进行拼接得到完整的量子密文,再将完整的量子密文传输到接收端。本发明只计算了21次的量子加密,同现有的126次量子加密相比,性能优化明显,极大的减少了加密时的循环操作,使得计算的熵值成指数级降低,量子加密的速率得到明显的提升;同时利用指令集操作,减少了函数调用的开销,优化了性能;并且以寻址单位来做批量操作,减少了系统的裁剪和内存运算,在最底层的消耗和获取上,最大化的使用了系统的资源,避免了很多不必要的操作。
44.实施例2
45.本实施例与实施例1基本相同,不同之处在于,本实施例中发送端根据本地系统的最小寻址单位将明文进行拆分成多个明文块并按拆分顺序标上序号的具体过程为:
46.a)发送端获取本地系统的最小寻址单位字节长度记为m,然后根据明文字节长度a寻找最近邻的m
×2n
,且字节长度a≥m
×2n
,按从前往后的顺序从明文中拆分m
×2n
字节长度的明文记为第一明文块,剩下的明文字节长度为a1,n为自然数;
47.b)将剩下的明文字节长度a1与最小寻址单位字节长度m进行比较,若剩下的明文字节长度a1大于等于字节长度m,则根据剩下明文字节长度a1寻找最近邻的m
×2n
′
,且字节长度a1≥m
×2n
′
,按从前往后的顺序从剩下的明文中拆分m
×2n
′
字节长度的明文记为第二明
文块,剩下的明文字节长度为a2,n
′
为自然数;若剩下的明文字节长度a1小于字节长度m,则将剩下的明文拆分成a1个1字节的明文块;
48.c)将剩下的明文字节长度a2与最小寻址单位字节长度m进行比较,若剩下的明文字节长度a2大于等于字节长度m,则根据剩下明文字节长度a2寻找最近邻的m
×2n
″
,且字节长度a2≥m
×2n
″
,按从前往后的顺序从剩下的明文中拆分m
×2n
″
字节长度的明文记为第三明文块,剩下的明文字节长度为a3,n
″
为自然数;若剩下的明文字节长度a2小于字节长度m,则将剩下的明文拆分成a2个1字节的明文块;
49.d)依此类推,直至剩下的明文字节长度a
x
小于字节长度m,此时已获得第一至第x明文块,然后将字节长度a
x
对应的明文拆分成a
x
个1字节的明文块并按拆分顺序标上序号。
50.假定当前发送端是支持64位寻址单位,64位寻址单位即相当于8字节寻址单位,然后根据明文字节长度126寻找最近邻的8
×2n
,且字节长度126≥8
×2n
,2n则为8,n为3,按从前往后的顺序从明文中拆分8
×
8=64字节长度的明文记为第一明文块,剩下的明文字节长度为62;
51.将剩下的明文字节长度62与最小寻址单位字节长度8进行比较,剩下的明文字节长度62大于等于字节长度8,则根据剩下明文字节长度62寻找最近邻的8
×2n
′
,且字节长度62≥8
×2n
′
,2n′
则为4,n为2,按从前往后的顺序从剩下的明文中拆分8
×
4=32字节长度的明文记为第二明文块,剩下的明文字节长度为30;
52.依此类推,第三明文块字节长度为16字节长度,2n″
为2;第四明文块字节长度为8字节长度,2n″′
为1;第四明文块拆分之后,剩下的明文字节长度6小于字节长度8,然后将字节长度6对应的明文拆分成6个1字节的明文块并按拆分顺序标上序号,序号就是从5、6、7依次往后进行标注;与此同时,量子密钥串也按照这样的要求划分成同样的10份,并按拆分顺序标上序号;
53.接着,将字节长度相同且序号相同的明文块和量子密钥块一一对应从而形成多个明文密钥对,然后发送端利用本地系统的指令集对每个明文密钥对进行量子加密得到多个量子密文块,最后将量子密文块标上与对应的明文块相同的序号;也就是说,第一块64字节的明文块和第一块64字节的量子密钥块一一对应形成一个明文密钥对,发送端利用本地系统的指令集对该明文密钥对进行量子加密得到量子密文块,最后将量子密文块标上与对应的明文块相同的序号;同理,将所有明文块和量子密钥块利用系统指令集做量子加密;
54.最后,发送端将所有量子密文块按序号顺序依次进行拼接得到完整的量子密文,再将完整的量子密文传输到接收端。本实施例只计算了10次的量子加密,同现有的126次量子加密相比,性能得到进一步优化,量子加密的速率进一步得到提升。
55.本发明实施例还提供一种计算机设备,计算机设备至少包括处理器和存储器,存储器存储有计算机程序,处理器用于执行存储器中存储的计算机程序时实现本发明实施例的批量量子加密方法的步骤。
56.本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现本发明实施例的批量量子加密方法的步骤。