1.本说明书一个或多个实施例涉及数据安全技术领域,尤其涉及隐私数据的处理方法和装置。
背景技术:2.在各种机器学习的场景中都存在有大量需要进行隐私保护的数据。比如,金融领域中在根据用户的数据构建风险预测模型时,需要保证用户的账户、交易明细等数据不被泄露;再比如,医疗领域在根据各患者的医疗数据建模以用于后续病情预测指导时,患者的医疗数据应进行隐私保护。
3.对隐私数据进行隐私计算使数据可用不可见,能够使隐私数据得到保护的前提下发挥数据的作用。然而机器学习领域中对隐私数据进行隐私计算可归约到对密文多项式的计算,而这需要在密文域进行大量乘法计算,导致对隐私数据进行处理的效率较低。
技术实现要素:4.本说明书一个或多个实施例描述了隐私数据的处理方法和装置,能够提高对隐私数据进行处理的效率。
5.根据第一方面,提供了隐私数据的处理方法,包括:
6.获取至少一个维度的隐私数据;
7.获取每一个维度的隐私数据所对应的多项式系数;
8.将所述多项式系数进行同态加密,得到密文系数;
9.将所述至少一个维度的隐私数据进行同态加密,得到密文隐私数据;
10.利用所述密文隐私数据和所述密文系数,按照机器学习中的明文多项式计算的规则进行隐私计算。
11.在一种可能的实现方式中,所述机器学习中的明文多项式的计算规则包括如下计算式:
[0012][0013]
其中,f(x)用于表征所述明文多项式,xi用于表征第i个维度的隐私数据,ai用于表征第i个维度的隐私数据所对应的多项式系数,n用于表征所述明文多项式中隐私数据的最高维度。
[0014]
在一种可能的实现方式中,所述将所述多项式系数进行同态加密得到密文系数,包括:
[0015]
将各个多项式系数组装成大小为n+1行的列向量;其中,n为所述明文多项式中隐私数据的最高维度;
[0016]
生成对多项式系数进行同态加密的第一公钥;
[0017]
利用所述第一公钥对所述列向量进行加密,得到所述密文系数。
[0018]
在一种可能的实现方式中,所述生成对多项式系数进行同态加密的第一公钥,包括:
[0019]
利用如下计算式生成所述第一公钥:
[0020][0021]
其中,pk用于表征所述第一公钥,pm为第一可逆矩阵,且与对密文系数进行解密的私钥中的可逆矩阵为互逆矩阵,i为第一单位矩阵,t和a均为随机矩阵。
[0022]
在一种可能的实现方式中,所述利用所述第一公钥对所述列向量进行加密得到所述密文系数,包括:
[0023]
利用如下计算式,计算所述密文系数:
[0024]
lc=pk
·
(vl)+e
[0025]
其中,lc用于表征所述密文系数,pk用于表征所述第一公钥,l用于表征所述列向量,v为一个预先设定的正整数,e为随机误差向量。
[0026]
在一种可能的实现方式中,所述将所述至少一个维度的隐私数据进行同态加密得到密文隐私数据,包括:
[0027]
将各个维度的隐私数据组装成大小为n+1列的行向量;其中,n为所述明文多项式中隐私数据的最高维度;
[0028]
确定对所述多项式的密文系数进行解密的第一私钥;
[0029]
利用所述第一私钥对所述行向量进行加密,得到所述密文隐私数据。
[0030]
在一种可能的实现方式中,所述利用所述第一私钥对所述行向量进行加密得到所述密文隐私数据,包括:
[0031]
利用如下计算式,计算所述密文隐私数据:
[0032][0033]
其中,xc用于表征所述密文隐私数据,pm′
为第二可逆矩阵,且与对密文隐私数据进行解密的私钥中的可逆矩阵为互逆矩阵,i
′
为第二单位矩阵,t
′
和a
′
均为为随机矩阵。
[0034]
根据第二方面,提供了隐私数据的处理装置,包括:获取模块、加密模块和隐私计算模块;
[0035]
所述获取模块,配置为获取至少一个维度的隐私数据;以及,获取每一个维度的隐私数据所对应的多项式系数;
[0036]
所述加密模块,配置为将所述获取模块获取的所述多项式系数进行同态加密,得到密文系数;以及,将所述至少一个维度的隐私数据进行同态加密,得到密文隐私数据;
[0037]
所述隐私计算模块,配置为利用所述加密模块得到的所述密文隐私数据和所述密文系数,按照机器学习中的明文多项式计算的规则进行隐私计算。
[0038]
在一种可能的实现方式中,所述加密模块在将所述多项式系数进行同态加密得到密文系数时,配置成执行如下操作:
[0039]
将各个多项式系数组装成大小为n+1行的列向量;其中,n为所述明文多项式中隐私数据的最高维度;
[0040]
生成对多项式系数进行同态加密的第一公钥;
[0041]
利用所述第一公钥对所述列向量进行加密,得到所述密文系数。
[0042]
根据第三方面,提供了一种计算设备,包括:存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现上述第一方面中任一项所述的方法。
[0043]
根据本说明书实施例提供的方法和装置,在对隐私数据进行处理时,首先获取至少一个维度的隐私数据以及每个维度的隐私数据所对应的多项式系数。然后分别对获取到的至少一个维度的隐私数据以及各维度的隐私数据所对应的多项式系数进行同态加密。最后利用得到的密文系数和密文隐私数据,按照机器学习中的明文多项式的计算规则即可实现隐私计算。由此可见,本方案中通过分别对隐私数据和多项式系数进行同态加密,不需要逐项的计算多项式,仅仅是密文隐私数据和密文系数之间的一次线性计算,即可实现明文多项式的隐私计算,从而能够大大提高隐私数据的处理效率。
附图说明
[0044]
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0045]
图1是本说明书一个实施例提供的一种隐私数据的处理方法的流程图;
[0046]
图2是本说明书一个实施例提供的一种对多项式系数进行加密的方法的流程图;
[0047]
图3是本说明书一个实施例提供的一种对隐私数据进行加密的方法的流程图;
[0048]
图4是本说明书一个实施例提供的另一种隐私数据的处理方法的流程图;
[0049]
图5是本说明书一个实施例提供的一种隐私数据的处理装置的示意图。
具体实施方式
[0050]
如前所述,隐私计算是对隐私数据进行保护的重要手段。隐私计算能够实现隐私数据的可用不可见,在保护数据隐私的前提下最大程度发挥数据的作用,这在机器学习领域中保护各样本数据不被泄露具有重要意义。
[0051]
在机器学习领域中对隐私数据进行隐私计算可归约为对密文多项式的计算。例如,密文线性回归和逻辑回归的预测过程就是一个密文多项式的计算;再比如,密文神经网络的推理本质上也是一个密文多项式的计算。然而,密文多项式是存在乘法的,在密文域中进行乘法计算的计算量是非常大的,这会大大影响设备对隐私数据进行处理效率。
[0052]
基于此,本方案考虑将多个维度的隐私数据和对应的多项式系数分别通过同态加密转化为密文的形式,从而将逐项的多项式计算转换为隐私数据的密文和多项式系数的密文之间的一次线性计算,以提高隐私数据的处理效率。
[0053]
如图1所示,本说明书实施例提供了隐私数据的处理方法,该方法可以包括如下步骤:
[0054]
步骤101:获取至少一个维度的隐私数据;
[0055]
步骤103:获取每一个维度的隐私数据所对应的多项式系数;
[0056]
步骤105:将多项式系数进行同态加密,得到密文系数;
[0057]
步骤107:将至少一个维度的隐私数据进行同态加密,得到密文隐私数据;
[0058]
步骤109:利用密文隐私数据和密文系数,按照机器学习中的明文多项式计算的规则进行隐私计算。
[0059]
本说明书实施例中,在对隐私数据进行处理时,首先获取至少一个维度的隐私数据以及每个维度的隐私数据所对应的多项式系数。然后分别对获取到的至少一个维度的隐私数据以及各维度的隐私数据所对应的多项式系数进行同态加密。最后利用得到的密文系数和密文隐私数据,按照机器学习中的明文多项式的计算规则即可实现隐私计算。由此可见,本方案中通过分别对隐私数据和多项式系数进行同态加密,不需要逐项的计算多项式,仅仅是密文隐私数据和密文系数之间的一次线性计算,即可实现明文多项式的隐私计算,从而能够大大提高隐私数据的处理效率。
[0060]
下面结合具体的实施例对附图1中的各个步骤进行说明。
[0061]
首先在步骤101中,获取至少一个维度的隐私数据。
[0062]
隐私数据可以为用于进行机器学习的样本数据,比如客户的经营数据、金融账户的交易数据、患者的医疗数据等。
[0063]
对于明文多项式来说,维度是指的隐私数据不同的次数。比如,隐私数据用x表示时,x1、x2、x3……
xn即为不同维度的隐私数据。当得到隐私数据x时,考虑在明文领域计算隐私数据x在不同维度下的值,即分别计算x1、x2、x3……
xn,其中n为明文多项式中隐私数据的最高维度。
[0064]
例如,在机器学习领域中对隐私数据进行隐私计算可归约为对多项式的计算,即机器学习中的多项式可以通过如下计算式表示:
[0065][0066]
其中,f(x)用于表征明文多项式,xi用于表征第i个维度的隐私数据,ai用于表征第i个维度的隐私数据所对应的多项式系数,n用于表征明文多项式中隐私数据的最高维度。
[0067]
也就是说,当机器学习中进行隐私计算的多项式如上述多项式时,本实施例中在获取隐私数据中应获取到x、x2、x3……
x
n-1
、xn等各个维度的隐私数据。具体地,可以在给定原始维度的隐私数据x时,通过计算不同幂指数得到不同维度的隐私数据[xn,x
n-1
,
…
,x,1]。如此,由于幂指数是在明文域中计算得到的,这相比于对隐私数据进行加密后在密文域中计算不同维度的隐私数据的值的过程,本实施例提供的方法更加简单和高效。
[0068]
然后在步骤103中,获取每一个维度的隐私数据所对应的多项式系数。
[0069]
每一个维度的隐私数据所对应的多项式系数由机器学习中的明文多项式来确定。比如,接上述例,进行计算的多项式为各个维度的隐私数据对应的系数为多项式系数,即[an,a
n-1
,
…
,a1,a0]。
[0070]
进一步在步骤105中,将多项式系数进行同态加密,得到密文系数。
[0071]
本步骤中,考虑将多项式系数进行同态加密。比如,如图2所示,可以通过如下步骤实现:
[0072]
步骤201:将各个多项式系数组装成大小为n+1行的列向量;其中,n为明文多项式
中隐私数据的最高维度;
[0073]
步骤203:生成对多项式系数进行同态加密的第一公钥;
[0074]
步骤205:利用第一公钥对列向量进行加密,得到密文系数。
[0075]
本实施例中,在对多项式系数进行同态加密时,首先可以将各个多项式系数组装成大小为n+1行的列向量,然后生成对多项式系数进行同态加密的第一公钥。如此利用生成的第一公钥即可对多项式系数的列向量进行加密,得到密文系数。由此可见,通过将各个多项式系数组装成一个列向量进行加密,能够将多项式计算中的逐项运算简化,从而提高计算的效率。
[0076]
下面对步骤201进行说明。
[0077]
对于一个隐私数据的最高维度为n的明文多项式f(x)=anxn+a
n-1
x
n-1
+
…
+a1x+a0来说,将各个多项式系数进行组装后得到的列向量为[an,a
n-1
,
…
,a1,a0]
t
。
[0078]
需要指出的是,n为明文多项式中隐私数据的最高维度,对于低于n维的项,且没有出现在明文多项式中时,其明文多项式的系数为0。比如,对于明文多项式f(x)=6x4+3x
2-x+6,多项式中没有维度为3的项,但隐私数据的最高维度为4,则由多项式系数构成的列向量应包含4+1=5个元素。实质上多项式中维度为3的项中的多项式系数为0,在构建多项式系数的列向量时应将该项进行补充,可得到对应的列向量[6,0,3,-1,6]
t
,即多项式中维度为3的多项式系数为0。
[0079]
下面对步骤203进行说明。
[0080]
本步骤中,在生成对多项式系数进行同态加密的第一公钥时,可以利用如下计算式生成第一公钥:
[0081][0082]
其中,pk用于表征第一公钥,pm为第一可逆矩阵,且与对密文系数进行解密的私钥中的可逆矩阵为互逆矩阵,i为第一单位矩阵,t和a均为随机矩阵。
[0083]
例如,在生成密钥时,首先可以生成一组参数,如下:
[0084]
正整数v,其可以预先设定,通常为一个大整数,比如可以为10000;
[0085]
单位矩阵i,其大小根据所要生成的第一公钥的大小来确定,比如该单位矩阵可以为一个三维的矩阵
[0086]
随机误差向量e,是一个非常小的噪音值,可以为经验值,也可以通过统计或实验得到。
[0087]
随机矩阵t和随机矩阵a,其可以通过计算机随机生成。比如,随机生成的矩阵矩阵
[0088]
一对互逆矩阵ps和pm,其中ps·
pm=i,比如,
[0089]
当得到上述各参数之后,则可以输出第一公钥为且对密文系数进行解密的私钥为sk=[i,t]
·
ps。
[0090]
下面对步骤205进行说明。
[0091]
接上述例,在利用第一公钥对列向量进行加密得到密文系数时,可以利用计算式lc=pk
·
(vl)+e对多项式系数进行加密,得到密文系数。
[0092]
其中,lc用于表征密文系数,pk用于表征第一公钥,l用于表征行向量,v为一个预先设定的正整数,e为随机误差向量。
[0093]
由此可见,通过上述步骤201-205,可以实现将多项式系数组装成一个列向量,并通过同态加密将其加密后转换为一个系数的密文向量。如此在对多项式进行计算时,避免了利用各项的密文系数进行逐项计算,而是利用密文向量进行线性变换即可实现计算,能够大大提高隐私计算的效率。
[0094]
进一步在步骤107中:将至少一个维度的隐私数据进行同态加密,得到密文隐私数据。
[0095]
本步骤中,考虑对获取到的至少一个维度的隐私数据进行同态加密。比如,如图3所示,可以通过如下步骤实现:
[0096]
步骤301:将各个维度的隐私数据组装成大小为n+1列的行向量;其中,n为明文多项式中隐私数据的最高维度;
[0097]
步骤303:确定对多项式的密文系数进行解密的第一私钥;
[0098]
步骤305:利用第一私钥对行向量进行加密,得到密文隐私数据。
[0099]
本实施例中,在对隐私数据进行同态加密时,首先可以将各个维度的隐私数据组装成大小为n+1列的行向量。然后确定对多项式系数进行解密的第一私钥,进一步利用第一私钥对组装的行向量进行加密得到密文隐私数据。由此可见,本方案是对多项式中各个维度的隐私数据进行加密的,避免了对隐私数据加密后再进行复杂的乘法计算。比如,对于n维多项式,如果先进行加密再进行多项式计算,那么对于xn需要n-1次的密文乘法,这严重制约着系统的计算效率。而本方案在明文域中计算xn,则是非常简单且高效的计算过程。
[0100]
下面对步骤301进行说明。
[0101]
对于一个隐私数据的最高维度为n的明文多项式f(x)=anxn+a
n-1
x
n-1
+
…
+a1x+a0来说,将各个维度的隐私数据组装得到的行向量为[xn,x
n-1
,
…
,x,1]。
[0102]
需要指出的是,n为明文多项式中隐私数据的最高维度,对于低于n维的项,且没有出现在明文多项式中时,只因其对应的多项式系数为0,但在组装隐私数据的行向量时依然需要补充。比如,对于明文多项式f(x)=6x4+3x
2-x+6,虽然维度为3的隐私数据没有出现在多项式中,但该项为0
·
x3,在组成各维度的隐私数据时,应把维度为3的隐私数据也进行补充,即得到的行向量为[x4,x3,x2,x,1],即得到的列向量中,隐私数据应从最高维度n遍历到维度0,以此构成隐私数据的n+1列的行向量。
[0103]
下面对步骤303进行说明。
[0104]
本步骤可参见上述203的相关阐述,其中对密文系数进行解密的第一私钥为sk=[i,t]
·
ps。
[0105]
下面对步骤305进行说明。
[0106]
在得到隐私数据的行向量和第一私钥后,考虑利用如下计算式对行向量进行加密得到密文隐私数据:
[0107][0108]
其中,xc用于表征密文隐私数据,pm′
为第二可逆矩阵,且与对密文隐私数据进行解密的私钥中的可逆矩阵为互逆矩阵,i
′
为第二单位矩阵,t
′
和a
′
均为为随机矩阵。
[0109]
本实施例中,第二可逆矩阵pm′
,第二单位矩阵i
′
,随机矩阵t
′
和a
′
可以与对多项式系数进行加密时的参数一样,也可以不一样。比如,第二单位矩阵可以和第一单位矩阵一样,也可以为大小存在差异的两个矩阵,如和的两个单位矩阵。再比如,第二可逆矩阵pm′
可以和第一可逆矩阵一样,也可以不一样,但需要保证第二可逆矩阵与对密文隐私数据进行解密的私钥中的可逆矩阵为互逆矩阵,如此才能保证对密文进行解密时的准确性。
[0110]
由此可见,通过上述步骤301-305可以实现将各个维度的隐私数据组装成一个行向量,并通过同态加密将其加密后转换成一个隐私数据的密文向量。如此在对多项式计算时,系数的密文向量和隐私数据的密文向量之间通过进行一次线性变换即可实现多项式的计算,避免了多项式中各项进行逐项计算,从而能够提高隐私数据的处理效率。
[0111]
最后在步骤109中,利用密文隐私数据和密文系数,按照机器学习中的明文多项式计算的规则进行隐私计算。
[0112]
本实施例中,在实现对多项式系数和隐私数据的加密之后,按照多项式的计算规则即可进行隐私计算。比如,对于多项式其计算规则即为计算多项式系数和对应各维度的隐私数据之间乘积的和。多项式系数和隐私数据组装成向量之后,即为计算两者之间的线性变换。即密文下的多项式计算则有yc=xc·
lc,其中,yc即为密文下的多项式计算值,xc即为密文隐私数据,lc即为密文系数。这里的计算本质上是两个矩阵的线性变换,没有逐项的计算多项式,所以任意次数的多项式计算都转换成了一次线性变换操作,非常高效。而且通过本方案,只要该加密方案同时支持密文加法和乘法,就可以将其改造为支持任意次数的密文多项式的计算,而且不会损失计算性能。
[0113]
下面以完成多项式f(x)=anxn+a
n-1
x
n-1
+
…
+a1x+a0的计算为例,对本方案进行进一步地说明。如图4所示,可以包括如下步骤:
[0114]
步骤401:生成对多项式系数进行加密的密钥;
[0115]
本步骤中,首先可以生成正整数v,单位矩阵i,随机误差向量e,随机矩阵t和随机
矩阵a,以及互逆矩阵ps和pm等参数,具体可参见对步骤203的说明。进一步,可以输出进行加密和解密的私钥sk=[i,t]
·
ps,以及公钥
[0116]
步骤403:将多项式中的多项式系数组装成一个列向量。
[0117]
比如,对于上述多项式f(x)所构成的多项式系数的列向量为[an,a
n-1
,
…
,a1,a0]
t
。其中,t表征向量的转置。
[0118]
步骤405:利用公钥pk对多项式系数进行加密,得到系数的密文向量。
[0119]
本步骤中,可以利用如下计算式对多项式系数进行加密:
[0120]
lc=enc(l,pk,e)=pk
·
(vl)+e
[0121]
步骤407:将各维度的隐私数据组装成一个行向量。
[0122]
本步骤中,给定隐私数据的输入x,先在明文域中计算各个维度的隐私数据,然后将计算得到的各个维度的隐私数据组装成为一个行向量[xn,x
n-1
,
…
,x,1]。
[0123]
步骤409:对隐私数据进行加密得到隐私数据的密文向量。
[0124]
本步骤中通过生成一组新的密钥生成参数,然后通过如下计算式得到密文隐私数据:具体说明可参见上述步骤305的说明。
[0125]
本步骤中,同时得到的新的解密密钥为sk
′
=[i
′
,t
′
]
·
ps′
。
[0126]
步骤411:在密文域进行多项式计算。
[0127]
上述多项式f(x)=anxn+a
n-1
x
n-1
+
…
+a1x+a0的计算可以转换为yc=xc·
lc的计算。
[0128]
此外,在进行解密或对上述密文计算的过程进行正确性验证时,可以通过如下过程进行:
[0129][0130][0131]
最后将上述结果中除以正整数v,得到:anxn+a
n-1
x
n-1
+
…
+a1x+a0,即为最后的解密结果,其中e
′
是一个很小的噪音,显然上述解密结果为明文多项式的计算结果,即本
方案计算性能的准确性较高,可靠性较好。
[0132]
当然需要指出的是,本方案提供的隐私数据的处理方法是一种非常底层的基础处理方式,因此可以支撑上层大量的应用场景。也就是说,机器学习领域是本方案提供的隐私数据的处理方案的一个应用场景,在一些可能的实现方式中,本方案还可以应用到其他的应用场景,比如符合多项式形式的计算场景都可以通过本方案进行数据处理。且只要加密方案同时支持加法和乘法,就可以将其改造成为支持任意次数的密文多项式的计算,而且不会损失计算性能。
[0133]
如图5所示,本说明书实施例提供了隐私数据的处理装置,包括:获取模块501、加密模块502和隐私计算模块503;
[0134]
获取模块501,配置为获取至少一个维度的隐私数据;以及,获取每一个维度的隐私数据所对应的多项式系数;
[0135]
加密模块502,配置为将获取模块501获取的多项式系数进行同态加密,得到密文系数;以及,将至少一个维度的隐私数据进行同态加密,得到密文隐私数据;
[0136]
隐私计算模块503,配置为利用加密模块502得到的密文隐私数据和密文系数,按照机器学习中的明文多项式计算的规则进行隐私计算。
[0137]
在一种可能的实现方式中,隐私计算模块503在进行隐私计算时,机器学习中的明文多项式的计算规则包括如下计算式:
[0138][0139]
其中,f(x)用于表征明文多项式,xi用于表征第i个维度的隐私数据,ai用于表征第i个维度的隐私数据所对应的多项式系数,n用于表征明文多项式中隐私数据的最高维度。
[0140]
在一种可能的实现方式中,加密模块502在将多项式系数进行同态加密得到密文系数时,配置成执行如下操作:
[0141]
将各个多项式系数组装成大小为n+1行的列向量;其中,n为明文多项式中隐私数据的最高维度;
[0142]
生成对多项式系数进行同态加密的第一公钥;
[0143]
利用第一公钥对列向量进行加密,得到密文系数。
[0144]
在一种可能的实现方式中,加密模块502在生成对多项式系数进行同态加密的第一公钥时,配置成利用如下计算式生成第一公钥:
[0145][0146]
其中,pk用于表征第一公钥,pm为第一可逆矩阵,且与对密文系数进行解密的私钥中的可逆矩阵为互逆矩阵,i为第一单位矩阵,t和a均为随机矩阵。
[0147]
在一种可能的实现方式中,加密模块502在利用第一公钥对列向量进行加密得到密文系数时,配置成利用如下计算式,计算密文系数:
[0148]
lc=pk
·
(vl)+e
[0149]
其中,lc用于表征密文系数,pk用于表征第一公钥,l用于表征列向量,v为一个预先设定的正整数,e为随机误差向量。
[0150]
在一种可能的实现方式中,加密模块502在将至少一个维度的隐私数据进行同态加密得到密文隐私数据时,配置成执行如下操作:
[0151]
将各个维度的隐私数据组装成大小为n+1列的行向量;其中,n为明文多项式中隐私数据的最高维度;
[0152]
确定对多项式的密文系数进行解密的第一私钥;
[0153]
利用第一私钥对行向量进行加密,得到密文隐私数据。
[0154]
在一种可能的实现方式中,加密模块502在利用第一私钥对行向量进行加密得到密文隐私数据时,配置成利用如下计算式,计算密文隐私数据:
[0155][0156]
其中,xc用于表征密文隐私数据,pm′
为第二可逆矩阵,且与对密文隐私数据进行解密的私钥中的可逆矩阵为互逆矩阵,i
′
为第二单位矩阵,t
′
和a
′
均为为随机矩阵。
[0157]
本说明书还提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行说明书中任一个实施例中的方法。
[0158]
本说明书还提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现说明书中任一个实施例中的方法。
[0159]
可以理解的是,本说明书实施例示意的结构并不构成对隐私数据的处理装置的具体限定。在说明书的另一些实施例中,隐私数据的处理装置可以包括比图示更多或者更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或者软件和硬件的组合来实现。
[0160]
上述装置内的各单元之间的信息交互、执行过程等内容,由于与本说明书方法实施例基于同一构思,具体内容可参见本说明书方法实施例中的叙述,此处不再赘述。
[0161]
本领域技术人员应该可以意识到,在上述一个或多个示例中,本说明书所描述的功能可以用硬件、软件、挂件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
[0162]
以上所述的具体实施方式,对本说明书描述的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
技术特征:1.隐私数据的处理方法,包括:获取至少一个维度的隐私数据;获取每一个维度的隐私数据所对应的多项式系数;将所述多项式系数进行同态加密,得到密文系数;将所述至少一个维度的隐私数据进行同态加密,得到密文隐私数据;利用所述密文隐私数据和所述密文系数,按照机器学习中的明文多项式计算的规则进行隐私计算。2.根据权利要求1所述的方法,其中,所述机器学习中的明文多项式的计算规则包括如下计算式:其中,f(x)用于表征所述明文多项式,x
i
用于表征第i个维度的隐私数据,a
i
用于表征第i个维度的隐私数据所对应的多项式系数,n用于表征所述明文多项式中隐私数据的最高维度。3.根据权利要求1所述的方法,其中,所述将所述多项式系数进行同态加密得到密文系数,包括:将各个多项式系数组装成大小为n+1行的列向量;其中,n为所述明文多项式中隐私数据的最高维度;生成对多项式系数进行同态加密的第一公钥;利用所述第一公钥对所述列向量进行加密,得到所述密文系数。4.根据权利要求3所述的方法,其中,所述生成对多项式系数进行同态加密的第一公钥,包括:利用如下计算式生成所述第一公钥:其中,pk用于表征所述第一公钥,p
m
为第一可逆矩阵,且与对密文系数进行解密的私钥中的可逆矩阵为互逆矩阵,i为第一单位矩阵,t和a均为随机矩阵。5.根据权利要求3所述的方法,其中,所述利用所述第一公钥对所述列向量进行加密得到所述密文系数,包括:利用如下计算式,计算所述密文系数:l
c
=pk
·
(vl)+e其中,l
c
用于表征所述密文系数,pk用于表征所述第一公钥,l用于表征所述列向量,v为一个预先设定的正整数,e为随机误差向量。6.根据权利要求1所述的方法,其中,所述将所述至少一个维度的隐私数据进行同态加密得到密文隐私数据,包括:将各个维度的隐私数据组装成大小为n+1列的行向量;其中,n为所述明文多项式中隐私数据的最高维度;确定对所述多项式的密文系数进行解密的第一私钥;
利用所述第一私钥对所述行向量进行加密,得到所述密文隐私数据。7.根据权利要求6所述的方法,其中,所述利用所述第一私钥对所述行向量进行加密得到所述密文隐私数据,包括:利用如下计算式,计算所述密文隐私数据:其中,x
c
用于表征所述密文隐私数据,p
m
′
为第二可逆矩阵,且与对密文隐私数据进行解密的私钥中的可逆矩阵为互逆矩阵,i
′
为第二单位矩阵,t
′
和a
′
均为为随机矩阵。8.隐私数据的处理装置,包括:获取模块、加密模块和隐私计算模块;所述获取模块,配置为获取至少一个维度的隐私数据;以及,获取每一个维度的隐私数据所对应的多项式系数;所述加密模块,配置为将所述获取模块获取的所述多项式系数进行同态加密,得到密文系数;以及,将所述至少一个维度的隐私数据进行同态加密,得到密文隐私数据;所述隐私计算模块,配置为利用所述加密模块得到的所述密文隐私数据和所述密文系数,按照机器学习中的明文多项式计算的规则进行隐私计算。9.根据权利要求8所述的装置,其中,所述加密模块在将所述多项式系数进行同态加密得到密文系数时,配置成执行如下操作:将各个多项式系数组装成大小为n+1行的列向量;其中,n为所述明文多项式中隐私数据的最高维度;生成对多项式系数进行同态加密的第一公钥;利用所述第一公钥对所述列向量进行加密,得到所述密文系数。10.一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-7中任一项所述的方法。
技术总结本说明书实施例描述了隐私数据的处理方法和装置。根据实施例的方法,考虑分别对至少一个维度的隐私数据以及各维度的隐私数据所对应的多项式系数进行同态加密,最后利用得到的密文系数和密文隐私数据按照机器学习中的明文多项式的计算规则进行隐私计算。如此通过分别对隐私数据和多项式系数进行同态加密,不需要逐项的计算多项式,仅仅是密文隐私数据和密文系数之间的一次线性计算,即可实现明文多项式的隐私计算,从而能够大大提高隐私数据的处理效率。处理效率。处理效率。
技术研发人员:周启贤 罗赛男
受保护的技术使用者:支付宝(杭州)信息技术有限公司
技术研发日:2022.07.25
技术公布日:2022/11/1