本发明涉及数据加密,尤其涉及的是一种基于两方安全协作的全同态加密方法、系统、终端及介质。
背景技术:
1、在计算外包场景中,特别是全同态密文数据库查询场景中,除法操作往往作为中间操作,通过全同态加密除法得到查询统计结果,由于全同态密码算法天然支持加法和乘法操作,除法操作需要使用乘法操作进行模拟,例如:计算时,先求分母的倒数后再与分子相乘。在计算外包场景中,运算方使用泰勒展开式或采用自举操作进行同态除法运算。使用泰勒展开式时,分母b存在取值范围约束;而采用自举操作时,计算精度不高,计算效率低。
技术实现思路
1、本发明的主要目的在于提供一种基于两方安全协作的全同态加密方法、系统、智能终端及计算机可读存储介质。能够解决在计算外包中使用全同态加密除法得到查询统计结果时,由于同态除法运算导致统计结果计算精度不高,计算效率低的问题。
2、为了实现上述目的,本发明第一方面提供一种基于两方安全协作的全同态加密方法,应用于运算方,其中,所述运算方对第一密文和第二密文进行同态除法运算的步骤包括:
3、计算所述第二密文与掩码的乘积,获得掩码后密文,将所述掩码后密文发送至数据方;
4、当接收到所述数据方发送的第三密文时,计算所述第三密文与所述掩码的乘积,获得掩码后的第三密文,计算所述掩码后的第三密文与所述第一密文的乘积,获得同态除法运算结果。
5、可选的,所述数据方根据所述掩码后密文计算第三密文,包括:
6、对所述掩码后密文进行解密,获得掩码后明文;
7、对所述掩码后明文进行求倒,得到所述掩码后明文的倒数;
8、对所述倒数进行同态加密,获得所述第三密文。
9、可选的,获得所述第一密文和所述第二密文,包括:
10、对从数据方接收到的密文数据序列中的密文数据进行筛选,获得筛选标识序列,所述筛选标识序列用于采用布尔值标识所述密文数据序列中的每一个密文数据是否被选择;
11、对所述筛选标识序列的所有筛选标识进行同态加法运算,获得所述第二密文,所述第二密文用于表征所述密文数据序列中已选择的密文数据的总个数;
12、对所述筛选标识序列与所述密文数据序列进行同态运算,获得所述第一密文,所述第一密文用于表征所述密文数据序列中已选择的密文数据的累计值。
13、可选的,还接收到数据方发送的比较值密文,所述对从数据方接收到的密文数据序列中的密文数据进行筛选,获得筛选标识序列,包括:
14、基于所述密文数据序列中密文数据的数量,创建所述筛选标识序列并对所述筛选标识序列进行初始化;
15、将所述密文数据序列中每一个密文数据与所述比较值密文进行比较,基于当前的密文数据在所述密文数据序列中的序号,根据比较结果,设定所述筛选标识序列中所述序号对应的值,获得所述筛选标识序列。
16、可选的,当比较结果符合预设条件时,所述筛选标识序列中所述序号对应的值为预设已选择密文,否则,所述筛选标识序列中所述序号对应的值为预设未选择密文。
17、本发明第二方面提供一种基于两方安全协作的全同态加密系统,用于运算方,所述系统包括:
18、掩码模块,用于计算第二密文与掩码的乘积,获得掩码后密文,将所述掩码后密文发送至数据方;
19、除法运算模块,用于当接收到数据方发送的第三密文时,计算所述第三密文与所述掩码的乘积,获得掩码后的第三密文,计算所述掩码后的第三密文与第一密文的乘积,获得同态除法运算结果。
20、可选的,还包括用于获取除第一密文和第一密文的运算项获取模块,所述运算项获取模块包括选择单元、第二密文单元和第一密文单元,所述选择单元用于对从数据方接收到的密文数据序列中的密文数据进行筛选,获得筛选标识序列,所述筛选标识序列用于标识所述密文数据序列中的每一个密文数据是否被选择;所述第二密文单元用于对所述筛选标识序列的所有筛选标识进行同态加法运算,获得所述第二密文,所述第二密文用于表征所述密文数据序列中已选择的密文数据的总数;所述第一密文单元用于对所述筛选标识序列与所述密文数据序列进行同态运算,获得所述第一密文,所述第一密文用于表征所述密文数据序列中已选择的密文数据的累计值。
21、可选的,所述选择单元包括初始化单元和比较单元,所述初始化单元用于基于所述密文数据序列中密文数据的数量,创建所述筛选标识序列并对所述筛选标识序列进行初始化;所述比较单元用于将所述密文数据序列中每一个密文数据与比较值密文分别进行比较,当比较结果符合预设条件时,基于当前的密文数据在所述密文数据序列中的序号,所述筛选标识序列中所述序号对应的值为预设已选择密文,否则,所述筛选标识序列中所述序号对应的值为预设未选择密文。
22、本发明第三方面提供一种基于两方安全协作的全同态加密系统,用于数据方,所述系统包括:
23、加密模块,用于对第二明文和第一明文进行同态加密,分别获得第二密文和第一密文,将所述第二密文和所述第一密文发送至运算方;
24、求倒数模块,用于当接收到所述运算方发送的掩码后密文时,对所述掩码后密文进行解密,获得掩码后明文,求解所述掩码后明文的倒数并对求解结果进行同态加密,获得第三密文,将所述第三密文发送至所述运算方。
25、本发明第四方面提供一种智能终端,上述智能终端包括存储器、处理器以及存储在上述存储器上并可在上述处理器上运行的基于两方安全协作的全同态加密程序,上述基于两方安全协作的全同态加密程序被上述处理器执行时实现任意一项上述基于两方安全协作的全同态加密方法的步骤。
26、本发明第五方面提供一种计算机可读存储介质,上述计算机可读存储介质上存储有基于两方安全协作的全同态加密程序,上述基于两方安全协作的全同态加密程序被上述处理器执行时实现任意一项上述基于两方安全协作的全同态加密方法的步骤。
27、由上可见,本发明的基于两方安全协作的全同态加密方法和系统,通过运算方和数据方两方安全交互来联合实现同态除法运算,提高全同态加密的计算精确度和计算效率,特别是在应用于在计算外包场景中,尤其适用于全同态密文数据库查询统计场景中应用全同态加密除法来得到查询统计结果,通过上述运算方和数据方两方安全交互来联合实现同态除法运算,以提高统计结果的精确和和计算效率。
1.一种基于两方安全协作的全同态加密方法,应用于运算方,其特征在于,所述运算方对第一密文和第二密文进行同态除法运算的步骤包括:
2.如权利要求1所述的基于两方安全协作的全同态加密方法,其特征在于,所述数据方根据所述掩码后密文计算第三密文,包括:
3.如权利要求1所述的基于两方安全协作的全同态加密方法,其特征在于,获得所述第一密文和所述第二密文,包括:
4.如权利要求3所述的基于两方安全协作的全同态加密方法,其特征在于,还接收到数据方发送的比较值密文,所述对从数据方接收到的密文数据序列中的密文数据进行筛选,获得筛选标识序列,包括:
5.如权利要求4所述的基于两方安全协作的全同态加密方法,其特征在于,所述根据比较结果,设定所述筛选标识序列中所述序号对应的值,包括:
6.一种基于两方安全协作的全同态加密系统,用于运算方,其特征在于,所述系统包括:
7.如权利要求6所述的基于两方安全协作的全同态加密系统,其特征在于,还包括用于获取第二密文和第一密文的运算项获取模块,所述运算项获取模块包括选择单元、第二密文单元和第一密文单元,所述选择单元用于对从数据方接收到的密文数据序列中的密文数据进行筛选,获得筛选标识序列,所述筛选标识序列用于标识所述密文数据序列中的每一个密文数据是否被选择;所述第二密文单元用于对所述筛选标识序列的所有筛选标识进行同态加法运算,获得所述第二密文,所述第二密文用于表征所述密文数据序列中已选择的密文数据的总数;所述第一密文单元用于对所述筛选标识序列与所述密文数据序列进行同态运算,获得所述第一密文,所述第一密文用于表征所述密文数据序列中已选择的密文数据的累计值。
8.如权利要求7所述的基于两方安全协作的全同态加密系统,其特征在于,所述选择单元包括初始化单元和比较单元,所述初始化单元用于基于所述密文数据序列中密文数据的数量,创建所述筛选标识序列并对所述筛选标识序列进行初始化;所述比较单元用于将所述密文数据序列中每一个密文数据与比较值密文分别进行比较,当比较结果符合预设条件时,基于当前的密文数据在所述密文数据序列中的序号,所述筛选标识序列中所述序号对应的值为预设已选择密文,否则,所述筛选标识序列中所述序号对应的值为预设未选择密文。
9.一种基于两方安全协作的全同态加密系统,用于数据方,其特征在于,所述系统包括:
10.智能终端,其特征在于,所述智能终端包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的基于两方安全协作的全同态加密程序,所述基于两方安全协作的全同态加密程序被所述处理器执行时实现如权利要求1-5任意一项所述基于两方安全协作的全同态加密方法的步骤。
11.计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有基于两方安全协作的全同态加密程序,所述基于两方安全协作的全同态加密程序被处理器执行时实现如权利要求1-5任意一项所述基于两方安全协作的全同态加密方法的步骤。