CN115996119A - 一种具有隐私保护的模型预测方法、装置、设备及介质 - Google Patents

一种具有隐私保护的模型预测方法、装置、设备及介质 Download PDF

Info

Publication number
CN115996119A
CN115996119A CN202211665853.8A CN202211665853A CN115996119A CN 115996119 A CN115996119 A CN 115996119A CN 202211665853 A CN202211665853 A CN 202211665853A CN 115996119 A CN115996119 A CN 115996119A
Authority
CN
China
Prior art keywords
protocol
model
user
ciphertext
private key
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211665853.8A
Other languages
English (en)
Inventor
苏倩倩
刘彦鑫
赵婧
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qingdao University
Original Assignee
Qingdao University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qingdao University filed Critical Qingdao University
Priority to CN202211665853.8A priority Critical patent/CN115996119A/zh
Publication of CN115996119A publication Critical patent/CN115996119A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

本申请公开了计算机技术领域内的一种具有隐私保护的模型预测方法、装置、设备及介质。本申请提供了多种运算协议,可实现较复杂的非线性函数的计算,并且,本申请中的用户私钥、模型的权重参数及偏置参数分别以秘密共享方式进行保护,可提升被保护数据的安全性,用户公私钥的修改和模型部署也互不影响。可见,本申请能够提高模型对于密文数据的预测准确性,需要被保护的用户私钥、模型的权重参数及偏置参数等重要数据也能得到更好的安全保护,也便于进行方案拓展和后续维护。相应地,本申请提供的一种具有隐私保护的模型预测装置、设备及介质,也同样具有上述技术效果。

Description

一种具有隐私保护的模型预测方法、装置、设备及介质
技术领域
本申请涉及计算机技术领域,特别涉及一种具有隐私保护的模型预测方法、装置、设备及介质。
背景技术
目前,一般利用全同态加密技术对模型参数和用户数据进行加密处理,即:采用同一对公私钥加密处理模型参数和用户数据。该方案不适用于计算复杂的非线性函数,需要将模型原有的激活函数简化,如:利用简单的线性函数替代原有复杂的非线性激活函数,或使用分段线性近似的方法对复杂非线性激活函数进行近似计算。这些方法都会降低模型预测的准确率。全同态加密技术还会随着预测次数的增加积累更多的计算误差,这也会降低预测结果的准确性。此外,用户修改公私钥对后,模型还需要重新部署,增加了额外操作。
因此,如何提高模型对于密文数据的预测准确性,是本领域技术人员需要解决的问题。
发明内容
有鉴于此,本申请的目的在于提供一种具有隐私保护的模型预测方法、装置、设备及介质,以提高模型对于密文数据的预测准确性。其具体方案如下:
第一方面,本申请提供了一种具有隐私保护的模型预测方法,应用于主服务器,包括:
接收用户端发送的采用用户公钥加密的用户数据密文;
基于以秘密共享方式表示的用户私钥、用于实现目标模型中的模型运算的运算协议、以及以秘密共享方式表示的所述目标模型的权重参数及偏置参数处理所述用户数据密文,得到所述目标模型针对所述用户数据密文的预测结果密文;
其中,所述运算协议包括:截断协议、比较协议、密文乘法协议、计算绝对值协议、获取首位字符协议、除法协议、矩阵乘法协议、指数运算协议、平均池协议、最大池协议、ReLU激活函数计算协议中的至少一个或组合;
发送所述预测结果密文至所述用户端,以使所述用户端采用用户私钥解密所述预测结果密文,得到预测结果明文。
可选地,所述目标模型的权重参数及偏置参数以秘密共享方式被划分为第一模型子参数和第二模型子参数,所述用户私钥以秘密共享方式被划分为第一私钥子参数和第二私钥子参数;所述第一模型子参数、所述第一私钥子参数和所述目标模型的模型结构存储于所述主服务器;所述第二模型子参数和所述第二私钥子参数存储于从主服务器;
相应地,所述基于以秘密共享方式表示的用户私钥、用于实现目标模型中的模型运算的运算协议、以及以秘密共享方式表示的所述目标模型的权重参数及偏置参数处理所述用户数据密文,包括:使所述从服务器协同所述主服务器,基于所述运算协议、所述第一模型子参数、所述第一私钥子参数、所述第二模型子参数和所述第二私钥子参数处理所述用户数据密文。
可选地,模型上传端通过秘密共享方式将所述目标模型的权重参数随机划分为第一子权重和第二子权重,通过秘密共享方式将所述目标模型的偏置参数随机划分为第一子偏置和第二子偏置,将所述第一子权重和所述第一子偏置作为所述第一模型子参数,将所述第二子权重和所述第二子偏置作为所述第二模型子参数。
可选地,所述用户端以加法秘密共享方式将所述用户私钥随机划分为所述第一私钥子参数和所述第二私钥子参数。
可选地,所述用户端发送所述用户数据密文之前,所述用户端将用户数据明文由定点数转换为整数,采用所述用户公钥对以整数表示的所述用户数据明文进行加密,得到所述用户数据密文。
可选地,所述用户端将用户数据明文由定点数转换为整数,包括:所述用户端按照预设转换公式将所述用户数据明文由定点数转换为整数;其中,所述预设转换公式为:
Figure BDA0004015089650000021
其中,
Figure BDA0004015089650000031
表示以定点数表示的所述用户数据明文,fp表示以定点数表示的所述用户数据明文的二进制小数的比特长度,l表示转换得到的以整数表示的所述用户数据明文的比特长度,
Figure BDA0004015089650000032
表示转换得到的以整数表示的所述用户数据明文。
可选地,还包括:所述用户端根据用户操作调整fp的取值。
第二方面,本申请提供了一种具有隐私保护的模型预测装置,应用于主服务器,包括:
接收模块,用于接收用户端发送的采用用户公钥加密的用户数据密文;
处理模块,用于基于以秘密共享方式表示的用户私钥、用于实现目标模型中的模型运算的运算协议、以及以秘密共享方式表示的所述目标模型的权重参数及偏置参数处理所述用户数据密文,得到所述目标模型针对所述用户数据密文的预测结果密文;其中,所述运算协议包括:截断协议、比较协议、密文乘法协议、计算绝对值协议、获取首位字符协议、除法协议、矩阵乘法协议、指数运算协议、平均池协议、最大池协议、ReLU激活函数计算协议中的至少一个或组合;
发送模块,用于发送所述预测结果密文至所述用户端,以使所述用户端采用用户私钥解密所述预测结果密文,得到预测结果明文。
第三方面,本申请提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,以实现前述公开的具有隐私保护的模型预测方法。
第四方面,本申请提供了一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述公开的具有隐私保护的模型预测方法。
通过以上方案可知,本申请提供了一种具有隐私保护的模型预测方法,应用于主服务器,包括:接收用户端发送的采用用户公钥加密的用户数据密文;基于以秘密共享方式表示的用户私钥、用于实现目标模型中的模型运算的运算协议、以及以秘密共享方式表示的所述目标模型的权重参数及偏置参数处理所述用户数据密文,得到所述目标模型针对所述用户数据密文的预测结果密文;其中,所述运算协议包括:截断协议、比较协议、密文乘法协议、计算绝对值协议、获取首位字符协议、除法协议、矩阵乘法协议、指数运算协议、平均池协议、最大池协议、ReLU激活函数计算协议中的至少一个或组合;发送所述预测结果密文至所述用户端,以使所述用户端采用用户私钥解密所述预测结果密文,得到预测结果明文。
可见,本申请中的主服务器能够基于以秘密共享方式表示的用户私钥、用于实现目标模型中的模型运算的运算协议、以及以秘密共享方式表示的目标模型的权重参数及偏置参数处理用户数据密文,得到目标模型针对用户数据密文的预测结果密文。其中,运算协议包括:截断协议、比较协议、密文乘法协议、计算绝对值协议、获取首位字符协议、除法协议、矩阵乘法协议、指数运算协议、平均池协议、最大池协议、ReLU激活函数计算协议中的至少一个或组合,由此可实现较复杂的非线性函数的计算,而无需修改模型激活函数,因此可保证模型预测结果的准确性。并且,用户私钥、模型的权重参数及偏置参数分别以秘密共享方式进行保护,由此既可提升用户私钥、模型的权重参数及偏置参数的安全性,又能避免全同态加密技术带来的计算误差,由此本申请中的用户公私钥也并不用于加密处理模型参数,那么用户公私钥的修改和模型部署互不影响,用户修改公私钥对后,模型无需重新部署。可见,本申请能够提高模型对于密文数据的预测准确性,需要被保护的用户私钥、模型的权重参数及偏置参数等重要数据也能得到更好的安全保护,也便于进行方案拓展和后续维护。
相应地,本申请提供的一种具有隐私保护的模型预测装置、设备及介质,也同样具有上述技术效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种具有隐私保护的模型预测方法流程图;
图2为本申请公开的一种方案架构示意图;
图3为本申请公开的一种具有隐私保护的模型预测装置示意图;
图4为本申请公开的一种电子设备示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,现有全同态加密技术不适用于计算复杂的非线性函数,需要将模型原有的激活函数简化,如:利用简单的线性函数替代原有复杂的非线性激活函数,或使用分段线性近似的方法对复杂非线性激活函数进行近似计算。这些方法都会降低模型预测的准确率。将模型的权值离散化为-1和1,采用激活函数y=sign(x)只进行整数运算,虽然适用于全同态加密方案,但预测准确率往往较低。全同态加密技术还会随着预测次数的增加积累更多的计算误差,这也会降低预测结果的准确性。此外,用户修改公私钥对后,模型还需要重新部署,增加了额外操作。为此,本申请提供了一种具有隐私保护的模型预测方案,能够提高模型对于密文数据的预测准确性,提升需要被保护的用户私钥、模型的权重参数及偏置参数等重要数据的安全保护效果。
参见图1所示,本申请实施例公开了一种具有隐私保护的模型预测方法,应用于主服务器,包括:
S101、接收用户端发送的采用用户公钥加密的用户数据密文。
在本实施例中,用户数据明文可以为:图像、文本等数据。用户公钥和用户私钥由用户自主选择密码算法生成,例如:用户自主选择Paillier加法同态加密方案的安全参数生成。具体的,采用1024-bit长度n的Paillier加法同态加密方案,用户首先通过用户端选取两个512-bit的大素数p和q。然后计算公钥和私钥。其中,公钥pk:n=p·q,g=1+n;私钥sk:λ=lcm(p-1,q-1);pk=(n,g),sk=λ;lcm(p-1,q-1)表示:求取p-1和q-1的最小公倍数。
S102、基于以秘密共享方式表示的用户私钥、用于实现目标模型中的模型运算的运算协议、以及以秘密共享方式表示的目标模型的权重参数及偏置参数处理用户数据密文,得到目标模型针对用户数据密文的预测结果密文。
在本实施例中,目标模型可以是以深度学习方式训练得到的任意模型,如:神经网络模型等。其中,目标模型的权重参数及偏置参数以加密方式进行表示,用户数据也以密文形式被处理,因此用户数据和模型的安全性能够得到保障。
秘密共享方式能够将同一秘密分成若干个秘密子集,每个秘密子集存储在不同位置,所有位置的秘密子集按照特定规则合并才能重构得到原有秘密,因此秘密共享能有效地防止攻击。据此,本实施例对用户私钥、模型的权重参数及偏置参数均以此方式进行保护,可有效提升这些数据的安全性。具体的,可以将用户私钥分为两份,分别存储两个服务器上;同时将模型的权重参数及偏置参数也都分为两份,存储在两个服务器上。因此在一种实施方式中,目标模型的权重参数及偏置参数以秘密共享方式被划分为第一模型子参数和第二模型子参数,用户私钥以秘密共享方式被划分为第一私钥子参数和第二私钥子参数;其中,第一模型子参数、第一私钥子参数和目标模型的模型结构存储于主服务器;第二模型子参数和第二私钥子参数存储于从主服务器。相应地,基于以秘密共享方式表示的用户私钥、用于实现目标模型中的模型运算的运算协议、以及以秘密共享方式表示的目标模型的权重参数及偏置参数处理用户数据密文,包括:使从服务器协同主服务器,基于运算协议、第一模型子参数、第一私钥子参数、第二模型子参数和第二私钥子参数处理用户数据密文。
在一种示例中,模型上传端通过秘密共享方式将目标模型的权重参数随机划分为第一子权重和第二子权重,通过秘密共享方式将目标模型的偏置参数随机划分为第一子偏置和第二子偏置,将第一子权重和第一子偏置作为第一模型子参数,将第二子权重和第二子偏置作为第二模型子参数。
例如:模型上传端在模型拥有者的操作下,利用加法秘密共享方式将模型权重矩阵W(即权重参数)随机划分成两部分:<W>0(即第一子权重)和<W>1(即第二子权重),将偏置矩阵B(即偏置参数)随机划分成两部分:<B>0(即第一子偏置)和<B>1(即第二子偏置),其中,<W>0和<W>1里的对位元素<wj,k>0、<wj,k>1满足:(<wj,k>0+<wj,k>1)mod 2l=wj,k,<wi,k>0∈<W>0,<wi,k>1∈<W>1;<B>0和<B>1里的对位元素<bj,k>0、<bj,k>1满足:(<bj,k>0+<bj,k>1)mod 2l=bj,k,<bi,k>0∈<B>0,<bi,k>1∈<B>1。之后,模型上传端基于模型拥有者的上传操作将<W>0和<B>0发送到主服务器进行存储,将<W>1和<B>1发送到从服务器进行存储。其中,模型上传端和主服务器、模型上传端和从服务器以安全加密信道通信。
在一种示例中,用户端以加法秘密共享方式将用户私钥随机划分为第一私钥子参数和第二私钥子参数。例如:用户端在用户操作下,将自身私钥sk划分为:sk0(即第一私钥子参数)和sk1(即第二私钥子参数),并且满足以下条件:
Figure BDA0004015089650000071
n=p·q。那么通过中国剩余定理可以解得x=<sk>0+<sk>1,对x进行加法秘密共享,从而将x分成<x>0和<x>1,然后令sk0=<x>0,sk1=<x>1即可得到私钥的sk两份秘密分享:sk0和sk1
在本实施例中,运算协议包括:截断协议(Trunc)、比较协议(SCmp)、密文乘法协议(SMul)、计算绝对值协议(SABS)、获取首位字符协议(SGP)、除法协议(SDiv)、矩阵乘法协议(SMMul)、指数运算协议(SExp)、平均池协议(SAP)、最大池协议(SMP)、ReLU激活函数计算协议(SReLU)中的至少一个或组合。其中,截断协议能够截取密文数据的低k位;比较协议能够计算两个密文的比较结果;密文乘法协议能够计算两个密文的乘法结果;计算绝对值协议能够计算密文数据的绝对值;获取首位字符协议能够确定密文数据的首位字符;除法协议能够计算两个密文的除法结果;矩阵乘法协议能够针对模型权重矩阵及模型偏置矩阵进行乘法运算;指数运算协议能够针对输入的密文数据实现指数运算;平均池协议能够计算多个密文数据的均值;最大池协议能够确定出多个密文数据中的最大值;ReLU激活函数计算协议能够针对输入的密文数据输出相应的激活函数计算结果。
S103、发送预测结果密文至用户端,以使用户端采用用户私钥解密预测结果密文,得到预测结果明文。
在一种实施方式中,用户端发送用户数据密文之前,用户端将用户数据明文由定点数转换为整数,采用用户公钥对以整数表示的用户数据明文进行加密,得到用户数据密文。其中,用户端将用户数据明文由定点数转换为整数,包括:用户端按照预设转换公式将用户数据明文由定点数转换为整数;其中,预设转换公式为:
Figure BDA0004015089650000081
其中,
Figure BDA0004015089650000082
表示以定点数表示的用户数据明文,fp表示以定点数表示的所述用户数据明文的二进制小数的比特长度,l表示转换得到的以整数表示的所述用户数据明文的比特长度,
Figure BDA0004015089650000083
表示转换得到的以整数表示的所述用户数据明文。其中,用户端可以根据用户操作调整fp的取值,从而调整定点数的取值精度。其中,fp的下角标p无实际含义。
对照上述预设转换公式,将用户数据明文或其他数据由整数转换为定点数的公式为:
Figure BDA0004015089650000084
其中,
Figure BDA0004015089650000085
表示以整数表示的被转换数据,fp表示以定点数表示的被转换数据的二进制小数的比特长度,l表示以整数表示的被转换数据的比特长度,
Figure BDA0004015089650000086
表示转换得到的以定点数表示的被转换数据。
一般地,模型和用户数据以密文形式参与处理的方案被称为带有隐私保护的模型预测方案,本实施例提供的此方案无需对模型激活函数进行修改,采用相应运算协议即可实现模型激活函数的计算以及其他模型运算;并且,本实施例在加密数据之前,按照预设转换公式将数据由定点数转换为整数时,可以通过fp控制定点数的取值精度,由此可控制参与模型运算的数据的计算精度。而借助两个服务器协同完成各种运算过程,可以分担运算负担,提高运算效率。
本实施例中的主服务器能够基于以秘密共享方式表示的用户私钥、用于实现目标模型中的模型运算的运算协议、以及以秘密共享方式表示的目标模型的权重参数及偏置参数处理用户数据密文,得到目标模型针对用户数据密文的预测结果密文。其中,运算协议包括:截断协议、比较协议、密文乘法协议、计算绝对值协议、获取首位字符协议、除法协议、矩阵乘法协议、指数运算协议、平均池协议、最大池协议、ReLU激活函数计算协议中的至少一个或组合,由此可实现较复杂的非线性函数的计算,而无需修改模型激活函数,因此可保证模型预测结果的准确性。并且,用户私钥、模型的权重参数及偏置参数分别以秘密共享方式进行保护,由此既可提升用户私钥、模型的权重参数及偏置参数的安全性,又能避免全同态加密技术带来的计算误差,由此本申请中的用户公私钥也并不用于加密处理模型参数,那么用户公私钥的修改和模型部署互不影响,用户修改公私钥对后,模型无需重新部署。
可见,本实施例能够提高模型对于密文数据的预测准确性,需要被保护的用户私钥、模型的权重参数及偏置参数等重要数据也能得到更好的安全保护,也便于进行方案拓展和后续维护。
基于上述实施例,需要说明的是,本申请提供的安全截断协议(Trunc)、安全比较协议(SCmp)、安全密文乘法协议(SMul)、安全计算绝对值协议(SABS)、安全获取首位1协议(SGP)、安全除法协议(SDiv)、安全矩阵乘法协议(SMMul)、安全指数运算协议(SExp)、安全平均池协议(SAP)、安全最大池协议(SMP)、安全计算ReLU协议(SReLU)等运算协议能够实现常见的模型激活函数的安全计算,因此可实现带有隐私保护的模型预测。下面分别介绍各个运算协议。
协议1:安全截断协议(Trunc)。该协议的输入为:一个密文
Figure BDA0004015089650000091
和一个整数k,输出为:一个密文
Figure BDA0004015089650000092
该协议的目的是:将由
Figure BDA0004015089650000093
转换得到的整数的最低k位截断,并保证结果经
Figure BDA0004015089650000094
转换回定点数后约等于
Figure BDA0004015089650000095
由于所有定点数在执行加密之前都需要利用
Figure BDA0004015089650000096
转换为整数,而两个定点数执行乘法后将得到两倍于原来的精度,结果对应的明文所占用的比特长度也会增加,为了将运算后密文对应明文的比特长度调整回l比特,采用安全截断协议进行截断操作。
具体的,在执行安全截断协议时,CS0方(主服务器)调用SBD得到密文
Figure BDA0004015089650000097
的密文位分解结果:
Figure BDA0004015089650000098
并计算[-xl-1]pk=Multp([xl-1]pk,n-1);[y]pk=HoAdd([x]pk,[-xl-1]pk);之后调用SBD得到密文[y]pk的密文位分解结果([yl-1]pk,…,[y0]pk)←SBD([y]pk,l)计算
Figure BDA0004015089650000099
Cfill=Multp([xl-1]pk,2l-2l-k+1);[R]pk=HoAdd([R′]pk,Cfill),得到的[R]pk即为
Figure BDA00040150896500000910
其中,
Figure BDA00040150896500000911
表示一个定点数;
Figure BDA00040150896500000912
表示定点数
Figure BDA00040150896500000913
通过
Figure BDA00040150896500000914
转换得到的l位的整数;
Figure BDA00040150896500000915
表示对
Figure BDA00040150896500000916
使用公钥pk加密得到的密文;
Figure BDA00040150896500000917
表示对密文
Figure BDA00040150896500000918
执行安全位分解运算得到l个加密二进制数([xl-1]pk,…,[x0]pk);xl-1,…,x0
Figure BDA0004015089650000101
的二进制分解结果,xl-1为最高有效位,x0为最低有效位,x0~xl-1均在{0,1}中取值;Multp([d0]pk,p0)得到一个密文R,使得该密文R对应的明文结果为d0·p0;HoAdd([d1]pk,[d2]pk)表示对两个密文进行同态加法操作,得到一个结果密文,使得结果密文对应的明文为d1+d2;y,R′,Cfill均为计算产生的中间结果;[R]pk为协议计算的最终结果,即
Figure BDA0004015089650000102
协议2:安全比较协议(SCmp)。该协议的输入为:两个密文
Figure BDA0004015089650000103
Figure BDA0004015089650000104
输出为:两个密文对应明文的比较结果[r]pk,当
Figure BDA0004015089650000105
时,r=1,否则,r=0。常见的神经网络模型中有很多函数可能用到比较操作,如最大池MaxPooling等,为此采用安全比较协议可以在不泄露任何隐私数据的前提下实现两个密文的安全比较。
具体的,在执行安全比较协议时,CS0方调用SBD得到密文
Figure BDA0004015089650000106
和密文
Figure BDA0004015089650000107
的密文位分解结果:
Figure BDA0004015089650000108
Figure BDA0004015089650000109
然后计算:
for j={0,1,…,l-1}do:
[-yj]pk=Multp([yj]pk,n-1)
[zj]pk=HoAdd([xj]pk,[-yj]pk)
end for
之后,利用上一步得到的([zl-1]pk,…,[z0]pk)计算:
Figure BDA00040150896500001010
Figure BDA00040150896500001011
Cz′=HoAdd(Cz,[2l]pk);调用SBD得到密文Cz′的密文位分解结果:
Figure BDA00040150896500001012
后,计算:[r]pk=[zl′+yl-1-xl-1]pk,得到的[r]pk就是
Figure BDA00040150896500001013
Figure BDA00040150896500001014
比较结果的密文。
其中,
Figure BDA00040150896500001015
表示两个定点数;
Figure BDA00040150896500001016
分别表示定点数
Figure BDA00040150896500001017
通过
Figure BDA00040150896500001018
转换得到的l位的整数;
Figure BDA00040150896500001019
分别表示对
Figure BDA00040150896500001020
使用公钥pk加密得到的密文;
Figure BDA00040150896500001021
分别表示对密文
Figure BDA00040150896500001022
执行安全位分解运算得到l个加密二进制数([xl-1]pk,…,[x0]pk),([yl-1]pk,…,[y0]pk);xl-1,…,x0和yl-1,…,y0分别为
Figure BDA00040150896500001023
的二进制分解结果,xl-1,yl-1为最高有效位,x0,y0为最低有效位,x0~xl-1,y0~yl-1均在{0,1}中取值;Multp([d0]pk,p0)得到一个密文R,使得该密文R对应的明文结果为d0·p0;HoAdd([d1]pk,[d2]pk)表示对两个密文进行同态加法操作,得到一个结果密文,使得结果密文对应的明文为d1+d2;zi,zi′,Cz,Cz′均为计算产生的中间结果;[r]pk为协议计算的最终结果,r满足当
Figure BDA0004015089650000111
时,r=1,否则,r=0。
协议3:安全密文乘法协议(SMul)。该协议的输入为:两个密文[x1]pk和[x2]pk,输出为:乘法结果密文[x1·x2]pk。该协议主要用于实现密文和密文间乘法运算,因为加法同态加密方案仅支持密文之间的同态加法运算、密文和明文间的乘法运算。
具体的,在执行安全密文乘法协议时,CS0方从Zn中随机选择两个随机数r1和r2,并进行计算:[x1+r1]pk=HoAdd([x1]pk,[r1]pk)、[x2+r2]pk=HoAdd([x2]pk,[r2]pk);然后对计算得到的结果[x1+r1]pk和[x2+r2]pk执行部分解密:DP1=Decp(sk0,[x1+r1]pk)、DP2=Decp(sk0,[x2+r2]pk),之后CS0将部分解密结果DP1和DP2发送给CS1(从服务器),使得CS1对收到的DP1和DP2执行完全解密,得到x1+r1和x2+r2,解密过程用公式表示为:x1+r1=Decf(sk1,DP1)、x2+r2=Decf(sk1,DP2),然后CS1计算R=Enc(pk,(x1+r1)·(x2+r2))后,CS1将密文R发送给CS0
CS0接收到CS1发送的R后执行下面计算:C1=Multp([x1]pk,n-r2)、C2=Multp([x2]pk,n-r1)、C3=Enc(pk,(n-r1·r2)mod n)、Cadd=HoAdd(HoAdd(C1,C2),C3)、Cmul=HoAdd(R,Cadd),得到的Cmul就是[x1·x2]pk
其中,x1,x2表示两个整数;[x1]pk,[x2]pk分别表示对x1,x2使用公钥pk加密得到的密文;r1和r2是从Zn中随机选择的随机整数;sk0,sk1表示私钥sk的秘密分享;Decp(sk0,[d0]pk)表示对密文[d0]pk使用私钥sk的秘密分享sk0执行部分解密,得到一个部分解密的密文DP;DP1,DP2分别表示[x1+r1]pk,[x2+r2]pk的部分解密结果;Decf(sk1,DP1)表示对部分解密得到的密文DP使用私钥sk的秘密分享sk1执行完全解密操作,得到对应的明文;Enc(pk,m)表示对明文m使用公钥pk执行加密操作,得到对应的密文;Multp([d0]pk,p0)得到一个密文R,使得该密文R对应的明文结果为d0·p0;HoAdd([d1]pk,[d2]pk)表示对两个密文进行同态加法操作,得到一个结果密文,使得结果密文对应的明文为d1+d2;R,C1,C2,C3,Cadd均是计算过程的中间结果;Cmul为协议计算的最终结果,即Cmul=[x1·x2]pk
协议4:安全计算绝对值协议(SABS)。该协议的输入是一个密文
Figure BDA0004015089650000112
输出为定点数绝对值的密文
Figure BDA0004015089650000113
Figure BDA0004015089650000114
符号位的密文
Figure BDA0004015089650000115
其中,如果
Figure BDA0004015089650000116
否则,
Figure BDA0004015089650000117
具体的,在执行安全计算绝对值协议时,CS0方调用SBD得到密文
Figure BDA0004015089650000121
的密文位分解结果:
Figure BDA0004015089650000122
并计算:Ccoe=HoAdd(Multp([xl-1]pk,n-2),[1]pk);之后调用SMul计算:Cxcoe=SMul([x]pk,Ccoe),并利用得到Cxcoe计算:Cy=HoAdd(Cxcoe,Multp([xl-1]pk,2l)),得到的Cy就是
Figure BDA0004015089650000123
而[xl-1]pk就是
Figure BDA0004015089650000124
其中,
Figure BDA0004015089650000125
表示一个定点数;
Figure BDA0004015089650000126
表示定点数
Figure BDA0004015089650000127
通过
Figure BDA0004015089650000128
转换得到的l位的整数;
Figure BDA0004015089650000129
表示对
Figure BDA00040150896500001210
使用公钥pk加密得到的密文;
Figure BDA00040150896500001211
表示对密文
Figure BDA00040150896500001212
执行安全位分解运算得到l个加密二进制数([xl-1]pk,…,[x0]pk);xl-1,…,x0
Figure BDA00040150896500001213
的二进制分解结果,xl-1为最高有效位,x0为最低有效位,x0~xl-1均在{0,1}中取值;Multp([d0]pk,p0)得到一个密文R,使得该密文R对应的明文结果为d0·p0;HoAdd([d1]pk,[d2]pk)表示对两个密文进行同态加法操作,得到一个结果密文,使得结果密文对应的明文为d1+d2;[1]pk表示对常数1进行加密得到的密文;SMul表示协议3中所提出的算法;Ccoe,Cxcoe均为计算产生的中间结果;Cy为协议计算的最终结果,即
Figure BDA00040150896500001214
Figure BDA00040150896500001215
协议5:安全获取首位1协议(SGP)。该协议的输入是一个密文[x]pk,其中,x是一个整数,且满足2α-1≤x<2α,输出是密文[2α-1]pk
具体的,在执行安全获取首位1协议时,CS0方调用SBD得到密文[x]pk的密文位分解结果:([xl-1]pk,…,[x0]pk)←SBD([x]pk,l),之后将BitSuml设为[0]pk,并计算:
for j={l-1,l-2,…,0}do:
Cj,0=Multp(BitSumj+1,n-1)
Cj,1=HoAdd([xj]pk,Ci,0)
Cj,2=SMul(Cj,1,[yj]pk)
BitSumj=HoAdd(BitSumj+1,Cj,2)
Figure BDA00040150896500001216
end for
经过l轮迭代计算,最终得到的
Figure BDA00040150896500001218
就是[2α-1]pk
其中,x表示一个整数,且满足2α-1≤x<2α;[x]pk表示对x使用公钥pk加密得到的密文;SBD([x]pk,l)表示对密文[x]pk执行安全位分解运算得到l个加密二进制数([xl-1]pk,…,[x0]pk);xl-1,…,x0
Figure BDA00040150896500001217
的二进制分解结果,xl-1为最高有效位,x0为最低有效位,x0~xl-1均在{0,1}中取值;Multp([d0]pk,p0)得到一个密文R,使得该密文R对应的明文结果为d0·p0;HoAdd([d1]pk,[d2]pk)表示对两个密文进行同态加法操作,得到一个结果密文,使得结果密文对应的明文为d1+d2;SMul表示协议3中所提出的算法;BitSuml为迭代计算初始值,BitSumi+1为参与第j轮迭代计算的值,BitSumi为第j轮计算为下一轮计算生成的迭代计算值;Ci,0,Ci,1,Ci,2为j轮计算产生的中间结果;
Figure BDA0004015089650000131
为协议计算的最终结果,即
Figure BDA0004015089650000132
协议6:安全除法协议(SDiv)。该协议输入两个密文
Figure BDA0004015089650000133
Figure BDA0004015089650000134
输出一个密文
Figure BDA0004015089650000135
即协议的输出是两个输入密文对应定点数除法的加密结果。
具体的,在执行安全除法协议时,CS0调用SABS得到密文
Figure BDA0004015089650000136
对应定点数绝对值的密文和加密的符号位:
Figure BDA0004015089650000137
Figure BDA0004015089650000138
调用SGP得到密文
Figure BDA0004015089650000139
对应的[2α-1]pk
Figure BDA00040150896500001310
Figure BDA00040150896500001311
然后计算:[2α]pk=Multp([2α-1]pk,2)、
Figure BDA00040150896500001341
Figure BDA00040150896500001342
之后CS0将部分解密的
Figure BDA00040150896500001312
Figure BDA00040150896500001313
发送给CS1
CS1完全解密收到的
Figure BDA00040150896500001314
得到对应的明文:
Figure BDA00040150896500001315
之后计算α=log22α,将C0设为
Figure BDA00040150896500001316
后计算:如果α≤fp,则
Figure BDA00040150896500001317
Figure BDA00040150896500001318
Cd=HoAdd(C0,Multp(Cc,n-2))、
Figure BDA00040150896500001319
Figure BDA00040150896500001320
否则,
Figure BDA00040150896500001321
Cd=HoAdd(C0,Multp(Cc,n-2))、
Figure BDA00040150896500001322
Figure BDA00040150896500001323
之后,CS1
Figure BDA00040150896500001324
部分解密后发回给CS0
Figure BDA00040150896500001325
CS0完全解密收到的
Figure BDA00040150896500001326
得到对应的明文:
Figure BDA00040150896500001327
Figure BDA00040150896500001328
并计算:
Figure BDA00040150896500001329
Figure BDA00040150896500001330
Figure BDA00040150896500001331
Figure BDA00040150896500001332
计算得到的
Figure BDA00040150896500001333
就是两个输入密文对应定点数除法的加密结果。
其中,
Figure BDA00040150896500001334
表示定点数;
Figure BDA00040150896500001335
分别表示定点数
Figure BDA00040150896500001336
通过
Figure BDA00040150896500001337
转换得到的l位的整数;
Figure BDA00040150896500001338
分别表示对
Figure BDA00040150896500001339
使用公钥pk加密得到的密文;SABS表示协议4中所提出的算法;
Figure BDA00040150896500001340
表示SABS的输出结果,即
Figure BDA0004015089650000141
绝对值转换成整数的密文和
Figure BDA0004015089650000142
的符号位;SGP表示协议5中所提出的算法;[2α-1]pk表示SGP的输出结果;Multp([d0]pk,p0)得到一个密文R,使得该密文R对应的明文结果为d0·p0;HoAdd([d1]pk,[d2]pk)表示对两个密文进行同态加法操作,得到一个结果密文,使得结果密文对应的明文为d1+d2;sk0,sk1表示私钥sk的秘密分享;Decp(sk0,[d0]pk)表示对密文[d0]pk使用私钥sk的秘密分享sk0执行部分解密,得到一个部分解密的密文DP;
Figure BDA0004015089650000143
分别表示[2α]pk,
Figure BDA0004015089650000144
的部分解密结果;Decf(sk1,DP1)表示对部分解密得到的密文DP使用私钥sk的秘密分享sk1执行完全解密操作,得到对应的明文;Trunc表示协议1中所提出的算法;SMul表示协议3中所提出的算法;C0,Cc,Cd,
Figure BDA0004015089650000145
Cmul,
Figure BDA0004015089650000146
e,
Figure BDA0004015089650000147
C1,C2表示计算产生的中间结果;
Figure BDA0004015089650000148
表示协议计算的最终结果,即:
Figure BDA0004015089650000149
协议7:安全矩阵乘法协议(SMMul)。两个服务器协同执行该协议,用于计算矩阵乘法Wd·Xd×v+Bh×v。其中,将矩阵Xd×v发送给CS1,CSi(i=0,1)计算:
Figure BDA00040150896500001410
CS1将<Rh×v>1发送给CS0,CS0计算R′h×v=<Rh×v>0+<Rh×v>1后,计算:
for every r′j,k∈R h×vdo:
rj,k=Trunc(r′j,k,fp)
end for
CS0得到最终的结果矩阵:
Figure BDA00040150896500001411
其中,Xd×v表示用户加密数据矩阵或神经网络前一层输出结果密文矩阵;<Wh×d>i表示CSi所持有的模型权重秘密分享;<Bh×v>i表示CSi所持有的偏置(偏置也是模型参数的一部分)秘密分享;<Rh×v>i表示CSi计算的矩阵运算结果的秘密分享;R′h×v表示两个计算结果秘密分享合并的结果;r′j,k表示矩阵R′h×v中的元素;Trunc表示协议1中所提出的算法;Rh×v表示协议计算的最终结果矩阵;rj,k表示矩阵Rh×v中的元素;
协议8:安全指数运算协议(SExp)。该协议输入一个密文
Figure BDA00040150896500001412
和一个定点数
Figure BDA00040150896500001413
其中,
Figure BDA00040150896500001414
输出指数运算
Figure BDA00040150896500001415
的密文结果
Figure BDA00040150896500001416
计算过程如下:CS0调用SBD得到密文
Figure BDA00040150896500001417
的密文位分解结果:
Figure BDA00040150896500001418
执行下述计算,将
Figure BDA00040150896500001419
Figure BDA00040150896500001420
转换到
Figure BDA00040150896500001421
Figure BDA0004015089650000151
中随机选择一个整数
Figure BDA0004015089650000152
并计算:Cpad=HoAdd([x′]pk,[r]pk)、([yl-1]pk,…,[y0]pk)←SBD(Cpad,l);计算
Figure BDA0004015089650000153
Figure BDA0004015089650000154
得到[(x′+r)mod 2m]pk。之后CS0将Cmod部分解密得到DPmod:DPmod=Decp(sk0,Cmod),CS0将DPmod发送给CS1
CS1完全解密收到的DPmod得到对应的明文:M=Decf(sk1,DPmod)、
Figure BDA0004015089650000155
CS1将[Mexp1]pk发送给CS0
CS0计算[ym·xl-1]pk=SMul([ym]pk,[xl-1]pk)、
Figure BDA0004015089650000156
Figure BDA0004015089650000157
Figure BDA0004015089650000158
Figure BDA0004015089650000159
Cmul=SMul(Cadd,[Mexp1]pk)、Cexp=Trunc(Cmul,fp),计算得到Cexp就是
Figure BDA00040150896500001510
其中,
Figure BDA00040150896500001511
表示一个定点数;
Figure BDA00040150896500001512
表示定点数
Figure BDA00040150896500001513
通过
Figure BDA00040150896500001514
转换得到的l位的整数;
Figure BDA00040150896500001515
表示对
Figure BDA00040150896500001516
使用公钥pk加密得到的密文;
Figure BDA00040150896500001517
表示对密文
Figure BDA00040150896500001518
执行安全位分解运算得到l个加密二进制数([xl-1]pk,…,[x0]pk);xl-1,…,x0
Figure BDA00040150896500001519
的二进制分解结果,xl-1为最高有效位,x0为最低有效位,x0~xl-1均在{0,1}中取值;Multp([d0]pk,p0)得到一个密文R,使得该密文R对应的明文结果为d0·p0;HoAdd([d1]pk,[d2]pk)表示对两个密文进行同态加法操作,得到一个结果密文,使得结果密文对应的明文为d1+d2;m是一个整数,且m<l;[x′]pk是由[x]pk转换得到的位于Z2m中整数的密文;r是从Z2m中随机选择的一个整数;Cpad是[x′]pk和[r]pk执行同态加法的密文结果;([yl-1]pk,…,[y0]pk)表示对Cpad执行安全位分解运算得到l个加密二进制数([yl-1]pk,…,[y0]pk);yl-1,…,y0为Cpad的二进制分解结果,yl-1为最高有效位,y0为最低有效位,y0~yl-1均在{0,1}中取值;
Figure BDA00040150896500001520
是由明文M转换得到的定点数;Mexp1是定点数运算
Figure BDA00040150896500001521
结果经过
Figure BDA00040150896500001522
转换成的整数结果;
Figure BDA00040150896500001523
是一个定点数,表示指数运算的底数;SMul表示协议3中所提出的算法;Trunc是协议1中所提出的算法;Ccoe,Cmod,M,C1,C2,C3,C4,Cadd,Cmul均为计算产生的中间结果;Cexp为协议计算的最终结果,即:
Figure BDA00040150896500001524
协议9:安全平均池协议(SAP)。该协议输入γ个密文{[x1]pk,…,[xγ]pk},输出γ个密文对应明文平均值的加密结果
Figure BDA0004015089650000161
计算过程如下:CS0计算γ个数的累加和:
Figure BDA0004015089650000162
之后根据γ的数值决定计算平均值的方式:如果γ=2k,则
Cavg=Trunc(Csumx,k);否则,
Figure BDA0004015089650000163
Cmul=Multp(Csumx,M)、Cavg=Trunc(Cmul,fp);得到的Cavg就是
Figure BDA0004015089650000164
其中,γ表示平均池化计算的元素的数量;Csumx表示γ个元素之和;M表示
Figure BDA0004015089650000165
经过
Figure BDA0004015089650000166
转换得到的整数;Trunc表示协议1中所提出的算法;Cmul表示计算过程中产生的中间结果;Cavg表示γ个元素的平均值,即协议计算的最终结果
Figure BDA0004015089650000167
协议10:安全最大池协议(SMP)。该协议输入γ个密文{[x1]pk,…,[xγ]pk},其中,
Figure BDA0004015089650000168
输出γ个密文对应明文最大值的加密结果
Figure BDA0004015089650000169
计算过程如下:在CS0端,设Cmax=[x1]pk,计算:
for j={2,3,…,γ}do:
Cr=SCmp(Cmax,[xj]pk)
C1-r=HoAdd([1]pk,Multp(Cr,n-1))
C1=SMul(Cmax,Cr)
C2=SMul([xj]pk,C1-r)
Set Cmax=HoAdd(C1,C2)
end for
经过γ-1次循环计算,最终得到的Cmax就是
Figure BDA00040150896500001610
其中,γ表示最大池化计算的元素的数量;{[x1]pk,…,[xγ]pk}表示γ个密文组成的集合;Cmax表示当前迭代计算产生的最大值;SCmp表示协议2中所提出的算法;SMul表示协议3中所提出的算法;Cr,C1-r,C1,C2均为计算过程中产生的中间结果。
协议11:安全计算ReLU协议(SReLU)。该协议输入一个密文
Figure BDA0004015089650000171
输出
Figure BDA0004015089650000172
的密文结果
Figure BDA0004015089650000173
Figure BDA0004015089650000174
Figure BDA0004015089650000175
时,结果为
Figure BDA0004015089650000176
Figure BDA0004015089650000177
Figure BDA0004015089650000178
时,结果为0。
计算过程如下:CS0调用SBD得到密文
Figure BDA0004015089650000179
的密文位分解结果:
Figure BDA00040150896500001710
之后计算:Cdrelu=HoAdd([1]pk,Multp([xl-1]pk,n-1))、Crelu=SMul(Cdrelu,[x]pk),得到的Crelu就是
Figure BDA00040150896500001711
其中,
Figure BDA00040150896500001712
表示定点数;
Figure BDA00040150896500001713
表示定点数
Figure BDA00040150896500001714
通过
Figure BDA00040150896500001715
转换得到的l位的整数;
Figure BDA00040150896500001716
表示对
Figure BDA00040150896500001717
使用公钥pk加密得到的密文;
Figure BDA00040150896500001718
表示对密文
Figure BDA00040150896500001719
执行安全位分解运算得到l个加密二进制数([xl-1]pk,…,[x0]pk);xl-1,…,x0
Figure BDA00040150896500001720
的二进制分解结果,xl-1为最高有效位,x0为最低有效位,x0~xl-1均在{0,1}中取值;Cdrelu表示
Figure BDA00040150896500001721
导数的密文;Crelu表示协议计算的最终结果,即:
Figure BDA00040150896500001722
可见,每一运算协议中都设定了CS0、CS1需完成的计算步骤,因此CS1协同CS0进行某一运算协议时,按照相应协议中的设定,CS0、CS1分别执行各自需执行的计算步骤。基于上述各运算协议,可完成一个模型中的各种模型运算,包括复杂的指数运算等,因此无需修改模型激活函数。
请参见图2,借助上述各运算协议,并基于加法同态加密技术,可以将模型安全的部署在不合谋半诚实的云服务器中,并保证部署和使用过程中模型参数和用户数据对不可信的云服务器的隐私性。
具体的,方案涉及如下四个端:用户使用的用户端、模型拥有者使用的模型上传端、云服务器CS0、云服务器CS1。其中,用户通过用户端传递用户数据、自身公钥PK和一份用户私钥SK0至云服务器CS0,并传递自身公钥PK和另一份用户私钥SK1至云服务器CS1;模型拥有者通过模型上传端将训练好的模型利用加法同态加密分割为两个部分(SSW0和SSW1)后分别部署到两个云服务器上。云服务器CS0存储模型的一份秘密分享SSW0(即<W>0和<B>0)、用户公钥PK和一份用户私钥SK0,接收用户的加密数据,并与云服务器CS1协作执行安全计算协议,以完成模型预测过程。云服务器CS1存储模型的另一份秘密分享SSW1(即<W>1和<B>1)、用户公钥PK和另一份用户私钥SK1,并辅助云服务器CS0执行安全计算协议。
下面以结构为784-300-10的神经网络模型为例进行方案介绍。784-300-10表示模型一共有两层,输入层接收784维列向量,第一层有300个神经元,第二层有10个神经元。这里取激活函数
Figure BDA0004015089650000181
那么方案实现过程包括:
步骤1:在模型上传端,模型拥有者在明文下执行模型训练,得到一个训练好的模型Model,将该模型的权重矩阵记为W,偏置矩阵记为B。
步骤2:模型拥有者在模型上传端利用加法秘密分享将模型权重矩阵W和偏置矩阵B随机划分成两部分秘密共享矩阵<W>0、<W>1以及<B>0、<B>1,使得两部分秘密共享矩阵中对应位置元素满足以下等式:(<wj,k>0+<wj,k>1)mod 2l=wj,k、(<bj,k>0+<bj,k>1)mod 2l=bj,k,其中:<wi,k>0∈<W>0,<wi,k>1∈<W>1、<bi,k>0∈<B>0,<bi,k>1∈<B>1
步骤3:模型拥有者使<W>0和<B>0通过安全信道从模型上传端发送到云服务器CS0,使<W>1和<B>1通过安全信道从模型上传端发送到云服务器CS1
步骤4:模型拥有者通过模型上传端告知CS0神经网络模型的结构(包括层数以及每层的神经元数量)和激活函数的类型
Figure BDA0004015089650000182
步骤5:用户自行生成加法同态加密的公钥pk和私钥sk。
步骤6:用户将私钥sk进行加法秘密共享,得到sk0和sk1
步骤7:用户通过用户端将步骤6中得到的sk0和sk1通过安全信道分别发送给CS0和CS1
步骤8:用户在用户端利用步骤5中生成的公钥pk对需要上传到云服务器的数据(784维向量)进行加密,得到([x1]pk,[x2]pk,…,[x784]pk)。
步骤9:用户通过用户端将步骤8得到的加密向量通过公共信道发送到CS0
步骤10:CS0在收到用户的加密向量后,根据模型结构首先调用SMMul执行矩阵乘法计算,得到W·X+B的密文结果。
步骤11:对于
Figure BDA0004015089650000183
函数的计算,CS0首先调用SExp来计算ex,其中e=2.71828,x为步骤10中矩阵计算结果(向量)的一个元素。
步骤12:在得到ex结果后,CS0利用HoAdd在本地计算1+ex
步骤13:经过步骤11和步骤12后,CS0方现在持有ex和1+ex,此时CS0调用SDiv计算
Figure BDA0004015089650000184
来得到Sigmoid函数的结果。
步骤14:计算完激活函数后,CS0将得到一个由300个元素组成的向量。该向量将作为下一层的输入向量继续执行预测过程,重复执行步骤10-步骤13,直到得到最终的结果,所得到的结果就是神经网络的预测结果。
步骤15:CS0将神经网络预测结果(密文)发送给用户端,完成整个神经网络的安全预测过程。
步骤16:用户端将收到的结果利用私钥sk进行解密,得到对应的明文预测结果。
可见,按照本实施例执行神经网络预测,可以从众多运算协议中选用于当前模型对应的运算协议来实现相关模型运算,方案兼容性高。具体的,基于各协议可以进一步组合构建不同类型的激活函数,适用于各种神经网络模型,且不需要对原有模型进行修改。在模型的保密性上,采用加法秘密共享技术将模型分割成两个秘密分享,并将模型的两个秘密分享分别存放到不合谋的两台云服务器上,实现了模型对云服务器的保密性。并且,以加法秘密共享分割模型需要的计算量非常小,能够有效减小模型部署带来的额外计算开销和通信开销。在用户数据的保密性上,也采用加法同态加密的方式进行数据的隐私保护。用户公私钥均由用户自行生成,更换密钥对于执行模型预测和模型部署没有影响,因此用户可根据自身的安全需求和计算能力自行生成不同安全等级的公钥和私钥,由此可对不同用户提供不同等级的安全保证。此外,不同于全同态加密技术,该方案不需要对模型和用户数据使用同一公钥加密,因此更换用户更换密钥后不需要对模型重新部署。另外,加密数据前进行数据转换时,可控制定点数的取值精度,因此该方案支持可变高精度的计算,即:可以根据不同的精度要求实现对应精度的预测。
综上,该方案使用加法秘密共享的方式实现了模型的保密性,这极大的减轻了对模型进行加密所带来的计算负担。同时,由于模型与用户数据不需要使用同一加密密钥加密,因此更新密钥时不再需要重新加密模型,更新密钥变得更加方便。该方案基于各个高精度的定点数运算协议可以构建各种激活函数的安全计算,由此可以有效避免模型预测损失。
下面对本申请实施例提供的一种具有隐私保护的模型预测装置进行介绍,下文描述的一种具有隐私保护的模型预测装置与上文描述的一种具有隐私保护的模型预测方法可以相互参照。
参见图3所示,本申请实施例公开了一种具有隐私保护的模型预测装置,应用于主服务器,包括:
接收模块301,用于接收用户端发送的采用用户公钥加密的用户数据密文;
处理模块302,用于基于以秘密共享方式表示的用户私钥、用于实现目标模型中的模型运算的运算协议、以及以秘密共享方式表示的目标模型的权重参数及偏置参数处理用户数据密文,得到目标模型针对用户数据密文的预测结果密文;其中,运算协议包括:截断协议、比较协议、密文乘法协议、计算绝对值协议、获取首位字符协议、除法协议、矩阵乘法协议、指数运算协议、平均池协议、最大池协议、ReLU激活函数计算协议中的至少一个或组合;
发送模块303,用于发送预测结果密文至用户端,以使用户端采用用户私钥解密预测结果密文,得到预测结果明文。
在一种实施方式中,目标模型的权重参数及偏置参数以秘密共享方式被划分为第一模型子参数和第二模型子参数,用户私钥以秘密共享方式被划分为第一私钥子参数和第二私钥子参数;第一模型子参数、第一私钥子参数和目标模型的模型结构存储于主服务器;第二模型子参数和第二私钥子参数存储于从主服务器;
相应地,处理模块具体用于:使从服务器协同主服务器,基于运算协议、第一模型子参数、第一私钥子参数、第二模型子参数和第二私钥子参数处理用户数据密文。
在一种实施方式中,模型上传端通过秘密共享方式将目标模型的权重参数随机划分为第一子权重和第二子权重,通过秘密共享方式将目标模型的偏置参数随机划分为第一子偏置和第二子偏置,将第一子权重和第一子偏置作为第一模型子参数,将第二子权重和第二子偏置作为第二模型子参数。
在一种实施方式中,用户端以加法秘密共享方式将用户私钥随机划分为第一私钥子参数和第二私钥子参数。
在一种实施方式中,用户端发送用户数据密文之前,用户端将用户数据明文由定点数转换为整数,采用用户公钥对以整数表示的用户数据明文进行加密,得到用户数据密文。
在一种实施方式中,用户端将用户数据明文由定点数转换为整数,包括:用户端按照预设转换公式将用户数据明文由定点数转换为整数;其中,预设转换公式为:
Figure BDA0004015089650000211
其中,
Figure BDA0004015089650000212
表示以定点数表示的用户数据明文,fp表示以定点数表示的所述用户数据明文的二进制小数的比特长度,l表示转换得到的以整数表示的所述用户数据明文的比特长度,
Figure BDA0004015089650000213
表示转换得到的以整数表示的所述用户数据明文。
在一种实施方式中,用户端还根据用户操作调整fp的取值。
其中,关于本实施例中各个模块、单元更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本实施例提供了一种具有隐私保护的模型预测装置,能够提高模型对于密文数据的预测准确性,提升需要被保护的用户私钥、模型的权重参数及偏置参数等重要数据的安全保护效果。
下面对本申请实施例提供的一种电子设备进行介绍,下文描述的一种电子设备与上文描述的一种具有隐私保护的模型预测方法及装置可以相互参照。
参见图4所示,本申请实施例公开了一种电子设备,包括:
存储器401,用于保存计算机程序;
处理器402,用于执行所述计算机程序,以实现上述任意实施例公开的方法。
下面对本申请实施例提供的一种可读存储介质进行介绍,下文描述的一种可读存储介质与上文描述的一种具有隐私保护的模型预测方法、装置及设备可以相互参照。
一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述实施例公开的具有隐私保护的模型预测方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的可读存储介质中。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (10)

1.一种具有隐私保护的模型预测方法,其特征在于,应用于主服务器,包括:
接收用户端发送的采用用户公钥加密的用户数据密文;
基于以秘密共享方式表示的用户私钥、用于实现目标模型中的模型运算的运算协议、以及以秘密共享方式表示的所述目标模型的权重参数及偏置参数处理所述用户数据密文,得到所述目标模型针对所述用户数据密文的预测结果密文;
其中,所述运算协议包括:截断协议、比较协议、密文乘法协议、计算绝对值协议、获取首位字符协议、除法协议、矩阵乘法协议、指数运算协议、平均池协议、最大池协议、ReLU激活函数计算协议中的至少一个或组合;
发送所述预测结果密文至所述用户端,以使所述用户端采用用户私钥解密所述预测结果密文,得到预测结果明文。
2.根据权利要求1所述的方法,其特征在于,
所述目标模型的权重参数及偏置参数以秘密共享方式被划分为第一模型子参数和第二模型子参数,所述用户私钥以秘密共享方式被划分为第一私钥子参数和第二私钥子参数;
所述第一模型子参数、所述第一私钥子参数和所述目标模型的模型结构存储于所述主服务器;所述第二模型子参数和所述第二私钥子参数存储于从主服务器;
相应地,所述基于以秘密共享方式表示的用户私钥、用于实现目标模型中的模型运算的运算协议、以及以秘密共享方式表示的所述目标模型的权重参数及偏置参数处理所述用户数据密文,包括:
使所述从服务器协同所述主服务器,基于所述运算协议、所述第一模型子参数、所述第一私钥子参数、所述第二模型子参数和所述第二私钥子参数处理所述用户数据密文。
3.根据权利要求2所述的方法,其特征在于,
模型上传端通过秘密共享方式将所述目标模型的权重参数随机划分为第一子权重和第二子权重,通过秘密共享方式将所述目标模型的偏置参数随机划分为第一子偏置和第二子偏置,将所述第一子权重和所述第一子偏置作为所述第一模型子参数,将所述第二子权重和所述第二子偏置作为所述第二模型子参数。
4.根据权利要求2所述的方法,其特征在于,
所述用户端以加法秘密共享方式将所述用户私钥随机划分为所述第一私钥子参数和所述第二私钥子参数。
5.根据权利要求1所述的方法,其特征在于,
所述用户端发送所述用户数据密文之前,所述用户端将用户数据明文由定点数转换为整数,采用所述用户公钥对以整数表示的所述用户数据明文进行加密,得到所述用户数据密文。
6.根据权利要求5所述的方法,其特征在于,所述用户端将用户数据明文由定点数转换为整数,包括:
所述用户端按照预设转换公式将所述用户数据明文由定点数转换为整数;其中,所述预设转换公式为:
Figure FDA0004015089640000021
其中,
Figure FDA0004015089640000022
表示以定点数表示的所述用户数据明文,fp表示以定点数表示的所述用户数据明文的二进制小数的比特长度,l表示转换得到的以整数表示的所述用户数据明文的比特长度,
Figure FDA0004015089640000023
表示转换得到的以整数表示的所述用户数据明文。
7.根据权利要求6所述的方法,其特征在于,还包括:
所述用户端根据用户操作调整fp的取值。
8.一种具有隐私保护的模型预测装置,其特征在于,应用于主服务器,包括:
接收模块,用于接收用户端发送的采用用户公钥加密的用户数据密文;
处理模块,用于基于以秘密共享方式表示的用户私钥、用于实现目标模型中的模型运算的运算协议、以及以秘密共享方式表示的所述目标模型的权重参数及偏置参数处理所述用户数据密文,得到所述目标模型针对所述用户数据密文的预测结果密文;其中,所述运算协议包括:截断协议、比较协议、密文乘法协议、计算绝对值协议、获取首位字符协议、除法协议、矩阵乘法协议、指数运算协议、平均池协议、最大池协议、ReLU激活函数计算协议中的至少一个或组合;
发送模块,用于发送所述预测结果密文至所述用户端,以使所述用户端采用用户私钥解密所述预测结果密文,得到预测结果明文。
9.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至7任一项所述的方法。
10.一种可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的方法。
CN202211665853.8A 2022-12-23 2022-12-23 一种具有隐私保护的模型预测方法、装置、设备及介质 Pending CN115996119A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211665853.8A CN115996119A (zh) 2022-12-23 2022-12-23 一种具有隐私保护的模型预测方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211665853.8A CN115996119A (zh) 2022-12-23 2022-12-23 一种具有隐私保护的模型预测方法、装置、设备及介质

Publications (1)

Publication Number Publication Date
CN115996119A true CN115996119A (zh) 2023-04-21

Family

ID=85991592

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211665853.8A Pending CN115996119A (zh) 2022-12-23 2022-12-23 一种具有隐私保护的模型预测方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN115996119A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116383666A (zh) * 2023-05-23 2023-07-04 重庆大学 一种电力数据预测方法、装置及电子设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116383666A (zh) * 2023-05-23 2023-07-04 重庆大学 一种电力数据预测方法、装置及电子设备
CN116383666B (zh) * 2023-05-23 2024-04-19 重庆大学 一种电力数据预测方法、装置及电子设备

Similar Documents

Publication Publication Date Title
CN106789044B (zh) 标准模型下格上云存储密文数据公钥可搜索加密方法
US20160020898A1 (en) Privacy-preserving ridge regression
WO2019005845A1 (en) VARIABLE RELINARIZATION IN A HOMOMORPHIC ENCRYPTION
US20210243005A1 (en) Fully homomorphic encryption method and device and computer readable storage medium
WO2018149912A1 (en) Key exchange devices and method
CN108718231A (zh) 一种全同态加密方法、装置和计算机可读存储介质
CN112769542B (zh) 基于椭圆曲线的乘法三元组生成方法、装置、设备及介质
CN111917721B (zh) 基于区块链的属性加密方法
CN110635909A (zh) 一种基于属性的抗合谋攻击的代理重加密方法
Agrawal et al. Elliptic curve cryptography with hill cipher generation for secure text cryptosystem
CN113746620A (zh) 同态加密方法、设备、介质及计算机程序产品
CN115996119A (zh) 一种具有隐私保护的模型预测方法、装置、设备及介质
CN107888385B (zh) Rsa模数生成方法、rsa密钥生成方法、计算机设备及介质
US11895230B2 (en) Information processing apparatus, secure computation method, and program
CN117254897B (zh) 基于容错学习的身份基矩阵同态加密方法
CN116170142B (zh) 分布式协同解密方法、设备和存储介质
CN116684062B (zh) 基于代理重加密的云计算外包和数据动态分享方法及系统
US11343070B2 (en) System and method for performing a fully homomorphic encryption on a plain text
CN114362912A (zh) 基于分布式密钥中心的标识密码生成方法、电子设备及介质
CN116861477A (zh) 基于隐私保护的数据处理方法、系统、终端及存储介质
EP4072062A1 (en) Apparatus for processing non-polynomial operation on homomorphic encrypted messages and methods thereof
CN113343258B (zh) 一种适用于体测成绩云共享的格基密文策略的属性基代理重加密方法
CN113794548A (zh) 同态加密方法、设备、介质及计算机程序产品
CN112131596A (zh) 加解密方法、设备及存储介质
RU2734324C1 (ru) Способ формирования общего секретного ключа двух удаленных абонентов телекоммуникационной системы

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination