本说明书一个或多个实施例涉及数据安全,尤其涉及一种适用于同态运算的轻量加解密方法及装置。
背景技术:
1、目前,同态加密算法常常应用于联邦学习、多方安全计算等涉及多方联合处理且需要保护数据安全性和隐私性的场景中。同态加密中的加法同态,是指在不解密的情况下,对多个密文进行加法运算,效果等同于对相应的明文做加法运算之后再加密。现有的同态加密算法存在计算量大,运算效率低的问题。
2、因此,希望能有改进的方案,可以提供能够支持同态运算的更高效的加解密算法。
技术实现思路
1、本说明书一个或多个实施例描述了一种适用于同态运算的轻量加解密方法及装置,以防止数据泄露,提高数据的安全性。具体的技术方案如下。
2、第一方面,实施例提供了一种适用于同态运算的加密方法,包括:
3、获取待加密的明文数据m以及密钥,所述密钥包括第一密钥p和第二密钥q;所述密钥包含预设的明文区段,并且该明文区段的数值为0;
4、基于随机生成的随机数和第二中间值v,对所述明文数据m进行第一运算,得到第一中间值u,以使得所述第一中间值u和所述第二中间值v的和值m满足:包含与所述密钥中的明文区段对应的明文区段,并且该明文区段的数据包含所述明文数据m;
5、分别基于所述第一密钥p和第二密钥q,对所述第一中间值u和第二中间值v进行与取模有关的第二运算,以使得第二运算结果分别模所述第一密钥p、所述第二密钥q后的值,分别与所述第一中间值u、所述第二中间值v相关;
6、基于第二运算结果得到所述明文数据m的密文。
7、在一种实施方式中,所述密钥具体包括依次拼接的明文区段和缓冲区段,并且该缓冲区段的数值为0;
8、所述和值m的数据结构包括:依次拼接的明文区段和缓冲区段;明文区段的比特位高于缓冲区段的比特位。
9、在一种实施方式中,所述和值m的数据结构具体包括:高ρ1比特区段、所述明文区段、所述缓冲区段和低ρ2比特区段的依次拼接。
10、在一种实施方式中,所述随机数包括两个随机数;所述对所述明文数据m进行第一运算的步骤,包括:
11、将一所述随机数、所述明文数据m和另一所述随机数分别作为所述数据结构中各个区段的数据,得到构建值;
12、将所述构建值减去所述第二中间值v,得到所述第一中间值u。
13、在一种实施方式中,所述密钥还包括第一数a和第二数b;所述对所述第一中间值u和第二中间值v进行第二运算的步骤,包括:
14、计算所述第一中间值u与所述第一数a的乘积,使用所述第一密钥p对该乘积取模;
15、计算所述第二中间值v与所述第二数b的乘积,使用所述第二密钥q对该乘积取模。
16、在一种实施方式中,所述第二运算结果包括两个取模后的数;所述根据第二运算结果得到所述明文数据m的密文的步骤,包括:
17、使用随机数r1与所述第一密钥p的乘积,以及随机数r2与所述第二密钥q的乘积,分别与取模后的两个结果叠加,得到所述明文数据m的第一密文x和第二密文y。
18、在一种实施方式中,所述对所述第一中间值u和第二中间值v进行第二运算的步骤,包括:
19、使用所述第一密钥p与所述第二密钥q的乘积,对两个乘积的和值取模,所述两个乘积包括:与所述第一中间值u与所述第一密钥p的乘积相关的第一乘积,以及与所述第二中间值v与所述第二密钥q的乘积相关的第二乘积。
20、在一种实施方式中,随机生成随机数和第二中间值v的步骤,包括:
21、基于设定的所述第一中间值u与所述第一密钥p之间的数值关系条件,以及所述第二中间值v与所述第二密钥q之间的数值关系条件,随机生成所述随机数和第二中间值v。
22、第二方面,实施例提供了一种适用于同态运算的解密方法,包括:
23、获取待解密的密文数据c和密钥,所述密钥包括第一密钥p和第二密钥q;所述密钥包含预设的明文区段,并且该明文区段的数值为0;
24、分别基于所述第一密钥p和第二密钥q,对所述密文数据c进行与取模有关的目标运算,得到包含明文区段的第三中间值m′;所述目标运算是加密阶段中对应运算的逆运算;
25、从所述第三中间值m′的明文区段的区段值中提取出解密的明文数据m。
26、在一种实施方式中,所述密钥还包括第一数a和第二数b;所述密文数据c包括第一密文x和第二密文y;
27、所述对所述密文数据c进行与取模有关的目标运算的步骤,包括:
28、计算所述第一数a的逆与所述第一密文x的乘积,使用所述第一密钥p对该乘积取模;
29、计算所述第二数b的逆与所述第二密文y的乘积,使用所述第二密钥q对该乘积取模;
30、基于取模后的两个结果的和值得到第三中间值m′。
31、第三方面,实施例提供了一种适用于同态运算的加密装置,包括:
32、第一获取模块,配置为获取待加密的明文数据m以及密钥,所述密钥包括第一密钥p和第二密钥q;所述密钥包含预设的明文区段,并且该明文区段的数值为0;
33、第一运算模块,配置为基于随机生成的随机数和第二中间值v,对所述明文数据m进行第一运算,得到第一中间值u,以使得所述第一中间值u和所述第二中间值v的和值m满足:包含与所述密钥的明文区段对应的明文区段,并且该明文区段的数据包含所述明文数据m;
34、第二运算模块,配置为分别基于所述第一密钥p和第二密钥q,对所述第一中间值u和第二中间值v进行与取模有关的第二运算,以使得第二运算结果分别模所述第一密钥p、所述第二密钥q后的值,分别与所述第一中间值u、所述第二中间值v相关;
35、第一确定模块,配置为基于第二运算结果得到所述明文数据m的密文。
36、第四方面,实施例提供了一种适用于同态运算的解密装置,包括:
37、第二获取模块,配置为获取待解密的密文数据c和密钥,所述密钥包括第一密钥p和第二密钥q;所述密钥包含预设的明文区段,并且该明文区段的数值为0;
38、第三运算模块,配置为分别基于所述第一密钥p和第二密钥q,对所述密文数据c进行与取模有关的目标运算,得到包含明文区段的第三中间值m′;所述目标运算是加密阶段中对应运算的逆运算;
39、第二确定模块,配置为从所述第三中间值m′的明文区段的区段值中提取出解密的明文数据m。
40、第五方面,实施例提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面至第二方面中任一项所述的方法。
41、第六方面,实施例提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面至第二方面中任一项所述的方法。
42、本说明书实施例提供的方法及装置中,将密钥和待加密数据设置成包含预设的明文区段的数据结构,并且将密钥的明文区段的数值设置为0,在解密时,利用密钥的明文区段数值为0的特点,可以从密文数据经过运算后的中间值的明文区段中很简便地解密出明文数据,这是因为密钥对中间值的明文区段数据的作用为0。本说明书实施例整个加解密过程计算量低,能够提供更高效的加解密方法。