发明名称 一种云外包解大规模线性方程组的方法
摘要 本发明公开了一种云外包解大规模线性方程组的方法,这是一种基于初等变换矩阵的非交互的云外包计算方案。初等变换矩阵具有比较低的计算复杂度,每次初等变换矩阵的乘积都只消耗O(n)的时间复杂度。加密一个普通的n阶矩阵,只需要n个初等变换矩阵,即可加密矩阵中的每一个元素。解大规模线性方程组问题可以写为Φ:Ax=b,其中A是一个n×n的可逆矩阵,x,b是一个n×1的向量。在外包解大规模线性方程组的协议中,需要保护参数A,b与结果x的隐私。本发明利用初等变换矩阵对参数A,x,b进行加密处理,从而提高了降低了客户端处理问题的复杂度,设计出了客户端只需要O(n<sup>2</sup>)复杂度的协议,提高了计算效率。同时,本发明是一种非交互协议,客户端无需在问题求解阶段与服务器进行交互,只需要提交计算请求,即可获得外包计算结果。
申请公布号 CN105376057A 申请公布日期 2016.03.02
申请号 CN201510779652.4 申请日期 2015.11.13
申请人 电子科技大学 发明人 钟婷;陈正超;黄潇;宋鸽
分类号 H04L9/08(2006.01)I;H04L29/06(2006.01)I;H04L29/08(2006.01)I 主分类号 H04L9/08(2006.01)I
代理机构 代理人
主权项 云外包解大规模线性方程组的方法,是客户端的计算能力无法对大规模线性方程组进行求解的情况下,采用外包的方式,对线性方程组进行加密,交给第三方服务器进行计算,服务器对加密后的问题进行处理,返回加密的结果给客户端,客户端对结果进行加密和验证,其特征在于以下步骤:(1)密钥生成KeyGen(n)→(SK),客户端根据原始方程组Φ:Ax=b中矩阵A的阶n,来生成密钥SK,并保证密钥SK仅被客户端知道:1)客户端根据矩阵的阶n,生成两个1,2,…,n的置换π<sub>1</sub>,π<sub>2</sub>;2)根据置换π<sub>1</sub>,π<sub>2</sub>,客户端随机选取2n个随机整数值r<sub>1</sub>,r<sub>2</sub>,…r<sub>2n</sub>,然后根据公式(1)和公式(2)得到2n个n×n初等变换矩阵A<sub>k</sub>,B<sub>k</sub>,1≤k≤n:<img file="FDA0000846309880000011.GIF" wi="1186" he="229" /><img file="FDA0000846309880000012.GIF" wi="1214" he="227" />3)令P<sub>1</sub>=A<sub>1</sub>A<sub>2</sub>…A<sub>n</sub>,P<sub>1</sub><sup>‑1</sup>=A<sub>n</sub><sup>‑1</sup>A<sub>n‑1</sub><sup>‑1</sup>…A<sub>1</sub><sup>‑1</sup>,P<sub>2</sub>=B<sub>1</sub>B<sub>2</sub>…B<sub>n</sub>,P<sub>2</sub><sup>‑1</sup>=B<sub>n</sub><sup>‑1</sup>B<sub>n‑1</sub><sup>‑1</sup>…B<sub>1</sub><sup>‑1</sup>;4)密钥为SK=P<sub>1</sub>,P<sub>2</sub>,π<sub>1</sub>,π<sub>2</sub>,r<sub>1</sub>,…,r<sub>2n</sub>,A,b;(2)问题加密LEEncrypt(Φ,SK)→(Φ'),客户端根据密钥生成阶段生成的密钥SK对原始问题Φ:Ax=b进行加密,加密方式如下:1)客户端对原始问题Φ:Ax=b进行加密得到Φ':A'x'=b';其中,A'=P<sub>1</sub>AP<sub>2</sub>,x'=P<sub>2</sub><sup>‑1</sup>x,b'=P<sub>1</sub>b,根据初等变换矩阵与普通矩阵乘积只需要O(n)的时间复杂度的性质,对上述式子进行计算,该阶段的时间复杂度为O(n<sup>2</sup>);2)客户端将加密后的问题Φ':A'x'=b'发送给服务器,客户端只需要将参数A',b'发送给服务器即可;(3)问题求解LESolve(Φ')→(x'),服务器拿到客户端的加密问题Φ':A'x'=b'之后,利用常规线性方程组求解方法对加密问题进行求解:1)服务器拿到问题Φ':A'x'=b'之后,使用目前最好的算法来求解线性方程组问题;2)服务器得到问题的结果x'之后,将他们返回给客户端;(4)问题解密LEDecrypt(x',SK)→(x<sub>1</sub>):客户端根据密钥P<sub>1</sub>,P<sub>2</sub>,A,b和从服务器返回的结果x',计算x<sub>1</sub>=P<sub>2</sub><sup>‑1</sup>x',因为P<sub>2</sub><sup>‑1</sup>是一系列初等矩阵的乘积,因此该步骤的计算也只需要O(n<sup>2</sup>)的时间复杂度;(5)结果验证ResultVerify(SK,x<sub>1</sub>)→(x∪⊥):如果Ax<sub>1</sub>=b,代表服务器确实对加密后的问题进行了解密,并且返回了正确的结果x',因此服务器在该协议中城市,客户端输出x=x<sub>1</sub>;反之,证明了服务器在该协议中对客户端进行了欺骗,输出⊥。
地址 610054 四川省成都市高新区(西区)西源大道2006号