CN114584278A - 数据同态加密方法及装置、数据传输方法及装置 - Google Patents
数据同态加密方法及装置、数据传输方法及装置 Download PDFInfo
- Publication number
- CN114584278A CN114584278A CN202210134717.XA CN202210134717A CN114584278A CN 114584278 A CN114584278 A CN 114584278A CN 202210134717 A CN202210134717 A CN 202210134717A CN 114584278 A CN114584278 A CN 114584278A
- Authority
- CN
- China
- Prior art keywords
- data
- random number
- ciphertext
- encrypted
- public key
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请公开了数据同态加密方法及装置、数据传输方法及装置,该数据同态加密方法,包括:获取待加密数据;获取预设安全参数λ、ρ、ρ′、η、γ和设定明文长度,ρ=λ,ρ′=2λ,η=O(λ2),γ=O(λ3),设定明文长度大于1比特;根据η生成私钥;根据私钥和γ生成随机数q0和随机数q1,根据安全ρ′生成随机数b0和随机数b1;根据私钥、随机数q0、随机数b0和设定明文长度生成第一公钥,根据私钥、随机数q1、随机数b1和设定明文长度生成第二公钥;针对每一待加密数据,根据ρ生成第一随机数和第二随机数,并根据设定明文长度、第一公钥、第二公钥、第一随机数、第二随机数和待加密数据进行同态加密计算获得加密后的密文。
Description
技术领域
本申请涉及数据安全领域,尤其涉及数据同态加密方法及装置、数据传输方法及装置。
背景技术
随着云计算技术的广泛应用,尤其是云计算服务器上的大量电子商务交易,如何安全有效地保护用户隐私与安全称为当今密码学研究领域的热点,为确保数据传输过程中的安全,同态加密技术得到广泛应用。同态加密技术是基于数学难题的计算复杂性理论的密码学技术,对经过同态加密的数据进行处理得到一个输出,将这一输出进行解密,其结果与用同一方法处理未加密的原始明文数据得到的输出结果是一样的。
Marten van Dijk,Craig Gentry,Shai Halevi和Vinod Vaikuntanathan四人提出了一种基于整数的同态加密方法(《Fully Homomorphic Encryption over theIntegers》),称为DGHV方案,该方案中的公钥尺寸过高,可达O(λ10),其中,λ为安全参数,由于计算资源等因素的限制而无法适用,且该方案每次只能加密一比特长度的明文数据,使得加密效率较低。
因此,如何压缩同态加密方法中的公钥尺寸以及提升明文空间,以提高加密效率,是现有技术亟待解决的技术问题之一。
发明内容
为了解决背景技术中的问题,本申请实施例提供了一种数据同态加密方法及装置、数据传输方法及装置。
第一方面,本申请实施例提供了一种数据同态加密方法,包括:
获取待加密数据;
获取预设安全参数λ、ρ、ρ′、η、γ和设定明文长度,其中,ρ=λ,ρ′=2λ,η=O(λ2),γ=O(λ3),所述设定明文长度大于1比特;
根据所述安全参数η生成私钥;
根据所述私钥和所述安全参数γ生成随机数q0和随机数q1,以及根据所述安全参数ρ′生成随机数b0和随机数b1;
根据所述私钥、所述随机数q0、所述随机数b0和所述设定明文长度生成第一公钥,以及根据所述私钥、所述随机数q1、所述随机数b1和所述设定明文长度生成第二公钥;
针对获取的每一待加密数据,根据所述安全参数ρ生成第一随机数和第二随机数,并根据所述设定明文长度、所述第一公钥、所述第二公钥、所述第一随机数、所述第二随机数以及所述待加密数据进行同态加密计算,获得加密后的密文。
在一种可能的实施方式中,根据所述安全参数η生成私钥,具体包括:
生成长度为η比特的整数p,其中,p∈[2η-1,2η);
将所述p确定为私钥。
在一种可能的实施方式中,所述随机数q0和所述随机数q1满足以下条件:
其中,p表示所述私钥;
Z表示整数集合。
在一种可能的实施方式中,所述随机数b0和所述随机数b1满足以下条件:
b0,b1∈(-2ρ′,2ρ′)
在一种可能的实施方式中,根据所述私钥、所述随机数q0、所述随机数b0和所述设定明文长度生成第一公钥,具体包括:
通过以下公式计算所述第一公钥:
x0=pq0+Qb0
其中,x0表示所述第一公钥;
p表示所述私钥;
Q表示所述设定明文长度;以及
根据所述私钥、所述随机数q1、所述随机数b1和所述设定明文长度生成第二公钥,具体包括:
通过以下公式计算所述第二公钥:
x1=pq1+Qb1
其中,x1表示所述第二公钥;
x0和x1满足以下条件:|x1|<|x0|。
在一种可能的实施方式中,针对获取的每一待加密数据,通过以下公式进行同态加密计算,获得加密后的密文:
ci=(mi+Qri+r′ix1)mod x0
其中,ci表示第i个待加密数据加密后的密文,i=1~n,n表示待加密数据的个数;
mi表示第i个待加密数据;
Q表示所述设定明文长度;
ri表示针对所述第i个待加密数据生成的第一随机数;
ri′表示针对所述第i个待加密数据生成的第二随机数;
ri和ri′满足以下条件:ri,r′i∈(-2ρ,2ρ);
x0表示所述第一公钥;
x1表示所述第二公钥;
x0和x1满足以下条件:|x1|<|x0|;
mod表示模运算。
在一种可能的实施方式中,所述方法,还包括:
将所述每一待加密数据加密后的密文和所述第一公钥发送至目标服务器,以使所述目标服务器根据所述第一公钥对所述每一待加密数据加密后的密文进行同态运算操作得到密文同态运算操作结果;
接收所述目标服务器返回的密文同态运算操作结果;
利用所述私钥对所述密文同态运算操作结果进行解密,获得解密后的对应明文同态运算操作结果。
在一种可能的实施方式中,利用所述私钥对所述密文同态运算操作结果进行解密,获得解密后的对应明文同态运算操作结果,具体包括:
通过以下公式对所述密文同态运算操作结果进行解密:
m=(c mod p)mod Q
其中,m表示所述明文同态运算操作结果;
c表示所述密文同态运算操作结果;
p表示所述私钥;
Q表示所述设定明文长度;
第二方面,本申请实施例提供了一种数据同态加密装置,包括:
第一获取单元,用于获取待加密数据;
第二获取单元,用于获取预设安全参数λ、ρ、ρ′、η、γ和设定明文长度,其中,ρ=λ,ρ′=2λ,η=O(λ2),γ=O(λ3),所述设定明文长度大于1比特;
第一生成单元,用于根据所述安全参数η生成私钥;
第二生成单元,用于根据所述私钥和所述安全参数γ生成随机数q0和随机数q1,以及根据所述安全参数ρ′生成随机数b0和随机数b1;
第三生成单元,用于根据所述私钥、所述随机数q0、所述随机数b0和所述设定明文长度生成第一公钥,以及根据所述私钥、所述随机数q1、所述随机数b1和所述设定明文长度生成第二公钥;
加密单元,用于针对获取的每一待加密数据,根据所述安全参数ρ生成第一随机数和第二随机数,并根据所述设定明文长度、所述第一公钥、所述第二公钥、所述第一随机数、所述第二随机数以及所述待加密数据进行同态加密计算,获得加密后的密文。
在一种可能的实施方式中,所述第一生成单元,具体用于生成长度为η比特的整数p,其中,p∈[2η-1,2η);将所述p确定为私钥。
在一种可能的实施方式中,所述随机数q0和所述随机数q1满足以下条件:
其中,p表示所述私钥;
Z表示整数集合。
在一种可能的实施方式中,所述随机数b0和所述随机数b1满足以下条件:
b0,b1∈(-2ρ′,2ρ′)
在一种可能的实施方式中,所述第三生成单元,具体用于通过以下公式计算所述第一公钥:
x0=pq0+Qb0
其中,x0表示所述第一公钥;
p表示所述私钥;
Q表示所述设定明文长度;以及
通过以下公式计算所述第二公钥:
x1=pq1+Qb1
其中,x1表示所述第二公钥;
x0和x1满足以下条件:|x1|<|x0|。
在一种可能的实施方式中,所述加密单元,具体用于针对获取的每一待加密数据,通过以下公式进行同态加密计算,获得加密后的密文:
ci=(mi+Qri+ri′x1)mod x0
其中,ci表示第i个待加密数据加密后的密文,i=1~n,n表示待加密数据的个数;
mi表示第i个待加密数据;
Q表示所述设定明文长度;
ri表示针对所述第i个待加密数据生成的第一随机数;
r′i表示针对所述第i个待加密数据生成的第二随机数;
ri和r′i满足以下条件:ri,r′i∈(-2ρ,2ρ);
x0表示所述第一公钥;
x1表示所述第二公钥;
x0和x1满足以下条件:|x1|<|x0|;
mod表示模运算。
在一种可能的实施方式中,所述方法,还包括:
发送单元,用于将所述每一待加密数据加密后的密文和所述第一公钥发送至目标服务器,以使所述目标服务器根据所述第一公钥对所述每一待加密数据加密后的密文进行同态运算操作得到密文同态运算操作结果;
接收单元,用于接收所述目标服务器返回的密文同态运算操作结果;
解密单元,用于利用所述私钥对所述密文同态运算操作结果进行解密,获得解密后的对应明文同态运算操作结果。
在一种可能的实施方式中,所述解密单元,具体用于通过以下公式对所述密文同态运算操作结果进行解密:
m=(c mod p)mod Q
其中,m表示所述明文同态运算操作结果;
c表示所述密文同态运算操作结果;
p表示所述私钥;
Q表示所述设定明文长度;
第三方面,本申请实施例提供了一种数据传输方法,包括:
接收目标服务器发送的N个数据标识信息,确定待查询的目标数据标识,根据本申请所述的数据同态加密方法分别对N-1个0进行加密获得对应的N-1个加密后的第一密文,并对1进行加密获得加密后的第二密文;
将N-1个所述第一密文分别确定为除所述目标数据标识之外的N-1个数据标识对应的密文,将所述第二密文确定为所述目标数据标识对应的密文;
将各第一密文和所述第二密文按照所述N个数据标识的排列顺序进行排序生成密文集合;
向所述目标服务器发送数据请求,所述数据请求中携带有所述密文集合和公钥,以使所述目标服务器根据所述公钥、所述N个数据标识对应的数据对所述密文集合中的所述第一密文和所述第二密文按顺序进行同态运算操作得到密文同态运算操作结果;
接收所述目标服务器返回的密文同态运算操作结果,利用私钥对所述密文同态运算操作结果进行解密,获得所述目标数据标识对应的数据。
第四方面,本申请实施例提供了一种数据传输装置,包括:
加密单元,用于接收目标服务器发送的N个数据标识信息,确定待查询的目标数据标识,根据本申请所述的数据同态加密方法分别对N-1个0进行加密获得对应的N-1个加密后的第一密文,并对1进行加密获得加密后的第二密文;
确定单元,用于将N-1个所述第一密文分别确定为除所述目标数据标识之外的N-1个数据标识对应的密文,将所述第二密文确定为所述目标数据标识对应的密文;
生成单元,用于将各第一密文和所述第二密文按照所述N个数据标识的排列顺序进行排序生成密文集合;
发送单元,用于向所述目标服务器发送数据请求,所述数据请求中携带有所述密文集合和公钥,以使所述目标服务器根据所述公钥、所述N个数据标识对应的数据对所述密文集合中的所述第一密文和所述第二密文按顺序进行同态运算操作得到密文同态运算操作结果;
解密单元,用于接收所述目标服务器返回的密文同态运算操作结果,利用私钥对所述密文同态运算操作结果进行解密,获得所述目标数据标识对应的数据。
第五方面,本申请实施例提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现本申请所述的数据同态加密方法或数据传输方法。
第六方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本申请所述的数据同态加密方法或数据传输方法中的步骤。
本申请实施例的有益效果如下:
本申请实施例提供的数据同态加密方案中,获取待加密数据,获取预设安全参数λ、ρ、ρ′、η、γ和设定明文长度,其中,ρ=λ,ρ′=2λ,η=O(λ2),γ=O(λ3),所述设定明文长度大于1比特,根据安全参数η生成私钥,根据私钥和安全参数γ生成随机数q0和随机数q1,以及根据安全参数ρ′生成随机数b0和随机数b1,根据私钥、随机数q0、随机数b0和设定明文长度生成第一公钥,以及根据私钥、随机数q1、随机数b1和设定明文长度生成第二公钥,针对获取的每一待加密数据,根据安全参数ρ生成第一随机数和第二随机数,并根据设定明文长度、第一公钥、第二公钥、第一随机数、第二随机数以及待加密数据进行同态加密计算,获得加密后的密文,相比于现有技术,本申请中将公钥尺寸降低到O(λ3),远远低于现有的公钥尺寸(O(λ10)),并且,明文长度大于1比特,使得加密的明文空间得到大大提升,节约了计算资源,提高了加密效率。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的数据同态加密方法的实施流程示意图;
图2为本申请实施例提供的数据同态加密装置的结构示意图;
图3为本申请实施例提供的数据传输方法的实施流程示意图;
图4为本申请实施例提供的数据传输装置的结构示意图;
图5为本申请实施例提供的电子设备的结构示意图。
具体实施方式
为了解决背景技术中的问题,本申请实施例提供了一种数据同态加密方法及装置、数据传输方法及装置。
以下结合说明书附图对本申请的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本申请,并不用于限定本申请,并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
如图1所示,其为本申请实施例提供的数据同态加密方法的实施流程示意图,具体可以包括以下步骤:
S11、获取待加密数据。
具体实施时,终端获取待加密数据,每一待加密数据的尺寸∈(0,Q),其中,Q为预先设定的明文长度,Q为长度大于1比特的整数,在具体实施过程中可以自行进行设定,本申请实施例对此不作限定,例如,Q可以但不限于取值为:28、216、232或264等等。
S12、获取预设安全参数λ、ρ、ρ′、η、γ和设定明文长度。
具体实施时,ρ=λ,ρ′=2λ,η=O(λ2),γ=O(λ3),例如,假设λ=128,则ρ=128,ρ′=256,η=O(1282),γ=O(1283)。
S13、根据安全参数η生成私钥。
具体实施时,终端随机生成长度为η比特的整数p,其中,p∈[2η-1,2η),将该整数p确定为私钥,即私钥sk=p。
S14、根据私钥和安全参数γ生成随机数q0和随机数q1,以及根据安全参数ρ′生成随机数b0和随机数b1。
具体实施时,终端根据私钥p和安全参数γ生成随机数q0和随机数q1,随机数q0和随机数q1满足以下条件:
其中,Z表示整数集合。
终端根据安全参数ρ′生成随机数b0和随机数b1,随机数b0和所述随机数b1满足以下条件:
b0,b1∈(-2ρ′,2ρ′)
S15、根据私钥、随机数q0、随机数b0和设定明文长度生成第一公钥,以及根据私钥、随机数q1、随机数b1和设定明文长度生成第二公钥。
具体实施时,终端可通过以下公式计算第一公钥:
x0=pq0+Qb0
其中,x0表示第一公钥;
p表示私钥;
Q表示设定明文长度。
通过以下公式计算第二公钥:
x1=pq1+Qb1
其中,x1表示第二公钥;
令x0和x1满足以下条件:|x1|<|x0|。
即公钥pk=(x0,x1)。
S16、针对获取的每一待加密数据,根据安全参数ρ生成第一随机数和第二随机数,并根据设定明文长度、第一公钥、第二公钥、第一随机数、第二随机数以及待加密数据进行同态加密计算,获得加密后的密文。
具体实施时,终端针对获取的每一待加密数据,通过以下公式进行同态加密计算,获得加密后的密文:
ci=(mi+Qri+r′ix1)mod x0
其中,ci表示第i个待加密数据加密后的密文,i=1~n,n表示待加密数据的个数;
mi表示第i个待加密数据;
Q表示设定明文长度;
ri表示针对第i个待加密数据生成的第一随机数;
ri′表示针对第i个待加密数据生成的第二随机数;
ri和r′i满足以下条件:ri,ri′∈(-2ρ,2ρ);
x0表示第一公钥;
x1表示第二公钥;
x0和x1满足以下条件:|x1|<|x0|;
mod表示模运算。
当终端需要与目标服务器进行数据交互时,终端将每一待加密数据加密后的密文和第一公钥发送至目标服务器,目标服务器根据第一公钥对每一待加密数据加密后的密文进行同态运算操作得到密文同态运算操作结果,将密文同态运算操作结果返回至终端,终端接收目标服务器返回的密文同态运算操作结果,利用私钥对密文同态运算操作结果进行解密,获得解密后的对应明文同态运算操作结果。
具体实施时,目标服务器可为终端提供应用服务,其可以为云计算服务器,也可以为物理服务器,本申请实施例对此不作限定。
目标服务器在接受到终端发送的每一待加密数据加密后的密文c1~cn和第一公钥x0后,可对密文c1~cn进行加法同态运算操作,也可以对密文c1~cn进行乘法同态运算操作,还可以对密文c1~cn进行加法与乘法混合同态运算操作,本申请实施例对此不作限定。当目标服务器对密文c1~cn进行加法同态运算操作时,可得到密文同态运算操作结果为:若目标服务器对密文c1~cn进行乘法同态运算操作时,可得到密文同态运算操作结果为:
终端通过以下公式对目标服务器返回的密文同态运算操作结果进行解密:
m=(c mod p)mod Q
其中,m表示明文同态运算操作结果;
c表示密文同态运算操作结果;
p表示私钥;
Q表示设定明文长度;
本申请实施例提供的数据同态加密方法,终端获取待加密数据,获取预设安全参数λ、ρ、ρ′、η、γ和设定明文长度,其中,ρ=λ,ρ′=2λ,η=O(λ2),γ=O(λ3),所述设定明文长度大于1比特,根据安全参数η生成私钥,根据私钥和安全参数γ生成随机数q0和随机数q1,以及根据安全参数ρ′生成随机数b0和随机数b1,根据私钥、随机数q0、随机数b0和设定明文长度生成第一公钥,以及根据私钥、随机数q1、随机数b1和设定明文长度生成第二公钥,针对获取的每一待加密数据,根据安全参数ρ生成第一随机数和第二随机数,并根据设定明文长度、第一公钥、第二公钥、第一随机数、第二随机数以及待加密数据进行同态加密计算,获得加密后的密文,相比于现有技术,本申请中将公钥尺寸降低到O(λ3),远远低于现有的公钥尺寸(O(λ10)),即:使得公钥程数量级的降低,并且,明文长度提升到任意的大于1比特的整数Q(28、216、232或264等……),可对整数进行操作,使得加密的明文空间得到大大提升,节约了计算资源,提高了加密效率。
基于同一发明构思,本申请实施例还提供了一种数据同态加密装置,由于上述数据同态加密装置解决问题的原理与数据同态加密方法相似,因此上述装置的实施可以参见方法的实施,重复之处不再赘述。
如图2所示,为本申请实施例提供的数据同态加密装置的结构示意图,可以包括:
第一获取单元21,用于获取待加密数据;
第二获取单元22,用于获取预设安全参数λ、ρ、ρ′、η、γ和设定明文长度,其中,ρ=λ,ρ′=2λ,η=O(λ2),γ=O(λ3),所述设定明文长度大于1比特;
第一生成单元23,用于根据所述安全参数η生成私钥;
第二生成单元24,用于根据所述私钥和所述安全参数γ生成随机数q0和随机数q1,以及根据所述安全参数ρ′生成随机数b0和随机数b1;
第三生成单元25,用于根据所述私钥、所述随机数q0、所述随机数b0和所述设定明文长度生成第一公钥,以及根据所述私钥、所述随机数q1、所述随机数b1和所述设定明文长度生成第二公钥;
加密单元26,用于针对获取的每一待加密数据,根据所述安全参数ρ生成第一随机数和第二随机数,并根据所述设定明文长度、所述第一公钥、所述第二公钥、所述第一随机数、所述第二随机数以及所述待加密数据进行同态加密计算,获得加密后的密文。
在一种可能的实施方式中,所述第一生成单元23,具体用于生成长度为η比特的整数p,其中,p∈[2η-1,2η);将所述p确定为私钥。
在一种可能的实施方式中,所述随机数q0和所述随机数q1满足以下条件:
其中,p表示所述私钥;
Z表示整数集合。
在一种可能的实施方式中,所述随机数b0和所述随机数b1满足以下条件:
b0,b1∈(-2ρ′,2ρ′)
在一种可能的实施方式中,所述第三生成单元25,具体用于通过以下公式计算所述第一公钥:
x0=pq0+Qb0
其中,x0表示所述第一公钥;
p表示所述私钥;
Q表示所述设定明文长度;以及
通过以下公式计算所述第二公钥:
x1=pq1+Qb1
其中,x1表示所述第二公钥;
x0和x1满足以下条件:|x1|<|x0|。
在一种可能的实施方式中,所述加密单元26,具体用于针对获取的每一待加密数据,通过以下公式进行同态加密计算,获得加密后的密文:
ci=(mi+Qri+r′ix1)mod x0
其中,ci表示第i个待加密数据加密后的密文,i=1~n,n表示待加密数据的个数;
mi表示第i个待加密数据;
Q表示所述设定明文长度;
ri表示针对所述第i个待加密数据生成的第一随机数;
r′i表示针对所述第i个待加密数据生成的第二随机数;
ri和r′i满足以下条件:ri,r′i∈(-2ρ,2ρ);
x0表示所述第一公钥;
x1表示所述第二公钥;
x0和x1满足以下条件:|x1|<|x0|;
mod表示模运算。
在一种可能的实施方式中,所述方法,还包括:
发送单元,用于将所述每一待加密数据加密后的密文和所述第一公钥发送至目标服务器,以使所述目标服务器根据所述第一公钥对所述每一待加密数据加密后的密文进行同态运算操作得到密文同态运算操作结果;
接收单元,用于接收所述目标服务器返回的密文同态运算操作结果;
解密单元,用于利用所述私钥对所述密文同态运算操作结果进行解密,获得解密后的对应明文同态运算操作结果。
在一种可能的实施方式中,所述解密单元,具体用于通过以下公式对所述密文同态运算操作结果进行解密:
m=(c mod p)mod Q
其中,m表示所述明文同态运算操作结果;
c表示所述密文同态运算操作结果;
p表示所述私钥;
Q表示所述设定明文长度;
基于同一发明构思,本申请实施例还提供了一种数据传输方法,由于上述数据传输方法解决问题的原理与数据同态加密方法相似,因此上述数据传输方法的实施可以参见数据同态加密方法的实施,重复之处不再赘述。
如图3所示,为本申请实施例提供的数据传输方法的实施流程示意图,所述数据传输方法应用于基于本申请实施例提供的数据同态加密方法进行数据加密查询的应用场景,可以包括以下步骤:
S31、目标服务器向终端发送N个数据标识信息。
具体实施时,目标服务器为服务方,其数据库中存储有数据标识与数据的对应关系,目标服务器向终端发送N个数据标识信息,其中,N为大于等于2的整数。
S32、终端确定待查询的目标数据标识信息,根据本申请实施例提供的数据同态加密方法分别对N-1个0进行加密获得对应的N-1个加密后的第一密文,并对1进行加密获得加密后的第二密文。
具体实施,终端接收目标服务器发送的N个数据标识信息,确定待查询的目标数据标识信息,假设目标数据标识为k,k∈(1,N)。终端利用本申请实施例提供的上述数据同态加密方法中生成的公钥pk=(x0,x1)分别加密N-1个0和一个1,对N-1个0进行加密获得对应的N-1个加密后的第一密文,对1进行加密获得一个加密后的第二密文。
S33、终端将N-1个第一密文分别确定为除目标数据标识之外的N-1个数据标识对应的密文,将第二密文确定为目标数据标识对应的密文。
具体实施时,终端将N-1个第一密文分别确定为除目标数据标识k之外的N-1个数据标识对应的密文,将第二密文确定为目标数据标识k对应的密文。
S34、终端将各第一密文和第二密文按照N个数据标识的排列顺序进行排序生成密文集合。
具体实施时,排序后的密文集合如下:
C=(Encpk,1(0),Encpk,2(0),……,Encpk,k(1),……,Encpk,N(0))
其中,Encpk,k(1)为第二密文,即目标数据标识k对应的密文;除Encpk,k(1)外的Encpk,1(0),Encpk,2(0),……,Encpk,N(0)均为第一密文,分别是数据标识1、2、……、N(除k外)对应的密文。
S35、终端向目标服务器发送数据请求,数据请求中携带有密文集合和公钥。
其中,公钥可发送第一公钥x0。
S36、目标服务器根据公钥、N个数据标识对应的数据对密文集合中的第一密文和第二密文按顺序进行同态运算操作得到密文同态运算操作结果。
具体实施时,数据标识1~N对应的数据分别为{D1,D2,……,Dk,……DN},目标服务器通过以下公式进行同态运算操作得到密文同态运算操作结果:
T=[D1*Encpk,1(0)+D2*Encpk,2(0)+…+Dk*Encpk,k(1)+…+DN*Encpk,N(0)]mod x0
其中,T表示密文同态运算操作结果。
S37、目标服务器向终端发送密文同态运算操作结果。
S38、终端利用私钥对密文同态运算操作结果进行解密,获得目标数据标识对应的数据。
具体实施时,终端接收目标服务器返回的密文同态运算操作结果T,利用私钥(sk=p)对密文同态运算操作结果进行解密,获得目标数据标识对应的数据。
具体地,通过以下公式对密文同态运算操作结果T进行解密:
(T mod p)mod Q=D1*0+D2*0+…+Dk*1+…+DN*0=Dk
这样,终端即可获得待查询的目标数据标识k对应的数据Dk,在终端与目标服务器的交互过程中,目标服务器始终无法得知终端查询的具体数据是什么,进一步提高了数据传输的安全性。
基于同一发明构思,本申请实施例还提供了一种数据传输装置,由于上述数据传输装置解决问题的原理与数据传输方法相似,因此上述数据传输装置的实施可以参见数据传输方法的实施,重复之处不再赘述。
如图4所示,为本申请实施例提供的数据传输装置的结构示意图,可以包括:
加密单元41,用于接收目标服务器发送的N个数据标识信息,确定待查询的目标数据标识,根据本申请所述的数据同态加密方法分别对N-1个0进行加密获得对应的N-1个加密后的第一密文,并对1进行加密获得加密后的第二密文;
确定单元42,用于将N-1个所述第一密文分别确定为除所述目标数据标识之外的N-1个数据标识对应的密文,将所述第二密文确定为所述目标数据标识对应的密文;
生成单元43,用于将各第一密文和所述第二密文按照所述N个数据标识的排列顺序进行排序生成密文集合;
发送单元44,用于向所述目标服务器发送数据请求,所述数据请求中携带有所述密文集合和公钥,以使所述目标服务器根据所述公钥、所述N个数据标识对应的数据对所述密文集合中的所述第一密文和所述第二密文按顺序进行同态运算操作得到密文同态运算操作结果;
解密单元45,用于接收所述目标服务器返回的密文同态运算操作结果,利用私钥对所述密文同态运算操作结果进行解密,获得所述目标数据标识对应的数据。
基于同一技术构思,本申请实施例还提供了一种电子设备500,参照图5所示,电子设备500用于实施上述方法实施例记载的数据同态加密方法,该实施例的电子设备500可以包括:存储器501、处理器502以及存储在所述存储器中并可在所述处理器上运行的计算机程序,例如数据同态加密程序。所述处理器执行所述计算机程序时实现上述数据同态加密方法或者数据传输方法实施例中的步骤,例如图1所示的步骤S11。或者,所述处理器执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能,例如21。
本申请实施例中不限定上述存储器501、处理器502之间的具体连接介质。本申请实施例在图5中以存储器501、处理器502之间通过总线503连接,总线503在图5中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线503可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器501可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器501也可以是非易失性存储器(non-volatilememory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)、或者存储器501是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器501可以是上述存储器的组合。
处理器502,用于实现如图1所示的一种数据同态加密方法或者如图3所示的数据传输方法。
本申请实施例还提供了一种计算机可读存储介质,存储为执行上述处理器所需执行的计算机可执行指令,其包含用于执行上述处理器所需执行的程序。
在一些可能的实施方式中,本申请提供的数据同态加密方法或者数据传输方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在电子设备上运行时,所述程序代码用于使所述电子设备执行本说明书上述描述的根据本申请各种示例性实施方式的数据同态加密方法或者数据传输方法中的步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、装置、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(装置)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (20)
1.一种数据同态加密方法,其特征在于,包括:
获取待加密数据;
获取预设安全参数λ、ρ、ρ′、η、γ和设定明文长度,其中,ρ=λ,ρ′=2λ,η=O(λ2),γ=O(λ3),所述设定明文长度大于1比特;
根据所述安全参数η生成私钥;
根据所述私钥和所述安全参数γ生成随机数q0和随机数q1,以及根据所述安全参数ρ′生成随机数b0和随机数b1;
根据所述私钥、所述随机数q0、所述随机数b0和所述设定明文长度生成第一公钥,以及根据所述私钥、所述随机数q1、所述随机数b1和所述设定明文长度生成第二公钥;
针对获取的每一待加密数据,根据所述安全参数ρ生成第一随机数和第二随机数,并根据所述设定明文长度、所述第一公钥、所述第二公钥、所述第一随机数、所述第二随机数以及所述待加密数据进行同态加密计算,获得加密后的密文。
2.如权利要求1所述的方法,其特征在于,根据所述安全参数η生成私钥,具体包括:
生成长度为η比特的整数p,其中,p∈[2η-1,2η);
将所述p确定为私钥。
4.如权利要求3所述的方法,其特征在于,所述随机数b0和所述随机数b1满足以下条件:
b0,b1∈(-2ρ′,2ρ′)
5.如权利要求4所述的方法,其特征在于,根据所述私钥、所述随机数q0、所述随机数b0和所述设定明文长度生成第一公钥,具体包括:
通过以下公式计算所述第一公钥:
x0=pq0+Qb0
其中,x0表示所述第一公钥;
p表示所述私钥;
Q表示所述设定明文长度;以及
根据所述私钥、所述随机数q1、所述随机数b1和所述设定明文长度生成第二公钥,具体包括:
通过以下公式计算所述第二公钥:
x1=pq1+Qb1
其中,x1表示所述第二公钥;
x0和x1满足以下条件:|x1|<|x0|。
6.如权利要求1或5所述的方法,其特征在于,针对获取的每一待加密数据,通过以下公式进行同态加密计算,获得加密后的密文:
ci=(mi+Qri+ri′x1)mod x0
其中,ci表示第i个待加密数据加密后的密文,i=1~n,n表示待加密数据的个数;
mi表示第i个待加密数据;
Q表示所述设定明文长度;
ri表示针对所述第i个待加密数据生成的第一随机数;
ri′表示针对所述第i个待加密数据生成的第二随机数;
ri和ri′满足以下条件:ri,r′i∈(-2ρ,2ρ);
x0表示所述第一公钥;
x1表示所述第二公钥;
x0和x1满足以下条件:|x1|<|x0|;
mod表示模运算。
7.如权利要求6所述的方法,其特征在于,还包括:
将所述每一待加密数据加密后的密文和所述第一公钥发送至目标服务器,以使所述目标服务器根据所述第一公钥对所述每一待加密数据加密后的密文进行同态运算操作得到密文同态运算操作结果;
接收所述目标服务器返回的密文同态运算操作结果;
利用所述私钥对所述密文同态运算操作结果进行解密,获得解密后的对应明文同态运算操作结果。
9.一种数据传输方法,其特征在于,包括:
接收目标服务器发送的N个数据标识信息,确定待查询的目标数据标识,根据如权利要求1~8任一项所述的数据同态加密方法分别对N-1个0进行加密获得对应的N-1个加密后的第一密文,并对1进行加密获得加密后的第二密文;
将N-1个所述第一密文分别确定为除所述目标数据标识之外的N-1个数据标识对应的密文,将所述第二密文确定为所述目标数据标识对应的密文;
将各第一密文和所述第二密文按照所述N个数据标识的排列顺序进行排序生成密文集合;
向所述目标服务器发送数据请求,所述数据请求中携带有所述密文集合和公钥,以使所述目标服务器根据所述公钥、所述N个数据标识对应的数据对所述密文集合中的所述第一密文和所述第二密文按顺序进行同态运算操作得到密文同态运算操作结果;
接收所述目标服务器返回的密文同态运算操作结果,利用私钥对所述密文同态运算操作结果进行解密,获得所述目标数据标识对应的数据。
10.一种数据同态加密装置,其特征在于,包括:
第一获取单元,用于获取待加密数据;
第二获取单元,用于获取预设安全参数λ、ρ、ρ′、η、γ和设定明文长度,其中,ρ=λ,ρ′=2λ,η=O(λ2),γ=O(λ3),所述设定明文长度大于1比特;
第一生成单元,用于根据所述安全参数η生成私钥;
第二生成单元,用于根据所述私钥和所述安全参数γ生成随机数q0和随机数q1,以及根据所述安全参数ρ′生成随机数b0和随机数b1;
第三生成单元,用于根据所述私钥、所述随机数q0、所述随机数b0和所述设定明文长度生成第一公钥,以及根据所述私钥、所述随机数q1、所述随机数b1和所述设定明文长度生成第二公钥;
加密单元,用于针对获取的每一待加密数据,根据所述安全参数ρ生成第一随机数和第二随机数,并根据所述设定明文长度、所述第一公钥、所述第二公钥、所述第一随机数、所述第二随机数以及所述待加密数据进行同态加密计算,获得加密后的密文。
11.如权利要求10所述的装置,其特征在于,
所述第一生成单元,具体用于生成长度为η比特的整数p,其中,p∈[2η-1,2η);将所述p确定为私钥。
13.如权利要求12所述的装置,其特征在于,所述随机数b0和所述随机数b1满足以下条件:
b0,b1∈(-2ρ′,2ρ′)
14.如权利要求13所述的装置,其特征在于,
所述第三生成单元,具体用于通过以下公式计算所述第一公钥:
x0=pq0+Qb0
其中,x0表示所述第一公钥;
p表示所述私钥;
Q表示所述设定明文长度;以及
通过以下公式计算所述第二公钥:
x1=pq1+Qb1
其中,x1表示所述第二公钥;
x0和x1满足以下条件:|x1|<|x0|。
15.如权利要求10或14所述的装置,其特征在于,
所述加密单元,具体用于针对获取的每一待加密数据,通过以下公式进行同态加密计算,获得加密后的密文:
ci=(mi+Qri+ri′x1)mod x0
其中,ci表示第i个待加密数据加密后的密文,i=1~n,n表示待加密数据的个数;
mi表示第i个待加密数据;
Q表示所述设定明文长度;
ri表示针对所述第i个待加密数据生成的第一随机数;
ri′表示针对所述第i个待加密数据生成的第二随机数;
ri和ri′满足以下条件:ri,r′i∈(-2ρ,2ρ);
x0表示所述第一公钥;
x1表示所述第二公钥;
x0和x1满足以下条件:|x1|<|x0|;
mod表示模运算。
16.如权利要求15所述的装置,其特征在于,还包括:
发送单元,用于将所述每一待加密数据加密后的密文和所述第一公钥发送至目标服务器,以使所述目标服务器根据所述第一公钥对所述每一待加密数据加密后的密文进行同态运算操作得到密文同态运算操作结果;
接收单元,用于接收所述目标服务器返回的密文同态运算操作结果;
解密单元,用于利用所述私钥对所述密文同态运算操作结果进行解密,获得解密后的对应明文同态运算操作结果。
18.一种数据传输装置,其特征在于,包括:
加密单元,用于接收目标服务器发送的N个数据标识信息,确定待查询的目标数据标识,根据如权利要求1~8任一项所述的数据同态加密方法分别对N-1个0进行加密获得对应的N-1个加密后的第一密文,并对1进行加密获得加密后的第二密文;
确定单元,用于将N-1个所述第一密文分别确定为除所述目标数据标识之外的N-1个数据标识对应的密文,将所述第二密文确定为所述目标数据标识对应的密文;
生成单元,用于将各第一密文和所述第二密文按照所述N个数据标识的排列顺序进行排序生成密文集合;
发送单元,用于向所述目标服务器发送数据请求,所述数据请求中携带有所述密文集合和公钥,以使所述目标服务器根据所述公钥、所述N个数据标识对应的数据对所述密文集合中的所述第一密文和所述第二密文按顺序进行同态运算操作得到密文同态运算操作结果;
解密单元,用于接收所述目标服务器返回的密文同态运算操作结果,利用私钥对所述密文同态运算操作结果进行解密,获得所述目标数据标识对应的数据。
19.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1~8任一项所述的数据同态加密方法或如权利要求9所述的数据传输方法。
20.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1~8任一项所述的数据同态加密方法或者如权利要求9所述的数据传输方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210134717.XA CN114584278A (zh) | 2022-02-14 | 2022-02-14 | 数据同态加密方法及装置、数据传输方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210134717.XA CN114584278A (zh) | 2022-02-14 | 2022-02-14 | 数据同态加密方法及装置、数据传输方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114584278A true CN114584278A (zh) | 2022-06-03 |
Family
ID=81774563
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210134717.XA Pending CN114584278A (zh) | 2022-02-14 | 2022-02-14 | 数据同态加密方法及装置、数据传输方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114584278A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115037442A (zh) * | 2022-08-11 | 2022-09-09 | 平安银行股份有限公司 | 一种模型效果检测方法、装置、存储介质及设备 |
CN115102688A (zh) * | 2022-08-24 | 2022-09-23 | 北京信安世纪科技股份有限公司 | 数据处理方法、多项式计算方法及电子设备 |
CN115549891A (zh) * | 2022-11-24 | 2022-12-30 | 北京信安世纪科技股份有限公司 | 同态加密方法、同态解密方法、同态计算方法及设备 |
-
2022
- 2022-02-14 CN CN202210134717.XA patent/CN114584278A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115037442A (zh) * | 2022-08-11 | 2022-09-09 | 平安银行股份有限公司 | 一种模型效果检测方法、装置、存储介质及设备 |
CN115037442B (zh) * | 2022-08-11 | 2022-11-29 | 平安银行股份有限公司 | 一种模型效果检测方法、装置、存储介质及设备 |
CN115102688A (zh) * | 2022-08-24 | 2022-09-23 | 北京信安世纪科技股份有限公司 | 数据处理方法、多项式计算方法及电子设备 |
CN115102688B (zh) * | 2022-08-24 | 2022-11-22 | 北京信安世纪科技股份有限公司 | 数据处理方法、多项式计算方法及电子设备 |
CN115549891A (zh) * | 2022-11-24 | 2022-12-30 | 北京信安世纪科技股份有限公司 | 同态加密方法、同态解密方法、同态计算方法及设备 |
CN115549891B (zh) * | 2022-11-24 | 2023-03-10 | 北京信安世纪科技股份有限公司 | 同态加密方法、同态解密方法、同态计算方法及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11706026B2 (en) | Location aware cryptography | |
CN112822014B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN110391900B (zh) | 基于sm2算法的私钥处理方法、终端及密钥中心 | |
CN107196926B (zh) | 一种云外包隐私集合比较方法与装置 | |
CN114584278A (zh) | 数据同态加密方法及装置、数据传输方法及装置 | |
JP6067932B2 (ja) | 鍵共有デバイス及び方法 | |
CN111106936A (zh) | 一种基于sm9的属性加密方法与系统 | |
CN106487506B (zh) | 一种支持预加密和外包解密的多机构kp-abe方法 | |
CN108183791B (zh) | 应用于云环境下的智能终端数据安全处理方法及系统 | |
US11128452B2 (en) | Encrypted data sharing with a hierarchical key structure | |
CN111585759B (zh) | 一种高效的基于sm9公钥加密算法的线上线下加密方法 | |
CN113259329A (zh) | 一种数据不经意传输方法、装置、电子设备及存储介质 | |
CN111404952B (zh) | 变电站数据加密传输方法、装置、计算机设备和存储介质 | |
JP2018502320A (ja) | 公開鍵暗号化システム | |
CN104158880A (zh) | 一种用户端云数据共享解决方法 | |
CN107315967B (zh) | 数据匹配方法、装置及计算机可读存储介质 | |
CN103916248A (zh) | 一种全同态加密公钥空间压缩方法 | |
CN113726517A (zh) | 一种信息共享方法及装置 | |
CN113098675B (zh) | 基于多项式完全同态的二进制数据加密系统及方法 | |
CN114528331A (zh) | 基于区块链的数据查询方法及装置、介质、设备 | |
CN115098868A (zh) | 保护隐私的数据提供、查询方法、装置及系统 | |
CN109274659B (zh) | 一种无证书的在线/离线可搜索密文方法 | |
CN114362912A (zh) | 基于分布式密钥中心的标识密码生成方法、电子设备及介质 | |
CN112737783B (zh) | 一种基于sm2椭圆曲线的解密方法及设备 | |
CN109743156B (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 |