CN110908959A - 一种支持多关键字和结果排序的动态可搜索加密方法 - Google Patents

一种支持多关键字和结果排序的动态可搜索加密方法 Download PDF

Info

Publication number
CN110908959A
CN110908959A CN201911044048.1A CN201911044048A CN110908959A CN 110908959 A CN110908959 A CN 110908959A CN 201911044048 A CN201911044048 A CN 201911044048A CN 110908959 A CN110908959 A CN 110908959A
Authority
CN
China
Prior art keywords
user
data
csp
vector
query
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
Application number
CN201911044048.1A
Other languages
English (en)
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.)
Xidian University
Original Assignee
Xidian 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 Xidian University filed Critical Xidian University
Priority to CN201911044048.1A priority Critical patent/CN110908959A/zh
Publication of CN110908959A publication Critical patent/CN110908959A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • G06F16/137Hash-based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9027Trees
    • 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/602Providing cryptographic facilities or services
    • 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
    • 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/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2107File encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

本发明属于无线通信网络安全技术领域,公开了一种支持多关键字和结果排序的动态可搜索加密方法,数据拥有者根据本地数据生成相应关键字集并且对每一个文件生成文件向量,生成加密索引树,再对数据集使用密钥K2加密并上传至云服务提供商CSP;数据拥有者对每个文件生成相应的增量哈希值,同时得到增量哈希值;数据拥有者使用根节点哈希值和当前时间戳生成认证器;用户通过向CSP发送查询关键字集得到返回的加密文件集;用户使用密钥K2对密文解密,并且使用密钥K3和私钥ssk对得到验证器进行解密,以此验证得到的搜索结果是否正确。本发明高效、安全、可动态更新,可用于快速地搜索得到结果,实现了云计算环境下的可搜索加密功能。

Description

一种支持多关键字和结果排序的动态可搜索加密方法
技术领域
本发明属于无线通信网络安全技术领域,尤其涉及一种支持多关键字和结果排序的动态可搜索加密方法。
背景技术
目前,最接近的现有技术:随着互联网的飞速发展,网络用户在平时生活中所拥有的数据越来越多,但由于用户本地存储空间有限,许多用户选择将数据存储在云服务器上,但是作为第三方的云服务提供商(CSP)并不能保证用户数据的安全,这便推动了云计算安全的发展。用户将自己的本地的数据加密后上传至CSP,当想要其中某件数据时需要将全部密文下载后才能够进行搜索,这虽然节省了用户本地存储空间,但是用户每次搜索的通信开销巨大,为了解决该问题,本发明需要一种可以在云端的加密数据集中直接搜索的加密方法。
可搜索加密(Searchable Encryption,SE)是将数据加密存储在云服务器之后,直接在云端进行关键字搜索查找相应数据的搜索方法。其中需要先将本地数据加密上传到云服务器,之后通过对搜索关键字生成对应的查询陷门,在云服务器中寻找满足条件的密文。因此,SE方法能在云端直接进行密文搜索,在得到搜索结果的同时,极大地节省了通信和计算开销,适合在云存储环境下用户多以及数据量大的特征。SE中的索引结构通过从明文中提取相应关键字之后构建,规定了搜索数据时的方式,是影响可搜索加密搜索效率的主要因素。
根据对数据加密方式的不同,SE被大体分为对称可搜索加密(SSE)和公钥可搜索加密(PKE)两种。其中,SSE在对数据进行加密时使用的是对称密钥,即加密数据密钥和解密数据密钥是相同的。PKE在对数据加密时使用的是一对公私钥对,对数据加密时使用公钥,解密时使用私钥,由于PKE在加解密时需要及进行双线性对的运算性质,所以加解密的速度会较SSE慢一些。因此,在用户多、数据量大的应用背景下,SSE被认为是较为适合的加密方法之一。
但是,现有的方案的搜索效率较低,同时在方案的安全性和搜索结果的验证方面也缺乏相应的解决方法。
综上所述,现有技术存在的问题是:
(1)目前大多数方案使用的是直接索引或倒排索引,这两种结构在更新时的时间复杂度为O(n2)或O(m·n),而怎么样将搜索效率进一步提高在目前来说是一个较为困难的问题。
(2)在CSP中,数据时常需要更新,其中有两个安全要求较为重要,分别为前向安全和后向安全。前向安全的要求为:旧的查询不能执行在新加入的数据上;后向安全的要求为:新的查询不能在已删除的数据上执行。虽然目前已有一些针对前后安全的解决方案,但是其开销较大,怎么样在较小的开销下实现前后向安全是一个较困难的问题。
(3)在实际情况中,CSP可能是恶意的,在用户查询后CSP有可能返回被篡改的数据或者返回不完整的数据,怎么样在得到搜索数据后及时验证结果的新鲜性和完整性是一个较为困难的问题。
解决上述技术问题的难度:(1)前后向安全的实现需要在每一份数据和查询上实现,这也是目前较小开销较为困难的一个重要原因。(2)结果验证需要将新鲜性和完整性同时考虑在其中,并且也不能产生较大的开销,这也是目前结果验证并不完善的一个重要原因。
解决上述技术问题的意义:使用可搜索加密等技术解决具有较为完善安全性的数据存储与搜索,提出一种高安全性、高效、多关键词的结果排序的可搜索加密方案具有重要意义。
发明内容
针对现有技术存在的问题,本发明提供了一种支持多关键字和结果排序的动态可搜索加密方法。
本发明是这样实现的,一种支持多关键字和结果排序的动态可搜索加密方法,所述支持多关键字和结果排序的动态可搜索加密方法包括以下步骤:
第一步,数据拥有者输入一个安全参数,得到相关密钥K1,K2,K3和公私钥对 ssk,spk,数据拥有者将所有密钥通过安全广播信道传输给所有的授权的用户;
第二步,数据拥有者从数据集中提取出相关的关键字,并且为数据集中的每一个文件生成一个向量,数据拥有者生成加密的树索引结构之后上传至CSP;
第三步,数据拥有者加密数据集并且将加密数据集上传至CSP;
第四步,用户通过自己查询的关键字集生成查询向量,并将查询向量发送至CSP;
第五步,CSP根据得到的查询向量和存储在云服务器中加密树索引计算得到相似分数,根据相似分数和设定的相似分数阈值,找到前k个数据集中的密文文件返回给用户,同时CSP还会向用户返回当前时间点下的验证器;
第六步,用户使用密钥K2解密返回的密文文件,同时使用密钥K3和签名私钥ssk对验证器解密后验证。
进一步,利用树索引结构提高密文搜索效率,将Merkle树和时间戳链相结合实现对返回结果新鲜度和完整性的验证;
当数据拥有者对数据集做出更改时,数据拥有者在本地对加密树索引、 Merkle树和验证器做出相应的修改并且上传至CSP,当用户再次搜索时CSP会基于更新后的树索引以及Merkle树向用户返回搜索结果和验证器。
进一步,所述第一步的数据拥有者输入安全系数得到三个对称密钥 K1,K2,K3,一对随机公私钥对ssk,spk,具体包括:
步骤一:数据拥有者输入安全参数k,系统通过伪随机函数 R1:{0,1}k×{0,1}*→K1;R2:{0,1}k×{0,1}*→K2;R3:{0,1}k×{0,1}*→K3;同时数据拥有者会选择两个大素数p和q,计算n=p·q,同时得到欧拉函数
Figure BDA0002253643460000031
数据拥有者选择随机数e,其中
Figure BDA0002253643460000032
Figure BDA0002253643460000033
拥有者通过关系式
Figure BDA0002253643460000034
最终得到私钥SK={d}和公钥PK={e,n};
步骤二:数据拥有者通过安全的广播信道将所有的密钥发送给获得授权的用户。
进一步,所述第二步的树索引构建具体包括:
步骤一:数据拥有者从明文文件集中提取出相应关键字集W;
步骤二:数据拥有者根据得到的关键字集为每一个文件生成一个向量Pj进行表示,另外对于每一个文件另外生成一个向量Vj,将文件对应的两个向量使用concatenation操作进行连接得到最终的文件向量Pj′=Pj||Vj,其中Pj为m-bit向量, Vj为(d+1)-bit向量,Pj′为(m+d+1)-bit向量。向量Vj的构造如下:
Figure BDA0002253643460000041
其中g>maxs,g*为g的任意整数倍;
步骤三:使用分割向量S对Pj′进行分割,其分割规则如下:
Figure BDA0002253643460000042
步骤四:数据拥有者生成两个矩阵M1和M2,最终得到加密树索引
Figure BDA0002253643460000043
进一步,第三步的文件集加密具体包括:数据拥有者利用对称密钥K2加密文件集:
Figure BDA0002253643460000044
得到密文文件集后上传至CSP。
进一步,所述第四步的用户生成查询向量,具体包括:
步骤一:用户首先生成查询关键字集
Figure BDA0002253643460000045
然后用户根据查询关键字集构建一个长度为m-bit向量
Figure BDA0002253643460000046
代表该查询,即m-bit相对应关键字词典中的m个关键字,其中
Figure BDA0002253643460000047
代表查询中不存在该关键词,
Figure BDA0002253643460000048
则表示查询中存在该关键字;
步骤二:使用向量V′与查询向量
Figure BDA0002253643460000049
进行concatenation操作,即
Figure BDA00022536434600000410
其中V′为一个(d+1)-bit向量,基于如下规则构造:
Figure BDA0002253643460000055
最终得到(m+d+1)-bit的向量;
步骤三:使用分割向量S对
Figure BDA0002253643460000051
进行分割,其中分割规则如下:
Figure BDA0002253643460000052
分割后得到两个子向量qa和qb
步骤四:用户生成两个随机矩阵M1和M2,最终通过如下的计算方法得到陷门
Figure BDA0002253643460000053
进一步,所述第五步的数据搜索具体包括:
步骤一:根据云服务器存储的索引I和用户发出的陷门TD,计算得到相似分数,其计算过程如下:
Figure BDA0002253643460000054
步骤二:CSP计算得到相似分数后,根据设定好的阈值,将数据集中相似分数大于阈值的文件按照由大到小的顺序进行排序,并且将最终的排序结果返回给用户;
步骤三:在CSP向用户返回搜索结果的同时,CSP还会向用户返回查询时间点下的验证器和更新时间点下的验证器,用户使用这个验证器对搜索结果进行验证,验证器的构造如下:
Figure BDA0002253643460000061
进一步,所述第六步的解密文件具体包括:
步骤一:用户使用密钥K3对得到的验证器进行加密得到相应的返回时间戳,验证数据的完整性和新鲜性;
步骤二:在数据完整性和新鲜性验证完成后,用户使用密钥K2对得到的密文文件进行解密,最终得到需要的明文文件。
本发明的另一目的在于提供一种实施所述支持多关键字和结果排序的动态可搜索加密方法的支持多关键字搜索和搜索结果排序的动态安全可搜索加密系统,所述支持多关键字搜索和搜索结果排序的动态安全可搜索加密系统包括:
数据拥有者:是系统数据的原始持有者,将本地存储的数据加密后上传至 CSP,其中在上传前会将数据中的关键词进行提取生成索引树I,同时在当下时间点生成验证器π,将索引树I和验证器π上传至CSP,最后再将相关密钥通过安全广播信道传播至整个用户组;
云服务提供商CSP:是存储数据和执行搜索操作的一方,根据用户生成的陷门TD向用户返回相应的查询结果;
用户:是根据需要生成查询陷门TD并发送给CSP的一方,在得到CSP返回的搜索结果C和验证器π,使用从数据拥有者处得到的相关密钥,验证结果的完整性和新鲜性,并最终解密密文集C得到明文文件集F。
本发明的另一目的在于提供一种应用所述支持多关键字和结果排序的动态可搜索加密方法的信息数据处理终端。
综上所述,本发明的优点及积极效果为:本发明使用可搜索加密(SE)中的索引树结构提高数据搜索时的效率。本发明在已构建的树索引的基础上构建Merkle 树,得到树索引根节点的增量哈希值,同时引入时间戳链,通过concatenation操作得到验证器,用于对返回结果进行验证,从而避免了恶意服务器向用户返回错误的搜索结果。
附图说明
图1是本发明实施例提供的支持多关键字和结果排序的动态可搜索加密方法流程图。
图2是本发明实施例提供的支持多关键字和结果排序的动态可搜索加密方法的实现流程图。
图3是本发明实施例提供的支持多关键字搜索和搜索结果排序的动态安全可搜索加密系统的结构示意图。
图4是本发明实施例提供的支持多关键字和结果排序的动态可搜索加密方法的原理示意图。
图5是本发明实施例提供的本发明使用另外两个方法与本方法对比示意图。
图6是本发明实施例提供的测试的字典中关键词数n=750示意图。
图7是本发明实施例提供的测试的总文档数N=1500示意图。
图8是本发明实施例提供的测试的查询陷门中关键词数m'=10示意图。
图9是本发明实施例提供的测试的字典的总关键词数n=500示意图。
图10是本发明实施例提供的字典中的关键词数m=500,查询陷门中关键词数m'=10,返回文档数k=30示意图。
图11是本发明实施例提供的文档总数N=1000,查询陷门中关键词数m'=10,返回文档数k=30示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
针对现有技术存在的问题,本发明提供了一种支持多关键字和结果排序的动态可搜索加密方法,下面结合附图对本发明作详细的描述。
如图1所示,本发明实施例提供的支持多关键字和结果排序的动态可搜索加密方法包括以下步骤:
S101:数据拥有者:数据拥有者初始化选择一个安全参数k,生成相应的所有密钥并通过安全广播信道发送给用户。
S102:数据拥有者:从明文集中提取出相关关键词集,并根据使用密钥K1、明文集和关键词集生成索引树,在生成索引树的基础上得到相应Merkle树,最终得到初始验证器。
S103:数据拥有者:将明文集F使用对称密钥K2加密得到密文集C。
S104:数据拥有者:将密文集C和初始验证器发送给CSP。
S105:用户:根据搜索需求构造搜索关键词集,生成查询陷门并发送至CSP。
S106:CSP:得到查询陷门后,通过树索引和陷门计算出相似分数,根据设定的分数与需要返回的文件数对结果进行排序并返回给用户,同时还会返回当前时间节点下的验证器和下个更新时间节点下的验证器。
S107:用户:使用对称密钥K3和公私钥对中的私钥ssk对得到的两个验证器分别解密,并比较其中的增量哈希值和时间戳是否相同。
S108:用户:在确认返回数据无误后,使用对称密钥K2解密密文集C得到明文集F。
下面结合附图对本发明的技术方案作进一步的描述。
如图2所示,本发明实施例提供的支持多关键字和结果排序的动态可搜索加密方法包括以下步骤:
步骤一:数据拥有者初始化。
数据拥有者输入安全参数k,系统通过伪随机函数R1:{0,1}k×{0,1}*→K1; R2:{0,1}k×{0,1}*→K2;R3:{0,1}k×{0,1}*→K3。同时数据拥有者会选择两个大素数p和q,计算n=p·q,同时得到欧拉函数
Figure BDA0002253643460000091
数据拥有者选择随机数e,其中
Figure BDA0002253643460000092
Figure BDA0002253643460000093
拥有者通过关系式
Figure BDA0002253643460000094
最终得到私钥SK={d}和公钥PK={e,n}。
然后,数据拥有者将生成的所有相关密钥通过安全的广播信道给授权用户。
步骤二:数据拥有者构造索引树、Merkle树,生成初始验证器。
数据拥有者根据得到的关键字集为每一个文件生成一个向量Pj进行表示,另外对于每一个文件另外生成一个向量Vj,将文件对应的两个向量使用concatenation操作进行连接得到最终的文件向量Pj′=Pj||Vj,其中Pj为 m-bit向量,Vj为(d+1)-bit向量,Pj′为(m+d+1)-bit向量。向量Vj的构造如下:
Figure BDA0002253643460000095
其中g>maxs,g*为g的任意整数倍。
然后,使用分割向量S对Pj′进行分割,其分割规则如下:
Figure BDA0002253643460000096
最终数据拥有者生成两个矩阵M1和M2,最终得到加密树索引
Figure BDA0002253643460000097
步骤三:用户执行查询操作。
用户首先生成查询关键字集
Figure BDA0002253643460000098
然后用户根据查询关键字集构建一个长度为m-bit向量
Figure BDA0002253643460000099
代表该查询,即m-bit相对应关键字词典中的m个关键字,其中
Figure BDA00022536434600000910
代表查询中不存在该关键词,
Figure BDA00022536434600000911
则表示查询中存在该关键字;使用向量V与查询向量
Figure BDA00022536434600000912
进行concatenation操作,即
Figure BDA0002253643460000101
其中V′为一个(d+1)-bit向量,基于如下规则构造:
Figure BDA0002253643460000102
最终得到(m+d+1)-bit的向量;
使用分割向量S对
Figure BDA0002253643460000103
进行分割,其中分割规则如下:
Figure BDA0002253643460000104
分割后得到两个子向量qa和qb
然后,用户生成两个随机矩阵M1和M2,最终通过如下的计算方法得到陷门
Figure BDA0002253643460000105
步骤四:CSP响应用户查询操作。
CSP得到索引树
Figure BDA0002253643460000106
和查询陷门
Figure BDA0002253643460000107
后,通过如下公式计算出相似分数:
Figure BDA0002253643460000108
步骤五:CSP将搜索结果和相关验证器返回给用户,用户对得到的两个验证器进行验证。首先,用户解密查询时间点的验证器,用户使用公私钥对的私钥解密
Figure BDA0002253643460000109
如下:
Figure BDA00022536434600001010
再使用对称密钥K3解密
Figure BDA00022536434600001011
如下:
Figure BDA00022536434600001012
然后,用户解密更新时间点的验证器,首先使用私钥解密πi,j如下:
Decspk(Sigsski,j))=αi,j
再使用对称密钥K3解密αi,j如下:
Figure BDA0002253643460000111
若其中
Figure BDA0002253643460000112
Figure BDA0002253643460000113
时,则用户得到的搜索数据集的完整新和新鲜性均没有问题,用户使用对称密钥K2解密密文集C即可。
但当验证结果出现
Figure BDA0002253643460000114
(新鲜性有问题)或
Figure BDA0002253643460000115
(完整性有问题)时,则表明CSP为恶意服务器,用户不再加密密文集C并通过安全广播信道和数据拥有者取得联系。
下面结合实验对本发明的技术效果作详细的描述。
为了验证本发明的可用性,以下将展示并说明支持多关键字和结果排序的动态可搜索加密方法在仿真数据集下的测试结果及相关统计图像。
在该方法仿真的数据集中,包含3026篇文档和1789个相关的关键词。首先展示并说明本方法搜索精度的仿真,衡量搜索的精度的数学公式为
Figure BDA0002253643460000116
其中k'为搜索到的与搜索关键词相关的真实文档数,k为返回的所有文档数,如说明书附图中图5所示,在图5中本发明使用另外两个方法与本方法进行对比,一共进行了10次对比仿真,其中三个方法每次限定的返回文档数为3000篇,查询中的关键词数从50到500进行变化,从图5中可以看出本方法保持着较高的搜索精度。
说明书附图中图6、图7为该方法中构建索引的仿真结果,在图6中,三个方法测试的字典中关键词数n=750保持不变,总文档数从500向3000篇变化,共进行6次测试。图7中,三个方法测试的总文档数N=1500保持不变,字典中的关键词数目从250向1500变化,共进行6次测试。从图6、图7的结果中可以看出,本方法在实现前后向安全的基础上,实现了高效的索引构建。
说明书附图中图8、图9为该方法中陷门生成的仿真结果,图8中三个方法测试的查询陷门中关键词数m'=10保持不变,字典中的关键词数从250到1500 个变化,共进行6次测试。图9中,三个方法测试的字典的总关键词数n=500,每次仿真时查询陷门中的关键词数从5向30变化,共进行6次测试。从图8、图9的仿真结果可以看出,本方法在实现前后向安全的基础上,实现了高效的陷门生成。
说明书附图中图10、图11为该方法搜索效率的仿真结果,图10中,字典中的关键词数m=500,查询陷门中关键词数m'=10,返回文档数k=30,以上三个参数保持不变,文档数目从500向3000篇变化。图11中,仿真中文档总数 N=1000,查询陷门中关键词数m'=10,返回文档数k=30,字典中的关键词数从 250向1500变化。从图10、图11可以看出,由于实现了前后向安全,本方法的搜索时间稍高于其他两个方法,但是在数据量巨大的云环境下,该差距可忽略不计。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种支持多关键字和结果排序的动态可搜索加密方法,其特征在于,所述支持多关键字和结果排序的动态可搜索加密方法包括以下步骤:
第一步,数据拥有者输入一个安全参数,得到相关密钥K1,K2,K3和公私钥对ssk,spk,数据拥有者将所有密钥通过安全广播信道传输给所有的授权的用户;
第二步,数据拥有者从数据集中提取出相关的关键字,并且为数据集中的每一个文件生成一个向量,数据拥有者生成加密的树索引结构之后上传至CSP;
第三步,数据拥有者加密数据集并且将加密数据集上传至CSP;
第四步,用户通过自己查询的关键字集生成查询向量,并将查询向量发送至CSP;
第五步,CSP根据得到的查询向量和存储在云服务器中加密树索引计算得到相似分数,根据相似分数和设定的相似分数阈值,找到前k个数据集中的密文文件返回给用户,同时CSP还会向用户返回当前时间点下的验证器;
第六步,用户使用密钥K2解密返回的密文文件,同时使用密钥K3和签名私钥ssk对验证器解密后验证。
2.如权利要求1所述的支持多关键字和结果排序的动态可搜索加密方法,其特征在于,利用树索引结构提高密文搜索效率,将Merkle树和时间戳链相结合实现对返回结果新鲜度和完整性的验证;
当数据拥有者对数据集做出更改时,数据拥有者在本地对加密树索引、Merkle树和验证器做出相应的修改并且上传至CSP,当用户再次搜索时CSP会基于更新后的树索引以及Merkle树向用户返回搜索结果和验证器。
3.如权利要求1所述的支持多关键字和结果排序的动态可搜索加密方法,其特征在于,所述第一步的数据拥有者输入安全系数得到三个对称密钥K1,K2,K3,一对随机公私钥对ssk,spk,具体包括:
步骤一:数据拥有者输入安全参数k,系统通过伪随机函数R1:{0,1}k×{0,1}*→K1;R2:{0,1}k×{0,1}*→K2;R3:{0,1}k×{0,1}*→K3;同时数据拥有者会选择两个大素数p和q,计算n=p·q,同时得到欧拉函数
Figure FDA0002253643450000021
数据拥有者选择随机数e,其中
Figure FDA0002253643450000022
Figure FDA0002253643450000023
拥有者通过关系式
Figure FDA0002253643450000024
最终得到私钥SK={d}和公钥PK={e,n};
步骤二:数据拥有者通过安全的广播信道将所有的密钥发送给获得授权的用户。
4.如权利要求1所述的支持多关键字和结果排序的动态可搜索加密方法,其特征在于,所述第二步的树索引构建具体包括:
步骤一:数据拥有者从明文文件集中提取出相应关键字集W;
步骤二:数据拥有者根据得到的关键字集为每一个文件生成一个向量Pj进行表示,另外对于每一个文件另外生成一个向量Vj,将文件对应的两个向量使用concatenation操作进行连接得到最终的文件向量P′j=Pj||Vj,其中Pj为m-bit向量,Vj为(d+1)-bit向量,P′j为(m+d+1)-bit向量,向量Vj的构造如下:
Figure FDA0002253643450000025
其中g>maxs,g*为g的任意整数倍;
步骤三:使用分割向量S对P′j进行分割,其分割规则如下:
Figure FDA0002253643450000026
步骤四:数据拥有者生成两个矩阵M1和M2,最终得到加密树索引
Figure FDA0002253643450000027
5.如权利要求1所述的支持多关键字和结果排序的动态可搜索加密方法,其特征在于,第三步的文件集加密具体包括:数据拥有者利用对称密钥K2加密文件集:
Figure FDA0002253643450000028
得到密文文件集后上传至CSP。
6.如权利要求1所述的支持多关键字和结果排序的动态可搜索加密方法,其特征在于,所述第四步的用户生成查询向量,具体包括:
步骤一:用户首先生成查询关键字集
Figure FDA0002253643450000031
然后用户根据查询关键字集构建一个长度为m-bit向量
Figure FDA0002253643450000032
代表该查询,即m-bit相对应关键字词典中的m个关键字,其中
Figure FDA0002253643450000033
代表查询中不存在该关键词,
Figure FDA0002253643450000034
则表示查询中存在该关键字;
步骤二:使用向量V′与查询向量
Figure FDA0002253643450000035
进行concatenation操作,即
Figure FDA0002253643450000036
其中V′为一个(d+1)-bit向量,基于如下规则构造:
Figure FDA0002253643450000037
最终得到(m+d+1)-bit的向量;
步骤三:使用分割向量S对
Figure FDA0002253643450000038
进行分割,其中分割规则如下:
Figure FDA0002253643450000039
分割后得到两个子向量qa和qb
步骤四:用户生成两个随机矩阵M1和M2,最终通过如下的计算方法得到陷门
Figure FDA00022536434500000310
7.如权利要求1所述的支持多关键字和结果排序的动态可搜索加密方法,其特征在于,所述第五步的数据搜索具体包括:
步骤一:根据云服务器存储的索引I和用户发出的陷门TD,计算得到相似分数,其计算过程如下:
Figure FDA00022536434500000311
步骤二:CSP计算得到相似分数后,根据设定好的阈值,将数据集中相似分数大于阈值的文件按照由大到小的顺序进行排序,并且将最终的排序结果返回给用户;
步骤三:在CSP向用户返回搜索结果的同时,CSP还会向用户返回查询时间点下的验证器和更新时间点下的验证器,用户使用这个验证器对搜索结果进行验证,验证器的构造如下:
Figure FDA0002253643450000041
8.如权利要求1所述的支持多关键字和结果排序的动态可搜索加密方法,其特征在于,所述第六步的解密文件具体包括:
步骤一:用户使用密钥K3对得到的验证器进行加密得到相应的返回时间戳,验证数据的完整性和新鲜性;
步骤二:在数据完整性和新鲜性验证完成后,用户使用密钥K2对得到的密文文件进行解密,最终得到需要的明文文件。
9.一种实施权利要求1~8任意一项所述支持多关键字和结果排序的动态可搜索加密方法的支持多关键字搜索和搜索结果排序的动态安全可搜索加密系统,其特征在于,所述支持多关键字搜索和搜索结果排序的动态安全可搜索加密系统包括:
数据拥有者:是系统数据的原始持有者,将本地存储的数据加密后上传至CSP,其中在上传前会将数据中的关键词进行提取生成索引树I,同时在当下时间点生成验证器π,将索引树I和验证器π上传至CSP,最后再将相关密钥通过安全广播信道传播至整个用户组;
云服务提供商CSP:是存储数据和执行搜索操作的一方,根据用户生成的陷门TD向用户返回相应的查询结果;
用户:是根据需要生成查询陷门TD并发送给CSP的一方,在得到CSP返回的搜索结果C和验证器π,使用从数据拥有者处得到的相关密钥,验证结果的完整性和新鲜性,并最终解密密文集C得到明文文件集F。
10.一种应用权利要求1~8任意一项所述支持多关键字和结果排序的动态可搜索加密方法的信息数据处理终端。
CN201911044048.1A 2019-10-30 2019-10-30 一种支持多关键字和结果排序的动态可搜索加密方法 Pending CN110908959A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911044048.1A CN110908959A (zh) 2019-10-30 2019-10-30 一种支持多关键字和结果排序的动态可搜索加密方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911044048.1A CN110908959A (zh) 2019-10-30 2019-10-30 一种支持多关键字和结果排序的动态可搜索加密方法

Publications (1)

Publication Number Publication Date
CN110908959A true CN110908959A (zh) 2020-03-24

Family

ID=69815029

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911044048.1A Pending CN110908959A (zh) 2019-10-30 2019-10-30 一种支持多关键字和结果排序的动态可搜索加密方法

Country Status (1)

Country Link
CN (1) CN110908959A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112037870A (zh) * 2020-07-20 2020-12-04 北京航空航天大学 支持数据分区的双服务器轻量化可搜索加密方法及系统
CN112446041A (zh) * 2020-11-30 2021-03-05 西安电子科技大学 一种基于安全索引的可验证多关键词密文查询方法及系统
CN112632598A (zh) * 2020-12-09 2021-04-09 西安电子科技大学 一种加密数据检索与共享方法、系统、介质、设备及应用
CN113076319A (zh) * 2021-04-13 2021-07-06 河北大学 基于离群值检测技术和位图索引的动态数据库填充方法
CN113420175A (zh) * 2021-06-15 2021-09-21 西安电子科技大学 一种可验证细粒度加密图像检索方法及系统
CN114003942A (zh) * 2021-12-30 2022-02-01 北京金睛云华科技有限公司 云环境中支持动态更新的加密布尔搜索方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106815350A (zh) * 2017-01-19 2017-06-09 安徽大学 一种云环境中动态的密文多关键词模糊搜索方法
CN108388807A (zh) * 2018-02-28 2018-08-10 华南理工大学 一种支持偏好搜索和逻辑搜索的高效可验证的多关键字排序可搜索加密方法
WO2019153813A1 (zh) * 2018-02-07 2019-08-15 华南理工大学 一种针对密文域的形近汉字全文模糊检索方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106815350A (zh) * 2017-01-19 2017-06-09 安徽大学 一种云环境中动态的密文多关键词模糊搜索方法
WO2019153813A1 (zh) * 2018-02-07 2019-08-15 华南理工大学 一种针对密文域的形近汉字全文模糊检索方法
CN108388807A (zh) * 2018-02-28 2018-08-10 华南理工大学 一种支持偏好搜索和逻辑搜索的高效可验证的多关键字排序可搜索加密方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ZHIHUA XIA等: "《a secure and dynamic multi-keyword ranked search scheme over encrypted cloud data》", 《IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS》 *
陈兰香等: "基于Merkle哈希树的可验证密文检索方案", 《信息网络安全》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112037870A (zh) * 2020-07-20 2020-12-04 北京航空航天大学 支持数据分区的双服务器轻量化可搜索加密方法及系统
CN112446041A (zh) * 2020-11-30 2021-03-05 西安电子科技大学 一种基于安全索引的可验证多关键词密文查询方法及系统
CN112632598A (zh) * 2020-12-09 2021-04-09 西安电子科技大学 一种加密数据检索与共享方法、系统、介质、设备及应用
CN112632598B (zh) * 2020-12-09 2022-10-18 西安电子科技大学 一种加密数据检索与共享方法、系统、介质、设备及应用
CN113076319A (zh) * 2021-04-13 2021-07-06 河北大学 基于离群值检测技术和位图索引的动态数据库填充方法
CN113420175A (zh) * 2021-06-15 2021-09-21 西安电子科技大学 一种可验证细粒度加密图像检索方法及系统
CN113420175B (zh) * 2021-06-15 2022-12-09 西安电子科技大学 一种可验证细粒度加密图像检索方法及系统
CN114003942A (zh) * 2021-12-30 2022-02-01 北京金睛云华科技有限公司 云环境中支持动态更新的加密布尔搜索方法及系统

Similar Documents

Publication Publication Date Title
CN110908959A (zh) 一种支持多关键字和结果排序的动态可搜索加密方法
US11537626B2 (en) Full-text fuzzy search method for similar-form Chinese characters in ciphertext domain
Chen et al. An efficient privacy-preserving ranked keyword search method
US9977918B2 (en) Method and system for verifiable searchable symmetric encryption
CN106815350B (zh) 一种云环境中动态的密文多关键词模糊搜索方法
CN110334526B (zh) 一种支持验证的前向安全可搜索加密存储系统及方法
CN110138561B (zh) 基于cp-abe自动校正的高效密文检索方法、云计算服务系统
CN112800088A (zh) 基于双向安全索引的数据库密文检索系统及方法
CN110392038B (zh) 一种多用户场景下可验证的多密钥可搜索加密方法
CN109088719B (zh) 外包数据库多关键词可验证密文搜索方法、数据处理系统
CN114048448A (zh) 基于区块链的动态可搜索加密方法及装置
CN113067702B (zh) 支持密文等值测试功能的身份基加密方法
CN113254955A (zh) 前向安全的连接关键词对称可搜索加密方法、系统及应用
Xu et al. ROSE: Robust searchable encryption with forward and backward security
CN115438230A (zh) 安全高效的动态加密云数据多维范围查询方法
CN111159352B (zh) 一种支持多关键词加权检索和结果排序且可验证的加解密方法
CN115314295A (zh) 一种基于区块链的可搜索加密技术方法
CN110851848B (zh) 对称可搜索加密的隐私保护方法
CN115757676A (zh) 模糊可搜索加密方法、装置及电子设备
Poh et al. Searchable symmetric encryption over multiple servers
US20240015014A1 (en) Dynamic and verifiable searchable encryption method and system based on updatable encryption and blockchain
Pang et al. Privacy-preserving noisy keyword search in cloud computing
CN115048432A (zh) 基于布隆过滤器的模糊关键词公共审计方法
Yang et al. Effective error-tolerant keyword search for secure cloud computing
CN113626485B (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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20200324

WD01 Invention patent application deemed withdrawn after publication