CN108632032B - 无密钥托管的安全多关键词排序检索系统 - Google Patents

无密钥托管的安全多关键词排序检索系统 Download PDF

Info

Publication number
CN108632032B
CN108632032B CN201810318718.3A CN201810318718A CN108632032B CN 108632032 B CN108632032 B CN 108632032B CN 201810318718 A CN201810318718 A CN 201810318718A CN 108632032 B CN108632032 B CN 108632032B
Authority
CN
China
Prior art keywords
cloud server
data
key
keyword
data 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
CN201810318718.3A
Other languages
English (en)
Other versions
CN108632032A (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.)
Fuzhou University
Original Assignee
Fuzhou 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 Fuzhou University filed Critical Fuzhou University
Publication of CN108632032A publication Critical patent/CN108632032A/zh
Application granted granted Critical
Publication of CN108632032B publication Critical patent/CN108632032B/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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Abstract

本发明涉及一种无密钥托管的安全多关键词排序检索系统,包括:密钥生成中心,用于和云服务器进行交互式计算共同生成系统的公共参数和数据用户的属性公钥/私钥对;云服务器,用于存储数据拥有者的文件并响应数据用户的搜索查询请求;数据拥有者,从文件中提取关键词集合并加密成安全索引,同时加密文件,制定访问策略嵌入到密文中;数据用户,定义搜索关键词集合,使用数据用户的属性私钥生成陷门来搜索存储在云服务器中的加密文件。本发明解决了密钥托管问题,实现了灵活的授权关键词搜索,实现了细粒度的数据访问授权,支持多关键词子集搜索,查询关键词的顺序变化不影响搜索结果。

Description

无密钥托管的安全多关键词排序检索系统
技术领域
本发明涉及检索技术领域,具体涉及一种无密钥托管的安全多关键词排序检索系统。
背景技术
随着新型计算模式的发展,云计算已经成为人们最关注的一种技术,它能够利用共享资源来提供高质量的按需服务,因此越来越多的公司和个人倾向于将数据存储外包给云服务器。尽管云计算具有巨大的经济和技术优势,但是用户对安全和隐私问题的担忧,已经成为阻碍数据存储在公有云基础架构中被广泛应用的突出问题。加密是保护远程存储数据隐私的基本方法,然而,由于密文的不可读性,如何有效地对密文进行关键词搜索变得更加困难。可搜索加密(SE)是一种用于保护数据隐私性并同时支持对加密文档进行信息检索的重要机制。
对于多数据拥有者、多用户场景下的文件共享系统,细粒度的搜索权限控制,是数据拥有者与其他授权用户共享私人数据的一种理想方案。但是,大多数可用的系统要求用户执行大量复杂的双线性对操作,增加了用户终端的计算负担。如果用户采用外包解密方法,只需要进行轻量级解密计算就能恢复出明文。但是,由于恶意攻击或系统故障,云服务器可能返回错误的半解密信息。因此,在公钥加密的关键词搜索系统(PEKS)中验证外包解密的正确性是一个重要问题。
授权用户可能会将其密钥非法泄露给第三方并从中获利。例如某天一个患者突然在e-Bay上发现有人出售与其电子医疗数据相对应的密钥。这种行为严重威胁了患者的数据隐私。更糟糕的是,如果含有严重疾病的个人医疗数据被保险公司或患者的雇佣公司获取,那么他们可能以此为理由拒绝为患者延长医疗保险或劳动合同的时限。密钥滥用严重破坏了授权访问控制和数据隐私保护的基础。因此,追踪和识别恶意用户是非常重要的问题。在基于属性的访问控制系统中,用户的密钥与一组属性相关。由于一组具有相同属性的用户可以共享搜索和解密权限,因此很难追踪密钥的原始拥有者。对于攻击者来说,被追踪到的风险很低。因此,为细粒度的搜索授权系统提供可追踪方案至关重要。
另一个重要问题的是,在原始的PEKS方案定义中,密钥生成中心(KGC)负责生成系统中所有密钥,这必然导致密钥托管问题。也就是说,KGC知道用户的所有密钥从而可以肆意地搜索和解密所有的加密文档,这对于数据安全和隐私保护来说是一个巨大隐患。除此之外,PEKS方案实现可追踪性时,密钥托管还会引发另一个问题。如果发现有人出售密钥并且密钥拥有者的真实身份被追踪到后,该恶意用户可能会争辩说密钥是由KGC泄漏的。如果密钥托管问题得不到解决,那么就没有方法能够区分谁是真正的叛逆者。
可搜索加密支持用户对加密数据进行关键词搜索操作。Boneh等人最早提出公钥关键词可搜索加密(PEKS)的概念,这对于保护外包数据隐私来说非常重要。在PEKS方案中,数据拥有者将加密后的文档存储在不可信的数据服务器中。数据拥有者通过生成关键词陷门来查询加密文档,数据服务器执行搜索操作。Waters等人研究发现可以通过PEKS方案构建可搜索审计日志。Xu等人结合PEKS和模糊关键词搜索设计了一个基本框架,但是没有给出具体的构造过程。Tang提出了一个多方可搜索加密方案和一个基于双线性对的方案。2016年,Chen等人在PEKS中引入了“双服务器”的概念来抵抗离线关键词猜测攻击。Wang等人利用了保序对称加密方法构造了一个关键词排序可搜索加密方案。Yang等人为PEKS方案引入了受时间控制的授权代理机制。
ABE是实现细粒度数据共享的重要手段。在ABE方案中,属性、访问策略与属性密钥、密文息息相关。当且仅当属性和访问策略相互匹配时,用户才能利用相关的属性密钥解密密文。2005年,Sahai等人提出ABE的概念。根据访问策略是否与密文或密钥相关,ABE方案可分为密文策略ABE(CP-ABE)和密钥策略ABE(KP-ABE)。在访问策略的表示结构方面,有人提出了具有非单调访问结构的ABE方案。有人构建了密文大小固定的ABE系统来减少存储开销。为了加快解密过程,研究人员着力研究轻量级解密算法。还有人研究了分布式ABE方案,其中多个授权机构独立工作,相互间没有合作。
Chor等人提出叛逆者追踪的概念来帮助数字信息发行商识别叛逆者的身份。在数字内容分发系统中,无法阻止合法用户将其解密密钥给予(或出售给)其他人。叛逆者追踪机制通过运行“追踪”算法帮助发行商识别出非法用户,从而对泄露密钥的用户采取法律行动。后来,叛逆者追踪机制被引入到广播加密中,其中发送者能够生成密文并且只有指定接收者集合中的用户才能解密密文。可追踪性能够帮助广播系统识别叛逆者并阻止授权用户泄露其密钥。方法是为每个用户分配一组不同的密钥,这些密钥可以被视作用于追踪的“水印”。
CP-ABE方案没有使用身份来定义密钥,而是用一组属性定义。多个用户可能共享相同的属性集合,这为访问控制带来了便利。然而,对于已经泄露的密钥,在传统的ABE系统中要找到其真正的密钥拥有者很困难。这意味着出售密钥的恶意用户几乎没有被追踪到的风险。因此需要研究CP-ABE中的可追踪性问题。
发明内容
针对现有的授权可搜索加密系统中存在密钥托管,检索方式不灵活,用户的移动终端检索及解密保密文件的计算开销大,用户召回效率低下,不能追踪恶意用户等问题,本发明提供无密钥托管的安全多关键词排序检索系统,实现灵活的授权关键词搜索:系统实现细粒度的数据访问授权,支持多关键词子集搜索。
为实现上述目的,本发明的技术方案是:一种无密钥托管的安全多关键词排序检索系统,包括:
密钥生成中心,用于和云服务器进行交互式计算共同生成系统的公共参数和数据用户的属性公钥/私钥对;数据用户的身份标识和属性集合被隐式地嵌入在所述属性公钥/私钥对中;
云服务器,用于存储数据拥有者的文件和授权数据用户列表,并响应数据用户的搜索查询请求;
数据拥有者,在文件存储在云服务器之前,从文件中提取关键词集合KW并为其中的每个关键词定义权重,然后将关键词集合加密成安全索引,同时加密文件,制定访问策略嵌入到密文中,将安全索引和密文发送给云服务器存储;
数据用户,定义搜索关键词集合KW′并为其中的每个关键词定义偏好分数,使用数据用户的属性私钥生成陷门来搜索存储在云服务器中的加密文件,如果数据用户的属性集合满足文件中定义的访问策略,则云服务器响应数据用户的搜索查询请求并查找匹配文件;如果KW′是KW的子集,则相应的文件为匹配文件,云服务器计算陷门和匹配文件的相关度分数,并根据相关度分数对所有的匹配文件进行排序,最后将相关度最高的k个匹配文件返回给数据用户,数据用户解密文件获取明文。
进一步地,所述密钥生成中心和云服务器交互生成系统的公共参数PP,并将系统公共参数PP分发给数据拥有者和数据用户,具体如下:
设置安全参数κ作为输入,密钥生成中心随机选取元素α1,β,
Figure GDA0003251432100000041
f∈R G,k1,
Figure GDA0003251432100000042
G是素数p的乘法循环群,
Figure GDA0003251432100000043
是密钥空间,计算
Figure GDA0003251432100000044
e是双线性对,密钥生成中心的公共参数和主密钥分别为PP1=(f,g,gβ,gλ,Y1)和MSK1=(α1,β,λ,k1,k2);
设置安全参数κ作为输入,云服务器随机选取元素
Figure GDA0003251432100000045
并计算
Figure GDA0003251432100000046
云服务器的公开参数和主密钥分别为PP2=Y2和MSK2=α2
计算Y=Y1·Y2,Y=e(g,g)α,其中α=α12,且α对于密钥生成中心和云服务器都是未知的,PP=(f,g,gβ,gλ,Y)为系统的公共参数。
进一步地,当一个数据用户申请加入系统时,密钥生成中心根据数据用户的身份为其分配一个属性集合S,属性集合S描述了数据用户身份标识id的特征,所述密钥生成中心和云服务器通过交互式计算运行KeyGen算法生成数据用户的属性公钥PKid,S和私钥SKid,S,数据用户的身份标识id和属性集合S被隐式地嵌入到密钥中,具体如下:
步骤S11:云服务器选择一个全同态加密公钥/私钥对(hpk,hsk),其中hpk被公开,hsk由云服务器秘密保存,然后,云服务器给密钥生成中心发送W1=HEnchpk2);
步骤S12:密钥生成中心计算
Figure GDA0003251432100000047
并发送给云服务器,其中,
Figure GDA0003251432100000048
为全同态加法;
步骤S13:云服务器恢复W3=HDechsk(W2)=(α12)β=αβ,云服务器选择一个随机数
Figure GDA0003251432100000051
计算
Figure GDA0003251432100000052
并发给密钥生成中心;
步骤S14:密钥生成中心选取随机元素t,
Figure GDA0003251432100000053
并计算ζid=SEnck1(id),δ=SEnck2idθ),然后密钥生成中心计算
Figure GDA0003251432100000054
W6=gβt,并发送给云服务器;
步骤S15:云服务器计算
Figure GDA0003251432100000055
并将D1发送给数据用户;
步骤S16:密钥生成中心选取随机元素xid
Figure GDA0003251432100000056
并计算D′1=δ,D2=gt,D′2=gλt
Figure GDA0003251432100000057
D3,x=H(x)(λ+δ)t
Figure GDA0003251432100000058
数据用户的属性私钥和公钥分别为
SKid,S=(D1,D′1,D2,D′2,{D3,x}x∈S,D4,xid)和PKid,S=Yid,数据用户的匿名身份ζid也返回给数据用户。
进一步地,如果数据用户的属性私钥被滥用,密钥生成中心测试被滥用的属性私钥是否具有一致性,然后从属性密钥中恢复恶意用户的身份,具体如下:
KeySanityCheck(SKid,S)→1/0:测试是否满足以下条件:
被滥用的属性私钥SKid,S是(D1,D′1,D2,D′2,{D3,x}x∈S,D4,xid)的形式,其中xid,D4
Figure GDA0003251432100000059
D1,D2,D′2,D3,x∈G;e(g,D′2)=e(gλ,D2);
Figure GDA00032514321000000510
Figure GDA00032514321000000511
如果SKid,S通过密钥一致性检测,KeySanityCheck算法输出1,否则输出0;
Trace(SKid,S)→id/⊥:如果KeySanityCheck算法的输出为0,表示被滥用的SKid,S不具有一致性,Trace算法将输出⊥;否则SKid,S格式正确,Trace算法将通过以下计算识别叛逆者:计算
Figure GDA00032514321000000512
并通过计算
Figure GDA00032514321000000513
恢复恶意用户的真实身份标识id。
进一步地,当识别到叛逆者时,系统召回恶意用户的搜索和解密能力,召回包括以下步骤:
步骤S21:密钥生成中心给云服务器发送一个召回请求和主私钥的签名Sig(Msg,MSK);
步骤S22:云服务器验证召回请求的签名;
步骤S23:如果签名验证正确,云服务器把恶意用户在授权数据用户列表中的参数设置成符号⊥,表示召回;
步骤S24:给密钥生成中心发送一个召回确认信息。
进一步地,在文件M存储在云服务器之前,数据拥有者使用以下步骤处理文件:
步骤S31:数据拥有者从文件M中提取关键词KW,其中
Figure GDA0003251432100000061
并且
Figure GDA0003251432100000062
KWTotal是密钥生成中心定义的一个总的关键词集合,
Figure GDA0003251432100000063
数据拥有者为KW设置关键词权重
Figure GDA0003251432100000064
数据拥有者随机选择秘密值
Figure GDA0003251432100000065
并随机选择向量
Figure GDA0003251432100000066
用来共享秘密值s,对于i∈[l],计算
Figure GDA0003251432100000067
其中Ai是A的第i行对应的向量;A是一个l×n的矩阵;
步骤S32:数据拥有者随机选择
Figure GDA0003251432100000068
计算kSE=h(Υ),使用加密安全对称加密算法,使用私钥kSE加密文件M,文件密文
Figure GDA0003251432100000069
步骤S33:生成验证密钥VKM=H(Υ||CM),用来验证外包云服务器计算的结果是否正确;
步骤S34:构造一个l1维多项式
Figure GDA00032514321000000610
使得
Figure GDA00032514321000000611
是等式
Figure GDA00032514321000000612
的l1个根;随机选择
Figure GDA00032514321000000613
并通过计算C=Υ·e(g,g)αs,C0=gs,C′0=gλs
Figure GDA00032514321000000614
Figure GDA00032514321000000615
来生成安全索引;
步骤S35:将密文CT和验证密钥VKM外包给云服务器,数据拥有者指定的访问策略(A,ρ)嵌入密文中,ρ是将A的每行与属性关联的函数,其中
Figure GDA00032514321000000616
数据拥有者生成一个关键词向量I,其中每个元素I(j)表示预定义的关键词kwj是否在KW中,如果kwj不在KW中,设置I(j)=0;否则,设置
Figure GDA0003251432100000071
I依据如下规则分裂成两个向量I′,I″:如果
Figure GDA0003251432100000072
I′(j)=I″(j)=I(j);如果
Figure GDA0003251432100000073
I′(j)和I″(j)都设置为随机数,满足I′(j)+I″(j)=I(j),使用
Figure GDA0003251432100000074
加密(I′,I″)获得加密后的索引
Figure GDA0003251432100000075
是两个
Figure GDA0003251432100000076
的可逆矩阵,
Figure GDA0003251432100000077
是集合KWTotal的基数;
将密文CT,验证密钥VKM和加密索引EI发送给云服务器。
进一步地,数据用户指定查询关键词集合KW′,其中
Figure GDA0003251432100000078
并且
Figure GDA0003251432100000079
数据拥有者为KW′设置偏好分数
Figure GDA00032514321000000710
如果数据用户请求查询包含查询关键词集合KW′的文件,则使用数据用户的属性私钥生成陷门,数据用户将陷门提交给云服务器,具体如下:
数据拥有者随机选择u,
Figure GDA00032514321000000711
计算
Figure GDA00032514321000000712
T1′=D1′,
Figure GDA00032514321000000713
Figure GDA00032514321000000714
设置
Figure GDA00032514321000000715
对于一个查询关键词集合KW′,数据用户生成一个查询向量Q,每个元素Q(j)表示预定义的关键词kwj是否出现在KW′中,如果kwj不在KW′中,设置Q(j)=0;否则,设置
Figure GDA00032514321000000716
Q依据如下规则分裂成两个向量Q′,Q″:如果
Figure GDA00032514321000000717
Q′(j)和Q″(j)均设置为随机数,Q′(j)+Q″(j)=Q(j);如果
Figure GDA00032514321000000718
Q′(j)=Q″(j)=Q(j),使用
Figure GDA00032514321000000719
加密(Q′,Q″)获得
Figure GDA00032514321000000720
数据用户将(TKW′,EQ)提交给云服务器作为关键词陷门。
进一步地,云服务器从数据用户接收到搜索查询请求后,通过以下两个阶段检索数据拥有者的加密文件来查找匹配文件:
测试阶段,当数据用户的属性集合满足搜索文件的访问策略并且陷门中搜索到的关键词集合是安全索引中的关键词集合的子集,加密文件被视为匹配:
转换阶段,原始密文被转换为另一种形式,使得数据用户能够使用轻量级解密算法来解密文件;
具体如下:
Test(CT,TKW′id)→1/0:假设密文CT与关键词集合KW,TKW′与关键词集合KW'相关联,且ζid是数据用户的匿名身份;
验证与TKW′相关的数据用户属性集合S是否满足与CT相关的访问策略(A,ρ),若不满足,则输出0,否则,定义I={i:ρ(i)∈S},
Figure GDA0003251432100000081
存在一组常量{wi∈Zp}i∈I使得∑i∈IwiAi=(1,0,...0);
计算
Figure GDA0003251432100000082
Figure GDA0003251432100000083
根据数据用户的匿名身份ζid,云服务器验证数据用户是否在授权数据用户列表中,如果在,输出1来表示
Figure GDA0003251432100000084
否则,输出0;
Transform(CT,TKW′)→CTout/⊥:如果Test算法的输出为0,则Transform算法输出⊥,否则输出CTout=(C,Γ,Λ,CM),CTout是转换后的密文;
如果Test算法的输出为0,云服务器设置相关性分数RS=0,否则,云服务器使用如下公式计算相关性分数RS:
Figure GDA0003251432100000085
云服务器将转换后的密文CTout,验证密钥VKM和相关性分数RS发送给数据用户。
进一步地,数据用户使用求幂和除法操作来恢复明文文件,并使用验证密钥VKM测试转换密文CTout的正确性,具体如下:
Dec(CTout,SKid,S,VKM)→M/⊥:计算
Figure GDA0003251432100000086
然后,验证等式H(Υ||CM)=VKM是否成立,若等式不成立,返回⊥;否则,计算kSE=h(Υ),并通过计算
Figure GDA0003251432100000091
恢复明文文档。
与现有技术相比,本发明具有以下有益效果:
(1)灵活授权关键词检索:系统实现了细粒度的数据访问授权,支持多关键词子集搜索。在加密阶段,从文件中提取关键词集合KW,并为KW中的每个关键词定义权重。然后,KW和文件都将被加密,并通过制定访问策略来定义授权用户的类型。在搜索阶段,数据用户指定查询关键词集合KW′,并为KW′中的每个关键词定义偏好分数。然后,使用用户的私钥生成陷门TKW′。查询关键词集合KW′中关键词的顺序可以任意改变,并不影响搜索结果。在测试阶段,如果用户的属性集合满足文件的访问策略,并且KW′(嵌入在关键词陷门中)是KW(嵌入在密文中)的子集,则相应的文件被认定为匹配文件。云服务器计算查询陷门和匹配文档的相关度分数,并根据相关度分数对所有的匹配文档进行排序,最后将相关度最高的k个文档返回给用户。
(2)灵活的系统扩展:本发明支持灵活的系统扩展,可容纳任意多种用户属性,不需要在系统建立阶段确定用户属性的总数量,因此可以随时在系统中添加新的属性。而且,系统中公共参数的数量并不随着属性的数量而线性增长。无论系统支持多少种属性,都不会带来额外的通信和存储开销。在云计算平台中,这个特点对于不断增加的用户数量和用户属性是非常重要的。
(3)高效可验证解密:本发明采用外包解密机制实现高效解密。将大部分的解密计算都外包给云服务器,使得数据用户可以用超轻量级的计算来完成最终的解密运算。而且,用户还可以验证云服务器部分解密运算的正确性。
(4)密钥的白盒可追踪性:叛逆者追踪可以分为白盒和黑盒追踪。如果授权用户泄漏或出售其私钥,白盒可追踪性能够识别谁泄漏了密钥。在黑盒可追踪性中,恶意用户泄漏的是搜索和解密设备,而不是私钥。本发明实现了白盒的可追踪性,可以追踪任何有意或无意泄露密钥给第三方的用户。此外,本发明的可追踪性不会带来额外的计算和传输开销。
(5)高效用户召回机制:通过追踪算法,一旦某个用户被识别为叛逆者,系统将召回该恶意用户,并且召回机制具有高效性。
(6)无密钥托管:为了降低对密钥生成中心KGC的信任,系统设计了一个基于全同态加密技术的交互式的密钥生成协议来解决密钥托管问题。通过密钥生成中心KGC和云服务器之间的交互过程来为系统用户生成属性密钥,使得密钥生成中心KGC和云服务器都不能够独立地生成用户的全部密钥,交互过程中使用了轻量级的全同态加密算法。因此,用户的私钥不托管给任何实体,从而实现了无密钥托管的系统。
附图说明
图1是本发明一实施例中系统模型示意图;
图2是本发明一实施例中系统的工作流程示意图;
图3是本发明一实施例中创建用户列表的流程示意图;
图4是本发明一实施例中生成安全索引和密文的流程示意图;
图5是本发明一实施例中生成陷门的流程示意图;
图6是本发明一实施例中云服务器查找匹配文件的流程示意图;
图7是本发明一实施例中恢复和验证密文的流程示意图;
图8是本发明一实施例中密钥一致性检测和恶意用户追踪的流程示意图;
图9是本发明一实施例中召回用户的流程示意图。
具体实施方式
下面结合附图及实施例对本发明做进一步说明。
本发明的一种无密钥托管的安全多关键词排序检索系统,包括:
密钥生成中心,用于和云服务器进行交互式计算共同生成系统的公共参数和数据用户的属性公钥/私钥对;数据用户的身份标识和属性集合被隐式地嵌入在所述属性公钥/私钥对中;
云服务器,用于存储数据拥有者的文件和授权数据用户列表,并响应数据用户的搜索查询请求;
数据拥有者,在文件存储在云服务器之前,从文件中提取关键词集合KW并为其中的每个关键词定义权重,然后将关键词集合加密成安全索引,同时加密文件,制定访问策略嵌入到密文中,将安全索引和密文发送给云服务器存储;
数据用户,定义搜索关键词集合KW′并为其中的每个关键词定义偏好分数,使用数据用户的属性私钥生成陷门来搜索存储在云服务器中的加密文件,如果数据用户的属性集合满足文件中定义的访问策略,则云服务器响应数据用户的搜索查询请求并查找匹配文件;如果KW′是KW的子集,则相应的文件为匹配文件,云服务器计算陷门和匹配文件的相关度分数,并根据相关度分数对所有的匹配文件进行排序,最后将相关度最高的k个匹配文件返回给数据用户,数据用户解密文件获取明文。
具体实现过程为:
如图1所示,本发明的安全多关键词排序检索系统由四个不同的实体组成。其任务和相互作用描述如下。
(1)密钥生成中心(KGC)
KGC负责生成系统的公共参数,并帮助系统用户生成公钥/私钥对。一旦用户的私钥被泄露以获取利益或其他目的,KGC将运行追踪算法来查找恶意用户。追踪叛逆者后,KGC将向云服务器发送用户召回命令,从而召回用户的搜索和解密权限。
(2)云服务器(CS)
云服务器具有存储空间大,计算能力强的优点,为系统提供按需服务。云服务器负责存储数据拥有者的文件,并响应数据用户的搜索查询请求。
(3)数据拥有者
数据拥有者利用云存储服务来存储文件。在数据外包存储之前,数据所有者从文件中提取关键词集合并将其加密成安全索引,同时加密该文件。在关键词和文件的加密过程中,数据拥有者将指定的访问策略嵌入到密文中,以实现细粒度的访问控制。
(4)数据用户
每个数据用户都有自己的属性集合,比如{教授,计算机科学学院,院长}。这些属性信息将被隐式地包含在KGC生成的用户私钥中。使用该私钥,数据用户能够通过定义查询关键词集合并生成陷门来搜索存储在云平台中的加密文件。如果用户的属性集合满足加密文件中定义的访问策略,则云服务器将响应用户的搜索查询请求并查找匹配文件。否则,搜索查询请求将被拒绝。在检索到包含搜索关键词集合的文件后,用户将使用解密算法获取明文。
1.系统建立(如图2所示)
系统建立阶段包括两个算法KGC.Setup和CS.Setup,分别由KGC和CS执行。KGC定义一个总的关键词集合
Figure GDA0003251432100000111
KGC.Setup(κ)→(PP1,MSK1)。设置安全参数κ作为输入,KGC随机选取元素α1,β,
Figure GDA0003251432100000121
f∈RG,k1
Figure GDA0003251432100000122
并计算
Figure GDA0003251432100000123
KGC的公开参数和主密钥为PP1=(f,g,gβ,gλ,Y1)和MSK1=(α1,β,λ,k1,k2)。
CS.Setup(κ)→(PP2,MSK2),设置安全参数κ作为输入,CS随机选取元素
Figure GDA0003251432100000124
并计算
Figure GDA0003251432100000125
CS的公开参数和主密钥为PP2=Y2和MSK2=α2
然后,计算Y=Y1·Y2,Y=e(g,g)α,其中α=α12,且α对于KGC和CS都是未知的。PP=(f,g,gβ,gλ,Y)为系统中的公开参数。
2.新用户注册
当一个用户申请加入系统时,KGC根据用户的身份为其分配一个属性集合S。随后,KGC和CS进行交互为用户生成公钥/私钥对。
KeyGen(MSK1,MSK2,id,S)→(PKid,S,SKd,S)
(1)根据全同态加密方案的要求,CS选择一个全同态加密公钥/私钥对(hpk,hsk),其中hpk被公开,hsk由CS秘密保存。然后,CS给KGC发送W1=HEnchpk2)。
(2)KGC计算
Figure GDA0003251432100000126
并发送给CS。
(3)CS恢复W3=HDechsk(W2)=(α12)β=αβ。然后,CS选择一个随机数
Figure GDA0003251432100000127
计算
Figure GDA0003251432100000128
并发给KGC。
(4)KGC选取随机元素t,
Figure GDA0003251432100000129
并计算ζid=SEnck1(id),δ=SEnck2idθ)。然后KGC计算
Figure GDA00032514321000001210
W6=gβt,并发送给CS。
(5)CS计算
Figure GDA00032514321000001211
并将D1发送给用户。
(6)KGC选取随机元素xid
Figure GDA00032514321000001212
并计算D′1=δ,D2=gt,D′2=gλt
Figure GDA00032514321000001213
D3,x=H(x)(λ+δ)t
Figure GDA00032514321000001214
用户的私钥/公钥为SKid,S=(D1,D′1,D2,D′2,{D3,x}x∈S,D4,xid)和PKid,S=Yid。用户的匿名身份ζid也返回给用户。
3.创建用户列表(如图3所示)
本发明中,数据拥有者的加密文件可以被许多数据用户搜索到。用户列表UL由数据拥有者创建并存储在云服务器中。
CreateUL(id,PKid,S)→UL,数据拥有者随机选取
Figure GDA0003251432100000131
当具有用户身份id的新用户被允许在加密文件上进行搜索时,数据拥有者计算
Figure GDA0003251432100000132
并给KGC发送用户身份id。KGC将id转换为匿名身份
Figure GDA0003251432100000133
并返回给数据拥有者。然后,数据拥有者请求云服务器将元组
Figure GDA0003251432100000134
加入UL。
4.KNN-SE私钥生成
为了实现细粒度访问控制,数据拥有者为不同的访问策略(A,ρ)生成不同的私钥skA,p
KeyGen.sk(k,(A,ρ))→skA,ρ。在输入集合KWTotal的基数
Figure GDA0003251432100000135
和访问策略(A,ρ)时,数据拥有者选择两个
Figure GDA0003251432100000136
的可逆矩阵
Figure GDA0003251432100000137
和一个向量
Figure GDA0003251432100000138
访问策略(A,ρ)的对称私钥为
Figure GDA0003251432100000139
5.KNN-SE私钥封装
数据拥有者利用密钥封装机制加密密钥skA,ρ,其中访问策略(A,ρ)被嵌入密文
Figure GDA00032514321000001310
中,以实现访问控制。
Figure GDA00032514321000001311
数据拥有者执行如下操作生成对称私钥skA,ρ的密文
Figure GDA00032514321000001312
(1)数据拥有者随机选取一个向量
Figure GDA00032514321000001313
用于分享
Figure GDA00032514321000001314
For i∈[l],计算
Figure GDA00032514321000001315
其中Ai是对应于A的第i行向量。
(2)数据拥有者随机选取一个元素
Figure GDA00032514321000001316
并设置
Figure GDA00032514321000001317
然后计算
Figure GDA00032514321000001318
(3)随机选取
Figure GDA00032514321000001319
for 1≤i≤n,计算
Figure GDA00032514321000001320
Figure GDA0003251432100000141
生成安全索引。
(4)发送对称私钥的密文
Figure GDA0003251432100000142
给云服务器。
6.KNN-SE私钥解封装
当拥有属性集合S的数据用户使用访问策略(A,ρ)申请获取对称私钥密文
Figure GDA0003251432100000143
时。云服务器验证S是否满足(A,ρ)。如果不满足,数据用户的对称私钥解封装请求将被拒绝。否则,云服务器给数据用户发送
Figure GDA0003251432100000144
数据用户使用如下算法解封装对称私钥skA,ρ
Figure GDA0003251432100000145
定义I={i:ρ(i)∈S},其中
Figure GDA0003251432100000146
存在一组常数{wi∈Zp}i∈I,所以∑i∈IwiAi=(1,0,...,0)。数据用户计算
Figure GDA0003251432100000147
并计算
Figure GDA0003251432100000148
7.生成安全文件和关键词索引(如图4所示)
文件M被上传到云服务器之前,数据拥有者使用以下步骤处理文件。(1)数据拥有者从文件M中提取关键词KW,其中
Figure GDA0003251432100000149
并且
Figure GDA00032514321000001410
为了区分关键词的重要性,数据拥有者为KW设置关键词权重
Figure GDA00032514321000001411
(2)使用加密安全对称加密算法,使用私钥kSE加密文件M,其中kSE=h(Υ),且Υ是
Figure GDA00032514321000001412
中随机选择的元素。文件密文表示为CM。(3)生成验证密钥VKM,可以用来验证外包计算的结果。(4)组成员
Figure GDA00032514321000001413
和选择出的关键词集合KW将被加密成安全索引。(5)加密文件和安全索引将被发送给云服务器存储。在此算法中,数据拥有者指定的访问策略将嵌入密文中。加密阶段如图5所示。
Enc(M,(A,ρ),KW,skA,ρ)→(CT,VKM,EI)。A是一个l×n的矩阵,且ρ是将A的每行与属性关联的函数。访问策略用(A,ρ)表示。具体算法描述如下。
(1)数据拥有者随机选择秘密值
Figure GDA00032514321000001414
并随机选择向量
Figure GDA00032514321000001415
用来共享秘密值s。对于i∈[l],计算
Figure GDA00032514321000001416
其中Ai是A的第i行对应的向量。
(2)数据拥有者随机选择
Figure GDA0003251432100000151
计算kSE=h(Υ)。然后计算
Figure GDA0003251432100000152
作为文件的密文。
(3)计算验证密钥VKM=H(Υ||CM)。该验证密钥可用于测试外包计算结果是否正确。
(4)构造一个l1维多项式
Figure GDA0003251432100000153
使得
Figure GDA0003251432100000154
是等式
Figure GDA0003251432100000155
的l1个根。
(5)随机选择
Figure GDA0003251432100000156
并通过计算C=Υ·e(g,g)αs,C0=gs,C′0=gλs
Figure GDA0003251432100000157
来生成安全索引。
(6)将密文CT和验证密钥VKM外包给云服务器,其中
Figure GDA0003251432100000158
(7)数据拥有者生成一个关键词向量I,其中每个元素I(j)表示预定义的关键词kwj是否在KW中。如果kwj不在KW中,设置I(j)=0;否则,设置
Figure GDA0003251432100000159
然后,I依据如下规则分裂成两个向量I′,I″:如果
Figure GDA00032514321000001510
I′(j)=I″(j)=I(j);如果
Figure GDA00032514321000001511
I′(j)和I″(j)都设置为随机数,满足I′(j)+I″(j)=I(j)。然后,使用
Figure GDA00032514321000001512
加密(I′,I″)获得加密后的索引
Figure GDA00032514321000001513
(8)将密文CT,验证密钥VKM和加密索引EI发送给云服务器。
8.生成关键词陷门
数据用户指定查询关键词集合KW′,其中
Figure GDA00032514321000001514
并且
Figure GDA00032514321000001515
为了区分查询关键词的重要性,数据拥有者为KW′设置偏好分数
Figure GDA00032514321000001516
如果数据用户想要查找包含特定关键词集合KW′的文件,则应该使用其私钥生成关键词陷门。数据用户的属性信息也应该加入到陷门中。然后,数据用户将陷门提交给云服务器。陷门生成过程如图6所示。
Trapdoor(SKid,S,KW′,skA,ρ)→(TKW′,EQ)。
数据拥有者随机选择u,
Figure GDA0003251432100000161
计算
Figure GDA0003251432100000162
T1′=D1′,
Figure GDA0003251432100000163
Figure GDA0003251432100000164
设置
Figure GDA0003251432100000165
对于一个查询关键词集合KW′,数据用户生成一个查询向量Q,每个元素Q(j)表示预定义的关键词kwj是否出现在KW′中。如果kwj不在KW′中,设置Q(j)=0;否则,设置
Figure GDA0003251432100000166
然后,Q依据如下规则分裂成两个向量Q′,Q″:如果
Figure GDA0003251432100000167
Q′(j)和Q″(j)均设置为随机数,即Q′(j)+Q″(j)=Q(j);如果
Figure GDA0003251432100000168
Q′(j)=Q″(j)=Q(j)。然后,使用
Figure GDA0003251432100000169
加密(Q′,Q″)获得
Figure GDA00032514321000001610
数据用户将(TKW′,EQ)提交给云服务器作为关键词陷门。
9.检索匹配文件和外包计算
云服务器从数据用户接收到查询请求后,它将通过以下两个阶段检索数据拥有者的加密文件来查找匹配文档:测试阶段和转换阶段,如图7所示。
在测试阶段,如果满足以下两个条件,加密文件将被视为匹配:1)数据用户的属性集合满足搜索文件的访问策略。2)关键词陷门中搜索到的关键词集合是安全索引中的关键词集合的子集。
在转换阶段,原始密文将被改变为另一种形式,使得数据用户能够使用轻量级解密算法来解密该消息。
Test&Transform(CT,TKW′,ζid)→CTout/⊥。
(1)Test(CT,TKW′,ζid)→1/0,假设CT与关键词集合KW,TKW′与关键词集合KW′相关联,且ζid是用户的匿名身份。
验证与TKW′相关的S是否满足与CT相关的(A,ρ)。若不满足,则输出0。否则,定义I={i:ρ(i)∈S},
Figure GDA00032514321000001611
存在一组常量{wi∈Zp}i∈I使得∑i∈IwiAi=(1,0,...0)。
计算
Figure GDA00032514321000001612
Figure GDA0003251432100000171
根据用户的匿名身份ζid,云服务器查询用户列表UL的参数
Figure GDA0003251432100000172
然后,云服务器验证以下等式是否成立,
Figure GDA0003251432100000173
如果等式成立,输出1来表示
Figure GDA0003251432100000174
否则,输出0。
(2)Transform(CT,TKW′)→CTout/⊥。如果Test算法的输出为0,则此算法输出⊥。否则输出CTout=(C,Γ,Λ,CM)。CTout是转换后的密文,并且将被发给数据用户。
Test&Transform算法如上所述,此外云服务器需要如下计算相关性分数。如果Test算法的输出为0,云服务器设置相关性分数RS=0。否则,云服务器使用如下公式计算相关性分数RS:
Figure GDA0003251432100000175
10.Top-k排序
根据Test&Transform算法的结果,如果匹配文件的数量少于k个,云服务器将全部匹配文件返回给用户。否则,云服务器对相关性分数进行排序,并返回分数最高的k个文件。对于每个返回的文件,返回信息包含转换后的密文CTout,验证密钥VKM和相关性分数RS。
11.文件恢复和验证
在这个算法中,数据用户将使用一个简单的求幂和除法操作来恢复明文文件。它比传统的细粒度访问控制的可搜索加密方案效率更高。此外,使用验证密钥VKM,数据用户能够测试转换密文CTout的正确性。
Dec(CTout,SKid,S,VKM)→M/⊥。计算
Figure GDA0003251432100000176
然后,验证等式H(Υ||CM)=VKM是否成立。若等式不成立,返回⊥。否则,计算kSE=h(Υ),并通过计算
Figure GDA0003251432100000177
恢复明文文档。
12.密钥一致性检测与恶意用户追踪
叛逆者追踪如图8所示。如果发现私钥被滥用,KGC能够从密钥中恢复恶意用户的身份。在使用Trace算法之前,KGC先运行KeySanityCheck算法测试被滥用的密钥是否具有一致性(即是否是一个功能完善的合法私钥)。
KeySanityCheck(SKid,S)→1/0。如果满足以下条件,私钥SKid,S就能通过密钥一致性检测。
(1)SKid,S是(D1,D′1,D2,D′2,{D3,x}x∈S,D4,xid)的形式。其中xid,D4
Figure GDA0003251432100000181
D1,D2,D2,D3,x∈G。
(2)e(g,D′2)=e(gλ,D2)
(3)
Figure GDA0003251432100000182
(4)
Figure GDA0003251432100000183
如果SKid,S通过密钥一致性检测,算法输出1。否则输出0。
Trace(SKid,S)→id/⊥。如果KeySanityCheck算法的输出为0,意味着SKid,S不具有一致性,Trace算法将输出⊥。否则SKid,S格式正确,Trace算法将通过以下计算识别叛逆者。计算
Figure GDA0003251432100000184
并通过计算
Figure GDA0003251432100000185
恢复恶意用户的真实身份id。
13.用户召回
当追踪到叛逆者时,系统能够召回该恶意用户的搜索和解密能力。本发明中的召回过程可以分为四个步骤,如图9所示。
(1)KGC给CS发送一个召回请求(例如,召回匿名身份为
Figure GDA0003251432100000186
的用户)和主私钥的签名Sig(Msg,MSK)。
(2)CS验证召回请求的签名。
(3)如果签名验证正确,CS将把参数
Figure GDA0003251432100000187
设置成符号⊥,表示召回。
(4)给KGC发送一个召回确认信息。
14.访问策略
定义(访问结构)令{P1,P2,...,Pn}是一组成员。集合
Figure GDA0003251432100000191
是单调的,如果
Figure GDA0003251432100000192
C,若
Figure GDA0003251432100000193
Figure GDA0003251432100000194
那么
Figure GDA0003251432100000195
访问结构(单调的访问结构)是非空集合{P1,P2,...,Pn}的集合(或单调集合)
Figure GDA0003251432100000196
即为,
Figure GDA0003251432100000197
Figure GDA0003251432100000198
中的集合为授权集合。不在
Figure GDA0003251432100000199
中的集合为非授权集合。
ABE方案中的属性取决于各个成员的角色。因此,一个访问结构
Figure GDA00032514321000001910
包含授权属性集合。任何单调访问结构都可以用线性秘密共享方案表示。
定义(线性秘密共享方案(LSSS))如果满足以下条件,定义在一组成员
Figure GDA00032514321000001911
上的密钥共享方案Π是线性的(在Zp上):
每个成员的贡献构成Zp上的一个向量
存在一个l行,n列的矩阵A,称为Π的共享生成矩阵。对于所有的i=1,...,l,矩阵A的第i行被一个成员ρ(i)(ρ是一个从{1,...,l}到
Figure GDA00032514321000001912
的函数)标记。考虑列向量v={s,r2,...,rn},其中s∈Zp是要被共享的秘密,且s,r2,...,rn∈Zp是随机选择的,那么Av是根据Π共享的秘密s的l向量。(Av)i属于成员ρ(i)。
根据定义,每个LSSS都有线性重构属性。假设对于访问结构
Figure GDA00032514321000001913
Π是一个LSSS。令
Figure GDA00032514321000001914
是任意授权集合,且定义
Figure GDA00032514321000001915
为I={i:ρ(i)∈S}。那么,存在常数{ωi∈Zp}i∈I,若根据Π,{λi}是任意秘密s的有效共享,则∑i∈Iωiλi=s。此外,在共享生成矩阵A中,可以在多项式时间内找到常数{ωi}。对于未授权的集合,不存在该常数。本发明中,LSSS矩阵(A,ρ)将被用于表示与密文相关的访问策略。
15.双线性群与假设
Figure GDA00032514321000001916
为输入安全参数κ的算法,输出一个素数双线性映射参数组(p,g,G,GT,e),其中G和GT是素数p的乘法循环群,g是G的随机生成元。e:G G GT是双线性映射。双线性映射e有三个属性:(1)双线性:
Figure GDA00032514321000001917
v∈G和a,b∈Zp,有e(ua,vb)=e(uv)ab。(2)非退化性:e(g,g)≠1。(3)可计算性:可以高效计算出e。
16.全同态加密
全同态加密(FHE)方案包括如下算法。
(1)密钥生成。输入安全参数κ,算法输出一个公钥,私钥对(pk,sk)。
(2)加密。输入明文m和公钥pk,算法输出密文c=HEncpk(m)。
(3)解密。输入密文c和私钥sk,算法输出明文m=HDecsk(c)。
(4)同态加法。输入两个密文c1=HEncpk(m1)和c2=HEncpk(m2),算法输出一个密文
Figure GDA0003251432100000201
由此,HDecsk(c)=m1+m2,其中
Figure GDA0003251432100000202
为全同态加法。
(5)同态乘法。输入两个密文c1=HEncpk(m1)和c2=HEncpk(m2),算法输出一个密文
Figure GDA0003251432100000203
由此,HDecsk(c)=m1·m2,其中
Figure GDA0003251432100000204
为全同态加法。
表1为变量符号的描述说明:
表1
Figure GDA0003251432100000205
Figure GDA0003251432100000211
现有的安全云存储系统中普遍存在密钥托管问题,密钥生成中心生成用户私钥,从而可以解密任意用户的信息,存在极大地安全隐患。本发明设计了无密钥托管的安全多关键词排序检索系统,具有高效性。用户的私钥通过密钥生成中心和云平台的交互协议生成,利用全同态加密技术,使得双方均无法独立获取用户的私钥,解决了密钥托管问题。实现了可设置偏好分数的多关键词子集搜索,查询关键词的顺序变化不影响搜索结果。云服务器根据搜索请求返回相关度最高的k个文档。本发明实现了多用户的安全数据共享,数据拥有者的加密数据可以授权给多个用户进行解密和安全检索。如果用户出售授权私钥以获取经济利益,系统可以追踪出恶意用户的真实身份并撤销其权限。
以上所述的仅是本发明的优选实施方式,本发明不限于以上实施方式。可以理解,本领域技术人员在不脱离本发明的构思和前提下直接导出或联想到的其他改进和变化,均应认为包含在本发明的保护范围之内。

Claims (8)

1.一种无密钥托管的安全多关键词排序检索系统,其特征在于,包括:
密钥生成中心,用于和云服务器进行交互式计算共同生成系统的公共参数和数据用户的属性公钥/私钥对;数据用户的身份标识和属性集合被隐式地嵌入在所述属性公钥/私钥对中;
云服务器,用于存储数据拥有者的文件和授权数据用户列表,并响应数据用户的搜索查询请求;
数据拥有者,在文件存储在云服务器之前,从文件中提取关键词集合KW并为其中的每个关键词定义权重,然后将关键词集合加密成安全索引,同时加密文件,制定访问策略嵌入到密文中,将安全索引和密文发送给云服务器存储;
数据用户,定义搜索关键词集合KW′并为其中的每个关键词定义偏好分数,使用数据用户的属性私钥生成陷门来搜索存储在云服务器中的加密文件,如果数据用户的属性集合满足文件中定义的访问策略,则云服务器响应数据用户的搜索查询请求并查找匹配文件,当KW′是KW的子集时,相应的文件为匹配文件,云服务器计算陷门和匹配文件的相关度分数,并根据相关度分数对所有的匹配文件进行排序,最后将相关度最高的k个匹配文件返回给数据用户,数据用户解密文件获取明文;
所述密钥生成中心和云服务器交互生成系统的公共参数PP,并将系统公共参数PP分发给数据拥有者和数据用户,具体如下:
设置安全参数κ作为输入,密钥生成中心随机选取元素
Figure FDA0003251432090000011
f∈RG,
Figure FDA0003251432090000012
G是素数p的乘法循环群,
Figure FDA0003251432090000013
是密钥空间,计算
Figure FDA0003251432090000014
e是双线性对,g是G中的随机生成元,密钥生成中心的公共参数和主密钥分别为PP1=(f,g,gβ,gλ,Y1)和MSK1=(α1,β,λ,k1,k2);
设置安全参数κ作为输入,云服务器随机选取元素
Figure FDA0003251432090000015
并计算
Figure FDA0003251432090000016
云服务器的公开参数和主密钥分别为PP2=Y2和MSK2=α2
计算Y=Y1·Y2,Y=e(g,g)α,其中α=α12,且α对于密钥生成中心和云服务器都是未知的,PP=(f,g,gβ,gλ,Y)为系统的公共参数。
2.根据权利要求1所述的安全多关键词排序检索系统,其特征在于,当一个数据用户申请加入系统时,密钥生成中心根据数据用户的身份为其分配一个属性集合S,属性集合S描述了数据用户身份标识id的特征,所述密钥生成中心和云服务器通过交互式计算运行KeyGen算法生成数据用户的属性公钥PKid,S和私钥SKid,S,数据用户的身份标识id和属性集合S被隐式地嵌入到密钥中,具体如下:
步骤S11:云服务器选择一个全同态加密公钥/私钥对(hpk,hsk),其中hpk被公开,hsk由云服务器秘密保存,然后,云服务器给密钥生成中心发送W1=HEnchpk2);
步骤S12:密钥生成中心计算
Figure FDA0003251432090000021
并发送给云服务器,其中,
Figure FDA0003251432090000022
为全同态加法;
步骤S13:云服务器恢复W3=HDechsk(W2)=(α12)β=αβ,云服务器选择一个随机数
Figure FDA0003251432090000023
计算
Figure FDA0003251432090000024
并发给密钥生成中心;
步骤S14:密钥生成中心选取随机元素
Figure FDA0003251432090000025
并计算ζid=SEnck1(id),δ=SEnck2id||θ),然后密钥生成中心计算
Figure FDA0003251432090000026
W6=gβt,并发送给云服务器;
步骤S15:云服务器计算
Figure FDA0003251432090000027
并将D1发送给数据用户;
步骤S16:密钥生成中心选取随机元素
Figure FDA0003251432090000028
并计算D′1=δ,D2=gt,D′2=gλt
Figure FDA0003251432090000029
D3,x=H(x)(λ+δ)t,Yid=Yxid
数据用户的属性私钥和公钥分别为SKid,S=(D1,D′1,D2,D′2,{D3,x}x∈S,D4,xid)和PKid,S=Yid,数据用户的匿名身份ζid也返回给数据用户。
3.根据权利要求2所述的安全多关键词排序检索系统,其特征在于,如果数据用户的属性私钥被滥用,密钥生成中心测试被滥用的属性私钥是否具有一致性,然后从属性密钥中恢复恶意用户的身份,具体如下:
KeySanityCheck(SKid,S)→1/0:测试是否满足以下条件:
被滥用的属性私钥SKid,S是(D1,D′1,D2,D′2,{D3,x}x∈S,D4,xid)的形式,其中
Figure FDA0003251432090000031
D1,D2,D′2,D3,x∈G;e(g,D′2)=e(gλ,D2);
Figure FDA0003251432090000032
Figure FDA0003251432090000033
如果SKid,S通过密钥一致性检测,KeySanityCheck算法输出1,否则输出0;
Trace(SKid,S)→id/⊥:如果KeySanityCheck算法的输出为0,表示被滥用的SKid,S不具有一致性,Trace算法将输出⊥;否则SKid,S格式正确,Trace算法将通过以下计算识别叛逆者:计算
Figure FDA0003251432090000034
并通过计算
Figure FDA0003251432090000035
恢复恶意用户的真实身份标识id。
4.根据权利要求3所述的安全多关键词排序检索系统,其特征在于,当识别到叛逆者时,系统召回恶意用户的搜索和解密能力,召回包括以下步骤:
步骤S21:密钥生成中心给云服务器发送一个召回请求和主私钥的签名Sig(Msg,MSK);
步骤S22:云服务器验证召回请求的签名;
步骤S23:如果签名验证正确,云服务器把恶意用户在授权数据用户列表中的参数设置成符号⊥,表示召回;
步骤S24:给密钥生成中心发送一个召回确认信息。
5.根据权利要求1所述的安全多关键词排序检索系统,其特征在于,在文件M存储在云服务器之前,数据拥有者使用以下步骤处理文件:
步骤S31:数据拥有者从文件M中提取关键词KW,其中
Figure FDA0003251432090000036
并且
Figure FDA0003251432090000037
KWTotal是密钥生成中心定义的一个总的关键词集合,
Figure FDA0003251432090000038
数据拥有者为KW设置关键词权重
Figure FDA0003251432090000039
数据拥有者随机选择秘密值
Figure FDA00032514320900000310
并随机选择向量
Figure FDA00032514320900000311
用来共享秘密值s,对于i∈[l],计算
Figure FDA00032514320900000312
其中Ai是A的第i行对应的向量;A是一个l×n的矩阵;
步骤S32:数据拥有者随机选择
Figure FDA00032514320900000313
计算kSE=h(Υ),使用加密安全对称加密算法,使用私钥kSE加密文件M,文件密文
Figure FDA00032514320900000314
步骤S33:生成验证密钥VKM=H(Υ||CM),用来验证云服务器计算的结果是否正确;
步骤S34:构造一个l1维多项式
Figure FDA0003251432090000041
使得
Figure FDA0003251432090000042
是等式
Figure FDA0003251432090000043
的l1个根;随机选择
Figure FDA0003251432090000044
并通过计算C=Υ·e(g,g)αs,C0=gs,C′0=gλs
Figure FDA0003251432090000045
Figure FDA0003251432090000046
来生成安全索引;
步骤S35:将密文CT和验证密钥VKM外包给云服务器,数据拥有者指定的访问策略(A,ρ)嵌入密文中,ρ是将A的每行与属性关联的函数,其中
Figure FDA0003251432090000047
数据拥有者生成一个关键词向量I,其中每个元素I(j)表示预定义的关键词kwj是否在KW中,如果kwj不在KW中,设置I(j)=0;否则,设置
Figure FDA0003251432090000048
I依据如下规则分裂成两个向量I′,I″:如果
Figure FDA0003251432090000049
I′(j)=I″(j)=I(j);如果
Figure FDA00032514320900000410
I′(j)和I″(j)都设置为随机数,满足I′(j)+I″(j)=I(j),使用
Figure FDA00032514320900000411
加密(I′,I″)获得加密后的索引
Figure FDA00032514320900000412
Figure FDA00032514320900000413
是两个
Figure FDA00032514320900000414
的可逆矩阵,
Figure FDA00032514320900000415
是集合KWTotal的基数;
将密文CT,验证密钥VKM和加密索引EI发送给云服务器。
6.根据权利要求5所述的安全多关键词排序检索系统,其特征在于,数据用户指定查询关键词集合KW′,其中
Figure FDA00032514320900000416
并且
Figure FDA00032514320900000417
数据拥有者为KW′设置偏好分数
Figure FDA00032514320900000418
如果数据用户请求查询包含查询关键词集合KW′的文件,则使用数据用户的属性私钥生成陷门,数据用户将陷门提交给云服务器,具体如下:
数据拥有者随机选择
Figure FDA00032514320900000419
计算
Figure FDA00032514320900000420
T′1=D′1
Figure FDA00032514320900000421
Figure FDA00032514320900000422
设置
Figure FDA0003251432090000059
对于一个查询关键词集合KW′,数据用户生成一个查询向量Q,每个元素Q(j)表示预定义的关键词kwj是否出现在KW′中,如果kwj不在KW′中,设置Q(j)=0;否则,设置
Figure FDA0003251432090000051
Q依据如下规则分裂成两个向量Q′,Q″:如果
Figure FDA0003251432090000052
Q′(j)和Q″(j)均设置为随机数,Q′(j)+Q″(j)=Q(j);如果
Figure FDA0003251432090000053
Q′(j)=Q″(j)=Q(j),使用
Figure FDA0003251432090000054
加密(Q′,Q″)获得
Figure FDA0003251432090000055
数据用户将(TKW′,EQ)提交给云服务器作为关键词陷门。
7.根据权利要求6所述的安全多关键词排序检索系统,其特征在于,云服务器从数据用户接收到搜索查询请求后,通过以下两个阶段检索数据拥有者的加密文件来查找匹配文件:
测试阶段,当数据用户的属性集合满足搜索文件的访问策略并且陷门中搜索到的关键词集合是安全索引中的关键词集合的子集,加密文件被视为匹配;
转换阶段,原始密文被转换为另一种形式,使得数据用户能够使用轻量级解密算法来解密文件;
具体如下:
Test(CT,TKW′id)→1/0:假设密文CT与关键词集合KW,TKW′与关键词集合KW'相关联,且ζid是数据用户的匿名身份;
验证与TKW′相关的数据用户属性集合S是否满足与CT相关的访问策略(A,ρ),若不满足,则输出0,否则,定义I={i:ρ(i)∈S},
Figure FDA0003251432090000056
存在一组常量{wi∈Zp}i∈I使得∑i∈IwiAi=(1,0,...0);
计算
Figure FDA0003251432090000057
Figure FDA0003251432090000058
根据数据用户的匿名身份ζid,云服务器验证数据用户是否在授权数据用户列表中,如果在,输出1来表示
Figure FDA0003251432090000061
否则,输出0;
Transform(CT,TKW′)→CTout/⊥:如果Test算法的输出为0,则Transform算法输出⊥,否则输出CTout=(C,Γ,Λ,CM),CTout是转换后的密文;
如果Test算法的输出为0,云服务器设置相关性分数RS=0,否则,云服务器使用如下公式计算相关性分数RS:
Figure FDA0003251432090000062
云服务器将转换后的密文CTout,验证密钥VKM和相关性分数RS发送给数据用户。
8.根据权利要求7所述的安全多关键词排序检索系统,其特征在于,数据用户使用求幂和除法操作来恢复明文文件,并使用验证密钥VKM测试转换密文CTout的正确性,具体如下:
Dec(CTout,SKid,S,VKM)→M/⊥:计算
Figure FDA0003251432090000063
然后,验证等式H(Υ||CM)=VKM是否成立,若等式不成立,返回⊥;否则,计算kSE=h(Υ),并通过计算
Figure FDA0003251432090000064
恢复明文文档。
CN201810318718.3A 2018-02-22 2018-04-11 无密钥托管的安全多关键词排序检索系统 Active CN108632032B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2018101534131 2018-02-22
CN201810153413 2018-02-22

Publications (2)

Publication Number Publication Date
CN108632032A CN108632032A (zh) 2018-10-09
CN108632032B true CN108632032B (zh) 2021-11-02

Family

ID=63705075

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810318718.3A Active CN108632032B (zh) 2018-02-22 2018-04-11 无密钥托管的安全多关键词排序检索系统

Country Status (1)

Country Link
CN (1) CN108632032B (zh)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10984052B2 (en) * 2018-11-19 2021-04-20 Beijing Jingdong Shangke Information Technology Co., Ltd. System and method for multiple-character wildcard search over encrypted data
CN111339050B (zh) * 2018-12-03 2023-07-18 国网宁夏电力有限公司信息通信公司 一种基于大数据平台集中安全审计的方法及系统
CN110134718B (zh) * 2019-03-21 2023-07-07 西安电子科技大学 一种基于属性加密的支持多关键字的模糊搜索方法
CN110138561B (zh) * 2019-03-22 2021-09-17 西安电子科技大学 基于cp-abe自动校正的高效密文检索方法、云计算服务系统
CN110222012B (zh) * 2019-06-08 2022-04-19 西安电子科技大学 单一用户环境下基于细粒度排序的数据密文查询方法
CN110222081B (zh) * 2019-06-08 2022-04-19 西安电子科技大学 多用户环境下基于细粒度排序的数据密文查询方法
CN110427771B (zh) * 2019-06-25 2021-04-13 西安电子科技大学 一种检索模式隐藏的可搜索加密方法、云服务器
CN110445756B (zh) * 2019-07-04 2021-07-09 中国电子科技集团公司第三十研究所 云存储中可搜索加密审计日志的实现方法
CN110413652B (zh) * 2019-07-05 2022-06-07 华侨大学 一种基于边缘计算的大数据隐私化检索方法
CN110602064A (zh) * 2019-08-29 2019-12-20 河海大学 一种支持多关键字搜索的基于身份加密方法与系统
CN110636070B (zh) * 2019-09-26 2021-08-13 支付宝(杭州)信息技术有限公司 数据发送方法、数据查询方法、装置、电子设备和系统
CN110807141A (zh) * 2019-11-04 2020-02-18 北京联想协同科技有限公司 一种数据搜索方法、设备以及可读存储介质
CN110851481B (zh) * 2019-11-08 2022-06-28 青岛大学 一种可搜索加密方法、装置、设备及可读存储介质
CN111159352B (zh) * 2019-12-31 2023-07-07 山东齐鲁知识产权交易中心有限公司 一种支持多关键词加权检索和结果排序且可验证的加解密方法
CN113127761A (zh) * 2019-12-31 2021-07-16 中国科学技术信息研究所 用于科技要素检索的智能排序方法、电子设备和存储介质
CN111327620B (zh) * 2020-02-27 2021-04-27 福州大学 云雾计算框架下的数据安全溯源及访问控制系统
CN111404679B (zh) * 2020-03-10 2023-08-08 上海市大数据中心 一种面向大数据的安全认证的密文检索方法
CN111431898B (zh) * 2020-03-23 2022-06-07 齐鲁工业大学 用于云协助物联网的带搜索的多属性机构属性基加密方法
CN111447209B (zh) * 2020-03-24 2021-04-06 西南交通大学 一种黑盒可追踪密文策略属性基加密方法
CN113626831B (zh) * 2020-05-08 2024-04-30 西安电子科技大学 一种云中支持隐私保护和解密的cp-abe方法
CN111756722B (zh) * 2020-06-18 2022-07-22 福建师范大学 一种无密钥托管的多授权属性基加密方法和系统
CN111859425B (zh) * 2020-07-21 2023-04-18 西南交通大学 一种基于属性的通配符可搜索加密方法
CN111970106B (zh) * 2020-08-19 2021-11-05 北京邮电大学 一种格上支持全同态的短密文属性基加密方法及系统
CN112118257B (zh) * 2020-09-17 2023-04-07 中国人民解放军31008部队 一种安全增强的基于公钥加密的关键词搜索方法
CN112118104A (zh) * 2020-09-17 2020-12-22 中国人民解放军31008部队 一种安全增强的基于公钥加密的连接关键词搜索方法
CN112287368B (zh) * 2020-10-29 2024-02-13 重庆大学 一种基于格上属性基的云存储可搜索加密方法
CN112257096B (zh) * 2020-11-23 2022-09-27 中电万维信息技术有限责任公司 一种用于云存储密文加密数据的搜索方法
CN112804052B (zh) * 2020-12-14 2022-06-10 重庆电子工程职业学院 一种基于合数阶群的用户身份加密方法
CN112733193B (zh) * 2021-01-22 2023-04-07 福州大学 基于时间控制可审计匿名的谓词检索系统及方法
CN112765669B (zh) * 2021-02-01 2023-04-18 福州大学 基于时间授权的正则语言可搜索加密系统
CN112989375B (zh) * 2021-03-05 2022-04-29 武汉大学 一种分级优化加密无损隐私保护方法
CN113992397B (zh) * 2021-10-26 2022-10-21 电子科技大学 一种高效的支持差异化等式测试的公钥加密方法
CN114499887B (zh) * 2022-02-15 2024-04-26 北京无字天书科技有限公司 签名密钥生成及相关方法、系统、计算机设备和存储介质
CN114826703B (zh) * 2022-04-11 2024-04-05 江苏大学 基于区块链的数据搜索细粒度访问控制方法及系统
CN114726522B (zh) * 2022-04-24 2024-02-20 中国传媒大学 一种保护双方隐私的不经意可搜索加密方法
CN115174568B (zh) * 2022-06-23 2023-05-16 南京信息工程大学 一种基于属性的密文检索方法
CN117077179B (zh) * 2023-10-11 2024-01-02 中国移动紫金(江苏)创新研究院有限公司 基于差分隐私排序的可搜索加密方法、装置、设备及介质
CN117640255B (zh) * 2024-01-25 2024-04-09 齐鲁工业大学(山东省科学院) 防诬陷可搜索的物联网数据共享方法及系统

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9342705B1 (en) * 2014-01-13 2016-05-17 Symantec Corporation Systems and methods for searching shared encrypted files on third-party storage systems
US10169447B2 (en) * 2014-02-24 2019-01-01 Entefy Inc. System and method of message threading for a multi-format, multi-protocol communication system
CN104408177B (zh) * 2014-12-15 2017-08-25 西安电子科技大学 基于云文档系统的密文检索方法
JP6419633B2 (ja) * 2015-04-09 2018-11-07 株式会社日立ソリューションズ 検索システム
US9894042B2 (en) * 2015-07-24 2018-02-13 Skyhigh Networks, Inc. Searchable encryption enabling encrypted search based on document type
US9633219B2 (en) * 2015-08-26 2017-04-25 International Business Machines Corporation Providing secure indexes for searching encrypted data
US20170097959A1 (en) * 2015-10-05 2017-04-06 Yahoo! Inc. Method and system for searching in a person-centric space
CN105681280B (zh) * 2015-12-29 2019-02-22 西安电子科技大学 一种云环境中基于中文的可搜索加密方法
CN106407822B (zh) * 2016-09-14 2019-06-18 华南理工大学 一种关键词、多关键词可搜索加密方法和系统
CN106407447A (zh) * 2016-09-30 2017-02-15 福州大学 一种加密云数据下基于Simhash的模糊排序搜索方法
CN107491497B (zh) * 2017-07-25 2020-08-11 福州大学 支持任意语言查询的多用户多关键词排序可搜索加密系统

Also Published As

Publication number Publication date
CN108632032A (zh) 2018-10-09

Similar Documents

Publication Publication Date Title
CN108632032B (zh) 无密钥托管的安全多关键词排序检索系统
CN111835500B (zh) 基于同态加密与区块链的可搜索加密数据安全共享方法
Li et al. Full verifiability for outsourced decryption in attribute based encryption
CN112019591B (zh) 一种基于区块链的云数据共享方法
CN107491497B (zh) 支持任意语言查询的多用户多关键词排序可搜索加密系统
Yang et al. Efficient traceable authorization search system for secure cloud storage
CN107256248B (zh) 云存储安全中基于通配符的可搜索加密方法
CN113364600B (zh) 基于无证书的云存储数据完整性公共审计方法
CN107154845B (zh) 一种基于属性的bgn型密文解密外包方案
Tian et al. Policy-based chameleon hash for blockchain rewriting with black-box accountability
CN111447209B (zh) 一种黑盒可追踪密文策略属性基加密方法
Li et al. Attribute-based keyword search and data access control in cloud
CN107547530A (zh) 移动云环境下基于属性的在线/离线关键字搜索方法及其云计算应用系统
CN111310214A (zh) 一种可防密钥滥用的属性基加密方法及系统
Deng et al. Policy-based broadcast access authorization for flexible data sharing in clouds
Vaanchig et al. Constructing secure‐channel free identity‐based encryption with equality test for vehicle‐data sharing in cloud computing
Ling et al. A general two-server framework for ciphertext-checkable encryption against offline message recovery attack
CN108920968B (zh) 一种基于连接关键词的文件可搜索加密方法
CN114629640B (zh) 一种解决密钥托管问题的白盒可追责属性基加密系统及其方法
Cui et al. Towards Multi-User, Secure, and Verifiable $ k $ NN Query in Cloud Database
CN116318663A (zh) 一种基于隐私保护的多策略安全密文数据共享方法
CN113868450B (zh) 一种基于区块链的遥感影像安全检索方法
JP5799635B2 (ja) 暗号データ検索システム、装置、方法及びプログラム
Song et al. Traceable and privacy-preserving non-interactive data sharing in mobile crowdsensing
CN115834067A (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