CN110166466B - 一种可高效更新权限的多用户可搜索加密方法和系统 - Google Patents
一种可高效更新权限的多用户可搜索加密方法和系统 Download PDFInfo
- Publication number
- CN110166466B CN110166466B CN201910448335.2A CN201910448335A CN110166466B CN 110166466 B CN110166466 B CN 110166466B CN 201910448335 A CN201910448335 A CN 201910448335A CN 110166466 B CN110166466 B CN 110166466B
- Authority
- CN
- China
- Prior art keywords
- key
- user
- ciphertext
- keyword
- data owner
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0407—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Data Mining & Analysis (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种可高效更新权限的多用户可搜索加密方法,属于云计算存储和密码学技术领域。数据拥有者先确定查询用户对文件的权限,构建出访问控制列表,然后将数据加密生成对应的密文数据以及元数据,并将它们上传到云服务端。同时数据拥有者返回给查询用户相应的访问密钥,用来从向云服务端生成查询认证。用户检索时,发送相应关键字的查询密文标识以及由认证密钥生成的认证标识。服务端接收到这些信息后,先根据认证标识进行认证,确定有权查询后再进行密文上的检索。本发明一方面避免了数据拥有者和查询用户的实时交互;另一方面使数据拥有者可以高效地更新查询用户的权限且不影响其他用户;再一方面可扩展到大规模加密数据库中。
Description
技术领域
本发明属于云计算存储隐私保护领域,更具体地说,涉及一种可高效更新权限的多用户可搜索加密方法和系统。
背景技术
随着云计算存储技术的发展,大量数据拥有者(例如企业或个人)将数据外包到云服务端上,从而提供更好的服务。然而,云计算存储技术同样带来了数据隐私泄露的问题(如个人医疗记录泄露)。这样就造成一个矛盾:数据拥有者既想要利用云的强大计算功能,又不想自己的隐私数据被泄露。一个简单的办法是将数据加密后上传到云服务端,然而,密文虽然保证了数据的隐私,却也限制了数据的使用。因此,可搜索对称加密(Searchablesymmetric encryption,简称SSE)方法应运而生,其能够实现密文下的检索,并且不泄露查询隐私;而在医院等多用户需要共享数据、保证数据安全的场合,可使用多用户可搜索对称加密(Multi-client Searchable symmetric encryption,简称MSSE)方法。
现有的MSSE方法主要包括外包对称隐私信息检索(Outsourced symmetricprivate information retrieval,简称OSPIR)方法、以及非交互多用户可搜索加密(Non-interactive multi-client searchable encryption,简称NIMCSE)方法,其中OSPIR方法利用同态签名伪随机函数实现多用户查询,NIMCSE方法利用素数散列函数和属性加密实现多用户查询。
然而,上述现有的MSSE方法都存在一些不可忽略的技术问题:首先,OSPIR方法需要用户在每次查询操作时与数据拥有者(Data owner)进行交互,导致查询效率偏低;其次,NIMCSE方法无法对查询权限进行动态更新,进而会影响查询的准确性。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种可高效更新权限的多用户可搜索加密方法和系统,其目的在于,解决现有多用户可搜索对称加密方法中由于需要用户每次查询时与数据拥有者进行交互而导致的查询效率偏低的技术问题,以及由于无法对查询权限进行动态更新而影响查询准确性的技术问题。
为实现上述目的,按照本发明的一个方面,提供了一种可高效更新权限的多用户可搜索加密方法,包括以下步骤:
(1)用户端利用从数据拥有者处获取的密钥Ωi生成查询关键字密文,并将其发给服务端;
(2)服务端根据来自于用户端的查询关键字密文获取满足用户端查询条件的加密文件标识符集合,并将该加密文件标识符集合发送到用户端;
(3)数据拥有者获取授权给用户的密钥,并通知服务端根据该密钥修改用户关键字索引集合以及交叉匹配集合。
优选地,步骤(1)包括以下子步骤:
(1-1)用户端利用从数据拥有者获取密钥Ωi,其包括对关键字进行加密的密钥KS、KX、KZ,第i个用户端能够查询的密文关键字的集合CSKi={cski,w1,cski,w2,…,cski,wU},以及数据拥有者分配给第i个用户端的标识uki,其中wj表示用户端能够查询的第j个密文关键字,且j∈[1,U],U表示第i个用户端能够查询的密文关键字总数量;
(1-3)在第i个用户端能够查询的密文关键字的集合CSKi中找到与所要查询的第一个关键字对应的密文关键字用两个不同的带密钥的哈希函数分别对密文关键字和第i个用户端的标识uki进行计算,以分别得到第一哈希值以及第二哈希值
优选地,步骤(2)包括以下子步骤:
(2-3)服务端初始化计数器cnt=1;
(2-4)服务端根据哈希算法对第一标签值和cnt进行计算,将得到的哈希值l作为键,判断是否能够在创建好的关键字文件标识符集合TSet中查找到该键l对应的密文对(e2,y),如果是则进入步骤(2-5),否则进入步骤(2-7);
(2-6)服务端设置计数器cnt=cnt+1,并返回步骤(2-4);
(2-7)服务端将加密文件标识符集合R返回给用户端。
优选地,步骤(3)包括以下子步骤:
(3-1)数据拥有者确定所要更新的用户的公钥pk以及所要更新的关键字w;
(3-2)数据拥有者根据密钥KT、以及所要更新关键字w计算更新标签值stag=F(KT,w),并将该更新后的标签值发送给服务端;
(3-3)服务端根据更新后的标签值stag查询关键字文件标识符集合TSet,以得到密文对集合{(e2,y)},提取其中所有的密文e2组成索引密文集合EnInds,并将索引密文集合EnInds发送给数据拥有者;
(3-4)数据拥有者将索引密文集合EnInds保存到本地,根据密钥KC和关键字w计算关键字密钥值Kw=F(KC,w),并根据密钥KR和用户公钥pk计算用户随机值r=Fp(KR,pk);
(3-5)数据拥有者将关键字密钥值Kw作为密钥,用带该密钥的哈希函数计算用户公钥pk的哈希值csk;
(3-7)数据拥有者在更新标签值stag后连接λ个0,得到更新后的认证标签值stag||0λ,并将该认证标签值stag||0λ与第二更新哈希值dtag做异或运算得到更新密文
(3-8)数据拥有者利用密钥KX以及关键字w计算群关键字密文值xtrap=Fp(KX,w);
(3-9)对于索引密文集合EnInds中每个密文e2,数据拥有者根据解密该密文获得标识符明文ind,并使用密钥KI计算标识符群映射xind=Fp(KI,ind),进而计算出与该ind相关的交叉匹配集合XSet中的元素并将其添加到更新交叉匹配集合XTags中;
(3-10)数据拥有者将第一更新哈希值ctag,更新密文e1,更新交叉匹配集合XTags以及操作变量op发送给服务端;
(3-11)服务端根据来自数据所有者op的值判断对应的操作是增加还是删除,如果是增加,则执行步骤(3-12),如果是删除,则执行步骤(3-13);
(3-12)服务端将(ctag,e1)加入用户关键字索引集合CSet集合中,并将更新交叉匹配集合XTags中的元素加入到交叉匹配集合XSet中。
(3-13)服务端从用户关键字索引集合CSet中删除与第一更新哈希值ctag关联的数据项,并将更新交叉匹配集合XTags中的所有元素从交叉匹配集合XSet中删除。
优选地,密钥Ωi是通过如下步骤构建:
B、对于中每个关键字w执行如下步骤,利用密钥KC计算关键字密钥值Kw=F(KC,w),并以此为密钥,计算用户公钥pki的哈希值cski,w=H1(Kw,pki),然后将cski,w加入到CSKi集合中,将公钥pki添加到与关键字w关联的访问控制列表KAL[w]中;
C、数据拥有者将KS,KX,KZ,CSKi,uki封装成Ωi返回给该用户。
优选地,用户关键字索引集合CSet、关键字文件标识符集合TSet、以及交叉匹配集合XSet是通过如下步骤构建:
(a)数据拥有者初始化用户关键字索引集合CSet、关键字文件标识符集合TSet、以及交叉匹配集合XSet为空集;
(b)对于整个关键字集合W中的每个关键字w,数据拥有者构建用户权限索引表CSet、关键字文件标识符集合TSet以及交叉匹配集合XSet。
优选地,步骤(b)包括以下子步骤:
(b1)数据拥有者判断关键字集合W中取关键字w是否都已被取到,如果是,则进入步骤(b12)否则提取下一个关键字w,并进入步骤(b2);
(b2)数据拥有者分别利用三个密钥KS,KT,KX,KC和关键字w计算加密关键字密钥Ke=F(KS,w),索引关键字标签值stagw=F(KT,w),关键字交叉值xtrapw=Fp(KX,w)以及权限关键字密钥Kw=F(KC,w),并初始化公钥随机数集合K为空;
(b3)数据拥有者从访问控制列表KAL中查询出与该关键字w关联的所有用户公钥的集合PKw.
(b4)数据拥有者判断公钥集合中的用户公钥是否全部被取到,如果是,则进入步骤(b11),否则提取下一个用户公钥pki,并进入步骤(b5);
(b6)数据拥有者以权限关键字密钥Kw为密钥,计算pki的带密钥的哈希函数值cski,w=H1(Kw,pki);
(b8)数据拥有者在索引关键字标签值stagw后添加λ位0,构成索引关键字认证标签值stagw||0λ;
(b10)数据拥有者将添加到CSet集合中并进入步骤(b4);
(b11)数据拥有者初始化计数器cnt值为1;
(b12)数据拥有者利用密钥KZ和关键字w计算盲因子z=Fp(KZ,w);
(b13)数据拥有者从明文数据库中获取关键字w关联的所有文件明文标识符的集合DB(w);
(b14)数据拥有者判断文件明文标识符的集合DB(w)中的所有文件明文标识符ind是否都被取到,如果是则返回步骤(b1),否则进入步骤(b15);
(b15)数据拥有者利用密钥KI和ind计算文件群标识符xind=Fp(KI,ind)并利用加密关键字密钥Ke和ind计算关键字标识符密文索引e2=Enc(Ke,ind);
(b17)数据拥有者将(e2,y)加入到以l为索引的TSet中,并将cnt的值自增1;
(b18)数据拥有者判断用户公钥随机数集合K中的所有用户公钥随机数vki是否都被取到,如果是,则返回步骤(b14),否则取下一个vki,并进入步骤(b19);
按照本发明的另一方面,提供了一种可高效更新权限的多用户可搜索加密系统,包括:
第一模块,其设置于用户端中,用于利用从数据拥有者处获取的密钥Ωi生成查询关键字密文,并将其发给服务端;
第二模块,其设置于服务端中,用于根据来自于用户端的查询关键字密文获取满足用户端查询条件的加密文件标识符集合,并将该加密文件标识符集合发送到用户端;
第三模块,其设置于数据拥有者中,用于获取授权给用户的密钥,并通知服务端根据该密钥修改用户关键字索引集合以及交叉匹配集合。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
(1)由于本发明采用了步骤(b4)到步骤(b10)、以及步骤(3-4)到步骤(3-7),其将用户信息和可查询的关键字信息联合放入关键字索引集合CSet中,服务端只用根据用户端发来的查询密文就可以判断该用户是否有权查询该关键字,用户端不必每次征求数据拥有者的授权,因此能够解决现有多用户可搜索对称加密方法中由于需要用户每次查询时与数据拥有者进行交互而导致的查询效率偏低的技术问题;
(2)由于本发明采用了步骤(b18)和步骤(b19)、以及步骤(3-9)到(3-13),其将用户信息、关键字信息和文件标识符信息计算出一个密文保存在交叉匹配集合XSet中,保证了每个用户有自己的关于关键字以及文件标识符的密文;在数据拥有者和服务端执行权限更新时,更新一个用户不会牵扯到另一个用户,因此能够解决现有多用户可搜索对称加密方法中由于无法对查询权限进行动态更新而影响查询准确性的技术问题;
(3)本发明的加密安全性基于双线性映射,在生成查询关键字密文时,生成时间只与待查询关键字的个数有关,因而关键字查询密文的生成效率很高,从而降低了用户端的计算开销,因此本发明可用于医疗等高机密性机构的检索系统。
附图说明
图1是本发明可高效更新权限的多用户可搜索加密方法的流程图;
图2是本发明与现有OXT和MSSE方法的性能比较,其中图2(a)是构建时间与数据集大小的关系曲线,图2(b)是构建时间与用户数的关系曲线;
图3是本发明与现有SCSSE和OSPIR方法的性能比较,其中图3(a)是查询关键字密文产生时间与查询关键字个数的关系曲线,图3(b)是查询关键字密文的产生时间与第一个关键字关联的文件数目的关系曲线;
图4是本发明与现有OXT和MSSE方法的另一个性能比较,其中图4(a)是固定第一个关键字关联的文件总数,变化总查询关键字个数,图4(b)是固定总查询关键字个数,变化第一个关键字关联的文件总数。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
如图1所示,本发明可高效更新权限的多用户可搜索加密方法包括以下步骤:
(1)用户端利用从数据拥有者处获取的密钥Ωi生成查询关键字密文,并将其发给服务端;
本步骤包括以下子步骤:
(1-1)用户端利用从数据拥有者获取密钥Ωi,其包括对关键字进行加密的密钥KS、KX、KZ,第i个用户端能够查询的密文关键字的集合CSKi={cski,w1,cski,w2,…,cski,wU},以及数据拥有者分配给第i个用户端的标识uki,其中wj表示用户端能够查询的第j个密文关键字,且j∈[1,U],U表示第i个用户端能够查询的密文关键字总数量;
(1-3)在第i个用户端能够查询的密文关键字的集合CSKi中找到与所要查询的第一个关键字对应的密文关键字用两个不同的带密钥的哈希函数分别对密文关键字和第i个用户端的标识uki进行计算,以分别得到第一哈希值以及第二哈希值
(2)服务端根据来自于用户端的查询关键字密文获取满足用户端查询条件的加密文件标识符集合,并将该加密文件标识符集合发送到用户端;
本步骤具体包括以下子步骤:
(2-3)服务端初始化计数器cnt=1;
(2-4)服务端根据哈希算法对第一标签值和cnt进行计算,将得到的哈希值l作为键,判断是否能够在创建好的关键字文件标识符集合TSet中查找到该键l对应的密文对(e2,y),如果是则进入步骤(2-5),否则进入步骤(2-7);
(2-6)服务端设置计数器cnt=cnt+1,并返回步骤(2-4);
(2-7)服务端将加密文件标识符集合R返回给用户端。
(3)数据拥有者获取授权给用户的密钥,并通知服务端根据该密钥修改用户关键字索引集合以及交叉匹配集合;
本步骤包括以下子步骤:
(3-1)数据拥有者确定所要更新的用户的公钥pk以及所要更新的关键字w;
(3-2)数据拥有者根据密钥KT、以及所要更新关键字w计算更新标签值stag=F(KT,w),并将该更新后的标签值发送给服务端;
(3-3)服务端根据更新后的标签值stag查询关键字文件标识符集合TSet,以得到密文对集合{(e2,y)},提取其中所有的密文e2组成索引密文集合EnInds,并将索引密文集合EnInds发送给数据拥有者;
(3-4)数据拥有者将索引密文集合EnInds保存到本地,根据密钥KC和关键字w计算关键字密钥值Kw=F(KC,w),并根据密钥KR和用户公钥pk计算用户随机值r=Fp(KR,pk);
(3-5)数据拥有者将关键字密钥值Kw作为密钥,用带该密钥的哈希函数计算用户公钥pk的哈希值csk;
(3-6)数据拥有者根据用户随机值r得到用户标识并以csk作为密钥,用两个不同的且带密钥的哈希函数分别计算第一更新哈希值ctag以及第二更新哈希值dtag;
(3-8)数据拥有者利用密钥KX以及关键字w计算群关键字密文值xtrap=Fp(KX,w);
(3-9)对于索引密文集合EnInds中每个密文e2,数据拥有者根据解密该密文获得标识符明文ind,并使用密钥KI计算标识符群映射xind=Fp(KI,ind),进而计算出与该ind相关的交叉匹配集合XSet中的元素并将其添加到更新交叉匹配集合XTags中;
(3-10)数据拥有者将第一更新哈希值ctag,更新密文e1,更新交叉匹配集合XTags以及操作变量op发送给服务端;
(3-11)服务端根据来自数据所有者op的值判断对应的操作是增加还是删除,如果是增加,则执行步骤(3-12),如果是删除,则执行步骤(3-13);
(3-12)服务端将(ctag,e1)加入用户关键字索引集合CSet集合中,并将更新交叉匹配集合XTags中的元素加入到交叉匹配集合XSet中。
(3-13)服务端从用户关键字索引集合CSet中删除与第一更新哈希值ctag关联的数据项,并将更新交叉匹配集合XTags中的所有元素从交叉匹配集合XSet中删除。
以上密钥Ωi是通过如下步骤构建:
B、对于中每个关键字w执行如下步骤,利用密钥KC计算关键字密钥值Kw=F(KC,w),并以此为密钥,计算用户公钥pki的哈希值cski,w=H1(Kw,pki),然后将cski,w加入到CSKi集合中,将公钥pki添加到与关键字w关联的访问控制列表KAL[w]中;
C、数据拥有者将KS,KX,KZ,CSKi,uki封装成Ωi返回给该用户。
以上的用户关键字索引集合CSet、关键字文件标识符集合TSet、以及交叉匹配集合XSet是通过如下步骤构建:
(a)数据拥有者初始化用户关键字索引集合CSet、关键字文件标识符集合TSet、以及交叉匹配集合XSet为空集;
(b)对于整个关键字集合W中的每个关键字w,数据拥有者构建用户权限索引表CSet、关键字文件标识符集合TSet以及交叉匹配集合XSet;
本步骤(b)包括以下子步骤:
(b1)数据拥有者判断关键字集合W中取关键字w是否都已被取到,如果是,则进入步骤(b12)否则提取下一个关键字w,并进入步骤(b2);
(b2)数据拥有者分别利用三个密钥KS,KT,KX,KC和关键字w计算加密关键字密钥Ke=F(KS,w),索引关键字标签值stagw=F(KT,w),关键字交叉值xtrapw=Fp(KX,w)以及权限关键字密钥Kw=F(KC,w),并初始化公钥随机数集合K为空;
(b3)数据拥有者从访问控制列表KAL中查询出与该关键字w关联的所有用户公钥的集合PKw.
(b4)数据拥有者判断公钥集合中的用户公钥是否全部被取到,如果是,则进入步骤(b11),否则提取下一个用户公钥pki,并进入步骤(b5);
(b6)数据拥有者以权限关键字密钥Kw为密钥,计算pki的带密钥的哈希函数值cski,w=H1(Kw,pki);
(b8)数据拥有者在索引关键字标签值stagw后添加λ位0,构成索引关键字认证标签值stagw||0λ;
(b11)数据拥有者初始化计数器cnt值为1;
(b12)数据拥有者利用密钥KZ和关键字w计算盲因子z=Fp(KZ,w);
(b13)数据拥有者从明文数据库中获取关键字w关联的所有文件明文标识符的集合DB(w);
(b14)数据拥有者判断文件明文标识符的集合DB(w)中的所有文件明文标识符ind是否都被取到,如果是则返回步骤(b1),否则进入步骤(b15);
(b15)数据拥有者利用密钥KI和ind计算文件群标识符xind=Fp(KI,ind)并利用加密关键字密钥Ke和ind计算关键字标识符密文索引e2=Enc(Ke,ind);
(b16)数据拥有者计算索引交叉值并利用stagw为密钥,计算关于cnt带密钥的哈希值l=H4(stagw,cnt)
(b17)数据拥有者将(e2,y)加入到以l为索引的TSet中,并将cnt的值自增1;
(b18)数据拥有者判断用户公钥随机数集合K中的所有用户公钥随机数vki是否都被取到,如果是,则返回步骤(b14),否则取下一个vki,并进入步骤(b19);
图2是本发明与现有的OXT(即Oblivious Cross-Tags)算法和Muti-clientSearchable Symmetric Encryption(简称MSSE)算法进行对比的效果(其中DMMSE表示本发明的方法)。图2(a)表示构建时间随数据集大小的时间开销关系;图2(b)表示构建时间和用户数之间的关系。从结果可以看出,虽然本发明的构建过程比其他两个算法慢,但是依然和数据集大小成线性相关,与用户的多少也近似成线性关系。
图3是本发明与现有的单用户可搜索对称加密方法(Single-client searchablesymmetric encryption,简称SCSSE)、以及OSPIR方法的对比。图3(a)表示查询关键字密文产生时间与查询关键字个数的关系,控制第一个关键字关联的文件数是200,从图中可以看出,查询关键字密文的产生时间随查询关键字个数的增长呈线性相关。
图3(b)表示查询关键字密文产生的时间与第一个关键字关联的文件数目之间的关系,固定关键字个数是100。从图3(b)可以看出,本发明查询关键字密文的产生时间与第一个关键字关联的文件数目无关。从两幅图的效果中可以看出,相对于SCSEE和OSPIR方法而言,本发明的查询关键字密文的产生时间最少。
图4是与现有的OXT和MSSE算法进行对比。其中图4(a)是控制第一个关键字关联的文件数为200,变化总的查询关键字个数;图4(b)是控制总的连接查询的关键字个数为100,变化第一个关键字关联的文件个数。从效果可以看到本发明的查询时间几乎与查询关键字个数无关,而与第一个关键字关联的文件数近似成线性相关。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (3)
1.一种可高效更新权限的多用户可搜索加密方法,其特征在于,包括以下步骤:
(1)用户端利用从数据拥有者处获取的密钥Ωi生成查询关键字密文,并将其发给服务端;步骤(1)包括以下子步骤:
(1-1)用户端利用从数据拥有者获取密钥Ωi,其包括对关键字进行加密的密钥KS、KX、KZ,第i个用户端能够查询的密文关键字的集合CSKi={cski,w1,cski,w2,…,cski,wU},以及数据拥有者分配给第i个用户端的标识uki,其中wj表示用户端能够查询的第j个密文关键字,且j∈[1,U],U表示第i个用户端能够查询的密文关键字总数量;其中密钥Ωi是通过如下步骤构建:
B、对于中每个关键字w执行如下步骤,利用密钥KC计算关键字密钥值Kw=F(KC,w),并以此为密钥,计算用户公钥pki的哈希值cski,w=H1(Kw,pki),然后将cski,w加入到CSKi集合中,将公钥pki添加到与关键字w关联的访问控制列表KAL[w]中;
C、数据拥有者将KS,KX,KZ,CSKi,uki封装成Ωi返回给该用户;
(1-3)在第i个用户端能够查询的密文关键字的集合CSKi中找到与所要查询的第一个关键字对应的密文关键字用两个不同的带密钥的哈希函数分别对密文关键字和第i个用户端的标识uki进行计算,以分别得到第一哈希值以及第二哈希值
其中Fp表示伪随机函数;ski表示第i个用户持有的私钥;
(2)服务端根据来自于用户端的查询关键字密文获取满足用户端查询条件的加密文件标识符集合,并将该加密文件标识符集合发送到用户端;步骤(2)包括以下子步骤:
(2-3)服务端初始化计数器cnt=1;
(2-4)服务端根据哈希算法对第一标签值和cnt进行计算,将得到的哈希值l作为键,判断是否能够在创建好的关键字文件标识符集合TSet中查找到键l对应的密文对(e2,y),如果是则进入步骤(2-5),否则进入步骤(2-7);
(2-6)服务端设置计数器cnt=cnt+1,并返回步骤(2-4);
(2-7)服务端将加密文件标识符集合R返回给用户端;
其中用户关键字索引集合CSet、关键字文件标识符集合TSet、以及交叉匹配集合XSet是通过如下步骤构建:
(a)数据拥有者初始化用户关键字索引集合CSet、关键字文件标识符集合TSet、以及交叉匹配集合XSet为空集;
(b)对于整个关键字集合W中的每个关键字w,数据拥有者构建用户权限索引表CSet、关键字文件标识符集合TSet以及交叉匹配集合XSet;
(3)数据拥有者获取授权给用户的密钥,并通知服务端根据该密钥修改用户关键字索引集合以及交叉匹配集合;步骤(3)包括以下子步骤:
(3-1)数据拥有者确定所要更新的用户的公钥pk以及所要更新的关键字w;
(3-2)数据拥有者根据密钥KT、以及所要更新关键字w计算更新标签值stag=F(KT,w),并将该更新后的标签值发送给服务端;
(3-3)服务端根据更新后的标签值stag查询关键字文件标识符集合TSet,以得到密文对集合{(e2,y)},提取其中所有的密文e2组成索引密文集合EnInds,并将索引密文集合EnInds发送给数据拥有者;
(3-4)数据拥有者将索引密文集合EnInds保存到本地,根据密钥KC和关键字w计算关键字密钥值Kw=F(KC,w),并根据密钥KR和用户公钥pk计算用户随机值r=Fp(KR,pk);
(3-5)数据拥有者将关键字密钥值Kw作为密钥,用带该密钥的哈希函数计算用户公钥pk的哈希值csk;
(3-8)数据拥有者利用密钥KX以及关键字w计算群关键字密文值xtrap=Fp(KX,w);
(3-9)对于索引密文集合EnInds中每个密文e2,数据拥有者根据解密该密文获得标识符明文ind,并使用密钥KI计算标识符群映射xind=Fp(KI,ind),进而计算出与该ind相关的交叉匹配集合XSet中的元素并将其添加到更新交叉匹配集合XTags中;
(3-10)数据拥有者将第一更新哈希值ctag,更新密文e1,更新交叉匹配集合XTags以及操作变量op发送给服务端;
(3-11)服务端根据来自数据所有者op的值判断对应的操作是增加还是删除,如果是增加,则执行步骤(3-12),如果是删除,则执行步骤(3-13);
(3-12)服务端将(ctag,e1)加入用户关键字索引集合CSet集合中,并将更新交叉匹配集合XTags中的元素加入到交叉匹配集合XSet中;
(3-13)服务端从用户关键字索引集合CSet中删除与第一更新哈希值ctag关联的数据项,并将更新交叉匹配集合XTags中的所有元素从交叉匹配集合XSet中删除。
2.根据权利要求1所述的多用户可搜索加密方法,其特征在于,步骤(b)包括以下子步骤:
(b1)数据拥有者判断关键字集合W中取关键字w是否都已被取到,如果是,则进入步骤(b12)否则提取下一个关键字w,并进入步骤(b2);
(b2)数据拥有者分别利用三个密钥KS,KT,KX,KC和关键字w计算加密关键字密钥Ke=F(KS,w),索引关键字标签值stagw=F(KT,w),关键字交叉值xtrapw=Fp(KX,w)以及权限关键字密钥Kw=F(KC,w),并初始化公钥随机数集合K为空;
(b3)数据拥有者从访问控制列表KAL中查询出与该关键字w关联的所有用户公钥的集合PKw.
(b4)数据拥有者判断公钥集合中的用户公钥是否全部被取到,如果是,则进入步骤(b11),否则提取下一个用户公钥pki,并进入步骤(b5);
(b6)数据拥有者以权限关键字密钥Kw为密钥,计算pki的带密钥的哈希函数值cski,w=H1(Kw,pki);
(b8)数据拥有者在索引关键字标签值stagw后添加λ位0,构成索引关键字认证标签值stagw||0λ;
(b11)数据拥有者初始化计数器cnt值为1;
(b12)数据拥有者利用密钥KZ和关键字w计算盲因子z=Fp(KZ,w);
(b13)数据拥有者从明文数据库中获取关键字w关联的所有文件明文标识符的集合DB(w);
(b14)数据拥有者判断文件明文标识符的集合DB(w)中的所有文件明文标识符ind是否都被取到,如果是则返回步骤(b1),否则进入步骤(b15);
(b15)数据拥有者利用密钥KI和ind计算文件群标识符xind=Fp(KI,ind)并利用加密关键字密钥Ke和ind计算关键字标识符密文索引e2=Enc(Ke,ind);
(b16)数据拥有者计算索引交叉值并利用stagw为密钥,计算关于cnt带密钥的哈希值l=H4(stagw,cnt)
(b17)数据拥有者将(e2,y)加入到以l为索引的TSet中,并将cnt的值自增1;
(b18)数据拥有者判断用户公钥随机数集合K中的所有用户公钥随机数vki是否都被取到,如果是,则返回步骤(b14),否则取下一个vki,并进入步骤(b19);
3.一种可高效更新权限的多用户可搜索加密系统,其特征在于,包括:
第一模块,其设置于用户端中,用于利用从数据拥有者处获取的密钥Ωi生成查询关键字密文,并将其发给服务端;第一模块包括以下子模块:
第一子模块,其设置于用户端,用于利用从数据拥有者获取密钥Ωi,其包括对关键字进行加密的密钥KS、KX、KZ,第i个用户端能够查询的密文关键字的集合CSKi={cski,w1,cski,w2,…,cski,wU},以及数据拥有者分配给第i个用户端的标识uki,其中wj表示用户端能够查询的第j个密文关键字,且j∈[1,U],U表示第i个用户端能够查询的密文关键字总数量;其中密钥Ωi是通过如下步骤构建:
B、对于中每个关键字w执行如下步骤,利用密钥KC计算关键字密钥值Kw=F(KC,w),并以此为密钥,计算用户公钥pki的哈希值cski,w=H1(Kw,pki),然后将cski,w加入到CSKi集合中,将公钥pki添加到与关键字w关联的访问控制列表KAL[w]中;
C、数据拥有者将KS,KX,KZ,CSKi,uki封装成Ωi返回给该用户;
第三子模块,其设置于用户端,用于在第i个用户端能够查询的密文关键字的集合CSKi中找到与所要查询的第一个关键字对应的密文关键字用两个不同的带密钥的哈希函数分别对密文关键字和第i个用户端的标识uki进行计算,以分别得到第一哈希值以及第二哈希值
其中Fp表示伪随机函数;ski表示第i个用户持有的私钥;
第二模块,其设置于服务端中,用于根据来自于用户端的查询关键字密文获取满足用户端查询条件的加密文件标识符集合,并将该加密文件标识符集合发送到用户端;第二模块包括以下子模块:
第七子模块,其设置于服务端,用于判断明文p1的最后λ比特是否全为0,如果不是,则过程结束,如果是,则获取提取前λ比特作为第一标签值然后进入第八子模块;其中λ为8到512之间的整数;
第八子模块,其设置于服务端,用于初始化计数器cnt=1;
第九子模块,其设置于服务端,用于根据哈希算法对第一标签值和cnt进行计算,将得到的哈希值l作为键,判断是否能够在创建好的关键字文件标识符集合TSet中查找到键l对应的密文对(e2,y),如果是则进入第十子模块,否则进入第十二子模块;
第十子模块,其设置于服务端,用于针对所有的v∈[2,n],判断是否所有的是否都在构建好的交叉匹配集合XSet中,如果是,则将密文对中的e2加入加密文件标识符集合R中,并进入第十一子模块,否则进入第十一子模块;
第十一子模块,其设置于服务端,用于设置计数器cnt=cnt+1,并返回第九子模块;
第十二子模块,其设置于服务端,用于将加密文件标识符集合R返回给用户端;
其中用户关键字索引集合CSet、关键字文件标识符集合TSet、以及交叉匹配集合XSet是通过如下步骤构建:
(a)数据拥有者初始化用户关键字索引集合CSet、关键字文件标识符集合TSet、以及交叉匹配集合XSet为空集;
(b)对于整个关键字集合W中的每个关键字w,数据拥有者构建用户权限索引表CSet、关键字文件标识符集合TSet以及交叉匹配集合XSet;
第三模块,其设置于数据拥有者中,用于获取授权给用户的密钥,并通知服务端根据该密钥修改用户关键字索引集合以及交叉匹配集合;第三模块包括以下子模块:
第十三子模块,其设置于数据拥有者,用于确定所要更新的用户的公钥pk以及所要更新的关键字w;
第十四子模块,其设置于数据拥有者,用于根据密钥KT、以及所要更新关键字w计算更新标签值stag=F(KT,w),并将该更新后的标签值发送给服务端;
第十五子模块,其设置于服务端,用于根据更新后的标签值stag查询关键字文件标识符集合TSet,以得到密文对集合{(e2,y)},提取其中所有的密文e2组成索引密文集合EnInds,并将索引密文集合EnInds发送给数据拥有者;
第十六子模块,其设置于数据拥有者,用于将索引密文集合EnInds保存到本地,根据密钥KC和关键字w计算关键字密钥值Kw=F(KC,w),并根据密钥KR和用户公钥pk计算用户随机值r=Fp(KR,pk);
第十七子模块,其设置于数据拥有者,用于将关键字密钥值Kw作为密钥,用带该密钥的哈希函数计算用户公钥pk的哈希值csk;
第十九子模块,其设置于数据拥有者,用于在更新标签值stag后连接λ个0,得到更新后的认证标签值stag||0λ,并将该认证标签值stag||0λ与第二更新哈希值dtag做异或运算得到更新密文
第二十子模块,其设置于数据拥有者,用于利用密钥KX以及关键字w计算群关键字密文值xtrap=Fp(KX,w);
第二十一子模块,其用于对于索引密文集合EnInds中每个密文e2,数据拥有者根据解密该密文获得标识符明文ind,并使用密钥KI计算标识符群映射xind=Fp(KI,ind),进而计算出与该ind相关的交叉匹配集合XSet中的元素并将其添加到更新交叉匹配集合XTags中;
第二十二子模块,其设置于数据拥有者,用于将第一更新哈希值ctag,更新密文e1,更新交叉匹配集合XTags以及操作变量op发送给服务端;
第二十三子模块,其设置于服务端,用于根据来自数据所有者op的值判断对应的操作是增加还是删除,如果是增加,则执行第二十四子模块,如果是删除,则执行第二十五子模块;
第二十四子模块,其设置于服务端,用于将(ctag,e1)加入用户关键字索引集合CSet集合中,并将更新交叉匹配集合XTags中的元素加入到交叉匹配集合XSet中;
第二十五子模块,其设置于服务端,用于从用户关键字索引集合CSet中删除与第一更新哈希值ctag关联的数据项,并将更新交叉匹配集合XTags中的所有元素从交叉匹配集合XSet中删除。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910448335.2A CN110166466B (zh) | 2019-05-28 | 2019-05-28 | 一种可高效更新权限的多用户可搜索加密方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910448335.2A CN110166466B (zh) | 2019-05-28 | 2019-05-28 | 一种可高效更新权限的多用户可搜索加密方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110166466A CN110166466A (zh) | 2019-08-23 |
CN110166466B true CN110166466B (zh) | 2020-02-21 |
Family
ID=67629069
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910448335.2A Active CN110166466B (zh) | 2019-05-28 | 2019-05-28 | 一种可高效更新权限的多用户可搜索加密方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110166466B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111008325A (zh) * | 2020-03-10 | 2020-04-14 | 支付宝(杭州)信息技术有限公司 | 数据查询方法、装置、电子设备和系统 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112835599A (zh) * | 2019-11-25 | 2021-05-25 | 北京国双科技有限公司 | 权限的更新方法、装置、计算机设备和存储介质 |
CN111460480B (zh) * | 2020-03-31 | 2022-03-18 | 中国电子科技集团公司第三十研究所 | 一种密文搜索系统中安全的密文文件分享方法 |
CN115225260B (zh) * | 2022-05-20 | 2024-04-12 | 湖南大学 | 一种动态可搜索加密方法 |
CN114900318B (zh) * | 2022-06-02 | 2024-04-19 | 浙江工商大学 | 基于密钥协商协议以及可验证的一轮通信可搜索加密方法 |
CN114840867B (zh) * | 2022-07-01 | 2022-09-20 | 北京融数联智科技有限公司 | 基于可交换加密数据混淆的数据查询方法、装置和系统 |
CN115544579B (zh) * | 2022-11-24 | 2023-03-28 | 北京融数联智科技有限公司 | 一种双随机数据混淆查询方法、装置和系统 |
CN117932684B (zh) * | 2024-03-18 | 2024-06-14 | 南方电网科学研究院有限责任公司 | 一种智能电网数据加密方法和系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20120002729A (ko) * | 2010-07-01 | 2012-01-09 | 고려대학교 산학협력단 | 암호화 문서에 대한 다자간 검색 시스템 및 그 방법 |
CN103731432A (zh) * | 2014-01-11 | 2014-04-16 | 西安电子科技大学昆山创新研究院 | 一种支持多用户的可搜索加密系统及方法 |
US8873749B2 (en) * | 2011-12-09 | 2014-10-28 | Electronics And Telecommunications Research Institute | Multi-user searchable encryption system and method with index validation and tracing |
CN104394155A (zh) * | 2014-11-27 | 2015-03-04 | 暨南大学 | 可验证完整性和完备性的多用户云加密关键字搜索方法 |
CN104780161A (zh) * | 2015-03-23 | 2015-07-15 | 南京邮电大学 | 一种云存储中支持多用户的可搜索加密方法 |
CN105681280A (zh) * | 2015-12-29 | 2016-06-15 | 西安电子科技大学 | 一种云环境中基于中文的可搜索加密方法 |
CN105763324A (zh) * | 2016-04-19 | 2016-07-13 | 四川理工学院 | 可控制的可验证多用户端可搜索加密搜索方法 |
CN105897419A (zh) * | 2016-03-31 | 2016-08-24 | 浙江工业大学 | 一种多用户动态关键词可搜索加密方法 |
CN108632023A (zh) * | 2017-03-16 | 2018-10-09 | 南京财经大学 | 一种支持非单调访问结构的密文长度固定的属性基可搜索加密方法 |
-
2019
- 2019-05-28 CN CN201910448335.2A patent/CN110166466B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20120002729A (ko) * | 2010-07-01 | 2012-01-09 | 고려대학교 산학협력단 | 암호화 문서에 대한 다자간 검색 시스템 및 그 방법 |
US8873749B2 (en) * | 2011-12-09 | 2014-10-28 | Electronics And Telecommunications Research Institute | Multi-user searchable encryption system and method with index validation and tracing |
CN103731432A (zh) * | 2014-01-11 | 2014-04-16 | 西安电子科技大学昆山创新研究院 | 一种支持多用户的可搜索加密系统及方法 |
CN104394155A (zh) * | 2014-11-27 | 2015-03-04 | 暨南大学 | 可验证完整性和完备性的多用户云加密关键字搜索方法 |
CN104780161A (zh) * | 2015-03-23 | 2015-07-15 | 南京邮电大学 | 一种云存储中支持多用户的可搜索加密方法 |
CN105681280A (zh) * | 2015-12-29 | 2016-06-15 | 西安电子科技大学 | 一种云环境中基于中文的可搜索加密方法 |
CN105897419A (zh) * | 2016-03-31 | 2016-08-24 | 浙江工业大学 | 一种多用户动态关键词可搜索加密方法 |
CN105763324A (zh) * | 2016-04-19 | 2016-07-13 | 四川理工学院 | 可控制的可验证多用户端可搜索加密搜索方法 |
CN108632023A (zh) * | 2017-03-16 | 2018-10-09 | 南京财经大学 | 一种支持非单调访问结构的密文长度固定的属性基可搜索加密方法 |
Non-Patent Citations (3)
Title |
---|
Key-Policy Multi-authority Attribute-Based Encryption;Riccardo Longo;《Springer International Publishing Switzerland 2015》;20161031;全文 * |
云环境下的多用户加密关键字搜索技术研究;李诗旸;《中国优秀硕士学位论文全文数据库 信息科技辑》;20151215;全文 * |
适合云存储的访问策略可更新多中心CP-ABE方案;吴光强;《计算机研究与发展》;20160831;全文 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111008325A (zh) * | 2020-03-10 | 2020-04-14 | 支付宝(杭州)信息技术有限公司 | 数据查询方法、装置、电子设备和系统 |
CN111008325B (zh) * | 2020-03-10 | 2020-06-23 | 支付宝(杭州)信息技术有限公司 | 数据查询方法、装置、电子设备和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110166466A (zh) | 2019-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110166466B (zh) | 一种可高效更新权限的多用户可搜索加密方法和系统 | |
Shen et al. | Secure phrase search for intelligent processing of encrypted data in cloud-based IoT | |
US20140108435A1 (en) | Secure private database querying system with content hiding bloom fiters | |
CN108062485A (zh) | 一种面向多服务器多用户的模糊关键字搜索方法 | |
CN106934301B (zh) | 一种支持密文数据操作的关系型数据库安全外包数据处理方法 | |
Shen et al. | Keyword search with access control over encrypted cloud data | |
CN109981643A (zh) | 一种细粒度查询授权的可搜索加密方法及系统 | |
Yubin et al. | A solution for privacy-preserving data manipulation and query on NoSQL database | |
Sun et al. | A dynamic and non-interactive boolean searchable symmetric encryption in multi-client setting | |
CN110427771B (zh) | 一种检索模式隐藏的可搜索加密方法、云服务器 | |
CN114254344B (zh) | 一种基于区块链的共享数据库的隐私数据范围查询方法 | |
Tang et al. | A global secure ranked multikeyword search based on the multiowner model for cloud-based systems | |
CN113434739B (zh) | 一种云环境下前向安全的多用户动态对称加密检索方法 | |
CN106874379B (zh) | 一种面向密文云存储的多维区间检索方法与系统 | |
Dayıoğlu | Secure database in cloud computing-cryptdb revisited | |
JPWO2016129390A1 (ja) | 端末装置、データベースサーバおよび計算システム | |
US20240015014A1 (en) | Dynamic and verifiable searchable encryption method and system based on updatable encryption and blockchain | |
Yan et al. | Secure and efficient big data deduplication in fog computing | |
Shen et al. | Keyword search with access control over encrypted data in cloud computing | |
CN116611083A (zh) | 一种医疗数据共享方法及系统 | |
CN116663046A (zh) | 基于区块链的隐私数据共享和检索方法、系统及设备 | |
Zhang et al. | Multi-client boolean file retrieval with adaptable authorization switching for secure cloud search services | |
WO2019178792A1 (zh) | 一种支持访问控制的密文搜索方法及系统 | |
Guo et al. | Privacy preserving weighted similarity search scheme for encrypted data | |
Etemad et al. | Verifiable dynamic searchable encryption |
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 |