CN106997384A - 一种排序可验证的语义模糊可搜索加密方法 - Google Patents

一种排序可验证的语义模糊可搜索加密方法 Download PDF

Info

Publication number
CN106997384A
CN106997384A CN201710181693.2A CN201710181693A CN106997384A CN 106997384 A CN106997384 A CN 106997384A CN 201710181693 A CN201710181693 A CN 201710181693A CN 106997384 A CN106997384 A CN 106997384A
Authority
CN
China
Prior art keywords
keyword
index
document
search
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.)
Granted
Application number
CN201710181693.2A
Other languages
English (en)
Other versions
CN106997384B (zh
Inventor
杨旸
杨书略
刘西蒙
钟尚平
蔡圣暐
刘佳
李光滟
柯闽
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fuzhou University
Original Assignee
Fuzhou University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fuzhou University filed Critical Fuzhou University
Priority to CN201710181693.2A priority Critical patent/CN106997384B/zh
Publication of CN106997384A publication Critical patent/CN106997384A/zh
Application granted granted Critical
Publication of CN106997384B publication Critical patent/CN106997384B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • G06F16/319Inverted lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/3332Query translation
    • G06F16/3334Selection or weighting of terms from queries, including natural language queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/3332Query translation
    • G06F16/3338Query expansion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/338Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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/6227Protecting 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 where protection concerns the structure of data, e.g. records, types, queries
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network 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/0435Network 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 symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • H04L63/0846Network architectures or network communication protocols for network security for authentication of entities using passwords using time-dependent-passwords, e.g. periodically changing passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC

Abstract

本发明涉及一种排序可验证的语义模糊可搜索加密方法,首先,引入相关度分数和域加权得分,获得了更加准确的索引结构。接着,基于WordNet词典集对查询关键词进行语义拓展,并综合语义相似度和加密分数,设计了双因子排序算法对搜索结果进行精确排序。最后,运用布隆过滤器和消息认证码,对关键词、索引、密文进行全面而有效的验证。本发明不仅实现了语义模糊搜索,并且能够对搜索结果进行排序,特别是在现有可验证方案验证结果精确性、完整性的基础上,补充了排序可验证功能。

Description

一种排序可验证的语义模糊可搜索加密方法
技术领域
本发明涉及云计算领域,特别是一种排序可验证的语义模糊可搜索加密方法。
背景技术
随着云计算的发展,越来越多用户将数据外包给公有云服务器,极大减轻了本地的计算和存储开销。然而如果将敏感数据,例如:未发表的论文或专利、私人电子健康记录、公司财税报告等,以明文的形式存储在云服务器中,则有可能面临被云端管理员或攻击者窥视和窃取的风险。因此,为了保障数据安全和用户隐私,许多敏感数据在外包之前需要进行加密。但这又使得传统的明文搜索技术难以使用,给高效的数据利用带来了挑战。为了解决在密文中进行搜索的难题,Song率先开始进行可搜索加密技术的研究并提出了可行的方案。
早先的可搜索加密方案主要致力于精确关键词搜索,当用户输入的关键词匹配上预定义的关键词时,就能返回搜索结果。然而在用户输入搜索关键词时,由于粗心或遗忘等原因,很可能出现拼写错误或格式不匹配的情况。为此,Li率先提出模糊关键词可搜索加密方案,即使查询条件无法完全匹配预定义关键词,也能以较大的概率找到相关文档,极大改善了用户的搜索体验。但是,现有的模糊搜索方案中,大部分只考虑了关键词字符上的模糊,而忽视了关键词语义上的模糊。
为了实现语义模糊搜索,Fu对文档关键词进行同义词拓展,通过计算内积的方式,实现了支持同义词查询的多关键词排序搜索方案。Xia为文档集创建倒排索引,再结合语义相似库对查询关键词进行语义拓展,实现了语义拓展的排序搜索方案。然而,这些方案无法对返回的搜索结果进行验证。
在密文搜索的环境下,Chai提出了“半诚实且好奇”的云服务器模型,服务器提供商为了节省计算量和带宽资源,可能仅仅执行了部分搜索操作或返回部分搜索结果。为此文章提出了基于单词查找树索引结构的可验证的可搜索加密方案。Wang在关键词模糊搜索的基础上,通过构造符号索引树,提出了可验证的关键词模糊搜索方案。Sun采用向量空间模型和MDB树结构,实现了可验证的多关键词排序搜索方案。虽然这些方案都支持可验证功能,却无法支持语义模糊搜索。Lin基于通过构造校验和的方式,实现了可验证的语义模糊搜索。Fu通过TST树对关键词进行语义拓展,并同样借助符号索引树结构,提出了可验证的语义模糊搜索方案。然而,以上可验证方案都无法验证搜索结果排序后的次序是否正确,即无法实现排序可验证的功能。
发明内容
有鉴于此,本发明的目的是提出一种排序可验证的语义模糊可搜索加密方法,既支持语义模糊搜索,又能够对搜索结果的排序进行验证。
本发明采用以下方案实现:一种排序可验证的语义模糊可搜索加密方法,包括数据拥有者,授权用户和云服务器,具体包括以下步骤:
步骤S1:数据拥有者输入一个安全参数λ,生成文档加密密钥sk、单向哈希函数的密钥hk,保序加密函数的密钥ek;将密钥sk、hk发送给授权用户;
步骤S2:依次进行抽取关键词、计算相关度分数、计算域加权得分、创建倒排索引、加密倒排索引;
所述抽取关键词为:数据拥有者对文档集F=(f1,f2,…,fm)抽取关键词,得到关键词集合W=(w1,w2,…,wn);
所述计算相关度分数为:引入tf-idf权值计算方法计算关键词相关度分数S:
其中,|f|表示文档f的长度,tft,f表示关键词t在某篇文档f中出现的频率;N表示所有文档数量,dft表示包含关键词t的文档数量;
所述计算域加权得分为:在不同域中的关键词通常具有不同的重要性,标题、摘要、正文中的关键词重要性依次递减;给定一系列文档,假定每篇文档有t个域,其对应权重系数分别是k1,…kt∈[0,1],它们满足:
令si为查询关键词和文档的第i个域的匹配得分,其中,1和0分别表示匹配上和没匹配上,定义域加权评分为:
所述创建倒排索引为:为关键词wi∈W创建索引其中,idj表示包含wi的文档fj的标识符,表示wi在fj中的相关度分数,表示wi在fj中的域加权得分;
所述加密倒排索引为:为了保护相关度分数与域加权得分的隐私性,需要进行加密操作;引入密钥为ek的非线性保序加密函数OPE(·),将加密为即使处于密文状态,云服务器仍然可以对其进行高效排序;为了保障关键词wi∈W的隐私安全,使用带密钥hk的哈希函数将其加密为h(wi);因此,经过加密后的索引为最后,数据拥有者将索引集合上传给云服务器;
步骤S3:数据拥有者使用密钥为sk的对称加密算法对文档集合F=(f1,f2,…,fm)进行加密,得到密文集合C=(c1,c2,…,cm)并上传给云服务器;
步骤S4:当授权用户搜索时,首先输入u个感兴趣的关键词Λ=(q1,q2,…,qu),基于WordNet创建语义拓展树,考虑关键词qi多词性多词义的情况,并且进行上义词、同义词、下义词的语义拓展;计算原单词qi和拓展词之间的语义相似度只选取最相关的前σ个拓展词,最后得到语义拓展集合Q=(q1,q2,…,qu1,…,ασ);将Q中的元素qi(1≤i≤u)或αj(1≤j≤σ)统一表示为βz(1≤z≤u+σ),即Q=(β12,…,βu+σ);使用密钥hk生成陷门TQ=(h(β1),h(β2),…,h(βu+σ));最后,将TQ上传到云服务器;
步骤S5:依次进行遍历倒排索引与双因子排序;
所述遍历倒排索引为:云服务器接收到陷门TQ后,依次将h(βz)∈TQ与倒排索引中的h(wi)进行匹配;若h(βz)=h(wi),则找到对应的索引
所述双因子排序为:首先根据查询关键词h(βz)对应的语义相似度Zz由大到小的顺序,对h(βz)匹配到的索引Ii进行排序;再根据每个索引Ii中的加密分数对文档标识符idj进行排序;最后,根据idj返回top-k篇密文C'=(c1,c2,…,ck);
步骤S6:授权用户使用数据拥有者分发的密钥sk,将top-k篇密文C'=(c1,c2,…,ck)解密,获得所需的明文。
进一步地,所述步骤S4具体包括以下步骤:
步骤S41:创建语义拓展树:给定关键词Λ=(q1,q2,…,qu),利用WordNet进行语义拓展;
步骤S42:进行语义相似度计算:
计算原单词和拓展词之间的语义相似度Z,只选取最相关的前σ个拓展词,得到语义拓展集合Q=(q1,q2,…,qu1,…,ασ);计算两个关键词之间的相似度分数:
其中,F(w)表示关键词w包含的特征集合,IC(S)表示特征集合S中包含的信息内容,其计算方法如下:
IC(S)=-Σf∈SlogP(f);
其中,P(f)是特征f的出现概率,通过计算含有特征f的关键词在语料库中的百分比,可以得到P(f);当两个关键词有完全相同的特征时,它们的相似度分数为最大值1,而两个关键词没有任何相同的特征时,它们的相似度分数为0。
进一步地,还包括一验证过程,数据拥有者首先构造出验证信息,连同索引上传给云服务器;接着,用户提交陷门进行搜索,云服务器返回搜索结果以及相应验证信息;最后,用户在本地对搜索结果进行验证;具体包括以下步骤:
步骤S11:验证信息的准备:数据拥有者在构建完安全索引后,为了能让搜索用户快速检测搜索集合Q=(β12,…,βu+σ)中的查询关键词βz(1≤z≤u+σ)是否存在于关键词集合W=(w1,w2,…,wn)中,将所有密文关键词h(wi)插入布隆过滤器BLW中,并使用密钥为mk的函数Mac(·)计算消息认证码另外,为了实现对安全索引的验证,需要对安全索引计算消息认证码为了实现对密文文档的验证,还需要结合文档标识符集合ID=(id1,id2,…,idm),对密文文档集C=(c1,c2,…,cm)中的每篇密文文档计算消息认证码,生成将BLW以及所有连同索引密文集合C=(c1,c2,…,cm)一起上传到云服务器;
步骤S12:搜索过程:用户搜索后云服务器返回的内容包括:
布隆过滤器以及
所有查询关键词h(βz)匹配到的安全索引以及
在匹配到的安全索引中,经过双因子排序后的idj所对应的所有密文文档集以及
步骤S13:验证过程:依次验证索引中是否包含查询关键词、验证返回的索引是否正确且完整、验证返回的密文是否正确且完整。
进一步地,所述验证索引中是否包含查询关键词具体为:用户使用密钥mk对返回的布隆过滤器计算则证明返回的没有被篡改;通过可以快速检测查询关键词βz∈Q(1≤z≤u+σ)是否存在于关键词集合W=(w1,w2,…,wn)中,如果h(βz)属于则βz∈W;令所有属于的h(βz)构成的集合为T′Q
进一步地,所述验证返回的索引是否正确且完整具体为:首先,用户使用密钥mk对返回的安全索引计算得到若所有则证明返回的没有被篡改;然后,用户使用T′Q中的查询关键词h(βz)在返回的安全索引中进行本地搜索;若每个查询关键词h(βz)都能在返回的中找到对应相等的h(wi),则说明云服务器返回的安全索引是完整的;最后,执行双因子排序算法,获得经过排序的文档标识符集FID=(id1,id2,…,idy)。
进一步地,所述验证返回的密文是否正确且完整具体为:用户获得了经过本地排序后的文档标识符集FID=(id1,id2,…,idy),也获得了经过云服务器排序后的密文文档集使用密钥mk依照顺序计算若x=y且所有则证明返回的密文文档是完整且正确的,并且同时证明了经过云服务器排序后的密文文档的次序也是正确的,即实现了排序可验证。
与现有技术相比,本发明有以下有益效果:
1、关键词语义模糊搜索:本发明对查询关键词进行语义拓展并计算语义相似度,然后选取最相关的语义拓展词进行查询,实现了语义模糊检索。
2、支持搜索结果的精确排序:本发明对文档不同域中的关键词赋予不同的权重,并将其作为评估文档相关性的指标之一。通过双因子排序算法,云服务器能够对搜索结果进行精确的排序并返回给搜索用户。
3、排序可验证:本发明通过引入布隆过滤器和消息认证码,能够对结果进行验证,特别是能够验证排序后的次序是否正确,实现了排序可验证功能。而这在很多可验证方案中没有实现。
附图说明
图1为本发明实施例中的系统框架图。
图2为本发明实施例中的语义拓展数示意图。
图3为本发明实施例中的验证方法流程示意图。
图4为本发明实施例中的符号索引数示意图。
具体实施方式
下面结合附图及实施例对本发明做进一步说明。
如图1所示,图1为本发明实施例的系统框架,包含三个实体:数据拥有者,授权用户和云服务器。本实施例的基本操作流程如下:
(1)KeyGen(λ):数据拥有者输入一个安全参数λ,生成文档加密密钥sk、单向哈希函数的密钥hk,保序加密函数的密钥ek。将密钥sk、hk发送给授权用户。
(2)Index(F,hk,ek):
a.抽取关键词:数据拥有者对文档集F=(f1,f2,…,fm)抽取关键词,得到关键词集合W=(w1,w2,…,wn)。
b.计算相关度分数:引入tf-idf权值计算方法计算关键词相关度分数S。
|f|表示文档f的长度,tft,f表示关键词t在某篇文档f中出现的频率;N表示所有文档数量,dft表示包含关键词t的文档数量。
c.计算域加权得分Y:在不同域中的关键词通常具有不同的重要性,标题、摘要、正文中的关键词重要性依次递减。给定一系列文档,假定每篇文档有t个域,其对应权重系数分别是k1,…kt∈[0,1],它们满足:
令si为查询关键词和文档的第i个域的匹配得分(1和0分别表示匹配上和没匹配上),于是,域加权评分方法可以定义为:
在本实施例中,假定每篇文档有3个域,标题为第一个域zone1、摘要为第二个域zone2,正文为第三个域zone3。其对应的权重系数分别是k1=0.5,k2=0.3,k3=0.2,它们满足公式(2)。再根据公式(3)计算出该查询关键词的域加权得分。
d.创建倒排索引:为关键词wi∈W创建索引其中,idj表示包含wi的文档fj的标识符,表示wi在fj中的相关度分数,表示wi在fj中的域加权得分。
e.加密倒排索引:为了保护相关度分数与域加权得分的隐私性,需要进行加密操作。本发明引入密钥为ek的非线性保序加密函数OPE(·),将加密为即使处于密文状态,云服务器仍然可以对其进行高效排序,减少了用户的计算开销和带宽资源浪费。另外,为了保障关键词wi∈W的隐私安全,需要使用带密钥hk的哈希函数将其加密为h(wi)。因此,经过加密后的索引为最后,数据拥有者将索引集合上传给云服务器。
(3)Encrypt(F,sk):数据拥有者使用密钥为sk的对称加密算法对文档集合F=(f1,f2,…,fm)进行加密,得到密文集合C=(c1,c2,…,cm)并上传给云服务器。
(4)Trapdoor(Λ,hk):当授权用户搜索时,首先输入u个感兴趣的关键词Λ=(q1,q2,…,qu)。接着如图2所示,基于WordNet创建语义拓展树,由于考虑了关键词qi多词性多词义的情况,并且进行了上义词、同义词、下义词的语义拓展,因此拓展出的关键词较为全面。但此时拓展词数量可能较多,将其全部用于查询则查询范围太大、查询结果不精确。因此使用基于信息内容的Lin的方法,计算原单词qi和拓展词之间的语义相似度只选取最相关的前σ个拓展词,最后得到语义拓展集合Q=(q1,q2,…,qu1,…,ασ)。为了方便下文的描述,将Q中的元素qi(1≤i≤u)或αj(1≤j≤σ)统一表示为βz(1≤z≤u+σ),即Q=(β12,…,βu+σ)。然后,使用密钥hk生成陷门TQ=(h(β1),h(β2),…,h(βu+σ))。最后,将TQ上传到云服务器。(更具体的语义拓展方法见下文)
(5)
a.遍历倒排索引:云服务器接收到陷门TQ后,依次将h(βz)∈TQ与倒排索引中的h(wi)进行匹配。若h(βz)=h(wi),则找到对应的索引
b.双因子排序:为了进行精确排序,本发明设计了双因子排序算法。首先,根据查询关键词h(βz)对应的语义相似度Zz由大到小的顺序,对h(βz)匹配到的索引Ii进行排序;再根据每个索引Ii中的加密分数对文档标识符idj进行排序;最后,根据idj返回top-k篇密文C'=(c1,c2,…,ck)。其流程可参考下表算法一。
(6)Decrypt(C',sk):授权用户使用数据拥有者分发的密钥sk,将top-k篇密文C'=(c1,c2,…,ck)解密,获得所需的明文。
较佳的,本实施例提供了关键词语义拓展方法,具体如下:
(1)创建语义拓展树:给定关键词Λ=(q1,q2,…,qu),利用WordNet进行语义拓展。在WordNet中,主要含有名词、动词、形容词、副词这四类实词,每个关键词可能包括这四种词性的一个或多个,而每个词性下又有多种词义。因此,语义拓展要考虑各种词性和词义的情况。例如:good在名称词性下的第一种意思为“好处”,因此可以拓展出单词advantage等。为了语义拓展更为全面,还要考虑它的第二种意思“美德”,并由此拓展出kindness等。good在形容词词性下则可以拓展出其他单词。另外,在语义研究中有一对概念是上义词(superordinate)和下义词(subordinate),上义词是对事物的概括性、抽象性说明,下义词是事物的具体表现形式,例如color和white、black、blue等互为上下义关系。在语义拓展中考虑上下义关系可以使拓展结果更合理、全面。因此,可以构造出一棵语义拓展树,其结构如图2。
(2)语义相似度计算:由于初步语义拓展的关键词可能较多,将其全部用于查询则查询范围太大、查询结果不够精确,因此计算原单词和拓展词之间的语义相似度Z,只选取最相关的前σ个拓展词,得到语义拓展集合Q=(q1,q2,…,qu1,…,ασ)。目前语义相似度分数的计算方法主要有两种,一种是基于语义距离的方法,另一种是基于信息内容的方法。本实施例使用基于信息内容的Lin方法计算两个关键
词之间的相似度分数:
其中,F(w)表示关键词w包含的特征集合,IC(S)表示特征集合S中包含的信息内容,其计算方法如下:
IC(S)=-Σf∈SlogP(f) (5)
其中,P(f)是特征f的出现概率,通过计算含有特征f的关键词在语料库中的百分比,可以得到P(f)。当两个关键词有完全相同的特征时,它们的相似度分数为最大值1,而两个关键词没有任何相同的特征时,它们的相似度分数为0。具体的语义拓展流程可以参考下表算法二,其中sim(·,·)可以换成其他语义相似度计算方法。
较佳的,本实施例还包括一验证方法,具体如下:
为了应对“半诚实且好奇”的云服务器威胁,用户希望确保搜索结果的精确性(返回的文档确实存在于数据集中并且符合用户的搜索请求)和完整性(没有遗漏符合搜索请求的文档),以及实现排序可验证功能。因此,数据拥有者首先构造出验证信息,连同索引上传给云服务器。接着,用户提交陷门进行搜索,云服务器返回搜索结果以及相应验证信息。最后,用户在本地对搜索结果进行验证。具体的验证方案如下:
(1)验证信息的准备:数据拥有者在构建完安全索引后,为了能让搜索用户快速检测搜索集合Q=(β12,…,βu+σ)中的查询关键词βz(1≤z≤u+σ)是否存在于关键词集合W=(w1,w2,…,wn)中,还要将所有密文关键词h(wi)插入布隆过滤器BLW中,并使用密钥为mk的函数Mac(·)计算消息认证码另外,为了实现对安全索引的验证,需要对安全索引计算消息认证码最后,为了实现对密文文档的验证,还需要结合文档标识符集合ID=(id1,id2,…,idm),对密文文档集C=(c1,c2,…,cm)中的每篇密文文档计算消息认证码,生成最后将BLW以及所有连同索引密文集合C=(c1,c2,…,cm)一起上传到云服务器。
(2)搜索过程:用户的搜索方法和基本流程中Query的步骤基本相同,但有一些改动。注意到在基本流程的Query中根据文档得分大小排序后,云服务器只返回了top-k篇密文文档给用户,这与验证搜索结果完整性的目的相矛盾。因此,在启动本发明的可验证功能后,需要取消只返回top-k篇密文文档的设定。为了配合之后的验证操作,此时云服务器应该返回的内容包括:
布隆过滤器以及
所有查询关键词h(βz)匹配到的安全索引以及
在匹配到的安全索引中,经过双因子排序后的idj所对应的所有密文文档集以及
注意到由于用户返回的布隆过滤器安全索引密文集都有待验证,因此在其指代符号之上添加波浪号,区别于数据拥有者上传到云服务器的相应原始数据。
(3)验证过程:
a.验证索引中是否包含查询关键词:首先,用户使用密钥mk对返回的布隆过滤器计算则证明返回的没有被篡改。然后,通过可以快速检测查询关键词βz∈Q(1≤z≤u+σ)是否存在于关键词集合W=(w1,w2,…,wn)中。如果h(βz)属于则βz∈W。令所有属于的h(βz)构成的集合为T′Q。该验证过程可以有效防止云服务器对用户的欺骗。例如,云服务器的原始安全索引中含有用户查询的关键词,但云服务器却欺骗用户没有找到相关文档并且不返回任何搜索结果,通过该验证就可以很容易判断搜索结果是假的。
b.验证返回的索引是否正确且完整:首先,用户使用密钥mk对返回的安全索引计算得到若所有则证明返回的没有被篡改。然后,用户使用T′Q中的查询关键词h(βz)在返回的安全索引中进行本地搜索。若每个查询关键词h(βz)都能在返回的中找到对应相等的h(wi),则说明云服务器返回的安全索引是完整的。最后,执行双因子排序算法,获得经过排序的文档标识符集FID=(id1,id2,…,idy)。
c.验证返回的密文是否正确且完整:
至此,用户获得了经过本地排序后的文档标识符集FID=(id1,id2,…,idy),也获得了经过云服务器排序后的密文文档集因此可以使用密钥mk依照顺序计算若x=y且所有则证明返回的密文文档是完整且正确的,并且同时证明了经过云服务器排序后的密文文档的次序也是正确的,即实现了排序可验证。
如果用户第一次进行查询并希望验证搜索结果,云服务器将返回所有用于验证的数据结构给用户。用户可以选择保存它们,避免之后搜索时的通信开销。如果用户使用了之前的关键词进行重复查询,云服务器就没有必要返回相应的验证结构,用户只需要将搜索结果和之前保存的验证结构比较,可以极大节省通信开销。
本实施例通过倒排索引、哈希函数、布隆过滤器和消息认证技术,创建相关验证信息。通过验证等结构,用户能够确保返回文档的精确性和完整性。因此,本实施例取得了完备的搜索结果可验证功能。另外,如果有必要对搜索结果的时效性进行验证,则在相应消息认证码中添加时间戳即可。
以上验证方案的流程可以参考图3。
特别的,在本实施例中,基于倒排索引的搜索开销为O(N),为了进一步提高搜索效率,在不改变其他操作的前提下,只需将原有的倒排索引更改为符号索引树结构,即可将搜索开销降低为O(1)。如图4,在构建索引树GW时,首先产生根节点其为空集。然后计算h(wi),若h(wi)为τ个比特长,可以将h(wi)分成τ/λ段,每段都用αρ进行表示,则h(wi)可以表示为α1α2…ατ/λ。接着,用αρ代表一个节点,相同的αρ则为同一个节点。当αρ为叶子节点时,在叶子节点中插入与其对应的消息认证码每一条从根节点到叶子节点的路径表示h(wi)。对每个关键词都进行上述操作,直至一棵完整的符号索引树构造完成。云服务器在查询阶段,能从匹配到的叶子节点中获取相应的索引Ii
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。

Claims (6)

1.一种排序可验证的语义模糊可搜索加密方法,其特征在于:包括数据拥有者,授权用户和云服务器,包括以下步骤:
步骤S1:数据拥有者输入一个安全参数λ,生成文档加密密钥sk、单向哈希函数的密钥hk,保序加密函数的密钥ek;将密钥sk、hk发送给授权用户;
步骤S2:依次进行抽取关键词、计算相关度分数、计算域加权得分、创建倒排索引、加密倒排索引;
所述抽取关键词为:数据拥有者对文档集F=(f1,f2,…,fm)抽取关键词,得到关键词集合W=(w1,w2,…,wn);
所述计算相关度分数为:引入tf-idf权值计算方法计算关键词相关度分数S:
S = 1 | f | × ( 1 + ln tf t , f ) × l n ( 1 + N df t ) ;
其中,|f|表示文档f的长度,tft,f表示关键词t在某篇文档f中出现的频率;N表示所有文档数量,dft表示包含关键词t的文档数量;
所述计算域加权得分为:在不同域中的关键词通常具有不同的重要性,标题、摘要、正文中的关键词重要性依次递减;给定一系列文档,假定每篇文档有t个域,其对应权重系数分别是k1,…kt∈[0,1],它们满足:
Σ i = 1 t k i = 1 ;
令si为查询关键词和文档的第i个域的匹配得分,其中,1和0分别表示匹配上和没匹配上,定义域加权评分为:
Y = Σ i = 1 t k i s i ;
所述创建倒排索引为:为关键词wi∈W创建索引其中,idj表示包含wi的文档fj的标识符,表示wi在fj中的相关度分数,表示wi在fj中的域加权得分;
所述加密倒排索引为:为了保护相关度分数与域加权得分的隐私性,需要进行加密操作;引入密钥为ek的非线性保序加密函数OPE(·),将加密为即使处于密文状态,云服务器仍然可以对其进行高效排序;为了保障关键词wi∈W的隐私安全,使用带密钥hk的哈希函数将其加密为h(wi);因此,经过加密后的索引为最后,数据拥有者将索引集合上传给云服务器;
步骤S3:数据拥有者使用密钥为sk的对称加密算法对文档集合F=(f1,f2,…,fm)进行加密,得到密文集合C=(c1,c2,…,cm)并上传给云服务器;
步骤S4:当授权用户搜索时,首先输入u个感兴趣的关键词Λ=(q1,q2,…,qu),基于WordNet创建语义拓展树,考虑关键词qi多词性多词义的情况,并且进行上义词、同义词、下义词的语义拓展;计算原单词qi和拓展词之间的语义相似度只选取最相关的前σ个拓展词,最后得到语义拓展集合Q=(q1,q2,…,qu1,…,ασ);将Q中的元素qi(1≤i≤u)或αj(1≤j≤σ)统一表示为βz(1≤z≤u+σ),即Q=(β12,…,βu+σ);使用密钥hk生成陷门TQ=(h(β1),h(β2),…,h(βu+σ));最后,将TQ上传到云服务器;
步骤S5:依次进行遍历倒排索引与双因子排序;
所述遍历倒排索引为:云服务器接收到陷门TQ后,依次将h(βz)∈TQ与倒排索引中的h(wi)进行匹配;若h(βz)=h(wi),则找到对应的索引
所述双因子排序为:首先根据查询关键词h(βz)对应的语义相似度Zz由大到小的顺序,对h(βz)匹配到的索引Ii进行排序;再根据每个索引Ii中的加密分数对文档标识符idj进行排序;最后,根据idj返回top-k篇密文C'=(c1,c2,…,ck);
步骤S6:授权用户使用数据拥有者分发的密钥sk,将top-k篇密文C'=(c1,c2,…,ck)解密,获得所需的明文。
2.根据权利要求1所述的一种排序可验证的语义模糊可搜索加密方法,其特征在于:所述步骤S4具体包括以下步骤:
步骤S41:创建语义拓展树:给定关键词Λ=(q1,q2,…,qu),利用WordNet进行语义拓展;
步骤S42:进行语义相似度计算:
计算原单词和拓展词之间的语义相似度Z,只选取最相关的前σ个拓展词,得到语义拓展集合Q=(q1,q2,…,qu1,…,ασ);计算两个关键词之间的相似度分数:
Z = s i m ( w 1 , w 2 ) = 2 × I C ( F ( w 1 ) ∩ F ( w 2 ) ) I C ( F ( w 1 ) ) + I C ( F ( w 2 ) ) ;
其中,F(w)表示关键词w包含的特征集合,IC(S)表示特征集合S中包含的信息内容,其计算方法如下:
IC(S)=-∑f∈SlogP(f);
其中,P(f)是特征f的出现概率,通过计算含有特征f的关键词在语料库中的百分比,可以得到P(f);当两个关键词有完全相同的特征时,它们的相似度分数为最大值1,而两个关键词没有任何相同的特征时,它们的相似度分数为0。
3.根据权利要求1所述的一种排序可验证的语义模糊可搜索加密方法,其特征在于:还包括一验证过程,数据拥有者首先构造出验证信息,连同索引上传给云服务器;接着,用户提交陷门进行搜索,云服务器返回搜索结果以及相应验证信息;最后,用户在本地对搜索结果进行验证;具体包括以下步骤:
步骤S11:验证信息的准备:数据拥有者在构建完安全索引后,为了能让搜索用户快速检测搜索集合Q=(β12,…,βu+σ)中的查询关键词βz(1≤z≤u+σ)是否存在于关键词集合W=(w1,w2,…,wn)中,将所有密文关键词h(wi)插入布隆过滤器BLW中,并使用密钥为mk的函数Mac(·)计算消息认证码另外,为了实现对安全索引的验证,需要对安全索引计算消息认证码为了实现对密文文档的验证,还需要结合文档标识符集合ID=(id1,id2,…,idm),对密文文档集C=(c1,c2,…,cm)中的每篇密文文档计算消息认证码,生成将BLW以及所有连同索引密文集合C=(c1,c2,…,cm)一起上传到云服务器;
步骤S12:搜索过程:用户搜索后云服务器返回的内容包括:
布隆过滤器以及
所有查询关键词h(βz)匹配到的安全索引以及
在匹配到的安全索引中,经过双因子排序后的idj所对应的所有密文文档集以及
步骤S13:验证过程:依次验证索引中是否包含查询关键词、验证返回的索引是否正确且完整、验证返回的密文是否正确且完整。
4.根据权利要求3所述的一种排序可验证的语义模糊可搜索加密方法,其特征在于:所述验证索引中是否包含查询关键词具体为:用户使用密钥mk对返回的布隆过滤器计算则证明返回的没有被篡改;通过可以快速检测查询关键词βz∈Q(1≤z≤u+σ)是否存在于关键词集合W=(w1,w2,…,wn)中,如果h(βz)属于则βz∈W;令所有属于的h(βz)构成的集合为T′Q
5.根据权利要求3所述的一种排序可验证的语义模糊可搜索加密方法,其特征在于:所述验证返回的索引是否正确且完整具体为:首先,用户使用密钥mk对返回的安全索引计算得到若所有则证明返回的没有被篡改;然后,用户使用T′Q中的查询关键词h(βz)在返回的安全索引中进行本地搜索;若每个查询关键词h(βz)都能在返回的中找到对应相等的h(wi),则说明云服务器返回的安全索引是完整的;最后,执行双因子排序算法,获得经过排序的文档标识符集FID=(id1,id2,…,idy)。
6.根据权利要求3所述的一种排序可验证的语义模糊可搜索加密方法,其特征在于:所述验证返回的密文是否正确且完整具体为:用户获得了经过本地排序后的文档标识符集FID=(id1,id2,…,idy),也获得了经过云服务器排序后的密文文档集使用密钥mk依照顺序计算若x=y且所有则证明返回的密文文档是完整且正确的,并且同时证明了经过云服务器排序后的密文文档的次序也是正确的,即实现了排序可验证。
CN201710181693.2A 2017-03-24 2017-03-24 一种排序可验证的语义模糊可搜索加密方法 Active CN106997384B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710181693.2A CN106997384B (zh) 2017-03-24 2017-03-24 一种排序可验证的语义模糊可搜索加密方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710181693.2A CN106997384B (zh) 2017-03-24 2017-03-24 一种排序可验证的语义模糊可搜索加密方法

Publications (2)

Publication Number Publication Date
CN106997384A true CN106997384A (zh) 2017-08-01
CN106997384B CN106997384B (zh) 2020-01-14

Family

ID=59431556

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710181693.2A Active CN106997384B (zh) 2017-03-24 2017-03-24 一种排序可验证的语义模糊可搜索加密方法

Country Status (1)

Country Link
CN (1) CN106997384B (zh)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108197499A (zh) * 2018-01-11 2018-06-22 暨南大学 一种可验证的密文数据范围查询方法
CN108334612A (zh) * 2018-02-07 2018-07-27 华南理工大学 一种针对密文域的形近汉字全文模糊检索方法
CN108388807A (zh) * 2018-02-28 2018-08-10 华南理工大学 一种支持偏好搜索和逻辑搜索的高效可验证的多关键字排序可搜索加密方法
CN108563732A (zh) * 2018-04-08 2018-09-21 浙江理工大学 一种云网络中面向加密云数据多关键词匹配排序搜索方法
CN108681775A (zh) * 2018-05-25 2018-10-19 厦门大学 通过WordNet嵌入进行测试和更新的树形网络方法
CN109063509A (zh) * 2018-08-07 2018-12-21 上海海事大学 一种基于关键词语义排序的可搜索加密方法
CN109471964A (zh) * 2018-10-23 2019-03-15 哈尔滨工程大学 一种基于同义词集的模糊多关键词可搜索加密方法
CN109492410A (zh) * 2018-10-09 2019-03-19 华南农业大学 数据可搜索加密和关键词搜索方法、系统及终端、设备
WO2019178792A1 (zh) * 2018-03-22 2019-09-26 深圳大学 一种支持访问控制的密文搜索方法及系统
CN110392038A (zh) * 2019-06-03 2019-10-29 西安电子科技大学 一种多用户场景下可验证的多密钥可搜索加密方法
CN110599147A (zh) * 2019-09-17 2019-12-20 福州大学 一种基于区块链的密文检索公平支付方法及系统
CN111259145A (zh) * 2020-01-16 2020-06-09 广西计算中心有限责任公司 基于情报数据的文本检索分类方法、系统及存储介质
CN111400624A (zh) * 2020-03-17 2020-07-10 广东电网有限责任公司 一种多功能排序系统
CN115391492A (zh) * 2022-10-26 2022-11-25 长沙先领医药科技有限公司 一种可搜索加密的方法、装置、电子设备及存储介质
CN116132112A (zh) * 2022-12-22 2023-05-16 广州大学 一种基于联盟链智能合约的关键字可加密搜索方法
CN116132112B (zh) * 2022-12-22 2024-05-03 广州大学 一种基于联盟链智能合约的关键字可加密搜索方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103955537A (zh) * 2014-05-16 2014-07-30 福州大学 一种语义模糊可搜索加密云盘设计方法及系统
US20160132952A1 (en) * 2004-08-31 2016-05-12 Semantic Search Technologies Llc A California Limited Liability Company Computer-aided extraction of semantics from keywords to confirm match of buyer offers to seller bids

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160132952A1 (en) * 2004-08-31 2016-05-12 Semantic Search Technologies Llc A California Limited Liability Company Computer-aided extraction of semantics from keywords to confirm match of buyer offers to seller bids
CN103955537A (zh) * 2014-05-16 2014-07-30 福州大学 一种语义模糊可搜索加密云盘设计方法及系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
DEKANG LIN: "An Information-Theoretic Definition of Similarity", 《PROCEEDINGS OF THE 15TH INTERNATIONAL CONFERENCE ON MACHINE LEARNING》 *
杨旸等: "加密云数据下基于Simhash的模糊排序搜索方案", 《计算机学报》 *
林柏钢等: "云计算中可验证的语义模糊可搜索加密方案", 《四川大学学报(工程科学版)》 *

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108197499A (zh) * 2018-01-11 2018-06-22 暨南大学 一种可验证的密文数据范围查询方法
CN108197499B (zh) * 2018-01-11 2020-08-07 暨南大学 一种可验证的密文数据范围查询方法
WO2019153813A1 (zh) * 2018-02-07 2019-08-15 华南理工大学 一种针对密文域的形近汉字全文模糊检索方法
CN108334612A (zh) * 2018-02-07 2018-07-27 华南理工大学 一种针对密文域的形近汉字全文模糊检索方法
CN108334612B (zh) * 2018-02-07 2022-03-29 华南理工大学 一种针对密文域的形近汉字全文模糊检索方法
US11537626B2 (en) 2018-02-07 2022-12-27 South China University Of Technology Full-text fuzzy search method for similar-form Chinese characters in ciphertext domain
CN108388807A (zh) * 2018-02-28 2018-08-10 华南理工大学 一种支持偏好搜索和逻辑搜索的高效可验证的多关键字排序可搜索加密方法
CN108388807B (zh) * 2018-02-28 2020-05-22 华南理工大学 一种支持偏好搜索和逻辑搜索的高效可验证的多关键字排序可搜索加密方法
WO2019178792A1 (zh) * 2018-03-22 2019-09-26 深圳大学 一种支持访问控制的密文搜索方法及系统
CN108563732A (zh) * 2018-04-08 2018-09-21 浙江理工大学 一种云网络中面向加密云数据多关键词匹配排序搜索方法
CN108681775A (zh) * 2018-05-25 2018-10-19 厦门大学 通过WordNet嵌入进行测试和更新的树形网络方法
CN108681775B (zh) * 2018-05-25 2021-04-13 厦门大学 通过WordNet嵌入进行测试和更新的树形网络方法
CN109063509A (zh) * 2018-08-07 2018-12-21 上海海事大学 一种基于关键词语义排序的可搜索加密方法
CN109492410A (zh) * 2018-10-09 2019-03-19 华南农业大学 数据可搜索加密和关键词搜索方法、系统及终端、设备
CN109492410B (zh) * 2018-10-09 2020-09-01 华南农业大学 数据可搜索加密和关键词搜索方法、系统及终端、设备
CN109471964A (zh) * 2018-10-23 2019-03-15 哈尔滨工程大学 一种基于同义词集的模糊多关键词可搜索加密方法
CN110392038B (zh) * 2019-06-03 2021-07-13 西安电子科技大学 一种多用户场景下可验证的多密钥可搜索加密方法
CN110392038A (zh) * 2019-06-03 2019-10-29 西安电子科技大学 一种多用户场景下可验证的多密钥可搜索加密方法
CN110599147A (zh) * 2019-09-17 2019-12-20 福州大学 一种基于区块链的密文检索公平支付方法及系统
CN111259145A (zh) * 2020-01-16 2020-06-09 广西计算中心有限责任公司 基于情报数据的文本检索分类方法、系统及存储介质
CN111400624A (zh) * 2020-03-17 2020-07-10 广东电网有限责任公司 一种多功能排序系统
CN115391492A (zh) * 2022-10-26 2022-11-25 长沙先领医药科技有限公司 一种可搜索加密的方法、装置、电子设备及存储介质
CN115391492B (zh) * 2022-10-26 2023-01-20 长沙先领医药科技有限公司 一种可搜索加密的方法、装置、电子设备及存储介质
CN116132112A (zh) * 2022-12-22 2023-05-16 广州大学 一种基于联盟链智能合约的关键字可加密搜索方法
CN116132112B (zh) * 2022-12-22 2024-05-03 广州大学 一种基于联盟链智能合约的关键字可加密搜索方法

Also Published As

Publication number Publication date
CN106997384B (zh) 2020-01-14

Similar Documents

Publication Publication Date Title
CN106997384A (zh) 一种排序可验证的语义模糊可搜索加密方法
CN106951411B (zh) 一种云计算中保护数据隐私的快速多关键词语义排序搜索方法
CN104765848B (zh) 混合云存储中支持结果高效排序的对称可搜索加密方法
Fu et al. Achieving effective cloud search services: multi-keyword ranked search over encrypted cloud data supporting synonym query
Liu et al. Verifiable Diversity Ranking Search Over Encrypted Outsourced Data.
Fu et al. Enabling semantic search based on conceptual graphs over encrypted outsourced data
CN102938767B (zh) 基于云数据外包系统的高效可验证的模糊关键词搜索方法
Fu et al. Enabling central keyword-based semantic extension search over encrypted outsourced data
CN107220343B (zh) 基于局部敏感哈希的中文多关键词模糊排序密文搜索方法
US11341128B2 (en) Poly-logarithmic range queries on encrypted data
Yu et al. Authentication with block-chain algorithm and text encryption protocol in calculation of social network
CN106776904B (zh) 一种不可信云计算环境中支持动态验证的模糊查询加密方法
CN109063509A (zh) 一种基于关键词语义排序的可搜索加密方法
CN107423632A (zh) 可定制的敏感数据脱敏方法和系统
CN112800088A (zh) 基于双向安全索引的数据库密文检索系统及方法
CN106484764A (zh) 基于人群画像技术的用户相似度计算方法
CN108171071B (zh) 一种面向云计算的多关键字可排序密文检索方法
CN106407822A (zh) 一种关键词、多关键词可搜索加密方法和系统
CN109493017A (zh) 基于区块链的可信外包存储方法
CN108363689A (zh) 面向混合云的隐私保护多关键词Top-k密文检索方法及系统
CN104036050A (zh) 一种密文云数据复杂查询方法
CN110134718A (zh) 一种基于属性加密的支持多关键字的模糊搜索方法
Kissel et al. Verifiable phrase search over encrypted data secure against a semi-honest-but-curious adversary
CN107908779A (zh) 云环境下基于mat树的动态多属性连接关键词的搜索方法
CN108549701A (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
GR01 Patent grant
GR01 Patent grant