CN116107967B - 基于同态加密和树结构的多关键词密文搜索方法及系统 - Google Patents
基于同态加密和树结构的多关键词密文搜索方法及系统 Download PDFInfo
- Publication number
- CN116107967B CN116107967B CN202310123303.1A CN202310123303A CN116107967B CN 116107967 B CN116107967 B CN 116107967B CN 202310123303 A CN202310123303 A CN 202310123303A CN 116107967 B CN116107967 B CN 116107967B
- Authority
- CN
- China
- Prior art keywords
- file
- search
- keywords
- keyword
- index
- 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 32
- 239000000654 additive Substances 0.000 claims description 3
- 230000000996 additive effect Effects 0.000 claims description 3
- 239000000284 extract Substances 0.000 claims description 3
- 230000008569 process Effects 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 206010020751 Hypersensitivity Diseases 0.000 description 1
- 208000026935 allergic disease Diseases 0.000 description 1
- 230000000172 allergic effect Effects 0.000 description 1
- 230000007815 allergy Effects 0.000 description 1
- 208000010668 atopic eczema Diseases 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 238000012946 outsourcing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
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/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2237—Vectors, bitmaps or matrices
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- 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
-
- 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
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
-
- 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)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本发明属于数据安全领域,提供了基于同态加密和树结构的多关键词密文搜索方法及系统,该方法既可以支持多关键词的密文搜索,同时具备前向安全功能。采用基于满二叉树的数据结构,构建密文的安全索引,在树形的安全索引结构中,每个叶节点表示一个关键词,节点中存放着包含该关键词的所有文件标识符,可以一次性搜索到包含该关键词的所有文件,不需要逐个文件进行搜索,大大提高了搜索效率。云服务器从根节点开始搜索,只有当搜索关键词全部在搜索节点中时,才会继续搜索它的左右孩子节点,直到叶节点;在搜索过程中,只要有一个关键词不存在,就会终止搜索操作。因此,对于不包括所有关键词的文件,可以避免不必要的搜索,提高搜索的实际效率。
Description
技术领域
本发明属于数据安全领域,尤其涉及基于同态加密和树结构的多关键词密文搜索方法及系统。
背景技术
本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。
云服务平台能够为用户提供按需调配、动态适应的外包存储服务,支持用户随时随地的访问和分享数据。越来越多的企业或个人选择把自己的数据存放在远程的云服务器上,然而,存放在云服务器上的数据容易受到攻击者的非法访问和窃取,造成用户数据的泄露。为了保护数据的机密性和隐私性,需要在数据上传到云服务器之前先对数据进行加密,把数据以密文的形式上传到云服务器上。但是,数据在加密之后影响了搜索功能,用户不能像搜索明文数据一样,直接通过搜索关键词搜索包含某个关键词的文件。
为了解决这个问题,对称可搜索加密技术应运而生,可以直接通过搜索加密的关键词(搜索陷门)对密文数据文件进行搜索。在实际应用中,对存放在云服务器上的密文数据文件进行动态更新是一个常用的功能,因此支持文件的动态更新是对称可搜索加密技术必不可少的应用。但是,在文件的动态更新过程中,不可避免地会泄露更新陷门给云服务器。如果更新陷门与之前的搜索陷门匹配,会造成文件注入攻击的发生。
在许多的实际应用中,比如电子医疗和邮件系统中,用户经常需要搜索包含多个关键词的文件。这种方法的搜索效率比较低,其搜索时间复杂性随着关键词的数量增加而线性增长;而且,这种搜索方式还会泄露一些不必要的信息给云服务器。
发明内容
为了解决上述背景技术中存在的至少一项技术问题,本发明提供基于同态加密和树结构的多关键词密文搜索方法及系统,其为了提升多关键词搜索的效率,用树结构的每个叶节点表示一个关键词,而且叶节点存放着包含该关键词的所有文件标识符,因此可以一次性搜索到包含该关键词的所有文件,不需要逐个文件进行搜索,搜索时间仅与搜索关键词的数目相关、与文件数量无关,大大提高了搜索效率。
为了实现上述目的,本发明采用如下技术方案:
本发明的第一个方面提供基于同态加密和树结构的多关键词密文搜索方法,包括如下步骤:
数据拥有者通过执行密钥生成算法,生成密钥集合;
数据拥有者从需要上传的文件中提取关键词,为每个关键词生成对应的文件标识符集合;其中,文件标识符用多比特的位图索引表示,且用加法同态加密算法对位图索引进行加密;
对关键词集合中的每个关键词分别进行加密生成搜索陷门,采用基于满二叉树的数据结构构建密文的安全索引;
数据拥有者采用对称加密算法对文件进行加密,生成密文文件;
数据用户对搜索关键词进行加密,生成搜索陷门发送给云服务器;云服务器收到搜索陷门,通过搜索树形结构的安全索引,与安全索引中的条目进行匹配,把匹配成功的文件标识符发送给数据用户;
数据用户收到文件后,用加法同态加密算法的解密算法对收到的文件标识符进行解密得到明文的位图索引,基于解密后的位图索引包含的文件标识和搜索关键词的个数确定包含多关键词的文件。
本发明的第二个方面提供基于同态加密和树结构的多关键词密文搜索系统,包括数据拥有者、数据用户和云服务器;
所述数据拥有者被配置为:通过执行密钥生成算法,生成密钥集合;
从需要上传的文件中提取关键词,为每个关键词生成对应的文件标识符集合;其中,文件标识符用多比特的位图索引表示,且用加法同态加密算法对位图索引进行加密;
对关键词集合中的每个关键词分别进行加密生成搜索陷门;
采用对称加密算法对文件进行加密,生成密文文件;采用基于满二叉树的数据结构构建密文的安全索引;
所述数据用户被配置为:对搜索关键词进行加密,生成搜索陷门发送给云服务器;
所述云服务器被配置为:收到搜索陷门,通过搜索树形结构的安全索引,与安全索引中的条目进行匹配,把匹配成功的文件标识符发送给数据用户;
数据用户收到文件后,用加法同态加密算法的解密算法对收到的文件标识符进行解密得到明文的位图索引,基于解密后的位图索引包含的文件标识和搜索关键词的个数确定包含多关键词的文件。
与现有技术相比,本发明的有益效果是:
1、本发明采用基于满二叉树的数据结构,构建密文的安全索引,用树结构的每个叶节点表示一个关键词,而且叶节点存放着包含该关键词的所有文件标识符,因此可以一次性搜索到包含该关键词的所有文件,不需要逐个文件进行搜索,搜索时间仅与搜索关键词的数目相关、与文件数量无关,大大提高了搜索效率
2、本发明中为了进一步提高搜索效率,文件标识符用位图索引表示,只需要密文状态下的加减运算就能实现文件更新和搜索操作。为了保护文件标识符信息,不让云服务器获得明文的位图索引信息,本发明采用加法同态加密算法对文件标识符进行加密,在密文状态下通过加减运算就可以实现的文件的更新和搜索操作。
3、本发明中每个非叶节点中存放左右孩子节点的关键词,存放到不可区分的布隆过滤器IBF中。云服务器从根节点开始搜索,只有当搜索关键词全部在搜索节点中时,才会继续搜索它的左右孩子节点,直到叶节点;在搜索过程中,只要有一个关键词不存在,就会终止搜索操作。因此,对于不包括所有关键词的文件,可以避免不必要的搜索,提高搜索的实际效率。
本发明附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
图1为本发明实施例一的基于同态加密和树结构的多关键词密文搜索模型图。
图2为本发明实施例一的满二叉树示意图;
图3为本发明实施例一的安全索引举例;
图4为本发明实施例一的多关键词搜索流程图。
具体实施方式
下面结合附图与实施例对本发明作进一步说明。
应该指出,以下详细说明都是例示性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
术语解释
数据拥有者:拥有一些数据并将自己的数据加密上传到云服务器上,并且能对存放在云服务器上的数据进行更新和搜索操作;
数据用户:经过数据拥有者授权允许后,能够对存放在云上的数据进行密文搜索,得到包含某个或者多个关键词的文件;
云服务器:半诚实的第三方服务提供商,可以为用户提供按需存储、按用付费的外包存储服务。它会诚实地执行搜索和更新操作,但是会试图在更新和搜索过程中获取更多的信息。
正如背景技术中提及的在许多的实际应用中,比如电子医疗和邮件系统中,用户经常需要搜索包含多个关键词的文件。比如有医生接待了一位名叫王丽的女性患者,医生为了给她开药方,所以想要查找一下她的过敏史。支持单关键词搜索的可搜索加密方案需要逐个关键词进行搜索,需要分别找到包含“姓名:王丽”、“性别:女”、“过敏史”的文件集合,然后求交集。这种方法的搜索效率比较低,其搜索时间复杂性随着关键词的数量增加而线性增长;而且,这种搜索方式还会泄露一些不必要的信息给云服务器。所以,设计支持多关键词的密文搜索方案具有重要研究意义。当前,在大多数支持多关键词搜索的安全方案中,采用树形结构的每个叶节点表示一个文件,因此多关键词搜索效率与包含关键词的文件数目密切相关,特别是当文件数量很庞大时,多关键词搜索的实际效率会受到很大影响。因此本发明提出了基于同态加密和树结构的多关键词密文搜索方法及系统。
实施例一
如图1所示,本实施例提供了基于同态加密和树结构的多关键词密文搜索方法,包括如下步骤:
步骤1:数据拥有者通过执行密钥生成算法,生成密钥集合;
步骤2:数据拥有者从需要上传的文件中提取关键词,为每个关键词生成对应的文件标识符集合,其中文件标识符用多比特的位图索引表示,且用加法同态加密算法对位图索引进行加密;
步骤3:数据拥有者用伪随机函数对关键词集合中的每个关键词分别进行加密生成搜索陷门,基于满二叉树的数据结构,构建密文的安全索引;
步骤4:数据拥有者用对称加密算法对文件进行加密,生成密文文件;
步骤5:数据用户对搜索关键词进行加密,生成搜索陷门并发送给云服务器;云服务器收到搜索陷门,通过搜索树形结构的安全索引,与安全索引中的条目进行匹配,把匹配成功的文件标识符发送给数据用户;
步骤6:基于同态加密和树结构的多关键数据用户收到文件后,用加法同态加密算法的解密算法对收到的文件标识符进行解密,得到明文的位图索引,基于解密后的位图索引包含的文件标识和搜索关键词的个数确定包含多关键词的文件。
为了便于理解,接下来采用具体的实施方式进行详细说明。
步骤1中,所述数据拥有者执行密钥生成算法,生成密钥集合,具体包括:数据拥有者输入安全参数λ,用密钥生成(KeyGen)算法生成对称密钥集合K={ks,ke},其中,ks用来加密关键词生成陷门,ke用来加密文件集合生成密文;
本实施例中,对称密码算法可以采用SM4分组密码算法、AES分组密码算法等。
数据拥有者生成加法同态加密算法的公钥/私钥对{pk,sk},其中pk是公钥,sk是私钥。
本实施例中,加法同态加密算法可以采用Paillier同态加密算法、基于格的加法同态加密算法等。
数据拥有者初始化一个二维数组A来存放每个关键词的最新状态和更新次数。状态数组A由数据拥有者和授权用户存放,然后数据拥有者通过k+1个哈希函数,其中k是布隆过滤器设定的哈希函数个数,把非叶节点中的关键词映射到不可区分的布隆过滤器IBF中。因为每个非叶节点对应一个不可区分的布隆过滤器IBF,所以IBF的个数等于非叶节点的个数。
步骤2中,数据拥有者通过扫描文件集合,生成关键词集合,并且生成包含每个关键词的所有文件集合。
假设文件集合中有File_num个文件,则每个关键词对应File_num×FileID_len比特的位图索引,其中,FileID_len表示每个文件占用的位图索引比特长度。
FileID_len的大小会影响支持的搜索关键词的数目,可支持搜索的最多关键词数目是2FileID_len-1;并且用加法同态加密(Additive Homomorphic Encryption)算法对位图索引加密,即Enc_File_bitmap←AHE_Enc(File_bitmap,pk)。其中,AHE_Enc()表示加密算法,AHE_Dec()表示解密算法,pk表示公钥。
步骤3中,用伪随机函数对关键词集合中的每个关键词分别进行加密生成搜索陷门,即然后把每个搜索关键词存放在节点中,节点中存放包含该关键词的所有文件标识符,作为树形索引结构的叶节点;然后每两个节点生成一个新的节点,将两个节点中的关键词存放在新的节点中,新节点作为父母节点。一直这样迭代下去,直到生成根节点。每个非叶节点对应一个不可区分的布隆过滤器(Indistinguishable BloomFilter,IBF),把节点中的关键词存放在布隆过滤器中。
上述技术方案的优势在于,为提高多关键词的搜索效率,基于满二叉树的数据结构构造安全索引,每个叶节点表示一个不同的关键词,节点中存放着包含每个关键词的所有文件标识符,用多比特的位图索引表示;非叶节点中存放着它的左右孩子节点中的关键词,这些关键词会被映射到一个不可区分的布隆过滤器IBF中。
如图2所示,是一个高度为log2kw_num的满二叉树结构,其中,kw_num是文件集合中不同关键词的个数。每个叶节点表示一个不同的关键词w1,w2,...,wkw_num-1,wkw_num,每个非叶节点中存放左右孩子节点中的关键词。
为了实现隐私保护的多关键词搜索,本实施例应用了不可区分的布隆过滤器IBF和多比特的位图索引技术来生成安全索引。
如图3所示,是一个高度为2的安全索引结构,每个叶节点分别表示关键词a,b,c,d节点中存放着包含每个关键词的文件标识,用多比特的位图索引File_bitmap表示,并且用同态加密算法进行加密。
其中,基于满二叉树的索引结构仅是一个逻辑结构,节点中的数据会被存放在哈希表中,这样可以防止泄露树的分支给云服务器。
其中,满二叉树的构建过程包括:
首先从文件集合中提取关键词构造由不同关键词组成的关键词集合W和关键词-文件对(w,fw)。数据拥有者先建立|W|个节点,每个节点表示一个不同的关键词。然后,每两个节点生成一个双亲节点,节点中存放左右两个孩子节点中的关键词,一直迭代下去,直到生成根节点。
安全索引的建立过程包括:
令从某个节点到左孩子的路径为0,到右孩子的路径为1。从根节点开始,沿着路径path(root)=⊥,其中,⊥表示空。
按如下方式,把每个非叶节点中的关键词映射到不可区分的布隆过滤器IBF中。对于节点n中的每个关键词w,先通过k次哈希函数hi(path(n)||tw,st)(1≤i≤k)确定映射到IBF的哪一组中,不可区分的布隆过滤器IBF包括0和1两组,然后通过哈希函数H确定映射到IBF中的具体位置r是和IBF相关的随机数。选中的位置置1,即/>未选中的位置置0,即每个叶节点中存放着包含该关键词的文件标识符,文件标识符用位图索引File_bitmap表示,通过和H2(tw',st)进行异或运算来保护文件标识符的隐私性。
在本实施例中,为了不泄露树的分支给云服务器,二叉树仅是个逻辑结构,树中的节点信息被存放在哈希表中,叶节点和非叶节点的存放方式分别如下所示,即T[H1(path(n)||tw,st)]←IBF。
文件更新的过程包括:
本实施例支持数据拥有者对存放在云服务器上的文件进行动态更新,更新协议主要是发生在数据拥有者和云服务器之间。
数据拥有者通过把加密的文件和更新陷门发送给云服务器,对存放在云服务器上的文件进行添加或删除操作。
为了生成搜索陷门,数据拥有者先在状态数组中查找到更新关键词对应的最新状态:(stupdate_num,update_num)←A[w]。
为了实现前向安全,对于每次更新,数据拥有者会随机选择一个固定长度的比特串,作为最新状态stupdate_num+1,并且更新常数update_num加1,把最新状态stupdate_num+1和更新常数update_num+1存放在状态数组中,即A[w]←(stupdate_num+1,update_num+1)。
加密关键词,生成搜索陷门:基于搜索陷门对更新文件的标识符bs进行加密:/>
然后分别生成叶节点和非叶节点的更新索引位置及具体的更新索引信息;具体地,对于每个叶节点n,生成更新索引位置u←H1(path(n)||tw,stupdate_num+1)。
对于根节点到更新叶节点路径上的所有的非叶节点,从根节点开始,分别沿着左孩子节点路径path(n)=⊥||0和右孩子节点路径path(root)=⊥||1,生成每个节点的更新索引信息:
更新的IBF实际是一个固定长度的比特串e。
生成新的更新索引位置u来存放更新后的索引信息,把新生成的更新索引信息e和索引位置u发送给云服务器,然后由服务器对安全索引中的条目进行更新并且删除原来旧的索引条目,即并且删除索引条目T[H1(path(n)||tw,stupdate_num)]。
上述方案的优势在于,为了实现前向安全,在每次数据更新时,都会选择一个随机字符串作为最新状态来更新陷门,这样更新陷门就不会和之前的搜索陷门匹配。基于满二叉树的索引结构仅是一个逻辑结构,节点中的数据会被存放在哈希表中,这样可以防止泄露树的分支给云服务器。
步骤4中,数据拥有者用对称加密算法SKE_Enc对文件进行加密,生成密文文件。
步骤5中,当数据用户想要搜索包含某个关键词的文件时,把生成的搜索陷门和对应的最新状态对(tw,stc)给云服务器。
云服务器从根节点开始进行搜索,若根节点中包含所有的搜索关键词,则沿着路径path分别搜索它的左右孩子节点,一直迭代下去,直到到达叶节点或者是不包含所有搜索关键词的节点;若是搜索路径的长度小于树的高度,也就是没有到达叶节点,则表示没有搜索到包含所有搜索关键词的文件;若是搜索路径的长度等于树的高度,则将包含每个关键词的文件标识符做密文状态的加法运算,把密文求和结果Enc_File_bitmap_sum发送给数据用户。
步骤6中,用户收到加密的文件标识符Enc_File_bitmap_sum之后,用加法同态加密算法的解密算法进行解密,即计算File_bitmap←AHE_Dec(Enc_File_bitmap_sum,sk)。
将解密后的文件标识符File_bitmap_sum中每个文件对应位置的FileID_len比特的数值与搜索多关键词的个数进行比对。若第i×FileID_Len比特到第(i+1)×FileID_len-1比特的数值与搜索多关键词的个数相等,则说明文件fi包含所有的搜索关键词;若不相等,则不包含所有的搜索关键词。
当授权的用户想要搜索包含s个关键词w1,...,wi,...,ws的文件时,搜索过程如图4所示。
首先生成每个关键词的搜索陷门在状态数组A中查找每个关键词对应的最新状态stupdate_num和更新次数update_num。
然后数据拥有者发送每个关键词对应的陷门-状态数组对(stupdate_num,update_num)给云服务器。
当云服务器收到这些信息后,它从根节点开始检索,然后沿着路径path,检索每个节点中是否包含所有的多关键词。只有当所有的关键词都存在节点中时,它才会沿着左右节点的路径(path(⊥||0)、path(⊥||1)继续接下来的搜索,直到搜索到叶节点;只要有一个搜索关键词在节点中不存在,就终止搜索,输出搜索失败。
当用户收到加密的文件标识符Enc_File_bitmap_sum之后,用加法同态加密算法中的解密算法对加密的文件标识符进行解密File_bitmap_sum←AHE_Dec(Enc_File_bitmap_sum,sk),得到明文的位图索引File_bitmap_sum。如果解密后的位图索引存在文件标识等于搜索关键词的个数,说明该文件包含所有的搜索关键词,用户输出“接受”;否则“拒绝”。
当云服务器搜索到包含每个关键词的文件标识Enc_File_bitmap_wi之后,对所有的密文文件标识符进行同态加法运算,即:Enc_File_bitmap_sum←Homo_ADD(Enc_File_bitmap_w1,...,Enc_File_bitmap_ws),同态加法运算Homo_ADD的运算方法根据采用加法同态加密算法不同而变化,例如,Paillier同态加密算法的密文同态加法运算是将密文进行模乘运算。把和Enc_File_bitmap_sum发送给用户。也就是说,非叶节点只能用来确定搜索关键词是否存在节点中,只有搜索到叶节点中时才能搜索到包含每个关键词的文件标识。
实施例二
本实施例提供了一种基于同态加密和树结构的多关键词密文搜索系统,包括:数据拥有者、数据用户和云服务器;
所述数据拥有者被配置为:通过执行密钥生成算法,生成密钥集合;
从需要上传的文件中提取关键词,为每个关键词生成对应的文件标识符集合;其中,文件标识符用多比特的位图索引表示,且用加法同态加密算法对位图索引进行加密;
对关键词集合中的每个关键词分别进行加密生成搜索陷门,采用基于满二叉树的数据结构构建密文的安全索引;
采用对称加密算法对文件进行加密,生成密文文件;
所述数据用户被配置为:对搜索关键词进行加密,生成搜索陷门发送给云服务器;
所述云服务器被配置为:收到搜索陷门,通过搜索树形结构的安全索引,与安全索引中的条目进行匹配,把匹配成功的文件标识符发送给数据用户;
数据用户收到文件后,用加法同态加密算法的解密算法对收到的文件标识符进行解密得到明文的位图索引,基于解密后的位图索引包含的文件标识和搜索关键词的个数确定包含多关键词的文件。
其中,所述采用基于满二叉树的数据结构构建密文的安全索引包括:
从文件集合中提取关键词构造由不同关键词组成的关键词集合W和关键词-文件对;
数据拥有者建立|W|个节点,将加密后的每个搜索关键词存放在节点中,节点中存放包含该关键词的所有文件标识符,作为树形索引结构的叶节点;
每两个节点生成一个双亲节点,将两个节点中的关键词存放在新的节点中,新节点作为父母节点,按照这种方式迭代下去,直到生成根节点;
每个非叶节点存放左右孩子节点中的关键词,这些关键词被映射到一个不可区分的布隆过滤器IBF中。
数据拥有者若对存放在服务器上的文件进行添加或删除操作,需要更新陷门并将加密的文件和更新陷门发送给服务器;
对于每次更新,数据拥有者随机选择一个固定长度的比特串,作为最新状态stupdate_num+1,并且更新常数update_num加1,把最新状态stupdate_num+1和更新常数update_num+1存放在状态数组中,加密关键词,生成搜索陷门,基于搜索陷门对更新文件的标识符进行加密,然后分别生成叶节点和非叶节点的更新索引位置及具体的更新索引信息。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.基于同态加密和树结构的多关键词密文搜索方法,其特征在于,包括如下步骤:
数据拥有者通过执行密钥生成算法,生成密钥集合;
数据拥有者从需要上传的文件中提取关键词,为每个关键词生成对应的文件标识符集合;其中,文件标识符用多比特的位图索引表示,且用加法同态加密算法对位图索引进行加密;
对关键词集合中的每个关键词分别进行加密生成搜索陷门,采用基于满二叉树的数据结构构建密文的安全索引;
数据拥有者采用对称加密算法对文件进行加密,生成密文文件;
数据用户对搜索关键词进行加密,生成搜索陷门发送给云服务器;云服务器收到搜索陷门,通过搜索树形结构的安全索引,与安全索引中的条目进行匹配,把匹配成功的文件标识符发送给数据用户;
数据用户收到文件后,用加法同态加密算法的解密算法对收到的文件标识符进行解密得到明文的位图索引,基于解密后的位图索引包含的文件标识和搜索关键词的个数确定包含多关键词的文件;
所述采用基于满二叉树的数据结构构建密文的安全索引包括:
从文件集合中提取关键词构造由不同关键词组成的关键词集合W和关键词-文件对;
数据拥有者建立|W|个节点,将加密后的每个搜索关键词存放在节点中,节点中存放包含该关键词的所有文件标识符,作为树形索引结构的叶节点;
每两个节点生成一个双亲节点,将两个节点中的关键词存放在新的节点中,新节点作为父母节点,按照这种方式迭代下去,直到生成根节点;
每个非叶节点存放左右孩子节点中的关键词,这些关键词被映射到一个不可区分的布隆过滤器IBF中;
数据拥有者若对存放在服务器上的文件进行添加或删除操作,需要更新陷门并将加密的文件和更新陷门发送给服务器;
对于每次更新,数据拥有者随机选择一个固定长度的比特串,作为最新状态stupdate_num+1,并且更新常数update_num加1,把最新状态stupdate_num+1和更新常数update_num+1存放在状态数组中,加密关键词,生成搜索陷门,基于搜索陷门对更新文件的标识符进行加密,然后分别生成叶节点和非叶节点的更新索引位置及具体的更新索引信息;
所述基于解密后的位图索引包含的文件标识和搜索关键词的个数确定包含多关键词的文件包括:
将解密后的文件标识符File_bitmap_sum中每个文件对应位置的FileID_len比特的数值与搜索多关键词的个数进行比对,若第i×FileID_Len比特到第(i+1)×FileID_len-1比特的数值与搜索多关键词的个数相等,则说明文件fi包含所有的搜索关键词;若不相等,则不包含所有的搜索关键词,其中,FileID_len表示每个文件占用的位图索引比特长度。
2.如权利要求1所述的基于同态加密和树结构的多关键词密文搜索方法,其特征在于,所述密钥集合包括对称密钥集合K={ks,ke}和加法同态加密算法的公钥/私钥对{pk,sk};其中,ks被用来加密关键词,ke被用来加密文件集合,pk是公钥,sk是私钥。
3.如权利要求1所述的基于同态加密和树结构的多关键词密文搜索方法,其特征在于,生成叶节点和非叶节点的更新索引位置及具体的更新索引信息后包括:
对于每个叶节点,生成更新索引位置;对于根节点到更新叶节点路径上的所有的非叶节点,从根节点开始,分别沿着左孩子节点路径和右孩子节点路径,生成每个节点的更新索引信息,生成新的更新索引位置来存放更新后的索引信息,把新生成的更新索引信息和索引位置发送给云服务器,由服务器对安全索引中的条目进行更新并且删除原来旧的索引条目。
4.如权利要求1所述的基于同态加密和树结构的多关键词密文搜索方法,其特征在于,所述云服务器收到搜索陷门,通过搜索树形结构的安全索引,与安全索引中的条目进行匹配,把匹配成功的文件标识符发送给用户,具体包括:
云服务器从根节点开始进行搜索,若根节点中包含所有的搜索关键词,则沿着搜索路径分别搜索它的左右孩子节点,一直迭代下去,直到到达叶节点或者是不包含所有搜索关键词的节点;若是搜索路径的长度小于树的高度,也就是没有到达叶节点,则表示没有搜索到包含所有搜索关键词的文件;若是搜索路径的长度等于树的高度,则将包含每个关键词的文件标识符做密文状态的加法运算,把密文求和结果发送给用户。
5.基于同态加密和树结构的多关键词密文搜索系统,其特征在于,包括数据拥有者、数据用户和云服务器;
所述数据拥有者被配置为:通过执行密钥生成算法,生成密钥集合;
从需要上传的文件中提取关键词,为每个关键词生成对应的文件标识符集合;其中,文件标识符用多比特的位图索引表示,且用加法同态加密算法对位图索引进行加密;
对关键词集合中的每个关键词分别进行加密生成搜索陷门,采用基于满二叉树的数据结构构建密文的安全索引;
采用对称加密算法对文件进行加密,生成密文文件;
所述数据用户被配置为:对搜索关键词进行加密,生成搜索陷门发送给云服务器;
所述云服务器被配置为:收到搜索陷门,通过搜索树形结构的安全索引,与安全索引中的条目进行匹配,把匹配成功的文件标识符发送给数据用户;
数据用户收到文件后,用加法同态加密算法的解密算法对收到的文件标识符进行解密得到明文的位图索引,基于解密后的位图索引包含的文件标识和搜索关键词的个数确定包含多关键词的文件;
所述采用基于满二叉树的数据结构构建密文的安全索引包括:
从文件集合中提取关键词构造由不同关键词组成的关键词集合W和关键词-文件对;
数据拥有者建立|W|个节点,将加密后的每个搜索关键词存放在节点中,节点中存放包含该关键词的所有文件标识符,作为树形索引结构的叶节点;
每两个节点生成一个双亲节点,将两个节点中的关键词存放在新的节点中,新节点作为父母节点,按照这种方式迭代下去,直到生成根节点;
每个非叶节点存放左右孩子节点中的关键词,这些关键词被映射到一个不可区分的布隆过滤器IBF中;
数据拥有者若对存放在服务器上的文件进行添加或删除操作,需要更新陷门并将加密的文件和更新陷门发送给服务器;
对于每次更新,数据拥有者随机选择一个固定长度的比特串,作为最新状态stupdate_num+1,并且更新常数update_num加1,把最新状态stupdate_num+1和更新常数update_num+1存放在状态数组中,加密关键词,生成搜索陷门,基于搜索陷门对更新文件的标识符进行加密,然后分别生成叶节点和非叶节点的更新索引位置及具体的更新索引信息;
所述基于解密后的位图索引包含的文件标识和搜索关键词的个数确定包含多关键词的文件包括:
将解密后的文件标识符File_bitmap_sum中每个文件对应位置的FileID_len比特的数值与搜索多关键词的个数进行比对,若第i×FileID_Len比特到第(i+1)×FileID_len-1比特的数值与搜索多关键词的个数相等,则说明文件fi包含所有的搜索关键词;若不相等,则不包含所有的搜索关键词,其中,FileID_len表示每个文件占用的位图索引比特长度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310123303.1A CN116107967B (zh) | 2023-02-14 | 2023-02-14 | 基于同态加密和树结构的多关键词密文搜索方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310123303.1A CN116107967B (zh) | 2023-02-14 | 2023-02-14 | 基于同态加密和树结构的多关键词密文搜索方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116107967A CN116107967A (zh) | 2023-05-12 |
CN116107967B true CN116107967B (zh) | 2024-04-30 |
Family
ID=86259597
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310123303.1A Active CN116107967B (zh) | 2023-02-14 | 2023-02-14 | 基于同态加密和树结构的多关键词密文搜索方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116107967B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117440103B (zh) * | 2023-12-20 | 2024-03-08 | 山东大学 | 基于同态加密和空间优化的隐私数据处理方法及系统 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017036547A1 (en) * | 2015-09-04 | 2017-03-09 | Nec Europe Ltd. | Method for providing encrypted data in a database and method for searching on encrypted data |
WO2018122238A1 (en) * | 2016-12-30 | 2018-07-05 | Robert Bosch Gmbh | Method and system for fuzzy keyword search over encrypted data |
CN108712366A (zh) * | 2018-03-27 | 2018-10-26 | 西安电子科技大学 | 云环境中支持词形词义模糊检索的可搜索加密方法及系统 |
CN110427771A (zh) * | 2019-06-25 | 2019-11-08 | 西安电子科技大学 | 一种检索模式隐藏的可搜索加密方法、云服务器 |
CN112784309A (zh) * | 2021-02-20 | 2021-05-11 | 青岛大学 | 数据安全管理方法、电子设备和存储介质 |
CN113076319A (zh) * | 2021-04-13 | 2021-07-06 | 河北大学 | 基于离群值检测技术和位图索引的动态数据库填充方法 |
CN113254955A (zh) * | 2021-05-01 | 2021-08-13 | 西安电子科技大学 | 前向安全的连接关键词对称可搜索加密方法、系统及应用 |
CN115269585A (zh) * | 2021-04-30 | 2022-11-01 | 华为技术有限公司 | 搜索方法及装置 |
CN115276952A (zh) * | 2022-07-29 | 2022-11-01 | 蚂蚁区块链科技(上海)有限公司 | 一种隐私数据处理方法及装置 |
CN115495792A (zh) * | 2022-11-08 | 2022-12-20 | 三未信安科技股份有限公司 | 一种具有隐私保护的模糊关键词可搜索加密方法和系统 |
-
2023
- 2023-02-14 CN CN202310123303.1A patent/CN116107967B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017036547A1 (en) * | 2015-09-04 | 2017-03-09 | Nec Europe Ltd. | Method for providing encrypted data in a database and method for searching on encrypted data |
WO2018122238A1 (en) * | 2016-12-30 | 2018-07-05 | Robert Bosch Gmbh | Method and system for fuzzy keyword search over encrypted data |
CN110326253A (zh) * | 2016-12-30 | 2019-10-11 | 罗伯特·博世有限公司 | 用于对加密数据进行模糊关键字搜索的方法和系统 |
CN108712366A (zh) * | 2018-03-27 | 2018-10-26 | 西安电子科技大学 | 云环境中支持词形词义模糊检索的可搜索加密方法及系统 |
CN110427771A (zh) * | 2019-06-25 | 2019-11-08 | 西安电子科技大学 | 一种检索模式隐藏的可搜索加密方法、云服务器 |
CN112784309A (zh) * | 2021-02-20 | 2021-05-11 | 青岛大学 | 数据安全管理方法、电子设备和存储介质 |
CN113076319A (zh) * | 2021-04-13 | 2021-07-06 | 河北大学 | 基于离群值检测技术和位图索引的动态数据库填充方法 |
CN115269585A (zh) * | 2021-04-30 | 2022-11-01 | 华为技术有限公司 | 搜索方法及装置 |
CN113254955A (zh) * | 2021-05-01 | 2021-08-13 | 西安电子科技大学 | 前向安全的连接关键词对称可搜索加密方法、系统及应用 |
CN115276952A (zh) * | 2022-07-29 | 2022-11-01 | 蚂蚁区块链科技(上海)有限公司 | 一种隐私数据处理方法及装置 |
CN115495792A (zh) * | 2022-11-08 | 2022-12-20 | 三未信安科技股份有限公司 | 一种具有隐私保护的模糊关键词可搜索加密方法和系统 |
Non-Patent Citations (5)
Title |
---|
improved phrase search construction over encrypted data in cloud storage;Kong f;international journal of innovation computing and applications;20170831;全文 * |
公钥密码体制中的若干算法研究;孔凡玉;信息科技;20061215;全文 * |
史玉良 ; 陈玉 ; 孙世彬 ; 崔立真 ; .面向隐私保护的数据块调整机制.计算机学报.(12),全文. * |
基于区块链技术的数据交易与共享方案研究;王云婷;信息科技;20230115;全文 * |
面向隐私保护的数据块调整机制;史玉良;计算机学报;20170526;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116107967A (zh) | 2023-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106815350B (zh) | 一种云环境中动态的密文多关键词模糊搜索方法 | |
Chase et al. | Substring-searchable symmetric encryption | |
Bösch et al. | Conjunctive wildcard search over encrypted data | |
Van Liesdonk et al. | Computationally efficient searchable symmetric encryption | |
Salam et al. | Implementation of searchable symmetric encryption for privacy-preserving keyword search on cloud storage | |
CN112270006A (zh) | 电商平台中隐藏搜索模式和访问模式的可搜索加密方法 | |
EP3342090A1 (en) | Method for providing encrypted data in a database and method for searching on encrypted data | |
EP3058678A1 (en) | System and method for dynamic, non-interactive, and parallelizable searchable symmetric encryption | |
US20090138698A1 (en) | Method of searching encrypted data using inner product operation and terminal and server therefor | |
CN106934301B (zh) | 一种支持密文数据操作的关系型数据库安全外包数据处理方法 | |
Zhang et al. | Dynamic and Efficient Private Keyword Search over Inverted Index--Based Encrypted Data | |
US20200228322A1 (en) | Methods for securing data | |
Ogata et al. | Toward practical searchable symmetric encryption | |
CN116107967B (zh) | 基于同态加密和树结构的多关键词密文搜索方法及系统 | |
Jiang et al. | An Efficient Symmetric Searchable Encryption Scheme for Cloud Storage. | |
CN113157821B (zh) | 一种适用于关系数据库的可查询加密方法 | |
Purushothama et al. | Efficient query processing on outsourced encrypted data in cloud with privacy preservation | |
CN106874379B (zh) | 一种面向密文云存储的多维区间检索方法与系统 | |
KR101232385B1 (ko) | 대칭키 기반의 암호 생성 및 검색 방법과 그 시스템 | |
Pang et al. | Privacy-preserving noisy keyword search in cloud computing | |
Handa et al. | An efficient approach for secure information retrieval on cloud | |
Salmani et al. | Don't fool yourself with Forward Privacy, Your queries STILL belong to us! | |
Tian et al. | A Privacy-Preserving Hybrid Range Search Scheme Over Encrypted Electronic Medical Data in IoT Systems | |
Handa et al. | An efficient cluster-based multi-keyword search on encrypted cloud data | |
Bag et al. | A New Leakage Resilient Symmetric Searchable Encryption Scheme for Phrase Search. |
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 |