CN116346310A - 基于同态加密的匿踪查询方法、装置和计算机设备 - Google Patents
基于同态加密的匿踪查询方法、装置和计算机设备 Download PDFInfo
- Publication number
- CN116346310A CN116346310A CN202310403585.0A CN202310403585A CN116346310A CN 116346310 A CN116346310 A CN 116346310A CN 202310403585 A CN202310403585 A CN 202310403585A CN 116346310 A CN116346310 A CN 116346310A
- Authority
- CN
- China
- Prior art keywords
- ciphertext
- query
- fields
- public
- characteristic
- 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
- 238000000034 method Methods 0.000 title claims abstract description 53
- 239000013598 vector Substances 0.000 claims abstract description 87
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 21
- 238000012216 screening Methods 0.000 claims abstract description 6
- 238000004590 computer program Methods 0.000 claims description 14
- 238000004364 calculation method Methods 0.000 claims description 8
- 238000003860 storage Methods 0.000 claims description 7
- 238000004891 communication Methods 0.000 abstract description 8
- 230000008569 process Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0442—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
-
- 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/0863—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
-
- 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
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种基于同态加密的匿踪查询方法、装置和计算机设备。其中,该方法包括:从服务端的特征集合中筛选出至少两个特征字段,根据特征字段生成查询集合;其中一个特征字段为待查询特征字段;基于同态加密算法生成公私钥对,根据查询集合和公私钥对中的公钥生成密文向量,将公钥、查询集合以及密文向量发送至服务端;接收服务端的密文结果,密文结果由查询集合和密文向量确定;利用公私钥对中的私钥对密文结果进行解密,得到与待查询特征字段对应的明文消息。通过本申请,能够在查询信息不被感知与泄漏的前提下完成查询和解密,并且使用一对公私钥对查询和解密所有数据,降低了资源损耗和通信开销。
Description
技术领域
本申请涉及信息安全技术领域,特别是涉及一种基于同态加密的匿踪查询方法、装置和计算机设备。
背景技术
随着大数据时代的发展,数据在各行各业释放的价值越来越重要,打破数据孤岛、共享数据信息是实现数据价值的重要前提。当用户查询数据时,服务端可以方便的记录用户的查询条件,并可能根据查询条件推断出用户的业务和兴趣爱好,造成隐私泄露。如何在共享数据的同时保证客户端的隐私性,成为互联网产业企业面临的重大难题。
在现有技术中,基于不经意传输的隐私信息检索技术,可以在一定程度上保护查询方隐私,例如,在服务端有n条数据时,服务端对应生成n个公私钥对,客户端需检索第t条数据时,客户端用第t个公钥加密密钥,服务端用n个私钥依次解密密钥,得到n个解密结果,并对n个解密结果一一加密得到密文集合,客户端接收密文集合并用密钥进行解密,得到第t条数的明文消息。
但是,上述方法需要大量的公私钥对,依然存在资源损耗和通信开销较大的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够降低资源损耗和通信开销的基于同态加密的匿踪查询方法、装置和计算机设备。
第一方面,本申请提供了一种基于同态加密的匿踪查询方法,用于客户端。
所述方法包括:
从服务端的特征集合中筛选出至少两个特征字段,根据所述特征字段生成查询集合;其中一个所述特征字段为待查询特征字段;
基于同态加密算法生成公私钥对,根据所述查询集合和所述公私钥对中的公钥生成密文向量,将所述公钥、所述查询集合以及所述密文向量发送至服务端;
接收所述服务端的密文结果,所述密文结果由所述查询集合和所述密文向量确定;利用所述公私钥对中的私钥对所述密文结果进行解密,得到与所述待查询特征字段对应的明文消息。
在其中一个实施例中,在从服务端的特征集合中筛选出至少两个特征字段,根据所述特征字段生成查询集合;其中一个所述特征字段为待查询特征字段之后,还包括:
所述查询集合中所述特征字段的个数小于所述特征集合中所述特征字段的个数。
在其中一个实施例中,所述根据所述查询集合和所述公私钥对中的公钥生成密文向量,包括:
根据所述查询集合中所述特征字段的总数,确定密文向量的维度;
根据所述待查询特征字段在所述查询集合中的位置,确定所述密文向量中待查询元素的位置;
基于Paillier加密算法,利用所述公私钥对中的公钥加密数字1,将加密后的结果作为所述待查询元素的内容,并利用所述公钥加密数字0,将加密后的结果作为所述密文向量中其余元素的内容,得到密文向量。
第二方面,本申请提供了一种基于同态加密的匿踪查询方法,用于服务端。
所述方法包括:
接收客户端发送的查询集合、密文向量以及公钥;
获取所述查询集合中的特征字段,根据所述特征字段查询属性字段,基于所述属性字段得到符合所述查询集合元素顺序的属性信息;
利用所述密文向量和所述公钥加密所述属性信息,得到密文结果,并将所述密文结果发送至客户端。
在其中一个实施例中,在所述接收客户端发送的查询集合、密文向量以及公钥之前,还包括:
以字典形式存储明文数据,所述明文数据包括特征字段和与所述特征字段一一对应的属性字段;
提取全部所述特征字段生成特征集合。
在其中一个实施例中,所述利用所述密文向量和所述公钥加密所述属性信息,得到密文结果,包括:
利用所述公钥,对所述密文向量和所述属性信息进行同态数乘计算,得到密文结果。
第三方面,本申请提供了一种基于同态加密的匿踪查询装置,用于客户端,所述装置包括:
生成查询集合模块,用于从服务端的特征集合中筛选出至少两个特征字段,根据所述特征字段生成查询集合;其中一个所述特征字段为待查询特征字段;
生成密文向量模块,用于基于同态加密算法生成公私钥对,根据所述查询集合和所述公私钥对中的公钥生成密文向量,将所述公钥、所述查询集合以及所述密文向量发送至服务端;
解密密文模块,用于接收所述服务端的密文结果,所述密文结果由所述查询集合和所述密文向量确定;利用所述公私钥对中的私钥对所述密文结果进行解密,得到与所述待查询特征字段对应的明文消息。
第四方面,本申请提供了一种基于同态加密的匿踪查询装置,用于服务端,所述装置包括:
接收模块,用于接收客户端发送的查询集合、密文向量以及公钥;
查询模块,用于获取所述查询集合中的特征字段,根据所述特征字段查询属性字段,基于所述属性字段得到符合所述查询集合元素顺序的属性信息;
加密模块,用于利用所述密文向量和所述公钥加密所述属性信息,得到密文结果,并将所述密文结果发送至客户端。
第五方面,本申请提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述基于同态加密的匿踪查询方法的步骤。
第六方面,本申请提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述任一项所述基于同态加密的匿踪查询方法的步骤。
上述基于同态加密的匿踪查询方法、装置和计算机设备,通过包括待查询特征字段的查询集合,基于同态加密算法生成的公私钥对,以及所述查询集合和所述公钥生成的密文向量,保证客户端用户向服务端数据源方提交查询请求时,在查询信息不被感知与泄漏的前提下完成查询和解密,并且使用一对公私钥对查询和解密所有数据,降低了资源损耗和通信开销。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为一个实施例中基于同态加密的匿踪查询系统的结构框图;
图2为一个实施例中基于同态加密的匿踪查询方法的流程示意图;
图3为另一个实施例中基于同态加密的匿踪查询方法的流程示意图;
图4为一个优选实施例中基于同态加密的匿踪查询方法的流程示意图;
图5为一个实施例中基于同态加密的匿踪查询装置的结构框图;
图6为另一个实施例中基于同态加密的匿踪查询装置的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
以下各个实施例均可应用到图1所示的基于同态加密的匿踪查询系统中,图1示出的基于同态加密的匿踪查询系统包括通过网络通讯连接的客户端10和服务器20。
其中,客户端10可以是移动终端、固定终端或便携式终端,例如移动手机、站点、单元、设备、多媒体计算机、多媒体平板、互联网节点、通信器、台式计算机、膝上型计算机、笔记本计算机、上网本计算机、平板计算机、个人通信系统(PCS)设备、个人导航设备、个人数字助理(PDA)、音频/视频播放器、数码相机/摄像机、定位设备、电视接收器、无线电广播接收器、电子书设备、游戏设备或者其任意组合,包括这些设备的配件和外设或者其任意组合。
服务器20可以为常规服务器、云服务器、云主机、虚拟中心等服务器设备。其中,服务器设备的构成主要包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类型。服务器20可以为一个服务器设备,还可以为包括了多个服务器的服务器集群。
在本实施例中提供了一种基于同态加密的匿踪查询方法,用于客户端,如图2所示,该方法包括如下步骤:
步骤S210,从服务端的特征集合中筛选出至少两个特征字段,根据特征字段生成查询集合;其中一个特征字段为待查询特征字段。
其中,服务端的特征集合中包括若干个特征字段。具体的,每一个特征字段与一条明文数据以一一对应的关系存储在数据库中,为了便于客户端查询明文数据,服务端将全部明文数据对应的特征字段提取出来生成一个特征集合,并将特征集合公布给客户端。客户端用户想要查询某一明文数据时,将该明文数据对应的一个待查询特征字段和随机挑选的至少一个特征字段进行组合,生成一个新的查询集合,查询集合中的元素数量和元素顺序可由客户端自主决定。查询集合可以隐藏用户的真实查询意图,对多个特征字段一起查询。
步骤S220,基于同态加密算法生成公私钥对,根据查询集合和公私钥对中的公钥生成密文向量,将公钥、查询集合以及密文向量发送至服务端。
其中,客户端基于Paillier同态加密算法生成公私钥对(hPK,hSK),具体过程如下:
1)随机选取两个大素数p,q,满足gcd(pq,(p-1)(q-1))=1,其中,gcd是获取最大公约数算法;
2)计算合数模n=pq,λ=lcm(p-1,q-1),其中lcm表示求解取最小公倍数;
5)生成公私钥对(hPK,hSK),其中公钥hPK为(n,g),私钥hSK为(λ,μ)。
另外,查询集合与密文向量相对应。具体的,如果待查询特征字段在查询集合中的第t项,则对应的在生成密文向量时,密文向量的第t项内容为使用公钥hPK加密数字1后的结果,密文向量中的非第t项内容使用公钥hPK加密数字0后的结果。
步骤S230,接收服务端的密文结果,密文结果由查询集合和密文向量确定;利用公私钥对中的私钥对密文结果进行解密,得到与待查询特征字段对应的明文消息。
具体的,服务端通过查询集合得到一组明文数据,并对明文数据和密文向量做同态数乘计算,进而得到密文结果。客户端接收到密文结果后,基于同态数乘的解密方法使用私钥将密文结果进行解密,得到想要检索的明文消息。
与现有技术相比,本实施例通过从服务端的特征集合中筛选出一组特征字段,其中一个特征字段为待查询特征字段,其余特征字段可以任意挑选,从而组成查询集合,并通过利用同态加密算法生成一对公钥和私钥,利用公钥与查询集合计算密文向量,以获取密文结果,在服务端查询到明文并返回密文结果后,基于同态解密对密文结果进行解密,得到待查询的明文消息,保证了用户向服务端提交查询请求时,在查询信息不被感知与泄漏的前提下完成查询,并且无论服务端数据库中的明文数量是多少,客户端查只需要一对公私钥对,借助密文的同态运算性质完成匿踪查询,降低了资源损耗和通信开销。
在一个实施例中,在上述步骤S210,从服务端的特征集合中筛选出至少两个特征字段,根据特征字段生成查询集合;其中一个特征字段为待查询特征字段之后,还包括:
查询集合中特征字段的个数小于特征集合中特征字段的个数。
在本实施例中,无需将所有的特征字段发送至服务端进行查询,从特征集合中提取部分字段组成查询集合,可以减小数据传输量,提高查询效率。
在一个实施例中,基于上述步骤S220,根据查询集合和公私钥对中的公钥生成密文向量,具体包括以下步骤:
步骤S221,根据查询集合中特征字段的总数,确定密文向量的维度。
具体的,设查询集合(k1,…kt,…kj)中一共包括j项特征字段,生成的密文向量(s1,…st,…,sj)对应有j个维度,包括j项元素。
步骤S222,根据待查询特征字段在查询集合中的位置,确定密文向量中待查询元素的位置。
具体的,查询集合(k1,…kt,…kj)中第t项kt为待查询特征字段,则确定j维密文向量(s1,…st,…,sj)中第t项st为待查询元素的密文。
步骤S223,基于Paillier加密算法,利用公私钥对中的公钥加密数字1,将加密后的结果作为待查询元素的内容,并利用公钥加密数字0,将加密后的结果作为密文向量中其余元素的内容,得到密文向量。
其中,Paillier加密算法的加密过程为:
1)选择一个随机数r,满足0<r<n;其中,n取自公钥hPK(n,g);
2)计算加密后的密文c=gmrn mod n2;其中,m为明文
具体的,基于Paillier加密算法,使用公钥hPK加密明文数字1,其结果作为st,并使用公钥hPK加密明文数字0,其结果作为非t项。
上述步骤S221至步骤S223,通过Paillier加密算法的随机数,保障了全部密文不重复,进而使服务端无法从加密结果区分出0和1的不同分布,从而得到具有匿踪效果的密文向量。
本实施例中还提供了一种基于同态加密的匿踪查询方法,用于服务端,如图3所示,该方法包括如下步骤:
步骤S310,接收客户端发送的查询集合、密文向量以及公钥。
其中,客户端基于特征字段生成查询集合,基于同态加密算法生成公钥和密文向量,发送至服务端,用于查询明文消息。具体的,发送的查询集合为(k1,…kt,…kj),密文向量为(s1,…st,…,sj),公钥为hPK(n,g)。
步骤S320,获取查询集合中的特征字段,根据特征字段查询属性字段,基于属性字段得到符合查询集合元素顺序的属性信息。
其中,服务端存储有若干个属性字段v,属性字段与特征字段满足一一对应的存储关系,属性字段即为待查询的明文。根据查询集合(k1,…kt,…kj)可以查询到一组对应的属性字段,将属性字段依照查询集合中元素的顺序组成属性信息(v1,…,vt,…,vj)。
步骤S330,利用密文向量和公钥加密属性信息,得到密文结果,并将密文结果发送至客户端。
具体的,将属性信息(v1,…,vt,…,vj)与密文向量(s1,…st,…,sj)做同态数乘计算,得到密文结果R,计算公式如下:
其中,n取自公钥hPK(n,g)。
在本实施例中,服务端根据客户端发来的查询集合查询到多条明文数据,并用密文向量加密上述明文数据得到密文结果,服务端对于客户端的查询条件“可算不可见”,服务端只能知道有哪些特征字段,但不知道哪个特征字段是待查询的,实现了对数据的匿踪查询。
在一个实施例中,在上述步骤S310,接收客户端发送的查询集合、密文向量以及公钥之前,还包括:
步骤S310a,以字典形式存储明文数据,明文数据包括特征字段和与特征字段一一对应的属性字段。
具体的,服务端以字典类型(k,v)记录特征字段k和属性字段v。当服务端拥有n条可查询数据时,存储形式为((k1,v1),…(kt,vt),…(kn,vn))。
步骤S310b,提取全部特征字段生成特征集合。
具体的,生成并向客户端公布特征集合(k1,…kt,…kj)。
上述步骤S310a至步骤S310b,可以避免通过数据索引信息存储数据,在现有技术中,往往用索引形式存储明文数据,如((1,v1),…(t,vt),…(n,vn)),基于索引的存储方式,服务端维护索引需要较大成本,且在数据进行新增、删除等操作后,客户端需要知道最新的索引信息才能进行准确查询,而通过字典形式存储的特征字段和属性字段,在数据库更新后对服务端有更高的容错率。
下面通过优选实施例对本实施例进行描述和说明。
图4是本优选实施例的基于同态加密的匿踪查询方法的流程图。
步骤S401,客户端生成公私钥对。
具体的,客户端基于Paillier同态加密算法生成公私钥对(hPK,hSK),过程如下:
1)随机选取两个大素数p,q,满足gcd(pq,(p-1)(q-1))=1,其中gcd是获取最大公约数算法;
2)计算合数模n=pq,λ=lcm(p-1,q-1),其中lcm表示求解取最小公倍数;
5)生成公私钥对(hPK,hSK),其中公钥hPK为(n,g),私钥hSK为(λ,μ)。
步骤S402,服务端以字典形式存储数据,并公布数据中的特征集合。
具体的,当服务端有n条数据时,以字典形式((k1,v1),…(kt,vt),…(kn,vn))存储n条数据的特征字段k和属性字段v,并向客户端公布特征集合(k1,…kt,…kj)。
步骤S403,客户端从特征集合中提取查询集合,并基于同态加密算法生成密文向量;将公私钥对中的公钥、查询集合以及密文向量发送至服务端。
具体的,客户端从特征集合(k1,…kt,…kj)中筛选特征字段得到查询集合(k1,…kt,…kj),查询集合中元素的顺序和数量可以与特征集合不同,根据检索需要进行组合,其中kt为需要检索的数据对应的特征字段。
基于Paillier加密算法,利用公私钥对中的公钥加密数字1,将加密后的结果作为密文向量的第t项,并利用公钥加密数字0,将加密后的结果作为密文向量中非t项,由此得到密文向量(s1,…st,…,sj)。其中,密文向量的维数与查询集合的元素总数对应。
步骤S404,服务端根据查询集合得到明文集合,将密文向量与查询到的明文集合进行同态数乘计算,得到密文结果,并将密文结果发送至客户端。
具体的,根据查询集合中的特征字段查询得到对应的属性字段,属性字段的集合为明文集合,将属性字段按照查询集合中的元素顺序整合为属性信息(v1,…,vt,…,vj),并将属性信息与密文向量(s1,…st,…,sj)做同态数乘计算,得到密文结果R,计算公式如下:
其中,n取自公钥hPK(n,g)。
步骤S405,客户端接收密文结果,利用公私钥对中的私钥并进行解密,得到明文数据。
具体的,根据同态数乘原理可做如下转换:
R=E((v1*0)+…+(vt*1)…+(vj*0))=E(vt);
客户端对密文结果R进行解密D(E(vt))=vt*1,得到明文数据vt。
在本优选实施例中,使用同态加密实现数据的“可算不可见”,保护客户端用户隐私,对比不经意传输的隐私信息检索,不需要大量的公私钥对,降低资源损耗,通信开销小,服务端通过字典方式存储数据,可以不需要知道查询的数据索引信息。
应该理解的是,虽然如上的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,在本实施例中还提供了一种基于同态加密的匿踪查询装置,该系统用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。以下所使用的术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管在以下实施例中所描述的系统较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
在一个实施例中,如图5所示,提供了一种基于同态加密的匿踪查询装置,用于客户端,包括:生成查询集合模块51、生成密文向量模块52和解密密文模块53,其中:
生成查询集合模块51,用于从服务端的特征集合中筛选出至少两个特征字段,根据特征字段生成查询集合;其中一个特征字段为待查询特征字段;
生成密文向量模块52,用于基于同态加密算法生成公私钥对,根据查询集合和公私钥对中的公钥生成密文向量,将公钥、查询集合以及密文向量发送至服务端;
解密密文模块53,用于接收服务端的密文结果,密文结果由查询集合和密文向量确定;利用公私钥对中的私钥对密文结果进行解密,得到与待查询特征字段对应的明文消息。
在一个实施例中,生成查询集合模块51的查询集合中特征字段的个数小于特征集合中特征字段的个数。
在一个实施例中,生成密文向量模块52,还用于根据查询集合中特征字段的总数,确定密文向量的维度;
根据待查询特征字段在查询集合中的位置,确定密文向量中待查询元素的位置;
基于Paillier加密算法,利用公私钥对中的公钥加密数字1,将加密后的结果作为待查询元素的内容,并利用公钥加密数字0,将加密后的结果作为密文向量中其余元素的内容,得到密文向量。
在一个实施例中,如图6所示,提供了一种基于同态加密的匿踪查询装置,用于服务端,包括:接收模块61、查询模块62和加密模块63,其中:
接收模块61,用于接收客户端发送的查询集合、密文向量以及公钥;
查询模块62,用于获取查询集合中的特征字段,根据特征字段查询属性字段,基于属性字段得到符合查询集合元素顺序的属性信息;
加密模块63,用于利用密文向量和公钥加密属性信息,得到密文结果,并将密文结果发送至客户端。
在一个实施例中,应用于服务段的基于同态加密的匿踪查询装置还包括提取模块64,提取模块64用于以字典形式存储明文数据,明文数据包括特征字段和与特征字段一一对应的属性字段;
提取全部特征字段生成特征集合。
在一个实施例中,加密模块63还用于利用公钥,对密文向量和属性信息进行同态数乘计算,得到密文结果。
上述基于同态加密的匿踪查询装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述任一项基于同态加密的匿踪查询方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一项基于同态加密的匿踪查询方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述任一项基于同态加密的匿踪查询方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种基于同态加密的匿踪查询方法,用于客户端,其特征在于,所述方法包括:
从服务端的特征集合中筛选出至少两个特征字段,根据所述特征字段生成查询集合;其中一个所述特征字段为待查询特征字段;
基于同态加密算法生成公私钥对,根据所述查询集合和所述公私钥对中的公钥生成密文向量,将所述公钥、所述查询集合以及所述密文向量发送至服务端;
接收所述服务端的密文结果,所述密文结果由所述查询集合和所述密文向量确定;利用所述公私钥对中的私钥对所述密文结果进行解密,得到与所述待查询特征字段对应的明文消息。
2.根据权利要求1所述的基于同态加密的匿踪查询方法,其特征在于,在从服务端的特征集合中筛选出至少两个特征字段,根据所述特征字段生成查询集合;其中一个所述特征字段为待查询特征字段之后,还包括:
所述查询集合中所述特征字段的个数小于所述特征集合中所述特征字段的个数。
3.根据权利要求1所述的基于同态加密的匿踪查询方法,其特征在于,所述根据所述查询集合和所述公私钥对中的公钥生成密文向量,包括:
根据所述查询集合中所述特征字段的总数,确定密文向量的维度;
根据所述待查询特征字段在所述查询集合中的位置,确定所述密文向量中待查询元素的位置;
基于Paillier加密算法,利用所述公私钥对中的公钥加密数字1,将加密后的结果作为所述待查询元素的内容,并利用所述公钥加密数字0,将加密后的结果作为所述密文向量中其余元素的内容,得到密文向量。
4.一种基于同态加密的匿踪查询方法,用于服务端,其特征在于,所述方法包括:
接收客户端发送的查询集合、密文向量以及公钥;
获取所述查询集合中的特征字段,根据所述特征字段查询属性字段,基于所述属性字段得到符合所述查询集合元素顺序的属性信息;
利用所述密文向量和所述公钥加密所述属性信息,得到密文结果,并将所述密文结果发送至客户端。
5.根据权利要求4所述的基于同态加密的匿踪查询方法,其特征在于,在所述接收客户端发送的查询集合、密文向量以及公钥之前,还包括:
以字典形式存储明文数据,所述明文数据包括特征字段和与所述特征字段一一对应的属性字段;
提取全部所述特征字段生成特征集合。
6.根据权利要求4所述的基于同态加密的匿踪查询方法,其特征在于,所述利用所述密文向量和所述公钥加密所述属性信息,得到密文结果,包括:
利用所述公钥,对所述密文向量和所述属性信息进行同态数乘计算,得到密文结果。
7.一种基于同态加密的匿踪查询装置,用于客户端,其特征在于,所述装置包括:
生成查询集合模块,用于从服务端的特征集合中筛选出至少两个特征字段,根据所述特征字段生成查询集合;其中一个所述特征字段为待查询特征字段;
生成密文向量模块,用于基于同态加密算法生成公私钥对,根据所述查询集合和所述公私钥对中的公钥生成密文向量,将所述公钥、所述查询集合以及所述密文向量发送至服务端;
解密密文模块,用于接收所述服务端的密文结果,所述密文结果由所述查询集合和所述密文向量确定;利用所述公私钥对中的私钥对所述密文结果进行解密,得到与所述待查询特征字段对应的明文消息。
8.一种基于同态加密的匿踪查询装置,用于服务端,其特征在于,所述装置包括:
接收模块,用于接收客户端发送的查询集合、密文向量以及公钥;
查询模块,用于获取所述查询集合中的特征字段,根据所述特征字段查询属性字段,基于所述属性字段得到符合所述查询集合元素顺序的属性信息;
加密模块,用于利用所述密文向量和所述公钥加密所述属性信息,得到密文结果,并将所述密文结果发送至客户端。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述基于同态加密的匿踪查询方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述基于同态加密的匿踪查询方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310403585.0A CN116346310A (zh) | 2023-04-10 | 2023-04-10 | 基于同态加密的匿踪查询方法、装置和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310403585.0A CN116346310A (zh) | 2023-04-10 | 2023-04-10 | 基于同态加密的匿踪查询方法、装置和计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116346310A true CN116346310A (zh) | 2023-06-27 |
Family
ID=86877241
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310403585.0A Pending CN116346310A (zh) | 2023-04-10 | 2023-04-10 | 基于同态加密的匿踪查询方法、装置和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116346310A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116541582A (zh) * | 2023-07-06 | 2023-08-04 | 隐数科技(杭州)有限责任公司 | 基于全同态加密的安全数据的快捷查询方法及装置 |
CN117077209A (zh) * | 2023-10-16 | 2023-11-17 | 云阵(杭州)互联网技术有限公司 | 大规模数据匿踪查询方法 |
CN117574435A (zh) * | 2024-01-12 | 2024-02-20 | 云阵(杭州)互联网技术有限公司 | 基于同态加密的多关键词匿踪查询方法、装置及系统 |
-
2023
- 2023-04-10 CN CN202310403585.0A patent/CN116346310A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116541582A (zh) * | 2023-07-06 | 2023-08-04 | 隐数科技(杭州)有限责任公司 | 基于全同态加密的安全数据的快捷查询方法及装置 |
CN116541582B (zh) * | 2023-07-06 | 2023-09-01 | 隐数科技(杭州)有限责任公司 | 基于全同态加密的安全数据的快捷查询方法及装置 |
CN117077209A (zh) * | 2023-10-16 | 2023-11-17 | 云阵(杭州)互联网技术有限公司 | 大规模数据匿踪查询方法 |
CN117077209B (zh) * | 2023-10-16 | 2024-02-23 | 云阵(杭州)互联网技术有限公司 | 大规模数据匿踪查询方法 |
CN117574435A (zh) * | 2024-01-12 | 2024-02-20 | 云阵(杭州)互联网技术有限公司 | 基于同态加密的多关键词匿踪查询方法、装置及系统 |
CN117574435B (zh) * | 2024-01-12 | 2024-04-23 | 云阵(杭州)互联网技术有限公司 | 基于同态加密的多关键词匿踪查询方法、装置及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11144663B2 (en) | Method and system for search pattern oblivious dynamic symmetric searchable encryption | |
US9509494B2 (en) | Computer-implemented system and method for providing secure data processing in a cloud using discrete homomorphic encryption | |
US10965448B1 (en) | Dynamic distributed storage for scaling blockchain | |
US10803075B2 (en) | System and method for searching a database or data sharing system for the presence of data | |
CN116346310A (zh) | 基于同态加密的匿踪查询方法、装置和计算机设备 | |
US20090296926A1 (en) | Key management using derived keys | |
JP5836506B2 (ja) | 鍵生成装置、鍵生成プログラム、秘匿検索システム及び鍵配布方法 | |
US20230254126A1 (en) | Encrypted search with a public key | |
EP3959841B1 (en) | Compression and oblivious expansion of rlwe ciphertexts | |
WO2018047698A1 (ja) | 暗号化メッセージ検索方法、メッセージ送受信システム、サーバ、端末、プログラム | |
US9641328B1 (en) | Generation of public-private key pairs | |
US20130097430A1 (en) | Encrypting data and characterization data that describes valid contents of a column | |
CN115269938B (zh) | 基于同态加密的关键词匿踪查询方法、系统及相关装置 | |
Li et al. | Blockchain-based cross-user data shared auditing | |
US12074966B2 (en) | Encrypted information retrieval | |
US20190340391A1 (en) | Multiple message retrieval for secure electronic communication | |
CN112000632A (zh) | 密文的分享方法、介质、分享客户端及系统 | |
CN115664723A (zh) | 一种实现隐私信息检索的方法、系统、服务器和客户端 | |
Gahi et al. | Privacy preserving scheme for location-based services | |
CN115795514A (zh) | 一种隐私信息检索方法、装置及系统 | |
US20230155815A1 (en) | Secure integer comparison using binary trees | |
CN115640601A (zh) | 一种实现隐私信息检索的方法、系统、服务端和客户端 | |
US10291592B2 (en) | Secure electronic communication | |
US20240348423A1 (en) | Information retrieval method and apparatus, computer device, and storage medium | |
WO2024066015A1 (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 |