一种云外包解大规模线性方程组的方法技术

技术编号:12958676 阅读:90 留言:0更新日期:2016-03-03 02:06
本发明专利技术公开了一种云外包解大规模线性方程组的方法,这是一种基于初等变换矩阵的非交互的云外包计算方案。初等变换矩阵具有比较低的计算复杂度,每次初等变换矩阵的乘积都只消耗O(n)的时间复杂度。加密一个普通的n阶矩阵,只需要n个初等变换矩阵,即可加密矩阵中的每一个元素。解大规模线性方程组问题可以写为Φ:Ax=b,其中A是一个n×n的可逆矩阵,x,b是一个n×1的向量。在外包解大规模线性方程组的协议中,需要保护参数A,b与结果x的隐私。本发明专利技术利用初等变换矩阵对参数A,x,b进行加密处理,从而提高了降低了客户端处理问题的复杂度,设计出了客户端只需要O(n2)复杂度的协议,提高了计算效率。同时,本发明专利技术是一种非交互协议,客户端无需在问题求解阶段与服务器进行交互,只需要提交计算请求,即可获得外包计算结果。

【技术实现步骤摘要】
一种云外包解大规模线性方程组的方法
本专利技术属于云计算外包领域,更为具体地讲,涉及一种云外包解大规模线性方程组的方法。
技术介绍
云计算已经吸引了当前IT产业界大量学者的目光。云计算将大量的计算资源和存储资源连接在一起,能够给世界各地的人们提供计算和存储资源。一些计算能力不够的或者计算资源不足的客户端可以将自己的计算任务发送给计算能力充足的云服务器进行计算。云服务器完成计算任务之后,再将计算结果返回给客户端。客户端不再会因为计算能力或计算资源不够而不能处理复杂计算,而是通过一种外包的方式,利用几乎无限的计算资源。这种方式能够充分发挥世界上大部分闲置的CPU计算资源,能够更加有效地利用计算和存储资源,从而能够降低成本。由于计算外包的出现,一些大规模的生物学或者工程学上的难题能够得到很好地解决。然而,计算外包离大规模商业应用还有一段路要走,主要有着以下两点的考虑。1)客户端提交的计算任务中,经常包含着一些比较敏感的信息比如身份信息、商业机密等等。如何才能在使用计算外包的时候,保护使用者数据的机密性是在设计外包算法的时候不得不考虑的一件事情。2)云服务器可能会因为节省资源或者其他原因,不诚实地对计算任务进行计算。而如何在拿到云服务器返回的计算结果之后,验证该结果是否正确,服务器是否进行了欺骗,同样需要考虑到外包算法之中。在另一个方面,计算外包出现根本上解决的是客户端计算能力不足问题。因为计算外包协议的设计上还要考虑第三个问题,就是设计出来的计算外包协议中客户端的计算量要低于客户端不通过外包方式计算的计算量,而且服务端的计算量不能超过原始问题计算量太多。这促使了计算外包协议的设计必须考虑隐私保护、欺骗检测和计算节省三个方面。一般的计算外包协议是分为五个步骤:密钥生成,问题加密,问题求解,问题解密,结果验证。1)密钥生成:客户端生成一些必要的参数和私密值,用于问题的加密和解密,这些参数和私密值为密钥。2)问题加密:客户端输入原本未加密的问题和密钥,经过一系列转化,得到原问题的加密版本,这个加密版本是可以公开给云服务器,让云服务器解决。3)问题求解:服务器拿到客户端加密之后的问题,根据现在最优的该问题求解的算法,对该问题进行求解,然后将得到的结果返回给客户端。客户端不需要关心服务器的解决过程,只需要关心最后得到的结果。4)问题解密:服务器将结果返回给客户端之后,客户端会对加密后的问题进行解密,同时将结果解密,将得到的结果还原成原始问题的结果。5)结果验证:客户端在得到结果之后,要验证结果的正确性,才能保证整个算法的正确性,保证服务器的诚实可信。如果结果正确,则算法结束,客户端拿到了原问题的结果,而没有透露隐私信息给服务器。如果结果错误,则拒绝,证明了服务器欺诈。而要使用计算外包,算法一般要满足的特点是:数据量大,复杂度高。只有数据量大,复杂度高的算法,才有了云外包的必要性。一些数据量少,复杂度低,客户端自己都能解决的问题不是很需要计算外包。现阶段计算外包的研究重心一直在一些比较常用的算法中,比如求大规模矩阵的行列式,求大规模矩阵的逆矩阵,解大规模线性方程组(SystemsofLinearEquations,LE),解大规模线性规划等等。针对云外包解大规模线性方程组协议的设计,研究人员已经有了一些有价值的研讨。线性方程组问题可以写成Φ:Ax=b,其中A是一个n×n的可逆矩阵,x,b是一个n×1的向量。一般解大规模线性方程组的时间复杂度是O(n3)。KuiRen等人使用了同态加密函数以及迭代法,提出了一种比较高效的解大规模线性方程组的方法,将原问题加密成Φ':y(k+1)=T·y(k)+c,其中y是对结果x的加密,T,c分别是对参数A,b的加密。该方法使得客户端的工作量降低到了O(n2),其中问题求解阶段,每次迭代,客户端只需要O(n)的时间复杂度。然而,该方法有着一定的局限性,即服务器在解决任务的时候是需要和客户端交互的,无法为一些无法交互的客户端提供服务。并且该方法只适用于解线性方程组,而不能为其他算法提供帮助。
技术实现思路
本专利技术的目的在于克服现有技术的不足,提供一种云外包解大规模线性方程组的方法,该方法相比前人的算法,能够降低客户端的计算复杂度,提升算法的效率。同时,本
技术实现思路
是一种无交互算法,只需要用户提交请求,而不需要与服务器作其他交互即可得到想要的结果。为实现上述专利技术目的,本专利技术云外包解大规模线性方程组的方法,其包括以下步骤:(1)密钥生成KeyGen(n)→(SK):1)客户端根据矩阵的阶n,生成两个1,2,…,n的置换π1,π2。2)根据置换π1,π2,客户端随机选取2n个随机整数值r1,r2,…r2n,然后根据公式(1)和公式(2)得到2n个n×n初等变换矩阵Ak,Bk,1≤k≤n:3)令P1=A1A2…An,P1-1=An-1An-1-1…A1-1,P2=B1B2…Bn,P2-1=Bn-1Bn-1-1…B1-1。4)密钥为SK=P1,P2,π1,π2,r1,…,r2n,A,b。(2)问题加密LEEncrypt(Φ)→(Φ'):1)客户端对原始问题Φ:Ax=b进行加密得到Φ':A'x'=b';其中,A'=P1AP2,x'=P2-1x,b'=P1b。2)客户端将加密后的问题Φ':A'x'=b'发送给服务器。(3)问题求解LESolve(Φ')→(x'):1)服务器拿到问题Φ':A'x'=b'之后,求解线性方程组问题。2)服务器得到问题的结果x'之后,将他们返回给客户端。(4)问题解密LEDecrypt(x',SK)→(x1):客户端根据密钥P1,P2,A,b和从服务器返回的结果x',计算x1=P2-1x'。(5)结果验证ResultVerify(SK,x1)→(x∪⊥):如果Ax1=b输出x=x1。反之,输出⊥。本专利技术的专利技术目的是这样实现的:本专利技术云外包解大规模线性方程组的方法为一种基于初等变换矩阵加密原始矩阵的加密方法。每个初等变换矩阵与其他矩阵相乘的时间复杂度为O(n),而对一个矩阵加密,只需要n个行初等变换矩阵和n个列初等变换矩阵即可做到对一个可逆矩阵的加密。原始矩阵中每一个元素都被替换成了另外一个值。使用初等变换矩阵对可逆矩阵加密只需要O(n2)的复杂度。该方案的一个创新点就是用初等变换矩阵,用低复杂度算法来加密可逆矩阵,大大降低了问题加密阶段的复杂度。同时,该方案是个非交互方案,客户端无需在问题求解阶段和云服务器进行交互,云服务器就能很好地完成工作,这是本方案的第二个创新点。同时,本方案使用了直接验证的方法,有效地降低了结果验证阶段的复杂度,同时并没有增加其他阶段的复杂度,这是本专利技术的第三点创新点。附图说明图1是云外包解大规模线性方程组方法的两方模型示意图;图2是密钥生成算法的流程图;图3是问题加密算法的流程图;图4是问题解密和验证算法的流程图具体实施方式下面对本专利技术的具体实施方式进行描述,以便本领域的技术人员更好地理解本专利技术。首先选取一个硬盘容量较大,计算能力充足的云服务器S,同时选取一个计算和存储能力都不是很强大的客户端C,首先在在客户端C上运行密钥生成算法KeyGen(n)→(SK)和问题加密算法LEEncrypt(Φ)→(Φ'),然后将加密后的问题发送给服务器。在服务器S本文档来自技高网
...

【技术保护点】
云外包解大规模线性方程组的方法,是客户端的计算能力无法对大规模线性方程组进行求解的情况下,采用外包的方式,对线性方程组进行加密,交给第三方服务器进行计算,服务器对加密后的问题进行处理,返回加密的结果给客户端,客户端对结果进行加密和验证,其特征在于以下步骤:(1)密钥生成KeyGen(n)→(SK),客户端根据原始方程组Φ:Ax=b中矩阵A的阶n,来生成密钥SK,并保证密钥SK仅被客户端知道:1)客户端根据矩阵的阶n,生成两个1,2,…,n的置换π1,π2;2)根据置换π1,π2,客户端随机选取2n个随机整数值r1,r2,…r2n,然后根据公式(1)和公式(2)得到2n个n×n初等变换矩阵Ak,Bk,1≤k≤n:3)令P1=A1A2…An,P1‑1=An‑1An‑1‑1…A1‑1,P2=B1B2…Bn,P2‑1=Bn‑1Bn‑1‑1…B1‑1;4)密钥为SK=P1,P2,π1,π2,r1,…,r2n,A,b;(2)问题加密LEEncrypt(Φ,SK)→(Φ'),客户端根据密钥生成阶段生成的密钥SK对原始问题Φ:Ax=b进行加密,加密方式如下:1)客户端对原始问题Φ:Ax=b进行加密得到Φ':A'x'=b';其中,A'=P1AP2,x'=P2‑1x,b'=P1b,根据初等变换矩阵与普通矩阵乘积只需要O(n)的时间复杂度的性质,对上述式子进行计算,该阶段的时间复杂度为O(n2);2)客户端将加密后的问题Φ':A'x'=b'发送给服务器,客户端只需要将参数A',b'发送给服务器即可;(3)问题求解LESolve(Φ')→(x'),服务器拿到客户端的加密问题Φ':A'x'=b'之后,利用常规线性方程组求解方法对加密问题进行求解:1)服务器拿到问题Φ':A'x'=b'之后,使用目前最好的算法来求解线性方程组问题;2)服务器得到问题的结果x'之后,将他们返回给客户端;(4)问题解密LEDecrypt(x',SK)→(x1):客户端根据密钥P1,P2,A,b和从服务器返回的结果x',计算x1=P2‑1x',因为P2‑1是一系列初等矩阵的乘积,因此该步骤的计算也只需要O(n2)的时间复杂度;(5)结果验证ResultVerify(SK,x1)→(x∪⊥):如果Ax1=b,代表服务器确实对加密后的问题进行了解密,并且返回了正确的结果x',因此服务器在该协议中城市,客户端输出x=x1;反之,证明了服务器在该协议中对客户端进行了欺骗,输出⊥。...

【技术特征摘要】
1.云外包解大规模线性方程组的方法,是客户端的计算能力无法对大规模线性方程组进行求解的情况下,采用外包的方式,对线性方程组进行加密,交给第三方服务器进行计算,服务器对加密后的问题进行处理,返回加密的结果给客户端,客户端对结果进行加密和验证,其特征在于以下步骤:(1)密钥生成KeyGen(n)→(SK),客户端根据原始方程组Φ:Ax=b中矩阵A的阶n,来生成密钥SK,并保证密钥SK仅被客户端知道:1)客户端根据矩阵的阶n,生成两个1,2,…,n的置换π1,π2;2)根据置换π1,π2,客户端随机选取2n个随机整数值r1,r2,…r2n,然后根据公式1和公式2得到2n个n×n初等变换矩阵Ak,Bk,1≤k≤n:3)令P1=A1A2…An,P1-1=An-1An-1-1…A1-1,P2=B1B2…Bn,P2-1=Bn-1Bn-1-1…B1-1;4)密钥为SK=P1,P2,π1,π2,r1,…,r2n,A,b;(2)问题加密LEEncrypt(Φ,SK)→(Φ'),客户端根据密钥生成阶段生成的密钥SK对原始问题Φ:Ax...

【专利技术属性】
技术研发人员:钟婷陈正超黄潇宋鸽
申请(专利权)人:电子科技大学
类型:发明
国别省市:四川;51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1