CN117744120B - 一种多用户可搜索加密方法及系统 - Google Patents

一种多用户可搜索加密方法及系统 Download PDF

Info

Publication number
CN117744120B
CN117744120B CN202311772765.2A CN202311772765A CN117744120B CN 117744120 B CN117744120 B CN 117744120B CN 202311772765 A CN202311772765 A CN 202311772765A CN 117744120 B CN117744120 B CN 117744120B
Authority
CN
China
Prior art keywords
key
keyword
ciphertext
document
user
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
CN202311772765.2A
Other languages
English (en)
Other versions
CN117744120A (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.)
Beihang University
Original Assignee
Beihang 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 Beihang University filed Critical Beihang University
Priority to CN202311772765.2A priority Critical patent/CN117744120B/zh
Publication of CN117744120A publication Critical patent/CN117744120A/zh
Application granted granted Critical
Publication of CN117744120B publication Critical patent/CN117744120B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开一种多用户可搜索加密方法及系统,涉及信息安全技术领域。本发明根据安全参数和系统属性集合生成公共参数和主密钥后,基于系统属性集合生成用户私钥;根据文档的关键词集合和访问控制策略,加密文档并生成加密索引,根据联合查询生成查询陷门,基于查询陷门及用户属性集合验证用户属性是否满足访问控制策略并检索密文索引,以便提取密文文件,能够在保障用户查询隐私的同时,提供密文数据的检索能力;在保障前向安全性及后向安全性的前提下,支持联合查询,能够更精准地获取所需文档,减少数据用户额外的本地数据处理负担;能够对每个文档设置相应的访问控制策略,实现细粒度的访问控制,同时能够抵抗数据用户的合谋攻击。

Description

一种多用户可搜索加密方法及系统
技术领域
本发明涉及信息安全技术领域,特别是涉及一种具有前后向安全且支持细粒度访问控制的多用户可搜索加密方法及系统。
背景技术
随着互联网渗透进社会生活的方方面面,用户私有数据越来越庞大。得益于云服务的发展,将私有数据储存在云服务器中能将设备及运维成本转嫁给云服务提供商,极大地降低了数据本地存储的成本。但是数据外包给不可信任的第三方将带来一系列的数据安全及隐私问题。一种简单且安全的做法是将数据进行加密后再上传至云服务器中,然而这种方式同时也限制了用户本身对数据的访问能力,例如常见的数据检索。用户必须将所有加密数据下载到本地并进行解密后,才能对数据进行进一步检索以获取需要的部分,然而由于云服务器必须传输所有的加密数据,这就会导致带宽的极大浪费,并且要求本地具有一定的存储空间以备下载数据时使用。
可搜索加密技术能够在保障数据安全与隐私的前提下,提供对密文数据的检索能力,因此受到了广泛研究。其中动态可搜索加密技术允许数据用户在不重启可搜索系统实例的情况下对密文数据库进行更新,更贴合实际场景需求。但更新操作同时带来了新的安全性要求,前向安全与后向安全。前向安全指敌手不能将更新操作与更新操作之前的查询操作关联起来,后向安全指敌手不能获得任何已删除文档的关键词信息。现有大多具备前向安全与后向安全的可搜索加密方法只支持单关键词查询,而实际场景中往往需要多个关键词联合查询才能更精确地找到所需的文档。因此具备前后向安全并且支持联合查询的可搜索加密方法成为了研究热点。
大多可搜索加密技术中数据拥有者与数据用户是同一实体,加密索引无法被其他用户检索,如果将可搜索实例的密钥共享给其他数据用户,又带来了额外的安全风险。因为数据共享是日常高频场景之一,所以研究多用户场景下的可搜索加密是必要的。在多用户可搜索加密中,数据拥有者将根据数据用户集合,生成多用户可搜索加密实例,每个数据用户都可以对密文数据进行密文检索。更进一步地,数据拥有者可以对每个文档设置访问控制策略,以支持细粒度的访问控制。因此,多用户如何在保障前后向安全的前提下,进行联合查询并实现支持细粒度的访问控制,成为了亟需解决的关键问题。
发明内容
为解决现有技术存在的上述问题,本发明提供了一种多用户可搜索加密方法及系统。
为实现上述目的,本发明提供了如下方案:
一种多用户可搜索加密方法,包括:
根据安全参数和系统属性集合,生成公共参数和主密钥;公共参数和主密钥由可信授权中心生成;
根据数据用户的属性集合,利用主密钥生成用户私钥;所述用户私钥由可信授权中心生成;
获取文档、关键词集合和访问控制策略,利用文档密钥加密所述文档为密文文档,利用关键词集合生成加密索引,将访问控制策略嵌入到所述加密索引中,完成索引更新;所述索引更新由数据拥有者实现;
根据查询请求,利用用户私钥,生成查询陷门;所述查询陷门由数据用户生成;
根据查询陷门查询加密索引中的匹配项,并验证数据用户的属性集合是否满足匹配项对应的访问控制策略,得到验证结果;所述验证结果由云服务器生成;
如果所述验证结果为满足,则返回密文查询结果;如果所述验证结果为不满足,则终止操作;
解密所述密文查询结果得到查询请求对应的文档标识符,并返回与所述文档标识符对应的密文文档;所述所述密文查询结果的解密由所述数据用户完成;与所述文档标识符对应的密文文档的返回由云服务器完成。
可选地,所述公共参数为pm:
pm={G1,G2,GT,p,g1,g2,e,H,F,Fp,mpkABE};
主密钥为msk:
msk={KT,KI,KX,KZ,K,mskABE};
式中,G1、G2、GT均为p阶乘法循环群,g1为p阶乘法循环群G1的生成元,g2为p阶乘法循环群G2的生成元,e表示双线性映射G1×G2→GT,H为哈希函数,F表示将集合{0,1}映射到集合{0,1}λ的伪随机函数,λ为安全参数,Fp表示集合{0,1}映射到有限域Zp的伪随机函数,mpkABE表示基于属性加密协议的公钥,mskABE表示基于属性加密协议的私钥,K表示用于加密关键词状态的对称加密协议的密钥,KT表示伪随机函数F的密钥,KI,KX,KZ均为伪随机函数Fp的密钥。
可选地,根据数据用户的属性集合,利用主密钥生成用户私钥,具体包括:
以所述数据用户的属性集合为输入,利用基于属性加密协议的密钥生成算法生成用户属性私钥;
利用所述主密钥和所述用户属性私钥生成所述用户私钥,并将所述用户私钥发送给数据用户。
可选地,获取文档、关键词集合和访问控制策略,利用文档密钥加密所述文档为密文文档,利用关键词集合生成加密索引,将访问控制策略嵌入到所述加密索引中,完成索引更新,具体包括:
数据拥有者向云服务器提取密文关键词状态,如果云服务器中存在密文关键词状态,数据拥有者利用密钥K解密密文关键词状态获得明文关键词状态,更新本地关键词状态;否则,直接执行第二步;
如果云服务器中不存在密文关键词状态,数据拥有者判断明文关键词状态中是否存在关键词集合中的关键词,如果明文关键词状态中不存在关键词集合中的关键词,则初始化并更新关键词集合中每一关键词的明文关键词状态;
数据拥有者根据关键词和这一关键词更新后的明文关键词状态,利用密钥KT生成第一映射键;
生成访问控制策略,数据拥有者根据文档标识符集中的文档标识符、更新标识符、文档密钥以及关键词,利用基于属性的加密协议生成第一密文;所述更新标识符基于第一映射键得到;
数据拥有者利用密钥KI和密钥KZ生成辅助信息;
将辅助信息作为要共享的秘密值,选取一个随机向量,数据拥有者基于所述辅助信息和选取的随机向量生成嵌入访问控制策略的辅助信息;
针对每个关键词,数据拥有者根据关键词及伪随机函数Fp在密钥KI下以文档标识符和更新标识符为输入得到的伪随机值,利用密钥KX,生成第二映射键;
数据拥有者生成加密索引;加密索引为:I={TSet,XSet};其中,TSet表示从第一映射键addr到四元组的单向映射,XSet表示从第二映射键xtag到1的单向映射,val表示第一密文,表示嵌入访问控制策略(M,π)的辅助信息,e1表示辅助信息的第一分量,表示辅助信息的第二分量,i表示矩阵M的第i行,n1表示矩阵M的总行数;
数据拥有者利用密钥K加密明文关键词状态得到新的密文关键词状态,利用文档密钥加密文档为密文文档,并将密文文档、加密索引和新的密文关键词状态发送给云服务器。
可选地,根据查询请求,利用用户私钥,生成查询陷门,具体包括:
判断云服务器中是否存在密文关键词状态,得到第一判断结果;
如果所述第一判断结果为存在,则数据拥有者利用密钥K解密密文关键词状态获得明文关键词状态,更新本地关键词状态;如果所述第一判断结果为不存在,则终止操作;
根据所述明文关键词状态,数据用户找出查询请求中更新次数最少的关键词;
针对每个关键词计数器,数据用户利用密钥KT、密钥KX以及密钥KZ生成第三映射键和与第三映射键对应的辅助查询令牌;所述第三映射键为键值映射中与查询请求中更新次数最少的关键词相关的键;
数据用户基于所述第三映射键生成的映射键集合,并基于所述映射键集合以及与第三映射键对应的辅助查询令牌生成所述查询陷门,并将所述查询陷门和数据用户的属性集合发送给云服务器。
可选地,根据查询陷门查询加密索引中的匹配项,并验证数据用户的属性集合是否满足匹配项对应的访问控制策略,得到验证结果,具体包括:
云服务器查询键值映射中与第三映射键对应的四元组;
判断数据用户的属性集合是否满足与第三映射键对应的四元组中的访问控制策略,得到第二判断结果;
如果所述第二判断结果为不满足,则重新查询键值映射中与第三映射键对应的四元组;
如果所述第二判断结果为满足,则云服务器生成键值映射的第四映射键;
将第四映射键以及第二密文作为密文查询结果,云服务器在结果集合中记录密文查询结果,并将结果集合发送给数据用户。
可选地,解密所述密文查询结果得到查询请求对应的文档标识符,并返回与所述文档标识符对应的密文文档,具体包括:
针对结果集合中的每一个密文查询结果,数据用户利用用户属性私钥解密所述密文查询结果中的第四映射键得到与查询请求对应的文档标识符;
如果更新标识符为添加关键词-文件标识符对且第四映射键为查询请求中所含关键词的个数,则将与查询请求对应的文档标识符添加至结果集合中,得到新的结果集合;如果更新标识符为删除关键词-文件标识符对且第四映射键大于零,则在结果集合中删除与查询请求对应的文档标识符,得到新的结果集合;
数据用户向云服务器请求获取新的结果集合中所有文档标识符对应的密文文档,并用文档密钥集合中相应的文档密钥对获取的密文文档进行解密。
进一步,本发明还提供了一种多用户可搜索加密系统,所述系统用于实施上述提供的多用户可搜索加密方法;所述系统包括:
可信授权中心,用于根据安全参数和系统属性集合,生成公共参数和主密钥,并用于根据数据用户的属性集合,利用主密钥生成用户私钥;
数据拥有者,用于获取文档、关键词集合和访问控制策略,利用文档密钥加密所述文档为密文文档,利用关键词集合生成加密索引,将访问控制策略嵌入到所述加密索引中,完成索引更新;
数据用户,用于根据查询请求,利用用户私钥,生成查询陷门;
云服务器,用于根据查询陷门查询加密索引中的匹配项,并验证数据用户的属性集合是否满足匹配项对应的访问控制策略,得到验证结果;如果所述验证结果为满足,则返回密文查询结果;如果所述验证结果为不满足,则终止操作;
数据用户解密密文查询结果得到查询请求对应的文档标识符,所述云服务器返回与所述文档标识符对应的密文文档。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明根据安全参数和系统属性集合生成公共参数和主密钥后,基于系统属性集合生成用户私钥;根据文档的关键词集合和访问控制策略,加密文档并生成加密索引,根据联合查询生成查询陷门,基于查询陷门及用户属性集合验证用户属性是否满足访问控制策略并检索密文索引,以便提取密文文件,能够在保障用户查询隐私的同时,提供密文数据的检索能力;在保障前向安全性及后向安全性的前提下,支持联合查询,能够更精准地获取所需文档,减少数据用户额外的本地数据处理负担;能够对每个文档设置相应的访问控制策略,实现细粒度的访问控制,同时能够抵抗数据用户的合谋攻击。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的多用户可搜索加密方法的流程图;
图2为本发明实施例提供的系统模型图;
图3为本发明实施例提供的进行多用户可搜索加密的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种多用户可搜索加密方法及系统,能够保障前向安全性与后向安全性,支持联合查询的同时支持细粒度访问控制,并且能够抵抗数据用户的合谋攻击。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
如图1所示,本发明提供的多用户可搜索加密方法,包括:
步骤100:根据安全参数和系统属性集合,生成公共参数和主密钥。
该步骤的目的主要是为了进行系统初始化,在实际应用过程中,可信授权中心根据安全参数λ和系统属性集合N,生成公共参数pm和主密钥msk。
其中,公共参数为pm:
pm={G1,G2,GT,p,g1,g2,e,H,F,Fp,mpkABE}。
主密钥为msk:
msk={KT,KI,KX,KZ,K,mskABE}。
式中,G1、G2、GT均为p阶乘法循环群。g1为p阶乘法循环群G1的生成元。g2为p阶乘法循环群G2的生成元。e表示双线性映射G1×G2→GT。H为哈希函数,表示将映射到p阶乘法循环群G1,其中,表示 表示系统属性集合,表示系统属性集合中包含的属性个数。F:{0,1}→{0,1}λ,表示将集合{0,1}映射到集合{0,1}λ的伪随机函数。λ为安全参数。Fp:{0,1}→Zp,表示集合{0,1}映射到有限域Zp的伪随机函数。mpkABE表示基于属性加密协议的公钥。mskABE表示基于属性加密协议的私钥。K表示用于加密关键词状态的对称加密协议的密钥。KT表示伪随机函数F的密钥。KI,KX,KZ均为伪随机函数Fp的密钥。
步骤101:根据数据用户的属性集合,利用主密钥生成用户私钥。
该步骤的目的主要是为了生成用户密钥,在实际应用过程中,可信授权中心根据数据用户的属性集合u,利用主密钥msk生成用户私钥usk,具体的:
第一步:可信授权中心以数据用户属性集合为输入,利用基于属性加密协议的密钥生成算法ABE.KeyGen生成用户属性私钥uskABE
第二步:可信授权中心利用主密钥msk和用户属性私钥uskABE生成用户私钥usk={KT,KI,KX,KZ,K,uskABE},并将用户私钥发送给数据用户。
步骤102:获取文档、关键词集合和访问控制策略,利用文档密钥加密文档为密文文档,利用关键词集合生成加密索引,将访问控制策略嵌入到加密索引中,完成索引更新。
该步骤的目的主要是为了更新索引,在实际应用过程中,给定文档Find、关键词集合Wind和访问控制策略A,数据拥有者利用文档密钥Kind加密文档Find为密文文档Cind,利用关键词集生成加密索引I,将访问控制策略A嵌入加密索引I中,并将密文文档Cind、加密索引I和访问控制策略A发送给云服务器。这一实现过程包括:
第一步:数据拥有者向云服务器提取密文关键词状态σ,如果存在,数据拥有者利用密钥K解密密文关键词状态σ,获得明文关键词状态UpdateCnt,更新本地关键词状态。否则,直接执行第二步。
第二步:加密索引I由TSet和XSet两个键值映射组成,数据拥有者初始化键值TSet和键值XSet,针对每个关键词w∈Wind,如果明文关键词状态UpdateCnt中没有关键词w,初始化关键词的明文关键词状态为零(即UpdateCnt[w]=0),然后更新关键词的明文关键词状态。更新后的关键词的明文关键词状态为:UpdateCnt[w]'=UpdateCnt[w]+1。其中,UpdateCnt是一个字典,键为关键词,值为关键词状态,即索引关键词更新个数。
第三步:针对每个关键词w,数据拥有者根据关键词w和更新后的关键词的明文关键词状态UpdateCnt[w]',利用密钥KT生成第一映射键。第一映射键表示为:addr=F(KT,w‖U[dateCnt[w]'),其中,addr表示加密索引中TSet键值映射的键,‖表示字符串的联接。F(KT,w‖UpdateCnt[w]')表示将密钥KT映射到更新后的关键词的明文关键词状态UpdateCnt[w]'的伪随机函数。
第四步:用(M,π)表示访问控制策略A,其中M表示有限域Zp上的n1×n2矩阵,n1表示行数,n2表示列数,π表示从[n1]到系统属性集合的单向映射,其中,[n1]表示{1,2,…,n1},针对每个关键词w,数据拥有者根据文档标识符ind、更新标志符op、文档密钥Kind和关键词w,利用基于属性的加密协议生成第一密文。第一密文表示为:val=ABE.Enc(mpkABE,ind||op||Kind‖w,(M,π))。其中,val是TSet键值映射中值的一部分,表示用属性基加密关键词w对应的文件标识符ind后得到的密文,用以掩盖明文的文件标识符信息。ABE表示Attribute-BasedEncryption,即基于属性的加密协议(或称属性基加密协议),这是一类密码协议,本发明并未限制具体使用哪一种属性基加密协议。Enc为ABE中的加密算法。
第五步:针对每个关键词w,数据拥有者利用密钥KI,KZ生成辅助信息。辅助信息表示为:α=xind·z-1
其中,xind=Fp(KI,ind||op),为伪随机函数Fp在密钥KI下以文档标识符ind和更新标识符op∈{add,del}为输入得到的伪随机值。z=Fp(KZ,w||UpdateCnt[w]),为伪随机函数Fp在密钥KZ下以关键词w和关键词状态UpdateCnt[w]为输入得到的伪随机值。
第六步:将辅助信息α作为要共享的秘密值,选取一个随机向量数据拥有者生成嵌入访问控制策略(M,π)的辅助信息其中,表示一个n2-1维向量,向量的每一维中的元素均从有限域Zp中取得。
其中,表示辅助信息第一分量。 表示辅助信息第二分量,M[i]表示矩阵M的第i行,(α||v)T表示向量(α‖v)的转置。
第七步:针对每个关键词w,数据拥有者根据关键词w及伪随机函数Fp在密钥KI下以文档标识符和更新标识符为输入得到的伪随机值xind,利用密钥KX,生成第二映射键xtag。其中, 其表示键值XSet映射的键。
第八步:数据拥有者生成加密索引I。加密索引为:I={TSet,XSet}。其中,TSet表示从第一映射键addr到四元组的单向映射,XSet表示从第二映射键xtag到1的单向映射。
第九步:数据拥有者利用密钥K加密明文关键词状态UpdateCnt得到密文关键词状态σ',利用文档密钥Kind加密文档Find为密文文档Cind,并将密文文档Cind、加密索引I和密文关键词状态σ'发送给云服务器。
步骤103:根据查询请求,利用用户私钥,生成查询陷门。
该步骤的目的主要是为了生成陷门,在实际应用过程中,数据用户根据查询q(即查询请求),利用用户私钥usk,生成查询陷门Tk,并将查询陷门Tk和数据用户的属性集合发送给云服务器。该步骤的实现过程可以为:
第一步:数据用户向云服务器提取密文关键词状态σ,如果存在,数据拥有者利用密钥K解密状态获得明文关键词状态UpdateCnt,更新本地关键词状态。否则,终止操作。
第二步:根据明文关键词状态UpdateCnt,数据用户找出查询q=w1∧w2…∧wm中更新次数最少的关键词w,不失一般性,记为w1,其中w为查询q中所含关键词个数。其中,∧表示的含义是“和”。
第三步:针对每个关键词计数器cnt∈{1,2,…,UpdateCnt[w1]},数据用户利用密钥KT,KX,KZ生成第三映射键和与第三映射键对应的辅助查询令牌。其中,第三映射键为addrc=F(KT,w1||c),第三映射键对应的辅助查询令牌为:xtokenlistc={xtokenlistc,i}i∈m
式中,xtokenlistc,i=(xtk1,i,xtk2,i,xtk3,i),随机均匀地选取Zp中元素ri表示xtokenlistc,i的第一分量。 表示xtokenlistc,i的第二分量。表示xtk2,i的一个组成分量。表示xtokenlistc,i的第三分量。z=Fp(KZ,w1||UpdateCnt[w1]),为伪随机函数Fp在密钥KZ下以关键词w1及其关键词状态UpdateCnt[w1]为输入得到的伪随机值。xtokenlist有两个下标,下标c表示其为addr_c对应的辅助查询令牌,下标i为序数含义,表示第i个关键词,范围从2到m,即除更新次数最少的关键词以外。
第四步:数据用户将查询陷门 和数据用户的属性集发送给云服务器,其中 表示{1,2,…,UpdateCnt[w1]}。
步骤104:根据查询陷门查询加密索引中的匹配项,并验证数据用户的属性集合是否满足匹配项对应的访问控制策略,得到验证结果。如果验证结果为满足,则返回密文查询结果。如果验证结果为不满足,则终止操作。
该步骤的目的主要是为了进行密文检索,在实际应用过程中,云服务器根据查询陷门找到密文索引中的匹配项,并验证数据用户的属性集合是否满足匹配项对应的访问控制策略,如满足,将密文结果返回给数据用户,否则,终止操作。该步骤的具体实现过程可以是:
第一步:针对每个第三映射键addrc∈stokenlist,云服务器找到其TSet中对应的四元组
第二步:针对该第三映射键addrc及其对应四元组,如果数据用户的属性集不满足四元组中的访问控制策略(Mc,π),则返回第一步。否则执行第三步。
第三步:初始化标记数xcntc=1,如果数据用户的属性集满足四元组中的访问控制策略(M,π),此时存在一组系数{γi}i∈IA,使得∑i∈IAγiMc[i]=(1,0,…,0)。其中表示经过π映射后的值落在数据用户属性集中的矩阵行索引集合,针对xtokenlistc中的每个xtokenlistc,k=(xtk1,k,xtk2,k,xtk3,k),云服务器生成键值XSet映射的键xtagk(即第四映射键)。其中, π(i)表示i经过π映射后的属性值。是addrc对应的四元组中包含的访问控制策略。此处c表示序数,表示stokenlist中第c个元素,stokenlist为UpdateCnt[w1]个与w1相关的TSet键值映射键addr的集合。Mc[i]表示矩阵Mc的第i行。
如果xtagk存在键值映射XSet中,更新标记数xcntc'=xcntc+1。
第四步:针对该addrc及其对应四元组,云服务器在结果集合R中记录{(valc,xcntc')}。valc是第一步中找到的TSet键值映射中对应addrc的值四元组中的第一项。
第五步:云服务器将结果集合R发送给数据用户。
步骤105:解密密文查询结果得到查询请求对应的文档标识符,并返回与文档标识符对应的密文文档。
该步骤的目的主要是为了进行密文提取,在实际应用过程中,数据用户解密密文结果得到查询q对应的文档标识符集IND={ind},并向云服务器发送文档标识符集IND。云服务器返回文档标识符集IND对应的密文文档。该步骤的实现过程为:
第一步:针对查询q=w1∧w2…∧wm的结果集合R中的每一个(valc,xcntc),数据用户利用用户属性私钥uskABE解密valc得到ind||op||Kind‖w,(M,π)。
第二步:如果更新标识符op=add且xcntc=m,则将ind添加至结果集合R中,得到新的结果集合R'中。如果更新标识符op=del且xcntc>0,则将结果集合R中的ind删除,得到新的结果集合R'。
第三步:数据用户向云服务器请求新的结果集合R'中所有文档标识符对应密文文档{Cind},并用文档密钥集合{Kind}中相应的文档密钥进行解密。
下面结合医疗信息共享系统对本发明上述提供的方案的具体实现过程进行进一步说明,在医疗数据共享的大环境下,如何保障数据精确共享的同时保障数据共享过程的安全和隐私,是一个重要课题。如图2所示,在本实施例中,数据拥有者为使用目标多用户可搜索加密系统的目标医院医生,数据用户为其他医院的医生,目标云服务器为医疗云服务器,可信授权中心为现实进行密钥生成的可信授权中心。本实施例的实施流程如图3所示,目标医院对某个病人的病历数据加密上传到云服务器中,并且规定只有用户属性集满足访问控制策略的科室医生才能检索该病人数据。支持细粒度访问控制的多用户可搜索加密系统能够帮助目标医院医生细粒度地对每个文档设置不同的访问控制策略。支持联合查询使得其他医院医生能够更精确地查找到所需病例。
本实施例提供了一种具有前后向安全且支持细粒度访问控制的多用户可搜索加密方法,包括:
步骤一,系统初始化:可信授权中心根据安全参数λ和系统属性集合生成公共参数pm和主密钥msk。生成的公共参数pm和主密钥msk的具体表现形式可参数上述步骤100中的描述。
在该实施例中,可信授权中心生成目标系统公共参数和主密钥。
步骤二,用户密钥生成:可信授权中心根据数据用户的属性集合利用主密钥msk生成用户私钥usk。
在该实施例中,可信授权中心为目标系统中的各医院医生生成用户私钥,具体包括以下步骤:
第一步:可信授权中心以数据用户属性集合为输入,利用基于属性加密协议的密钥生成算法ABE.KeyGen生成用户属性私钥uskABE
第二步:可信授权中心利用主密钥msk和用户属性私钥uskABE生成用户私钥usk={KT,KI,KX,KZ,K,uskABE},并将用户私钥发送给数据用户。
步骤三,索引更新:给定文档Find、关键词集合Wind和访问控制策略A,数据拥有者利用文档密钥Kind加密文档Find为密文文档Cind,利用关键词集生成加密索引I,将访问控制策略A嵌入加密索引中,并将密文Cind、加密索引I和访问控制策略A发送给云服务器。
在该实施例中,目标医院医生根据病人病历文档关键词集合、访问控制策略,生成加密索引并用文档密钥加密文档,上传至医疗云服务器。步骤三中,具体包括以下步骤:UpdateCnt[w]=0,然后更新关键词状态UpdateCnt,记录UpdateCnt[w]'=UpdateCnt[w]+1。
第三步:针对每个关键词w,数据拥有者根据关键词w和关键词状态UpdateCnt[w]',利用密钥KT生成addr=F(KT,w‖UpdateCnt[w]),其中‖表示字符串的联接。
第四步:针对每个关键词w,数据拥有者根据文档标识符ind、更新标志符op、文档加密密钥Kind和关键词w,利用基于属性的加密协议生成val=ABE.Enc(mpkABE,ind||op||Kind‖w,(M,π))。
第五步:针对每个关键词w,数据拥有者利用密钥KI,KZ生成辅助信息α=xind·z-1
第六步:将α作为要共享的秘密值,选取一个随机向量数据拥有者生成嵌入访问控制策略(M,π)的辅助信息
第七步:针对每个关键词w,数据拥有者根据关键词w及xind,利用密钥KX,生成xtag。
第八步:数据拥有者生成加密索引I。
第九步:数据拥有者利用密钥K加密明文关键词状态UpdateCnt得到密文关键词状态σ',利用文档加密密钥Kind加密文档Find为密文文档Cind,并将密文文档Cind、加密索引I和密文关键词状态σ'发送给云服务器。
步骤四,陷门生成:数据用户根据查询q,利用用户私钥usk,生成查询陷门Tk,并将查询陷门Tk和数据用户的属性集合发送给云服务器。
在该实施例中,其他医院医生根据联合查询生成查询陷门,并将自身用户属性集合发送给医疗云服务器。步骤四中,具体包括以下步骤:
第一步:数据用户向云服务器提取密文关键词状态σ,如果存在,数据拥有者利用密钥K解密状态获得明文关键词状态UpdateCnt,更新本地关键词状态。否则,终止操作。
第二步:根据明文关键词状态UpdateCnt,数据用户找出查询q=w1∧w2…∧wm中更新次数最少的关键词w,不失一般性,记为w1
第三步:针对每个关键词计数器cnt∈{1,2,…,UpdateCnt[w1]},数据用户利用密钥KT,KX,KZ生成addrc=F(KT,w1||c)和xtokenlistc={xtokenlistc,i}i∈{2,…,m}
第四步:数据用户将查询陷门 和数据用户的属性集发送给云服务器。
步骤五,密文检索:云服务器根据查询陷门找到密文索引中的匹配项,并验证数据用户的属性集合是否满足匹配项对应的访问控制策略,如满足,将密文结果返回给数据用户。否则,终止操作。
在该实施例中,医疗云服务器根据查询陷门和医生属性集合查询密文索引,得到相应密文结果,将其发送请求查询的医生。步骤五中,具体包括以下步骤:
第一步:针对每个addrc∈stolenlist,云服务器找到其TSet中对应的四元组
第二步:针对该addrc及其对应四元组,如果数据用户的属性集不满足四元组中的访问控制策略(Mc,π),则返回第一步。否则执行第三步。
第三步:初始化标记数xcntc=1,如果数据用户的属性集满足四元组中的访问控制策略(Mc,π),此时存在一组系数{γi}i∈IA,使得∑i∈IAγiMc[i]=(1,0,…,0),其中表示经过π映射后的值落在数据用户属性集中的矩阵行索引集合,针对xtokenlistc中的每个xtokenlistc,k=(xtk1,k,xtk2,k,xtk3,k),云服务器生成键值XSet映射的键xtagk
第四步:针对该addrc及其对应四元组,云服务器在结果集合R中记录{(valc,xcntc)}。
第五步:云服务器将结果集合R发送给数据用户。
步骤六,密文提取:数据用户解密密文结果得到查询q对应的文档标识符集IND={ind},并向云服务器发送IND。云服务器返回文档标识符集IND对应的密文文档。
在该实施例中,其他医院的医生解密从医疗云服务器中收到的密文结果。步骤六中,具体包括以下步骤:
第一步:针对查询q结果集合R中的每一个(valc,xcntc),数据用户利用用户属性私钥uskABE解密valc得到ind||op||Kind‖w,(M,π)。
第二步:如果更新标识符op=add且xcntc=m,则将ind添加至结果集合R'中。如果更新标识符op=del且xcntc>0,则将结果集合R'中的ind删除。
第三步:数据用户向云服务器请求结果集合R'中所有文档标识符对应密文文档{Cind},并用文档密钥集合{Kind}中相应的文档密钥进行解密。
进一步,本发明还提供了一种多用户可搜索加密系统,系统用于实施上述提供的多用户可搜索加密方法。系统包括:可信授权中心、数据拥有者、数据用户和云服务器。
其中,可信授权中心根据安全参数和系统属性集合,生成公共参数和主密钥,并用于根据数据用户的属性集合,利用主密钥生成用户私钥。
数据拥有者获取文档、关键词集合和访问控制策略,利用文档密钥加密文档为密文文档,利用关键词集合生成加密索引,将访问控制策略嵌入到加密索引中,完成索引更新。
数据用户根据查询请求,利用用户私钥,生成查询陷门。
云服务器根据查询陷门查询加密索引中的匹配项,并验证数据用户的属性集合是否满足匹配项对应的访问控制策略,得到验证结果。如果验证结果为满足,则返回密文查询结果。如果验证结果为不满足,则终止操作。
数据用户解密密文查询结果得到查询请求对应的文档标识符,云服务器返回与文档标识符对应的密文文档。
基于本发明的这一系统结构设置,本发明所提供系统的整体实现流程为:采用可信授权中心根据安全参数和系统属性集合生成公共参数和主密钥。可信授权中心根据系统中用户的属性集合生成用户私钥。数据拥有者根据文档的关键词集合和访问控制策略,加密文档并生成加密索引,上传到云服务器。数据用户根据联合查询生成查询陷门,将陷门与用户属性集合发送给云服务器。云服务器根据查询陷门及用户属性集合验证用户属性是否满足访问控制策略并检索密文索引,将密文结果发送给数据用户。数据用户解密密文结果,向云服务器提取密文文件。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

Claims (6)

1.一种多用户可搜索加密方法,其特征在于,包括:
根据安全参数和系统属性集合,生成公共参数和主密钥;公共参数和主密钥由可信授权中心生成;
根据数据用户的属性集合,利用主密钥生成用户私钥;所述用户私钥由可信授权中心生成;
获取文档、关键词集合和访问控制策略,利用文档密钥加密所述文档为密文文档,利用关键词集合生成加密索引,将访问控制策略嵌入到所述加密索引中,完成索引更新;所述索引更新由数据拥有者实现;
根据查询请求,利用用户私钥,生成查询陷门;所述查询陷门由数据用户生成;
根据查询陷门查询加密索引中的匹配项,并验证数据用户的属性集合是否满足匹配项对应的访问控制策略,得到验证结果;所述验证结果由云服务器生成;
如果所述验证结果为满足,则返回密文查询结果;如果所述验证结果为不满足,则终止操作;
解密所述密文查询结果得到查询请求对应的文档标识符,并返回与所述文档标识符对应的密文文档;所述所述密文查询结果的解密由所述数据用户完成;与所述文档标识符对应的密文文档的返回由云服务器完成;
所述公共参数为pm:
pm={G1,G2,GT,p,g1,g2,e,H,F,Fp,mpkABE};
主密钥为msk:
msk={KT,KI,KX,KZ,K,mskABE};
式中,G1、G2、GT均为p阶乘法循环群,g1为p阶乘法循环群G1的生成元,g2为p阶乘法循环群G2的生成元,e表示双线性映射G1×G2→GT,H为哈希函数,F表示将集合{0,1}映射到集合{0,1}λ的伪随机函数,λ为安全参数,Fp表示集合{0,1}映射到有限域Zp的伪随机函数,mpkABE表示基于属性加密协议的公钥,maskABE表示基于属性加密协议的私钥,K表示用于加密关键词状态的对称加密协议的密钥,KT表示伪随机函数F的密钥,KI,KX,KZ均为伪随机函数Fp的密钥;
获取文档、关键词集合和访问控制策略,利用文档密钥加密所述文档为密文文档,利用关键词集合生成加密索引,将访问控制策略嵌入到所述加密索引中,完成索引更新,具体包括:
数据拥有者向云服务器提取密文关键词状态,如果云服务器中存在密文关键词状态,数据拥有者利用密钥K解密密文关键词状态获得明文关键词状态,更新本地关键词状态;否则,直接执行第二步;
如果云服务器中不存在密文关键词状态,数据拥有者判断明文关键词状态中是否存在关键词集合中的关键词,如果明文关键词状态中不存在关键词集合中的关键词,则初始化并更新关键词集合中每一关键词的明文关键词状态;
数据拥有者根据关键词和这一关键词更新后的明文关键词状态,利用密钥KT生成第一映射键;
生成访问控制策略,数据拥有者根据文档标识符集中的文档标识符、更新标识符、文档密钥以及关键词,利用基于属性的加密协议生成第一密文;所述更新标识符基于第一映射键得到;
数据拥有者利用密钥KI和密钥KZ生成辅助信息;
将辅助信息作为要共享的秘密值,选取一个随机向量,数据拥有者基于所述辅助信息和选取的随机向量生成嵌入访问控制策略的辅助信息;
针对每个关键词,数据拥有者根据关键词及伪随机函数Fp在密钥KI下以文档标识符和更新标识符为输入得到的伪随机值,利用密钥KX,生成第二映射键;
数据拥有者生成加密索引;加密索引为:I={TSet,XSet};其中,TSet表示从第一映射键addr到四元组的单向映射,XSet表示从第二映射键xtag到1的单向映射,val表示第一密文,表示嵌入访问控制策略(M,π)的辅助信息,e1表示辅助信息的第一分量,表示辅助信息的第二分量,i表示矩阵M的第i行,n1表示矩阵M的总行数;
数据拥有者利用密钥K加密明文关键词状态得到新的密文关键词状态,利用文档密钥加密文档为密文文档,并将密文文档、加密索引和新的密文关键词状态发送给云服务器。
2.根据权利要求1所述的多用户可搜索加密方法,其特征在于,根据数据用户的属性集合,利用主密钥生成用户私钥,具体包括:
以所述数据用户的属性集合为输入,利用基于属性加密协议的密钥生成算法生成用户属性私钥;
利用所述主密钥和所述用户属性私钥生成所述用户私钥,并将所述用户私钥发送给数据用户。
3.根据权利要求1所述的多用户可搜索加密方法,其特征在于,根据查询请求,利用用户私钥,生成查询陷门,具体包括:
判断云服务器中是否存在密文关键词状态,得到第一判断结果;
如果所述第一判断结果为存在,则数据拥有者利用密钥K解密密文关键词状态获得明文关键词状态,更新本地关键词状态;如果所述第一判断结果为不存在,则终止操作;
根据所述明文关键词状态,数据用户找出查询请求中更新次数最少的关键词;
针对每个关键词计数器,数据用户利用密钥KT、密钥KX以及密钥KZ生成第三映射键和与第三映射键对应的辅助查询令牌;所述第三映射键为键值映射中与查询请求中更新次数最少的关键词相关的键;
数据用户基于所述第三映射键生成的映射键集合,并基于所述映射键集合以及与第三映射键对应的辅助查询令牌生成所述查询陷门,并将所述查询陷门和数据用户的属性集合发送给云服务器。
4.根据权利要求3所述的多用户可搜索加密方法,其特征在于,根据查询陷门查询加密索引中的匹配项,并验证数据用户的属性集合是否满足匹配项对应的访问控制策略,得到验证结果,具体包括:
云服务器查询键值映射中与第三映射键对应的四元组;
判断数据用户的属性集合是否满足与第三映射键对应的四元组中的访问控制策略,得到第二判断结果;
如果所述第二判断结果为不满足,则重新查询键值映射中与第三映射键对应的四元组;
如果所述第二判断结果为满足,则云服务器生成键值映射的第四映射键;
将第四映射键以及第二密文作为密文查询结果,云服务器在结果集合中记录密文查询结果,并将结果集合发送给数据用户。
5.根据权利要求4所述的多用户可搜索加密方法,其特征在于,解密所述密文查询结果得到查询请求对应的文档标识符,并返回与所述文档标识符对应的密文文档,具体包括:
针对结果集合中的每一个密文查询结果,数据用户利用用户属性私钥解密所述密文查询结果中的第四映射键得到与查询请求对应的文档标识符;
如果更新标识符为添加关键词-文件标识符对且第四映射键为查询请求中所含关键词的个数,则将与查询请求对应的文档标识符添加至结果集合中,得到新的结果集合;如果更新标识符为删除关键词-文件标识符对且第四映射键大于零,则在结果集合中删除与查询请求对应的文档标识符,得到新的结果集合;
数据用户向云服务器请求获取新的结果集合中所有文档标识符对应的密文文档,并用文档密钥集合中相应的文档密钥对获取的密文文档进行解密。
6.一种多用户可搜索加密系统,其特征在于,所述系统用于实施如权利要求1-5任意一项所述的多用户可搜索加密方法;所述系统包括:
可信授权中心,用于根据安全参数和系统属性集合,生成公共参数和主密钥,并用于根据数据用户的属性集合,利用主密钥生成用户私钥;所述公共参数为pm:pm={G1,G2,GT,p,g1,g2,e,H,F,Fp,mpkABE};所述主密钥为msk:msk={KT,KI,KX,KZ,K,mskABE};式中,G1、G2、GT均为p阶乘法循环群,g1为p阶乘法循环群G1的生成元,g2为p阶乘法循环群G2的生成元,e表示双线性映射G1×G2→GT,H为哈希函数,F表示将集合{0,1}映射到集合{0,1}λ的伪随机函数,λ为安全参数,Fp表示集合{0,1}映射到有限域Zp的伪随机函数,mpkABE表示基于属性加密协议的公钥,mskABE表示基于属性加密协议的私钥,K表示用于加密关键词状态的对称加密协议的密钥,KT表示伪随机函数F的密钥,KI,KX,KZ均为伪随机函数Fp的密钥;
数据拥有者,用于获取文档、关键词集合和访问控制策略,利用文档密钥加密所述文档为密文文档,利用关键词集合生成加密索引,将访问控制策略嵌入到所述加密索引中,完成索引更新,具体包括:数据拥有者向云服务器提取密文关键词状态,如果云服务器中存在密文关键词状态,数据拥有者利用密钥K解密密文关键词状态获得明文关键词状态,更新本地关键词状态;否则,直接执行第二步;
如果云服务器中不存在密文关键词状态,数据拥有者判断明文关键词状态中是否存在关键词集合中的关键词,如果明文关键词状态中不存在关键词集合中的关键词,则初始化并更新关键词集合中每一关键词的明文关键词状态;
数据拥有者根据关键词和这一关键词更新后的明文关键词状态,利用密钥KT生成第一映射键;生成访问控制策略,数据拥有者根据文档标识符集中的文档标识符、更新标识符、文档密钥以及关键词,利用基于属性的加密协议生成第一密文;所述更新标识符基于第一映射键得到;
数据拥有者利用密钥KI和密钥KZ生成辅助信息;
将辅助信息作为要共享的秘密值,选取一个随机向量,数据拥有者基于所述辅助信息和选取的随机向量生成嵌入访问控制策略的辅助信息;
针对每个关键词,数据拥有者根据关键词及伪随机函数Fp在密钥KI下以文档标识符和更新标识符为输入得到的伪随机值,利用密钥KX,生成第二映射键;
数据拥有者生成加密索引;加密索引为:I={TSet,XSet};其中,TSet表示从第一映射键addr到四元组的单向映射,XSet表示从第二映射键xtag到1的单向映射,val表示第一密文,表示嵌入访问控制策略(M,π)的辅助信息,e1表示辅助信息的第一分量,表示辅助信息的第二分量,i表示矩阵M的第i行,n1表示矩阵M的总行数;
数据拥有者利用密钥K加密明文关键词状态得到新的密文关键词状态,利用文档密钥加密文档为密文文档,并将密文文档、加密索引和新的密文关键词状态发送给云服务器;
数据用户,用于根据查询请求,利用用户私钥,生成查询陷门;
云服务器,用于根据查询陷门查询加密索引中的匹配项,并验证数据用户的属性集合是否满足匹配项对应的访问控制策略,得到验证结果;如果所述验证结果为满足,则返回密文查询结果;如果所述验证结果为不满足,则终止操作;
数据用户解密密文查询结果得到查询请求对应的文档标识符,所述云服务器返回与所述文档标识符对应的密文文档。
CN202311772765.2A 2023-12-21 2023-12-21 一种多用户可搜索加密方法及系统 Active CN117744120B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311772765.2A CN117744120B (zh) 2023-12-21 2023-12-21 一种多用户可搜索加密方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311772765.2A CN117744120B (zh) 2023-12-21 2023-12-21 一种多用户可搜索加密方法及系统

Publications (2)

Publication Number Publication Date
CN117744120A CN117744120A (zh) 2024-03-22
CN117744120B true CN117744120B (zh) 2024-08-20

Family

ID=90260503

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311772765.2A Active CN117744120B (zh) 2023-12-21 2023-12-21 一种多用户可搜索加密方法及系统

Country Status (1)

Country Link
CN (1) CN117744120B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108390855A (zh) * 2018-01-11 2018-08-10 中国人民解放军战略支援部队信息工程大学 一种面向云存储的属性基关键词搜索加密系统及方法
CN111726363A (zh) * 2020-06-24 2020-09-29 暨南大学 一种基于属性的多用户连接关键字可搜索加密方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101593196B (zh) * 2008-05-30 2013-09-25 日电(中国)有限公司 用于快速密文检索的方法、装置和系统
CN112270006A (zh) * 2020-11-02 2021-01-26 重庆邮电大学 电商平台中隐藏搜索模式和访问模式的可搜索加密方法
CN114640458B (zh) * 2022-03-28 2024-04-19 湖南科技大学 云边协同环境下细粒度的多用户安全可搜索加密方法
CN116595560A (zh) * 2023-05-25 2023-08-15 北京邮电大学 细粒度多用户可搜索加密方法、装置及电子设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108390855A (zh) * 2018-01-11 2018-08-10 中国人民解放军战略支援部队信息工程大学 一种面向云存储的属性基关键词搜索加密系统及方法
CN111726363A (zh) * 2020-06-24 2020-09-29 暨南大学 一种基于属性的多用户连接关键字可搜索加密方法

Also Published As

Publication number Publication date
CN117744120A (zh) 2024-03-22

Similar Documents

Publication Publication Date Title
Tang et al. Ensuring security and privacy preservation for cloud data services
Miao et al. Secure online/offline data sharing framework for cloud-assisted industrial Internet of Things
JP4958246B2 (ja) 高速検索可能な暗号化のための方法、装置およびシステム
CN107948146B (zh) 一种混合云中基于属性加密的连接关键词检索方法
CN110213042A (zh) 一种基于无证书代理重加密的云数据去重方法
WO2016106752A1 (zh) 一种共享数据的访问控制方法、装置及系统
Li et al. Privacy-preserving data utilization in hybrid clouds
CN112365945A (zh) 基于区块链的电子病历细粒度访问控制和密文可搜索方法
CN108632385B (zh) 基于时间序列的多叉树数据索引结构云存储隐私保护方法
CN113411323B (zh) 基于属性加密的医疗病历数据访问控制系统及方法
Xu et al. Enabling authorized encrypted search for multi-authority medical databases
Li et al. Traceable and controllable encrypted cloud image search in multi-user settings
CN114640458B (zh) 云边协同环境下细粒度的多用户安全可搜索加密方法
Yin et al. Attribute-based multiparty searchable encryption model for privacy protection of text data
Ma et al. Revocable attribute-based encryption scheme with efficient deduplication for ehealth systems
CN113098683A (zh) 一种基于属性的数据加密方法和系统
Fugkeaw A lightweight policy update scheme for outsourced personal health records sharing
CN115459967A (zh) 一种基于可搜索加密的密文数据库查询方法及系统
Zhang et al. Secdedup: Secure encrypted data deduplication with dynamic ownership updating
Zhang et al. Designated server certificateless deniably authenticated encryption with keyword search
Ghopur et al. Puncturable key-policy attribute-based encryption scheme for efficient user revocation
CN114567465A (zh) 基于区块链的分类医疗数据可搜索加密方法
US20240015014A1 (en) Dynamic and verifiable searchable encryption method and system based on updatable encryption and blockchain
KR20220011449A (ko) 익명 사용자 속성기반의 데이터 접근 제어 시스템 및 방법
CN116663046A (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