一种基于安全两方计算S型函数的隐私保护方法

文档序号:35054783发布日期:2023-08-06 10:39阅读:47来源:国知局
一种基于安全两方计算S型函数的隐私保护方法

本发明属于联邦学习的隐私保护,具体涉及一种基于安全两方计算s型函数的隐私保护方法。


背景技术:

1、随着深度学习技术的发展,神经网络预测技术被应用于越来越多的领域。然而,在联邦学习系统中,现有的基于深度学习的预测系统正面临着极为严重的隐私问题。如果用户直接向服务提供者发送包含隐私信息的数据,就可能导致隐私泄露,反之,如果服务提供者将神经网络模型发送给用户,无疑也侵犯了服务提供者的知识产权。为了解决上述隐私问题,需要提供安全计算神经网络模型的解决方案。

2、s型函数是一种有界、可微的实函数,其形状曲线至少有2个焦点,也叫“二焦点曲线函数”。s型函数在实数范围内均有取值,且导数恒为非负,有且只有一个拐点。常见的s型函数有logistic和tanh,被广泛应用于深度学习,例如递归神经网络预测中。尽管目前存在一些方法为这些函数提供了安全实现,但是仍有严重的性能瓶颈,无法应用到实际场景中。

3、当前已有一些两方安全计算数学函数的隐私保护方法被提出。一类方法使用高阶多项式来近似这些数学函数,然而它们提供的精度很低,除非多项式的次数足够高(通常需要7次或以上),这意味着这种方法需要大量的计算和通信开销。另一类方法基于安全推理实现了高精度的数学函数,然而为了获得理想的性能,对每个数据集和模型,这种方法都需要重新平衡精度和成本,这显然是不实际的。此外,还有一类方法为浮点表示的数学函数提出了基于近似多项式的协议,不过这些协议存在高昂的开销。目前最先进的协议使用了查找表和ot扩展技术,提供了较高的精度,但是在计算和通信的效率上仍然有所欠缺。


技术实现思路

1、本发明提供了一种基于安全两方计算s型函数的隐私保护方法,可用于在保障联邦学习的隐私保护前提下降低资源开销,及保障计算准确率。

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

3、一种基于安全两方计算s型函数的隐私保护方法,在包括一个服务端p1和若干个客户端p0的联邦学习系统中,执行下列步骤:

4、服务端p1响应于客户端p0发起的预测任务请求,将匹配于预测任务请求的神经网络模型下发给客户端p0;所述神经网络模型的网络层包括两类:线性层和非线性层;

5、客户端p0基于本端的待预测数据,通过与服务端p1之间的数据交互逐层完成本端对神经网络模型的前向推理运算,获取待预测数据的预测结果,具体包括:

6、步骤1,客户端p0对待预测数据进行数据预处理,以匹配神经网络模型的输入;

7、步骤2,对神经网络模型的第一层,客户端p0对神经网络模型的输入数据做加法分享,并将分享值发送给服务端p1,定义l表示当前层的输入数据长度;

8、步骤3,基于当前层的分享值执行前向推理运算;

9、i)若当前层为线性层,则前向推理运算包括:

10、客户端p0发送到p1,以使得服务端p1提取到输入数据其中,表示客户端p0的每一层的输入数据,n表示环的大小,r是在环中选取的一个随机数,并且以秘密分享的形式为服务端p1和客户端p0共同持有;

11、客户端p0基于本端的模型中间参数令当前层的输出并将作为客户端p0的下一层的输入数据

12、服务端p1重构当前层的数据基于本端的模型中间参数计算当前层的输出并将y1作为服务端p1的下一层的输入数据

13、其中,w表示服务端p1持有的神经网络模型参数,和的具体计算方式为:

14、服务端p1将w-b发送给客户端p0,客户端p0在本地计算参数

15、服务端p1在本地计算

16、a1表示当前线性层的乘积分享参数,且a1=ab-a0,a表示客户端p0选取的随机数,b表示服务端p1选取的随机数;

17、ii)若当前层为非线性层,则前向推理运算包括:

18、检测当前层的执行函数,若为logistic函数,则执行步骤(3a),若为tanh函数,则执行步骤(3b);

19、(3a)当前层执行logistic函数的计算,包括下列步骤:

20、(3a-1)客户端p0和服务端p1分别调用最高有效位函数输入<x>l得到其符号位<msb>b,其中<x>l表示l比特的分享值;

21、(3a-2)客户端p0和服务端p1分别调用多路复用函数计算

22、(3a-3)客户端p0和服务端p1分别调用负指数函数输入<nx>l得到<nxe>s+2,其中,s表示负指数函数中设置的位数;

23、(3a-3-1)客户端p0和服务端p1分别在本地计算分享值<px>l=-<nx>l;

24、(3a-3-2)服务端p1调用数值分割函数以<px>l为输入,得到c项长度为d的分割值{<aj>d}j∈[c],其中

25、(3a-3-3)对于每一个j∈[c],客户端p0和服务端p1分别调用查找表函数输入<aj>d,得到<tj[aj]>s+2,其中tj[aj]表示查找表tj的第aj项,且tj[aj]=exp(-2dj-saj);

26、(3a-3-4)客户端p0和服务端p1分别调用乘法函数和截断函数计算所有表项的累乘得到结果<nxe>s+2;

27、(3a-4)客户端p0和服务端p1分别调用除法函数计算

28、(3a-5)客户端p0和服务端p1分别调用多路复用函数计算<ch>s+2=1+<mxb>b·(<nxe>s+2-1);

29、(3a-6客户端p0和服务端p1分别调用乘法函数和截断函数计算<xs>s+2=<ch>s+2·<nxs>s+2;

30、(3a-7)客户端p0和服务端p1分别调用位扩展函数输入<xs>s+2,得到分享值<y>l;

31、(3b)当前层执行tanh函数的计算,包括下列步骤:

32、(3b-1)客户端p0和服务端p1分别调用最高有效位函数输入<x>l,得到其符号位<msb>b;

33、(3b-2)客户端p0和服务端p1分别调用多路复用函数计算<nx>l=-<x>l+<msb>b·2<x>l;

34、(3b-3)客户端p0和服务端p1分别在本地计算<n2x>l=2×<nx>l;

35、(3b-4)客户端p0和服务端p1分别调用负指数函数输入<n2x>l,得到<n2xe>s+2;

36、3b-5)客户端p0和服务端p1分别在本地计算<r1>s+2=1-<n2xe>s+2,<r2>s+2=1+<n2xe>s+2;

37、(3b-6)客户端p0和服务端p1分别调用除法函数计算

38、(3b-7)客户端p0和服务端p1分别在本地计算<t1>s+2=-2×<nxt>s+2;

39、(3b-8)客户端p0和服务端p1分别调用多路复用函数计算<t2>s+2=<msb>b·<t1>s+2;

40、(3b-9)客户端p0和服务端p1分别在本地计算<xt>s+2=<nxt>s+2+<t2>s+2;

41、(3b-10)客户端p0和服务端p1分别调用位扩展函数输入<xt>s+2,得到分享值<y>l;

42、步骤3,检测当前层是否为神经网络模型的最后一层,若是,则服务端p1将本端所持有的<y>l的份额发送给客户端p0;

43、客户端p0根据二者所持有的份额还原所得结果为y,得到神经网络模型的前向推理运算结果,得到当前输入的待预测数据的预测结果;

44、若当前层不是神经网络模型的最后一层,则客户端p0和服务端p1以当前得到的<y>l为下一层的输入执行步骤2,继续下一层的前向推理运算。

45、进一步的,为了减少lut协议(查找表协议)中的位宽,在执行lut协议时,发送方在查找表中删除了m位最低位,将每一项从l比特变为l-m比特;lut协议执行完毕后,接收方采用随机比特填充方式将其填充回l比特,其中,m为预设值。

46、进一步的,在调用函数时,仅在调用方本端进行移位操作。

47、本发明提供的技术方案至少带来如下有益效果:

48、(1)隐私保护,本发明对联邦学习的模型训练过程中参与前向推理运算的相关参数,在服务端与客户端之间被双方以秘密分享方式存储的参数,计算后的结果仍以秘密分享方式存储,以此保证隐私安全。

49、(2)降低了资源开销,与已有方法相比,本发明所需的计算和通信开销更少;

50、(3)计算准确率,本发明与不具备隐私保护的计算方式相比,其计算准确率相当。

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