云环境下支持高效撤销的属性基关键字搜索方法与流程

文档序号:12624168阅读:289来源:国知局
云环境下支持高效撤销的属性基关键字搜索方法与流程
本发明涉及云计算安全技术,具体涉及一种云环境下支持高效撤销的属性基关键字搜索方法。
背景技术
:目前,云计算已经成为一个新的企业IT结构。许多公司已经将他们的应用程序和数据库放到云服务器上,并开始享受云计算带来的许多无可比拟的优势,例如灵活性的计算资源配置,普遍灵活的访问,节约大量的资源成本等等。但是,隐私问题仍然是阻碍云计算被更加广泛应用的一个主要障碍。当敏感数据被外包到云服务器时,数据拥有者自然会担心他们的数据隐私。外包之前加密一直是一个被视为在云服务器上保护数据隐私的基本方法。但是,如何让这些加密过的数据被高效的使用又成为了另外一个挑战。这个问题得到了很大的重视和很多的关注,从安全可搜索数据加密、安全功能评估,到完全同态加密系统,都在理论上提供了一般解决这个问题的方法,但是由于实际情况的复杂性,仍然很难较好的解决这个问题。可搜索加密是近来发展的一个用来有效搜索存储在云服务器上的数据的基本方法。在可搜索加密中,数据拥有者加密所有文件以及与其相关联的关键字并外包到云服务器上。搜索用户会生成一些加密陷门,其中包含了用户感兴趣的并且已经存储在云上的关键字。最后,经过云服务器的搜索操作,返回给用户匹配到的结果。为了提高搜索的准确度,提出的可搜索加密方案应该支持多关键字搜索,而不是只支持单关键字搜索。而且,为了使可搜索加密方案支持更多的实际应用场景,例如多数据拥有者和多用户,我们的方案应该支持搜索授权,这意味着云服务器仅仅会返回搜索结果给已获得权限的用户。与单个数据拥有者方案相比,建立一个完全成熟的多数据拥有者方案将会面临许多的挑战。第一,在单数据拥有者方案中,数据拥有者不得不一直保持在线状态去为用户生成加密索引。但是,当有大量的数据拥有者参与进来的时候,让他们同时在线生成索引将会大大影响整个系统的灵活性和可用性。第二,没有人会愿意与他人分享自己的密钥,不同的数据拥有者会使用它们自身的密钥去加密他们需要加密的数据。因此,在使用不同的密钥加密数据的情况下,实现安全、灵活、高效的密文搜索是非常具有挑战性的。第三,当系统中存在多数据使用者时,应该确保系统拥有高效的用户注册和撤销机制,使系统具有良好的安全性和可扩展性。基于属性加密(ABE)的提出解决了上述的问题。一个ABE方案中,每一个用户都用一个属性集合来标识自己的身份,同时一些有关这个属性集的函数、策略都被用来决定用户的解密能力。根据访问策略的不同,ABE分为两种类型——密钥策略的属性加密方案(Key-policyattribute-basedencryption,KP-ABE)和密文策略的属性加密方案(ciphertext-policyattribute-basedencryption,CP-ABE)。在KP-ABE中,访问控制策略与用户私钥绑定,而数据拥有者提供属性集合来加密消息;相反在CP-ABE中,属性集合与用户私钥绑定,而数据拥有者以访问控制策略来加密消息。技术实现要素:发明目的:本发明的目的在于解决现有技术中存在的不足,提供一种云环境下支持高效撤销的属性基关键字搜索方法。技术方案:本发明所述的一种云环境下支持高效撤销的属性基关键字搜索方法,包括以下步骤:(1)系统初始化和建立多个属性授权机构,管理服务器生成公钥及主密钥,属性授权机构生成属性公钥和属性私钥;(2)新用户完成在可信第三方和属性授权机构的注册,获得注册密钥及属性主密钥;(3)数据拥有者使用属性加密机制生成加密文件和索引,分别发送给云服务器和管理服务器,管理服务器用其私钥重加密该索引并发送给云服务器;(4)为了在查询阶段验证用户身份,防止用户合谋,云服务器生成查询标记;(5)用户使用属性加密机制生成加密陷门并发送给管理服务器,管理服务器重加密接收到的陷门并生成Sf,同时发送给云服务器;(6)云服务器接收到加密索引及陷门,进行关键字搜索;(7)待用户完成搜索任务后,进行用户撤销。进一步的,所述步骤(1)的具体过程为:(11)可信第三方执行初始化算法,得到系统公钥和主密钥,即管理服务器得到系统公钥和主密钥:由TA执行系统初始化算法,输入安全参数λ,生成两个生成元为g的p阶循环群G1、G2,一个双线性配对e:G1×G1→G2,和一个抗碰撞哈希函数H:{0,1}*→Zp,TA随机选择一个参数γ∈Zp,g1∈G1,g2∈G1,计算g3=g2γ,公钥PK:={e,g1,g2,g3,H},并且生成主秘钥MSK:=γ;(12)属性授权机构获得公钥和属性集,得到属性私钥和属性公钥:向CAs输入公钥PK和属性集合,生成相对TA保密的属性私钥AMKj=tj和属性公钥CAs将属性公钥APKj提交给TA并自己拥有属性私钥AMKj。进一步的,所述步骤(2)的具体过程为:(21)可信第三方生成相对用户保密的私钥SKi,并为需要注册的用户颁发注册密钥RKi;(22)用户获得注册密钥后,在属性授权机构进行属性注册,属性授权机构进行认证并为该用户颁发属性主密钥ASKi,j。进一步的,所述步骤(3)的具体过程为:(31)数据拥有者为要加密的文件定义一个树形访问控制结构Ψ,并构造访问树T;(32)数据拥有者使用属性加密机制加密索引;(33)数据拥有者得到初步加密的索引后,将该索引发送给管理服务器,管理服务器用自身的私钥重加密索引。进一步的,所述步骤(4)的具体过程为:(41)云服务器构造一个访问策略同样为Ψ的访问树Ti,并计算得到查询标记QTi,Ψ。进一步的,所述步骤(5)的具体过程为:(51)用户利用属性私钥,分别针对访问树T、Ti计算得到拉格朗日系数,再递归地计算得到访问树T、Ti的拉格朗日插值FR、LR;(52)用户利用属性加密机制加密陷门;(53)用户将初步加密后的陷门发送给管理服务器,管理服务器对接收到的陷门进行重加密,同时生成Sf。进一步的,所述步骤(6)的具体过程为:(61)管理服务器将发送给云服务器;(62)判断用户陷门与数据拥有者的索引属性是否相符;用户通过步骤(51)计算得到LR=e(RKi,g2)β;云服务器重计算L′R=e(RKi,g2)β;云服务器通过判断LR与L′R、与Y2是否相等来判定陷门与索引的属性是否相符,其中FR=e(g1,g2)α,Y1=g2α,Y2=e(E1,g2s)α;(63)匹配用户陷门中的关键字与索引中的关键字:云服务器通过计算等式e(E1,T3)=e(E2,T1)·e(Sf,T2)是否成立来匹配关键字,其中,E2=g1α·β,若等式成立,则匹配成功;反之,则匹配失败。进一步的,所述步骤(7)的具体过程为:(71)用户撤销:管理服务器更新存储在云服务器上的Sf,即更新管理服务器自身的私钥;(72)用户属性撤销:管理服务器更新Sf,属性授权机构更新系统属性私钥,生成新的用户属性私钥。本发明还公开了一种云环境下支持高效撤销的属性基关键字搜索方法的云计算应用系统,包括数据拥有者、管理服务器、用户、多属性授权机构以及云服务器加,其中,数据拥有者分别发送加密文件集和密索引给云服务器和管理服务器;新用户在管理服务器进行注册,并从属性授权机构获得属性私钥,然后发送加密陷门给管理服务器;管理服务器重加密获得的索引及陷门并发给云服务器;在云服务器上进行关键字搜索操作。有益效果:与现有技术相比,本发明具有以下的优点:1.本发明考虑了在实际场景中使用可搜索加密技术时经常会出现的系统可扩展性问题,由于单个用户、单个数据拥有者的系统结构的适用性不强,而在实际场景中,经常会有用户、数据拥有者加入、退出系统,本发明在利用属性加密的基础上,构造了可扩展的多关键字可搜索加密方法,能够支持多数据拥有者和多用户的系统结构。2.本发明考虑了在可搜索加密技术下,用户的搜索权限问题,数据拥有者上传数据后,只有符合数据拥有者设定的权限的用户才能搜索数据。本发明设置了分布式的多属性授权机构,对系统中的用户进行属性授权,每个用户都有由属性授权机构颁发的属性主密钥ASKi,j,用来证明该用户拥有某个属性,从而可以判断用户是否拥有搜索数据的权限,以防非法用户攻击,防止了恶意用户可能对系统造成的威胁。3.本发明考虑了用户在完成搜索任务后的撤销问题。管理服务器更新存储在云服务器上的Sf,用户无法生成正确的陷门,使得用户在搜索阶段始终无法获得搜索结果,起到撤销整个用户的作用。若只是针对用户某个属性进行撤销,在本发明中,使管理服务器更新Sf,属性授权机构针对剩余属性重新颁发用户属性私钥即可。综上所述,本发明基于属性加密机制实现了可搜索加密,保护了用户隐私的同时,降低了用户开销。附图说明图1为本发明的整体流程图;图2为本发明所应用的系统功能模块示意图;图3为本发明中步骤(3)的具体流程图;图4为本发明的步骤(5)的具体流程图;图5为本发明中步骤(7)的具体流程图。具体实施方式下面对本发明技术方案进行详细说明,但是本发明的保护范围不局限于所述实施例。此处,对发明的技术术语进行解释和说明:数据拥有者:数据集的拥有者,需要将数据集和查询索引加密后外包到云服务器;用户:需要从数据拥有者上传的数据中搜索到自己想要的数据;管理服务器:在发明中起到了可信第三方的作用,同时重加密数据拥有者和用户上传的加密索引和陷门,并用于用户撤销;云服务器:存储数据拥有者的数据集,会忠实地执行用户发出的搜索请求,但有可能窥探数据拥有者的数据隐私和用户的查询隐私;属性授权机构:对用户进行属性认证,使用户获得搜索权限,同时为数据拥有者颁发密钥加密数据;数据集:数据拥有者需要上传至云端的数据;属性加密机制:基于属性加密(ABE),又称模糊的基于身份的加密(FuzzyIdentity-BasedEncryption)。它把身份标识被看作是一系列的属性。IBE中解密者,只有当自己的身份信息和信息加密者描述的信息是一致的时候,才可以解密加密者加密的信息。和IBE不同的是,采用基于属性加密后,当用户拥有的属性超过加密者所描述的预设门槛时,用户是可以解密的。但这种基于预设门槛的方案不具有通用性。公钥:由可信第三方生成并公开;主密钥:由可信第三方生成且仅由可信第三方持有;注册密钥:由可信第三方生成,用于生成用户标识;属性主密钥:由属性授权机构生成,用于证明用户拥有某个属性;属性私钥:属性授权机构本发给用户、数据拥有者的密钥,不同的对象获得的属性私钥不同,用于执行加密操作;以下结合实施例和附图对本发明做进一步说明。如图1所示,本发明的云环境下支持高效撤销的属性基关键字搜索方法,包含以下步骤:(1)系统初始化和建立多个属性授权机构,管理服务器生成公钥及主密钥,授权机构生成属性公、私钥;(2)新用户完成在可信第三方和属性授权机构的注册,获得注册密钥及属性主密钥;(3)数据拥有者使用属性加密机制生成加密文件和索引,分别发送给云服务器和管理服务器,管理服务器用其私钥重加密该索引并发送给云服务器;(4)为了在查询阶段验证用户身份,防止用户合谋,云服务器生成查询标记;(5)用户使用属性加密机制生成加密陷门并发送给管理服务器,管理服务器重加密接收到的陷门并生成Sf,同时发送给云服务器;(6)云服务器接收到加密索引及陷门,进行关键字搜索;(7)待用户完成搜索任务后,进行用户撤销。如图2所示,将上述云环境下支持高效撤销的属性基关键字搜索方法应用于云计算系统,该系统包括数据拥有者、管理服务器、用户、多属性授权机构以及云服务器。本发明的详细步骤为:步骤(1)具体实施过程如下:由TA执行系统初始化算法,输入安全参数λ,生成两个生成元为g的p阶循环群G1、G2,一个双线性配对e:G1×G1→G2,和一个抗碰撞哈希函数H:{0,1}*→Zp,TA随机选择一个参数γ∈Zp,g1∈G1,g2∈G1,计算g3=g2γ,公钥PK:={e,g1,g2,g3,H},并且生成主秘钥MSK:=γ。向CAs输入公钥PK和属性集合,生成相对TA保密的属性私钥AMKj=tj和属性公钥CAs将属性公钥APKj提交给TA并自己拥有属性私钥AMKj。步骤(2)具体实施过程如下:1.如果一个搜索用户Ui在系统中是合法的,TA首先会为该用户分配一个注册秘钥RKi,用于生成用户标识,并生成秘钥SKi且相对该用户保密,此时,TA选择一个随机参数xi∈Zp,令SKi=xi,然后,TA计算并将RKi提交给该用户。2.用户获得注册秘钥RKi后,根据自己的需求向属性认证机构(CAs)提出属性认证申请,CAs在接到申请后会生成一个用户属性主密钥ASKi,j用于证明用户i拥有属性j,当接收到该用户的RKi后,CAs计算ASKi,j=RKi1/AMKj并传递给该用户。如图3所示,步骤(3)具体实施过程如下:1.给定文件Fi,k的第h个关键字,i.e,wk,h,数据拥有者选择两个随机数α,β∈Zp并计算E2=g1α·β。数据拥有者定义文件Fi,k的访问控制策略Ψ为一个访问树T,然后首先为树T中的每个节点x(包括叶子节点)选择一个多项式qx。这些多项式根据以下方式从根节点R开始自上而下的选取。对于树中的每个节点x,设置多项式qx的阶dx比该节点的门限值少1,也就是说,dx=kx-1。2.从根节点R开始,数据拥有者首先令qR(0)=α。然后,多项式qR在其他dR个点的值完全进行随机选取实现访问树T完整的定义。对于任一其他的节点x,令qx(0)=qparent(x)(index(x))并且随机选择dx其他点来完整定义qx。对于每个叶子节点Lj,计算为了便于描述和理解,令加密索引表示如下:w^,k,h=(α,E1,,E2,STΨ)]]>3.数据拥有者计算出后,将其传递给管理服务器,管理服务器获得后,用其私钥k1和k2进一步对进行重加密,并且计算Y1=g2α,Y2=e(E1,g2s)α。因此,更新后的加密索引管理服务器进一步将传递给云服务器。步骤(4)具体实施过程如下:为了在查询阶段验证用户身份,防止用户合谋,云服务器会生成一个查询标记QTi,Ψ。首先,云服务器随机选择β∈Zp,与步骤(3)中相同,服务器构造一个访问策略同样为Ψ的访问树Ti。对于任意一个节点N∈T,选择多项式QN(X),令QR(0)=β。对于Ti中的每个叶子节点Lj,服务器计算计算出如图4所示,步骤(5)具体实施过程如下:1.当用户Ui在CAs上进行注册时,生成一个用户属性私钥ASKi,j,表示用户i拥有属性j,计算对于集合ASi中的属性j,计算用户针对访问树T、Ti,计算其拉格朗日系数其中|IND|:=Threshold(Parent(N)),然后递归地计算当用户Ui拥有足够的属性时,最终得到访问树T、Ti的拉格朗日插值FR=e(g1,g2)α、LR=e(RKi,g2)β。2.如果想要搜索关键字wh′,用户选择一个随机参数ri,加密陷门表示如下:TΨ,w=(g1H(wh′)·ri,g1ri,H(FR),H(LR))]]>3.用户计算出TΨ,w后,将其传递给管理服务器,管理服务器获得TΨ,w后,随机生成一个参数rf,利用私钥k1,k2进一步重加密TΨ,w,计算为方便表示,令H(LR))。同时管理服务器生成管理服务器进一步将Sf传递给云服务器。步骤(6)具体实施过程如下:1.云服务器存储所有经过属性加密的文件和不同数据所有者的关键词,管理服务器同时也会将Sf存储至云服务器。在接收到一个查询请求时,云将在所有这些数据主的数据中进行搜索,同时重新计算L′R=e(RKi,g2)β。2.计算是否等于Y2且判定e(E1H(FR),Y1)=e(E1s,g2α)=e(E1,g2)s·α=e(E1,g2s)α=Y2]]>3.当云服务器获得陷门T(wh′)和加密索引后,首先计算e(Sf,T2)=e(g1k1·k2·rf,g1ri·k1)=e(g1,g1)k1·k2·rf·ri·k1]]>然后,根据计算下列等式是否成立,即判断wh′=wk,h是否成立,判断搜索是否成功。e(E1,T3)=e((g1α·β·H(wk,h)·g1k1)k2,gri·k1·rf)=e(g1,g1)(α·β·H(wk,h)+k1)·k2·ri·k1·rf]]>=e(g1,g1)α·β·H(wk,h)·k2·ri·k1·rf·e(g1,g1)k1·k2·ri·k1·rf=e(g1,g1)α·β·H(wk,h)·k2·ri·k1·rf·e(Sf,T2)=e(E2,T1)·e(Sf,T2)]]>如图5所示,步骤(7)具体实施过程如下:1.用户撤销:在撤销一个用户时,只需管理服务器更新存储在云服务器上的Sf。如TrapdoorGeneration所示,(k1,k2为管理服务器的私钥),当管理服务器更新Sf时,即更新私钥k1,k2,用户就无法生成正确的的陷门因此,用户在Search阶段始终无法成功搜索,相当于该用户已被撤销。2.用户属性撤销:管理服务器更新Sf,CAs更新tj,产生新的用户属性私钥ASKi,j,重新注册即可。验证分析(1)安全性分析1.关键字语义安全给出一个概率多项式时间敌手А,在多项式时间内,А向挑战者B询问他提交的关键字密文。然后,А发送两个先前未被改变的关键字ω0,ω1给B。B随机选择μ∈{0,1},并返回一个加密的关键字给А。А继续向B询问关键字ω的密文,唯一的限制是ω既不是ω0也不是ω1。最后,А输出他有关μ的猜想μ′。此处,定义А攻破ABESK的有利条件为如果AdvA是可忽略的,则本发明可抵抗选择关键字攻击。2.关键字保密给出一个概率多项式时间敌手А,在t时间内,А向挑战者B询问他查询的关键字密文。然后,B随机选择一个关键字ω*并将其加密为传递给А。А给出关于ω*的猜测ω′,如果ω′=ω*,则敌手获胜。此处,定义А攻破关键字保密的概率为AdvA=Pr[ω′=ω*],如果(其中ε是可忽略的参数,t代表А知道的关键字数量,u代表关键字字典的大小),那么本发明能够实现关键字保密。3.陷门不可链接性由于查询用户想要掩藏真正查询的内容,所以陷门在被传至云服务器之前应该先做加密处理。但是,如果陷门产生函数是固定的,那么其生成的包含同样关键字的陷门也会相同,这些陷门揭示了用户在云服务器上的搜索信息。在一般的模型中,云服务器会知道陷门的统计值并且进一步确认他们中所包含的关键字。因此,陷门产生函数应该是随机的。在本发明方案中,陷门的产生分为两个阶段。在第一阶段,用户会选择一个随机参数ri生成初始化陷门TΨ,w;第二阶段,TΨ,w被传至管理服务器后,管理服务器会随机生成一个参数rf对TΨ,w进行重加密,生成陷门在完整的陷门生成过程中,用户和管理服务器分别使用了两个随机参数,所以即使陷门中包含相同的关键字,每次加密也都会产生不同的结果。也就是说,云服务器不能推断出陷门之间的任何联系。4.抵抗合谋在系统初始化阶段,CAs会根据公钥PK和属性集生成相对用户保密的属性密钥AMKj;等到新用户注册时,TA会计算出注册密钥RKi并提交给CAs,CAs根据AMKj和RKi计算出用户的主属性私钥ASKi,j。这里面,当每次有新用户注册时,TA都会选择一个随机参数xi来生成注册密钥RKi。因此,即使两个不同的用户拥有相同的属性集,也会得到不同的用户属性私钥。然而仅仅是使属性集相同的用户拥有不同的属性密钥是不能够完全抵抗合谋攻击的,这时云服务器会使用注册密钥RKi生成一个查询标记QTi,Ψ表示用户i可以搜索以访问控制策略Ψ加密的关键字。服务器通过检查QTi,Ψ再一次检查发出搜索请求的用户的注册密钥RKi,从而验证搜索用户提供的陷门是由同一人创建的,实现了抵抗合谋攻击。(2)效率分析本发明中,定义Tg表示G1中一次求幂操作的时间;Tgt表示G2中一次求幂操作的时间;Th表示G1中一次哈希映射的时间;Tp表示一个双线性对操作时间。我们忽略乘法和其他哈希操作。定义n代表数据拥有者定义在文件的访问策略中的属性个数;N表示整个系统中的属性个数;s表示搜索用户拥有的属性个数。表1分别从索引生成、陷门生成、关键字搜索和用户撤销四个方面的计算复杂度进行对比:表1计算复杂度比较Sun,sARMS本发明索引(N+1)Tg+Tgt(2n+5)Tg+Tgt+nTh(2n+6)Tg+Tgt+Th+Tp陷门(2N+1)Tg(2s+4)Tg(2s+2)Tp+2sTgt+3Tg+2Th搜索(N+1)Tp+Tgt(2n+3)Tp+nTgt+2nTg4Tp+Th+Tg撤销(αNcTg)+βNsTg(3s+2)Tg+sThsTg从表1可以看出Sun等人的方案在上面四个方面的计算复杂度要高于ARMS和本发明。本发明虽然在陷门生成时计算复杂度比ARMS稍高,但在其他三个方面要优于或近似于ARMS,总体而言,本发明在计算复杂度上要优于其他两个方案。实施例:本发明可以应用在类似于下面的例子中:某医院将医疗数据上传至云平台用于研究,设定三甲医院的医生或者研究所的研究员可以访问这些数据,该医院在上传数据之前使用不同的关键字标识不同类别的数据,如皮肤病类、肝病类等等。假使某皮肤病研究所的研究员想要获取这家医院的皮肤病类的数据,现有的基于属性的访问控制技术要想解决该问题通常做法是去云端访问到这家医院的全部数据,然后下载到本地解密后才能挑出所需的皮肤病类数据。而应用本发明中的技术方案不仅可以在云端访问到这些数据,还可以直接在云端执行关键字搜索功能,最后仅仅下载自己所需的文件,有效的降低通信成本。上述实施例可扩展到多家医院同时上传他们的数据,并使用不同的访问控制结构,在数据上传前对数据进行加密处理。此时,医院会公开他们的访问结构,查询者可根据访问结构快速定位其想要搜索密文的位置。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1