«上一篇 下一篇»
  计算机工程  2021, Vol. 47 Issue (1): 37-43  DOI: 10.19678/j.issn.1000-3428.0057449
0

引用本文  

彭红艳, 凌娇, 覃少华, 等. 面向边缘计算的属性加密方案[J]. 计算机工程, 2021, 47(1), 37-43. DOI: 10.19678/j.issn.1000-3428.0057449.
PENG Hongyan, LING Jiao, QIN Shaohua, et al. Attribute-Based Encryption Scheme for Edge Computing[J]. Computer Engineering, 2021, 47(1), 37-43. DOI: 10.19678/j.issn.1000-3428.0057449.

基金项目

国家自然科学基金(61862008,81860635)

通信作者

覃少华(通信作者), 副教授、博士

作者简介

彭红艳(1973-), 女, 副教授、硕士, 主研方向为网络安全、数据分析;
凌娇, 硕士研究生;
邓剑锋, 助理研究员、博士

文章历史

收稿日期:2020-02-21
修回日期:2020-03-21
面向边缘计算的属性加密方案
彭红艳 , 凌娇 , 覃少华 , 邓剑锋     
广西师范大学 计算机科学与信息工程学院, 广西 桂林 541004
摘要:传统云环境下的属性加密方案在判定用户访问权限时通常仅依据年龄和职业等用户常规属性,而忽视了访问时间和位置的约束问题。为较好满足边缘计算的实时性和移动性需求,提出一种支持时间与位置约束的多授权外包属性加密方案。通过将时间域与位置域信息同时引入属性加密过程,实现更细粒度的访问控制。采用多授权机构共同管理属性信息,解决单授权机构的性能瓶颈问题,满足用户跨域访问需求。针对边缘计算中移动终端资源受限问题,将大部分解密计算外包至边缘节点,减轻移动终端设备负担。分析结果表明,在边缘计算环境下,该方案以较低的计算和存储开销实现了具有时间和位置约束的访问控制,并且可有效保障用户数据安全。
关键词属性加密    时间约束    位置约束    边缘计算    解密外包    
Attribute-Based Encryption Scheme for Edge Computing
PENG Hongyan , LING Jiao , QIN Shaohua , DENG Jianfeng     
School of Computer Science and Information Engineering, Guangxi Normal University, Guilin, Guangxi 541004, China
Abstract: When existing Attribute-Based Encryption(ABE) schemes for traditional cloud environment determine the access rights of users, they consider only general attributes such as occupation and age, ignoring time and location constraints, which makes them fail to meet the real-time performance and mobility requirements of edge computing.Therefore, this paper proposes a time and location multi-authority outsourcing ABE scheme.The scheme introduces the time domain information and location domain information into attribute encryption, enabling a more fine-grained access control function.Simultaneously the scheme uses multi-authority management of attribute information to solve the performance bottleneck of the single-authority management, meeting the needs of users' cross-domain access.To address the limitation of mobile terminal resources in edge computing, most of the decryption calculations are outsourced to edge nodes to reduce the burden of mobile terminal devices.Analysis results show that the scheme achieves access control with access time and location constraints by reducing computing and storage overhead, and effectively guarantees data security.
Key words: Attribute-Based Encryption(ABE)    time constraint    location constraint    edge computing    decryption outsourcing    
0 概述

在云计算中, 外包数据存储在基本可信的云服务平台上, 脱离了数据所有者的物理控制, 容易造成数据信息和用户隐私泄露[1]。传统加密方法是利用对称加密方式将数据加密后上传至云中心进行保存, 但这给数据共享带来了一定的困难。一方面是大规模用户的数据共享需要大量密钥, 生成、分发和保管这些密钥比较困难。另一方面是如何制定灵活可控的访问策略来实施细粒度的访问控制。针对上述问题, 学者们提出属性加密(Attribute-Based Encryption, ABE)方案[2-4], 其是一种灵活的一对多公钥加密方式, 即一次加密、多人共享。传统ABE方案基于单授权机构[5-7], 一旦被敌手攻破, 则会使整个系统崩溃。为解决单授权机构导致的单点瓶颈问题, 文献[8]提出无中心授权机构的分布式多授权机构方案, 其不要求任何授权机构提前建立信任关系, 只需创建公共参数初始集, 并且任何一方都可以成为授权机构。但该方案仍然要依赖GID实现数据用户全网的唯一性, 并且数据用户需要向所有授权机构公开GID, 容易造成数据用户隐私的泄露。文献[9]在文献[8]的基础上, 通过减少方案公共参数量, 提高了计算效率。此外, 文献[10]提出隐藏访问策略的多授权访问控制方案, 将解密计算外包到云。文献[11]在个人健康记录系统中, 提出一种具有动态策略更新的多授权属性加密方案。

在边缘计算[12]环境下, 移动终端的计算和能量资源受限, 而属性加密的密文解密阶段通常需要计算双线性配对, 计算量巨大。为降低移动终端资源消耗, 文献[13]提出解密计算外包的CP-ABE方案, 该方案在进行解密时将密文传送给解密外包服务器, 然后解密外包服务器对密文进行预解密获得中间密文再传送给数据用户, 达到降低本地计算量的目的。文献[14]提出混合云计算下的改进CP-ABE方案, 该方案支持加密和解密外包, 并提供数据验证机制, 以确保外包数据的正确性。文献[15]提出外包加密和解密计算到雾节点的访问控制方案, 其能有效更新系统属性。文献[16]针对雾节点比云服务器容易受攻击的特点, 提出一种更安全的解密外包ABE方案, 其能抵抗选择密文攻击。然而, 这些方案的访问策略在判定用户访问权限时, 只依据年龄、职业等用户常规属性, 而忽视了访问时间和位置的约束, 因此不能较好满足边缘计算的实时性和移动性需求。

为共享对时间敏感的数据, 文献[17]提出一种结合时间与属性约束的访问控制方案, 如果一个属性有时间约束, 则CA生成一个时间令牌用于在云服务器中转换数据所有者生成的时间陷门状态, 并在时间段开始时在线更新密文, 但一旦CA被恶意破坏, 那么时间令牌和属性私钥都将被泄露, 造成整个系统崩溃。文献[18]提出一种时域多授权访问控制(TAAC)方案, 该方案将时间约束引入密文和密钥中, 只有满足访问策略和访问时间段, 才能对密文进行解密, 但该方案在属性动态变化时需要维护更新列表, 且需要实时更新属性私钥, 效率较低。文献[19]提出基于时间和位置约束的访问控制方案, 但其不能实现细粒度访问控制。文献[20]提出细粒度的基于位置约束的访问控制方案, 但其基于KP-ABE建立, 数据所有者不能指定访问策略。文献[21]提出云存储中位置感知的属性加密访问控制(LABAC)方案, 将位置信息作为陷门附加到访问结构树中, 且引入位置服务器和传感器进行用户位置认证。解密时位置服务器先验证用户位置是否合法:若合法, 则生成位置令牌且发送给用户进行解密。但该方案不能解决单授权机构带来的单点瓶颈和终端资源受限问题。以上方案在判定用户访问权限时, 除了依据常规属性外, 仅对时间或位置进行单一约束, 无法同时满足时间和位置约束。因此, 本文提出一种支持时间和位置约束的多授权外包属性加密方案TLMO-ABE。

1 预备知识 1.1 访问结构

$U = \left\{ {{u_1}, {u_2}, \cdots , {u_n}} \right\}$是所有属性的集合, 如果存在访问结构${\cal A} \subseteq {2^U}$且对于任意集合BC, 存在$B \in {\cal A} $$B \subseteq C$$C∈A $, 那么${\cal A}$为单调。如果集合${\cal A}$${2^U}$的一个非空子集, 那么${\cal A} $为访问结构。${\cal A}$中包含的集合称为授权集合, 而${\cal A} $中不包含的集合称为非授权集合。

1.2 双线性映射

${G_1}$${G_2}$为以素数p为阶的乘法循环群, gG1的生成元, 双线性映射$e:{G_1} \times {G_1} \to {G_2}$, 满足如下性质:

1) 双线性:对于任意$u, v \in {G_1}$$a, b \in {\mathbb{Z}_p}$, 有$e\left( {{u^a}, {v^b}} \right) = e{\left( {u, v} \right)^{ab}}$成立。

2) 非退化性: $e\left( {g, g} \right) \ne 1$

3) 可计算性:对于任意$x, y \in {G_1}$, 有$e\left( {x, y} \right)$在多项式时间上是可计算的。

1.3 线性秘密共享方案

对于基于成员集合p的秘密共享方案Π, 若符合下列所述条件, 则将Π称为${\mathbb{Z}_p}$的线性秘密共享方案(LSSS):

1) 所有参与成员具有的秘密份额构成$\mathbb{Z}_p^ *$上的向量。

2) 秘密共享方案中存在$l \times n$的共享矩阵$\mathit{\boldsymbol{M}}$, M的第i($i = 1, 2, \cdots , l$)行表示集合中的第i个成员, 通过函数$\rho \left( i \right)$可以找到此成员, 其中$\rho $是从$\left\{ {1, 2, \cdots , l} \right\}$映射到P的函数。设随机向量$\mathit{\boldsymbol{v}} = \left( {s, {y_2}, {y_3}, \cdots , {y_n}} \right)$, 其中$s \in \mathbb{Z}_p^ *$是共享的秘密消息, 而${y_2}, {y_3}, \cdots , {y_n} \in \mathbb{Z}_p^ * $是任意随机数, 则${\left( {\mathit{\boldsymbol{M}} \cdot \mathit{\boldsymbol{v}}} \right)_i}$依据共享方案Π将秘密分享为l份, 其中${\left( {\mathit{\boldsymbol{M}} \cdot \mathit{\boldsymbol{v}}} \right)_i}$属于成员i

3) 如果Π是访问结构${\cal A} $上的一个线性秘密共享方案, 则对于任意授权集合$S \in {\cal A}$, $I \subset \left\{ {1, 2, \cdots , l{\rm{}}} \right\}$, 且$I = \left\{ {i:\rho \left( i \right) \in S{\rm{}}} \right\}$, 在多项式时间范围内能够找到常量集合${\left\{ {{w_i} \in \mathbb{Z}_p^ *} \right\}_{i \in I}}$使得$\mathop \sum \limits_{i \in I} {w_i}\left( {{\mathit{\boldsymbol{M}}_i} \cdot \mathit{\boldsymbol{v}}} \right) = \varepsilon \cdot \mathit{\boldsymbol{v}} = s$成立, 其中$\varepsilon = \left( {1, 0, \cdots , 0} \right)$

2 TLMO-ABE方案 2.1 系统模型

本文方案系统模型如图 1所示。该模型具有用户(User)-边缘(Edge)-云(Cloud)3层架构, 包含云服务提供商(Cloud Server Provider, CSP)、中央授权机构(Central Authority, CA)、属性授权机构(Attribute Authority, AA)、边缘节点(Edge Node, EN)、数据所有者(Data Owner, DO)和数据用户(Data User, DU)6种角色。

Download:
图 1 系统模型 Fig. 1 System model

1) CSP是一个数据存储机构, 执行系统分配的任务, 但其可能会主动泄露接收到的数据信息。

2) CA是一个完全可信的中央授权机构, 负责DO、DU和AA的注册。当DO在CA上注册时, CA生成系统公共参数并在系统中公开该公共参数。

3) AA为完全可信, 负责管理自身域中的属性。AA根据域中的属性生成AA的公私钥对, 其中将公钥发送给DO用于加密, 将私钥发送给DU用于生成属性私钥。AA通过比较DU的请求时间和请求位置是否均在有效范围内, 决定是否生成和分发相关属性私钥给DU。

4) EN具有存储和计算能力, 实时处理DU的访问请求, 必要时会从相邻节点或云服务器处检索密文, 负责对DU请求的密文进行预解密并将结果返回给DU。

5) DO负责制定访问结构来计算密文并上传到CSP。

6) DU从EN端获取预解密结果并负责本地解密, 得到明文数据。

2.2 TLMO-ABE方案构造

设系统中有N个数据用户$U = \left\{ {{u_1}, {u_2}, \cdots , {u_N}} \right\}$K个属性授权机构${\rm{AA}} = \left\{ {{\rm{A}}{{\rm{A}}_1}, {\rm{A}}{{\rm{A}}_2}, \cdots , {\rm{A}}{{\rm{A}}_K}} \right\}$, 且每个数据用户都有唯一的ID。TLMO-ABE方案由初始化算法、加密算法、私钥生成算法和解密算法组成。

2.2.1 初始化算法

初始化算法的具体步骤如下:

1) CA初始化。设$G $${G_T}$都是阶为素数p的双线性群, 双线性映射$e:G \times G \to {G_T}$, gG的生成元, 安全参数$\lambda $决定群的大小。设$F:{\left\{ {0, 1} \right\}^{\rm{*}}} \to G$是抗碰撞哈希函数, 映射属性到G中的元素。CA随机选取$h \in G$, 输出系统公共参数${\rm{GP}} = \left( {g, h, G, {G_T}, F} \right)$并将其全网公开。CA生成签名和验证密钥对$\left( {{\rm{s}}{{\rm{k}}_{{\rm{CA}}}}, {\rm{v}}{{\rm{k}}_{{\rm{CA}}}}} \right)$签名密钥用于加密数据用户的身份${u_{{\rm{uid}}}}$, 验证签名用于验证数据用户的身份。

2) 数据用户注册。当数据用户加入系统时, 其需要向CA提交身份信息${\rm{Inf}}{{\rm{o}}_{{\rm{uid}}}}$用于验证其身份的合法性。如果其身份合法, 则CA为所有需要注册的数据用户分配唯一的身份标识uid; 否则, CA拒绝该数据用户的注册。除此之外, 首先CA随机选取${u_{{\rm{uid}}}} \in {\mathbb{Z}_p}$, 并使用签名密钥${\rm{s}}{{\rm{k}}_{{\rm{CA}}}}$对其进行签名生成用户凭证${\rm{Cer}}{{\rm{t}}_{{\rm{uid}}}}$, 其次CA生成用户身份密钥${K_{{\rm{uid}}}} = {g^{{u_{{\rm{uid}}}}}}$, 最后CA将${\rm{Cer}}{{\rm{t}}_{{\rm{uid}}}}$${K_{{\rm{uid}}}}$通过安全通道发送给该用户。

3) AA注册。当AA加入系统时, 其需要向CA提交身份信息${\rm{Inf}}{{\rm{o}}_{{\rm{AID}}}}$用于验证其身份的合法性。如果其身份合法, 则CA为所有需要注册的AA分配唯一的身份标识AID, 且CA发送验证密钥${\rm{v}}{{\rm{k}}_{{\rm{CA}}}}$给AA, 用于恢复数据用户的身份${{\rm{u}}_{{\rm{uid}}}}$; 否则, CA拒绝该AA的注册。

4) AA初始化。在系统建立之初, AA随机选取${\alpha _j},{\beta _j} \in {_\mathbb{Z}p}$, 生成AA的私钥${\rm{AS}}{{\rm{K}}_{{\rm{A}}{{\rm{A}}_j}}} = \left( {{\alpha _j}, {\beta _j}} \right)$和公钥$ {\rm{AP}}{{\rm{K}}_{{\rm{A}}{{\rm{A}}_j}}} = \left( {e{{\left( {g, g} \right)}^{{\alpha _j}}}, {g^{{\beta _j}}}} \right)$, 并将${\rm{AP}}{{\rm{K}}_{{\rm{A}}{{\rm{A}}_j}}}$全网公开。

2.2.2 加密算法

加密算法的具体步骤如下:

1) DO利用加密算法E加密明文信息, 得到数据密文${\rm{C}}{{\rm{T}}_{{\rm{data}}}} = {E_k}\left( M \right)$

2) DO为数据密文选择唯一的身份标识FID, 如果数据密文FID有访问时间限制, 那么DO应该首先生成时间参数对。设$\left[ {{T_{{\rm{begin}}}}, {T_{{\rm{end}}}}} \right]$表示有效时间范围, ${\rm{S}}{{\rm{T}}_{j, {\rm{FID}}}}$表示数据密文FID中属于${\rm{A}}{{\rm{A}}_j}$的时间属性。DO随机选取${t_j} \in {\mathbb{Z}_p}$, 输出${\rm{TDOPara}}{{\rm{m}}_{j, {\rm{FID}}}} = \left( {{t_j}} \right)$用于加密对称密钥$ k$, ${\rm{TAAPara}}{{\rm{m}}_{j, {\rm{FID}}}} = \left( {{T_{{\rm{begin}}}}, {T_{{\rm{end}}}}, {\rm{S}}{{\rm{T}}_{j, {\rm{FID}}}}, {g^{{t_j}}}} \right)$用于生成时间属性私钥。同理, 如果数据密文FID有访问位置限制, 那么在加密该对称密钥k之前, DO应该首先生成位置参数对。设$\left[ {{L_{{\rm{begin}}}}, {L_{{\rm{end}}}}} \right]$表示有效位置范围, ${\rm{S}}{{\rm{L}}_{j, {\rm{FID}}}}$表示密文FID中属于${\rm{A}}{{\rm{A}}_j}$的位置属性。DO随机选取${l_j} \in {\mathbb{Z}_p}$, 输出${\rm{LDOPara}}{{\rm{m}}_{j, {\rm{FID}}}} = \left( {{l_j}} \right)$用于加密对称密钥k, ${\rm{LAAPara}}{{\rm{m}}_{j, {\rm{FID}}}} = ({L_{{\rm{begin}}}}, {L_{{\rm{end}}}}, $${\rm{S}}{{\rm{L}}_{j, {\rm{FID}}}}, {g^{{l_j}}})$用于生成位置属性私钥。

3) DO定义访问结构$\left( {\mathit{\boldsymbol{A}}, \rho } \right)$, 其中, A表示一个$m \times n$矩阵, m表示属性数量, 函数$\rho $表示映射到矩阵A的每一行得到属性$\rho \left( x \right)$, 其中$x \in \left[ {1, m} \right]$。DO随机选取一个用于共享的秘密值$s \in {\mathbb{Z}_p}$和一个随机向量$\mathit{\boldsymbol{v}} = \left( {s, {y_2}, {y_3}, \cdots , {y_n}} \right) \in {\mathbb{Z}_p}$, 其中${y_2}, {y_3}, \cdots , {y_n} \in {\mathbb{Z}_p}$用于分享秘密值s。对于$\forall x \in \left[ {1, m} \right]$, 设置${\lambda _x} = \mathit{\boldsymbol{v}} \cdot {\mathit{\boldsymbol{A}}_x}$, 其中Ax是矩阵A的第x行。随机选取${r_1}, {r_2}, \cdots , {r_m} \in {\mathbb{Z}_p}$, 计算密钥密文:

${C_0} = k \cdot {\left( {\mathop \prod \limits_{j \in K} e{{\left( {g, g} \right)}^{{\alpha _j}}}} \right)^s}, {C_1} = {g^s}$
${C_{2, x}} = {h^{{\lambda _x}}} \cdot {g^{{\beta _j}{r_x}}}, {C_{3, x}} = {g^{ - {r_x}}}$
${C_{4, x}} = \left\{ {\begin{array}{*{20}{c}} {{{(F\left( {\rho \left( x \right)} \right) \cdot {g^{{\beta _j}}})}^{{r_x}}}, \rho \left( x \right)是常规属性}\\ {{{(F\left( {\rho \left( x \right)} \right) \cdot {g^{{\beta _j}{t_j}}})}^{{r_x}}}, \rho \left( x \right)是时间属性}\\ {{{(F\left( {\rho \left( x \right)} \right) \cdot {g^{{\beta _j}{l_j}}})}^{{r_x}}}, \rho \left( x \right)是位置属性} \end{array}} \right.$

由此得到: ${\rm{C}}{{\rm{T}}_{{\rm{FID}}}} = \left( {{C_0}, {C_1}, \left\{ {{C_{2, x}}, {C_{3, x}}, {C_{4, x}}} \right\}} \right)$

2.2.3 私钥生成算法

私钥生成算法的具体步骤如下:

1) 生成常规属性私钥。当AA收到数据用户的常规属性私钥请求时, 使用${\rm{v}}{{\rm{k}}_{{\rm{CA}}}}$解密${\rm{Cer}}{{\rm{t}}_{{\rm{uid}}}}$得到${u_{{\rm{uid}}}}$来验证数据用户身份:如果身份合法, 则AA为其生成属性私钥; 否则, AA拒绝该数据用户的请求。设${S_{j, {\rm{uid}}}}$表示数据用户${\rm{uid}}$${\rm{A}}{{\rm{A}}_j}$请求的常规属性集合。${\rm{A}}{{\rm{A}}_j}$随机选取${z_j} \in {\mathbb{Z}_p}$, 计算常规属性私钥:

$\begin{array}{*{20}{l}} {{\rm{US}}{{\rm{K}}_{j, {\rm{uid}}}} = ({D_{1, j}} = {g^{{\alpha _j}}} \cdot {h^{{u_{{\rm{uid}}}}}}, {D_{2, j}} = {g^{{z_j}}}, }\\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;{{\rm{}}\forall {x_j} \in {S_{j, {\rm{uid}}}}:{D_{j, {x_j}}} = F\left( {{x_j}{)^{{z_j}}} \cdot {g^{{\beta _j}\left( {{z_j} + {u_{{\rm{uid}}}}} \right)}}} \right)} \end{array}$

2) 生成时间属性私钥。假设所有AA都有一个表来存储密文的时间参数和位置参数$({\rm{FID}}, $${\rm{TAAPara}}{{\rm{m}}_{j, {\rm{FID}}}}, {\rm{LAAPara}}{{\rm{m}}_{j, {\rm{FID}}}})$, 以提高时间信息和位置信息的检验效率。如果密文有访问时间限制, 那么DU需要在有效时间范围内向相应的AA请求时间属性私钥。AA先验证数据用户的身份:如果身份合法, 则AA生成时间属性私钥; 否则, AA拒绝该数据用户的请求。设${\rm{S}}{{\rm{T}}_{j, {\rm{uid}}}}$表示数据用户uid向${\rm{A}}{{\rm{A}}_j}$请求的时间属性集合, ${\rm{A}}{{\rm{A}}_j}$随机选取${u_j} \in {\mathbb{Z}_p}$, 计算时间属性私钥:

$ \begin{array}{*{20}{l}} {{\rm{TS}}{{\rm{K}}_{j, {\rm{uid}}, {\rm{FID}}}} = ({T_{2, j}} = {g^{{u_j}}}, \forall {x_j} \in {\rm{S}}{{\rm{T}}_{j, {\rm{uid}}}}:{T_{j, {x_j}}} = }\\ {\quad \quad \quad \quad \quad {\rm{}}F{{({x_j})}^{{u_j}}} \cdot \left( {{g^{{t_j}}}{)^{{\beta _j}{u_j}}} \cdot {g^{{u_{{\rm{uid}}}}{\beta _j}}}} \right)} \end{array} $

3) 生成位置属性私钥。如果密文有访问位置限制, 那么DU需要在有效位置范围内向相应的AA请求位置属性私钥。AA先验证数据用户的身份:如果身份合法, 则AA生成位置属性私钥; 否则, AA拒绝该数据用户的请求。设${\rm{S}}{{\rm{L}}_{j, {\rm{uid}}}}$表示数据用户uid向${\rm{A}}{{\rm{A}}_j}$请求的位置属性集合, ${\rm{A}}{{\rm{A}}_j}$随机选取${v_j} \in {\mathbb{Z}_p}$, 计算位置属性私钥:

$\begin{array}{*{20}{l}} {{\rm{LS}}{{\rm{K}}_{j, {\rm{uid}}, {\rm{FID}}}} = ({L_{2, j}} = {g^{{v_j}}}, \forall {x_j} \in {\rm{S}}{{\rm{L}}_{j, {\rm{uid}}}}:{L_{j, {x_j}}} = }\\ {\quad \quad \quad \quad \quad {\rm{}}F{{({x_j})}^{{v_j}}} \cdot \left( {{g^{{l_j}}}{)^{{\beta _j}{v_j}}} \cdot {g^{{u_{{\rm{uid}}}}{\beta _j}}}} \right)} \end{array}$

4) 生成边缘密钥和恢复密钥。DU利用获得的常规属性私钥$\left\{ {{\rm{US}}{{\rm{K}}_{j, {\rm{uid}}}}} \right\}$、时间属性私钥$\left\{ {{\rm{TS}}{{\rm{K}}_{j, {\rm{uid}}, {\rm{FID}}}}} \right\}$和位置属性私钥$\left\{ {{\rm{LS}}{{\rm{K}}_{j, {\rm{uid}}, {\rm{FID}}}}} \right\}$生成边缘密钥和恢复密钥。DU随机选取$q \in {\mathbb{Z}_p}$, 那么恢复密钥${\rm{R}}{{\rm{K}}_{{\rm{uid}}, {\rm{FID}}}} = q$, 计算边缘密钥:

$ {\rm{E}}{{\rm{K}}_{{\rm{uid}}, {\rm{FID}}}} = \left( {K_{{\rm{uid}}}^{\rm{'}} = K_{{\rm{uid}}}^{1/q}, {E_{1, j}} = D_{1, j}^{1/q}, \forall {x_j} \in X} \right) $

其中, $ X = \left\{ \begin{array}{l} {S_{j, {\rm{uid}}}}:{E_{2, j}} = {({D_{2, j}})^{1/q}}, {E_{j, {x_j}}} = {({D_{j, {x_j}}})^{1/q}}\\ {\rm{S}}{{\rm{T}}_{j, {\rm{uid}}}}:{E_{2, j}} = {({T_{2, j}})^{1/q}}, {E_{j, {x_j}}} = {({T_{j, {x_j}}})^{1/q}})\\ {\rm{S}}{{\rm{L}}_{j, {\rm{uid}}}}:{E_{2, j}} = {({L_{2, j}})^{1/q}}, {E_{j, {x_j}}} = {({L_{j, {x_j}}})^{1/q}} \end{array} \right.$

2.2.4 解密算法

EN收到DU对FID数据密文的访问请求时, 先检索自身是否存储相应的数据密文和密钥密文, 若没有存储, 则由该EN向其相邻的其他EN节点或CSP检索, 将检索到的数据密文和密钥密文缓存在该EN上。由于在边缘计算环境中DU通常为资源受限的设备, 因此为提高解密效率, 本文将解密过程分为在EN上的预解密和在DU上的本地解密。

${\rm{S}}{{\rm{E}}_{{\rm{att}}}}$表示边缘密钥中包含的属性集合, ${I_{{\rm{att}}}}$表示访问策略中行的集合, 一行对应边缘密钥中的一个属性, 即${I_{{\rm{att}}}} = \left\{ {x:\rho \left( x \right) \in {\rm{S}}{{\rm{E}}_{{\rm{att}}}}} \right\}$。若${I_{{\rm{A}}{{\rm{A}}_j}}}$表示每个${\rm{A}}{{\rm{A}}_j}$中的行索引集合, 则${I_{{\rm{att}}}} $可被划分为${I_{{\rm{att}}}} = {\{ {I_{{\rm{A}}{{\rm{A}}_j}}}\} _{j \in K}}$。假设在多项式时间范围内存在常量集合${\{ {c_x} \in {\mathbb{Z}_p}\} _{x \in {I_{{\rm{att}}}}}}$使得$\mathop \sum \limits_{x \in {I_{{\rm{att}}}}} {c_x}{\lambda _x} = s$。因此, 预解密的操作具体如下:

1) ${P_x} = e\left( {{C_{2, x}}, K_{{\rm{uid}}}^{\rm{'}}} \right) \cdot e\left( {{C_{3, x}}, {E_{j, \rho \left( x \right)}}} \right) \cdot e\left( {{C_{4, x}}, {E_{2, j}}} \right)$, 分为以下3种情况:

(1) 如果$\rho \left( x \right)$是常规属性, 那么:

$ \begin{array}{l} {P_x} = e({h^{{\lambda _x}}} \cdot {g^{{\beta _j}{r_x}}}, ( {{g^{{u_{{\rm{uid}}}}}}{)^{1/q}}} ) \cdot \\ \;\;\;\;\;\;\;\;\;e({g^{ - {r_x}}}, (F( {{x_j}{)^{{z_j}}} \cdot {g^{{\beta _j}( {{z_j} + {u_{{\rm{uid}}}}} )}}{)^{1/q}}} ) \cdot \\ \;\;\;\;\;\;\;\;{\rm{}}e({(F( {\rho ( x )} ) \cdot {g^{{\beta _j}}})^{{r_x}}}, ( {{g^{{z_j}}}{)^{1/q}}} ) = e{( {h, g} )^{{\lambda _x}{u_{{\rm{uid}}}}/q}} \end{array} $

(2) 如果$\rho \left( x \right)$是时间属性, 那么:

$ \begin{array}{l} {P_x} = e({h^{{\lambda _x}}} \cdot {g^{{\beta _j}{r_x}}}, ( {{g^{{u_{{\rm{uid}}}}}}{)^{1/q}}} ) \cdot \\ \;\;\;\;\;\;\;e({g^{ - {r_x}}}, (F{({x_j})^{{u_j}}} \cdot ( {{g^{{t_j}}}{)^{{\beta _j}{u_j}}} \cdot {g^{{u_{{\rm{uid}}}}{\beta _j}}}{)^{1/q}}} ) \cdot \\ \;\;\;\;\;\;\;e({(F( {\rho ( x )} ) \cdot {g^{{\beta _j}{r_j}}})^{{r_x}}}, ( {{g^{{u_j}}}{)^{1/q}}} ) = e{( {h, g} )^{{\lambda _x}{u_{{\rm{uid}}}}/q}} \end{array} $

(3) 如果$\rho \left( x \right)$是位置属性, 那么:

$ \begin{array}{l} {P_x} = e({h^{{\lambda _x}}} \cdot {g^{{\beta _j}{r_x}}}, ( {{g^{{u_{{\rm{uid}}}}}}{)^{1/q}}} ) \cdot \\ \;\;\;\;\;\;\;e({g^{ - {r_x}}}, (F{({x_j})^{{v_j}}} \cdot ( {{g^{{l_j}}}{)^{{\beta _j}{v_j}}} \cdot {g^{{u_{{\rm{uid}}}}{\beta _j}}}{)^{1/q}}} ) \cdot \\ \;\;\;\;\;\;\;{\rm{}}e({(F( {\rho ( x )} ) \cdot {g^{{\beta _j}{l_j}}})^{{r_x}}}, ( {{g^{{v_j}}}{)^{1/q}}} ) = e{( {h, g} )^{{\lambda _x}{u_{{\rm{uid}}}}/q}} \end{array} $

2) $T = \mathop \prod \limits_{j \in K} \frac{{e\left( {{C_1}, {E_{1, j}}} \right)}}{{\mathop \prod \nolimits_{x \in {I_{A{A_j}}}} {{({P_x})}^{{c_x}}}}} = \mathop \prod \limits_{j \in K} e{\left( {g, g} \right)^{s \cdot {\alpha _j}/q}}$

3) ${\rm{ICT}} = \left( {T, {C_0}} \right)$

本地解密的操作具体为:DU先得到中间密钥密文${\rm{ICT}}$, 利用恢复密钥得到对称密钥$k = \frac{{{C_0}}}{{{T^{{\rm{R}}{{\rm{K}}_{{\rm{uid}}, {\rm{FID}}}}}}}}$, DU再使用对称密钥$k $解密数据密文${\rm{C}}{{\rm{T}}_{{\rm{data}}}}$得到明文数据$M = {\rm{De}}{{\rm{c}}_k}\left( {{\rm{C}}{{\rm{T}}_{{\rm{data}}}}} \right)$

3 安全性分析与证明 3.1 安全模型

通过挑战者和敌手之间的安全游戏描述TLMO-ABE方案的选择明文攻击安全模型。设${S_{{\rm{AA}}}}$表示属性授权机构的集合, $S_{{\rm{AA}}}^{\rm{'}} \subset {S_{{\rm{AA}}}}$表示被破坏的属性授权机构集合。游戏过程具体如下:

1) 建立阶段:挑战者运行CA初始化算法, 生成系统公共参数。敌手指定被破坏的AA集合。每个AA都执行AA初始化算法, 生成公钥和私钥。对于被破坏的AA, 敌手获得公钥和私钥; 对于正常的AA, 敌手只获得公钥。

2) 查询阶段1:敌手指定一个密文号${\rm{FI}}{{\rm{D}}^{\rm{*}}}$和访问策略$\left( {{\mathit{\boldsymbol{A}}^{\rm{*}}}, {\rho ^{\rm{*}}}} \right)$, 并且还要确定时间属性集合及其对应的时间范围、位置属性集合及其对应的位置范围。然后敌手进行如下查询:

(1) 常规属性私钥查询:敌手提交uid、相应的身份凭证${\rm{Cer}}{{\rm{t}}_{{\rm{uid}}}}$和常规属性集合${S_{{\rm{uid}}}}$给挑战者, 且所有的常规属性属于正常的AA。挑战者将常规属性私钥${\{ {\rm{US}}{{\rm{K}}_{j, {\rm{uid}}}}\} _{j \in {S_{{\rm{AA}}}} - S_{{\rm{AA}}}^{\rm{'}}}}$发送给敌手。

(2) 时间属性私钥查询:与常规属性私钥查询相似, 敌手提交uid、相应的身份凭证${\rm{Cer}}{{\rm{t}}_{{\rm{uid}}}}$、密文号FID、时间属性集合${\rm{S}}{{\rm{T}}_{j, {\rm{uid}}}}$和访问时间time给挑战者, 且所有的时间属性属于正常的${\rm{A}}{{\rm{A}}_j}$。如果时间time是在有效时间范围内, 那么挑战者将时间属性私钥${\{ {\rm{TS}}{{\rm{K}}_{j, {\rm{uid}}, {\rm{FID}}}}\} _{j \in {S_{{\rm{AA}}}} - S_{{\rm{AA}}}^{\rm{'}}}}$发送给敌手。

(3) 位置属性私钥查询:与时间属性私钥查询相似, 敌手提交uid、相应的身份凭证${\rm{Cer}}{{\rm{t}}_{{\rm{uid}}}}$、密文号FID、位置属性集合${\rm{S}}{{\rm{L}}_{j, {\rm{uid}}}}$和访问位置location给挑战者, 且所有的位置属性属于正常的${\rm{A}}{{\rm{A}}_j}$。如果位置location是在有效位置范围内, 那么挑战者将位置属性私钥${\{ {\rm{LS}}{{\rm{K}}_{j, {\rm{uid}}, {\rm{FID}}}}\} _{j \in {S_{{\rm{AA}}}} - S_{{\rm{AA}}}^{\rm{'}}}}$发送给敌手。

(4) 转换密钥查询:敌手提交常规属性私钥${\rm{US}}{{\rm{K}}_{{\rm{uid}}}} = \left\{ {{\rm{US}}{{\rm{K}}_{j, {\rm{uid}}}}} \right\}$、时间属性私钥${\rm{TS}}{{\rm{K}}_{{\rm{uid}}, {\rm{FID}}}} = \left\{ {{\rm{TS}}{{\rm{K}}_{j, {\rm{uid}}, {\rm{FID}}}}} \right\}$和位置属性私钥${\rm{LS}}{{\rm{K}}_{{\rm{uid}}, {\rm{FID}}}} = \left\{ {{\rm{LS}}{{\rm{K}}_{j, {\rm{uid}}, {\rm{FID}}}}} \right\}$给挑战者。挑战者得到边缘密钥${\rm{E}}{{\rm{K}}_{{\rm{uid}}, {\rm{FID}}}}$和恢复密钥${\rm{R}}{{\rm{K}}_{{\rm{uid}}, {\rm{FID}}}}$, 并将其发送给敌手。

3) 挑战阶段:敌手提交两个相等长度的对称密钥${k_0}$${k_1} $给挑战者。假设${S_{{\rm{co}}}}$表示被破坏的AA的常规属性、时间属性或位置属性私钥集合。对于每个uid, 游戏要求 $ {\rm{US}}{{\rm{K}}_{{\rm{uid}}}} \cup {\rm{TS}}{{\rm{K}}_{{\rm{uid}}, {\rm{FID}}}}\mathop \cup {\rm{LS}}{{\rm{K}}_{{\rm{uid}}, {\rm{FID}}}} \cup {S_{{\rm{co}}}}$ 不能同时匹配访问策略$\left( {{\mathit{\boldsymbol{A}}^{\rm{*}}}, {\rho ^{\rm{*}}}} \right)$和密文号${\rm{FI}}{{\rm{D}}^{\rm{*}}}$。挑战者随机抛掷一枚硬币$b \in \left\{ {0, 1} \right\}$, 并使用访问策略$\left( {{\mathit{\boldsymbol{A}}^{\rm{*}}}, {\rho ^{\rm{*}}}} \right)$加密${k_b}$, 然后将密文${\rm{C}}{{\rm{T}}_{{\rm{FID}}{{\rm{}}^{\rm{*}}}}}$发送给敌手。

4) 查询阶段2:敌手重复查询阶段1, 但是新的${\rm{US}}{{\rm{K}}_{{\rm{uid}}}} \cup {\rm{TS}}{{\rm{K}}_{{\rm{uid}}, {\rm{FID}}}}\mathop \cup {{\rm{LSK}}_{{\rm{uid}}, {\rm{FID}}}}$仍然不能满足密文号${\rm{FI}}{{\rm{D}}^{\rm{*}}}$和访问策略中常规属性、时间属性和位置属性的要求。

5) 猜测:敌手输出一个关于b的猜测$b' \in \left\{ {0, 1} \right\}$。如果$b' = b$, 则称敌手赢了此游戏。敌手在游戏中的优势定义为$\varepsilon = \left| {{\rm{Pr}}\left[ {b' = b} \right] - 1/2} \right|$

3.2 安全性分析 3.2.1 多属性授权机构的安全性

在单授权机构中, 由单一的中央授权机构生成数据用户私钥。如果该中央授权机构被破坏, 则所有数据用户的私钥会被泄露, 造成系统崩溃。本文方案中的数据用户私钥交由多属性授权机构联合生成和分发, 数据用户使用来自多属性授权机构的私钥组件对密钥密文进行解密。如果其中某个属性授权机构被破坏, 则非法用户只能获取该属性授权机构管理的所有属性私钥, 但仍然无法解密密钥密文, 并且合法用户对密钥密文的解密不受影响。因此, 本文多属性授权机构相比单授权机构安全性更高。

3.2.2 抗合谋攻击

如果数据用户想要恢复出对称密钥k, 则必须要计算得到$e{\left( {h, g} \right)^{{\rm{s}}{{\rm{u}}_{{\rm{uid}}}}}}$的值。假设只有合并多个未经授权的数据用户的属性集合才能满足访问结构, 但因为每个数据用户的uid不同, 生成属性私钥的组件也不同, 所以无法计算出$e{\left( {h, g} \right)^{{\rm{s}}{{\rm{u}}_{{\rm{uid}}}}}}$的值, 从而无法恢复出$ k$。因此, 本文方案能够有效抵抗数据用户的合谋攻击。

3.3 安全性证明

定理1  如果不存在一个敌手M可以在多项式时间内以不可忽略的优势$\varepsilon > 0$赢得安全游戏(矩阵${\mathit{\boldsymbol{A}}^{\rm{*}}}$的大小为${m^{\rm{*}}} \times {n^{\rm{*}}}$ (${n^{\rm{*}}} < q$)), 那么就没有一个多项式时间模拟器可以选择性地打破判定性q-parallel BDHE假设。

证明  假设在3.1节提出的安全游戏中, 敌手M具有不可忽略的优势$\varepsilon $, 且只能选择一个最大为q-1列的访问矩阵${\mathit{\boldsymbol{A}}^{\rm{*}}}$。然而, M可以执行任意的常规属性私钥查询、时间属性私钥查询、位置属性私钥查询和转换密钥查询, 但是所有获得的私钥(即使与被破坏的AA中的私钥相结合)仍然不能满足访问策略中的属性要求。在此约束下, 多属性授权机构方案的安全游戏证明等价于单授权机构方案的安全游戏证明。

定理2   TLMO-ABE方案在合谋攻击下仍具有安全性。

证明  每个数据用户都有一个唯一的身份标识uid, 将${u_{{\rm{uid}}}}$嵌入到所有属性私钥中。不失一般性, 假设有两个恶意数据用户合谋攻击, 那么解密密钥应该包含两个不同的${u_{{\rm{uid}}}}$。在此情形下, 线性对运算$e{({h^{{\lambda _x}}} \cdot {g^{{\beta _j}{r_x}}}, {g^{{u_{{\rm{uid}}}}}})^{{c_x}}}$在解密阶段将不能正确恢复出包含秘密值s的组件$e{\left( {h, g} \right)^{{\rm{s}}{{\rm{u}}_{{\rm{uid}}}}}}$。因此, 当存在多个数据用户的私钥时, 即使属性集合满足访问策略要求, 仍然不能成功解密密钥密文。

由定理1的证明可知, 若敌手M在安全模型下能够以不可忽略的优势$\varepsilon $攻破TLMO-ABE方案, 则多项式时间模拟器也能以同样的优势打破q-parallel BDHE假设, 因此该方案在安全模型下可抵抗选择明文攻击。由定理2的证明可知, 即使多个数据用户合谋, 也不能解密密钥密文, 因此该方案能够抵抗合谋攻击。

4 性能分析

本文将TLMO-ABE、TAAC[18]与LABAC[21]方案在特性、存储开销和计算开销3个方面进行对比。表 1比较了TLMO-ABE、TAAC与LABAC方案的相关特性, TLMO-ABE方案能同时实现用户时间和位置的访问控制及解密计算外包, 而TAAC和LABAC方案能分别实现位置和时间的访问控制, 但无法实现解密计算外包。在表 1中, √表示属性加密方案具有该特性, ×表示属性加密方案不具有该特性。

下载CSV 表 1 3种属性加密方案的特性比较 Table 1 Characteristic comparison of three ABE schemes

存储开销是影响访问控制方案大规模部署的关键因素。密文和密钥是数据所有者、数据存储节点和数据用户之间进行频繁传输的数据。令k1表示访问策略中的属性数, k2表示用户私钥中的属性数, $\left| G \right|$$\left| {{G_T}} \right|$分别表示群$ G$${{G_T}}$中元素的长度, $\left| F \right|$表示哈希函数长度。由表 2可知, 与TAAC和LABAC方案相比, TLMO-ABE方案的密钥密文和用户私钥长度更短, 存储开销更小。

下载CSV 表 2 3种属性加密方案的存储开销比较 Table 2 Comparison of storage overhead of three ABE schemes

计算开销主要产生于加密阶段、预解密阶段和本地解密阶段。由于TLMO-ABE方案使用ABE方法对对称密钥进行加密, 因此没有考虑明文数据加密。令${t_{\rm{e}}}$表示一次指数运算消耗的时间, ${t_{\rm{b}}}$表示一次双线性对运算消耗的时间。由表 3可知, 虽然TLMO-ABE方案在加密开销上没有明显优势, 但是其将大部分解密计算外包至边缘节点, 大幅减小了本地解密开销, 相比LABAC和TAAC方案更具优势。

下载CSV 表 3 3种属性加密方案的计算开销比较 Table 3 Comparison of computational overhead of three ABE schemes
5 结束语

本文提出一种面向边缘计算的支持时间和位置约束的属性加密方案。该方案将时间域信息和位置域信息相结合引入属性加密算法, 实现更细粒度的访问控制。采用多授权机构, 使属性私钥由多个授权中心联合分发, 解决了单授权机构的单点瓶颈问题, 并且满足用户跨域访问需求。针对边缘计算环境的特点, 通过将大部分解密计算外包至边缘节点, 减轻了移动终端设备的负担。分析结果表明, 该方案在边缘计算环境下具有较低的时间开销与计算开销。但由于本文方案仅在随机预言模型下可证安全, 因此下一步将设计在标准模型下满足时间与位置约束且安全的属性加密方案。

参考文献
[1]
ZHANG Yuqing, WANG Xiaofei, LIU Xuefeng, et al. Survey on cloud computing security[J]. Journal of Software, 2016, 27(6): 1328-1348. (in Chinese)
张玉清, 王晓菲, 刘雪峰, 等. 云计算环境安全综述[J]. 软件学报, 2016, 27(6): 1328-1348.
[2]
WATERS B.Ciphertext-policy attribute-based encryption: an expressive, efficient, and provably secure realization[C]//Proceedings of the 14th International Conference on Practice and Theory in Public Key Cryptography.New York, USA: ACM Press, 2011: 53-70.
[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]
GOYAL V, PANDEY O, SAHAI A, et al.Attribute-based encryption for fine-grained access control of encrypted data[C]//Proceedings of ACM Conference on Computer and Communications Security.New York, USA: ACM Press, 2006: 89-98.
[5]
QIN Baodong, ZHENG Dong. Generic approach to outsource the decryption of attribute-based encryption in cloud computing[J]. IEEE Access, 2019, 7: 42331-42342. DOI:10.1109/ACCESS.2019.2907364
[6]
FU Junsong, WANG Na. A practical attribute-based document collection hierarchical encryption scheme in cloud computing[J]. IEEE Access, 2019, 7: 36218-36232. DOI:10.1109/ACCESS.2019.2905346
[7]
WANG Shangping, ZHANG Duo, ZHANG Yaling, et al. Efficiently revocable and searchable attribute-based encryption scheme for mobile cloud storage[J]. IEEE Access, 2018, 6: 30444-30457. DOI:10.1109/ACCESS.2018.2846037
[8]
LEWKO A B, WATERS B.Decentralizing attribute-based encryption[C]//Proceedings of EUROCRYPT'11.Berlin, Germany: Springer, 2011: 568-588.
[9]
YANG Kan, JIA Xiaohua, REN Kui, et al. DAC-MACS:effective data access control for multi-authority cloud storage systems[J]. IEEE Transactions on Information Forensics and Security, 2013, 8(11): 1790-1801. DOI:10.1109/TIFS.2013.2279531
[10]
BELGUITH S, KAANICHE N, LAURENT M, et al. PHOABE:securely outsourcing multi-authority attribute based encryption with policy hidden for cloud assisted IoT[J]. Computer Networks, 2018, 133: 141-156. DOI:10.1016/j.comnet.2018.01.036
[11]
YAN Xixi, NI Hao, LIU Yuan, et al. Privacy-preserving multi-authority attribute-based encryption with dynamic policy updating in PHR[J]. Computer Science and Information Systems, 2019, 16(3): 831-847. DOI:10.2298/CSIS180830029Y
[12]
ZHANG Jiale, CHEN Bing, HU Feng, et al. Survey on data security and privacy-preserving for the research of edge computing[J]. Journal on Communications, 2018, 39(3): 1-21.
[13]
GREEN M, HOHENBERGER S, WATERS B.Outsourcing the decryption of ABE ciphertexts[C]//Proceedings of the 20th USENIX Conference on Security.New York, USA: ACM Press, 2011: 1-34.
[14]
LI Wenmin, LI Xuelei, WEN Qiaoyan, et al. Flexible CP-ABE based access control on encrypted data for mobile users in hybrid cloud system[J]. Journal of Computer Science and Technology, 2017, 32(5): 974-990. DOI:10.1007/s11390-017-1776-1
[15]
ZHANG P, CHEN Z, LIU J K, et al. An efficient access control scheme with outsourcing capability and attribute update for fog computing[J]. Future Generation Computer Systems, 2018, 78: 753-762. DOI:10.1016/j.future.2016.12.015
[16]
ZUO Cong, SHAO Jun, WEI Guiyi, et al. CCA-secure ABE with outsourced decryption for fog computing[J]. Future Generation Computer Systems, 2018, 78: 730-738. DOI:10.1016/j.future.2016.10.028
[17]
HONG Jianan, XUE Kaiping, LI Wei, et al.TAFC: time and attribute factors combined access control for time-sensitive data in public cloud[C]//Proceedings of 2015 IEEE Global Communications Conference.Washington D.C., USA: IEEE Press, 2015: 6-14.
[18]
YANG Kan, LIU Zhen, JIA Xiaohua, et al. Time-domain attribute-based access control for cloud-based video content sharing:a cryptographic approach[J]. IEEE Transactions on Multimedia, 2016, 18(5): 940-950. DOI:10.1109/TMM.2016.2535728
[19]
ANDROULAKI E, SORIENTE C, MALISA L, et al.Enforcing location and time-based access control on cloud-stored data[C]//Proceedings of the 34th International Conference on Distributed Computing Systems.Washington D.C., USA: IEEE Press, 2014: 637-648.
[20]
SHAO Jun, LU Rongxing, LIN Xiaodong.FINE: a fine-grained privacy-preserving location-based service framework for mobile devices[C]//Proceedings of IEEE Conference on Computer Communications.Washington D.C., USA: IEEE Press, 2014: 1-7.
[21]
XUE Yingjie, HONG Jianan, LI Wei, et al.LABAC: a location-aware attribute-based access control scheme for cloud storage[C]//Proceedings of IEEE Global Communications Conference.Washington D.C., USA: IEEE Press, 2016: 614-623.