1.计算服务外包的可验证数据隐私保护系统,其特征是,包括:验证客户端、第一证明服务器和第二证明服务器;
验证客户端、第一证明服务器和第二证明服务器进行初始化操作;
验证客户端将机器学习推理所需的数据份额分别发送给第一证明服务器和第二证明服务器;
验证客户端接收第一证明服务器和第二证明服务器反馈的计算结果份额和计算过程证明;所述计算结果份额,是第一证明服务器和第二证明服务器根据获取的数据份额,进行机器学习推理服务得到的;所述计算过程证明,是第一证明服务器和第二证明服务器通过零知识证明方式为计算过程生成的;
验证客户端根据所获得的计算过程证明,对计算过程进行验证,如果对计算过程验证无误,则根据计算结果份额进行秘密重构,得到最终的机器学习推理结果;
所述计算结果份额,是第一证明服务器和第二证明服务器根据获取的数据份额,进行机器学习推理服务得到的,具体包括:对于机器学习中的线性操作,采用算术电路下的零知识证明协议及秘密分享协议完成计算;
对于机器学习中的非线性操作,将数据表示为布尔值,并利用布尔电路下的零知识证明协议及秘密分享协议进行计算;
所述对于机器学习中的线性操作,采用算术电路下的零知识证明协议及秘密分享协议完成计算,具体包括:第一证明服务器 及第二证明服务器 在算术电路下,通过零知识证明协议及加法秘密分享进行线性运算:首先假设进行运算的预测数据a,b的承诺为[a],[b];
拥有两个承诺的本地密钥ka,kb及全局密钥Δ;
及
对于相应的承诺加法计算[c]=[a]+[b];计算kc=ka+kb;
计算
计算
所述对于机器学习中的线性操作,采用算术电路下的零知识证明协议及秘密分享协议完成计算,具体还包括:对于相应的承诺乘法运算[c]=[a]·[b],使用初始化阶段生成的乘法三元组;
假设 获取的乘法三元组份额为{
及 两方首先根据乘法三元组进行计算,获取:
计算乘法结果份额
计算乘法结果份额
由此完成对加法秘密分享协议下乘法的计算;
此后, 及 将获取的数据份额
所述对于机器学习中的非线性操作,将数据表示为布尔值,并利用布尔电路下的零知识证明协议及秘密分享协议进行计算,具体包括:对于机器学习中的非线性计算,执行在布尔电路下的零知识证明协议及加法秘密分享协议来进行计算完整性的验证和隐私保护:在布尔电路下,加法秘密分享协议的数据分发阶段利用异或运算,对于 持有的隐私数据a而言, 通过选取随机数r作为数据份额1,并计算 然后将1,2作为数据份额分发给 完成隐私数据分发;
对于承诺与门计算c=a&b,通过 生成相应的三元组{
计算结果份额 计算结果
份额
所述对于机器学习中非线性操作,将数据表示为布尔值,并利用布尔电路下的零知识证明协议及秘密分享协议进行计算,具体还包括:对于零知识证明协议而言,承诺类型基本相似:其中,验证客户端 持有本地密钥k及全局密钥Γ,证明服务器 持有数据份额{xi}及相应的消息认证码{mi},i∈{1,2};
异或门与算术电路下的加法门的运算类似,对于 计算:证明服务器 计算:
对于非门运算[c]=~[x], 本地计算 证明服务器 对承诺值x进行秘密分享协议下的取反操作;
所述验证客户端根据所获得的计算过程证明,对计算过程进行验证,具体包括:对于证明过程中产生的乘法结果承诺的验证:设证明电路的大小为n,即电路中存在n个乘法门,设每个乘法门上的计算为ci=ai·bi,i∈[1,n];由于 获取的乘法结果承诺从 获取,这时 便需要去验证承诺[ci]与[ai],[bi]之间满足关系ci=ai·bi;
根据相应的承诺中的本地密钥计算:
证明服务器 通过相应的承诺值份额及相应的消息认证码计算:选取一个随机值χ,并将其发送给
随后, 计算:
将j和
计算 并验证等式W=(1+2)+(
对于最终计算结果的验证,通过打开承诺的方式进行验证: 获取由 及 发送的最终计算结果份额1,2及相对应的消息认证码 然后验证等式是否成立;
所述验证客户端根据所获得的计算过程证明,对计算过程进行验证,具体还包括:对于与门计算c=a&b的验证,具体包括:证明服务器 通过加法秘密分享方案下的乘法运算获取乘法值的份额
对于n个与门的批量验证,通过等式:
进行证明, 代表乘法输入值ai,bi的消息认证码的与值,代表验证客户端的相应的本地密钥之间的计算,由两个证明服务器生成;
对于最终结果的验证,验证客户端 通过从 获取的计算结果及针对计算结果的承诺完成验证,此后 通过对计算结果进行秘密重构获取结算结果的明文。
2.如权利要求1所述的计算服务外包的可验证数据隐私保护系统,其特征是,所述验证客户端、第一证明服务器和第二证明服务器进行初始化操作,具体包括:验证客户端 第一证明服务器 和第二证明服务器 共同进行向量不经意线性评估VOLE协议的初始化操作,在初始化操作过程中,验证客户端 分别获取算术电路及布尔电路下的全局密钥 及 其中 表示算术电路的域空间, 表示布尔电路的域空间;
验证客户端 分别与第一证明服务器 和第二证明服务器 生成设定数量的随机VOLE关系,用于后续零知识证明协议中输入值的承诺及乘法门的计算,将每个随机VOLE关系看成对其中的值r的承诺[r],表示为M=K+Δ·r,其中 持有随机数r及相应的消息认证码M,验证客户端 持有用于随机VOLE关系的本地密钥K及全局密钥Δ;
验证客户端 分别为第一证明服务器 和第二证明服务器 生成n个乘法三元组份额{
验证客户端 首先选取2n个随机数{xi,yi},i∈[1,n],并计算乘法值zi=xi·yi,此后验证客户端 选取3n个随机数{
验证客户端、第一证明服务器和第二证明服务器,均对乘法三元组的份额生成承诺。
3.如权利要求1所述的计算服务外包的可验证数据隐私保护系统,其特征是,所述验证客户端将机器学习推理所需的数据份额分别发送给第一证明服务器和第二证明服务器,具体包括:验证客户端将机器学习推理任务过程中所需的预测数据,通过秘密分享方式生成相应的数据份额,并将数据份额分发给第一证明服务器和第二证明服务器;
所述将机器学习推理所需的数据份额分别发送给第一证明服务器和第二证明服务器之后,还包括:第一证明服务器和第二证明服务器接收分发的数据份额,第一证明服务器、第二证明服务器与验证客户端共同使用零知识证明协议,对数据份额生成承诺。
4.如权利要求3所述的计算服务外包的可验证数据隐私保护系统,其特征是,所述第一证明服务器、第二证明服务器与验证客户端共同使用零知识证明协议,对数据份额生成承诺,具体包括:假设验证客户端 的输入数据为{di},i∈[1,n],验证客户端 首先生成n个随机值{ri},i∈[1,n],然后验证客户端 进行减法计算si=di–ri;
验证客户端 将{ri}及{si}作为输入数据的相应份额分别分发给第一证明服务器 及第二证明服务器第一证明服务器、第二证明服务器与验证客户端,一同对接收到的数据份额生成相应的承诺。
5.计算服务外包的可验证数据隐私保护方法,其特征是,包括:验证客户端、第一证明服务器和第二证明服务器进行初始化操作;
验证客户端将机器学习推理所需的数据份额分别发送给第一证明服务器和第二证明服务器;
验证客户端接收第一证明服务器和第二证明服务器反馈的计算结果份额和计算过程证明;所述计算结果份额,是第一证明服务器和第二证明服务器根据获取的数据份额,进行机器学习推理服务得到的;所述计算过程证明,是第一证明服务器和第二证明服务器通过零知识证明方式为计算过程生成的;
验证客户端根据所获得的计算过程证明,对计算过程进行验证,如果对计算过程验证无误,则根据计算结果份额进行秘密重构,得到最终的机器学习推理结果;
所述计算结果份额,是第一证明服务器和第二证明服务器根据获取的数据份额,进行机器学习推理服务得到的,具体包括:对于机器学习中的线性操作,采用算术电路下的零知识证明协议及秘密分享协议完成计算;
对于机器学习中的非线性操作,将数据表示为布尔值,并利用布尔电路下的零知识证明协议及秘密分享协议进行计算;
所述对于机器学习中的线性操作,采用算术电路下的零知识证明协议及秘密分享协议完成计算,具体包括:第一证明服务器 及第二证明服务器 在算术电路下,通过零知识证明协议及加法秘密分享进行线性运算:首先假设进行运算的预测数据a,b的承诺为[a],[b];
拥有两个承诺的本地密钥ka,kb及全局密钥Δ;
及
对于相应的承诺加法计算[c]=[a]+[b]; 计算kc=ka+kb;
计算
计算
所述对于机器学习中的线性操作,采用算术电路下的零知识证明协议及秘密分享协议完成计算,具体还包括:对于相应的承诺乘法运算[c]=[a]·[b],使用初始化阶段生成的乘法三元组;
假设 获取的乘法三元组份额为{
及 两方首先根据乘法三元组进行计算,获取:
计算乘法结果份额
计算乘法结果份额
由此完成对加法秘密分享协议下乘法的计算;
此后, 及 将获取的数据份额
所述对于机器学习中的非线性操作,将数据表示为布尔值,并利用布尔电路下的零知识证明协议及秘密分享协议进行计算,具体包括:对于机器学习中的非线性计算,执行在布尔电路下的零知识证明协议及加法秘密分享协议来进行计算完整性的验证和隐私保护:在布尔电路下,加法秘密分享协议的数据分发阶段利用异或运算,对于 持有的隐私数据a而言, 通过选取随机数r作为数据份额1,并计算 然后将1,2作为数据份额分发给 完成隐私数据分发;
对于承诺与门计算c=a&b,通过 生成相应的三元组{
然后 进行交互获取{d,e},此后计算:
计算结果份额
计算结果份额
所述对于机器学习中非线性操作,将数据表示为布尔值,并利用布尔电路下的零知识证明协议及秘密分享协议进行计算,具体还包括:对于零知识证明协议而言,承诺类型基本相似:其中,验证客户端 持有本地密钥k及全局密钥Γ,证明服务器 持有数据份额{xi}及相应的消息认证码{mi},i∈{1,2};
异或门与算术电路下的加法门的运算类似,对于 计算:证明服务器 计算:
对于非门运算[c]=~[x], 本地计算 证明服务器 对承诺值x进行秘密分享协议下的取反操作;
所述验证客户端根据所获得的计算过程证明,对计算过程进行验证,具体包括:对于证明过程中产生的乘法结果承诺的验证:设证明电路的大小为n,即电路中存在n个乘法门,设每个乘法门上的计算为ci=ai·bi,i∈[1,n];由于 获取的乘法结果承诺从 获取,这时 便需要去验证承诺[ci]与[ai],[bi]之间满足关系ci=ai·bi;
根据相应的承诺中的本地密钥计算:
证明服务器 通过相应的承诺值份额及相应的消息认证码计算:选取一个随机值χ,并将其发送给
随后, 计算:
将j和
计算 并验证等式W=(1+2)+(
对于最终计算结果的验证,通过打开承诺的方式进行验证:获取由 及 发送的最终计算结果份额1,2及相对应的消息认证码 然后验证等式是否成立;
所述验证客户端根据所获得的计算过程证明,对计算过程进行验证,具体还包括:对于与门计算c=a&b的验证,具体包括:证明服务器 通过加法秘密分享方案下的乘法运算获取乘法值的份额
对于n个与门的批量验证,通过等式:
进行证明, 代表乘法输入值ai,bi的消息认证码的与值,代表验证客户端的相应的本地密钥之间的计算,由两个证明服务器生成;
对于最终结果的验证,验证客户端 通过从 获取的计算结果及针对计算结果的承诺完成验证,此后 通过对计算结果进行秘密重构获取结算结果的明文。