APP下载

可穿刺的基于属性的匹配加密方案*

2022-11-14聂旭云孙剑飞

密码学报 2022年5期
关键词:细粒度密文解密

聂旭云, 袁 玉, 孙剑飞

电子科技大学信息与软件工程学院 网络与数据安全四川省重点实验室, 成都 610054

1 引言

随着互联网和分布式计算技术的发展, 在云计算环境中进行数据共享深受各行各业的青睐, 云服务商为用户提供强大便捷的云端计算与存储服务, 从而降低存储成本, 提高数据使用和共享的便捷性. 由于数据被托管在云服务器上, 这就使得用户对数据失去控制权, 因此如何保护数据隐私与安全成为当前研究热点之一[1,2]. 为了解决数据隐私和安全问题, 一种细粒度的基于属性的加密[3](attribute-based encryption, ABE) 方案被提出, 该方案支持数据拥有者自己定义访问策略来实现有效控制, 只有满足相关属性的用户才能够访问数据. 目前, 属性基加密有两种主要形式: 密文策略属性基加密[4–6](ciphertext-policy attribute based encryption, CP-ABE) 和密钥策略属性基加密[7,8](key-policy attribute based encryption,KP-ABE). 在密文策略属性基加密/密钥策略属性基加密中, 访问策略附加在密文/密钥上, 密钥/密文与一组属性相关联. 属性基加密可以有效支持对一组动态甚至未知的物联网节点的安全数据传输, 这些节点由特定的属性描述. 然而传统的属性基加密方案只能解决用户一方的细粒度访问控制, 无法实现双向细粒度访问控制策略.

为了解决双向访问控制的问题, 由密文策略属性基加密和密钥策略属性基加密聚合而成的基于双策略属性加密[9,10](dual-policy attribute based encryption,DP-ABE)应运而生,它允许发送方同时选择访问策略和属性集来加密消息, 只有与接收方解密密钥相关的策略和属性与发送方相匹配时, 才能够解密成功.尽管基于双策略属性加密方案可以实现数据发送方和接收方双向的细粒度访问控制, 但却无法保证被上传到服务器上的加密数据不会被其他恶意攻击者篡改、编辑, 即无法保证加密数据的真实性. 一般来说, 可以通过数字签名来保证数据源的真实性, 基于属性的签密[11,12](attribute-based signcryption, ABSC) 作为一种潜在的、先进的方案被提出, 它可以支持细粒度访问控制和数据真实性. 然而该方案无法支持接收者自主选择访问控制策略, 即无法实现双向访问控制策略. Ateniese 等人运用握手协议[13]的原理首次提出了匹配加密[14](matchmaking encryption, ME) 方案, 该原语中发送方和接收方都可以指定其他参与者必须满足的访问策略或者属性集合, 只有同时满足访问策略和属性集才能恢复被加密的明文. 此外, 该方案同时在密文和发送方的访问策略上附加签名, 从而保证了数据的真实性. 在整个过程中, 双方参与者都不需要与对方进行实时交互, 但是无法支持细粒度访问控制. 为了解决细粒度访问控制问题, Xu 等人将匹配加密和属性基加密有效地相结合, 提出了基于属性的匹配加密方案[15](attribute-based matchmaking encryption, MABE), 该方案不仅实现了双向细粒度访问控制, 还保证了数据的真实性.

由于数据加密过程中, 密钥泄露或者受到第三方恶意获取是不可避免的, 密钥一旦泄露, 过去记录的所有加密通信和会话都可以被检索和解密, 从而失去机密性. 而现有的匹配加密等相关方案在密钥泄露时都不能保证过去消息的机密性. 前向安全是一种理想的属性, 即使有人拥有当前泄露的解密密钥, 它还可以完美地确保过去消息的机密性. 目前, 能够解决上述问题的密码原语可以分为两类: 前向加密和穿刺加密. 前向加密[16,17](forward encryption, FE) 通过使用户的解密密钥在时间段t之后失效, 从而撤销对时间段t之前加密的任何密文的解密能力. 目前有很多前向安全相关的方案被提出, 比如基于身份的前向安全加密[18–20]、基于属性的前向安全加密[21–23]等. 然而, 这些基于前向加密的公钥密码方案都需要与一个可信第三方进行交互, 从而实现密钥的更新, 这就使得第三方需要时刻保持在线状态, 这种交互式的密钥更新方式, 使得这些密码方案不适用于实际应用部署. Matthew 等人提出穿刺加密[24](puncturable encryption, PE) 方案, 该方案实现了非交互式的前向安全性. 具体地说, 在该穿刺算法中输入当前密钥和标签t, 就可以输出一个新的密钥, 该密钥可以解密所有未在标签t下加密的密文, 从而确保该时间段中消息的安全性. 此外, 该方案允许授权用户在无需第三方协助的情况下自行更新密钥.

针对上述问题, 本文提出了一种可穿刺的基于属性的匹配加密方案(puncturable attribute-based matchmaking encryption, P-ABME). 在该方案中, 数据发送方需要将一组标签集(t1,t2,··· ,td) 嵌入到密钥中, 同时保持密钥大小与基于属性的匹配加密方案的密钥大小一致. 一旦执行了包含标签集(t1,t2,··· ,td) 的密钥穿刺算法, 那么在ti时刻加密的密文不能被数据接收方的私钥解密. 综上, 本文所提方案不仅继承了基于属性的匹配加密技术[15]优点, 还采用穿刺加密技术确保消息的前向安全性. 此外, 本文基于严格的安全证明方法证明了所提出方案的安全性. 最后, 通过和其他相关密码方案进行对比,表明本方案能够实现更好的功能. 具体地说, 本文的主要贡献包括三个方面:

(1) 提出了一种可穿刺的基于属性的匹配加密方案. 在该方案中, 加解密双方都可以指定细粒度访问策略, 使得只有同时满足双方策略的用户才能解密密文. 此外, 本方案通过穿刺加密技术来实现对选定消息、接收方或者时间段的解密能力的撤销, 从而实现对过去消息的前向安全性.

(2) 在随机预言机模型下证明了所提方案不仅能够抵抗选择明文攻击, 还能在选择消息攻击下实现存在不可伪造性.

(3) 首先在功能方面将本方案与其他方案进行比较, 结果表明只有本方案能够实现双向细粒度访问控制、数据源的真实性以及前向安全性. 此外, 还在计算效率和存储大小两个方面对所提方案与其他相关的方案进行比较, 结果表明本方案计算开销和存储开销适中.

2 预备知识

本节对论文中涉及到的相关知识进行介绍. 包括常用符号、双线性映射、复杂性假设、线性秘密共享方案以及形式化定义.

2.1 符号说明

表1 对本文用到的符号进行说明.

表1 符号描述Table 1 Functional comparison

2.2 双线性映射和复杂性假设

定义1 (双线性映射) 假设G0和G1是阶为素数p的乘法循环群, 映射e:G0×G0→G1, 如果该映射满足下列性质:

(1) 双线性性: 对任意u,v ∈Zp,σ,φ ∈G0, 有e(σu,φv)=e(σ,φ)u,v.

(2) 非退化性: 存在u,v ∈G0, 使得e(u,v)/=1.

(3) 可计算性: 对于任意u,v ∈G0, 存在多项式时间算法能够计算e(u,v).则称映射e为双线性映射.

定义2 (困难性假设) 本文所提的方案依赖以下的复杂性假设:

(1) 决策双线性Diffie-Hellman (DBDH) 假设: 给定一个五元组(g,gλ,gμ,gv,B), 其中λ,μ,v ∈Zp,B ∈G1,g是G0的生成元, 判断B=e(g,g)λμv是否成立. 对于DBDH 问题, 不存在时间多项式的攻击者以不可忽略的优势将(g,gλ,gμ,gv,e(g,g)λμv) 和(g,gλ,gμ,gv,B) 区分.

(2) 计算性Diffie-Hellman (CDH) 假设: 给定一个四元组(g,gλ,gμ,V), 其中λ,μ ∈Zp, 在CDH 问题中, 计算V=gλμ是困难的.

2.3 线性秘密共享方案

定义3 线性秘密共享方案(LSSS) 假设有秘密共享方案Π, 其包含参与者集合P={P1,P2,··· ,Pn}, 若方案Π 满足以下性质, 则称方案Π 是线性秘密共享方案:

(1) 参与者的秘密共享份额构成Zp上的一个向量.

2.4 相关研究

2.4.1 基于属性的加密方案

CP-ABE 方案由以下四个算法组成.

· 系统公共参数建立Setup: 在该算法中, 根据隐式的参数, 得到加密所需要的公钥pk 和私钥mk.

· 加密Encryption: 在该算法中, 根据属性集, 消息m和pk, 得到嵌入属性S的密文c.

· 密钥生成KeyGen: 在该算法中, 根据访问结构W, pk 和mk, 得到嵌入了访问结构W 的解密密钥dk.

· 解密Decryption: 在该算法中, 根据嵌入属性集S的密文c, 嵌入访问结构W 的解密密钥dk 以及pk, 若S ∈W, 即解密成功, 恢复明文m.

CP-ABE 方案攻击者和挑战者之间的游戏如下:

· 初始化: 攻击者挑选将要挑战的属性集S.

· 参数建立: 挑战者运行Setup 算法, 得到pk 和mk, 并公开pk.

· 阶段1: 攻击者请求查询已经嵌入了访问结构W 的所有私钥, 其中S/∈Wj.

· 挑战阶段: 攻击者选择将要挑战的长度相等的消息m0和m1, 并公开给挑战者. 挑战者首先挑选任意b ∈(0,1), 其次执行Encryption 算法生成挑战密文c*, 并将c*公开.

· 阶段2: 与阶段1 相同.

· 猜测阶段: 攻击者发出其猜想b′∈(0,1). 如果b′=b, 那么攻击者取胜.

综上可知, 攻击者获胜的优势为Adv = Pr[b′=b]-1/2. 若攻击者的获胜的优势无法忽视, 那么必然能够找到一个可以成功攻破CP-ABE 方案的攻击者, 否则, 证明CP-ABE 方案是可行的.

由于KP-ABE 和CP-ABE 仅在属性集和访问策略嵌入的位置上略有差距, 其余完全一样, 因此本文只给出CP-ABE 的形式化定义和安全模型.

2.4.2 可穿刺加密方案

可穿刺加密方案由以下算法组成.

· 密钥生成KeyGen(1,d)→(pk,sk0): 输入安全参数k和每个密文最大的标签数d, 输出公钥pk和sk0.

· 加密Enc(pk,m,t1,t2,··· ,td)→(ct): 输入公钥pk, 明文m以及标签集t1,t2,··· ,td, 输出密文ct.

· 穿刺Puncture(pk,ski-1,t)→(ski): 输入一个密钥ski-1和标签t, 输出一个新的密钥ski.

· 解密Dec(pk,ski,ct,t1,t2,··· ,td)→(m,⊥): 输入私钥ski和密文ct, 解密成功, 输出明文m, 解密失败, 输出⊥.

可穿刺加密方案的安全模型被定义为IND-PUN-ATK 游戏, 攻击者查询以下信息:

初始化: 输入一个安全参数k和最大的标签数d, 同时挑战者初始化两个空集合P,C和一个计数器n=0, 之后挑战者执行KeyGen 算法并将公钥pk 公开给攻击者.

阶段1: 对手可以重复的下列的所有请求:

· Puncture(t): 挑战者增加n, 计算skn并将标签t添加到集合P中.

· Corrupt(): 攻击者第一次发出该查询时, 挑战者设置C ←P并将最新的私钥skn返回给攻击者,后续所有查询都返回⊥.

· Dec(pk,ski,ct,t1,t2,··· ,td): 如果ATK = CPA, 挑战者返回⊥; 如果ATK = CCA, 挑战者执行m ←Dec(pk,ski,ct,t1,t2,··· ,td) 并将m返回给攻击者.

猜测阶段: 攻击者发出其猜想b′. 如果b′=b, 那么攻击者取胜.

2.4.3 基于匹配的加密方案

匹配加密方案由以下算法组成:

· 系统公共参数建立Setup(1λ): 输入安全参数λ, 该算法输出主公钥mpk, 主策略密钥kpol 和主私钥msk, 本方案中默认所有的算法都以主公钥mpk 作为输入.

· 密钥生成SKGen(msk,σ): 根据msk 和属性σ, 得到一个与σ相关的加密密钥ekσ.

· 密钥生成PKGen(msk,ρ): 根据kpol 和属性ρ, 得到一个与ρ相关的加密密钥dkρ.

· 密钥生成PKGen(kpol,S): 根据kpol 和策略S, 得到一个与S 相关的加密密钥dkS.

· 加密Enc(ekσ,R,m): 输入一个与属性σ相关的加密密钥ekσ, 策略R 和消息m, 输出一个与R和σ相关的密文c.

· 解密Dec(dkρ,dkS,c): 根据嵌入ρ的解密密钥dkρ, 嵌S 入的解密密钥dkS以及与R 和σ相关的密文c, 若解密成功该算法输出m, 否则输出⊥.

匹配加密方案的安全模型如下:

(1) 选择明文攻击

· 初始化: 攻击者任意选择一个访问策略R*.

· 参数建立: 挑战者实施Setup(1λ)→(mpk,msk,kpol) 算法, 最后将mpk 公开给攻击者.

· 阶段1: 攻击者可以对密钥重复的发出以下查询. 攻击者查询与属性σ相关的加密密钥. 挑战者执行SKGen 算法, 生成ekσ.

· 挑战阶段: 攻击者随机挑选消息m0和m1并公开给挑战者. 挑战者首先随机挑选b ∈(0,1),其次实施Enc(ekσb,Rb,m)→c*算法来获得挑战密文c*, 同时把c*转发给挑战者.

· 阶段2: 和阶段1 相同.

· 猜测阶段: 攻击者发出其猜想b′, 如果b′=b, 那么攻击者获得胜利, 返回“1”, 否则, 返回“0”.(2) 选择密文攻击

· 初始化: 攻击者任意选择一个访问策略σ*.

· 参数建立: 挑战者实施Setup(1λ)→(mpk,msk,kpol) 算法, 最后将mpk 公开给攻击者.

· 阶段1: 攻击者可以对密钥重复的发出以下查询. 攻击者分别查询与属性ρ和访问策略S 相关的解密密钥. 挑战者执行RKGen(msk,ρ)→dkρ和PoLGen(kopl,S)→dkS算法, 分别生成dkρ和dkS.

· 挑战阶段: 攻击者根据得到的解密密钥执行Dec(dkρ,dkS,c)→m, 获得明文消息m.

· 阶段2: 和阶段1 相同.

· 猜测阶段: 如果S(σ)∧(m/=⊥), 返回“1” 那么攻击者获得胜利, 否则, 返回“0”.

综上所述, 基于属性的加密方案能够抵抗非授权用户的合谋攻击, 可穿刺加密能够实现前向安全性,匹配加密能够抵御选择明文下的不可区分性和伪造攻击.

3 方案定义与安全模型

本节给出一个能抵御明文攻击以及在选择消息攻击下存在不可伪造性的方案定义, 并给出方案的安全模型.

3.1 方案模型

图1 所示为P-ABME 方案的系统框架图. 系统框架包括四个主体: 授权中心(authorization center,AC)、数据拥有者(data owner, DO)、数据使用者(data user, DU) 以及云服务提供者(cloud service provider, CSP).

图1 方案系统架构Figure 1 System framework

授权中心主要职能是分别分发加密密钥给数据拥有者, 解密密钥给数据使用者. 数据拥有者将文件加密之后上传到云服务器. 当数据使用者向云服务器请求它所期望的数据拥有者的密文时, 云服务器检索并通过验证算法来验证是否存在符合条件的密文, 若匹配成功, 则返回密文给数据使用者. 最后数据使用者对密文进行解密即可获得明文文件.

P-ABME 方案由7 个多项式时间算法组成:

· 系统公共参数建立Setup(1λ)→(PK,MSK): 该算法由授权中心执行, 输入安全参数λ并返回系统公共参数PK 和主密钥MSK.

· 加密密钥生成EKGen(MSK,S)→EK: 该算法由授权中心执行, 根据数据拥有者的属性集S, 生成加密密钥EK.

· 解密密钥生成DKGen(MSK,R)→(DK,KP0): 该算法由授权中心执行, 根据数据拥有者的属性集R, 生成加密密钥DK 和穿刺密钥KP0.

· 穿刺密钥生成Puncture(PK,KPi-1,t)→KPi: 该算法由权威机构执行, 输入一个密钥KPi1和标签t, 输出一个新的密钥KPi.

· 加密Encrypt(EK,R,S′,M,(t1,t2,··· ,tl)∈{0,1}*/t0)→CT: 该算法由数据拥有者执行, 输入数据拥有者的密钥EK, 数据使用者的属性集合R, 数据拥有者的属性集合S′, 消息M以及一组标签集(t1,t2,··· ,tl)∈{0,1}*/t0, 生成密文CT.

· 验证Verify(S,CT)→{0,1}: 输入与数据拥有者相关联的策略S和密文CT, 当S|=S时, 云服务器返回1, 否则返回0.

· 解密Decrypt(DK,CT,KPi)→(M,⊥): 根据密文CT 和解密密钥DK, 数据接收者恢复出明文M或者解密失败返回⊥.

3.2 安全模型

可穿刺的基于属性的匹配加密方案不仅可以抵抗选择明文攻击(IND-CPA), 而且在选择消息攻击下具有存在不可伪造性(EUF-CMA). 具体安全模型如下:

3.2.1 选择明文攻击

定义4 如果多项式时间攻击者在赢得选择明文攻击游戏中具有可忽略的优势, 那么本方案在随机预言机模型下是安全的. 攻击者A获得游戏成功的优势定义为: Adv = |Pr[ς′=ς]-1/2|, 其中ς,ς′∈{0,1}.

攻击者A和挑战者B之间的攻击游戏:

· 初始化: 攻击者A挑选一个挑战集合R*和一组标签集t*1,t*2,··· ,t*l.

· 参数建立: 挑战者B初始化两个空集合P,C和一个计数器n=0. 其次,B执行Setup 算法生成公共参数PK 和主密钥MSK 并将PK 发送给攻击者.

· 阶段2: 和阶段1 相同.

· 猜测阶段:A输出ς*∈{0,1}. 如果ς*=ς,B返回“1”, 否则, 返回“0”.

3.2.2 存在不可伪造性

定义5 如果不存在多项式时间内的攻击者A在EUF-CMA 游戏中以不可忽略的优势攻破本方案,那么本方案在选择消息攻击下具备存在不可伪造性.

攻击者A的挑战游戏如下:

· 初始化: 攻击者A挑选一个挑战集合S′*并将其嵌入在伪造签名中.

· 参数建立: 当挑战者B获得挑战属性集S′*之后, 执行Setup 算法生成公共参数PK 和主密钥MSK, 并将PK 发送给攻击者.

· 查询阶段: 攻击者A在加密预言机和签名预言机上对S和(S′,m) 进行查询. 然后挑战者B将加密密钥EK 作为查询结果返回给攻击者A.

· 伪造阶段: 在消息m*中生成与S′*相关的签名σ*.

如果(m*,S′*) 在签名预言机中没有查询到, 且不存在满足条件的S*∈S′*的属性集S*被传递给加密预言机, 那么认为σ*是m*上与S′*相关的有效签名, 攻击者A赢得游戏. 攻击者A的优势即为赢得EUF-CMA 游戏的概率.

4 方案的具体描述

P-ABME 方案的具体描述如下.

系统公共参数建立(Setup): 该算法由授权中心完成, 来生成系统所需要的公共参数. 具体来说, 该算法首先选择一个双线性组B=(G0,G1,P,E,G),其中g是G0在素数阶p下的一个生成元. 同时,它还随机选择指数α,β,τ ∈Zp以及四个抗碰撞哈希函数H1,H2,H3,H4, 其中H1:ΨS →G0,H2:ΨR →G0,H3:{0,1}*→G0以及H4:{0,1}*→Zp. 接下来, 该算法随机选择h1,h2,··· ,hl ∈G0并计算l次多项式q(i) 使得q(0)=τ. 最后该算法定义U(x)=gq(x),t0为正常操作中未使用的区分标签, 并输出系统公钥pk 和系统主密钥msk:

加密密钥生成(EKGen): 该算法由授权中心实现. 它将数据拥有者的属性集分解为S= (attS,1,attS,2,··· ,attS,d) 并随机选择si ∈Zp. 最后计算加密密钥EK=(ek1,i,ek2,i):

加密(Encrypt): 该加密算法由数据拥有者实行. 将数据使用者的属性集分解为:R=(attR,1,attR,2,··· ,attR,f), 数据拥有者的属性集分解为S′= (attS,1,attS,2,··· ,attS,d′) 其中S′∈S, 并随机选择

5 正确性和安全性分析

本节不仅分析了验证算法和解密算法的正确, 还证明了方案的安全性.

5.1 正确性分析

(1) 假设接收方的属性集满足接收方的访问控制策略, 即R|=R 时:

由公式(1)和公式(2)计算可得:

上述推导证明了公式(3)成立, 即解密算法的正确性得到验证.

(2) 验证算法正确性分析:

综上可知, 等式(4)成立, 即验证算法的正确性得到验证.

5.2 安全性证明

定理1 如果CDH 假设成立, 那么不存在一个概率多项式时间攻击者A能破坏本方案EUF-CMA安全性.

证明: 如果攻击者A以一个可以忽略的优势攻击本方案, 那就意味着攻击者A可以解决CDH 困难性问题, 即攻击者A根据(A=ga,B=gb) 计算出gab.

假设A在H1预言机中最多查询qH1次, 在H3预言机中最多查询qH3次, 挑战者B将H1和H3预言机的结果保存在表L1和L3中. 此外,B随机选择一个σ ∈[1,qH3], 如果用i查询H1,A检查L1并执行以下操作:

· 如果在L1中选中了查询条目, 则将相同的答案返回给A.

· 否则,A作出如下模拟:

– 如果i/∈S*,A随机选择βi ∈Zp并响应答案H1(i)=gβi.

– 如果i ∈S*,A随机选择βi ∈Zp并响应答案H1(i)=A-βi=gaβi.

当使用mi在H3预言机中进行查询时,A检查L3并执行以下操作:

· 如果在L3中选中了检查条目, 则将相同的答案返回给A.

· 否则,A作出如下模拟:

– 如果i=σ,A随机选择αi,β′i ∈Zp并响应答案H3(i)=Aαigβ′i=(ga)αigβ′i.

综上讨论, 可以得出gab是可以被计算出来的, 这就意味着CDH 问题被解决了. 众所周知CDH 问题是困难的, 因此与假设相矛盾, 即P-ABME 方案具有EUF-CMA 安全性.

定理2 如果DBDH 假设成立, 则不存在一个概率多项式时间攻击者以不可忽略的优势破坏赢得选择明文攻击安全挑战, 因此系统具有IND-CPA 安全性.

证明: 假设存在一个攻击者A以不能忽略的优势ς破坏P-ABME 的IND-CPA 安全性. 那么在游戏中, 攻击者A通过模拟算法B来解决DBDH 问题, 即在B中输入(g,A=gx,B=gy,C=gz), 需要B判断Ψ=e(g,g)xyz是否成立, 其中Ψ是G1的随机值.

阶段1 & 2:

情况1 (R⊢R*):A查询LSSS 访问和标签集. 假设将访问控制策略R=(M,π) 和标签t添加到空集合P, 并随机选择一个-→x=(x1,x2,··· ,xmM) 使其满足x1=β+τrσ, 其中σ ∈Zp,τ=x. 对于所有π*(i)∈-→x, 均满足R-→x=-→0.

· Courrpt(): 当攻击者A第一次请求查询时,B把最新的穿刺密钥KPn返回给A并设置P →C,后续所有查询都返回⊥.

情况2 (R/⊢R*): 同理按照情况1 来模拟DK = (dk1,i,dk2,i) 并设置穿刺密钥KP0=(KP01,KP02,KP03,KP04): KP01=(gx)y+r′σ-y=(gτ)r+rσ, KP02=(gy)θt0, KP03=gy, KP04=t0. 将n增加1, 计算Puncture(pk,KPn-1,t)→KPn并将t添加到集合P中.

当R ⊢R 时, 考虑以下几点:

挑战阶段:A挑选两段等长的明文消息m0,m1并提交给B,B随机选择生成挑战密文需要的随机值ς ∈{0,1}. 其次, 设置c0=mς ·Φ,c1=gz,c2,j=gzθtj,s=z.

猜测阶段:A输出ς*∈{0,1}, 如果ς*=ς,B返回1, 否则返回0.

如果Ψ=e(g,g)xyz, 那么模拟结果和真实的游戏结果一样, 即A以ς+1/2 的优势能够猜出正确结果. 如果Ψ是G1的随机值, 那么A猜测正确的概率为1/2. 这明显与DBDH 问题的困难性相违背, 因此P-ABME 具有IND-CPA 安全性.

6 对比分析

本节从功能、性能两个维度对所提方案和其他方案进行比较分析.

6.1 功能对比

表2 给出了本文方案与其他方案在前向安全、双向匹配、细粒度访问控制、数据真实性、外包验证和密钥自更新等功能上的对比, 其中“✓” 表示方案具有该功能, “×” 表示方案不具备该功能.

表2 功能对比Table 2 Functional comparison

细粒度访问控制和双向匹配意味着数据发送方和接收方都可以定义它们的策略, 当只有满足双方定义的访问策略时, 接收方才能解密访问发送方的数据. 此外, 数据的真实性和签名可验证性意味着签名消息不能被其他恶意攻击者伪造和篡改. 前向安全和密钥自更新可以确保过去消息的机密性, 授权用户可以在没有第三方帮助的情况下自行更新密钥来重新获得访问权限.

从表2 可以看出, 文献[7—9] 只能实现单边细粒度访问控制, 无法实现前向安全、双向匹配、数据真实性等功能; 文献[12,13] 只能实现双向细粒度访问控制; 文献[14,15] 可以实现细粒度访问, 数据的真实性以及外包验证, 但是不具有前向安全、密钥自更新以及双向匹配等功能; 文献[22] 采用前向加密与属性基加密相结合的方式实现了细粒度访问控制和前向安全, 但是需要第三方时刻处于在线状态来辅助实现密钥的更新. 此外, 该工作仅支持发送者选择访问控制而接收者无法选择访问及控制, 因此不支持密钥自更新、双向匹配等功能; 可穿刺加密具有密钥自更新、非交互式等特点. 因此文献[24] 将穿刺加密与属性基加密相结合, 解决了文献[22] 中的不足, 使该工作有效地保证前向安全并实现细粒度访问控制, 但是仍然存在双边匹配、数据真实性等问题; 文献[17] 完美地解决了双向匹配问题, 并采用外包验证的方式对数据的真实性进行验证, 不足的是无法实现细粒度访问控制和前向安全; 文献[18] 中的方案在文献[17] 的基础上将匹配加密和属性基加密有效的结合起来, 实现了匹配加密和属性基加密的功能. 具体来说, 该方案可以实现双边的细粒度访问控制并支持外包验证来确保数据的真实性, 但仍然存在前向安全和密钥自更新问题; 本方案将文献[18] 和文献[24] 结合起来, 从而实现细粒度访问控制、双向匹配、数据真实性、前向安全以及密钥自更新等功能.

6.2 性能对比

表3 和表4 给出了本方案与其他方案在长度和效率这两方面进行比较的情况. 其中符号|G0|,|G1| 表示群G0,G1中元素的长度,L表示字符串的长度,|Zp| 表示群Zp中的元素,e0,e1,p分别表示群G0,G1中的模运算和双线性对运算,l表示属性的个数,d表示时间片穿刺次数.

表3 不同方案的存储开销的对比Table 3 Storage cost comparisons of different schemes

表4 不同方案的计算开销的对比Table 4 Computation cost comparisons of different schemes

从表3 中可以看出, 在加密密钥存储开销方面, 本方案比文献[11] 的开销要小, 比文献[14,15] 的存储开销要高些. 在解密密钥存储开销方面, 本方案的存储开销比文献[11] 要低, 和文献[25] 的开销相同, 比其他文献[4—9,14,15,19] 的存储开销要高. 在穿刺密钥存储开销方面, 本方案和文献[25] 的存储开销相同. 在密文存储开销方面, 本方案比其他文献[4,9,11,14,15] 的开销要高些, 这是因为需要设置更高长度的密文以实现方案的前向安全性.

从表4 中可以看到, 在加密的计算开销方面, 本方案比文献[4,9,11,19] 的加密计算开销要小, 比文献[14,15,25] 的加密计算开销要大些. 本方案在解密密钥生成算法的计算开销方面比文献[19] 要低, 而比其他文献的计算开销要高. 此外, 本方案比其他文献[4,9,11,14,15,19] 的解密计算开销高, 而和文献[15]的解密计算开销相同, 这是因为密文需要嵌入标签以实现前向安全, 而私钥在无第三方辅助实现密钥自更新过程需要更复杂的私钥设置, 私钥的复杂度直接决定了解密的计算开销.

综上所述, 本方案在实现更多功能的前提下, 其计算和存储开销适中.

7 总结与展望

本文提出了一种可穿刺的基于属性的匹配加密方案, 该方案将基于属性的匹配加密方案和可穿刺加密方案有效结合在一起, 不仅实现了双向细粒度访问控制, 还保证了数据的真实性和前向安全性. 此外, 在随机预言机模型下, 不仅证明了本方案能够抵抗选择明文攻击, 还能保证在选择消息攻击下消息存在不可伪造性. 最后, 将所提方案和其他相关方案在功能和理论性能方面进行对比分析, 结果表明本方案在实现双向细粒度访问控制、数据真实性以及前向安全的条件下, 计算开销和存储开销方面性能适中. 本方案在计算和存储效率上还有很大的提升空间, 如何在实现双向细粒度访问和数据真实性的前提下, 实现轻量级数据加密和解密是未来亟待解决的问题.

猜你喜欢

细粒度密文解密
融合判别性与细粒度特征的抗遮挡红外目标跟踪算法
一种支持动态更新的可排名密文搜索方案
基于模糊数学的通信网络密文信息差错恢复
炫词解密
解密“一包三改”
基于SVM多分类的超分辨图像细粒度分类方法
炫词解密
基于web粒度可配的编辑锁设计
支持细粒度权限控制且可搜索的PHR云服务系统
一种基于密文分析的密码识别技术*