CN110334526B - 一种支持验证的前向安全可搜索加密存储系统及方法 - Google Patents

一种支持验证的前向安全可搜索加密存储系统及方法 Download PDF

Info

Publication number
CN110334526B
CN110334526B CN201910464607.8A CN201910464607A CN110334526B CN 110334526 B CN110334526 B CN 110334526B CN 201910464607 A CN201910464607 A CN 201910464607A CN 110334526 B CN110334526 B CN 110334526B
Authority
CN
China
Prior art keywords
server
client
data
evidence
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.)
Active
Application number
CN201910464607.8A
Other languages
English (en)
Other versions
CN110334526A (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 CN201910464607.8A priority Critical patent/CN110334526B/zh
Publication of CN110334526A publication Critical patent/CN110334526A/zh
Application granted granted Critical
Publication of CN110334526B publication Critical patent/CN110334526B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed 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/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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Power Engineering (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

本发明属于云数据安全存储技术领域,公开了一种支持验证的前向安全可搜索加密存储系统及方法;用户对明文数据进行加密得到密文数据,根据密文数据建立索引,将密文数据和索引上传到云服务器上;在搜索时,用户提交所搜索关键词的令牌,服务器收到令牌之后,根据令牌信息在密文索引上进行搜索,将搜索结果以及证据返回给用户;用户在收到密文搜索结果以及证据之后,对密文搜索结果解密,得到最终结果。本发明使用集合哈希提高了验证的效率,降低因为验证而带来的额外的存储开销;本发明可以达到预期的安全性目标,同时实现高效的搜索和验证操作。

Description

一种支持验证的前向安全可搜索加密存储系统及方法
技术领域
本发明属于云数据安全存储技术领域,尤其涉及一种支持验证的前向安全可搜索加密存储系统及方法。
背景技术
目前,与本发明最接近的现有技术为可搜索加密,所谓的可搜索加密是指客户端使用传统的对称加密技术对数据库进行加密,同时在数据库上建立索引,然后将密文数据库和索引外包给云服务器;在搜索阶段,客户端提交搜索关键词有关的陷门,云服务器可以利用该陷门在索引上运行匹配搜索算法,将所有匹配的密文文档发送给用户。更进一步的,现在存在一些前向安全的可搜索加密方案,具体地说:这类技术允许客户端对外包的数据库进行更新,并且在更新的过程中,不会泄露关于搜索关键词的信息。
目前,前向安全的可搜索加密中最先进的现有技术为FAST方案,该方案存在的缺陷为搜索效率和更新效率较低,且没有考虑服务器有恶意行为的情况。在FAST方案中,每两个状态之间由一个置换函数进行连接。所以在搜索时,需要计算多个置换函数,这导致了较低的搜索效率;同理,更新效率也较低。另外一方面,服务器可能存在恶意行为,即返回不正确或不完整的搜索结果,在这种情况下,FAST检测不出来。
目前,最接近的现有技术:云计算的出现已经深刻地改变了人们的生活,在数据爆炸的时代,越来越多的个人用户将他们的数据托管在云服务器中,这可以有效地降低本地设备存储成本并节约备用资源。谷歌,微软和阿里巴巴等公司也推出了自己的云存储产品,以满足不同用户的不同需求。
云存储中最基本的问题在于数据拥有者将数据上传至云服务器之后,会失去对数据的控制权。云服务器并不一定是完全可信的,当用户存储敏感数据(如私人健康公司信息、书籍、商业秘密等),会对云服务器提出更高的隐私保护需求。在这种情况下,数据拥有者在将数据上传至服务器前首先会进行加密。在很多情况下,客户需要对服务器上的数据进行搜索。如何在密文数据上进行搜索引起学术界和工业界的广泛关注。
对称可搜索加密技术,是密文检索问题的一个有效方法。具体来说,客户端使用传统的对称加密技术对数据库进行加密,同时在数据库上建立索引,然后将密文数据库和索引外包给云服务器;在搜索阶段,客户端提交搜索关键词有关的陷门,云服务器可以利用该陷门在索引上运行匹配搜索算法,将所有匹配的密文文档发送给用户。
如何在已经上传到数据库上的数据库中进行更新,这也是一个问题。在数据被上传到云服务器之后,用户有可能希望对数据做出修改,例如插入和删除一个文档。一种朴素的解决方法是将所有的数据文件下载下来,解密,完成更新操作之后重新加密,之后重新上传给服务器。但是这势必会造成大量不必要的传输开销,而且对客户端的储存能力提出了很高的要求。
在更新数据的过程中,往往会泄露关于密文数据库的信息。例如客户端插入一个文档给服务器,如果处理不当,服务器会得知这个新插入的文档中包含哪些关键词。利用这种信息,敌手将恢复用户所查询的关键字。近年来,有学者研究表明这种泄露往往带来很严重的后果。例如,通过在外包数据库中注入14个文件,敌手可以得知恢复出超过一万个搜索令牌对应的关键词。因此,动态可搜索加密技术中的前向安全成为一个研究热点。
在恶意模型下,服务器出于节省计算资源等动机,会做出欺骗客户的行为。例如,在搜索阶段,服务器根本不进行搜索,然后向服务器返回空集合,表明数据库中没有搜索关键词对应的文档;或者,服务器只在一部分数据库上运行匹配算法,最后返回一个不完整的搜索结果。如何保证搜索结果的正确性和完整性,是云存储中的另外一个研究热点。
针对现有在云存储中存在如何在密文数据库上搜索、如何对密文数据库进行更新操作,包括插入一个文档和删除一个文档、在对密文数据库进行更新时,如何保护数据库的前向隐私、如何保证搜索结果的正确性和完整性的问题。
(1)对称可搜索加密,是解决密文搜索问题的一个成熟的解决方案,客户端使用传统的对称加密技术对数据库进行加密,同时在数据库上建立索引;在上传时,客户端将密文数据库和索引一起上传给服务器;在搜索阶段,客户端提交所搜索关键词有关的陷门,云服务器可以利用该陷门在索引上运行匹配搜索算法,发送所有匹配的密文文档给用户。
(2)动态可搜索加密,是在可搜索加密的基础上,添加了更新操作。即动态可搜索加密允许客户端对已经上传到云服务器的密文数据进行更新,在本发明中,更新特指插入和删除文档两种操作。
(3)前向安全的动态可搜索加密,要求在更新数据的过程中,不泄露之前上传的数据的隐私信息。换句话说,服务器不知道之前搜索过的关键词是否包含在新插入的这个文档中。
(4)可验证的可搜索加密,是指在搜索时,服务器不仅返回搜索结果,还返回一个针对该搜索结果的证据。在客户端怀疑服务器在本次搜索过程中有作弊行为时,可以利用该证据对搜索结果的正确性和完整性进行验证。
综上所述,现有技术存在的问题是:现有在云存储中存在如何在密文数据库上搜索、如何对密文数据库进行更新操作,包括插入一个文档和删除一个文档、在对密文数据库进行更新时,如何保护数据库的前向隐私、如何保证搜索结果的正确性和完整性的问题。
解决上述技术问题的难度:在密文上搜索并不容易。首先,传统的加密方案都是随机加密,会打破明文和密文的关系,使得在密文上搜索成为不可能的事情;另外一方面,现有的密文可搜索加密方案中,搜索效率和更新效率并不高。对搜索结果的验证也是一个难题,具体地说,如何在实现对搜索结果可验证的前提下保证搜索效率,并且不破坏前向安全的性质。
解决上述技术问题的意义:密文可搜索技术的研究意义在于允许客户在将数据外包给服务器之前对数据进行加密,并能够在密文上直接进行搜索。在云计算的环境中,用户可能并不信任服务器,在这种情况下,用户会选择在将数据外包给服务器之前对数据进行加密。但是,这又引入了一个问题,就是要对数据进行搜索时,必须要把数据完全下载下来,然后解密、搜索、重加密并重新上传给服务器,这导致的带宽开销是难以接收的。
如果用户使用密文可搜索加密技术对数据加密,则可以直接在密文上进行搜索,从而降低带宽开销,提高搜索效率。
发明内容
针对现有技术存在的问题,本发明提供了一种支持验证的前向安全可搜索加密存储系统及方法。
本发明是这样实现的,一种支持验证的前向安全可搜索加密存储方法,所述支持验证的前向安全可搜索加密存储方法包括:用户对明文数据进行加密得到密文数据,根据密文数据建立索引,将密文数据和索引上传到云服务器上;在搜索时,用户提交所搜索关键词的令牌,服务器收到令牌之后,根据令牌信息在密文索引上进行搜索,将搜索结果以及证据返回给用户;用户在收到密文搜索结果以及证据之后,对密文搜索结果解密,得到最终结果;当用户需要验证搜索结果的正确性和完整性时,只需要对证据进行验证。
进一步,所述支持验证的前向安全可搜索加密存储方法具体包括:
第一步,客户端和服务器端分别初始化自己的存储结构;
第二步,客户端将文档预处理为key-id对,对key-id对进行加密处理,生成索引;对证据进行更新,最后将密文信息、索引和证据信息上传给服务器;
第三步,客户端对搜索关键词进行处理,生成搜索陷门,将陷门上传给服务器;
第四步,服务器收到搜索陷门之后,在索引上进行搜索,获得匹配的密文数据;
第五步,服务器根据搜索结果构建针对搜索结果的证据,并将搜索结果和证据返回给客户端;
第六步,客户端利用证据对数据库返回的搜索结果进行验证。
进一步,所述支持验证的前向安全可搜索加密存储方法包含了以下算法:
Setup算法:客户端和服务器分别初始化自己的存储结构,准备处理客户的更新操作;在Setup之后,客户端和服务器端都将得到一个空的存储结构。Setup是系统初始化的过程,服务器和客户端要准备好各自的存储数据结构;客户端和服务器均为一个map结构;客户端输入安全参数λ,根据λ初始化存储结构∑,服务器端初始化存储结构T;
Update算法:在更新算法中,客户端将需要插入或删除的文档预处理为key-id对,以key-id为单位进行处理,生成该key-id对的密文和索引,将密文和索引打包发送给服务器;服务器在收到服务器发送的数据之后,将存储在服务器中。另外一方面,在更新时还需要对证据进行更新;客户端首先取出之前的集合哈希值,加入新的关键词得到新的哈希值作为新的证据。该证据需要在客户端和服务器端各存一份;在Update过程中,泄露给服务器和第三方的信息只有一对元组(u,e,hash);
Search算法:在搜索算法中,用户提交所搜索关键词的令牌,服务器收到令牌之后,根据令牌信息在密文索引上进行搜索,将搜索结果以及证据返回给用户;用户在收到密文搜索结果以及证据之后,对密文搜索结果解密,得到最终结果;
Verify算法:当用户对服务器返回的搜索结果有所怀疑时,验证搜索结果的正确性和完整性;客户端首先计算R的集合哈希hash′,然后取出客户端存储的证据hash,然后比较hash′、hash和proof,如果三者相等,则说明搜索结果满足正确性和完整性,否则说明服务器有作弊行为。
进一步,所述Setup算法的初始化阶段具体包括:
客户端选择系统参数λ,客户端根据λ初始化自己的存储结构∑,该存储结构是一个map结构的数据结构,其key为关键词,value包含该关键词的最新状态stc,以及该关键词对应的集合哈希值;
客户端将λ发送给服务器端,服务器在接收到系统参数λ之后,根据λ初始化自己的存储结构T,该存储结构是一个map结构的数据结构,其key为位置信息,value为密文以及集合哈希值,密文信息包括文件名信息、操作信息和前一个状态的位置信息;
所述Update算法更新阶段具体包括:
计算关键词w的陷门tw以及集合哈希的密钥rw
客户端首先产生出新的状态stc+1
客户端检查本地存储∑中是否有w的记录,如果没有关于w的记录,说明该关键词是第一次出现;客户端首先随机选择一个st1,然后级联代表没有下一个状态的⊥、文档标识符ind和操作op;客户端使用H2(tw||st1)作为密钥,使用异或加密得到密文e;如果有关于w的记录,则取出其对应的stc,hash;客户端级联状态stc、操作op和文档标识ind;同样的,客户端使用异或加密得到密文e;
客户端更新文档标志符的集合哈希值hash;
客户端计算位置信息u;
客户端将最新的状态stc+1以及文档哈希聚集值hash记录在客户端的存储结构中,并将位置信息u、密文e和文档哈希hash上传至服务器;
服务器端将客户端上传来的(e,hash)记录在服务器中;
所述Search算法的搜索阶段具体包括:
客户端检查本地存储∑中是否有w的记录,分为如下两种情况,如果没有关于w的记录,说明服务器中没有关于该关键词的信息;客户端判断出没有任何文档包含该关键词,此时直接返回空集合;如果有关于w的记录,则取出其对应的stc和hash。在这种情况下,客户端将(tw,stc)提交给服务器;将hash留存在客户端,hash在验证时将会被使用到;
服务器在收到(tw,stc)之后,首先取出最后一个状态对应的证据hash,该证据将会被返回给客户端;对于不在最后一个状态的证据,删除掉以释放服务器端的存储空间;
找出T中关于stc的记录e;使用密钥H2(tw||stc)对密文e进行解密,得到(stc,ind,op);将密文ind存储在结果R中;将当前密钥stc替换为st,准备下一次解密时使用;
服务器在T中搜索关于stc的记录,如果有,则继续操作;
最后服务器返回搜索结果R和证据hash;
所述Verify算法的验证阶段具体包括:
客户端获得从服务器上得到的搜索证据proof,并从自己的存储∑中取出本地的证据hash;
客户端根据服务器返回的搜索结果R重新计算集合哈希值hash′;
判断hash、hash′和proof三者是否相同;如果相同,则验证通过;否则验证不通过;两个证据都是二进制数据,通过异或来判断二者是否相同;如果证据异或的结果为0,则说明二者相同;如果结果为1,则二者不相同。
进一步,所述支持验证的前向安全可搜索加密存储方的验证技术为多重集哈希,多重集哈希是将一个多重集映射为一个固定长度的字符串;如果三元组
Figure BDA0002079063330000071
满足如下三条性质:
压缩性:把一个多重集M映射为一个基数为2m的集合上的一个元素上;
可比较性:
Figure BDA0002079063330000072
增量性:集合中新增一个元素,哈希值快速更新,不需要重新进行运算,
Figure BDA0002079063330000073
则该三元组为MultiSet Hashing Function;
本发明的另一目的在于提供一种基于所述的支持验证的前向安全可搜索加密存储方法的支持验证的前向安全可搜索加密存储系统,所述支持验证的前向安全可搜索加密存储系统包括:
数据拥有者,用于将个人数据外包存储在云服务器上,数据文件在上传之前要先被预处理为w-id形式,对w-id对进行加密处理,并根据w-id信息生成增量索引;数据拥有者将解密密钥分享给其希望授权的用户,被授权的用户称作数据使用者;只有数据使用者进行搜索并对搜索结果进行解密;
云服务器,具有海量存储资源以及充足的计算资源,做到安全地存储数据拥有者上传的数据和索引;忠实地执行数据使用者的查询请求,并返回完整且正确的搜索结果和该搜索结果对应的证据;
数据使用者,是被数据拥有者授权的用户,其拥有解密数据文件需要的密钥;在搜索阶段,数据使用者根据所搜索的关键字生成搜索陷门并提交陷门信息到云服务器;在收到云服务器返回的搜索结果和证据之后,数据使用者根据证据对云服务器返回的搜索结果进行验证,判断搜索结果是否满足正确性和完整性。
本发明的另一目的在于提供一种应用所述支持验证的前向安全可搜索加密存储方法的云服务器。
综上所述,本发明的优点及积极效果为:用户对明文数据进行加密得到密文数据,根据密文数据建立索引,将密文数据和索引上传到云服务器上;在搜索时,用户提交所搜索关键词的令牌,服务器收到令牌之后,根据令牌信息在密文索引上进行搜索,将搜索结果(密文形式)以及证据返回给用户;用户在收到密文搜索结果以及证据之后,对密文搜索结果解密,得到最终结果;当用户需要验证搜索结果的正确性和完整性时,只需要对证据进行验证即可。为了提高验证的效率,降低因为验证而带来的额外的存储开销,使用了一种新的验证技术——集合哈希。此外,本发明还进行了详细的性能评估;结果表明,本发明可以达到预期的安全性目标,同时实现高效的搜索和验证操作。
在本发明的技术方案中,对FAST的底层原理进行了改进,去除了FAST依赖的置换函数,从而提高了搜索和更新效率。另外,本发明的技术方案中加入了对搜索结果的验证的逻辑,通过运行验证算法,本发明可以检测出服务器是否有作弊行为。
附图说明
图1是本发明实施例提供的支持验证前向安全可搜索加密存储系统及方法。
图2是本发明实施例提供的系统模型图。
图3是本发明实施例提供的服务器端的逻辑存储图。
图4是本发明实施例提供的客户端的逻辑存储图。
图5是本发明实施例提供的搜索效率的评估示意图。
图6是本发明实施例提供的更新效率的评估示意图。
图7是本发明实施例提供的验证效率的评估示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
针对现有在云存储中存在如何在密文数据库上搜索、如何对密文数据库进行更新操作,包括插入一个文档和删除一个文档、在对密文数据库进行更新时,如何保护数据库的前向隐私、如何保证搜索结果的正确性和完整性的问题。本发明可以达到预期的安全性目标,同时实现高效的搜索和验证操作。
下面结合附图对本发明的应用原理作详细的描述。
如图1所示,本发明实施例提供的支持验证的前向安全可搜索加密存储方法包括以下步骤:
S101:客户端和服务器端分别初始化自己的存储结构;
S102:客户端将文档预处理为key-id对,对key-id对进行加密处理,生成索引。对证据进行更新,最后将密文信息、索引和证据信息上传给服务器;
S103:客户端对搜索关键词进行处理,生成搜索陷门,将陷门上传给服务器;
S104:服务器收到搜索陷门之后,在索引上进行搜索,获得匹配的密文数据;
S105:服务器根据搜索结果构建针对搜索结果的证据,并将搜索结果和证据返回给客户端;
S106:客户端利用证据对数据库返回的搜索结果进行验证。
本发明实施例提供的支持验证的前向安全可搜索加密存储方法公开了一种具有前向安全性质,且搜索结果可验证的对称可搜索技术。包含了以下四个算法:
Setup算法:在该算法中,客户端和服务器分别初始化自己的存储结构,准备处理客户的更新操作。在Setup之后,客户端和服务器端都将得到一个空的存储结构。Setup是系统初始化的过程,服务器和客户端要准备好各自的存储数据结构,在本发明中,客户端和服务器均为一个map结构。客户端输入安全参数λ,根据λ初始化存储结构∑,服务器端初始化存储结构T。
初始化阶段具体包括:
客户端选择系统参数λ,客户端根据λ初始化自己的存储结构∑,该存储结构是一个map结构的数据结构,其key为关键词,value包含该关键词的最新状态stc,以及该关键词对应的集合哈希值。
客户端将λ发送给服务器端,服务器在接收到系统参数λ之后,根据λ初始化自己的存储结构T,该存储结构是一个map结构的数据结构,其key为位置信息,value为密文以及集合哈希值,密文信息包括文件名信息、操作信息和前一个状态的位置信息。具体地说,在本发明中操作包含两种,一种是插入一个文档,一种是删除一个文档。
Update算法:在更新算法中,客户端将需要插入或删除的文档预处理为key-id对,以key-id为单位进行处理,生成该key-id对的密文和索引,将密文和索引打包发送给服务器;服务器在收到服务器发送的数据之后,将其存储在服务器中。另外一方面,在更新时还需要对证据进行更新。具体地说,客户端首先取出之前的集合哈希值,加入新的关键词得到新的哈希值作为新的证据。该证据需要在客户端和服务器端各存一份。在Update过程中,泄露给服务器和第三方的信息只有一对元组(u,e,hash)。
进一步,所述更新阶段具体包括:
计算关键词w的陷门tw以及集合哈希需要用到的密钥rw
客户端首先产生出新的状态stc+1
客户端检查本地存储∑中是否有w的记录,如果没有关于w的记录,说明该关键词是第一次出现,在这种情况下,客户端首先随机选择一个st1,然后级联代表没有下一个状态的⊥、文档标识符ind和操作op。接下来,客户端使用H2(tw||st1)作为密钥,使用异或加密得到密文e;如果有关于w的记录,则取出其对应的stc,hash。在这种情况下,客户端级联状态stc、操作op和文档标识ind。同样的,客户端使用异或加密得到密文e。
客户端更新文档标志符的集合哈希值hash;
客户端计算位置信息u。
客户端将最新的状态stc+1以及文档哈希聚集值hash记录在客户端的存储结构中,并将位置信息u、密文e和文档哈希hash上传至服务器。
服务器端将客户端上传来的数据记录在服务器中。
Search算法:在搜索算法中,用户提交所搜索关键词的令牌,服务器收到令牌之后,根据令牌信息在密文索引上进行搜索,将搜索结果(密文形式)以及证据返回给用户;用户在收到密文搜索结果以及证据之后,对密文搜索结果解密,得到最终结果;
搜索阶段具体包括:
客户端检查本地存储∑中是否有w的记录,分为如下两种情况,如果没有关于w的记录,说明服务器中没有关于该关键词的信息,在这种情况下,客户端可以判断出没有任何文档包含该关键词,此时可以直接返回空集合;如果有关于w的记录,则取出其对应的stc和hash。在这种情况下,客户端将(tw,stc)提交给服务器;留存在客户端,hash在验证时将会被使用到。
服务器在收到(tw,stc)之后,首先取出最后一个状态对应的证据hash,该证据将会被返回给客户端。需要说明的是,对于不在最后一个状态的证据,可以删除掉以释放服务器端的存储空间。
找出T中关于stc的记录e;使用密钥H2(t||stc)对密文e进行解密,得到(stc,ind,op);将密文ind存储在结果R中;将当前密钥stc替换为st,准备下一次解密时使用。
服务器在T中搜索关于stc的记录,如果有,则继续上面的操作。
最后服务器返回搜索结果R和证据hash。
Verify算法:当用户对服务器返回的搜索结果有所怀疑时,希望验证搜索结果的正确性和完整性。客户端需要首先计算R的集合哈希hash′,然后取出客户端存储的证据hash,然后比较hash′、hash和proof,如果三者相等,则说明搜索结果满足正确性和完整性,否则说明服务器有作弊行为。为了提高验证的效率,降低因为验证而带来的额外的存储开销,使用了一种新的验证技术——集合哈希。
验证阶段具体包括:
客户端获得从服务器上得到的搜索证据proof,并从自己的存储∑中取出本地的证据hash。
客户端根据服务器返回的搜索结果R重新计算集合哈希值hash′。
判断hash、hash′和proof三者是否相同,如果相同,则验证通过;否则验证不通过。需要说明的是:因为两个证据都是二进制数据,所以可以通过异或来判断二者是否相同。如果证据异或的结果为0,则说明二者相同;如果结果为1,则二者不相同。
本发明使用到的验证技术,即多重集哈希,多重集哈希是一种哈希函数,与普通哈希函数不同的是:普通哈希函数可以将字符串映射为一个固定长度的字符串,而多重集哈希是将一个多重集映射为一个固定长度的字符串。如果三元组
Figure BDA0002079063330000131
满足如下三条性质:
压缩性:可以把一个多重集M映射为一个基数为2m的集合上的一个元素上;
可比较性:同一个多重集得到的结果应该是相同的;
增量性:集合中新增一个元素,哈希值快速更新,不需要重新进行运算,即
Figure BDA0002079063330000132
则该三元组为MultiSet Hashing Function。同时,一个实际可用的集合哈希函数还应该具有抗碰撞性,即如果两个集合M1和M2不相同,则二者的哈希结果
Figure BDA0002079063330000133
Figure BDA0002079063330000134
也不相同,这种性质被称为抗多重集碰撞性:
现在存在四种多重集哈希函数的构造方式,分别为:
MSet-XOR-Hash:将集合中的每个元素异或在一起,实现对集合的哈希。由于只使用到异或操作,所以这种构造方式和高效。但是由于两个相同的相互异或会得到的一个全零的比特,所以该中构造方式只支持set-collision resistant,而不支持multiset-collision resistant。
MSet-Add-Hash:将集合中的元素映射为大整数,然后将其相加,并进行模运算。这种方式需要使用到哈希函数HK,该哈希函数可以将一个字符串映射为大整数。该种构造方法支持multiset-collision resistant。
MSet-Mu-Hash:基于大整数乘法构造的多重集哈希函数,该种构造方法支持multiset-collision resistant。
MSet-VAdd-Hash:基于SV问题构造的多重集哈希函数,该种构造方法支持multiset-collision resistant。
下面结合附图对本发明的应用原理作进一步的描述。
SSE是为了解决云端密文搜索难题,SSE方案目前共有两类构建策略:基于顺序扫描的SSE构建策略和基于索引的SSE构建策略。前一种支持对文件中任意单词的检索和受控检索,但搜索时间长,效率很低,不适宜在实际生活中应用。目前绝大部分SSE方案都是采用后一种构建策略。基于索引的构建策略将SSE方案的构造划为两个部分:构建索引和加密文件;进行关键字检索时,直接在索引上进行搜索,相比前一种构建策略效率更高。基于索引的基本SSE方案可以描述为五个算法:密钥产生算法、加密算法、陷门产生算法、搜索算法、解密算法。
下面结合附图对本发明的应用原理做详细的描述。首先,给出本发明描述中涉及到的各个符号代表的含义:
表1:符号描述
符号 表述
客户端存储
T 服务器端存储
λ 安全参数
w 关键词
ind 文档标识
st<sub>c</sub> 最新状态
key<sub>c</sub> 最新加密密钥
acc<sub>c</sub> 文档标识的哈希聚集值
op 操作,包括插入和删除两种
如图2所示,本发明包含数据拥有者、云服务器和数据使用者三类实体:数据拥有者:将个人数据外包存储在云服务器上,数据文件在上传之前要先被预处理为w-id形式,对w-id对进行加密处理,并根据w-id信息生成增量索引。数据拥有者还需要将解密密钥分享给其希望授权的用户,被授权的用户称作数据使用者。只有数据使用者可以进行搜索并对搜索结果进行解密。
云服务器:云服务器具有海量存储资源以及充足的计算资源,云服务器需要做到安全地存储数据拥有者上传的数据和索引;忠实地执行数据使用者的查询请求,并返回完整且正确的搜索结果和该搜索结果对应的证据。
数据使用者:数据使用者是被数据拥有者授权的用户,其拥有解密数据文件需要的密钥。在搜索阶段,数据使用者根据所搜索的关键字生成搜索陷门并提交陷门信息到云服务器。在收到云服务器返回的搜索结果和证据之后,数据使用者可以根据证据对云服务器返回的搜索结果进行验证,从而判断搜索结果是否满足正确性和完整性。
Setup阶段:Setup是系统初始化的过程,服务器和客户端要准备好各自的存储数据结构,在本发明中,客户端和服务器均为一个map结构。客户端输入安全参数λ,根据λ初始化存储结构∑,服务器端初始化存储结构T。
在具体实现时,如果使用JAVA语言,则可以采用JDK自带的HashMap或者第三方实现,如hppc等;如果使用C++语言,则可以使用STL中的map。系统初始化之后,客户端和服务器中的存储均为空。
服务器端的存储结构,记作T,用于记录客户端提交的w-ind对信息。在更新阶段,客户端会在本地存储中对关键词w、文件名ind和操作op进行处理,使这些信息整合加密为密文e。服务器需要做的事情就是将该元组插入到存储结构T中。
客户端的存储结构,记作∑,用于存储每个关键词对应的最新状态stc和包含该关键词的所有文档的标识的集合哈希值hash。
服务器端的存储如图3所示,每个状态包含一个w-id信息,同一个w的w-id信息使用一条链连接起来。需要注意的是,这里的“链”其实并不真正存在,“链”的真正含义是后一个状态中包含前一个状态的位置信息st。服务器端的存储类似于单向链表的逻辑结构,单向性保证了数据库的前向安全性,而链表的性质保证了在搜索时服务器可以搜索到所有满足条件的文件名。
在更新操作中,客户端向服务器上传(u,e,hash),服务器只需要把(e,hash)写入到自身的存储中即可。对于服务器来说,由于e是经过加密的,所以其并不能知道该次更新是针对哪一个w进行操作的,因此能保护数据的前向安全。
在搜索操作中,客户端向服务器上传最后第一个状态st,以及该关键词对应的陷门tw。服务器首先根据st找到最后一个状态,然后对该状态对应的密文进行解密,得到上一个状态的位置信息和解密信息。如此循环,直到找到该关键词对应的第一个状态。
客户端的存储如图3所示,客户端需要记录每一个关键词对应的最新状态和最新的集合哈希值hash,最新状态指示了该关键词对应的状态链的最后一个状态的位置;而hash用来对搜索结果进行验。
Update阶段:Update阶段是更新阶段。在该阶段,客户端对要插入或删除的文档进行预处理,得到属于本文档的w-ind对,然后对w-ind对分别处理,得到该关键词对应的最新状态并记录在客户端,最后,将最新的状态提交给服务器;对于服务器而言,需要做的只是将客户端提交的数据添加到数据存储中,以完成更新的全过程。
关于stc的长度的选择:需要注意的是,stc的作用是唯一标识一个状态,所以stc的长度取决于服务器中最多有多少个状态,即m=log2|st|。
客户端首先产生出新的状态stc+1
客户端检查本地存储Σ中是否有w的记录,分为如下两种情况:
如果没有关于w的记录,说明该关键词是第一次出现,在这种情况下,客户端级联代表没有下一个状态的⊥、文档标识ind和操作op。接下来,客户端使用异或加密得到密文e。
如果有关于w的记录,则取出其对应的stc和hash。在这种情况下,客户端级联最新状态stc、文档标识ind和操作op。同样的,客户端使用异或加密得到密文e。
每次更新之后,客户端都更新文档标志符的集合哈希值hash。
客户端将最新状态stc+1和文档集合哈希值hash记录在客户端的存储结构中,并将(u,e,hash)上传至服务器。
服务器端将客户端上传来的(e,hash)记录在服务器中。
Search阶段:在该阶段中,客户端提交搜索关键词对应的陷门信息给服务器;服务器根据陷门信息在数据存储中搜索所有包含该关键词的文档的文件名,并生成该次搜索结果的证据,最后将搜索结果和证据一并返回给客户端。
客户端检查本地存储Σ中是否有w的记录,分为如下两种情况:
如果没有关于w的记录,说明服务器中没有关于该关键词的信息,在这种情况下,客户端可以判断没有任何文档包含该关键词,此时可以直接返回空集合。
如果有关于w的记录,则取出其对应的stc,hash。在这种情况下,客户端将(tw,stc)提交给服务器;将hash留存在客户端,hash在验证时将会被使用到。
服务器在收到(tw,stc)之后,找出T中关于stc的记录e,进行如下的操作:
计算最后一个状态的位置,取出对应的证据proof,该证据将会被返回给客户端。需要指出的是,除了最后一个状态的证据,其他位置的证据可以被删除掉以释放存储空间。
使用密钥H1(t||stc)对密文e进行解密,得到(stc,ind,op)。
将密文ind和操作op的信息存储在结果R中将当前状态stc替换为st,准备下一次解密时使用。
服务器在T中搜索关于st的记录,如果有,则继续循环上面的(2),(3)和(4)操作。最后服务器返回搜索结果R和证据proof。
步骤Verify:在该步骤中,客户端根据证据对服务器返回的搜索结果集合进行正确性和完整性验证。首先根据服务器返回的搜索结果R重新计算集合哈希hash′。然后比较客户端返回的证据proof、客户端存储的集合哈希hash和计算结果hash′进行比较,如果三者完全相同,则验证通过;否则验证失败。
在实际操作中,因为三者都是二进制数据,所以可以通过异或来判断二者是否相同。如果证据异或的结果为0,则说明二者相同;如果结果为1,则二者不相同。
下面结合性能分析对本发明的应用效果作详细的分析。
使用C语言实现了本发明中的方案,使用了crypto++提供的函数来实例化使用到的密码学原语:使用CTR模式下的AES函数实现伪随机函数F,使用SHA-256加密算法实现哈希函数H。将本发明的算法与
Figure BDA0002079063330000171
和FAST方案进行比较,需要指出的是,这四种SSE方案都是前向安全的,但是只有本发明的方案以及
Figure BDA0002079063330000172
可以做到对搜索结果正确性和完整性进行验证。
为了比较的公平性,在四个方案中,均使用RocksDB来存储数据,使用gRPC库来完成客户端和服务器端的交互。另外,所有使用到的文件名的长度都相同,对称加密算法的密钥长度被设置为128bits。使用了一台拥有四核八线程(IntelXeonE5-1620v3,3.50 GHz)的CPU、16GB内存以及1TB的硬盘存储的工作站上进行测试,该工作站上运行的操作系统为Ubuntu14.04LTS。
搜索效率:图5展示了搜索效率的评估结果,正如所看到的,随着搜索结果中文档数目的增加,三个方案中每个匹配文档的平均搜索时间都在降低。这是因为这三个方案的Search协议都包含一些初始化操作,这些初始化操作是一次性的,并且会分摊到搜索结果集中的每一个文档上。所以,平均搜索时间会随着搜索结果中文档数的增加而减少。
Figure BDA0002079063330000181
的搜索效率比FAST和本发明的方案都低,这是因为
Figure BDA0002079063330000182
的搜索操作中涉及到一个陷门置换函数,它是一个公钥密码学原语,因此成为搜索效率的瓶颈。在FAST中,使用一个普通的置换函数(是一个对称密码学原语)替换了陷门置换函数,因此提高了搜索效率;进一步的,本发明的方案去掉了这个置换函数,因此搜索效率比其他两个方案的都高。
更新效率:图6展示了更新效率的评估结果,需要指出的是,在图6中,由RPC通信以及硬盘访问导致的延迟都被包含在了Update效率中。对于这三个方案来说,Update效率的瓶颈在于客户端产生UpdateToken的效率。对于
Figure BDA0002079063330000183
产生UpdateToken的过程包含了一次陷门置换函数和两次哈希函数;而FAST方案中包含一次置换函数和两次哈希函数;在本发明的方案中,产生一个UpdateToken,只需要做两次哈希函数。因此,本发明的方案的更新效率要优于其他两个方案。
验证效率:由于只有
Figure BDA0002079063330000184
可以验证搜索结果的正确性和完整性,所以图7只展示了
Figure BDA0002079063330000185
和本发明的方案的验证效率比较结果。需要指出的是,
Figure BDA0002079063330000186
的作者并没有详细说明自己是如何实例化Verifiable Hash Table的,而Verifiable Hash Table有很多种实例化方法,因此本发明只是使用C++的STL库提供的Map来模拟重新构建VHT的过程。可以看到,随着keyword-document对的增加,两个方案的验证效率的差别也越来越大。这是因为重建VHT的效率和VHT中元素个数成反比。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (4)

1.一种支持验证的前向安全可搜索加密存储方法,其特征在于,所述支持验证的前向安全可搜索加密存储方法包括:用户对明文数据进行加密得到密文数据,根据密文数据建立索引,将密文数据和索引上传到云服务器上;在搜索时,用户提交所搜索关键词的令牌,服务器收到令牌之后,根据令牌信息在密文索引上进行搜索,将搜索结果以及证据返回给用户;用户在收到密文搜索结果以及证据之后,对密文搜索结果解密,得到最终结果;当用户需要验证搜索结果的正确性和完整性时,只需要对证据进行验证;
所述支持验证的前向安全可搜索加密存储方法步骤具体包括:
第一步,采用Setup算法客户端和服务器端分别初始化自己的存储结构;准备处理客户的更新操作;在Setup算法之后,客户端和服务器端都将得到一个空的存储结构;Setup是系统初始化的过程,服务器和客户端要准备好各自的存储数据结构;客户端和服务器均为一个map结构;客户端输入安全参数
Figure DEST_PATH_IMAGE001
,根据
Figure 169923DEST_PATH_IMAGE001
初始化存储结构
Figure 625175DEST_PATH_IMAGE002
,服务器端初始化存储结构
Figure DEST_PATH_IMAGE003
第二步,在Update算法中,客户端将需要插入或删除的文档预处理为key-id对,以key-id为单位进行处理,生成该key-id对的密文和索引,将密文和索引打包发送给服务器;服务器在收到服务器发送的数据之后,将存储在服务器中;另外一方面,在更新时还需要对证据进行更新;客户端首先取出之前的集合哈希值,加入新的关键词得到新的哈希值作为新的证据;该证据需要在客户端和服务器端各存一份;在Update过程中,泄露给服务器和第三方的信息只有一对元组
Figure 852894DEST_PATH_IMAGE004
第三步,客户端对搜索关键词进行处理,生成搜索陷门,将陷门上传给服务器;
第四步,服务器收到搜索陷门之后,在索引上使用Search算法进行搜索,获得匹配的密文数据;在Search算法中,用户提交所搜索关键词的令牌,服务器收到令牌之后,根据令牌信息在密文索引上进行搜索,将搜索结果以及证据返回给用户;用户在收到密文搜索结果以及证据之后,对密文搜索结果解密,得到最终结果;
第五步,服务器使用Verify算法根据搜索结果构建针对搜索结果的证据,并将搜索结果和证据返回给客户端;当用户对服务器返回的搜索结果有所怀疑时,验证搜索结果的正确性和完整性;客户端首先计算
Figure DEST_PATH_IMAGE005
的集合哈希
Figure 887846DEST_PATH_IMAGE006
,然后取出客户端存储的证据
Figure DEST_PATH_IMAGE007
,然后比较
Figure 782990DEST_PATH_IMAGE008
Figure 143564DEST_PATH_IMAGE007
和proof,如果三者相等,则说明搜索结果满足正确性和完整性,否则说明服务器有作弊行为;
第六步,客户端利用证据对数据库返回的搜索结果进行验证;
所述Setup算法的初始化阶段具体包括:
客户端选择系统参数
Figure 796263DEST_PATH_IMAGE001
,客户端根据
Figure 369326DEST_PATH_IMAGE001
初始化自己的存储结构
Figure 259922DEST_PATH_IMAGE002
,该存储结构是一个map结构的数据结构,其key为关键词,value包含该关键词的最新状态
Figure DEST_PATH_IMAGE009
,以及该关键词对应的集合哈希值;
客户端将
Figure 160706DEST_PATH_IMAGE001
发送给服务器端,服务器在接收到系统参数
Figure 35121DEST_PATH_IMAGE001
之后,根据
Figure 411876DEST_PATH_IMAGE001
初始化自己的存储结构
Figure 422557DEST_PATH_IMAGE003
,该存储结构是一个map结构的数据结构,其key为位置信息,value为密文以及集合哈希值,密文信息包括文件名信息、操作信息和前一个状态的位置信息;
所述Update算法更新阶段具体包括:
计算关键词
Figure 656092DEST_PATH_IMAGE010
的陷门
Figure DEST_PATH_IMAGE011
以及集合哈希需要用到的密钥
Figure 548962DEST_PATH_IMAGE012
客户端首先产生出新的状态
Figure DEST_PATH_IMAGE013
客户端检查本地存储
Figure 526145DEST_PATH_IMAGE002
中是否有
Figure 719229DEST_PATH_IMAGE010
的记录,如果没有关于
Figure 123666DEST_PATH_IMAGE010
的记录,说明该关键词是第一次出现;客户端首先随机选择一个
Figure 707094DEST_PATH_IMAGE014
,然后级联代表没有下一个状态的
Figure DEST_PATH_IMAGE015
、文档标识符
Figure 425651DEST_PATH_IMAGE016
和操作
Figure DEST_PATH_IMAGE017
;客户端使用
Figure 738821DEST_PATH_IMAGE018
作为密钥,使用异或加密得到密文
Figure DEST_PATH_IMAGE019
;如果有关于
Figure 517421DEST_PATH_IMAGE010
的记录,则取出其对应的
Figure 588145DEST_PATH_IMAGE020
;客户端级联状态
Figure 907131DEST_PATH_IMAGE009
、操作
Figure 576272DEST_PATH_IMAGE017
和文档标识
Figure 322511DEST_PATH_IMAGE016
;同样的,客户端使用异或加密得到密文
Figure 614952DEST_PATH_IMAGE019
客户端更新文档标志符的集合哈希值
Figure DEST_PATH_IMAGE021
客户端计算位置信息
Figure 940891DEST_PATH_IMAGE022
客户端将最新的状态
Figure DEST_PATH_IMAGE023
以及文档哈希聚集值
Figure 963074DEST_PATH_IMAGE007
记录在客户端的存储结构中,并将位置信息
Figure 83477DEST_PATH_IMAGE022
、密文
Figure 394372DEST_PATH_IMAGE019
和文档哈希
Figure 789582DEST_PATH_IMAGE007
上传至服务器;
服务器端将客户端上传来的数据记录在服务器中;
所述Search算法的搜索阶段具体包括:
客户端检查本地存储
Figure 666271DEST_PATH_IMAGE002
中是否有
Figure 19892DEST_PATH_IMAGE010
的记录,分为如下两种情况,如果没有关于
Figure 490187DEST_PATH_IMAGE010
的记录,说明服务器中没有关于该关键词的信息;客户端判断出没有任何文档包含该关键词,此时直接返回空集合;如果有关于
Figure 689087DEST_PATH_IMAGE010
的记录,则取出其对应的
Figure 357966DEST_PATH_IMAGE009
Figure 944805DEST_PATH_IMAGE007
;在这种情况下,客户端将
Figure 964714DEST_PATH_IMAGE024
提交给服务器;将
Figure 701726DEST_PATH_IMAGE021
留存在客户端,hash在验证时将会被使用到;
服务器在收到
Figure 428373DEST_PATH_IMAGE024
之后,首先取出最后一个状态对应的证据
Figure 123797DEST_PATH_IMAGE007
,该证据将会被返回给客户端;对于不在最后一个状态的证据,删除掉以释放服务器端的存储空间;
找出T中关于stc的记录e;使用密钥H2 (tw||stc)对密文e进行解密,得到(stc,ind,op);将密文ind存储在结果R中;将当前密钥stc替换为st,准备下一次解密时使用;
服务器在T中搜索关于stc的记录,如果有,则继续循环操作;
最后服务器返回搜索结果R和证据hash;
所述Verify算法的验证阶段具体包括:
客户端获得从服务器上得到的搜索证据
Figure DEST_PATH_IMAGE025
,并从自己的存储
Figure 926274DEST_PATH_IMAGE002
中取出本地的证据
Figure 732556DEST_PATH_IMAGE021
;
客户端根据服务器返回的搜索结果
Figure 579290DEST_PATH_IMAGE005
重新计算集合哈希值
Figure 507931DEST_PATH_IMAGE006
;
判断
Figure 236853DEST_PATH_IMAGE007
Figure 581247DEST_PATH_IMAGE006
和proof三者是否相同;如果相同,则验证通过;否则验证不通过;两个证据都是二进制数据,通过异或来判断二者是否相同;如果证据异或的结果为0,则说明二者相同;如果结果为1,则二者不相同。
2.如权利要求1所述的支持验证的前向安全可搜索加密存储方法,其特征在于,所述支持验证的前向安全可搜索加密存储方的验证技术为多重集哈希,多重集哈希是将一个多重集映射为一个固定长度的字符串;如果三元组
Figure 282486DEST_PATH_IMAGE026
满足如下三条性质:
压缩性:把一个多重集M映射为一个基数为
Figure DEST_PATH_IMAGE027
的集合上的一个元素上;
可比较性:
Figure 54133DEST_PATH_IMAGE028
增量性:集合中新增一个元素,哈希值快速更新,不需要重新进行运算,
Figure DEST_PATH_IMAGE029
则该三元组为MultiSet Hashing Function。
3.一种基于权利要求1~2任意一项所述的支持验证的前向安全可搜索加密存储方法的支持验证的前向安全可搜索加密存储系统,其特征在于,所述支持验证的前向安全可搜索加密存储系统包括:
数据拥有者,用于将个人数据外包存储在云服务器上,数据文件在上传之前要先被预处理为
Figure 863826DEST_PATH_IMAGE030
形式,对
Figure DEST_PATH_IMAGE031
对进行加密处理,并根据
Figure 949594DEST_PATH_IMAGE032
信息生成增量索引;数据拥有者将解密密钥分享给其希望授权的用户,被授权的用户称作数据使用者;只有数据使用者进行搜索并对搜索结果进行解密;
云服务器,具有海量存储资源以及充足的计算资源,做到安全地存储数据拥有者上传的数据和索引;忠实地执行数据使用者的查询请求,并返回完整且正确的搜索结果和该搜索结果对应的证据;
数据使用者,是被数据拥有者授权的用户,其拥有解密数据文件需要的密钥;在搜索阶段,数据使用者根据所搜索的关键字生成搜索陷门并提交陷门信息到云服务器;在收到云服务器返回的搜索结果和证据之后,数据使用者根据证据对云服务器返回的搜索结果进行验证,判断搜索结果是否满足正确性和完整性。
4.一种应用权利要求1~2任意一项所述支持验证的前向安全可搜索加密存储方法的云服务器。
CN201910464607.8A 2019-05-30 2019-05-30 一种支持验证的前向安全可搜索加密存储系统及方法 Active CN110334526B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910464607.8A CN110334526B (zh) 2019-05-30 2019-05-30 一种支持验证的前向安全可搜索加密存储系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910464607.8A CN110334526B (zh) 2019-05-30 2019-05-30 一种支持验证的前向安全可搜索加密存储系统及方法

Publications (2)

Publication Number Publication Date
CN110334526A CN110334526A (zh) 2019-10-15
CN110334526B true CN110334526B (zh) 2023-01-03

Family

ID=68140589

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910464607.8A Active CN110334526B (zh) 2019-05-30 2019-05-30 一种支持验证的前向安全可搜索加密存储系统及方法

Country Status (1)

Country Link
CN (1) CN110334526B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111008325B (zh) * 2020-03-10 2020-06-23 支付宝(杭州)信息技术有限公司 数据查询方法、装置、电子设备和系统
CN111552988B (zh) * 2020-04-21 2023-05-02 西安电子科技大学 基于蒙特卡罗抽样的前向安全k近邻检索方法及系统
CN111797431B (zh) * 2020-07-07 2023-04-28 电子科技大学 一种基于对称密钥体制的加密数据异常检测方法与系统
CN112199698B (zh) * 2020-09-30 2023-12-12 华中科技大学 一种健壮的可搜索对称加密方法与系统
CN112311781B (zh) * 2020-10-23 2021-11-12 西安电子科技大学 一种前后向安全且具有可恢复关键字屏蔽的加密方法
CN112182630B (zh) * 2020-10-28 2023-03-03 青岛大学 一种对称可搜索加密方法、装置、设备及介质
CN112800445B (zh) * 2021-01-21 2022-12-09 西安电子科技大学 一种用于密文数据的前后向安全和可验证的布尔查询方法
CN112836222B (zh) * 2021-01-25 2022-12-13 北京航空航天大学 面向智能推荐场景的安全搜索方法及装置
CN112948903A (zh) * 2021-03-24 2021-06-11 中国电子科技集团公司第三十研究所 一种面向大数据存储的密态搜索技术架构及方法
CN113282543B (zh) * 2021-05-20 2022-07-05 支付宝(杭州)信息技术有限公司 具有前向安全的可验证可搜索加密方法、装置以及设备
CN113282542B (zh) * 2021-05-20 2022-07-12 支付宝(杭州)信息技术有限公司 具有前向安全的可验证可搜索加密方法、装置以及设备
CN113468575B (zh) * 2021-07-22 2023-09-19 东北大学 一种支持访问模式隐藏的密态流式数据检索系统及方法
CN114201773B (zh) * 2021-12-13 2024-02-13 合肥工业大学 支持访问时间受限和结果可验证的SkNN查询方法与系统
CN114676449B (zh) * 2022-05-26 2022-10-18 南京畅洋科技有限公司 一种基于可验证数据库的物联网数据可搜索加密方法
CN114900318B (zh) * 2022-06-02 2024-04-19 浙江工商大学 基于密钥协商协议以及可验证的一轮通信可搜索加密方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050235150A1 (en) * 2004-04-19 2005-10-20 Kaler Christopher G Bi-directionally verifying measurable aspects associated with modules, pre-computing solutions to configuration challenges, and using configuration challenges along with other authentication mechanisms
JP4844281B2 (ja) * 2006-08-10 2011-12-28 富士ゼロックス株式会社 ドキュメント管理装置及びプログラム
CN105069358B (zh) * 2015-07-13 2018-09-04 杭州共享汇信息技术有限公司 基于带有存储结构的Bloom过滤器的关键词可搜索加密方法
US10394916B2 (en) * 2016-09-13 2019-08-27 Microsoft Technology Licensing, Llc Personalized search environment
US11170114B2 (en) * 2017-06-06 2021-11-09 City University Of Hong Kong Electronic storage system and a method of data management
CN108055122B (zh) * 2017-11-17 2021-03-23 西安电子科技大学 可验证的防内存泄露动态可搜索加密方法、云服务器
CN108039943B (zh) * 2017-12-06 2020-10-30 清华大学深圳研究生院 一种可验证的加密搜索方法

Also Published As

Publication number Publication date
CN110334526A (zh) 2019-10-15

Similar Documents

Publication Publication Date Title
CN110334526B (zh) 一种支持验证的前向安全可搜索加密存储系统及方法
Ge et al. Towards achieving keyword search over dynamic encrypted cloud data with symmetric-key based verification
US9977918B2 (en) Method and system for verifiable searchable symmetric encryption
Pasupuleti et al. An efficient and secure privacy-preserving approach for outsourced data of resource constrained mobile devices in cloud computing
Jiang et al. Enabling efficient and verifiable multi-keyword ranked search over encrypted cloud data
Etemad et al. Efficient dynamic searchable encryption with forward privacy
US9355271B2 (en) System and method for dynamic, non-interactive, and parallelizable searchable symmetric encryption
Sun et al. Catch you if you lie to me: Efficient verifiable conjunctive keyword search over large dynamic encrypted cloud data
Zhang et al. Towards efficient verifiable forward secure searchable symmetric encryption
Li et al. Secure deduplication storage systems supporting keyword search
KR101190059B1 (ko) 데이터 암호화 방법 및 암호화된 데이터의 결합 키워드 검색방법
CN111523133B (zh) 一种区块链与云端数据协同共享方法
Li et al. Integrity-verifiable conjunctive keyword searchable encryption in cloud storage
CN110069946B (zh) 一种基于sgx的安全索引系统
CN106776904A (zh) 一种不可信云计算环境中支持动态验证的模糊查询加密方法
CN113221155B (zh) 一种多层级与多等级加密的云储存系统
CN113254955A (zh) 前向安全的连接关键词对称可搜索加密方法、系统及应用
Liu et al. An improved dynamic provable data possession model
CN115225409B (zh) 基于多备份联合验证的云数据安全去重方法
Bakas et al. Power range: Forward private multi-client symmetric searchable encryption with range queries support
Wen et al. BDO-SD: An efficient scheme for big data outsourcing with secure deduplication
Kissel et al. Verifiable phrase search over encrypted data secure against a semi-honest-but-curious adversary
Zuo et al. Forward and backward private dynamic searchable symmetric encryption for conjunctive queries
Ma et al. CP-ABE-based secure and verifiable data deletion in cloud
US20240015014A1 (en) Dynamic and verifiable searchable encryption method and system based on updatable encryption and blockchain

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