CN105376057A - 一种云外包解大规模线性方程组的方法 - Google Patents
一种云外包解大规模线性方程组的方法 Download PDFInfo
- Publication number
- CN105376057A CN105376057A CN201510779652.4A CN201510779652A CN105376057A CN 105376057 A CN105376057 A CN 105376057A CN 201510779652 A CN201510779652 A CN 201510779652A CN 105376057 A CN105376057 A CN 105376057A
- Authority
- CN
- China
- Prior art keywords
- client
- server
- result
- outsourcing
- encryption
- 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.)
- Granted
Links
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种云外包解大规模线性方程组的方法,这是一种基于初等变换矩阵的非交互的云外包计算方案。初等变换矩阵具有比较低的计算复杂度,每次初等变换矩阵的乘积都只消耗O(n)的时间复杂度。加密一个普通的n阶矩阵,只需要n个初等变换矩阵,即可加密矩阵中的每一个元素。解大规模线性方程组问题可以写为Φ:Ax=b,其中A是一个n×n的可逆矩阵,x,b是一个n×1的向量。在外包解大规模线性方程组的协议中,需要保护参数A,b与结果x的隐私。本发明利用初等变换矩阵对参数A,x,b进行加密处理,从而提高了降低了客户端处理问题的复杂度,设计出了客户端只需要O(n2)复杂度的协议,提高了计算效率。同时,本发明是一种非交互协议,客户端无需在问题求解阶段与服务器进行交互,只需要提交计算请求,即可获得外包计算结果。
Description
技术领域
本发明属于云计算外包领域,更为具体地讲,涉及一种云外包解大规模线性方程组的方法。
背景技术
云计算已经吸引了当前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上运行大规模线性规划问题的解决算法LESolve(Φ')→(x'),将问题的解返回给客户端C,客户端在得到服务器的结果之后运行问题解密算法LEDecrypt(x',SK)→(x1)和结果验证算法ResultVerify(SK,x1)→(x∪⊥)。图1为显示了方案的示意图。在图1中,每当用户想要外包解大规模线性方程组任务的时候,先要运行密钥生成算法得到密钥,然后对问题进行加密,将加密的结果发送给服务器。服务器拿到加密后的问题之后,进行求解,将结果返回给用户。用户再根据密钥生成阶段生成的密钥来对结果进行解密,从而完成整个实施方案。
图2显示了密钥生成阶段,客户端的算法流程。在图2中,客户端主要分三个步骤来运行密钥生成算法,分别对应图中的S1,S2,S3。第一步,客户端随机置换生成算法生成2个随机置换π1,π2,图3表明了随机置换生成算法的流程图。第二步,客户端随机选取2n个随机整数值r1,r2,…r2n,然后得到2n个n×n初等变换矩阵Ai,Bi,1≤i≤n,生成算法已经在上文写明,这里不再赘述。第三步,客户端根据第二步生成的初等变换矩阵,生成密钥SK=P1,P2,π1,π2,r1,…,r2n,A,b完成密钥生成算法。
图3显示了问题加密阶段,客户端的算法流程。客户端根据密钥值,对原问题进行加密,得到加密后的问题,发送给服务器。
本方案的问题解决部分算法的选择取决于服务器。只要能够快速地解出大规模线性方程组问题的算法,即可作为本方法的解决问题部分的算法。
图4显示了客户端解密和验证步骤的流程图。在图4中,客户端根据密钥SK对服务器返回的结果进行解密,然后进行结果验证。如果解密成功,并且验证算法通过,则代表服务器诚实可信地进行了计算。否则验证失败,意味着服务器未诚实地对算法进行有效地执行。
尽管已经在发明内容和具体实施方式中对本发明进行了详细的说明,但本发明并不限于具体实施方式的范围。只要其他发明的构思或算法在本发明的权利要求限定之内,一切利用本发明的发明创造均在保护之内。
Claims (1)
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=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;反之,证明了服务器在该协议中对客户端进行了欺骗,输出⊥。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510779652.4A CN105376057B (zh) | 2015-11-13 | 2015-11-13 | 一种云外包解大规模线性方程组的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510779652.4A CN105376057B (zh) | 2015-11-13 | 2015-11-13 | 一种云外包解大规模线性方程组的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105376057A true CN105376057A (zh) | 2016-03-02 |
CN105376057B CN105376057B (zh) | 2019-03-01 |
Family
ID=55377888
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510779652.4A Expired - Fee Related CN105376057B (zh) | 2015-11-13 | 2015-11-13 | 一种云外包解大规模线性方程组的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105376057B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106055768A (zh) * | 2016-05-26 | 2016-10-26 | 秦晓亮 | 一种基于云计算的高安全性数值模拟方法、求解器及系统 |
CN106788980A (zh) * | 2017-01-16 | 2017-05-31 | 中国人民解放军国防科学技术大学 | 一种面向云计算的矩阵乘法外包过程中安全加密方法 |
CN108647525A (zh) * | 2018-05-09 | 2018-10-12 | 西安电子科技大学 | 可验证的隐私保护单层感知机批量训练方法 |
CN108768622A (zh) * | 2018-03-30 | 2018-11-06 | 国网河南省电力公司新乡供电公司 | 一种云计算中矩阵行列式的安全外包计算加密方法 |
CN110704850A (zh) * | 2019-09-03 | 2020-01-17 | 华为技术有限公司 | 人工智能ai模型的运行方法和装置 |
CN113039744A (zh) * | 2018-11-16 | 2021-06-25 | 诺基亚技术有限公司 | 外包数据处理 |
CN113326475A (zh) * | 2021-06-29 | 2021-08-31 | 福建师范大学 | 一种基于初等矩阵的矩阵求逆外包计算方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103024006A (zh) * | 2012-11-23 | 2013-04-03 | 西安电子科技大学 | 一种云计算环境下双线性对的安全外包的方法 |
CN104486315A (zh) * | 2014-12-08 | 2015-04-01 | 北京航空航天大学 | 一种基于内容属性的可撤销密钥外包解密方法 |
-
2015
- 2015-11-13 CN CN201510779652.4A patent/CN105376057B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103024006A (zh) * | 2012-11-23 | 2013-04-03 | 西安电子科技大学 | 一种云计算环境下双线性对的安全外包的方法 |
CN104486315A (zh) * | 2014-12-08 | 2015-04-01 | 北京航空航天大学 | 一种基于内容属性的可撤销密钥外包解密方法 |
Non-Patent Citations (3)
Title |
---|
CONG WANG,KUI REN,JIA WANG: ""Secure and Practical Outsourcing of Linear Programming in Cloud Computing"", 《INFOCOM, 2011 PROCEEDINGS IEEE》 * |
MOHAMED NASSAR.ET: ""Practical and Secure Outsourcing of Matrix Computations to the Cloud"", 《DISTRIBUTED COMPUTING SYSTEMS WORKSHOPS (ICDCSW),2013 IEEE 33RD INTERNATIONAL CONFERENCE ON》 * |
胡杏,裴定一,唐春明: ""可验证安全外包矩阵计算及其应用"", 《中国科学;信息科学》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106055768A (zh) * | 2016-05-26 | 2016-10-26 | 秦晓亮 | 一种基于云计算的高安全性数值模拟方法、求解器及系统 |
CN106788980A (zh) * | 2017-01-16 | 2017-05-31 | 中国人民解放军国防科学技术大学 | 一种面向云计算的矩阵乘法外包过程中安全加密方法 |
CN106788980B (zh) * | 2017-01-16 | 2019-07-30 | 中国人民解放军国防科学技术大学 | 一种面向云计算的矩阵乘法外包过程中安全加密方法 |
CN108768622A (zh) * | 2018-03-30 | 2018-11-06 | 国网河南省电力公司新乡供电公司 | 一种云计算中矩阵行列式的安全外包计算加密方法 |
CN108647525A (zh) * | 2018-05-09 | 2018-10-12 | 西安电子科技大学 | 可验证的隐私保护单层感知机批量训练方法 |
CN108647525B (zh) * | 2018-05-09 | 2022-02-01 | 西安电子科技大学 | 可验证的隐私保护单层感知机批量训练方法 |
CN113039744A (zh) * | 2018-11-16 | 2021-06-25 | 诺基亚技术有限公司 | 外包数据处理 |
CN110704850A (zh) * | 2019-09-03 | 2020-01-17 | 华为技术有限公司 | 人工智能ai模型的运行方法和装置 |
CN110704850B (zh) * | 2019-09-03 | 2022-05-10 | 华为技术有限公司 | 人工智能ai模型的运行方法和装置 |
CN113326475A (zh) * | 2021-06-29 | 2021-08-31 | 福建师范大学 | 一种基于初等矩阵的矩阵求逆外包计算方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105376057B (zh) | 2019-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105376057A (zh) | 一种云外包解大规模线性方程组的方法 | |
CN106850221B (zh) | 信息加密、解密方法及装置 | |
CN107145791B (zh) | 一种具有隐私保护的K-means聚类方法及系统 | |
Li et al. | TMACS: A robust and verifiable threshold multi-authority access control system in public cloud storage | |
Cheng et al. | Secure $ k $ k-NN query on encrypted cloud data with multiple keys | |
CN102138300B (zh) | 消息认证码预计算在安全存储器中的应用 | |
CN108737115B (zh) | 一种具有隐私保护的私有属性集交集求解方法 | |
JP7221872B2 (ja) | 楕円曲線の同種に基づくキー合意プロトコル | |
Teng et al. | A Modified Advanced Encryption Standard for Data Security. | |
CN105814832A (zh) | 隐私保护岭回归 | |
JP6575532B2 (ja) | 暗号化装置、復号装置、暗号処理システム、暗号化方法、復号方法、暗号化プログラム、及び復号プログラム | |
US11101980B2 (en) | System and method for adding and comparing integers encrypted with quasigroup operations in AES counter mode encryption | |
Panda | Data security in wireless sensor networks via AES algorithm | |
CN104967693A (zh) | 面向云存储的基于全同态密码技术的文档相似度计算方法 | |
CN103916248A (zh) | 一种全同态加密公钥空间压缩方法 | |
CN103607276A (zh) | 新型基于随机函数的抗已知明文密文对攻击的分组加密方法 | |
Ogundoyin et al. | EDAS: Efficient data aggregation scheme for Internet of Things | |
Sekar et al. | Comparative study of encryption algorithm over big data in cloud systems | |
WO2014030706A1 (ja) | 暗号化データベースシステム、クライアント装置およびサーバ、暗号化データ加算方法およびプログラム | |
Ahmad Abusukhon et al. | A novel network security algorithm based on encrypting text into a white-page image | |
CN104980269A (zh) | 密钥共享方法、装置与系统 | |
Zhao et al. | Towards dependable and trustworthy outsourced computing: A comprehensive survey and tutorial | |
CN103078736A (zh) | 一种多维度密钥生成方法 | |
Li et al. | A Proxy Re-Encryption Scheme Based on Elliptic Curve Group. | |
KR101812311B1 (ko) | 사용자 단말 및 속성 재암호 기반의 사용자 단말 데이터 공유 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190301 Termination date: 20191113 |