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

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

Info

Publication number
CN110392038B
CN110392038B CN201910478000.5A CN201910478000A CN110392038B CN 110392038 B CN110392038 B CN 110392038B CN 201910478000 A CN201910478000 A CN 201910478000A CN 110392038 B CN110392038 B CN 110392038B
Authority
CN
China
Prior art keywords
user
key
file
cloud server
query
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910478000.5A
Other languages
English (en)
Other versions
CN110392038A (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
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 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

Images

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,用户首先生成第二个PRF F的密钥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)]是长度为λ的随机比特串,且满足
Figure GDA0002162625000000051
另外对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′;接着计算
Figure GDA0002162625000000061
比较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发送给授权的用户。
Figure GDA0002162625000000101
该算法由用户执行,其输入是数据拥有者提供的对称的数据密钥
Figure GDA0002162625000000102
加密的文件集台
Figure GDA0002162625000000103
最后生成分享密钥Δ=({r1,...rn},D)和可验证的数据结构GBF 并存储在服务器中。具体执行过程是(详细内容见算法1):
假设被分享的文件数量是n,用户从服务器下载
Figure GDA0002162625000000104
并用
Figure GDA0002162625000000105
解密,即执行
Figure GDA0002162625000000106
用户生成随机的查询密钥KPRF←{0,1}λ
用户每个文件生成随机标识符
Figure GDA0002162625000000107
对每个关键词集合Wi中的每一个关键词w:先计算kw=F(KPRF,w),F(.)是一个伪随机函数,再利用该密钥kw和文件标识符r计算一个陷门tw=F(kw,r);
对所有集合Wi中每一个关键词w的陷门信息tw,将所有的tw存储于一个哈希表D中;将文件标识符
Figure GDA0002162625000000108
(即文件索引)和哈希表D以({r1,...rn},D)的组织在一起得到分享密钥Δ。
选择k个哈希函数,k个哈希函数的集合H={h1,...,hk}以及安全参数λ。GBF是一个长度为m,每一个元素为λ-比特串的数组。初始阶段每一个位置为NULL。
对于所分享的所有文件中包含的所有不同的关键词w∈W:对于r∈DB[w],执行
Figure GDA0002162625000000109
将所有w对应的R存储在服务器中。最后,若GBF 中还存在为占用的位置,为了支持对返回空集的可验证性,在未占用的位置处置为0λ
最后将分享密钥Δ和GBF存储于云服务器中。
Query(KPRF,w):
该算法由用户执行,其输入是查询密钥KPRF和关键词w。当用户想要查询某一关键词w时,利用自己的查询密钥生成查询信息q,即
Figure GDA0002162625000000111
向服务器发送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):
Figure GDA0002162625000000112
Figure GDA0002162625000000121
当IdSet为空集时,此时用户计算GBF[hi(q)](1≤i≤k)并检查返回的GBF中是否存在GBF[hi(q)]为0λ。如果存在GBF[hi(q)]=0λ,则说明不存在与关键词w匹配的文件,此时说明服务器是诚实执行协议的,算法输出True;否则,服务器是恶意的,算法最终输出False。
若IdSet不为空集时,此时用户首先需要对IdSet中的每一个文件标识符r依次执行异或运算,得到最终的一个聚合值R′;然后重新计算
Figure GDA0002162625000000122
接着比较R与R′是否相等。如果满足R=R′,则说明云服务器返回的查询结果满足正确性与完整性,即服务器是诚实执行协议进行检索的;否则服务器是恶意的,即返回了不正确或不完整的查询结果。
Figure GDA0002162625000000123
Figure GDA0002162625000000131
假设Bob拥有4个文件想分享给Alice,由文件标识符ri(1≤i≤4)标识的每一份邮件包含的关键词如下:
Figure GDA0002162625000000132
每一个关键词与所属文件的文件标识符之间的对应关系如下:
Figure GDA0002162625000000133
在Share阶段,生成的GBF的长度设为16,W={w1,w2,w3,w4},对于W中的每一个关键词w,以w1为例,计算
Figure GDA0002162625000000134
再计算q1=F(KPRF,w1);选择3个哈希函数,计算j=hi(q1)(1≤i≤3),假设此时得到的j的值为2、4、 6,是在GBF中对应的位置,在这3个位置处置为λ长的比特串,且满足
Figure GDA0002162625000000135
依次添加完这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计算发现
Figure GDA0002162625000000141
说明服务器返回的结果不完整;(3) 如果云服务器返回IdSet={r1,r2,r3}和GBF,Alice计算后得出:
Figure GDA0002162625000000142
表明服务器返回的结果是正确且完整的,说明此时服务器的操作行为是诚实的。
下面结合实验对本发明的技术效果作详细地描述:
我们是使用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的方案不支持验证功能,所以图6中只测试了本发明的方案中的验证时间开销。即使当文件-关键词对数是 220时,验证只需要花费少于450ms的时间,可见本发明的验证方案是高效的。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (5)

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

Families Citing this family (7)

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

Citations (4)

* 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 西安电子科技大学 可验证的防内存泄露动态可搜索加密方法、云服务器

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9894042B2 (en) * 2015-07-24 2018-02-13 Skyhigh Networks, Inc. Searchable encryption enabling encrypted search based on document type

Patent Citations (4)

* 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 西安电子科技大学 可验证的防内存泄露动态可搜索加密方法、云服务器

Also Published As

Publication number Publication date
CN110392038A (zh) 2019-10-29

Similar Documents

Publication Publication Date Title
CN110392038B (zh) 一种多用户场景下可验证的多密钥可搜索加密方法
WO2022007889A1 (zh) 基于区块链与同态加密的可搜索加密数据共享方法及***
CN107491497B (zh) 支持任意语言查询的多用户多关键词排序可搜索加密***
CN109614818B (zh) 可授权的基于身份的带关键词搜索加密方法
Cui et al. SVkNN: Efficient secure and verifiable k-nearest neighbor query on the cloud platform
Wang et al. Verifiable auditing for outsourced database in cloud computing
CN111212084B (zh) 一种面向边缘计算的属性加密访问控制方法
CN112989375B (zh) 一种分级优化加密无损隐私保护方法
CN106330865A (zh) 云环境下支持高效撤销的属性基关键字搜索方法
CN114021164B (zh) 基于区块链的征信***隐私保护方法
CN105659231A (zh) 实现对数据的访问
CN112235260B (zh) 一种匿名数据存证方法、装置、设备和存储介质
CN111159352B (zh) 一种支持多关键词加权检索和结果排序且可验证的加解密方法
Ma et al. CP‐ABE‐Based Secure and Verifiable Data Deletion in Cloud
Ali et al. Authorized attribute-based encryption multi-keywords search with policy updating
CN117828673B (zh) 基于区块链的数据流通与隐私保护方法及装置
Park et al. PKIS: practical keyword index search on cloud datacenter
Wei et al. Dynamic data integrity auditing for secure outsourcing in the cloud
CN112733192A (zh) 基于联盟链和同态加密的司法电子证据***及方法
WO2023134576A1 (zh) 数据加密方法、属性授权中心及存储介质
Yan et al. Secure and efficient big data deduplication in fog computing
Yang et al. Privacy‐Preserving Query Scheme (PPQS) for Location‐Based Services in Outsourced Cloud
Zhang et al. Privacy‐Preserving Attribute‐Based Keyword Search with Traceability and Revocation for Cloud‐Assisted IoT
CN116366259A (zh) 一种面向密文数据的公共可验证布尔搜索***及方法
CN113868450A (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
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