CN112800445A - 一种用于密文数据的前后向安全和可验证的布尔查询方法 - Google Patents

一种用于密文数据的前后向安全和可验证的布尔查询方法 Download PDF

Info

Publication number
CN112800445A
CN112800445A CN202110083023.3A CN202110083023A CN112800445A CN 112800445 A CN112800445 A CN 112800445A CN 202110083023 A CN202110083023 A CN 202110083023A CN 112800445 A CN112800445 A CN 112800445A
Authority
CN
China
Prior art keywords
document
key
mapping table
keyword
msk
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
CN202110083023.3A
Other languages
English (en)
Other versions
CN112800445B (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.)
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 CN202110083023.3A priority Critical patent/CN112800445B/zh
Publication of CN112800445A publication Critical patent/CN112800445A/zh
Application granted granted Critical
Publication of CN112800445B publication Critical patent/CN112800445B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/9014Indexing; Data structures therefor; Storage structures hash tables
    • 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/903Querying
    • G06F16/90335Query processing
    • 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

Landscapes

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

Abstract

本发明公开了一种用于密文数据的前后向安全和可验证的布尔查询方法,主要涉及到数据拥有者,数据使用者和云服务器三个实体,主要包括数据拥有者先对系统进行初始化,生成必要的密钥和数据结构,并提取用于共享和外包的数据集的关键字集合,生成相应的密文数据和密文索引后发送给云服务器;云服务器接收并保存密文数据和密文索引,并提供检索和功能的功能;数据拥有者和数据使用者可以发起对云服务器中存储的密文数据的检索和更新请求,并对返回的结果进行完整性验证。本发明实现了对外包数据的高效、准确的检索并提供了对检索结果的完整性验证,同时还保证了方案的前后向安全。

Description

一种用于密文数据的前后向安全和可验证的布尔查询方法
技术领域
本发明属于信息安全技术领域,具体涉及一种针对于密文数据的前后向隐私的保护和返回结果的可验证性的布尔查询方法。
背景技术
云计算作为一种新的计算范例,极大地便利了人们的生活且降低了本地计算资源。同时随着大数据和物联网的快速发展,用户本地的计算能力和数据存储空间限制了对海量数据的共享和利用,因此人们选择将本地数据外包到云服务器上,以获得更加高效、专业的数据服务。但是,将数据暴露给云服务器而导致敏感信息的泄漏,成为人们主要担心的问题。
可搜索加密技术的出现在一定程度上保护了外包数据的安全,但是也给数据的使用带来了新的挑战。由于数据在外包给云服务器之前会在用户端本地进行加密处理,因此如何高效准确地在密文数据上进行检索是可搜索加密领域关注的重点之一。同时,不可信的服务器可能出于节省计算资源或传输带宽等经济因素的考虑,会部分地执行密文检索方案或返回部分的检索结果。此外,动态密文检索方案(即允许用户对外包的密文数据进行添加或删除的操作)的出现也带来了新的安全隐患,如前向隐私和后向隐私的泄漏。前向隐私是指利用之前的检索陷门可以检索到之后添加的文档;后向隐私是指对于一个添加后随即又被删除的文档,服务器能够根据泄漏的信息推断出被删除的文档的标识符。因此,需要一个高效、准确、可验证且前后向安全的一个密文检索方案。
华中科技大学和深圳华中科技大学研究院在申请的“高效且具有前后向安全性的可搜索对称加密方法及系统”(申请号:CN201910646540.X,公开号: CN110457915A)公开了一种高效且前后向安全的可搜索对称加密方法及系统,该方法的具体步骤包括:(1)在检索客户端初始化整个系统并生成系统运行所需要的信息;(2)检索客户端对数据进行加密后发送给检索服务器保存;(3)检索服务器保存检索客服端发送的密文;(4)检索客户端根据需求生成相应的检索请求;(5)检索服务器根据接收到的检索请求,在密文数据上进行相应的操作并返回结果;(6)检索客户端根据接收到的检索结果,对其进行解密并更新本地状态。该方法实现了对云端密文数据的单关键字检索,并且保证了在密文数据更新过程中的前向安全和后向安全。该系统存在的不足之处是:认为检索服务器是完全可信的,会诚实地执行用户的请求并返回所有检索结果,同时存储的密文数据不会被篡改;只能对单个关键字进行检索,无法执行更加准确的检索表达式并造成传输带宽的浪费,返回多个不相关的检索结果。
发明内容
为解决现有技术中存在的上述缺陷,本发明的目的在于提供一种在不可信的云服务器下实现可验证的布尔查询方法,同时保证密文数据在更新过程中的前向安全和后向安全。通过高效的查询结构和密码学技术,确保返回结果的完整性和系统的安全性,提供高效准确的查询结果并节省传输带宽。
本发明是通过下述技术方案来实现的。
一种用于密文数据的前后向安全和可验证的布尔查询系统,包括数据拥有者,数据使用者和云服务器,其中:
所述数据拥有者拥有一个可用于共享的文档集合,数据拥有者负责对文档集合提取关键字集合,并对提取到的关键字集合进行预处理操作,得到对应的标准正交向量组;对系统进行初始化,生成密钥、映射表、私有状态表等信息,并加密文档,生成对应的索引结构,将存储密文和索引结构的映射表发送给云服务进行存储。
所述数据使用者根据所述数据拥有者发送的密钥,映射表和私有状态表等私有信息,可以生成对密文数据的检索或更新请求,并根据接收到的检索结果进行解密和完整性验证。
所述云服务器接收并存储来自所述数据拥有者发送的映射表,并根据接收到的请求,执行相应的检索或更新操作,同时返回相应的结果。
本发明的一种用于密文数据的前后向安全和可验证的布尔查询方法,包括如下步骤:
S01,数据拥有者根据拥有的文档集提取关键字集合;
S02,初始化系统,生成密钥、多个映射表和私有状态表;
S03,对关键字集合进行预处理操作,将关键字集合转化成标准正交向量组,每一个关键字对应一个标准正交向量;
S04,对文档进行加密后存放到密文映射表,生成对应索引结构并存放到索引映射表,然后发送给云服务器;
S05,云服务器接收并保存数据拥有者发送的映射表;
S06,数据使用者利用数据拥有者共享的密钥,映射表和私有状态表等私有信息,生成相应的检索请求,并发送给云服务器;
S07,云服务器根据接收到的检索请求,在索引映射表,密文映射表和删除映射表上执行检索操作,并返回检索结果;
S08,数据使用者接收到云服务器的检索结果,对结果进行解密并进行完整性验证;
S09,数据使用者根据需求生成对应的添加或删除的请求,并发送给云服务器;
S10,云服务器根据接收到的更新请求,执行相应的添加或删除操作。
作为优选,所述S01包括以下步骤:
11)利用文本关键字提取算法,提取对应文档集的关键字集合,再引入一个通用关键字;
12)为每一个文档生成对应的文档标识符,同时提取对应于该文档的关键字集合,满足
Figure RE-GDA0003018926650000041
13)保存数据集和关键字集合。
作为优选,所述S02包括以下步骤:
21)随机生成二进制系统安全参数;
22)根据系统安全参数生成密钥集合;
23)生成索引结构映射表、密文映射表、删除映射表、主密钥映射表、穿刺密钥映射表和最大穿刺次数映射表;
24)生成私有添加状态表和私有删除状态表。
作为优选,所述S03包括以下步骤:
31)数据拥有者将关键字集合中的每一个关键字根据伪随机函数转化为长度l的向量,转化后的关键字集合是一个由m+1个长度为l的向量组成的集合;
32)将向量组成的集合转化为一组线性无关向量组;
33)将线性无关向量组进行施密特正交化处理,并将得到的正交矩阵进行标准化后得到标准正交矩阵。
作为优选,所述S04包括以下步骤:
41)对每一对文档-关键字对,利用伪随机函数和标签密钥生成对应的标签;
42)取出对应关键字在主密钥映射表、穿刺密钥映射表和最大穿刺次数映射表中的值;
43)若在主密钥映射表中对应的值为空,则转到步骤44);否则转到步骤 46);
44)给关键字指定一个初值,表示允许在该关键字对应的密钥上穿刺的最大次数并将对应的值存放到最大穿刺次数映射表中;
45)利用对称可穿刺加密算法生成关键字对应的穿刺加密密钥,并将得到的穿刺加密密钥存放到主密钥映射表和穿刺密钥映射中;
46)利用对称可穿刺加密算法,根据关键字对应的穿刺加密密钥和文档-关键字对对应的标签,对文档标识符进行加密,得到对应的密文;
47)从私有添加状态表中获取对应于关键字ω的记录,若对应的记录为空,则转到步骤48),否则转到步骤410);
48)将空字符串赋给初始存储地址,并给计数器c赋初值0;
49)初始化生成一个空集合对应的哈希值;
410)生成对应于文档-关键字对的第c+1个存储地址以及多集合哈希函数的随机数;
411)利用排序为2的哈希函数对第c+1个存储地址进行哈希,得到隐藏存储地址;
412)将当前第c+1个存储地址,加密后的文档标识符和前一条含有相同关键字ω的文档-关键字对的第c个存储地址通过排序为1的哈希函数和异或操作组合在一起,得到存储记录;
413)生成文档标识符对应文档的标签,将文档含有的所有关键字对应的标准正交向量相加,得到该文档的标签ξ;
414)对文档进行安全的哈希摘要,并使用对称加密算法加密文档,将计数器c自增1;
415)将结果和密文文档
Figure RE-GDA0003018926650000061
分别存放到索引结构映射表和密文映射表;
416)将文档标识符ind通过多集合哈希函数添加到多集合哈希值中;
417)将记录存放到私有添加状态中;
418)若关键字为首次出现,则给删除计数器和删除存储地址赋初值,并将删除计数器和删除存储地址存放到私有删除状态表中;否则不执行该步骤;
419)若还有待添加的文档-关键字对,则返回步骤401),否则转到步骤420);
420)将索引结构映射表、密文映射表和删除映射表发送给云服务器;
421)将密钥集合,私有添加状态表和私有删除状态表以及主密钥映射表、穿刺密钥映射表和最大穿刺次数映射表共享给受信任用户。
作为优选,所述S06包括以下步骤:
61)数据使用者生成自己感兴趣的关键字布尔表达式,并将布尔表达式转化为对应的析取范式;
62)对于析取范式
Figure RE-GDA0003018926650000062
中的第i个合取范式
Figure RE-GDA0003018926650000063
都将其转化为一个对应的向量;
63)将析取范式
Figure RE-GDA0003018926650000064
中的每一个合取表达式对应的向量合并;
64)初始化搜索列表、验证列表和未穿刺密钥列表;
65)对于析取范式中的第i个合取范式,具体执行如下步骤:
651)根据私有添加状态表,找出查询语句中希望包含的关键字集合中含有最少文档数的关键字;
652)取出对应关键字在私有添加状态表和穿刺密钥映射表中的记录;
653)更新最少文档数的关键字允许的穿刺次数,并重新生成对应的密钥,然后更新最少文档数的关键字在主密钥映射表和穿刺密钥映射表中的密钥;
654)生成最少文档数的关键字对应的多集合哈希函数的随机数;
655)从私有删除状态表中取出最少文档数的关键字对应于删除映射表中的删除存储地址;
656)将对应的记录添加到列表中;
657)将删除计数器a自增1,并生成新的STd←F(k2,ω||a)后更新私有删除状态表;
66)将查询请求(Lst,Lmsk,k3,k4)发送给云服务器。
作为优选,所述S07包括以下步骤:
71)对于搜索列表Lst中的每一条记录,若搜索列表中记录都已经被遍历完或搜索列表为空,则转到步骤73),否则云服务器执行如下操作:
711)初始化结果列表Lr和多集合哈希值;
712)取出删除映射表中对应于删除存储地址上的穿刺密钥列表后删除该列表;
713)若第c个存储地址不是空字符串,则继续执行,否则转到步骤72);
714)取出索引结构映射表中对应于隐藏存储地址上的记录;
715)对第c个存储记录进行解密得到上一条文档记录的存储地址和当前查询关键字的第c个密文文档标识符;
716)取出未穿刺密钥列表中对应的密钥和穿刺密钥列表,并对第c个密文文档标识符进行解密,解密成功则执行步骤717),并将当前明文文档标识符存回索引结构映射表;否则执行c←c-1并返回步骤713);
717)若查询向量与当前查询的文档标签的内积Q′i·ξc=1,获取密文映射表中对应当前查询的密文,并将记录添加到结果列表中,同时将对应的明文文档标识符添加到多集合哈希中,执行c←c-1后返回步骤713);
72)将记录添加到最终结果列表中,并转到步骤71);
73)将最终结果列表
Figure RE-GDA0003018926650000081
返回给数据使用者。
作为优选,所述S08包括以下步骤:
81)遍历最终结果列表
Figure RE-GDA0003018926650000082
中的每一条记录和验证列表中对应的记录,执行如下步骤,直到遍历完所有记录,转到步骤82);
811)比较最终结果列表中的多集合哈希值和本地保存的验证列表中的多集合哈希值,若两个值相等则继续执行下面的步骤,否则输出验证结果“False”,表明检索结果不满足完备性;
812)对于结果列表中的每一条记录,首先判断
Figure RE-GDA0003018926650000083
是否成立,若不成立,则输出验证结果“False”,表明此文档不满足查询条件;若等式成立,则继续下面步骤;
813)然后对当前查询的第c个密文进行解密,并对解密后的当前查询的第c个文档进行安全哈希摘要,并比较用户根据接收到的文档计算出的哈希值 hash与服务器返回的文档的哈希值hashc是否相等,若不等,则输出验证结果“False”,表明当前文档被篡改过;否则返回步骤812),直到遍历完结果列表后转到步骤81);
82)输出验证结果“True”,表明检索结果的完备性、正确性和可靠性通过了验证。
作为优选,所述S09包括以下步骤:
91)对于输入的文档-关键字对,利用伪随机函数和标签密钥生成对应的标签;
92)若要添加文档-关键字对,则转到步骤903);若要删除文档-关键字对,则转到步骤916);
93)若主密钥映射表含有关键字ω对应的记录,则取出穿刺加密密钥;否则给关键字赋最大穿刺次数并存放到最大穿刺次数映射表中,然后生成对应的穿刺加密密钥,并将得到的穿刺加密密钥存放到主密钥映射表和穿刺密钥映射表中;
94)利用对称可穿刺加密算法,根据穿刺加密密钥和文档-关键字对对应的标签,对文档标识符进行加密,得到对应的密文;
95)从私有添加状态表中获取对应于关键字的记录,若对应的记录为空,则转到步骤906),否则转到步骤908);
96)将空字符串赋给初始存储地址,并给c赋初值0;
97)k4作为多集合哈希函数的密钥,初始化生成一个空集合对应的多集合哈希值;
98)生成对应于文档-关键字对的第c+1个存储地址;
99)利用排序为2的哈希函数对第c+1个存储地址进行哈希,得到隐藏存储地址;
910)将第c+1个存储地址,加密后的文档标识符和前一条含有相同关键字ω的文档-关键字对的第c个存储地址通过排序为1的哈希函数和异或操作组合在一起,得到存储记录;
911)生成文档标识符对应文档的标签,将文档含有的所有关键字对应的标准正交向量相加,得到该文档的标签;
912)对文档进行安全的哈希摘要,D表示文档标识符对应的文档,并使用对称加密算法加密文档,计数器c自增1;
913)将文档标识符通过多集合哈希函数添加到多集合哈希值中;
914)将记录存放到私有添加状态表中;
915)发送添加操作请求
Figure RE-GDA0003018926650000101
给云服务器;
916)取出穿刺密钥映射表中对应关键字的待穿刺密钥;
917)对待穿刺密钥进行穿刺,并使用新的待穿刺密钥对穿刺密钥映射表 PSK中对应关键字的待穿刺密钥进行更新;
918)获取其余被穿刺的密钥在删除映射表中的存储位置;
919)计算删除文档后的多集合哈希值,更新私有添加状态表;
920)发送删除操作请求(op=del,STd,pskt)给云服务器。
作为优选,所述步骤S10包括以下步骤:
101)云服务器接收到更新请求,若操作符op=add,其中add表示添加操作,转到步骤102);若操作符op=del,其中del表示删除操作,转到步骤103);
102)在索引结构映射表中添加文档信息,并把密文添加到密文映射表中,操作结束;
103)将被穿刺的密钥添加到删除映射表中,操作结束。
本发明由于采取以上技术方案,其具有以下有益效果:
在密文检索上,本发明通过将文档的关键字集合通过标准正交化操作,将关键字唯一对应于标准正交向量组中的标准正交向量,并通过将文档中含有的所有关键字对应的标准正交向量相加作为文档的标签,然后利用向量的内积运算来判断文档是否满足布尔表达式;同时,用倒排列表作为索引结构,使得本发明实现了高效、准确的检索方案,极大地降低了网络传输带宽。
针对不可信的云服务器,本发明利用多集合哈希函数,将含有同一个关键字的所有文档标识符进行哈希运算得到一个哈希值,并且利用安全哈希函数对文档的内容进行哈希运算,同时对返回的结果再做一次内积操作,使得本发明实现了对检索结果的完备性、正确性和可靠性的验证。
在前向隐私和后向隐私的保护上,本发明将数据的存储地址通过哈希函数转换后,隐藏了在添加过程中的存储地址和之前检索陷门之间的关联性;同时通过利用对称可穿刺加密函数对文档的标识符进行加密,使得本发明实现了对检索方案前向隐私和后向隐私的保护,保证了方案的前向安全和后向安全。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的不当限定,在附图中:
图1为本发明中方案的系统框架图。
具体实施方式
下面将结合附图以及具体实施例来详细说明本发明,在此本发明的示意性实施例以及说明用来解释本发明,但并不作为对本发明的限定。
参照图1所示,为本发明方案的系统框架图,包括数据拥有者,数据使用者和云服务器三个实体。数据拥有者拥有一个可用于共享的文档集合,数据拥有者负责对文档集合提取关键字集合,并对提取到的关键字集合进行预处理操作,得到对应的标准正交向量组;对系统进行初始化,生成密钥、映射表、私有状态表等信息,并加密文档,生成对应的索引结构,将存储密文和索引结构的映射表发送给云服务进行存储。
数据使用者根据所述数据拥有者发送的密钥,映射表和私有状态表等私有信息,可以生成对密文数据的检索或更新请求,并根据接收到的检索结果进行解密和完整性验证。
云服务器接收并存储来自所述数据拥有者发送的映射表,并根据接收到的请求,执行相应的检索或更新操作,同时返回相应的结果。
本发明提供用于密文数据的前后向安全和可验证的布尔查询方法,包括:
S01,数据拥有者根据拥有的文档集提取关键字集合。
具体包括:
11)数据拥有者利用文本关键字提取算法,提取对应文档集D= {D1,…,Dd}的关键字集合W={ω1,…,ωm},此外,再引入一个通用关键字ωm+1,假设每一个文档都含有该关键字;
文本关键字提取算法可以使用任何可用于提取文本关键字的算法,例如 TF-IDF算法,TextRank算法等;所述通用关键字是指任意一个不属于集合W 的单词,并假设每个文档都含有该关键字,引入通用关键字的目的是为了避免在生成布尔查询表达式向量时,分母出现0的情况。
12)数据拥有者为每一个文档Di生成对应的文档标识符indi,同时提取对应于该文档的关键字集合wi,满足
Figure RE-GDA0003018926650000131
13)数据拥有者保存数据集
Figure RE-GDA0003018926650000132
和关键字集合W。
S02,数据拥有者初始化系统,生成密钥,多个映射表和私有状态表。
具体包括:
21)数据拥有者随机生成二进制系统安全参数λ,λ的长度由数据拥有者自行决定;
二进制系统安全参数λ被用来生成系统所需要的密钥,λ的长度越长,系统的安全性越高,同时也会导致较长的加解密时间。
22)数据拥有者根据系统安全参数λ生成密钥集合K= (k1,k2,k3,k4,k5,k6,k,Ktag);密钥集合中的密钥由系统随机生成,例如生成密钥 k1
Figure RE-GDA0003018926650000133
23)数据拥有者生成索引结构映射表Ts、密文映射表Tf、删除映射表Tdel、主密钥映射表MSK、穿刺密钥映射表PSK和最大穿刺次数映射表DEL;
所有映射表初始化后得到的都是空的映射表,检索不存在的key值时,返回的都是空值。
24)数据拥有者生成私有添加状态表Σadd和私有删除状态表Σdel
所有私有添加状态表Σadd和私有删除状态表Σdel中的内容是以(key,value) 对的形式存放,初始化后得到的是空的状态表,检索不存在的key值时,返回的value都是空值。
S03,数据拥有者对关键字集合进行预处理操作,将关键字集合转化成标准正交向量组,每一个关键字对应一个标准正交向量。
具体包括:
31)数据拥有者将关键字集合中的每一个关键字根据伪随机函数π:{0,1}λ× {0,1}*→{0,1}l转化为长度为l的向量,k6作为该伪随机函数的密钥,转化后的关键字集合是一个由m+1个长度为l的向量组成的集合W′= {π(ω1),…,π(ωm),π(ωm+1)};
伪随机函数π:{0,1}λ×{0,1}*→{0,1}l可以选择任意哈希函数(如:MDA5, SHA等)或可以实现这种转化的函数,{0,1}λ表示长度为λ的密钥,{0,1}*表示任意长度的字符串。
32)将向量组成的集合W′={π(ω1),…,π(ωm),π(ωm+1)}转化为一组线性无关向量组S={v1,…,vm,vm+1};
标准基向量与关键字对应的向量连接的目的是生成一个线性无关向量组,满足后续进行施密特正交化的条件。
33)将线性无关向量组S={v1,…,vm,vm+1}进行施密特正交化处理,并将得到的正交矩阵进行标准化后得到标准正交矩阵
Figure RE-GDA0003018926650000141
其中关键字集合W中的每一个关键字ωi唯一对应于标准正交矩阵
Figure RE-GDA0003018926650000144
中的标准正交向量oi,通用关键字ωm+1对应于标准正交矩阵
Figure RE-GDA0003018926650000142
中的标准正交向量J;
标准正交矩阵
Figure RE-GDA0003018926650000143
可以选择保存在本地,在下次进行更新或查询时直接获取对应关键字的标准正交向量,也可以选择不保存以节省空间,在每一次需要用到标准正交矩阵时重新由关键字集合W生成。是否保存标准正交矩阵可以由用户根据自己的存储空间和计算能力自行决定。
S04,数据拥有者对文档进行加密后存放到密文映射表,生成对应的索引结构并存放到索引映射表,然后发送给云服务器。
具体包括:
41)对每一对文档-关键字对(ind,ω),利用伪随机函数F:{0,1}λ×{0,1}*→ {0,1}t和标签密钥Ktag生成对应的标签tag←F(Ktag,ω||ind),其中|| 表示字符串连接符号;
伪随机函数F:{0,1}λ×{0,1}*→{0,1}t可以选择任意哈希函数(如:MDA5, SHA等)或可以实现这种转化的函数,{0,1}λ表示长度为λ的密钥,{0,1}*表示任意长度的字符串,符号||表示将两个字符串连接起来。
42)取出对应关键字在主密钥映射表MSK,穿刺密钥映射表PSK和最大穿刺次数映射表DEL中的值;
映射表中如果不含有对应关键字的记录,则返回空值,用⊥表示。
43)若在主密钥映射表MSK中对应的值为空,则转到步骤44);否则转到步骤406);
44)给关键字ω赋初值d,表示允许在该关键字ω对应的密钥上穿刺的最大次数为d,并将对应的值d存放到最大穿刺次数映射表DEL中,即DEL[ω]←d;
45)利用对称可穿刺加密算法生成关键字ω对应的穿刺加密密钥msk, msk←SPE.KeyGen(1λ,d),其中SPE表示对称可穿刺加密算法,KeyGen() 表示对称可穿刺加密算法中的密钥生成函数,并将得到的穿刺加密密钥存放到主密钥映射表MSK和穿刺密钥映射表PSK中,即MSK[ω]←msk,PSK[ω]← msk。
在对添加文档的标识符进行加密时,使用的是所述主密钥映射表中的密钥;而对密文文档标识符进行解密时,使用的是穿刺密钥映射表中的密钥和存放在云服务器上的密钥,以此来保证被删除的文档标识符无法被解密,从而保护方案的后向安全。
46)利用对称可穿刺加密算法,根据关键字ω对应的穿刺加密密钥msk和文档-关键字对(ind,ω)对应的标签tag,对文档标识符ind进行加密,得到对应的密文cind←SPE.Enc(msk,ind,tag),其中Enc()表示对称可穿刺加密算法中的加密函数;
47)从私有添加状态表Σadd中获取对应于关键字ω的记录
Figure RE-GDA0003018926650000161
Figure RE-GDA0003018926650000162
若对应的记录
Figure RE-GDA0003018926650000163
为空,则转到步骤48),否则转到步骤410) 其中STc表示含有关键字ω的第c个文档对应的存储地址,c表示计数器,记录当前含有关键字ω的文档个数,
Figure RE-GDA0003018926650000164
表示多集合哈希值;
48)将空字符串赋给初始存储地址ST0,ST0←⊥,并给计数器c赋初值0;在检索过程中,依靠初始存储地址ST0来指示当前关键字列表已经检索完毕;计数器c用来表示当前含有该关键字的文档数目,用来提高方案的检索效率;
49)k4作为多集合哈希函数的密钥,初始化生成一个空集合对应的哈希值,
Figure RE-GDA0003018926650000165
其中rω是对应于关键字ω的随机数,rω←F(k1,ω),k1为用于生成rω的密钥,
Figure RE-GDA0003018926650000166
为多集合哈希函数。
多集合哈希函数可以是MSet-Mu-Hash,MSet-Add-Hash,MSet-VAdd- Hash,MSet-XOR-Hash中的任意一种,也可以选择其他能够实现同样功能的函数,由用户自行决定。
410)生成对应于文档-关键字对(ind,ω)的第c+1个存储地址STc+1← F(k2,ω||ind)以及多集合哈希函数的随机数rω←F(k1,ω);
411)利用排序为2的哈希函数H2:{0,1}λ×{0,1}*→{0,1}t对第c+1个存储地址STc+1进行哈希,得到哈希后的隐藏存储地址u←H2(k,STc+1),其中k 是排序为2的哈希函数H2的密钥;
将第c+1个存储地址STc+1进行哈希,保证了数据在更新时使用的存储地址和之前检索时使用的检索地址之间没有关联性,保护了方案在更新过程中前向隐私的泄漏。
412)将当前第c+1个存储地址STc+1,加密后的文档标识符cind和前一条含有相同关键字ω的文档-关键字对的第c个存储地址STc通过排序为1的哈希函数H1:{0,1}λ×{0,1}*→{0,1}t+p和异或操作组合在一起,得到存储记录
Figure RE-GDA0003018926650000171
Figure RE-GDA0003018926650000172
其中p表示密文文档标识符cind的长度,k3是排序为1的哈希函数H1的密钥;
413)生成文档标识符对应文档的标签
Figure RE-GDA0003018926650000173
其中ωs表示文档中含有的关键字,w表示对应文档中含有的关键字集合,os是ωs对应的标准正交向量,将文档含有的所有关键字对应的标准正交向量相加,得到该文档的标签ξ;
414)对文档进行安全的哈希摘要hash←SHA(D),D表示文档标识符ind对应的文档,SHA()表示安全的哈希摘要函数,并使用对称加密算法加密文档
Figure RE-GDA0003018926650000174
Figure RE-GDA0003018926650000175
计数器c自增1,即c←c+1;
安全哈希摘要算法指SHA-256,SHA-384等安全杂凑算法中的任意一种,也可以是任意满足安全杂凑条件的算法;所述对称加密算法可以是AES,DES 中的任意一种,也可以是其他语义安全的对称加密算法,或者选择安全性更高的非对称加密算法。
415)将结果(e,ξ,hash,tag)和密文文档
Figure RE-GDA0003018926650000176
分别存放到索引结构映射表Ts和密文映射表Tf,即Ts[u]←(e,ξ,hash,tag)和
Figure RE-GDA0003018926650000181
416)将文档标识符ind通过多集合哈希函数添加到多集合哈希值中,
Figure RE-GDA0003018926650000182
Figure RE-GDA0003018926650000183
多集合哈希值
Figure RE-GDA0003018926650000184
中累积了所有当前含有关键字ω的文档标识符ind,多集合哈希函数的特性就是将多个元素一起哈希成一个值,且可以进行动态的添加和删除元素,而不需要重新计算所有元素。
417)将记录
Figure RE-GDA0003018926650000185
存放到私有添加状态表Σadd中,
Figure RE-GDA0003018926650000186
418)若关键字ω为首次出现,则给删除计数器a和删除存储地址STd赋初值a←0,STd←F(k2,ω||a),并将a和STd存放到私有删除状态表Σdel中,Σdel[ω]=(STd,a);否则不执行该步骤;
419)若还有待添加的文档-关键字对,则返回步骤401),否则转到步骤420);
420)将索引结构映射表Ts,密文映射表Tf和删除映射表Tdel发送给云服务器;
删除映射表Tdel在执行完当前所有步骤后,其内部不存有任何值,因此在检索时从删除映射表Tdel中取值时,若没有对应的记录,则返回一个空值。
421)将密钥集合K,私有添加状态表Σadd和私有删除状态表Σdel以及主密钥映射表MSK,穿刺密钥映射表PSK和最大穿刺次数映射表DEL共享给受信任用户。
S05,云服务器接收并保存数据拥有者发送的映射表。
S06中,数据使用者利用数据拥有者共享的密钥,映射表和私有状态表等私有信息,生成相应的检索请求,并发送给云服务器。
具体包括:
61)数据使用者生成自己感兴趣的关键字布尔表达式,并将布尔表达式转化为对应的析取范式
Figure RE-GDA0003018926650000191
其中
Figure RE-GDA0003018926650000192
Figure RE-GDA0003018926650000193
其中
Figure RE-GDA0003018926650000194
表示第i个合取范式,Ii表示第i个合取范式中含有的所有关键字集合,j表示关键字对应的下标,⊿表示对表达式中的内容取非操作或不操作,
Figure RE-GDA0003018926650000195
表示不做任何操作,
Figure RE-GDA0003018926650000196
表示取非操作。
关键字布尔表达式可以是任意形式,如(ω3∨ω4)∧ω1∧ω2,可以将其转化为析取范式(ω1∧ω2∧ω3)∨(ω1∧ω2∧ω4)。
62)对于析取范式
Figure RE-GDA0003018926650000197
中的第i个合取范式
Figure RE-GDA0003018926650000198
都将其转化为一个对应的向量
Figure RE-GDA0003018926650000199
具体步骤如下:
621)将第i个合取范式
Figure RE-GDA00030189266500001910
中的关键字分为两部分{Pi,Ni},其中Pi表示
Figure RE-GDA00030189266500001911
中⊿为
Figure RE-GDA00030189266500001912
的所有关键字,Ni表示
Figure RE-GDA00030189266500001913
中⊿为
Figure RE-GDA00030189266500001914
的所有关键字;
622)随机选取|Pi|+1个正整数
Figure RE-GDA00030189266500001915
bi,使得ai,j,
Figure RE-GDA00030189266500001916
随机选取|Ni|个负整数
Figure RE-GDA00030189266500001917
使得
Figure RE-GDA00030189266500001918
其中|Pi|,|Ni|分别表示集合Pi和Ni的势;
随机选取的整数ai,j,bi和ci,j在每次生成查询向量的时候都不同,进一步地提升了方案在查询时的安全性,即使相同的查询布尔表达式,每一次生成的向量都会以极大的概率不相同。
623)分别找出集合Pi和Ni中关键字ωj对应的标准正交向量oj,计算得到第i个合取范式合取表达式
Figure RE-GDA00030189266500001919
对应的向量
Figure RE-GDA00030189266500001920
Figure RE-GDA00030189266500001921
63)将析取范式
Figure RE-GDA00030189266500001922
中的每一个合取表达式对应的向量
Figure RE-GDA00030189266500001923
合并为
Figure RE-GDA00030189266500001924
Figure RE-GDA00030189266500001925
64)初始化搜索列表Lst,验证列表Lms和未穿刺密钥列表Lmsk
65)对于析取范式
Figure RE-GDA0003018926650000201
中的第i个合取范式
Figure RE-GDA0003018926650000202
具体执行如下步骤:
651)根据私有添加状态表Σadd,找出关键字集合Pi中含有最少文档数的关键字ωpi
找出含有最少文档数的关键字ωpi,可以保证云服务器在检索含有该关键字的文档列表时,查询最少的文档数,提升方案的检索效率。
652)取出对应关键字在私有添加状态表Σadd和穿刺密钥映射表PSK中的记录,
Figure RE-GDA0003018926650000203
msk′←PSK[ωi],其中msk′表示在穿刺密钥映射表 PSK中当前对应于ωpi的待穿刺密钥;
653)更新最少文档数的关键字ωpi允许的穿刺次数DEL[ω]←d,并重新生成对应的穿刺加密密钥msk←SPE.KeyGen(1λ,d),然后更新最少文档数的关键字ωpi在主密钥映射表MSK和穿刺密钥映射表PSK中的密钥,MSK[ωpi ]←msk,PSK[ωpi]←msk;
每一次查询结束后,都需要初始化查询关键字对应的对称可穿刺加密算法,因为每一次查询请求,都会将所有穿刺密钥发送给云服务器,云服务器可以使用这些密钥对未穿刺过的密文文档标识符进行解密。如果查询结束后不更新密钥,那么下一次添加的密文文档标识符,云服务器可以直接利用之前的密钥解锁,而泄漏方案的后向隐私。所以每一次查询后需要更新对称可穿刺加密算法对应于当前查询关键字的密钥,但是不需要对之前的文档标识符进行重加密,因为服务器已经通过解密知道了文档标识符。
654)生成最少文档数的关键字ωpi对应的多集合哈希函数的随机数rω← F(k1pi);
655)从私有删除状态表Σdel中取出最少文档数的关键字ωpi对应于删除映射表Tdel中的删除存储地址STd
656)将对应的记录添加到列表中,
Figure RE-GDA0003018926650000211
和Lmsk←msk′;
657)将删除计数器a自增1,a←a+1,并生成新的STd←F(k2pi||a) 后更新私有删除状态表Σdel[ω]=(STd,a);
66)将(Lst,Lmsk,k3,k4)发送给云服务器。
S07,云服务器根据接收到的检索请求,在索引映射表,密文映射表和删除映射表上执行检索操作,并返回检索结果。
71)对于搜索列表Lst中的每一条记录
Figure RE-GDA0003018926650000213
若搜索列表中记录都已经被遍历完或搜索列表为空,则转到步骤73),否则云服务器执行如下操作:
711)初始化结果列表Lr和多集合哈希值
Figure RE-GDA0003018926650000212
712)取出删除映射表Tdel中对应于删除存储地址STd上的记录穿刺密钥列表Lpsk后删除该列表;
对于删除映射表Tdel[STd]上的值(可能为空),可以选择删除,也可以留着。因为在检索完毕后,该值不会再被使用;
713)若第c个存储地址STc不是空字符串,即STc≠⊥,则继续执行,否则转到步骤72);
714)取出索引结构映射表Ts中对应于隐藏存储地址u←H2(k,STc)上的记录(ecc,hashc,tagc),其中ec表示对应于当前查询关键字的第c个存储记录,ξc表示对应于当前查询关键字的第c个文档标签,hashc表示对应于当前查询关键字的第c个哈希摘要,tagc表示对应于当前查询关键字的第c个标签;
715)对第c个存储记录ec进行解密得到上一条文档记录的存储地址STc-1和当前查询关键字的第c个密文文档标识符cindc
Figure RE-GDA0003018926650000221
Figure RE-GDA0003018926650000222
716)取出未穿刺密钥列表Lmsk中对应的密钥和穿刺密钥列表Lpsk,并对第c个密文文档标识符cindc进行解密,解密成功则执行步骤717),并将当前明文文档标识符indc存回索引结构映射表Ts;否则执行c←c-1并返回步骤 713);
将明文文档标识符indc存回索引结构映射表Ts,是因为在检索结束后,对应与原密文cindc的密钥已经被弃用,同时云服务器也已经知道了其明文,没有再重加密的必要性。
717)若
Figure RE-GDA0003018926650000223
获取密文映射表Tf中对应当前查询的密文
Figure RE-GDA0003018926650000224
并将记录
Figure RE-GDA0003018926650000225
添加到结果列表Lr中,同时将对应的明文文档标识符indc添加到多集合哈希中
Figure RE-GDA0003018926650000226
执行c←c-1后返回步骤713);
若被查询的文档Dc中满足查询语句第i个合取范式
Figure RE-GDA0003018926650000227
Figure RE-GDA0003018926650000228
与ξc的内积为1。这是因为
Figure RE-GDA0003018926650000229
易知,若文档 Dc中含有所有查询语句
Figure RE-GDA00030189266500002210
中的肯定关键字,且不包含任何一个否定关键字,则
Figure RE-GDA00030189266500002211
成立,否则等式不成立。当然,也可以计算
Figure RE-GDA00030189266500002212
来判断结果向量中是否含有1,若含有则文档Dc满足查询语句。
72)将记录
Figure RE-GDA00030189266500002213
添加到最终结果列表
Figure RE-GDA00030189266500002214
中,并转到步骤71);
73)将最终结果列表
Figure RE-GDA00030189266500002215
返回给数据使用者。
S08,数据使用者接收到云服务器的检索结果,对结果进行解密并进行完整性验证。
81)遍历最终结果列表
Figure RE-GDA00030189266500002216
中的每一条记录
Figure RE-GDA00030189266500002217
和验证列表Lms中对应的记录
Figure RE-GDA0003018926650000231
执行如下步骤,直到遍历完所有记录,转到步骤82);
取出的记录
Figure RE-GDA0003018926650000232
Figure RE-GDA0003018926650000233
是相对应的,即每次从所述最终列表
Figure RE-GDA0003018926650000234
中取出的记录
Figure RE-GDA0003018926650000235
总是对应于从所述验证列表Lms中取出的记录
Figure RE-GDA0003018926650000236
结果列表Lr中的结果是含有关键字的所有文档中满足查询条件的文档。
811)比较最终结果列表中的多集合哈希值
Figure RE-GDA0003018926650000237
和本地保存的验证列表Lms中的多集合哈希值
Figure RE-GDA0003018926650000238
若两个值相等则继续执行下面的步骤,否则输出验证结果“False”,表明检索结果不满足完备性;
若最终结果列表中的多集合哈希值
Figure RE-GDA0003018926650000239
和本地保存的验证列表Lms中的多集合哈希值
Figure RE-GDA00030189266500002310
不相等,说明云服务器没有检索完所有含有对应关键字的文档,用户可以选择跳过下面的步骤,转到步骤81),对后面的记录进行验证;也可以选择终止验证,认为云服务器没有诚实地执行检索协议。
812)对于结果列表Lr中的每一条记录
Figure RE-GDA00030189266500002311
首先判断
Figure RE-GDA00030189266500002312
是否成立,若不成立,则输出验证结果“False”,表明此文档不满足查询条件;若等式成立,则继续下面步骤;
Figure RE-GDA00030189266500002313
说明云服务器返回了不满足查询条件的文档,用户可以选择跳过步骤813),回到步骤812)验证下一个文档并标记该文档不满足条件;也可以选择终止验证,认为云服务器没有诚实地执行检索协议。
813)然后对当前查询的第c个密文
Figure RE-GDA00030189266500002314
进行解密
Figure RE-GDA00030189266500002315
其中 Dec()为与之前加密算法对应的解密算法,并对解密后的当前查询的第c个文档 Dc进行安全哈希摘要hash←SHA(Dc),并比较hash与hashc是否相等,若不等,则输出验证结果“False”,表明当前文档被篡改过;否则返回步骤812),直到遍历完结果列表Lr后转到步骤81);
若返回的文档哈希hashc与重新计算的文档哈希hash不相等,则终止验证,说明外包的密文数据库遭到了恶意的篡改。
82)输出验证结果“True”,表明检索结果的完备性、正确性和可靠性通过了验证。
S09,数据使用者根据需求生成对应的添加或删除的请求,并发送给云服务器。
91)对于输入的文档-关键字对(ind,ω),利用伪随机函数F:{0,1}λ× {0,1}*→{0,1}t和标签密钥Ktag生成对应的标签tag←F(Ktag,ω||ind);
92)若要添加文档-关键字对(ind,ω),则转到步骤903);若要删除文档-关键字对(ind,ω),则转到步骤916);
93)若主密钥映射表MSK中含有关键字ω对应的记录,则取出穿刺加密密钥msk;否则给关键字赋最大穿刺次数d并存放到最大穿刺次数映射表DEL映射表中DEL[ω]←d,然后生成对应的穿刺加密密钥msk← SPE.KeyGen(1λ,d),并将得到的穿刺加密密钥存放到主密钥映射表和穿刺密钥映射表中,即MSK[ω]←msk,PSK[ω]←msk;
94)利用对称可穿刺加密算法,根据穿刺加密密钥msk和文档-关键字对 (ind,ω)对应的标签tag,对文档标识符ind进行加密,得到对应的密文cind← SPE.Enc(msk,ind,tag);
95)从私有添加状态表Σadd中获取对应于关键字ω的记录
Figure RE-GDA0003018926650000241
Figure RE-GDA0003018926650000242
若对应的记录
Figure RE-GDA0003018926650000243
为空,则转到步骤906),否则转到步骤98);
96)将空字符串赋给初始存储地址ST0,ST0←⊥,并给c赋初值0;
97)k4作为多集合哈希函数的密钥,初始化生成一个空集合对应的多集合哈希值,
Figure RE-GDA0003018926650000251
其中rω是对应于关键字ω的随机数,rω←F(k1,ω);
98)生成对应于文档-关键字对(ind,ω)的第c+1个存储地址STc+1← F(k2,ω||ind)以及rω←F(k1,ω);
99)利用排序为2的哈希函数H2:{0,1}λ×{0,1}*→{0,1}t对第c+1个存储地址STc+1进行哈希,得到隐藏存储地址u←H2(k,STc+1);
910)将第c+1个存储地址STc+1,加密后的文档标识符cind和前一条含有相同关键字ω的文档-关键字对的第c个存储地址STc通过排序为1的哈希函数 H1:{0,1}λ×{0,1}*→{0,1}t+p和异或操作组合在一起,得到存储记录
Figure RE-GDA0003018926650000252
Figure RE-GDA0003018926650000253
k3是排序为1的哈希函数H1的密钥,其中p表示密文文档标识符cind的长度;
911)生成文档标识符对应文档的标签
Figure RE-GDA0003018926650000254
其中ωs表示文档中含有的关键字,w表示对应文档中含有的关键字集合,os是ωs对应的标准正交向量,将文档含有的所有关键字对应标准正交向量相加,得到该文档的标签ξ;
912)对文档进行安全的哈希摘要hash←SHA(D),D表示文档标识符ind对应的文档,SHA()表示安全的哈希摘要函数,并使用对称加密算法加密文档
Figure RE-GDA0003018926650000255
Figure RE-GDA0003018926650000256
计数器c自增1,即c←c+1;
913)将文档标识符ind通过多集合哈希函数添加到多集合哈希值中,
Figure RE-GDA0003018926650000257
Figure RE-GDA0003018926650000258
914)将记录
Figure RE-GDA0003018926650000259
存放到私有添加状态表Σadd中,
Figure RE-GDA00030189266500002510
915)发送
Figure RE-GDA00030189266500002511
给云服务器,其中op表示操作符,add表示添加操作;
上述添加文档-关键字对(ind,ω)的步骤与S04中生成密文映射表和索引结构映射表的步骤非常相似。
916)取出穿刺密钥映射表PSk中对应关键字ω的待穿刺密钥msk′;
917)对待穿刺密钥msk′进行穿刺(msk′,pskt)←SPE.Pun(msk′,tag),其中Pun()表示对称可穿刺加密算法中的穿刺函数,pskt表示被穿刺后的密钥,并使用新的待穿刺密钥msk′对穿刺密钥映射表PSK中对应关键字ω的待穿刺密钥 msk′进行更新;
对待穿刺密钥msk′进行穿刺后,由对称穿刺加密算法的特性,可以保证云服务器无法再利用密钥解密得到对应标签tag的文档标识符,而其他没有被穿刺过的文档标识符,仍可以解密,从而保证了方案的后向安全。
918)获取其余被穿刺的密钥pski在删除映射表Tdel中的存储位置(STd,a)←Σdel[ω];
919)计算删除文档ind后的多集合哈希值
Figure RE-GDA0003018926650000261
并更新私有添加状态表
Figure RE-GDA0003018926650000262
920)发送(op=del,ST,pskt)给云服务器,其中op表示操作符,del表示删除操作。
S10,云服务器根据接收到的更新请求,执行相应的添加或删除操作。
101)云服务器接收到更新请求,若操作符op=add,其中add表示添加操作,转到步骤102);若操作符op=del,其中del表示删除操作,转到步骤103);
102)在索引结构映射表中添加文档信息Ts[u]←(e,ξ,hash,tag),并把密文添加到密文映射表中
Figure RE-GDA0003018926650000263
操作结束;
103)将被穿刺的密钥pskt添加到删除映射表Tdel[ST]中,操作结束。
本方法通过实验的方式,可以实现对密文数据进行高效的布尔查询,并保证在更新过程中密文数据的前向安全和后向安全。解决了在密文数据查询领域查询结果不准确,更新操作不安全的问题,确保了方案的安全性和实用性,达到了安全高效的密文检索。
本发明并不局限于上述实施例,在本发明公开的技术方案的基础上,本领域的技术人员根据所公开的技术内容,不需要创造性的劳动就可以对其中的一些技术特征作出一些替换和变形,这些替换和变形均在本发明的保护范围内。

Claims (10)

1.一种用于密文数据的前后向安全和可验证的布尔查询方法,其特征在于,所述方法包括:
S01,数据拥有者根据拥有的文档集提取关键字集合;
S02,初始化系统,生成密钥、多个映射表和私有状态表;
S03,对关键字集合进行预处理操作,将关键字集合转化成标准正交向量组,每一个关键字对应一个标准正交向量;
S04,对文档进行加密后存放到密文映射表,生成对应索引结构并存放到索引映射表,然后发送给云服务器;
S05,云服务器接收并保存数据拥有者发送的映射表;
S06,数据使用者利用数据拥有者共享的密钥,映射表和私有状态表等私有信息,生成相应的检索请求,并发送给云服务器;
S07,云服务器根据接收到的检索请求,在索引映射表,密文映射表和删除映射表上执行检索操作,并返回检索结果;
S08,数据使用者接收到云服务器的检索结果,对结果进行解密并进行完整性验证;
S09,数据使用者根据需求生成对应的添加或删除的请求,并发送给云服务器;
S10,云服务器根据接收到的更新请求,执行相应的添加或删除操作。
2.根据权利要求1所述的一种用于密文数据的前后向安全和可验证的布尔查询方法,其特征在于,所述S01包括以下步骤:
11)利用文本关键字提取算法,提取对应文档集D={D1,…,Dd}的关键字集合W={ω1,…,ωm},再引入一个通用关键字ωm+1,即假设每一个文档都含有该关键字;
12)为每一个文档Di生成对应的文档标识符indi,同时提取对应于该文档Di的关键字集合wi,满足
Figure FDA0002909778020000021
13)保存数据集
Figure FDA0002909778020000022
和关键字集合W。
3.根据权利要求1所述的一种用于密文数据的前后向安全和可验证的布尔查询方法,其特征在于,所述S02包括以下步骤:
21)随机生成二进制系统安全参数λ;
22)根据系统安全参数λ生成密钥集合K=(k1,k2,k3,k4,k5,k6,k,Ktag);
23)生成索引结构映射表Ts、密文映射表Tf、删除映射表Tdel、主密钥映射表MSK、穿刺密钥映射表PSK和最大穿刺次数映射表DEL;
24)生成私有添加状态表Σadd和私有删除状态表Σdel
4.根据权利要求1所述的一种用于密文数据的前后向安全和可验证的布尔查询方法,其特征在于,所述S03包括以下步骤:
31)数据拥有者将关键字集合中的每一个关键字根据伪随机函数π:{0,1}λ×{0,1}*→{0,1}l转化为长度为l的向量,k6作为该伪随机函数的密钥,转化后的关键字集合是一个由m+1个长度为l的向量组成的集合W′={π(ω1),…,π(ωm),π(ωm+1)};
32)将向量组成的集合W′={π(ω1),…,π(ωm),π(ωm+1)}转化为一组线性无关向量组S={v1,…,vm,vm+1};
33)将线性无关向量组S={v1,…,vm,vm+1}进行施密特正交化处理,并将得到的正交矩阵进行标准化后得到标准正交矩阵
Figure FDA0002909778020000023
其中关键字集合W中的每一个关键字ωi唯一对应于标准正交矩阵
Figure FDA0002909778020000024
中的标准正交向量oi,通用关键字ωm+1对应于标准正交矩阵
Figure FDA0002909778020000034
中的标准正交向量J。
5.根据权利要求1所述的一种用于密文数据的前后向安全和可验证的布尔查询方法,其特征在于,所述S04包括以下步骤:
41)对每一对文档-关键字对(ind,ω),利用伪随机函数F:{0,1}λ×{0,1}*→{0,1}t和标签密钥Ktag生成对应的标签tag←F(Ktag,ω||ind),其中||表示字符串连接符号;
42)取出对应关键字在主密钥映射表MSK、穿刺密钥映射表PSK和最大穿刺次数映射表DEL中的值;
43)若在主密钥映射表MSK中对应的值为空,则转到步骤44);否则转到步骤46);
44)给关键字ω赋初值d,表示允许在该关键字ω对应的密钥上穿刺的最大次数为d,并将对应的值d存放到最大穿刺次数映射表DEL中,即DEL[ω]←d;
45)利用对称可穿刺加密算法生成关键字ω对应的穿刺加密密钥msk,msk←SPE.KeyGen(1λ,d),其中SPE表示对称可穿刺加密算法,KeyGen()表示对称可穿刺加密算法中的密钥生成函数,并将得到的穿刺加密密钥存放到主密钥映射表MSK和穿刺密钥映射表PSK中,即MSK[ω]←msk,PSK[ω]←msk;
46)利用对称可穿刺加密算法,根据关键字ω对应的穿刺加密密钥msk和文档-关键字对(ind,ω)对应的标签tag,对文档标识符ind进行加密,得到对应的密文cind←SPE.Enc(msk,ind,tag),其中Enc()表示对称可穿刺加密算法中的加密函数;
47)从私有添加状态表Σadd中获取对应于关键字ω的记录
Figure FDA0002909778020000031
Figure FDA0002909778020000032
若对应的记录
Figure FDA0002909778020000033
为空,则转到步骤48),否则转到步骤410),其中STc表示含有关键字ω的第c个文档对应的存储地址,
Figure FDA0002909778020000041
表示多集合哈希值;
48)将空字符串赋给初始存储地址ST0,ST0←⊥,并给计数器c赋初值0,其中⊥表示空字符串;
49)k4作为多集合哈希函数的密钥,初始化生成一个空集合对应的哈希值,
Figure FDA0002909778020000042
其中rω是对应于关键字ω的随机数,rω←F(k1,ω),k1为用于生成rω的密钥,
Figure FDA0002909778020000043
为多集合哈希函数;
410)生成对应于文档-关键字对(ind,ω)的第c+1个存储地址STc+1←F(k2,ω||ind)以及多集合哈希函数的随机数rω←F(k1,ω);
411)利用排序为2的哈希函数H2:{0,1}λ×{0,1}*→{0,1}t对第c+1个存储地址STc+1进行哈希,得到隐藏存储地址u←H2(k,STc+1),其中k是排序为2的哈希函数H2的密钥;
412)将当前第c+1个存储地址STc+1,加密后的文档标识符cind和前一条含有相同关键字ω的文档-关键字对的第c个存储地址STc通过排序为1的哈希函数H1:{0,1}λ×{0,1}*→{0,1}t+p和异或操作组合在一起,得到存储记录
Figure FDA0002909778020000044
Figure FDA0002909778020000045
其中p表示密文文档标识符cind的长度,k3是排序为1的哈希函数H1的密钥;
413)生成文档标识符对应文档的标签
Figure FDA0002909778020000046
其中ωs表示文档中含有的关键字,w表示对应文档中含有的关键字集合,os是ωs对应的标准正交向量,将文档含有的所有关键字对应的标准正交向量相加,得到该文档的标签ξ;
414)对文档进行安全的哈希摘要hash←SHA(D),D表示文档标识符ind对应的文档,SHA()表示安全的哈希摘要函数,并使用对称加密算法加密文档
Figure FDA0002909778020000047
Figure FDA0002909778020000048
将计数器c自增1,即c←c+1;
415)将结果(e,ξ,hash,tag)和密文文档
Figure FDA00029097780200000514
分别存放到索引结构映射表Ts和密文映射表Tf,即Ts[u]←(e,ξ,hash,tag)和
Figure FDA0002909778020000051
416)将文档标识符ind通过多集合哈希函数添加到多集合哈希值中,
Figure FDA0002909778020000052
Figure FDA0002909778020000053
417)将记录
Figure FDA0002909778020000054
存放到私有添加状态表Σadd中,
Figure FDA0002909778020000055
418)若关键字ω为首次出现,则给删除计数器a和删除存储地址STd赋初值a←0,STd←F(k2,ω||a),并将a和STd存放到私有删除状态表Σdel中,Σdel[ω]=(STd,a);否则不执行该步骤;
419)若还有待添加的文档-关键字对,则返回步骤401),否则转到步骤420);
420)将索引结构映射表Ts、密文映射表Tf和删除映射表Tdel发送给云服务器;
421)将密钥集合K,私有添加状态表Σadd和私有删除状态表Σdel以及主密钥映射表MSK、穿刺密钥映射表PSK和最大穿刺次数映射表DEL共享给受信任用户。
6.根据权利要求1所述的一种用于密文数据的前后向安全和可验证的布尔查询方法,其特征在于,所述S06包括以下步骤:
61)数据使用者生成自己感兴趣的关键字布尔表达式,并将布尔表达式转化为对应的析取范式
Figure FDA0002909778020000056
满足
Figure FDA0002909778020000057
Figure FDA0002909778020000058
其中
Figure FDA0002909778020000059
表示第i个合取范式,Ii表示第i个合取范式中含有的所有关键字集合,j表示关键字对应的下标,⊿表示对表达式中的内容取非操作或不操作,
Figure FDA00029097780200000510
表示不做任何操作,
Figure FDA00029097780200000511
表示取非操作;
62)对于析取范式
Figure FDA00029097780200000512
中的第i个合取范式
Figure FDA00029097780200000513
都将其转化为一个对应的向量
Figure FDA0002909778020000061
具体步骤如下:
621)将第i个合取范式
Figure FDA0002909778020000062
中的关键字分为两部分{Pi,Ni},其中Pi表示
Figure FDA0002909778020000063
中⊿为
Figure FDA0002909778020000064
的所有关键字,Ni表示
Figure FDA0002909778020000065
中⊿为
Figure FDA0002909778020000066
的所有关键字;
622)随机选取|Pi|+1个正整数
Figure FDA0002909778020000067
使得ai,j,
Figure FDA0002909778020000068
随机选取|Ni|个负整数
Figure FDA0002909778020000069
使得
Figure FDA00029097780200000610
其中|Pi|,|Ni|分别表示集合Pi和Ni的势;
623)分别找出集合Pi和Ni中关键字ωj对应的标准正交向量oj,计算得到第i个合取范式
Figure FDA00029097780200000620
对应的向量
Figure FDA00029097780200000611
Figure FDA00029097780200000612
63)将析取范式
Figure FDA00029097780200000613
中的每一个合取表达式对应的向量
Figure FDA00029097780200000614
合并为
Figure FDA00029097780200000615
Figure FDA00029097780200000616
64)初始化搜索列表Lst、验证列表Lms和未穿刺密钥列表Lmsk
65)对于析取范式
Figure FDA00029097780200000617
中的第i个合取范式
Figure FDA00029097780200000618
具体执行如下步骤:
651)根据私有添加状态表Σadd,找出关键字集合Pi中含有最少文档数的关键字ωpi
652)取出对应关键字在私有添加状态表Σadd和穿刺密钥映射表PSK中的记录,
Figure FDA00029097780200000619
msk′←PSK[ωpi],其中msk′表示在穿刺密钥映射表PSK中当前对应于ωpi的待穿刺密钥;
653)更新最少文档数的关键字ωpi允许的穿刺次数DEL[ωpi]←d,并重新生成对应的穿刺加密密钥msk←SPE.KeyGen(1λ,d),然后更新最少文档数的关键字ωpi在主密钥映射表MSK和穿刺密钥映射表PSK中的密钥,
MSK[ωpi]←msk,PSK[ωpi]←msk;
654)生成最少文档数的关键字ωpi对应的多集合哈希函数的随机数rω←F(k1pi);
655)从私有删除状态表Σdel中取出最少文档数的关键字ωpi对应于删除映射表Tdel中的删除存储地址STd
656)将对应的记录添加到列表中,
Figure FDA0002909778020000071
和Lmsk←msk′;
657)将删除计数器a自增1,a←a+1,并生成新的STd←F(k2,ω||a)后更新私有删除状态表Σdel[ω]=(STd,a);
66)将查询请求(Lst,Lmsk,k3,k4)发送给云服务器。
7.根据权利要求1所述的一种用于密文数据的前后向安全和可验证的布尔查询方法,其特征在于,所述S07包括以下步骤:
71)对于搜索列表Lst中的每一条记录
Figure FDA0002909778020000072
若搜索列表中记录都已经被遍历完或搜索列表为空,则转到步骤73),否则云服务器执行如下操作:
711)初始化结果列表Lr和多集合哈希值
Figure FDA0002909778020000073
712)取出删除映射表Tdel中对应于删除存储地址STd上的记录穿刺密钥列表Lpsk后删除该列表;
713)若第c个存储地址STc不是空字符串,即STc≠⊥,则继续执行,否则转到步骤72);
714)取出索引结构映射表Ts中对应于隐藏存储地址u←H2(k,STc)上的记录(ecc,hashc,tagc),其中ec表示对应于当前查询关键字的第c个存储记录,ξc表示对应于当前查询关键字的第c个文档标签,hashc表示对应于当前查询关键字的第c个哈希摘要,tagc表示对应于当前查询关键字的第c个标签;
715)对第c个存储记录ec进行解密得到上一条文档记录的存储地址STc-1和当前查询关键字的第c个密文文档标识符cindc
Figure FDA0002909778020000081
Figure FDA0002909778020000082
716)取出未穿刺密钥列表Lmsk中对应的密钥和穿刺密钥列表Lpsk,并对第c个密文文档标识符cindc进行解密,解密成功则执行步骤717),并将当前明文文档标识符indc存回索引结构映射表Ts;否则执行c←c-1并返回步骤713);
717)若查询向量与当前查询的文档标签的内积
Figure FDA0002909778020000083
即计算查询的合取范式对应的向量与当前被查询的文档对应的标签的内积,若结果为1,则说明当前被查询的文档符合查询条件。获取密文映射表Tf中对应当前查询的密文
Figure FDA0002909778020000084
并将记录
Figure FDA0002909778020000085
添加到结果列表Lr中,同时将对应的明文文档标识符indc添加到多集合哈希中
Figure FDA0002909778020000086
执行c←c-1后返回步骤713);
72)将记录
Figure FDA0002909778020000087
添加到最终结果列表
Figure FDA0002909778020000088
中,并转到步骤71);
73)将最终结果列表
Figure FDA0002909778020000089
返回给数据使用者。
8.根据权利要求1所述的一种用于密文数据的前后向安全和可验证的布尔查询方法,其特征在于,所述S08包括以下步骤:
81)遍历最终结果列表
Figure FDA00029097780200000810
中的每一条记录
Figure FDA00029097780200000811
和验证列表Lms中对应的记录
Figure FDA00029097780200000812
执行如下步骤,直到遍历完所有记录,转到步骤82);
811)比较最终结果列表中的多集合哈希值
Figure FDA00029097780200000813
和本地保存的验证列表Lms中的多集合哈希值
Figure FDA00029097780200000814
若两个值相等则继续执行下面的步骤,否则输出验证结果“False”,表明检索结果不满足完备性;
812)对于结果列表Lr中的每一条记录
Figure FDA00029097780200000815
首先判断
Figure FDA00029097780200000816
是否成立,若不成立,则输出验证结果“False”,表明此文档不满足查询条件;若等式成立,则继续下面步骤;
813)然后对当前查询的第c个密文
Figure FDA0002909778020000091
进行解密
Figure FDA0002909778020000092
其中Dec()为与之前加密算法对应的解密算法,并对解密后的当前查询的第c个文档Dc进行安全哈希摘要hash←SHA(Dc),并比较用户根据接收到的文档计算出的哈希值hash与服务器返回的文档的哈希值hashc是否相等,若不等,则输出验证结果“False”,表明当前文档被篡改过;否则返回步骤812),直到遍历完结果列表Lr后转到步骤81);
82)输出验证结果“True”,表明检索结果的完备性、正确性和可靠性通过了验证。
9.根据权利要求1所述的一种用于密文数据的前后向安全和可验证的布尔查询方法,其特征在于,所述S09包括以下步骤:
91)对于输入的文档-关键字对(ind,ω),利用伪随机函数F:{0,1}λ×{0,1}*→{0,1}t和标签密钥Ktag生成对应的标签tag←F(Ktag,ω||ind);
92)若要添加文档-关键字对(ind,ω),则转到步骤903);若要删除文档-关键字对(ind,ω),则转到步骤916);
93)若主密钥映射表MSK中含有关键字ω对应的记录,则取出穿刺加密密钥msk;否则给关键字赋最大穿刺次数d并存放到最大穿刺次数映射表DEL中,DEL[ω]←d,然后生成对应的穿刺加密密钥msk←SPE.KeyGen(1λ,d),并将得到的穿刺加密密钥存放到主密钥映射表和穿刺密钥映射表中,即MSK[ω]←msk,PSK[ω]←msk;
94)利用对称可穿刺加密算法,根据穿刺加密密钥msk和文档-关键字对(ind,ω)对应的标签tag,对文档标识符ind进行加密,得到对应的密文cind←SPE.Enc(msk,ind,tag);
95)从私有添加状态表Σadd中获取对应于关键字ω的记录
Figure FDA0002909778020000101
Figure FDA0002909778020000102
若对应的记录
Figure FDA0002909778020000103
为空,则转到步骤906),否则转到步骤908);
96)将空字符串赋给初始存储地址ST0,ST0←⊥,并给c赋初值0;
97)k4作为多集合哈希函数的密钥,初始化生成一个空集合对应的多集合哈希值,
Figure FDA0002909778020000104
其中rω是对应于关键字ω的随机数,rω←F(k1,ω);
98)生成对应于文档-关键字对(ind,ω)的第c+1个存储地址STc+1←F(k2,ω||ind)以及rω←F(k1,ω);
99)利用排序为2的哈希函数H2:{0,1}λ×{0,1}*→{0,1}t对第c+1个存储地址STc+1进行哈希,得到隐藏存储地址u←H2(k,STc+1);
910)将第c+1个存储地址STc+1,加密后的文档标识符cind和前一条含有相同关键字ω的文档-关键字对的第c个存储地址STc通过排序为1的哈希函数H1:{0,1}λ×{0,1}*→{0,1}t+p和异或操作组合在一起,得到存储记录
Figure FDA0002909778020000105
Figure FDA0002909778020000106
k3是排序为1的哈希函数H1的密钥,其中p表示密文文档标识符cind的长度;
911)生成文档标识符对应文档的标签
Figure FDA0002909778020000107
其中ωs表示文档中含有的关键字,w表示对应文档中含有的关键字集合,os是ωs对应的标准正交向量,将文档含有的所有关键字对应标准正交向量相加,得到该文档的标签ξ;
912)对文档进行安全的哈希摘要hash←SHA(D),D表示文档标识符ind对应的文档,SHA()表示安全的哈希摘要函数,并使用对称加密算法加密文档
Figure FDA0002909778020000108
Figure FDA0002909778020000109
计数器c自增1,即c←c+1;
913)将文档标识符ind通过多集合哈希函数添加到多集合哈希值中,
Figure FDA0002909778020000111
Figure FDA0002909778020000112
914)将记录
Figure FDA0002909778020000113
存放到私有添加状态表Σadd中,
Figure FDA0002909778020000114
915)发送添加操作请求
Figure FDA0002909778020000115
给云服务器,其中op表示操作符,add表示添加操作;
916)取出穿刺密钥映射表PSK中对应关键字ω的待穿刺密钥msk′;
917)对待穿刺密钥msk′进行穿刺(msk′,pskt)←SPE.Pun(msk′,tag),其中Pun()表示对称可穿刺加密算法中的穿刺函数,pskt表示被穿刺后的密钥,并使用新的待穿刺密钥msk′对穿刺密钥映射表PSK中对应关键字ω的待穿刺密钥msk′进行更新;
918)获取其余被穿刺的密钥pski在删除映射表Tdel中的存储位置(STd,a)←Σdel[ω];
919)计算删除文档ind后的多集合哈希值
Figure FDA0002909778020000116
并更新私有添加状态表
Figure FDA0002909778020000117
920)发送删除操作请求(op=del,STd,pskt)给云服务器,其中op表示操作符,del表示删除操作。
10.根据权利要求1所述的一种用于密文数据的前后向安全和可验证的布尔查询方法,其特征在于,所述S10包括以下步骤:
101)云服务器接收到更新请求,若操作符op=add,其中add表示添加操作,转到步骤102);若操作符op=del,其中del表示删除操作,转到步骤103);
102)在索引结构映射表中添加文档信息Ts[u]←(e,ξ,hash,tag),并把密文添加到密文映射表中
Figure FDA0002909778020000118
操作结束;
103)将被穿刺的密钥pskt添加到删除映射表Tdel[ST]中,操作结束。
CN202110083023.3A 2021-01-21 2021-01-21 一种用于密文数据的前后向安全和可验证的布尔查询方法 Active CN112800445B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110083023.3A CN112800445B (zh) 2021-01-21 2021-01-21 一种用于密文数据的前后向安全和可验证的布尔查询方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110083023.3A CN112800445B (zh) 2021-01-21 2021-01-21 一种用于密文数据的前后向安全和可验证的布尔查询方法

Publications (2)

Publication Number Publication Date
CN112800445A true CN112800445A (zh) 2021-05-14
CN112800445B CN112800445B (zh) 2022-12-09

Family

ID=75811057

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110083023.3A Active CN112800445B (zh) 2021-01-21 2021-01-21 一种用于密文数据的前后向安全和可验证的布尔查询方法

Country Status (1)

Country Link
CN (1) CN112800445B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113282543A (zh) * 2021-05-20 2021-08-20 支付宝(杭州)信息技术有限公司 具有前向安全的可验证可搜索加密方法、装置以及设备
CN114584286A (zh) * 2022-05-06 2022-06-03 武汉大学 支持全向量操作的动态密文检索、验证方法及系统
CN115758468A (zh) * 2022-12-05 2023-03-07 北京理工大学 具有前后向隐私支持非交互多用户可搜索加密方法及系统
CN116996281A (zh) * 2023-07-21 2023-11-03 华中科技大学 支持密文分享的动态可搜索对称加密方法、系统及介质
CN117134993A (zh) * 2023-10-24 2023-11-28 武汉大学 基于可累加承诺验证的检索密文可检测方法及设备
CN117932684A (zh) * 2024-03-18 2024-04-26 南方电网科学研究院有限责任公司 一种智能电网数据加密方法和系统
CN116821279B (zh) * 2023-06-06 2024-06-07 哈尔滨理工大学 一种带排斥关键字的空间关键字查询方法和系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150193486A1 (en) * 2012-09-14 2015-07-09 Alcatel Lucent Method and system to perform secure boolean search over encrypted documents
WO2018113563A1 (zh) * 2016-12-21 2018-06-28 哈尔滨工业大学深圳研究生院 一种具有访问控制功能的数据库查询方法和系统
CN110334526A (zh) * 2019-05-30 2019-10-15 西安电子科技大学 一种支持验证的前向安全可搜索加密存储系统及方法
CN110457915A (zh) * 2019-07-17 2019-11-15 华中科技大学 高效且具有前后向安全性的可搜索对称加密方法及系统
CN110765469A (zh) * 2019-09-12 2020-02-07 华中科技大学 一种高效且健壮的动态可搜索对称加密方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150193486A1 (en) * 2012-09-14 2015-07-09 Alcatel Lucent Method and system to perform secure boolean search over encrypted documents
WO2018113563A1 (zh) * 2016-12-21 2018-06-28 哈尔滨工业大学深圳研究生院 一种具有访问控制功能的数据库查询方法和系统
CN110334526A (zh) * 2019-05-30 2019-10-15 西安电子科技大学 一种支持验证的前向安全可搜索加密存储系统及方法
CN110457915A (zh) * 2019-07-17 2019-11-15 华中科技大学 高效且具有前后向安全性的可搜索对称加密方法及系统
CN110765469A (zh) * 2019-09-12 2020-02-07 华中科技大学 一种高效且健壮的动态可搜索对称加密方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Y. CAN等: "《2015 9th International Conference on Electrical and Electronics Engineering (ELECO)》", 1 February 2016 *
王贇玲等: "对称可搜索加密技术研究进展", 《电子与信息学报》 *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113282543A (zh) * 2021-05-20 2021-08-20 支付宝(杭州)信息技术有限公司 具有前向安全的可验证可搜索加密方法、装置以及设备
CN113282543B (zh) * 2021-05-20 2022-07-05 支付宝(杭州)信息技术有限公司 具有前向安全的可验证可搜索加密方法、装置以及设备
CN114584286A (zh) * 2022-05-06 2022-06-03 武汉大学 支持全向量操作的动态密文检索、验证方法及系统
CN114584286B (zh) * 2022-05-06 2022-08-05 武汉大学 支持全向量操作的动态密文检索、验证方法及系统
CN115758468A (zh) * 2022-12-05 2023-03-07 北京理工大学 具有前后向隐私支持非交互多用户可搜索加密方法及系统
CN115758468B (zh) * 2022-12-05 2023-07-07 北京理工大学 具有前后向隐私支持非交互多用户可搜索加密方法及系统
CN116821279B (zh) * 2023-06-06 2024-06-07 哈尔滨理工大学 一种带排斥关键字的空间关键字查询方法和系统
CN116996281A (zh) * 2023-07-21 2023-11-03 华中科技大学 支持密文分享的动态可搜索对称加密方法、系统及介质
CN116996281B (zh) * 2023-07-21 2024-02-06 华中科技大学 支持密文分享的动态可搜索对称加密方法、系统及介质
CN117134993A (zh) * 2023-10-24 2023-11-28 武汉大学 基于可累加承诺验证的检索密文可检测方法及设备
CN117134993B (zh) * 2023-10-24 2024-01-05 武汉大学 基于可累加承诺验证的检索密文可检测方法及设备
CN117932684A (zh) * 2024-03-18 2024-04-26 南方电网科学研究院有限责任公司 一种智能电网数据加密方法和系统

Also Published As

Publication number Publication date
CN112800445B (zh) 2022-12-09

Similar Documents

Publication Publication Date Title
CN112800445B (zh) 一种用于密文数据的前后向安全和可验证的布尔查询方法
US9977918B2 (en) Method and system for verifiable searchable symmetric encryption
EP3058678B1 (en) System and method for dynamic, non-interactive, and parallelizable searchable symmetric encryption
JP6180177B2 (ja) プライバシーを保護することができる暗号化データの問い合わせ方法及びシステム
CN108400970B (zh) 云环境中相似数据消息锁定加密去重方法、云存储系统
KR20100068042A (ko) 데이터 암호화 방법 및 암호화된 데이터의 결합 키워드 검색방법
CN109361644B (zh) 一种支持快速搜索和解密的模糊属性基加密方法
CN114338038B (zh) 区块链数据保密查询的存储系统及不经意传输方法
CN115225409B (zh) 基于多备份联合验证的云数据安全去重方法
US20220209945A1 (en) Method and device for storing encrypted data
TWI597960B (zh) 金鑰分裂技術
CN110851848B (zh) 对称可搜索加密的隐私保护方法
CN114142996B (zh) 一种基于sm9密码算法的可搜索加密方法
CN109783456B (zh) 去重结构搭建方法、去重方法、文件取回方法、去重系统
CN113434739B (zh) 一种云环境下前向安全的多用户动态对称加密检索方法
Awais et al. A novel searchable encryption scheme to reduce the access pattern leakage
DAYIOĞLU Secure database in cloud computing-cryptdb revisited
US20240015014A1 (en) Dynamic and verifiable searchable encryption method and system based on updatable encryption and blockchain
CN109672525B (zh) 一种具有前向索引的可搜索公钥加密方法及系统
Yan et al. Secure and efficient big data deduplication in fog computing
KR100951034B1 (ko) 암호문 크기를 줄이기 위한 공개키 기반의 검색가능암호문생성 방법과, 그에 따른 공개키 기반의 데이터 검색 방법
CN115174600A (zh) 一种用于云存储系统的密文数据加密、安全检索方法及装置
Li et al. Achieving forward unforgeability in keyword-field-free conjunctive search
Handa et al. Keyword binning-based efficient search on encrypted cloud data
Ali et al. Distributed File Sharing and Retrieval Model for Cloud Virtual Environment

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