CN110392038A - 一种多用户场景下可验证的多密钥可搜索加密方法 - Google Patents

一种多用户场景下可验证的多密钥可搜索加密方法 Download PDF

Info

Publication number
CN110392038A
CN110392038A CN201910478000.5A CN201910478000A CN110392038A CN 110392038 A CN110392038 A CN 110392038A CN 201910478000 A CN201910478000 A CN 201910478000A CN 110392038 A CN110392038 A CN 110392038A
Authority
CN
China
Prior art keywords
user
key
file
verify
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.)
Granted
Application number
CN201910478000.5A
Other languages
English (en)
Other versions
CN110392038B (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.)
Shaanxi Matrix Fengyun Data Security Co.,Ltd.
Original Assignee
Xian University of Electronic Science and Technology
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 Xian University of Electronic Science and Technology filed Critical Xian University of Electronic Science and Technology
Priority to CN201910478000.5A priority Critical patent/CN110392038B/zh
Publication of CN110392038A publication Critical patent/CN110392038A/zh
Application granted granted Critical
Publication of CN110392038B publication Critical patent/CN110392038B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

本发明属于云计算安全技术领域,公开了一种多用户场景下可验证的多密钥可搜索加密方法;包括数据拥有者实体,用于加密处理文件集,并将加密文件集外包至云服务器;用户实体,用于生成文件的分享密钥和一个可验证的数据结构和查询信息,并将生成的分享密钥和可验证的数据结构外包在云服务器中;云服务器实体,用于存储数据并为用户提供查询服务。根据用户提交的查询信息,服务器计算对应的陷门信息,根据所存储的分享密钥查找相关文件并返回给用户匹配的结果和验证所需的证据。用户不仅能够抵抗恶意的数据拥有者和云服务器勾结引入的安全威胁,而且支持对搜索结果的正确性与完整性的有效验证。

Description

一种多用户场景下可验证的多密钥可搜索加密方法
技术领域
本发明属于云计算安全技术领域,尤其涉及一种多用户场景下可验证的多 密钥可搜索加密方法。
背景技术
目前,最接近的现有技术:云计算是基于互联网的相关服务的增加、使用和 交互模式,是分布式计算、网络计算等概念的发展和应用。由于云计算能够使得 用户以现付现用的方式享受高质量的存储服务,所以越来越多的公司或企业更 倾向于将大量的敏感信息,如医疗数据、Email、金融数据等存储于云服务器上。 尽管它为用户带来了巨大的利益,但是将数据外包至远端服务器无疑带来了一 些安全问题。如何实现用户敏感信息的隐私保护已成为云计算中迫切需要解决 的核心技术问题。例如,据报道,最近Facebook泄露了超过5.5亿用户的个人 信息,主要包括账户、用户名、以及他们的行为等。
传统的密码学中的数据加密技术能够保证用户外包数据的机密性,使得云 服务器在海量的密文文件中搜索指定的文件非常困难而且效率低下。对于密文 数据,若采用传统的搜索技术,服务器并不能执行基于密文的高效检索,而是将 整个加密数据库返回给用户,就需要用户解密该加密数据库并在其中查找想要 的数据,这一操作无疑给用户带了存储开销与计算开销的负担,这明显与数据外 包的初衷相矛盾。
为了在保证数据机密性的基础上实现对密文数据的高效检索功能,2000年, Song等人首次提出了可搜索加密技术(Searchable Encryption,SE)。用户首先对数 据加密并存储至云服务器中,同时提取出文件中的关键词并加密得到密文关键 词,随后生成基于密文关键词的索引文件;当用户需要搜索存储于云服务器上的 数据时,只需要向云服务器发送与该关键词相对应的关键词陷门信息,云服务器 则根据索引检索数据文件,并向用户返回对应的密文数据;最后,用户在本地执 行解密操作就能得到所要查询的数据文件。可搜索加密技术分为公钥可搜索加 密(Public key Encryption with Keyword Search,PEKS)和对称可搜索加密技术 (Searchable Symmetric Encryption,SSE)两类。由于可搜索加密的效率问题越来 越受到关注。
在多用户场景下的可搜索加密技术中,数据拥有者在本地加密数据文件并 外包到云服务器中,允许一组授权的用户对存储在服务器中的加密文件访问。当 用户想要访问存储在服务器中的加密数据时,只需要提交陷门信息即可允许服 务器搜索查找。如果不同的文件是采用不同的密钥加密的,则用户需要提交的陷 门信息的数目随着待访问的文件数目的增多而增多。为了解决陷门信息的长度 问题,2013年Popa等人首次提出了多密钥可搜索加密(Multi-Key Searchable Encryption,MKSE)的概念,在该方案中,为每个授权数据生成共享密钥。共享密 钥用于将特定用户密钥下的查询转换为数据所有者密钥下的查询。服务器使用 转换的查询进行搜索。但是,当恶意数据拥有者与云服务器勾结时,第一个MKSE 方案会遭受查询泄漏。理由是转换后的查询可用于搜索任何存储在服务器上的 文档。因此,数据拥有者可以与数据用户勾结以针对给定的关键字进行离线攻击 以此恢复用户的查询。针对此问题,2018年Hamlin等人提出了一个新的MKSE 方案,即使在恶意的数据拥有者和服务器勾结的情况下也能够保证用户的查询 隐私和数据安全。
以上方案都是基于诚实且好奇的服务器设计的,服务器会按照协议正确执 行检索并返回完整的搜索结果。但是在实际应用中,鉴于经济利益驱动,考虑到 软硬件故障以及为了节省网络带宽和计算资源,云服务器可能不会按照协议执 行查询操作,而是会执行部分查找操作,甚至删除、篡改查询结果中的一部分数 据,并返回用户不正确或不完整的查询结果。为了抵抗恶意服务器,可验证的 SSE得到了越来越多的高度关注。Kurosawa等人基于MAC提出了一个可验证 的SSE方案,但是该方法仅仅支持对返回结果正确性的验证;后来有学者基于 聚合器构造了一个可验证的SSE方案,然而,当服务器返回空集时,该方法并未提供一个有效的证据供用户验证;其次,这些方案只适用于单用户场景。因此, 在多用户场景下如何构造一个可验证的多密钥可搜索加密方案,仍然是一个具 有挑战性且具有意义的问题。
解决上述技术问题的难度:
要实现多用户场景下可验证的多密钥可搜索加密方案,即要实现用户能够 对服务器返回结果的完整性与正确性进行有效验证,尤其是当服务器返回一个 空集时,用户要有效判断出该空集的具体情况。具体是云服务器没有执行检索直 接返回的空集,还是云服务器进行了相关的检索,但是不存在匹配的结果所以返 回了空集。
解决上述技术问题的意义:
从用户角度考虑,我们解决对云服务返回结果的正确性与完整性的有效验 证,一方面可以保证用户可以验证结果的正确性,是不是自己想要查找的结果。 另一方面,用户可以判断出云服务器返回的结果是否完整。作为用户,向云服务 器提出查询请求时,在实际应用中,大多数情况下是需要向云服务器付费的,如 果云服务器返回不正确或不完整的查询结果,用户可以提供一个有效的验证证 据进而说服云服务的行为不是诚实的,从而不会向云服务提供商付费的。
发明内容
针对现有技术存在的问题,本发明提供了一种多用户场景下可验证的多密 钥可搜索加密方法。
本发明是这样实现的,一种多用户场景下可验证的多密钥可搜索加密方法, 所述多用户场景下可验证的多密钥可搜索加密方法包括以下步骤:
步骤一,对于每一个文件,数据拥有者使用对称加密算法生成相应的数据密 钥,利用该密钥加密文件和对应的关键词集合,并将加密文件和加密的关键词集 合组织在一起外包到云服务器中;将数据密钥发送给授权的用户;
步骤二,若数据拥有者分享一定数量的重要文件给用户,用户需要生成查询 密钥、分享密钥和可验证的数据结构,并将分享密钥和可验证的数据结构存储在 云服务器中;
步骤三,当用户查询包含某一关键词的文件时,利用步骤二中生成的查询密 钥生成查询信息,并提交给云服务器;
步骤四,云服务器收到用户的查询请求时,利用用户提交的查询信息生成相 应的陷门信息,并在分享密钥上执行检索;返回查询结果,包括验证所需的证据;
步骤五,当云服务器返回查询结果时,用户使用该证据验证返回的查找结果 是否正确且完整,证明服务器的行为是诚实的或恶意的。
进一步,所述步骤一对于每一个文件,数据拥有者使用对称加密算法生成相 应的数据密钥,利用该密钥加密文件和对应的关键词集合,并将加密文件和加密 的关键词集合组织在一起外包到云服务器中;将数据密钥发送给授权的用户。具 体包括:
第一步,对每一个文件d以及对应的关键词集合Wd,数据拥有者采用经典的 对称加密算法,生成数据密钥KSE,并用KSE加密d和Wd。最后将(T,C)外包至云服 务器中;
第二步,将该数据密钥KSE通过安全信道发送给他所授权的用户,为用户生 成陷门信息时提供密钥信息。
进一步,所述步骤二若数据拥有者分享一定数量的重要文件给用户,用户需 要生成查询密钥、分享密钥和可验证的数据结构,并将分享密钥和可验证的数据 结构存储在云服务器中具体包括:
第一步,用户首先生成查询密钥KPRF,并为每个被分享的文件生成随机的文 件标识符r;
第二步,用户从云服务器中下载(T,C),并利用数据拥有者发送的数据密钥KSE解密T并恢复出Wd
第三步,对于集合Wd中的每一个关键词w,用户首先生成第二个PRFF的密 钥kw=F(KPRF,w),F(.)是一个伪随机函数,并利用该密钥kw和文件标识符r计算对 应的陷门tw=F(kw,r);对集合Wd中每一个关键词w的陷门信息tw,将它们存储于 一个哈希表D中;
第四步,对所有分享的n个文件T1,...Tn:用户将文件标识符{r1,...rn}和哈希表D以 Δ=({r1,...rn},D)的形式组织在一起形成分享密钥;
第五步,用户选择k个哈希函数H={h1...hk},安全参数λ,m是GBF变种的长度, 以此建立可验证的数据结构GBF;
第六步,计算q=F(KPRF,w),对包含关键词w的所有文件的文件标识符r,对这 些标识符进行异或操作,最终得到一个异或值R;利用这k个哈希函数,计算 h1(q)...hk(q)得到GBF的k个位置;存储在这k个位置的元素GBF[h1(q)]...GBF[hk(q)]是长 度为λ的随机比特串,且满足另外对GBF中剩余空的 位置置为λ长的0比特串,即0λ;对数据拥有者分享给用户的所有文件中的所有 不同关键词集合,即w∈W,依次进行第六步的操作,最终生成可验证的数据结 构GBF;
第七步:用户将分享密钥Δ和可验证的数据结构GBF存储于云服务器中。
进一步,所述步骤三当用户查询包含某一关键词的文件时,利用步骤二中生 成的查询密钥生成查询信息,并提交给云服务器具体包括:
第一步,对想要查询的关键词w,用户首先生成查询密钥KPRF,再生成查询 q=F(KPRF,w);
第二步,用户发送查询信息q给云服务器请求询问。
进一步,所述步骤四云服务器收到用户的查询请求时,利用用户提交的查询 信息生成相应的陷门信息,并在分享密钥上执行检索;返回查询结果,包括验证 所需的证据具体包括:
第一步,云服务器收到步骤三中用户的查询请求q后,计算陷门t′w=F(q,r);
第二步,借助它存储的Δ=({r1,...rn},D),在哈希表D中遍历查找t′w,若有t′w=tw成立,则说明w包含于由标识符r标识的文件d中,此时将r添加至文件标识符集合 IdSet中;
第三步,服务器返回IdSet和GBF。
进一步,所述步骤五当云服务器返回查询的结果时,用户使用该证据验证返 回的查找结果是否正确且完整,证明服务器的行为是诚实的或恶意的具体包括:
第一步,当IdSet为空集时,用户首先检查GBF中关于查询q对应的k个位置处 的元素是否存在GBF[hi(q)](1≤i≤k)为0λ;如果存在,则说明服务器中确实没有匹 配的文件,此时证明服务器是诚实的;否则,则说明服务器是恶意的,服务器没 有执行检索搜索操作或者没有返回检索到的结果;
第二步,当IdSet不为空集时,首先对IdSet中的每一个文件标识符计算依次进 行异或运算,得到异或值R′;接着计算比较R与R′是否 相等,若满足R=R′,则说明云服务器返回的查询结果是正确并且是完整的,即 服务器是诚实的;否则,说明服务器是恶意的,返回了部分或者不正确的结果给 用户。
综上所述,本发明的优点及积极效果为:本发明多用户场景下的多密钥可搜 索加密技术允许数据拥有者将自己的数据在本地加密后将加密文件外包给云服 务器,并授权给他希望共享数据的一组用户。已授权的用户可以根据自己的访问 权限对存储在云服务器中不同规模的加密数据进行细粒度地访问。当用户想要 查询包含某一关键词的文件时,他只需要生成陷门信息并发送给云服务器,就允 许服务器在不同的密文文件中搜索查找。本发明中假设云服务器不是完全可信 的。因此服务器可能返回不正确或不完整的查询结果。所以本发明中要求服务器 返回匹配的文件的同时,需要返回相应的证据供用户在验证阶段对查询结果进 行完整性验证。
本发明基于Garbled Bloom Filter,构造了一个新的在多用户场景下可验证的多密钥可搜索加密方法,可以有效地验证服务器返回结果的完整性,达到了抵制 恶意服务器与数据拥有者勾结作弊的恶意行为的目的,且进一步提高了数据的 安全性。
附图说明
图1是本发明实施例提供的多用户场景下可验证的多密钥可搜索加密方法 流程图。
图2是本发明实施例提供的系统流程图。
图3是本发明实施例提供的验证时生成的一个GBF实例示意图。
图4是本发明实例提供的生成分享密钥的时间开销对比示意图。
图5是本发明实例提供的查找时间开销对比示意图。
图6是本发明实例提供的验证时间开销示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对 本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释 本发明,并不用于限定本发明。
针对现有技术基于诚实且好奇的服务器设计云服务器可能会执行部分查找 操作,甚至删除、篡改查询结果中的一部分数据,并返回用户不正确或不完整的 查询结果的问题。本发明可以有效地验证服务器返回结果的完整性,达到了抵制 恶意服务器与数据拥有者勾结作弊的恶意行为的目的。
下面结合附图对本发明的应用原理作详细的描述。
如图1所示,本发明实施例提供的多用户场景下可验证的多密钥可搜索加 密方法包括以下步骤:
S101:数据拥有者使用对称加密算法生成自己的数据加密密钥,用于加密文 件和文件对应的关键词集合,为了节省本地存储和计算,数据拥有者选择将密文 文件和对应的密文关键词集合整体外包在云服务器中;最后将数据密钥发送给 一组授权的数据用户;
S102:用户生成自己的查询密钥,作为伪随机函数的密钥,用于生成陷门信 息。用户从服务器下载密文关键词集合,使用数据拥有者发送的数据密钥解密。 为每个关键词集合生成随机的文件标识符,再利用伪随机函数、查询密钥以及绑 定的文件标识符,进一步生成陷门信息,并将文件标识符和陷门信息组织为分享 密钥;
S103:用户利用查询密钥对想要查询的关键词生成查询信息并向服务器提 交询问请求;
S104:当服务器收到用户的查询请求时,生成该查询信息对应的陷门信息, 并根据分享密钥遍历查询;
S105:用户收到服务器返回的查询结果后,用户利用验证证据判断返回结果 是否完整且正确,进而确定服务器的所有相关的行为是否诚实。
在本发明的优选实施例中,步骤S102具体包括:用户利用以秘密分享的原 理设计的可验证的数据结构Garbled Bloom Filter,通过变形处理,重新巧妙地设 计出一个新的GBF,用来存储每一个不同的关键词w对应的文件对应的标识符 的聚合值R。与传统的GBF相比,用户生成的GBF时有两点不同:一方面,对 于查询q,GBF中的k个位置取决于q而不是待存储的元素本身R;另一方面, 为了支持对服务器返回空集的可验证性,存储完所有不同的R之后,对于GBF 中剩余的空闲位置置为0λ比特串;最后,用户将分享密钥和GBF外包至云服务 器。
在本发明的优选实施例中,步骤S104具体包括:当服务器收到用户的查询 请求时,生成该查询信息对应的陷门信息,并根据分享密钥遍历查询,如果在分 享密钥中存在匹配的陷门信息,则服务器需要将对应的文件标识符记录到集合 IdSet中,服务器最后将匹配的文件和验证所需要的证据IdSet,GBF返回给用户。
在本发明的优选实施例中,步骤S105具体包括:用户收到服务器返回的查 询结果后,利用验证证据IdSet,GBF判断的返回结果是否完整且正确,进而确定服 务器的所有相关的行为是否诚实。
下面结合附图对本发明的应用原理作进一步的描述。
1、本发明利用变形的Garbled Bloom Filter(GBF),用户生成可验证的数据结构,为自身验证服务器返回结果的完整与正确性提供依据。具体地,用户选用k 个均匀不相关的哈希函数,哈希函数的输入是关键词w对应的查询q以此确定 GBF的位置。即对于每一个哈希函数,求出关于q的哈希值,找到在GBF中对应的 位置;对包含w的所有文件标识符求异或运算得到一个异或值;在k个对应位置处 设置相同长度的随机比特串,同时这些位置处的值最后的异或结果是文件标识 符的异或值;对所授权给此用户的所有文件中所有不同的关键词,进行上述相同 的操作;如果发现某一位置已被占用,那该位置会被下一个关键词的文件标识符 的异或值得分量所重复利用,保证了很小的碰撞率。最后,如果GBF中存在未 被占用的位置,此时将这些位置为与其他位置相同长度的0λ比特串,这种设计 的目的是为了方便此用户在验证阶段有效地验证空集。
1.1在表1中总结了方法中使用的符号含义。
表1符号定义
符号 含义描述
d 文件
W<sub>d</sub> d中所有关键词的集合
T 加密W<sub>d</sub>中的每一个关键词获得的密文集合
W 分享的所有文件中不同的关键词集合
DB[w] DB中包含w的文件的标识符集合
IdSet 服务器存储的文件标识符集合
1.2具体构造
如图3所示,是多用户场景下可验证的多密钥可搜索加密方案系统模型。 其中本发明主要由以下5个算法(Setup,Share,Query,Search,Verify)组成:
Setup(1λ,d):
该算法由数据拥有者执行,其输入是安全参数1λ和文件d。数据拥有者采用 对称加密算法生成对称的数据密钥KSE←SE.KeyGen(1λ),用KSE加密文件和对应的关 键词集合d,获得密文文件C←SE.Enc(KSE,d)和密文关键词集合T←SE.Enc(KSE,Wd)。将 (T,C)外包到服务器中,并将数据密钥KSE发送给授权的用户。
该算法由用户执行,其输入是数据拥有者提供的对称的数据密钥加 密的文件集合最后生成分享密钥Δ=({r1,...rn},D)和可验证的数据结构GBF 并存储在服务器中。具体执行过程是(详细内容见算法1):
假设被分享的文件数量是n,用户从服务器下载并用解密,即执 行
用户生成随机的查询密钥KPRF←{0,1}λ
用户每个文件生成随机标识符
对每个关键词集合Wi中的每一个关键词w:先计算kw=F(KPRF,w),F(.)是一个 伪随机函数,再利用该密钥kw和文件标识符r计算一个陷门tw=F(kw,r);
对所有集合Wi中每一个关键词w的陷门信息tw,将所有的tw存储于一个哈希 表D中;将文件标识符(即文件索引)和哈希表D以({r1,...rn},D)的组织在一起 得到分享密钥Δ。
选择k个哈希函数,k个哈希函数的集合H={h1,...,hk}以及安全参数λ。GBF是 一个长度为m,每一个元素为λ-比特串的数组。初始阶段每一个位置为NULL。
对于所分享的所有文件中包含的所有不同的关键词w∈W:对于r∈DB[w],执行将所有w对应的R存储在服务器中。最后,若GBF中 还存在为占用的位置,为了支持对返回空集的可验证性,在未占用的位置处置为 0λ
最后将分享密钥Δ和GBF存储于云服务器中。
Query(KPRF,w):
该算法由用户执行,其输入是查询密钥KPRF和关键词w。当用户想要查询某 一关键词w时,利用自己的查询密钥生成查询信息q,即向服务器发 送q请求询问
Search(Δ=({r1,...rn},D),q):
该算法由服务器执行,其输入是存储在服务器端的Δ=({r1,...rn},D),用户提交的查询信息q,服务器以查询信息q作为伪随机函数F的密钥,计算该查询的陷 门t′w=F(q,r);
服务器在哈希表D中遍历查找tw,若等式t′w=tw成立,则说明w包含于由r标 识符的文件d中;并将所有匹配的r添加到文件标识符集合IdSet中;返回IdSet和 该用户的GBF。
Verify(q,GBF,IdSet):
该算法由用户执行,其输入是查询信息q,GBF和IdSet。用户收到服务器返回 的验证证据IdSet和GBF时,对其进行验证(详细内容见算法2):
当IdSet为空集时,此时用户计算GBF[hi(q)](1≤i≤k)并检查返回的GBF中是否存 在GBF[hi(q)]为0λ。如果存在GBF[hi(q)]=0λ,则说明不存在与关键词w匹配的文件, 此时说明服务器是诚实执行协议的,算法输出True;否则,服务器是恶意的,算 法最终输出False。
若IdSet不为空集时,此时用户首先需要对IdSet中的每一个文件标识符r依次执行异或运算,得到最终的一个聚合值R′;然后重新计算 接着比较R与R′是否相等。如果满足R=R′,则说明云服务器返回的查询结果满 足正确性与完整性,即服务器是诚实执行协议进行检索的;否则服务器是恶意的, 即返回了不正确或不完整的查询结果。
假设Bob拥有4个文件想分享给Alice,由文件标识符ri(1≤i≤4)标识的每 一份邮件包含的关键词如下:
每一个关键词与所属文件的文件标识符之间的对应关系如下:
在Share阶段,生成的GBF的长度设为16,W={w1,w2,w3,w4},对于W 中的每一个关键词w,以w1为例,计算再计算q1=F(KPRF,w1); 选择3个哈希函数,计算j=hi(q1)(1≤i≤3),假设此时得到的j的值为2、4、6, 是在GBF中对应的位置,在这3个位置处置为λ长的比特串,且满足 依次添加完这4个关键词对应的文件标识符的 异或值之后,还存在3个空闲位置,对其依次置为0λ
如图4所示,是以R1,R2,R3,R4为元素建立的一个GBF。
假设在Query阶段,Alice询问包含关键词w1的所有文件:
(1)如果云服务器返回空集IdSet和GBF,Alice重新计算j=hi(q1)(q1= F(KPRF,w1))先找到位置2,发现GBF中的置并不是0λ,表明存在包含w1的文件,但服务器故意返回了空集,此时证明服务器不是诚实的;
(2)如果云服务器返回IdSet={r1,r2}和GBF,Alice计算发现说明服务器返回的结果不完整;(3) 如果云服务器返回IdSet={r1,r2,r3}和GBF,Alice计算后得出:表明服务器返回的结果是正 确且完整的,说明此时服务器的操作行为是诚实的。
下面结合实验对本发明的技术效果作详细地描述:
我们是使用Python语言、采用AES的CBC模式、HMAC实现伪随机函数 PRF,最后在16GB内存的普通台式机上仿真原始技术方案和我们的方案。我们 通过详细地仿真,统计相关数据,绘制相关实验图,并进行比较分析。
具体地,图4、图5分别展示了与Hamlin的方案的生成分享密钥、搜索时 间开销对比图;图6展示了本发明的方案的验证所需的时间。图5显示,针对 两个方案:随着分享文件数据集的增大,平均生成一个文件的分享密钥的时间 接近常数。由于本发明的方案中在share算法过程中,主要利用简单的异或操作 和哈希运算生成了GBF,所以在本发明的方案中share算法的时间开销大一点, 但仍然是很小的,从图5中可以直观看出,即使当文件-关键词对数是220时,两 个方案的share时间都低于0.1ms;图6显示,针对两个方案:随着分享文件数 据集的增大,平均搜索一个文件的时间也接近常数。因为本发明的方案中为了 支持验证,需要在IdSet中记录文件标识符,因此,本发明的方案的搜索时间略 微大一点,但整体上效率很高,从图6中可以看出,即使当文件-关键词对数是220时,两个方案的搜索时间都低于1ms。因为Hamlin的方案不支持验证功能,所 以图7中只测试了本发明的方案中的验证时间开销。即使当文件-关键词对数是 220时,验证只需要花费少于450ms的时间,可见本发明的验证方案是高效的。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发 明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明 的保护范围之内。

Claims (7)

1.一种多用户场景下可验证的多密钥可搜索加密方法,其特征在于,所述多用户场景下可验证的多密钥可搜索加密方法包括以下步骤:
步骤一,对于每一个文件,数据拥有者使用对称加密算法生成相应的数据密钥,利用该密钥加密文件和对应的关键词集合,并将加密文件和加密的关键词集合组织在一起外包到云服务器中;将数据密钥发送给授权的用户;
步骤二,若数据拥有者分享一定数量的重要文件给用户,用户需要生成查询密钥、分享密钥和可验证的数据结构,并将分享密钥和可验证的数据结构存储在云服务器中;
步骤三,当用户查询包含某一关键词的文件时,利用步骤二中生成的查询密钥生成查询信息,并提交给云服务器;
步骤四,云服务器收到用户的查询请求时,它会利用用户提交的查询信息生成相应的陷门信息,并在分享密钥上执行检索;返回查询结果,包括验证所需的证据;
步骤五,当云服务器返回查询的结果时,用户使用该证据验证返回的查找结果是否正确且完整,证明服务器的行为是诚实的或恶意的。
2.如权利要求1所述的多用户场景下可验证的多密钥可搜索加密方法,其特征在于,所述步骤一对于每一个文件,数据拥有者使用对称加密算法生成相应的数据密钥,利用该密钥加密文件和对应的关键词集合,并将加密文件和加密的关键词集合组织在一起外包到云服务器中;将数据密钥发送给授权的用户具体包括:
第一步,对每一个文件d以及对应的关键词集合Wd,数据拥有者采用经典的对称加密算法,生成数据密钥KSE,并用KSE加密d和Wd;将(T,C)外包至云服务器中;
第二步,将该数据密钥KSE通过安全信道发送给他所授权的用户,为用户生成陷门信息时提供密钥信息。
3.如权利要求1所述的多用户场景下可验证的多密钥可搜索加密方法,其特征在于,所述步骤二若数据拥有者分享一定数量的重要文件给用户,用户需要生成查询密钥、分享密钥和可验证的数据结构,并将分享密钥和可验证的数据结构存储在云服务器中具体包括:
第一步,用户首先生成查询密钥KPRF,并为每个被分享的文件生成随机的文件标识符r;
第二步,用户从云服务器中下载(T,C),并利用数据拥有者发送的数据密钥KSE解密T并恢复出Wd
第三步,对于集合Wd中的每一个关键词w,用户首先生成第二个PRFF的密钥kw=F(KPRF,w),F(.)是一个伪随机函数,并利用该密钥kw和文件标识符r计算对应的陷门tw=F(kw,r);对集合Wd中每一个关键词w的陷门信息tw,将它们存储于一个完美哈希表D中;
第四步,对所有分享的n个文件T1,…Tn:用户将文件标识符{r1,…rn}和哈希表D以Δ=({r1,…rn},D)的形式组织在一起形成分享密钥;
第五步,用户选择k个哈希函数H={h1…hk},安全参数λ,m是GBF变种的长度,以此建立可验证的数据结构GBF;
第六步,计算q=F(KPRF,w),对包含关键词w的所有文件的文件标识符r,对这些标识符进行异或操作,最终得到一个异或值R;利用这k个哈希函数,计算h1(q)…hk(q)得到GBF的k个位置;存储在这k个位置的元素GBF[h1(q)]…GBF[hk(q)]是长度为λ的随机比特串,且满足另外对GBF中剩余空的位置置为λ长的0比特串,即0λ;对数据拥有者分享给用户的所有文件中的所有不同关键词集合,即w∈W,依次进行第六步的操作,最终生成可验证的数据结构GBF;
第七步:用户将分享密钥Δ和可验证的数据结构GBF存储于云服务器中。
4.如权利要求1所述的多用户场景下可验证的多密钥可搜索加密方法,其特征在于,所述步骤三当用户查询包含某一关键词的文件时,利用步骤二中生成的查询密钥生成查询信息,并提交给云服务器具体包括:
第一步,对想要查询的关键词w,用户首先生成查询密钥KPRF,再生成查询q=F(KPRF,w);
第二步,用户发送查询信息q给云服务器请求询问。
5.如权利要求1所述的多用户场景下可验证的多密钥可搜索加密方法,其特征在于,所述步骤四云服务器收到用户的查询请求时,利用用户提交的查询信息生成相应的陷门信息,并在分享密钥上执行检索;返回查询结果,包括验证所需的证据具体包括:
第一步,云服务器收到步骤三中用户的查询请求q后,计算陷门t′w=F(q,r);
第二步,借助它存储的Δ=({r1,…rn},D),在哈希表D中遍历查找t′w,若有t′w=tw成立,则说明w包含于由标识符r标识的文件d中,此时将r添加至文件标识符集合IdSet中;
第三步,服务器返回IdSet和GBF。
6.如权利要求1所述的多用户场景下可验证的多密钥可搜索加密方法,其特征在于,所述步骤五当云服务器返回查询的结果时,用户使用该证据验证返回的查找结果是否正确且完整,证明服务器的行为是诚实的或恶意的具体包括:
第一步,当IdSet为空集时,用户首先检查GBF中关于查询q对应的k个位置处的元素是否存在GBF[hi(q)](1≤i≤k)为0λ;如果存在,则说明服务器中确实没有匹配的文件,此时证明服务器是诚实的;否则,则说明服务器是恶意的,服务器没有执行检索搜索操作或者没有返回检索到的结果;
第二步,当IdSet不为空集时,首先对IdSet中的每一个文件标识符计算依次进行异或运算,得到异或值R′;接着计算比较R与R′是否相等,若满足R=R′,则说明云服务器返回的查询结果是正确并且是完整的,即服务器是诚实的;否则,说明服务器是恶意的,返回了部分或者不正确的结果给用户。
7.一种应用权利要求1~6任意一项所述多用户场景下可验证的多密钥可搜索加密方法的云服务器。
CN201910478000.5A 2019-06-03 2019-06-03 一种多用户场景下可验证的多密钥可搜索加密方法 Active CN110392038B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910478000.5A CN110392038B (zh) 2019-06-03 2019-06-03 一种多用户场景下可验证的多密钥可搜索加密方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910478000.5A CN110392038B (zh) 2019-06-03 2019-06-03 一种多用户场景下可验证的多密钥可搜索加密方法

Publications (2)

Publication Number Publication Date
CN110392038A true CN110392038A (zh) 2019-10-29
CN110392038B CN110392038B (zh) 2021-07-13

Family

ID=68285215

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910478000.5A Active CN110392038B (zh) 2019-06-03 2019-06-03 一种多用户场景下可验证的多密钥可搜索加密方法

Country Status (1)

Country Link
CN (1) CN110392038B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111556495A (zh) * 2020-03-19 2020-08-18 西安电子科技大学 一种在车联网环境下的多用户可搜索加密方法及加密系统
CN112416948A (zh) * 2020-12-15 2021-02-26 暨南大学 一种可验证的基因数据外包查询协议及系统
CN112468995A (zh) * 2020-12-09 2021-03-09 湖南科技学院 一种基于车联网的可搜索加密隐私保护方法及系统
CN113434739A (zh) * 2021-06-08 2021-09-24 暨南大学 一种云环境下前向安全的多用户动态对称加密检索方法
CN115361218A (zh) * 2022-08-23 2022-11-18 西安电子科技大学 一种具有查询隐匿特性的云端数据存在性验证方法
CN115563165A (zh) * 2022-10-24 2023-01-03 华东师范大学 一种安全高效的关键词搜索方法
CN116915765A (zh) * 2023-09-12 2023-10-20 福建慧政通信息科技有限公司 一种文件下载管理方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104038349A (zh) * 2014-07-03 2014-09-10 西安电子科技大学 一种基于kp-abe的有效可验证的公钥可搜索加密方法
CN106997384A (zh) * 2017-03-24 2017-08-01 福州大学 一种排序可验证的语义模糊可搜索加密方法
CN107124268A (zh) * 2017-04-01 2017-09-01 中国人民武装警察部队工程大学 一种可抵抗恶意攻击的隐私集合交集计算方法
CN108055122A (zh) * 2017-11-17 2018-05-18 西安电子科技大学 可验证的防内存泄露动态可搜索加密方法、云服务器
US20190124052A1 (en) * 2015-07-24 2019-04-25 Skyhigh Networks, Inc. Searchable encryption enabling encrypted search based on document type

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104038349A (zh) * 2014-07-03 2014-09-10 西安电子科技大学 一种基于kp-abe的有效可验证的公钥可搜索加密方法
US20190124052A1 (en) * 2015-07-24 2019-04-25 Skyhigh Networks, Inc. Searchable encryption enabling encrypted search based on document type
CN106997384A (zh) * 2017-03-24 2017-08-01 福州大学 一种排序可验证的语义模糊可搜索加密方法
CN107124268A (zh) * 2017-04-01 2017-09-01 中国人民武装警察部队工程大学 一种可抵抗恶意攻击的隐私集合交集计算方法
CN108055122A (zh) * 2017-11-17 2018-05-18 西安电子科技大学 可验证的防内存泄露动态可搜索加密方法、云服务器

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111556495A (zh) * 2020-03-19 2020-08-18 西安电子科技大学 一种在车联网环境下的多用户可搜索加密方法及加密系统
CN111556495B (zh) * 2020-03-19 2022-04-05 西安电子科技大学 一种在车联网环境下的多用户可搜索加密方法及加密系统
CN112468995A (zh) * 2020-12-09 2021-03-09 湖南科技学院 一种基于车联网的可搜索加密隐私保护方法及系统
CN112468995B (zh) * 2020-12-09 2022-05-27 湖南科技学院 一种基于车联网的可搜索加密隐私保护方法及系统
CN112416948A (zh) * 2020-12-15 2021-02-26 暨南大学 一种可验证的基因数据外包查询协议及系统
CN113434739A (zh) * 2021-06-08 2021-09-24 暨南大学 一种云环境下前向安全的多用户动态对称加密检索方法
CN115361218A (zh) * 2022-08-23 2022-11-18 西安电子科技大学 一种具有查询隐匿特性的云端数据存在性验证方法
CN115361218B (zh) * 2022-08-23 2024-02-23 西安电子科技大学 一种具有查询隐匿特性的云端数据存在性验证方法
CN115563165A (zh) * 2022-10-24 2023-01-03 华东师范大学 一种安全高效的关键词搜索方法
CN116915765A (zh) * 2023-09-12 2023-10-20 福建慧政通信息科技有限公司 一种文件下载管理方法及系统
CN116915765B (zh) * 2023-09-12 2023-12-05 福建慧政通信息科技有限公司 一种文件下载管理方法及系统

Also Published As

Publication number Publication date
CN110392038B (zh) 2021-07-13

Similar Documents

Publication Publication Date Title
CN110392038A (zh) 一种多用户场景下可验证的多密钥可搜索加密方法
CN106534092B (zh) 基于消息依赖于密钥的隐私数据加密方法
CN109614818B (zh) 可授权的基于身份的带关键词搜索加密方法
CN104021157B (zh) 云存储中基于双线性对的关键词可搜索加密方法
US5712913A (en) Limited-traceability systems
Tahir et al. A new secure and lightweight searchable encryption scheme over encrypted cloud data
Hazay et al. Constructions of truly practical secure protocols using standardsmartcards
CN105024802B (zh) 云存储中基于双线性对的多用户多关键词可搜索加密方法
CN104978239B (zh) 一种实现多备份数据动态更新的方法、装置及系统
CN105049196B (zh) 云存储中指定位置的多个关键词可搜索的加密方法
CN107222483A (zh) 一种多访问级别的电子文档网络存储管理的方法
CN106330865A (zh) 云环境下支持高效撤销的属性基关键字搜索方法
CN112989375B (zh) 一种分级优化加密无损隐私保护方法
CN107256248A (zh) 云存储安全中基于通配符的可搜索加密方法
Van Rompay et al. Multi-user searchable encryption in the cloud
CN111274599A (zh) 一种基于区块链的数据共享方法及相关装置
CN108632385B (zh) 基于时间序列的多叉树数据索引结构云存储隐私保护方法
Yang et al. Flexible wildcard searchable encryption system
CN109347832A (zh) 一种动态数据共享方法、终端设备及代理服务器
Zhao et al. Are you the one to share? Secret transfer with access structure
RuWei et al. Study of privacy-preserving framework for cloud storage
CN104052740A (zh) 云存储中可验证的基于词典的可搜索加密方法
CN106326666A (zh) 一种健康档案信息管理服务系统
CN110188545B (zh) 一种基于链式数据库的数据加密方法及装置
Velliangiri et al. Unsupervised blockchain for safeguarding confidential information in vehicle assets transfer

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: 20230316

Address after: 712000 Room 406-7, Floor 4, Building 3, Fengyue Yunchuang Center, Haojing Avenue, Hanchi 1st Road, Fengdong New City, Xianyang District, Xi'an City, Shaanxi Province

Patentee after: Shaanxi Matrix Fengyun Data Security Co.,Ltd.

Address before: 710071 Xi'an Electronic and Science University, 2 Taibai South Road, Shaanxi, Xi'an

Patentee before: XIDIAN University

TR01 Transfer of patent right