基于函数秘密共享的安全二值神经网络推理系统

文档序号:36928941发布日期:2024-02-02 21:54阅读:20来源:国知局
基于函数秘密共享的安全二值神经网络推理系统

本发明属于机器学习即服务的,具体涉及一种基于函数秘密共享的安全二值神经网络推理系统。


背景技术:

1、机器学习即服务是一种提供机器学习模型和算法作为服务的方法,其允许用户通过简单的接口或api调用,以低成本和低复杂性的方式访问和使用强大的机器学习工具和功能,获得机器学习模型的推理能力。然而,在提供服务的过程会泄露机器学习模型和用户的待推理数据,因此亟需保证推理结果的正确和保护机器学习模型和用户的待推理数据的隐私。

2、在机器学习即服务的场景中,安全二值神经网络推理支持用户基于待推理数据使用服务器端训练好的二值神经网络模型得到推理结果,在此过程中不泄露用户的待推理数据和服务器端模型。目前,在安全二值神经网络推理的实现方案中,基于密码学的方法是十分重要的一类方法,根据使用的方法主要分为以下几类:

3、(1)同态加密方法:数据拥有方首先对数据进行加密得到密文数据,然后直接基于密文数据进行二值神经网络推理,并保证得到的结果经过解密后与在明文下的计算结果一致。

4、(2)混淆电路方法:数据拥有方将自己的数据输入到一个由混淆电路技术实现的安全计算协议中,从而来执行神经网络推理计算并得到推理结果,安全计算协议保证数据的隐私性和结果的正确性。

5、(3)混合协议方法:数据拥有方将隐私数据输入到秘密共享、混淆电路和同态加密等组成的安全二值神经网络推理协议中,得到推理结果,能够保证待推理数据和神经网络模型的隐私性和推理结果的正确性。

6、上述现有技术存在以下缺点:

7、(1)同态加密方法:同态加密方法的计算量大,因为数据以密文形式表示时,数据量比以明文形式的更大,当直接在密文数据上进行计算时,其计算量很大。

8、(2)混淆电路方法:混淆电路方法中数据拥有方的总通信量大,混淆电路方法的在线阶段需要大量交互混淆表等信息,从而使得总通信代价很大,计算效率较低。

9、(3)混合协议方法:混合协议方法中能够利用各类协议的优势实现神经网络推理高效计算,但在协议实现过程中需要额外进行状态转换从而会引入额外计算开销。


技术实现思路

1、本发明的主要目的在于克服现有技术的缺点与不足,提供一种基于函数秘密共享的安全二值神经网络推理系统,针对神经网络推理中存在的隐私问题和部署挑战,基于加性秘密共享和函数秘密共享设计安全两方计算框架,选择易于部署的二值神经网络模型,实现高效安全二值神经网络推理系统。

2、为了达到上述目的,本发明采用以下技术方案:

3、本发明的一个方面,提供了一种基于函数秘密共享的安全二值神经网络推理系统,包括输入层、若干个隐含层以及输出层,客户端 c持有的隐私输入数据 x和服务器端 s持有的隐私模型参数 w,经输入层、隐含层和输出层处理后得到推理结果 y;

4、所述输入层、若干个隐含层以及隐含层根据实际神经网络结构设置若干个安全全连接运算单元、安全卷积运算单元、安全批量归一化运算单元、安全二值激活函数运算单元以及安全最大池化运算单元;

5、所述安全全连接运算单元和安全卷积运算单元配置为:接收待处理信号,对待处理信号进行安全全连接运算或安全卷积运算,即安全矩阵运算,以得到安全全连接运算单元或安全卷积运算单元结果;所述安全矩阵运算具体为:给定二值化的隐私模型参数和隐私输入数据,其中 w b是 w的0-1编码,即将 w的元素+1和-1分别编码为1和0;表示运算所处的环,上标 n表示对应值的比特位宽,下同; d1, d2, d3表示矩阵的维度, d1× d2表示 d1行 d2列矩阵;安全矩阵运算计算;

6、所述安全批量归一化运算单元配置为:接收待处理信号,对待处理信号进行安全批量归一化运算以得到安全批量归一化运算结果;所述安全批量归一化运算具体为:给定输入份额和批量归一化参数 γ和 β,其有,bn表示安全批量归一化运算;

7、所述安全二值激活函数运算单元配置为:接收待处理信号,对待处理信号进行安全二值激活函数运算以得到安全二值激活函数运算结果;所述安全二值激活函数运算具体为:给定输入份额,如果 x≥0则输出+1,否则输出-1,ba表示安全二值激活函数运算;

8、所述安全最大池化运算单元配置为:接收待处理信号,对待处理信号进行安全最大池化运算以得到安全最大池化运算结果;所述安全最大池化运算具体为:将输入矩阵的所有元素进行0-1编码,针对每一个窗口进行求和并加上-1,再进行安全二值激活函数运算,获得安全最大池化运算结果。

9、作为优选的技术方案,隐私模型参数 w包括各层神经网络的隐私模型参数,即 w= w( l), l=1,2,…, l, l为神经网络层数, l为神经网络总层数;所述输入层为第1层,其输入为 x(0)= x和输入层隐私模型参数 w(1),其输出为和,其中上标 n2表示对应值的比特位宽,下同;所述隐含层为第2到 l-1层,其输入为数据秘密份额、和隐含层隐私模型参数 w( l’), l’= 2,…, l-1为隐含层层数,其输出为和;所述输出层为第 l层,其输入为数据秘密份额、和输出层隐私模型参数 w( l),其输出为和,其中满足。

10、作为优选的技术方案,所述输入层包括依次连接的安全卷积运算单元、安全批量归一化运算单元以及安全二值激活函数运算单元;所述隐含层包括依次连接的安全全连接运算单元、安全批量归一化运算单元以及安全二值激活函数运算单元;所述输出层包括依次连接的安全全连接运算单元以及安全批量归一化运算单元。

11、本发明的另一个方面,还提供了一种基于函数秘密共享的安全二值神经网络推理方法,包括以下步骤:

12、初始时,客户端 c和服务器端 s分别持有隐私输入数据 x和隐私模型参数 w;隐私模型参数 w包括各层神经网络的隐私模型参数,即 w= w( l), l=1,2,…, l, l为神经网络层数, l为神经网络总层数;

13、s1、对于输入层,神经网络层数 l=1,客户端 c和服务器端 s执行下面的计算:

14、s11、客户端 c和服务器端 s计算,其中,表示运算所处的环,上标 n表示对应值的比特位宽,下同;matmul表示安全矩阵运算,具体为:给定二值化隐私模型参数和隐私输入数据,其中 d1, d2, d3表示矩阵的维度, d1× d2表示 d1行 d2列矩阵,安全矩阵运算matmul计算,其中 w b是 w的0-1编码,即将 w的元素+1和-1分别编码为1和0;

15、s12、若有最大池化层,则客户端 c和服务器端 s计算,然后计算,上标 n1、 n2表示对应值的比特位宽,下同;否则客户端 c和服务器端 s直接计算;其中,bn表示安全批量归一化运算,具体为:给定输入份额和批量归一化参数 γ和 β,其有;ba表示安全二值激活函数运算,具体为:给定输入份额,如果 x≥0则输出+1,否则输出-1;maxpool表示安全最大池化运算,具体为:将输入矩阵的所有元素进行0-1编码,针对每一个窗口进行求和并加上-1,再进行安全二值激活函数运算,获得安全最大池化结果;

16、s2、对于隐含层,神经网络层数2≤ l≤ l-1,客户端 c和服务器端 s执行下面的迭代计算:

17、s21、客户端 c和服务器端 s计算;

18、s22、客户端 c和服务器端 s计算,然后计算;

19、s3、对于输出层,神经网络层数 l= l,客户端 c和服务器端 s执行下面的计算:

20、s31、客户端 c和服务器端 s计算;

21、s32、客户端 c和服务器端 s计算;

22、s4、最后,服务器端s将发送给客户端 c,然后客户端 c计算得到推理结果。

23、作为优选的技术方案,安全矩阵运算matmul的具体实现方案如下,分为离线阶段和在线阶段:

24、s1、离线阶段:客户端 c和服务器端 s生成矩阵乘法三元组( u,v),其满足 u+v=w× r,其中 w表示服务器端 s持有的隐私模型参数, r表示客户端 c随机选择的矩阵,具体步骤如下:

25、s11、服务器端 s持有的隐私模型参数 w,并将其0-1编码为 w b,记矩阵 w第 i行第 j列元素为 w ij,矩阵 w b第 i行第 j列元素为 w ij b;客户端 c持有的隐私输入数据 x,并随机选择矩阵,记矩阵 r第 j行第 k列元素为 r jk;计算使得服务器端 s和客户端 c分别获得 u和 v,具体步骤如下:

26、s111、客户端 c随机选择,并设置相关不经意传输协议cot n的相关函数 f j( x) =-(2 s j +x)mod2 n,其中mod为取模运算,上标 n表示对应值的比特位宽,下同;并设 m0=-( r jk+ s j);服务器端 s设置参与方索引 b= w ij b, b取0或1;

27、s112、客户端 c和服务器端 s共同计算(⊥; m b)←cot n( m0, f j( x); b),所述相关不经意传输协议cot n以 m0, f j( x)和 b作为输入,输出 m b,即 m0或 m1给服务器端 s,且;客户端 c不得到任何输出,用⊥表示;

28、s113、服务器端 s令,客户端 c令 v=s j;

29、s114、服务器端 s和客户端 c迭代计算步骤s111~s113,得到 d1× d3个元素 u和 v,并分别将 u和 v按照计算式中( i,j)的排列关系排列成 d1行 d2列的矩阵 u和 v,且满足 u+v=w× r,最后服务器端 s和客户端 c分别获得矩阵 u和 v;

30、s2、在线阶段:服务器端 s和客户端 c利用矩阵 u和 v计算 z=w× x,步骤如下:

31、s21、对于在输入层的安全卷积层运算conv,其归约为安全矩阵运算matmul,此时客户端 c持有的隐私输入数据 x(0)= x和随机矩阵 r(0)= r,服务器端 s持有输入层隐私模型参数 w(1);给定 u和 v满足 u+v=w(1)× r(0),客户端 c发送 x(0)- r(0)给服务器端 s,并令,服务器端 s在本地计算;

32、s22、对于隐含层的安全卷积层运算conv和输出层的安全全连接层运算fc,此时客户端 c持有的隐私输入数据 x的秘密份额和随机矩阵 r( l-1)= r,服务器端 s持有隐私输入数据 x的秘密份额和隐含层隐私模型参数 w( l);给定 u和 v满足 u+v=w( l)× r( l-1),客户端 c发送给服务器端 s,并令,服务器端 s在本地计算。

33、作为优选的技术方案,二值激活层在批量归一化层后,因此将二值激活层和批量归一化层同时计算,即定义安全激活函数运算bnba,由安全批量归一化运算bn和安全二值激活函数运算ba构成;

34、对于安全批量归一化运算bn,给定输入份额和批量归一化参数 γ和 β,其有;

35、对于安全激活函数运算bnba,给定输入份额和批量归一化参数 γ和 β,其有,考虑到 γ>0,则,故的计算转化为,具体有:

36、在输入层, x、 β/γ均为定点小数,故有;

37、在隐含层, x为整数, β/γ为定点小数,等价于,故有。

38、作为优选的技术方案,安全二值激活函数运算ba中,客户端 c和服务器端 s分别持有秘密份额,其计算得到秘密份额满足,具体计算步骤如下:

39、s1、在离线阶段,生成函数秘密共享密钥,并发送给客户端 c和服务器端 s,步骤如下:

40、s11、计算,其中比较函数秘密共享密钥生成函数以输入掩码 r in和输出掩码 r out作为函数输入,1 λ为安全参数,输出对应的比较函数秘密共享密钥( k0, k1),该密钥用于分布式地计算比较函数,上标 sign表示有符号函数; m是输入值,即输入掩码 r in对应的比特位宽; n是输出值,即输出掩码 r out对应的比特位宽;

41、s12、将输入掩码 r in和输出掩码 r out进行秘密分发得到两方秘密份额、、和,随后,将 k0,,和 k1,,分别发送给客户端 c和服务器端 s;

42、s2、在在线阶段,客户端 c和服务器端 s计算得到输出,步骤如下:

43、s21、客户端 c本地计算,并将其发送给服务器端 s;服务器端 s本地计算,并将其发送给客户端 c;

44、s22、客户端 c和服务器端 s分别在本地重构得到;

45、s23、客户端 c本地计算,服务器端 s本地计算,其中以s11中生成的所述比较函数秘密共享密钥( k0, k1)和掩蔽后的真实输入 x+ r in作为函数输入,输出比较函数结果的秘密份额,上标 sign表示有符号函数; m是输入值对应的比特位宽; n是输出值对应的比特位宽。

46、本发明在离线-在线计算范式下,针对二值神经网络推理过程中卷积层、激活层、最大池化层、全连接层和批量归一化层等运算,基于函数秘密共享和加性秘密共享设计安全子协议,构建了高效的安全二值神经网络推理系统,与现有技术相比,具有如下优点和有益效果:

47、(1)通信高效乘法三元组生成方案:本发明利用先进的相关不经意传输协议来生成矩阵乘法三元组,并基于此设计了高效的安全全连接层和卷积层运算,结合离线-在线计算范式,大大减少了客户端所需的计算和通信。

48、(2)安全二值激活函数协议:本发明利用函数秘密共享技术,设计了支持位宽转换的安全二值激活函数,并基于此设计了安全激活函数运算和安全最大池化运算,从而支持混合位宽计算,减少了非线性函数计算所需的通信代价。

49、(3)高效的安全二值神经网络推理系统:本发明利用二值神经网络推理的架构优势和模型优势,基于函数秘密共享技术设计了专用的安全二值神经网络推理子协议,支持在线通信优化和混合位宽计算,实现了实用安全二值神经网络推理系统。

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