本发明涉及的是一种信息安全领域的技术,具体是一种基于安全多方计算的隐私保护机器学习实现系统及方法。
背景技术:
1、安全多方计算是实现隐私保护机器学习的常用方法。作为一种密码学领域的技术,其优点在于可严格证明安全性。安全多方计算协议的安全性的两个重要衡量标准是:1)敌手是被动的半诚实敌手还是主动的恶意敌手,2)敌手可以控制的协议参与方数量。对于协议的n个参与方,一个很强的安全性模型就是可以抗任意n-1方恶意敌手的安全模型,该模型可以抵抗任意n-1方恶意敌手的合谋。下文将该安全性模型简称为抗任意恶意敌手合谋的安全性模型。
2、现有的隐私保护机器学习技术存在的主要问题在于:1)绝大多数技术只考虑了弱的半诚实敌手,无法达到抗任意恶意敌手合谋的安全性;2)少数已有的抗任意恶意敌手合谋的隐私保护机器学习技术效率低下,在广域网(wan)环境下进行lenet神经网络对tinyimagenet数据集的1次模型推测,在线阶段需要长达近450秒。这限制抗任意恶意敌手合谋的隐私保护机器学习在大型卷积神经网络上的应用。
技术实现思路
1、本发明针对现有技术在抗任意恶意敌手合谋的安全性模型下,隐私保护机器学习协议在线阶段效率低的缺陷以及加性秘密分享的向量乘法通信量与向量长度成正比的不足,提出一种基于安全多方计算的隐私保护机器学习实现系统及方法,结合电路相关预处理技术,在预处理阶段使用额外的随机数来随机化电路,使得向量乘法的在线通信量仅为每方1个环元素,与向量长度无关;带小数截断乘法的在线开销与不带小数截断的乘法相同,即截断操作无额外开销。本发明能够抵抗恶意敌手的攻击,达到可证明安全性,在任意多方(非全部参与方)恶意敌手合谋的情况下仍然可以保证安全性。
2、本发明是通过以下技术方案实现的:
3、本发明涉及一种基于安全多方计算的隐私保护机器学习实现系统,包括:输入输出模块、线性计算模块和非线性计算模块,其中:输入输出模块在系统开始运行时生成秘密分享和所有计算完成后输出最终结果;线性计算模块计算机器学习模型中的线性部分;非线性计算模块计算机器学习模型中的非线性激活函数。
4、所述的输入输出模块包括:输入单元和输出单元,其中:输入单元对于协议的参与方的输入数据整数生成秘密分享密文[x];输出单元根据最终计算结果的秘密分享密文,进行广播和检查,若检查正确则得到正确的结果y,若不正确则停止计算,防止得到错误结果。
5、所述的秘密分享密文[x]是指:对于所有n个参与方,第i个参与方持有整数和整数其中s是安全参数,且这些值满足以及按照上述定义该秘密分享密文可以记作
6、所述的生成秘密分享密文[x],具体步骤为:
7、1)预处理阶段:
8、1.1)所有参与方取整数环上的随机数,其中第i个参与方生成的随机数记为αi。
9、1.2)所有参与方取整数环上的随机数,得到[λx],具体包括:
10、1.2.1)所有参与方取整数环上的随机数,其中第i个参与方生成的随机数记为
11、1.2.2)所有参与方两两进行一次不经意线性函数计算协议,其中,在第i个和第j个参与方的协议中,第i个参与方输入αi,第j个参与方输入记第i个参与方的输出为ai,j,第j个参与方的输出为bj,i。
12、1.2.3)所有参与方进行计算,其中第i个参与方计算
13、1.2.4)所有参与方设置
14、1.3)所有参与方将自己持有的发给持有数据x的参与方,该参与方计算
15、2)在线阶段:
16、2.1)持有数据x的参与方计算并向所有其他参与方广播δx=λx+x;
17、2.2)所有参与方计算[x]=δx-[λx],完成秘密分享密文[x]的生成。
18、所述的对最终计算结果的秘密分享密文进行广播和检查,具体步骤为:
19、1)对于结果的秘密分享密文,参与方将其高s比特使用一个随机数掩盖,得到然后所有参与方广播yi的值并计算
20、2)所有参与方分别进行计算:第i个参与方计算并将zi的承诺广播给其他所有参与方,当收到所有其他参与方的承诺后,打开自己的承诺以公开zi;
21、3)所有参与方计算并检查z是否为0,若是则输出y为正确结果,否则终止计算。
22、所述的线性计算模块包括:加法单元、向量点乘单元和带小数截断乘法单元,其中:加法单元根据参与方输入的秘密分享密文[x],[y],生成[z]使得z=x+y;向量点乘单元根据参与方输入的秘密分享密文(其中向量元素个数记为m),生成[z]使得带小数截断乘法单元根据参与方输入的秘密分享密文[x],[y],生成[z’]使得z'=xy/2d,其中:d是一个预先协商好的公开常数。
23、所述的生成[z]使得具体步骤为:
24、1)预处理阶段:
25、1.1)所有参与方取整数环上的随机数,得到[λz];
26、1.2)所有参与方生成m个乘法三元组构成向量其中
27、1.3)所有参与方计算并广播
28、2)在线阶段:
29、2.1)所有参与方计算
30、2.2)所有参与方广播并得到明文δz,则[z]=δz-[λz]。
31、所述的生成[z]使得z=x+y,具体步骤为:
32、1)预处理阶段:各方本地计算[λz]=[λx]+[λy]。
33、2)在线阶段:各方本地计算δz=δx+δy,则[z]=δz-[λz]。
34、所述的生成<z'>使得z'=xy/2d,具体步骤为:
35、1)预处理阶段:
36、1.1)各方生成随机的比特并计算
37、1.2)所有参与方生成乘法三元组([a],[b],[c]);
38、1.3)所有参与方计算并广播δx=a-λx,δy=b-λy。
39、2)在线阶段:
40、2.1)所有参与方计算[δz]=(δx+δx)(δy+δy)-(δy+δy)[a]-(δx+δx)[b]+[c]+[λz]。
41、2.2)所有参与方广播并得到明文δz;
42、2.3)所有参与方计算δ'z=δz/2d,则[z’]=δz’-[λz’]。
43、所述的非线性计算模块包括:比较单元和乘法单元,其中:比较单元根据参与方输入的秘密分享密文[x],生成[z]使得z是x<0的比较结果,即x<0时z=1,否则z=0;乘法单元根据参与方输入的秘密分享密文[x],[y],生成[z]使得z=xy。
44、所述的生成[z]使得z是x<0的比较结果,即x<0时z=1,否则z=0,具体步骤为:
45、1)预处理阶段:各方生成随机的[λz]和λx的每一比特的秘密分享密文
46、2)在线阶段:各方使用一个比较电路比较各个比特构成的整数λx和公开常数δx的大小,将得到的结果为[z],然后参与方本地计算[δz]=[λz]+[z],广播并得到明文δz。
47、所述的生成[z]使得z=xy,具体步骤为:
48、1)预处理阶段:
49、1.1)所有参与方取整数环上的随机数,得到[λz];
50、1.2)所有参与方生成乘法三元组([a],[b],[c]);
51、1.3)所有参与方计算并广播δx=a-λx,δy=b-λy。
52、2)在线阶段:
53、2.1)所有参与方计算[δz]=(δx+δx)(δy+δy)-(δy+δy)[a]-(δx+δx)[b]+[c]+[λz]。
54、2.2)所有参与方广播并得到明文δz,则[z]=δz-[λz]。
55、所述的安全性是指隐私性和正确性,即任何控制n-1个参与方的恶意敌手都不能恢复出数据的明文;且任何控制n-1个参与方的恶意敌手都不能导致诚实方获得错误的结果,若敌手发送了错误的数据,则诚实方可以检测出错误,并停止协议进行。
56、所述的恶意敌手是指在协议运行过程中可以在多项式时间内执行任何操作的敌手,包括但不限于读取所控制的参与方的内部状态、发送错误的数据、不遵守协议的内容等行为。
57、技术效果
58、本发明通过改进的秘密分享格式配合输入协议、加法协议、乘法协议、向量点乘协议、比较协议、带小数截断的乘法协议,完成抗任意恶意敌手合谋的隐私保护机器学习;相比现有技术,本发明能够在抗任意恶意敌手合谋的安全性下,向量点乘协议的在线通信量为常数,与向量长度无关;在抗任意恶意敌手合谋的安全性下,带小数截断乘法协议的在线通信量与不带小数截断乘法协议的在线通信量相同,即小数截断没有任何额外在线开销;在wan环境下使用resnet-18对tinyimagenet数据集进行神经网络预测,在线时间达到分钟级。