CN114528370A - 动态多关键字模糊排序搜索方法及系统 - Google Patents
动态多关键字模糊排序搜索方法及系统 Download PDFInfo
- Publication number
- CN114528370A CN114528370A CN202210030517.XA CN202210030517A CN114528370A CN 114528370 A CN114528370 A CN 114528370A CN 202210030517 A CN202210030517 A CN 202210030517A CN 114528370 A CN114528370 A CN 114528370A
- Authority
- CN
- China
- Prior art keywords
- data
- index
- document
- cloud server
- keyword
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
-
- 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
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/216—Parsing using statistical methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Artificial Intelligence (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Bioethics (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本发明请求保护一种动态多关键字模糊排序搜索方法及系统,系统包含数据用户,数据拥有者,云服务器。本发明基于二级索引结构,第一级索引基于倒排索引和交叉链表组成,结合2‑gram计数排序,bloom过滤器和LSH(位置敏感的哈希函数)实现关键字模糊匹配,并利用交叉链表构造的新安全索引实现高效的数据更新。第二级索引基于多项式的用户搜索权限识别与判定,综合TF‑IDF与坐标匹配实现结果排序。验证阶段将每个关键字查询生成一个验证标记,以验证检索结果的有效性。本发明在基于半可信的云服务器情况下,基于泄露函数,实现了方案的语义安全性。本发明的模糊多关键词搜索方案相比同类发明具有一定优势,可以满足云环境下的用户敏感数据检索需求。
Description
技术领域
本发明属于信息安全技术领域,是一种动态多关键字模糊排序搜索方案,可用于在数据量较大时进行加密搜索等业务。
背景技术
随着云计算的发展,越来越多的数据拥有者将数据外包到云服务器。云服务器往往是半可信的,为此,数据在外包前有必要进行保密处理,但直接加密会破坏数据的可检索性。因此,如何在保证数据的可检索性时,确保数据的机密性成为一个具有挑战性的问题。
由于单关键字搜索只能针对一个关键字进行搜索,在实际应用场景中,与单关键字搜索相比,多关键字搜索更实用。数据用户在输入关键字时容易出现拼写错误。在这种情况下,精确的关键字搜索不能返回用户感兴趣的文档。本发明利用“内积相似性”计算所有文档的相关分数,即使这些文件不包含任何搜索的关键字。在某些场景中,数据拥有者可能需要更新(添加,删除或修改) 存储在云服务器上的数据。因此,有必要设计一种支持数据动态更新的多关键字模糊排序搜索方案。
CN104615692B,是一种支持动态更新、多关键字检索并且实现安全排序的可搜索加密方法,方案没有实现模糊搜索功能,在实际应用中缺乏实用性,本文提出了一种基于两级索引结构的动态多关键字搜索方案,其中一级索引由倒排索引和交叉链表组成,结合Gram计数顺序、bloom过滤器和LSH (Location-Sensitive Hashing)实现了关键字的模糊匹配。同时该方案缺乏高效的数据更新功能,在本文中,利用交叉链表构造的安全索引实现了高效的数据更新。
CN112328733A,是一种基于MinHash函数的中文多关键字模糊排序可搜索加密方法,方案为了进行文档更新,是用关键字频率代替了tfidf值,这样得到的结果是不准确的,本文第二级索引采用基于多项式的方法实现用户搜索权限决策,并将坐标匹配与术语频率逆文件频率(TF-IDF)相结合实现搜索结果排序,得到了top-k文档。
本发明提出了一种动态多关键字模糊排序搜索方案,用于云环境下的数据安全外包与检索。本发明设计了一种改进的两级索引结构,利用前向索引和倒排索引来提高检索效率。反向索引用于搜索模糊关键字对应的文档,发明的搜索复杂度仅由查询中与关键字相关联的文件的数量而不是整个文件集大小决定。在二级索引结构中存在搜索效率提升会导致与隐私泄漏增加的矛盾。本发明的构造对搜索效率,空间储存成本和方案安全进行了有效平衡。
发明内容
本发明旨在解决以上现有技术的问题。提出了一种动态多关键字模糊排序搜索方法及系统。本发明的技术方案如下:
一种动态多关键字模糊排序搜索方法,其包括以下步骤:
1.密钥生成:在这个阶段,由数据拥有者生成密钥;安全参数λ作为输入,输出密钥SK;
2.系统初始化:由数据拥有者执行,输入密钥SK,文件集和相应的关键字集输出加密文档集合C和安全索引基于文档和关键字之间的联系构建了两阶段安全索引,第一阶段索引基于倒排索引构成,其中每个查询关键字对应有关文档标识符的链表;第二阶段索引是正向索引,其中每个文档标识符对应它拥有的关键字;
3.令牌生成:由数据用户执行,为关键字生成搜索令牌;将SK和查询 Q=(w1,w2,…,wn)作为输入,输出Token;
4.搜索:由云服务器执行,将Token,C,Index作为输入,输出IDTop-k和R, IDTop-k表示Top-k相关加密文档CTop-k的标识符,tag表示认证标签;
5.验证:数据用户输入密钥集SK,密文CTop-k,认证标签tag并输出验证结果0 或1;0为拒绝1为接受;
6.解密:数据用户对返回的文档进行解密,将SK和CTop-k作为输入,输出一组Top-k相关明文文档DTop-k;
7.数据更新:由数据拥有者和云服务器一起运行,它需要密钥集SK,更新代码UC={add,del}和添加或删除文档集D′作为输入,输出相应的更新结果;输出相应的更新结果;如果是添加文件,那么UC=add;如果是删除文件,那么UC=del。
进一步的,所述密钥生成阶段,具体包括:
给定安全参数λ,数据拥有者生成他的私钥SK,它包含一个随机序列 sk∈{0,1}*、两对可逆矩阵M1,M3,和两个个向量 spk1∈{0,1}l、spk2∈{0,1}m′,在该过程之后,该算法输出密钥SK= {sk,M1,M2,M3,M4,spk1,spk2};数据所有者使用SK加密索引,数据用户使用SK来生成搜索令牌。
进一步的,所述系统初始化阶段,具体包括:
对于的构造分为了两个步骤,在第一步骤中,实现的模糊匹配,对于关键字通过2-gram计数排序将其转换为26×26长的位向量,然后引入c个 LSH函数得到哈希值并映射到l-bit布隆过滤器Bfi中,然后使用安全KNN加密对Bfi进行加密;该算法根据分割向量对Bfi进行分割;spk1被分割为两个向量Bfi′和Bfi″。矩阵M1和M2加密这两个向量并输出
在第二步骤中,构造的正交列表其中包括m行行列表和n列列表。行列表由一个头节点Ni,0和n个其他节点组成,列列表与文档Dj相关,由相应的m个节点组成。是索引节点存储结果用密钥ki,j∈{0,1}*计算fsk(ki,j),wij∈{0,1}表示文件Dj是否包含关键字wi,ei,j=gsk(ki+1,j), V:{0,1}*×sk→{0,1}*,
对于每个关键字wi,构造了一个相同长度的链表,目的是隐藏每个关键字的频率。当需要添加或删除某些文件时,云服务器可以快速找到与更新文件相关的索引节点,这样就可以方便快速地放大或缩小安全索引。由于是基于正交链表,可以显著提高更新效率。
2)然后,引入多项式来识别用户搜索权限函数yj(x)。有num(num< m′-m)个可用角色,表示数据用户的授权角色, 表示yj(x)的对应系数。如果yj(x)=0,则表示数据用户已被授权,否则yj(x)>>MAX,MAX是最大可能的相关值,表示数据用户未经授权。将Fj扩展为yi(x)的t个系数,表示为 其中
4)数据拥有者使用安全的KNN加密对第二个索引进行加密。该算法先用ρ:{0,1}m′×sk→{0,1}m′置换得到之后,该算法根据拆分向量spk2将拆分成两个向量。算法用M3和M4对这两个向量进行加密,然后输出
Tag是一个二维数组,每一个tagj,i存储关于第j个文件关于第i个关键字的认证标签 如果文档Dj中包含wi,vij=1。否则,vij=0。π,x是一个置换函数,π:{0,1}*×sk→{0,1}p,x:{0,1}*×sk→ {0,1}*,Cj表示加密文档Dj。
进一步的,所述数据用户搜索阶段,具体包括:
1)数据用户需要生成令牌Bloom filter Bfq由中的所有关键字构成,每个关键字由c个LSH函数处理。Bfq′(d′)和Bfq″(d′),d′∈{1,2,...,l}生成如下,r∈{0,1}*。
Bloom过滤器Bfq使用M1、M2和spk1,以与IndexGen相反的方式进行加密 (·)如下:
3)数据用户使用sk解密第一个节点Ni,0,得到(πsk(wi),ki,1),它是下一个节占的密钥,然后依次解密为了验证tagj,i,我们需要得到vi,当wij=1,vij=1时。收集文档标识符idj∈D(wi),j∈{1,2,…,n}所有匹配的文件,我们只搜索与idj∈D(wi)相关第二级文件。
3)随机因子β≤1×10-b,b=(1,2,3,…)被生成用来更改所有的相关分数,对β的要求是保证在缩小后,对于yi(x)可达到可能的最大匹配分数 max{βFj T·Q},j∈{1,…,n}。
然后,云服务器通过检查相关性分数是否远远超过最大值,即过界,来过滤掉该用户不可访问的文档信息;将MAX设置为该条件下的最大相关性分数,表示数据用户在查询中,能够获得的具有相关关键字的最高的TF-IDF值,最大潜在相关性分数定义如下;
进一步的,所述验证阶段,具体包括:
进一步的,所述加密数据解密阶段,具体包括:
数据用户通过计算DTop-k←Decsk(CTop-k)来解密CTop-k。
进一步的,所述加密数据更新阶段,具体包括:
数据更新:索引动态更新包括两个方面:文档添加和文档删除;
文档添加:如果数据拥有者希望将文档Du添加到中,则更新代码UC设置为add。首先,数据拥有者需要从Du中提取关键字wi(i∈[1,|Du|]),然后,数据拥有者在中添加新的列表,添加索引,更新Tag中对应的值,上传加密的文档集Cu;
文档删除:如果数据拥有者希望将文档Du从中删除,则更新代码UC设置为del;首先,数据拥有者需要从Du中提取关键字wi(i∈[1,|Fu|]);然后,数据拥有者在中删除对应的列表,删除中对应的索引,更新Tag中对应的值,并删除云上的文档。
一种采用任一项所述方法的动态多关键字模糊排序搜索系统,其包括:
数据拥有者:数据拥有者拥有一系列需要外包存储的明文数据或文件;但由于云服务器是半可信的,将敏感数据外包到云上之前需要对其进行加密操作;数据拥有者加密明文文件,并用从每个文件中提取出的关键字,利用私钥构造出可搜索的安全索引;数据拥有者将加密文件集和安全索引上传到云服务器;当数据拥有者想要删除或添加文件时,数据拥有者在本地生成更新令牌并将其发送到云服务器;
数据用户:通常被认为是可信的实体,与数据拥有者共享密钥;当数据用户想检索感兴趣的关键字的加密文件时,利用关键字生成搜索令牌,并将其发送给云服务器;云服务器返回检索结果,数据用户可以验证返回结果的有效性,并对密文解密从而得到明文信息;
云服务器:云服务器负责存储数据拥有者上传的加密文件集和安全索引;当接收到来自数据用户的搜索请求时,云服务器对安全索引执行搜索操作,并返回搜索结果;但云服务器是不可信赖的实体,可能会返回一些不正确的结果,因此数据用户需要能够验证从云服务器中得到的结果;此外,当云服务器接收到来自数据拥有者的更新令牌时,它能快速更新安全索引和相对应的密文数据。
本发明的优点及有益效果如下:
本发明设计了一种动态高效的保护数据隐私的多关键字排名的模糊搜索方案,利用了二级索引结构以提高加密数据的搜索效率,其搜索复杂性独立于文件集大小。将每个关键字生成一个索引,实现模糊匹配。通过使用TF-IDF构建文档索引来实现更高的搜索精度实现排序搜索。据前期的调查所知,这是第一个同时实现所有这些功能的发明。
附图说明
图1是本发明提供优选实施例的系统模型图;
图2是本发明的二级索引结构图。
图3是本发明的第二级子索引结构图。
图4是本发明的符号图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、详细地描述。所描述的实施例仅仅是本发明的一部分实施例。
本发明解决上述技术问题的技术方案是:
下面结合附图1描述一下系统的框架。
数据拥有者:数据拥有者拥有一系列需要外包存储的明文数据或文件。但由于云服务器是半可信的,将敏感数据外包到云上之前需要对其进行加密操作。数据拥有者加密明文文件,并用从每个文件中提取出的关键字,利用私钥构造出可搜索的安全索引。数据拥有者将加密文件集和安全索引上传到云服务器。当数据拥有者想要删除或添加文件时,数据拥有者在本地生成更新令牌并将其发送到云服务器。
数据用户:通常被认为是可信的实体,与数据拥有者共享密钥。当数据用户想检索感兴趣的关键字的加密文件时,利用关键字生成搜索令牌,并将其发送给云服务器。云服务器返回检索结果,数据用户可以验证返回结果的有效性,并对密文解密从而得到明文信息。
云服务器:云服务器负责存储数据拥有者上传的加密文件集和安全索引。当接收到来自数据用户的搜索请求时,云服务器对安全索引执行搜索操作,并返回搜索结果。但云服务器是不可信赖的实体,可能会返回一些不正确的结果,因此数据用户需要能够验证从云服务器中得到的结果。此外,当云服务器接收到来自数据拥有者的更新令牌时,它能快速更新安全索引和相对应的密文数据。
下面结合附图2-4对本发明的交易流程做进一步的详细描述,具体的包括以下模块和步骤:
1、密钥生成:给定安全参数λ,数据拥有者生成他的私钥SK,它包含一个随机序列sk∈{0,1}*、两对可逆矩阵M1,M3,印两个个向量spk1∈{0,1}l、spk2∈{0,1}m′,在该过程之后,该算法输出密钥 SK={sk,M1,M2,M3,M4,spk1,spk2};数据所有者使用SK加密索引,数据用户使用SK来生成搜索令牌。
2、系统初始化:为了实现高效的数据更新,方案设计了一种二级索引结构该结构基于倒排索引和正向索引构成。第一级结构基于倒排结构和正交链表组成,用户可以在查询中找到每个关键字相对应的文件。第二阶段索引是正向索引,用户可以在查询中识别用户权限并计算出每个文档与查询之间的相关性得分。为了生成倒排索引和正向索引数据所有者同时将和初始化为空数组。
对于的构造分为了两个步骤,在第一步骤中,实现的模糊匹配,对于关键字通过2-gram计数排序将其转换为26×26长的位向量,然后引入c个 LSH函数得到哈希值并映射到l-bit布隆过滤器Bfi中,然后使用安全KNN加密对Bfi进行加密;该算法根据分割向量对Bfi进行分割;spk1被分割为两个向量Bfi′和Bfi″。矩阵M1和M2加密这两个向量并输出
在第二步骤中,构造的正交列表其中包括m行行列表和n列列表。行列表由一个头节点Ni,0和n个其他节点组成,列列表与文档Dj相关,由相应的m个节点组成。是索引节点存储结果用密钥ki,j∈{0,1}*计算fsk(ki,j),wij∈{0,1}表示文件Dj是否包含关键字wi,ei,j=gsk(ki+1,j), V:{0,1}*×sk→{0,1}*,
对于每个关键字wi,构造了一个相同长度的链表,目的是隐藏每个关键字的频率。当需要添加或删除某些文件时,云服务器可以快速找到与更新文件相关的索引节点,这样就可以方便快速地放大或缩小安全索引。由于是基于正交链表,可以显著提高更新效率。
4、根据权利要求3所述的一种动态多关键字模糊排序搜索方法,其特征在于,第二阶段的子索引构造具体为:
6)然后,引入多项式来识别用户搜索权限函数yj(x)。有num(num< m′-m)个可用角色,表示数据用户的授权角色, 表示yj(x)的对应系数。如果yj(x)=0,则表示数据用户已被授权,否则yj(x)>>MAX,MAX是最大可能的相关值,表示数据用户未经授权。将Fj扩展为yi(x)的t个系数,表示为 其中
8)数据拥有者使用安全的KNN加密对第二个索引进行加密。该算法先用ρ:{0,1}m′×sk→{0,1}m′置换得到之后,该算法根据拆分向量spk2将拆分成两个向量。算法用M3和M4对这两个向量进行加密,然后输出
Tag是一个二维数组,每一个tagj,i存储关于第j个文件关于第i个关键字的认 证标签vi={vij|i= 1,2,…,m;j=1,2,…,n},如果文档Dj中包含wi,vij=1。否则,vij=0。π,x是 一个置换函数,π:{0,1}*×sk→{0,1}p,x:{0,1}*×sk→{0,1}*,Cj表示加密文档Dj。
1)数据用户需要生成令牌Bloom filter Bfq由中的所有关键字构成,每个关键字由c个LSH函数处理。Bfq′(d′)和Bfq′(d′),d′∈{1,2,...,l}生成如下,r∈{0,1}*。
Bloom过滤器Bfq使用M1、M2和spk1,以与IndexGen相反的方式进行加密 (·)如下:
3)数据用户使用sk解密第一个节点Ni,0,得到(πsk(wi),ki,1),它是下一个节占的密钥,然后依次解密为了验证tagj,i,我们需要得到vi,当wij=1,vij=1时。收集文档标识符idj∈D(wi),j∈{1,2,…,n}所有匹配的文件,我们只搜索与idj∈D(wi)相关第二级文件。
3)随机因子β≤1×10-b,b=(1,2,3,…)被生成用来更改所有的相关分数,对β的要求是保证在缩小后,对于yi(x)可达到可能的最大匹配分数 max{βFj T·Q},j∈{1,…,n}。
然后,云服务器通过检查相关性分数是否远远超过最大值,即过界,来过滤掉该用户不可访问的文档信息;将MAX设置为该条件下的最大相关性分数,表示数据用户在查询中,能够获得的具有相关关键字的最高的TF-IDF值,最大潜在相关性分数定义如下;
5、解密:数据用户通过计算DTop-k←Decsk(CTop-k)(sk∈SK)来解密 CTop-k。
6、数据更新:在本发明中,索引动态更新包括两个方面:文档添加和文档删除。
文档添加:如果数据拥有者希望将文档Du添加到中,则更新代码UC设置为add。首先,数据拥有者需要从Du中提取关键字wi(i∈[1,|Du|])。然后,数据拥有者在中添加新的列表,添加索引,更新Tag中对应的值,上传加密的文档集Cu。
文档删除:如果数据拥有者希望将文档Du从中删除,则更新代码UC设置为del。首先,数据拥有者需要从Du中提取关键字wi(i∈[1,|Fu|])。然后,数据拥有者在中删除对应的列表,删除中对应的索引,更新Tag中对应的值,并删除云上的文档。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范围。在阅读了本发明的记载的内容之后,技术人员可以对本发明作各种改动或修改,这些等效变化和修饰同样落入本发明权利要求所限定的范围。
Claims (8)
1.一种动态多关键字模糊排序搜索方法,其特征在于,包括以下步骤:
1)密钥生成:在这个阶段,由数据拥有者生成密钥;安全参数λ作为输入,输出密钥SK;
2)系统初始化:由数据拥有者执行,输入密钥SK,文件集 和相应的关键字集输出加密文档集合C和安全索引基于文档和关键字之间的联系构建了两阶段安全索引,第一阶段索引基于倒排索引构成,其中每个查询关键字对应有关文档标识符的链表;第二阶段索引是正向索引,其中每个文档标识符对应它拥有的关键字;
3)搜索:该算法由数据用户执行,为搜索关键字生成一个令牌,然后将该令牌传递给云服务提供商。SK,C和Index作为输入,输出IDTop-k和tag。IDTop-k表示与Top-k相关的加密文件CTop-k的标识符,tag表示验证标签。
4)验证:数据用户输入密钥集SK,密文CTop-k,认证标签tag并输出验证结果0或1;0为拒绝1为接受;
5)解密:数据用户对返回的文档进行解密,将SK和CTop-k作为输入,输出一组Top-k相关明文文档DTop-k;
6)数据更新:由数据拥有者和云服务器一起运行,它需要密钥集SK,更新代码UC={add,del}和添加或删除文档集D′作为输入,输出相应的更新结果;输出相应的更新结果;如果是添加文件,那么UC=add;如果是删除文件,那么UC=del。
3.根据权利要求2所述的一种动态多关键字模糊排序搜索方法,其特征在于,所述系统初始化阶段,具体包括:
对于的构造分为了两个步骤,在第一步骤中,实现的模糊匹配,对于关键字通过2-gram计数排序将其转换为26×26长的位向量,然后引入c个LSH函数得到哈希值并映射到l-bit布隆过滤器Bfi中,然后使用安全KNN加密对Bfi进行加密;该算法根据分割向量对Bfi进行分割;spk1被分割为两个向量Bfi′和Bfi″。矩阵M1和M2加密这两个向量并输出
在第二步骤中,构造的正交列表其中包括m行行列表和n列列表。行列表由一个头节点Ni,0和n个其他节点组成,列列表与文档Dj相关,由相应的m个节点组成。是索引节点存储结果用密钥ki,j∈{0,1}*计算fsk(ki,j),wij∈{0,1}表示文件Dj是否包含关键字wi,ei,j=gsk(ki+1,j),V:{0,1}*×sk→{0,1}*,g:n2=n-n1-1:
对于每个关键字wi,构造了一个相同长度的链表,目的是隐藏每个关键字的频率。当需要添加或删除某些文件时,云服务器可以快速找到与更新文件相关的索引节点,这样就可以方便快速地放大或缩小安全索引。由于是基于正交链表,可以显著提高更新效率。
2)然后,引入多项式来识别用户搜索权限函数yj(x)。有num(num<m′-m)个可用角色,表示数据用户的授权角色, 表示yj(x)的对应系数。如果yj(x)=0,则表示数据用户已被授权,否则yj(x)>>MAX,MAX是最大可能的相关值,表示数据用户未经授权。将Fj扩展为yi(x)的t个系数,表示为 其中
4)数据拥有者使用安全的KNN加密对第二个索引进行加密。该算法先用ρ:{0,1}m′×sk→{0,1}m′置换得到之后,该算法根据拆分向量spk2将拆分成两个向量。算法用M3和M4对这两个向量进行加密,然后输出
Tag是一个二维数组,每一个tagj,i存储关于第j个文件关于第i个关键字的认证标签vi={vij|i=1,2,...,m;j=1,2,...,n},如果文档Dj中包含wi,vij=1。否则,vij=0。π,x是一个置换函数,π:{0,1}*×sk→{0,1}p,x:{0,1}*×sk→{0,1}*,Cj表示加密文档Dj。
4.根据权利要求3所述的一种动态多关键字模糊排序搜索方法,其特征在于,所述数据用户搜索阶段,具体包括:
1)数据用户需要生成令牌Bloom filter Bfq由中的所有关键字构成,每个关键字由c个LSH函数处理。Bfq′(d′)和Bfq″(d′),d′∈{1,2,...,l}生成如下,r∈{0,1}*。
Bloom过滤器Bfq使用M1、M2和spk1,以与IndexGen相反的方式进行加密(·)如下:
3)数据用户使用sk解密第一个节点Ni,0,得到(πsk(wi),ki,1),它是下一个节占的密钥,然后依次解密为了验证tagj,i,我们需要得到vi,当wij=1,vij=1时。收集文档标识符idj∈D(wi),j∈{1,2,…,n}所有匹配的文件,我们只搜索与idj∈D(wi)相关第二级文件。
3)随机因子β≤1×10-b,b=(1,2,3,…)被生成用来更改所有的相关分数,对β的要求是保证在缩小后,对于yi(x)可达到可能的最大匹配分数max{βFj T·Q},j∈{1,…,n}。
然后,云服务器通过检查相关性分数是否远远超过最大值,即过界,来过滤掉该用户不可访问的文档信息;将MAX设置为该条件下的最大相关性分数,表示数据用户在查询中,能够获得的具有相关关键字的最高的TF-IDF值,最大潜在相关性分数定义如下;
6.根据权利要求5所述的一种动态多关键字模糊排序搜索方法,其特征在于,所述加密数据解密阶段,具体包括:
数据用户通过计算DTop-k←Decsk(CTop-k)来解密CTop-k。
7.根据权利要求6所述的一种动态多关键字模糊排序搜索方法,其特征在于,所述加密数据更新阶段,具体包括:
数据更新:索引动态更新包括两个方面:文档添加和文档删除;
文档添加:如果数据拥有者希望将文档Du添加到中,则更新代码UC设置为add。首先,数据拥有者需要从Du中提取关键字wi(i∈[1,|Du|]),然后,数据拥有者在中添加新的列表,添加索引,更新Tag中对应的值,上传加密的文档集Cu;
8.一种采用权利要求1-7任一项所述方法的动态多关键字模糊排序搜索系统,其特征在于,包括:
数据拥有者:数据拥有者拥有一系列需要外包存储的明文数据或文件;但由于云服务器是半可信的,将敏感数据外包到云上之前需要对其进行加密操作;数据拥有者加密明文文件,并用从每个文件中提取出的关键字,利用私钥构造出可搜索的安全索引;数据拥有者将加密文件集和安全索引上传到云服务器;当数据拥有者想要删除或添加文件时,数据拥有者在本地生成更新令牌并将其发送到云服务器;
数据用户:通常被认为是可信的实体,与数据拥有者共享密钥;当数据用户想检索感兴趣的关键字的加密文件时,利用关键字生成搜索令牌,并将其发送给云服务器;云服务器返回检索结果,数据用户可以验证返回结果的有效性,并对密文解密从而得到明文信息;
云服务器:云服务器负责存储数据拥有者上传的加密文件集和安全索引;当接收到来自数据用户的搜索请求时,云服务器对安全索引执行搜索操作,并返回搜索结果;但云服务器是不可信赖的实体,可能会返回一些不正确的结果,因此数据用户需要能够验证从云服务器中得到的结果;此外,当云服务器接收到来自数据拥有者的更新令牌时,它能快速更新安全索引和相对应的密文数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210030517.XA CN114528370A (zh) | 2022-01-12 | 2022-01-12 | 动态多关键字模糊排序搜索方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210030517.XA CN114528370A (zh) | 2022-01-12 | 2022-01-12 | 动态多关键字模糊排序搜索方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114528370A true CN114528370A (zh) | 2022-05-24 |
Family
ID=81621202
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210030517.XA Pending CN114528370A (zh) | 2022-01-12 | 2022-01-12 | 动态多关键字模糊排序搜索方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114528370A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116881739A (zh) * | 2023-09-07 | 2023-10-13 | 山东省计算中心(国家超级计算济南中心) | 一种面向空间关键字相似性的密文安全检索方法 |
-
2022
- 2022-01-12 CN CN202210030517.XA patent/CN114528370A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116881739A (zh) * | 2023-09-07 | 2023-10-13 | 山东省计算中心(国家超级计算济南中心) | 一种面向空间关键字相似性的密文安全检索方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ge et al. | Towards achieving keyword search over dynamic encrypted cloud data with symmetric-key based verification | |
Wang et al. | Searchable encryption over feature-rich data | |
CN108712366B (zh) | 云环境中支持词形词义模糊检索的可搜索加密方法及系统 | |
Fu et al. | Enabling central keyword-based semantic extension search over encrypted outsourced data | |
Yuan et al. | SEISA: Secure and efficient encrypted image search with access control | |
Sun et al. | Verifiable privacy-preserving multi-keyword text search in the cloud supporting similarity-based ranking | |
Chen et al. | EliMFS: achieving efficient, leakage-resilient, and multi-keyword fuzzy search on encrypted cloud data | |
Al Sibahee et al. | Efficient encrypted image retrieval in IoT-cloud with multi-user authentication | |
Rane et al. | Multi-user multi-keyword privacy preserving ranked based search over encrypted cloud data | |
CN108650268B (zh) | 一种实现多级访问的可搜索加密方法及系统 | |
CN114528370A (zh) | 动态多关键字模糊排序搜索方法及系统 | |
Zhang et al. | A verifiable and dynamic multi-keyword ranked search scheme over encrypted cloud data with accuracy improvement | |
CN115795504A (zh) | 一种支持中文词义模糊检索的可搜索方法及系统 | |
CN112328626B (zh) | 面向云环境的支持模糊关键词排序的可搜索加密方法 | |
CN113158245A (zh) | 一种文档搜索的方法、系统、设备及可读存储介质 | |
CN108319670A (zh) | 基于云计算的可验证的动态排名搜索方法 | |
CN112328733B (zh) | 基于MinHash函数的中文多关键字模糊排序可搜索加密方法 | |
CN109582818B (zh) | 一种基于可搜索加密的曲库云检索方法 | |
Xue et al. | Cuckoo-filter based privacy-aware search over encrypted cloud data | |
Mayan et al. | Semantic based multi lexical ranking technique for an effective search in protected cloud | |
Manasrah et al. | A privacy-preserving multi-keyword search approach in cloud computing | |
Huang et al. | Efficient privacy-preserving content-based image retrieval in the cloud | |
Li et al. | Diverse multi-keyword ranked search over encrypted cloud data supporting range query | |
Gampala et al. | An efficient Multi-Keyword Synonym Ranked Query over Encrypted Cloud Data using BMS Tree | |
Liu et al. | A secure multi-keyword fuzzy search with polynomial function for encrypted data in cloud computing |
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 |