CN108989026B - 一种发布/订阅环境下用户属性可撤销的方法 - Google Patents

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

Info

Publication number
CN108989026B
CN108989026B CN201810731147.6A CN201810731147A CN108989026B CN 108989026 B CN108989026 B CN 108989026B CN 201810731147 A CN201810731147 A CN 201810731147A CN 108989026 B CN108989026 B CN 108989026B
Authority
CN
China
Prior art keywords
key
attribute
subscriber
data
cloud server
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
CN201810731147.6A
Other languages
English (en)
Other versions
CN108989026A (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.)
East China Normal University
Original Assignee
East China Normal 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 East China Normal University filed Critical East China Normal University
Priority to CN201810731147.6A priority Critical patent/CN108989026B/zh
Publication of CN108989026A publication Critical patent/CN108989026A/zh
Application granted granted Critical
Publication of CN108989026B publication Critical patent/CN108989026B/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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • 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/0891Revocation or update of secret information, e.g. encryption key update or rekeying

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种发布/订阅环境下用户属性可撤销的方法,包括以下步骤:1)系统初始化;2)订阅者和发布者私钥生成及订阅者属性密钥生成;3)数据加密;4)索引生成;5)订阅者陷门生成;6)云服务器重加密数据及属性群建立;7)云服务器检查策略并返回数据;8)用户解密。如果发生的订阅者丢弃属性或授予属性时,还要包含:9)属性群更新;10)云服务器重加密数据。本发明在撤销过程中实现了细粒度的属性撤销,效率高,保护了发布者的数据对云服务器/未授权的用户都是安全的,并且可以抵抗多个未授权用户的合谋攻击;除此之外,也保护了订阅者的搜索关键字和订阅兴趣的隐私。本发明支持多发布者和多订阅者,可用于云环境中。

Description

一种发布/订阅环境下用户属性可撤销的方法
技术领域
本发明属于信息安全技术领域,涉及一种密文策略下的属性基二层加密方法,具体涉及一种基于密文策略的属性基下具有高效的用户属性撤销的发布/订阅的方法,使用了属性基加密与可搜索加密的形式,并使用组播密钥管理方法管理订阅者之间的密钥,用于云服务环境中,可实现细粒度的访问控制和安全性保护。
背景技术
当今社会,人们在不断地享受互联网带给的便捷生活,与此同时,你是否发现,最懂你的人已经不再是自己,最懂的似乎是互联网,电商了解你的消费需求,专车清楚你每天的行踪,移动支付掌握着你的财产变动…个体的身体、位置、通信、征信、交易等各类信息被源源不断地收集、存储在网络空间,俨然已经变成了透明人。但是真的希望自己的信息让别人知道的比自己还多吗?
其实,个人信息并不安全,近几年,很多媒体和报纸都争相报道了很多骇人听闻的安全事件,大多数都是知名企业和公司,有的公司数据库被黑客袭击,有的公司成员与犯罪团伙勾结,盗用客户信息,还有的公然在网络上倒买倒卖个人信息。国家也越来越重视网络和信息安全,出台了相应的法律法规,开展了打击整治黑客攻击破坏和网络侵犯公民个人信息犯罪的专项行动,处理的案件数量之大令人咂舌。这些案件的曝光,令人们心惊,“我的信息为啥你知道?”成了网络消费时代的普遍焦虑。然而,也不能因为信息的泄露阻碍互联网技术的进步,那有没有好的解决方案,在保证安全的前提下依然能够享受互联网带给人们的便利呢?答案是肯定的。
随着互联网系统规模的不断扩大,大数据时代飞速到来,各领域系统应用软件越来越复杂,用户需要能够自己订阅自己感兴趣的内容,而不是所有的数据一股脑儿地都向用户推送过来,因此,建立了一种模型,即以数据为中心的发布-订阅模型,该模型建立了全局数据空间的概念,发布者方发布“数据”,对数据感兴趣的用户可以获得该数据,任何需要信息分发的应用都可以使用这种数据驱动的网络结构。例如在一款数据发布类型的app上,由于数据量的庞大,上面的数据一般都存放在云服务器上,用户发布数据或者获取数据都是在与云服务器进行交互,用户可能会订阅一些感兴趣的内容,比如“美食”,“摄影”等,有一些数据可能需要你开会员或者要经过认证才能观看,这种“会员”,“认证过的”就是一个个属性,你只有满足这些属性才能访问这些数据,而且用户也希望自己收到的数据是自己订阅过的,而不是一些不感兴趣的内容。
当云服务器被用作代理时,由于云服务器不能完全信任,隐私问题在数据发布订阅系统中变得更为关键。具体来说,有三个主要的隐私要求:1)数据隐私。云服务器和其他未授权用户不允许访问已发布的数据;2)标签隐私。与数据关联的标签不应该透露可以揭示数据内容的关键词;3)陷门隐私。订阅陷门不应透露任何关键字或订阅策略,以保护用户的利益。
基于密文的属性基加密是指,密文关联着一个访问结构,用户的密钥关联着属性集合,只有属性满足访问结构时,才能拿到访问结果隐藏的秘密值,从而才能解密数据。可搜索加密是指在密文上实现可搜索,比如在云盘上搜索数据,但当云上的数据都被加密了,加密之后的数据是一串数字时,怎么搜索需要的数据,原始方法是将所有数据下载下来之后解密完再搜索,这种方法效率低且增加了空间的消耗,所以可搜索加密应运而生,可以在保证安全的前提下,进行搜索。
已有的方案要么是将数据加密,保证了数据安全性,但是没办法正常的进行数据分发/ 订阅的工作,要么就是维持了系统的正常运行,但是数据的安全性没有保障,而且在属性撤销时,已有的方案需要将密文进行更新,这无疑会降低了系统的效率。
发明内容
针对现有技术的不足,本发明的目的在于提供一种发布/订阅环境下用户属性可撤销的方法,本发明保证了系统的正常运行以及数据的机密性,并且经过实验分析,比现有方案的效率更高,存储空间更小。本发明在实现同样的功能下降低了在更新情况下系统的开销,不需要加密之前的密文;而且也保证了发布者的数据隐私,订阅者的兴趣隐私和查询隐私,同时,也抵抗了半可信云服务器对数据的未授权访问,以及未授权的订阅者的合谋攻击。经实验分析,本发明更实用,更快捷。
本发明选择属性基加密与可搜索加密相结合的方式来完成。属性基加密可以控制细粒度地访问,并且具有良好的安全性,在属性撤销方面,本发明选择了属性群的方式来实现这一功能,属性群将“用户-属性”的关系变更为“属性-用户”的关系,并通过向己授权的用户分发一个KEK二叉树,实现属性的即时撤销,由云服务器来维护这些密钥。可搜索加密可以在密文上进行搜索的特性很好地保证了数据的隐私,本发明结合了这两者的优势。
实现本发明目的的具体技术方案是:
一种发布/订阅环境下用户属性可撤销的方法,该包括以下具体步骤:
(A)系统初始化
可信机构在双线性库下任意选择一套参数,在乘法循环群G下随机选取一个生成元g,并生成到另一个乘法循环群GT的双线性映射,然后生成公钥{G,GT,g,ga,gα,h=gβ,gγ,e(g,g)a} 和系统主密钥{α,β,γ,ga},其中,主密钥保密,公钥公开,公钥和系统主密钥按照如下的方式生成:
A1:可信机构随机选取a,
Figure BDA0001720934300000031
其中,
Figure BDA0001720934300000032
表示集合{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:可信机构随机选取
Figure BDA0001720934300000033
为订阅者生成如下私钥:
Figure BDA0001720934300000034
B2:可信机构随机选择
Figure BDA0001720934300000035
为每个属性都随机选取
Figure BDA0001720934300000036
当j∈{Ssub}时,然后为订阅者生成如下的属性密钥
Figure BDA0001720934300000037
B3:可信机构为发布者随机选取
Figure BDA0001720934300000038
然后按照如下公式计算发布者的私钥
Figure BDA0001720934300000039
B4:可信机构根据记录的订阅者-属性对应表,生成一个列表,这个列表是根据属性生成的,每个属性都有一个属性群,属性群里是拥有此属性的订阅者集合,将该列表发送给云服务器。
(C)数据加密
发布者要先定义访问策略(M,ρ),然后用一个随机的对称密钥ks加密要发布的数据,并在访问策略下加密对称密钥ks,只有满足此访问策略的订阅者才能解密该密钥,并且,发布者每次加密数据使用不同的对称密钥,防止攻击者得知一个对称密钥,就能解开所有的密文数据,步骤如下:
C1:发布者要先定义一个访问策略(M,ρ),此访问策略使用访问树的形式定义,矩阵M是根据访问策略生成的访问矩阵,ρ将矩阵M的每一行都映射到一个属性,矩阵M不一定是方阵;然后随机选择
Figure BDA00017209343000000310
步骤如下:构造访问结构树与CPABE的方法相同,为每个节点自上而下地随机选择多项式q(x),每个节点的多项式最高项次数为节点门限值-1,dx=kx-1;先为根节点选择随机数
Figure BDA00017209343000000311
令多项式常数项为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,将对称密钥用此访问策略按照密文策略的属性基加密方式来加密,密文
Figure BDA0001720934300000041
Figure BDA0001720934300000042
其中H1为哈希函数;
(D)索引建立
数据发布者要根据数据相关的关键字生成索引,需要有一个文件和关键字的对应表,发布者用与数据对应的关键字建立索引表,并将索引加密,关键字用Sm来表示,随机选取
Figure BDA0001720934300000043
生成的索引为
Figure BDA0001720934300000044
其中Wi的生成按如下公式,为每一个关键字选取
Figure BDA0001720934300000045
加密后的索引与步骤(C)加密过的数据密文一起发送给云服务器;
(E)订阅者陷门生成
订阅者为了订阅感兴趣的数据,订阅者首先要定义自己的订阅策略(Mtt),这个订阅策略订阅者采用LSSS(线性秘密共享方案)来定义为(Mtt),矩阵Mt是根据订阅策略生成的订阅矩阵,ρt将矩阵Mt的每一行都映射到一个关键字,矩阵Mt不一定是方阵,其中Mt是一个 nt*lt的订阅矩阵,ρt将矩阵中的m每一行都映射到一个关键字上,而且映射到的关键字要互不相同,再根据从可信机构处拿到的私钥和系统公钥以及订阅策略生成陷门,陷门包含了要查询的关键字集合,步骤如下:
E1:随机选取
Figure BDA0001720934300000046
再选择随机向量
Figure BDA0001720934300000047
其中yt,2,…,yt,l被用于分享秘密st,对每一行,计算
Figure BDA0001720934300000048
Mt,j为矩阵的第j行,tj=λj*zt,按如下公式计算陷门
Figure BDA0001720934300000049
Figure BDA00017209343000000410
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,选择一个随机数
Figure BDA0001720934300000051
然后加密CT生成新密文
Figure BDA0001720934300000052
Figure BDA0001720934300000053
F3:云服务器生成header信息,以便让用户更新自己的密钥,
Figure BDA0001720934300000054
注意EK为M在K下的对称加密算法,用于将属性群密钥发送给有效用户。最简单的算法就是分组加密:EK:{0,1}k-→{0,1}k,其中k为密钥K的长度;
F4:当收到用户任何请求时,数据服务管理商用头部信息和密文回应。属性组密钥分发协议是一种无状态方法。因此,即使用户在实际应用中无法持续更新密钥,只要他们未被属性组撤销并且满足访问策略时,就可以在任何时间发送请求来收到属性组密钥,进行解密;
F5:当属性发生变更时,云服务器会先更新属性群密钥,然后将在属性变更之后发布者再发送过来新的数据时,用此更新过的属性群密钥加密密文:为所有Gy∈G,选择一个随机数然后加密CT生成新密文
Figure BDA0001720934300000062
Figure BDA0001720934300000063
(G)策略检查
当订阅者要去查询数据时,要向云服务器提交含有关键字的陷门,云服务器拿到陷门后,要进行三个检测,如果通过,就返回重加密后的数据以及header信息,否则输出错误信息, 这三个检测包含一个匹配检测和两个策略检测,这三个检测的顺序是无序的,此处任选一个顺序叙述,云服务器首先检测数据的关键字与陷门关键字是否匹配,然后检测是否满足订阅策略,若通过检测,再检测订阅者的属性是否满足访问策略,从检测结果中判断是否进行下一步操作。
(H)数据解密
订阅者提交了查询陷门,如果收到云服务器返回的错误信息,说明没有权限访问或者没有满足订阅策略的数据,如果收到云服务器返回的密文和header信息,则可以进行解密操作,包括以下几个步骤:
H1:订阅者拿到重加密密文和header信息后,使用路径密钥解密header中的属性群密钥,根据步骤(G)中提到的最小覆盖集,如果订阅者在属性群里Gy,说明他具有属性atty,则他的 K能够解密得到属性群密钥
Figure BDA0001720934300000064
其中K∈KEK(Gy)∩PKt,注意,只有在属性群中的订阅者才有有效的K;
H2:然后根据拿到的属性群密钥
Figure BDA0001720934300000065
用此密钥根据算法更新自己的私钥,更新私钥的算法公式为:
Figure BDA0001720934300000066
H3:然后解密对称密钥Ks,用重加密后的私钥解密密文得到对称密钥Ks,此对称密钥在加密阶段用于加密发布者的要发布的数据,解密对称密钥Ks的步骤如下:先解密访问树中叶子节点隐藏的秘密值,按照如下的公式:
Figure BDA0001720934300000067
然后用叶子节点的值去递归解密根节点的秘密指,递归公式如下:
Figure BDA0001720934300000071
Figure BDA0001720934300000072
其中i=index(z),S′z={index(z)}:z∈Sx;然后根据公式解密对称密钥
Figure BDA0001720934300000073
H4:然后订阅者用此对称密钥解密密文即可拿到明文数据。
如果有订阅者属性撤销或者获得新的属性,会告知可信机构,可信机构生成新的属性列表发给云服务器,云服务器按照重加密步骤重新随机选择
Figure BDA0001720934300000074
按照之前的方式生成最小覆盖集,重加密数据并生成新的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}是一个特征集合,集合
Figure BDA0001720934300000075
是单调的,如果b∈c,则c∈A,一个单调的访问结构是{P1,P2,…,Pn}的一个非空子集A,也即
Figure BDA0001720934300000076
3.访问树
将访问控制政策描述为树(Access Tree)的形式,在访问树中,每一个叶子节点都是一个属性,每一个非叶子节点都代表一个门限,里面的数据形式为(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(Linear Secret Sharing Scheme,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-Based Encryption,ABE)是基于身份加密(Identity-Based Encryption)的扩展。在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=25696031527279116570779607084554645080349648330304774630575159478313173505 99032821072941519068383867901528448716173240951605611983447909677546485722430162 ,7408781214719168952226775514844641356635666077307294169509817308758493993976491 535467845768608128272711254154215859622786521791918032173907413207048232774,0
根据选取的参数,可信机构生成公钥和系统主密钥,并把系统主密钥私密保存。其中,系统公钥和主密钥按照如下方式生成:
(1)可信机构随机选择:
a=719992491368241803587412822766013222460303806728
α=231995578319932333904504599841724563421343389000
β=235233548241610880860944210070460548436516738005
γ=721376446381428531944062720695300489948175831788
(2)可信机构计算:
ga=1024344175200531074112782583659852078124966343265062857686646230328270287 03381979272442625929788856726925629984528872528503537151327896315323795759548088 0,789820155434109831426242030383240537311927425808971672900958580874990509809245 3821597794361457121673767852012244642206082987915480904634037587172787613057,0
gα=8428032252865638032695952566722167560429314238877457613835485905405460967 26649442066898316322170059118212553823798381182771130038581266695729113375036908 2,166194057332166714039882783723336896787006963434474628873320520720866462440637 3297181006561415040008597721460361525575483660672100403374774080832356217991,0
h=
gβ=2333374316737148756378961914441742787856939855256863480318227813070086950284 590944423971491009286342003053632665201410632356494991663150950107022406800210,7 48105558044919098400932765274841505684030278709944374870701104327452854426348040 7970127666955292968669926699006902217270759131150610535777825485047682619,0
gγ=4894165451417345911149259660478641748861796234277850052579143551341161637 59066182734487412022033434496925195326359262121263855254618347361626184084251586 4,203452192862328768570585742866506403700902223090680925748109591627246585872847 8012413589838198827615832367623828312151963926931429312306835227594111154587,0
e(g,g)a={x=561665381493052628038140862581788735864354224526801438775741761708 23099703410503130830126496558629911738141523716362912804714483163500390416235534 17558952,y=181980964732648657505241732131675462936695969758099303372753279724269 78811275101236611093781735290679787501261273402305482771835740779577102174263681 50068}
主私钥为MK={α,β,γ,ga},系统公钥为PK={G,g,ga,gα,h=gβ,gγ,e(g,g)a}。
步骤二、订阅者和发布者私钥及订阅者属性密钥生成
可信机构接收订阅者提交的属性集合S_sub,默认此集合为“hello”,“XX学校”,“软件学院”,“人”,为订阅者生成私钥。
(1)可信机构随机选取:
rsub=148891562825582041929180538826879890309875388318
(2)可信机构计算:
Figure BDA0001720934300000111
Figure BDA0001720934300000112
可信机构为发布者生成私钥
(1)可信机构随机选取:
rpub=116367301561553073700998000043885426947942932476
(2)可信机构计算:
Figure BDA0001720934300000121
Figure BDA0001720934300000122
订阅者的私钥为
Figure BDA0001720934300000123
Figure BDA0001720934300000124
发布者的私钥为
Figure BDA0001720934300000125
Figure BDA0001720934300000126
可信机构为订阅者生成属性密钥:
(1)可信机构随机选取(为每个属性选择rj,这里仅写一个作为示例):
r=160583286023103999888130562815376404923708583001
rj=256369310787973362537742366821423754625365726374
(2)可信机构计算:
Figure BDA0001720934300000127
Figure BDA0001720934300000128
Figure BDA0001720934300000131
Figure BDA0001720934300000132
订阅者的属性密钥为
Figure BDA0001720934300000133
可信机构根据记录的属性与订阅者的对应表生成一个列表并发送给云服务器。
步骤三、数据加密
(1)发布者随机选取:
ks={x=2773405744124513997622341053642960136161315765149584899318296563194830 03259422016326440495870354214089334567264185397690985165778064050731167785676749 837,y=18440636496145264936371809266872696845289838064829282978522821136030526297 68662506887781286423303380457575283783226291127795125149783443031893096266303855 }
(2)发布者用此对称密钥加密数据,定义访问策略,此策略默认为:“hello&(2of(XX 学校,软件学院,研究生))”,生成访问树,然后随机选取:
s=359861479302582801439734069097364030447857224827
(3)发布者计算:
Figure BDA0001720934300000134
C=
hs=35527376060391405724839275954454879935202118211545332022814332555134489229871 81638953411431185159987501716685520739427084679723251285381718671895146858187,83 48428402942476456452509200660397449844657538187547336682874021143918570780964031 073167478782767525359092061334456525394808354816794582352541504162952135,0
Figure BDA0001720934300000141
Figure BDA0001720934300000142
密文为
Figure BDA0001720934300000143
其中H1为哈希函数。
步骤四、索引生成
数据发布者要根据数据相关的关键字生成索引,关键字用6m来表示,默认为;
(1)随机选取:
rm=51651304347765452814629561732208256815319717952
(2)发布者计算:
Figure BDA0001720934300000144
Figure BDA0001720934300000145
Figure BDA0001720934300000146
Figure BDA0001720934300000151
Figure BDA0001720934300000152
加密后的索引为
Figure BDA0001720934300000153
Figure BDA0001720934300000154
步骤五、陷门生成
(1)订阅者为了订阅感兴趣的数据,首先要在关键字上定义一个订阅策略,这个订阅策略用LSSS结构来定义为(Mtt),Mtt如下;
Figure BDA0001720934300000155
Figure BDA0001720934300000156
(2)订阅者计算:
Figure BDA0001720934300000157
tj=561601514856867166835443762140034029240870037018
Figure BDA0001720934300000158
Figure BDA0001720934300000159
Figure BDA0001720934300000161
Figure BDA0001720934300000162
Figure BDA0001720934300000163
陷门为
Figure BDA0001720934300000164
Mt随着陷门一起发送给云服务器,ρt是要保密。
步骤六、重加密数据及建立属性群
(1)云服务器根据从可信机构发过来的列表建立属性群,然后选择一个随机数
Figure BDA0001720934300000165
作为属性群密钥:
Figure BDA0001720934300000166
(2)云服务器在密文CT的基础上为每个属性重加密,计算:
Figure BDA0001720934300000167
(3)生成Header信息,用一种对称加密算法即可,计算
Figure BDA0001720934300000168
步骤七、策略检测
云服务器收到订阅者的查询陷门时,要进行策略检测,首先要检测服务器上的数据的关键字是否满足订阅者的订阅策略,通过检测后,检测订阅者的属性是否满足数据的访问策略,满足策略后返回上一步的重加密信息和header信息。
步骤八、数据解密
(1)订阅者首先要解密属性群密钥,解密出属性群密钥:
Figure BDA0001720934300000169
(2)更新自己的私钥:
Figure BDA0001720934300000171
(3)根据解密公式解密CT得到Ks
Ks={x=2773405744124513997622341053642960136161315765149584899318296563194830 03259422016326440495870354214089334567264185397690985165778064050731167785676749 837,y=18440636496145264936371809266872696845289838064829282978522821136030526297 68662506887781286423303380457575283783226291127795125149783443031893096266303855 }
根据对称密钥解密数据得到明文。
注意:如果发生了订阅者属性变更,订阅者会将此消息通知给可信机构,可信机构再发送给云服务器,则云服务器需要重新建立属性群,选取新的属性群密钥,操作与重加密相同,订阅者更新密钥即可完成解密。
以上显示和描述了本发明的基本原理和主要特征以及本发明的优点,本领域的技术人员应该了解。在不背离所附权利要求书限定的本发明的宗旨和范围的前提下,可以对本发明进行各种形式和细节上的修改。实施方式应该仅认为是说明性的,而不是强制性的。因此,本发明的详细描述不限定本发明的范围,本发明的范围应该由所附权利要求书限定,并且本发明的范围内的所有区别技术特征应理解为包含在本发明内。

Claims (1)

1.一种发布/订阅环境下用户属性可撤销的方法,其特征在于,该方法包括以下具体步骤:
(A)系统初始化
可信机构在双线性库下任意选择一套参数,在乘法循环群G下随机选取一个生成元g,并生成到另一个乘法循环群GT的双线性映射,然后生成公钥{G,GT,g,ga,gα,h=gβ,gγ,e(g,g)a}和系统主密钥{α,β,γ,ga},其中,主密钥保密,公钥公开;
(B)订阅者和发布者私钥及订阅者属性密钥生成
可信机构根据订阅者提供的属性集合生成私钥和属性密钥后发送给订阅者,然后发布者向可信机构提供身份标识,可信机构为其生成私钥并返回给发布者,之后可信机构将属性及其对应的用户列表发送给云服务器;
(C)数据加密
发布者先要定义访问策略(M,ρ),然后用一个随机的对称密钥加密要发布的数据,并在访问策略下加密对称密钥,只有满足此访问策略的订阅者才能解密该密钥,并且,发布者每次加密数据使用不同的对称密钥,防止攻击者得知一个对称密钥,就能解开所有的密文数据;
(D)索引建立
发布者用与数据对应的关键字建立索引表,并将索引加密,加密后的索引与步骤(C)加密过的数据密文一起发送给云服务器;
(E)订阅者陷门生成
订阅者首先要定义自己的订阅策略(Mt,ρt),再根据从可信机构处拿到的私钥和系统公钥以及订阅策略生成陷门,陷门包含了要查询的关键字集合,然后将订阅策略中的矩阵Mt发送给云服务器,而另外一个向量ρt则需要私密保存,不能泄露;
(F)重加密数据及属性群建立
云服务器拿到发布者要发布的数据的密文后,根据属性群列表即步骤(B)中可信机构发送给云服务器的属性-用户列表,按照组播密钥管理的方式在属性群订阅者间共享属性群密钥,云服务器在之后发布者再发送过来新的数据时用此密钥重加密密文,返回给属性群中的订阅者一个路径密钥,建立密钥更新组件header,以便用户的密钥更新;如果发生了属性的变更--有新的订阅者加入某个属性群或者有订阅者失去某个属性即退出属性群,用户要向可信机构报告此事件,可信机构再发送给云服务器,云服务器要根据这一事件更新属性群列表,重新生成一个新的属性群列表,只需要更新受用户变更影响的属性群列表,其他的不用进行更新;并共享新的属性群密钥,之后用此密钥来重新加密数据,而已经在云服务器上的数据即已经发布过的数据,不需要进行重新加密;
(G)策略检查
当订阅者要去查询数据时,要向云服务器提交含有关键字的陷门,云服务器拿到陷门后,要进行三个检测,如果通过,就返回重加密后的数据以及header信息,否则输出错误信息;
(H)数据解密
本步骤分为密钥更新与解密;
密钥更新:订阅者拿到重加密密文和header信息后,使用路径密钥解密header中的属性群密钥,用此密钥根据算法更新自己的私钥,更新私钥的算法公式为:
Figure FDA0002715500970000021
Figure FDA0002715500970000022
解密;用重加密后的私钥解密密文得到对称密钥,此对称密钥在加密阶段用于加密发布者的要发布的数据,用此对称密钥解密密文即可拿到明文数据;其中:
步骤(B)所述可信机构根据订阅者提供的属性集合生成私钥和属性密钥:一方面,可信机构根据订阅者提交的属性集合,随机选取
Figure FDA0002715500970000023
为订阅者生成如下私钥:
Figure FDA0002715500970000024
Figure FDA0002715500970000025
且为发布者随机选取
Figure FDA0002715500970000026
Figure FDA0002715500970000027
然后按照如下公式计算发布者的私钥
Figure FDA0002715500970000028
另一方面,可信机构随机选择
Figure FDA0002715500970000029
为每个属性都随机选取
Figure FDA00027155009700000210
当j∈{Ssub}时,然后为订阅者生成如下的属性密钥
Figure FDA00027155009700000211
步骤(C)所述发布者先要定义访问策略(M,ρ):此访问策略使用访问树的形式定义,矩阵M是根据访问策略生成的访问矩阵,ρ将矩阵M的每一行都映射到一个属性,矩阵M不一定是方阵;
步骤(E)所述订阅者首先要定义自己的订阅策略(Mt,ρt):订阅者采用的是LSSS来定义自己的订阅策略,矩阵Mt是根据订阅策略生成的订阅矩阵,ρt将矩阵Mt的每一行都映射到一个关键字,矩阵Mt不一定是方阵,在定义订阅策略后,只需要将订阅策略中的矩阵Mt发送给云服务器,而另一个向量ρt保持隐私状态;
步骤(F)所述云服务器在之后发布者再发送过来新的数据时用此密钥重加密密文:为所有Gy∈G,选择一个随机数
Figure FDA00027155009700000212
然后加密CT生成新密文
Figure FDA00027155009700000213
Figure FDA00027155009700000214
步骤(G)所述云服务器拿到陷门后,要进行三个检测:三个检测包含一个匹配检测和两个策略检测,这三个检测的顺序是无序的,此处任选一个顺序叙述,云服务器首先检测数据的关键字与陷门关键字是否匹配,然后检测是否满足订阅策略,若通过检测,再检测订阅者的属性是否满足访问策略,从检测结果中判断是否进行下一步操作。
CN201810731147.6A 2018-07-05 2018-07-05 一种发布/订阅环境下用户属性可撤销的方法 Active CN108989026B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810731147.6A CN108989026B (zh) 2018-07-05 2018-07-05 一种发布/订阅环境下用户属性可撤销的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810731147.6A CN108989026B (zh) 2018-07-05 2018-07-05 一种发布/订阅环境下用户属性可撤销的方法

Publications (2)

Publication Number Publication Date
CN108989026A CN108989026A (zh) 2018-12-11
CN108989026B true CN108989026B (zh) 2020-12-22

Family

ID=64537142

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810731147.6A Active CN108989026B (zh) 2018-07-05 2018-07-05 一种发布/订阅环境下用户属性可撤销的方法

Country Status (1)

Country Link
CN (1) CN108989026B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109981641B (zh) * 2019-03-26 2020-10-02 北京邮电大学 一种基于区块链技术的安全发布订阅系统及发布订阅方法
CN110012312B (zh) * 2019-03-28 2021-09-28 南京信息工程大学 适于付费电视系统的基于密钥管理的访问控制方法
CN110113331B (zh) * 2019-04-30 2021-11-05 福建师范大学 一种隐藏访问结构的分布式密文策略属性基加密方法
CN111092884A (zh) * 2019-12-16 2020-05-01 中国南方电网有限责任公司 对业务数据进行发布订阅的方法、装置和计算机设备
CN112671717B (zh) * 2020-12-02 2022-07-15 北京邮电大学 对加密后的订阅和事件进行匹配的方法
CN112787822B (zh) * 2021-01-05 2022-04-12 贵州大学 一种大属性集下的基于sm9的属性加密方法及系统
US11558185B2 (en) 2021-03-19 2023-01-17 Raytheon Bbn Technologies Corp. Stream-based key management
US11804949B2 (en) * 2021-03-19 2023-10-31 Raytheon Bbn Technologies Corp. Subscriber revocation in a publish-subscribe network using attribute-based encryption
CN113422680B (zh) * 2021-06-02 2022-12-23 中国电子产品可靠性与环境试验研究所((工业和信息化部电子第五研究所)(中国赛宝实验室)) 数据加密传输系统和数据加密传输方法
CN113378230A (zh) * 2021-07-05 2021-09-10 东南大学 一种dds分布式系统的数据访问控制方法
CN114338229B (zh) * 2022-01-27 2022-10-04 华东师范大学 一种轻量级动态广播代理重新加密及云数据共享方法
CN114615049A (zh) * 2022-03-08 2022-06-10 斑马网络技术有限公司 一种针对事件订阅的权限检查方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102546161A (zh) * 2010-12-08 2012-07-04 索尼公司 可撤销的基于密文政策的属性基密码方法、设备和系统
WO2015111107A1 (ja) * 2014-01-22 2015-07-30 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 認証方法
CN105592100A (zh) * 2016-01-26 2016-05-18 西安电子科技大学 一种基于属性加密的政务云访问控制方法
CN107566386A (zh) * 2017-09-14 2018-01-09 上海海事大学 一种可撤销的属性基加密方法
CN108062485A (zh) * 2017-12-15 2018-05-22 北京工业大学 一种面向多服务器多用户的模糊关键字搜索方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7620630B2 (en) * 2003-11-12 2009-11-17 Oliver Lloyd Pty Ltd Directory system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102546161A (zh) * 2010-12-08 2012-07-04 索尼公司 可撤销的基于密文政策的属性基密码方法、设备和系统
WO2015111107A1 (ja) * 2014-01-22 2015-07-30 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 認証方法
CN105592100A (zh) * 2016-01-26 2016-05-18 西安电子科技大学 一种基于属性加密的政务云访问控制方法
CN107566386A (zh) * 2017-09-14 2018-01-09 上海海事大学 一种可撤销的属性基加密方法
CN108062485A (zh) * 2017-12-15 2018-05-22 北京工业大学 一种面向多服务器多用户的模糊关键字搜索方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"Attribute-based encryption with non-monotonic access structures";R. Ostrovsky;《Proceedings of the 14th ACM conference on Computer and communications security》;20071231;全文 *
"Cloud-based electronic health record system supporting fuzzy keyword search";Zheli Liu;《Soft Computing》;20161231;全文 *
"云存储环境下基于属性的密文策略访问控制机制研究";许春香;《电子科技大学博士学位论文》;20151203;全文 *

Also Published As

Publication number Publication date
CN108989026A (zh) 2018-12-11

Similar Documents

Publication Publication Date Title
CN108989026B (zh) 一种发布/订阅环境下用户属性可撤销的方法
CN110474893B (zh) 一种异构跨信任域密态数据安全分享方法及系统
Zhong et al. Multi-authority attribute-based encryption access control scheme with policy hidden for cloud storage
Jung et al. Privacy preserving cloud data access with multi-authorities
Jung et al. Control cloud data access privilege and anonymity with fully anonymous attribute-based encryption
CN106850652B (zh) 一种仲裁可搜索加密方法
CN108768951B (zh) 一种云环境下保护文件隐私的数据加密和检索方法
Han et al. A data sharing protocol to minimize security and privacy risks of cloud storage in big data era
Huang et al. PRECISE: Identity-based private data sharing with conditional proxy re-encryption in online social networks
He et al. Lightweight attribute based encryption scheme for mobile cloud assisted cyber-physical systems
Zhou et al. Privacy-preserved access control for cloud computing
Li et al. Privacy-preserving data utilization in hybrid clouds
CN111431898A (zh) 用于云协助物联网的带搜索的多属性机构属性基加密方法
Zhang et al. A privacy protection scheme for IoT big data based on time and frequency limitation
CN114036240A (zh) 一种基于区块链的多服务商隐私数据共享系统和方法
Zhang et al. Time and attribute based dual access control and data integrity verifiable scheme in cloud computing applications
Qinlong et al. Improving security and efciency for encrypted data sharing in online social networks
Sabitha et al. Multi-level on-demand access control for flexible data sharing in cloud
Cao et al. A Lightweight Fine‐Grained Search Scheme over Encrypted Data in Cloud‐Assisted Wireless Body Area Networks
Ramachandran et al. Secure and efficient data forwarding in untrusted cloud environment
Wang et al. Research on Ciphertext‐Policy Attribute‐Based Encryption with Attribute Level User Revocation in Cloud Storage
Zhang et al. Multi-authority attribute-based encryption with user revocation and outsourcing decryption
Swetha et al. Security on mobile cloud computing using cipher text policy and attribute based encryption scheme
Dhal et al. RACC: an efficient and revocable fine grained access control model for cloud storage
Chennam et al. Cloud security in crypt database server using fine grained access control

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