1. 引言
在传统的公钥加密体系中,通信采用“一对一”模型,使用特定公钥加密的数据,必须使用相应的私钥解密,例如基于身份的加密(IBE) [1] 方案。实际上,许多加密系统采用的都是“一对多”的通信模型,例如共享数据库中的文档被多个用户访问,有线电视节目被多个订阅者观看等。属性加密(简称ABE)采用一系列属性来描述用户身份,可以引入访问控制策略把用户私钥和密文同属性相关联,具有“一对多”良好特性,能够灵活地进行访问控制,可以实现对密文细粒度的访问控制。这个想法最早由Sahai和Waters作为模糊IBE方案 [2] 的应用引入,其中密钥和密文与属性集合关联,当且仅当密文和密钥的属性集相交的属性个数至少达到固定的阈值时才能解密。
近年来随着对属性加密方案研究 [3] [4] 的不断深入细化,又分为密钥策略的属性解密(简称KP-ABE) [5] 和密文策略的属性加密(简称CP-ABE) [6] [7] [8] 。其中,Bethencourt等人提出第一个CP-ABE方案 [7] ,该方案要求访问控制策略在密文中公开,用于接收方完成属性对比和解密。考虑到某些隐私性,有些时候访问控制策略可能包含隐私信息,加密者需要将加密策略进行隐藏,但如果访问策略被隐藏, 解密者将无法完成相应的解密工作。之后,Nishide等人 [9] 提出了一种隐藏访问控制策略的基于属性加密方法,由于采用了较多的双线性对运算和指数运算,对算法效率的影响较大。Kapadia等人 [10] 的方案要求一个在线的半可信服务器参与,且必须知道每个用户的属性值,发送方只具有发布密文的功能,当接收方检索密文时,半可信服务器重加密该密文,这一方案对第三方依赖太大,不能防止用户串谋。Shiet等人 [11] 提出了一个基于大数范围查询的谓词加密方案,数据发送方在指定访问策略中的数字范围实现CP-ABE,采用的安全概念较弱,且要求属性个数少,该方案在属性数量上成指数型。Boneh和Waters [12] 提出基于隐藏向量的谓词加密方案,使用子集谓词相反的语义实现策略隐藏,但是需要处理两个大素数阶的双线性对,在系统建立时指定访问策略中的属性以及每个属性的可能取值。而在我们的方案中,即使公共参数系统建立后,也可以在密文策略中增加属性。Lai等人 [13] 利用子群判定假设在合数阶群中提出了一个新的可以隐藏访问结构的加密方案,并证明是完全安全的。但是为了达到一定的安全级别,合数群的阶会取得比较大。Katz等人 [14] 提出一种支持内积的谓词加密方案,该方案实现访问策略的隐藏且通用性强,可以同时满足KP-ABE和CP-ABE方案。但是,该方案需要采用一种特殊的具有三个大素数的双线组,访问控制结构固定且在强假设下证明安全性。
本文在文献 [6] 所构造的高效属性加密方案基础上,通过扩展每个属性的可能取值,在加密的过程中隐藏部分属性值的子集值,要求所有接收方都不知道发送方采用了何种访问策略加密数据。对比已有的方案,本文在实现策略隐藏的同时支持策略灵活、安全变更;在解密过程中加入了外包转换计算,提高解密效率。
2. 预备知识
2.1. 双线性映射
关于双线性映射的研究是当前密码学的一个重要课题,自提出后被应用到各种加密、签名等方案中,一些密码学上的难题得到了很好的解决。
设p是一个素数,
是两个阶为p的乘法循环群,g为
的生成元,e是一个双线性映射:。双线性映射e满足如下3个性质:
1) 双线性性质。对于任意的
,满足
。
2) 非退化性。。
3) 可计算性。对于任意的
,存在有效算法可在多项式时间内计算出
的值。
注意:
运算是一个对称操作,即
;另外有
,其中
。
定义1 (计算Diffie-Hellman (CDH)问题)随机选择,给定三元组
,计算
。
定义2 (判定Diffie-Hellman (DDH)问题)随机选择
且未知,g为循环群
的一个生成元,给定一个元组
,判定
是否成立。
2.2. 访问控制结构
在 CP-ABE方案中,数据发送方制定访问策略,若接收方的属性密钥满足发送方制定的访问策略,则可以解密密文。例如,访问结构
,接收方满足最小属性集合
或
,则可以解密访问控制结构T加密后的数据。
本文对访问控制结构做如下定义:属性外部之间用与门,属性内部之间用或门。假设属性系统中的属性总个数为n,相应的索引为
,每个属性拥有多个取值,数据接收方的属性列表定义为
,
表示访问控制策略,使用通配符*表示访问策略中无关属性的取值,W中的每个
是
所有可能取值的子集。当
或
时,属性列表L满足访问控制策略W,否则L就不满足访问控制结构W。
具体来说,例如
有
个可能取值,用集合
表示,接收方的属性列表
,
,加密使用的访问控制策略
,这就意味着:当
加密者为
指定属性值,即为
指定了
,当且仅当
时,满足该属性列表L的接收方才可以解密。访问结构中
隐藏每个属性
的部分取值,即访问控制结构中与门结构里所有属性的部分取值。
2.3. 安全模型
本方案的安全模型可以通过攻击者和挑战者之间的游戏过程来描述,若最终攻击者给出正确的猜测,则攻击者胜利,反之,挑战者胜利。游戏过程如下:
Init:攻击者向挑战者发送访问控制策略
和
。
Setup:挑战者运行初始化过程Setup,将公钥PK发送给攻击者。
Phase 1:攻击者发送属性列表L可以进行多次相关密钥查询,要求L同时满足或者不满足访问控制策略
和
。挑战者运行密钥生成算法KeyGen,将密钥
返还给攻击者。
Challenge:攻击者向挑战者提交两个数据
和
。如果攻击者的属性列表L在Phase1满足访问策略和
,则得到密钥
并要求
。挑战者随机抛币得到
,随机选择一个
,用
进行加密,将密文信息返回给攻击者。
Phase2:重复Phase1。
Guess:攻击者输出对b的猜测。
攻击者获得游戏胜利的优势为:
。
定义3 在多项式时间内所有的攻击者,赢得上述游戏的优势都是可以忽略不计的,则称该方案是安全的。
3. 具体方案
在文献 [6] 的基础上,本方案的参与方包括:可信授权方、数据发送方和数据接收方,本文系统模型如图1所示:
其中,可信授权方负责监管和颁发属性公钥;数据发送方使用访问策略加密数据并将密文发送给服务器;数据接收方使用自己的属性私钥解密满足规定访问策略下密文。此外,本文在解密阶段将部分密文解密任务外包,减轻接收方的解密计算负担,提高解密效率。方案过程包括:初始化过程Setup、加密过程Encrypt、密钥提取过程KeyGen、外包转换计算OutSCC和解密过程Decrypt五个算法。以下是详细描述:
1) 初始化过程Setup (1k)。
输入:公共参数K。
过程:可信授权方产生一个元组
,其中,
为p阶的乘法循环群,其中
分别是
的生成元,e是双线性映射,结构如下:
。系统随机产生
,对于每个属性
,可信授权方产生随机值
,并计算
。可信授权方继续计算
和
。
输出:系统公钥
,主密钥
。
2) 加密过程Encrypt (
)。
输入:系统公钥PK,待加密的消息
以及密文策略。
过程:加密方用随机值
,设定
以及
,用随机值
,设定
,并按如下方式计算
:
输出:密文
。
3) 密钥提取过程KeyGen (
)。
输入:主密钥MK,数据接收方属性列表
。
过程:可信授权方产生随机值
,并且计算
,
,当
时,计算。数据接收方生成转换密钥
。
输出:私钥
,转换密钥
。
4) 外包转换计算OutSCC (
)。
输入:转换密钥TK,数据接收方属性列表
,系统公钥PK,密文
。
过程:接收方将自己的属性列表中的
以及转换密钥TK发送给外包服务器,服务器首先判断这个接收方属性字符串是否满足
,若不满足,则终止服务;若满足,则针对数据接收方所选的密文开
始为其提供计算服务,即对密文进行转换计算。从PK中提取
,计算
,然后进行转换密文,首先计算
,然后进行转换计算
。
输出:转换密文
。
5) 解密过程Decrypt (
)。
输入:转换密文
,私钥
。
过程:当
时,用户计算
,用于验证等式
是否成立。若不成立,说明外包服务器计算过程有误;否则,运行解密算法,得到
。
输出:信息M。
4. 安全性分析及证明
4.1. 正确性
当数据接收方的属性列表满L足访问控制策略W时,接收方利用获得的用户私钥
,可以成功运行解密算法,从而获得数据的明文信息。下面从两个方面验证计算的正确性:
1) 验证外包计算。
2) 验证解密计算。
4.2. 安全性
本方案在安全模型下达到了选择明文攻击的不可区分性安全。证明如下:
Proof:假设攻击者A在游戏G0和G中有不可忽略的优势差异e,构造一个能以e的优势打破DDH假设的模拟器B。
首先给出DDH假设模型,挑战者随机选取
,设置一个四元组
。挑战者随机抛币,任选
,如果
,令
,选择G游戏;否则
,令
为随机值,进行G0游戏。
Init:模拟器B与攻击者A进行初始化交互。攻击者A选择两个要挑战的密文策略
,
提交给模拟器B,B随机选取
。
Setup:B任意选取
,设置
,则
,对于每个属性
,模拟器B计算
,计算方法如下:
(
),然后向攻击者A发送公钥PK。
Phase 1:攻击者A在一次密钥查询中提交一个属性列表
,我们仅考虑L同时不满足
和
的情况(如果L同时满足
和
,则挑战的信息
和
相同,即游戏G和G0就会相同,因此攻击者A在这两个游戏中的优势将没有区别),
中的参数如下:
,
,当
时,
,密钥
返回给攻击者A,转换密钥
发送给外包服务器。
Challenge:攻击者A选择两个挑战信息
和
。模拟器B对
进行加密,令
,则密文为:
,
。当
时,
;当
时,
为随机值,因此,
为
群中的随机值。模拟器B选取随机值,计算
和
,把密文
发送给外包服务器,外包服务器通过转换密钥TK将密文CT进行转换,首先计算
,
,,然后将转换后的密文
发送给攻击者A。
Phase 2:重复Phase 1的过程,继续进行私钥问询。
Guess:攻击者A输出对u的猜测
。如果,挑战者输出1;否则,输出0。通过我们之前的假设,攻击者A在游戏G中猜测正确u的可能性相比在游戏G0中正确猜出u有e的优势。当
时,攻击者A猜测游戏为G;当
是随机值时,攻击者A猜测游戏为G0。因此,模拟器B在DDH游戏中有e的优势,即最后攻破了DDH问题。
5. 性能分析
将本文与文献 [9] 和文献 [13] 对比分析,本文不仅在加密过程中实现访问策略的隐藏,并且支持访问控制结构中属性的安全、灵活添加,同时,系统效率优于其他方案。
1) 隐藏访问控制策略。本方案对每个属性的取值进行泛化,增加其可能取值,通过隐藏每个属性包含部分可能取值的子集,使用通配符表示那些与访问策略不相关的属性,如此便达到了隐藏部分策略属性的目的。保证了包括合法接收方在内的所有接收方都不能猜测出加密时采用的访问控制策略,而接收方需要从可信授权方获取自己的属性私钥,若与此属性私钥相关联的属性列表不满足发送方指定的访问策略时,则此接收方就不是合法的,不能完成解密。
举例来说,若访问控制策略为
,其中
,
,
,
,
,
则访问策略
,当接收方的属性列表L满足访问结构意味着:当且仅当
时,如果
,则满足该访问策略;若
,则不满足访问控制结构。因此,任何满足访问控制结构的合法接收方,他的属性列表不需要满足访问控制元素
的所有子属性值
。
2) 支持访问结构中属性的动态添加。对比文献 [6] 和 [12] 中要求密文中的访问策略在初始化之前就指定好属性个数和每个属性的取值且不能随意更改访问策略中相关属性的信息;文献 [7] 中,首先执行初始化算法,然后在密文中的访问策略中添加新属性。由于公共参数没有变,运行初始化算法Setup之后,接收方已经可以获得用户私钥,这时再在访问策略中添加属性,对于某些用户来说仍然具备解密能力。例如,访问策略
,用户属性列表为
,与用户属性列表相关联的密钥是
,若改变访问策略使其变为
,这时要求合法的解密者拥有的密钥
必须具有
相关属性成分,但是对于来说,由于L仍然满足W,因此某些用户仍然具备解密能力。
本方案要求即使是在接收方获得私钥之后,访问控制策略中添加属性,接收方必须再次从可信授权方获得包括新属性在内的新密钥才能解密密文,原用户私钥作废。方案设计添加属性时,相应的在公钥成分中也添加了该属性值的相关成分,并在加密过程中采用了分割的随机数
的方法,密文CT中
和
的计算都依赖于
。同时,s也作为指数在
和
中参与运算,即访问策略中的每个属性都在加密过程中生成随机值并参与运算,这就要求接收方解密时,必须具备满足策略属性序列中每个必须属性值。因此,原私钥不能用于更新后的访问策略解密,必须重新从可信授权方获得新私钥。
3) 提高系统效率。整个系统运行过程中,影响效率的主要因素体现在存储开销和系统计算时间上。为了方便下文的分析描述,令
和
分别代表
中元素的大小,n表示系统中的属性个数,N代表n个属性的所有可能取值个数之和,
表示执行一次双线性运算所需要的时间,
表示执行一次指数运算花费的时间,
表示访问控制策略中所包含的属性个数。
方案存储开销的大小分析主要通过对比分析各个方案在加解密过程中得到的主密钥、系统公钥、密文和私钥的大小。表1给出不同方案中系统的存储开销:
由表1可知,相比于其它文献,本文所提出的方案中存储空间明显缩小了,相应的通信量也降低了,其中,密文的存储空间缩小将近一半,而密钥所占空间的大小降幅显著。
本方案涉及多种运算,但系统的执行时间主要花费在指数运算和双线性运算上,其中双线性配对运算的代价远远大于指数运算,因此,本文的效率分析主要针对这两种运算。表2给出了不同方案在计算时间上的对比:
通过表2的数据可知,本文加密阶段的花费计算时间与文献 [13] 持平,比文献 [9] 明显降低;与其他文献相比,本文在接收方解密密文之前,将部分解密计算任务交由外包服务器执行,把部分私钥(转换密钥) TK发送给外包计算服务器,外包服务器判断属性列表
并对密文
进行转换计算,将原有的
转
换成
(更易于解密)发送给接收方,然后接收方可以通过验证等式
是否成立来确定
Table 2. Computation of time contrast
表2. 计算时间对比
外包服务器计算的正确性,并用自己的部分私钥
和属性列表
解密该转换密文,最终获得明文M。过程在保证安全性的前提下,由于本方案将解密阶段部分计算任务外包给云服务器计算,因此,数据拥有者的计算消耗明显降低,解密效率优于现有的属性加密方案,进一步提升了系统整体效率。
6. 结语
本文通过对属性取值做泛化处理,构造可以隐藏访问策略的加密方案,并支持访问策略中属性的灵活添加,在DDH假设下可抵抗选择明文攻击,达到不可区分性安全。此外,将解密阶段的大部分操作转移给外包服务器执行,降低用户私钥对可信授权方的依赖,解密效率优于现有方案,随着属性和访问数据量的增加,本方案的优势越明显。
资助信息
经典可证明安全性理论在量子密码协议分析中的应用研究(10007016201201)。