一种基于隐私保护的数据相减运算方法与流程
未命名
09-13
阅读:74
评论:0

1.本发明涉及信息安全技术领域,尤其涉及一种基于隐私保护的数据相减运算方法。
背景技术:
2.近年来,数据呈现出爆炸式增长的趋势,数据量和数据种类变得越来越复杂,大量有价值的客户信息、个人的隐私记录、企业的运营数据不断被挖掘。在这个数据爆发的时代,大数据下的隐私保护问题就显得尤为重要。
3.paillier加密算法是一种非对称式且满足加法同态性质的同态加密算法,与传统的公钥加密算法相比,其支持在密文域上执行算术运算,并且保证密文域上的运算结果解密后同明文域上的计算结果相同。目前,常采用paillier加密算法对明文数据进行加密计算,即两个数据方分别将需要计算的数据向量进行paillier加密后发送给计算方,由计算方计算出密文结果后发送给结果接收方,结果接收方对密文结果进行解密得到明文结果,整个过程中计算方、结果接收方都无法获取数据方的数据,保护了数据安全。
4.paillier加密方案是将一个待加密数据塞入一个待加密的明文空间后进行加密,而待加密的明文空间的位数比待加密数据的位数大的多。当采用paillier加密算法对明文数据进行减法运算时,只能将一个待加密数据塞入一个明文空间进行加密,明文空间存在很高冗余,从而大大影响了加密效率和计算效率。
技术实现要素:
5.本发明为了解决上述技术问题,提供了一种基于隐私保护的数据相减运算方法,其将数据向量中的多个待加密数据按照预设规则塞入一个待加密的明文空间中进行打包加密,采用相应算法进行相减运算,大大提高了加密效率和计算效率。
6.为了解决上述问题,本发明采用以下技术方案予以实现:本发明的一种基于隐私保护的数据相减运算方法,第一数据方持有作为被减数的g维数据向量x1,第二数据方持有作为减数的g维数据向量x2,数据向量x1、数据向量x2内的数据都为a位的无符号整型数据且位于区间[0,2
a-1
]内,g≥2,包括以下步骤:s1:结果接收方生成paillier加密算法的公钥pk、私钥sk,将公钥pk发送给第一数据方、第二数据方、计算方;s2:第一数据方、第二数据方分别将数据向量x1、数据向量x2打包成密文q1、密文q2,并发送给计算方;所述将数据向量打包成密文的方法如下:按预设规则将数据向量内的数据依次存入d位明文空间中的指定位置打包成一条明文,d=2*a*(g+1),明文空间中每个数据前侧的a位的值都为0,采用公钥pk对明文进行paillier加密得到对应的密文;s3:计算方计算q1*[q2*(2
a-1)],得到密文结果d,将密文结果d中没有存储数据的
位置加上随机数得到密文结果e,将密文结果e发送给结果接收方;s4:结果接收方采用私钥sk对密文结果e进行解密,得到明文结果f,取出明文结果f中对应位置的数据并进行处理得到向量r,向量r就是数据向量x1减去数据向量x2的值。
[0007]
在本方案中,第一数据方、第二数据方分别将各自持有的数据向量内的数据塞入一个d位的明文空间后进行打包加密,这样大大提高了加密效率。
[0008]
在步骤s3中为了将q2转变为-q2形式,将q2*(2
a-1),明文空间中每个数据前侧的值为0的a位用于进位,所以需要将数据向量x1、数据向量x2内的数据的值控制在区间[0,2
a-1
]内,之后利用paillier算法的加法同态原理计算出密文结果d,密文结果d中没有存储数据的位置由于进位会与减数比较接近,通过加上随机数用于避免数据泄露。最后,结果接收方采用私钥sk对密文结果e进行解密,得到明文结果f,从明文结果f中对应位置取出相减运算的结果并组成向量r,向量r就是数据向量x1减去数据向量x2的值。
[0009]
由于计算方没有公钥pk,无法获取数据方的明文数据,而计算阶段在计算方进行,结果接收方也无法获取数据方的明文数据,保护了数据隐私。当第一数据方、第二数据方用于相减的数据比较多时,将这些数据分成多个数据向量,每个数据向量内的数据个数满足计算机的计算能力,分批进行相减运算。
[0010]
作为优选,所述步骤s2中将数据向量xi打包成密文qi的方法如下,i=1、2:n1:按预设规则将数据向量xi内的数据依次存入d位明文空间中的指定位置打包成一条明文pi,d=2*a*(g+1),包括以下步骤:将d位明文空间从高位至低位等分为m份,m=g+1,得到m个子空间,从高位至低位依次编号为1、2
……
m,每个子空间包含2*a位,将每个子空间等分为两份,高位的a位构成第一存储空间,低位的a位构成第二存储空间,将数据向量xi内的数据按顺序存入编号为2至m的子空间的第二存储空间内,明文空间中其余没有存储数据的第二存储空间以及所有第一存储空间内的所有位都置0,得到一条明文pi;n2:采用公钥pk对明文pi进行paillier加密得到对应的密文qi。
[0011]
作为优选,所述步骤n1中将数据向量xi内的数据按顺序存入编号2至m的子空间的第二存储空间内的方法为:数据向量xi=[xi(1), xi(2),
……
xi(g)],将xi(j)存入编号为j+1的子空间的第二存储空间内,1≤j≤g。
[0012]
作为优选,所述步骤s3中将密文结果d中没有存储数据的位置加上随机数得到密文结果e的方法如下:计算方生成g维随机数向量t,将d位明文空间从高位至低位等分为m份,得到m个子空间,从高位至低位依次编号为1、2
……
m,每个子空间包含2*a位,将每个子空间等分为两份,高位的a位构成第一存储空间,低位的a位构成第二存储空间,将随机数向量t内的随机数按顺序存入编号为2至m的子空间的第一存储空间内,明文空间中其余没有存储随机数的第一存储空间以及所有第二存储空间内的所有位都置0,得到一条明文t,采用公钥pk对明文t进行paillier加密得到对应的密文g,计算d*g,得到密文结果e。
[0013]
随机数向量t内的随机数用于掩盖密文结果d中第一存储空间内的值。随机数向量t内的随机数为a位无符号整型数据,随机数的值小于2
a-1
。
[0014]
作为优选,所述步骤s4中取出明文结果f中对应位置的数据并进行处理得到向量r
的方法如下:将明文结果f中与d位明文空间中编号为2至m的子空间的第二存储空间对应位置的数据取出,组成g维的向量s,对向量s内的每个数据进行处理,得到向量r;所述对向量s内的第j个数据sj进行处理得到向量r内的第j个数据rj的方法如下,1≤j≤g:判断数据sj是否大于2
a-1
,如果是,则rj=s
j-2a,否则,rj=sj。
[0015]
当数据sj>2
a-1
时,表明对应数据相减运算的值为负数,需要将s
j-2a得到的rj就是所求值;当数据sj≤2
a-1
时,表明对应数据相减运算的值为非负数,sj就是所求值。
[0016]
本发明的一种基于隐私保护的数据相减运算方法,第一数据方持有作为被减数的g维数据向量x1,第二数据方持有作为减数的g维数据向量x2,数据向量x1、数据向量x2内的数据都为a位的浮点型非负数据且位于区间[0,2
a-1
]内,g≥2,包括以下步骤:s1:结果接收方生成paillier加密算法的公钥pk、私钥sk,将公钥pk发送给第一数据方、第二数据方、计算方;s2:第一数据方、第二数据方分别采用精度控制法将数据向量x1、数据向量x2内的数据从a位浮点型转换为a位整型且保证转换后的数据位于区间[0,2
a-1
]内;第一数据方、第二数据方分别将数据向量x1、数据向量x2打包成密文q1、密文q2,并发送给计算方;所述将数据向量打包成密文的方法如下:按预设规则将数据向量内的数据依次存入d位明文空间中的指定位置打包成一条明文,d=2*a*(g+1),明文空间中每个数据前侧的a位的值都为0,采用公钥pk对明文进行paillier加密得到对应的密文;s3:计算方计算q1*[q2*(2
a-1)],得到密文结果d,将密文结果d中没有存储数据的位置加上随机数得到密文结果e,将密文结果e发送给结果接收方;s4:结果接收方采用私钥sk对密文结果e进行解密,得到明文结果f,取出明文结果f中对应位置的数据并进行处理得到向量r,采用同样的精度控制法将向量r内的数据从a位整型转换为a位浮点型,向量r就是数据向量x1减去数据向量x2的值。
[0017]
本方案中,由于数据向量内的数据为a位的浮点型非负数据,所以需要先采用精度控制法将数据转换为整型,在数据类型转换时,需要保证转换成整型的数据的值在区间[0,2
a-1
]内,最后结果接收方采用同样的精度控制法将结果数据转换为a位浮点型。
[0018]
作为优选,所述步骤s2中将数据向量xi打包成密文qi的方法如下,i=1、2:n1:按预设规则将数据向量xi内的数据依次存入d位明文空间中的指定位置打包成一条明文pi,d=2*a*(g+1),包括以下步骤:将d位明文空间从高位至低位等分为m份,m=g+1,得到m个子空间,从高位至低位依次编号为1、2
……
m,每个子空间包含2*a位,将每个子空间等分为两份,高位的a位构成第一存储空间,低位的a位构成第二存储空间,将数据向量xi内的数据按顺序存入编号为2至m的子空间的第二存储空间内,明文空间中其余没有存储数据的第二存储空间以及所有第一存储空间内的所有位都置0,得到一条明文pi;n2:采用公钥pk对明文pi进行paillier加密得到对应的密文qi。
[0019]
作为优选,所述步骤s3中将密文结果d中没有存储数据的位置加上随机数得到密
文结果e的方法如下:计算方生成g维随机数向量t,将d位明文空间从高位至低位等分为m份,得到m个子空间,从高位至低位依次编号为1、2
……
m,每个子空间包含2*a位,将每个子空间等分为两份,高位的a位构成第一存储空间,低位的a位构成第二存储空间,将随机数向量t内的随机数按顺序存入编号为2至m的子空间的第一存储空间内,明文空间中其余没有存储随机数的第一存储空间以及所有第二存储空间内的所有位都置0,得到一条明文t,采用公钥pk对明文t进行paillier加密得到对应的密文g,计算d*g,得到密文结果e。
[0020]
随机数向量t内的随机数为a位无符号整型数据,随机数的值小于2
a-1
。
[0021]
作为优选,所述步骤s4中取出明文结果f中对应位置的数据并进行处理得到向量r的方法如下:将明文结果f中与d位明文空间中编号为2至m的子空间的第二存储空间对应位置的数据取出,组成g维的向量s,对向量s内的每个数据进行处理,得到向量r;所述对向量s内的第j个数据sj进行处理得到向量r内的第j个数据rj的方法如下,1≤j≤g:判断数据sj是否大于2
a-1
,如果是,则rj=s
j-2a,否则,rj=sj。
[0022]
作为优选,所述步骤s2中数据方采用精度控制法将数据向量内的数据从a位浮点型转换为a位整型的方法如下:将数据向量内的a位浮点型数据代入公式:,计算得到对应的a位整型数据,其中,w表示a位整型数据,f表示a位浮点型数据,p表示非负整数。
[0023]
本发明的有益效果是:将数据向量中的多个待加密数据按照预设规则塞入一个待加密的明文空间中进行打包加密,采用相应算法进行相减运算,大大提高了加密效率和计算效率,保护了数据隐私。
附图说明
[0024]
图1是实施例1的流程图;图2是数据向量x1塞入明文空间的示意图;图3是随机数向量t塞入明文空间的示意图。
具体实施方式
[0025]
下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。
[0026]
实施例1:本实施例的一种基于隐私保护的数据相减运算方法,第一数据方持有作为被减数的g维数据向量x1,x1=[x1(1), x1(2),
……
x1(g)],第二数据方持有作为减数的g维数据向量x2,x2=[x2(1), x2(2),
……
x2(g)],数据向量x1、数据向量x2内的数据都为a位的无符号整型数据且位于区间[0,2
a-1
]内,g≥2,如图1所示,包括以下步骤:s1:结果接收方生成paillier加密算法的公钥pk、私钥sk,将公钥pk发送给第一数据方、第二数据方、计算方;s2:第一数据方、第二数据方分别将数据向量x1、数据向量x2打包成密文q1、密文q2,并发送给计算方;将数据向量xi打包成密文qi的方法如下,i=1、2:
n1:按预设规则将数据向量xi内的数据依次存入d位明文空间中的指定位置打包成一条明文pi,d=2*a*(g+1),包括以下步骤:将d位明文空间从高位至低位等分为m份,m=g+1,得到m个子空间,从高位至低位依次编号为1、2
……
m,每个子空间包含2*a位,将每个子空间等分为两份,高位的a位构成第一存储空间,低位的a位构成第二存储空间,将数据向量xi内的数据按顺序存入编号为2至m的子空间的第二存储空间内,每个第二存储空间只存储一个数据,明文空间中其余没有存储数据的第二存储空间以及所有第一存储空间内的所有位都置0,得到一条明文pi;数据向量xi内的数据按顺序存入编号2至m的子空间的第二存储空间内的方法为:将xi(j)存入编号为j+1的子空间的第二存储空间内,1≤j≤g;n2:采用公钥pk对明文pi进行paillier加密得到对应的密文qi;s3:计算方计算q1*[q2*(2
a-1)],得到密文结果d,将密文结果d中没有存储数据的位置加上随机数得到密文结果e,将密文结果e发送给结果接收方;将密文结果d中没有存储数据的位置加上随机数得到密文结果e的方法如下:计算方生成g维随机数向量t,t=[t1, t2,
……
tg],随机数向量t内的随机数为a位无符号整型数据,将d位明文空间从高位至低位等分为m份,得到m个子空间,从高位至低位依次编号为1、2
……
m,每个子空间包含2*a位,将每个子空间等分为两份,高位的a位构成第一存储空间,低位的a位构成第二存储空间,将随机数向量t内的随机数按顺序存入编号为2至m的子空间的第一存储空间内,明文空间中其余没有存储随机数的第一存储空间以及所有第二存储空间内的所有位都置0,得到一条明文t,采用公钥pk对明文t进行paillier加密得到对应的密文g,计算d*g,得到密文结果e;随机数向量t内的随机数按顺序存入编号2至m的子空间的第一存储空间内的方法为:将随机数tj存入编号为j+1的子空间的第一存储空间内;随机数向量t内的随机数为a位无符号整型数据,随机数的值小于2
a-1
;s4:结果接收方采用私钥sk对密文结果e进行解密,得到明文结果f,取出明文结果f中对应位置的数据并进行处理得到向量r,向量r就是数据向量x1减去数据向量x2的值;取出明文结果f中对应位置的数据并进行处理得到向量r的方法如下:将明文结果f中与d位明文空间中编号为2至m的子空间的第二存储空间对应位置的数据取出,组成g维的向量s,对向量s内的每个数据进行处理,得到向量r;对向量s内的第j个数据sj进行处理得到向量r内的第j个数据rj的方法如下,1≤j≤g:判断数据sj是否大于2
a-1
,如果是,则rj=s
j-2a,否则,rj=sj。
[0027]
在本方案中,结果接收方持有公钥pk、私钥sk,第一数据方、第二数据方、计算方都只持有公钥pk。
[0028]
首先,第一数据方、第二数据方分别将各自持有的数据向量内的数据塞入一个d位的明文空间后进行打包加密,这样大大提高了加密效率。
[0029]
例如,数据向量x1为31维,数据向量x1内的数据为32位无符号整型数据,将2048位明文空间从高位至低位等分为32份,得到32个子空间,从高位至低位依次编号为1、2
……
32,每个子空间包含64位,将每个子空间等分为两份,高位的32位构成第一存储空间,低位的32位构成第二存储空间,将数据向量x1内的31个数据按顺序存入编号为2至32的子空间
的第二存储空间内,明文空间中其余没有存储数据的第二存储空间以及所有第一存储空间内的所有位都置0,得到一条明文p1,如图2所示,明文空间最高位的子空间的64位都为0,每个数据前侧的32位的值为0,用于进位,所以需要将数据向量x1、数据向量x2内的数据的值控制在区间[0,2
a-1
]内。这样对2048位的明文空间进行paillier加密可以同时加密31个数据,加密效率是只塞一个原始数据加密效率的31倍。
[0030]
第一数据方对明文p1进行paillier加密得到对应的密文q1,q1=enc(p1),第二数据方对明文p2进行paillier加密得到对应的密文q2,q2=enc(p2),第一数据方将密文q1发送给计算方,第二数据方将密文q2发送给计算方,由计算方进行计算。
[0031]
接着,计算方计算q1*[q2*(2
a-1)],得到密文结果d,基于paillier加密算法原理,d=enc(p1) *[enc(p2)*(2
a-1)]=enc(p1)*[enc(p2*(2
a-1))]= enc(p1+p2*(2
a-1))。将q2*(2
a-1)是为了将q2转变为-q2形式。
[0032]
然后,计算方生成g维随机数向量t,将随机数向量t内的随机数塞入一个d位的明文空间后进行打包加密。
[0033]
例如,随机数向量t为31维,随机数向量t内的随机数为32位无符号整型数据,将2048位明文空间从高位至低位等分为32份,得到32个子空间,从高位至低位依次编号为1、2
……
32,每个子空间包含64位,将每个子空间等分为两份,高位的32位构成第一存储空间,低位的32位构成第二存储空间,将随机数向量t内的31个随机数按顺序存入编号为2至32的子空间的第一存储空间内,明文空间中其余没有存储数据的第一存储空间以及所有第二存储空间内的所有位都置0,得到一条明文t,如图3所示。
[0034]
采用公钥pk对明文t进行paillier加密得到对应的密文g,g=enc(t),计算d*g,得到密文结果e,e=d*g=enc(p1+p2*(2
a-1)) * enc(t)=enc(p1+p2*(2
a-1) +t)。密文结果d中的第一存储空间由于进位会与减数比较接近,通过加上随机数掩盖第一存储空间内的值,有效避免数据泄露。
[0035]
最后,结果接收方采用私钥sk对密文结果e进行解密,得到明文结果f,明文结果f也是d位,其从高位至低位等分为m份,得到m个子空间,从高位至低位依次编号为1、2
……
m,每个子空间包含2*a位,将每个子空间等分为两份,高位的a位构成第一存储空间,低位的a位构成第二存储空间,将编号为2至m的子空间的第二存储空间内数据取出,组成g维的向量s,s=[s1, s2,
……
sg],sj为编号为j+1的子空间的第二存储空间内的数据。
[0036]
当数据sj>2
a-1
时,表明对应数据相减运算的值为负数,需要将s
j-2a得到的rj就是所求值;当数据sj≤2
a-1
时,表明对应数据相减运算的值为非负数,sj就是所求值。
[0037]
由于计算方没有公钥pk,无法获取数据方的明文数据,而计算阶段在计算方进行,结果接收方也无法获取数据方的明文数据,保护了数据隐私。当第一数据方、第二数据方用于相减的数据比较多时,将这些数据分成多个数据向量,每个数据向量内的数据个数满足计算机的计算能力,分批进行相减运算。
[0038]
本方法可用在如下场景:金融机构在给多个用户进行贷款前需评估这些用户的还款能力和存在的风险,第一数据方持有这些用户的现有存款数据,构成数据向量x1,第二数据方持有这些用户的现有贷款数据,构成数据向量x2,金融机构作为结果接收方,再引入计算方就可用本方法使金融机构得到这些用户的现有存款数据与现有贷款数据的差值,且金融机构、计算方无法获取到这些用户的现有存款数据、现有贷款数据的具体数值,保护了用
户隐私。
[0039]
举例说明:第一数据方持有作为被减数的2维数据向量x1,x1=[5,3],第二数据方持有作为减数的2维数据向量x2,x2=[4,6],数据都为32位的无符号整型数据。
[0040]
首先,结果接收方生成paillier加密算法的公钥pk、私钥sk,将公钥pk发送给第一数据方、第二数据方、计算方。
[0041]
接着,第一数据方将数据向量x1内的数据依次存入192位明文空间中的指定位置打包成一条明文p1,明文p1的结构为:,采用公钥pk对明文p1进行paillier加密得到对应的密文q1,q1= enc(p1),将密文q1发送给计算方;第二数据方将数据向量x2内的数据依次存入192位明文空间中的指定位置打包成一条明文p2,明文p2的结构为:,采用公钥pk对明文p2进行paillier加密得到对应的密文q2,q2= enc(p2),将密文q2发送给计算方。
[0042]
然后,计算方计算中间结果a,a=q2*(2
32-1)=enc(p2)*(2
32-1)=enc(p2*(2
32-1)),中间结果a的结构为:,例如:4*(2
32-1)=4*2
32-4=3*2
32
+(2
32-4),3由于进位存储到第一存储空间,2
32-4存储在第二存储空间;计算方再计算密文结果d,d=q1*a=enc(p1)*enc(p2*(2
32-1))=enc(p1+p2*(2
32-1)),从明文p1的结构和中间结果a的结构可以看出,两者相加后得到的密文结果d的结构为:;计算方生成2维随机数向量t,t=[7,9],随机数为32位的无符号整型数据,将随机数向量t内的随机数依次存入192位明文空间中的指定位置打包成一条明文t,采用公钥pk对明文t进行paillier加密得到对应的密文g,g=enc(t),密文g的结构为:,计算方计算密文结果e,e=d*g=enc(p1+p2*(2
32-1))*enc(t)=enc(p1+p2*(2
32-1)+ t),将密文结果e发送给结果接收方;从密文结果d的结构和密文g的结构可以看出,两者相加后得到的密文结果e的结构为:,随机数掩盖了第一存储空间内的值,有效避免数据泄露。
[0043]
最后,结果接收方采用私钥sk对密文结果e进行解密,得到明文结果f,f= p1+p2*(2
32-1)+t,从明文结果f中的第二存储空间位置取出数据,得到向量s,s=[1, 2
32-3],由于1<2
31
,1不变,由于2
32-3>2
31
,所以计算(2
32-3)-2
32
=-3,最终得到向量r,r=[1,-3],与x
1-x2的明文计算结果一致。
[0044]
实施例2:本实施例的一种基于隐私保护的数据相减运算方法,第一数据方持有作
为被减数的g维数据向量x1,x1=[x1(1), x1(2),
……
x1(g)],第二数据方持有作为减数的g维数据向量x2,x2=[x2(1), x2(2),
……
x2(g)],数据向量x1、数据向量x2内的数据都为a位的浮点型非负数据且位于区间[0,2
a-1
]内,g≥2,包括以下步骤:s1:结果接收方生成paillier加密算法的公钥pk、私钥sk,将公钥pk发送给第一数据方、第二数据方、计算方;s2:第一数据方、第二数据方分别采用精度控制法将数据向量x1、数据向量x2内的数据从a位浮点型转换为a位整型且保证转换后的数据位于区间[0,2
a-1
]内;第一数据方、第二数据方分别将数据向量x1、数据向量x2打包成密文q1、密文q2,并发送给计算方;将数据向量xi打包成密文qi的方法如下,i=1、2:n1:按预设规则将数据向量xi内的数据依次存入d位明文空间中的指定位置打包成一条明文pi,d=2*a*(g+1),包括以下步骤:将d位明文空间从高位至低位等分为m份,m=g+1,得到m个子空间,从高位至低位依次编号为1、2
……
m,每个子空间包含2*a位,将每个子空间等分为两份,高位的a位构成第一存储空间,低位的a位构成第二存储空间,将数据向量xi内的数据按顺序存入编号为2至m的子空间的第二存储空间内,每个存储空间只存储一个数据,明文空间中其余没有存储数据的第二存储空间以及所有第一存储空间内的所有位都置0,得到一条明文pi;数据向量xi内的数据按顺序存入编号2至m的子空间的第二存储空间内的方法为:将xi(j)存入编号为j+1的子空间的第二存储空间内,1≤j≤g;n2:采用公钥pk对明文pi进行paillier加密得到对应的密文qi;s3:计算方计算q1*[q2*(2
a-1)],得到密文结果d,将密文结果d中没有存储数据的位置加上随机数得到密文结果e,将密文结果e发送给结果接收方;将密文结果d中没有存储数据的位置加上随机数得到密文结果e的方法如下:计算方生成g维随机数向量t,t=[t1, t2,
……
tg],随机数向量t内的随机数为a位无符号整型数据,将d位明文空间从高位至低位等分为m份,得到m个子空间,从高位至低位依次编号为1、2
……
m,每个子空间包含2*a位,将每个子空间等分为两份,高位的a位构成第一存储空间,低位的a位构成第二存储空间,将随机数向量t内的随机数按顺序存入编号为2至m的子空间的第一存储空间内,明文空间中其余没有存储随机数的第一存储空间以及所有第二存储空间内的所有位都置0,得到一条明文t,采用公钥pk对明文t进行paillier加密得到对应的密文g,计算d*g,得到密文结果e;随机数向量t内的随机数按顺序存入编号2至m的子空间的第一存储空间内的方法为:将随机数tj存入编号为j+1的子空间的第一存储空间内;随机数向量t内的随机数为a位无符号整型数据,随机数的值小于2
a-1
;s4:结果接收方采用私钥sk对密文结果e进行解密,得到明文结果f,取出明文结果f中对应位置的数据并进行处理得到向量r,采用同样的精度控制法将向量r内的数据从a位整型转换为a位浮点型,向量r就是数据向量x1减去数据向量x2的值。
[0045]
步骤s4中取出明文结果f中对应位置的数据并进行处理得到向量r的方法如下:将明文结果f中与d位明文空间中编号为2至m的子空间的第二存储空间对应位置的数据取出,组成g维的向量s,对向量s内的每个数据进行处理,得到向量r;
对向量s内的第j个数据sj进行处理得到向量r内的第j个数据rj的方法如下,1≤j≤g:判断数据sj是否大于2
a-1
,如果是,则rj=s
j-2a,否则,rj=sj。
[0046]
实施例2的方案与实施例1基本相同,不同之处在于,实施例2中的数据向量内的数据为a位的浮点型非负数据,需要先采用精度控制法将数据转换为整型,在数据类型转换时,需要保证转换成整型的数据的值在区间[0,2
a-1
]内,最后结果接收方采用同样的精度控制法将结果数据转换为a位浮点型。
[0047]
步骤s2中数据方采用精度控制法将数据向量内的数据从a位浮点型转换为a位整型的方法如下:将数据向量内的a位浮点型数据代入公式:,计算得到对应的a位整型数据,其中,w表示a位整型数据,f表示a位浮点型数据,p表示非负整数。
[0048]
例如:数据为32位的浮点型数据1.2345,计算,得到对应的32位的整型数据12345。
[0049]
如果步骤s4中得到的向量r中的某个数据为54875,采用同样的精度控制法将32位的整型数据54875转换为32位的浮点型数据5.4875。
技术特征:
1.一种基于隐私保护的数据相减运算方法,第一数据方持有作为被减数的g维数据向量x1,第二数据方持有作为减数的g维数据向量x2,数据向量x1、数据向量x2内的数据都为a位的无符号整型数据且位于区间[0,2
a-1
]内,g≥2,其特征在于,包括以下步骤:s1:结果接收方生成paillier加密算法的公钥pk、私钥sk,将公钥pk发送给第一数据方、第二数据方、计算方;s2:第一数据方、第二数据方分别将数据向量x1、数据向量x2打包成密文q1、密文q2,并发送给计算方;所述将数据向量打包成密文的方法如下:按预设规则将数据向量内的数据依次存入d位明文空间中的指定位置打包成一条明文,d=2*a*(g+1),明文空间中每个数据前侧的a位的值都为0,采用公钥pk对明文进行paillier加密得到对应的密文;s3:计算方计算q1*[q2*(2
a-1)],得到密文结果d,将密文结果d中没有存储数据的位置加上随机数得到密文结果e,将密文结果e发送给结果接收方;s4:结果接收方采用私钥sk对密文结果e进行解密,得到明文结果f,取出明文结果f中对应位置的数据并进行处理得到向量r,向量r就是数据向量x1减去数据向量x2的值。2.根据权利要求1所述的一种基于隐私保护的数据相减运算方法,其特征在于,所述步骤s2中将数据向量x
i
打包成密文q
i
的方法如下,i=1、2:n1:按预设规则将数据向量x
i
内的数据依次存入d位明文空间中的指定位置打包成一条明文p
i
,d=2*a*(g+1),包括以下步骤:将d位明文空间从高位至低位等分为m份,m=g+1,得到m个子空间,从高位至低位依次编号为1、2
……
m,每个子空间包含2*a位,将每个子空间等分为两份,高位的a位构成第一存储空间,低位的a位构成第二存储空间,将数据向量x
i
内的数据按顺序存入编号为2至m的子空间的第二存储空间内,明文空间中其余没有存储数据的第二存储空间以及所有第一存储空间内的所有位都置0,得到一条明文p
i
;n2:采用公钥pk对明文p
i
进行paillier加密得到对应的密文q
i
。3.根据权利要求2所述的一种基于隐私保护的数据相减运算方法,其特征在于,所述步骤n1中将数据向量x
i
内的数据按顺序存入编号2至m的子空间的第二存储空间内的方法为:数据向量x
i
=[x
i
(1), x
i
(2),
……
x
i
(g)],将x
i
(j)存入编号为j+1的子空间的第二存储空间内,1≤j≤g。4.根据权利要求2所述的一种基于隐私保护的数据相减运算方法,其特征在于,所述步骤s3中将密文结果d中没有存储数据的位置加上随机数得到密文结果e的方法如下:计算方生成g维随机数向量t,将d位明文空间从高位至低位等分为m份,得到m个子空间,从高位至低位依次编号为1、2
……
m,每个子空间包含2*a位,将每个子空间等分为两份,高位的a位构成第一存储空间,低位的a位构成第二存储空间,将随机数向量t内的随机数按顺序存入编号为2至m的子空间的第一存储空间内,明文空间中其余没有存储随机数的第一存储空间以及所有第二存储空间内的所有位都置0,得到一条明文t,采用公钥pk对明文t进行paillier加密得到对应的密文g,计算d*g,得到密文结果e。5.根据权利要求2或3或4所述的一种基于隐私保护的数据相减运算方法,其特征在于,所述步骤s4中取出明文结果f中对应位置的数据并进行处理得到向量r的方法如下:
将明文结果f中与d位明文空间中编号为2至m的子空间的第二存储空间对应位置的数据取出,组成g维的向量s,对向量s内的每个数据进行处理,得到向量r;所述对向量s内的第j个数据s
j
进行处理得到向量r内的第j个数据r
j
的方法如下,1≤j≤g:判断数据s
j
是否大于2
a-1
,如果是,则r
j
=s
j-2
a
,否则,r
j
=s
j
。6.一种基于隐私保护的数据相减运算方法,第一数据方持有作为被减数的g维数据向量x1,第二数据方持有作为减数的g维数据向量x2,数据向量x1、数据向量x2内的数据都为a位的浮点型非负数据且位于区间[0,2
a-1
]内,g≥2,其特征在于,包括以下步骤:s1:结果接收方生成paillier加密算法的公钥pk、私钥sk,将公钥pk发送给第一数据方、第二数据方、计算方;s2:第一数据方、第二数据方分别采用精度控制法将数据向量x1、数据向量x2内的数据从a位浮点型转换为a位整型且保证转换后的数据位于区间[0,2
a-1
]内;第一数据方、第二数据方分别将数据向量x1、数据向量x2打包成密文q1、密文q2,并发送给计算方;所述将数据向量打包成密文的方法如下:按预设规则将数据向量内的数据依次存入d位明文空间中的指定位置打包成一条明文,d=2*a*(g+1),明文空间中每个数据前侧的a位的值都为0,采用公钥pk对明文进行paillier加密得到对应的密文;s3:计算方计算q1*[q2*(2
a-1)],得到密文结果d,将密文结果d中没有存储数据的位置加上随机数得到密文结果e,将密文结果e发送给结果接收方;s4:结果接收方采用私钥sk对密文结果e进行解密,得到明文结果f,取出明文结果f中对应位置的数据并进行处理得到向量r,采用同样的精度控制法将向量r内的数据从a位整型转换为a位浮点型,向量r就是数据向量x1减去数据向量x2的值。7.根据权利要求1所述的一种基于隐私保护的数据相减运算方法,其特征在于,所述步骤s2中将数据向量x
i
打包成密文q
i
的方法如下,i=1、2:n1:按预设规则将数据向量x
i
内的数据依次存入d位明文空间中的指定位置打包成一条明文p
i
,d=2*a*(g+1),包括以下步骤:将d位明文空间从高位至低位等分为m份,m=g+1,得到m个子空间,从高位至低位依次编号为1、2
……
m,每个子空间包含2*a位,将每个子空间等分为两份,高位的a位构成第一存储空间,低位的a位构成第二存储空间,将数据向量x
i
内的数据按顺序存入编号为2至m的子空间的第二存储空间内,明文空间中其余没有存储数据的第二存储空间以及所有第一存储空间内的所有位都置0,得到一条明文p
i
;n2:采用公钥pk对明文p
i
进行paillier加密得到对应的密文q
i
。8.根据权利要求7所述的一种基于隐私保护的数据相减运算方法,其特征在于,所述步骤s3中将密文结果d中没有存储数据的位置加上随机数得到密文结果e的方法如下:计算方生成g维随机数向量t,将d位明文空间从高位至低位等分为m份,得到m个子空间,从高位至低位依次编号为1、2
……
m,每个子空间包含2*a位,将每个子空间等分为两份,高位的a位构成第一存储空间,低位的a位构成第二存储空间,将随机数向量t内的随机数按顺序存入编号为2至m的子空间的第一存储空间内,明文空间中其余没有存储随机数的第一
存储空间以及所有第二存储空间内的所有位都置0,得到一条明文t,采用公钥pk对明文t进行paillier加密得到对应的密文g,计算d*g,得到密文结果e。9.根据权利要求7或8所述的一种基于隐私保护的数据相减运算方法,其特征在于,所述步骤s4中取出明文结果f中对应位置的数据并进行处理得到向量r的方法如下:将明文结果f中与d位明文空间中编号为2至m的子空间的第二存储空间对应位置的数据取出,组成g维的向量s,对向量s内的每个数据进行处理,得到向量r;所述对向量s内的第j个数据s
j
进行处理得到向量r内的第j个数据r
j
的方法如下,1≤j≤g:判断数据s
j
是否大于2
a-1
,如果是,则r
j
=s
j-2
a
,否则,r
j
=s
j
。10.根据权利要求6或7或8所述的一种基于隐私保护的数据相减运算方法,其特征在于,所述步骤s2中数据方采用精度控制法将数据向量内的数据从a位浮点型转换为a位整型的方法如下:将数据向量内的a位浮点型数据代入公式:,计算得到对应的a位整型数据,其中,w表示a位整型数据,f表示a位浮点型数据,p表示非负整数。
技术总结
本发明公开了一种基于隐私保护的数据相减运算方法。它包括以下步骤:结果接收方生成公钥pk、私钥sk,将公钥pk发送给第一数据方、第二数据方、计算方;第一数据方、第二数据方分别将数据向量x1、数据向量x2打包成密文Q1、密文Q2,并发送给计算方;计算方计算Q1*[Q2*(2
技术研发人员:冯黎明 叶青波 邹继鹏 陈昕 吴凡 刘文博
受保护的技术使用者:蓝象智联(杭州)科技有限公司
技术研发日:2023.08.11
技术公布日:2023/9/9
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/