CN110851848B - 对称可搜索加密的隐私保护方法 - Google Patents

对称可搜索加密的隐私保护方法 Download PDF

Info

Publication number
CN110851848B
CN110851848B CN201911100834.9A CN201911100834A CN110851848B CN 110851848 B CN110851848 B CN 110851848B CN 201911100834 A CN201911100834 A CN 201911100834A CN 110851848 B CN110851848 B CN 110851848B
Authority
CN
China
Prior art keywords
preprocessor
result
query
user
cloud server
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
CN201911100834.9A
Other languages
English (en)
Other versions
CN110851848A (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 Zhangzhong Cloud Technology Co ltd
Original Assignee
Guangxi Normal 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 Guangxi Normal University filed Critical Guangxi Normal University
Priority to CN201911100834.9A priority Critical patent/CN110851848B/zh
Publication of CN110851848A publication Critical patent/CN110851848A/zh
Application granted granted Critical
Publication of CN110851848B publication Critical patent/CN110851848B/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/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • G06F16/152File search processing using file content signatures, e.g. hash values
    • 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

Landscapes

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

Abstract

本发明公开一种对称可搜索加密的隐私保护方法,利用B+树和Bloom Filter建立安全索引,利用验证器来验证服务器反馈的查询结果的完整性和新鲜度,并且设计了一种Bloom Filter验证器,用户通过它可以验证所查询关键字不存在的情况。本发明不仅提高了效率,在确保了数据的可验证性同时,而且还大大提高了当用户所查询的关键字不存在的情况下云服务器的查询效率。本发明面向云存储数据的隐私保护策略,数据存储到云端并且不失操作性和管理性。

Description

对称可搜索加密的隐私保护方法
技术领域
本发明涉及数据隐私保护技术领域,具体涉及一种对称可搜索加密的隐私保护方法。
背景技术
随着云计算技术的不断发展,越来越多的政府、企业、个人都开始使用云来存储各种各样的文件。云存储不仅可以节约用户本地有限的存储资源,而且可以随时随地的访问存储在云端的数据资源。目前比较流行的云存储系统有Amazon、iCloud、百度云等。但是云存储也面临着隐私泄露的风险,所以需要一种技术来为用户的数据隐私提供安全保障。
为了防止用户存储在云端数据的隐私泄露,Song等人提出了一种基于密文的可搜索加密方案,Boneh等人利用密码学中的非对称加密技术设计出非对称可搜索的加密方案,但是上述的两种方案均不能阻止服务器发起重放攻击和完整性攻击,当用户所查询的关键字为空时,仍需要按部就班的进行查询,并没有提高关键字不存在时的查询效率。另外,现有的加密的技术均假设云服务器是可信或者是诚实但好奇的,这种假设可以理解为服务器遵守相关的协议,但不能排除服务器可以从用户的查询结果等操作中推断出相关的内容,这种假设并不总是成立。
发明内容
本发明所要解决的是现有云存储加密方法的效率和安全性不高的问题,提供一种对称可搜索加密的隐私保护方法,其具有高效、安全和可验证的特点。
为解决上述问题,本发明是通过以下技术方案实现的:
对称可搜索加密的隐私保护方法,具体包括步骤如下:
步骤1、数据拥有者根据关键字-文档列表建立键值对,并对键值对进行加密后,利用加密后的键值对建立B+树,生成的安全索引;
步骤2、数据拥有者对步骤1的B+树进行哈希生成树根,并对该树根和时间戳进行联合加密,得到当前时刻的结果预处理器;再对当前时刻的结果预处理器进行签名,得到当前时刻的签名结果预处理器;后将当前结果预处理器和当前签名结果预处理器组合成当前时刻的结果验证器;
步骤3、数据拥有者先对带有计数功能的布隆过滤器、时间戳和前一时刻的布隆加密器进行联合加密,得到当前时刻的布隆预处理器;再对当前时刻的布隆预处理器进行签名,得到当前时刻的签名布隆预处理器;后将当前时刻的布隆预处理器和当前时刻的签名布隆预处理器组合成当前时刻的布隆验证器;
步骤4、数据拥有者对每个关键字的文档集进行加密后,生成密文文档集;
步骤5、数据拥有者将步骤1-4所得到的安全索引、结果验证器、布隆验证器和所有密文文档集发送给云服务器;
步骤6、用户对所需查询的关键字进行加密后生成查询令牌,并将查询令牌发送给云服务器;
步骤7、当云服务器收到来自用户的查询令牌时,先将该查询令牌哈希到一个新的布隆过滤器中,并将这一新的布隆过滤器与云服务器中包含所有令牌的带有计数功能的布隆过滤器中的一维布隆过滤器进行比较,以确定用户查询令牌是否存在于云服务器中的索引列表中:
当用户查询令牌存在时,云服务器根据安全索引生成除令牌外的其他结点组成的证明列表,并将含有查询令牌的密文文档集、证明列表、与用户查询时间点的结果验证器即查询点结果验证器、以及与用户查询时间最近的更新时间点的结果验证器即更新点结果验证器一并送给用户,并执行步骤8;
当用户查询令牌不存在时,云服务器将最新时间点的布隆验证器发送给用户,并执行步骤12;
步骤8、用户对查询点结果验证器和更新点结果验证器进行解密后,得到查询点结果预处理器和更新点结果预处理器,并比较查询点结果预处理器和更新点结果预处理器是否相等:
如果查询点结果预处理器和更新点结果预处理器相等,则用户进一步对查询点结果预处理器和更新点结果预处理器进行解签名,得到查询点解签名结果预处理器和更新点解签名结果预处理器,并比较询点解签名结果预处理器和更新点解签名结果预处理器是否相等:
如果查询点解签名结果预处理器和更新点解签名结果预处理器相等,则执行步骤9;
如果查询点解签名结果预处理器和更新点解签名结果预处理器不相等,则用户拒绝云服务器返回的含有查询令牌的密文文档集;
如果查询点结果预处理器和更新点结果预处理器不相等,则用户拒绝云服务器返回的含有查询令牌的密文文档集;
步骤9、用户先对云服务器返回的含有查询令牌的密文文档集进行解密后,得到含有查询令牌的解密文档集;再对含有查询令牌的解密文档集进行加密后,生成含有查询令牌的加密后的文档集;后利用含有查询令牌的加密后的文档集和证明列表构建B+树,并对该B+树进行哈希生成第一树根;
步骤10、用户对查询点结果预处理器进行解密后得到第二树根;
步骤11、将步骤9所得第一树根和步骤10所得第二树根进行比较:如果两者相等,则证明云服务器返回的含有查询令牌的密文文档集是完整的,用户接受云服务返回的含有查询令牌的密文文档集;如果两者不相等,则用户拒绝云服务器返回的结果;
步骤12、用户对云服务器返回的最新时间点的布隆验证器进行解密和解签名后,得到解密后的带有计数功能的布隆过滤器;再将查询令牌哈希到一个新的布隆过滤器中,并将这一新的布隆过滤器与解密后的带有计数功能的布隆过滤器中的一维布隆过滤器进行比较,以确定用户查询令牌是否真的存在于云服务器中的索引列表中:如果查询令牌真的存在,则表明云服务器是是恶意的;如果查询令牌真的不存在,则表明云服务器是是非恶意的。
上述方案中,带有计数功能的布隆过滤器由一维计数数组和一维布隆过滤器组成;一维布隆过滤器的每一位为0或1,即有关键字的令牌哈希到该位上时,该位记录为1,没有关键字的令牌哈希到该位上时,该位记录为0;一维计数数组的每一位与一维布隆过滤器的每一位一一对应,用于记录一维布隆过滤器对应位上出现1的次数。
与现有技术相比,本发明利用B+树和Bloom Filter建立安全索引,利用验证器来验证服务器反馈的查询结果的完整性和新鲜度,并且设计了一种Bloom Filter验证器,用户通过它可以验证所查询关键字不存在的情况。本发明不仅提高了效率,在确保了数据的可验证性同时,而且还大大提高了当用户所查询的关键字不存在的情况下云服务器的查询效率。本发明面向云存储数据的隐私保护策略,数据存储到云端并且不失操作性和管理性。
附图说明
图1为对称可搜索加密的隐私保护方法的原理图。
图2为关键字-文件列表。
图3为图2对应的B+树安全索引。
图4为带有计数功能的Bloom Filter(CBF)的原理图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实例,对本发明进一步详细说明。
本发明基于数据拥有者-用户-云服务器三方模型的高效、安全、可验证的对称可搜索加密的隐私保护方法。数据拥有者对数据进行加密,然后将加密的数据存储在云服务器上。由数据拥有者授权的用户可以对云服务器上的数据进行查询,云服务器返回给用户查询结果。当用户收到查询结果时,用户需要验证结果的完整性和新鲜度。完整性是检查结果是否包含所有的文件,新鲜度是检测云服务器是否把最新版本的数据结果发送给用户,而不是历史版本的查询结果返回给用户。数据拥有者可以对云端的数据进行管理,授权用户拥有查询和验证的功能,云服务器有存储和进行查询的功能。参见图1。
本发明所提出的一种对称可搜索加密的隐私保护方法,其具体包括步骤如下:
(1)建立阶段
步骤1:数据拥有者生成3个密钥k1、k2、k3和一对密钥(ssk,spk),并关键字-文档列表建立键值对<ωi,Di>;其中ssk表示私钥,spk表示公钥,ωi表示第i个关键字,Di表示包含第i个关键字ωi的文档集。
数据拥有者根据密码学中对称可搜索加密的的密钥生成的算法Gen生成3个私有密钥k1、k2、k3
数据拥有者根据密码学中的非对称加密的秘钥生成算法生成一对密钥(ssk,spk)(私钥和公钥),其中数据拥有者利用ssk进行数字签名,授权用户用spk进行验证。
数据拥有者根据关键字-文档列表Δ建立键值对(ωi,Di),其中其中ωi表示第i个关键字,Di表示包含第i个关键字ωi的文档集,其中i=1,2,…。假设包含10个关键字,关键字对应的token如图2所示,关键字存在于哪些文件也在下表中体现。Token是由关键字通过哈希函数哈希得到的,值H1是由关键字ω1对应的文件f1,f2的文件名进行哈希得到的。
(2)初始化阶段
步骤2、数据拥有者利用密钥k1和密钥k2对键值对<ωi,Di>进行加密后,得到加密后的键值对<Tωi,Vωi>。
对于关键字-文档列表中的每个关键字ω∈△,对于列表△中每个<ωi,Di>键值对我们都要进行如下计算:
步骤2.1、数据拥有者利用基于密钥k1的伪随机函数F对每个关键字ωi进行加密后,得到关键字ωi加密后所对应的令牌Tωi
Figure BDA0002269813510000041
即对于每个关键字ωi,要利用密码学中的伪随机函数F和密钥k1计算每个关键字ωi的所对应的token即
Figure BDA0002269813510000043
这样每个关键字都有唯一token与之对应,这样云服务器就不能学习到任何关键字的明文形式。
步骤2.2、数据拥有者先利用基于密钥k2的伪随机函数G分别对包含关键字ωi的每个文档fi进行加密得到加密文件,再利用抗冲突哈希函数IH对所有加密文件进行加密后,得到加密后的文档集Vωi;其中fi∈Di
Figure BDA0002269813510000042
即对于每个包含ωi的文档fi利用密码学中的伪随机函数G进行计算,并再用密码学中的抗冲突的增量哈希函数IH进行哈希,这样使的云服务器无法对关键字所对应文档进行修改。因为只要修改一点内容,哈希函数得出的结果就会改变(这里的fi不是数据的内容,而是文档的名字标识)。
步骤2.3、基于步骤2.2和2.3得到的加密后的键值对<Tωi,Vωi>。
步骤3、数据拥有者先利用所有加密后的键值对<Tωi,Vωi>建立B+树安全索引I,再利用密码学中的哈希函数将B+树从叶子结点开始到根的每个结点进行哈希生成一个树根root。图3为图2对应的B+树安全索引。
步骤4、数据拥有者生成结果验证器π。
首先,利用密钥k3对树根root和时间戳tp进行联合加密,得到当前更新时刻的结果预处理器α;其中
Figure BDA00022698135100000514
Enc为密码学中的对称加密算法。
接着,利用私钥ssk对当前更新时刻的结果预处理器α进行签名,得到当前更新时刻的签名后的结果预处理器Sigssk(α)。
最后,将当前更新时刻的结果预处理器α和当前更新时刻的签名后的结果预处理器Sigssk(α)组合成当前更新时刻的结果验证器π;其中π=(α,Sigssk(α))。
步骤5、数据拥有者当前时刻的布隆验证器
Figure BDA0002269813510000051
为了确保云服务器返回给用户一个完整的和非历史版本的查询结果,数据拥有者将加密的数据、安全索引和验证器存储在云服务器上。安全索引是基于B+树和一个特定CBF。上述CBF为带有计数功能的布隆过滤器(Bloom Filter),此CBF是由一维计数数组和一维布隆过滤器组成,一维布隆过滤器的每一位为0或1,即有关键字的令牌哈希到该位上时,该位记录为1(无论多少个关键字哈希到该位均为1),没有关键字的令牌哈希到该位上时,该位记录为0;一维计数数组的每一位与一维布隆过滤器的每一位一一对应,用于记录一维布隆过滤器对应位上出现1的次数。图4为带有计数功能的布隆过滤器,假设有两个关键字为A、B,他们对应的令牌为tokenA和toeknB,通过三个哈希函数将关键字A,B的令牌哈希到三个位置,用一维计数数组对一维布隆过滤器中的每一位“1”进行计数。这样便可以将本身不可进行更新布隆,通过增加一个一维数组就使其变为可更新的。当添加关键字时,通过哈希函数将token哈希到Bloom Filter中相对应的位,新哈希的位所对相应的数组位进行加1操作;当进行删除关键字时,关键字的token对应数组的位进行减1操作。验证器由数据拥有者生成,其作用是供用户验证查询结果的完整性和新鲜度。
首先,利用密钥k3对带有计数功能的布隆过滤器CBF、时间戳tp和前一时刻的布隆加密器
Figure BDA0002269813510000052
(如果数据拥有者第一次生成布隆验证器
Figure BDA0002269813510000053
则历史版本的
Figure BDA0002269813510000054
为空)进行联合加密后得到当前更新时刻的布隆预处理器
Figure BDA0002269813510000055
其中
Figure BDA0002269813510000056
Enc为密码学中的对称加密算法。
接着,利用公钥ssk对当前时刻的布隆预处理器
Figure BDA0002269813510000057
进行签名,得到当前更新时刻的签名后的布隆预处理器
Figure BDA0002269813510000058
最后,将当前更新时刻的布隆预处理器
Figure BDA0002269813510000059
和当前时刻的签名后的布隆预处理器
Figure BDA00022698135100000510
组合成当前时刻的布隆验证器
Figure BDA00022698135100000511
其中
Figure BDA00022698135100000512
布隆验证器
Figure BDA00022698135100000513
是为了解决当用户查询的关键字不存在时,为了节省云服务器端的计算开销和通信开销。本方案利用Bloom Filter验证器πbf来解决用户查询的关键字不存在的情况,同时大大提高了查询效率。
步骤6、数据拥有者利用基于密钥k2的对称加密算法对每个关键字ωi的文档集Di进行加密后,生成密文文档集
Figure BDA0002269813510000061
Figure BDA0002269813510000062
即密码学中的对称加密算法将ωi所对应的文档Di加密生成密文文档
Figure BDA0002269813510000063
步骤7、数据拥有者将生成的B+树的安全索引I、生成的结果验证器π、当前版本的布隆验证器
Figure BDA0002269813510000064
和所有加密后的文档
Figure BDA0002269813510000065
发送给云服务器
(3)用户发起查询阶段
步骤8、用户利用基于k1的伪随机函数F对所需查询的关键字ω进行计算,生成关键字ω的查询令牌(token)Tω,并将令牌发送给云服务器。
如果由数据拥有者授权的用户想对云服务器端数据拥有者的内容进行查询,那么用户需要先利用基于k1伪随机函数F生成所查询关键字ω的查询令牌Tω,即
Figure BDA0002269813510000066
将查询令牌Tω发送给云服务器。
(4)云服务器响应用户的查询阶段
当授权的用户进行查询时,用户将关键字的token(令牌)发送给云服务器;云服务器收到token时,首先利用Bloom Filter判断用户所查询的token是否存在,如果存在将发送给用户查询结果、验证器和证明列表;如果不存在,云服务器将发送Bloom Filter验证器给用户。当用户收到来自云服务器的查询结果时,要对结果进行验证,验证其结果的完整性和新鲜度。通过验证,用户可以确定云服务器是否是恶意的。
云服务器利用哈希函数将关键字的token哈希到Bloom Filter中,当授权的用户进行查询时,云服务器需要将用户所查询的关键字哈希到一个新的Bloom Filter中,然后将两个Bloom Filter进行比对,云服务器检查用户所查询的关键字是否存在。BloomFilter确定一个关键字是否存在是需要O(1)的平均时间复杂度,这样可以大大减少云服务器端的通信开销和计算开销。当用户所查询的关键字存在于Bloom Filter中,云服务器进行查询操作,将关键字所对应的加密文档返回给用户,和不包含关键字的其他关键字的证明列表和数据拥有者存在云服务器上的验证器(此验证器由B+树从底到根利用哈希函数生成一个根和时间戳两部分构成。)返回给用户。当用户收到云服务器的列表和所查关键字的加密文档时,要对结果进行验证。用户通过重新构建B+树,然后生成验证器与云服务器返回的验证器进行比较。通过比较B+树的根,来确定查询结果的完整性;通过比较验证器中的时间戳来确定查询结果的新鲜度。若相同,则查询结果正确;否则,云服务器是恶意的。另一种情况是,当用户所查询的token不存在时,云服务器只需要返回给用户一个Bloom Filter验证器。用户可以利用Bloom Filter验证器来验证所查关键字是否真的不存在,同时可以验证云服务器是否执行恶意行为。Bloom Filter验证器由带有计数功能的Bloom Filter、时间戳进行加密并由数据拥有者对其进行签名构成。用户通过解密此验证器,将所查询的关键字与解密出的Bloom Filter进行比较即可验证。由于服务器并总是可信的,所以用户需要对结果进行验证,如果服务器要是恶意的,用户也需要向服务器收取相应的违约金。
步骤9、当云服务器收到来自用户的查询令牌Tω时,先将该查询令牌Tω哈希到一个新的布隆过滤器中,并将这一新的布隆过滤器与云服务器中包含所有令牌的带有计数功能的布隆过滤器进行比较,以确定用户查询的令牌是否存在于云服务器中的索引列表中。
当包含所有令牌的带有计数功能的布隆过滤器与将用户所查询的关键字通过哈希函数哈希到新的布隆过滤器器进行异或运算,如果结果为1,则说用用户查询的关键字存在。
云服务器需要将所有的加密关键字哈希到带有统计功能的Bloom Filter中(只需要建立一次,后面其他用户的查询不需要重新生成),此Bloom Filter支持添加、删除操作。
情况1:当用户查询的令牌Tω存在时,云服务器根据B+树安全索引I生成除令牌外的其他结点组成的证明列表ρ,并将含有查询令牌的密文文档集
Figure BDA0002269813510000071
证明列表ρ、与用户查询时间点的结果验证器
Figure BDA0002269813510000072
以及与用户查询时间最近的更新时间点的结果验证器πc一并送给用户。
证明列表ρ是云服务器根据B+树索引生成除了查询令牌以外其他结点组成的,证明列表ρ是从叶子结点到根依次生成的。
Figure BDA0002269813510000073
和πc均是数据拥有者生成存储在云服务器端的结果验证器π,其中
Figure BDA0002269813510000074
是与用户查询时间相匹配的结果验证器π;πc是更新点的验证器结果验证器π。因为时间戳机制是由数据拥有者确定多长时间进行更新的时间间隔,
Figure BDA0002269813510000075
和πc可能相同也可能不相同。
情况2:当用户查询的令牌Tω不存在时:云服务器将最新时间点的布隆验证器发送给用户。
(5)用户对云服务器返回的结果进行验证阶段
当用户收到云服务器的查询结果时,需要对结果进行验证,来检查结果的完整性和是不是最新版本的查询结果。
情况1:当用户查询的令牌存在时:
1)检查搜索结果是否是最新的数据,而不是历史版本的数据。
用户利用密钥为k3的对称可搜索加密的解密算法对查询点结果验证器
Figure BDA0002269813510000076
和更新点结果验证器πc进行解密后,得到查询点结果预处理器
Figure BDA0002269813510000077
和更新点结果预处理器αc,其中
Figure BDA0002269813510000078
如果查询点结果预处理器
Figure BDA0002269813510000079
和更新点结果预处理器αc相等,则用户进一步利用公钥spk对查询点结果预处理器
Figure BDA00022698135100000710
和更新点结果预处理器αc进行解签名后,得到查询点解签名结果预处理器和更新点解签名结果预处理器:
如果查询点解签名结果预处理器
Figure BDA00022698135100000711
和更新点解签名结果预处理器αc=(Sigc)spk相等,则接收用户接受云服务器返回的结果,并采用后续步骤对返回结果进行处理;
如果查询点解签名结果预处理器
Figure BDA0002269813510000081
和更新点解签名结果预处理器αc=(Sigc)spk不相等,则证明云服务器的对结果进行修改,即云服务器是恶意的,用户不接受云服务器返回的结果;
如果查询点结果预处理器
Figure BDA0002269813510000082
和更新点结果预处理器αc不相等,则证明云服务器的对结果进行修改,即云服务器是恶意的,用户不接受云服务器返回的结果。
2)用户对云服务器返回的结果进行处理时,
2.1)用户先利用密钥为k2的对称可搜索解密算法对云服务器返回的含有用户所查询令牌的密文文档集进行解密后,得到含有用户所查询令牌的解密文档集;
2.2)利用密钥为k2的对称可搜索解密算法对含有查询令牌的解密文档集进行加密后,生成含有查询令牌的加密后的文档集,
Figure BDA0002269813510000083
2.3)用户先将
Figure BDA0002269813510000084
进行解密;再根据下面这个算法进行
Figure BDA0002269813510000085
计算生成Vω;后根据Vω和证明列表p构建B+树,然后生成树根root’;
2.4)用户通过查询点结果预处理器
Figure BDA0002269813510000086
进行解密后生成树根root”;
2.5)将第一树根root’和第二树根root”进行比较:如果两者相等,则证明云服务器返回的含有查询令牌的密文文档集是完整的;如果两者不相等,则表明云服务器就是恶意的或者发送了部分的查询结果,用户拒绝云服务器返回的结果。
情况2:当用户查询的令牌不存在时:
用户先利用密钥为k3的对称可搜索解密算法和公钥spk对云服务器返回的最新时间点的布隆验证器进行解密和解签名后,得到解密后的带有计数功能的布隆过滤器;再将查询令牌哈希到一个新的布隆过滤器中,并将这一新的布隆过滤器与解密后的带有计数功能的布隆过滤器进行比较,以确定用户查询令牌是否真的存在于云服务器中的索引列表中。
用户用户通过Bloom Filter验证器πbf来验证所查询的关键字是否是真的不存在。因为Bloom Filter验证器中包含所有的关键字的token,它是经过数据拥有者进行签名的,所以云服务器无法伪造。用户只需要将自己所查询的关键字利用哈希函数哈希到一个新的Bloom Filter中,只需要将用户自己生成的Bloom Filter与解密出验证器中Bloom Filter进行比较,就可以确定所查询的关键字是否是真的不存在。如果查询令牌真的存在,则表明云服务器是是恶意的;如果查询令牌真的不存在,则表明云服务器是是非恶意的。
当解密出验证器中Bloom Filter与用户自己通过哈希函数哈希到新的布隆过滤器进行异或运算,如果结果为1,则说明用户查询的关键字存在。
表明用户查询的令牌存在于云服务器中的索引列表中,此时表明云服务器是是恶意的;否则,表明用户查询的令牌不存在于云服务器中的索引列表中,此时表明云服务器是是非恶意的。
需要说明的是,尽管以上本发明所述的实施例是说明性的,但这并非是对本发明的限制,因此本发明并不局限于上述具体实施方式中。在不脱离本发明原理的情况下,凡是本领域技术人员在本发明的启示下获得的其它实施方式,均视为在本发明的保护之内。

Claims (2)

1.对称可搜索加密的隐私保护方法,其特征是,具体包括步骤如下:
步骤1、数据拥有者根据关键字-文档列表建立键值对,并对键值对进行加密后,利用加密后的键值对建立B+树,生成的安全索引;
步骤2、数据拥有者对步骤1的B+树进行哈希生成树根,并对该树根和时间戳进行联合加密,得到当前时刻的结果预处理器;再对当前时刻的结果预处理器进行签名,得到当前时刻的签名结果预处理器;后将当前结果预处理器和当前签名结果预处理器组合成当前时刻的结果验证器;
步骤3、数据拥有者先对带有计数功能的布隆过滤器、时间戳和前一时刻的布隆加密器进行联合加密,得到当前时刻的布隆预处理器;再对当前时刻的布隆预处理器进行签名,得到当前时刻的签名布隆预处理器;后将当前时刻的布隆预处理器和当前时刻的签名布隆预处理器组合成当前时刻的布隆验证器;
步骤4、数据拥有者对每个关键字的文档集进行加密后,生成密文文档集;
步骤5、数据拥有者将步骤1-4所得到的安全索引、结果验证器、布隆验证器和所有密文文档集发送给云服务器;
步骤6、用户对所需查询的关键字进行加密后生成查询令牌,并将查询令牌发送给云服务器;
步骤7、当云服务器收到来自用户的查询令牌时,先将该查询令牌哈希到一个新的布隆过滤器中,并将这一新的布隆过滤器与云服务器中包含所有令牌的带有计数功能的布隆过滤器中的一维布隆过滤器进行比较,以确定用户查询令牌是否存在于云服务器中的索引列表中:
当用户查询令牌存在时,云服务器根据安全索引生成除令牌外的其他结点组成的证明列表,并将含有查询令牌的密文文档集、证明列表、与用户查询时间点的结果验证器即查询点结果验证器、以及与用户查询时间最近的更新时间点的结果验证器即更新点结果验证器一并送给用户,并执行步骤8;
当用户查询令牌不存在时,云服务器将最新时间点的布隆验证器发送给用户,并执行步骤12;
步骤8、用户对查询点结果验证器和更新点结果验证器进行解密后,得到查询点结果预处理器和更新点结果预处理器,并比较查询点结果预处理器和更新点结果预处理器是否相等:
如果查询点结果预处理器和更新点结果预处理器相等,则用户进一步对查询点结果预处理器和更新点结果预处理器进行解签名,得到查询点解签名结果预处理器和更新点解签名结果预处理器,并比较询点解签名结果预处理器和更新点解签名结果预处理器是否相等:
如果查询点解签名结果预处理器和更新点解签名结果预处理器相等,则执行步骤9;
如果查询点解签名结果预处理器和更新点解签名结果预处理器不相等,则用户拒绝云服务器返回的含有查询令牌的密文文档集;
如果查询点结果预处理器和更新点结果预处理器不相等,则用户拒绝云服务器返回的含有查询令牌的密文文档集;
步骤9、用户先对云服务器返回的含有查询令牌的密文文档集进行解密后,得到含有查询令牌的解密文档集;再对含有查询令牌的解密文档集进行加密后,生成含有查询令牌的加密后的文档集;后利用含有查询令牌的加密后的文档集和证明列表构建B+树,并对该B+树进行哈希生成第一树根;
步骤10、用户对查询点结果预处理器进行解密后得到第二树根;
步骤11、将步骤9所得第一树根和步骤10所得第二树根进行比较:如果两者相等,则证明云服务器返回的含有查询令牌的密文文档集是完整的,用户接受云服务返回的含有查询令牌的密文文档集;如果两者不相等,则用户拒绝云服务器返回的结果;
步骤12、用户对云服务器返回的最新时间点的布隆验证器进行解密和解签名后,得到解密后的带有计数功能的布隆过滤器;再将查询令牌哈希到一个新的布隆过滤器中,并将这一新的布隆过滤器与解密后的带有计数功能的布隆过滤器中的一维布隆过滤器进行比较,以确定用户查询令牌是否真的存在于云服务器中的索引列表中:如果查询令牌真的存在,则表明云服务器是恶意的;如果查询令牌真的不存在,则表明云服务器是非恶意的。
2.根据权利要求1所述的对称可搜索加密的隐私保护方法,其特征是,带有计数功能的布隆过滤器由一维计数数组和一维布隆过滤器组成;一维布隆过滤器的每一位为0或1,即有关键字的令牌哈希到该位上时,该位记录为1,没有关键字的令牌哈希到该位上时,该位记录为0;一维计数数组的每一位与一维布隆过滤器的每一位一一对应,一维计数数组的每一位记录一维布隆过滤器对应位上出现1的次数。
CN201911100834.9A 2019-11-12 2019-11-12 对称可搜索加密的隐私保护方法 Active CN110851848B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911100834.9A CN110851848B (zh) 2019-11-12 2019-11-12 对称可搜索加密的隐私保护方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911100834.9A CN110851848B (zh) 2019-11-12 2019-11-12 对称可搜索加密的隐私保护方法

Publications (2)

Publication Number Publication Date
CN110851848A CN110851848A (zh) 2020-02-28
CN110851848B true CN110851848B (zh) 2022-03-25

Family

ID=69600528

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911100834.9A Active CN110851848B (zh) 2019-11-12 2019-11-12 对称可搜索加密的隐私保护方法

Country Status (1)

Country Link
CN (1) CN110851848B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113157778B (zh) * 2021-06-09 2021-09-24 富算科技(上海)有限公司 分布式数据仓库的可代理查询方法、系统、设备及介质
CN115361218B (zh) * 2022-08-23 2024-02-23 西安电子科技大学 一种具有查询隐匿特性的云端数据存在性验证方法
CN117540430A (zh) * 2023-12-07 2024-02-09 北方工业大学 隐私数据的安全共享方法和系统

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101944134A (zh) * 2010-10-18 2011-01-12 江苏大学 一种海量存储系统的元数据服务器和元数据索引方法
CN103412917A (zh) * 2013-08-08 2013-11-27 广西大学 一种可扩展的多类型领域数据协调管理的数据库系统和管理方法
CN104394155A (zh) * 2014-11-27 2015-03-04 暨南大学 可验证完整性和完备性的多用户云加密关键字搜索方法
CN104408177A (zh) * 2014-12-15 2015-03-11 西安电子科技大学 基于云文档系统的密文检索方法
CN106776904A (zh) * 2016-11-30 2017-05-31 中南大学 一种不可信云计算环境中支持动态验证的模糊查询加密方法
CN106874516A (zh) * 2017-03-15 2017-06-20 电子科技大学 一种云存储中基于kcb树和布隆过滤器的高效密文检索方法
CN107330094A (zh) * 2017-07-05 2017-11-07 湖南大学 动态存储键值对的布鲁姆过滤器树结构及键值对存储方法
CN110176984A (zh) * 2019-05-28 2019-08-27 创意信息技术股份有限公司 一种用于安全字符串模式匹配的数据结构构造及匹配方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101944134A (zh) * 2010-10-18 2011-01-12 江苏大学 一种海量存储系统的元数据服务器和元数据索引方法
CN103412917A (zh) * 2013-08-08 2013-11-27 广西大学 一种可扩展的多类型领域数据协调管理的数据库系统和管理方法
CN104394155A (zh) * 2014-11-27 2015-03-04 暨南大学 可验证完整性和完备性的多用户云加密关键字搜索方法
CN104408177A (zh) * 2014-12-15 2015-03-11 西安电子科技大学 基于云文档系统的密文检索方法
CN106776904A (zh) * 2016-11-30 2017-05-31 中南大学 一种不可信云计算环境中支持动态验证的模糊查询加密方法
CN106874516A (zh) * 2017-03-15 2017-06-20 电子科技大学 一种云存储中基于kcb树和布隆过滤器的高效密文检索方法
CN107330094A (zh) * 2017-07-05 2017-11-07 湖南大学 动态存储键值对的布鲁姆过滤器树结构及键值对存储方法
CN110176984A (zh) * 2019-05-28 2019-08-27 创意信息技术股份有限公司 一种用于安全字符串模式匹配的数据结构构造及匹配方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
B-树和bloom filter相结合的IPv6路由查找算法;姚明;《计算机应用研究》;20190930;第2764-2768页 *

Also Published As

Publication number Publication date
CN110851848A (zh) 2020-02-28

Similar Documents

Publication Publication Date Title
CN109829326B (zh) 基于区块链的跨域认证与公平审计去重云存储系统
CN111130757B (zh) 一种基于区块链的多云cp-abe访问控制方法
CN110602099B (zh) 基于可验证的对称可搜索加密的隐私保护方法
US9977918B2 (en) Method and system for verifiable searchable symmetric encryption
CN109614818B (zh) 可授权的基于身份的带关键词搜索加密方法
CN110213042A (zh) 一种基于无证书代理重加密的云数据去重方法
CN106131048B (zh) 一种用于区块链的非信任远程交易文件安全存储系统
Rady et al. Integrity and confidentiality in cloud outsourced data
US20100005318A1 (en) Process for securing data in a storage unit
CN110851848B (zh) 对称可搜索加密的隐私保护方法
Li et al. Integrity-verifiable conjunctive keyword searchable encryption in cloud storage
Liu et al. An improved dynamic provable data possession model
CN109949035B (zh) 区块链数据隐私控制方法、装置及系统
CN112532650A (zh) 一种基于区块链的多备份安全删除方法、系统
Rashid et al. Secure enterprise data deduplication in the cloud
Wen et al. BDO-SD: An efficient scheme for big data outsourcing with secure deduplication
CN115208628B (zh) 基于区块链的数据完整性验证方法
CN113918528A (zh) 一种基于可信硬件的安全云数据去重方法及系统
CN110188545B (zh) 一种基于链式数据库的数据加密方法及装置
Zhang et al. Secdedup: Secure encrypted data deduplication with dynamic ownership updating
Wen et al. Big data storage security
Park et al. PKIS: practical keyword index search on cloud datacenter
Abo-Alian et al. Auditing-as-a-service for cloud storage
CN117454440A (zh) 一种基于可追溯数字签名技术的科技档案认证方法及智慧管理系统
CN116366259A (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
TR01 Transfer of patent right

Effective date of registration: 20230518

Address after: 16/F, Building 4, Zone F, Fuzhou Software Park, No. 89 Software Avenue, Gulou District, Fuzhou City, Fujian Province, 350001

Patentee after: Fuzhou Zhangzhong cloud Technology Co.,Ltd.

Address before: 541004 No. 15 Yucai Road, Qixing District, Guilin, the Guangxi Zhuang Autonomous Region

Patentee before: Guangxi Normal University

TR01 Transfer of patent right