学术研究

支持用户撤销的格基属性加密方案

  • 刘玉靓 , * ,
  • 马彦奇 ,
  • 刘媛 ,
  • 周永彬
展开
  • 南京理工大学网络空间安全学院,南京 210094

网络出版日期: 2025-01-25

基金资助

国家自然科学基金(U2336205,62202231,62202230,62302224,62302226);云南省重大科技专项计划(202302AD080002)

版权

版权所有©《网络空间安全科学学报》编辑部 2024

User-revocable attribute based encryption scheme from lattices

  • LIU Yuliang , * ,
  • MA Yanqi ,
  • LIU Yuan ,
  • ZHOU Yongbin
Expand
  • School of Cyber Science and Engineering, Nanjing University of Science and Technology, Nanjing 210094, China

Online published: 2025-01-25

Supported by

National Natural Science Foundation of China (U2336205, 62202231,62202230, 62302224,62302226);Yunnan Province Science and Technology Major Project (202302AD080002)

Copyright

Copyright ©2024 Journal of Aeronautical Materials. All rights reserved.

摘要

针对适用于物联网(Internet of Things,IoT)设备中的用户权限动态管理,提出了一种新型的支持撤销的格基安全密文策略属性加密方案。方案通过权威机构更新时间向量,实现了用户的动态撤销功能。它采用线性秘密共享方案(Linear Secret Sharing Scheme,LSSS)来表达访问结构,保障复杂访问控制策略如“与门”“或门”和门限访问策略的实施,而且实现了部分访问策略的隐藏,有效增强了方案的灵活性和安全性。安全性评估显示,该方案能够在选择访问结构和选择明文攻击的情境下维持密文的不可区分性,即使在面对合谋攻击时也同样有效。对比分析表明,方案在存储性能上较优,且支持用户撤销功能,为物联网环境中的数据安全和访问控制提供了一种高效且安全的解决方案。

本文引用格式

刘玉靓 , 马彦奇 , 刘媛 , 周永彬 . 支持用户撤销的格基属性加密方案[J]. 网络空间安全科学学报, 2024 , 2(5) : 78 -86 . DOI: 10.20172/j.issn.2097-3136.240507

Abstract

A novel revocation-supported lattice-based attribute-based encryption (ABE) scheme was proposed to address the dynamic management of user permissions in Internet of Things (IoT) devices. The scheme implemented the user dynamic revocation function through an authority’s update time vector. It employed a linear secret sharing scheme (LSSS) to represent the access structure, ensuring the enforcement of complex access control policies such as AND, OR, and threshold access strategy. Additionally, it achieved partial concealment of access policies, significantly enhancing the scheme’s flexibility and security. Security evaluation demonstrats that the scheme can maintain ciphertext indistinguishability under both chosen-access structure and chosen-plaintext attacks, even in the presence of collusion attacks. Comparative analysis shows that the scheme outperforms in terms of storage efficiency and supports user revocation functionality, providing an effective and secure solution for data security and access control in IoT environments.

0 引言

随着新一代信息通信技术的飞速发展,物联网(Internet of Things, IoT)技术在越来越多的行业和领域中得到应用,如智能家居和智能交通系统,以及消费者应用(如医疗和保健设备)[1-2]。其中,通过网络连接的各种物联网设备(如传感器和智能设备)主要是通过互联网收集和传输(收集的)数据,并进一步处理和统计分析。然而,随着越来越多的设备连接到网络中,不同设备产生的大量数据以及设备与设备之间的数据传输、共享等可能涉及大量的用户隐私数据,亟须对这些数据进行保护,并通过网络安全地共享给相关设备或用户。为了解决这些问题,必须采用相应的加密技术和严格的访问控制机制,使得只有满足相关访问策略的授权设备或用户才能正确解密并访问这些数据。属性基加密(Attribute-Based Encryption, ABE)是一种具有细粒度访问控制的公钥加密机制,是物联网设备间进行数据安全共享以及访问控制的很好的选择。
Sahai等[3]首先提出了基于属性的加密,在ABE中密文和密钥都与一组属性相关联,发送方可以根据需要加密的内容或接收方的属性设置访问控制策略,只有满足属性的用户才能解密加密后的密文。基于属性的加密分为基于密钥策略属性的加密(Key-Policy Attribute-Based Encryption , KP-ABE)[4]和基于密文策略属性的加密(Cipher-Policy Attribute-Based Encryption, CP-ABE)[5]。在KP-ABE方案中,私钥与访问策略相关联,密文与一组属性相关联。相反,在CP-ABE方案中,密文与访问策略相关联,私钥与一组属性相关联。ABE在保护用户隐私、数据的安全共享、细粒度访问控制等方面有着广泛的应用。然而,在实际应用中,系统中用户和用户所拥有的属性并不是一成不变的,而是随着用户的加入或退出系统、用户的权限变更等而变化的。因此,为了防止因用户属性变化而导致用户数据被非授权用户非法访问,支持撤销的ABE应运而生。
近年来,多种支持撤销的ABE相继被提出,根据如何撤销信息,现有的可撤销ABE方案可分为两类:直接撤销[6-8]和间接撤销[9-10]。在直接撤销ABE系统中,数据所有者在加密密文时直接指定撤销列表,只有在撤销时才更新撤销列表。在直接撤销中,不需要与授权机构沟通。而在间接撤销中,授权机构需要更新信息并与用户进行沟通,这将导致用户数量越多,成本越高。典型的支持撤销的ABE方案有:Liu等[11]提出的支持撤销的CP-ABE方案,该方案的密文和密钥包含两部分,其中一部分与撤销列表相关联,然而其无法抵抗合谋攻击;Wang等[12]提出的CP-ABE方案利用与用户信息关联的二叉树来实现属性撤销,在选择明文攻击和选择访问策略攻击下,该方案是安全的。
在传统的ABE方案中,访问控制策略通常与密文一同存储在云服务器中。因此,任何能够访问密文的实体都可以获取到对应的访问策略。然而,访问策略可能包含敏感信息,如用户的角色、权限或其他属性描述。因此,在某些应用场景中,隐藏访问策略以保护用户隐私是必要的。现有的策略隐藏机制可以分为部分隐藏策略和完全隐藏策略。部分隐藏策略是对属性的敏感信息进行隐藏。部分隐藏访问策略通过隐藏属性值,能够在保持加密方案高效性的同时,增强系统的隐私保护能力。Lai等[13]和Zhang等[14]提出的隐藏访问策略的CP-ABE方案将属性分为属性名和属性值两部分,与密文相关的访问策略只包含属性名,实现了部分隐藏访问策略。上述支持撤销的ABE方案多为基于配对技术构造的,然而,随着量子计算机的发展,这些基于配对技术构造的方案无法抵抗量子计算的攻击,因此,构造可抵抗量子计算攻击的新型可撤销ABE方案受到许多学者的关注。
Yang等[15]提出了一种基于环上误差学习(Ring Learning With Errors,RLWE)问题的具有属性撤销和允许多个授权机构参与密钥分发的CP-ABE方案。Zhao等[16]提出了一种适用于云存储的基于RLWE问题的可撤销CP-ABE加密方案,该方案能够抵抗合谋攻击,并且在实现共享数据时,保证对用户权限的细粒度访问控制。于金霞等[17]提出一种外包环境下基于带误差学习(Learning With Errors,LWE)问题的可撤销CP-ABE方案,该方案采用树形访问结构,实现了灵活的细粒度访问策略,借助数据外包管理服务器,进行属性密钥的更新和密文的更新,实现了属性的即时撤销。然而上述格上的可撤销ABE方案存在参数尺寸较大的问题,在实际应用中会有较大的计算和存储开销。此外,用户属性通常也包含用户的部分隐私信息,上述方案未考虑属性作为公开的参数仍存在用户隐私泄露的风险。因此,为解决上述问题,本文提出了一种新型的支持撤销的格基CP-ABE方案。方案通过权威机构更新时间向量,实现了用户的动态撤销功能。此外,结合Liu等[18]的方案,采用LSSS来表达访问结构,并通过对属性值进行隐藏来保护用户的属性隐私,有效增强了方案的灵活性和安全性。

1 预备知识

1.1 整数格

定义1  (格)设${{\boldsymbol{b}}_1},{{\boldsymbol{b}}_2}, \cdot \cdot \cdot ,{{\boldsymbol{b}}_n} \in {\mathbb{R}^m}$是一组线性无关的列向量,则由其生成格$\Lambda $
$ \Lambda = L\left( {\boldsymbol{B}} \right) = \left\{ {\sum\limits_{i = 1}^n {{x_i}{{\boldsymbol{b}}_i}:{x_i}} \in \mathbb{Z},\left( {i = 1,2, \cdot \cdot \cdot ,n} \right)} \right\} $
${\boldsymbol{B}} = [{{\boldsymbol{b}}_1},{{\boldsymbol{b}}_2}, \cdot \cdot \cdot ,{{\boldsymbol{b}}_n}]$是格$\Lambda $的一组格基,$m$是格的维数,$n$是格的秩。
定义2 (整数格) 对于素数$q$、矩阵${\boldsymbol{A}} \in \mathbb{Z}_q^{n \times m}$和向量$ {\boldsymbol{u}} \in \mathbb{Z}_q^n $,整数格定义如下:
$ {\Lambda _{\mathrm{q}}}({\boldsymbol{A}}) = \left\{ {{\boldsymbol{y}} \in {\mathbb{Z}^{m}}{{\mathrm{s}}} .{\mathrm{t}}.\exists {\boldsymbol{s}} \in \mathbb{Z}_{q}^{n},{{\boldsymbol{A}}^{{\mathrm{T}}} }{\boldsymbol{s}} = {\boldsymbol{y}}\left( {\text{mod} q} \right)} \right\} $
$ \Lambda _q^ \bot ({\boldsymbol{A}}) = \{ {\boldsymbol{y}} \in {\mathbb{Z}^{m}}{\mathrm{{s} .t}}.{\boldsymbol{Ay}} = 0(\text{mod} q)\}\quad\quad\quad\;\;\; $
$ \Lambda _q^{\boldsymbol{u}}({\boldsymbol{A}}) = \{ {\boldsymbol{y}} \in {\mathbb{Z}^{m}}{\mathrm{{s} .t}}.{\boldsymbol{Ay}} = {\boldsymbol{u}}(\text{mod} q)\}\quad\quad\quad\;\;\; $

1.2 离散高斯

定义3 对于任意正实数$\sigma \in \mathbb{R}$和向量${\boldsymbol{c}} \in {\mathbb{R}^m}$,定义了一个格$\Lambda $上的高斯分布:
$ {\mathcal{D}_{\Lambda ,\sigma ,{\boldsymbol{c}}}}\left( {\boldsymbol{y}} \right) = \frac{{{\rho _{\sigma ,\boldsymbol{c}}}({\boldsymbol{y}})}}{{{\rho _{\sigma ,{\boldsymbol{c}}}}(\Lambda )}} = \frac{{{\rho _{\sigma ,{\boldsymbol{c}}}}({\boldsymbol{y}})}}{{\displaystyle\sum\limits_{{\boldsymbol{x}} \in \Lambda } {{\rho _{\sigma ,{\boldsymbol{c}}}}({\boldsymbol{x}})} }} $
其中,$ {\rho _{\sigma ,{\boldsymbol{c}}}}(\Lambda ) = \displaystyle\sum\limits_{{\boldsymbol{x}} \in \Lambda } {{\rho _{\sigma ,{\boldsymbol{c}}}}({\boldsymbol{x}})} $

1.3 采样算法和FRD函数

MP12[19]中介绍了以下采样算法和FRD(Full-Rank Differences)函数,由于本文方案中$\boldsymbol {T_A} $是一个陷门而不是一个基,所以本文使用文献[18]改进的$\text{IMSampleLeft}$算法。
定义4 矩阵${\boldsymbol{A}}$$G$-陷门为矩阵$ {{\boldsymbol{T}}_{\boldsymbol{A}}} \in {\mathbb{Z}^{(m - \bar n) \times \bar n}} $,满足$ {\boldsymbol{A}}\left[ {\begin{array}{*{20}{c}} {{{\boldsymbol{T}}_{\boldsymbol{A}}}} \\ {\boldsymbol{I}} \end{array}} \right] = {\boldsymbol{H}}{{\boldsymbol{G}}_n} $,其中矩阵$ {\boldsymbol{A}} \in \mathbb{Z}_q^{n \times m} $$ {{\boldsymbol{G}}_n} \in \mathbb{Z}_q^{n \times \bar n} $$ {\boldsymbol{H}} \in \mathbb{Z}_q^{n \times n} $$ {\boldsymbol{H}} $是陷门标签,令$ {s_1}({{\boldsymbol{T}}_{\boldsymbol{A}}}) $$ {{\boldsymbol{T}}_{\boldsymbol{A}}} $的最大奇异值,也是陷门的质量。
对于任意整数$ q \geqslant 2 $$ n \geqslant 1 $$ \bar n = nt $$ t\mathrm{=}\mathrm{log}\;q $$ m = O(n\log\;q) $,设$ {\boldsymbol{H}} \in \mathbb{Z}_q^{n \times n} $是一个可逆矩阵,$ {{\boldsymbol{G}}_n} \in \mathbb{Z}_q^{n \times \bar n} $为改锥矩阵,随机矩阵$ \overline {\boldsymbol{A}} \in \mathbb{Z}_q^{n \times \bar m} $,均匀随机向量$ {\boldsymbol{u}} \in \mathbb{Z}_q^n $,则:
(1)算法$ \text{TrapGen} ({\boldsymbol{A}},{\boldsymbol{H}}) $输出一个均匀随机矩阵${\boldsymbol{A}} = [\overline {\boldsymbol{A}} |{\boldsymbol{HG}} - \overline {\boldsymbol{A}} {{\boldsymbol{T}}_{\boldsymbol{A}}}] \in \mathbb{Z}_q^{n \times m}$和一个陷门矩阵${{\boldsymbol{T}}_{\boldsymbol{A}}} \in \mathbb{Z}_q^{n \times m}$
(2)算法${{\mathrm{SamplePre}}} ({\boldsymbol{A}},{\boldsymbol{G}},{{\boldsymbol{T}}_{\boldsymbol{A}}},{\boldsymbol{u}},\sigma )$输出一个向量${\boldsymbol{e}} \in \mathbb{Z}_q^{\overline m + \overline n }$,其中${\boldsymbol{Ae}} = {\boldsymbol{u}}(\text{mod} q)$
(3)算法$ {{\mathrm{IMSampleLeft}}} ({\boldsymbol{A}},{\boldsymbol{G}},{{\boldsymbol{M}}_1},{{\boldsymbol{T}}_{\boldsymbol{A}}},{\boldsymbol{u}},\sigma ) $输出向量$ {\boldsymbol{e}} \in {\mathbb{Z}^{m + {m_1}}} $,且向量${\boldsymbol{e}}$与分布$ {\mathcal{D}_{\Lambda _q^{\boldsymbol{u}}({{\boldsymbol{F}}_1}),\sigma }} $在统计上不可区分,令$ {{\boldsymbol{F}}_1} = {\boldsymbol{A}}|{{\boldsymbol{M}}_1} $,则向量$ {\boldsymbol{e}} $满足$ {{\boldsymbol{F}}_1} \cdot {\boldsymbol{e}} = {\boldsymbol{u}}(\text{mod} q) $
(4)算法${{\mathrm{SampleRight}}} ({\boldsymbol{A}},{\boldsymbol{B}},{\boldsymbol{R}},{{\boldsymbol{T}}_{\boldsymbol{B}}},{\boldsymbol{u}},\sigma )$输出一个向量$ {\boldsymbol{e}} \in {\mathbb{Z}^{m + k}} $,其中矩阵$ {\boldsymbol{A}} \in \mathbb{Z}_q^{n \times k} $$ {\boldsymbol{B}} \in \mathbb{Z}_q^{n \times m} $$ {\boldsymbol{R}} \in \mathbb{Z}_q^{k \times m} $$ {{\boldsymbol{T}}_{\boldsymbol{B}}} $$ \Lambda _q^ \bot ({\boldsymbol{B}}) $的一组格基,向量${\boldsymbol{u}} \in {\mathbb{Z}^n}$。当${{\boldsymbol{F}}_2} = {\boldsymbol{A}}|{\boldsymbol{AR}} + {\boldsymbol{B}}$时,$ {{\boldsymbol{F}}_2} \cdot {\boldsymbol{e}} = {\boldsymbol{u}}(\text{mod} q) $
引理1 算法${{\mathrm{SamplePre}}} $中的向量${\boldsymbol{e}}$与分布$ {\mathcal{D}_{\Lambda _q^{\boldsymbol{u}}({\boldsymbol{A}}),\sigma \omega (\sqrt {\log n} )}} $在统计上不可区分时,则:
$ \Pr [{\boldsymbol{e}} \sim {\mathcal{D}_{\Lambda _q^{\boldsymbol{u}}({\boldsymbol{A}}),\sigma \omega (\sqrt {\log n} )}} : \parallel {\boldsymbol{e}}\parallel > \sigma \sqrt m ] \leqslant {\mathrm{negl}}(n) $
下面介绍FRD函数$ {\boldsymbol{H}}:\mathbb{Z}_q^n \to \mathbb{Z}_q^{n \times n} $
输入向量$ {\boldsymbol{u}} = ({u_0},{u_1}, \cdot \cdot \cdot ,{u_{n - 1}}{)^{\mathrm{T}}} \in \mathbb{Z}_q^n $,定义一个$n$阶的多项式$ {g_{u}}(x) = \displaystyle\sum\nolimits_{i = 0}^{n - 1} {u_i}{x^i} $$f$$n$阶不可约多项式,${{\mathrm{coe}}} (g)$表示由$g$的系数组成的$n$维向量,则:
$ {\boldsymbol{H}}({\boldsymbol{u}}) = \left[ {\begin{array}{*{20}{c}} {{{\mathrm{coe}}} ({g_u})} \\ {{{\mathrm{coe}}} (x \cdot {g_u}\text{mod} f)} \\ \vdots \\ {{{\mathrm{coe}}} ({x^{n - 1}} \cdot {g_u}\text{mod} f)} \end{array}} \right] \in \mathbb{Z}_q^{n \times n} $

1.4 LSSS

LSSS用$({\boldsymbol{M}},\rho )$表示访问策略,$ {\boldsymbol{M}} $是一个$l \times n$的矩阵,$\rho (i)$与矩阵${\boldsymbol{M}}$的每一行一一对应,其由两个算法组成。
(1)分享算法:${\text{share}}(({\boldsymbol{M}},\rho ),s)$用于分享秘密值$s$,设向量$ {\boldsymbol{v}} = {(s,{v_2}, \cdot \cdot \cdot ,{v_n})^\text{T}} $,其中$s \in {\mathbb{Z}_q}$为待分享的秘密值,${v_2}, \cdot \cdot \cdot ,{v_n} \in {\mathbb{Z}_p}$是随机选取的,计算${\lambda _i} = {{\boldsymbol{M}}_i}{\boldsymbol{v}}$${\lambda _i}$$\rho (i)$所对应的子秘密,其中${{\boldsymbol{M}}_i}$表示${\boldsymbol{M}}$的第$i$行。
(2)重构算法:${\text{Reconstruction}}({\lambda _i}, \cdot \cdot \cdot ,{\lambda _l},({\boldsymbol{M}},\rho ))$用于重构秘密值$s$,令$S$是一个授权集合,$I$是授权集合对应矩阵的行,$ I = \{ i|\rho (i) \in S\} $,则存在一组常数$ \left\{ {{k_i}|i \in I} \right\} $满足$ \displaystyle\sum\nolimits_{i \in I} {{k_i}{{\boldsymbol{M}}_i}} = (1,0, \cdot \cdot \cdot ,0) $,则$ \displaystyle\sum\nolimits_{i \in I} {{k_i}{\lambda _i}} = s $

1.5 困难性假设

定义5 (LWE问题)给定素数$q$、整数$n$和一个分布${\overline \Psi _\alpha }$。在$ \mathbb{Z}_{{q}}^{{n}} $上的均匀分布中挑选向量$ {{{{\boldsymbol{\omega}} }}_{{i}}} \in \mathbb{Z}_{q}^{n} $,设$ {\boldsymbol{s}} \in \mathbb{Z}_q^n $为固定向量,$ {{\boldsymbol{x}}_{{i}}} $${\overline \Psi _\alpha }$上的噪声,然后计算$ {v_i} = {\boldsymbol{\omega }}_{{i}}^{{\mathrm{T}}} {\boldsymbol{s}} + {x_i} $,任务是恢复唯一的随机秘密${\boldsymbol{s}}$。LWE问题实例是访问一个未被指定的随机预言机$ \mathcal{O} $,被访问的随机预言机要么是携带固定随机密钥$ {\boldsymbol{s}} \in \mathbb{Z}_{q}^{n} $的带噪声的伪随机采样器$ {\mathcal{O}_{\boldsymbol{s}}} $,要么是真随机采样器$ \mathcal{O}_{\boldsymbol{s}}^{\prime} $,其行为分别如下:
$ {\mathcal{O}_{\boldsymbol{s}}} $输出形式为$ ({{\boldsymbol{\omega }}_{{i}}},{{\boldsymbol{v}}_{{i}}}) = ({{\boldsymbol{\omega }}_{{i}}},{\boldsymbol{\omega }}_{{i}}^{{\mathrm{T}}} {\boldsymbol{s}} + {x_i}) \in \mathbb{Z}_q^n \times {\mathbb{Z}_q} $的伪随机样本,且样本中含有噪声。
$ \mathcal{O}_{\boldsymbol{s}}^{\prime} $输出来自分布$\mathbb{Z}_q^n \times {\mathbb{Z}_q}$的真正均匀的随机样本$ ({{\boldsymbol{\omega }}_{{i}}},{{\boldsymbol{v}}_{{i}}}) $
定理1 如果对于$q > 2\sqrt n /\alpha $,存在一个有效的(可能是量子的)算法可以判定LWE问题,那么在最坏的情况下,也存在一个有效的量子算法可以将最短独立向量问题(Shortest Independent Vector Problem, SIVP)和判定性最短向量问题 (Decisional Shortest Vector Problem, GapSVP)问题逼近到$ {\ell _2} $范数下的$ \overline{\rm{\mathit{O}}}(n/\alpha) $因数以内。

2 方案定义和安全模型

2.1 方案架构

传统的物联网设备系统架构如图1所示。在物联网环境中,设备数量庞大且分布广泛,数据的安全性与隐私保护尤为重要。本文提出了一种支持用户撤销的格基属性加密方案,能够很好地适应物联网设备的需求。传统的物联网架构包括多个角色,如可信权威机构、物联网设备、数据存储服务器、数据管理服务器以及数据访问者。
图 1 物联网设备系统架构

Fig.1 System architecture of IoT Devices

物联网设备通常资源有限,因此对加密方案的计算和存储开销要求较高。本文方案通过格基技术优化了密钥和密文的存储效率,减少了对设备计算能力和存储资源的需求,适用于计算能力有限的物联网设备。此外,该方案支持用户动态撤销,能够适应物联网设备环境中频繁变动的用户和设备需求。随着物联网设备的加入或退出,可信权威机构可以通过更新时间向量,实现用户密钥的更新,而无须重新生成所有用户密钥,大幅降低了密钥管理的复杂性和通信开销。
在数据传输和共享过程中,物联网设备需要实现灵活的访问控制,本文方案通过LSSS支持复杂的访问控制策略,如“与门”“或门”和门限访问控制。同时,该方案支持部分访问策略的隐藏,使得密文中的访问策略不会暴露敏感信息,进一步提升了方案的安全性和隐私保护能力。这些特性使得本文提出的方案能够在物联网环境中更加高效地进行数据加密和访问控制管理,适应多样化的应用场景。
在方案架构中,可信权威机构在物联网系统的初始阶段生成系统参数,并为合法用户分发私钥。由于物联网设备的高动态性,用户的权限可能随时变更,因此,方案采用时间向量机制进行用户密钥的动态更新,以实现用户撤销。该撤销机制确保未授权设备无法继续访问数据,提升了系统的安全性。
物联网环境下的物联网设备通常会通过访问控制策略加密数据,并上传到数据存储服务器中。随着时间的推移,可信权威机构会定期更新时间向量,物联网设备接收新的时间向量后,对密文进行部分更新,确保仅有合法用户能够解密和访问数据。数据管理服务器负责审查数据访问者的请求,确保只有符合访问控制策略的用户能够获取解密密钥并访问数据。这种机制通过周期性地更新时间向量,使物联网设备在安全和隐私保护方面具有更强的适应性。
本文方案:(1)在系统初始化阶段,可信权威机构生成公共参数和主密钥,并根据时间生成时间向量;(2)根据合法用户拥有的属性,生成用户私钥;(3)合法的物联网设备可根据自己的访问控制需求设置访问策略,同时根据访问策略加密数据并上传到数据存储服务器;(4)可信权威机构会维护用户列表并设置固定更新时间,每隔一段时间,可信权威机构重新生成时间向量${\boldsymbol{t}}$并公开,同时为用户列表中的用户生成更新密钥并分发给用户;(5)物联网设备收到新的时间向量$\overline {\boldsymbol{t}} $后,更新自己的密文并上传到数据存储服务器进行密文更新;(6)数据访问者利用私钥对数据解密。

2.2 算法定义

在CP-ABE中,消息与由一组属性定义的访问策略相关,使用属性作为公钥进行加密。一个可撤销CP-ABE方案由以下5个算法组成。
$ {{\mathrm{Setup}}} ({1^n},U) \to ({{\mathrm{pp}}} ,{{\mathrm{msk}}} ) $:算法由可信权威机构执行,将系统安全参数${1^n}$和系统中属性集合$U$作为输入,输出公共参数$\text {pp} $和主密钥$\text {msk} $
${{\mathrm{KeyGen}}} ({{\mathrm{pp}}} ,{\mathrm{msk}},{S_j}) \to {{{\mathrm{sk}}} _j}$:算法由可信权威机构执行,将初始化阶段生成的公共参数pp和主密钥$ {{\mathrm{msk}}} $作为输入,并根据用户的属性集合${S_j}$为该用户输出私钥${{{\mathrm{sk}}} _j}$
$ {{\mathrm{Encrypt}}} ({{\mathrm{pp}}} ,(\boldsymbol{M},p),b) \to c $:算法由物联网设备执行,该算法以公共参数${{\mathrm{pp}}} $、访问策略$ (\boldsymbol{M},p) $(其中行与属性标签相关)和明文比特$b \in (0,1)$作为输入,输出密文$c$
${{\mathrm{Decrypt}}} ({\mathrm{pp}},c,{{{\mathrm{sk}}} _j}) \to b$:算法由数据访问者执行,该算法以公共参数$ \mathrm{pp} $、密文$c$和解密者的私钥$ {\mathrm{{sk}} _j} $作为输入,若用户属性满足密文的访问结构,则可以成功解密输出消息$b$,否则输出⊥。
${{\mathrm{UListUpt}}} (\overline t ,{{\mathrm{UL}}} ) \to \widetilde {{\mathrm{UL}}}$:算法由权威机构执行,该算法以新的时间向量$ \overline{\boldsymbol{t}} $和用户列表${{\mathrm{UL}}} $作为输入,根据属性更新情况更新用户列表输出$ \widetilde {{{\mathrm{UL}}} } $,权威机构根据$\widetilde {{{\mathrm{UL}}} }$为用户更新密钥。

2.3 安全模型

该支持用户撤销的CP-ABE方案满足选择访问结构和选择明文攻击下的不可区分性。该方案的安全模型包括一个敌手$ \mathcal{A}$和挑战者$ \mathcal{B}$,描述如下。
(1)初始化:敌手$ \mathcal{A}$向挑战者$ \mathcal{B}$宣布要挑战的访问结构${\Lambda ^*}$和用户更新列表$\widetilde {{{\mathrm{UL}}} }$
(2)系统设置:挑战者$ \mathcal{B}$运行${{\mathrm{Setup}}} $算法生成公共参数$ \mathrm{pp} $和主密钥${{\mathrm{msk}}} $,并将${{\mathrm{pp}}} $发送给敌手$ \mathcal{A}$
(3)阶段1:敌手$ \mathcal{A}$针对任何不满足访问结构${\varLambda ^*}$的属性集合,自适应地对私钥进行询问。根据敌手的询问,挑战者运行${{\mathrm{KeyGen}}} $算法,生成属性集合私钥和用户时间私钥,并将其发送给敌手$ \mathcal{A}$
(4)挑战:敌手$ \mathcal{A}$随机选择一条消息$b \in \{ 0,1\} $并将该消息发送给挑战者$ \mathcal{B}$。挑战者$ \mathcal{B}$计算出挑战密文${c{'}}$,并将其发送给敌手$ \mathcal{A}$
(5)阶段2:在获得挑战密文后,允许$ \mathcal{A}$重复进行私钥查询。
(6)猜测:敌手$ \mathcal{A}$输出其猜测${b{'}} \in \{ 0,1\} $
如果不存在多项式时间的敌手$ \mathcal{A}$在攻击上述游戏时,具有不可忽略的优势$\varepsilon = |\Pr [{b^{'}} - b] - ({1 \mathord{\left/ {\vphantom {1 2}} \right. } 2})|$,则证明该方案满足选择属性和选择明文攻击下的不可区分性安全。

3 支持用户撤销的格基属性加密方案

在本文方案中,系统中所有的属性可以由$l$个属性标签表示,即标签可由$U = \left\{ {1,2, \cdot \cdot \cdot ,l} \right\}$表示,其中每个属性标签可具有多个不同的属性值。用j来代表某个用户,${S_j} = \left\{ {i:{a_i}} \right\}$代表某用户的属性集合,i表示属性标签,${a_i} \in \mathbb{Z}_q^n$是带有部分隐私信息的属性值。
$ {{\mathrm{Setup}}} ({1^n},U) \to ({{\mathrm{pp}}} ,{\mathrm{msk}}) $
算法以一个安全参数${1^n}$和属性集合$U$作为输入,输出公共参数${{\mathrm{pp}}} $和主密钥${{\mathrm{msk}}} $
(1)可信权威机构首先执行${{\mathrm{TrapGen}}} \left( {{\boldsymbol{A}},{\boldsymbol{H}}} \right)$算法,生成均匀随机矩阵${\boldsymbol{A}} \in \mathbb{Z}_q^{n \times m}$和陷门矩阵${{\boldsymbol{T}}_{\boldsymbol{A}}} \in {\mathbb{Z}^{\bar m \times \bar n}}$,其中$m = \overline m + \overline n $
(2)对于属性集合$U$中的$l$个属性标签,权威机构选择$l$个均匀随机矩阵$ {{\boldsymbol{A}}_{1}},{{\boldsymbol{A}}_{2}}, \cdot \cdot \cdot ,{{\boldsymbol{A}}_{l}} $
(3)选择均匀随机向量$ {\boldsymbol{u}},{{\bf{VK}}} \in \mathbb{Z}_q^n $和均匀随机矩阵${\boldsymbol{B}},{\boldsymbol{C}} \in \mathbb{Z}_q^{n \times m}$
(4)根据时间生成向量${\boldsymbol{t}} \in \mathbb{Z}_q^n$
(5)生成公共参数和主密钥:
$ {{\mathrm{pp}}} = \left\{ {{\boldsymbol{A}},{\boldsymbol{B}},{\boldsymbol{C}},{{\left( {{{\boldsymbol{A}}_{{i}}}} \right)}_{i \in U}},{\boldsymbol{u}},{\bf{VK}},{\boldsymbol{t}}} \right\},{{\mathrm{msk}}} = \left\{ {\left( {{{\boldsymbol{T}}_{\boldsymbol{A}}}} \right)} \right\} $
$ {{\mathrm{KeyGen}}} ({{\mathrm{pp}}} ,\boldsymbol{T_A}) \to {{{\mathrm{sk}}} _j} $
输入公共参数${{\mathrm{pp}}} $和主密钥${{\mathrm{msk}}} $,对于用户$j$,进行如下操作:
权威机构首先随机生成$ {{\boldsymbol{u}}_{{1}}} \in \mathbb{Z}_q^n $,并设$ {{\boldsymbol{u}}_{{2}}} = {\boldsymbol{u}} - {{\boldsymbol{u}}_{{1}}} $。对于用户$j$,生成$ {{\boldsymbol{F}}_{{t}}}{\text{ = }}{\boldsymbol{A}}|{\boldsymbol{C}} + {\boldsymbol{H}}({\boldsymbol{t}}){\boldsymbol{B}} $,对于用户属性$i \in {S_j}$,生成$ {{\boldsymbol{F}}_{{i}}} = {\boldsymbol{A}}|{{\boldsymbol{A}}_{{i}}} + {\boldsymbol{H}}\left( {{{\boldsymbol{a}}_{{i}}}} \right){\boldsymbol{B}} $,在构造$ {{\boldsymbol{F}}_{{i}}} $时使用了属性标签$i$所对应的值${a_i}$,所有只有使用正确的属性值生成的$ {{\boldsymbol{F}}_{{i}}} $才能够正确解密在加密阶段使用属性值$ {{\boldsymbol{b}}_{{i}}} $生成的$ {{\boldsymbol{F}}_{{i}}} $所构成的密文。然后运行$ {{\mathrm{IMSampleleft}}} \left( {{\boldsymbol{A}},{\boldsymbol{G}},{{\boldsymbol{A}}_{{i}}}{\boldsymbol{ + H}}\left( {{{\boldsymbol{a}}_{{i}}}} \right){\boldsymbol{B}},{{\boldsymbol{T}}_{\boldsymbol{A}}},{{\boldsymbol{u}}_{{1}}},{\sigma _i}} \right) $算法,生成用户的私钥$ {{\boldsymbol{e}}_{{i}}} \in {\mathbb{Z}^{2m}} $,再次运行$ {{\mathrm{IMSampleleft}}} \left( {\boldsymbol{A}},{\boldsymbol{G}},{\boldsymbol{C}} + {\boldsymbol{H}}\left( {\boldsymbol{t}} \right){\boldsymbol{B}},{{\boldsymbol{T}}_{\boldsymbol{A}}},{{\boldsymbol{u}}_{{2}}}, {\sigma _i} \right) $算法,生成用户私钥$ {{\boldsymbol{e}}_{{t}}} \in {\mathbb{Z}^{2m}} $。当进行用户撤销时,权威机构会为在用户列表中的用户重新生成密钥$ {{\boldsymbol{e}}_{{t}}} $并分发给用户实现用户撤销。其中
$ {{\boldsymbol{F}}_{{i}}}{{\boldsymbol{e}}_{{i}}} = {{\boldsymbol{u}}_{{1}}}(\text{mod} q)\text{,} \boldsymbol{F}_{t}\boldsymbol{e}_{t}=\boldsymbol{u}_{2}\left({\mathrm{mod}}\; q\right) 。 $
用户私钥为:
$ {{{\mathrm{sk}}} _j} = \left\{ {{{\left( {{{\boldsymbol{e}}_{{i}}}} \right)}_{i \in {S_j}}},{{\boldsymbol{e}}_{{t}}}} \right\} $
$ {{\mathrm{Encrypt}}} ({\mathrm{pp}},(\boldsymbol{M},p),b) \to c $
加密者根据需求设置访问控制,设${S_c} = \left( {i,{b_i}} \right)$为加密者需求的访问控制的属性集合,在公共参数${{\mathrm{pp}}} $、访问结构$\left( {{\boldsymbol{M}},p} \right)$的输入下,其中${\boldsymbol{M}}$是一个$l \times n$维的共享矩阵,$p$是一个映射,它将每一行${{\boldsymbol{M}}_{{i}}}$映射到基于${S_c}$中属性值${b_i}$的属性标签$i$上,访问结构只会显示属性标签$i$,而对真正的属性值${b_i}$实现了隐藏,保护了加密者的隐私。加密者加密密文将做以下操作:
加密者做以下操作设置访问结构,首先构建$n$维向量$ {{\boldsymbol{g}}_{{1}}} = {({s_1},{g_{12}}, \cdot \cdot \cdot ,{g_{1n}})^{{\mathrm{T}}} } $,$ \cdot \cdot \cdot $,$ {{\boldsymbol{g}}_{{n}}} = {({s_n},{g_{n2}}, \cdot \cdot \cdot ,{g_{nn}})^{{\mathrm{T}}} } $,其中${\boldsymbol{s}}$为秘密值,${\boldsymbol{s}} = ({s_1},{s_2}, \cdot \cdot \cdot ,{s_n})$。然后计算${\boldsymbol{M}}{{\boldsymbol{g}}_{\boldsymbol{1}}} = (\lambda _1^{(1)}, \lambda _2^{(1)}, \cdot \cdot \cdot , \lambda _l^{(1)})^{{\mathrm{T}}} , \cdot \cdot \cdot ,{\boldsymbol{M}}{{\boldsymbol{g}}_{\boldsymbol{n}}} = {(\lambda _1^{(n)},\lambda _2^{(n)}, \cdot \cdot \cdot ,\lambda _l^{(n)})^{\mathrm{T}}}$,对于加密者要求的属性值${b_i} \in {S_c}$,计算份额$ {\lambda }_{i}=(\boldsymbol{M}_{i}{g}_{1}, \boldsymbol{M}_{i}{g}_{2},\cdot \cdot \cdot , \boldsymbol{M}_{i}{g}_{n})^{\mathrm{T}}=({\lambda }_{i}^{(1)},{\lambda }_{i}^{(2)},\cdot \cdot \cdot , {\lambda }_{i}^{(n)}{)}^{{\mathrm{T}}}\in {\mathbb{Z}}_{q}^{n} $。设$I$为满足访问结构的属性子集,可以找到向量$ {{\boldsymbol{k}}_{{i}}} = {({k_1},{k_2}, \cdot \cdot \cdot ,{k_l})^{{\mathrm{T}}} } $,使得$ {\displaystyle \sum }_{i\in \left(1,2,\cdot \cdot \cdot ,l\right)} {k}_{i}\boldsymbol{M}_{i}=\left(1,0,0,\cdot \cdot \cdot ,0\right)$$\forall i \in U:\left( {i \in I} \right) \vee \left( {{k_i} = 0} \right)$,则$ {\displaystyle \sum }_{i\in \left(1,2,\cdot \cdot \cdot ,l\right)} {k}_{i}{\lambda }_{i}=\boldsymbol{s} $
(1)令$ {{\boldsymbol{F}}_{\rho \left( i \right)}} = {\boldsymbol{A}}|{{\boldsymbol{A}}_{\rho \left( i \right)}} + {\boldsymbol{H}}\left( {{{\boldsymbol{b}}_{\rho \left( i \right)}}} \right){\boldsymbol{B}} \in \mathbb{Z}_q^{n \times 2m} $,并设$ {{\boldsymbol{F}}_{{t}}} = {\boldsymbol{A}}|{\boldsymbol{C}} + {\boldsymbol{H}}\left( {\boldsymbol{t}} \right){\boldsymbol{B}} \in \mathbb{Z}_q^{n \times 2m} $
(2)使$L = {\left( {l!} \right)^2}$,选择均匀随机向量${\boldsymbol{r}} \in \mathbb{Z}_q^n$以及噪声$ {x}\mathop \leftarrow \limits^{{\phi _a}} {\mathbb{Z}_q} $$ {{\boldsymbol{x}}_{{i}}},{{\boldsymbol{x}}_t}\mathop \leftarrow \limits^{\phi _{{a_i}}^m} \mathbb{Z}_q^m $
(3)选择均匀随机矩阵$ {{\boldsymbol{R}}_{{i}}} \in {\left\{ { - 1,1} \right\}^{m \times m}} $,求$ {{\boldsymbol{y}}_{{i}}} = {{\boldsymbol{R}}_{{i}}}{{\boldsymbol{x}}_{{i}}} $$ {{\boldsymbol{y}}_{{t}}} = {{\boldsymbol{R}}_{{i}}}{{\boldsymbol{x}}_{{t}}} $
(4)计算:
$ {c_0} = {{\boldsymbol{u}}^{{\mathrm{T}}} }{\boldsymbol{r}}{\bf{V}}{{\bf{K}}^{{\mathrm{T}}} }{\boldsymbol{s}} + Lx + b\left\lfloor {\frac{q}{2}} \right\rfloor \in {\mathbb{Z}_q} $
$ {{\boldsymbol{c}}_{{t}}} = {{\boldsymbol{F}}_{{t}}}^{{\mathrm{T}}} {\boldsymbol{r}}{\bf{V{K}}^{\mathrm{T}}}{\boldsymbol{s}} + L\left[ {\begin{array}{*{20}{c}} {{{\boldsymbol{x}}_{{t}}}} \\ {{{\boldsymbol{y}}_{{t}}}} \end{array}} \right] \in \mathbb{Z}_q^{2m} $
$ {{\boldsymbol{c}}_{\rho \left( i \right)}} = {{\boldsymbol{F}}_{\rho \left( i \right)}}^{\mathrm{T}}{\boldsymbol{r}}{\bf{V{K}}^{\mathrm{T}}}{{\boldsymbol{\lambda }}_{{i}}} + L\left[ {\begin{array}{*{20}{c}} {{{\boldsymbol{x}}_i}} \\ {{{\boldsymbol{y}}_i}} \end{array}} \right] \in \mathbb{Z}_q^{2m} $
输出密文$ c = \left\{ {{c_0},{{\boldsymbol{c}}_{{t}}},{{\left( {{{\boldsymbol{c}}_{\rho \left( i \right)}}} \right)}_{\rho (i) \in {S_c}}}} \right\} $
$ {{\mathrm{Decrypt}}} ({{\mathrm{pp}}} ,c,{{{\mathrm{sk}}} _j}) \to b $
在输入公开参数${{\mathrm{pp}}} $,密文$c$和解密者的私钥${{{\mathrm{sk}}} _j}$时,若用户属性满足访问结构且时间密钥$ {{\boldsymbol{e}}_{{t}}} $已进行更新,则可以成功解密出明文,否则输出⊥。
若满足则做如下操作:
$I$表示匹配的属性子集,则解密者可以找到一个向量${\boldsymbol{k}} = {({k_1},{k_2}, \cdot \cdot \cdot ,{k_l})^{{\mathrm{T}}} }$,使得$ {\displaystyle \sum }_{i\in \left(1,2,\cdot \cdot \cdot ,l\right)} {k}_{i}{{\boldsymbol{M}}}_{i}= \left(1,0, 0,\cdot \cdot \cdot , 0\right), \forall i\in U:\left(i\in I\right)\vee \left({k}_{i}=0\right) $,则$ {\displaystyle \sum }_{i\in \left(1,2,\cdot \cdot \cdot ,l\right)} {k}_{i}{\lambda }_{i}=\boldsymbol{s} $
计算:
$ \begin{aligned} &\boldsymbol{e}_{t}^{\mathrm{T}}\boldsymbol{c}_{t}+{\displaystyle \sum }_{i\in I}{k}_{i}\boldsymbol{e}_{i}{}^{\mathrm{T}}\boldsymbol{c}_{i}\\ &=\boldsymbol{u}_{1}{}^{\mathrm{T}}\boldsymbol{r}{\bf{VK}}^{\mathrm{T}}{s}+{u}_{2}{}^{\mathrm{T}}{{\bf{r}}}{\bf{VK}}^{\mathrm{T}}{s}+L\boldsymbol{e}_{t}{}^{\mathrm{T}}\left[\begin{array}{c}\boldsymbol{x}_{t}\\ \boldsymbol{y}_{t}\end{array}\right]+{{L}}{\displaystyle \sum }_{i\in I}{{\boldsymbol{k}}}_{i}{{\boldsymbol{e}}}_{i}{}^{\mathrm{T}}\left[\begin{array}{c}\boldsymbol{x}_{i}\\ \boldsymbol{y}_{i}\end{array}\right]\text{} \\&= {{\boldsymbol{u}}^\mathrm{T} }{\boldsymbol{r}}{\bf{VK}}^\mathrm{T} {{s}} + L{{{e}}_{{t}}}^{\mathrm{T}}\left[ {\begin{array}{*{20}{c}} {{{\boldsymbol{x}}_{{t}}}} \\ {{{\boldsymbol{y}}_{{t}}}} \end{array}} \right] + {{L}}\mathop \sum \limits_{i \in I} {k_{{i}}}{{{e}}_{{i}}}^{\mathrm{T}}\left[ {\begin{array}{*{20}{c}} {{{\boldsymbol{x}}_{{i}}}} \\ {{{\boldsymbol{y}}_{{i}}}} \end{array}} \right] \end{aligned} $
最后计算:
$ \begin{split} b' &= {c_0} - {\boldsymbol{e}}_{{t}}^\mathrm{T} {{\boldsymbol{c}}_{{t}}} + \mathop \sum \limits_{i \in I} {k_i}{{\boldsymbol{e}}_{{i}}}^\mathrm{T} {{\boldsymbol{c}}_{{i}}}\left( {\text{mod} q} \right) \\ & = b\left\lfloor {\frac{q}{2}} \right\rfloor + \left( {Lx - {{\boldsymbol{e}}_{{t}}}^\mathrm{T}L\left[ {\begin{array}{*{20}{c}} {{{\boldsymbol{x}}_{{t}}}} \\ {{{\boldsymbol{y}}_{{t}}}} \end{array}} \right] - L\mathop \sum \limits_{i \in I} {k_i}{{\boldsymbol{e}}_{{i}}}^\mathrm{T} \left[ {\begin{array}{*{20}{c}} {{{\boldsymbol{x}}_{{i}}}} \\ {{{\boldsymbol{y}}_{{i}}}} \end{array}} \right]} \right) \\ \end{split} $
如果$\left| {b' - \left\lfloor {\dfrac{q}{2}} \right\rfloor } \right|{\text{ < }}\left\lfloor {\dfrac{q}{4}} \right\rfloor $,输出1,否则输出0。
$ {{\mathrm{UListUpt}}} (\overline{\boldsymbol{t}} ,{{\mathrm{UL}}} ) \to \widetilde {{{\mathrm{UL}}} } $
输入用户列表${{\mathrm{UL}}} $,初始时包含所有用户,该算法将所有未被撤销的用户置于用户列表中。权威机构定期更新时间向量$ \boldsymbol{t} $并更新用户列表$\widetilde {{\mathrm{UL}}}$,当进行更新时,权威机构发布新的时间向量$ \overline { \boldsymbol{t}} $并公开,同时权威机构为所有位于用户列表$\widetilde {{{\mathrm{UL}}} }$的用户生成密钥$ { \boldsymbol{e}_{\overline t }} $并分发给用户。物联网设备收到新的时间向量$\overline {\boldsymbol{t}} $后,生成新的密文部分$ {{\boldsymbol{c}}_{\overline {{t}} }} = {{\boldsymbol{F}}_{\overline {{t}} }}^\mathrm{T} {\boldsymbol{r}}{\bf{V{K}}^{{\mathrm{T}}} }{\boldsymbol{s}} + L\left[ {\begin{array}{*{20}{c}} {{{\boldsymbol{x}}_{\overline {{t}} }}} \\ {{{\boldsymbol{y}}_{\overline {{t}} }}} \end{array}} \right] $,并更新密文。

4 方案分析

4.1 正确性分析

为确保正确解密密文,需要保证误差项以压倒性的优势小于${q \mathord{\left/ {\vphantom {q 5}} \right. } 5}$,下面对解密部分进行计算:
$ \begin{array}{c}{\displaystyle \sum }_{i\in I}{k}_{i}{{\boldsymbol{e}}}_{i}{}^{{\mathrm{T}}}{{\boldsymbol{c}}}_{i}={\displaystyle \sum }_{i\in I}{k}_{i}{{\boldsymbol{e}}}_{i}{}^{\mathrm{T}}{{\boldsymbol{F}}}_{i}{}^{\mathrm{T}}{\boldsymbol{r}}{\bf{V{K}}}^{\mathrm{T}}{\lambda }_{i}+L{\displaystyle \sum }_{i\in I}{{\boldsymbol{k}}}_{i}{{\boldsymbol{e}}}_{i}{}^{\mathrm{T}}\left[\begin{array}{c}{{\boldsymbol{x}}}_{i}\\ {{\boldsymbol{y}}}_{i}\end{array}\right]\text{} \\ ={{\boldsymbol{u}}}_{1}{}^{\mathrm{T}}{\boldsymbol{r}}{\bf{V{K}}}^{\mathrm{T}}{\boldsymbol{s}}+L{\displaystyle \sum }_{i\in I}{k}_{i}{{\boldsymbol{e}}}_{i}{}^{\mathrm{T}}\left[\begin{array}{c}{{\boldsymbol{x}}}_{i}\\ {{\boldsymbol{y}}}_{i}\end{array}\right]\text{}\end{array} $
$ {{\boldsymbol{e}}_{{t}}}^{\mathrm{T}}{{\boldsymbol{c}}_{{t}}} = {\left( {{{\boldsymbol{F}}_{{t}}}{{\boldsymbol{e}}_{{t}}}} \right)^{\mathrm{T}} }{\boldsymbol{r}}{{\bf{VK}}^{\mathrm{T}} }{\boldsymbol{s}} + {{\boldsymbol{e}}_{{t}}}^{\mathrm{T}} {{\boldsymbol{x}}_{{t}}} = {{\boldsymbol{u}}_{{2}}}^{\mathrm{T}}{\boldsymbol{r}}{{\bf{VK}}^{\mathrm{T}} }{\boldsymbol{s}} + L{{\boldsymbol{e}}_{{t}}}^{\mathrm{T}}\left[ {\begin{array}{*{20}{c}} {{{\boldsymbol{x}}_{{t}}}} \\ {{{\boldsymbol{y}}_{{t}}}} \end{array}} \right] $
$ \begin{aligned} b{'}&={c}_{0}-{\displaystyle \sum }_{i\in I}{k}_{i}{\boldsymbol{e}}_{i}{}^{\mathrm{T}}{\boldsymbol{c}}_{i}-{\boldsymbol{e}}_{t}{}^{\mathrm{T}}{\boldsymbol{c}}_{t}\\ &={\boldsymbol{u}}^{\mathrm{T}}{\boldsymbol{r}}{\bf{V}}{\bf{K}}^{\mathrm{T}}{\boldsymbol{s}}+Lx+b\left\lfloor \frac{q}{2}\right\rfloor -\\ &\left({\boldsymbol{u}}^{\mathrm{T}}{\boldsymbol{r}}{\bf{V}}{\bf{K}}^{\mathrm{T}}\boldsymbol{s}+L{\boldsymbol{e}}_{t}{}^{\mathrm{T}}\left[\begin{array}{c}{\boldsymbol{x}}_{t}\\ {\boldsymbol{y}}_{t}\end{array}\right]+L{\displaystyle \sum }_{i\in I}{k}_{i}{\boldsymbol{e}}_{i}{}^{\mathrm{T}}\left[\begin{array}{c}{\boldsymbol{x}}_{i}\\ {\boldsymbol{y}}_{i}\end{array}\right]\right)\text{} \\& = b\left\lfloor {\frac{q}{2}} \right\rfloor + \left( {Lx - L{{\boldsymbol{e}}_{{t}}}^{\mathrm{T}}\left[ {\begin{array}{*{20}{c}} {{{\boldsymbol{x}}_{{t}}}} \\ {{{\boldsymbol{y}}_{{t}}}} \end{array}} \right] - L\mathop \sum \limits_{i \in I} {k_i}{{\boldsymbol{e}}_{{i}}}^{\mathrm{T}}\left[ {\begin{array}{*{20}{c}} {{{\boldsymbol{x}}_{{i}}}} \\ {{{\boldsymbol{y}}_{{i}}}} \end{array}} \right]} \right) \end{aligned} $
根据上文,使$ {{\boldsymbol{e}}_{{i}}},{{\boldsymbol{e}}_{{t}}} = \left[ {\begin{array}{*{20}{c}} {{{\boldsymbol{e}}_{{{1,i}}}}} \\ {{{\boldsymbol{e}}_{{{2,i}}}}} \end{array}} \right],\left[ {\begin{array}{*{20}{c}} {{{\boldsymbol{e}}_{{{1,t}}}}} \\ {{{\boldsymbol{e}}_{{{2,t}}}}} \end{array}} \right] $,其中$ {{\boldsymbol{e}}_{{{1,i}}}}{{,}}\;{{\boldsymbol{e}}_{{{2,i}}}}{{,}\;}{{\boldsymbol{e}}_{{{1,t}}}}{{,}\;}{{\boldsymbol{e}}_{{{2,t}}}} \in {\mathbb{Z}^m} $。则误差向量如下所示:
$ \begin{split} &L{{x}} - L{{\boldsymbol{e}}_{{t}}}^{\text{T}} \left[ {\begin{array}{*{20}{c}} {{{\boldsymbol{x}}_{{t}}}} \\ {{{\boldsymbol{y}}_{{t}}}} \end{array}} \right] - L\mathop \sum \limits_{i \in I} {k_i}{{\boldsymbol{e}}_{{i}}}^{\text{T}} \left[ {\begin{array}{*{20}{c}} {{{\boldsymbol{x}}_{{i}}}} \\ {{{\boldsymbol{y}}_{{i}}}} \end{array}} \right] \\ & = L{{x}} - L{{\boldsymbol{e}}_{{t}}}^{\mathrm{T}}\left[ {\begin{array}{*{20}{c}} {{{\boldsymbol{x}}_{{t}}}} \\ {R{{\boldsymbol{x}}_{{t}}}} \end{array}} \right] - L\mathop \sum \limits_{i \in I} {k_i}{{\boldsymbol{e}}_{{i}}}^{{\mathrm{T}}} \left[ {\begin{array}{*{20}{c}} {{{\boldsymbol{x}}_{{i}}}} \\ {R{{\boldsymbol{x}}_{{i}}}} \end{array}} \right] \\ & = L{{x}} - L({\boldsymbol{e}}_{{{1,t}}}^{{\mathrm{T}}} + {\boldsymbol{e}}_{{{2,t}}}^{{\mathrm{T}}} {{\boldsymbol{R}}_{{t}}}){{\boldsymbol{x}}_{{t}}} - L\mathop \sum \limits_{i \in I} {k_i}({\boldsymbol{e}}_{{{1,i}}}^{{\mathrm{T}}} + {\boldsymbol{e}}_{{{2,i}}}^{{\mathrm{T}}} {{\boldsymbol{R}}_{{i}}}){{\boldsymbol{x}}_{{i}}} \\ \end{split} $
以下引理将被用来证明解密是正确的。
引理2 设向量$ {\boldsymbol{e}} \in {\mathbb{Z}^m} $$ y\mathop \leftarrow \limits^R {\bar \Psi _\alpha } $,将$ \left| {{{\boldsymbol{e}}^\text{T} }{\boldsymbol{y}}} \right| $视为$\left[ {0,q - 1} \right]$中的整数,除了在$m$中可以忽略不计的概率外,满足:
$ \left| {{{\boldsymbol{e}}^{{\mathrm{T}}} }{\boldsymbol{y}}} \right| \leqslant \left\| {\boldsymbol{e}} \right\|q\alpha \omega (\sqrt {\log m} ) + \left\| {\boldsymbol{e}} \right\|\frac{{\sqrt m }}{2} $
引理3 对于一个向量$ {\boldsymbol{u}} \in {\mathbb{R}^m} $和一个随机矩阵${\boldsymbol{R}} \in {\{ - 1,1\} ^{k \times m}}$,有:
$ \Pr \left[ {\left\| {{\boldsymbol{Ru}}} \right\| > \sqrt k \omega (\sqrt {\log k} )} \right] < {\mathrm{negl}}(k) $
已知$ \max ({k_i}) = l $${(l!)^2} \leqslant {(l)^{2l}}$
通过引理1,可以得到:$ \left| {{\boldsymbol{e}}_{{{1,t}}}^{\mathrm{T}} } \right|,\left| {{\boldsymbol{e}}_{{{2,t}}}^{\mathrm{T}} } \right|,\left| {{\boldsymbol{e}}_{{{1,i}}}^{\mathrm{T}} } \right|, \left| {{\boldsymbol{e}}_{{{1,i}}}^{\mathrm{T}} } \right| \leqslant $$ {\overline {\boldsymbol{\sigma }} _{\boldsymbol{i}}}\sqrt m = {{\boldsymbol{\sigma }}_i}m\omega (\sqrt {\log m} ) $
通过引理3,可以得到:$ \left\| {{\boldsymbol{e}}_{{{1,i}}}^{\mathrm{T}} + {\boldsymbol{e}}_{{{2,i}}}^{\mathrm{T}} {{\boldsymbol{R}}_{{i}}}} \right\| \leqslant \left| \left| {{\boldsymbol{e}}_{{{1,i}}}^{\mathrm{T}} } \right| + \left| {{\boldsymbol{e}}_{{{2,i}}}^{\mathrm{T}} {{\boldsymbol{R}}_{{i}}}} \right| \right| \leqslant $${\rm O}({\sigma _i}m)\omega (\sqrt {\log m} )$
根据上述结果和引理2,$ \left| {({\boldsymbol{e}}_{{{1,i}}}^{{\mathrm{T}}} + {\boldsymbol{e}}_{{{2,i}}}^{{\mathrm{T}}} {{\boldsymbol{R}}_{{i}}}){{\boldsymbol{x}}_{{i}}}} \right| $存在不可忽视的概率有如下界限:
$ \begin{split} &\left| {({\boldsymbol{e}}_{{{1,i}}}^\text{T} + {\boldsymbol{e}}_{{{2,i}}}^\text{T} {{\boldsymbol{R}}_{{i}}}){{\boldsymbol{x}}_{{i}}}} \right| \\ & \leqslant \left\| {{\boldsymbol{e}}_{{{1,i}}}^\text{T} + {\boldsymbol{e}}_{{{2,i}}}^\text{T} {{\boldsymbol{R}}_{{i}}}} \right\|q{\alpha _i}\omega (\sqrt {\log m} ) + \left\| {{\boldsymbol{e}}_{{{1,i}}}^\text{T} + {\boldsymbol{e}}_{{{2,i}}}^\text{T} {{\boldsymbol{R}}_{{i}}}} \right\|\frac{{\sqrt m }}{2} \\ & \leqslant q{\alpha _i}{\sigma _i}m\omega (\log m) + {\sigma _i}{m^{{3 \mathord{\left/ {\vphantom {3 2}} \right. } 2}}}\omega (\sqrt {\log m} ) \\ \end{split} $
因此,误差项:
$ \begin{split} &\left| {Lx - L({\boldsymbol{e}}_{{{1,t}}}^\text{T} + {\boldsymbol{e}}_{{{2,t}}}^\text{T} {{\boldsymbol{R}}_{{t}}}){{\boldsymbol{x}}_{{t}}} - L\mathop \sum \limits_{i \in I} {k_i}({\boldsymbol{e}}_{{{1,i}}}^\text{T} + {\boldsymbol{e}}_{{{2,i}}}^\text{T} {{\boldsymbol{R}}_{{i}}}){{\boldsymbol{x}}_i}} \right| \\ & {\text{ }} \leqslant L\left| x \right| + L\left| {({\boldsymbol{e}}_{{{1,t}}}^\text{T} + {\boldsymbol{e}}_{{{2,t}}}^\text{T} {{\boldsymbol{R}}_{{t}}}){{\boldsymbol{x}}_{{t}}}} \right| + L\left| {\mathop \sum \limits_{i \in I} {k_i}({\boldsymbol{e}}_{{{1,i}}}^\text{T} + {\boldsymbol{e}}_{{{2,i}}}^\text{T} {{\boldsymbol{R}}_{{i}}}){{\boldsymbol{x}}_{{i}}}} \right| \\ & {\text{ }} \leqslant {(l!)^2}\left| x \right| + {(l!)^2}\left| {({\boldsymbol{e}}_{{{1,t}}}^\text{T} + {\boldsymbol{e}}_{{{2,t}}}^\text{T} {{\boldsymbol{R}}_{{t}}}){{\boldsymbol{x}}_{{t}}}} \right|+ \\ & {(l!)^2} \cdot l\left| {\mathop \sum \limits_{i \in I} ({\boldsymbol{e}}_{{{1,i}}}^\text{T} + {\boldsymbol{e}}_{{{2,i}}}^\text{T} {{\boldsymbol{R}}_{{i}}}){{\boldsymbol{x}}_{{i}}}} \right| \\ & \leqslant {(l)^{2l}} \cdot q{\alpha _i}\omega (\sqrt {\log m} ) + (l + 1){(l)^{2l}}q{\alpha _i}{\sigma _i}m\omega (\log m) \\ & + (l + 1){(l)^{2l}}{\sigma _t}{m^{{3 \mathord{\left/ {\vphantom {3 2}} \right. } 2}}}\omega (\sqrt {\log m} ) \end{split} $
最后,为了使系统工作正确运行,需要做如下限制:
(1)为使${{\mathrm{TrapGen}}} $算法正常运行,需要$m \approx 2n\log q$
(2)为使IMSampleLeft和SampleRight算法正常运行,需要${\sigma _i} > {\sigma _{{{\mathrm{TG}}} }}\sqrt m \omega (\sqrt {\log m} )$${\sigma _{{\mathrm{TG}}}} = {O}(\sqrt {n\log q} ) n{\mathrm{log}}q$
(3)为使误差向量不干扰解密结果,其要以不可忽略的概率小于${q \mathord{\left/ {\vphantom {q 5}} \right. } 5}$,需要设置$ {\alpha _i} < [{(l)^{2l}}\omega (\sqrt {\log m} ) + (l + 1) {(l)^{2l}}{\sigma _i}m\omega (\log m)]^{ - 1} $$ q > (l + 1){(l)^{2l}}{\sigma _i}{m^{{3 \mathord{\left/ {\vphantom {3 2}} \right. } 2}}}\omega (\sqrt {\log m} ) $
(4)为满足Regev LWE规约,需要限定模数$q > 2\sqrt {n/{\alpha _i}} ,i \in \{ 1,2, \cdot \cdot \cdot ,l\} $

4.2 安全性分析

合谋攻击是对属性基加密方案常见的攻击方式,主要包括三种类型:外部攻击者与合法用户合谋、攻击者与被撤销用户合谋、被撤销用户与合法用户合谋。这些攻击者会联合其属性集合,非法解密超出其权限的密文。但由于本文方案中访问策略是部分隐藏的,恶意用户很难获知无法解密的密文的访问策略,从而大大增加了合谋攻击的难度。
接下来将证明方案在选择访问结构和选择明文攻击下的不可区分性安全。
定理2 假设存在一个概率多项式时间(Probabilistic Polynomial Time, PPT)敌手$ \mathcal{A}$,对本文的CP-ABE方案进行选择性安全攻击的优势为$\varepsilon > 0$,则存在一个PPT模拟器$ \mathcal{B}$,其以不可忽略的优势判定LWE问题。
证明 在定理1中,LWE问题允许访问一个预言机$ \mathcal{O} $,它是一个真正的随机预言机$ \mathcal{O}_s{'} $,还是一个带噪声的伪随机预言机$ {\mathcal{O}_s} $,判定算法需要区分它到底给出了哪一个预言机,其过程如下:
(1)LWE实例
$ \mathcal{B} $访问预言机$ \mathcal{O} $,请求并接受$(m + 1)$个样本,定义为:$ \{ ({{\boldsymbol{\omega }}_{{0}}},{v_0}), \cdot \cdot \cdot ,({{\boldsymbol{\omega }}_{{m}}},{v_m})\} $$ \in (\mathbb{Z}_q^n \times {\mathbb{Z}_q}) $
(2)目标
$ \mathcal{A} $$ \mathcal{B}$提交他想要攻击的访问结构,用${W^*}$表示,用$U$表示${W^*}$所涉及的属性集合。
(3)初始化
1)令$ {\boldsymbol{A}} = ({{\boldsymbol{\omega }}}_1, \cdot \cdot \cdot ,{{\boldsymbol{\omega }}}_m) \in \mathbb{Z}_q^{n \times m} $$ {\boldsymbol{u}} = {{\boldsymbol{\omega }}_0} $
2)运行陷门生成算法$ \text{TrapGen} $生成$({\boldsymbol{B,}}{{\boldsymbol{T}}_{\boldsymbol{B}}})$
3)对于$i \in U$,随机选择${{\boldsymbol{R}}_i} \in {\{ - 1,1\} ^{m \times m}}$,令$ {{\boldsymbol{A}}_i} = {\boldsymbol{A}}{{\boldsymbol{R}}^*} - {\boldsymbol{H}}({{\boldsymbol{a}}_{{i}}}){\boldsymbol{B}} $,对于$i \notin U$,随机选择${{\boldsymbol{R}}_i} \in \{ - 1, 1\} ^{m \times m}$,令${{\boldsymbol{A}}_i} = {\boldsymbol{A}}{{\boldsymbol{R}}^*}$,随机选择${{\boldsymbol{R}}_t} \in {\{ - 1,1\} ^{m \times m}}$,令${\boldsymbol{C}} = {\boldsymbol{A}}{{\boldsymbol{R}}^*} - {\boldsymbol{H}}({\boldsymbol{t}}){\boldsymbol{B}}$
$ \mathcal{B}$返回给$ \mathcal{A}$的公共参数为:
$ {{\mathrm{pp}}} = \left\{ {{\boldsymbol{A}},{\boldsymbol{B}},{\boldsymbol{C}},{{\left( {{{\boldsymbol{A}}_{i}}} \right)}_{i \in U}},{\boldsymbol{u}},{{\bf{VK}}} ,{\boldsymbol{t}}} \right\} $
(4)密钥查询
1)$ \mathcal{B}$$ \mathcal{A}$提供属性集合$S$,进行密钥查询。$ \mathcal{A}$收到查询之后,如果$S$满足${W^*}$,则返回⊥。
2)$ \mathcal{B}$随机生成$ {{\boldsymbol{u}}_{{1}}} \in \mathbb{Z}_q^n $,并设$ {{\boldsymbol{u}}_{{2}}} = {\boldsymbol{u}} - {{\boldsymbol{u}}_{{1}}} $。运行$ {{\mathrm{SampleRight}}} ({\boldsymbol{A}},{{\boldsymbol{A}}_i} + {\boldsymbol{H}}({{\boldsymbol{a}}_{{i}}}){\boldsymbol{B}},{{\boldsymbol{R}}^*},{{\boldsymbol{T}}_{\boldsymbol{B}}},{{\boldsymbol{u}}_{{1}}},{\sigma _i}) $算法,生成用户私钥$ {{\boldsymbol{e}}_{{i}}} \in {Z^{2m}} $,然后再运行${{\mathrm{SampleRight}}} $$ ({\boldsymbol{A}},{{\boldsymbol{C}}_i} + {\boldsymbol{H}}({\boldsymbol{t}}) {\boldsymbol{B}},{{\boldsymbol{R}}^*},{{\boldsymbol{T}}_{\boldsymbol{B}}},{{\boldsymbol{u}}_2},{\sigma _i}) $算法,生成用户私钥$ {{\boldsymbol{e}}_{{t}}} $,最后$ \mathcal{B}$将私钥$ {{{\mathrm{sk}}} _j} = \left\{ {{{\left( {{{\boldsymbol{e}}_{{i}}}} \right)}_{i \in S}},{{\boldsymbol{e}}_{{t}}}} \right\} $发送给$ \mathcal{A}$
(5)挑战
$ \mathcal{A}$选择明文${m_0},{m_1} \in \{ 0,1\} $发送给$ \mathcal{B}$$ \mathcal{B}$随机选择$b \in (0,1)$,对${m_b}$进行加密,操作如下。
1)计算$L = {(l!)^2}$
2)令$ {{\boldsymbol{v}}^*} = {({v_1}, \cdot \cdot \cdot ,{v_m})^{\text{T}} } $
3)计算挑战密文:
$ {c_0} = L{{\boldsymbol{v}}_{{0}}} + \left\lfloor {\frac{q}{2}} \right\rfloor {m_b} $
$ {{\boldsymbol{c}}_{{j}}} = L\left[ {\begin{array}{*{20}{c}} {{{\boldsymbol{v}}^*}} \\ {{{({{\boldsymbol{R}}}_j^*)}^\text{T} }{{\boldsymbol{v}}^*}} \end{array}} \right] $
$ {{\boldsymbol{c}}_{{t}}} = L\left[ {\begin{array}{*{20}{c}} {{{\boldsymbol{v}}^{\boldsymbol{*}}}} \\ {{{({{\boldsymbol{R}}}_t^*)}^\text{T} }{{\boldsymbol{v}}^{\boldsymbol{*}}}} \end{array}} \right] $
${{\boldsymbol{s}}^*} = {\boldsymbol{r}}{\bf{V{K}}^{\mathrm{T}}}{\boldsymbol{s}}$$ {\boldsymbol{\lambda }}_i^* = {\boldsymbol{r}}{\bf{V{K}}^{\mathrm{T}}}{{\boldsymbol{\lambda }}_{{i}}} $,若当$ \mathcal{O} $是一个伪随机采样器$ {\mathcal{O}_s} $时,密文$ c = \left\{ {{c_0},{{\boldsymbol{c}}_{{t}}},{{\left( {{{\boldsymbol{c}}_{{j}}}} \right)}_{j \in S}}} \right\} $是有效的。如果敌手$ \mathcal{A}$以至少$ 1/2{\text{ }} + \varepsilon $的概率成功猜出消息位,则模拟器b将以至少$ 1/2{\text{ }} + \varepsilon /2 $的概率正确猜出LWE预言机的性质。

5 性能分析

本方案是在基于格的LWE问题上构造的具有属性撤销功能的CP-ABE方案,下面将其与其他相关方案进行比较,如表1所示。其中,系统属性的最大个数为$l$,本文方案中系统属性标签的最大数量为$s$$\left| {{S_j}} \right|$表示用户属性的个数,$ \left| {{S_c}} \right| $表示密文属性的个数,$ n、m $为格上相关参数,注意$\left| {{S_j}} \right| \leqslant s \ll l$$\left| {{S_c}} \right| \leqslant s \ll l$
表 1 相关方案的比较

Table 1 Comparison of related schemes

方案 隐私保护 撤销 公钥长度 用户私钥长度 密文长度
文献[20] 不支持 不支持 $ (2l + 1)nm\log q + n\log q $ $nm\left( {l + 1} \right)\log q$ $(2l - \left| {{S_c}} \right| + 1)mn\log q$
文献[18] 支持 不支持 $(s + 2)nm\log q + n\log q$ $2m\left| {{S_j}} \right|\log q$ $2m\left| {{S_c}} \right|\log q + \log q$
文献[17] 不支持 支持 $\left( {l + 2} \right)nm\log q + n\log q$ $m\left| {{S_j}} \right|\log q$ $ 3m\left| {{S_c}} \right|\log q + \log q $
本文 支持 支持 $(s + 3)nm\log q + 3n\log q$ $(2m + 1)\left| {{S_j}} \right|\log q$ $(2m + 1)\left| {{S_c}} \right|\log q + \log q$
注:$| {{S_j}} | \leqslant s \ll l$$\left| {{S_c}} \right| \leqslant s \ll l$
表1可以看出,在功能方面,文献[18]和[20]不支持撤销功能,文献[17]和本方案支持撤销功能。同时在特定应用场景下,访问策略可能包含敏感信息,但文献[17]和[20]无法实现访问策略隐藏,存在泄露风险,而本文方案和文献[18]实现了部分访问策略隐藏。
尽管文献[18]各个方面的开销略微低于本方案,但几乎可以忽略不计,由于本文方案是CP-ABE方案且支持撤销功能,而文献[18]是KP-ABE方案且不支持撤销功能,所以在灵活性和应用场景方面,本文方案优势更大。用$l$代表文献[17]和[20]系统属性的最大个数,用$s$代表属性标签数量,由于本文使用了二维的属性结构,所以属性标签数量$s$远远小于系统属性$l$的数量。本文方案的公钥长度仅与属性标签相关,而文献[17]和[20]的公钥长度与系统属性数量相关,因此本文方案实际开销更低。尽管文献[17]的私钥长度略微小于本文方案,但其密文长度较大,综合公钥、密钥和密文长度,在存储开销方面,本文方案仍优于文献[17]。文献[20]的私钥长度和密文长度皆与系统属性$l$相关,若用户拥有或加密的属性远低于系统属性,无论用户拥有哪些属性,都需要持有所有系统属性的私钥,这对存储空间是极大的浪费。而本文方案的私钥长度和密文长度仅与用户拥有的属性个数$\left| {{S_j}} \right|$和密文属性个数$\left| {{S_c}} \right|$相关,具备较高的存储性能,因此相对于文献[20]具有明显优势。
综上,本文提出的格基属性加密方案,具备较高的计算和存储效率,特别适用于物联网这种设备资源有限且用户频繁变化的应用环境。特别是本文方案较现有的部分方案具有优势,密钥和密文长度均与属性标签数量相关,而不是与系统属性总数相关,这显著降低了系统中的存储开销,满足了物联网设备对低存储和低计算开销的需求。同时,本文使用的LSSS可以实现“与门”“或门”以及门限访问策略的组合,这使得设备或用户可以根据多种条件进行数据的解密访问。方案支持部分访问策略隐藏,进一步提升了隐私保护的能力,防止了敏感策略的泄露。此外,由于本文方案支持用户撤销功能,能够通过更新时间向量实现用户密钥的动态更新,而无须对所有密文重新加密,显著降低了通信开销。综合对比分析显示,虽然在计算开销上,本方案略高于文献[18],但与其他文献相比,在公钥、私钥和密文的存储效率上都占据明显优势。特别适用于物联网环境中的安全数据共享和动态权限管理需求。

6 结束语

本文提出了一种支持用户撤销的格基CP-ABE方案,具备抗合谋攻击能力,并在选择访问结构和选择明文攻击下证明了不可区分性安全。方案基于LSSS技术,支持“与门”“或门”和门限访问策略,访问控制更加灵活。此外,物联网设备通常存在频繁的用户动态变化,如设备的加入和退出,方案通过定期更新时间向量实现了用户撤销,确保被撤销的设备无法继续访问数据,满足物联网设备环境的应用需求。然而,本文方案的用户撤销在细粒度上存在不足,且未考虑泄露密钥的追踪问题。因此,下一步研究方向的重点是实现更细粒度的用户属性撤销,并解决叛逆者追踪问题。
1
YANG Y, WU L, YIN G, et al. A survey on security and privacy issues in Internet-of-Things[J]. IEEE Internet of things Journal, 2017, 4 (5): 1250- 1258.

2
HE D, KUMAR N, WANG H, et al. A provably-secure cross-domain handshake scheme with symptoms-matching for mobile healthcare social network[J]. IEEE Transactions on Dependable and Secure Computing, 2016, 15 (4): 633- 645.

3
SAHAI A,WATERS B. Fuzzy identity-based encryption[C]//Advances in Cryptology-EUROCRYPT 2005:24th Annual International Conference on the Theory and Applications of Cryptographic Techniques. Berlin,Heidelberg:Springer,2005:457-473.

4
MA H, PENG T, LIU Z. Directly revocable and verifiable key-policy attribute-based encryption for large universe[J]. International Journal of Network Security, 2017, 19 (2): 272- 284.

5
CHUNG P S, LIU C W, HWANG M S. A study of attribute-based proxy re-encryption scheme in cloud environments[J]. International Journal of Network Security, 2014, 16 (1): 1- 13.

6
SHI Y F, ZHENG Q J, LIU J Q, et al. Directly revocable key-policy attribute-based encryption with verifiable ciphertext delegation[J]. Information Sciences, 2015, 295, 221- 231.

DOI

7
HUR J, NOH D K. Attribute-based access control with efficient revocation in data outsourcing systems[J]. IEEE Transactions on Parallel and Distributed Systems, 2010, 22 (7): 1214- 1221.

8
HOANG V H,LEHTIHET E,GHAMRI-DOUDANE Y. Forward-secure data outsourcing based on revocable attribute-based encryption[C]//2019 15th International Wireless Communications & Mobile Computing Conference (IWCMC). IEEE,2019:1839-1846.

9
XU S, YANG G, MU Y. Revocable attribute-based encryption with decryption key exposure resistance and ciphertext delegation[J]. Information Sciences, 2019, 479, 116- 134.

DOI

10
FAN C I, HUANG V S M, RUAN H M. Arbitrary-state attribute-based encryption with dynamic membership[J]. IEEE Transactions on Computers, 2013, 63 (8): 1951- 1961.

11
LIU Z, DUAN S, ZHOU P, et al. Traceable-then-revocable ciphertext-policy attribute-based encryption scheme[J]. Future Generation Computer Systems, 2019, 93, 903- 913.

DOI

12
WANG S, GUO K, ZHANG Y. Traceable ciphertext-policy attribute-based encryption scheme with attribute level user revocation for cloud storage[J]. PLoS One, 2018, 13 (9): e0203225.

13
LAI J,DENG R H,LI Y. Expressive CP-ABE with partially hidden access structures[C]//Proceedings of the 7th ACM Symposium on Information,Computer and Communications Security. ACM,2012:18-19.

14
ZHANG Y, ZHENG D, DENG R H. Security and privacy in smart health: efficient policy-hiding attribute-based access control[J]. IEEE Internet of Things Journal, 2018, 5 (3): 2130- 2145.

DOI

15
YANG Y, SUN J, LIU Z, et al. Practical revocable and multi-authority CP-ABE scheme from RLWE for cloud computing[J]. Journal of Information Security and Applications, 2022, 65, 103108.

DOI

16
ZHAO S, JIANG R, Bhargava B. RL-ABE: a revocable lattice attribute based encryption scheme based on R-LWE problem in cloud storage[J]. IEEE Transactions on Services Computing, 2020, 15 (2): 1026- 1035.

17
于金霞, 杨超超, 张棋超, 等. 外包环境下格上可撤销的属性基加密方案[J]. 计算机科学与探索, 2020, 14 (2): 244- 251.

DOI

YU J X, YANG C C, ZHANG Q C, et al. Revocable ciphertext-policy attribute-based encryption in data outsourcing systems from lattices[J]. Journal of Frontiers of Computer Science and Technology, 2020, 14 (2): 244- 251.

DOI

18
LIU Y, WANG L, SHEN X, et al. Space-efficient key-policy attribute-based encryption from lattices and two-dimensional attributes[J]. Security and Communication Networks, 2020, (1): 2345369.

19
MICCIANCIO D,PEIKERT C. Trapdoors for lattices:simpler,tighter,faster,smaller[C]//Annual International Conference on the Theory and Applications of Cryptographic Techniques. Berlin,Heidelberg:Springer,2012:700-718.

20
GUR K D, POLYAKOV Y, ROHLOFF K, et al. Practical applications of improved gaussian sampling for trapdoor lattices[J]. IEEE Transactions on Computers, 2018, 68 (4): 570- 584.

文章导航

/