基于小间隔插值拟合近似计算的同态加密自举方法

文档序号:33770173发布日期:2023-04-18 21:03阅读:42来源:国知局
基于小间隔插值拟合近似计算的同态加密自举方法

本发明涉及一种基于小间隔插值拟合的自举实现方法,通过小区间内的拉格朗日插值拟合实现近似计算同态加密的自举实现过程。


背景技术:

1、随着大数据、物联网等技术的发展,用户产生的数据往往需要存储在服务器并经服务器运算处理,用户的敏感隐私数据在信息传输及运算处理过程中均有泄露的可能。在涉及金融数据计算、医疗数据处理以及智能电网等用户隐私数据敏感的应用领域需要使用隐私计算技术保障用户数据安全,而同态加密是解决隐私数据运算的良好加密技术。用户通过同态加密技术对敏感隐私数据进行加密后上传到服务器端,服务器通过同态运算对加密数据进行处理后将密文运算结果返回给用户,用户再将同态运算结果解密,得到明文运算结果。

2、cheon等人于2017年在文献ckks17“cheon,j.h.,kim,a.,kim,m.,song,y.(2017).homomorphic encryption for arithmetic of approximate numbers.in:takagi,t., peyrin,t.(eds)advances in cryptology–asiacrypt 2017.asiacrypt2017.lecture notes in computer science(),vol 10624.springer,cham.”中提出了一种基于近似计算的层次同态加密方案,该方案按词级加密,便于密文上的算术运算,具有极大的实际应用价值。随后,cheon等人在2018年的文献chk+18“cheon,j.h.,han,k.,kim,a.,kim, m.,song,y.(2018).bootstrapping for approximate homomorphicencryption.in:nielsen, j.,rijmen,v.(eds)advances in cryptology–eurocrypt2018.eurocrypt 2018. lecture notes in computer science(),vol 10820.springer,cham.”中提出了针对ckks17 层级同态加密的自举方法,将ckks17方案转换为全同态加密方案。近似计算同态加密方案是词级加密,在加密映射过程中因运算域的同构变换导致在密文上无法直接实现同态模运算,导致无法直接进行自举操作。

3、规定q为整数模,r为正整数,chk+18使用正弦函数来对模运算进行近似计算,具体实现过程中先通过泰勒展开计算和再计算经过r次平方操作得到最后通过欧拉公式eix=cosx+isinx从指数函数中抽取出正弦函数得到对于模函数的近似计算。但该计算过程运算量巨大,经实际代码测试,上述步骤耗时占到了自举过程总耗时的约70%,在保证8比特运算精度的前提下,自举一次耗时24.6秒,128槽并行计算状态下分时计算时间仍需要1.2秒。故而自举运算效率成为了同态加密方案中亟需解决的关键问题。


技术实现思路

1、在实际工程应用,如医疗数据处理中,数据运算量大,无法通过层次同态加密完成全部数据处理工作。此时需要使用自举技术使加密方案达到全同态,为了克服近似计算同态加密方案自举过程中模函数计算慢、计算精度受限这一问题,本发明提出了一种基于曲线小间隔插值拟合的近似计算同态加密方案自举方法,通过在多个小区间内分别插值拟合,最终在大区间上得到一个精度更高、效率更快的拟合多项式,从而提升自举效率,并提高实际工程应用的整体运行速度。

2、本发明的技术方案为:

3、一种基于小间隔插值拟合近似计算的同态加密自举方法,包括以下步骤:

4、步骤1:初始化:

5、设置参数包括:同态加密方案的安全参数λ,同态加密方案的计算精度prec,同态加密方案的槽数n,以及分割后的小区间个数k;

6、步骤2:选取拟合函数:

7、使用拉格朗日插值多项式对正弦曲线进行近似拟合:

8、步骤2.1:在要自举的隐私数据x的取值范围[a,b]中截取出k=o(λ)个插值小区间;

9、步骤2.2:选择满足的n值作为拉格朗日插值多项式的度数polyn;对于每个小插值区间[xi,0,xi,polyn],1≤i≤k,小插值区间的拟合多项式度数为polyn,需要选取的插值点个数为polyn+1,规定选取插值区间的两个端点,则选取的 polyn+1个插值点即为xi,0,xi,1,…,xi,polyn-1,xi,polyn;

10、步骤2.3:对于正弦函数y=f(x),计算两个端点xi,0和xi,polyn处的函数值,分别为和按照y值等间距选取插值点xi,j,j=0,1,...,polyn,y值间隔则通过y=f(x)的反函数x=f-1(y)计算出polyn-1个插值点:

11、步骤2.4:将上述polyn+1个插值点代入拉格朗日插值计算公式进行曲线拟合,得到多项式函数l(x)=a0+a1x+a2x2+…+apolynxpolyn;

12、步骤2.5:对于区间[a,b]上的所有小插值区间做如上操作,得到k个插值多项式li(x),i=1,2,…,k,这k个插值多项式构成了对正弦函数选定小区间内的近似拟合;

13、步骤3:线程分配

14、申请最大线程个数为tn的线程池;若tn≥3k,则步骤4分配2k个线程,步骤5 分配k个线程,否则步骤4分配个线程,步骤5分配个线程;

15、步骤4:利用待自举密文ct,计算向量cmpans;cmpans的元素cmpansi代表ct是否属于该元素对应的小区间[xi,0,xi,polyn];pk为公钥,用encpk(μ)表示使用公钥pk对明文μ加密后的结果:

16、步骤4.1:计算插值区间起始点向量

17、begin=(encpk(x1,0-2-prec),encpk(x2,0-2-prec),…,encpk(xk,0-2-prec))

18、和插值区间终止点向量

19、end=(encpk(x1,polyn+2-prec),encpk(x2,polyn+2-prec),…,encpk(xk,polyn+2-prec));

20、步骤4.2:代表组合数的计算,选取度数为2n+1的多项式其中取通过g(-x)=-g(x)以及使x∈(0,δ]时满足x<g(x)≤1,x∈[δ,1]时满足确定函数gn(x);将复合函数f[g(x)]记作通过dg次gn(x)和df次fn(x)复合,计算拟合得到的符号函数:

21、

22、其中

23、步骤4.3:计算其中归一化向量得到lower和upper两个维数相等的向量;对于这两个向量的内积cmpans=lower·upper,只有在ct对应的区间上结果是趋于encpk(1),其他各区间结果均趋于encpk(0);返回结果cmpans;

24、步骤5:将ct分别代入步骤2产生的k个插值多项式li(x),i=1,2,…,k,得到插值结果向量lres=(l1(ct),l2(ct),…,lk(ct));返回结果lres;

25、步骤6:计算新鲜密文:

26、对于相对较小的模q,替换为新的模q,

27、满足q>>q且[<ct,sk>]q=<ct,sk>(modxn+1);对向量lres=calpoly(ct)和cmpans=cmp(ct),计算自举后的新鲜密文返回结果ct′。

28、有益效果

29、本发明的有益效果是:

30、在传统的基于近似计算的同态加密方案自举过程中的模运算的实现是先通过泰勒展开计算和再计算

31、

32、经过r次平方操作得到最后通过欧拉公式eix=cosx+isinx从指数函数中抽取出正弦函数从而便得到了对于模函数的近似计算。但该计算过程运算量巨大,在保证8比特运算精度情况下,自举一次耗时24.6秒,128 槽并行计算状态下分时计算时间仍需要1.2秒。

33、本发明通过在多个小区间内分别对正弦函数进行拉格朗日插值,使多项式计算度数降低,并且通过使用比较函数得到密文所在区间,最终插值结果与比较函数计算出的密文区间结果相乘得到最终自举后的结果。在计算各区间插值点和计算比较函数的过程中,不同计算任务均可并行化处理,使得方案效率有大幅度提升。通过使用小区间拟合多项式对比较函数进行近似计算,保证8比特运算精度下单个比较函数运算仅需0.47ms,在所分区间个数为k=o(λ)的情况下,并行计算后整体自举运算时间可远小于原始方案自举过程的运算时间。

34、本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

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