发明内容
有鉴于此,本发明实施例提供了一种数据传输方法及装置,能够保障业务方数据不被泄露的情况下实现双方共同的运算需求。
为了实现上述目的,本发明实施例提供技术方案如下:
第一方面,本发明实施例提供了一种数据传输方法,包括:
接收第二设备发送的请求信息,所述请求信息用于请求基于目标信息集合中的信息进行隐私计算;
生成所述目标信息集合中各个信息对应的秘钥;
根据各个信息对应的秘钥生成各个信息的线性映射向量和随机扰动向量;生成所述线性映射向量的映射算法具有一级运算同态性,各个信息的随机扰动向量均与第一向量正交;
对各个信息的线性映射向量和随机扰动向量进行一级运算获得各个信息的密文;
向第二设备发送各个信息的密文;
接收所述第二设备发送的密文运算结果,所述密文运算结果为对所述目标信息集合中的至少两个信息的密文进行一级运算同态操作得到的结果;
根据所述第一向量解密所述密文运算结果获得明文运算结果;
向所述第二设备发送所述明文运算结果。
作为本发明实施例一种可选的实施方式,所述生成所述目标信息集合中各个信息对应的秘钥,包括:
随机选取一个非零实数作为所述目标信息集合中各个信息对应的公共随机数;
根据所述第一向量生成第二向量,所述第二向量与所述第一向量的内积为1;
针对所述目标信息集合中的每一个信息,随机选取一个非零实数作为所述信息的私有随机数;
针对所述目标信息集合中的每一个信息,随机从第一向量空间中选取随机数量个向量作为所述信息的随机向量集合;所述第一向量空间中的各个向量均与所述第一向量正交;
根据所述公共随机数、所述第二向量、各个信息的私有随机数以及各个信息的随机向量集合,生成各个信息对应的秘钥。
作为本发明实施例一种可选的实施方式,所述根据所述第一向量生成第二向量,包括:
随机生成一个分量数量为随机数且各个分量均为零的全零向量;
随机选取所述全零向量的一个分量作为所述全零向量的目标分量;
获取目标值,所述目标值为所述第一向量中与所述目标分量对应的分量的值;
将所述全零向量的目标分量的值设置为所述目标值的倒数获得所述第二向量。
作为本发明实施例一种可选的实施方式,在针对所述目标信息集合中的每一个信息,随机从第一向量空间中选取随机数量个向量作为所述信息的随机向量集合之前,所述方法还包括:
随机选取一个大于1的整数作为第一随机数;
根据所述第一随机数和实数集构造第二向量空间;
随机选取所述第二向量空间的一个子集作为所述第一向量空间;
计算所述第一向量空间的正交补空间获得第三向量空间;
从所述第三向量空间中随机选取一个向量作为所述第一向量。
作为本发明实施例一种可选的实施方式,所述根据各个信息对应的秘钥生成各个信息的线性映射向量和随机扰动向量,包括:
计算所述公共随机数、第一信息以及所述第二向量的乘积作为所述第一信息的线性映射向量;
计算所述第一信息的私有随机数与所述第一信息的随机向量集合中的各个向量的乘积的和作为所述第一信息的随机扰动向量。
作为本发明实施例一种可选的实施方式,所述对各个信息的线性映射向量和随机扰动向量进行一级运算获得各个信息的密文,包括:
对各个信息的线性映射向量和随机扰动向量进行求和获得各个信息的密文。
作为本发明实施例一种可选的实施方式,所述根据所述第一向量解密所述密文运算结果获得明文运算结果,包括:
计算所述公共随机数的倒数、所述密文运算结果以及所述第一向量的乘积获得所述明文运算结果。
第二方面,本发明实施例提供了一种数据传输装置,包括:
接收单元,用于接收第二设备发送的请求信息,所述请求信息用于请求基于目标信息集合中的信息进行隐私计算;
生成单元,用于生成所述目标信息集合中各个信息对应的秘钥;
加密单元,用于根据各个信息对应的秘钥生成各个信息的线性映射向量和随机扰动向量,以及对各个信息的线性映射向量和随机扰动向量进行一级运算获得各个信息的密文;生成所述线性映射向量的映射算法具有一级运算同态性,各个信息的随机扰动向量均与第一向量正交;
发送单元,用于向第二设备发送各个信息的密文;
所述接收单元,还用于接收所述第二设备发送的密文运算结果,所述密文运算结果为对所述目标信息集合中的至少两个信息的密文进行一级运算同态操作得到的结果;
解密单元,用于根据所述第一向量解密所述密文运算结果获得明文运算结果;
所述发送单元,还用于向所述第二设备发送所述明文运算结果。
作为本发明实施例一种可选的实施方式,所述生成单元,具体用于随机选取一个非零实数作为所述目标信息集合中各个信息对应的公共随机数;根据所述第一向量生成第二向量,所述第二向量与所述第一向量的内积为1;针对所述目标信息集合中的每一个信息,随机选取一个非零实数作为所述信息的私有随机数;针对所述目标信息集合中的每一个信息,随机从第一向量空间中选取随机数量个向量作为所述信息的随机向量集合;所述第一向量空间中的各个向量均与所述第一向量正交;根据所述公共随机数、所述第二向量、各个信息的私有随机数以及各个信息的随机向量集合,生成各个信息对应的秘钥。
作为本发明实施例一种可选的实施方式,所述生成单元,具体用于随机生成一个分量数量为随机数且各个分量均为零的全零向量;随机选取所述全零向量的一个分量作为所述全零向量的目标分量;获取目标值,所述目标值为所述第一向量中与所述目标分量对应的分量的值;将所述全零向量的目标分量的值设置为所述目标值的倒数获得所述第二向量。
作为本发明实施例一种可选的实施方式,所述生成单元,还用于在针对所述目标信息集合中的每一个信息,随机从第一向量空间中选取随机数量个向量作为所述信息的随机向量集合之前,随机选取一个大于1的整数作为第一随机数;根据所述第一随机数和实数集构造第二向量空间;随机选取所述第二向量空间的一个子集作为所述第一向量空间;计算所述第一向量空间的正交补空间获得第三向量空间;从所述第三向量空间中随机选取一个向量作为所述第一向量。
作为本发明实施例一种可选的实施方式,所述加密单元,具体用于计算所述公共随机数、第一信息以及所述第二向量的乘积作为所述第一信息的线性映射向量;计算所述第一信息的私有随机数与所述第一信息的随机向量集合中的各个向量的乘积的和作为所述第一信息的随机扰动向量。
作为本发明实施例一种可选的实施方式,所述加密单元,具体用于对各个信息的线性映射向量和随机扰动向量进行求和获得各个信息的密文。
作为本发明实施例一种可选的实施方式,所述解密单元,具体用于计算所述公共随机数的倒数、所述密文运算结果以及所述第一向量的乘积获得所述明文运算结果。
第三方面,本发明实施例提供了一种电子设备,包括:存储器和处理器,所述存储器用于存储计算机程序;所述处理器用于在调用计算机程序时,使得所述电子设备实现上述任一实施例所述的数据传输方法。
第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,当所述计算机程序被计算设备执行时,使得所述计算设备实现上述任一实施例所述的数据传输方法。
第五方面,本发明实施例提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机实现上述任一实施例所述的数据传输方法。
本发明实施例提供的数据传输方法在第一设备接收到第二设备发送的请求信息时,首先生成所述目标信息集合中各个信息对应的秘钥,并根据各个信息对应的秘钥生成各个信息的线性映射向量和随机扰动向量,以及对各个信息的线性映射向量和随机扰动向量进行一级运算获得各个信息的密文,然后向第二设备发送各个信息的密文,再接收第二设备发送的对所述目标信息集合中的至少两个信息的密文进行一级运算操作的得到的密文运算结果,最后对解密所述密文运算结果获得明文运算结果,并向第二设备发送明文运算结果。一方面,由于第一设备对信息进行加密后才会向第二设备发送相应的密文,因此第二设备仅能获得信息的密文,而无法获取信息,因此本发明实施例可以在避免信息泄露的情况下实现隐私计算。另一方面,由于第一设备对第二设备发送的密文运算结果进行解密后,仅仅能获得明文计算结果,而无法知晓明文运算结果是哪些信息的运算结果,因此本发明实施例可以在避免第一设备获取参与隐私计算的信息的情况下实现隐私计算。综上,本发明实施例在保护各方数据隐私不泄漏的前提下实现了共同的运算需求。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面将对本发明的方案进行进一步描述。需要说明的是,在不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但本发明还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本发明的一部分实施例,而不是全部的实施例。
在本发明实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本发明实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。此外,在本发明实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。
本申请的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一向量和第二向量操作等是用于区别不同的向量,而不是用于描述向量的特定顺序。
以下对本发明实施例提供的数据传输方法所应用的场景架构进行说明。参照图1所示,本发明数据传输方法所应用的场景中包括:第一设备11和第二设备12。其中,第一设备11为信息集合的拥有者,第一设备11和第二设备12要基于信息集合中的至少信息两个实现隐私计算,且在隐私计算过程需要避免第一设备11的隐私数据(信息集合)以及第二设备12的隐私数据(参与计算的信息)泄露。
在隐私计算过程中:第二设备12首先向第一设备11发送用于请求基于目标信息集合中的信息进行隐私计算请求信息。第一设备11收到第二设备12发送的请求信息后生成目标信息集合中各个信息对应的秘钥,并基于各个信息对应的秘钥对各个信息进行加密获取各个信息的密文,再将各个信息的密文发送至第二设备12。第二设备12对所述目标信息集合中的至少两个信息的密文进行一级运算同态操作得到密文运算结果,再将密文运算结果发回第一设备11。最后第一设备11对密文运算结果进行解密获取明文运算结果,并将明文运算结果发送至第二设备。至此,第二设备获得了明文运算结果,但第一设备11无法知晓哪些信息参与了明文运算结果的计算,第二设备12也无法知晓参与明文运算结果计算的信息,在保护第一设备和第二设备的数据隐私不泄漏的前提下,完成了共同的计算目标。
基于上述内容,本发明实施例提供了一种数据传输方法,参照图2所示,本发明实施例提供的数据传输方法包括如下步骤:
S21、第二设备向第一设备发送请求信息。
对应的,第一设备接收第二设备发送的请求信息。
其中,所述请求信息用于请求基于目标信息集合中的信息进行隐私计算。
示例性的,目标信息集合可以由第一设备根据第二设备指定的范围确定。例如:第二设备请求基于用户的信用卡额度进行隐私计算,则第一设备可以将所有用户的信用卡额度确定目标信息集合。
示例性的,目标信息集合也可以第二设备指定。例如:第二设备想要计算用户1、用户2的信用卡额度的平均值,则第二设备可以将目标信息集合确定为用户1至用户10的信用卡额度,从而在避免第一设备知晓参与隐私计算的信息的情况下实现隐私计算。
S22、第一设备生成所述目标信息集合中各个信息对应的秘钥。
即,针对第一设备保存的每一个信息均生成对应的秘钥,秘钥与信息一一对应。
S23、第一设备根据各个信息对应的秘钥生成各个信息的线性映射向量和随机扰动向量。
其中,生成所述线性映射向量的映射算法具有一级运算同态性,各个信息的随机扰动向量均与第一向量正交。
本发明实施例中的一级运算是指加法运算和/或减法运算。
本发明实施例中算法具有一级运算同态性是指:算法具有加法同态性和减法同态性。算法具有加法同态性是指:对于任意属于实数的x
1和x
2,该算法f均可以使得
其中,
为加法同态运算操作。算法具有减法同态性是指:对于任意属于实数的x
1和x
2,该算法f均可以使得
其中,
为减法同态运算操作。
本发明实施例中各个信息的随机扰动向量均与第一向量正交是指:各个信息的随机扰动向量与第一向量的内积(点乘)均为零。
设:生成所述线性映射向量的映射算法为f1,生成所述线性映射向量的映射算法为f2,第一向量为u,则有:f1具有一级运算同态性,f2(xi)u=0。
S24、第一设备对各个信息的线性映射向量和随机扰动向量进行一级运算获得各个信息的密文。
如上所述,一级运算是指加法运算和/或减法运算,因此对各个信息的线性映射向量和随机扰动向量进行一级运算获得各个信息的密文,可以包括:对各个信息的线性映射向量和随机扰动向量求和获取各个信息的密文、对各个信息的线性映射向量和随机扰动向量求差获取各个信息的密文。
S25、第一设备向第二设备发送各个信息的密文。
对应的,第二设备接收各个信息的密文。
示例性的,第一设备发送的各个信息的密文的形式可以如下表1所示:
表1
信息标识 |
标识1 |
标识2 |
…… |
标识n |
密文 |
c1 |
c2 |
…… |
cn |
即,第一设备向第二设备发送各个信息的密文,以及密文与信息之间的对应关系。
S26、第二设备向第一设备发送密文运算结果。
对应的,第一设备接收第二设备发送的密文运算结果。
其中,所述密文运算结果为对所述目标信息集合中的至少两个信息的密文进行一级运算同态操作得到的结果。
S27、第一设备根据所述第一向量解密所述密文运算结果获得明文运算结果。
S28、第一设备向所述第二设备发送所述明文运算结果。
对应的,第二设备接收第一设备发送的所述明文运算结果。
本发明实施例提供的数据传输方法在第一设备接收到第二设备发送的请求信息时,首先生成所述目标信息集合中各个信息对应的秘钥,并根据各个信息对应的秘钥生成各个信息的线性映射向量和随机扰动向量,以及对各个信息的线性映射向量和随机扰动向量进行一级运算获得各个信息的密文,然后向第二设备发送各个信息的密文,再接收第二设备发送的对所述目标信息集合中的至少两个信息的密文进行一级运算操作的得到的密文运算结果,最后对解密所述密文运算结果获得明文运算结果,并向第二设备发送明文运算结果。一方面,由于第一设备对信息进行加密后才会向第二设备发送相应的密文,因此第二设备仅能获得信息的密文,而无法获取信息,因此本发明实施例可以在避免信息泄露的情况下实现隐私计算。另一方面,由于第一设备对第二设备发送的密文运算结果进行解密后,仅仅能获得明文计算结果,而无法知晓明文运算结果是哪些信息的运算结果,因此本发明实施例可以在避免第一设备获取参与隐私计算的信息的情况下实现隐私计算。综上,本发明实施例在保护各方数据隐私不泄漏的前提下实现了共同的运算需求。
作为对上述实施例的扩展和细化,本发明实施例提供了一种应用与第一设备的数据传输方法,参照图3所示,该数据传输方法包括如下步骤:
S301、接收第二设备发送的请求信息。
其中,所述请求信息用于请求基于目标信息集合中的信息进行隐私计算。
S302、随机选取一个大于1的整数作为第一随机数。
设:第一随机数为d,所有整数组成的整数集为Z,则有:
d∈Z,且d>1
S303、根据所述第一随机数和实数集构造第二向量空间。
设:第二向量空间为C,所有实数组成的实数集为R,则有:
C=Rd
S304、随机选取所述第二向量空间的一个子集作为所述第一向量空间。
设:第一向量空间为V,则有:
S305、计算所述第一向量空间的正交补空间获得第三向量空间。
具体的,第一向量空间的正交补空间是指:所有正交于第一向量空间中的所有向量构成的向量空间。
设:第三向量空间为U,则有:
U=V⊥
S306、从所述第三向量空间中随机选取一个向量作为所述第一向量。
即,随机从第三向量空间中选取一个向量作为第一向量。
设:第一向量为u=[u1,u2,…,un]T,则有:
u∈U
此外,由于正交补性质可得:第一向量u与第一向量空间V中的任意向量的内积均为零。即,u
Tv=0,
S307、随机选取一个非零实数作为所述目标信息集合中各个信息对应的公共随机数。
设:选取的所述公共随机数为a,所有实数组成的集合为R,则有:
a∈R,且a≠0
S308、根据所述第一向量生成第二向量。
其中,所述第二向量与所述第一向量的内积为1。
设:第二向量为e=[e1,e2,…,en]T,则有:
uTe=1
具体的,第一向量u与第二向量的内积为u1e1+u2e2+…+unen。因此可以令u1e1+u2e2+…+unen=1,并根据u1,u2,…,un的值计算e1,e2,…,en,从而获取第二向量。
作为本发明实施例一种可选的实施方式,上步骤S37(根据所述第一向量生成第二向量)的一种实现方式包括如下步骤a至步骤d:
步骤a、随机生成一个分量数量为随机数且各个分量均为零的全零向量。
设:全零向量为O,全零向量的分量数量为6,则有:
O=[0,0,0,0,0,0]T
步骤b、随机选取所述全零向量的一个分量作为所述全零向量的目标分量。
即,随机选取一个全零向量的一个分量作为全零向量的目标分量。
步骤c、获取目标值。
其中,所述目标值为所述第一向量中与所述目标分量对应的分量的值。
示例性的,所述全零向量的目标分量为第三个分量,则目标值为u3。
步骤d、将所述全零向量的目标分量的值设置为所述目标值的倒数获得所述第二向量。
示例性的,当第一向量u=[u1,u2,……,un]T时,第二向量e可以为[1/u1,……,0,]T、[0,1/u2,……0]T、……、[0,0,……,1/un]T中的任一个。
承上所述,当全零向量O=[0,0,0,0,0,0]T,目标值为u3,则第二向量e=[0,0,1/u3,0,0,0]T。
uTe=u3(1/u3)=1
上述实施例设置第二向量的一个分量为非零值,而将第二向量的其它分量均设置为零,因此上述实施例可以简化后续的加密、机密计算,进而提高隐私计算的效率。
S309、针对所述目标信息集合中的每一个信息,随机选取一个非零实数作为所述信息的私有随机数。
即,对各个信息分别选取一个对应的私有随机数。
S310、针对所述目标信息集合中的每一个信息,随机从第一向量空间中选取随机数量个向量作为所述信息的随机向量集合。
即,从第一向量空间为各个信息选取随机数量个向量,并将为每一个信息选取的随机数量个向量组合为该信息的随机向量集合。
S311、根据所述公共随机数、所述第二向量、各个信息的私有随机数以及各个信息的随机向量集合,生成各个信息对应的秘钥。
设:信息m1对应的秘钥为k1,则有:
其中,a为公共随机数,y
v1为信息m1的私有随机数,e为第二向量,
为信息m1的随机向量集合。
S312、计算所述第一信息的私有随机数与所述第一信息的随机向量集合中的各个向量的乘积的和作为所述第一信息的随机扰动向量。
设:第一信息为m1,第一信息的线性映射向量为A1,则有:
A1=am1e
其中,a为公共随机数,e为第二向量。
S313、计算所述第一信息的私有随机数与所述第一信息的随机向量集合中的各个向量的乘积的和作为所述第一信息的随机扰动向量。
设:第一信息的私有随机数为y
v1,第一信息的随机向量集合为
第一信息的随机扰动向量为B
1,则有:
S314、对各个信息的线性映射向量和随机扰动向量进行一级运算获得各个信息的密文。
作为本发明实施例一种可选的实施方式,上述步骤S313(对所述第一信息的线性映射向量和所述第一信息的随机扰动向量进行一级运算获得所述第一信息的密文)包括:
对所述第一信息的线性映射向量和所述第一信息的随机扰动向量进行求和获得所述第一信息的密文。
设:第一信息m1的密文为c1,加密操作为Ek则有:
作为本发明实施例一种可选的实施方式,上述步骤S314(对各个信息的线性映射向量和随机扰动向量进行一级运算获得各个信息的密文)包括:
对各个信息的线性映射向量和随机扰动向量进行求和获得各个信息的密文。
设:第一信息m1的密文为c1,加密操作为Ek则有:
逐一对目标信息集合中的每一个信息执行上述步骤S312至S314,则可以获取目标信息集合中的每一个信息的密文。
以下结合上述内容对本发明实施例提供的数据传输方法的安全性进行说明。
本发明实施例中任一信息的密文为该信息的线性映射向量与该信息的随机扰动向量的一级运算结果。
首先,由于随机扰动向量包括含了一个私有随机数和一个随机向量集合,因此即使对同一信息m执行n次加密得到密文c1,…,cn,由于随机数、随机向量集合中向量的数量、随机向量集合中的向量均有很大概率不同,因此有极大概率c1≠c2≠…≠cn,进而使信息窃取者无法得知该多个密文为同一信息的密文,进而保证语义的安全性。
其次,由于文明m的密文c1,…,cn中的任意密文之间的差值为一个向量集合,因此信息窃取者无法根据密文的之间的差值获取有效信息。例如:c1与c2的差值Δ的表达式为:
c
1与c
2的差值Δ只是向量集合
与向量集合
的并集,无法得到信息的明文。
此外,由于线性映射向量中包含公共随机数和第二向量,因此在公共随机数和第二向量不泄露的情况下,即使信息窃取者根据足够多的密文推算出第一向量集合,并构造u使得u
Tv=0,
由于u
TE
k(m)≠m,因此仍可以避免信息泄露。
S315、向第二设备发送各个信息的密文。
S316、接收所述第二设备发送的密文运算结果。
其中,所述密文运算结果为对所述目标信息集合中的至少两个信息的密文进行一级运算同态操作得到的结果。
S317、计算所述公共随机数的倒数、所述密文运算结果以及所述第一向量的乘积获得所述明文运算结果。
设:密文运算结果为C,解密操作为Dk,明文运算结果为M,则有:
M=Dk(C)=a-1uTC
S318、向所述第二设备发送所述明文运算结果。
进一步的,以下以密文运算结果C为对信息m1的密文Ek(m1)和信息m2的密文Ek(m2)进行求和、明文运算结果为M为例对上实施例的原理进行说明。
由于第一向量u与第二向量e的内积为1,因此有:
(a-1a)m1(uTe)=m1
(a-1a)m2(uTe)=m2
由于第一向量u与第一向量空间V中的各个向量均正交,而各个信息的随机向量集合
等均为从第一向量空间V中选取的向量组成的集合,因此
综上可得:M=Dk(Ek(m1)+Ek(m2))=m1+m2
以下结合上述内容对本发明实施例提供的数据传输方法的高效性进行说明。
首先,在对信息进行加密的过程中,全同态加密方案普遍需要使用两次指数运算两次指数运算提供的数据传输方法仅需要仅用一级运算和乘法运算即可完成,一级运算和乘法运算的计算复杂度远远小于指数运算。
其次,在计算密文运算结果的过程中,全同态加密方案普遍需要使用乘法运算,而本发明方案仅使用一级运算即可完成,一级运算的计算复杂度远远小于乘法运算。
最后,在对密文运算结果进行解密的过程中,全同态加密方案需要进行指数运算,而本发明方案仅使用乘法运算即可,乘法运算的计算复杂度远远小于指数运算。
综上,本发明实施例提供的数据传输方法使用计算复杂度更低的一级运算和乘法运算,替代了行业通用方案的乘法运算和指数运算,达到了提升计算效率的目的。
进一步的,以下信息包括客户1、客户2、客户3、客户4以及客户5分别在A银行的信用卡额度10000、3000、5000、6000、80000,B银行具有潜在用户客户1、客户3、客户5,A银行与B银行均想要计算的B银行具有潜在用户在A银行的信用卡额度平均值为例对上述实施例进行举例说明。
首先,A银行获取各个客户的信用卡额度的密文,得到Ek(10000)、Ek(3000)、Ek(5000)、Ek(6000)、Ek(80000)。
其次,A银行将各个客户的信用卡额度的密文发送给B银行。
示例性的,A银行向B银行发送的消息可以如下所述:
客户1:Ek(10000)
客户2:Ek(3000)
客户3、Ek(5000)
客户4、Ek(6000)
客户5、Ek(80000)
然后,B银行将各个潜在用户(客户1、客户3、客户5)的信用卡额度的密文相加,并求平均值,得到
至此,在A银行对哪些客户是B银行的潜在用户无感知,B银行对各个潜在用户A银行的信用卡额度无感知的情况下,A银行和B银行均得到了B银行具有潜在用户在A银行的信用卡额度平均值。
基于同一发明构思,作为对上述方法的实现,本发明实施例还提供了一种数据传输装置,该数据传输装置实施例与前述方法实施例对应,为便于阅读,本数据传输装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的数据传输装置能够对应实现前述方法实施例中的全部内容。
本发明实施例提供了一种数据传输装置。图4为该数据传输装置的结构示意图,如图4所示,该数据传输装置400包括:
接收单元41,用于接收第二设备发送的请求信息,所述请求信息用于请求基于目标信息集合中的信息进行隐私计算;
生成单元42,用于生成所述目标信息集合中各个信息对应的秘钥;
加密单元43,用于根据各个信息对应的秘钥生成各个信息的线性映射向量和随机扰动向量,以及对各个信息的线性映射向量和随机扰动向量进行一级运算获得各个信息的密文;生成所述线性映射向量的映射算法具有一级运算同态性,各个信息的随机扰动向量均与第一向量正交;
发送单元44,用于向第二设备发送各个信息的密文;
所述接收单元41,还用于接收所述第二设备发送的密文运算结果,所述密文运算结果为对所述目标信息集合中的至少两个信息的密文进行一级运算同态操作得到的结果;
解密单元45,用于根据所述第一向量解密所述密文运算结果获得明文运算结果;
所述发送单元44,还用于向所述第二设备发送所述明文运算结果。
作为本发明实施例一种可选的实施方式,所述生成单元42,具体用于随机选取一个非零实数作为所述目标信息集合中各个信息对应的公共随机数;根据所述第一向量生成第二向量,所述第二向量与所述第一向量的内积为1;针对所述目标信息集合中的每一个信息,随机选取一个非零实数作为所述信息的私有随机数;针对所述目标信息集合中的每一个信息,随机从第一向量空间中选取随机数量个向量作为所述信息的随机向量集合;所述第一向量空间中的各个向量均与所述第一向量正交;根据所述公共随机数、所述第二向量、各个信息的私有随机数以及各个信息的随机向量集合,生成各个信息对应的秘钥。
作为本发明实施例一种可选的实施方式,所述生成单元42,具体用于随机生成一个分量数量为随机数且各个分量均为零的全零向量;随机选取所述全零向量的一个分量作为所述全零向量的目标分量;获取目标值,所述目标值为所述第一向量中与所述目标分量对应的分量的值;将所述全零向量的目标分量的值设置为所述目标值的倒数获得所述第二向量。
作为本发明实施例一种可选的实施方式,所述生成单元42,还用于在针对所述目标信息集合中的每一个信息,随机从第一向量空间中选取随机数量个向量作为所述信息的随机向量集合之前,随机选取一个大于1的整数作为第一随机数;根据所述第一随机数和实数集构造第二向量空间;随机选取所述第二向量空间的一个子集作为所述第一向量空间;计算所述第一向量空间的正交补空间获得第三向量空间;从所述第三向量空间中随机选取一个向量作为所述第一向量。
作为本发明实施例一种可选的实施方式,所述加密单元43,具体用于计算所述公共随机数、第一信息以及所述第二向量的乘积作为所述第一信息的线性映射向量;计算所述第一信息的私有随机数与所述第一信息的随机向量集合中的各个向量的乘积的和作为所述第一信息的随机扰动向量。
作为本发明实施例一种可选的实施方式,所述加密单元43,具体用于对各个信息的线性映射向量和随机扰动向量进行求和获得各个信息的密文。
作为本发明实施例一种可选的实施方式,所述解密单元45,具体用于计算所述公共随机数的倒数、所述密文运算结果以及所述第一向量的乘积获得所述明文运算结果。
基于同一发明构思,本发明实施例还提供了一种电子设备。图5为本发明实施例提供的电子设备的结构示意图,如图5所示,本实施例提供的电子设备包括:存储器51和处理器52,所述存储器51用于存储计算机程序;所述处理器52用于在调用计算机程序时,使得所述电子设备实现上述实施例提供的数据传输方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,当所述计算机程序被计算设备执行时,使得所述计算设备实现上述实施例提供的数据传输方法。
本发明实施例还提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机实现上述实施例提供的数据传输方法。
本领域技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质上实施的计算机程序产品的形式。
处理器可以是中央处理单元(CentralProcessingUnit,CPU),还可以是其他通用处理器、数字信号处理器(DigitalSignalProcessor,DSP)、专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、现成可编程门阵列(Field-ProgrammableGateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动存储介质。存储介质可以由任何方法或技术来实现信息存储,信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。根据本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。