基于离线/在线加密技术的适应性安全的密文策略属性加密方案*
2020-07-19王光波刘永庆
李 锋,王光波,刘永庆
(1.中国人民解放军31008 部队,北京 100089;2.中国人民解放军91977 部队,北京 100841)
0 引言
属性加密方案(Attribute Based Encryption,ABE)是由Sahai 等人在2005 年提出的一种对身份加密方案[1]进行扩展的全新的密码学方案[2],该方案,能够实现更加细粒度的访问控制,因此,自提出后得到了学术界广泛的研究。ABE 方案根据访问控制策略[3]与密文和密钥的不同关系,可以分为密钥策略属性加密方案[4](Key-Policy Attribute Based Encryption,KP-ABE)和密文策略属性加密方案[5](Ciphertext-Policy Attribute Based Encryption,CPABE),其中CP-ABE 方案可以实现由用户自己定义访问控制策略,因此在云存储[6]环境下得到了广泛应用。另外,ABE 方案的安全性由低到高可以分为启发式安全、选择性安全和适应性安全。因此,本文选取能够实现适应性安全的经典CP-ABE 方案[7]进行研究和改进,具有典型的示范意义。但是,在原始方案中,密文长度和密文计算量都与需要加密的访问控制矩阵A的行向量l成正比,随着l的增加而变大,加重了系统负担。为了提高方案的加密性能,本文提出了一种基于离线/在线技术的CP-ABE 方案,对加密算法进行了改进,分为离线和在线两个加密过程。其中,离线加密可以在准备阶段完成加密预处理,在线加密则可以基于预处理结果快速高效地完成最终加密。
1 相关定义
本节首先对方案将用到的合数阶双线性群和Decisional Bilinear Diffie-Hellman(DBDH)假设进行介绍。
1.1 合数阶双线性群
定义1。令 (p1,p2,p3,G, GT,e)表示合数阶双线性群参数,其中p1,p2和p3代表3 个不同的大素数,G 和TG 代表2个阶为N=p1p2p3的合数群,e:G×G→GT代表某个双线性映射,并且需要满足如下条件:
(1)任意选取参数x,y∈G和j,k∈NZ,满足等式e(xj,yk)=e(x,y)jk。
(2)存在某个参数g∈G满足e(g,g)阶为N。
1.2 静态假设
本节主要描述方案证明所基于的3 个静态假设如下。
假设1:给定假设参数如下:
定义攻击者A 攻破假设1 的优势为:
假设2:给定假设参数如下:
定义攻击者A 攻破假设2 的优势为:
假设3:给定假设参数如下:
定义攻击者A 攻破假设3 的优势为:
2 基于离线/在线加密的CP-ABE 方案
本节首先给出了基于离线/在线加密的适应安全性CP-ABE 方案的算法定义,接着,给出了方案的安全模型,并对方案进行了具体的构造,最后,对方案进行了安全证明和性能分析。
2.1 算法定义
本小节给出能够实现离线/在线加密的追踪性密文策略属性加密方案的算法定义,主要包括以下5 个多项式时间算法。
(1)CP-ABE.Setup(GDS,U)→(PP,MK)
系统参数设置算法以群描述参数GDS和属性集合U为输入,最后算法输出系统公开密钥PP和主密钥MK。
(2)CP-ABE.GenKey(S,MK,PP)→(SKS)
密钥生成算法以用户属性集合S、主密钥MK和系统公开密钥PP为输入,最后,算法输出用户解密密钥SKS。
(3)CP-ABE.OfflineEncrypt(PP)→(ICH)离线加密算法以系统公开密钥PP为输入,最后,算法输出预处理的中间密文ICH。
(4)CP-ABE.OnEncrypt(M,(A,ρ),ICH,PP)→CH(A,ρ)
在线加密算法以明文消息M、访问控制策略(A,ρ)、中间密文ICH和系统公开密钥PP为输入。最后,加密算法基于访问控制策略(A,ρ)和中间密文ICH加密明文消息M后输出最终密文CH(A,ρ)。
(5)CP-ABE.Decrypt(CH(A,ρ),SKid,S,PP)→M
解密算法以访问控制策略(A,ρ)下的密文头CH(A,ρ)、属性集合S下的解密密钥SKS和系统公开密钥PP为输入,若属性集合S满足访问控制策略(A,ρ),那么算法解密成功输出明文消息M。
2.2 安全模型定义
本节将在标准模型下对基于离线/在线加密的适应安全性CP-ABE 方案进行证明,其证明基于Lewko等人提出的标准的适应安全性CP-ABE方案[7]进行构造,该安全模型的具体描述如下:
参数设置:仿真者B 运行CP-ABE.Setup算法,生成公开密钥PP和主密钥MK。
密钥查询阶1:攻击者A 适应性地提交一系列的与属性集合(S1,S2,…,Sq1)有关的密钥查询。
密文挑战:A 提交挑战明文M0、M1和访问策略 (A*,ρ*),并且限制如下:任何在密钥查询1 中提交的属性集合(S1,S2,…,Sq1)都不能满足访问策略(A*,ρ*)。然后,仿真者B 随机选择参数β∈{0,1},并加密Mβ,生成挑战密文CT*。最后,B 将CT*发送给A。
密钥查询2:继续进行与密钥查询1 类似的密钥查询。
猜测:A 输出对β的猜测β′∈{0,1}
2.3 方案构造
本文所提方案主要包括以下5 个算法。
(1)CP-ABE.Setup(GDS,U)→(PP,MK)
系统参数设置算法以群描述参数GDS=((N=p1p2p3,G,TG,e),g,p1,p2,p3)和属性集合为输入。然后,算法随机选择指数a,和随机元素。对于每个属性i∈U,算法随机选择指数。最后,算法设置主密钥为MK=(α,X3),并设置系统公开密钥如下:
(2)CP-ABE.GenKey(S,MK,PP)→(SKS)
密钥生成算法以用户属性集合S、主密钥MK和系统公开密钥PP为输入。算法首先随机选择参数。最后,算法设置用户私钥如下:
(3)CP-ABE.OfflineEncrypt(PP)→ICH
离线加密算法以系统公开密钥PP为输入。首先,我们构造一个特定场景的离线加密系统,该系统假设最大可能的属性集合为P。对于每个属性i∈P,随机选择,然后进行如下密文组件计算:
(4)CP-ABE.OnEncrypt(M,(A,ρ),ICH,PP)→CH(A,ρ)
在线加密算法以以明文消息M、访问控制策略(A,ρ)、离线加密阶段的中间密文ICH和系统公开密钥PP为输入,其中A是一个l×n阶矩阵,且满足l≤|P|。加密算法首先选择随机参数,并计算密文组件C1=gs。然后,算法随机选择向量,并且对A的每一行Ai,计算内积,并计算密文组件。最后,算法设置最终密文为:
(5)CP-ABE.Decrypt(CH(A,ρ),SKid,S,PP)→M
解密算法以访问控制策略CH(A,ρ)=(C,C1,{C2,i,C3,i,C4,i}1≤i≤l)、解密密钥SKS=(K,K1,{K2,i}i∈S)和系统公开密钥PP为输入,若属性集合S满足访问控制策略(A,ρ),那么算法设置I={i:ρ(i)∈S},并在多项式时间内计算参数使以下等式成立:。然后算法计算:
最后,算法输出明文消息M如下:
2.4 安全性证明
本节主要对所提方案进行安全性证明,将本文方案(记为Σoocpabe)的安全性规约到原始CP-ABE方案[7](记为Σcpabe)的安全性。
证明:假设存在某个攻击者A 能够以不可忽略的优势AduAΣoocpabe攻破方案Σoocpabe,那么我们同样可以构造算法B 以优势AduBΣcpabe攻破方案Σcpabe,并且AduBΣcpabe等于AduAΣoocpabe。
参数阶段:仿真者B向方案Σcpabe查询公开密钥,得到相应的公开密钥PP=((N,G,TG,e),g,ga,{Ti=gti}i∈U,Λ=e(g,g)α1)后,B 将PP发送给攻击者A。
查询查询1:当A 向B 提交属性集合S进行密钥查询时,B 将S提交给方案Σcpabe,并得到如下形式的解密密钥:
最后,B 将解密密钥SKS发送给A。
得到CT´后,B 随机选择参数,并计算:
最后B 将挑战密文CT发送给攻击者A。
密钥查询2:与密钥密钥查询1 类似。
猜测:攻击者A 输出值β′∈{0,1}作为对β的猜测,然后B 将β′发送给方案Σcpabe作为输出。
从上述证明过程可以看出,本文构造的公开参数、密钥和挑战密文与文献[7]具有一样的分布,因此,优势满足AduBΣcpabe=AduAΣoocpabe。
3 方案分析
本节将对提出的基于离线/在线加密的适应安全性CP-ABE 方案与文献[7]提出的原始适应安全性CP-ABE 方案进行具体的性能分析,包括加密计算量和密文长度。E代表 G下的指数计算,ET代表GT下的指数计算,| G|代表 G中的元素长度,| GT|代表TG 中的元素长度,l代表访问控制策略(A,ρ)中矩阵A的行数,|P|代表离线加密阶段假设的属性集合规模,代表中的元素长度。
如表1 所示为本节提出的基于离线/在线加密的适应安全性CP-ABE 方案与文献[7]提出的原始适应安全性CP-ABE 方案进行的性能对比,虽然为了实现离线/在线的加密操作,本节提出的基于离线/在线加密的方案需要增加额外的参数,因此密文长度要高于原始方案,但是采用了离线加密技术,在线加密的计算量要远远小于原始方案的加密计算量。
表1 性能对比
4 结语
本文针对CP-ABE 加密性能问题,提出了一种新的CP-ABE 加密技术,将CP-ABE 方案的加密算法分为两个阶段:离线加密和在线加密。其中,离线加密可以在未得到具体加密访问结构的前提下,完成大部分的加密预处理计算,在线加密则可以利用离线加密的计算结果,快速高效地完成最终加密,大大提高了CP-ABE 方案的加密性能。