一种发布/订阅环境下用户属性可撤销的方法与流程

文档序号:16244902发布日期:2018-12-11 23:28阅读:284来源:国知局
一种发布/订阅环境下用户属性可撤销的方法与流程

本发明属于信息安全技术领域,涉及一种密文策略下的属性基二层加密方法,具体涉及一种基于密文策略的属性基下具有高效的用户属性撤销的发布/订阅的方法,使用了属性基加密与可搜索加密的形式,并使用组播密钥管理方法管理订阅者之间的密钥,用于云服务环境中,可实现细粒度的访问控制和安全性保护。

背景技术

当今社会,人们在不断地享受互联网带给的便捷生活,与此同时,你是否发现,最懂你的人已经不再是自己,最懂的似乎是互联网,电商了解你的消费需求,专车清楚你每天的行踪,移动支付掌握着你的财产变动…个体的身体、位置、通信、征信、交易等各类信息被源源不断地收集、存储在网络空间,俨然已经变成了透明人。但是真的希望自己的信息让别人知道的比自己还多吗?

其实,个人信息并不安全,近几年,很多媒体和报纸都争相报道了很多骇人听闻的安全事件,大多数都是知名企业和公司,有的公司数据库被黑客袭击,有的公司成员与犯罪团伙勾结,盗用客户信息,还有的公然在网络上倒买倒卖个人信息。国家也越来越重视网络和信息安全,出台了相应的法律法规,开展了打击整治黑客攻击破坏和网络侵犯公民个人信息犯罪的专项行动,处理的案件数量之大令人咂舌。这些案件的曝光,令人们心惊,“我的信息为啥你知道?”成了网络消费时代的普遍焦虑。然而,也不能因为信息的泄露阻碍互联网技术的进步,那有没有好的解决方案,在保证安全的前提下依然能够享受互联网带给人们的便利呢?答案是肯定的。

随着互联网系统规模的不断扩大,大数据时代飞速到来,各领域系统应用软件越来越复杂,用户需要能够自己订阅自己感兴趣的内容,而不是所有的数据一股脑儿地都向用户推送过来,因此,建立了一种模型,即以数据为中心的发布-订阅模型,该模型建立了全局数据空间的概念,发布者方发布“数据”,对数据感兴趣的用户可以获得该数据,任何需要信息分发的应用都可以使用这种数据驱动的网络结构。例如在一款数据发布类型的app上,由于数据量的庞大,上面的数据一般都存放在云服务器上,用户发布数据或者获取数据都是在与云服务器进行交互,用户可能会订阅一些感兴趣的内容,比如“美食”,“摄影”等,有一些数据可能需要你开会员或者要经过认证才能观看,这种“会员”,“认证过的”就是一个个属性,你只有满足这些属性才能访问这些数据,而且用户也希望自己收到的数据是自己订阅过的,而不是一些不感兴趣的内容。

当云服务器被用作代理时,由于云服务器不能完全信任,隐私问题在数据发布订阅系统中变得更为关键。具体来说,有三个主要的隐私要求:1)数据隐私。云服务器和其他未授权用户不允许访问已发布的数据;2)标签隐私。与数据关联的标签不应该透露可以揭示数据内容的关键词;3)陷门隐私。订阅陷门不应透露任何关键字或订阅策略,以保护用户的利益。

基于密文的属性基加密是指,密文关联着一个访问结构,用户的密钥关联着属性集合,只有属性满足访问结构时,才能拿到访问结果隐藏的秘密值,从而才能解密数据。可搜索加密是指在密文上实现可搜索,比如在云盘上搜索数据,但当云上的数据都被加密了,加密之后的数据是一串数字时,怎么搜索需要的数据,原始方法是将所有数据下载下来之后解密完再搜索,这种方法效率低且增加了空间的消耗,所以可搜索加密应运而生,可以在保证安全的前提下,进行搜索。

已有的方案要么是将数据加密,保证了数据安全性,但是没办法正常的进行数据分发/订阅的工作,要么就是维持了系统的正常运行,但是数据的安全性没有保障,而且在属性撤销时,已有的方案需要将密文进行更新,这无疑会降低了系统的效率。



技术实现要素:

针对现有技术的不足,本发明的目的在于提供一种发布/订阅环境下用户属性可撤销的方法,本发明保证了系统的正常运行以及数据的机密性,并且经过实验分析,比现有方案的效率更高,存储空间更小。本发明在实现同样的功能下降低了在更新情况下系统的开销,不需要加密之前的密文;而且也保证了发布者的数据隐私,订阅者的兴趣隐私和查询隐私,同时,也抵抗了半可信云服务器对数据的未授权访问,以及未授权的订阅者的合谋攻击。经实验分析,本发明更实用,更快捷。

本发明选择属性基加密与可搜索加密相结合的方式来完成。属性基加密可以控制细粒度地访问,并且具有良好的安全性,在属性撤销方面,本发明选择了属性群的方式来实现这一功能,属性群将“用户-属性”的关系变更为“属性-用户”的关系,并通过向己授权的用户分发一个kek二叉树,实现属性的即时撤销,由云服务器来维护这些密钥。可搜索加密可以在密文上进行搜索的特性很好地保证了数据的隐私,本发明结合了这两者的优势。

实现本发明目的的具体技术方案是:

一种发布/订阅环境下用户属性可撤销的方法,该包括以下具体步骤:

(a)系统初始化

可信机构在双线性库下任意选择一套参数,在乘法循环群g下随机选取一个生成元g,并生成到另一个乘法循环群gt的双线性映射,然后生成公钥{g,gt,g,ga,gα,h=gβ,gγ,e(g,g)a}和系统主密钥{α,β,γ,ga},其中,主密钥保密,公钥公开,公钥和系统主密钥按照如下的方式生成:

a1:可信机构随机选取a,其中,表示集合{0,1,2,…,p-2,p-1};

a2:可信机构计算得到系统主私钥mk={α,β,γ,ga},系统公钥为pk={g,gt,g,ga,gα,h=gβ,gγ,e(g,g)a}。

(b)订阅者和发布者私钥及订阅者属性密钥生成

可信机构根据订阅者提供的属性集合生成私钥和属性密钥后发送给订阅者,然后发布者向可信机构提供身份标识,可信机构为其生成私钥并返回给发布者,之后可信机构将属性及其对应的用户列表发送给云服务器,步骤如下:

b1:可信机构随机选取为订阅者生成如下私钥:

b2:可信机构随机选择为每个属性都随机选取当j∈{ssub}时,然后为订阅者生成如下的属性密钥

b3:可信机构为发布者随机选取然后按照如下公式计算发布者的私钥

b4:可信机构根据记录的订阅者-属性对应表,生成一个列表,这个列表是根据属性生成的,每个属性都有一个属性群,属性群里是拥有此属性的订阅者集合,将该列表发送给云服务器。

(c)数据加密

发布者要先定义访问策略(m,ρ),然后用一个随机的对称密钥ks加密要发布的数据,并在访问策略下加密对称密钥ks,只有满足此访问策略的订阅者才能解密该密钥,并且,发布者每次加密数据使用不同的对称密钥,防止攻击者得知一个对称密钥,就能解开所有的密文数据,步骤如下:

c1:发布者要先定义一个访问策略(m,ρ),此访问策略使用访问树的形式定义,矩阵m是根据访问策略生成的访问矩阵,ρ将矩阵m的每一行都映射到一个属性,矩阵m不一定是方阵;然后随机选择步骤如下:构造访问结构树与cpabe的方法相同,为每个节点自上而下地随机选择多项式q(x),每个节点的多项式最高项次数为节点门限值-1,dx=kx-1;先为根节点选择随机数令多项式常数项为s,其他系数随机;访问控制策略以树形结构表示,树中的每个非叶子节点都代表一个门限,numx表示节点x的孩子节点个数,用kx代表节点x的门限值,其中0<kx<numx,当kx=1时,节点代表或门,当kx=numx时,节点代表与门。访问树的每个叶节点对应某个属性,记为att(x),用parent(x)表示节点x的父节点;每个叶子节点拥有唯一序号,用index(x)编号,并且满足1≤index(x)≤numx;

c2:随机选择一个对称密钥ks,将对称密钥用此访问策略按照密文策略的属性基加密方式来加密,密文其中h1为哈希函数;

(d)索引建立

数据发布者要根据数据相关的关键字生成索引,需要有一个文件和关键字的对应表,发布者用与数据对应的关键字建立索引表,并将索引加密,关键字用sm来表示,随机选取生成的索引为其中wi的生成按如下公式,为每一个关键字选取加密后的索引与步骤(c)加密过的数据密文一起发送给云服务器;

(e)订阅者陷门生成

订阅者为了订阅感兴趣的数据,订阅者首先要定义自己的订阅策略(mt,ρt),这个订阅策略订阅者采用lsss(线性秘密共享方案)来定义为(mt,ρt),矩阵mt是根据订阅策略生成的订阅矩阵,ρt将矩阵mt的每一行都映射到一个关键字,矩阵mt不一定是方阵,其中mt是一个nt*lt的订阅矩阵,ρt将矩阵中的m每一行都映射到一个关键字上,而且映射到的关键字要互不相同,再根据从可信机构处拿到的私钥和系统公钥以及订阅策略生成陷门,陷门包含了要查询的关键字集合,步骤如下:

e1:随机选取再选择随机向量其中yt,2,…,yt,l被用于分享秘密st,对每一行,计算mt,j为矩阵的第j行,tj=λj*zt,按如下公式计算陷门

e2:然后只需要将订阅策略中的矩阵mt发送给云服务器,而另一个向量ρt保持隐私状态,需要私密保存,不能泄露;

(f)重加密数据

云服务器拿到发布者要发布的数据的密文后,要根据属性群列表即步骤(b)中可信机构发送给云服务器的属性-用户列表,按照组播密钥管理的方式在属性群订阅者间共享属性群密钥,云服务器在之后发布者再发送过来新的数据时用此密钥重加密密文,返回给属性群中的订阅者一个路径密钥,建立密钥更新组件header,以便用户的密钥更新;如果发生了属性的变更--有新的订阅者加入某个属性群或者有订阅者失去某个属性即退出属性群,用户要向可信机构报告此事件,可信机构再发送给云服务器,云服务器要根据这一事件更新属性群列表,重新生成一个新的属性群列表,只需要更新受用户变更影响的属性群列表,其他的不用进行更新;并共享新的属性群密钥,之后用此密钥来重新加密数据,而已经在云服务器上的数据即已经发布过的数据,不需要进行重新加密,步骤如下:

f1:云服务器运行kek生成算法,为订阅者集合中的订阅者生成kek,首先云服务器使用属性群列表为每个属性群生成一个kek二叉树,其中:二叉树的每个叶子节点都对应属性群中的一个订阅者,二叉树的所有节点vj都获得一个随机数kekj;查找并记录订阅者ut对应叶子节点到根结点的路径,其对应的kekj的集合为订阅者ut的路径密钥pkt,订阅者u3存储的路径密钥为pk3={kek10,kek5,kek2,kek1};每个属性群uj,都存在一个能覆盖所有和uj中成员对应的叶子节点的最小节点集合,称之为uj的最小覆盖远,记为kek(uj),比如,设属性群uj={u1,u2,u3,u5,u7},则kek(uj)={kek4,kek10,kek12,kek14};kek(uj)与pk3的交集为{kek10},所以每个订阅者ut∈uj拥有唯一的kek;这个路径密钥在数据服务管理商运行的重加密阶段中被用作keks,来加密属性群密钥;路径密钥要随机,独立地分发给每个用户;

f2:在发布数据ct之前,云服务器通过使用重加密算法来加密外包数据,这个算法使用每个属性组g的成员信息,这个成员信息嵌入在密文的访问树中。重加密过程如下:为所有gy∈g,选择一个随机数然后加密ct生成新密文

f3:云服务器生成header信息,以便让用户更新自己的密钥,注意ek为m在k下的对称加密算法,用于将属性群密钥发送给有效用户。最简单的算法就是分组加密:ek:{0,1}k-→{0,1}k,其中k为密钥k的长度;

f4:当收到用户任何请求时,数据服务管理商用头部信息和密文回应。属性组密钥分发协议是一种无状态方法。因此,即使用户在实际应用中无法持续更新密钥,只要他们未被属性组撤销并且满足访问策略时,就可以在任何时间发送请求来收到属性组密钥,进行解密;

f5:当属性发生变更时,云服务器会先更新属性群密钥,然后将在属性变更之后发布者再发送过来新的数据时,用此更新过的属性群密钥加密密文:为所有gy∈g,选择一个随机数然后加密ct生成新密文

(g)策略检查

当订阅者要去查询数据时,要向云服务器提交含有关键字的陷门,云服务器拿到陷门后,要进行三个检测,如果通过,就返回重加密后的数据以及header信息,否则输出错误信息,这三个检测包含一个匹配检测和两个策略检测,这三个检测的顺序是无序的,此处任选一个顺序叙述,云服务器首先检测数据的关键字与陷门关键字是否匹配,然后检测是否满足订阅策略,若通过检测,再检测订阅者的属性是否满足访问策略,从检测结果中判断是否进行下一步操作。

(h)数据解密

订阅者提交了查询陷门,如果收到云服务器返回的错误信息,说明没有权限访问或者没有满足订阅策略的数据,如果收到云服务器返回的密文和header信息,则可以进行解密操作,包括以下几个步骤:

h1:订阅者拿到重加密密文和header信息后,使用路径密钥解密header中的属性群密钥,根据步骤(g)中提到的最小覆盖集,如果订阅者在属性群里gy,说明他具有属性atty,则他的k能够解密得到属性群密钥其中k∈kek(gy)∩pkt,注意,只有在属性群中的订阅者才有有效的k;

h2:然后根据拿到的属性群密钥用此密钥根据算法更新自己的私钥,更新私钥的算法公式为:

h3:然后解密对称密钥ks,用重加密后的私钥解密密文得到对称密钥ks,此对称密钥在加密阶段用于加密发布者的要发布的数据,解密对称密钥ks的步骤如下:先解密访问树中叶子节点隐藏的秘密值,按照如下的公式:然后用叶子节点的值去递归解密根节点的秘密指,递归公式如下:其中i=index(z),s′z={index(z)}:z∈sx;然后根据公式解密对称密钥

h4:然后订阅者用此对称密钥解密密文即可拿到明文数据。

如果有订阅者属性撤销或者获得新的属性,会告知可信机构,可信机构生成新的属性列表发给云服务器,云服务器按照重加密步骤重新随机选择按照之前的方式生成最小覆盖集,重加密数据并生成新的header信息即可。

附图说明

图1为本发明的系统图;

图2为本发明的工作流程图;

图3为本发明步骤(d)中的访问树的示例图;

图4为本发明步骤(f)中的矩阵与关键字对应关系的示例图;

图5为本发明步骤(g)中的kek树生成示例图。

具体实施方式

为了解本发明实现的技术手段、创作特征、达成目的与功效,下面将结合具体实施方式,进一步阐述本发明。

ⅰ、本发明所应用的数学理论说明:

1.双线性映射

设g为阶为素数p的乘法循环群,映射e:g×g-→gt是一个线性映射,如果映射满足以下三个条件:

双线性,对于所有的u,v∈g,a,b∈zp,有e(u^a,v^b)=e(u,v)ab

非退化性,存在e(g,g)≠1,否则e(g,g)ab≡1;

可计算性,对于所有的u,v,存在一个有效的算法计算e(u,v)。

本发明中,双线性对e:g×g-→gt是一个满足双线性性、非退化性和可计算性的映射,将阶位素数的乘法循环群上的两个元素的运算映射到乘法循环群gt中的一个元素。

2.访问结构

{p1,p2,…,pn}是一个特征集合,集合是单调的,如果b∈c,则c∈a,一个单调的访问结构是{p1,p2,…,pn}的一个非空子集a,也即

3.访问树

将访问控制政策描述为树(accesstree)的形式,在访问树中,每一个叶子节点都是一个属性,每一个非叶子节点都代表一个门限,里面的数据形式为(n,t),表示:此节点一共有n个子节点,只要有t个子节点满足条件,那么此节点也满足条件。解密时,只要属性集合使得访问控制树的根节点满足条件,就可以正确解密;numx表示节点x的孩子节点个数,用kx代表节点x的门限值,其中0<kx≤numx。当kx=1时,节点代表或门,当kx=numx时,节点代表与门。访问树的每个叶节点对应某个属性,记为att(x),用parent(x)代表节点x的父节点;每个叶子节点拥有唯一序号,用index(x)编号,并且满足1≤index(x)≤numx。叶子表示不同的属性值。根节点隐藏的值就是秘密值。

4.线性秘密共享方案

lsss(linearsecretsharingscheme,lsss)是shamir秘密分享方案的一般性推广。简单介绍一下shamir秘密分享方案的基本思路:shamir秘密分享方案的目的是,给n个人分享秘密,只要n个人中的t个人(t<=n)在一起,就能够把秘密恢复出来。这就好像一个保险柜有n把钥匙,只要t个人在场,就能够把保险柜打开。shamir秘密分享方案利用了拉格朗日多项式差值方法,其基本思想是:如果预先定义了一个t-1阶的多项式,那么如果知道这个多项式上的t个点,则一定能完整恢复出这个多项式。假设所要分享的秘密是s,任取t-1个随机数a1,a2,…,at-1,,构造一个t-1阶多项式f(x)=at-1xt-1+at-2xt-2+…+a1x+s,对于每个用户i,1≤i≤n,其分享结果为(i,f(i))。这样,当t个用户在场时,就可以使用拉格朗日插值公式恢复出多项式f(x),从而得到秘密s了。

线性秘密分享方案的定义为:在一组参与方间分享一个秘密的秘密分享方案π被叫做是线性的,如果满足以下条件:

1)每一方都从zp上的一组向量来组成的;

2)存在矩阵m叫做为方案生成的分享矩阵。

秘密s的分享方法:

m矩阵有m行和d列,i=1,…,m,第i行mi是被一方ρi标记的,ρ是i={1,…,m}映射到参与方的函数;给一个列向量v′=(s,r2,…,rd),s∈zp是被分享的秘密,r2,…,rd∈zp是随机数。m*v′由m个分享秘密s的向量组成的,共享矩阵λi=(m*v′)i属于每个参与方i。

恢复秘密s的方法:

假设π是一个在访问结构a上的线性秘密共享方案,s∈a是一个属性集合,即满足策略的授权集合。i是集合{1,...,m}的真子集,定义为i={i:ρi∈s}。则存在一个常数{ωi∈zp}i∈i满足∑ωimi=(1,0,0,…,0),所以λi是π方案任何秘密s的有效分享,所以∑i∈iωiλi=s。更进一步,常数{ωi}可以在概率多项式时间内找到。对于不满足的属性集合,没有这样的常数。

lsss被定义为(m,ρ)。

5.属性基加密

基于属性加密(attribute-basedencryption,abe)是基于身份加密(identity-basedencryption)的扩展。在abe中:加密的文件被一个属性集合所标识,里面包含n个属性,每个属性用一个有意义的字符串来描述(如:某个大学或机构的名称、文档等级等);用户的私钥也被一个属性集合所标识,里面包含m个属性,每个属性同样用有意义的字符串来描述;解密时,方案会自动对私钥属性集合和密文属性集合作交集,如果属性交集的个数大于等于某个阈值t,则可以解密成功。

例如:加密文件对应的属性集合为s={xx大学,计算机学院,老师},门限值设置为2。老师甲拥有的属性集合为s1={xx大学,老师},则有

|s1∩s|=|{xx大学,老师}|=2,则这个老师就可以解密该文档;学生乙拥有的属性集合为s_2={xx大学,学生},则有

|s0∩s|=|{xx大学}|=1<2,则这个学生就不可以解密该文档;学生丙拥有的属性集合为s3={计算机学院,学生},则有|s3∩s|=|{计算机学院}|=1<

2,则这个学生也不可以解密该文档。

ⅱ、本发明的实现过程

本发明是基于图1的模型下建立的,包含有四个参与方:可信机构、云服务器、发布者和订阅者。按照图1,简述一下本发明的实现过程:首先可信机构分别为发布者和订阅者生成相应的私钥,然后发布者将加密后的密文和索引上传给云服务器,云服务器将进行重新加密,订阅者根据私钥和要查询的关键字生成查询陷门发送给云服务器,然后云服务器根据陷门进行查找返回相应的密文,最后订阅者进行解密。具体的实现过程可参见图2。

本发明使用了两种访问控制结构,一种是访问控制树(如图3是访问树的一般形式),用于加密对称密钥,只有满足策略的人才能机密出密钥从而解密明文;另一种是线性秘密共享方案lsss(如图4是一个lsss的结构示例),用于定义订阅者的订阅策略,隐藏订阅者查询的关键字信息。并且引入了属性群的概念,每一个属性群需要建立属性的二叉树(如图5是一个拥有属性x的属性群的二叉树,每一个叶子结点都与一个用户关联),使得云服务器使用属性群来控制群密钥的更新,从而控制订阅者及其属性的撤销,如果属性群有变动,云服务器只需要更新受此影响的属性群即可,其他的不用更新。由此保证了既保证了发布者的数据对于半可信的云服务器和未经授权的订阅者是安全的,而且也抵抗了多个未授权订阅者的共谋攻击;除此之外,陷门不会泄露订阅者的信息,保证了订阅者的订阅策略和查询关键词的隐私性,同时,本发明使用混合加密的方法提高了效率。

本发明的实施示例如下:

步骤一、系统初始化。

可信机构在双线性库下选择一套参数,在乘法循环群g下随机选取生成元,并生成到另一个乘法循环群的双线性映射,其中,生成元为:

g=2569603152727911657077960708455464508034964833030477463057515947831317350599032821072941519068383867901528448716173240951605611983447909677546485722430162,7408781214719168952226775514844641356635666077307294169509817308758493993976491535467845768608128272711254154215859622786521791918032173907413207048232774,0

根据选取的参数,可信机构生成公钥和系统主密钥,并把系统主密钥私密保存。其中,系统公钥和主密钥按照如下方式生成:

(1)可信机构随机选择:

a=719992491368241803587412822766013222460303806728

α=231995578319932333904504599841724563421343389000

β=235233548241610880860944210070460548436516738005

γ=721376446381428531944062720695300489948175831788

(2)可信机构计算:

ga=1024344175200531074112782583659852078124966343265062857686646230328270287033819792724426259297888567269256299845288725285035371513278963153237957595480880,7898201554341098314262420303832405373119274258089716729009585808749905098092453821597794361457121673767852012244642206082987915480904634037587172787613057,0

gα=8428032252865638032695952566722167560429314238877457613835485905405460967266494420668983163221700591182125538237983811827711300385812666957291133750369082,1661940573321667140398827837233368967870069634344746288733205207208664624406373297181006561415040008597721460361525575483660672100403374774080832356217991,0

h=

gβ=2333374316737148756378961914441742787856939855256863480318227813070086950284590944423971491009286342003053632665201410632356494991663150950107022406800210,7481055580449190984009327652748415056840302787099443748707011043274528544263480407970127666955292968669926699006902217270759131150610535777825485047682619,0

gγ=4894165451417345911149259660478641748861796234277850052579143551341161637590661827344874120220334344969251953263592621212638552546183473616261840842515864,2034521928623287685705857428665064037009022230906809257481095916272465858728478012413589838198827615832367623828312151963926931429312306835227594111154587,0

e(g,g)a={x=5616653814930526280381408625817887358643542245268014387757417617082309970341050313083012649655862991173814152371636291280471448316350039041623553417558952,y=1819809647326486575052417321316754629366959697580993033727532797242697881127510123661109378173529067978750126127340230548277183574077957710217426368150068}

主私钥为mk={α,β,γ,ga},系统公钥为pk={g,g,ga,gα,h=gβ,gγ,e(g,g)a}。

步骤二、订阅者和发布者私钥及订阅者属性密钥生成

可信机构接收订阅者提交的属性集合s_sub,默认此集合为“hello”,“xx学校”,“软件学院”,“人”,为订阅者生成私钥。

(1)可信机构随机选取:

rsub=148891562825582041929180538826879890309875388318

(2)可信机构计算:

可信机构为发布者生成私钥

(1)可信机构随机选取:

rpub=116367301561553073700998000043885426947942932476

(2)可信机构计算:

订阅者的私钥为发布者的私钥为

可信机构为订阅者生成属性密钥:

(1)可信机构随机选取(为每个属性选择rj,这里仅写一个作为示例):

r=160583286023103999888130562815376404923708583001

rj=256369310787973362537742366821423754625365726374

(2)可信机构计算:

订阅者的属性密钥为

可信机构根据记录的属性与订阅者的对应表生成一个列表并发送给云服务器。

步骤三、数据加密

(1)发布者随机选取:

ks={x=277340574412451399762234105364296013616131576514958489931829656319483003259422016326440495870354214089334567264185397690985165778064050731167785676749837,y=1844063649614526493637180926687269684528983806482928297852282113603052629768662506887781286423303380457575283783226291127795125149783443031893096266303855}

(2)发布者用此对称密钥加密数据,定义访问策略,此策略默认为:“hello&(2of(xx学校,软件学院,研究生))”,生成访问树,然后随机选取:

s=359861479302582801439734069097364030447857224827

(3)发布者计算:

c=

hs=3552737606039140572483927595445487993520211821154533202281433255513448922987181638953411431185159987501716685520739427084679723251285381718671895146858187,8348428402942476456452509200660397449844657538187547336682874021143918570780964031073167478782767525359092061334456525394808354816794582352541504162952135,0

密文为其中h1为哈希函数。

步骤四、索引生成

数据发布者要根据数据相关的关键字生成索引,关键字用6m来表示,默认为;

(1)随机选取:

rm=51651304347765452814629561732208256815319717952

(2)发布者计算:

加密后的索引为

步骤五、陷门生成

(1)订阅者为了订阅感兴趣的数据,首先要在关键字上定义一个订阅策略,这个订阅策略用lsss结构来定义为(mt,ρt),mt,ρt如下;

(2)订阅者计算:

tj=561601514856867166835443762140034029240870037018

陷门为mt随着陷门一起发送给云服务器,ρt是要保密。

步骤六、重加密数据及建立属性群

(1)云服务器根据从可信机构发过来的列表建立属性群,然后选择一个随机数作为属性群密钥:

(2)云服务器在密文ct的基础上为每个属性重加密,计算:

(3)生成header信息,用一种对称加密算法即可,计算

步骤七、策略检测

云服务器收到订阅者的查询陷门时,要进行策略检测,首先要检测服务器上的数据的关键字是否满足订阅者的订阅策略,通过检测后,检测订阅者的属性是否满足数据的访问策略,满足策略后返回上一步的重加密信息和header信息。

步骤八、数据解密

(1)订阅者首先要解密属性群密钥,解密出属性群密钥:

(2)更新自己的私钥:

(3)根据解密公式解密ct得到ks:

ks={x=277340574412451399762234105364296013616131576514958489931829656319483003259422016326440495870354214089334567264185397690985165778064050731167785676749837,y=1844063649614526493637180926687269684528983806482928297852282113603052629768662506887781286423303380457575283783226291127795125149783443031893096266303855}

根据对称密钥解密数据得到明文。

注意:如果发生了订阅者属性变更,订阅者会将此消息通知给可信机构,可信机构再发送给云服务器,则云服务器需要重新建立属性群,选取新的属性群密钥,操作与重加密相同,订阅者更新密钥即可完成解密。

以上显示和描述了本发明的基本原理和主要特征以及本发明的优点,本领域的技术人员应该了解。在不背离所附权利要求书限定的本发明的宗旨和范围的前提下,可以对本发明进行各种形式和细节上的修改。实施方式应该仅认为是说明性的,而不是强制性的。因此,本发明的详细描述不限定本发明的范围,本发明的范围应该由所附权利要求书限定,并且本发明的范围内的所有区别技术特征应理解为包含在本发明内。

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