CN116719502B - 一种基于隐私保护的数据相减运算方法 - Google Patents
一种基于隐私保护的数据相减运算方法 Download PDFInfo
- Publication number
- CN116719502B CN116719502B CN202311011195.5A CN202311011195A CN116719502B CN 116719502 B CN116719502 B CN 116719502B CN 202311011195 A CN202311011195 A CN 202311011195A CN 116719502 B CN116719502 B CN 116719502B
- Authority
- CN
- China
- Prior art keywords
- data
- vector
- plaintext
- result
- ciphertext
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 82
- 239000013598 vector Substances 0.000 claims abstract description 209
- 238000012856 packing Methods 0.000 claims abstract description 20
- 238000004364 calculation method Methods 0.000 claims abstract description 17
- 238000013500 data storage Methods 0.000 claims description 9
- 238000011156 evaluation Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
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/50—Adding; Subtracting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于隐私保护的数据相减运算方法。它包括以下步骤:结果接收方生成公钥pk、私钥sk,将公钥pk发送给第一数据方、第二数据方、计算方;第一数据方、第二数据方分别将数据向量x1、数据向量x2打包成密文Q1、密文Q2,并发送给计算方;计算方计算Q1*[Q2*(2a‑1)],得到密文结果D,将密文结果D中没有存储数据的位置加上随机数得到密文结果E,将密文结果E发送给结果接收方;结果接收方采用私钥sk对密文结果E进行解密,得到明文结果F,取出明文结果F中对应位置的数据并进行处理得到向量r,向量r就是数据向量x1减去数据向量x2的值。本发明在保护数据隐私的基础上大大提高了加密效率和相减运算的计算效率。
Description
技术领域
本发明涉及信息安全技术领域,尤其涉及一种基于隐私保护的数据相减运算方法。
背景技术
近年来,数据呈现出爆炸式增长的趋势,数据量和数据种类变得越来越复杂,大量有价值的客户信息、个人的隐私记录、企业的运营数据不断被挖掘。在这个数据爆发的时代,大数据下的隐私保护问题就显得尤为重要。
Paillier加密算法是一种非对称式且满足加法同态性质的同态加密算法,与传统的公钥加密算法相比,其支持在密文域上执行算术运算,并且保证密文域上的运算结果解密后同明文域上的计算结果相同。目前,常采用Paillier加密算法对明文数据进行加密计算,即两个数据方分别将需要计算的数据向量进行Paillier加密后发送给计算方,由计算方计算出密文结果后发送给结果接收方,结果接收方对密文结果进行解密得到明文结果,整个过程中计算方、结果接收方都无法获取数据方的数据,保护了数据安全。
Paillier加密方案是将一个待加密数据塞入一个待加密的明文空间后进行加密,而待加密的明文空间的位数比待加密数据的位数大的多。当采用Paillier加密算法对明文数据进行减法运算时,只能将一个待加密数据塞入一个明文空间进行加密,明文空间存在很高冗余,从而大大影响了加密效率和计算效率。
发明内容
本发明为了解决上述技术问题,提供了一种基于隐私保护的数据相减运算方法,其将数据向量中的多个待加密数据按照预设规则塞入一个待加密的明文空间中进行打包加密,采用相应算法进行相减运算,大大提高了加密效率和计算效率。
为了解决上述问题,本发明采用以下技术方案予以实现:
本发明的一种基于隐私保护的数据相减运算方法,第一数据方持有作为被减数的g维数据向量x1,第二数据方持有作为减数的g维数据向量x2,数据向量x1、数据向量x2内的数据都为a位的无符号整型数据且位于区间[0,2a-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*(2a-1)],得到密文结果D,将密文结果D中没有存储数据的位置加上随机数得到密文结果E,将密文结果E发送给结果接收方;
S4:结果接收方采用私钥sk对密文结果E进行解密,得到明文结果F,取出明文结果F中对应位置的数据并进行处理得到向量r,向量r就是数据向量x1减去数据向量x2的值。
在本方案中,第一数据方、第二数据方分别将各自持有的数据向量内的数据塞入一个d位的明文空间后进行打包加密,这样大大提高了加密效率。
在步骤S3中为了将Q2转变为-Q2形式,将Q2*(2a-1),明文空间中每个数据前侧的值为0的a位用于进位,所以需要将数据向量x1、数据向量x2内的数据的值控制在区间[0,2a-1]内,之后利用Paillier算法的加法同态原理计算出密文结果D,密文结果D中没有存储数据的位置由于进位会与减数比较接近,通过加上随机数用于避免数据泄露。最后,结果接收方采用私钥sk对密文结果E进行解密,得到明文结果F,从明文结果F中对应位置取出相减运算的结果并组成向量r,向量r就是数据向量x1减去数据向量x2的值。
由于计算方没有公钥pk,无法获取数据方的明文数据,而计算阶段在计算方进行,结果接收方也无法获取数据方的明文数据,保护了数据隐私。当第一数据方、第二数据方用于相减的数据比较多时,将这些数据分成多个数据向量,每个数据向量内的数据个数满足计算机的计算能力,分批进行相减运算。
作为优选,所述步骤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。
作为优选,所述步骤N1中将数据向量xi内的数据按顺序存入编号2至m的子空间的第二存储空间内的方法为:
数据向量xi=[xi(1), xi(2),……xi(g)],将xi(j)存入编号为j+1的子空间的第二存储空间内,1≤j≤g。
作为优选,所述步骤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。
随机数向量t内的随机数用于掩盖密文结果D中第一存储空间内的值。随机数向量t内的随机数为a位无符号整型数据,随机数的值小于2a-1。
作为优选,所述步骤S4中取出明文结果F中对应位置的数据并进行处理得到向量r的方法如下:
将明文结果F中与d位明文空间中编号为2至m的子空间的第二存储空间对应位置的数据取出,组成g维的向量s,对向量s内的每个数据进行处理,得到向量r;
所述对向量s内的第j个数据sj进行处理得到向量r内的第j个数据rj的方法如下,1≤j≤g:
判断数据sj是否大于2a-1,如果是,则rj=sj-2a,否则,rj=sj。
当数据sj>2a-1时,表明对应数据相减运算的值为负数,需要将sj-2a得到的rj就是所求值;当数据sj≤2a-1时,表明对应数据相减运算的值为非负数,sj就是所求值。
本发明的一种基于隐私保护的数据相减运算方法,第一数据方持有作为被减数的g维数据向量x1,第二数据方持有作为减数的g维数据向量x2,数据向量x1、数据向量x2内的数据都为a位的浮点型非负数据且位于区间[0,2a-1]内,g≥2,包括以下步骤:
S1:结果接收方生成Paillier加密算法的公钥pk、私钥sk,将公钥pk发送给第一数据方、第二数据方、计算方;
S2:第一数据方、第二数据方分别采用精度控制法将数据向量x1、数据向量x2内的数据从a位浮点型转换为a位整型且保证转换后的数据位于区间[0,2a-1]内;
第一数据方、第二数据方分别将数据向量x1、数据向量x2打包成密文Q1、密文Q2,并发送给计算方;
所述将数据向量打包成密文的方法如下:
按预设规则将数据向量内的数据依次存入d位明文空间中的指定位置打包成一条明文,d=2*a*(g+1),明文空间中每个数据前侧的a位的值都为0,采用公钥pk对明文进行Paillier加密得到对应的密文;
S3:计算方计算Q1*[Q2*(2a-1)],得到密文结果D,将密文结果D中没有存储数据的位置加上随机数得到密文结果E,将密文结果E发送给结果接收方;
S4:结果接收方采用私钥sk对密文结果E进行解密,得到明文结果F,取出明文结果F中对应位置的数据并进行处理得到向量r,采用同样的精度控制法将向量r内的数据从a位整型转换为a位浮点型,向量r就是数据向量x1减去数据向量x2的值。
本方案中,由于数据向量内的数据为a位的浮点型非负数据,所以需要先采用精度控制法将数据转换为整型,在数据类型转换时,需要保证转换成整型的数据的值在区间[0,2a-1]内,最后结果接收方采用同样的精度控制法将结果数据转换为a位浮点型。
作为优选,所述步骤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。
作为优选,所述步骤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。
随机数向量t内的随机数为a位无符号整型数据,随机数的值小于2a-1。
作为优选,所述步骤S4中取出明文结果F中对应位置的数据并进行处理得到向量r的方法如下:
将明文结果F中与d位明文空间中编号为2至m的子空间的第二存储空间对应位置的数据取出,组成g维的向量s,对向量s内的每个数据进行处理,得到向量r;
所述对向量s内的第j个数据sj进行处理得到向量r内的第j个数据rj的方法如下,1≤j≤g:
判断数据sj是否大于2a-1,如果是,则rj=sj-2a,否则,rj=sj。
作为优选,所述步骤S2中数据方采用精度控制法将数据向量内的数据从a位浮点型转换为a位整型的方法如下:
将数据向量内的a位浮点型数据代入公式:,计算得到对应的a位整型数据,其中,w表示a位整型数据,f表示a位浮点型数据,p表示非负整数。
本发明的有益效果是:将数据向量中的多个待加密数据按照预设规则塞入一个待加密的明文空间中进行打包加密,采用相应算法进行相减运算,大大提高了加密效率和计算效率,保护了数据隐私。
附图说明
图1是实施例1的流程图;
图2是数据向量x1塞入明文空间的示意图;
图3是随机数向量t塞入明文空间的示意图。
具体实施方式
下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。
实施例1:本实施例的一种基于隐私保护的数据相减运算方法,第一数据方持有作为被减数的g维数据向量x1,x1=[x1(1), x1(2),……x1(g)],第二数据方持有作为减数的g维数据向量x2,x2=[x2(1), x2(2),……x2(g)],数据向量x1、数据向量x2内的数据都为a位的无符号整型数据且位于区间[0,2a-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*(2a-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位无符号整型数据,随机数的值小于2a-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是否大于2a-1,如果是,则rj=sj-2a,否则,rj=sj。
在本方案中,结果接收方持有公钥pk、私钥sk,第一数据方、第二数据方、计算方都只持有公钥pk。
首先,第一数据方、第二数据方分别将各自持有的数据向量内的数据塞入一个d位的明文空间后进行打包加密,这样大大提高了加密效率。
例如,数据向量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,2a-1]内。这样对2048位的明文空间进行Paillier加密可以同时加密31个数据,加密效率是只塞一个原始数据加密效率的31倍。
第一数据方对明文P1进行Paillier加密得到对应的密文Q1,Q1=ENC(P1),第二数据方对明文P2进行Paillier加密得到对应的密文Q2,Q2=ENC(P2),第一数据方将密文Q1发送给计算方,第二数据方将密文Q2发送给计算方,由计算方进行计算。
接着,计算方计算Q1*[Q2*(2a-1)],得到密文结果D,基于Paillier加密算法原理,D=ENC(P1) *[ENC(P2)*(2a-1)]=ENC(P1)*[ENC(P2*(2a-1))]= ENC(P1+P2*(2a-1))。将Q2*(2a-1)是为了将Q2转变为-Q2形式。
然后,计算方生成g维随机数向量t,将随机数向量t内的随机数塞入一个d位的明文空间后进行打包加密。
例如,随机数向量t为31维,随机数向量t内的随机数为32位无符号整型数据,将2048位明文空间从高位至低位等分为32份,得到32个子空间,从高位至低位依次编号为1、2……32,每个子空间包含64位,将每个子空间等分为两份,高位的32位构成第一存储空间,低位的32位构成第二存储空间,将随机数向量t内的31个随机数按顺序存入编号为2至32的子空间的第一存储空间内,明文空间中其余没有存储数据的第一存储空间以及所有第二存储空间内的所有位都置0,得到一条明文T,如图3所示。
采用公钥pk对明文T进行Paillier加密得到对应的密文G,G=ENC(T),计算D*G,得到密文结果E,E=D*G=ENC(P1+P2*(2a-1)) * ENC(T)=ENC(P1+P2*(2a-1) +T)。密文结果D中的第一存储空间由于进位会与减数比较接近,通过加上随机数掩盖第一存储空间内的值,有效避免数据泄露。
最后,结果接收方采用私钥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的子空间的第二存储空间内的数据。
当数据sj>2a-1时,表明对应数据相减运算的值为负数,需要将sj-2a得到的rj就是所求值;当数据sj≤2a-1时,表明对应数据相减运算的值为非负数,sj就是所求值。
由于计算方没有公钥pk,无法获取数据方的明文数据,而计算阶段在计算方进行,结果接收方也无法获取数据方的明文数据,保护了数据隐私。当第一数据方、第二数据方用于相减的数据比较多时,将这些数据分成多个数据向量,每个数据向量内的数据个数满足计算机的计算能力,分批进行相减运算。
本方法可用在如下场景:金融机构在给多个用户进行贷款前需评估这些用户的还款能力和存在的风险,第一数据方持有这些用户的现有存款数据,构成数据向量x1,第二数据方持有这些用户的现有贷款数据,构成数据向量x2,金融机构作为结果接收方,再引入计算方就可用本方法使金融机构得到这些用户的现有存款数据与现有贷款数据的差值,且金融机构、计算方无法获取到这些用户的现有存款数据、现有贷款数据的具体数值,保护了用户隐私。
举例说明:
第一数据方持有作为被减数的2维数据向量x1,x1=[5,3],第二数据方持有作为减数的2维数据向量x2,x2=[4,6],数据都为32位的无符号整型数据。
首先,结果接收方生成Paillier加密算法的公钥pk、私钥sk,将公钥pk发送给第一数据方、第二数据方、计算方。
接着,第一数据方将数据向量x1内的数据依次存入192位明文空间中的指定位置打包成一条明文P1,明文P1的结构为:
,采用公钥pk对明文P1进行Paillier加密得到对应的密文Q1,Q1= ENC(P1),将密文Q1发送给计算方;
第二数据方将数据向量x2内的数据依次存入192位明文空间中的指定位置打包成一条明文P2,明文P2的结构为:
,采用公钥pk对明文P2进行Paillier加密得到对应的密文Q2,Q2= ENC(P2),将密文Q2发送给计算方。
然后,计算方计算中间结果A,A=Q2*(232-1)=ENC(P2)*(232-1)=ENC(P2*(232-1)),中间结果A的结构为:
,
例如:4*(232-1)=4*232-4=3*232+(232-4),3由于进位存储到第一存储空间,232-4存储在第二存储空间;
计算方再计算密文结果D,D=Q1*A=ENC(P1)*ENC(P2*(232-1))=ENC(P1+P2*(232-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*(232-1))*ENC(T)=ENC(P1+P2*(232-1)+T),将密文结果E发送给结果接收方;
从密文结果D的结构和密文G的结构可以看出,两者相加后得到的密文结果E的结构为:
,
随机数掩盖了第一存储空间内的值,有效避免数据泄露。
最后,结果接收方采用私钥sk对密文结果E进行解密,得到明文结果F,F= P1+P2*(232-1)+T,从明文结果F中的第二存储空间位置取出数据,得到向量s,s=[1, 232-3],由于1<231,1不变,由于232-3>231,所以计算(232-3)-232=-3,最终得到向量r,r=[1,-3],与x1-x2的明文计算结果一致。
实施例2:本实施例的一种基于隐私保护的数据相减运算方法,第一数据方持有作为被减数的g维数据向量x1,x1=[x1(1), x1(2),……x1(g)],第二数据方持有作为减数的g维数据向量x2,x2=[x2(1), x2(2),……x2(g)],数据向量x1、数据向量x2内的数据都为a位的浮点型非负数据且位于区间[0,2a-1]内,g≥2,包括以下步骤:
S1:结果接收方生成Paillier加密算法的公钥pk、私钥sk,将公钥pk发送给第一数据方、第二数据方、计算方;
S2:第一数据方、第二数据方分别采用精度控制法将数据向量x1、数据向量x2内的数据从a位浮点型转换为a位整型且保证转换后的数据位于区间[0,2a-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*(2a-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位无符号整型数据,随机数的值小于2a-1;
S4:结果接收方采用私钥sk对密文结果E进行解密,得到明文结果F,取出明文结果F中对应位置的数据并进行处理得到向量r,采用同样的精度控制法将向量r内的数据从a位整型转换为a位浮点型,向量r就是数据向量x1减去数据向量x2的值。
步骤S4中取出明文结果F中对应位置的数据并进行处理得到向量r的方法如下:
将明文结果F中与d位明文空间中编号为2至m的子空间的第二存储空间对应位置的数据取出,组成g维的向量s,对向量s内的每个数据进行处理,得到向量r;
对向量s内的第j个数据sj进行处理得到向量r内的第j个数据rj的方法如下,1≤j≤g:
判断数据sj是否大于2a-1,如果是,则rj=sj-2a,否则,rj=sj。
实施例2的方案与实施例1基本相同,不同之处在于,实施例2中的数据向量内的数据为a位的浮点型非负数据,需要先采用精度控制法将数据转换为整型,在数据类型转换时,需要保证转换成整型的数据的值在区间[0,2a-1]内,最后结果接收方采用同样的精度控制法将结果数据转换为a位浮点型。
步骤S2中数据方采用精度控制法将数据向量内的数据从a位浮点型转换为a位整型的方法如下:
将数据向量内的a位浮点型数据代入公式:,计算得到对应的a位整型数据,其中,w表示a位整型数据,f表示a位浮点型数据,p表示非负整数。
例如:数据为32位的浮点型数据1.2345,计算,得到对应的32位的整型数据12345。
如果步骤S4中得到的向量r中的某个数据为54875,采用同样的精度控制法将32位的整型数据54875转换为32位的浮点型数据5.4875。
Claims (8)
1.一种基于隐私保护的数据相减运算方法,第一数据方持有作为被减数的g维数据向量x1,第二数据方持有作为减数的g维数据向量x2,数据向量x1、数据向量x2内的数据都为a位的无符号整型数据且位于区间[0,2a-1]内,g≥2,其特征在于,包括以下步骤:
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;
N2:采用公钥pk对明文Pi进行Paillier加密得到对应的密文Qi;
S3:计算方计算Q1*[Q2*(2a-1)],得到密文结果D,将密文结果D中没有存储数据的位置加上随机数得到密文结果E,将密文结果E发送给结果接收方;
S4:结果接收方采用私钥sk对密文结果E进行解密,得到明文结果F,取出明文结果F中对应位置的数据并进行处理得到向量r,向量r就是数据向量x1减去数据向量x2的值。
2.根据权利要求1所述的一种基于隐私保护的数据相减运算方法,其特征在于,所述步骤N1中将数据向量xi内的数据按顺序存入编号2至m的子空间的第二存储空间内的方法为:
数据向量xi=[xi(1), xi(2),……xi(g)],将xi(j)存入编号为j+1的子空间的第二存储空间内,1≤j≤g。
3.根据权利要求1所述的一种基于隐私保护的数据相减运算方法,其特征在于,所述步骤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。
4.根据权利要求1或2或3所述的一种基于隐私保护的数据相减运算方法,其特征在于,所述步骤S4中取出明文结果F中对应位置的数据并进行处理得到向量r的方法如下:
将明文结果F中与d位明文空间中编号为2至m的子空间的第二存储空间对应位置的数据取出,组成g维的向量s,对向量s内的每个数据进行处理,得到向量r;
所述对向量s内的第j个数据sj进行处理得到向量r内的第j个数据rj的方法如下,1≤j≤g:
判断数据sj是否大于2a-1,如果是,则rj=sj-2a,否则,rj=sj。
5.一种基于隐私保护的数据相减运算方法,第一数据方持有作为被减数的g维数据向量x1,第二数据方持有作为减数的g维数据向量x2,数据向量x1、数据向量x2内的数据都为a位的浮点型非负数据且位于区间[0,2a-1]内,g≥2,其特征在于,包括以下步骤:
S1:结果接收方生成Paillier加密算法的公钥pk、私钥sk,将公钥pk发送给第一数据方、第二数据方、计算方;
S2:第一数据方、第二数据方分别采用精度控制法将数据向量x1、数据向量x2内的数据从a位浮点型转换为a位整型且保证转换后的数据位于区间[0,2a-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;
N2:采用公钥pk对明文Pi进行Paillier加密得到对应的密文Qi;
S3:计算方计算Q1*[Q2*(2a-1)],得到密文结果D,将密文结果D中没有存储数据的位置加上随机数得到密文结果E,将密文结果E发送给结果接收方;
S4:结果接收方采用私钥sk对密文结果E进行解密,得到明文结果F,取出明文结果F中对应位置的数据并进行处理得到向量r,采用同样的精度控制法将向量r内的数据从a位整型转换为a位浮点型,向量r就是数据向量x1减去数据向量x2的值。
6.根据权利要求5所述的一种基于隐私保护的数据相减运算方法,其特征在于,所述步骤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。
7.根据权利要求5或6所述的一种基于隐私保护的数据相减运算方法,其特征在于,所述步骤S4中取出明文结果F中对应位置的数据并进行处理得到向量r的方法如下:
将明文结果F中与d位明文空间中编号为2至m的子空间的第二存储空间对应位置的数据取出,组成g维的向量s,对向量s内的每个数据进行处理,得到向量r;
所述对向量s内的第j个数据sj进行处理得到向量r内的第j个数据rj的方法如下,1≤j≤g:
判断数据sj是否大于2a-1,如果是,则rj=sj-2a,否则,rj=sj。
8.根据权利要求5或6所述的一种基于隐私保护的数据相减运算方法,其特征在于,所述步骤S2中数据方采用精度控制法将数据向量内的数据从a位浮点型转换为a位整型的方法如下:
将数据向量内的a位浮点型数据代入公式:
,计算得到对应的a位整型数据,其中,w表示a位整型数据,f表示a位浮点型数据,p表示非负整数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311011195.5A CN116719502B (zh) | 2023-08-11 | 2023-08-11 | 一种基于隐私保护的数据相减运算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311011195.5A CN116719502B (zh) | 2023-08-11 | 2023-08-11 | 一种基于隐私保护的数据相减运算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116719502A CN116719502A (zh) | 2023-09-08 |
CN116719502B true CN116719502B (zh) | 2023-10-20 |
Family
ID=87870191
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311011195.5A Active CN116719502B (zh) | 2023-08-11 | 2023-08-11 | 一种基于隐私保护的数据相减运算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116719502B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117234457B (zh) * | 2023-11-10 | 2024-01-26 | 蓝象智联(杭州)科技有限公司 | 一种用于隐私计算的数据相减运算方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107147484A (zh) * | 2017-05-12 | 2017-09-08 | 南京邮电大学 | 一种面向隐私保护的浮点数全同态加密方法 |
CN112865954A (zh) * | 2021-04-26 | 2021-05-28 | 深圳致星科技有限公司 | 用于Paillier解密的加速器、芯片及系统 |
CN112989368A (zh) * | 2021-02-07 | 2021-06-18 | 支付宝(杭州)信息技术有限公司 | 多方联合进行隐私数据处理的方法及装置 |
CN114696990A (zh) * | 2022-05-31 | 2022-07-01 | 深圳市洞见智慧科技有限公司 | 基于全同态加密的多方计算方法、系统及相关设备 |
CN115842617A (zh) * | 2022-09-30 | 2023-03-24 | 西安电子科技大学广州研究院 | 一种支持批处理的安全同态计算方法及存储装置、设备 |
CN115996117A (zh) * | 2022-12-20 | 2023-04-21 | 上海交通大学 | 基于改进Paillier算法的优化加密解密方法及系统 |
CN116127489A (zh) * | 2023-02-03 | 2023-05-16 | 蓝象智联(杭州)科技有限公司 | 一种用于安全多方计算的数据点乘运算方法及电子设备 |
CN116522366A (zh) * | 2023-06-26 | 2023-08-01 | 三未信安科技股份有限公司 | 一种适用于大数据的多方数据处理方法、存储介质和产品 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR3040842B1 (fr) * | 2015-09-03 | 2018-12-07 | Commissariat A L'energie Atomique Et Aux Energies Alternatives | Methode d'interrogation confidentielle d'un service geodependant par cryptographie homomorphe |
US11323255B2 (en) * | 2019-08-01 | 2022-05-03 | X-Logos, LLC | Methods and systems for encryption and homomorphic encryption systems using Geometric Algebra and Hensel codes |
-
2023
- 2023-08-11 CN CN202311011195.5A patent/CN116719502B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107147484A (zh) * | 2017-05-12 | 2017-09-08 | 南京邮电大学 | 一种面向隐私保护的浮点数全同态加密方法 |
CN112989368A (zh) * | 2021-02-07 | 2021-06-18 | 支付宝(杭州)信息技术有限公司 | 多方联合进行隐私数据处理的方法及装置 |
CN112865954A (zh) * | 2021-04-26 | 2021-05-28 | 深圳致星科技有限公司 | 用于Paillier解密的加速器、芯片及系统 |
CN114696990A (zh) * | 2022-05-31 | 2022-07-01 | 深圳市洞见智慧科技有限公司 | 基于全同态加密的多方计算方法、系统及相关设备 |
CN115842617A (zh) * | 2022-09-30 | 2023-03-24 | 西安电子科技大学广州研究院 | 一种支持批处理的安全同态计算方法及存储装置、设备 |
CN115996117A (zh) * | 2022-12-20 | 2023-04-21 | 上海交通大学 | 基于改进Paillier算法的优化加密解密方法及系统 |
CN116127489A (zh) * | 2023-02-03 | 2023-05-16 | 蓝象智联(杭州)科技有限公司 | 一种用于安全多方计算的数据点乘运算方法及电子设备 |
CN116522366A (zh) * | 2023-06-26 | 2023-08-01 | 三未信安科技股份有限公司 | 一种适用于大数据的多方数据处理方法、存储介质和产品 |
Non-Patent Citations (4)
Title |
---|
Efficient paillier cryptoprocessor for privacy-preserving data mining;San, Ismail;《SECURITY AND COMMUNICATION NETWORKS》;第9卷;全文 * |
基于ECC与同态加密的加密算法;刘艳;郎显赫;裴少婧;;计算机工程与设计(第05期);全文 * |
基于动态数据挖掘的匿名化隐私保护方法仿真;田崇瑞;李兆祥;罗宇新;;计算机仿真(第11期);全文 * |
面向移动互联网的安全两方计算技术研究;王婧;《中国博士学位论文全文数据库(信息科技辑)》(第7期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116719502A (zh) | 2023-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9215068B2 (en) | Search system, search method, and program | |
EP3424175B1 (en) | Converting a boolean masked value to an arithmetically masked value for cryptographic operations | |
WO2018205549A1 (zh) | 一种全同态加密的密文查询方法和系统 | |
CN116719502B (zh) | 一种基于隐私保护的数据相减运算方法 | |
US11626970B2 (en) | Multiplicative masking for cryptographic operations | |
CN115276947B (zh) | 隐私数据处理方法、装置、系统及存储介质 | |
US9893880B2 (en) | Method for secure symbol comparison | |
US11392725B2 (en) | Security processor performing remainder calculation by using random number and operating method of the security processor | |
CN111010266B (zh) | 消息的加解密、读写方法、装置、计算机设备和存储介质 | |
CN115801224B (zh) | 一种云计算环境中支持浮点数运算的全同态加密方法 | |
Joshi et al. | An efficient cryptographic scheme for text message protection against brute force and cryptanalytic attacks | |
CN114978467B (zh) | 一种基于全同态加密的医疗数据共享的隐私保护方法 | |
Kim et al. | A privacy-preserving k-means clustering algorithm using secure comparison protocol and density-based center point selection | |
CN112929151A (zh) | 基于隐私保护的实体对齐方法及计算机存储介质 | |
CN115765969B (zh) | 一种基于同态加密的隐匿集合求交方法、装置及存储介质 | |
CN111475690A (zh) | 字符串的匹配方法和装置、数据检测方法、服务器 | |
CN114553395B (zh) | 一种风控场景下的纵向联邦特征衍生方法 | |
Liu et al. | Performance analysis of arithmetic operations in homomorphic encryption | |
CN117234457B (zh) | 一种用于隐私计算的数据相减运算方法 | |
CN113254981B (zh) | 一种后量子安全的外包隐私数据发布方法及系统 | |
CN107968706B (zh) | 具有流程保护功能的白盒密码方法及系统 | |
Rao et al. | Secure and practical outsourcing of linear programming in cloud computing: A survey | |
CN113541933B (zh) | 一种基于格的高效紧凑加密方法 | |
CN102427444B (zh) | 一种计算机对数据流进行处理的方法 | |
KR102337865B1 (ko) | 동형 암호에 기초한 산술 연산 시스템 및 이를 이용한 동형 암호 산술 연산 방법 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |