CN108494768B - 一种支持访问控制的密文搜索方法及系统 - Google Patents

一种支持访问控制的密文搜索方法及系统 Download PDF

Info

Publication number
CN108494768B
CN108494768B CN201810237389.XA CN201810237389A CN108494768B CN 108494768 B CN108494768 B CN 108494768B CN 201810237389 A CN201810237389 A CN 201810237389A CN 108494768 B CN108494768 B CN 108494768B
Authority
CN
China
Prior art keywords
ciphertext
key
database
index
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
CN201810237389.XA
Other languages
English (en)
Other versions
CN108494768A (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.)
Shenzhen University
Original Assignee
Shenzhen 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 Shenzhen University filed Critical Shenzhen University
Priority to CN201810237389.XA priority Critical patent/CN108494768B/zh
Publication of CN108494768A publication Critical patent/CN108494768A/zh
Application granted granted Critical
Publication of CN108494768B publication Critical patent/CN108494768B/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
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Landscapes

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

Abstract

本发明适用于数据处理领域,提供了支持访问控制的搜索方法,包括:客户端将数据库的文件加密得到加密密文,根据文件标识符构建索引并加密,得到密文数据库;客户端接收密钥密文、私钥和检索关键字集合生成陷门;云服务器根据陷门检索对应的索引密文;客户端利用密钥,对索引密文进行解密,将解密得到的文件标识符上传到云服务器得到加密密文,使对所述加密密文进行解密,得到搜索结果;客户端按照预置展示方式展示所述搜索结果。本发明实施例在实施过程中,采用属性基加密对搜索用户访问数据的能力进行控制,但访问控制设定为整个数据库而非索引,能够大大减少数据拥有者加密数据库时的计算开销,同时用户获取搜索陷门的过程无需数据拥有者参与。

Description

一种支持访问控制的密文搜索方法及系统
技术领域
本发明属于数据处理技术领域,尤其涉及一种支持访问控制的密文搜索方 法及系统。
背景技术
云计算的出现,使用户能够享受无处不在,方便和按需的网络访问共享可 配置的计算资源池,具有很高的效率和最小的经济开销。尽管云服务具有各种 优势,将敏感信息(如电子邮件、个人健康记录、公司财务数据、政府文件等) 外包给远程服务器也带来了隐私问题。用户一旦将数据上传到云服务器便失去 了对数据的控制权,保存用户数据的云服务提供商CSP(Cloud Service Provider) 可以在未经授权的情况下访问用户的敏感信息。所以,云安全已经成为一个挑 战,也是决定云存储是否能更广泛应用的先决条件。如何享受云服务带给我们 方便的同时,保持数据的隐私性成为目前迫切的问题。
为了保证用户数据的隐私性,阻止数据被未授权的用户或攻击者所窃取, 最常见的方式是用户数据先加密,然后再存储到云服务器中。然而,加密数据 已经破坏了明文所具有的搜索功能,面对云服务器当中大量的加密数据,如何 有效搜索用户所需的数据已成为当前研究的热点问题。可搜索加密机制通过关 键字查询陷门完成加密数据的搜索操作,由云服务器返回满足查询条件的加密 文件集,用户在客户端解密后使用,能够同时保障数据保密性与搜索功能,实 现安全存储与高效搜索之间的有机统一。
目前,可搜索加密主要分为对称可搜索加密和公钥可搜索加密。对称可搜 索加密的构造通常基于伪随机函数,具有计算开销小、算法简单、速度快的特 点。Sun等人引入属性基加密构造了一个能实施访问控制的对称可搜索加密方 案,方案先对密文数据执行快速搜索再对搜索用户访问数据的能力进行控制, 但方案存在一定的缺陷。一方面,用户获取搜索陷门的过程需要数据拥有者参 与,这就要求数据拥有者必须时刻在线;另一方面,每个关键字对应的每一个 索引采用一个访问策略,在实现上需要大量的运算才能得以保证,故此导致数 据拥有者产生加密数据库时开销很大。
发明内容
本发明所要解决的技术问题在于提供一种支持访问控制的密文搜索方法及 系统,旨在解决现有技术在进行搜索时需要数据拥有者实时在线,需要大量的 运算才能得以保证访问控制的问题。
本发明是这样实现的,一种支持访问控制的密文搜索方法,密文搜索系统 包括客户端和云服务器,密文搜索方法包括:
步骤A,客户端将数据库的文件使用预置的对称加密算法加密,得到加密 密文,根据所述数据库的文件的文件标识符对所述加密密文构建索引,对所述 索引进行加密,得到包含索引密文的密文数据库,将所述加密密文和所述密文 数据发送至云服务器;
步骤B,所述客户端接收用户搜索时输入的密钥密文、私钥和检索关键字 集合,根据所述密钥密文、私钥和所述检索关键字集合生成陷门,将所述陷门 发送给所述云服务器;
步骤C,所述云服务器根据所述陷门,在密文数据库中检索所述陷门对应 的索引密文;
步骤D,所述客户端利用密钥,对所述索引密文进行解密,将解密得到的 文件标识符上传到所述云服务器,以使所述云服务器返回所述文件标识符对应 的加密密文,使用预置的对称加密算法对所述加密密文进行解密,得到搜索结 果;
步骤E,所述客户端按照预置展示方式展示所述搜索结果。
进一步地,所述步骤A包括:
客户端接收数据库,使用伪随机函数对所述数据库中的文件进行加密,得 到所述加密密文。
进一步地,所述伪随机函数以 PRF F:{0,1}λ×{0,1}λ→{0,1}λ,PRPP:{0,1}λ×{0,1}λ→{0,1}λ表示,所述密文数据库以 EDB表示,所述数据库以DB表示,
Figure BDA0001604331290000031
idi∈{0,1}λ表示文件标识符、
Figure BDA0001604331290000032
表示idi所包含的关键字集合,关键字集合
Figure BDA0001604331290000033
文件集合 Doc={f1,f2,…,fd},加密文件的密钥集合表示为R={r1,r2,…,rd},定义对称加密算 法SE=(Enc,Dec),所述步骤A具体包括:
在构建索引之前先用ri将fi加密,得到加密密文 cti←SE.Enc(ri,fi)(i=1,2,…,d);
设定密文访问控制权限,将所述加密密文上传到所述云服务器,所述密文 访问控制权限的方案为属性基加密方案ABE=(Setup,Encrypt,KeyGen,Decrypt);
输入系统安全参数λ和全局属性集N,权威机构PKG运行 (PK,MSK)←ABE.Setup(1λ,N);
为PRFF随机选择密钥k;
定义关键字集合W索引的空数组T;
将XSet定义为空集;
对于每个w∈W,将t定义为空列表,并计算关键字密文stag←F(k,w);
初始化密钥k1←F(k,1||w);
对于DB中的所有idi,以随机顺序初始化计数器c←0,并计算索引密文 rind←P(k,idi||ri),加密k1得z←P(k1,c),并定义y←rind·z-1,将(rind,y)加到t, 定义xtag为XSet的元素,计算
Figure BDA0001604331290000034
并将xtag加到XSet,c←c+1, T[stag]←t;
计算密文C←ABE.Encrypt(PK,k,Γ),得到EDB=(XSet,T,C),其中Γ为访问策略。
进一步地,以
Figure BDA0001604331290000041
表示所述检索关键字集合,
Figure BDA0001604331290000042
以C表示所 述密钥密文,SK表示所述私钥,以stag,xtoken[1],xtoken[2],…表示所述陷门,所述 步骤B中,属性集合为S的用户对关键字集合
Figure BDA0001604331290000043
进行检索,则步骤B具体包括:
所述客户端根据用户的属性S生成私钥SK←ABE.KeyGen(MSK,S);
根据所述密钥密文和所述私钥计算密钥k;
判断所述用户的属性S满足所述密文数据库的访问策略Γ,若满足,则解 密成功k←ABE.Decrypt(C,SK),得到密钥k,若不满足,则解密失败;
生成关键字密文stag←F(k,w1),及生成密钥k1←F(k,1||w1);
当i=2,…,n,计算陷门元素
Figure BDA0001604331290000044
得到所述陷门,即:xtoken[c]←(xtoken[c,2],xtoken[c,3],…,xtoken[c,n])。
进一步地,以l表示所述索引密文的集合,步骤C包括:
定义l,t为空集;
判断等式T[stag]=stag是否成立,若成立,则t=T[stag];否不成立,则返回 空集;
对于c=1,2,…,|t|,从t中的第c个元组检索(rind,y),若对于
Figure BDA0001604331290000045
则l←l∪rind。
进一步地,所述步骤D包括:
所述客户端使用密钥k解密索引密文的集合l,获取文件标识符idi和相应的 密钥ri;对rind∈l,计算(idi||ri)←P-1(k,rind),得到搜索结果(idi,ri);
将idi发送给所述云服务器,得到所述云服务器返回的cti=SE.Enc(ri,fi),用 相应的对称密钥ri提取文件fi=SE.Dec(ri,cti)。
本发明实施例还提供了一种支持访问控制的密文搜索系统,包括:
客户端,用户将数据库的文件使用预置的对称加密算法加密,得到加密密 文,根据所述数据库的文件的文件标识符对所述加密密文构建索引,对所述索 引进行加密,得到包含索引密文的密文数据库,将所述加密密文和所述密文数 据发送至云服务器进行包括;还用于接收用户搜索时输入的密钥密文、私钥和 检索关键字集合,根据所述密钥密文、私钥和所述检索关键字集合生成陷门, 将所述陷门发送给所述云服务器;
所述云服务器,用于保存所述加密密文和所述密文数据库;还用于根据所 述陷门,在密文数据库中检索所述陷门对应的索引密文;还用于根据文件标识 符查找对应的加密密文;
所述客户端,还用于利用密钥,对所述索引密文进行解密,将解密得到的 文件标识符上传到所述云服务器,以使所述云服务器返回所述文件标识符对应 的加密密文,使用预置的对称加密算法对所述加密密文进行解密,得到搜索结 果,按照预置展示方式展示所述搜索结果。
进一步地,所述客户端具体用于:
接收数据库,使用伪随机函数对所述数据库中的文件进行加密,得到所述 加密密文;
所述伪随机函数以PRF F:{0,1}λ×{0,1}λ→{0,1}λ,PRPP:{0,1}λ×{0,1}λ→{0,1}λ表 示,所述密文数据库以EDB表示,所述数据库以DB表示,
Figure BDA0001604331290000051
idi∈{0,1}λ表示文件标识符、
Figure BDA0001604331290000052
表示idi所包含的关键字集合,关键字集合
Figure BDA0001604331290000053
文件集合Doc={f1,f2,…,fd},加密文件的密钥集合表示为 R={r1,r2,…,rd},,定义对称加密算法SE=(Enc,Dec);
在构建索引之前先用ri将fi加密,得到文件密文 cti←SE.Enc(ri,fi)(i=1,2,…,d);
设定访问密文控制权限,将所述加密密文上传到云服务器,所述密文访问 控制权限的方案为属性基加密方案ABE=(Setup,Encrypt,KeyGen,Decrypt);
输入系统安全参数λ和全局属性集N,权威机构PKG运行 (PK,MSK)←ABE.Setup(1λ,N):
为PRFF随机选择密钥k;
定义关键字集合W索引的空数组T;
将XSet定义为空集;
对于每个w∈W,将t定义为空列表,并计算关键字密文stag←F(k,w);
初始化密钥k1←F(k,1||w);
对于DB中的所有idi,以随机顺序初始化计数器c←0,并计算索引密文 rind←P(k,idi||ri),加密k1得z←P(k1,c),并定义y←rind·z-1,将(rind,y)加到t, 定义xtag为XSet的元素,计算
Figure BDA0001604331290000061
并将xtag加到XSet,c←c+1, T[stag]←t;
计算密文C←ABE.Encrypt(PK,k,Γ),得到EDB=(XSet,T,C),其中Γ为访问策略。
进一步地,以
Figure BDA0001604331290000062
表示所述检索关键字集合,
Figure BDA0001604331290000063
以C表示所 述密钥密文,SK表示所述私钥,以stag,xtoken[1],xtoken[2],…表示所述陷门,所述 客户端用于:
根据用户的属性S生成私钥SK←ABE.KeyGen(MSK,S);
根据所述密钥密文和所述私钥计算密钥k;判断所述用户的属性S满足所 述密文数据库的访问策略Γ,若满足,则解密成功k←ABE.Decrypt(C,SK),得到 密钥k,若不满足,则解密失败;
生成关键字密文stag←F(k,w1),及生成密钥k1←F(k,1||w1);
当i=2,…,n,计算陷门元素
Figure BDA0001604331290000064
得到所述陷门,即:xtoken[c]←(xtoken[c,2],xtoken[c,3],…,xtoken[c,n])。
进一步地,以l表示所述索引密文的集合,所述云服务器具体用于:
定义l,t为空集;
判断等式T[stag]=stag是否成立,若成立,则t=T[stag];否不成立,则返回 空集;
对于c=1,2,…,|t|,从t中的第c个元组检索(rind,y),若对于
Figure BDA0001604331290000071
则l←l∪rind;
所述客户端还用于:
使用密钥k解密索引密文的集合l,获取文件标识符idi和相应的密钥ri;对 rind∈l,计算(idi||ri)←P-1(k,rind),得到搜索结果(idi,ri);
将idi发送给所述云服务器,得到所述云服务器返回的cti=SE.Enc(ri,fi),用 相应的对称密钥ri提取文件fi=SE.Dec(ri,cti)。
本发明与现有技术相比,有益效果在于:本发明实施例当检测到用户搜索 时输入的密钥密文、私钥和检索关键字集合时,生成陷门,根据该陷门在密文 数据库中搜索该陷门对应的索引密文,利用密钥对该索引密文进行解密,得到 文件标识符,并根据文件标识符查找对应的加密密文,对加密密文进行解密得 到搜索结果。本发明实施例在实施过程中,采用属性基加密对搜索用户访问数 据的能力进行控制,但访问控制设定为整个数据库而非索引,能够大大减少数 据拥有者加密数据库时的计算开销,同时用户获取搜索陷门的过程无需数据拥 有者参与。本发明实施例解决了现有云存储服务存在的数据安全问题、高效密 文搜索以及数据访问控制问题。
附图说明
图1是本发明实施例提供的一种支持访问控制的密文搜索方法的流程图;
图2是本发明实施例提供的不同方法的总运行时间的示意图;
图3是本发明实施例提供的密文数据库初始化的运行时间示意图;
图4是本发明实施例提供的陷门生成过程与提取过程的运行时间示意图;
图5是本发明实施例提供的执行搜索方法的运行时间示意图;
图6是本发明实施例提供的一种支持访问控制的密文搜索系统的结构示意 图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实 施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅 仅用以解释本发明,并不用于限定本发明。
图1示出了本发明实施例提供的一种支持访问控制的密文搜索,包括:
S101,客户端将数据库的文件使用预置的对称加密算法加密,得到加密密 文,根据所述数据库的文件的文件标识符对所述加密密文构建索引,对所述索 引进行加密,得到包含索引密文的密文数据库,将所述加密密文和所述密文数 据发送给云服务器;
S102,所述客户端接收用户搜索时输入的密钥密文、私钥和检索关键字集 合,根据所述密钥密文、私钥和所述检索关键字集合生成陷门,将所述陷门发 送给所述云服务器;
S103,所述云服务器根据所述陷门,在密文数据库中检索所述陷门对应的 索引密文;
S104,所述客户端利用密钥,对所述索引密文进行解密,将解密得到的文 件标识符上传到所述云服务器,以使所述云服务器返回所述文件标识符对应的 加密密文,使用预置的对称加密算法对所述加密密文进行解密,得到搜索结果;
S105,所述客户端按照预置展示方式展示所述搜索结果。
假设本发明实施例提供的密文搜索系统有n个属性,用N={a1,a2,…,an}表 示。{0,1}d由长为d的0,1序列构成,{0,1}*由不定长的0,1序列构成,以λ表示安 全参数,G0表示素数阶为p、生成元为g的双线性群。定义数据库
Figure BDA0001604331290000081
其中idi∈{0,1}λ为文件标识符、
Figure BDA0001604331290000082
为idi所包含的关键字集合。定义全部关 键字集合
Figure BDA0001604331290000083
文件集合Doc={f1,f2,…,fd}、加密文件的密钥集合为 R={r1,r2,…,rd}。
在本发明实施例中,步骤S101具体包括:为了保障外包文件的机密性,定 义对称加密算法SE=(Enc,Dec),数据拥有者在构建索引之前先用ri将fi加密,得 到加密密文cti←SE.Enc(ri,fi)(i=1,2,…,d),并将加密密文上传到云服务器。为了 实施访问控制,数据拥有者在上传数据之前需设定访问控制权限,定义所采用 的密文访问控制方案为属性基加密方案ABE=(Setup,Encrypt,KeyGen,Decrypt)。输入 搜索系统的安全参数λ和全局属性集N,权威机构PKG运行 (PK,MSK)←ABE.Setup(1λ,N)。定义伪随机函数 PRF F:{0,1}λ×{0,1}λ→{0,1}λ,PRPP:{0,1}λ×{0,1}λ→{0,1}λ
在本发明实施例中,在根据用户输入的检索关键字集合进行检索之前,需 要对数据进行加密,加密的过程具体包括:
输入数据库DB,输出密文数据库EDB,密文数据库初始化算法 EDBSetup(DB)具体描述如下:
1、为PRF F随机选择密钥k,并将DB表示为
Figure BDA0001604331290000091
2、将T定义为关键字集合W索引的空数组;
3、将XSet定义为空集;
4、对于每个w∈W:
a)、将t定义为空列表,并计算关键字密文stag←F(k,w);
b)、初始化密钥k1←F(k,1||w);
c)、对于DB中的所有idi,以随机顺序初始化计数器c←0,然后:
i、计算索引密文rind←P(k,idi||ri),加密k1得z←P(k1,c),并定 义y←rind·z-1
ii、将(rind,y)加到t;
iii、定义xtag为XSet是元素,计算
Figure BDA0001604331290000092
并将xtag加到 XSet;
iv、c←c+1;
d)、T[stag]←t;
5、计算密文C←ABE.Encrypt(PK,k,Γ),其中Γ为访问策略;
6、输出EDB=(XSet,T,C)。
在上述步骤S101中,假设属性集合为S的合法用户用检索关键字集合
Figure BDA0001604331290000101
进行搜索,假设w1为检索关键字集合中频率最小的关键字。根 据用户请求的密钥密文C,通过PKG生成私钥SK←ABE.KeyGen(MSK,S);
步骤S102具体包括:
接收用户输入的C,SK,
Figure BDA0001604331290000102
输出陷门 stag,xtoken[1],xtoken[2],…;
陷门的生成步骤
Figure BDA0001604331290000103
具体包括:
1、计算k←ABE.Decrypt(C,SK)。若用户的属性S满足该密文数据库的访问策 略Γ,则成功解密,得到密钥k;否则,返回null;
2、消息(stag,xtoken[1],xtoken[2],…)生成步骤包括:
a)、生成关键字密文stag←F(k,w1);
b)、生成密钥k1←F(k,1||w1);
c)、对计数器c=1,2,…直到云服务器停止;
i.对i=2,…,n,计算陷门元素
Figure BDA0001604331290000104
ii.有xtoken[c]←(xtoken[c,2],xtoken[c,3],…,xtoken[c,n]);
在步骤S103中,通过云服务器执行加密密文的搜索,当步骤S102生成陷 门(stag,xtoken[1],xtoken[2],…)后,云服务器在之前生成的密文数据库EDB中搜索, 得到搜索结果,即索引密文的集合l,搜索步骤 Search(stag,(xtoken[1],xtoken[2],…),EDB)包括:
1、定义l,t为空集;
2、验证等式T[stag]=stag是否成立,若成立,则t=T[stag];否则,返回null;
3、对于c=1,2,…,|t|;
a)从t中的第c个元组检索(rind,y);
b)若对于
Figure BDA0001604331290000105
令l←l∪rind。
在步骤S104中,利用密钥k对搜索结果l进行解密,得到搜索结果,解密过 程Retrieve(l,k)具体包括:
1、用户用密钥k解密搜索结果l,获取文件标识符idi和相应的密钥ri
2、对rind∈l:
a)、计算(idi||ri)←P-1(k,rind);
b)、返回(idi,ri)。
3、将idi发送给云服务器,得到cti=SE.Enc(ri,fi),用相应的对称密钥ri提取文件fi=SE.Dec(ri,cti)。
本发明实施例在具体应用时,通过客户端和云服务器实现上述功能,客户端 包括手持终端或者个人电脑等。在步骤S101中,用户通过客户端输入数据至数 据库,客户端可以执行对数据库进行加密得到密文数据库的步骤,客户端得到 密文数据库后,将该密文数据库发送至客户端,也可以将该数据库传输至云服 务,由云服务器进行数据库的加密,得到密文数据库。在步骤S102中,假设属 性集合为S的合法用户通过客户端执行对检索关键字集合
Figure BDA0001604331290000111
的搜 索,假设w1为检索关键字集合中频率最小的关键字。用户通过客户端从云服务 器请求密钥密文C,并通过PKG生成私钥SK←ABE.KeyGen(MSK,S),客户端根据 该密钥密文C、私钥SK和检索关键字集合
Figure BDA0001604331290000112
生成陷门,并将该陷 门发送给云服务器,在步骤S103中,云服务器执行检索步骤,当云服务器接收 到陷门后,将根据该陷门在密文数据中进行检索,得到索引密文。云服务得到 加密密文后,将该索引密文发送到客户端,由客户端执行步骤S104。在步骤 S105中,当完成步骤S101到步骤S104的搜索步骤后,客户端将按照预先设置 的展示方式展示该检索结果。
在实际应用中,通过实验仿真比较了Sun方案和本发明实施例的效率。仿真 所采用的计算机配置为3.60GHz的Inter(R)Core(TM)i7-4790CPU和8.00 GB RAM,所采用的操作系统为Windows 7,所采用的编程语言为Java,其中 使用cpabe工具包和Java Pairing-Based Cryptography library(JPBC)。具体地,本 实验中采用安然邮件数据库评估方案性能,具体采用表1所示的实验参数分别 进行了六组实验。
表1实验参数
分组 数据库大小 关键字数量 含每个关键字文件数量
1 200 10 20
2 800 20 40
3 1500 30 50
4 3000 50 60
5 8000 100 80
6 20000 200 100
图2显示了Sun方案和本发明实施例总的计算时间。从图2可以看出,Sun 的方案中总的时间成本远远高于本本发明实施例,而且随着数据库的增大呈指 数增长,而本本发明实施例在数据库增大的过程中时间成本增加幅度较小。
图2中总的时间成本主要包含由数据拥有者所执行的密文数据库初始化算 法、由用户的客户端所执行的陷门生成步骤、由云服务器所执行的搜索步骤, 分别如图3、图4、图5所示。图3中Sun方案的初始化算法的时间成本明显高 于本发明实施例,而且随着数据库的增大几乎呈指数型增长,而本方案本发明 实施例在数据库增大的过程中时间成本增加幅度较小。
图4与图5中,Sun方案与本发明实施例的陷门生成步骤、搜索步骤的时间 成本几乎相同,都随着数据库的增大都呈线性增长。
综上所述,实验结果表明本发明实施例比Sun方案计算效率更高。
图6示出了本发明实施例提供的一种支持访问控制的搜索系统,包括:
客户端601,用户将数据库的文件使用预置的对称加密算法加密,得到加 密密文,根据所述数据库的文件的文件标识符对所述加密密文构建索引,对所 述索引进行加密,得到包含索引密文的密文数据库,将所述加密密文和所述密 文数据发送给云服务器602;还用于接收用户搜索时输入的密钥密文、私钥和 检索关键字集合,根据所述密钥密文、私钥和所述检索关键字集合生成陷门, 将所述陷门发送给云服务器602;
云服务器602,用于保存所述加密密文和所述密文数据库;还用于根据所 述陷门,在密文数据库中检索所述陷门对应的索引密文;还用于根据文件标识 符查找对应的加密密文;
客户端601,还用于利用密钥,对所述索引密文进行解密,将解密得到的 文件标识符上传到所述云服务器,以使所述云服务器返回所述文件标识符对应 的加密密文,使用预置的对称加密算法对所述加密密文进行解密,得到搜索结 果,按照预置展示方式展示所述搜索结果。
进一步地,客户端601具体用于:
接收数据库,使用伪随机函数对所述数据库中的文件进行加密,得到所述 加密密文;
所述伪随机函数以PRF F:{0,1}λ×{0,1}λ→{0,1}λ,PRPP:{0,1}λ×{0,1}λ→{0,1}λ表 示,所述密文数据库以EDB表示,所述数据库以DB表示,
Figure BDA0001604331290000131
idi∈{0,1}λ表示文件标识符、
Figure BDA0001604331290000132
表示idi所包含的关键字集合,关键字集合
Figure BDA0001604331290000133
文件集合Doc={f1,f2,…,fd},加密文件的密钥集合表示为 R={r1,r2,…,rd},,定义对称加密算法SE=(Enc,Dec);
在构建索引之前先用ri将fi加密,得到文件密文 cti←SE.Enc(ri,fi)(i=1,2,…,d);
设定访问密文控制权限,将所述加密密文上传到云服务器,所述密文访问 控制权限的方案为属性基加密方案ABE=(Setup,Encrypt,KeyGen,Decrypt);
输入系统安全参数λ和全局属性集N,权威机构PKG运行 (PK,MSK)←ABE.Setup(1λ,N):
为PRFF随机选择密钥k;
定义关键字集合W索引的空数组T;
将XSet定义为空集;
对于每个w∈W,将t定义为空列表,并计算关键字密文stag←F(k,w);
初始化密钥k1←F(k,1||w);
对于DB中的所有idi,以随机顺序初始化计数器c←0,并计算索引密文 rind←P(k,idi||ri),加密k1得z←P(k1,c),并定义y←rind·z-1,将(rind,y)加到t, 定义xtag为XSet的元素,计算
Figure BDA0001604331290000141
并将xtag加到XSet,c←c+1, T[stag]←t;
计算密文C←ABE.Encrypt(PK,k,Γ),得到EDB=(XSet,T,C),其中Γ为访问策略。
进一步地,以
Figure BDA0001604331290000142
表示所述检索关键字集合,
Figure BDA0001604331290000143
以C表示所 述密钥密文,SK表示所述私钥,以stag,xtoken[1],xtoken[2],…表示所述陷门,客户 端601用于:
根据用户的属性S生成私钥SK←ABE.KeyGen(MSK,S);
根据所述密钥密文和所述私钥计算密钥k;判断所述用户的属性S满足所 述密文数据库的访问策略Γ,若满足,则解密成功k←ABE.Decrypt(C,SK),得到 密钥k,若不满足,则解密失败;
生成关键字密文stag←F(k,w1),及生成密钥k1←F(k,1||w1);
当i=2,…,n,计算陷门元素
Figure BDA0001604331290000144
得到所述陷门,即:xtoken[c]←(xtoken[c,2],xtoken[c,3],…,xtoken[c,n])。
进一步地,以l表示所述索引密文的集合,云服务器602具体用于:
定义l,t为空集;
判断等式T[stag]=stag是否成立,若成立,则t=T[stag];否不成立,则返回 空集;
对于c=1,2,…,|t|,从t中的第c个元组检索(rind,y),若对于
Figure BDA0001604331290000145
则l←l∪rind;
客户端601还用于:
使用密钥k解密索引密文的集合l,获取文件标识符idi和相应的密钥ri;对 rind∈l,计算(idi||ri)←P-1(k,rind),得到搜索结果(idi,ri);
将idi发送给所述云服务器,得到所述云服务器返回的cti=SE.Enc(ri,fi),用 相应的对称密钥ri提取文件fi=SE.Dec(ri,cti)。
本发明实施例还提供了一种终端,包括存储器、处理器及存储在存储器上 且在处理器上运行的计算机程序,其特征在于,处理器执行计算机程序时,实 现如图1所示的支持访问控制的密文搜索方法中的各个步骤。
本发明实施例中还提供一种可读存储介质,其上存储有计算机程序,其特 征在于,所述计算机程序被处理器执行时,实现如图1所示的支持访问控制的 密文搜索方法中的各个步骤。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中, 也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块 中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的 形式实现。
所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或 使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明 的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或 部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质 中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或 者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的 存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、 随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以 存储程序代码的介质。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发 明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明 的保护范围之内。

Claims (5)

1.一种支持访问控制的密文搜索方法,其特征在于,密文搜索系统包括客户端和云服务器,密文搜索方法包括:
步骤A,客户端将数据库的文件使用预置的对称加密算法加密,得到加密密文,根据所述数据库的文件的文件标识符对所述加密密文构建索引,对所述索引进行加密,得到包含索引密文的密文数据库,将所述加密密文和所述密文数据库发送给云服务器;客户端接收数据库,使用伪随机函数对所述数据库中的文件进行加密,得到所述加密密文;所述伪随机函数以PRF F:{0,1}λ×{0,1}λ→{0,1}λ,PRP P:{0,1}λ×{0,1}λ→{0,1}λ表示,所述密文数据库以EDB表示,所述数据库以DB表示,
Figure FDA0003009293360000011
idi∈{0,1}λ表示文件标识符、
Figure FDA0003009293360000012
表示idi所包含的关键字集合,关键字集合
Figure FDA0003009293360000013
文件集合Doc={f1,f2,…,fd},加密文件的密钥集合表示为R={r1,r2,…,rd},定义对称加密算法SE=(Enc,Dec),所述步骤A具体包括:
在构建索引之前先用ri将fi加密,得到加密密文cti←SE.Enc(ri,fi)(i=1,2,…,d);
设定密文访问控制权限,将所述加密密文上传到所述云服务器,所述密文访问控制权限的方案为属性基加密方案ABE=(Setup,Encrypt,KeyGen,Decrypt);
输入系统安全参数λ和全局属性集N,权威机构PKG运行(PK,MSK)←ABE.Setup(1λ,N);
为PRF F随机选择密钥k;
定义关键字集合W索引的空数组T;
将XSet定义为空集;
对于每个w∈W,将t定义为空列表,并计算关键字密文stag←F(k,w);
初始化密钥k1←F(k,1||w);
对于DB中的所有idi,以随机顺序初始化计数器c←0,并计算索引密文rind←P(k,idi||ri),加密k1得z←P(k1,c),并定义y←rind·z-1,将(rind,y)加到t,定义xtag为XSet的元素,计算
Figure FDA0003009293360000021
并将xtag加到XSet,c←c+1,T[stag]←t;
计算密文C←ABE.Encrypt(PK,k,Γ),得到EDB=(XSet,T,C),其中Γ为访问策略;
步骤B,所述客户端接收用户搜索时输入的密钥密文、私钥和检索关键字集合,根据所述密钥密文、私钥和所述检索关键字集合生成陷门,将所述陷门发送给所述云服务器;以
Figure FDA0003009293360000022
表示所述检索关键字集合,
Figure FDA0003009293360000023
以C表示所述密钥密文,SK表示所述私钥,以stag,xtoken[1],xtoken[2],…表示所述陷门,所述步骤B中,属性集合为S的用户对关键字集合
Figure FDA0003009293360000024
进行检索,则步骤B具体包括:
所述客户端根据用户的属性S生成私钥SK←ABE.KeyGen(MSK,S);
根据所述密钥密文和所述私钥计算密钥k;
判断所述用户的属性S满足所述密文数据库的访问策略Γ,若满足,则解密成功k←ABE.Decrypt(C,SK),得到密钥k,若不满足,则解密失败;
陷门生成步骤包括:生成关键字密文stag←F(k,w1),及生成密钥k1←F(k,1||w1);
当i=2,…,n,计算陷门元素
Figure FDA0003009293360000025
得到所述陷门,即:xtoken[c]←(xtoken[c,2],xtoken[c,3],…,xtoken[c,n]);
步骤C,所述云服务器根据所述陷门,在密文数据库中检索所述陷门对应的索引密文;
步骤D,所述客户端利用密钥,对所述索引密文进行解密,将解密得到的文件标识符上传到所述云服务器,以使所述云服务器返回所述文件标识符对应的加密密文,使用预置的对称加密算法对所述加密密文进行解密,得到搜索结果;
步骤E,所述客户端按照预置展示方式展示所述搜索结果。
2.如权利要求1所述的密文搜索方法,其特征在于,以l表示所述索引密文的集合,步骤C包括:
定义l,t为空集;
判断等式T[stag]=stag是否成立,若成立,则t=T[stag];若不成立,则返回空集;
对于c=1,2,…,|t|,从t中的第c个元组检索(rind,y),若对于
Figure FDA0003009293360000034
则l←l∪rind。
3.如权利要求2所述的密文搜索方法,其特征在于,所述步骤D包括:
所述客户端使用密钥k解密索引密文的集合l,获取文件标识符idi和相应的密钥ri;对rind∈l,计算(idi||ri)←P-1(k,rind),得到搜索结果(idi,ri);
将idi发送给所述云服务器,得到所述云服务器返回的cti=SE.Enc(ri,fi),用相应的对称密钥ri提取文件fi=SE.Dec(ri,cti)。
4.一种支持访问控制的密文搜索系统,其特征在于,包括:
客户端,用户将数据库的文件使用预置的对称加密算法加密,得到加密密文,根据所述数据库的文件的文件标识符对所述加密密文构建索引,对所述索引进行加密,得到包含索引密文的密文数据库,将所述加密密文和所述密文数据库发送给云服务器;还用于接收用户搜索时输入的密钥密文、私钥和检索关键字集合,根据所述密钥密文、私钥和所述检索关键字集合生成陷门,将所述陷门发送给所述云服务器;客户端接收数据库,使用伪随机函数对所述数据库中的文件进行加密,得到所述加密密文;所述伪随机函数以PRF F:{0,1}λ×{0,1}λ→{0,1}λ,PRP P:{0,1}λ×{0,1}λ→{0,1}λ表示,所述密文数据库以EDB表示,所述数据库以DB表示,
Figure FDA0003009293360000031
idi∈{0,1}λ表示文件标识符、
Figure FDA0003009293360000032
表示idi所包含的关键字集合,关键字集合
Figure FDA0003009293360000033
文件集合Doc={f1,f2,…,fd},加密文件的密钥集合表示为R={r1,r2,…,rd},定义对称加密算法SE=(Enc,Dec),具体包括:
在构建索引之前先用ri将fi加密,得到加密密文cti←SE.Enc(ri,fi)(i=1,2,…,d);
设定密文访问控制权限,将所述加密密文上传到所述云服务器,所述密文访问控制权限的方案为属性基加密方案ABE=(Setup,Encrypt,KeyGen,Decrypt);
输入系统安全参数λ和全局属性集N,权威机构PKG运行(PK,MSK)←ABE.Setup(1λ,N);
为PRF F随机选择密钥k;
定义关键字集合W索引的空数组T;
将XSet定义为空集;
对于每个w∈W,将t定义为空列表,并计算关键字密文stag←F(k,w);
初始化密钥k1←F(k,1||w);
对于DB中的所有idi,以随机顺序初始化计数器c←0,并计算索引密文rind←P(k,idi||ri),加密k1得z←P(k1,c),并定义y←rind·z-1,将(rind,y)加到t,定义xtag为XSet的元素,计算
Figure FDA0003009293360000041
并将xtag加到XSet,c←c+1,T[stag]←t;
计算密文C←ABE.Encrypt(PK,k,Γ),得到EDB=(XSet,T,C),其中Γ为访问策略;
Figure FDA0003009293360000042
表示所述检索关键字集合,
Figure FDA0003009293360000043
以C表示所述密钥密文,SK表示所述私钥,以stag,xtoken[1],xtoken[2],…表示所述陷门,所述客户端用于:
根据用户的属性S生成私钥SK←ABE.KeyGen(MSK,S);
根据所述密钥密文和所述私钥计算密钥k;判断所述用户的属性S满足所述密文数据库的访问策略Γ,若满足,则解密成功k←ABE.Decrypt(C,SK),得到密钥k,若不满足,则解密失败;
陷门生成步骤包括:生成关键字密文stag←F(k,w1),及生成密钥k1←F(k,1||w1);
当i=2,…,n,计算陷门元素
Figure FDA0003009293360000051
得到所述陷门,即:xtoken[c]←(xtoken[c,2],xtoken[c,3],…,xtoken[c,n]);
所述云服务器,用于保存所述加密密文和所述密文数据库;还用于根据所述陷门,在密文数据库中检索所述陷门对应的索引密文;还用于根据文件标识符查找对应的加密密文;
所述客户端,还用于利用密钥,对所述索引密文进行解密,将解密得到的文件标识符上传到所述云服务器,以使所述云服务器返回所述文件标识符对应的加密密文,使用预置的对称加密算法对所述加密密文进行解密,得到搜索结果,按照预置展示方式展示所述搜索结果。
5.如权利要求4所述的密文搜索系统,其特征在于,以l表示所述索引密文的集合,所述云服务器具体用于:
定义l,t为空集;
判断等式T[stag]=stag是否成立,若成立,则t=T[stag];否不成立,则返回空集;
对于c=1,2,…,|t|,从t中的第c个元组检索(rind,y),若对于
Figure FDA0003009293360000052
则l←l∪rind;
所述客户端还用于:
使用密钥k解密索引密文的集合l,获取文件标识符idi和相应的密钥ri;对rind∈l,计算(idi||ri)←P-1(k,rind),得到搜索结果(idi,ri);
将idi发送给所述云服务器,得到所述云服务器返回的cti=SE.Enc(ri,fi),用相应的对称密钥ri提取文件fi=SE.Dec(ri,cti)。
CN201810237389.XA 2018-03-22 2018-03-22 一种支持访问控制的密文搜索方法及系统 Active CN108494768B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810237389.XA CN108494768B (zh) 2018-03-22 2018-03-22 一种支持访问控制的密文搜索方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810237389.XA CN108494768B (zh) 2018-03-22 2018-03-22 一种支持访问控制的密文搜索方法及系统

Publications (2)

Publication Number Publication Date
CN108494768A CN108494768A (zh) 2018-09-04
CN108494768B true CN108494768B (zh) 2021-07-23

Family

ID=63319204

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810237389.XA Active CN108494768B (zh) 2018-03-22 2018-03-22 一种支持访问控制的密文搜索方法及系统

Country Status (1)

Country Link
CN (1) CN108494768B (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109165226B (zh) * 2018-10-15 2021-03-02 东北大学 一种面向密文大型数据集的可搜索加密方法
CN109740377A (zh) * 2018-12-27 2019-05-10 深圳技术大学(筹) 一种可防伪造的多用户密文搜索方法
WO2020133032A1 (zh) * 2018-12-27 2020-07-02 深圳技术大学(筹) 一种可防伪造的多用户密文搜索方法
CN109992995B (zh) * 2019-03-05 2021-05-14 华南理工大学 一种支持位置保护和查询隐私的可搜索加密方法
CN110489998B (zh) * 2019-08-21 2021-02-26 青岛大学 一种可搜索加密方法、装置、设备及可读存储介质
CN110727951B (zh) * 2019-10-14 2021-08-27 桂林电子科技大学 具有隐私保护的轻量级外包文件多关键词检索方法及系统
US11321382B2 (en) * 2020-02-11 2022-05-03 International Business Machines Corporation Secure matching and identification of patterns
CN111460480B (zh) * 2020-03-31 2022-03-18 中国电子科技集团公司第三十研究所 一种密文搜索系统中安全的密文文件分享方法
CN111556048B (zh) * 2020-04-26 2022-04-01 山东师范大学 一种支持密文模式匹配的属性基安全通信方法及系统
WO2021232193A1 (zh) * 2020-05-18 2021-11-25 深圳技术大学 雾计算下基于cp-abe的密文搜索方法、装置、设备及存储介质
CN111814174B (zh) * 2020-09-04 2020-12-08 平安国际智慧城市科技股份有限公司 数据访问的控制方法、装置和计算机设备
CN113132345B (zh) * 2021-03-04 2022-07-26 北京航空航天大学 具有可搜索功能的代理隐私集合求交方法
CN112948878A (zh) * 2021-03-05 2021-06-11 支付宝(杭州)信息技术有限公司 保护隐私的集合交集计算方法和装置
CN112887427B (zh) * 2021-03-05 2023-04-07 湖州奕锐信安科技有限公司 一种云平台加密系统及方法
CN113037743B (zh) * 2021-03-05 2022-08-23 湖州奕锐信安科技有限公司 一种云端服务器文件的加密方法及系统
CN114826736A (zh) * 2022-04-26 2022-07-29 平安普惠企业管理有限公司 信息共享方法、装置、设备及存储介质
CN115640601A (zh) * 2022-09-30 2023-01-24 蚂蚁区块链科技(上海)有限公司 一种实现隐私信息检索的方法、系统、服务端和客户端
CN116910788B (zh) * 2023-08-15 2024-06-11 广州粤建三和软件股份有限公司 一种业务数据的可搜索加密管理方法、装置及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090056078A (ko) * 2007-11-29 2009-06-03 주식회사 케이티 사전 공격의 방지를 위한 키 생성 방법과, 그를 이용한검색 가능 암호문 생성 방법 및 데이터 검색 방법
CN103944711A (zh) * 2014-02-17 2014-07-23 国家超级计算深圳中心 一种云存储密文检索方法及其系统
CN107222483A (zh) * 2017-06-07 2017-09-29 中山大学 一种多访问级别的电子文档网络存储管理的方法
CN107256248A (zh) * 2017-06-07 2017-10-17 福州大学 云存储安全中基于通配符的可搜索加密方法
CN107547530A (zh) * 2017-08-21 2018-01-05 安徽大学 移动云环境下基于属性的在线/离线关键字搜索方法及其云计算应用系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090056078A (ko) * 2007-11-29 2009-06-03 주식회사 케이티 사전 공격의 방지를 위한 키 생성 방법과, 그를 이용한검색 가능 암호문 생성 방법 및 데이터 검색 방법
CN103944711A (zh) * 2014-02-17 2014-07-23 国家超级计算深圳中心 一种云存储密文检索方法及其系统
CN107222483A (zh) * 2017-06-07 2017-09-29 中山大学 一种多访问级别的电子文档网络存储管理的方法
CN107256248A (zh) * 2017-06-07 2017-10-17 福州大学 云存储安全中基于通配符的可搜索加密方法
CN107547530A (zh) * 2017-08-21 2018-01-05 安徽大学 移动云环境下基于属性的在线/离线关键字搜索方法及其云计算应用系统

Also Published As

Publication number Publication date
CN108494768A (zh) 2018-09-04

Similar Documents

Publication Publication Date Title
CN108494768B (zh) 一种支持访问控制的密文搜索方法及系统
US11973889B2 (en) Searchable encrypted data sharing method and system based on blockchain and homomorphic encryption
Li et al. Full verifiability for outsourced decryption in attribute based encryption
CN110224986B (zh) 一种基于隐藏策略cp-abe的高效可搜索访问控制方法
Pasupuleti et al. An efficient and secure privacy-preserving approach for outsourced data of resource constrained mobile devices in cloud computing
WO2020133032A1 (zh) 一种可防伪造的多用户密文搜索方法
CN103731432B (zh) 一种支持多用户的可搜索加密方法
CN112270006A (zh) 电商平台中隐藏搜索模式和访问模式的可搜索加密方法
CN112332979B (zh) 云计算环境中的密文搜索方法及系统、设备
Yiu et al. Outsourcing search services on private spatial data
CN114640458A (zh) 云边协同环境下细粒度的多用户安全可搜索加密方法
CN107294701B (zh) 具有高效密钥管理的多维密文区间查询装置及查询方法
Zhang et al. A dynamic searchable symmetric encryption scheme for multiuser with forward and backward security
Chen et al. Password-authenticated searchable encryption
CN109740378B (zh) 一种抗关键词隐私泄露的安全对索引构造及其检索方法
Shekhawat et al. Privacy-preserving techniques for big data analysis in cloud
Verma Secure client-side deduplication scheme for cloud with dual trusted execution environment
KR101140576B1 (ko) 암호화 문서에 대한 다자간 검색 시스템 및 그 방법
Dayıoğlu Secure database in cloud computing-cryptdb revisited
CN117951730A (zh) 一种基于哈希索引的云端安全可搜索加密方法
WO2019178792A1 (zh) 一种支持访问控制的密文搜索方法及系统
Barouti et al. Symmetrically-private database search in cloud computing
Yan et al. Secure and efficient big data deduplication in fog computing
CN108920968B (zh) 一种基于连接关键词的文件可搜索加密方法
Shen et al. Multi-Keywords Searchable Attribute-Based Encryption With Verification and Attribute Revocation Over Cloud Data

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