无密钥托管的安全多关键词排序检索系统的制作方法

文档序号:15624621发布日期:2018-10-09 22:40阅读:238来源:国知局

本发明涉及检索技术领域,具体涉及一种无密钥托管的安全多关键词排序检索系统。



背景技术:

随着新型计算模式的发展,云计算已经成为人们最关注的一种技术,它能够利用共享资源来提供高质量的按需服务,因此越来越多的公司和个人倾向于将数据存储外包给云服务器。尽管云计算具有巨大的经济和技术优势,但是用户对安全和隐私问题的担忧,已经成为阻碍数据存储在公有云基础架构中被广泛应用的突出问题。加密是保护远程存储数据隐私的基本方法,然而,由于密文的不可读性,如何有效地对密文进行关键词搜索变得更加困难。可搜索加密(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,β,f∈rg,g是素数p的乘法循环群,是密钥空间,计算e是双线性对,密钥生成中心的公共参数和主密钥分别为pp1=(f,g,gβ,gλ,y1)和msk1=(α1,β,λ,k1,k2);

设置安全参数κ作为输入,云服务器随机选取元素并计算云服务器的公开参数和主密钥分别为pp2=y2和msk2=α2;

计算y=y1·y2,y=e(g,g)α,其中α=α1+α2,且α对于密钥生成中心和云服务器都是未知的,pp=(f,g,gβ,gλ,y)为系统的公共参数。

进一步地,当一个数据用户申请加入系统时,密钥生成中心根据数据用户的身份为其分配一个属性集合s,属性集合s描述了数据用户身份标识id的特征,所述密钥生成中心和云服务器通过交互式计算运行keygen算法生成数据用户的属性公钥pkid,s和私钥skid,s,数据用户的身份标识id和属性集合s被隐式地嵌入到密钥中,具体如下:

步骤s11:云服务器选择一个全同态加密公钥/私钥对(hpk,hsk),其中hpk被公开,hsk由云服务器秘密保存,然后,云服务器给密钥生成中心发送w1=henchpk(α2);步骤s12:密钥生成中心计算并发送给云服务器,其中,为全同态加法;

步骤s13:云服务器恢复w3=hdechsk(w2)=(α1+α2)β=αβ,云服务器选择一个随机数计算并发给密钥生成中心;

步骤s14:密钥生成中心选取随机元素t,并计算ζid=senck1(id),

δ=senck2(ζid||θ),然后密钥生成中心计算w6=gβt,并发送给云服务器;

步骤s15:云服务器计算并将d1发送给数据用户;

步骤s16:密钥生成中心选取随机元素xid,并计算d′1=δ,d2=gt

d′2=gλtd3,x=h(x)(λ+δ)t

数据用户的属性私钥和公钥分别为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,d1,d2,d′2,d3,x∈g;e(g,d′2)=e(gλ,d2);

如果skid,s通过密钥一致性检测,keysanitycheck算法输出1,否则输出0;

trace(skid,s)→id/⊥:如果keysanitycheck算法的输出为0,表示被滥用的skid,s不具有一致性,trace算法将输出⊥;否则skid,s格式正确,trace算法将通过以下计算识别叛逆者:计算并通过计算恢复恶意用户的真实身份标识id。

进一步地,当识别到叛逆者时,系统召回恶意用户的搜索和解密能力,召回包括以下步骤:

步骤s21:密钥生成中心给云服务器发送一个召回请求和主私钥的签名sig(msg,msk);

步骤s22:云服务器验证召回请求的签名;

步骤s23:如果签名验证正确,云服务器把恶意用户在授权数据用户列表中的参数设置成符号⊥,表示召回;

步骤s24:给密钥生成中心发送一个召回确认信息。

进一步地,在文件m存储在云服务器之前,数据拥有者使用以下步骤处理文件:步骤s31:数据拥有者从文件m中提取关键词kw,其中并且kwtotal是密钥生成中心定义的一个总的关键词集合,数据拥有者为kw设置关键词权重数据拥有者随机选择秘密值并随机选择向量用来共享秘密值s,对于i∈[l],计算其中ai是a的第i行对应的向量;a是一个l×n的矩阵;步骤s32:数据拥有者随机选择计算kse=h(υ),使用加密安全对称加密算法,使用私钥kse加密文件m,文件密文

步骤s33:生成验证密钥vkm=h(υ||cm),用来验证外包云服务器计算的结果是否正确;

步骤s34:构造一个l1维多项式使得是等式的l1个根;随机选择并通过计算c=υ·e(g,g)αs,c0=gs,c′0=gλs来生成安全索引;

步骤s35:将密文ct和验证密钥vkm外包给云服务器,数据拥有者指定的访问策略(a,ρ)嵌入密文中,ρ是将a的每行与属性关联的函数,其中

数据拥有者生成一个关键词向量i,其中每个元素i(j)表示预定义的关键词kwj是否在kw中,如果kwj不在kw中,设置i(j)=0;否则,设置

i依据如下规则分裂成两个向量i′,i″:如果i′(j)=i″(j)=i(j);如果i′(j)和i″(j)都设置为随机数,满足i′(j)+i″(j)=i(j),使用加密(i′,i″)获得加密后的索引是两个的可逆矩阵,是集合kwtotal的基数;

将密文ct,验证密钥vkm和加密索引ei发送给云服务器。

进一步地,数据用户指定查询关键词集合kw′,其中并且数据拥有者为kw′设置偏好分数如果数据用户请求查询包含查询关键词集合kw′的文件,则使用数据用户的属性私钥生成陷门,数据用户将陷门提交给云服务器,具体如下:

数据拥有者随机选择u,计算t′1=d′1,设置

对于一个查询关键词集合kw′,数据用户生成一个查询向量q,每个元素q(j)表示预定义的关键词kwj是否出现在kw′中,如果kwj不在kw′中,设置q(j)=0;否则,设置

q依据如下规则分裂成两个向量q′,q″:如果q′(j)和q″(j)均设置为随机数,q′(j)+q″(j)=q(j);如果q′(j)=q″(j)=q(j),使用加密(q′,q″)获得

数据用户将(tkw′,eq)提交给云服务器作为关键词陷门。

进一步地,云服务器从数据用户接收到搜索查询请求后,通过以下两个阶段检索数据拥有者的加密文件来查找匹配文件:

测试阶段,当数据用户的属性集合满足搜索文件的访问策略并且陷门中搜索到的关键词集合是安全索引中的关键词集合的子集,加密文件被视为匹配:

转换阶段,原始密文被转换为另一种形式,使得数据用户能够使用轻量级解密算法来解密文件;

具体如下:

test(ct,tkw′,ζid)→1/0:假设密文ct与关键词集合kw,tkw′与关键词集合kw'相关联,且ζid是数据用户的匿名身份;

验证与tkw′相关的数据用户属性集合s是否满足与ct相关的访问策略(a,ρ),若不满足,则输出0,否则,定义i={i:ρ(i)∈s},存在一组常量{wi∈zp}i∈i使得∑i∈iwiai=(1,0,...0);

计算

根据数据用户的匿名身份ζid,云服务器验证数据用户是否在授权数据用户列表中,如果在,输出1来表示否则,输出0;

transform(ct,tkw′)→ctout/⊥:如果test算法的输出为0,则transform算法输出⊥,否则输出ctout=(c,γ,λ,cm),ctout是转换后的密文;

如果test算法的输出为0,云服务器设置相关性分数rs=0,否则,云服务器使用如下公式计算相关性分数rs:

云服务器将转换后的密文ctout,验证密钥vkm和相关性分数rs发送给数据用户。进一步地,数据用户使用求幂和除法操作来恢复明文文件,并使用验证密钥vkm测试转换密文ctout的正确性,具体如下:

dec(ctout,skid,s,vkm)→m/⊥:计算然后,验证等式h(υ||cm)=vkm是否成立,若等式不成立,返回⊥;否则,计算kse=h(υ),并通过计算恢复明文文档。

与现有技术相比,本发明具有以下有益效果:

(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.系统建立

系统建立阶段包括两个算法kgc.setup和cs.setup,分别由kgc和cs执行。kgc定义一个总的关键词集合

kgc.setup(κ)→(pp1,msk1)。设置安全参数κ作为输入,kgc随机选取元素α1,β,f∈rg,k1,并计算kgc的公开参数和主密钥为pp1=(f,g,gβ,gλ,y1)和msk1=(α1,β,λ,k1,k2)。

cs.setup(κ)→(pp2,msk2),设置安全参数κ作为输入,cs随机选取元素并计算cs的公开参数和主密钥为pp2=y2和msk2=α2。

然后,计算y=y1·y2,y=e(g,g)α,其中α=α1+α2,且α对于kgc和cs都是未知的。pp=(f,g,gβ,gλ,y)为系统中的公开参数。

2.新用户注册

当一个用户申请加入系统时,kgc根据用户的身份为其分配一个属性集合s。随后,kgc和cs进行交互为用户生成公钥/私钥对。

keygen(msk1,msk2,id,s)→(pkid,s,skid,s)

(1)根据全同态加密方案的要求,cs选择一个全同态加密公钥/私钥对(hpk,hsk),其中hpk被公开,hsk由cs秘密保存。然后,cs给kgc发送w1=henchpk(α2)。

(2)kgc计算并发送给cs。

(3)cs恢复w3=hdechsk(w2)=(α1+α2)β=αβ。然后,cs选择一个随机数计算并发给kgc。

(4)kgc选取随机元素t,并计算ζid=senck1(id),δ=senck2(ζid||θ)。然后kgc计算w6=gβt,并发送给cs。

(5)cs计算并将d1发送给用户。

(6)kgc选取随机元素xid,并计算d′1=δ,d2=gt,d′2=gλtd3,x=h(x)(λ+δ)t

用户的私钥/公钥为skid,s=(d1,d′1,d2,d′2,{d3,x}x∈s,d4,xid)和pkid,s=yid。用户的匿名身份ζid也返回给用户。

3.创建用户列表

本发明中,数据拥有者的加密文件可以被许多数据用户搜索到。用户列表ul由数据拥有者创建并存储在云服务器中。

createul(id,pkid,s)→ul,数据拥有者随机选取当具有用户身份id的新用户被允许在加密文件上进行搜索时,数据拥有者计算并给kgc发送用户身份id。kgc将id转换为匿名身份并返回给数据拥有者。然后,数据拥有者请求云服务器将元组加入ul。

4.knn-se私钥生成

为了实现细粒度访问控制,数据拥有者为不同的访问策略(a,ρ)生成不同的私钥ska,p。

keygen.sk(k,(a,ρ))→ska,ρ。在输入集合kwtotal的基数和访问策略(a,ρ)时,数据拥有者选择两个的可逆矩阵和一个向量访问策略(a,ρ)的对称私钥为

5.knn-se私钥封装

数据拥有者利用密钥封装机制加密密钥ska,ρ,其中访问策略(a,ρ)被嵌入密文中,以实现访问控制。

数据拥有者执行如下操作生成对称私钥ska,ρ的密文

(1)数据拥有者随机选取一个向量用于分享fori∈[l],计算其中ai是对应于a的第i行向量。

(2)数据拥有者随机选取一个元素并设置然后计算

(3)随机选取for1≤i≤n,计算生成安全索引。

(4)发送对称私钥的密文给云服务器。

6.knn-se私钥解封装

当拥有属性集合s的数据用户使用访问策略(a,ρ)申请获取对称私钥密文时。云服务器验证s是否满足(a,ρ)。如果不满足,数据用户的对称私钥解封装请求将被拒绝。否则,云服务器给数据用户发送数据用户使用如下算法解封装对称私钥ska,ρ。

定义i={i:ρ(i)∈s},其中存在一组常数{wi∈zp}i∈i,所以∑i∈iwiai=(1,0,...,0)。数据用户计算

并计算

7.生成安全文件和关键词索引

文件m被上传到云服务器之前,数据拥有者使用以下步骤处理文件。(1)数据拥有者从文件m中提取关键词kw,其中并且为了区分关键词的重要性,数据拥有者为kw设置关键词权重(2)使用加密安全对称加密算法,使用私钥kse加密文件m,其中kse=h(υ),且υ是中随机选择的元素。文件密文表示为cm。(3)生成验证密钥vkm,可以用来验证外包计算的结果。(4)组成员和选择出的关键词集合kw将被加密成安全索引。(5)加密文件和安全索引将被发送给云服务器存储。在此算法中,数据拥有者指定的访问策略将嵌入密文中。加密阶段如图5所示。

enc(m,(a,ρ),kw,ska,ρ)→(ct,vkm,ei)。a是一个l×n的矩阵,且ρ是将a的每行与属性关联的函数。访问策略用(a,ρ)表示。具体算法描述如下。

(1)数据拥有者随机选择秘密值并随机选择向量用来共享秘密值s。对于i∈[l],计算其中ai是a的第i行对应的向量。

(2)数据拥有者随机选择计算kse=h(υ)。然后计算作为文件的密文。

(3)计算验证密钥vkm=h(υ||cm)。该验证密钥可用于测试外包计算结果是否正确。

(4)构造一个l1维多项式使得是等式的l1个根。

(5)随机选择并通过计算c=υ·e(g,g)αs,c0=gs,c′0=gλs,来生成安全索引。

(6)将密文ct和验证密钥vkm外包给云服务器,其中

(7)数据拥有者生成一个关键词向量i,其中每个元素i(j)表示预定义的关键词kwj是否在kw中。如果kwj不在kw中,设置i(j)=0;否则,设置然后,i依据如下规则分裂成两个向量i′,i″:如果i′(j)=i″(j)=i(j);如果i′(j)和i″(j)都设置为随机数,满足i′(j)+i″(j)=i(j)。然后,使用加密(i′,i″)获得加密后的索引

(8)将密文ct,验证密钥vkm和加密索引ei发送给云服务器。

8.生成关键词陷门

数据用户指定查询关键词集合kw′,其中并且为了区分查询关键词的重要性,数据拥有者为kw′设置偏好分数如果数据用户想要查找包含特定关键词集合kw′的文件,则应该使用其私钥生成关键词陷门。数据用户的属性信息也应该加入到陷门中。然后,数据用户将陷门提交给云服务器。陷门生成过程如图6所示。

trapdoor(skid,s,kw′,ska,ρ)→(tkw′,eq)。

数据拥有者随机选择u,计算t′1=d′1,设置

对于一个查询关键词集合kw′,数据用户生成一个查询向量q,每个元素q(j)表示预定义的关键词kwj是否出现在kw′中。如果kwj不在kw′中,设置q(j)=0;否则,设置

然后,q依据如下规则分裂成两个向量q′,q″:如果q′(j)和q″(j)均设置为随机数,即q′(j)+q″(j)=q(j);如果q′(j)=q″(j)=q(j)。然后,使用加密(q′,q″)获得

数据用户将(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},存在一组常量{wi∈zp}i∈i使得∑i∈iwiai=(1,0,...0)。

计算

根据用户的匿名身份ζid,云服务器查询用户列表ul的参数然后,云服务器验证以下等式是否成立,

如果等式成立,输出1来表示否则,输出0。

(2)transform(ct,tkw′)→ctout/⊥。如果test算法的输出为0,则此算法输出⊥。否则输出ctout=(c,γ,λ,cm)。ctout是转换后的密文,并且将被发给数据用户。

test&transform算法如上所述,此外云服务器需要如下计算相关性分数。如果test算法的输出为0,云服务器设置相关性分数rs=0。否则,云服务器使用如下公式计算相关性分数rs:

10.top-k排序

根据test&transform算法的结果,如果匹配文件的数量少于k个,云服务器将全部匹配文件返回给用户。否则,云服务器对相关性分数进行排序,并返回分数最高的k个文件。对于每个返回的文件,返回信息包含转换后的密文ctout,验证密钥vkm和相关性分数rs。

11.文件恢复和验证

在这个算法中,数据用户将使用一个简单的求幂和除法操作来恢复明文文件。它比传统的细粒度访问控制的可搜索加密方案效率更高。此外,使用验证密钥vkm,数据用户能够测试转换密文ctout的正确性。

dec(ctout,skid,s,vkm)→m/⊥。计算然后,验证等式h(υ||cm)=vkm是否成立。若等式不成立,返回⊥。否则,计算kse=h(υ),并通过计算恢复明文文档。

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,d1,d2,d′2,d3,x∈g。

(2)e(g,d′2)=e(gλ,d2)

(3)

(4)

如果skid,s通过密钥一致性检测,算法输出1。否则输出0。

trace(skid,s)→id/⊥。如果keysanitycheck算法的输出为0,意味着skid,s不具有一致性,trace算法将输出⊥。否则skid,s格式正确,trace算法将通过以下计算识别叛逆者。计算并通过计算恢复恶意用户的真实身份id。

13.用户召回

当追踪到叛逆者时,系统能够召回该恶意用户的搜索和解密能力。本发明中的召回过程可以分为四个步骤,如图9所示。

(1)kgc给cs发送一个召回请求(例如,召回匿名身份为的用户)和主私钥的签名sig(msg,msk)。

(2)cs验证召回请求的签名。

(3)如果签名验证正确,cs将把参数设置成符号⊥,表示召回。

(4)给kgc发送一个召回确认信息。

14.访问策略

定义(访问结构)令{p1,p2,...,pn}是一组成员。集合是单调的,如果c,若那么访问结构(单调的访问结构)是非空集合{p1,p2,...,pn}的集合(或单调集合)即为,中的集合为授权集合。不在中的集合为非授权集合。

abe方案中的属性取决于各个成员的角色。因此,一个访问结构包含授权属性集合。任何单调访问结构都可以用线性秘密共享方案表示。

定义(线性秘密共享方案(lsss))如果满足以下条件,定义在一组成员上的密钥共享方案π是线性的(在zp上):

每个成员的贡献构成zp上的一个向量

存在一个l行,n列的矩阵a,称为π的共享生成矩阵。对于所有的i=1,...,l,矩阵a的第i行被一个成员ρ(i)(ρ是一个从{1,...,l}到的函数)标记。考虑列向量v={s,r2,...,rn},其中s∈zp是要被共享的秘密,且s,r2,...,rn∈zp是随机选择的,那么av是根据π共享的秘密s的l向量。(av)i属于成员ρ(i)。

根据定义,每个lsss都有线性重构属性。假设对于访问结构π是一个lsss。令是任意授权集合,且定义为i={i:ρ(i)∈s}。那么,存在常数{ωi∈zp}i∈i,若根据π,{λi}是任意秘密s的有效共享,则∑i∈iωiλi=s。此外,在共享生成矩阵a中,可以在多项式时间内找到常数{ωi}。对于未授权的集合,不存在该常数。本发明中,lsss矩阵(a,ρ)将被用于表示与密文相关的访问策略。15.双线性群与假设

为输入安全参数κ的算法,输出一个素数双线性映射参数组(p,g,g,gt,e),其中g和gt是素数p的乘法循环群,g是g的随机生成元。e:g×g→gt是双线性映射。双线性映射e有三个属性:(1)双线性: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),算法输出一个密文由此,hdecsk(c)=m1+m2,其中为全同态加法。

(5)同态乘法。输入两个密文c1=hencpk(m1)和c2=hencpk(m2),算法输出一个密文由此,hdecsk(c)=m1·m2,其中为全同态加法。

表1为变量符号的描述说明:

表1

现有的安全云存储系统中普遍存在密钥托管问题,密钥生成中心生成用户私钥,从而可以解密任意用户的信息,存在极大地安全隐患。本发明设计了无密钥托管的安全多关键词排序检索系统,具有高效性。用户的私钥通过密钥生成中心和云平台的交互协议生成,利用全同态加密技术,使得双方均无法独立获取用户的私钥,解决了密钥托管问题。实现了可设置偏好分数的多关键词子集搜索,查询关键词的顺序变化不影响搜索结果。云服务器根据搜索请求返回相关度最高的k个文档。本发明实现了多用户的安全数据共享,数据拥有者的加密数据可以授权给多个用户进行解密和安全检索。如果用户出售授权私钥以获取经济利益,系统可以追踪出恶意用户的真实身份并撤销其权限。

以上所述的仅是本发明的优选实施方式,本发明不限于以上实施方式。可以理解,本领域技术人员在不脱离本发明的构思和前提下直接导出或联想到的其他改进和变化,均应认为包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1