批量加密方法、相关装置、系统、设备、介质及程序产品与流程

文档序号:31392837发布日期:2022-09-03 02:45阅读:91来源:国知局
批量加密方法、相关装置、系统、设备、介质及程序产品与流程

1.本说明书涉及计算机技术领域,尤其涉及一种批量加密方法、相关装置、系统、设备、介质及程序产品。


背景技术:

2.ou(okamoto-uchiyama)是一种加法同态加密算法,允许人们对密文进行加法运算并得到仍然是加密的结果,将其解密所得到的结果与对明文进行同样的运算结果一样。ou是一种非常优秀的密码学技术,在多方安全计算场景中广泛应用。用户在利用ou加密多个明文时,一次只能加密一个明文,因此加密得到的密文也有很多个。


技术实现要素:

3.本说明书实施例提供了一种批量加密方法、相关装置、系统、设备、介质及程序产品,既能够一次加密多个明文,提高加密效率,又能够大幅地减少密文数量以及网络传输的通信量,还支持向量化计算,减少计算次数。上述技术方案如下:
4.第一方面,本说明书实施例提供了一种批量加密方法,包括:
5.获取n个第一明文;上述n为大于或等于2的正整数;
6.将上述n个第一明文按照第一预设规则进行拼接,得到第一目标明文;
7.采用预设加密算法对上述第一目标明文进行加密,得到第一目标密文。
8.在一种可能的实现方式中,上述n个第一明文包括有符号整数;
9.上述获取n个第一明文之后,上述将上述n个第一明文按照第一预设规则进行拼接,得到目标第一明文之前,上述方法还包括:
10.将为上述有符号整数的第一明文转化为对应的补码;
11.上述将上述n个第一明文按照第一预设规则进行拼接,得到第一目标明文,包括:
12.将上述n个第一明文中的上述有符号整数对应的上述补码按照第一预设规则进行拼接,得到第一目标明文。
13.在一种可能的实现方式中,上述n个第一明文还包括无符号整数;
14.上述将上述n个第一明文按照第一预设规则进行拼接,得到第一目标明文,包括:
15.将上述n个第一明文中的上述有符号整数对应的上述补码以及上述无符号整数按照第一预设规则进行拼接,得到第一目标明文。
16.在一种可能的实现方式中,上述将上述n个第一明文按照第一预设规则进行拼接,得到第一目标明文,包括:
17.将上述n个第一明文按照预设顺序进行拼接,得到第一目标明文。
18.在一种可能的实现方式中,上述第一目标明文包括上述n个第一明文以及上述n个第一明文中每相邻两个第一明文之间的预设间隙;上述预设间隙由d位预设数字组成;上述d为正整数。
19.在一种可能的实现方式中,上述n个第一明文中每个第一明文的大小相同。
20.在一种可能的实现方式中,上述方法应用于第一终端,上述预设加密算法为加法同态加密算法;
21.上述方法还包括:
22.获取m组第二明文;上述m为正整数;上述m组第二明文中的每组第二明文包括n个第二明文;上述n个第二明文分别与上述n个第一明文一一对应;
23.将每组上述第二明文按照第一预设规则进行拼接,得到m个第二目标明文;
24.采用预设加密算法对上述m个第二目标明文进行加密,得到m个第二目标密文;
25.将上述第一目标密文和上述m个第二目标密文发送至第二终端;
26.接收上述第二终端返回的第三目标密文;上述第三目标密文为上述第一目标密文与上述m个第二目标密文相加的结果;
27.对上述第三目标密文进行解密,得到第三目标明文;
28.将上述第三目标明文按照第二预设规则进行截取,得到上述n个第一明文和上述m组第二明文对应相加的n个结果。
29.第二方面,本说明书实施例提供了另一种批量加密方法,应用于第二终端,包括:
30.接收第一终端发送的第一目标密文和m个第二目标密文;上述第一目标密文包括n个第一明文;上述n为大于或等于2的正整数;上述m个第二目标密文包括m组第二明文;上述m为正整数;上述m组第二明文中的每组第二明文包括n个第二明文;上述n个第二明文分别与上述n个第一明文一一对应;
31.将上述第一目标密文和上述m个第二目标密文相加,得到第三目标密文;上述第三目标密文为上述第一目标密文与上述m个第二目标密文相加的结果;
32.将上述第三目标密文发送至上述第一终端。
33.第三方面,本说明书实施例提供了一种第一终端,上述第一终端包括:
34.第一获取模块,用于获取n个第一明文;上述n为大于或等于2的正整数;
35.第一拼接模块,用于将上述n个第一明文按照第一预设规则进行拼接,得到第一目标明文;
36.第一加密模块,用于采用预设加密算法对上述第一目标明文进行加密,得到第一目标密文。
37.在一种可能的实现方式中,上述n个第一明文包括有符号整数;
38.上述第一终端还包括:
39.转化模块,用于将为上述有符号整数的第一明文转化为对应的补码;
40.上述第一拼接模块具体用于,将上述n个第一明文中的上述有符号整数对应的上述补码按照第一预设规则进行拼接,得到第一目标明文。
41.在一种可能的实现方式中,上述n个第一明文还包括无符号整数;
42.上述第一拼接模块具体用于,将上述n个第一明文中的上述有符号整数对应的上述补码以及上述无符号整数按照第一预设规则进行拼接,得到第一目标明文。
43.在一种可能的实现方式中,上述第一拼接模块具体用于,将上述n个第一明文按照预设顺序进行拼接,得到第一目标明文。
44.在一种可能的实现方式中,上述第一目标明文包括上述n个第一明文以及上述n个第一明文中每相邻两个第一明文之间的预设间隙;上述预设间隙由d位预设数字组成;上述
d为正整数。
45.在一种可能的实现方式中,上述n个第一明文中每个第一明文的大小相同。
46.在一种可能的实现方式中,上述预设加密算法为加法同态加密算法;
47.上述第一终端还包括:
48.第二获取模块,用于获取m组第二明文;上述m为正整数;上述m组第二明文中的每组第二明文包括n个第二明文;上述n个第二明文分别与上述n个第一明文一一对应;
49.第二拼接模块,用于将每组上述第二明文按照第一预设规则进行拼接,得到m个第二目标明文;
50.第二加密模块,用于采用预设加密算法对上述m个第二目标明文进行加密,得到m个第二目标密文;
51.第一发送模块,用于将上述第一目标密文和上述m个第二目标密文发送至第二终端;
52.第一接收模块,用于接收上述第二终端返回的第三目标密文;上述第三目标密文为上述第一目标密文与上述m个第二目标密文相加的结果;
53.解密模块,用于对上述第三目标密文进行解密,得到第三目标明文;
54.截取模块,用于将上述第三目标明文按照第二预设规则进行截取,得到上述n个第一明文和上述m组第二明文对应相加的n个结果。
55.第四方面,本说明书实施例提供了一种第二终端,上述第二终端包括:
56.第二接收模块,用于接收第一终端发送的第一目标密文和m个第二目标密文;上述第一目标密文包括n个第一明文;上述n为大于或等于2的正整数;上述m个第二目标密文包括m组第二明文;上述m为正整数;上述m组第二明文中的每组第二明文包括n个第二明文;上述n个第二明文分别与上述n个第一明文一一对应;
57.计算模块,用于将上述第一目标密文和上述m个第二目标密文相加,得到第三目标密文;上述第三目标密文为上述第一目标密文与上述m个第二目标密文相加的结果;
58.第二发送模块,用于将上述第三目标密文发送至上述第一终端。
59.第五方面,本说明书实施例提供了一种批量加密系统,上述系统包括:如第三方面上述的第一终端以及第四方面上述的第二终端。
60.第六方面,本说明书实施例提供了一种电子设备,包括:处理器和存储器;
61.上述处理器与上述存储器相连;
62.上述存储器,用于存储可执行程序代码;
63.上述处理器通过读取上述存储器中存储的可执行程序代码来运行与上述可执行程序代码对应的程序,以用于执行本说明书实施例第一方面或第二方面或第一方面的任意一种可能的实现方式提供的方法。
64.第七方面,本说明书实施例提供了一种计算机存储介质,上述计算机存储介质存储有多条指令,上述指令适于由处理器加载并执行本说明书实施例第一方面或第二方面或第一方面的任意一种可能的实现方式提供的方法步骤。
65.第八方面,本说明书实施例提供了一种包含指令的计算机程序产品,当上述计算机程序产品在计算机或处理器上运行时,使得上述计算机或上述处理器执行本说明书实施例第一方面或第二方面或第一方面的任意一种可能的实现方式提供的批量加密方法。
66.在本说明书实施例中,可以将需要加密的n个第一明文按照第一预设规则进行拼接,得到第一目标明文,并采用预设加密算法对上述第一目标明文进行加密,得到第一目标密文,上述n为大于或等于2的正整数,从而实现一次加密多个明文即批量加密,提高加密效率。当第一终端想要第二终端对多组明文进行加法运算时,可以将多组明文按照上述过程进行加密,并将对应的多个目标密文发送给第二终端,上述每组明文包括n个目标明文,从而大幅地减少密文数量以及网络传输的通信量。当第二终端接收到上述多个目标密文后,可以将多个目标密文进行加法运算,并将最终得到包括上述多个目标密文之和的密文返回至第一终端,实现在确保用户数据的隐私性和安全性的同时,还支持向量化计算,减少计算次数,提高计算效率,并进一步减少了减少密文数量以及网络传输的通信量,提升了网络传输效率。
附图说明
67.为了更清楚地说明本说明书实施例中的技术方案,下面将对实施例中所需使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
68.图1为本说明书一示例性实施例提供的一种批量加密系统的架构示意图;
69.图2为本说明书一示例性实施例提供的一种批量加密方法的流程示意图;
70.图3a为本说明书一示例性实施例提供的一种拼接的过程示意图;
71.图3b为本说明书一示例性实施例提供的另一种拼接的过程示意图;
72.图4为本说明书一示例性实施例提供的一种n最大值的示意图;
73.图5a为本说明书一示例性实施例提供的一种有符号整数进行拼接的过程示意图;
74.图5b为本说明书一示例性实施例提供的一种无符号整数进行拼接的过程示意图;
75.图6为本说明书一示例性实施例提供的另一种批量加密方法的流程示意图;
76.图7为本说明书一示例性实施例提供的一种n个第一明文与m组第二明文的示意图;
77.图8为本说明书一示例性实施例提供的一种结果截取的过程示意图;
78.图9为本说明书一示例性实施例提供的一种第一终端的结构示意图;
79.图10为本说明书一示例性实施例提供的一种第二终端的结构示意图;
80.图11为本说明书一示例性实施例提供的电子设备的结构示意图。
具体实施方式
81.下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述。
82.本说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
83.请参考图1,图1为本说明书一示例性实施例提供的一种批量加密系统的架构示意图。如图1所示,批量加密系统可以包括:第一终端110和第二终端120。
84.其中:
85.第一终端110可以为第一用户端,具体可包括一个或多个第一用户端,其对应的第一用户可以是提供需加密明文(数据)的用户。在第一终端110中可安装第一用户版的软件,用于实现获取明文、加密明文等功能。第一终端110可以通过该网络和第二终端120建立数据连接关系,例如将第一目标密文和m个第二目标密文发送至第二终端120、接收第二终端120返回的第三目标密文(上述第三目标密文为上述第一目标密文与上述m个第二目标密文相加的结果)等。其中,第一终端110可以但不限于是安装有第一用户版软件的手机、平板电脑、笔记本电脑等设备。
86.第二终端120可以为第二用户端,具体可包括一个或多个第二用户端,其对应的第二用户可以是为第一用户提供的密文进行特定计算的用户。在第二终端120中可安装第二用户版的软件,用于实现接收第一目标密文和m个第二目标密文、将第一终端110提供的第一目标密文和m个第二目标密文相加等功能。第二终端120可以通过网络和第一终端110建立数据连接关系,例如接收第一终端110发送的第一目标密文和m个第二目标密文、以及向第一终端110发送第三目标密文(上述第三目标密文为第一终端110提供的第一目标密文与m个第二目标密文相加的结果)等。其中,第二终端120可以但不限于是安装有第二用户版软件的手机、平板电脑、笔记本电脑等设备。
87.网络可以是在第二终端120和第一终端110中任意两个用户端之间提供通信链路的介质,也可以是包含网络设备和传输介质的互联网,不限于此。传输介质可以是有线链路(例如但不限于,同轴电缆、光纤和数字用户线路(digital subscriber line,dsl)等)或无线链路(例如但不限于,无线上网(wireless fidelity,wifi)、蓝牙和移动设备网络等)。
88.可以理解地,图1所示的批量加密系统中的第一终端110和第二终端120的数目仅作为示例,在具体实现中,该批量加密系统中可以包含任意数目的第一终端110和第二终端120,本说明书实施例对此不作具体限定。例如但不限于,第一终端110可以是多个第一终端组成的第一终端集群,第二终端120可以是多个第二终端组成的第二终端集群。
89.由于传统的加密算法一次只能加密一个明文,而一个密文可以加密的明文大小远远大于实际需要加密的一个明文的大小,在多方安全计算场景中,明文通常有非常多个,如果一次只能加密一个明文,则密文中能够加密的明文空间将会存在大量的浪费现象,且得到的密文数据量非常大,从而导致这些密文无论是网络传输效率还是终端计算效率都比较低。为了解决上述问题,接下来结合图1,介绍本说明书实施例提供一种批量加密方法。具体请参考图2,其为本说明书一示例性实施例提供的一种批量加密方法的流程示意图。如图2所示,该批量加密方法包括以下几个步骤:
90.步骤202,获取n个第一明文。
91.具体地,第一终端110可以接收第一用户输入的n个明文或从数据库中获取n个明文。上述n为大于或等于2的正整数。上述n个第一明文中每个第一明文的大小相同。上述第一明文的大小可以为64bit、32bit、16bit等,本说明书对此不作限定。
92.可选地,第一终端110也可以获取n个大小不相同的第一明文。上述n个大小不相同的第一明文中最大的一个第一明文的大小等于预设大小。上述预设大小可以为64bit、
32bit、16bit等,本说明书对此不作限定。第一终端110获取n个大小不相同的第一明文之后,可以将上述n个大小不相同的第一明文中小于预设大小的第一明文的高位用0填充,直至上述n个第一明文的大小均为预设大小。
93.示例性地,n=2,即第一终端110可以获取一个64bit的第一明文1“da39a3ee5e6b4b0d”(十六进制表示法)和一个32bit的第一明文2“f9560189”(十六进制表示法)。由上述可知,第一终端110获取的两个第一明文的大小不同,且上述第一明文1的大小为预设大小64bit,则在获取了上述两个第一明文之后,终端110还可以将上述两个第一明文中小于预设大小64bit的第一明文2的高位用0填充,直至上述第一明文2的大小为预设大小64bit。此时,用0填充后的64bit的第一明文2为“00000000f9560189”(十六进制表示法)。
94.步骤204,将n个第一明文按照第一预设规则进行拼接,得到第一目标明文。
95.具体地,可以将n个第一明文按照预设顺序进行拼接,得到第一目标明文。上述预设顺序可以是n个第一明文从大到小或从小到大的顺序,也可以是第一用户输入n个第一明文时的顺序等,本说明书对此不作限定。
96.示例性地,n=2,如图3a所示,当第一终端110获取到64bit的第一明文310为“aa39a3ee5e6b4bcc”(十六进制表示法)和64bit的第一明文320为“dd99e3ee5e6644dd”(十六进制表示法)时,若预设顺序为第一明文320排在前面,第一明文310排在后面,则可按照预设顺序将图3a中的第一明文320和第一明文310进行拼接,从而得到如图3a所示的第一目标明文330为“dd99e3ee5e6644ddaa39a3ee5e6b4bcc”。
97.可选地,为了防止低位置上的整数做加法时溢出而影响相邻高位置上的整数的正确性,可以在n个第一明文中每相邻两个第一明文之间插入预设间隙,并将上述n个第一明文以及插入的上述预设间隙进行拼接,从而得到第一目标明文。即上述第一目标明文包括n个第一明文以及上述n个第一明文中每相邻两个第一明文之间的预设间隙。上述预设间隙由d位(bit)预设数字组成。上述d为正整数。上述d可以为8、16、32等,本说明书对此不作限定。上述预设数字可以为0、1等,本说明书对此不作限定。若明文大小为p比特(bit),预设间隙为d比特,且一个密文能够加密的最大明文大小为k比特,则一次批量加密最多可以加密个明文,即n的最大值为上述符号表示向下取整。
98.示例性地,n=2,如图3b所示,当第一终端110获取到64bit的第一明文310为“aa39a3ee5e6b4bcc”(十六进制表示法)和64bit的第一明文320为“dd99e3ee5e6644dd”(十六进制表示法)时,如图3b所示,若预设间隙340为“00000000”(十六进制表示法),即预设间隙340的大小为32位(bit),由数字0组成,则可将第一明文310、预设间隙340以及第一明文320进行拼接,从而得到第一目标明文350为“aa39a3ee5e6b4bcc00000000dd99e3ee5e6644dd”。
99.示例性地,如图4所示,当一个密文能够加密的最大明文大小为2048比特、n个第一明文中每个第一明文的大小为16比特以及预设间隙的大小为8比特时,一次批量加密最多可以加密28个第一明文,即n为大于或等于2,且小于或等于28的正整数;当一个密文能够加密的最大明文大小为2048比特、n个第一明文中每个第一明文的大小为32比特以及预设间隙的大小为16比特时,一次批量加密最多可以加密14个第一明文,即n为大于或等于2,且小于或等于14的正整数;当一个密文能够加密的最大明文大小为2048比特、n个第一明文中每
个第一明文的大小为64比特以及预设间隙的大小为0比特时,一次批量加密最多可以加密10个第一明文,即n为大于或等于2,且小于或等于10的正整数;当一个密文能够加密的最大明文大小为2048比特、n个第一明文中每个第一明文的大小为64比特以及预设间隙的大小为16比特时,一次批量加密最多可以加密8个第一明文,即n为大于或等于2,且小于或等于8的正整数。
100.可选地,上述n个第一明文包括有符号整数。当整数用二进制表示时,最左边的一位数用来表示这个整数是正数还是负数的整数为有符号整数。上述有符号整数包括正整数和负整数。将上述n个第一明文按照第一预设规则进行拼接,得到目标第一明文之前,可以先将为有符号整数的第一明文转化为对应的补码,即将上述n个第一明文中的负整数转化为对应的补码,而上述n个第一明文中的正整数对应的补码与原码相同,从而不需要进行转化。然后将上述n个第一明文中的有符号整数对应的补码按照第一预设规则进行拼接,得到第一目标明文。上述第一目标明文包括n个第一明文以及上述n个第一明文中每相邻两个第一明文之间的预设间隙。上述预设间隙由d位(bit)预设数字组成。上述d为正整数。上述d可以为8、16、32等,上述d也可以为0,即每相邻两个第一明文之间插入的预设间隙大小为0相当于不插入预设间隙,直接将n个明文进行拼接,本说明书对此不作限定。上述预设数字可以为0、1等,本说明书对此不作限定。
101.示例性地,n=2,如图5a所示,当第一终端110获取到8bit的第一明文510为“01111111”(二进制表示法)和8bit的第一明文520为“10000111”(二进制表示法)时,若上述第一明文510和第一明文520均为有符号整数,则第一明文510为正整数,第二明文为负整数。可先将上述为有符号正整数的第一明文510转化为对应的补码511为“01111111”(二进制表示法)和上述为有符号负整数的第一明文520转化为对应的补码521为“11111001”(二进制表示法),然后再将上述n个第一明文中的有符号整数对应的补码按照第一预设规则进行拼接,即补码511与补码521之间插入由4位(bit)预设数字“0”组成的预设间隙530,并进行拼接得到如图5a所示的第一目标明文540为“01111111000011111001”。
102.可选地,上述n个第一明文除了包括有符号整数外,还包括无符号整数。当整数用二进制表示时,如果最左边的一位数不用来表示正负,而是和后面的连在一起表示整数,则该整数为无符号整数。上述无符号整数只能是正数。可将上述n个第一明文中的有符号整数对应的补码以及上述无符号整数按照第一预设规则进行拼接,得到第一目标明文。上述第一目标明文包括n个第一明文以及上述n个第一明文中每相邻两个第一明文之间的预设间隙。上述预设间隙由d位(bit)预设数字组成。上述d为正整数。上述d可以为8、16、32等,上述d也可以为0,即每相邻两个第一明文之间不插入预设间隙或插入的预设间隙大小为0,直接将n个明文进行拼接,本说明书对此不作限定。上述预设数字可以为0、1等,本说明书对此不作限定。
103.可选地,上述n个第一明文还可以仅包括无符号整数。当整数用二进制表示时,如果最左边的一位数不用来表示正负,而是和后面的连在一起表示整数,则该整数为无符号整数。上述无符号整数只能是正数。可直接将上述n个第一明文按照第一预设规则进行拼接,得到第一目标明文。上述第一目标明文包括n个第一明文以及上述n个第一明文中每相邻两个第一明文之间的预设间隙。上述预设间隙由d位(bit)预设数字组成。上述d为正整数。上述d可以为8、16、32等,上述d也可以为0,即每相邻两个第一明文之间不插入预设间隙
或插入的预设间隙大小为0,直接将n个明文进行拼接,本说明书对此不作限定。上述预设数字可以为0、1等,本说明书对此不作限定。
104.示例性地,n=3,如图5b所示,当第一终端110获取到3个64bit的无符号整数分别为第一明文550“da39a3ee5e6b4b0d”(十六进制表示法)、第一明文560“d3255bfef9560189”(十六进制表示法)以及第一明文570“934ca495991b7852”(十六进制表示法)时,则第一终端110可直接将上述3个第一明文按照预设顺序进行拼接,即第一明文550与第一明文560之间以及第一明文560与第一明文570之间均插入由16位(bit)预设数字“0”组成的预设间隙580,并进行拼接得到如图5b所示的第一目标明文590为“934ca495991b785200000000d3255bfef956018900000000da39a3ee5e6b4b0d”(十六进制表示法)。
105.步骤206,采用预设加密算法对第一目标明文进行加密,得到第一目标密文。
106.具体地,可采用预设加密算法对n个明文进行拼接得到的第一目标明文进行加密处理,从而得到第一目标密文。上述第一目标密文包括n个明文。上述预设加密算法包括ou加密算法和paillier加密算法等加法同态加密算法、乘法同态加密算法等,本说明书对此不作限定。上述加法同态加密算法为支持在密文上做加法的同态加密算法。上述乘法同态加密算法为支持在密文上做乘法的同态加密算法。
107.本说明书实施例通过将需要加密的n个第一明文按照第一预设规则进行拼接,得到第一目标明文,并采用预设加密算法对上述第一目标明文进行加密,得到第一目标密文,上述n为大于或等于2的正整数,从而实现一次加密多个明文即批量加密,提高加密效率,大幅减少密文数量,从而减少网络传输的通信量。同时,本说明书实施例通过先将有符号整数转换成补码形式,再进行拼接,实现了有符号整数的批量加密。
108.当预设加密算法为加法同态加密算法时,为了解决传统的加法同态加密算法的网络传输效率较低以及终端计算效率较慢等问题,接下来结合图6,介绍本说明书实施例提供的另一种批量加密方法。具体请参考图6,其为本说明书一示例性实施例提供的另一种批量加密方法的流程示意图。如图6所示,该批量加密方法包括以下几个步骤:
109.步骤602,第一终端获取n个第一明文。
110.具体地,步骤602与步骤202一致,此处不再赘述。
111.步骤604,第一终端将n个第一明文按照第一预设规则进行拼接,得到第一目标明文。
112.具体地,步骤604与步骤204一致,此处不再赘述。
113.步骤606,第一终端采用预设加密算法对第一目标明文进行加密,得到第一目标密文。
114.具体地,步骤606与步骤206一致,此处不再赘述。
115.步骤608,第一终端获取m组第二明文。
116.具体地,第一终端可以接收第一用户输入的m组第二明文或从数据库中获取m组第二明文。上述m为正整数。上述m组第二明文中的每组第二明文包括n个第二明文。上述n个第二明文分别与上述n个第一明文一一对应。上述n为大于或等于2的正整数。上述n个第二明文中每个第二明文的大小相同。上述n个第一明文中每个第一明文的大小也相同,且上述第一明文的大小等于上述第二明文的大小。上述第二明文的大小可以为64bit、32bit、16bit等,本说明书对此不作限定。
117.示例性地,m=1,n=2,如图7所示,第一终端获取了1组第二明文,该组第二明文720包括第二明文721“10010111”(二进制表示法)和第二明文722“01111111”(二进制表示法),且第二明文721与第一终端获取的两个第一明文710中的第一明文711“01010100”(二进制表示法)对应,第二明文722与第一终端获取的两个第一明文710中的第一明文712“00101010”(二进制表示法)对应。上述第二明文721、第二明文722、第一明文711以及第一明文712的大小均为8bit。
118.步骤610,第一终端将每组第二明文按照第一预设规则进行拼接,得到m个第二目标明文。
119.具体地,第一终端可以将获取的m组第二明文中的每组第二明文按照第一预设规则进行拼接,得到m个第二目标明文。上述具体的拼接过程与步骤204一致,此处不再赘述。
120.步骤612,第一终端采用预设加密算法对m个第二目标明文进行加密,得到m个第二目标密文。
121.具体地,第一终端可以采用预设加密算法分别对m个第二目标明文进行加密,得到m个第二目标密文。上述每个第二目标密文均包括n个第二明文。上述预设加密算法为加法同态加密算法。上述加法同态加密算法为支持在密文上做加法的同态加密算法。上述加法同态加密算法包括ou加密算法和paillier加密算法等,本说明书对此不作限定。
122.步骤614,第一终端将第一目标密文和m个第二目标密文发送至第二终端。
123.具体地,第一终端将需要进行加法运算的n个第一明文以及m组第二明文分别进行加密得到第一目标密文和m个第二目标密文后,可将上述第一目标密文和m个第二目标密文通过网络发送至第二终端,由第二终端执行相应的加法计算。
124.步骤616,第二终端接收第一终端发送的第一目标密文和m个第二目标密文。
125.具体地,第二终端可以通过网络接收到第一终端发送的第一目标密文以及m个第二目标密文。上述第一目标密文包括n个第一明文。上述n为大于或等于2的正整数。上述m个第二目标密文包括m组第二明文。上述m为正整数。上述m组第二明文中的每组第二明文包括n个第二明文。上述n个第二明文分别与上述n个第一明文一一对应。
126.步骤618,第二终端将第一目标密文和m个第二目标密文相加,得到第三目标密文。
127.具体地,第二终端通过网络接收到第一终端发送的第一目标密文以及m个第二目标密文之后,可以将上述第一目标密文和上述m个第二目标密文进行加法计算,从而得到第三目标密文。上述第三目标密文为上述第一目标密文与上述m个第二目标密文相加的结果。
128.步骤620,第二终端将第三目标密文发送至第一终端。
129.具体地,第二终端计算完第一终端发送的第一目标密文和m个第二目标密文之和后,可以将计算得到的结果即第三目标密文通过网络发送至第一终端,从而在不查看第一终端加密的n个第一明文和m组第二明文的情况下,实现将n个第一明文与m组第二明文中每组第二明文包括的n个第二明文一一对应相加,极大地保护了第一终端中的第一明文和第二明文等数据的安全性和隐私性。
130.步骤622,第一终端接收第二终端返回的第三目标密文。
131.具体地,第一终端可以通过网络接收到第二终端对第一目标密文和m个第二目标密文进行加法计算后返回的第三目标密文。上述第三目标密文为上述第一目标密文与上述m个第二目标密文相加的结果。
132.步骤624,第一终端对第三目标密文进行解密,得到第三目标明文。
133.具体地,第一终端接收到第一目标密文和m个第二目标密文进行加法计算后得到的第三目标密文后,还可以使用预设解密算法对第三目标密文进行解密,从而得到第三目标密文对应的第三目标明文。上述预设解密算法对上述预设加密算法对应。上述预设解密算法包括ou解密算法和paillier解密算法等,本说明书对此不作限定。
134.步骤626,第一终端将第三目标明文按照第二预设规则进行截取,得到n个第一明文和m组第二明文对应相加的n个结果。
135.具体地,第一终端可以将第三目标明文按照第一明文的预设大小以及预设间隙截取n个预设范围内相对应的n个结果。若第一明文的预设大小为p比特(bit),预设间隙为d比特,则可在第三目标明文中截取第一个预设范围[0,p)内对应的第一个结果,可在第三目标明文中截取第二个预设范围[p+d,2p+d)内对应的第二个结果,依次类推,可在第三目标明文中截取第n个预设范围[(n-1)(p+d),np+(n-1)d)内对应的第n个结果。
[0136]
示例性地,当第三目标密文为图7中的一组第二明文720对应的第二目标密文与图7中2个第一明文710对应的第一目标密文之和时,若上述第一目标密文与第二目标密文中的预设间隙均为4bit,由数字“0”组成,则对上述第三目标密文进行解密可以得到如图8所示的第三目标明文810,且第一终端可在上述第三目标明文810的[0,8)比特的对应位置1截取到第一明文711“01010100”(二进制表示法)与第二明文721“10010111”(二进制表示法)进行加法计算的结果820“11101011”(二进制表示法),第一终端还可在上述第三目标明文810的[12,20)比特的对应位置2截取到第一明文712“00101010”(二进制表示法)与第二明文722“01111111”(二进制表示法)进行加法计算的结果830“11101001”(二进制表示法)。
[0137]
本说明书实施例中,由于每个目标密文的大小均为固定的,而每个目标密文都对应加密了n个明文,从而不仅提高了加密效率,还大大地减少了第一终端需要向第二终端发送的密文数量,提高了第一终端与第二终端之间的数据传输量和数据传输效率。同时,由于每个目标密文都对应加密了n个明文,当第二终端进行目标密文之间的加法运算时,只需要做一次加法运算就可以完成原来需要做n次加法运算的计算量,大大地提高了第二终端的计算效率。本说明书实施例还通过在每相邻的两个明文之间插入预设间隙,然后再进行拼接和加密,能够有效地防止在做加法的过程中,低位置上的明文可能会溢出,从而影响相邻高位置上的明文的准确性的情况,提高了密文之间计算的准确性。
[0138]
请参考图9,其为本说明书实施例提供的一种第一终端的结构示意图。该第一终端900包括:
[0139]
第一获取模块910,用于获取n个第一明文;上述n为大于或等于2的正整数;
[0140]
第一拼接模块920,用于将上述n个第一明文按照第一预设规则进行拼接,得到第一目标明文;
[0141]
第一加密模块930,用于采用预设加密算法对上述第一目标明文进行加密,得到第一目标密文。
[0142]
在一种可能的实现方式中,上述n个第一明文包括有符号整数;
[0143]
上述第一终端900还包括:
[0144]
转化模块,用于将为上述有符号整数的第一明文转化为对应的补码;
[0145]
上述第一拼接模块920具体用于,将上述n个第一明文中的上述有符号整数对应的
上述补码按照第一预设规则进行拼接,得到第一目标明文。
[0146]
在一种可能的实现方式中,上述n个第一明文还包括无符号整数;
[0147]
上述第一拼接模块920具体用于,将上述n个第一明文中的上述有符号整数对应的上述补码以及上述无符号整数按照第一预设规则进行拼接,得到第一目标明文。
[0148]
在一种可能的实现方式中,上述第一拼接模块920具体用于,将上述n个第一明文按照预设顺序进行拼接,得到第一目标明文。
[0149]
在一种可能的实现方式中,上述第一目标明文包括上述n个第一明文以及上述n个第一明文中每相邻两个第一明文之间的预设间隙;上述预设间隙由d位预设数字组成;上述d为正整数。
[0150]
在一种可能的实现方式中,上述n个第一明文中每个第一明文的大小相同。
[0151]
在一种可能的实现方式中,上述预设加密算法为加法同态加密算法;
[0152]
上述第一终端900还包括:
[0153]
第二获取模块,用于获取m组第二明文;上述m为正整数;上述m组第二明文中的每组第二明文包括n个第二明文;上述n个第二明文分别与上述n个第一明文一一对应;
[0154]
第二拼接模块,用于将每组上述第二明文按照第一预设规则进行拼接,得到m个第二目标明文;
[0155]
第二加密模块,用于采用预设加密算法对上述m个第二目标明文进行加密,得到m个第二目标密文;
[0156]
第一发送模块,用于将上述第一目标密文和上述m个第二目标密文发送至第二终端;
[0157]
第一接收模块,用于接收上述第二终端返回的第三目标密文;上述第三目标密文为上述第一目标密文与上述m个第二目标密文相加的结果;
[0158]
解密模块,用于对上述第三目标密文进行解密,得到第三目标明文;
[0159]
截取模块,用于将上述第三目标明文按照第二预设规则进行截取,得到上述n个第一明文和上述m组第二明文对应相加的n个结果。
[0160]
请参考图10,其为本说明书实施例提供的一种第二终端的结构示意图。该第二终端1000包括:
[0161]
第二接收模块1010,用于接收第一终端发送的第一目标密文和m个第二目标密文;上述第一目标密文包括n个第一明文;上述n为大于或等于2的正整数;上述m个第二目标密文包括m组第二明文;上述m为正整数;上述m组第二明文中的每组第二明文包括n个第二明文;上述n个第二明文分别与上述n个第一明文一一对应;
[0162]
计算模块1020,用于将上述第一目标密文和上述m个第二目标密文相加,得到第三目标密文;上述第三目标密文为上述第一目标密文与上述m个第二目标密文相加的结果;
[0163]
第二发送模块1030,用于将上述第三目标密文发送至上述第一终端。
[0164]
上述第一终端和第二终端中各模块的划分仅用于举例说明,在其他实施例中,可将第一终端和第二终端分别按照需要划分为不同的模块,以完成上述第一终端和上述第二终端的全部或部分功能。本说明书实施例中提供的第一终端和第二终端中的各个模块的实现可为计算机程序的形式。该计算机程序可在终端或服务器上运行。该计算机程序构成的程序模块可存储在终端或服务器的存储器上。该计算机程序被处理器执行时,实现本说明
书实施例中所描述的批量加密方法的全部或部分步骤。
[0165]
请参阅图11,图11为本说明书一示例性实施例提供的一种电子设备的结构示意图。如图11所示,该电子设备1100可以包括:至少一个处理器1110、至少一个网络接口1120、用户接口1130、存储器1140、至少一个通信总线1150。
[0166]
其中,通信总线1150可用于实现上述各个组件的连接通信。
[0167]
其中,用户接口1130可以包括显示屏(display)和摄像头(camera),可选用户接口还可以包括标准的有线接口、无线接口。
[0168]
其中,网络接口1120可选的可以包括蓝牙模块、近场通信(near field communication,nfc)模块、无线保真(wireless fidelity,wi-fi)模块等。
[0169]
其中,处理器1110可以包括一个或者多个处理核心。处理器1110利用各种接口和线路连接整个电子设备1100内的各个部分,通过运行或执行存储在存储器1140内的指令、程序、代码集或指令集,以及调用存储在存储器1140内的数据,执行路由电子设备1100的各种功能和处理数据。可选的,处理器1110可以采用数字信号处理(digital signal processing,dsp)、现场可编程门阵列(field-programmable gate array,fpga)、可编程逻辑阵列(programmable logic array,pla)中的至少一种硬件形式来实现。处理器1110可集成中央处理器(central processing unit,cpu)、图像处理器(graphics processing unit,gpu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户界面和应用程序等;gpu用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1110中,单独通过一块芯片进行实现。
[0170]
其中,存储器1140可以包括随机存储器(random access memory,ram),也可以包括只读存储器(read-only memory,rom)。可选的,该存储器1140包括非瞬时性计算机可读介质。存储器1140可用于存储指令、程序、代码、代码集或指令集。存储器1140可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如获取明文、发送目标密文等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器1140可选的还可以是至少一个位于远离前述处理器1110的存储装置。如图11所示,作为一种计算机存储介质的存储器1140中可以包括操作系统、网络通信模块、用户接口模块以及应用程序。
[0171]
在一些可能的实施例中,电子设备1100可以是前述第一终端,在图11所示的电子设备1100中,用户接口1130主要用于为用户提供输入的接口例如第一终端上的按键等,获取用户触发的指令;而处理器1110可以用于调用存储器1140中存储的应用程序,并具体执行以下操作:
[0172]
获取n个第一明文;上述n为大于或等于2的正整数。
[0173]
将上述n个第一明文按照第一预设规则进行拼接,得到第一目标明文。
[0174]
采用预设加密算法对上述第一目标明文进行加密,得到第一目标密文。
[0175]
在一些可能的实施例中,上述n个第一明文包括有符号整数。
[0176]
上述处理器1110执行获取n个第一明文之后,执行将上述n个第一明文按照第一预设规则进行拼接,得到目标第一明文之前,还用于执行:
[0177]
将为上述有符号整数的第一明文转化为对应的补码。
[0178]
上述处理器1110执行将上述n个第一明文按照第一预设规则进行拼接,得到第一目标明文时,具体用于执行:
[0179]
将上述n个第一明文中的上述有符号整数对应的上述补码按照第一预设规则进行拼接,得到第一目标明文。
[0180]
在一些可能的实施例中,上述n个第一明文还包括无符号整数;
[0181]
上述处理器1110执行将上述n个第一明文按照第一预设规则进行拼接,得到第一目标明文时,具体用于执行:
[0182]
将上述n个第一明文中的上述有符号整数对应的上述补码以及上述无符号整数按照第一预设规则进行拼接,得到第一目标明文。
[0183]
在一些可能的实施例中,上述处理器1110执行将上述n个第一明文按照第一预设规则进行拼接,得到第一目标明文时,具体用于执行:
[0184]
将上述n个第一明文按照预设顺序进行拼接,得到第一目标明文。
[0185]
在一些可能的实施例中,上述第一目标明文包括上述n个第一明文以及上述n个第一明文中每相邻两个第一明文之间的预设间隙;上述预设间隙由d位预设数字组成;上述d为正整数。
[0186]
在一些可能的实施例中,上述n个第一明文中每个第一明文的大小相同。
[0187]
在一些可能的实施例中,上述方法应用于第一终端,上述预设加密算法为加法同态加密算法。
[0188]
上述处理器1110还用于执行:
[0189]
获取m组第二明文;上述m为正整数;上述m组第二明文中的每组第二明文包括n个第二明文;上述n个第二明文分别与上述n个第一明文一一对应。
[0190]
将每组上述第二明文按照第一预设规则进行拼接,得到m个第二目标明文。
[0191]
采用预设加密算法对上述m个第二目标明文进行加密,得到m个第二目标密文。
[0192]
将上述第一目标密文和上述m个第二目标密文发送至第二终端。
[0193]
接收上述第二终端返回的第三目标密文;上述第三目标密文为上述第一目标密文与上述m个第二目标密文相加的结果。
[0194]
对上述第三目标密文进行解密,得到第三目标明文。
[0195]
将上述第三目标明文按照第二预设规则进行截取,得到上述n个第一明文和上述m组第二明文对应相加的n个结果。
[0196]
在一些可能的实施例中,电子设备1100可以是前述第二终端,在图11所示的电子设备1100中,用户接口1130主要用于为用户提供输入的接口例如第二终端上的按键等,获取用户触发的指令;而处理器1110可以用于调用存储器1140中存储的应用程序,并具体执行以下操作:
[0197]
接收第一终端发送的第一目标密文和m个第二目标密文;上述第一目标密文包括n个第一明文;上述n为大于或等于2的正整数;上述m个第二目标密文包括m组第二明文;上述m为正整数;上述m组第二明文中的每组第二明文包括n个第二明文;上述n个第二明文分别与上述n个第一明文一一对应。
[0198]
将上述第一目标密文和上述m个第二目标密文相加,得到第三目标密文;上述第三目标密文为上述第一目标密文与上述m个第二目标密文相加的结果。
[0199]
将上述第三目标密文发送至上述第一终端。
[0200]
本说明书实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机或处理器上运行时,使得计算机或处理器执行上述实施例中的一个或多个步骤。上述第一终端和第二终端的各组成模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取存储介质中。
[0201]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。上述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行上述计算机程序指令时,全部或部分地产生按照本说明书实施例上述的流程或功能。上述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。上述计算机指令可以存储在计算机可读存储介质中,或者通过上述计算机可读存储介质进行传输。上述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。上述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。上述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,数字多功能光盘(digital versatile disc,dvd))、或者半导体介质(例如,固态硬盘(solid state disk,ssd))等。
[0202]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可存储程序代码的介质。在不冲突的情况下,本实施例和实施方案中的技术特征可以任意组合。
[0203]
以上所述的实施例仅仅是本说明书的优选实施例方式进行描述,并非对本说明书的范围进行限定,在不脱离本说明书的设计精神的前提下,本领域普通技术人员对本说明书的技术方案作出的各种变形及改进,均应落入权利要求书确定的保护范围内。
[0204]
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1