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

引用本文  

马佳佳, 张志强, 曹素珍, 等. 基于雾节点的分布式属性基加密方案[J]. 计算机工程, 2021, 47(6), 38-43. DOI: 10.19678/j.issn.1000-3428.0060063.
MA Jiajia, ZHANG Zhiqiang, CAO Suzhen, et al. Distributed Attribute-Based Encryption Scheme Based on Fog Nodes[J]. Computer Engineering, 2021, 47(6), 38-43. DOI: 10.19678/j.issn.1000-3428.0060063.

基金项目

国家自然科学基金(61662069,61662071)

作者简介

马佳佳(1997-), 女, 硕士研究生, 主研方向为属性基加密;
张志强, 硕士研究生;
曹素珍, 副教授、硕士;
窦凤鸽, 硕士研究生;
丁晓晖, 硕士研究生;
王彩芬, 教授、博士

文章历史

收稿日期:2020-11-20
修回日期:2021-01-12
基于雾节点的分布式属性基加密方案
马佳佳1 , 张志强1 , 曹素珍1 , 窦凤鸽1 , 丁晓晖1 , 王彩芬2     
1. 西北师范大学 计算机科学与工程学院, 兰州 730070;
2. 深圳技术大学 大数据与互联网学院, 广东 深圳 518118
摘要:为解决云存储中对用户访问数据权限划分笼统、细粒度化控制访问权限受限以及单授权机构中存在的单点失效问题,提出基于雾节点的分布式密文策略属性基加密方案。将数据的部分解密运算外包给雾节点,减少终端用户的计算开销,并由不同的属性授权机构为用户生成属性密钥,以适用于细粒度的访问控制要求,使用全局身份将属于特定用户的各种属性进行“捆绑”,防止各属性机构间的共谋攻击,同时引入权重属性简化访问结构,节省系统的存储空间。实验结果表明,基于判定性q-parallel BDHE问题证明了该方案的安全性,与基于区块链的多授权机构访问控制方案和mHealth中可追踪多授权机构基于属性的访问控制方案相比,该方案终端用户在解密阶段具有更小的计算开销。
关键词雾计算    分布式授权    密文策略    权重属性    解密外包    
Distributed Attribute-Based Encryption Scheme Based on Fog Nodes
MA Jiajia1 , ZHANG Zhiqiang1 , CAO Suzhen1 , DOU Fengge1 , DING Xiaohui1 , WANG Caifen2     
1. College of Computer Science and Engineering, Northwest Normal University, Lanzhou 730070, China;
2. College of Big Data and Internet, Shenzhen University of Technology, Shenzhen, Guangdong 518118, China
Abstract: The existing cloud storage schemes have multiple limitations, including the general division of user rights to access data, fine-grained control access permissions, and single point of failure in single authority.This paper proposes a distributed ciphertext-policy attribute-based encryption scheme based on fog nodes.In the scheme, part of the data decryption operations are outsourced to the fog nodes, reducing the computing overhead of the end users.Different attribute authorities generate attribute keys for users to meet the fine-grained access control requirements, and the attributes of a specific user are bundled together by using the global identity, which effectively prevents collusion attacks among various attribute agencies.At the same time, the introduction of the weight attribute simplifies the access structure and saves system storage space.The scheme is tested with the q-parallel BDHE deterministic problem, and the results have verified the security of the scheme.Compared with the blockchain-based multi-authority access control scheme and the attribute-based access control scheme of mHealth that can track multiple authorities, the proposed scheme reduces the computing overhead of the end users in the decryption phase.
Key words: fog computing    distributed authorization    ciphertext-policy    weight attribute    decryption outsourcing    

开放科学(资源服务)标志码(OSID):

0 概述

2012年,BONOMI等[1]正式提出了雾计算,使用网络中的边缘设备来进行数据的存储和运算,缓解中心网络设备的压力。作为新一代的分布式计算[2],雾计算具有低延时、分布广泛、带宽压力小、调度灵活等优势,未来将被广泛应用于物联网和工业行业等领域中[3]

2005年,SSHAI等[4]提出了属性基加密(Attribute-Based Encryption,ABE)技术,将属性合并为其密码原语的输入。属性基加密分为密钥策略的属性基加密(Key-Policy Attribute-Based Encryption,KP-ABE)[5]和密文策略的属性基加密(Ciphertext-Policy Attribute-Based Encryption,CP-ABE)[6]两种。在CP-ABE下访问策略与密文相关联,更加符合实际需求[7]。2014年,FAN等[8]提出了权重属性的概念,将二进制状态表示的属性值扩展到任意状态,使其更广泛地应用于实际环境中,文献[9]为减轻用户端的解密运算压力,以密钥分割的方式将运算工作外包给雾节点,文献[10]将终端设备中部分复杂的加解密运算外包给雾节点。上述方案都未考虑单一授权中心单点失效的问题,在单授权的ABE方案[11-13]中,授权机构要为所有用户生成属性密钥,容易受到集中攻击并且存在性能瓶颈。为解决这一问题,文献[14]提出多授权的ABE方案,有效地解决了单授权机构单点失效的问题。文献[15]为解决传统CP-ABE单一授权机构存在的问题,设计了基于区块链的多授权访问控制方案。文献[16]考虑到用户系统用户的合法性问题,将恶意用户追踪机制引入到了多机构中。为了降低用户的计算开销,文献[17]提出支持计算外包的多授权CP-ABE访问控制方案,将部分解密计算外包给代理服务器;文献[18]提出了基于密文策略的基于属性的加密方案,将部分解密外包给云服务器;文献[19]采用多机构属性基加密方案,除了能够满足机密性与细粒度性之外,还提供了匿名认证;文献[20]使用边缘雾节点来承担大部分的用户解密运算操作,有效节省了用户终端资源。

本文提出基于雾节点的分布式权重属性CP-ABE外包解密方案。该方案通过雾节点实现外包解密计算,验证外包结果的正确性。为每个属性定义权重值,默认最小权重值,当用户属性值小于最小权重值时,不能访问密文,使属性从二进制状态“0”和“1”(即“满足”和“不满足”)扩展到任意状态,从而简化访问结构,减少密文的存储开销和加密中的计算成本。

1 预备知识 1.1 符号说明

本文方案中的部分符号说明如表 1所示。

下载CSV 表 1 符号说明 Table 1 Symbol description
1.2 困难问题假设

定义1  设$ G\mathrm{、}{G}_{T} $是两个阶为素数$ p $的乘法循环群,$ g $$ G $的生成元,$ e $为双线性映射$ e:G\times G\to {G}_{T} $。随机选取$ a, s, {b}_{1}, {b}_{2}, \cdots , {b}_{q}\in {\mathbb{Z}}_{p} $,公开:

$ \begin{array}{l}\overrightarrow{y}=\{g, {g}^{s}, {g}^{a}, \cdots , {g}^{{a}^{q}}, {g}^{{a}^{q+2}}, \cdots , {g}^{{a}^{2q}}, \underset{1\le j\le q}{\forall }{g}^{s{b}_{j}},{g}^{a/{b}_{j}}, \cdots , \\ \;\;\;\;\;{g}^{{a}^{q}/{b}_{j}}, {g}^{{a}^{q+2}/{b}_{j}}, \cdots , {g}^{{a}^{2q}/{b}_{j}}\underset{1\le j, k\le q, k\ne j}{\forall }{g}^{a\cdot s\cdot {b}_{k}/{b}_{j}}, \cdots , \\ \;\;\;\;\;{g}^{{a}^{q}\cdot s\cdot {b}_{k}/{b}_{j}}\}\end{array} $

判定性$ q\mathrm{⁃}\mathrm{p}\mathrm{a}\mathrm{r}\mathrm{a}\mathrm{l}\mathrm{l}\mathrm{e}\mathrm{l}\mathrm{ }\mathrm{B}\mathrm{D}\mathrm{H}\mathrm{E} $假设是指不存在多项式时间的算法以不可忽略的优势区分$ e{(g, g)}^{{a}^{q+1}s}\in {G}_{T} $$ {G}_{T} $中的某一随机元素$ R $

1.3 线性秘密共享方案

定义2  每个参与方P上的线性秘密共享方案($ \mathrm{L}\mathrm{i}\mathrm{n}\mathrm{e}\mathrm{a}\mathrm{r}\mathrm{ }\;\mathrm{S}\mathrm{e}\mathrm{c}\mathrm{r}\mathrm{e}\mathrm{t}\mathrm{ }\;\mathrm{S}\mathrm{h}\mathrm{a}\mathrm{r}\mathrm{i}\mathrm{n}\mathrm{g}\mathrm{ }\;\mathrm{S}\mathrm{c}\mathrm{h}\mathrm{e}\mathrm{m}\mathrm{e},\mathrm{L}\mathrm{S}\mathrm{S}\mathrm{S} $$ \mathrm{\Pi } $

存在一个$ l\times n $的矩阵M称为$ \mathrm{\Pi } $的共享生成矩阵,对于所有的$ i=\mathrm{1, 2}, \cdots , l $,定义M的第$ i $$ {M}_{i} $被标识为参与方$ \rho \left(i\right) $,同时有列向量$ \boldsymbol{v}=(s, {r}_{2}, {r}_{3}, \cdots , {r}_{n}) $,其中$ s\in {\mathbb{Z}}_{p} $是要共享的秘密值,$ {r}_{2}, {r}_{3}, \cdots , {r}_{n}\in {\mathbb{Z}}_{p} $是随机数,则根据秘密共享方案$ \mathrm{\Pi } $,向量$ \boldsymbol{M}\cdot \boldsymbol{v} $$ l $的秘密份额,并且$ {(\boldsymbol{M}\cdot \boldsymbol{v})}_{i} $属于$ \rho \left(i\right) $

假定$ \mathrm{\Pi } $的访问结构为A,令授权集合$ S\in A $,定义$ I\subset \{\mathrm{1, 2}, \cdots , l\} $$ I=\{i:\rho (i)\in S\} $。存在常量$ \{{\omega }_{i}\in {\mathbb{Z}}_{p}{\}}_{i\in I} $,对于任意合法共享秘密$ \left\{{\lambda }_{i}\right\} $,有$ \sum\limits_{i\in I}\left({\omega }_{i}{\lambda }_{i}\right)=\sum\limits_{i\in I}{\omega }_{i}({M}_{i}\cdot \boldsymbol{v})=\varepsilon \cdot \boldsymbol{v}=s $,其中$ \varepsilon =(\mathrm{1, 0}, \cdots , 0) $$ \left\{{\omega }_{i}\right\} $在共享生成矩阵$ \boldsymbol{M} $的大小相关的时间多项式中,约定向量$ (\mathrm{1, 0}, \cdots , 0) $是任何线性秘密共享方案的目标向量。对于M中任何满足的行集$ I $,得到目标向量在$ I $的跨度内,而任何未经授权的行集$ I $,目标向量不在集合$ I $的行的跨度内,并且存在一个向量$ \boldsymbol{\omega } $,使得$ \boldsymbol{\omega }\cdot (\mathrm{1, 0}, \cdots , 0)=-1,\boldsymbol{\omega }\cdot {M}_{i}=0 $

2 方案描述 2.1 系统模型

本文方案由6个实体构成,即云服务商(Cloud Service Provider,CSP)、中央授权机构(Center Authority,CA)、属性授权机构(Attribute Authority,AA)、雾节点(Fog)、数据属主(Data Owner,DO)以及数据用户(Data User,DU)。系统模型如图 1所示,其中,m表示明文,CT表示密文。

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

系统模型主要包括以下部分:

1)云服务商(CSP)。半可信云服务提供商,负责存储密文。

2)中央授权机构(CA)。可信的第三方,为整个系统生成公共参数。

3)属性授权机构(AA)。管理用户属性集,并为用户生成密钥。不同的授权机构为每个用户生成唯一的全局身份标识符GID,在为用户生成密钥时,用户GID与属性绑定在一起,同时授权机构维护用户的属性列表。

4)雾节点(Fog)。雾节点是诚实且好奇的,主要负责解密DU从CSP下载的部分密文。

5)数据属主(DO)。将加密的数据文件上传至CSP,在加密时,DO指定一个满足用户属性的访问结构,然后将数据文件加密成密文上传至CSP。

6)数据用户(DU)。自由地访问CSP中的密文数据资源,当DU能够满足访问策略时,才能够成功地解密密文数据。

2.2 方案构造

$ e $$ G\times G\to {G}_{T} $的一个双线性映射。定义$ G\mathrm{、}{G}_{T} $为素数阶$ p $的双线性群,生成元为$ g $。选择哈希函数$ H:{\left\{\mathrm{0, 1}\right\}}^{\mathrm{*}}\to G $,将身份$ \mathrm{I}\mathrm{D} $映射到$ {\mathbb{Z}}_{p}^{\mathrm{*}} $中。

1)$ \mathrm{G}\mathrm{l}\mathrm{o}\mathrm{b}\mathrm{a}\mathrm{l}\mathrm{S}\mathrm{e}\mathrm{t}\mathrm{u}\mathrm{p}\left(k\right)\to \mathrm{P}\mathrm{P} $

全局初始化算法由CA执行。该算法输入安全参数$ k $,定义全局属性$ A=\{{a}_{1}, {a}_{2}, \cdots , {a}_{n}\} $及权重集$ W=\{{w}_{1}, {w}_{2}, \cdots , {w}_{n}\} $,输出公共参数$ \mathrm{P}\mathrm{P}=\{G, {G}_{T}, A, W, H, g\} $发送给授权中心。

2)$ \mathrm{A}\mathrm{u}\mathrm{t}\mathrm{h}\mathrm{o}\mathrm{r}\mathrm{i}\mathrm{t}\mathrm{y}\mathrm{S}\mathrm{e}\mathrm{t}\mathrm{u}\mathrm{p}\left(\mathrm{P}\mathrm{P}\right)\to (\mathrm{P}\mathrm{K}, \mathrm{M}\mathrm{S}\mathrm{K}) $

输入公共参数$ \mathrm{P}\mathrm{P} $,由属性授权机构运行该算法。每个授权机构管理用户的不同属性,对其管理的每个属性$ i $,随机选取两个数$ {\alpha }_{i}, {y}_{i}\in {\mathbb{Z}}_{p} $,生成系统的公钥$ \mathrm{P}\mathrm{K}=\{e{(g, g)}^{{\alpha }_{i}}, {g}^{{y}_{i}}\} $和主密钥$ \mathrm{M}\mathrm{S}\mathrm{K}=\{{\alpha }_{i}, {y}_{i}\} $。其中,系统公钥$ \mathrm{P}\mathrm{K} $是公开的,主密钥$ \mathrm{M}\mathrm{S}\mathrm{K} $是保密的。

3)$ \mathrm{K}\mathrm{e}\mathrm{y}\mathrm{G}\mathrm{e}\mathrm{n}(\mathrm{M}\mathrm{S}\mathrm{K}, \mathrm{G}\mathrm{I}\mathrm{D}, S)\to (\mathrm{T}\mathrm{S}\mathrm{K}, \mathrm{D}\mathrm{S}\mathrm{K}) $

输入系统主密钥$ \mathrm{M}\mathrm{S}\mathrm{K} $、用户身份$ \mathrm{G}\mathrm{I}\mathrm{D} $以及用户属性集合$ S $,AA为用户$ \mathrm{G}\mathrm{I}\mathrm{D} $的权重属性$ i $生成属性密钥,其权重为$ {w}_{k}\in W $,并将该属性$ i $记录在与其身份对应的属性列表中。对于属性$ i\in S $,随机选取$ a, t, z\in {\mathbb{Z}}_{p} $,计算$ L={g}^{t/z} $$ {K}_{i, \mathrm{G}\mathrm{I}\mathrm{D}}=(H{\left(\mathrm{G}\mathrm{I}\mathrm{D}\right)}^{{y}_{i}}{g}^{{w}_{k}}{)}^{t/z} $,生成雾节点的转换密钥$ \mathrm{T}\mathrm{S}\mathrm{K}=(\mathrm{P}\mathrm{K}, L, \{{K}_{i, \mathrm{G}\mathrm{I}\mathrm{D}}\left\}\right) $,设置用户验证密钥$ \mathrm{S}{\mathrm{K}}_{u}={g}^{{\alpha }_{i}}{g}^{at} $以及用户私钥$ \mathrm{D}\mathrm{S}\mathrm{K}=(z, \mathrm{T}\mathrm{S}\mathrm{K}) $

4)$ \mathrm{E}\mathrm{n}\mathrm{c}\mathrm{r}\mathrm{y}\mathrm{p}\mathrm{t}(\mathrm{P}\mathrm{K}, m, (\boldsymbol{M}, \rho \left)\right)\to \mathrm{C}\mathrm{T} $

输入系统公钥$ \mathrm{P}\mathrm{K} $、消息$ m $以及$ \mathrm{L}\mathrm{S}\mathrm{S}\mathrm{S} $访问策略$ (\boldsymbol{M}, \rho ) $,输出密文$ \mathrm{C}\mathrm{T} $。该算法由数据属主运行,M$ l\times n $的矩阵,$ {M}_{i} $M的第$ i $行,函数$ \rho $将矩阵M的每一行映射到一个属性。随机选取$ \boldsymbol{v}=(s, {r}_{2}, {r}_{3}, \cdots , {r}_{n})\in {\mathbb{Z}}_{p}^{n} $$ {\lambda }_{i}={M}_{i}\boldsymbol{v}, i\in (1, l) $$ s $为共享秘密值。随机选取$ {r}_{1}, {r}_{2}, \cdots , {r}_{l}\in {\mathbb{Z}}_{p} $,计算$ C= $ $ m\cdot e{(g, g)}^{{\alpha }_{i}s}, {C}^{\text{'}}={g}^{s/z} $$ {C}_{i}={g}^{a{\lambda }_{i}}\times (H{\left(\mathrm{G}\mathrm{I}\mathrm{D}\right)}^{{y}_{i}}\times {g}^{{w}_{i}}{)}^{-{r}_{i}} $$ {D}_{i}={g}^{{r}_{i}} $。输出密文$ \mathrm{C}\mathrm{T}=\left(\right(\boldsymbol{M}, \rho )\mathrm{ }, C, {C}^{\text{'}}, {C}_{i}, {D}_{i}, i\in (1, l\left)\right) $

5)$ \mathrm{F}\mathrm{o}\mathrm{g}\mathrm{P}\mathrm{a}\mathrm{r}\mathrm{D}\mathrm{e}\mathrm{c}(\mathrm{T}\mathrm{S}\mathrm{K}, \mathrm{C}\mathrm{T})\to \mathrm{p}\mathrm{a}\mathrm{r}\mathrm{C}\mathrm{T} $

输入$ S $对应的$ \mathrm{T}\mathrm{K} $以及$ (\boldsymbol{M}, \rho ) $的密文$ \mathrm{C}\mathrm{T} $,该算法由雾节点解密。若$ S $满足访问结构,则$ X=\left\{x\right|\rho \left(x\right)\in S且{w}_{i}\le {w}_{k}\} $,其中,$ {w}_{i} $是访问矩阵M$ x $$ {M}_{x} $对应属性的权重,$ {w}_{k} $是用户该属性的权重。存在$ \{{c}_{x}\in {Z}_{p}{\}}_{x\in X} $,对任意合法分享$ \left\{{\lambda }_{i}\right\} $,有$ \sum\limits_{x\in X}{c}_{x}{\lambda }_{i}=\sum\limits_{x\in X}{c}_{x}\times \left({M}_{i}\boldsymbol{v}\right)=s $。令$ k=\rho \left(x\right) $表示访问矩阵M$ x $$ {M}_{x} $所对应属性,$ x\in [1, l] $。对所有$ x\in [1, l] $进行分类计算,如果$ k\notin S $$ k\in S, {w}_{i}>{w}_{k} $,则返回$ \perp $;如果$ k\in S $$ {w}_{i}\le {w}_{k} $,对于$ \forall x\in X $,计算半解密密文:

$ {p}_{\mathrm{p}\mathrm{a}\mathrm{r}\mathrm{C}\mathrm{T}}=e\left(\prod\limits_{x\in X}{C}_{i}^{{c}_{x}}, L\right)\times \prod\limits_{x\in X}e({D}_{i}^{{c}_{x}}, {K}_{i, \mathrm{G}\mathrm{I}\mathrm{D}})=e\prod\limits_{x\in X}({g}^{a{\lambda }_{i}{c}_{x}}\cdot \\ (H({G}_{\mathrm{G}\mathrm{I}\mathrm{D}}{)}^{{y}_{i}}{g}^{{w}_{i}}{)}^{-{r}_{i}{c}_{x}}, {g}^{t/z})\times \prod\limits_{x\in X}e({g}^{{r}_{i}{c}_{x}}, (H({G}_{\mathrm{G}\mathrm{I}\mathrm{D}}{)}^{{y}_{i}}{g}^{{w}_{i}}{)}^{t/z}= \\ e\left(\prod\limits_{x\in X}{g}^{a{\lambda }_{i}{c}_{x}}, {g}^{t/z}\right)\times e\left(\prod\limits_{x\in X}\left(H\right({G}_{\mathrm{G}\mathrm{I}\mathrm{D}}{)}^{{y}_{i}}{g}^{{w}_{i}}{)}^{-{r}_{i}{c}_{x}}, {g}^{t/z}\right)\times \\ \prod\limits_{x\in X}e({g}^{{r}_{i}{c}_{x}}, \mathrm{ }(H({G}_{\mathrm{G}\mathrm{I}\mathrm{D}}{)}^{{y}_{i}}{g}^{{w}_{i}}{)}^{t/z}=e{(g, g)}^{(at/z)\cdot \sum\limits_{x\in X}\left({\lambda }_{i}{c}_{x}\right)}= \\ e{(g, g)}^{ats/z}$

6)$ \mathrm{U}\mathrm{s}\mathrm{e}\mathrm{r}\mathrm{V}\mathrm{e}\mathrm{r}\mathrm{P}\mathrm{a}\mathrm{r}\mathrm{D}\mathrm{e}\mathrm{c}({C}^{\text{'}}, \mathrm{S}{\mathrm{K}}_{u}, \mathrm{p}\mathrm{a}\mathrm{r}\mathrm{C}\mathrm{T})\to \mathrm{C}{\mathrm{T}}^{\text{'}} $

用户验证阶段由授权中心执行,输入部分密文$ {C}^{\text{'}} $、用户的验证密钥$ \mathrm{S}{\mathrm{K}}_{u} $以及半解密密文$ \mathrm{p}\mathrm{a}\mathrm{r}\mathrm{C}\mathrm{T} $,计算:

$ \begin{array}{l}{C}_{\mathrm{C}{\mathrm{T}}^{\text{'}}}\mathrm{ }=e({C}^{\text{'}}, \mathrm{S}{\mathrm{K}}_{u})/{p}_{\mathrm{p}\mathrm{a}\mathrm{r}\mathrm{C}\mathrm{T}}=\\ \;\;\;\;\;\;\;\; e({g}^{s/z}, {g}^{{\alpha }_{i}}{g}^{at})/e{(g, g)}^{ats/z}=e{(g, g)}^{{a}_{i}s/z}\end{array} $

7)$ \mathrm{D}\mathrm{e}\mathrm{c}\mathrm{r}\mathrm{y}\mathrm{p}\mathrm{t}(\mathrm{D}\mathrm{S}\mathrm{K}, C, \mathrm{C}{\mathrm{T}}^{\text{'}})\to m $

用户解密消息$ m $,输入用户密钥$ \mathrm{D}\mathrm{S}\mathrm{K} $,密文构件$ C\mathrm{、}\mathrm{C}{\mathrm{T}}^{\text{'}} $,计算:

$ m=C/{C}_{\mathrm{C}{{\mathrm{T}}^{\text{'}}}_{\mathrm{D}\mathrm{S}\mathrm{K}}}=\frac{m\cdot e{(g, g)}^{{\alpha }_{i}s}}{(e{(g, g)}^{{\alpha }_{i}s/z}{)}^{z}}=m $
3 安全性证明

定义3  在访问结构$ ({\boldsymbol{M}}^{\mathrm{*}}, {\rho }^{\mathrm{*}}) $下,如果存在多项式时间的敌手$ \mathrm{{\rm A}} $$ \varepsilon $的优势攻破本文方案,那么存在另一个敌手$ \mathrm{B} $$ \frac{\varepsilon }{2} $的优势解决判定性$ q\mathrm{⁃}\mathrm{p}\mathrm{a}\mathrm{r}\mathrm{a}\mathrm{l}\mathrm{l}\mathrm{e}\mathrm{l} $ BDHE假设,其中,$ {\boldsymbol{M}}^{\mathrm{*}} $$ {l}^{\mathrm{*}}\times {n}^{\mathrm{*}} $的矩阵,$ {l}^{\mathrm{*}},{n}^{\mathrm{*}}\le q $

证明  挑战者B首先选取两个乘法循环群$ {G}_{1}\mathrm{、}{G}_{2} $$ g $$ {G}_{1} $的生成元,以及双线性映射$ \widehat{e}:{G}_{1}\times {G}_{1}\to {G}_{2} $,随机选取$ a, s, {b}_{1}, \cdots , {b}_{q}\in {Z}_{p} $,公开:

$ \begin{array}{l}\overrightarrow{y}=\{g, {g}^{s}, {g}^{a}, \cdots , {g}^{{a}^{q}}, {g}^{{a}^{q+2}}, \cdots , {g}^{{a}^{2q}}, {\forall }_{1\le j\le q}{g}^{s{b}_{j}},\\ \;\;\;\;\;\;{g}^{a/{b}_{j}}, \cdots , {g}^{{a}^{q}/{b}_{j}}, {g}^{{a}^{q+2}/{b}_{j}}, \cdots , \\ \;\;\;\;\;\;{g}^{{a}^{2q}/{b}_{j}}{\forall }_{1\le j, k\le q, k\ne j}{g}^{a\cdot s\cdot {b}_{k}/{b}_{j}}, \cdots , {g}^{{a}^{q}\cdot s\cdot {b}_{k}/{b}_{j}}\}\end{array} $

随机选取$ \mu \in \left\{\mathrm{0, 1}\right\} $,若$ \mu =0 $,取$ Z=e{(g, g)}^{{a}^{q+1}s} $,则设置$ T=(\overrightarrow{y}, Z) $;否则,取$ Z\in {G}_{2} $,设置$ T=(\overrightarrow{y}, Z) $

敌手B收到元组$ T $后,通过与$ \mathrm{{\rm A}} $进行游戏,区分$ e{(g, g)}^{{a}^{q+1}s}\in {G}_{2} $还是$ {G}_{2} $的某个元素$ R $

初始化B并随机选取$ {\alpha }_{i}^{\text{'}}\in {\mathbb{Z}}_{p} $,计算$ e{(g, g)}^{{\alpha }_{i}}=e({g}^{a}, {g}^{{a}^{q}})e{(g, g)}^{{\alpha }_{i}^{\text{'}}} $,则有$ {\alpha }_{i}={a}^{q+1}+{\alpha }_{i}^{\text{'}} $。选择一个随机预言机$ h $,并建立列表。当调用$ h $时,如果$ h\left(x\right) $存在列表,则直接返回结果;否则,随机选取$ {z}_{x}\in {\mathbb{Z}}_{p} $。令$ X $是使得$ {\rho }^{\mathrm{*}}\left(i\right)=x $这一条件$ i $的集合。设置$ {h}_{x} $$ {h}_{x}={g}^{{z}_{x}}\prod\limits_{i\in X}{g}^{a{M}_{i, 1}^{\mathrm{*}}/{b}_{i}}\times {g}^{{a}^{2}{M}_{i, 2}^{\mathrm{*}}/{b}_{i}}\times \cdots \times {g}^{{a}^{{n}^{\mathrm{*}}}{M}_{i, {n}^{\mathrm{*}}}^{\mathrm{*}}/{b}_{i}} $。如果$ X=\mathrm{\varnothing } $,则有$ {h}_{x}={g}^{{z}_{x}} $。因为$ {g}^{{z}_{x}} $是随机的,所以$ {h}_{x} $也是随机分布的。

阶段1  $ \mathrm{{\rm A}} $对不满足矩阵$ {\boldsymbol{M}}^{\mathrm{*}} $的属性集合$ S $做秘密提取询问。B选取随机数$ r\in {\mathbb{Z}}_{p} $,求向量$ \boldsymbol{\omega }=({\omega }_{1}, {\omega }_{2}, \cdots , {\omega }_{{n}^{\mathrm{*}}})\in {\mathbb{Z}}_{p}^{{n}^{\mathrm{*}}}, $使得$ {\omega }_{1}=-1 $且对所有满足$ {\rho }^{\mathrm{*}}\left(i\right)\in S $$ i $$ \boldsymbol{\omega }\cdot {M}_{i}^{\mathrm{*}}=0 $。由LSSS的定义知这样的向量一定存在,否则向量$ (\mathrm{1, 0}, \cdots , 0) $为属性集合$ S $的长度。假若设置$ L={g}^{r/z}\prod\limits_{i=1}^{{n}^{\mathrm{*}}}({g}^{{a}^{q+1-i}}{)}^{{\omega }_{i}}={g}^{t/z} $,则有$ t=(r+{\omega }_{1}{a}^{q}+{\omega }_{2}{a}^{q-1}+\cdots +{\omega }_{{n}^{\mathrm{*}}}{a}^{q-{n}^{\mathrm{*}}+1})/\beta $。通过定义$ t $,可以使得$ {g}^{at} $包含项$ {g}^{-{a}^{q+1}} $,在构造$ \mathrm{S}{\mathrm{K}}_{u} $时就可以消去。通过B设置$ \mathrm{S}{\mathrm{K}}_{u}={g}^{{\alpha }_{i}^{\text{'}}}{g}^{ar}\prod\limits_{i=2}^{{n}^{\mathrm{*}}}({g}^{{a}^{q+2-i}}{)}^{{\omega }_{i}} $

对于$ \forall x\in S $,计算$ {K}_{i, \mathrm{G}\mathrm{I}\mathrm{D}} $。如果不存在$ i $满足$ {\rho }^{\mathrm{*}}\left(i\right)=x $,则令$ {K}_{i, \mathrm{G}\mathrm{I}\mathrm{D}}={L}^{{z}_{x}} $;对于$ x\in S $$ x $在访问结构中,因为B不能模拟$ {g}^{{a}^{q+1}/{b}_{i}} $,所以必须保证$ {K}_{i, \mathrm{G}\mathrm{I}\mathrm{D}} $中不包含形如$ {g}^{{a}^{q+1}/{b}_{i}} $的项。因为$ \boldsymbol{\omega }\cdot {M}_{i}^{\mathrm{*}}=0 $,所以这种形式的式子都能被消去。令$ X $是使得$ {\rho }^{\mathrm{*}}\left(i\right)=x $这一条件$ i $的集合,B构造$ {K}_{i, \mathrm{G}\mathrm{I}\mathrm{D}} $

$ {K}_{i, \mathrm{G}\mathrm{I}\mathrm{D}}={L}^{{z}_{x}}{\prod\limits_{i\in X}\prod\limits_{j=1}^{{n}^{\mathrm{*}}}\left({g}^{({a}^{j}/{b}_{i})r}\prod\limits_{k=1, k\ne j}^{{n}^{\mathrm{*}}}{\left({g}^{{a}^{q+1+j-k}/{b}_{i}}\right)}^{{\omega }_{k}}\right)}^{{M}_{i, j}^{\mathrm{*}}} $

挑战  $ \mathrm{{\rm A}} $向B提交两个挑战消息$ {M}_{0} $$ {M}_{1} $。B随机选取$ \beta \in \left\{\mathrm{0, 1}\right\} $,计算$ {M}_{\beta } $的密文各分量$ C={M}_{\beta }\times Z\times e({g}^{s}, {g}^{{\alpha }_{i}^{\text{'}}}) $$ {C}^{\text{'}}={g}^{s/z} $。B选择随机数$ {y}_{2}^{\text{'}}, {y}_{3}^{\text{'}}, \cdots , {y}_{{n}^{\mathrm{*}}}^{\text{'}} $,使用向量$ \boldsymbol{v}=(s, sa+{y}_{2}^{\text{'}}, s{a}^{2}+{y}_{3}^{\text{'}}, \cdots , s{a}^{n-1}+{y}_{{n}^{\mathrm{*}}}^{\text{'}})\in {\mathbb{Z}}_{p}^{{n}^{\mathrm{*}}} $$ s $进行秘密分割。此外,B选择随机数$ {r}_{1}^{\text{'}}, {r}_{2}^{\text{'}}, \cdots , {r}_{l}^{\text{'}} $。对于$ i=\mathrm{1, 2}, \cdots , {n}^{\mathrm{*}} $,定义$ {R}_{i} $为满足$ k\ne i $而使得$ {\rho }^{\mathrm{*}}\left(i\right)={\rho }^{\mathrm{*}}\left(k\right) $的所有$ k $的集合。挑战密文中的$ ({C}_{i}, {D}_{i}) $生成:

$ {C}_{i}={h}_{{\rho }^{\mathrm{*}}\left(i\right)}^{{r}_{i}^{\text{'}}}\left(\prod\limits_{j=2}^{{n}^{\mathrm{*}}}({g}^{a}{)}^{{M}_{i, j}^{\mathrm{*}}{y}_{j}^{\text{'}}}\right){\left({g}^{{b}_{i}\cdot s}\right)}^{-{z}_{{\rho }^{\mathrm{*}}\left(i\right)}}\cdot \\ \;\;\;\;\;\;\;\left(\prod\limits_{k\in {R}_{i}}\prod\limits_{j=1}^{n\mathrm{*}}{\left({g}^{{a}^{j}\cdot s\cdot ({b}_{i}/{b}_{k})}\right)}^{{M}_{k, j}^{\mathrm{*}}}\right) , {D}_{i}={g}^{{r}_{i}^{\text{'}}}{g}^{-s{b}_{i}}$

阶段2  与阶段1类似。

猜测  $ \mathrm{{\rm A}} $输出对$ \beta $的猜测$ {\beta }^{\text{'}} $。如果$ {\beta }^{\text{'}}=\beta $,则$ \mathrm{{\rm B}} $输出$ {\mu }^{\text{'}}=0 $,表示$ Z=e{(g, g)}^{{a}^{q+1}s} $,否则$ Z $为群$ {G}_{1} $中的随机元素。

$ \mu =1 $时,$ \mathrm{{\rm A}} $没有获得B的任何信息,因此$ \mathrm{P}\mathrm{r}[{\beta }^{\text{'}}\ne \beta |\mu =1]=\frac{1}{2} $,而当$ {\beta }^{\text{'}}\ne \beta $时,B猜测$ {\mu }^{\text{'}}=1 $,所以$ \mathrm{P}\mathrm{r}[{\mu }^{\text{'}}=\mu |\mu =1]=\frac{1}{2} $。当$ \mu =0 $时,$ \mathrm{{\rm A}} $看到$ {M}_{\beta } $的密文,由于$ \mathrm{{\rm A}} $的优势是$ \varepsilon $$ \mathrm{P}\mathrm{r}[{\beta }^{\text{'}}=\beta |\mu =0]=\frac{1}{2}+\varepsilon $,而当$ {\beta }^{\text{'}}=\beta $时,B猜测$ {\mu }^{\text{'}}=0 $,因此$ \mathrm{P}\mathrm{r}[{\mu }^{\text{'}}=\mu |\mu =0]=\frac{1}{2}+\varepsilon $

综上,B的优势为$ \frac{1}{2}\mathrm{P}\mathrm{r}[{\mu }^{\text{'}}=\mu |\mu =0]-\frac{1}{2}\mathrm{P}\mathrm{r}[{\mu }^{\text{'}}=\mu |\mu =1]=\frac{1}{2}\left(\frac{1}{2}+\varepsilon \right)-\frac{1}{2}\times \frac{1}{2}=\frac{\varepsilon }{2} $。证毕。

4 性能分析

表 2是文献[9, 15-16]方案与本文方案的特征比较分析。通过比较可以发现,本文最大的优势在于使用加权属性简化访问结构,从而减少系统的计算开销。

下载CSV 表 2 相关方案特征比较 Table 2 Comparison of characteristics of relevant schemes

表 3为方案计算开销比较。令$ {E}_{1} $$ {E}_{2} $分别是群$ G $$ {G}_{T} $上的指数运算,$ P $表示双线性运算的次数,|M|表示满足访问结构的属性个数,|S|表示用户属性个数,|AAA|表示加密时授权机构的个数,|I|表示满足访问结构属性个数。

下载CSV 表 3 相关方案计算开销比较 Table 3 Calculation of cost comparison of relevant schemes

为了更直观地说明本文方案的优势,对本文方案与现有方案进行比较。实验环境为Intel® CoreTMi5-8250UCPU@1.60 GHz,1.80 GHz处理器,8.00 GRAM的个人笔记本电脑,使用语言为Java,算法实现基于JPBC(Java Pairing-Based Cryptography Library)。

图 2所示是随着访问结构属性个数的变化数据拥有者在加密密文时所消耗的时间,本文方案因为引入权重属性,简化了访问结构,所以其加密阶段的计算开销小于文献[15-16]方案。图 3所示是在解密阶段用户属性满足密文中包含的属性个数变化时终端用户所消耗的时间。在用户解密阶段,本文方案将部分解密运算外包给了雾节点,而文献[15-16]方案解密运算由用户独立完成,因此本文方案用户的计算开销远远小于[15-16]方案。图 4所示是随着用户属性的变化,多个授权机构为用户生成密钥所消耗的时间,多授权机构分担不同的属性的密钥工作,避免了单一机构密钥分发单点失效的问题。通过本文方案与文献[15-16]方案的加解密以及密钥生成的计算开销对比可以发现,因为本文引入权重属性,并将部分解密外包给了雾节点,所以本文方案在加密和用户解密时的计算开销优于文献[15-16]方案。

Download:
图 2 数据拥有者的计算开销 Fig. 2 Computational overhead of data owner
Download:
图 3 终端用户的计算开销 Fig. 3 Computing overhead of end user
Download:
图 4 密钥生成的计算开销 Fig. 4 Computational overhead of key generation
5 结束语

本文提出一种基于雾节点的权重属性CP-ABE方案。利用分布式授权解决单授权机构单点失效的问题,引入权重属性简化访问结构,并且通过雾节点进行部分解密,减少了终端用户的计算开销。基于判定性$ q\mathrm{⁃}\mathrm{p}\mathrm{a}\mathrm{r}\mathrm{a}\mathrm{l}\mathrm{l}\mathrm{e}\mathrm{l}\mathrm{ }\mathrm{B}\mathrm{D}\mathrm{H}\mathrm{E} $问题,在随机预言机模型下证明了本文方案的安全性。实验结果表明,该方案在加解密以及密钥生成部分具有更小的计算开销。下一步将考虑在标准模型下设计属性加密方案,以实现更加安全高效的基于雾节点的分布式属性基加密方案。

参考文献
[1]
BONOMI F, MILITO R, ZHU J, et al. Fog computing and its role in the Internet of Things[C]//Proceedings of MCC'12. New York, USA: ACM Press, 2012: 13-16.
[2]
OKAMOTO T, TAKASHIMA K. Decentralized attribute-based encryption and signatures[J]. ICE Transactions on Fundamentals of Electronics Communications and Computer Sciences, 2020, 103(1): 41-73.
[3]
MAHESWARI U S, VASANTHANAYAKI C. Secure medical health care content protection system with watermark detection for multi cloud computing environment[J]. Multimedia Tools and Applications, 2020, 79(5): 4075-4097. DOI:10.1007/s11042-019-7724-z
[4]
SAHAI A, WATERS B. Fuzzy identity-based encryption[C]//Proceedings of the 24th Annual International Conference on Theory and Applications of Cryptographic Techniques. Berlin, Germany: Springer, 2005: 457-473.
[5]
POURNAGHI S M, BAYAT M, FARJAMI Y. MedSBA: a novel and secure scheme to share medical data based on blockchain technology and attribute-based encryption[J]. Journal of Ambient Intelligence and Humanized Computing, 2020, 11(11): 4613-4641. DOI:10.1007/s12652-020-01710-y
[6]
GOYAL V, PANDEY O, SAHAI A, et al. Attribute-based encryption for fine-grained access control of encrypted data[C]//Proceedings of the 13th ACM Conference on Computer and Communications Security. New York, USA: ACM Press, 2006: 89-98.
[7]
BETHENCOURT J, SAHAI A, WATERS B. Ciphertext-policy attribute-based encryption[C]//Proceedings of the 28th IEEE Conference on Security and Privacy. Washington D.C., USA: IEEE Press, 2007: 321-334.
[8]
FAN Chuni, HUANG Siming, RUAN Heming. Arbitrary-state attribute-based encryption with dynamic membership[J]. IEEE Transactions on Computers, 2014, 63(8): 1951-1961. DOI:10.1109/TC.2013.83
[9]
YAN Xincheng, CHEN Yue, BA Yang, et al. Updatable attribute encryption scheme supporting dynamic changes of user permissions[J]. Computer Research and Development, 2020, 57(5): 1057-1069. (in Chinese)
严新成, 陈越, 巴阳, 等. 支持用户权限动态变更的可更新属性加密方案[J]. 计算机研究与发展, 2020, 57(5): 1057-1069.
[10]
HUANG Fengming, TU Shanshan, MENG Yuan. Attribute-based encryption scheme supporting outsourcing and revocation in fog computing[J]. Computer Engineering, 2020, 46(5): 34-40. (in Chinese)
黄凤鸣, 涂山山, 孟远. 雾计算中支持外包与撤销的属性基加密方案[J]. 计算机工程, 2020, 46(5): 34-40.
[11]
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
[12]
LI Jin, ZHANG Yinghui, CHEN Xiaofeng, et al. Secure attribute-based data sharing for resource-limited users in cloud computing[J]. Computers & Security, 2018(72): 1-12.
[13]
ZHOU Jun, CAO Zhenfu, DONG Xiaolei, et al. Security and privacy for cloud-based IoT: challenges[J]. IEEE Communications Magazine, 2017, 55(1): 26-33. DOI:10.1109/MCOM.2017.1600363CM
[14]
CHASE M. Multi-authority attribute based encryption[M]. Berlin, Germany: Springer, 2007.
[15]
ZHENG Lianghan, HE Heng, TONG Qian, et al. A multi-authorization organization access control scheme in cloud environment[J]. Computer Science and Exploration, 2020, 14(11): 1865-1878. (in Chinese)
郑良汉, 何亨, 童潜, 等. 云环境中的多授权机构访问控制方案[J]. 计算机科学与探索, 2020, 14(11): 1865-1878. DOI:10.3778/j.issn.1673-9418.1911020
[16]
LI Qi, ZHU Hongbo, XIONG Jinbo, et al. An attribute-based access control scheme for traceable multi-authorization agencies in mHealth[J]. Journal on Communications, 2018, 39(6): 1-10. (in Chinese)
李琦, 朱洪波, 熊金波, 等. mHealth中可追踪多授权机构基于属性的访问控制方案[J]. 通信学报, 2018, 39(6): 1-10. DOI:10.3969/j.issn.1001-2400.2018.06.001
[17]
LIU Z, JIANG Z L, WANG X, et al. Practical attribute-based encryption: outsourcing decryption, attribute revocation and policy updating[J]. Journal of Network and Computer Applications, 2018, 108: 112-123. DOI:10.1016/j.jnca.2018.01.016
[18]
FAN Kai, LIU Tingting, ZHANG Kuan, et al. A secure and efficient outsourced computation on data sharing scheme for privacy computing[J]. Journal of Parallel and Distributed Computing, 2020, 135: 169-176. DOI:10.1016/j.jpdc.2019.09.008
[19]
XU Qian, TAN Chengxiang, FAN Zhijie, et al. Secure data access control for fog computing based on multi-authority attribute-based sign cryption with computation outsourcing and attribute revocation[J]. Sensors, 2018, 18(5): 1609-1646. DOI:10.3390/s18051609
[20]
PENG Hongyan, LING Jiao, QIN Shaohua, et al. Attribute-based encryption scheme for edge computing[J]. Computer Engineering, 2021, 47(1): 37-43. (in Chinese)
彭红艳, 凌娇, 覃少华, 等. 面向边缘计算的属性加密方案[J]. 计算机工程, 2021, 47(1): 37-43.