首页> 中国专利> 一种云外包解大规模线性方程组的方法

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

摘要

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

著录项

  • 公开/公告号CN105376057A

    专利类型发明专利

  • 公开/公告日2016-03-02

    原文格式PDF

  • 申请/专利权人 电子科技大学;

    申请/专利号CN201510779652.4

  • 发明设计人 钟婷;陈正超;黄潇;宋鸽;

    申请日2015-11-13

  • 分类号H04L9/08(20060101);H04L29/06(20060101);H04L29/08(20060101);

  • 代理机构

  • 代理人

  • 地址 610054 四川省成都市高新区(西区)西源大道2006号

  • 入库时间 2023-12-18 14:35:31

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-03-01

    授权

    授权

  • 2016-03-30

    实质审查的生效 IPC(主分类):H04L9/08 申请日:20151113

    实质审查的生效

  • 2016-03-02

    公开

    公开

说明书

技术领域

本发明属于云计算外包领域,更为具体地讲,涉及一种云外包解大规模线性方程组的方法。

背景技术

云计算已经吸引了当前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的置换π12

2)根据置换π12,客户端随机选取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,P212,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上运行大规模线性规划问题的解决算法LESolve(Φ')→(x'),将问题的解返回给客户端C,客户端在得到服务器的结果之后运行问题解密算法LEDecrypt(x',SK)→(x1)和结果验证算法ResultVerify(SK,x1)→(x∪⊥)。图1为显示了方案的示意图。在图1中,每当用户想要外包解大规模线性方程组任务的时候,先要运行密钥生成算法得到密钥,然后对问题进行加密,将加密的结果发送给服务器。服务器拿到加密后的问题之后,进行求解,将结果返回给用户。用户再根据密钥生成阶段生成的密钥来对结果进行解密,从而完成整个实施方案。

图2显示了密钥生成阶段,客户端的算法流程。在图2中,客户端主要分三个步骤来运行密钥生成算法,分别对应图中的S1,S2,S3。第一步,客户端随机置换生成算法生成2个随机置换π12,图3表明了随机置换生成算法的流程图。第二步,客户端随机选取2n个随机整数值r1,r2,…r2n,然后得到2n个n×n初等变换矩阵Ai,Bi,1≤i≤n,生成算法已经在上文写明,这里不再赘述。第三步,客户端根据第二步生成的初等变换矩阵,生成密钥SK=P1,P212,r1,…,r2n,A,b完成密钥生成算法。

图3显示了问题加密阶段,客户端的算法流程。客户端根据密钥值,对原问题进行加密,得到加密后的问题,发送给服务器。

本方案的问题解决部分算法的选择取决于服务器。只要能够快速地解出大规模线性方程组问题的算法,即可作为本方法的解决问题部分的算法。

图4显示了客户端解密和验证步骤的流程图。在图4中,客户端根据密钥SK对服务器返回的结果进行解密,然后进行结果验证。如果解密成功,并且验证算法通过,则代表服务器诚实可信地进行了计算。否则验证失败,意味着服务器未诚实地对算法进行有效地执行。

尽管已经在发明内容和具体实施方式中对本发明进行了详细的说明,但本发明并不限于具体实施方式的范围。只要其他发明的构思或算法在本发明的权利要求限定之内,一切利用本发明的发明创造均在保护之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号