CN115834018A - 一种保护隐私的多方数据处理方法、系统和设备 - Google Patents
一种保护隐私的多方数据处理方法、系统和设备 Download PDFInfo
- Publication number
- CN115834018A CN115834018A CN202211336758.3A CN202211336758A CN115834018A CN 115834018 A CN115834018 A CN 115834018A CN 202211336758 A CN202211336758 A CN 202211336758A CN 115834018 A CN115834018 A CN 115834018A
- Authority
- CN
- China
- Prior art keywords
- vector
- matrix
- party
- ciphertext
- dimensional
- 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
Images
Abstract
一种保护隐私的多方数据处理方法、系统和设备,所述方法包括:第一方的设备将实数向量转换为N/2维复向量,通过同态加密算法基于公钥生成复向量的第一密文,将第一密文发送给第二方的设备,N为同态加密算法的参数值;第二方的设备将第一矩阵与实数向量的内积转换为N/2维参数向量和N/2维复向量的计算式,N/2维参数向量基于第一矩阵确定;基于计算式对第一密文进行同态计算,生成蕴含第一矩阵与实数向量的内积的第二密文,将第二密文发送给第一方的设备;第一方的设备根据同态加密算法,使用与公钥对应的私钥对第二密文进行处理,得到第一矩阵与实数向量的内积。
Description
技术领域
本说明书实施例属于数据处理技术领域,尤其涉及一种保护隐私的多方数据处理方法、系统和设备。
背景技术
在一些多方数据处理的场景下,通常包括矩阵持有方和向量持有方,矩阵持有方和向量持有方需要在保护各方隐私数据的情况下完成对矩阵和向量内积的计算。在相关技术中,可通过全同态加密算法实现该计算。全同态加密算法通常适用于对N/2维的向量进行处理,在实际中,向量持有方通常持有N维实数向量,矩阵持有方例如持有N阶方阵。为了适于进行同态加密,矩阵持有方和向量持有方需要分别将矩阵和向量拆分为N/2阶的矩阵和N/2维的向量,这样增加了计算量,需要占用较多的计算资源。
发明内容
本发明的目的在于提供一种多方数据处理方案,通过该方案可节省计算资源,提高计算效率。
本说明书第一方面提供一种保护隐私的多方数据处理方法,所述多方包括第一方和第二方,所述第一方拥有实数向量,所述第二方拥有用于与所述实数向量进行内积的第一矩阵,所述方法包括:
所述第一方的设备将所述实数向量转换为N/2维复向量,通过同态加密算法基于公钥生成所述复向量的第一密文,将所述第一密文发送给所述第二方的设备,所述N为预设的与所述同态加密算法对应的参数值;
所述第二方的设备将所述第一矩阵与所述实数向量的内积转换为N/2维参数向量和所述N/2维复向量的计算式,所述N/2维参数向量基于所述第一矩阵确定;基于所述计算式对所述第一密文进行同态计算,生成蕴含所述第一矩阵与所述实数向量的内积的第二密文,将所述第二密文发送给所述第一方的设备;
所述第一方的设备根据所述同态加密算法,使用与所述公钥对应的私钥对所述第二密文进行处理,得到所述第一矩阵与所述实数向量的内积。
本说明书第二方面提供一种保护隐私的多方数据处理方法,所述多方包括第一方和第二方,所述第一方拥有实数向量,所述第二方拥有用于与所述实数向量进行内积的第一矩阵,所述方法由第一方设备执行,包括:
将所述实数向量转换为N/2维复向量;
通过同态加密算法基于公钥生成所述复向量的第一密文,所述N为预设的与所述同态加密算法对应的参数值;
将所述第一密文发送给所述第二方的设备;
从所述第二方的设备接收蕴含所述第一矩阵与所述实数向量的内积的第二密文,所述第二密文通过基于N/2维参数向量和所述N/2维复向量的计算式对所述第一密文进行同态计算而得到,所述N/2维参数向量基于所述第一矩阵确定;
根据所述同态加密算法,使用与所述公钥对应的私钥对所述第二密文进行处理,得到所述第一矩阵与所述实数向量的内积。
本说明书第三方面提供一种保护隐私的多方数据处理方法,所述多方包括第一方和第二方,所述第一方拥有实数向量,所述第二方拥有用于与所述实数向量进行内积的第一矩阵,所述方法由第二方设备执行,包括:
从所述第一方的设备接收第一密文,所述第一密文为通过同态加密算法基于公钥生成的N/2维复向量的密文,所述N/2维复向量基于所述实数向量生成,所述N为预设的与所述同态加密算法对应的参数值;
将所述第一矩阵与所述实数向量的内积转换为N/2维参数向量和所述N/2维复向量的计算式,所述N/2维参数向量基于所述第一矩阵确定;
基于所述计算式对所述第一密文进行同态计算,生成蕴含所述第一矩阵与所述实数向量的内积的第二密文;
将所述第二密文发送给所述第一方的设备。
本说明书第四方面提供一种保护隐私的多方数据处理系统,所述多方包括第一方和第二方,所述第一方拥有实数向量,所述第二方拥有用于与所述实数向量进行内积的第一矩阵,
所述第一方的设备用于:将所述实数向量转换为N/2维复向量,通过同态加密算法基于公钥生成所述复向量的第一密文,将所述第一密文发送给所述第二方的设备,所述N为预设的与所述同态加密算法对应的参数值;
所述第二方的设备用于:将所述第一矩阵与所述实数向量的内积转换为N/2维参数向量和所述N/2维复向量的计算式,所述N/2维参数向量基于所述第一矩阵确定;基于所述计算式对所述第一密文进行同态计算,生成蕴含所述第一矩阵与所述实数向量的内积的第二密文,将所述第二密文发送给所述第一方的设备;
所述第一方的设备还用于:根据所述同态加密算法,使用与所述公钥对应的私钥对所述第二密文进行处理,得到所述第一矩阵与所述实数向量的内积。
本说明书第五方面提供一种多方数据处理系统中的第一方设备,所述多方包括第一方和第二方,所述第一方拥有实数向量,所述第二方拥有用于与所述实数向量进行内积的第一矩阵,所述第一方设备包括:
转换单元,用于将所述实数向量转换为N/2维复向量;
生成单元,用于通过同态加密算法基于公钥生成所述复向量的第一密文,所述N为预设的与所述同态加密算法对应的参数值;
发送单元,用于将所述第一密文发送给所述第二方的设备;
接收单元,用于从所述第二方的设备接收蕴含所述第一矩阵与所述实数向量的内积的第二密文,所述第二密文通过基于N/2维参数向量和所述N/2维复向量的计算式对所述第一密文进行同态计算而得到,所述N/2维参数向量基于所述第一矩阵确定;
处理单元,用于根据所述同态加密算法,使用与所述公钥对应的私钥对所述第二密文进行处理,得到所述第一矩阵与所述实数向量的内积。
本说明书第六方面提供一种多方数据处理系统中的第二方设备,所述多方包括第一方和第二方,所述第一方拥有实数向量,所述第二方拥有用于与所述实数向量进行内积的第一矩阵,所述第二方设备包括:
接收单元,用于从所述第一方的设备接收第一密文,所述第一密文为通过同态加密算法基于公钥生成的N/2维复向量的密文,所述N/2维复向量基于所述实数向量生成,所述N为预设的与所述同态加密算法对应的参数值;
转换单元,用于将所述第一矩阵与所述实数向量的内积转换为N/2维参数向量和所述N/2维复向量的计算式,所述N/2维参数向量基于所述第一矩阵确定;
计算单元,用于基于所述计算式对所述第一密文进行同态计算,生成蕴含所述第一矩阵与所述实数向量的内积的第二密文;
发送单元,用于将所述第二密文发送给所述第一方的设备。
本说明书第七方面提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第二方面或第三方面所述的方法。
本说明书第八方面提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第二方面或第三方面所述的方法。
本说明书实施例提供一种多方之间进行矩阵与向量内积计算的方案,通过由向量持有方将实数向量转换为N/2维复向量,从而,向量持有方只需要对N/2维复向量进行一次加密,得到向量密文,并将向量密文发送给矩阵持有方,矩阵持有方基于矩阵和向量密文可通过更少的同态计算,得到矩阵与向量的内积的密文,节省了计算资源,提高了计算效率。
附图说明
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为一实施例中的系统结构图;
图2为本说明书实施例中的多方数据处理的方法流程图;
图3为本说明书实施例中4阶方阵与4维复向量的内积计算方法示意图;
图4是本说明书一实施例中对矩阵进行转换的示意图;
图5是本说明书一实施例中对矩阵进行转换的示意图;
图6为本说明书实施例中的一种多方数据处理系统中的第一方设备的结构图;
图7为本说明书实施例中的一种多方数据处理系统中的第二方设备的结构图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
本说明书实施例中的方案基于同态加密算法。同态加密算法包括以下六个算法:(1)密钥生成算法(KeyGen),该密钥生成算法用于生成私钥sk和公钥pk;(2)编码算法(Encode),编码算法用于将明文向量m转换为明文多项式pm,其中,由于该同态加密算法的密文多项式空间为N阶多项式空间,因此,该同态加密算法适用于对N/2维的向量m进行加密,向量m可以为实数向量或者复数向量(复向量),通过编码算法对向量m编码得到的明文多项式pm为N阶多项式;(3)加密算法(Encryption),该加密算法基于公钥pk将明文多项式pm加密为密文多项式;(4)解密算法(Decryption),该解密算法用于将密文多项式解密为明文多项式;(5)译码算法(Decode),该译码算法用于将明文多项式转换为明文向量,具体是将N阶明文多项式转换为N/2维向量(实数向量或复向量);(6)同态计算,包括同态加法、同态乘法、常向量乘法、旋转变换、共轭变换。
具体是,在同态加法中,对于向量m和向量t,则E(m+t)=E(m)+E(t),其中,向量m与向量t为维数相同的向量,E()表示对向量进行同态加密得到的密文(即密文多项式),这里的m+t是指向量m与向量t的对应分量相加;在同态乘法中,E(m°t)=E(m)×E(t),这里的m°t指向量m与向量t的对应分量相乘;在常向量乘法中,E(m°C)=E(m)×Encode(C),其中,C为明文向量,Encode(C)表示对明文向量C编码之后得到的明文多项式;在旋转变换中,E(ρ(m,i))=ρ2(E(m),i),其中,ρ(m,i)表示向量m中的每个元素循环左移i位,ρ2(E(m),i)表示密文多项式E(m)的旋转变换;在共轭变换中,E(conj(m))=conj2(E(M)),其中,向量m的每个分量可以为复数,假设向量m中的某个分量为a+ib,a和b都为实数,则对向量m取共轭之后,向量m中的分量a+ib转为a-ib,conj2(E(M))是指对密文多项式的共轭变换,例如,假设x的指数为1~N,在取共轭之后,E(M)中的xi转为xN-i。
图1为一实施例中的系统结构图。如图1所示,系统中可包括矩阵持有方P0的设备101和向量持有方P1的设备102,设备101中存储有矩阵持有方P0拥有的m行n列矩阵,设备102中存储有向量持有方P1拥有的n维向量。为了分别保护矩阵持有方P0和向量持有方P1各自的隐私数据,设备102可对向量进行同态加密,生成蕴含向量的密文(即向量对应的明文多项式的密文),将该密文发送给设备101。设备101可基于矩阵和蕴含向量的密文计算得出蕴含内积结果的密文,将蕴含内积结果的密文发送给设备102,从而设备102通过对蕴含内积结果的密文进行同态解密,可得到矩阵与向量的内积结果。
本说明书实施例可应用于例如多方联合建模的场景中。在该场景下,矩阵持有方P1例如为提供模型的模型方,模型方中持有的所述矩阵例如为模型中的参数矩阵。向量持有方例如为提供特征数据的数据方。数据方将蕴含向量的密文发送给模型方之后,模型方可将该密文输入模型,从而由该模型输出蕴含内积结果的密文。
本说明书实施例还可以用于隐私信息检索的场景下。在该场景下,矩阵持有方P1的设备101例如为存储有数据库的服务器,数据库中存储有矩阵形式的数据,设备102为用户设备。用户设备在需要查询矩阵的第i行时,可以构建用于查询数据的向量,其中该向量的第i个分量为1,其他分量为0。用户设备可对该向量进行同态加密,得到蕴含该向量的密文,即,用户设备基于该密文可得到该向量。之后,用户设备可将蕴含该向量的密文发送给服务器。服务器可基于矩阵对密文向量进行计算,得到蕴含内积结果的密文,并将蕴含内积结果的密文返回给用户设备。用户设备在对密文进行同态解密及译码之后,可得到查询结果,即该矩阵的第i行。通过如此,在数据查询的过程中,服务器无法知晓用户查询的具体数据,保护了用户隐私。
根据公式(1)和公式(2)可得到如下的公式(3):
即,公式(3)中将M行N列的矩阵与N维向量的内积转换为4个M/2行N/2列的矩阵与N/2维向量的内积,因此,向量持有方P1的设备102中在加密向量时,需要分别对向量和向量进行加密,得到和并将和发送给矩阵持有方P0的设备101。设备101需要分别计算和四项,以计算得到以为例,由于点积“·”不属于同态计算,需要将转换为包括上述至少一种同态计算之后,才可以基于进行运算得到因此,对于的运算计算量较大,而在该相关技术中需要计算4个M/2行N/2列的矩阵与N/2维向量的内积,计算量大,占用的计算资源较多,且耗时较多。
本说明书实施例提供一种多方之间进行矩阵与向量内积计算的方案,通过由向量持有方将实数向量转换为N/2维复向量,从而,向量持有方只需要对N/2维复向量进行一次加密,得到向量密文并将向量密文发送给矩阵持有方,矩阵持有方基于矩阵和向量密文可通过更少的同态计算,得到矩阵与向量的内积的密文,节省了计算资源,提高了计算效率。
图2为本说明书实施例中的多方数据处理的方法流程图。该方法可由矩阵持有方设备(下文中简称为矩阵持有方)和向量持有方设备(下文中简称为向量持有方)执行。
如图2所示,首先在步骤S201,向量持有方将实数向量转换为N/2维复向量。
其中,N为同态加密算法中的参数。如上文所述,同态加密算法的密文多项式空间为N阶多项式空间,因此,该同态加密算法适用于对N/2维的向量进行加密,显然N为偶数。为了便于进行同态计算,向量持有方通常需要将其持有的向量转换为N/2维的向量之后再基于同态加密算法进行加密。在本说明书实施例中,将实数向量转换为N/2维复向量,然后再基于同态加密算法进行加密。
具体是,在第一种情况中,图1中的矩阵W为N阶方阵,即m=n=N。在第二种情况中,图1中的矩阵W为M行N列矩阵,其中,M<N。在该第一种情况或第二种情况中,向量持有方都可以将N维实数向量中的N/2个实数分量转换为N/2维复向量中的复数分量中的虚部,从而形成N/2维复向量。例如,对于公式(2)中的向量可通过如下的公式(4)得到与向量对应的复向量X:
通过如公式(4)所述得到复向量X,假设
即根据公式(5)可得出:
将公式(6)和公式(7)代入公式(8)可得到如下的公式(9):
将公式(10)代入公式(9),可得到公式(11):
其中,在第一种情况中,由于矩阵W00、W01、W10、W11都是N/2阶方阵,因此矩阵W0和W1也都是N/2阶方阵。在第二种情况中,由于矩阵W00、W01、W10、W11都是M/2行N/2列的矩阵,因此矩阵W0和W1也都是M/2行N/2列的矩阵。
在得到公式(12)之后,通过基于公式(12)计算得到复向量Y,也就得到了向量和向量也就得到了矩阵W与向量的内积因此,矩阵持有方可通过公式(12)计算矩阵W与向量的内积。这样,由于向量X是N/2维的复向量,因此矩阵持有方在通过公式(12)进行计算时,只需要计算E(W0·X)和两项,以得到E(Y),相比于前述计算方式,大大减少了计算量。
在第三种情况中,图1中的矩阵W为N行M列矩阵,其中,M<N,且M整除N。在该情况下,例如N=16,M=4,可首先与上述公式(4)类似地得到M/2=2维的复向量其中x1和x2为基于向量中的分量生成的复数分量。然后可将N/M=4个复向量X进行列方向的拼接,从而得到N/2维的复向量Z:其中Z例如如公式(13)所示:
在该情况中,通过基于向量生成复向量,然后将该生成的复向量拼接为N/2维复向量参与同态加密的计算,在后续进行同态计算时,可减少内积对应的同态计算式中需要计算的项数(将在下文中详细描述),同样可起到减少计算量的效果。
可以理解,本说明书实施例中的矩阵持有方设备中的矩阵不限于上述三种情况,矩阵的行数m和列数n可以分别大于N或者小于N。其中,在m和n中的最大值大于N的情况中,可通过将矩阵分割为上述三种情况中的任一情况的多个矩阵,将向量进行相应的分割(如果需要的话),从而将内积转换为包括上述三种情况中的至少一种情况下的运算。在m和n中的最大值小于N的情况中,可通过对矩阵W和/或向量进行填充或拼接,从而将内积转换为包括上述三种情况中的至少一种情况下的运算。
在步骤S203,向量持有方生成N/2维复向量的密文。
向量持有方可预先通过上述密钥生成算法生成用于进行同态加密的公钥pk和私钥sk,存储公钥pk和私钥sk,并将公钥pk提供给矩阵持有方。
向量持有方在生成N/2维复向量之后,首先可通过上述编码算法对复向量编码,得到N阶明文多项式。然后,可通过上述加密算法,使用公钥pk对该明文多项式加密,得到与该明文多项式对应的密文多项式,该密文多项式也与N/2维复向量对应,因此也可以称为是N/2维复向量的密文。
在步骤S205,向量持有方将N/2维复向量的密文发送给矩阵持有方。
向量持有方通过将复向量的密文发送给矩阵持有方,由于矩阵持有方没有私钥sk,因此不能获知密文对应的复向量,从而保护了向量持有方所持有的向量X中包含的隐私数据。
在第一种情况下,假设N=8,W0为N/2阶方阵,例如为4阶方阵,X为4维复向量。图3为本说明书实施例中4阶方阵与4维复向量的内积计算方法示意图。
在上述第二种情况中,对于M/2行N/2列的矩阵W0,M<N,且M整除N。例如,M/2=2,N/2=8,也即,如公式(15)和公式(16)所示,W0为2行8列的矩阵,X为8维复向量:
可如图4所示对W0进行转换,以用于将W0·X转换为适于进行同态计算。具体是,将N/M(即8/2=4)个矩阵W0在其竖直方向(即列方向)进行拼接,以得到N阶方阵。在如此拼接之后,可从图4所示的N阶方阵的对角方向获取参数向量和其中,
之后,可对W0·X进行如下转换:
之后,通过公式(18)基于向量I得到向量J:
J=I+ρ(I;2)+ρ(I;4)+ρ(I;6) (18)
可以容易的验证,向量J的前两个分量恰好为W0·X的内积结果,因此,可基于公式(17)和公式(18)计算W0·X。
在上述第三种情况中,对于N/2行M/2列的矩阵W0,N>M,且M整除N。例如,N/2=8,M/2=2,也即,如公式(19)和公式(20)所示,W0为8行2列的矩阵,X为2维复向量:
可如图5所示对W0进行转换,以用于将W0·X转换为包括同态计算。具体是,将M/N(即8/2=4)个矩阵W0在其水平方向(即行方向)进行拼接,以得到N阶方阵。在如此拼接之后,可从图5所示的N阶方阵的对角方向获取参数向量和其中,
同时,如前文所述,将4个向量X在列方向进行拼接,得到向量Z:
在进行如上转换之后,可如公式(21)所示将W0·X转换为的N/2维参数向量与N/2维复向量Z之间的计算式:
在步骤S209,矩阵持有方基于计算式对复向量的密文进行同态计算,生成蕴含矩阵与向量的内积的密文。
具体是,在上述第一种情况中,通过基于公式(14)进行同态计算,可得到如下的公式(22):
在上述第二种情况中,通过基于公式(17)和公式(18)进行同态计算,从而,与上文类似地,矩阵持有方在从向量持有方接收到E(X)之后,可基于公式(17)、公式(18)以及E(X)计算得到密文E(J)。密文E(J)中蕴含有W0·X的内积结果。矩阵持有方可类似地计算蕴含有的密文E(K)。从而可计算得到蕴含矩阵W与向量X的内积的密文E(J)+E(K)。
在上述第三种情况中,矩阵持有方在从向量持有方接收到E(Z)之后,可类似地基于公式(21)以及E(Z)计算得到密文E(W0·X)。矩阵持有方可类似地计算得到密文从而可计算得到蕴含矩阵W与向量X的内积的密文E(Y)。
具体是,对于上述第一种情况和第三种情况,向量持有方首先对密文(即N阶密文多项式)E(Y)解密,得到N阶明文多项式,然后,通过译码算法对N阶明文多项式进行译码,得到N/2维复向量Y,将复向量Y中的向量和向量代入公式(5),从而可得到矩阵W与向量的内积
对于上述第二种情况,向量持有方首先对密文(即N阶密文多项式)E(J)+E(K)解密,得到N阶明文多项式,然后,通过译码算法对N阶明文多项式进行译码,得到N/2维复向量,对该N/2维复向量取前M/2维的分量,得到M/2维复向量Y,将复向量Y中的向量和向量代入公式(5),从而可得到矩阵W与向量的内积
图6为本说明书实施例中的一种多方数据处理系统中的第一方设备的结构图,所述多方包括第一方和第二方,所述第一方拥有实数向量,所述第二方拥有用于与所述实数向量进行内积的第一矩阵,所述第一方设备包括:
转换单元61,用于将所述实数向量转换为N/2维复向量;
生成单元62,用于通过同态加密算法基于公钥生成所述复向量的第一密文,所述N为预设的与所述同态加密算法对应的参数值;
发送单元63,用于将所述第一密文发送给所述第二方的设备;
接收单元64,用于从所述第二方的设备接收蕴含所述第一矩阵与所述实数向量的内积的第二密文,所述第二密文通过基于N/2维参数向量和所述N/2维复向量的计算式对所述第一密文进行同态计算而得到,所述N/2维参数向量基于所述第一矩阵确定;
处理单元65,用于根据所述同态加密算法,使用与所述公钥对应的私钥对所述第二密文进行处理,得到所述第一矩阵与所述实数向量的内积。
图7为本说明书实施例中的一种多方数据处理系统中的第二方设备的结构图,所述多方包括第一方和第二方,所述第一方拥有实数向量,所述第二方拥有用于与所述实数向量进行内积的第一矩阵,所述第二方设备包括:
接收单元71,用于从所述第一方的设备接收第一密文,所述第一密文为通过同态加密算法基于公钥生成的N/2维复向量的密文,所述N/2维复向量基于所述实数向量生成,所述N为预设的与所述同态加密算法对应的参数值;
转换单元72,用于将所述第一矩阵与所述实数向量的内积转换为N/2维参数向量和所述N/2维复向量的计算式,所述N/2维参数向量基于所述第一矩阵确定;
计算单元73,用于基于所述计算式对所述第一密文进行同态计算,生成蕴含所述第一矩阵与所述实数向量的内积的第二密文;
发送单元74,用于将所述第二密文发送给所述第一方的设备。
本说明书实施例中还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行如图2所示的方法。
本说明书实施例中还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现如图2所示的方法。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为服务器系统。当然,本申请不排除随着未来计算机技术的发展,实现上述实施例功能的计算机例如可以为个人计算机、膝上型计算机、车载人机交互设备、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
虽然本说明书一个或多个实施例提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。例如若使用到第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
本发明是参照根据本发明实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储、石墨烯存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本说明书一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本说明书一个或多个实施例的实施例而已,并不用于限制本说明书一个或多个实施例。对于本领域技术人员来说,本说明书一个或多个实施例可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在权利要求范围之内。
Claims (16)
1.一种保护隐私的多方数据处理方法,所述多方包括第一方和第二方,所述第一方拥有实数向量,所述第二方拥有用于与所述实数向量进行内积的第一矩阵,所述方法包括:
所述第一方的设备将所述实数向量转换为N/2维复向量,通过同态加密算法生成所述复向量的第一密文,将所述第一密文发送给所述第二方的设备,所述N为预设的与所述同态加密算法对应的参数值;
所述第二方的设备将所述第一矩阵与所述实数向量的内积转换为N/2维参数向量和所述N/2维复向量的计算式,所述N/2维参数向量基于所述第一矩阵确定;基于所述计算式对所述第一密文进行同态计算,生成蕴含所述第一矩阵与所述实数向量的内积的第二密文,将所述第二密文发送给所述第一方的设备;
所述第一方的设备根据所述同态加密算法对所述第二密文进行处理,得到所述第一矩阵与所述实数向量的内积。
2.根据权利要求1所述的方法,所述第二方的设备将所述第一矩阵与所述实数向量的内积转换为N/2维参数向量和所述N/2维复向量的计算式,包括:
所述第二方设备将所述第一矩阵与所述实数向量的内积转换为第一公式,所述第一公式中包括第二矩阵与所述复向量的内积、及第三矩阵与所述复向量的共轭向量的内积,基于所述第二矩阵和所述第三矩阵确定所述N/2维参数向量,将所述第一公式转换为所述N/2维参数向量、所述N/2维复向量、所述N/2维复向量的共轭向量的计算式。
3.根据权利要求2所述的方法,所述实数向量为N维向量,所述第一方的设备将所述实数向量转换为N/2维复向量,包括:
所述第一方的设备将所述实数向量中的前一半的分量或者后一半的分量转换为所述N/2维复向量中的虚部。
4.根据权利要求2所述的方法,所述实数向量为M维向量,M小于N,且M整除N,所述第一方的设备将所述实数向量转换为N/2维复向量,包括:
所述第一方的设备将所述实数向量中的前一半的分量或者后一半的分量转换为M/2维复向量中的虚部,将N/M个M/2维复向量拼接为N/2维复向量。
5.根据权利要求1或2所述的方法,所述计算式中包括向量乘法、向量加法、常向量乘法、共轭变换和旋转变换中的至少一项。
6.根据权利要求3所述的方法,所述第二矩阵和所述第三矩阵为N/2阶方阵,所述基于所述第二矩阵和所述第三矩阵确定所述N/2维参数向量,包括:从所述第二矩阵和所述第三矩阵的对角方向确定N/2维参数向量。
7.根据权利要求3所述的方法,所述第二矩阵为M/2行N/2列矩阵,其中,M小于N,且M整除N,所述基于所述第二矩阵和所述第三矩阵确定所述N/2维参数向量,包括:将N/M个所述第二矩阵在其竖直方向进行拼接,得到N/2阶方阵,从所述N/2阶方阵的对角方向确定所述N/2维参数向量。
8.根据权利要求4所述的方法,所述第二矩阵为N/2行M/2列矩阵,其中,M小于N,且M整除N,所述基于所述第二矩阵和所述第三矩阵确定所述N/2维参数向量,包括:将N/M个所述第二矩阵在其水平方向进行拼接,得到N/2阶方阵,从所述N/2阶方阵的对角方向确定所述N/2维参数向量。
9.根据权利要求1所述的方法,其中,所述第一方为数据库持有方,第二方为数据查询方,所述第一向量用于指示所述第一矩阵中的待查询的数据。
10.一种保护隐私的多方数据处理方法,所述多方包括第一方和第二方,所述第一方拥有实数向量,所述第二方拥有用于与所述实数向量进行内积的第一矩阵,所述方法由第一方设备执行,包括:
将所述实数向量转换为N/2维复向量;
通过同态加密算法生成所述复向量的第一密文,所述N为预设的与所述同态加密算法对应的参数值;
将所述第一密文发送给所述第二方的设备;
从所述第二方的设备接收蕴含所述第一矩阵与所述实数向量的内积的第二密文,所述第二密文通过基于N/2维参数向量和所述N/2维复向量的计算式对所述第一密文进行同态计算而得到,所述N/2维参数向量基于所述第一矩阵确定;
根据所述同态加密算法对所述第二密文进行处理,得到所述第一矩阵与所述实数向量的内积。
11.一种保护隐私的多方数据处理方法,所述多方包括第一方和第二方,所述第一方拥有实数向量,所述第二方拥有用于与所述实数向量进行内积的第一矩阵,所述方法由第二方设备执行,包括:
从所述第一方的设备接收第一密文,所述第一密文为通过同态加密算法生成的N/2维复向量的密文,所述N/2维复向量基于所述实数向量生成,所述N为预设的与所述同态加密算法对应的参数值;
将所述第一矩阵与所述实数向量的内积转换为N/2维参数向量和所述N/2维复向量的计算式,所述N/2维参数向量基于所述第一矩阵确定;
基于所述计算式对所述第一密文进行同态计算,生成蕴含所述第一矩阵与所述实数向量的内积的第二密文;
将所述第二密文发送给所述第一方的设备。
12.一种保护隐私的多方数据处理系统,所述多方包括第一方和第二方,所述第一方拥有实数向量,所述第二方拥有用于与所述实数向量进行内积的第一矩阵,
所述第一方的设备用于:将所述实数向量转换为N/2维复向量,通过同态加密算法生成所述复向量的第一密文,将所述第一密文发送给所述第二方的设备,所述N为预设的与所述同态加密算法对应的参数值;
所述第二方的设备用于:将所述第一矩阵与所述实数向量的内积转换为N/2维参数向量和所述N/2维复向量的计算式,所述N/2维参数向量基于所述第一矩阵确定;基于所述计算式对所述第一密文进行同态计算,生成蕴含所述第一矩阵与所述实数向量的内积的第二密文,将所述第二密文发送给所述第一方的设备;
所述第一方的设备还用于:根据所述同态加密算法对所述第二密文进行处理,得到所述第一矩阵与所述实数向量的内积。
13.一种多方数据处理系统中的第一方设备,所述多方包括第一方和第二方,所述第一方拥有实数向量,所述第二方拥有用于与所述实数向量进行内积的第一矩阵,所述第一方设备包括:
转换单元,用于将所述实数向量转换为N/2维复向量;
生成单元,用于通过同态加密算法生成所述复向量的第一密文,所述N为预设的与所述同态加密算法对应的参数值;
发送单元,用于将所述第一密文发送给所述第二方的设备;
接收单元,用于从所述第二方的设备接收蕴含所述第一矩阵与所述实数向量的内积的第二密文,所述第二密文通过基于N/2维参数向量和所述N/2维复向量的计算式对所述第一密文进行同态计算而得到,所述N/2维参数向量基于所述第一矩阵确定;
处理单元,用于根据所述同态加密算法对所述第二密文进行处理,得到所述第一矩阵与所述实数向量的内积。
14.一种多方数据处理系统中的第二方设备,所述多方包括第一方和第二方,所述第一方拥有实数向量,所述第二方拥有用于与所述实数向量进行内积的第一矩阵,所述第二方设备包括:
接收单元,用于从所述第一方的设备接收第一密文,所述第一密文为通过同态加密算法生成的N/2维复向量的密文,所述N/2维复向量基于所述实数向量生成,所述N为预设的与所述同态加密算法对应的参数值;
转换单元,用于将所述第一矩阵与所述实数向量的内积转换为N/2维参数向量和所述N/2维复向量的计算式,所述N/2维参数向量基于所述第一矩阵确定;
计算单元,用于基于所述计算式对所述第一密文进行同态计算,生成蕴含所述第一矩阵与所述实数向量的内积的第二密文;
发送单元,用于将所述第二密文发送给所述第一方的设备。
15.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求10或11所述的方法。
16.一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求10或11所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211336758.3A CN115834018A (zh) | 2022-10-28 | 2022-10-28 | 一种保护隐私的多方数据处理方法、系统和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211336758.3A CN115834018A (zh) | 2022-10-28 | 2022-10-28 | 一种保护隐私的多方数据处理方法、系统和设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115834018A true CN115834018A (zh) | 2023-03-21 |
Family
ID=85525762
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211336758.3A Pending CN115834018A (zh) | 2022-10-28 | 2022-10-28 | 一种保护隐私的多方数据处理方法、系统和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115834018A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116506218A (zh) * | 2023-06-25 | 2023-07-28 | 杭州世平信息科技有限公司 | 一种云环境下用户数据交互式计算隐私保护方法及系统 |
-
2022
- 2022-10-28 CN CN202211336758.3A patent/CN115834018A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116506218A (zh) * | 2023-06-25 | 2023-07-28 | 杭州世平信息科技有限公司 | 一种云环境下用户数据交互式计算隐私保护方法及系统 |
CN116506218B (zh) * | 2023-06-25 | 2023-08-29 | 杭州世平信息科技有限公司 | 一种云环境下用户数据交互式计算隐私保护方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020253234A1 (zh) | 实现隐私保护的数据同态加解密方法及装置 | |
CN112016120B (zh) | 基于用户隐私保护的事件预测方法和装置 | |
JP6083234B2 (ja) | 暗号処理装置 | |
Meftah et al. | Doren: toward efficient deep convolutional neural networks with fully homomorphic encryption | |
US20120269340A1 (en) | Hierarchical encryption/decryption device and method thereof | |
JP2020074039A (ja) | データを暗号化する方法およびシステム | |
JP2016012111A (ja) | 暗号処理方法、暗号処理装置、および暗号処理プログラム | |
CN108923907B (zh) | 一种基于模容错学习问题的同态内积方法 | |
CN110391895B (zh) | 数据预处理方法、密文数据获取方法、装置和电子设备 | |
WO2020228366A1 (zh) | 基于区块链的图片处理方法及装置 | |
JP5852518B2 (ja) | 認証暗号化装置、認証復号装置、およびプログラム | |
WO2020155173A1 (en) | Data processing method, device and system for machine learning model | |
CN111934878A (zh) | 一种基于区块链的数据加密与解密方法、设备及介质 | |
CN115834018A (zh) | 一种保护隐私的多方数据处理方法、系统和设备 | |
CN112231718B (zh) | 数据加密处理方法、装置、计算机设备和存储介质 | |
CN111934874A (zh) | 一种基于区块链的数据加密与解密方法、设备及介质 | |
CN114419719B (zh) | 一种生物特征的处理方法及装置 | |
CN115276952A (zh) | 一种隐私数据处理方法及装置 | |
CN115982768A (zh) | 一种隐私求交方法及装置 | |
US11343070B2 (en) | System and method for performing a fully homomorphic encryption on a plain text | |
CN117478294A (zh) | 一种保护隐私的数据处理方法、设备和系统 | |
CN115987489B (zh) | 一种轻量级的加密解密方法、装置和存储介质 | |
CN114547645A (zh) | 浮点数处理方法、装置、终端以及存储介质 | |
CN114817970B (zh) | 基于数据来源保护的数据分析方法、系统及相关设备 | |
CN115801258B (zh) | 数据处理方法、装置、电子设备和计算机可读存储介质 |
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 |