CN106775576A - 可验证的矩阵乘法的安全外包计算方法及系统 - Google Patents
可验证的矩阵乘法的安全外包计算方法及系统 Download PDFInfo
- Publication number
- CN106775576A CN106775576A CN201710199478.5A CN201710199478A CN106775576A CN 106775576 A CN106775576 A CN 106775576A CN 201710199478 A CN201710199478 A CN 201710199478A CN 106775576 A CN106775576 A CN 106775576A
- Authority
- CN
- China
- Prior art keywords
- matrix
- user
- result
- multiplication
- cloud server
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/523—Multiplying only
- G06F7/53—Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multi Processors (AREA)
Abstract
本发明提供了一种可验证的矩阵乘法的安全外包计算方法,其包括:第一步,用户外包,用户将自己耗时的计算矩阵乘法运算外包给云服务器;第二步,云服务器计算,云服务器接收矩阵和运算之后,利用自己强大的计算资源进行矩阵乘法的计算,计算完成后将计算结果返回给用户;第三步,用户恢复与验证,用户接收云返回的计算结果,并且验证这个结果的正确性。在本发明提供的方法中,用户上传给云的计算数据是经过预处理计算的,从而保护了用户数据的隐私性。当云返回给用户结果的时候,用户可以高效的验证结果的正确性,避免了云返回给用户错误结果而不被察觉。
Description
技术领域
本发明属于云计算技术领域,具体涉及一种适用于矩阵乘法的安全外包计算方法。
背景技术
矩阵计算在科学计算和密码学领域中都有着重要的作用。许多密码协议、科学和数值计算问题都涉及到了矩阵计算。然而,对那些计算能力有限的用户来说,独立完成矩阵计算并不是件容易的事情。利用外包计算提供的强大的计算资源,我们能够使得用户的计算能力不再受限于他们的资源约束型设备。在矩阵计算过程中,用户可以将矩阵的计算过程外包给云。这使得计算能力有限的用户能够完成矩阵的计算工作。
随着云计算的不断发展壮大,通过云计算可以使得一个计算能力较弱的客户端将自己比较耗时、耗资源的计算通过外包到云服务器,通过云服务器强大的计算功能和强大的存储能力来高效的获取计算的结果,从而节约时间和资源的消耗。但外包计算也带来一系列的问题,例如客户端无法确认计算结果的正确性,客户端自身数据的隐私等问题。由于云内部的操作细节对用户是不透明的,因此,存在着各种动机,使得云服务器的行为不诚实。例如,对需要大量计算资源的计算,如果用户无法判断云计算输出的正确性,云可能会为了节约资源而“偷懒”而不被用户发现。此外,还可能存在软件bug和恶意的外部攻击,这些都会影响计算结果的质量。所以,云计算环境中的隐私安全、内容安全是云计算研究的关键问题之一。从应用角度出发,一个有效的外包计算协议应该满足3个基本条件:(1)确保用户数据的保密性;(2)确保用户能够验证云计算输出的正确性;(3)确保用户端在这个协议下需要的工作量(包括正确性验证)少于用户独自计算的工作量,否则用户没有必要寻求云的帮助。考虑到以上问题以及要求,在设计如何将矩阵运算外包给云服务器时需要充分考虑用户数据的隐私性以及结果的可验证性。
矩阵乘法不仅在生活中有实际应用,也在图像的处理中起到了关键的作用。但是已存的对矩阵运算的研究方案中,往往对用户的计算能力有一定的要求。本发明专利提出了一个高效的可验证的矩阵乘法的安全外包计算方法。任何用户都可以通过预处理的方式,对矩阵进行一些预计算处理,将处理过的矩阵传给云,让云去计算。云端只是知道处理过后的矩阵,但是不能知道矩阵的真实数据。当计算结果返回给用户的时候,用户可以快速高效的验证云返回的结果是否正确。本方案提出的安全外包方法可以保证数据的隐私性,同时可以高效的实现具有可验证性,避免复杂的验证运算。
发明内容
为了利用云计算处理矩阵乘法的计算,减轻客户端的数据处理压力,使得矩阵乘法可以被更加有效、便利、安全、正确地计算,本专利提出了一种可以适用于矩阵乘法的、将矩阵乘法计算外包给云服务提供商的可验证安全外包计算方法。该方法中,用户上传给云的计算数据是经过预处理计算的,从而保护了用户数据的隐私性。当云返回给用户结果的时候,用户可以高效的验证结果的正确性,避免了云返回给用户错误结果而不被察觉。
为克服上述技术问题,本发明提供一种可验证的矩阵乘法的安全外包计算方法,其包括:
第一步,用户外包,用户将自己耗时的矩阵乘法运算外包给云服务器;
第二步,云服务器计算,云服务器接收矩阵和运算之后,利用自己强大的计算资源进行矩阵乘法的计算,计算完成后将计算结果返回给用户;
第三步,用户恢复与验证,用户接收云返回的计算结果,并且验证这个结果的正确性。
其中,所述第一步进一步包括两个子步骤,分别为:
第a步,预处理;
第b步,盲化。
其中,所述第a步更进一步具体为,首先用户随机选择两个数字i和j,使得i和j满足条件1≤i,j≤n。然后取出矩阵M1的第i行和矩阵M2的第j列,分别是{ai1,ai2,...,ain}和{b1j,b2j,...,bnj}T({b1j,b2j,...,bnj}T是{b1j,b2j,...,bnj}的转置);用户计算c存储在用户端,由用户秘密保存,这里的c值恰好是矩阵M中第i行第j列的数值,这个值将用于用户对结果的验证。
其中,所述第b步更进一步具体为用户从矩阵池中选择三个稀疏矩阵P1、P2和P3以及各自的逆矩阵P1 -1、P2 -1和P3 -1,将这六个矩阵秘密存储于用户端,这六个矩阵将会用于矩阵的盲化处理和结果的恢复,其中的盲化过程是:X1=P1M1P2 -1,X2=P2M2P3 -1,矩阵P1 -1和P3将在结果的恢复过程中被使用。
其中,所述第二步云计算步骤具体为用户C将预处理后的矩阵X1和X2交付给云服务器s,云服务器s对矩阵进行矩阵的乘法计算Y=X1X2,并将计算结果Y返回给用户C。
其中,所述第三步用户恢复与验证步骤具体为用户C需要从s返回的结果Y中恢复出矩阵M1和M2相乘的结果M并验证其正确性。
本发明还提供了可验证的矩阵乘法的安全外包计算系统,其包括:
预处理模块,首先用户随机选择两个数字i和j,使得i和j满足条件1≤i,j≤n。然后取出矩阵M1的第i行和矩阵M2的第j列,分别是{ai1,ai2,...,ain}和{b1j,b2j,...,bnj}T({b1j,b2j,...,bnj}T是{b1j,b2j,...,bnj}的转置);用户计算c存储在用户端,由用户秘密保存,这里的c值恰好是矩阵M中第i行第j列的数值,这个值将用于用户对结果的验证;
盲化模块,用户从矩阵池中选择三个稀疏矩阵P1、P2和P3以及各自的逆矩阵P1 -1、P2 -1和P3 -1,将这六个矩阵秘密存储于用户端,这六个矩阵将会用于矩阵的盲化处理,盲化阶段的处理过程是X1=P1M1P2 -1,X2=P2M2P3 -1,矩阵P1 -1和P3将在结果的恢复过程中被使用;
计算模块,用户C将预处理后的矩阵X1和X2交付给云服务器s,云服务器s对矩阵进行矩阵的乘法计算Y=X1X2,并将计算结果Y返回给用户C;
恢复与验证模块,具体为用户C需要从s返回的结果Y中恢复出矩阵M1和M2相乘的结果M并验证其正确性。
有益的技术效果
(1)本发明中使用外包计算来实现矩阵乘法的运算。在预处理阶段,用户需要计算的用于验证的值c,这个过程需要的是数据对应相乘并求和的运算。在对矩阵的盲化操作中,用户只需要选择在本地秘密存储稀疏矩阵对原矩阵进行乘法运算,此过程的计算量为O(n2)。对矩阵的盲化操作使得矩阵的乘法计算可以在保证信息机密性不被破坏的情况下,外包给云服务器执行,这极大减轻了客户端的计算压力。
(2)用户从云服务器处得到计算得到的数据后,只需执行两次稀疏矩阵的矩阵乘法运算即可恢复真实的运算结果,这个阶段的计算量为O(n2)。同时用户可以对恢复出得运算结果进行验证,验证过程只需要获得本地在预处理阶段计算的值c,然后与矩阵中的某个值作比较,便可以验证结果是否正确。这个验证过程的计算量是O(1)。确保云服务器是诚实工作的,没有欺骗用户。
(3)方案使用单一的云服务器的安全模型,使得用户只需与一个云进行交互,并且用户交给云服务器处理的数据是经过盲化后的数据,云服务器不能从得到的矩阵中或者真实的矩阵信息,从而避免了多个服务器可能存在的合谋攻击,提高了方案的健壮性。
(4)通过该方案使得大量的计算从用户端转移到了云端,用户也只需执行高效、简单的操作即可恢复出结果,在用户端,用户需要的计算量和存储空间都非常少。
附图说明
图1为单一服务器的外包计算的系统模型。
图2为预处理阶段和盲化阶段示意图。
图3为恢复及验证结果的示意图。
具体实施方式
本发明提供的可验证的矩阵乘法的安全外包计算方法参与成员包括用户C和云服务器S,这里用户C用于表示计算能力有限的用户。而云服务器S有足够强大的计算能力并且可以以按需付费的方式提供给用户使用。在使用的过程中,用户将自己耗时的计算矩阵乘法运算外包到云服务器,云服务器接收矩阵和运算之后,利用自己强大的计算资源进行矩阵乘法的运算,计算完成后将计算结果返回给用户。用户接收云返回的计算结果,并且验证这个结果的正确性。
本发明提供的安全外包计算方法使用的相关理论如下:
矩阵乘法
矩阵相乘只有在第一个矩阵的列数和第二个矩阵的行数相同时才有意义。
设A为m×p的矩阵,B为p×n的矩阵,那么矩阵A和矩阵B的乘积是C,矩阵C是m×n的矩阵。其中矩阵C中的第i行第j列元素可以表示为:
稀疏矩阵
稀疏矩阵是指矩阵中非零元素的个数远远小于矩阵元素的总数,并且非零元素的分布没有规律的矩阵。通常认为矩阵中非零元素的总数比上矩阵所有元素总数的值小于等于0.05时,则称该矩阵为稀疏矩阵,该比值称为这个矩阵的稠密度;与之相区别的是,如果非零元素的分布存在规律(如上三角矩阵、下三角矩阵、对角矩阵),则称该矩阵为特殊矩阵。
本发明提供一种可验证的矩阵乘法的安全外包计算方法,其包括:
第一步,用户外包,用户将自己耗时的计算矩阵乘法运算外包给云服务器;
第二步,云服务器计算,云服务器接收矩阵和运算之后,利用自己强大的计算资源进行矩阵乘法的计算,计算完成后将计算结果返回给用户;
第三步,用户恢复与验证,用户接收云返回的计算结果,并且验证这个结果的正确性。
考虑实际的应用场景,这里假设:M1和M2是两个n×n的矩阵,其中把M1和M2的乘积记作M,即M=M1M2。用户可以接入一个稀疏矩阵池,这个矩阵池中有足够多的稀疏矩阵以及对应的稀疏矩阵的逆矩阵,即:池中有足够多的稀疏矩阵对(Q,Q-1),Q-1是稀疏矩阵Q的逆矩阵。
所述第一步进一步包括两个子步骤,分别为:
第a步,预处理;
第b步,盲化。
所述第a步更进一步具体为,首先用户随机选择两个数字i和j,使得i和j满足条件1≤i,j≤n。然后取出矩阵M1的第i行和矩阵M2的第j列,分别是{ai1,ai2,...,ain}和{b1j,b2j,...,bnj}T({b1j,b2j,...,bnj}T是{b1j,b2j,...,bnj}的转置);用户计算c存储在用户端,由用户秘密保存,这里的c值恰好是矩阵M中第i行第j列的数值,这个值将用于用户对结果的验证。
所述第b步更进一步具体为用户从矩阵池中选择三个稀疏矩阵P1、P2和P3以及各自的逆矩阵P1 -1、P2 -1和P3 -1,将这六个矩阵秘密存储于用户端,这六个矩阵将会用于矩阵的盲化处理,X1=P1M1P2 -1,X2=P2M2P3 -1,矩阵P1 -1和P3将在结果的恢复过程中被使用。
所述第二步云计算步骤具体为用户C将预处理后的矩阵X1和X2交付给云服务器s,云服务器s对矩阵进行矩阵的乘法计算Y=X1X2,并将计算结果Y返回给用户C。
所述第三步用户恢复与验证步骤具体为用户C需要从s返回的结果Y中恢复出矩阵M1和M2相乘的结果M并验证其正确性。
所述预处理步骤进一步包括:
第a’步,选择两个随机数i,j,并且使得1≤i,j≤n,验证值c的计算;
第b’步,取矩阵M1的第i行{ai1,ai2,...,ain};取矩阵M2的第j列{b1j,b2j,...,bnj}T({b1j,b2j,...,bnj}T是{b1j,b2j,...,bnj}的转置),计算c存储在用户端,由用户秘密保存,由于M=M1M2,并且所以可以得到由此可以知道c=M(i,j);
第c’步,用户从矩阵池中选择三个稀疏矩阵及对应的逆矩阵,即P1、P2和P3以及对应的逆矩阵P1 -1、P2 -1和P3 -1,这六个矩阵秘密存储于用户端。
所述盲化步骤进一步包括:
第a’步,用户在预处理阶段之后,本地存储有六个矩阵,分别是P1、P2和P3以及各自的逆矩阵P1 -1、P2 -1和P3 -1,用户首先利用稀疏矩阵P1和稀疏矩阵P2的逆矩阵P2 -1,计算X1=P1M1P2 -1,这个操作对矩阵M1作了行变换和列变换,使得M1的值得到保护
第b’步,为了保护矩阵M2,仍然对其作行变换和列变换,这里用户利用稀疏矩阵P2和稀疏矩阵P3的逆矩阵P3 -1,计算X2=P2M2P3 -1;
第c’步,计算完成后,用户将X1和X2发送给云服务器,并要求服务器计算两个矩阵的乘积,因为P1、P2、P3 -1和P2 -1是用户秘密保存的,云服务器不能够知道,所以云服务器不能从接收的矩阵X1和X2中获得有关矩阵M1和矩阵M2的信息,达到保护用户信息的目的。
所述云服务器计算更进一步具体包括:
第a’步,服务器在接收到用户发来的矩阵X1和X2之后,计算两个矩阵的乘积,即Y=X1X2;
第b’步,计算完成后,云服务器将计算结果Y返回给用户。
所述用户恢复与验证步骤更进一步具体包括:
第a’步,用户端接收云返回的结果Y,因为Y=X1X2,并且X1=P1M1P2 -1、X2=P2M2P3 -1,所以:
第b’步,根据矩阵乘法的运算规则,利用用户端存储的稀疏矩阵矩阵P1的逆矩阵P1 -1和稀疏矩阵P3,用户对矩阵Y左乘P1 -1右乘P3,可以得到M1和M2的乘积,即
第c’步,用户经过第二步得到的矩阵T是对云的返回值Y进行解盲化的结果,但是用户需要在本地验证T是否是正确的,用户利用预处理步骤计算并存储在本地的值c来验证结果是否正确,因为c=M(i,j),所以如果解盲化得到的矩阵T的第i行第j列的值如果等于c,那么验证通过,即如果T(i,j)=c等式成立,用户相信云服务器诚实工作并返回了争取的计算结果,用户就可以由Y解盲化得到正确的结果,也就是M=T=P1 -1YP3;
第d’步,如果第c’步的验证等式T(i,j)=c不成立,用户相信云服务器并没有诚实的去进行计算,用户拒绝接收这个计算结果。
以下采用实施例和附图来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。
图1为单一服务器的外包计算的系统模型。图中示意了外包计算模型中有两个参与实体,即用户C和云服务器S。用户C拥有大量的计算昂贵的矩阵计算问题(比如矩阵乘积、矩阵行列式以及矩阵求逆)需要外包给云,而云服务器S拥有大量的计算资源。用户C将计算任务外包给云服务器S。以矩阵乘法运算为例,任何一个想要计算矩阵乘法的用户,都可以通过网络链接到云服务器上,将要计算的任务传给云服务器S。首先C通过网络将其矩阵的数据和任务要求发送给云服务器。然后云服务器按照要求去做矩阵乘法的计算。计算完成之后,云服务器将计算的结果返回给用户。用户在本地验证结果是否正确。
图2为预处理阶段和盲化阶段示意图。图中示意了由用户C进行的预处理计算的过程以及在用户端对矩阵进行的盲化过程。假设M1和M2是要计算的n×n的矩阵,M1和M2的乘积是M,即M=M1M2。在预处理阶段,用户首先随机选择两个数字i,j,使得满足条件1≤i,j≤n。取M1的第i行{ai1,ai2,...,ain};取M2的第j列{b1j,b2j,...,bnj}T({b1j,b2j,...,bnj}T是{b1j,b2j,...,bnj}的转置);计算c存储在用户端,由用户秘密保存。这里的c值恰好是矩阵M中第i行第j列的数值。这个值将用于用户对结果的验证。在盲化阶段,用户从矩阵池中选择三个稀疏矩阵P1、P2和P3以及对应的逆矩阵P1 -1、P2 -1和P3 -1。将这六个矩阵秘密存储于用户端。这六个矩阵将会用于矩阵的盲化处理,X1=P1M1P2 -1,X2=P2M2P3 -1。矩阵P1 -1和P3将在结果的恢复过程中被使用。
图3为恢复及验证结果的示意图。图中示意了用户C需要调出预计算的部分信息,用于验证结果是否正确,从而恢复并验证结果的过程。对于云返回给用户的结果Y,用户需要验证云是否诚实的进行矩阵乘法的计算并且将正确的结果返回。首先用户取出自己存储的稀疏矩阵P1 -1和P3,然后计算T=P1 -1YP3。得到的矩阵T,容易得到矩阵T中第i行第j列的值T(i,j)。把得到的T(i,j)与本地存储的值c进行比较,看是否相等。如果两个值相等,那么用户相信云诚实的进行了矩阵乘法的运算并把正确结果返回。用户可以从Y中恢复想要的矩阵的乘法的值,即T=P1 -1YP3。如果两个值不相等,用户相信结果是不正确的,拒绝接收这个结果。
整个发明实现过程如下:
本专利中系统成员包括:用户C和云服务器s。这里用户用于表示计算能力有限的用户。而云服务器s有足够强大的计算能力并且可以以按需付费的方式提供给用户使用。在使用的过程中,用户将自己耗时的计算矩阵乘法运算外包到云服务器,云服务器接收矩阵和运算之后,利用自己强大的计算资源进行矩阵乘法的运算,计算完成后将计算结果返回给用户。用户接收云返回的计算结果,并且验证这个结果的正确性。
考虑实际的应用场景,这里假设:M1和M2是两个n×n的矩阵,其中把M1和M2的乘积记作M,即M=M1M2。用户可以接入一个稀疏矩阵池,这个稀疏矩阵池中有足够多的可获得矩阵逆的稀疏矩阵,即:池中有足够多的稀疏矩阵对(T,T-1)。
本专利提出的技术方案分为四个阶段:预处理阶段、盲化阶段、计算阶段、恢复与验证阶段。在预处理阶段,首先用户随机选择两个数字i和j,使得i和j满足条件1≤i,j≤n。然后取出矩阵M1的第i行和矩阵M2的第j列,分别是{ai1,ai2,...,ain}和{b1j,b2j,...bnj}T({b1j,b2j,...,bnj}T是{b1j,b2j,...,bnj}的转置);用户计算c存储在用户端,由用户秘密保存。这里的c值恰好是矩阵M中第i行第j列的数值。这个值将用于用户对结果的验证。在盲化阶段,用户从矩阵池中选择三个稀疏矩阵P1、P2和P3以及对应的逆矩阵P1 -1、P2 -1和P3 -1。将这六个矩阵秘密存储于用户端。这六个矩阵将会用于矩阵的盲化处理,X1=P1M1P2 -1,X2=P2M2P3 -1。稀疏矩阵P1的稀疏矩阵逆矩阵P1 -1和稀疏矩阵P3将在结果的恢复过程中被使用。在计算阶段,用户C将预处理后的矩阵X1和X2交付给云服务器s,云服务器s对矩阵进行矩阵的乘法计算Y=X1X2,并将计算结果Y返回给用户C;在恢复与验证阶段,C需要从s返回的结果Y中恢复出矩阵M1和M2相乘的结果M并验证其正确性。下面将给出四个阶段的详细介绍。
预处理阶段:
(1)验证值的用户计算c,选择两个随机数i,j,并且使得1≤i,j≤n。
(2)取矩阵M1的第i行{ai1,ai2,...,ain};取矩阵M2的第j列{b1j,b2j,...,bnj}T({b1j,b2j,...,bnj}T是{b1j,b2j,...,bnj}的转置),计算c存储在用户端,由用户秘密保存,由于M=M1M2,并且所以可以得到由此可以知道c=M(i,j)。
(3)用户从矩阵池中选择三个稀疏矩阵及对应的逆矩阵,即P1、P2和P3以及对应的逆矩阵P1 -1、P2 -1和P3 -1,这六个矩阵秘密存储于用户端。
盲化阶段:
(1)用户在预处理阶段之后,本地存储有六个矩阵,分别是P1、P2和P3以及各自的逆矩阵P1 -1、P2 -1和P3 -1,用户首先利用稀疏矩阵P1和稀疏矩阵P2的逆矩阵P2 -1,计算X1=P1M1P2 -1,这个操作对矩阵M1作了行变换和列变换,使得M1的值得到保护。
(2)为了保护矩阵M2,仍然对其作行变换和列变换,这里用户利用稀疏矩阵P2和稀疏矩阵P3的逆矩阵P3 -1,计算X2=P2M2P3 -1。
(3)计算完成后,用户将X1和X2发送给云服务器,并要求服务器计算两个矩阵的乘积,因为P1、P2、P3 -1和P2 -1是用户秘密保存的,云服务器不能够知道,所以云服务器不能从接收的矩阵X1和X2中获得有关矩阵M1和矩阵M2的信息,达到保护用户信息的目的。
计算阶段:
(1)服务器在接收到用户发来的矩阵X1和X2之后,计算两个矩阵的乘积,即Y=X1X2;
(2)计算完成后,云服务器将计算结果Y返回给用户。
恢复与验证阶段:
(1)用户端接收云返回的结果Y,因为Y=X1X2,并且X1=P1M1P2 -1、X2=P2M2P3 -1,所以:
(2)根据矩阵乘法的运算规则,利用用户端存储的稀疏矩阵矩阵P1的逆矩阵P1 -1和稀疏矩阵P3,用户对矩阵Y左乘P1 -1右乘P3,可以得到M1和M2的乘积,即
(3)用户经过第二步得到的矩阵T是对云的返回值Y进行解盲化的结果,但是用户需要在本地验证T是否是正确的,用户利用预处理步骤计算并存储在本地的值c来验证结果是否正确,因为c=M(i,j),所以如果解盲化得到的矩阵T的第i行第j列的值如果等于c,那么验证通过,即如果T(i,j)=c等式成立,用户相信云服务器诚实工作并返回了争取的计算结果,用户就可以由Y解盲化得到正确的结果,也就是M=T=P1 -1YP3。
(4)如果第c’步的验证等式T(i,j)=c不成立,用户相信云服务器并没有诚实的去进行计算,用户拒绝接收这个计算结果。
所有上述的首要实施这一知识产权,并没有设定限制其他形式的实施这种新产品和/或新方法。本领域技术人员将利用这一重要信息,上述内容修改,以实现类似的执行情况。但是,所有修改或改造基于本发明新产品属于保留的权利。
以上所述,仅是本发明的较佳实施例而已,并非是对本发明作其它形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例。但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。
Claims (7)
1.一种可验证的矩阵乘法的安全外包计算方法,其特征在于,包括:
第一步,用户外包,用户将自己耗时的计算矩阵乘法运算外包给云服务器;
第二步,云服务器计算,云服务器接收矩阵和运算之后,利用自己强大的计算资源进行矩阵乘法的计算,计算完成后将计算结果返回给用户;
第三步,用户恢复与验证,用户接收云返回的计算结果,并且验证这个结果的正确性。
2.如权利要求1所述的可验证的矩阵乘法的安全外包计算方法,其特征在于:
所述第一步进一步包括两个子步骤,分别为
第a步,预处理;
第b步,盲化。
3.如权利要求1或2所述的可验证的矩阵乘法的安全外包计算方法,其特征在于:所述第a步更进一步具体为,首先用户随机选择两个数字i和j,使得i和j满足条件1≤i,j≤n。然后取出矩阵M1的第i行和矩阵M2的第j列,分别是{ai1,ai2,...,ain}和{b1j,b2j,...,bnj}T({b1j,b2j,...,bnj}T是{b1j,b2j,...,bnj}的转置);用户计算c存储在用户端,由用户秘密保存,这里的c值恰好是矩阵M中第i行第j列的数值,这个值将用于用户对结果的验证。
4.如权利要求1至3所述的可验证的矩阵乘法的安全外包计算方法,其特征在于:所述第b步更进一步具体为用户从矩阵池中选择三个稀疏矩阵P1、P2和P3以及各自的逆矩阵P1 -1、P2 -1和P3 -1,将这六个矩阵秘密存储于用户端,这六个矩阵将会用于矩阵的盲化处理,盲化过程是X1=P1M1P2 -1,X2=P2M2P3 -1,矩阵P1 -1和P3将在结果的恢复过程中被使用。
5.如权利要求1至4所述的可验证的矩阵乘法的安全外包计算方法,其特征在于:所述第二步云计算步骤具体为用户C将预处理后的矩阵X1和X2交付给云服务器S,云服务器S对矩阵进行矩阵的乘法计算Y=X1X2,并将计算结果Y返回给用户C。
6.如权利要求1至5所述的可验证的矩阵乘法的安全外包计算方法,其特征在于:所述第三步用户恢复与验证步骤具体为用户C需要从S返回的结果Y中恢复出矩阵M1和M2相乘的结果M并验证其正确性。
7.一种可验证的矩阵乘法的安全外包计算系统,其特征在于,包括:
预处理模块,首先用户随机选择两个数字i和j,使得i和j满足条件1≤i,j≤n。然后取出矩阵M1的第i行和矩阵M2的第j列,分别是{ai1,ai2,...,ain}和{b1j,b2j,...,bnj}T({b1j,b2j,...,bnj}T是{b1j,b2j,...,bnj}的转置);用户计算c存储在用户端,由用户秘密保存,这里的c值恰好是矩阵M中第i行第j列的数值,这个值将用于用户对结果的验证;
盲化模块,用户从矩阵池中选择三个稀疏矩阵P1、P2和P3以及各自的逆矩阵P1 -1、P2 -1和P3 -1,将这六个矩阵秘密存储于用户端,这六个矩阵将会用于矩阵的盲化处理,盲化阶段的处理过程是X1=P1M1P2 -1,X2=P2M2P3 -1,矩阵P1 -1和P3将在结果的恢复过程中被使用;
计算模块,用户C将预处理后的矩阵X1和X2交付给云服务器S,云服务器S对矩阵进行矩阵的乘法计算Y=X1X2,并将计算结果Y返回给用户C;
恢复与验证模块,具体为用户C需要从S返回的结果Y中恢复出矩阵M1和M2相乘的结果M并验证其正确性。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710199478.5A CN106775576A (zh) | 2017-03-28 | 2017-03-28 | 可验证的矩阵乘法的安全外包计算方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710199478.5A CN106775576A (zh) | 2017-03-28 | 2017-03-28 | 可验证的矩阵乘法的安全外包计算方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106775576A true CN106775576A (zh) | 2017-05-31 |
Family
ID=58966851
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710199478.5A Pending CN106775576A (zh) | 2017-03-28 | 2017-03-28 | 可验证的矩阵乘法的安全外包计算方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106775576A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108768622A (zh) * | 2018-03-30 | 2018-11-06 | 国网河南省电力公司新乡供电公司 | 一种云计算中矩阵行列式的安全外包计算加密方法 |
CN109409116A (zh) * | 2018-11-12 | 2019-03-01 | 青岛大学 | 求解无向带权图最小割的安全外包方法 |
CN109450625A (zh) * | 2018-11-12 | 2019-03-08 | 青岛大学 | 大规模多项式扩展欧几里得算法的安全外包方法 |
CN109684603A (zh) * | 2019-01-09 | 2019-04-26 | 四川大学 | 一种高效求解大尺度矩阵行列式的可验证外包计算方法、客户端及云计算系统 |
CN110247913A (zh) * | 2019-06-18 | 2019-09-17 | 电子科技大学 | 一种支持矩阵零元素隐私保护的安全矩阵乘法外包方法 |
CN111352609A (zh) * | 2020-03-05 | 2020-06-30 | 青岛大学 | 一种基于边缘计算的分布式外包模幂运算方法 |
CN111586038A (zh) * | 2020-05-06 | 2020-08-25 | 青岛大学 | 一种数据处理方法、装置及区块链节点设备和存储介质 |
CN111984990A (zh) * | 2020-09-07 | 2020-11-24 | 青岛大学 | 基于边缘计算的支持隐私保护的矩阵乘法任务外包方法 |
CN112565081A (zh) * | 2020-12-09 | 2021-03-26 | 青岛大学 | 最短路径的隐私保护处理方法及相关组件 |
CN113039744A (zh) * | 2018-11-16 | 2021-06-25 | 诺基亚技术有限公司 | 外包数据处理 |
CN113271293A (zh) * | 2021-04-09 | 2021-08-17 | 上海大学 | 可验证的有约束二次规划安全外包计算方法及系统 |
CN116755771A (zh) * | 2023-07-24 | 2023-09-15 | 太初(无锡)电子科技有限公司 | 一种基于软硬件交互反馈的矩阵乘模块合法性验证方法 |
CN117521104A (zh) * | 2023-11-17 | 2024-02-06 | 山东大学 | 基于局部线性嵌入的人脸识别安全外包计算方法及系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102314580A (zh) * | 2011-09-20 | 2012-01-11 | 西安交通大学 | 一种基于向量和矩阵运算的支持计算的加密方法 |
-
2017
- 2017-03-28 CN CN201710199478.5A patent/CN106775576A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102314580A (zh) * | 2011-09-20 | 2012-01-11 | 西安交通大学 | 一种基于向量和矩阵运算的支持计算的加密方法 |
Non-Patent Citations (2)
Title |
---|
LEI X 等: ""Achieving security, robust cheating resistance, and high-efficiency for outsourcing large matrix multiplication computation to a malicious cloud"", 《INFORMATION SCIENCES》 * |
胡杏 等: ""可验证安全外包矩阵计算及其应用"", 《中国科学:信息科学》 * |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108768622A (zh) * | 2018-03-30 | 2018-11-06 | 国网河南省电力公司新乡供电公司 | 一种云计算中矩阵行列式的安全外包计算加密方法 |
CN109409116A (zh) * | 2018-11-12 | 2019-03-01 | 青岛大学 | 求解无向带权图最小割的安全外包方法 |
CN109450625A (zh) * | 2018-11-12 | 2019-03-08 | 青岛大学 | 大规模多项式扩展欧几里得算法的安全外包方法 |
CN109409116B (zh) * | 2018-11-12 | 2022-01-28 | 青岛大学 | 求解无向带权图最小割的安全外包方法 |
CN109450625B (zh) * | 2018-11-12 | 2022-01-04 | 青岛大学 | 大规模多项式扩展欧几里得算法的安全外包方法 |
CN113039744A (zh) * | 2018-11-16 | 2021-06-25 | 诺基亚技术有限公司 | 外包数据处理 |
CN109684603A (zh) * | 2019-01-09 | 2019-04-26 | 四川大学 | 一种高效求解大尺度矩阵行列式的可验证外包计算方法、客户端及云计算系统 |
CN110247913A (zh) * | 2019-06-18 | 2019-09-17 | 电子科技大学 | 一种支持矩阵零元素隐私保护的安全矩阵乘法外包方法 |
CN111352609A (zh) * | 2020-03-05 | 2020-06-30 | 青岛大学 | 一种基于边缘计算的分布式外包模幂运算方法 |
CN111586038A (zh) * | 2020-05-06 | 2020-08-25 | 青岛大学 | 一种数据处理方法、装置及区块链节点设备和存储介质 |
CN111984990A (zh) * | 2020-09-07 | 2020-11-24 | 青岛大学 | 基于边缘计算的支持隐私保护的矩阵乘法任务外包方法 |
CN111984990B (zh) * | 2020-09-07 | 2022-02-25 | 青岛大学 | 基于边缘计算的支持隐私保护的矩阵乘法任务外包方法 |
CN112565081A (zh) * | 2020-12-09 | 2021-03-26 | 青岛大学 | 最短路径的隐私保护处理方法及相关组件 |
CN112565081B (zh) * | 2020-12-09 | 2022-09-13 | 青岛大学 | 最短路径的隐私保护处理方法及装置 |
CN113271293A (zh) * | 2021-04-09 | 2021-08-17 | 上海大学 | 可验证的有约束二次规划安全外包计算方法及系统 |
CN116755771A (zh) * | 2023-07-24 | 2023-09-15 | 太初(无锡)电子科技有限公司 | 一种基于软硬件交互反馈的矩阵乘模块合法性验证方法 |
CN116755771B (zh) * | 2023-07-24 | 2024-04-26 | 太初(无锡)电子科技有限公司 | 一种基于软硬件交互反馈的矩阵乘模块合法性验证方法 |
CN117521104A (zh) * | 2023-11-17 | 2024-02-06 | 山东大学 | 基于局部线性嵌入的人脸识别安全外包计算方法及系统 |
CN117521104B (zh) * | 2023-11-17 | 2024-05-07 | 山东大学 | 基于局部线性嵌入的人脸识别安全外包计算方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106775576A (zh) | 可验证的矩阵乘法的安全外包计算方法及系统 | |
Mani et al. | Adaptive control for fractional order induced chaotic fuzzy cellular neural networks and its application to image encryption | |
Talarposhti et al. | A secure image encryption method based on dynamic harmony search (DHS) combined with chaotic map | |
Buhrman et al. | Quantum communication complexity advantage implies violation of a Bell inequality | |
CN110247913A (zh) | 一种支持矩阵零元素隐私保护的安全矩阵乘法外包方法 | |
US20190311813A1 (en) | Realizing private and practical pharmacological collaboration | |
Wang et al. | An image encryption scheme using a chaotic neural network and a network with multistable hyperchaos | |
CN108768622A (zh) | 一种云计算中矩阵行列式的安全外包计算加密方法 | |
Jin et al. | A secret image sharing based on neighborhood configurations of 2-D cellular automata | |
Nuding et al. | Data poisoning in sequential and parallel federated learning | |
CN106788980A (zh) | 一种面向云计算的矩阵乘法外包过程中安全加密方法 | |
CN109460536A (zh) | 大规模矩阵运算的安全外包算法 | |
CN113326475B (zh) | 一种基于初等矩阵的矩阵求逆外包计算方法 | |
CN102119506A (zh) | 共享数据的方法和系统 | |
Tian et al. | Achieving flatness: Graph labeling can generate graphical honeywords | |
Hu et al. | Secure outsourced computation of the characteristic polynomial and eigenvalues of matrix | |
Zhang et al. | Image encryption scheme based on a controlled zigzag transform and bit-level encryption under the quantum walk | |
CN111107076A (zh) | 一种安全高效的矩阵乘法外包方法 | |
CN115943397A (zh) | 垂直分区数据的联邦双随机核学习 | |
CN116318617A (zh) | 基于rfid和区块链的医疗救援物资慈善捐助方法 | |
Tian et al. | A provably secure and public auditing protocol based on the bell triangle for cloud data | |
Chai et al. | SE-NDEND: A novel symmetric watermarking framework with neural network-based chaotic encryption for Internet of Medical Things | |
He et al. | An algorithm based on 6D fractional order hyperchaotic system and knight tour algorithm to encrypt image | |
CN116388954B (zh) | 通用密态数据安全计算方法 | |
Palanivel et al. | Error mitigation using quantum neural Q network in secure qutrit distribution on Cleve's protocol on quantum computing |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170531 |
|
RJ01 | Rejection of invention patent application after publication |