CN110753926B - 用于数据加密的方法、系统和计算机可读存储介质 - Google Patents
用于数据加密的方法、系统和计算机可读存储介质 Download PDFInfo
- Publication number
- CN110753926B CN110753926B CN201880038741.5A CN201880038741A CN110753926B CN 110753926 B CN110753926 B CN 110753926B CN 201880038741 A CN201880038741 A CN 201880038741A CN 110753926 B CN110753926 B CN 110753926B
- Authority
- CN
- China
- Prior art keywords
- model
- parameters
- encrypted
- encryption key
- data
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000003860 storage Methods 0.000 title claims description 21
- 239000013598 vector Substances 0.000 claims description 33
- 238000012545 processing Methods 0.000 claims description 12
- 238000012549 training Methods 0.000 claims description 12
- 238000007405 data analysis Methods 0.000 abstract description 9
- 230000006870 function Effects 0.000 description 27
- 238000010801 machine learning Methods 0.000 description 26
- 238000004891 communication Methods 0.000 description 25
- 239000011159 matrix material Substances 0.000 description 20
- 230000008569 process Effects 0.000 description 12
- 238000007792 addition Methods 0.000 description 9
- 238000007477 logistic regression Methods 0.000 description 8
- 238000013507 mapping Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 7
- 238000012417 linear regression Methods 0.000 description 6
- 238000011156 evaluation Methods 0.000 description 5
- 238000005457 optimization Methods 0.000 description 5
- 230000002441 reversible effect Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000007423 decrease Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000002860 competitive effect Effects 0.000 description 3
- 238000011478 gradient descent method Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000033001 locomotion Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 229920002430 Fibre-reinforced plastic Polymers 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000003638 chemical reducing agent Substances 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 239000011151 fibre-reinforced plastic Substances 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 229920002521 macromolecule Polymers 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- XOFYZVNMUHMLCC-ZPOLXVRWSA-N prednisone Chemical compound O=C1C=C[C@]2(C)[C@H]3C(=O)C[C@](C)([C@@](CC4)(O)C(=O)CO)[C@@H]4[C@@H]3CCC2=C1 XOFYZVNMUHMLCC-ZPOLXVRWSA-N 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Mathematical Physics (AREA)
- Complex Calculations (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
用于同态数据分析的系统、方法和计算机可执行指令。加密数据从远程系统被接收,其已经使用加密密钥加密。对加密数据进行迭代的多次迭代被确定。模型通过迭代次数而被迭代,以创建中间模型。每次迭代更新模型,并且该模型和中间模型用加密密钥加密。中间模型被提供给远程系统。基于中间模型的更新的模型从远程系统被接收。更新的模型被迭代,直到预定精度被达到为止,以创建最终模型。最终模型被提供给远程系统。最终模型用加密密钥加密。
Description
背景技术
云计算已成为众多企业的优选计算平台。云计算减轻了对于维护企业自己的数据中心的需求,同时仍然确保随时可用性和足够的计算能力来进行数据分析。数据分析已成为大多数公司决策过程中的关键组成部分。数据分析允许公司利用其消费者的数据来提供更好和更具成本效益的服务,并获得竞争优势。
然而,企业不能够对云计算资源进行安全控制,因此更容易受到对其敏感数据的攻击。这可能带来不利因素,使企业使用云计算的竞争优势无效。
附图说明
图1是根据各个示例的在服务器系统处处理加密数据的流程图。
图2是根据各个示例的同态加密的处理流程的流程图。
图3是根据各个示例的在服务器系统处处理加密数据的流程图。
图4是可以与本文描述的技术结合使用的示例计算设备。
具体实施方式
根据本文描述的技术,机器学习算法可以在加密数据上运行。中间结果可以被传递回客户端系统。客户端系统可以以加密或解密的形式处理中间结果,并将机器学习模型提供回服务器系统。服务器系统然后可以完成机器学习任务,并将结果提供给客户端系统。重要的是,服务器系统不会解密数据。相反,机器学习是对加密数据进行的。因此,客户端数据绝不会以未加密的形式公开在服务器系统上。
根据本文描述的技术,客户端可以经由加密来控制其自身数据的安全性,同时允许使用加密数据的远程系统提供数据分析的结果。例如,公司A具有来自其客户的数据,从法律角度以及从竞争优势角度来看,该数据对于公司而言都是关键的。因此,公司A希望保护数据,但同时它也想要对其客户的数据进行一些数据分析。针对该任务,公司A想要使用公司B的云服务,从而不必自己构建大型数据中心。
然而,公司A可能担心公司B或某个恶意第三方可能会访问其客户的数据,除其他问题外,这可能会给A公司带来法律问题。为避免这种情况,公司A可能想要加密其消费者数据并将加密数据上传到由公司B托管的云中。然而,由于公司B需要解密数据以完成所请求的数据分析,因此使用公-私密钥加密将不允许公司A控制其数据的安全性。
下面详细描述一种加密方案,该方案可以使用私钥加密数据,同时仍然允许仅使用加密数据和公共计算密钥对数据执行基本算术运算或称操作。然而,公共计算密钥不能够解密加密的数据。
在示例中,拥有数据的客户端想要使用服务器(其可能会被损坏)对数据执行算术操作,同时保持数据安全。服务器(或云提供方)接收加密的数据并对其执行算术操作。服务器被假定正确地执行了所需的操作。然而,即使服务器没有正确地执行所需的操作,这也不会损坏输入数据。
所描述的加密方案使用加密密钥、解密密钥和计算密钥。这些密钥都由客户端(例如,在上面场景中的公司A)生成。客户端将加密密钥和解密密钥保持私有状态,并且不可用于任何第三实体。计算密钥可以是公开可获得的。例如,计算密钥可以被发送到服务器或云服务提供方,例如公司B。
作为示例,客户端(公司A)使用加密密钥对其数据进行加密,然后将加密数据发送到(由公司B托管的)服务器,同时确保原始数据在自己的场所保持安全。公司A可以决定销毁原始数据。公司A还可以将计算密钥发送给公司B。公司B可以使用该计算密钥对加密的数据执行加、乘或除操作,并将这些操作的结果发送回公司A。然后,公司A可以使用解密密钥来解密最终解决方案。
根据本文描述的技术,描述了一种新颖的加密方案,其允许有效地执行算术操作。加密方案比解决因式分解更加困难。这意味着数据的安全性是基于公认的风险标准的。描述了一种服务器-客户端通信框架,该框架基于以下认识:尽管数据大小可能很大,例如多个拍字节或称千万亿字节,但是相比于数据大小,模型大小通常要小得多,例如,一个数量级或更多。描述了对加密数据进行操作的机器学习算法。这些机器学习算法可以解决最小二乘法问题和/或线性方程组。此外,许多监督的机器学习问题可以通过解决一系列最小二乘法问题来解决。
图1是根据各个示例的在服务器系统120处处理加密数据的流程图。客户端系统110具有各种数据存储库。客户端可能想在此数据上运行机器学习算法,并希望使用服务器系统120来运行机器学习算法。在示例中,服务器系统120是具有大量共享或专用计算资源的基于云的系统。客户端系统110可以加密数据。例如,数据可以使用加密密钥来加密。因此,解密的数据将只能使用解密密钥来获得。因此,客户端可以通过限制对这些密钥的访问来确保其自身数据的安全性。
加密的数据可以被发送130到服务器系统120。服务器系统120可以将数据存储在各种存储设备上。服务器系统120可以在不解密数据的情况下对加密数据执行机器学习。在示例中,服务器系统120不能解密数据,因为客户端系统110没有并且不需要提供解密数据所需的解密密钥。在训练期间,服务器系统120可以将中间结果132传送到客户端系统110。例如,中间结果可以是部分训练的模型。客户端系统110可以对加密的中间结果运行一些操作,或者可以解密数据并运行一些操作。例如,中间结果可以包括部分训练的模型的权重。这些权重可以是具有大分子和大分母的数字。该操作可以包括将权重舍入到可以用较小的分子和分母表示的值。这些操作的结果以加密形式134被传递回服务器系统120。服务器系统120然后可以完成建模136。在示例中,在建模完成之前,客户端系统110多次被发送中间结果。然而,与在服务器系统120上完成的建模相比,中间结果的处理需要较少的计算能力。
在示例中,客户端系统110可以对服务器系统120执行ping命令,以接收对新的中间结果(例如,数据点)何时将可用的预测。在示例中,服务器系统120可以在没有被客户端系统110执行ping命令的情况下向客户端系统110提供新的中间结果何时将可用的指示。
诸如客户端和服务器之间的通信量、客户端应当进行的计算量、对加密方案的安全性保证以及机器学习算法的准确性和可伸缩性之类的各种参数会影响所公开的系统对客户端的有用程度。在此描述的是考虑上述参数的加密方案和机器学习(ML)训练算法。在示例中,所公开的加密方案包括生成三个密钥:加密密钥,解密密钥和计算密钥。加密和解密密钥可以是客户端专用的,而计算密钥是与服务器系统共享的。然而,计算密钥无法解密加密的数据。在示例中,所有密钥是随机矩阵或它们的逆矩阵。加密可以基于将输入与有限域上的随机矩阵相乘。由于是线性结构,因此可以执行加法。加密数据的乘法/除法可以使用计算密钥。
在加密数据被上传到服务器后,服务器可以尝试训练各种机器学习模型。包括重要问题(诸如线性回归、逻辑回归、稀疏回归等)的一类监督学习算法可以被用来训练机器学习模型。对于线性回归问题,标准随机梯度下降(SGD)算法可以使用所提供的计算密钥对加密数据使用。然而,对于像逻辑回归的其他问题,标准SGD可能需要在客户端和服务器之间进行几轮通信。在示例中,问题可以被简化为一系列加权的线性回归,其可以使用上述方法来解决。该方案减少了服务器系统和客户端系统之间的通信,并导致了更有效的解决方案。
如上所述,本文描述的各种特征使用矩阵。矩阵可以用粗体大写字母如X表示,并且向量可以用粗体小写字母如w表示。对于矩阵X,矩阵的第i行称为xi。Xij用于表示第i行和第j列中的元素。对于向量w,wi表示向量的第i个元素。符号·和°分别表示两个向量的点积和逐元素乘积。
对于实体u,用于表示其加密版本。标记diag(α)表示以向量α为其对角线的对角矩阵。另外,V(α)表示范德蒙矩阵。
同态加密方案允许在基础的普通数据上对任何电路的求值(例如算术操作),同时仅观察数据的加密版本。一些同态加密方案依赖于要求某些环LWE(有错误学习)问题的硬度的安全性保证,这是一个相对较新的假设,未经实践检验。相比之下,所描述的加密方案以及大多数非同态密码术系统都基于因式分解的难度。
现有同态方案的另一个担心是,它们在经过一定数目的操作后需要特定的“引导”(bootstrapping)过程。引导过程需要被应用于整个数据集而不是经训练的模型,这可能会导致在大数据状态下不可行的通信和计算成本。相比之下,所描述的加密方案允许任意数目的加法、乘法和除法,只要被操作的数字和结果中生成的数字落在指定范围内。此外,在一些示例中,针对客户端的中间通信/计算仅在经训练的模型上进行操作,该经训练的模型的大小显著小于整个训练数据的大小。因此,一旦模型被训练/学习,所描述的系统就可以输出对无限多个测试点的预测,而现有的同态加密方法将需要在预测固定数目的测试点之后引导。
在示例中,基于迭代地重新加权的最后平方(IRLS)的机器学习算法被使用,该IRLS将优化问题简化为一系列加权的最小二乘法问题。这些机器学习算法可以使用加密的客户端数据,而不必解密数据或不需要引导。
假设客户有一组点(x1,y1)...(xn,yn),其中xi∈Rd,并且客户端想要学习线性回归函数w∈Rds.t.xi·w~yi。该函数可以通过最小化至少是O(nd)计算的最小二乘损失函数∑i(xi·w-yi)2来学习。因此,使用基于云的系统可能有益于更有效地解决该问题。在示例中,客户端可以将加密数据发送到远程系统,诸如云系统。远程系统可以运行机器学习算法,并将加密模型返回给客户端系统。另外,远程系统可以提供对一些新数据的预测客户端系统可以提供新加密数据,并且远程系统可以将加密预测提供回客户端系统。
如上所述,作为远程系统的机器学习的一部分,中间结果可以被提供回客户端系统。在示例中,中间结果可以是模型的加密近似客户端系统接收并将加密转变值发送到远程系统。对于中等大小的数据集,模型大小比被用来学习模型的数据小得多。因此,当与算法的复杂度所依赖的数据大小相比,在中间步骤中执行的通信量相对较小。
在示例中,加密方案包括加密密钥、解密密钥和计算密钥。所有密钥可以由客户端生成。加密和解密密钥可以是私有的。因此,客户端能够维护其自身数据的安全性。计算密钥与加密数据一起被提供给服务器。
在示例中,所描述的加密方案可以同时在一个操作的k个实例上工作,例如,对于任何操作,比如加法,它采用k对数字,并将对这k个加法的答案一起返回。在该示例中,这意味着数字始终以k元组加密。大小为k的向量被用于表示这一点。注意,同时发生的k个不同的操作不会彼此交互。因此,k个算术电路实例可以同时被求值。这些电路可以被称为向量电路。符号用于表示k维向量u的加密。
所描述的加密方案具有各种特征。加密方案使用合理数,这可能是加密数据上使用的机器学习算法可能需要的。有理数子集被编码为整数子集。整数编码形成被加密的明文。有理数的加、减、乘和除的基本操作可以直接在编码上被执行。除法操作本质上是与“逆元”相乘。
所产生的密文是明文的线性变换。因此,对于明文u,为了计算cu或u/c(其中c是常数),则仅需要分别计算cu或u/c。为了将两组k个数u和v相乘,可以对向量进行矩阵变换。
因此,以下操作:加密、解密、加法、减法、乘以常数的乘法和除法以及乘法都仅涉及矩阵向量乘积,并且可以在实践中有效地实现。除法涉及求解线性方程组,并且与乘法相比,速度可能较慢。
现在正式提出加密方案。第一种方案对于O(k)数的乘法具有O(k2)的开销。通过利用广义里德-所罗门(Reed-Solomon)码的代数性质,该方案可以被扩展为使用特定的密钥类,并将乘法开销减少到O(k)。第二方案可以被称为范德蒙方案。在两种方案中,都没有针对加法的开销,而对于除法,两种方案都具有O(k3)的开销。
第一方案
对于N为半素数,考虑环R=Z/N Z上的线性代码。提供了以N为模的算术电路的同态求值。对于某些k,映射的同态求值为:
使得(u+v)i=ui+vi,并且(u/v)i=uv-1。抽象地,令A为模Rk的自同构。请注意,+是(Rk)2上的线性映射,并且是(Rk)2上的双线性映射。因此,在应用自同构A之后,这些映射被发送到+A和它们分别仍然是线性和双线性的。可以查看所描述的方案以提供这些映射。
具体地,基是固定的,因此自同构A可以由可逆k×k矩阵(Aij)表示。给定向量u、v,与该方案相关的各种操作由下列各式给出:
EncA(u)=A-1u
矩阵T本质上是变换空间A中双线性操作的张量。加密密钥EK可以是(A-1,N,k),解密密钥DK是(A,N,k),并且计算密钥CK是(T,N,k)。该加密方案在加法、乘法和除法操作方面是同态的,并且可以表示为:
范德蒙方案
如前所述,上述基本方案为乘法产生O(k2)的开销。范德蒙方案可以被用来将开销减少到O(k)。明文-密文对可以是次数<k的多项式f的加权求值。令α,γ∈Qk以及β,δ∈Q2k,其中Q是环R的适当扩展。因此,如果则f可以对明文u进行编码。密文的长度是其明文的两倍。给定密文明文u可以使用变换来获得,其中
V1=diag(γ-1)V(α)
V2=diag(δ-1)V(β)
π=[Ik|0k]。
该变换从密文中插入函数f,在点α上对其求值,并用权重γ-1对这些求值进行加权以计算明文。注意,A是从R2k到Rk的一个满射射态。因此,A是右可逆的。A-1可以被认为是A的右逆
现在,对于分别由多项式f和g编码的明文u和v,明文由多项式h=f·g编码。这得自于:
密文也可以由h编码。这得自于:
因为h=f·g可以是次数≥k。在解密由h编码的密文时,由于解密映射忽略了幂系数≥k,因此故障明文可以被获取。h的次数可以被降低,同时保持其对各αi的求值。这可以通过降低h的模数Πi(X-αi)来实现。该减少的更多细节如下。k×2k归约器其中映射R被定义为:
其中等效地:
R=V(α)-1diag(γ)-1[V(α)|diag(α)kV(α)]。
这导致:
/A的构造更为复杂,因为对于任何固定的v,映射都是不可逆的。因此,为了找到需要一个既在上述映射下的的原像中又在Red的像中的给定Red,k×2k矩阵B可以被找到,使得im(B)=im(Red),例如使得列B是Red的列空间的基。还可以找到秩为k的k×2k矩阵K,使得ker(K)∩im(Red)={0}(例如,使得KB为可逆k×k矩阵),这可以在B的行秩为k时完成。这也导致以下结果:
那么是一个可逆的k×k矩阵,并且因此,该方案的操作可以列出如下:
EncA(u)=A-1u
因此,给定用于具有解密密钥A的范德蒙加密方案的两个k维向量u、v可以确定以下内容:
图2是根据各个示例的同态加密处理流程200的流程图。处理流程200可以在计算设备上被执行。处理流程200可以通过创建加密密钥开始于210。例如,客户端系统可以创建加密密钥。在220处,对应的解密密钥被创建。在示例中,解密密钥是矩阵。加密密钥可以是解密密钥的右逆变。使用加密密钥和解密密钥的加密方案的安全性基于因式分解。加密密钥和解密密钥可以在客户端系统上保持私有。因此,远程系统将不具有使用加密和解密密钥来加密或解密数据所需的密钥。
在230,基于加密密钥的计算密钥被创建。在示例中,计算密钥基于解密密钥的矩阵。在240,诸如数字向量之类的数据使用加密密钥来加密,以创建加密数据。在250,加密数据和计算密钥被提供给远程系统。在260,客户端系统请求对加密数据进行数据分析。例如,客户端系统可以请求对加密数据运行机器学习算法。
在另一示例中,客户端系统可能想要确定平均值和值的方差。例如,这些值可以是薪水信息。客户端可能有M名员工,并且第i名员工的薪水由Si决定。然后,客户端形成针对第i个员工的向量xi,其中xi的第一个坐标是Si,其余的k-1个坐标可以是随机数。现在,客户端使用上述加密操作对每个xi进行加密,从而得到2k维向量然后,客户端将所有M个向量1≤i≤M连同计算密钥B发送到服务器。
然后,服务器将平均薪水计算为:并且将方差计算为服务器将和发送回客户端。然后,客户端可以使用解密操作来获得平均薪水和薪水的方差。即,和
在270,对加密数据进行的数据分析的加密结果从远程系统被接收。在示例中,结果是由远程系统创建的机器学习算法所创建的模型。在各种示例中,为了创建模型,远程系统可以向客户端系统提供中间模型。客户端系统可以使用解密密钥对中间模型进行解密,并且对模型的各种权重执行舍入。权重被舍入后,更新后的模型可以用加密密钥来加密,然后被发送回远程系统以用于进一步的机器学习。在示例中,加密结果是已达到特定精度级别的最终模型。在280,客户端系统使用解密密钥对加密结果进行解密。
在示例中,加密方案可以在以任何标准编程语言(如C,C++,Java等)编写的软件中使用标准大整数库来实现。另一实现可以包括构建专用硬件以加速方案中使用的最常见操作。加密/解密运算符可以被部署在客户端侧,该运算符将首先生成加密、解密、计算密钥,然后使用大整数库来计算给定数据的加密。算术运算符可以在远程系统上被执行。大整数库可以被用来执行在远程系统上计算计算结果所需的各种操作。
为了处理有理数,有理数可以被映射。例如,令N=pq,其中p,q是素数,并且Q是所有有理数的集合。令并通过来定义其中b-1b=1mod N。然后在上是内射的,正如意味着:
a1b2=a2b1 mod N
并且由于的两侧在模中受限制,因此a1b2=a2b1。映射可以被用作有理编码。
该映射可以被用于从其编码中获取有理数。给定一些x∈Z/NZ,使得x=ab-1mod N可以被找到。首先,对于某些整数以下等式成立:
并且注意因此,对于的两个近似得出:
这意味着是一个矛盾。因此,针对的近似对于是唯一的。
因此,对于任何实数z,对于z的近似的误差可以通过|bz-c|来测量。在这种情况下,是分母为N的有理数,而是其分母的有理数。随着b的上限增大,最小的可能误差减小。然后,由于
如果是的最佳有理近似,其中则导出的|a|极小,因此,如果导出的a的模数受限制,则是期望的有理数。为了从中恢复a、b,找到的有理近似就足够了,其分母受限制并且具有最小的误差,即所谓的“第二类最佳近似”。
对于任何实数z∈[0,1),z的连续分数可以定义为:
cf(0)=[0],
其他情况。
对于有理数,连续分数是有限的,可以按多对数时间计算。其连续分数为cf(z)的前缀的任何有理数都是z的收敛。对z的第二类最佳近似的集合是基于经典定理的z的收敛。
因此,必须收敛于的连续分数扩展。因此,为了从x、N中恢复a、b,计算的连续分数扩展的收敛,以找到b最大的收敛使得并且设a=bx-cN。
在示例中,学习算法可以被用于解决加密数据上的各种监督学习任务。例如,数据可以如上所述被加密。在示例中,监督学习算法的目标是最小化预期风险,例如,最小化对从固定分布D采样的随机测试点x∈Rd进行不正确预测的可能性。即,
其中x是随机采样的输入数据点,y是x的预期输出,并且(x,y)~D。f(x;w)是x的学习算法的预期输出,并且f是参数函数,其中w是通常学习的参数。l:R→R测量损失/风险而不是y来预测f(x;w)。损失函数通常随着f(x;w)接近y而减小。
不幸的是,实际上,对D的直接访问不可用。而是,对来自D的n个训练点(xi,yi),1≤i≤n的访问可用,这些训练点被假定为独立且分布均匀地(i.i.d.)被采样。因此,不是最小化上述给定的真实风险,而是训练数据的经验风险被最小化。即,监督学习问题可以被重新转换为以下优化问题:
通常,还会添加一个L2正则项(||w||2),以避免w对训练数据过度拟合。然而,为了便于阐述,考虑了上面给出的未正则化的目标函数,并且所公开的算法也可以被扩展为处理L2正则化。
对以上问题的进一步限制可以被考虑,其中f(xi;w)是线性函数例如f(xi;w)=xi·w,并且l是平滑凸损失函数。然后损失函数可以被重写为:
即使有这些限制,这类问题仍然很多,并且涵盖了大部分重要的机器学习问题,如最小二乘法、逻辑回归等。如上所述,所公开的算法也可以被扩展为处理L2正则化问题。还描述了将L2正则化替换为L1正则化以提升w稀疏度的高维学习问题的算法。
仅使用数据(xi,yi),1≤i≤n的加密版本,上述问题可以作为机器学习过程的一部分被解决。所公开的算法被设计为解决以下两个与加密相关的挑战:1)确保在客户端处理的数据量较少,以及2)确保由于加密方案的多精度性质而导致的各种模型参数的断续舍入不会显著影响算法的效力。
如前所述,加密方案同时对算术电路的k个实例进行求值。在介绍算法时,此事实未在标记中示出。以下算法中的标量u是大小为k的向量,它由k个不同的数字组成,每个电路一个。类似地,在各种实现中,d维向量w将是k×d维向量。同样,如前所述,用于表示EncA(u),其中A是解密密钥。这些标记也扩展到所有矩阵。
如果上下文中没有运算符,则用于表示加密数字的加法或乘积的符号+A、被丢弃,转而使符号+、超载。
在实际的部署场景中,算法可能包含两组操作:在客户端侧执行的操作和在服务器侧执行的操作。在此,以服务器例程的形式表示操作,并在客户端上执行中间步骤。这些中间步骤在算法中使用*代替行号而被突出显示。
在所有算法中,数据(X,y)=([x1,...,xn]T,[y1,...,yn])是d维的,具有n个点,即X=[x1,...,xn]T∈Rn×d,并且y∈Rd。所学习的线性模型参数由w∈Rd表示。
线性回归
标准线性回归问题的目标是找到最拟合给定数据点的线性超平面w,例如目标是找到yi≈xi·w。通常,通过最小化平方误差来获得这样的w,例如:
上述问题的最佳解决方案由下式给出:w*=(XTX)-1(XTy)。然而,计算XTX的逆可能非常昂贵且不稳定;该方法的时间复杂度为O(d2n+d3)。在示例中,当算法在d中为线性,甚至在n中为亚线性时,可以有效地处理大型数据集。如下所述,可以对加密数据使用梯度下降(GD)和随机梯度下降(SGD)以获得这些结果。
梯度下降。标准梯度下降方法是一种迭代方法,其使当前迭代沿梯度的负方向移动,以获得下一个迭代。当前迭代的移动量由步长或学习速率γ决定。即,为了优化L(w):Rd→R,可以使用以下梯度下降更新:
其中是L(w)的梯度,并且γ是可以被保持为常数或者适应性地减少的步长。直观地,这样的更新以更小的梯度(例如,)朝向迭代移动,该更小的梯度意味着梯度下降更新朝向局部最小值或鞍点移动。在最小二乘法问题的情况下,目标函数是凸的,因此鞍点不存在,并且所有局部最小值都是全局最小值。在这种情况下,更新由下式给出:
其中γ被适当选择;通常其中L是XTX矩阵的最大特征值。乘法和加法运算符是上面描述的对加密数据起作用的和+A运算符。
以上公式可以被扩展为下式:
EncA(w(t+1))=EncA(w(t)-γXT(Xw(t)-y))。
因此,基于数据矩阵X中的每个条目是整数,每个更新都乘以比1小得多的数字γ。因此,将由一个分子和分母随t增加的有理数给出。经过少量迭代之后,的分子或分母可能在的允许范围之外。
如果分子或分母不在该范围内,则可以使用与客户端的通信对进行舍入,使得该值可以被表示为分子和分母较小的有理数。在示例中,服务器系统可以向客户端系统发送一些或全部客户端系统然后可以解密数据,将数据舍入以包括具有小分子和分母的有理数,对舍入的数据进行加密,并且将加密的数据发送到服务器系统。整个过程可以经由以下伪代码完成,客户端系统能够完成以下*所示的步骤:
1:输入:起始点
步长γ,每周期的迭代数l,收敛容差∈,精度p
2:ρ←true;t←1
3:while ρ do
4:更新
5:if(i%l=)then
*:
*://精度减少步骤
*:
6:end if
7:
8:t←t+1
9:end while
10:Return:
在给定X,y,γ和N的情况下,可以预先计算l,这是在可能需要完成任何舍入操作之前的迭代次数。使用l,也可以估计客户端系统和服务器系统之间的通信量。在示例中,l可以被计算为:
其中p是加密方案中所使用的素数的大小,并且数字被表示为使用b位的整数。因此,与客户端系统的通信以及客户端系统的计算成本与d呈线性比例关系,并且不取决于点数n。这确保了舍入操作和与客户端系统的通信不会淹没客户端系统。
随机梯度下降。在处理大型数据集时,使用标准梯度下降可能会被禁止,因为它同时处理整个数据集。代替同时使用所有点进行更新,可以一次只更新一个点。这大大减少了每次更新所需的计算量。而且,从经验上已经观察到,称为随机梯度下降的该方法比标准梯度下降收敛快得多。
对于随机梯度下降,损失函数可以为l(w(t))=∑jlj(w(t)),其中lj是单点(xj,yj)处的损失函数。然后,对于从{1,...,n}中选择的均匀随机数j,随机梯度下降的更新被给出如下:
w(t+1)=w(t)-θγlj(w(t))。
在使用最小二乘法的示例中,lj(w)=(w·xj-yj)2和加密数据的更新的形式为:
其中步长γ被适当地设置;该值可以被设置为该步长可以被用于梯度下降中,其比随机梯度下降中使用的步长小n倍。因此,随机梯度下降中步长的合理表示要小log2n位。
如上所述,有理表示的分子和分母随每次更新而增加。注意到X和y可以由整数组成,则分母的增加仅取决于步长的分母的大小。较大的步长将具有较小的分母,因此的分母将相对缓慢地增长。因此,在从客户端系统请求舍入之前,可以在服务器系统上执行更多的更新步骤。
值l可以被预先计算以估计客户端侧通信和计算复杂度。在示例中,参数l可以被计算为其中l是在请求客户端系统舍入之前在服务器上执行的最大迭代次数。通信和客户端侧的计算复杂度由给出,其中k是XTX的条件数。将其与梯度下降的复杂度比较,在使用随机梯度下降时,在客户端侧通信和计算复杂度方面节省了log2n倍。
在示例中,用于随机梯度下降的算法由以下给出:
1:输入:起始点
步长γ,每周期的迭代数l,收敛容差∈,精度p
2:ρ←true;tρ←1
3:while ρdo
4:i←R[1,...,n]//选择一个随机索引
4:更新
5:if(i%l=0)then
*:
*://精度减少步骤
*:
6:end if
7:
8:t←t+1
9:end while
10:Return:
在示例中,梯度下降更新可以被应用于一般的损失函数l。对于典型的损失函数(诸如逻辑回归),梯度函数可能需要处理比加法/乘法更多的算术操作。例如,在逻辑回归的情况下,梯度函数包含类型为的项,仅通过加法和乘法操作不能计算出这些项。
可以使用泰勒级数展开来近似上述梯度函数。然而,由于的分子和分母将呈指数增加,因此即使是二次近似也会显著增加通信,这会增加与客户端系统的通信量。在示例中,一系列加权最小二乘法优化问题可以被使用。可以使用上述随机梯度下降方法解决这些问题中的每一个。减少基于使用牛顿更新,其导致当迭代次数减少到时,迭代次数显著降低,其中∈是期望的精度,并且牛顿更新可以被重组为加权最小二乘法问题。这些观察结果导致了迭代加权的最小二乘法(IRLS)算法,其中算法的每个“外部”步骤使用加权的最小二乘法公式计算牛顿更新:其中αi=l″(xi·w(t);yi)以及注意,外部步骤的数目可能很少。使用该加权的最小二乘法公式,服务器系统可以将与客户端系统进行通信。然后可以由客户端侧对权重和其他参数进行求值。因此,每轮客户端通信的成本可以是O(n)。可以通过在“内部”步骤中使用一系列随机梯度下降来在服务器侧求解外部步骤的更新(例如,加权的最小二乘法问题)。如上所述,随机梯度下降步骤直接对加密数据起作用,并且在客户端系统可以进行舍入之前的迭代次数由l给出。以下是示例IRLS梯度下降算法。
1:输入:起始点
步长γ,每周期的迭代数l,点数n,收敛容差∈,精度p
2:ρ←true;t←1
3:while ρ do
4://外部循环
5:从所有元组的集合中采样b个元组并将它们堆叠以形成矩阵和向量
*:计算
*:计算
*:对于(xi,yi)∈(X(t),y(t)),计算权重
*:
7:
8:
*:
*:ρ←ρ>∈
9:t←t+1
10:end while
11:Return:
在示例中,上述通用技术可以被应用于逻辑回归问题。逻辑回归是用于分类问题的一种流行方法,并且是l(xi·w,yi)的一种特殊情况,其由下式给出:
l(xi·w,yi)=-yilog(ai)-(1-yi)log(1-ai),
其中梯度下降或随机梯度下降可以直接被应用于上述损失函数。下面提供了此应用的算法。随着目标函数的海森矩阵(Hessian)随w变化,在每次迭代中还需要选择步长。在示例中,可以使用用于步长确定的标准Armijo规则。在示例中,为了减少客户端和服务器系统之间的通信量,可以使用损失函数的二阶泰勒级数近似。符号lt用于表示逻辑回归的对数损失函数l的二阶泰勒级数近似。二阶泰勒级数近似可以由下式给出:其中θj=yi(xj·w)。Armijo规则以足够大的步长开始,并检查梯度下降步骤是否导致损失函数减小,该损失函数可以通过其二阶泰勒级数来近似。如果减小,则选择该步长,否则减小步长,并再次检查损失函数。
1:输入:起始点:步长γ,精度p。
2:γ←1,K←10-4,δ←0.5
3:ρ←true;t←1
4:while ρ do
5:
*:
*://计算每个点处的对数损失的导数
6:
7://使用Armijo规格的步长计算
8:while true do
9:
10:
*:
11:if r<0then
12:break//目标函数值减小
13:end if
14:γ←δγ
15:end while
16:
*:
17:t←t+1
18:end while
19:Return:
在示例中,一些应用可能需要从高维数据点学习,其中特征向量d的维数可能远远超过可用数据点n的数目。文本处理和生物信息学是可能适用的两个示例领域。找到一个稀疏的w表示仅依赖少量特征的预测函数,这是处理这些领域的一种方法。
例如,稀疏域的两种方法包括:使用L1正则化来提升w中的稀疏性或对w中的非零数使用显式约束。两种方法都可以使用如上所述的加密数据来实现。
L1正则化方法可以优化以下问题:
其中λ>0是正则化参数,以及||w||1=∑j|wj|。由于L1范式不是可微函数,因此不能直接使用梯度下降和随机梯度下降。而是,可以使用迭代重加权方案来最小化上述损失函数。
像上面的IRLS算法一样,L1正则化问题可以被简化为一系列加权L2正则化最小二乘法问题。即,在“外部”循环中,可以求解以下优化问题:
其中是与第j个特征相对应的权重。在t迭代中,
每次“外部”迭代都针对加密数据求解上述加权最小二乘法问题,针对其可以使用梯度下降方法的变型。这种算法的伪代码为:
1:输入:起始点
步长γ,正则化参数λ,每周期的迭代数l,收敛容差∈,精度p
2:ρ←true;t←1
3:while ρdo
*://计算权重
4:
5:while ρ′do
6:更新7:ifτ%l=0 then
*:
*:
*
8:end if
9:
*:
10:τ←τ+1
11:end while
12:
13:
*:
14:t←t+1
15:end while
16:Return:
在示例中,考虑用于高维学习问题的另一种方法,该方法是优化问题中的硬非凸稀疏约束。对于这种方法,可以使用加密数据的硬阈值。可以执行梯度下降步骤,选择一些权重最高的特征,然后基于这些有限特征搜索解决方案。迭代地执行该过程,同时将迭代结束的结果提供给下一个迭代的开始。
在此示例中,仅需要与客户端的通信来确定权重最高的特征。这些特征不需要从客户端被重新加密。对于矩阵X,PS(X)表示查看集合S中的列时获得的矩阵。硬阈值操作可以被定义为HTk(w(t)),该操作将返回向量W(t)中的前k个绝对值的索引。对于该示例,客户端系统的计算和通信成本在特征向量xi的维数d中是线性的。此方法的伪代码如下:
1:输入:起始点
步长γ,稀疏水平k,每周期的迭代数l,收敛容差∈,精度p
2:ρ←true;t←1
3:whileρdo
4:更新
*:
*:的前k个特征
5:
6:
7:whileρ′do
8:更新
9:ifi%1=0then
*
*
*
10:end if
11:
*:
12:end while
13://更新前k维度,并将其他维度设置为0
14:
*:
15:t←t+1
16:end while
17:Return:
图3是根据各个示例的在服务器系统处处理加密数据的流程图。在此示例中,服务器系统304能够对从客户端系统302接收到的加密数据运行机器学习算法。服务器系统304仅使用加密数据来训练模型,并且从不需要解密客户端的数据。为了保护其数据,在310,客户端系统302可以创建各种密钥。在示例中,由客户端系统302创建加密密钥、解密密钥和计算密钥。在312,客户端系统302使用加密密钥来加密其数据。加密的数据可以是用于训练模型的数据集。数据集可以被分为训练示例和验证示例。在314,加密数据被发送到服务器系统304。在316,服务器系统可以使用上述加密的数据训练模型,或者使用上述各种模型中的任何模型训练加密数据的子集。在318,在已经发生确定次数的训练迭代之后,服务器系统304向客户端系统302提供中间模型。中间模型使用加密密钥加密。在320,客户端系统302可以解密模型。在322,客户端系统322可以在中间模型内舍入一个或多个权重。在324,更新后的模型用加密密钥来加密。在326,加密的更新的模型被发送到服务器系统304以用于进一步处理。在328,服务器系统304继续基于所接收的加密数据来训练模型。更新后的模型具有能够在所述加密方案中被表达和处理的权重。最终,达到指定的迭代次数或模型的精度。在这一点上,该模型被认为是最终模型。在330,加密的最终模型可以被发送回客户端系统302。客户端系统302可以解密最终模型并使用该模型来处理数据。在示例中,客户端系统302可以向服务器系统304提供附加的加密数据。服务器系统304可以将该附加数据输入到模型中,并向客户端系统302提供结果。在该示例中,附加数据、模型和结果始终在服务器系统304处被加密。
图4是可以与本文描述的技术结合使用的示例计算设备。在备选实施例中,计算设备400可以作为独立设备操作,或者可以被连接(例如,联网)到其他计算设备。在联网部署中,计算设备400可以在服务器-客户端网络环境中以服务器通信设备、客户端通信设备或两者的能力进行操作。在示例中,计算设备400可以在对等(P2P)(或其他分布式)网络环境中充当对等计算设备。计算设备400可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、移动电话、智能电话、web设备、网络路由器、交换机、或桥接器、或者任何能够执行指令(顺序或其他方式)的计算设备,这些指令指定了将由该计算设备采取的动作。此外,虽然仅图示了单个计算设备,但是术语“计算设备”也应被认为包括单独地或联合地执行一组(或多组)指令以执行任何一个或多个本文讨论的方法的计算设备的任何集合,诸如云计算、软件即服务(SaaS)、其他计算机集群配置。
计算设备400可以包括硬件处理器402(例如,中央处理单元(CPU)、图形处理单元(GPU)、硬件处理器核或其任何组合)、主存储器404和静态存储器406,其一些或全部可以经由互连链路(例如,总线)408彼此通信。计算设备400还可以包括显示单元410、输入设备412(例如,键盘)和用户界面(UI)导航设备414(例如,鼠标)。在示例中,显示单元410、输入设备412和UI导航设备414可以是触摸屏显示器。在示例中,输入设备412可以包括触摸屏、麦克风、相机(例如,全景或高分辨率相机)、物理键盘、轨迹球或其他输入设备。
计算设备400可以附加地包括存储设备(例如,驱动器单元)416、信号生成设备418(例如,扬声器、投影设备或任何其他类型的信息输出设备)、网络接口设备420和一个或多个传感器421,诸如全球定位系统(GPS)传感器、罗盘、加速计、运动检测器或另一传感器。计算设备400可以包括输入/输出控制器428,诸如串行连接(例如,通用串行总线(USB))、并行连接或其他有线或无线(例如,红外(IR)、近场通信(NFC)等)连接,用以经由一个或多个输入/输出端口进行通信或控制一个或多个外围设备(例如打印机、读卡器等)。
存储设备416可以包括计算可读(或机器可读)存储介质422,其上存储有一组或多组数据结构或指令424(例如,软件),其体现本文描述的任何一种或多种技术或功能或被其利用。在示例中,软件的至少一部分可以包括操作系统和/或实现本文所述功能性中的一个或多个功能性的一个或多个应用(或app)。在由计算设备400执行指令424的过程中,指令424也可以全部或至少部分地驻留在主存储器404内、静态存储器406内、和/或硬件处理器402内。在示例中,硬件处理器402、主存储器404、静态存储器406或存储设备416中的一个或者任何组合可以构成计算设备(或机器)可读介质。
虽然计算机可读存储介质422被图示为单个介质,但是“计算机可读存储介质”或“机器可读存储介质”可以包括单个介质或多个介质(例如,集中式或分布式数据库、和/或相关联的缓存和服务器),其被配置为存储一个或多个指令424。
在示例中,计算机可读存储介质或机器可读存储介质可以包括任何介质,该介质能够存储、编码或承载用于由计算设备400执行的、并且使得计算设备400执行本公开的任何一种或多种技术,或者该介质能够存储、编码或承载由此类指令使用或与之相关联的数据结构。非限制性计算机可读存储介质示例可以包括固态存储器以及光学和磁性介质。计算机可读存储介质的特定示例可以包括:非易失性存储器,诸如半导体存储器设备(例如,电可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM))和闪存设备;磁盘,诸如内部硬盘和可移除磁盘;磁光盘;随机存取存储器(RAM);和光学媒体磁盘。该计算机可读存储介质是非瞬态的,因为该存储介质不包括瞬态传播信号。
指令424还可以利用多种传输协议(例如,帧中继、互联网协议(IP)、传输控制协议(TCP)、用户数据报协议(UDP)、超文本传输协议(HTTP)等)中的任一种传输协议经由网络接口设备420使用传输介质在通信网络426上被传送或接收。示例通信网络可以包括局域网(LAN)、广域网(WAN)、分组数据网络(例如,互联网)、移动电话网络(例如,蜂窝网络)、普通老式电话(POTS)网络、和无线数据网络(例如,称为的电气和电子工程师协会(IEEE)802.8系列标准,称为的IEEE 802.16系列标准、IEEE 802.15.4系列标准、长期演进(LTE)系列标准、通用移动电信系统(UMTS)系列标准、对等(P2P)网络等。网络接口设备420可以使用传输协议来使用瞬态传播信号来传送数据。
在示例中,网络接口设备420可以包括一个或多个物理插孔(例如,以太网、同轴或电话插孔)或一个或多个天线以连接到通信网络426。在示例中,网络接口设备420可以包括一个或多个无线调制解调器,诸如蓝牙调制解调器、Wi-Fi调制解调器或在本文所述的任何通信标准下操作的一个或多个调制解调器或收发器。在示例中,网络接口设备420可以包括多个天线,以使用单输入多输出(SIMO)、多输入多输出(MIMO)或多输入单输出(MISO)技术中的至少一个技术进行无线通信。在一些示例中,网络接口设备420可以使用多用户MIMO技术进行无线通信。在示例中,传输介质可以包括任何无形介质,该无形介质能够存储、编码或承载用于由计算设备400执行的指令,并且包括数字或模拟通信信号或类似的通信介质以促进这种软件的通信。
用于实现所公开的技术的任何计算机可执行指令以及在所公开的实施例的实现期间创建和使用的任何数据都可以被存储在一个或多个计算机可读存储介质上。计算机可执行指令可以是例如专用软件应用、或经由web浏览器访问或下载的软件应用、或其他软件应用(诸如远程计算应用)的一部分。这样的软件可以在例如单个本地计算机(例如,任何合适的市售计算机)上或在使用一台或多台网络计算机的网络环境中(例如,经由互联网、广域网、局域网、客户端-服务器网络(诸如云计算网络)或其他此类网络)被执行。
上面的描述旨在是说明性的,而不是限制性的。例如,上述示例(或其一个或多个方面)可以与其他示例结合使用。在回顾以上描述之后,其他实施例可以诸如由本领域的普通技术人员使用。此外,以下权利要求据此被结合到详细描述中,其中权利要求本身作为单独的实施例。这里公开的实施例的范围将参考所附的权利要求书以及这些权利要求书所赋予的等同物的全部范围来确定。
Claims (19)
1.一种用于数据加密的方法,所述方法包括:
从远程系统接收加密数据,所述加密数据用加密密钥加密;
确定大于1的迭代次数,以在使用梯度下降来训练初始模型时对所述加密数据进行迭代;
按所述迭代次数对所述初始模型进行迭代,以创建中间模型,每次迭代更新所述初始模型的参数以生成所述中间模型的参数,所述初始模型的所述参数和所述中间模型的所述参数用所述加密密钥加密;
仅在对所述初始模型进行迭代了所述迭代次数后,才将所述中间模型的所述参数提供给所述远程系统;
从所述远程系统接收更新的中间模型参数;
对更新的模型进行迭代直到预定精度被达到为止,以创建最终模型,所述更新的模型基于所述更新的中间模型参数而被形成;以及
将所述最终模型的参数提供给所述远程系统,所述最终模型的所述参数用所述加密密钥加密。
2.根据权利要求1所述的方法,还包括:接收计算密钥,所述计算密钥被用来更新所述初始模型。
3.根据权利要求1所述的方法,还包括:
接收用所述加密密钥加密的数字向量;
将所述数字向量输入到所述最终模型,以创建结果;以及
将所述结果发送到所述远程系统,所述结果用所述加密密钥加密。
4.根据权利要求1所述的方法,所述加密密钥对所述远程系统是私有的。
5.根据权利要求1所述的方法,所述初始模型包括有理数向量。
6.根据权利要求5所述的方法,所述更新的模型包括所述中间模型,所述中间模型具有舍入的所述有理数向量。
7.根据权利要求5所述的方法,还包括:
接收具有所述向量的一组最高权重特征;以及
仅对所述一组最高权重特征进行迭代。
8.根据权利要求1所述的方法,其中所述梯度下降包括随机梯度下降。
9.一种用于数据加密的系统,所述系统包括:
处理单元,所述处理单元被配置为执行操作,所述操作包括:
从远程系统接收加密数据,所述加密数据用加密密钥加密;
确定大于1的迭代次数,以在使用梯度下降来训练初始模型时对所述加密数据进行迭代;
按所述迭代次数对所述初始模型进行迭代,以创建中间模型,每次迭代更新所述初始模型的参数以生成所述中间模型的参数,所述初始模型的所述参数和所述中间模型的所述参数用所述加密密钥加密;
仅在对所述初始模型进行迭代了所述迭代次数后,才将所述中间模型的所述参数提供给所述远程系统;
从所述远程系统接收更新的中间模型参数;
对更新的模型进行迭代直到预定精度被达到为止,以创建最终模型,所述更新的模型基于所述更新的中间模型参数而被形成;以及
将所述最终模型的参数提供给所述远程系统,所述最终模型的所述参数用所述加密密钥加密。
10.根据权利要求9所述的系统,还包括:接收计算密钥,所述计算密钥被用来更新所述初始模型。
11.根据权利要求9所述的系统,所述操作还包括:
接收用所述加密密钥加密的数字向量;
将所述数字向量输入到所述最终模型,以创建结果;以及
将所述结果发送到所述远程系统,所述结果用所述加密密钥加密。
12.根据权利要求9所述的系统,所述加密密钥对所述远程系统是私有的。
13.根据权利要求9所述的系统,所述初始模型包括有理数向量。
14.根据权利要求13所述的系统,所述更新的模型包括所述中间模型,所述中间模型具有舍入的所述有理数向量。
15.根据权利要求13所述的系统,所述操作包括:
接收具有所述向量的一组最高权重特征;以及
仅对所述一组最高权重特征进行迭代。
16.一种存储计算机可执行指令的非瞬态计算机可读存储介质,所述计算机可执行指令用于数据加密,所存储的所述指令包括:
用以从远程系统接收加密数据的指令,所述加密数据用加密密钥加密;
用以确定大于1的迭代次数以在使用梯度下降来训练初始模型时对所述加密数据进行迭代的指令;
用以按所述迭代次数对所述初始模型进行迭代以创建中间模型的指令,每次迭代更新所述初始模型的参数以生成所述中间模型的参数,所述初始模型的所述参数和所述中间模型的所述参数用所述加密密钥加密;
用以仅在对所述初始模型进行迭代了所述迭代次数后才将所述中间模型的所述参数提供给所述远程系统的指令;
用以从所述远程系统接收更新的中间模型参数的指令;
用以对更新的模型进行迭代直到预定精度被达到为止以创建最终模型的指令,所述更新的模型基于所述更新的中间模型参数而被形成;以及
用以将所述最终模型的参数提供给所述远程系统的指令,所述最终模型的所述参数用所述加密密钥加密。
17.根据权利要求16所述的非瞬态计算机可读存储介质,还包括:用以接收计算密钥的指令,所述计算密钥被用来更新所述初始模型。
18.根据权利要求16所述的非瞬态计算机可读存储介质,所述指令还包括:
用以接收用所述加密密钥加密的数字向量的指令;
用以将所述数字向量输入到所述最终模型以创建结果的指令;以及
用以将所述结果发送到所述远程系统的指令,所述结果用所述加密密钥加密。
19.根据权利要求16所述的非瞬态计算机可读存储介质,所述加密密钥对所述远程系统是私有的。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/620,090 US10491373B2 (en) | 2017-06-12 | 2017-06-12 | Homomorphic data analysis |
US15/620,090 | 2017-06-12 | ||
PCT/US2018/034019 WO2018231445A1 (en) | 2017-06-12 | 2018-05-23 | Homomorphic data analysis |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110753926A CN110753926A (zh) | 2020-02-04 |
CN110753926B true CN110753926B (zh) | 2023-07-21 |
Family
ID=62621018
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880038741.5A Active CN110753926B (zh) | 2017-06-12 | 2018-05-23 | 用于数据加密的方法、系统和计算机可读存储介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10491373B2 (zh) |
EP (1) | EP3639180A1 (zh) |
CN (1) | CN110753926B (zh) |
WO (1) | WO2018231445A1 (zh) |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10728017B2 (en) | 2017-11-03 | 2020-07-28 | International Business Machines Corporation | Performing vector comparison operations in fully homomorphic encryption |
US11138333B2 (en) | 2018-03-07 | 2021-10-05 | Private Identity Llc | Systems and methods for privacy-enabled biometric processing |
US11489866B2 (en) | 2018-03-07 | 2022-11-01 | Private Identity Llc | Systems and methods for private authentication with helper networks |
US11789699B2 (en) | 2018-03-07 | 2023-10-17 | Private Identity Llc | Systems and methods for private authentication with helper networks |
US11394552B2 (en) | 2018-03-07 | 2022-07-19 | Private Identity Llc | Systems and methods for privacy-enabled biometric processing |
US10721070B2 (en) | 2018-03-07 | 2020-07-21 | Private Identity Llc | Systems and methods for privacy-enabled biometric processing |
US11502841B2 (en) | 2018-03-07 | 2022-11-15 | Private Identity Llc | Systems and methods for privacy-enabled biometric processing |
US11392802B2 (en) * | 2018-03-07 | 2022-07-19 | Private Identity Llc | Systems and methods for privacy-enabled biometric processing |
US11265168B2 (en) | 2018-03-07 | 2022-03-01 | Private Identity Llc | Systems and methods for privacy-enabled biometric processing |
US11170084B2 (en) | 2018-06-28 | 2021-11-09 | Private Identity Llc | Biometric authentication |
US11210375B2 (en) * | 2018-03-07 | 2021-12-28 | Private Identity Llc | Systems and methods for biometric processing with liveness |
US10938852B1 (en) | 2020-08-14 | 2021-03-02 | Private Identity Llc | Systems and methods for private authentication with helper networks |
JP6917942B2 (ja) * | 2018-04-11 | 2021-08-11 | 株式会社日立製作所 | データ分析サーバ、データ分析システム、及びデータ分析方法 |
US11032061B2 (en) * | 2018-04-27 | 2021-06-08 | Microsoft Technology Licensing, Llc | Enabling constant plaintext space in bootstrapping in fully homomorphic encryption |
US20190332814A1 (en) * | 2018-04-27 | 2019-10-31 | Nxp B.V. | High-throughput privacy-friendly hardware assisted machine learning on edge nodes |
US10963587B1 (en) * | 2018-06-13 | 2021-03-30 | Workday, Inc. | User action collection for sensitive customer data |
US11087223B2 (en) * | 2018-07-11 | 2021-08-10 | International Business Machines Corporation | Learning and inferring insights from encrypted data |
US11177935B2 (en) * | 2018-08-31 | 2021-11-16 | Microsoft Technology Licensing, Llc | Homomorphic evaluation of tensor programs |
CN112805769B (zh) * | 2018-10-04 | 2023-11-07 | 日本电信电话株式会社 | 秘密s型函数计算系统、装置、方法及记录介质 |
FR3087066B1 (fr) * | 2018-10-05 | 2022-01-14 | Commissariat Energie Atomique | Methode de transchiffrement a faible latence de calcul |
EP3671281A1 (en) * | 2018-12-21 | 2020-06-24 | European Space Agency | Method and system for processing a gnss signal using homomorphic encryption |
US11764940B2 (en) | 2019-01-10 | 2023-09-19 | Duality Technologies, Inc. | Secure search of secret data in a semi-trusted environment using homomorphic encryption |
CN110032893B (zh) * | 2019-03-12 | 2021-09-28 | 创新先进技术有限公司 | 基于秘密分享的安全模型预测方法和装置 |
FR3095537B1 (fr) * | 2019-04-23 | 2021-05-21 | Commissariat Energie Atomique | Méthode et système de classification confidentielle de données |
US20200366459A1 (en) * | 2019-05-17 | 2020-11-19 | International Business Machines Corporation | Searching Over Encrypted Model and Encrypted Data Using Secure Single-and Multi-Party Learning Based on Encrypted Data |
US11381381B2 (en) * | 2019-05-31 | 2022-07-05 | Intuit Inc. | Privacy preserving oracle |
US20210150266A1 (en) * | 2019-11-15 | 2021-05-20 | International Business Machines Corporation | Enabling boosting protocols on encrypted data |
US12099997B1 (en) | 2020-01-31 | 2024-09-24 | Steven Mark Hoffberg | Tokenized fungible liabilities |
KR20210130044A (ko) * | 2020-04-21 | 2021-10-29 | 삼성에스디에스 주식회사 | 데이터 분석 장치 및 방법 |
US11764941B2 (en) * | 2020-04-30 | 2023-09-19 | International Business Machines Corporation | Decision tree-based inference on homomorphically-encrypted data without bootstrapping |
KR20220040309A (ko) | 2020-09-23 | 2022-03-30 | 삼성전자주식회사 | 동형 암호화 장치 및 그 동작 방법 |
US20220271914A1 (en) * | 2021-02-24 | 2022-08-25 | Govermment of the United of America as represented by the Secretary of the Navy | System and Method for Providing a Secure, Collaborative, and Distributed Computing Environment as well as a Repository for Secure Data Storage and Sharing |
US12021967B2 (en) * | 2021-07-14 | 2024-06-25 | Siemens Healthineers Ag | Privacy preserving artificial intelligence based clinical decision support |
JP7551577B2 (ja) | 2021-08-18 | 2024-09-17 | 株式会社東芝 | 学習装置、方法及びプログラム |
WO2023069072A1 (en) * | 2021-10-19 | 2023-04-27 | Google Llc | Multi-key information retrieval |
US12039079B2 (en) | 2022-04-08 | 2024-07-16 | Bank Of America Corporation | System and method to secure data pipelines using asymmetric encryption |
US11550961B1 (en) * | 2022-04-27 | 2023-01-10 | Intuit Inc. | Integrity protection for homomorphic computations |
CN115766190B (zh) * | 2022-11-10 | 2023-07-21 | 北京海泰方圆科技股份有限公司 | 一种任意集合元素加密方法、解密方法及电子设备 |
CN115622800A (zh) * | 2022-11-30 | 2023-01-17 | 山东区块链研究院 | 基于中国剩余表示的联邦学习同态加密系统及方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101374043A (zh) * | 2007-08-24 | 2009-02-25 | 管海明 | 密钥协商的方法、加/解密的方法及签名/验证的方法 |
CN103259643A (zh) * | 2012-08-14 | 2013-08-21 | 苏州大学 | 一种矩阵全同态加密方法 |
CN103460195A (zh) * | 2011-02-11 | 2013-12-18 | 西门子医疗保健诊断公司 | 用于安全软件更新的系统和方法 |
CN105630739A (zh) * | 2014-10-31 | 2016-06-01 | 富士通株式会社 | 用于执行随机梯度下降的装置和方法 |
CN106160995A (zh) * | 2015-04-21 | 2016-11-23 | 郑珂威 | 基于系数映射变换的多项式完全同态加密方法及系统 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6118850A (en) * | 1997-02-28 | 2000-09-12 | Rutgers, The State University | Analysis methods for energy dispersive X-ray diffraction patterns |
US8862895B2 (en) | 2010-04-27 | 2014-10-14 | Fuji Xerox Co., Ltd. | Systems and methods for communication, storage, retrieval, and computation of simple statistics and logical operations on encrypted data |
US8897449B1 (en) * | 2011-09-12 | 2014-11-25 | Quantum Valley Investment Fund LP | Quantum computing on encrypted data |
US9306738B2 (en) * | 2012-12-21 | 2016-04-05 | Microsoft Technology Licensing, Llc | Managed secure computations on encrypted data |
JP2016509268A (ja) * | 2013-03-04 | 2016-03-24 | トムソン ライセンシングThomson Licensing | プライバシーを保護する計数の方法およびシステム |
US20170039487A1 (en) | 2014-04-11 | 2017-02-09 | Hitachi, Ltd. | Support vector machine learning system and support vector machine learning method |
US10320752B2 (en) * | 2014-10-24 | 2019-06-11 | National Ict Australia Limited | Gradients over distributed datasets |
EP3218800B1 (en) * | 2014-11-12 | 2023-06-07 | David CEREZO SANCHEZ | Secure multiparty computation on spreadsheets |
US10075289B2 (en) * | 2015-11-05 | 2018-09-11 | Microsoft Technology Licensing, Llc | Homomorphic encryption with optimized parameter selection |
US20170293913A1 (en) * | 2016-04-12 | 2017-10-12 | The Governing Council Of The University Of Toronto | System and methods for validating and performing operations on homomorphically encrypted data |
CN106022360B (zh) | 2016-05-11 | 2019-02-01 | 蒋林智 | 一种统计学习中基于密文的数据二分类方法 |
GB201610883D0 (en) * | 2016-06-22 | 2016-08-03 | Microsoft Technology Licensing Llc | Privacy-preserving machine learning |
-
2017
- 2017-06-12 US US15/620,090 patent/US10491373B2/en active Active
-
2018
- 2018-05-23 CN CN201880038741.5A patent/CN110753926B/zh active Active
- 2018-05-23 EP EP18731645.0A patent/EP3639180A1/en not_active Withdrawn
- 2018-05-23 WO PCT/US2018/034019 patent/WO2018231445A1/en unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101374043A (zh) * | 2007-08-24 | 2009-02-25 | 管海明 | 密钥协商的方法、加/解密的方法及签名/验证的方法 |
CN103460195A (zh) * | 2011-02-11 | 2013-12-18 | 西门子医疗保健诊断公司 | 用于安全软件更新的系统和方法 |
CN103259643A (zh) * | 2012-08-14 | 2013-08-21 | 苏州大学 | 一种矩阵全同态加密方法 |
CN105630739A (zh) * | 2014-10-31 | 2016-06-01 | 富士通株式会社 | 用于执行随机梯度下降的装置和方法 |
CN106160995A (zh) * | 2015-04-21 | 2016-11-23 | 郑珂威 | 基于系数映射变换的多项式完全同态加密方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110753926A (zh) | 2020-02-04 |
US20180359078A1 (en) | 2018-12-13 |
WO2018231445A1 (en) | 2018-12-20 |
US10491373B2 (en) | 2019-11-26 |
EP3639180A1 (en) | 2020-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110753926B (zh) | 用于数据加密的方法、系统和计算机可读存储介质 | |
EP3639127B1 (en) | Homomorphic factorization encryption | |
US11301571B2 (en) | Neural-network training using secure data processing | |
US20160020898A1 (en) | Privacy-preserving ridge regression | |
CN105122721A (zh) | 针对加密数据的托管安全计算 | |
US11489659B2 (en) | Multiple data source secure data processing | |
KR102550812B1 (ko) | 동형 암호를 이용한 암호문 비교 방법 및 이를 수행하기 위한 장치 | |
WO2023163652A2 (en) | Privacy-preserving neural network model and privacy-preserving prediction using the privacy-preserving neural network model | |
CN117439731B (zh) | 基于同态加密的隐私保护大数据主成分分析方法及系统 | |
US20240144029A1 (en) | System for secure and efficient federated learning | |
JP2023179681A (ja) | 同型暗号文に対する非多項式演算を行う方法 | |
KR20230029388A (ko) | 동형 암호를 활용한 사적 변수의 보안 방법 및 장치 | |
JP2019121256A (ja) | 学習システム及び学習方法 | |
KR20220097330A (ko) | 프라이버시 보존 기계 학습 처리 시스템, 장치 및 방법 | |
Zhao et al. | PPCNN: An efficient privacy‐preserving CNN training and inference framework | |
US12001577B1 (en) | Encrypted machine learning models | |
Chiang | LFFR: Logistic Function For (single-output) Regression | |
Chiang | LFFR: Logistic Function For (multi-output) Regression | |
CN115913538A (zh) | 量子对称加密密钥的搜索方法、装置、设备及介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |