全同态密文除法加密方法、系统、计算机设备和存储介质与流程

文档序号:36789126发布日期:2024-01-23 12:06阅读:12来源:国知局
全同态密文除法加密方法、系统、计算机设备和存储介质与流程

本技术涉及数据安全,特别是涉及一种全同态密文除法加密方法、系统、计算机设备和存储介质。


背景技术:

1、fhe(fully homomorphic encryption,完全同态加密)是一种特殊的加密技术,它允许在加密状态下进行计算操作,包括加法、乘法和其他运算,而无需解密明文。这为保护数据隐私提供了更高的安全性,同时也为云计算、数据共享和隐私保护提供了新的可能性。

2、目前主流的fhe方案有bfv/bgv/ckks/tfhe:

3、(1)bfv(brakerski-fan-vercauteren)方案:bfv方案是最早提出的fhe方案之一,它提供了对加法和乘法运算的支持。bfv方案中的加法运算可以直接在密文中实现,而乘法运算则需要辅助计算来处理。

4、(2)bgv(boneh-goh-nissim)方案:bgv方案是另一种常用的fhe方案,与bfv类似,它也支持加法和乘法运算。bgv方案中的加法运算可以直接在密文中实现,而乘法运算则需要通过运算技巧进行转换来处理。

5、(3)ckks(cheon-kim-kim-song)方案:ckks方案是一种特殊的fhe方案,它主要针对实数和复数的计算进行优化。ckks方案支持加法、乘法和同态评估(homomorphicevaluation),并提供了较好的浮点数近似计算能力。

6、(4)tfhe(fast fully homomorphic encryption over the torus)方案:tfhe方案是一种高效的fhe方案,主要用于实现低层次的同态加密操作。它支持加法、乘法和其他基本运算,并采用了各种优化技术来提高计算性能。

7、这些fhe方案在加法和乘法的密文计算方面都有较好的支持,但是对除法的支持各有不同。一般来说,除法运算在fhe中相对困难,常常需要通过转换和辅助计算来实现。bfv/bgv方案不支持整数除法;ckks方案支持一定范围的近似除法,对除数大小有限制,除法运算通用性不好;tfhe方案中通过门电路实现整数除法,通用性很好,但运算性能较低。


技术实现思路

1、本技术提供一种全同态密文除法加密方法、系统、计算机设备和存储介质,旨在解决现有技术fhe方案通用性不好或计算性能较低的技术问题。

2、第一方面,一种全同态密文除法加密方法,包括:

3、s1,获取数据发起方生成的公钥、明文被除数ddividend和明文除数ddivisor;

4、s2,利用加密算法和所述公钥,对所述明文被除数ddividend和明文除数ddivisor进行加密,得到密文被除数元素enc(ddividend)和密文除数元素enc(ddivisor);

5、s3,分别对所述密文被除数元素enc(ddividend)和密文除数元素enc(ddivisor)进行运算,得到相应密文被除数cdividend和密文除数cdivisor;所述运算为乘法运算、加法运算和减法运算中的一种;

6、s4,基于预先定义的密文比较函数和基础运算函数,对所述密文被除数cdividend和密文除数cdivisom进行除法运算,得到密文商crlt;

7、s5,将所述密文商crlt发送给所述数据发起方。

8、可选地,所述公钥的生成过程包括:

9、根据安全参数,生成fhe私钥,记为sk;

10、根据所述fhe私钥sk,生成相应fhe加密公钥,记为enc_key,

11、根据所述fhe私钥sk,生成重线性密钥和密文自举密钥,所述重线性密钥和密文自举密钥统一记为rlk_key;

12、将enc_key和rlk_key统一记为公钥pk。

13、可选地,所述明文被除数ddividend包括至少两个明文子被除数,所述明文除数ddivisor包括至少两个明文子除数。

14、进一步可选地,所述明文被除数ddividend包括第一明文子被除数ddividend0和第二明文子被除数ddividend1,所述明文除数ddivisor包括第一明文子除数ddivisior0和第二明文子除数ddivisior1;

15、步骤s2包括:利用加密算法和所述公钥,对所述第一明文子被除数ddividend0和第二明文子被除数ddividend1进行加密,得到第一密文被除数元素cdividend0=enc(ddividend0)和第二密文被除数元素cdividend1=enc(ddividend1);对所述第一明文子除数ddivisior0和第二明文子除数ddivisior1进行加密,得到第一密文除数元素cdivisor0=enc(ddivisor0)和第二密文除数元素cdivisor1=enc(ddivisor1);

16、步骤s3包括:对所述第一密文被除数元素cdividend0=enc(ddividend0)和第二密文被除数元素cdividend1=enc(ddividend1)进行加法运算,得到密文被除数cdividend=add(cdividend0,cdividend1);对所述第一密文除数元素cdivisor0=enc(ddivisor0)和第二密文除数元素cdivisor1=enc(ddivisor1)进行加法运算,得到密文除数cdivisor=add(cdivisior0,cdivisiorr1)。

17、可选地,所述方法还包括:获取数据发起方设定的除法结果最大值qmax,

18、步骤s4包括:利用所述除法结果最大值qmax,基于预先定义的密文比较函数lt(c0,c1)、乘法函数、加法函数和减法函数,对所述密文被除数cdividend和密文除数cdivisor实现除法运算,得到密文商crlt;当dec(c0)≥dec(c1)时,lq(c0,c1)=enc(c1),否则lt(c0,c1)=enc(c0)。

19、进一步可选地,步骤s4包括:

20、创建空数组cdiv,用于存储密文除数cdivisor经过左移操作的结果;

21、创建空数组ccount,用于存储左移位数以便后续计算;

22、计算左移次数的上限loop,loop=log2 qmax;

23、执行循环操作,i依次取0至loop,对于每个取值的i:计算当前左移位数并利用加密算法进行加密,得到当前左移位数ccount[i]=enc(pow(2,i)),并利用乘法函数将除数cdivisor与当前左移位数ccount[i]相乘,得到每次密文除数cdivisor经过左移操作的结果cdiv[i],cdiv[i]=mul(cdivisor,ccount[i]);

24、初始化密文商crlt为enc(0);

25、初始化变量cdivd_loop为密文被除数cdividend;

26、执行循环操作,i依次取loop至0,对于每个取值的i:利用密文比较函数lt对被除数cdividend和当前除数cdiv[i]进行比较,得到比较结果ccp[i],ccp[i]=lt(cdivd_loop,cdiv[i]);利用乘法函数将比较结果ccp[i]与当前左移位数ccount[i]相乘,得到当前位置的乘积结果ccur_rlt,ccur_rlt=mul(ccp[i],ccount[i]);利用加法函数,将当前位置的乘积结果ccur_rlt与密文商crlt相加,更新密文商crlt,crlt=add(crlt,ccur_rlt);利用乘法函数将比较结果ccp[i]与当前除数cdiv[i]相乘,得到乘积结果ccur_sub,ccur_sub=mul(ccp[i],cdiv[i]);利用减法函数将变量cdivd_loop与乘积结果ccur_sub相减,更新变量cdivd_loop,

27、循环结束后,得到的最终密文商crlt即为被除数cdividend和密文除数cdivisor的除法运算结果。

28、第二方面,一种全同态密文除法加密系统,其特征在于,包括数据发起方和计算方,所述数据发起方用于生成公钥、明文被除数ddividend和明文除数ddivisor;

29、所述计算方用于获取数据发起方生成的公钥、明文被除数ddividend和明文除数ddivisor;利用加密算法和所述公钥,对所述明文被除数ddividend和明文除数ddivisor进行加密,得到密文被除数元素enc(ddividend)和密文除数元素enc(ddivisor);分别对所述密文被除数元素enc(ddividend)和密文除数元素enc(ddivisor)进行运算,得到相应密文被除数cdividend和密文除数cdivisor;所述运算为乘法运算、加法运算和减法运算中的一种;基于预先定义的密文比较函数和基础运算函数,对所述密文被除数cdividend和密文除数cdivisor进行除法运算,得到密文商crlt;将所述密文商crlt发送给所述数据发起方。

30、第三方面,一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现第一方面中任一项所述方法的步骤。

31、第四方面,一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面中任一项所述方法的步骤。

32、相比现有技术,本技术至少具有以下有益效果:

33、本技术实施例所提供的全同态密文除法加密方法中,通过获取数据发起方生成的公钥、明文被除数ddividend和明文除数ddivisor;利用加密算法和公钥,对明文被除数ddividend和明文除数ddivisor进行加密,得到密文被除数元素enc(ddividend)和密文除数元素enc(ddivisor);分别对密文被除数元素enc(ddividend)和密文除数元素enc(ddivisor)进行运算,得到相应密文被除数cdividend和密文除数cdivisor;基于预先定义的密文比较函数和基础运算函数,对密文被除数cdividend和密文除数cdivisor进行除法运算,得到密文商crlt;将密文商crlt发送给数据发起方;使得数据发起方的明文数据加密后发送给计算方,计算方能够通过密文比较,结合乘法/加法/减法的基础运算实现密文除法,并将密文除法结果发送给数据发起方;相对主流fhe方案及开源框架中对密文除法的支持不够友好,本方案在密文除法的通用性和计算性能之间取得了很好的平衡,既具有良好的运算通用性,运算性能也得到了提高。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1