«上一篇 下一篇»
  计算机工程  2020, Vol. 46 Issue (7): 150-158  DOI: 10.19678/j.issn.1000-3428.0055413
0

引用本文  

韩舒艳, 努尔买买提·黑力力. 选择性隐藏树型访问结构的CP-ABE方案[J]. 计算机工程, 2020, 46(7), 150-158. DOI: 10.19678/j.issn.1000-3428.0055413.
HAN Shuyan, Nurmamat Helil. CP-ABE Scheme Using Selectively Hidden Tree Access Structure[J]. Computer Engineering, 2020, 46(7), 150-158. DOI: 10.19678/j.issn.1000-3428.0055413.

基金项目

国家自然科学基金(61562085,61862059)

通信作者

努尔买买提·黑力力(通信作者), 教授、博士

作者简介

韩舒艳(1994-), 女, 硕士研究生, 主研方向为密码学、信息安全

文章历史

收稿日期:2019-07-08
修回日期:2019-09-18
选择性隐藏树型访问结构的CP-ABE方案
韩舒艳 , 努尔买买提·黑力力     
新疆大学 数学与系统科学学院, 乌鲁木齐 830046
摘要:隐藏访问结构是密文策略属性基加密(CP-ABE)的安全操作,可有效防止敏感信息泄露,而现有树型访问结构的CP-ABE方案为完全公开或完全隐藏访问结构,造成策略保密性差及加解密计算量较大。为此,提出一种选择性隐藏树型访问结构的CP-ABE方案。使用互信息方法提取敏感属性特征,筛选和隐藏访问结构中含有原始属性集信息的部分属性,使选择隐藏与完全隐藏具有相同的保密效果。同时,以最少匹配代价判断用户解密能力,使无解密能力的用户尽早放弃解密。分析结果表明,与公开访问或完全隐藏访问结构方案相比,该方案的安全性更高且计算量更小。
关键词密文策略属性基加密    属性提取    选择性隐藏    互信息    属性匹配    访问控制    
CP-ABE Scheme Using Selectively Hidden Tree Access Structure
HAN Shuyan , Nurmamat Helil     
College of Mathematics and System Science, Xinjiang University, Urumqi 830046, China
Abstract: Hidden access structure is a secure operation of Ciphertext Policy Attribute Base Encryption(CP-ABE), which can effectively prevent the leakage of sensitive information.However, tree access structure used by existing CP-ABE schemes are either completely open or completely hidden, which results in poor policy confidentiality and a large amount of encryption and decryption computation.To address the problem, this paper proposes a CP-ABE scheme to selectively hide the tree access structure.The mutual information method is used to extract sensitive attribute features, filter and hide the attributes that contain the original attribute set information in the access structure, so that the selectively hidden structure has the same security as the fully hidden structure.At the same time, the decryption ability of users is judged at the lowest matching cost, so that the users without decryption ability give up decryption as early as possible.Analysis results show that compared with the schemes using open access or fully hidden access structure, the proposed scheme has higher security and less computation.
Key words: Ciphertext Policy Attribute Based Encryption(CP-ABE)    attribute extraction    selectively hidden    mutual information    attribute matching    access control    
0 概述

云存储作为一种网络在线存储模式, 在提供数据存储便利的同时, 其引发的数据安全问题也给数据所有者带来困扰。由于云存储数据存放在由第三方托管的多台虚拟服务器上, 虚拟服务器可能向以进行商业欺骗和敲诈等活动谋取利益的未授权用户提供数据, 因此数据所有者通常将数据加密后存储在云上, 只有授权用户才能访问。Fuzzy-IBE[1]、KP-ABE[2]和密文策略属性基加密(Ciphertext Policy Attribute Based Encryption, CP-ABE)[3]是数据加密的常用方案。在CP-ABE方案中, 由于数据所有者拥有访问控制主动权, 能较好地解决云上安全存储问题, 因此该方案适用于云服务器。

当前在多数CP-ABE方案[4-6]中, 访问结构以明文形式嵌入到密文中, 由于其可能含有敏感信息, 因此需要被隐藏。文献[7]提出两种隐藏访问结构CP-ABE方案, 通过具有多值属性的“与”门结构, 实现保密消息和访问结构功能。文献[8]提出隐藏访问结构CP-ABE方案并证明该方案在标准模型下绝对安全。文献[9]在解密运算前提出匹配技术, 减少不符合访问结构用户在解密过程中的开销。文献[7-9]均基于“与”门提出方案访问结构。文献[10]提出基于访问树的策略隐藏属性加密方案并论证该方案具有安全性。文献[11]提出表达能力较强的素数阶群中隐藏属性值CP-ABE方案且指出其安全类型为选择性安全。文献[12]提出素数阶群中部分隐藏树型访问结构的CP-ABE方案, 该方案经验证完全安全。

本文在文献[11, 13]的基础上, 提出一种选择性隐藏树型访问结构的CP-ABE方案[14-16]。采用互信息(Mutual Information, MI)方法提取敏感属性, 对含有原始属性集信息的部分属性进行隐藏, 针对属性隐藏导致用户对自己解密能力无法提前判断的情形, 利用以最少匹配代价判断解密能力的方法, 使无解密能力的用户尽早放弃解密。

1 敏感属性提取 1.1 访问结构

本文使用的树型访问结构T内部节点支持“与”(AND)门、“或”(OR)门和“门限”(t of n)门。假设数据所有者ua的数据T中全体属性集为A={a1, a2, …, an}。访问数据的用户ut属性集表示为S′ua制定T, 利用互信息方法筛选出包含原始属性集A中绝大部分或者全部信息量的部分属性, 隐藏部分属性, 再将部分隐藏的T和密文一起分享到云服务器。ut根据未隐藏属性不能推测出加密信息。

隐藏部分属性的访问树如图 1所示。假设有一份医疗数据为(住院号:005 AND医院:医院A)OR(2 of{医院:医院B; 医生:心脏病专家; 医院科室:心脏病内科}), 如果不隐藏属性, 则从T中可直接推测出医院A住院号为005的患者有心脏病。但是该患者不愿公开病情, 因此医院在存储该患者信息时, 选出并隐藏“心脏病专家”和“心内科”这两项包含较多敏感信息量的属性, 然后分享到云端。访问者由隐藏部分属性的访问树不能推测出患者有心脏病, 从而达到保护患者病史隐私目的。从信息熵角度, 属性部分隐藏访问树与属性完全隐藏访问树的保密效果相同。

Download:
图 1 隐藏部分属性的访问树 Fig. 1 Access tree with some attributes hidden
1.2 敏感属性提取算法

本文方案对T中属性进行选择性隐藏, 选择哪些属性隐藏是重点考虑的问题。如果一个T中有n个属性, 则选择性隐藏方案共有2n种, 其中包括不隐藏全体属性和隐藏全体属性2种情形, 本文着重考虑隐藏属性个数0 < t < n的情形。

选择属性隐藏需要客观依据, 本文借助特征提取方法选取需隐藏的属性。目前, 常用特征提取方法主要包括互信息[17]、期望交叉熵、信息增益、词频法、文本证据权、几率比和卡方统计量等方法[18-20]。其中, 互信息方法应用广泛[21-23], 本文采用该方法来选择敏感属性。

本文属性提取过程从空集S开始, 采用步进方式, 每次选择1个属性。令:

$ { {\rm{score}} ({a_i}) = \frac{1}{n}\sum\limits_{t = 1}^n I ({a_i};{a_t})} $ (1)
$ {{l_T} = \mathop {{\rm{ argmax }}}\limits_{1 \le i \le n} \{ {\rm{score}} ({a_i})\} } $ (2)

第1次属性选择a1=al1, 在只选择1个属性的情况下, a1=al1提供信息量最多。假设U为当前未被选择的属性集合, Sm-1为已选m-1个属性组成的集合, 相对于U中其他属性, 第m个属性am与整个属性集合A最大程度相关, 同时与Sm-1中已选属性最小程度冗余。根据无监督最小冗余-最大相关标准(UmRMR), 设:

$ {l_m} = \mathop {{\rm{ argmax }}}\limits_{1 \le i \le n} \{ {\rm{UmRMR}}({a_i})|{a_i} \in U\} $ (3)

其中, UmRMR(ai)表示为:

$ {\rm{UmRMR}}({a_i}) = {\rm{Re}}{\kern 1pt} {\kern 1pt} {\kern 1pt} l({a_i}) - \frac{1}{{m - 1}}\sum\limits_{{a_t} \in {S_{m - 1}}} { {\rm{Re}}{\kern 1pt} {\kern 1pt} {\kern 1pt} } d({a_i};{a_t}) $ (4)

相关度表示为:

$ {\rm{Re}}{\kern 1pt} {\kern 1pt} {\kern 1pt} l({a_i}) = \frac{1}{n}\sum\limits_{t = 1}^n I ({a_i};{a_t}) $ (5)

冗余度表示为:

$ {\rm{Re}}{\kern 1pt} {\kern 1pt} {\kern 1pt} d({a_i};{a_t}) = {\rm{Re}}{\kern 1pt} {\kern 1pt} {\kern 1pt} l({a_t}) - {\rm{Re}}{\kern 1pt} {\kern 1pt} {\kern 1pt} l({a_t}|{a_i}) $ (6)

条件相关度表示为:

$ {\rm{Re}}{\kern 1pt} {\kern 1pt} {\kern 1pt} l({a_t}|{a_i}) = \frac{{H({a_t}|{a_i})}}{{H({a_t})}} {\rm{Re}}{\kern 1pt} {\kern 1pt} {\kern 1pt} l({a_t}) $ (7)

其中, 第m个属性选择为am=alm。在选择后续属性时, 采用类似方式逐个进行选择。

定义1 (敏感属性)   定义访问结构中属性ai为敏感属性, 属性之间互信息存在以下关系式:

$ {\rm{Re}}{\kern 1pt} {\kern 1pt} {\kern 1pt} l({a_i}) - \frac{1}{{m - 1}}\sum\limits_{{a_t} \in {S_{m - 1}}} { {\rm{Re}}{\kern 1pt} {\kern 1pt} {\kern 1pt} } d({a_i};{a_t}) \ge k $ (8)

其中, k为数据所有者ua规定的阈值。如果属性之间互信息满足式(8), 则敏感属性选取算法过程如下:

1) 初始化:原始属性集A={a1, a2, …, an}, 设定初始候选集S= $\varnothing $, Aδ为被选所有敏感属性组成的集合。

2) 预先计算:对于$\forall a_{i}, a_{t} \in A $, 计算信息熵H(ai)、互信息I(ai; at)、属性ai的相关度Re l(ai)和冗余度Re d(ai; at)。

3) 通过式(1)找到属性al1U=U\al1, S={al1}。

4) 根据式(3)找到属性almU=U\alm, S=S∪{alm}。

5) 重复上述步骤, 直到所有属性ai满足$ \operatorname{Re}l\left( {{a}_{i}} \right)-\frac{1}{m-1}\sum\limits_{{{a}_{i}}\in {{S}_{m-1}}}{\operatorname{Re}}d\left( {{a}_{i}};{{a}_{t}} \right)\ge k$, 算法结束。

6) 输出T中的Aδ

经算法筛选出的敏感属性集合{a1, a2, …, ad}记为Aδ, 其中am=alm, m=1, 2, …, d(d < n)。

2 用户属性快速匹配

属性部分隐藏导致ut在解密前无法确定自己是否有解密能力, 因此, 在解密操作前, 如果ut能提前判断自己没有解密能力, 则其不再进行后续解密操作。本文结合访问树分析对用户属性进行快速匹配, 以最少匹配代价判断自己的解密能力, 使无解密能力的ut尽早放弃解密。

定义2 (极小集)   满足T的最小属性集合为极小集, 其特点包括:1)极小集交集非空; 2)极小集交集为空集。

定义3 (属性区分(Attribute Discrimination, AD))   定义属性在给定的极小集中出现频次为属性区分度。

定义4 (优先匹配次序)   给定的访问树T中, 设$ \forall a_{1}, a_{2} \in A$, 假设这两个属性对决定ut能否解密有必然关系, 若AD(a1)>AD(a2), 则优先匹配次序定义为${{a}_{\text{1}}}\succ {{a}_{\text{2}}} $, 其中, AD(a1)和AD(a2)分别表示a1a2的区分度。

优先匹配次序在T的属性匹配过程有以下性质:若ut使用优先匹配次序来匹配自己所拥有的属性, 则其总匹配次数最少, 即ut能够最早发现自己是否有继续解密的必要。

对该性质分析如下:

1) 若满足T的极小集交集非空, 则ut需判断其是否拥有交集中的元素, 若没有拥有极小集交集中任意元素, 则其不能解密。假设满足T的极小集为$ S_{i}, \left\{S_{i}\right\} \subseteq 2^{\left\{a_{1}, a_{2}, \cdots, a_{n}\right\}} \backslash \varnothing$, 设所有极小集交集为$ \bigcap_{i} S_{i}=\left\{a_{1}, a_{2}, \cdots, a_{t}\right\}, t \leqslant n$, 交集中元素在T中的特点为从根节点到所对应叶子节点整条路径节点均为“AND”节点。如果此交集中元素被隐藏, 则对于观测到自己解密能力由这些隐藏属性决定的ut需用自己属性去计算Hash值, 看其能否与交集中隐藏属性的Hash值匹配, 若匹配成功则ut有能力解密。假设ut属性有|S′|个, 则{a1, a2, …, at}中每个属性平均匹配次数为(|S′|+1)/2, 若ut不匹配极小集交集中任意元素, 则终止解密。

特别地, 当t=n时, 满足T的极小集S1={a1, a2, …, an}唯一。此时ut需将自身属性与S1中属性进行Hash值配对, 且必须拥有S1中每个属性才能解密。

极小集交集非空的访问树如图 2所示。其中, 满足T的极小集分别为S1={a1, a2, a3, a5}、S2={a1, a2, a4, a5}、S3={a1, a3, a4, a5}、S4={a1, a2, a3, a6}、S5={a1, a2, a4, a6}和S6={a1, a3, a4, a6}, 极小集交集$\bigcap\limits_{i = 1}^6 {{S_i}} = \left\{ {{a_1}} \right\} $, 利用优先匹配次序, 若ut没有a1, 则其不能解密。如果a1隐藏, 那么ut平均查询a1次数为(|S′|+1)/2, 最多要匹配|S′|次才成功, 如果匹配|S′|次不成功, 则ut进行|S′|+1次比较就可知道自己不能解密。若ut没有判断极小集交集中的元素a1, 则其计算代价较有优先匹配次序更大。例如ut匹配a5, 由于a5在极小集中出现3次, ut进行|S′+1|次匹配后即使知道自己没有a5, 也不能判断自己是否可以解密。

Download:
图 2 极小集交集非空的访问树 Fig. 2 Access tree with non empty intersection of minimal sets

2) 若极小集交集为空集, 对于极小集中没有隐藏的属性, ut通过目测部分了解自己是否满足T, 但不一定完全了解自己能否满足T, 这时ut解密能力由隐藏属性决定。若隐藏属性和公开属性的区分度相同, 则为减少计算利用公开属性最大限度地排除部分极小集。若都是隐藏属性, 则根据T节点特征与其Hash值, 先找出区分度最大的属性以排除最多极小集, 然后在剩余隐藏属性中找出区分度最大的属性, 每次按照最大区分度方式寻找。将ut首先判断的属性假设为a1, 理论上需要平均匹配(|S′|+1)/2次, 若ut属性中没有a1, 则直接排除有a1的极小集, 由于极小集减少, 因此ut是否有解密能力的不确定性也最大限度减少。而因为a1最先匹配, 即所在的极小集最多, 所以a1可在一次属性匹配过程中可最大限度地过滤掉不符合条件的极小集。若ut经Hash值计算判断自己属性中有a1, 则将a3看成公开属性, 余下极小集中最大区分度判断属性假设为a2, 若没有a2, 则ut在排除完没有a1极小集中再排除没有a2的极小集, 其是否有解密能力的不确定性在前者基础上再次最大限度减少, 从第2次匹配中可以看出, 符合条件的极小集在进行下次匹配时其优先匹配次序将受到前一次匹配结果影响。以此类推, 一直到ut确认自身有或没有解密能力。

极小集交集为空的访问树如图 3所示。其中, 极小集分别为S1={a1, a3, a4}、S2={a1, a3, a5}、S3={a1, a4, a5}、S4={a2, a3, a4}、S5={a2, a3, a5}、S6={a2, a4, a5}和S7={a6, a7}, 属性a3a4a5在极小集中出现4次, a1a2出现2次, a6a7出现1次, 则优先匹配a3a4a5。假设其中隐藏属性是a1a4a7, 若隐藏属性和公开属性的区分度相同, 则为减少计算, 利用公开属性最大限度地排除部分极小集, 由于a3a4a5区分度相同, ut首先判断a3, 若其属性中没有a3, 则直接排除极小集S1S2S4S5, ut是否有解密能力的不确定性减少57%;若ut经Hash值计算判断自己属性中有a3, 则将a3看成公开属性。在余下的极小集中, a4a5区分度相同, 但a4隐藏, 因此再判断a5, 若ut属性中没有a5, 则排除极小集S3S6, ut是否有解密能力的不确定性在前者基础上又减少67%, 然后判断用户属性中是否存在a6a7, 其中a6通过目测可得知。对于a7, ut理论上只需平均匹配(|S′|+1)/2次便可得知自己是否拥有此属性。若每次匹配次数最少, 则整体匹配次数最少, 即为最优匹配次序。采用优先匹配次序是为避免用户耗费时间进行无效计算。

Download:
图 3 极小集交集为空的访问树 Fig. 3 Access tree with empty intersection of minimal sets
3 方案建立 3.1 相关定义

定义5 (单调访问结构)  设{p1, p2, …, pn}是一个集合, 访问结构$A \subseteq 2^{\left\{p_{1}, p_{2}, \cdots, p_{n}\right\}} \backslash\{\varnothing\} $是一个非空子集合。对$\forall B, C $, 如果BA$ B \subseteq C$, 则CA, 那么A单调。

定义6 (双线性对)  设G0G1是阶为素数p的乘法循环群, gG0的一个生成元。映射e:G0×G0G1是一个双线性对, e的特性包括:1)双线性: $ \forall u, v \in G_{0}$并且$ \forall x, y \in \mathbb{Z}_{p}^{*}, e\left(u^{x}, v^{y}\right)=e(u, v)^{x}$; 2)非退化性:存在gG0, 使得e(g, g)≠1, 其中1代表群G1的单位元; 3)可计算性:存在有效的算法对任意的R, SG0, 计算e(R, S)的值。

定义7 (BDH假设)  已知G0的生成元g和元素gxgygz, 若其中$ \forall x, y, z \in \mathbb{Z}_{p}^{*}$且未知, 则计算$ e(g, g)^{x y z} \in G_{1}$较困难。

3.2 安全模型

以下通过挑战者和敌手之间交互性游戏建立策略部分隐藏CP-ABE方案的安全模型, 该游戏流程如下:

1) 初始化:挑战者运行初始化算法Setup(λ)生成公钥PK和主密钥MSK, 并将公共参数发送给敌手。

2) 阶段1:敌手适应性地向挑战者询问属性集A的密钥, 可选定一些属性集γ1, γ2, …, γq进行密钥查询。挑战者运行算法KeyGen生成密钥SKut并发送给敌手, 敌手可重复多次询问密钥。

3) 挑战:敌手向挑战者提交2个等长的消息m0m1, 并访问树T0T1(要求阶段1查询过的属性集γ1, γ2, …, γq均不满足T0T1), 挑战者抛掷1枚公平硬币b∈{0, 1}, 计算c*=Encrypt(PK, mb, Tb), 并将c*发送给敌手作为挑战密文。

4) 阶段2:重复执行阶段1, 但要求属性集γq+1, γq+2, …, γl不满足待挑战的访问树。

5) 猜测:敌手输出对密文c*的一个猜测值b′∈{0, 1}。如果b′=b, 则称敌手赢得这个游戏。敌手在上述游戏中获胜的优势定义为:

$ {\rm{Adv}} = \left| {{\kern 1pt} {\kern 1pt} {\kern 1pt} {\rm{Pr}} [{b^\prime } = b] - \frac{1}{2}{\kern 1pt} {\kern 1pt} } \right| $ (9)

定义8  如果在任意多项式时间内, 敌手赢得安全游戏的优势可忽略, 那么该部分策略隐藏CP-ABE方案安全。

3.3 系统结构描述

数据分享系统结构如图 4所示, 具体如下:

Download:
图 4 数据分享系统结构 Fig. 4 Data sharing system structure

1) 密钥生成中心(Key Generation Center, KGC):对系统生成公共和秘密参数, 假设KGC为半可信。KGC执行其他实体分配的合法任务, 但其可能试图获取加密数据。

2) 云服务器:提供数据存储和共享服务, 实现部分解密。

3) 数据所有者ua:拥有数据的用户将自己数据共享到云服务器。ua制定T, 并利用MI算法筛选出T中敏感属性。在上传数据前根据T、KGC生成的公钥PKK和云服务器公钥PKS加密数据。

4) 用户ut:访问数据的实体[24], KGC和云服务器根据用户属性生成用户密钥, 若ut属性满足加密数据中的T, 则其能够解密密文并获得数据M

3.4 算法结构

本文在完全隐藏访问结构方案[25]的基础上, 提出选择性隐藏树型访问结构CP-ABE方案, 该方案由Setup、KeyGen、Encryption、Decrypt等4个算法组成。上述算法步骤具体如下:

1) Setup(λ)→(PKK, MKK), (PKS, MKS):该算法由KGC进行。算法输入安全参数λ, 输出KGC公钥对PKK和密钥对MKK以及云服务器的公钥对PKS和密钥对MKS

2) KeyGen(MKK, A)→SKut:KGC将MKK和属性集合A作为输入, 为ut输出密钥SKut

3) Encryption(M, T, PKK, PKS)→CT:ua使用PKK、PKST对数据M进行加密, 并输出密文CT。

4) Decrypt(CT, SKut)→M:该算法由云服务器和ut来执行, 以CT和SKut作为输入, ut对云服务器部分解密的CT′用自己密钥再次解密, 并且输出明文M

3.5 方案设计

G0为一个阶为素数p的双线性群, gG0的生成元。设e:G0×G0G1为双线性映射。安全参数λ决定双线性群的大小。选Hash函数: $ H:\{0, 1\}^{*} \rightarrow \mathrm{G}_{0}, H_{1}: G_{1} \rightarrow\{0, 1\}^{\mathrm{lb} p} $, 并定义拉格朗日系数${\Delta _{i, s}}(x) = \prod\limits_{j \in s, j \ne i} {((} x - j)/(i - j)) $, 其中 $ i \in \mathbb{Z}_{p}^{*}$

3.5.1 系统初始化

KGC选择阶为素数p的循环群G0, gG0的一个生成元。选择Hash函数$H:{\{ 0, 1\} ^*} \to {G_0} $, $ {H_1}:{G_1} \to {\{ 0, 1\} ^{1{\rm{b}}~p}}$, 生成公共参数(G0, g, H, H1)。

KGC选取2个随机指数$ \alpha, \beta \in \mathbb{Z}_{p}^{*}$, 则KGC的公钥和主密钥分别为$\mathrm{PK}_{K}=\left(h=g^{\beta}, e(g, g)^{\alpha}\right) $$ \mathrm{MK}_{K}=\left(\beta, g^{\alpha}\right)$, 云服务器选取随机指数$ \gamma \in \mathbb{Z}_{p}^{*}$, 其公钥和主密钥分别为PKS=gγ和MKS=H(IDS)γ, 其中IDS为云服务器身份。

3.5.2 密钥生成

当KGC验证一个ut时, 其为每个ut任意选取个性化且保密的随机数$r_{t} \in \mathbb{Z}_{p}^{*} $。假设ut拥有一组属性集S′, KGC为每个属性aj任意选取唯一且保密的随机数$r_{j} \in \mathbb{Z}_{p}^{*} $, 并为ut生成密钥:

$ \begin{array}{*{20}{c}} {{\rm{S}}{{\rm{K}}_{{u_t}}} = ({D_j} = {g^{(\alpha + {r_t})/\beta }},\forall {a_j} \in A,{a_i} \in {A_\delta }:{D_j} = }\\ {{g^{{r_t}}} \cdot H{{({a_j})}^{{r_j}}},{D^\prime }_j = {g^{{r_j}}},{D^\prime }_i = H{{({a_i})}^\beta })} \end{array} $ (10)
3.5.3 加密过程

uaM发送到云服务器之前对M加密并在密文中嵌入访问树T[3]。从T每个节点x选取多项式qx, 多项式选择均由根节点R开始按照自上而下的方式进行。对于根节点R, 选择一个随机数$s \in \mathbb{Z}_{p}^{*} $, 设qR(0)=s。设YT中所有叶子节点集合, ua任意选取随机指数$ a \in \mathbb{Z}_{p}^{*}$, ua通过MI算法筛选出包含信息量最大的部分属性进行隐藏。对T中需要隐藏的敏感属性$ a_{i} \in A_{\delta} \subset Y$, 计算Si=e((gβ)a, H(ai)), 然后用H1(Si)代替分配在每个叶子节点y上的敏感属性ay进行隐藏。为加密M, 计算ua与云服务器之间会话密钥$ K_{s}=e\left(\left(g^{\gamma}\right)^{a}, H\left(\mathrm{ID}_{s}\right)\right)$, 最终密文如下:

$ \begin{array}{l} {\rm{CT}} = (T,\tilde C = M \cdot {K_S} \cdot e{(g,g)^{\alpha s}},C = {h^s},\\ {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} \forall y \in Y:{C_y} = {g^{{q_y}(0)}},{C^\prime }_y = H{({a_y})^{{q_y}(0)}}) \end{array} $ (11)

ua将(IDa, ga, CT)发给云服务器。在此阶段, 由于T中敏感属性被模糊化, 因此云服务器或外部用户无法知道加密的密文中属性敏感信息。此外, KGC不能解密CT, 因为$ {\tilde C}$KS盲化, KSua与云服务器之间的会话密钥。

为避免不必要的Hash配对, 若ut花最小代价能判断出自己没有解密能力, 则ut就不用去尝试参与后续解密过程, 这样会减少ut与云服务器之间不必要的计算, 从而降低时间成本。由于策略部分隐藏导致ut可能无法知道自己是否可以解密密文, 针对因属性部分隐藏导致ut对数据解密能力无法提前判断的情况, 本文提出以最少匹配代价判断自己解密能力的方法, 使无解密能力的ut尽早放弃尝试解密。若此ut有解密能力, 则继续后续解密操作。

3.5.4 解密过程

在解密过程中, 算法计算Si=e(ga, Di)=e(ga, H(ai)β), ut给云服务器发送解密请求, 云服务器收到请求后, 对T的叶子节点x运行递归算法DecryptNode(CT, SKut, x), 此部分解密通过将繁琐的计算量委托给功能更强大的云服务器, 以提高ut解密效率。相关计算如下:

$ \begin{array}{*{20}{l}} {{\rm{DecryptNode }}({\rm{CT}},{\rm{S}}{{\rm{K}}_{{u_t}}},x) = \frac{{e({{({D_x})}^\tau },{C_x})}}{{e({{({D^\prime }_x)}^\tau },{C^\prime }_x)}} = }\\ {\frac{{e({{({g^{{r_t}}} \cdot H{{({a_x})}^{{r_x}}})}^\tau },{g^{{q_x}(0)}})}}{{e({{({g^{{r_x}}})}^\tau },H{{({a_x})}^{{q_x}(0)}})}} = e(g,g){r_t}\tau {q_x}(0)} \end{array} $ (12)

否则, 有DecryptNode(CT, SKut, x)=⊥。

如果x为非叶子节点, 则考虑递归情况, 对于节点x所有孩子节点z, 令Fz=DecryptNode(CT, SKut, z)。假设Sx为孩子节点z集合, 使Fz≠⊥。该算法计算如下:

$ \begin{array}{l} {F_x} = \prod\limits_{z \in {S_x}} {{F_z}^{{\Delta _{i,S_x^\prime }}(0)}} = \prod\limits_{z \in {S_x}} {(e(} g,g{)^{{r_t} \cdot \tau \cdot {q_z}(0)}}{)^{{\Delta _{i,S{\prime _x}}}(0)}} = \\ {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} \prod\limits_{z \in {S_x}} {(e(} g,g{)^{{r_t} \cdot \tau \cdot {q_{{\rm{ parent }}(z)}}({\rm{ index }}(z))}}{)^{{\Delta _{i,S{\prime _x}}}(0)}} = \\ {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} \prod\limits_{z \in {S_x}} {(e(} g,g{)^{{r_t} \cdot \tau \cdot {q_x}(i)}}{)^{{\Delta _{i,S{\prime _x}}}(0)}} = e{(g,g)^{{r_t}\tau {q_x}(0)}} \end{array} $ (13)

其中, $ i=\operatorname{index}(z), S_{x}^{\prime}=\left\{\text { index }(z): z \in S_{x}\right\}$

查询算法首先调用T根节点R上的函数。如果ut满足T, 则云服务器运行DecryptNode(CT, SKut, R)=e(g, g)rtτs

云服务器计算$K_{S}=e\left(g^{a}, \mathrm{MK}_{S}\right)=e\left(g^{a}, H\left(\mathrm{ID}_{S}\right)^{\gamma}\right) $$ \tilde{C}^{\prime}=\tilde{C} / K_{S}=M \cdot e(g, g)^{\alpha s}$, 再将部分解密的数据CT′= $\left(\tilde{C}^{\prime}, C=h^{s}, A^{\prime}\right) $发送给ut, 其中A′=DecryptNode(CT, SKut, R)=e(g, g)rtτs

ut从云服务器得到密文CT′后, 用自己密钥对密文进行解密。解密过程如式(14)所示, 最终输出M

$ \begin{array}{l} \frac{{{{\tilde C}^\prime }}}{{(e(C,D)/{{({A^\prime })}^{1/\tau }})}} = \frac{{{{\tilde C}^\prime }}}{{(e({g^{\beta s}},{g^{(\alpha + {r_t})/\beta }})/{{(e{{(g,g)}^{{r_t}\tau s}})}^{1/\tau }})}} = \\ {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} \frac{{M \cdot e{{(g,g)}^{\alpha s}}}}{{e{{(g,g)}^{\alpha s}}}} = M \end{array} $ (14)
4 方案分析 4.1 安全性分析

在CP-ABE方案中, 秘密信息必须嵌入密文中而非密钥中。若攻击者想解密就必须恢复eV(g, g)αs, 则应使密文中Cx同用户密钥中Di相匹配, 这样虽可获得e(g, g)αs值, 但易被e(g, g)rs盲化。此外, 当且仅当用户密钥满足密文中访问树时才能求出e(g, g)rs的值。用户合谋攻击无效, 因为盲化每个用户密钥的盲因子均为随机。该方案的数据机密性、抗合谋、策略保密性与完全隐藏访问树方案[25]相同。

4.2 安全性证明

使用一般双线性群模型和随机预言机模型来论证CP-ABE方案, 该方案的安全类型为选择明文攻击的不可区分性安全[26]

定义9 (一般双线性群模型)   考虑加法群Fp的2个随机编码ψ0ψ1, 即单射ψ0, ψ1:Fp→{0, 1}m, 其中m>3lb p。对于i=0, 1, 有Gi={ψi(x):xFp}。于是得到G0G1诱导群作用的预言, 以及计算非退化双线性映射e:G0×G0G1的预言。H为随机预言散列函数, G0为一般双线性群。

定理1  如上述定义ψ0ψ1G0G1。对于任何敌手, 设q为从查询到哈希函数预言机、群G0G1、双线性映射e以及与CP-ABE安全游戏交互中接收到的元素总数的一个边界。在CP-ABE安全游戏中, 敌手优势为O(q2/p)。

证明  先从一个简单论点出发, 进行如下标准观察:在CP-ABE安全游戏中, 挑战密文有一个分量$ {\tilde C}$, 随机为$M_{0} e(g, g)^{\alpha s} $$ M_{1} e(g, g)^{\alpha s}$。针对改进的CP-ABE安全游戏, $ {\tilde C}$$e(g, g)^{\alpha s} $或者$ e(g, g)^{\theta}$, θFp中随机统一的选择。在CP-ABE游戏中敌手的优势ε可转化为改进CP-ABE游戏中敌手的优势为ε/2, 为限制敌手在改进CP-ABE游戏中的优势, 需满足2种论点:1)敌手必须区分$M_{0} e(g, g)^{\alpha s} $$M_{0} e(g, g)^{\alpha s} $; 2)敌手必须区分$M_{0} e(g, g)^{\alpha s} $$ M_{1} e(g, g)^{\alpha s}$

以下介绍改进CP-ABE游戏模拟的符号。设g=ψ0(1)(用gx表示ψ0(x), e(g, g)y表示ψ1(y))。

在设置系统时, 模拟者从Fp中随机选择αβ, 并将其与0~p-1之间整数关联。如果β=0, 事件发生的概率为1/p, 则初始化中止。将公共参数h=gβe(g, g)α发送给敌手。

当敌手(或模拟者)要求对任意字符串i进行H评估时, 从Fp中选择新随机值ti, 模拟者提供gti作为对H(i)的响应。

当敌手对属性集Sj进行第j次密钥生成查询时, 从Fp中选择新随机值r(j), 对于每个iSj, 从Fp中选择新随机值ri(j), 然后模拟者计算得到D=g(α+r(j))/β, 对于每个iSj, 有Di=gr(j)+tiri(j)Di=gir(j), 将该值发送给敌手。

当敌手提出挑战, 发出两条消息M0, M1G1并访问树T时, 模拟者执行以下操作:1)从Fp中选择一个随机的s; 2)使用与T相关联的线性秘密共享方案为所有相关属性i构造s共享λi。根据秘密共享方案施加的线性条件, λi均由Fp中随机且一致地选择。特别地, 对于某个l值, 可通过均匀独立地选择l随机值μ1, μ2, …, μl来完全模拟λis选择, 并让λi成为μkss的固定公共线性组合。λi通常看作是上述独立随机变量的线性组合。

模拟者选择一个随机数θFp, 并构造如下加密密文:

$ {\tilde C = e{{(g,g)}^\theta }} $ (15)
$ {C = {h^s}} $ (16)

对于每个相关属性i, 有Ci=gλiCi=gtiλi, 发送该值给敌手。

在概率为1-O(q2/p)情况下, 假设模拟中变量值选择具有随机性, 如果已知$ \tilde{C}=e(g, g)^{\alpha s}$, 则敌手在模拟和给定情况下观点相同。因此, 敌手优势最多为O(q2/p)。

当敌手向群数据库进行查询时, 可以假设:1)敌手只提供从模拟者中收到的输入值或者已经从数据库中获得中间值; 2)在φ0φ1的范围内有p个不同值。此事件发生概率为1-O(1/p)。跟踪从数据库中调用的代数表达式, 只要未发生意外冲突, 可预言查询是变量中的有理函数θαβtisr(j), sri(j)ssμks。当2个查询对应于2个形式不同的有理函数η/ξη′/ξ′时, 会发生意外冲突, 但由于上述变量值为随机选择, 因此得到的η/ξη′/ξ′一致。

在群G0G1中均没有发生这种意外冲突。对于与不同有理函数η/ξη′/ξ′对应的同群中任何一对查询, 只有当非零多项式ηξ′-ξη′计算结果为零时才会发生冲突。本文中ηξ′-ξη′总次数最多为5, 此类冲突发生概率为O(1/p)。在联合约束下, 任何此类冲突发生概率最多为O(q2/p)。因此, 可以在不发生该冲突的情况下, 保持质量概率为1-O(q2/p)。

在一般群模型中, 各群元素均可统一且独立地表示, 因此, 在θ=αs情况下, 使敌手想法为不同分布的唯一方法是在G1中有两个查询vv′vv′, 但v|θ=αs=v′|θ=αs

由于θ仅以$M_{0} e(g, g)^{\alpha s} $形式出现, 而$M_{0} e(g, g)^{\alpha s} $存在于G1中, 因此vv′θ上唯一依赖性是具有γ′θ形式的相加项, 其中γ′为常数。由此推断存在$ v - {v^\prime } = \gamma \alpha s - \gamma \theta $, 其中γ≠0为常数。将查询$v-v^{\prime}+\gamma \theta=\gamma \alpha s $添加到敌手查询中, 且需证明敌手不能构造查询e(g, g)γαs

来自敌手的查询类型为titiλitir(j)+tiri(j)tiri(j)tiα+r(j)λiλitiλiλiλir(j)+λitiri(j)λititiλiλitiλiri(j)+titiλiri(j′)tiλiri(j)ri(j′)、(r(j)+tiri(j))ri(j′)ri(j)titiλi、(r(j)+tiri(j))(r(j)+tiri(j′))、λiri(j)αs+sr(j)tir(j)+titiri(j)stiλiri(j), 可见通过双线性映射和群元素将所有可能的有理函数查询列举到G1中。对于模拟中的敌手, 因为β与构造涉及的查询无关, 所以除了每个单项式都涉及变量β之外, 变量ii′是属性字符串, 变量jj′是敌手制作的密钥查询索引, 均由λis而非μks得到。

如上所述, 敌手创建包含αs项唯一方法是将与(α+r(j))/β配对以获得项αs+sr(j)从而为集合T和常量γ(γj≠0)创建包含$ \gamma \alpha s+\sum\limits_{j \in T} \gamma_{j} s r^{(j)}$的查询多项式。

敌手为得到查询多项式γαs, 必须添加其他线性组合以取消$ \sum\limits_{j \in T} {{\gamma _j}} s{r^{(j)}}$形式的项。而敌手可使用的唯一其他项, 可能涉及含有sr(j)形式的单项式, 因为λi项是sμks的线性组合, 所以敌手通过将r(j)+tiri(j)λi配对得到λi

综上所述, 对于集合T′j和常数$\gamma_{\left(i, j, i^{\prime}\right)} \neq 0 $, 敌手可构造以下形式的查询多项式:

$ {\gamma \alpha s + \sum\limits_{j \in T} {({\gamma _j}s{r^{(j)}} + \sum\limits_{(i,{i^\prime }) \in {T^\prime }_j} {{\gamma _{(i,j,{i^\prime })}}} (} {\lambda _{{i^\prime }}}{r^{(j)}} + {\lambda _{{i^\prime }}}{t_i}r_i^{(j)})) + {\rm{others}}} $ (17)

为验证敌手查询多项式不是γαs形式, 进行如下案例分析:

案例1  存在某个jT, 使得秘密共享集合Lj= $ \left\{\lambda_{i^{\prime}}: \exists i:\left(i, i^{\prime}\right) \in T_{j}^{\prime}\right\}$不允许秘密s重建。如果存在jT, 则sr(j)项将不会取消, 因此敌手查询多项式不是γαs形式。

案例2  对于所有j∈T, 秘密共享集合Lj= $\left\{\lambda_{i^{\prime}}: \exists i:\left(i, i^{\prime}\right) \in T_{j}^{\prime}\right\} $允许重建秘密s。固定任意jT, Sj为第j个敌手密钥请求属性集。假设没有请求的密钥挑战访问树和秘密共享方案的属性, 且集合$L_{j}^{\prime}=\left\{\lambda_{i}: i \in S_{j}\right\} $不允许重建s。在Lj中应存在至少一个共享, 使得用sμks表示时λiL′j线性无关。这表示在敌手查询中, 对于某些iSj, 存在形式为λitiri(j)的项。由上述查询类型可知, 没有任何一个敌手使用的项可以取消查询类型中的项, 因此任何敌手查询多项式都不能是γαs形式。

4.3 部分隐藏策略

本文方案选择树型访问结构, 对T中叶子节点属性进行部分隐藏, 隐藏属性包含所有属性绝大部分或全部信息量。在选择部分属性隐藏依据时, 本文选择MI算法, 并从理论上分析得知, 若加入Aδ中属性ai越多, 则Aδ包含的信息量越大。为减小计算量, ua规定一个阈值k来限制敏感属性数量。在加密之前uaT中需要隐藏的敏感属性aiAδ, 计算$S_{i}=e\left(\left(g^{\beta}\right)^{a}, H\left(a_{i}\right)\right) $, 用H1(Si)来模糊化T中敏感属性。在解密过程中, 计算得到$ {S_i} = e\left( {{g^a}, D_i^{\prime \prime }} \right) = e\left( {{g^a}, H{{\left( {{a_i}} \right)}^\beta }} \right)$, 两者相等则为授权用户解密。与完全隐藏数据相比, 此访问树部分隐藏数据只计算敏感属性, 以减少加解密过程中的计算量, 但保密效果相同。

4.4 性能分析

表 1为3种同是树型访问结构但策略隐藏情况不同方案的对比情况。其中, L0L1分别为群G0和群G1中元素长度, t为密文相关的属性个数, k为用户密钥相关的属性个数, e为双线性对, exp为群运算中的指数, R为满足T的用户属性个数, d为满足T的用户的感属性个数, d < t, d < |R|。

下载CSV 表 1 不同方案的性能对比 Table 1 Performance comparison of different schemes

由于树型访问结构比LSSS矩阵更直观, 策略可表达性更强, 因此本文使用树型访问结构。由表 1可以看出, 完全公开访问树方案[3]的密钥长度和公钥长度较其他两种方案更短, 但其数据安全性更低。与完全隐藏访问策略方案[24]相比, 本文方案在加密和解密过程中指数运算和双线性对运算减少, 在安全性相同情况下减少了计算量。在同是树型访问结构情况下, 本文方案比完全公开访问结构方案安全性更高, 比完全隐藏访问结构方案计算量更少。

5 结束语

本文从访问策略安全性和计算效率考虑, 提出一种选择性隐藏树型访问结构CP-ABE方案, 利用互信息方法进行属性提取, 筛选和隐藏包含原始属性集信息的部分属性, 采用以最少匹配代价判断解密能力的方法, 使无解密能力用户尽早放弃尝试解密。分析结果表明, 该方案与已有的完全隐藏方案具有相同保密效果, 且有效减少加密和解密算法的计算量, 较完全公开访问结构方案的策略安全性更高。下一步将研究更多样化和智能化的敏感属性提取算法, 以减小算法计算量并提高CP-ABE方案的安全性。

参考文献
[1]
SAHAI A, WATERS B.Fuzzy identity-based encryption[C]//Proceedings of International Conference on Theory and Applications of Cryptographic Techniques.Berlin, Germany: Springer, 2005: 457-473.
[2]
GOYAL V, PANDEY O, SAHAI A, et al.Attribute-based encryption for fine-grained access control of encrypted data[C]//Proceedings of the 13th ACM Conference on Computer and Communications Security.New York, USA: ACM Press, 2006: 89-98.
[3]
BETHENCOURT J, SAHAI A, WATERS B.Ciphertext-policy attribute-based encryption[C]//Proceedings of 2007 IEEE Symposium on Security and Privacy.Washington D.C., USA: IEEE Press, 2007: 321-334.
[4]
ZHANG Yinghui, ZHENG Dong, CHEN Xiaofeng, et al.Computationally efficient ciphertext-policy attribute-based encryption with constant-size ciphertexts[EB/OL].[2019-05-25]. https://link.springer.com/chapter/10.1007%2F978-3-319-12475-9_18.
[5]
MALLUHI Q M, SHIKFA A, TRINH V C.A ciphertext-policy attribute-based encryption scheme with optimized ciphertext size and fast decryption[C]//Proceedings of 2017 ACM on Asia Conference on Computer and Communications Security.New York, USA: ACM Press, 2017: 230-240.
[6]
WATERS B.Ciphertext-policy attribute-based encryption: an expressive, efficient, and provably secure realization[C]//Proceedings of 2011 Public Key Cryptography.Berlin, Germany: Springer, 2011: 53-70.
[7]
NISHIDE T, YONEYAMA K, OHTA K.Attribute-based encryption with partially hidden encryptor-specified access structures[C]//Proceedings of Applied Cryptography and Network Security.Berlin, Germany: Springer, 2008: 111-129.
[8]
LAI J Z, DENG R H, LI Y J.Fully secure cipertext-policy hiding CP-ABE[C]//Proceedings of Information Security Practice and Experience.Berlin, Germany: Springer, 2011: 24-39.
[9]
ZHANG Yinghui, CHEN Xiaofeng, LI Jin, et al.Anonymous attribute-based encryption supporting efficient decryption test[C]//Proceedings of the 8th ACM SIGSAC Symposium on Information, Computer and Communications Security.New York, USA: ACM Press, 2013: 511-516.
[10]
SONG Yan, HAN Zhen, LIU Fengmei, et al. Attribute-based encryption with hidden policies in the access tree[J]. Journal on Communications, 2015, 36(9): 119-126. (in Chinese)
宋衍, 韩臻, 刘凤梅, 等. 基于访问树的策略隐藏属性加密方案[J]. 通信学报, 2015, 36(9): 119-126.
[11]
CUI H, DENG R H, WU G W, et al.An efficient and expressive ciphertext-policy attribute-based encryption scheme with partially hidden access structures[C]//Proceedings of International Conference on Provable Security.New York, USA: ACM Press, 2016: 19-38.
[12]
LI Xin, PENG Changgen, NIU Cuicui. Attribute-based encryption scheme with hidden tree access structures[J]. Journal of Cryptologic Research, 2016, 3(5): 471-479. (in Chinese)
李新, 彭长根, 牛翠翠. 隐藏树型访问结构的属性加密方案[J]. 密码学报, 2016, 3(5): 471-479.
[13]
LIU L X, LAI J Z, DENG R H, et al. Ciphertext-policy attribute-based encryption with partially hidden access structure and its application to privacy-preserving electronic medical record system in cloud environment[J]. Security and Communication Networks, 2016, 9(18): 4897-4913. DOI:10.1002/sec.1663
[14]
LI Zengpeng, MA Chunguang, ZHAO Minghao. Leveled fully homomorphic encryption against adaptive key recovery attacks[J]. Journal of Computer Research and Development, 2019, 56(3): 496-507. (in Chinese)
李增鹏, 马春光, 赵明昊. 抵抗自适应密钥恢复攻击的层级全同态加密[J]. 计算机研究与发展, 2019, 56(3): 496-507.
[15]
CHEN Dongdong, CAO Zhenfu, DONG Xiaolei. Online/Offline ciphertext-policy attribute-based searchable encryption[J]. Journal of Computer Research and Development, 2016, 53(10): 2365-2375. (in Chinese)
陈冬冬, 曹珍富, 董晓蕾. 在线/离线密文策略属性基可搜索加密[J]. 计算机研究与发展, 2016, 53(10): 2365-2375. DOI:10.7544/issn1000-1239.2016.20160416
[16]
DENG Yuqiao, YANG Bo, TANG Chunming, et al. Research of ciphertext policy process-based encryption[J]. Chinese Journal of Computers, 2019, 42(5): 1063-1075. (in Chinese)
邓宇乔, 杨波, 唐春明, 等. 基于密文策略的流程加密研究[J]. 计算机学报, 2019, 42(5): 1063-1075.
[17]
COVER T M, THOMAS J A.Elements of information theory[M]. New York, USA: John Wiley and Sons, Inc., 1991.
[18]
SHAFIQ M, YU X Z, WANG D W.Robust feature selection for IM applications at early stage traffic classification using machine learning algorithms[C]//Proceedings of 2017 IEEE International Conference on High Performance Computing and Communications.Washington D.C., USA: IEEE Press, 2017: 239-245.
[19]
OSANAIYE O, CAI H B, CHOO K K R, et al. Ensemble-based multi-filter feature selection method for DDoS detection in cloud computing[J]. EURASIP Journal on Wireless Communications and Networking, 2016, 130(1): 1-10.
[20]
ZHAO Liang, CHEN Zhikui, HU Yueming, et al. Distributed feature selection for efficient economic big data analysis[J]. IEEE Transactions on Big Data, 2018, 4(2): 164-176.
[21]
XU Junling, ZHOU Yuming, CHEN Lin, et al. An unsupervised feature selection approach based on mutual information[J]. Journal of Computer Research and Development, 2012, 49(2): 372-382. (in Chinese)
徐峻岭, 周毓明, 陈林, 等. 基于互信息的无监督特征选择[J]. 计算机研究与发展, 2012, 49(2): 372-382.
[22]
PENG H C, LONG F H, DING C. Feature selection based on mutual information criteria of max-dependency, max-relevance, and min-redundancy[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2005, 27(8): 1226-1238. DOI:10.1109/TPAMI.2005.159
[23]
VERGARA J R, ESTÉVEZ P A. A review of feature selection methods based on mutual information[J]. Neural Computing and Applications, 2014, 24(1): 175-186.
[24]
CHEN Cheng, Nurmamat Helil. Hidden attribute qutsourced decryption access control scheme based on CP-ABE[J]. Computer and Modernization, 2018(5): 74-78. (in Chinese)
陈成, 努尔买买提·黑力力. 基于CP-ABE的隐藏属性外包解密访问控制[J]. 计算机与现代化, 2018(5): 74-78. DOI:10.3969/j.issn.1006-2475.2018.05.016
[25]
HELIL N, RAHMAN K. CP-ABE access control scheme for sensitive data set constraint with hidden access policy and constraint policy[J]. Security and Communication Networks, 2017, 25(6): 1-13.
[26]
LIU Yang.Research on encryption system based attribute[D]. Guangdong: Sun Yat-Sen University, 2009.(in Chinese)
刘阳.基于属性的加密体制研究[D].广州: 中山大学, 2009.