基于云边协同的可撤销的访问控制方法
未命名
08-07
阅读:91
评论:0
1.本发明涉及一种云数据安全访问的方法,具体地说是一种基于云边协同的可撤销的访问控制方法。
背景技术:
2.cn115484095a公开了一种云边协同环境下基于区块链的细粒度访问控制方法,其具体方式是,权威中心生成初始部分密钥分别发送到用户和边缘服务器,生成对称密钥发送至边缘节点;用户使用部分密钥生成搜索陷门发送给相对应的边缘服务器,利用门限秘密共享技术在共识网络中恢复秘密值,生成满足访问策略的最终私钥,由此保护了私钥的安全性。该专利利用边缘服务器进行加解密数据和搜索匹配操作,降低了用户的计算开销。
3.cn115396093a公开了一种边缘计算中可撤销与策略更新的属性加密方法,该方法采用椭圆曲线代替双线性配对操作,避免了双线性带来的计算开销;通过给定用户唯一标识符生成更新密钥,实现了策略更新,利用不同属性授权机构产生公、私钥的方式,将标识符与特征属性绑定,使得不同用户或不同属性上的访问控制具有动态性。
4.近年来,随着边缘计算的快速崛起,越来越多的方案采取将一部分计算任务放在边缘节点进行的方法,以便满足人们对低延时服务的要求,但目前还没有一种能在端-边-云这种模型下运行的安全高效的访问控制方式,因而难以满足用户对低延时服务的要求,并且还存在有单点故障、数据隐私泄露等不安全问题。
技术实现要素:
5.本发明的目的就是提供一种基于云边协同的可撤销的访问控制方法,以解决现有访问控制方法中存在的数据不安全和访问控制效率低的问题。
6.本发明的目的是这样实现的:
7.一种基于云边协同的可撤销的访问控制方法,包括以下步骤:
8.s1、系统初始化:区块链执行系统设置,并生成全局参数gp;数据拥有者进行设置,生成数据拥有者的公钥dpk和主密钥dmk;边缘节点执行设置算法,输出边缘节点的公钥epk和主密钥emk。
9.s2、密钥生成:由数据拥有者的密钥与边缘节点的密钥组成用户解密密钥sk。
10.s3、数据加密:数据拥有者首先根据访问策略w和明文信息m执行数据的部分加密,生成部分密文ct
′
,然后边缘节点对部分密文ct
′
进行二次加密,得到最终密文ct。
11.s4、密钥合法性检查:当用户请求访问数据时,区块链对用户解密密钥sk进行密钥合法性检查,如果通过检查,则输出1,并且该用户能够继续对数据访问;如果通不过检查,则输出0,且禁止该用户访问数据,并将该用户的id添加到撤销列表,对该用户进行撤销操作。
12.s5、密文解密:边缘节点对最终密文ct进行半解密,得到半解密密文ct1;用户对该半解密密文ct1进行最终解密,得到正确的明文信息m。
13.s6、密文更新:在执行撤销操作后,利用更新后的撤销列表和密钥,对最终密文ct进行更新,并将更新后的最终密文ct存储在云中。
14.进一步地,本发明步骤s1的具体方式包括以下分步骤:
15.s1-1、对系统数据进行初始化,根据安全参数k生成阶数为大素数p的线性乘法循环群(g1、g2);设定g为线性乘法循环群g1的生成元,映射操作e:g1×
g1→
g2;定义两个哈希函数(h、h1):h:{0,1}
*
→
g1,其中,为一个非零元的域;区块链生成全局参数gp;
16.s1-2、数据拥有者初始化,输入全局参数gp和属性全集a={1,2,......,n};其中,n为属性全集中的属性数量;t是二叉树,树中的每个叶节点对应一个用户u,树的深度为d;选择随机数α,a∈z
p
,数据拥有者从{0,1}中选择密钥为的对称概率加密方案(enc,dec)到域得到数据拥有者的密钥其中,α,a为随机数,为对称加密密钥;
17.s1-3、对于每个属性x∈a(1≤x≤|u|),边缘节点选择一个随机数w
x
∈z
p
作为私钥,计算:并将其作为公钥;其中,x为属性全集中的一个属性;
18.则边缘节点的公钥epk={w
x
|1≤x≤|u|},边缘节点的主密钥emk={w
x
|1≤x≤|u|};公布边缘节点的公钥epk,而边缘节点的主密钥emk保密。
19.进一步地,本发明步骤s2的具体方式包括以下分步骤:
20.s2-1、设置与用户属性集相对应的部分密钥:
[0021][0022]
其中,k
′
、k、l、l
′
、k
x
均为密钥参数,a、r、t是随机数;
[0023]
s2-2、令path(id)={i0,i1,...,id},其中,id是与用户u相关联的叶子节点的值,随机选取b∈z
p
,
[0024]
并计算转换密钥tk和个人密钥uk:
[0025]
tk=(k
′
,k,l,l
′
,{k
x
}
x∈s
,d,e,{xi}
i∈path(id)
);
[0026]
其中,d和e均为中间参数;
[0027]
uk=z;
[0028]
其中,z为随机数;
[0029]
s2-3、构成完整的用户解密密钥sk:
[0030]
sk=(tk,uk)。
[0031]
进一步地,本发明步骤s3的具体方式包括以下分步骤:
[0032]
s3-1、数据拥有者输入全局参数gp、明文信息m和访问策略(m,ρ);
[0033]
数据拥有者随机选择列向量:v=s,v2,v3,
…
,vn∈z
p
,得到部分密文ct
′
:
[0034][0035]
其中,c、c0、c1均为密文参数,ρ(i)为属性数,a和s均为随机数;
[0036]
s3-2、对于i∈[1,l],边缘节点随机选择ki∈z
p
,然后对部分密文ct
′
进行重加密,从而获得最终密文ct:
[0037][0038]
其中,c、c0、c1均为密文参数,ρ(i)为属性数,a和s均为随机数。
[0039]
进一步地,本发明步骤s4的具体方式包括以下分步骤:
[0040]
s4-1当物联网中的用户想要访问数据时,先向区块链发送一个访问请求,当区块链收到用户的访问请求时,首先授权合约判断其是否在撤销列表中,若不在则对密钥sk进行检查;若用户密钥sk符合以下检测:
[0041]k′
∈z
p
,k,l,l
′
,k
x
,d,e∈g
[0042]
e(g,l
′
)=e(ga,l)≠1
[0043][0044]
则判定用户通过密钥合法性检查,算法输出1;否则,判定该用户为恶意用户,算法终止;
[0045]
在上述三个检测关系式中,k
′
、k、l、l
′
、k
x
均为密钥参数,d、e为中间参数,e为双线性映射,g是线性乘法循环群g1、g2的生成元,a
x
为属性全集中的第x个属性。
[0046]
s4-2区块链中的撤销合约通过维护一个撤销列表来处理系统中的异常行为,使用密钥中的密钥参数k
′
在撤销列表中寻找恶意用户;如果输出了该用户u的叶子节点的值id,即认定其为要寻找的恶意用户,并将其添加到撤销列表中,以禁止其继续访问数据;如果输出为则表示其不为恶意用户,该用户能够继续对数据进行访问。
[0047]
进一步地,本发明步骤s5的具体方式包括以下分步骤:
[0048]
s5-1、边缘节点接收到来自云服务提供商的密文,执行部分解密:
[0049]
s5-1-1计算节点j=cover(r)∩path(u);令path(j)={i0,i1,
…
,i
dept(j)
,
…
,id},其中,i
dept(j)
=j,得
[0050]
其中,j为二叉树中的节点,cover(r)为撤销列表,path(u)为用户u的路径,path(j)为节点j的路径,id是与用户u相关联的叶子节点的值,为id的路径值;
[0051]
s5-1-2令存在{ci|i∈i},使得{cimi=(1
,
0,
…
,0)},因此有
[0052]
其中,i表示一个矩阵,i为矩阵i的行数,ρ(i)为属性数,ci为系数;
[0053]
s5-1-3按照下述公式计算密文参数k1、密文参数k
′1、密文参数k
″1以及半解密密文ct1:
[0054][0055]
其中,k、c0、c1均为密文参数,g是线性乘法循环群g1、g2的生成元,a、r、t、z均是随机数;
[0056]
[0057][0058]
其中,d、e表示中间参数,为id的路径值;
[0059][0060]
s5-2、用户根据个人密钥uk,对其进行解密得到明文信息m:
[0061][0062]
其中,c为密文参数,z为随机数。
[0063]
进一步地,本发明步骤s6中的最终密文ct的更新方式为:
[0064]
cover(r
′
)是与最新撤销列表相关的最小覆盖子集;j
′
∈cover(r),则有以下两种情况:
[0065]
a、如果存在j∈cover(r),j=j
′
,则令tj′
=tj;
[0066]
b、如果存在j∈cover(r),j是j
′
的祖先节点,则假设path(j
′
)=path(j)∪{i
dept(j)+1
,
…
,i
ddept(j
′
)
},其中,i
dept(j)
=j,i
dept(j
′
)
=j
′
,计算:
[0067][0068]
更新后的最终密文ct为:
[0069]
ct=《(m,ρ),c,c0,c1,{c
i,1
,c
i,2
,c
i,3
}
i∈[1,l]
,{tj′
}j′
∈cover(r
′
)
》。
[0070]
本发明是针对基于密文策略的属性基加密在物联网环境下面临昂贵的计算开销、单点故障和隐私泄露等问题,提出一种基于云边协同的可撤销的访问控制方法,首先设计端-边-云模型,然后采用密文策略属性基加密和区块链技术。
[0071]
本发明首先基于端-边-云模型,结合区块链架构,实现细粒度的、灵活的数据安全共享访问控制,部分加解密操作外包到边缘节点以提高物联网的效率;利用区块链网络的去中心化和不可篡改存储公共信息,并利用智能合约在用户解密密文之前对密钥进行合法性检查来保证隐私和安全性,实现用户撤销;最终通过敌手模拟游戏证明方案满足数据安全访问控制目标。
[0072]
本发明通过设计端-边-云模型,采用密文策略属性基加密和区块链技术,实现细粒度的访问控制;为了避免单个属性管理机构造成单点故障问题,将区块链的存储与计算能力融入其中,从而使得访问历史具有可追溯性和可验证性,形成属性管理信任机制;为防止恶意用户泄露解密密钥,采用智能合约对解密密钥的正确性进行检测,并且将解密密钥与用户身份绑定,在解密密钥泄露的情况下,用户的身份可以从解密密钥中暴露出来,从而识别出恶意用户并对其撤销。通过安全性分析和实验对比,验证了本发明的安全性与可行性,在保护数据隐私的同时实现了细粒度的访问控制。
附图说明
[0073]
图1是本发明的系统模型图。
[0074]
图2是本发明的算法流程图。
[0075]
图3是密钥生成时间对比图。
[0076]
图4是加密时间对比图。
[0077]
图5是解密时间对比图。
具体实施方式
[0078]
下面结合附图对本发明作进一步详述。
[0079]
如图1所示,本发明的系统模型构成包括有用户(user)、数据拥有者(do,data owner)、区块链(blockchain)、边缘节点(en,edge node)和云服务提供商(csp,cloud service provider)。在这个系统模型中,用户可访问物联网中的加密数据,只有不在撤销列表且通过解密密钥合法性检查的属性满足访问策略的用户才能根据解密算法使用密钥正确解密,获得明文。数据拥有者需要将数据外包到云上存储的物联网设备。数据拥有者还设置基于属性的访问策略,并根据这些策略对消息进行加密。区块链具有维护透明和防篡改的结构,执行属性管理机构管理用户属性的职责,并存储全局参数与撤销列表相关的信息。区块链使用授权合约与撤销合约,确保访问控制和撤销功能正确安全执行。边缘节点为不完全可信的实体,靠近物联网设备和数据用户,参与外包加密和解密任务的部分过程。云服务提供商为半可信实体,存储物联网设备上传的加密文件,提供数据存储和其它授权的服务,在执行过程中有可能窥探信息。
[0080]
如图2所示,本发明访问控制方法(算法)包括以下步骤:
[0081]
s1、系统初始化(setup):区块链执行系统设置,并生成全局参数gp;数据拥有者进行设置,生成数据拥有者的公钥dpk和主密钥dmk;边缘节点执行设置算法,输出边缘节点的公钥epk和主密钥emk;具体包括以下分步骤:
[0082]
s1-1、对系统数据进行初始化,根据安全参数k生成阶数为大素数p的线性乘法循环群(g1、g2);设定g为线性乘法循环群g1的生成元,映射操作e:g1×
g1→
g2;定义两个哈希函数(h、h1):h:{0,1}
*
→
g1,其中,为一个非零元的域;区块链生成全局参数gp。
[0083]
s1-2、数据拥有者初始化,输入全局参数gp和属性全集a={1,2,......,n};其中,n为属性全集中的属性数量;t是二叉树,树中的每个叶节点对应一个用户u,树的深度为d;选择随机数α,a∈z
p
,数据拥有者从{0,1}中选择密钥为的对称概率加密方案(enc,dec)到域得到数据拥有者的密钥其中,α,a为随机数,为对称加密密钥;
[0084]
s1-3、对于每个属性x∈a(1≤x≤|u|),边缘节点选择一个随机数w
x
∈z
p
作为私钥,计算:并将其作为公钥;其中,x为属性全集中的一个属性;
[0085]
则边缘节点的公钥epk={w
x
|1≤x≤|u|},边缘节点的主密钥emk={w
x
|1≤x≤|u|};
[0086]
公布边缘节点的公钥epk,而边缘节点的主密钥emk予以保密。
[0087]
s2、私钥生成(key generation):由数据拥有者的密钥与边缘节点的密钥组成用户解密密钥sk,具体包括以下分步骤:
[0088]
s2-1、设置与用户属性集相对应的部分密钥:
[0089]
[0090]
其中,k
′
、k、l、l
′
、k
x
均为密钥参数,a、r、t是随机数。
[0091]
s2-2、令path(id)={i0,i1,...,id},其中,id是与用户u相关联的叶子节点的值,随机选取b∈z
p
,
[0092]
并计算转换密钥tk和个人密钥uk:
[0093]
tk=(k
′
,k,l,l
′
,{k
x
}
x∈s
,d,e,{xi}
i∈path(id)
);
[0094]
其中,d和e均为中间参数;
[0095]
uk=z;
[0096]
其中,z为随机数。
[0097]
s2-3、构成完整的用户解密密钥sk:
[0098]
sk=(tk,uk)。
[0099]
s3、数据加密(encryption):数据拥有者首先根据访问策略w和明文信息m执行数据的部分加密,生成部分密文ct
′
,然后边缘节点对部分密文ct
′
进行二次加密,得到最终密文ct。具体包括以下分步骤:
[0100]
s3-1、数据拥有者输入全局参数gp、明文信息m和访问策略(m,ρ);
[0101]
数据拥有者随机选择列向量:v=s,v2,v3,...,vn∈z
p
,得到部分密文ct
′
:
[0102][0103]
其中,c、c0、c1均为密文参数,ρ(i)为属性数,a和s均为随机数。
[0104]
s3-2、对于i∈[1,l],边缘节点随机选择ki∈z
p
,然后对部分密文ct
′
进行重加密,从而获得最终密文ct:
[0105][0106]
其中,c、c0、c1均为密文参数,ρ(i)为属性数,a和s均为随机数。
[0107]
s4、密钥合法性检查(key validity detection):当当用户请求访问数据时,区块链对用户解密密钥sk进行密钥合法性检查,如果通过检查,则输出1,并且该用户能够继续对数据访问;如果通不过检查,则输出0,且禁止该用户访问数据,并将该用户的id添加到撤销列表,对该用户进行撤销操作。具体方式包括以下分步骤:
[0108]
s4-1当物联网中的用户想要访问数据时,先向区块链发送一个访问请求,当区块链收到用户的访问请求时,首先授权合约判断其是否在撤销列表中,若不在则对密钥sk进行检查;若用户密钥sk符合以下检测:
[0109]k′
∈z
p
,k,l,l
′
,k
x
,d,e∈g
[0110]
e(g,l
′
)=e(ga,l)≠1
[0111][0112]
则判定用户通过密钥合法性检查,算法输出1;否则,判定该用户为恶意用户,算法终止;
[0113]
在上述三个检测关系式中,k
′
、k、l、l
′
、k
x
均为密钥参数,d、e为中间参数,e为双线性映射,g是线性乘法循环群g1、g2的生成元,a
x
为属性全集中的第x个属性。
[0114]
s4-2区块链中的撤销合约通过维护一个撤销列表来处理系统中的异常行为,使用密钥中的密钥参数k
′
在撤销列表中寻找恶意用户;如果输出了该用户u的叶子节点的值id,
即认定其为要寻找的恶意用户,并将其添加到撤销列表中,以禁止其继续访问数据;如果输出为则表示其不为恶意用户,该用户能够继续对数据进行访问。
[0115]
授权合约就可以根据地址的键值来判断是否可以继续访问信息,具体如下:
[0116][0117]
s5、密文解密:边缘节点对最终密文ct进行半解密,得到半解密密文ct1;用户对该半解密密文ct1进行最终解密,得到正确的明文信息m。具体方式包括以下分步骤:
[0118]
s5-1、边缘节点接收到来自云服务提供商的密文,执行部分解密:
[0119]
s5-1-1计算节点j=cover(r)∩path(u);令path(j)={i0,i1,...,i
dept(j)
,...,id},其中,i
dept(j)
=j,得
[0120]
其中,j为二叉树中的节点,cover(r)为撤销列表,path(u)为用户u的路径,path(j)为节点j的路径,id是与用户u相关联的叶子节点的值,为id的路径值。
[0121]
s5-1-2令存在{ci|i∈i},使得{cimi=(1,0,...,0)},因此有
[0122]
其中,i表示一个矩阵,i为矩阵i的行数,ρ(i)为属性数,ci为系数;
[0123]
s5-1-3按照下述公式计算密文参数k1、密文参数k
′1、密文参数k
″1以及半解密密文ct1:
[0124][0125]
其中,k、c0、c1均为密文参数,g是线性乘法循环群g1、g2的生成元,a、r、t、z均是随机数;
[0126][0127][0128]
其中,d、e表示中间参数,为id的路径值;
[0129][0130]
s5-2、用户根据个人密钥uk,对其进行解密得到明文信息m:
[0131][0132]
其中,c为密文参数,z为随机数。
[0133]
s6、密文更新(update):在执行撤销操作后,利用更新后的撤销列表和密钥,对最终密文ct进行更新,并将更新后的最终密文ct存储在云中,其中的最终密文ct的更新方式
为:
[0134]
cover(r
′
)是与最新撤销列表相关的最小覆盖子集。j
′
∈cover(r),则有以下两种情况:
[0135]
a、如果存在j∈cover(r),j=j
′
,则令tj′
=tj。
[0136]
b、如果存在j∈cover(r),j是j
′
的祖先节点,则假设path(j
′
)=path(j)∪{i
dept(j)+1
,...,i
ddept(j
′
)
},其中i
dept(j)
=j,i
dept(j
′
)
=j
′
,计算:
[0137][0138]
所以,更新后的密文为:
[0139]
ct=《(m,ρ),c,c0,c1,{c
i,1
,c
i,2
,c
i,3
}
i∈[1,l]
,{tj′
}j′
∈cover(r
′
)
》。
[0140]
本发明关于数据保护的分析:访问策略提供了各级别的访问权限,实现细粒度的访问控制机制。即使用户与其他用户发生冲突,也会根据定义的访问策略限制云数据访问。所提出的架构可以确保数据免受未经授权用户的影响,因为它只允许用户在具有足够属性的情况下解密数据。如果用户被撤销出系统,则他无法访问数据,本发明使用即时属性撤销过程实现了这一点。另一种攻击可能性来自云服务器或边缘节点服务器,他们有可能为了牟利而分享信息。在本发明中,用户注册时,用户密钥由用户个人密钥uk和用户转换密钥tk两部分构成,单一密钥无法实现数据解密,因此实现了数据保护。
[0141]
共谋攻击安全性:本发明提出的架构避免了碰撞攻击,这是abe算法的主要安全需求。如果多个用户相互协作,那么他们可以通过链接属性来解密密文。因此,为了避免此类攻击,边缘节点服务器和云服务器不能与被撤销用户进行任何程度的配合,此外,用户使用唯一的随机值来生成密钥,对于共谋攻击,攻击者在获得用户的随机值之前无法执行解密过程。
[0142]
后向和前向安全:后向安全意味着如果新用户加入,他无法访问之前的数据。前向安全即限制被撤销的用户对将外包到云的数据进行访问,除非用户满足对其它有效属性的访问策略。所提出的方案通过使用即时用户撤销过程来实现后向和前向安全。如果用户放弃或更新组中的属性,则重新加密过程将使用新的密钥进行部署,然后,生成的密钥将与所有相关用户共享。
[0143]
关于本发明的性能分析:本实验的运行环境为笔记本电脑,inter core i5 cpu,和16g ddr3 ram,系统为ubuntu18.06。编程使用python3语言和pypbc(python pairing-based crypto library)函数库。以太坊区块链中的智能合约使用的是solidity语言进行编写,采用python接口进行调用。哈希函数使用的是sha-256,对称加密算法使用的是aes-cbc,密钥为128位。实验中所有结果均为20次结果的平均值。
[0144]
表1将本发明与其它方案在是否外包加密、是否外包解密、是否能进行用户撤销、是否实现了隐私保护、有无可信机构等方面进行功能比较。
[0145]
表1.不同方案的功能比较
[0146][0147]
其中,rabaninejad et al.方案提出了对云存储中的数据进行基于属性的公共审计,使用唯一的公钥验证完整性,不泄露任何身份信息,通过代理重签名实现了撤销,但数据拥有者进行全部的加解密操作导致计算开销偏大。raj et al.方案引入受信任的第三方加密服务器生成加密数据的密钥,执行加密和解密功能,并实现了用户撤销,但不能抵御实体机间的共谋攻击。ziegler et al.方案实现了对恶意用户的追溯和撤销,并且保护了数据隐私,但存在单点故障问题。he et al.方案利用协同解密减少开销,构建多重授权模型解决密钥管理问题,但引入了私有链并不能增加体系结构的安全性。只有本发明通过以太坊区块链构造了可信环境,实现对恶意用户的可追溯性和立即撤销,并且本发明支持边缘计算,提高了响应速度。
[0148]
(1)gas消耗量评估:表2所示为本发明执行区块链操作消耗的gas量。通常正常范围内gas的消耗量在几万到几十万之间。从表2中可得出结论,本发明区块链消耗gas消的量较小,属于正常范围之内。
[0149]
表2.不同区块链操作gas的消耗量
[0150][0151]
(2)访问控制效率评估:选取同样采用密文策略属性基加密方法的ziegler et al.和he et al.方案进行访问控制效率的评估,他们在密钥生成、加密、解密方面的计算开销比较如表3所示。
[0152]
表3.计算开销比较
[0153][0154]
密钥生成的时间比较如图3所示。其中,ziegler et al.方案利用bls短签名实现多个授权中心分发密钥,所以效率较高。本发明为了保证用户隐私数据的安全性,用户密钥由两部分组成,相对开销较高。
[0155]
图4比较了几种方案数据拥有者加密消息所用的时间。从图中可以看出,本发明的
效率明显高于其它两个方案,虽然ziegler et al.方案使用了专用代理执行部分计算成本高昂的操作,但其开销仍然高于本发明。he et al.方案利用lsss访问结构提高了效率。因为物联网设备是资源受限的设备,为了保持其更好的性能需使它执行更低的计算,故本发明将加密操作分为两部分,用户端只需执行轻量级的部分。
[0156]
解密时间如图5所示,ziegler et al.方案开销较高,he et al.方案和本发明开销都比较小,没有随着属性数量的增加而大幅增长,基本保持恒定。he et al.方案通过组内私有链传递消息完成协作解密。本发明通过将复杂的解密操作部分外包到边缘节点执行。
技术特征:
1.一种基于云边协同的可撤销的访问控制方法,其特征是,包括以下步骤:s1、系统初始化:区块链执行系统设置,并生成全局参数gp;数据拥有者进行设置,生成数据拥有者的公钥dpk和主密钥dmk;边缘节点执行设置算法,输出边缘节点的公钥epk和主密钥emk;s2、密钥生成:由数据拥有者的密钥与边缘节点的密钥组成用户解密密钥sk;s3、数据加密:数据拥有者首先根据访问策略w和明文信息m执行数据的部分加密,生成部分密文ct
′
,然后边缘节点对部分密文ct
′
进行二次加密,得到最终密文ct;s4、密钥合法性检查:当用户请求访问数据时,区块链对用户解密密钥sk进行密钥合法性检查,如果通过检查,则输出1,并且该用户能够继续对数据访问;如果通不过检查,则输出0,且禁止该用户访问数据,并将该用户的id添加到撤销列表,对该用户进行撤销操作;s5、数据解密:边缘节点对最终密文ct进行半解密,得到半解密密文ct1;用户对该半解密密文ct1进行最终解密,得到正确的明文信息m;s6、密文更新:在执行撤销操作后,利用更新后的撤销列表和密钥,对最终密文ct进行更新,并将更新后的最终密文ct存储在云中。2.根据权利要求1所述的基于云边协同的可撤销的访问控制方法,其特征是,步骤s1的具体方式包括以下分步骤:s1-1、对系统数据进行初始化,根据安全参数k生成阶数为大素数p的线性乘法循环群(g1、g2);设定g为线性乘法循环群g1的生成元,映射操作e:g1×
g1→
g2;定义两个哈希函数(h、h1):h:{0,1}
*
→
g1,h1:其中,为一个非零元的域;区块链生成全局参数gp;s1-2、数据拥有者初始化,输入全局参数gp和属性全集a={1,2,......,n};其中,n为属性全集中的属性数量;t是二叉树,树中的每个叶节点对应一个用户u,树的深度为d;选择随机数α,a∈z
p
,数据拥有者从{0,1}中选择密钥为的对称概率加密方案到域得到数据拥有者的密钥其中,α,a为随机数,为对称加密密钥;s1-3、对于每个属性x∈a(1≤x≤|u|),边缘节点选择一个随机数w
x
∈z
p
作为私钥,计算:并将其作为公钥;其中,x为属性全集中的一个属性;则边缘节点的公钥epk={w
x
|1≤x≤|u|},边缘节点的主密钥emk={w
x
|1≤x≤|u|};公布边缘节点的公钥epk,而边缘节点的主密钥emk保密。3.根据权利要求1所述的基于云边协同的可撤销的访问控制方法,其特征是,步骤s2的具体方式包括以下分步骤:s2-1、设置与用户属性集相对应的部分密钥:其中,k
′
、k、l、l
′
、k
x
均为密钥参数,a、r、t是随机数;s2-2、令path(id)={i0,i1,...,i
d
},其中,i
d
是与用户u相关联的叶子节点的值,随机选取b∈z
p
,并计算转换密钥tk和个人密钥uk:tk=(k
′
,k,l,l
′
,{k
x
}
x∈s
,d,e,{x
i
}
i∈path(id)
);其中,d和e均为中间参数;
uk=z;其中,z为随机数;s2-3、构成完整的用户解密密钥sk:sk=(tk,uk)。4.根据权利要求1所述的基于云边协同的可撤销的访问控制方法,其特征是,步骤s3的具体方式包括以下分步骤:s3-1、数据拥有者输入全局参数gp、明文信息m和访问策略(m,ρ);数据拥有者随机选择列向量:v=s,v2,v3,...,v
n
∈z
p
,得到部分密文ct
′
:其中,c、c0、c1均为密文参数,ρ(i)为属性数,a和s均为随机数;s3-2、对于i∈[1,l],边缘节点随机选择k
i
∈z
p
,然后对部分密文ct
′
进行重加密,从而获得最终密文ct:其中,c、c0、c1均为密文参数,ρ(i)为属性数,a和s均为随机数。5.根据权利要求1所述的基于云边协同的可撤销的访问控制方法,其特征是,步骤s4的具体方式包括以下分步骤:s4-1当物联网中的用户想要访问数据时,首先向区块链发送一个访问请求,当区块链收到用户的访问请求时,首先授权合约判断其是否在撤销列表中,若不在则对密钥sk进行检查;若用户密钥sk符合以下检测:k
′
∈z
p
,k,l,l
′
,k
x
,d,e∈ge(g,l
′
)=e(g
a
,l)≠1则判定用户通过密钥合法性检查,算法输出1;否则,判定该用户为恶意用户,算法终止;在上述三个检测关系式中,k
′
、k、l、l
′
、k
x
均为密钥参数,d、e为中间参数,e为双线性映射,g是群g1、g2的生成元,a
x
为属性全集中的第x个属性;s4-2区块链中的撤销合约通过维护一个撤销列表来处理系统中的异常行为,使用密钥中的密钥参数k
′
在撤销列表中寻找恶意用户;如果输出了该用户u的叶子节点的值i
d
,即认定其为要寻找的恶意用户,并将其添加到撤销列表中,以禁止其继续访问数据;如果输出为则表示其不为恶意用户,该用户能够继续对数据进行访问。6.根据权利要求1所述的基于云边协同的可撤销的访问控制方法,其特征是,步骤s5的具体方式包括以下分步骤:s5-1、边缘节点接收到来自云服务提供商的密文,执行部分解密:s5-1-1计算节点j=cover(r)∩path(u);令path(j)={i0,i1,...,i
dept(j)
,...,i
d
},其中,i
dept(j)
=j,得其中,j为二叉树中的节点,cover(r)为撤销列表,path(u)为用户u的路径,path(j)为
节点j的路径,i
d
是与用户u相关联的叶子节点的值,为i
d
的路径值;s5-1-2令存在{c
i
|i∈i},使得{c
i
m
i
=(1,0,...,0)},因此有其中,i表示一个矩阵,i为矩阵i的行数,ρ(i)为属性数,c
i
为系数;s5-1-3按照下述公式计算密文参数k1、密文参数k
′1、密文参数k
″1以及半解密密文ct1:其中,k、c0、c1均为密文参数,g是线性乘法循环群g1、g2的生成元,a、r、t、z均是随机数;的生成元,a、r、t、z均是随机数;其中,d、e表示中间参数,为i
d
的路径值;s5-2、用户根据个人密钥uk,对其进行解密得到明文信息m:其中,c为密文参数,z为随机数。7.根据权利要求1所述的基于云边协同的可撤销的访问控制方法,其特征是,步骤s6中的最终密文ct的更新方式为:云服务提供商输入更新的密钥,最新的撤销列表和原密文,然后算法将输出与最新的撤销列表相关的最终密文。cover(r
′
)是与最新撤销列表相关的最小覆盖子集;j
′
∈cover(r),则有以下两种情况:a、如果存在j∈cover(r),j=j
′
,则令t
j
′
=t
j
;b、如果存在j∈cover(r),j是j
′
的祖先节点,则假设path(j
′
)=path(j)∪{i
dept(j)+1
,...,i
ddept(j
′
)
},其中,i
dept(j)
=j,i
dept(j
′
)
=j
′
,计算:更新后的最终密文ct为:ct=<(m,ρ),c,c0,c1,{c
i,1
,c
i,2
,c
i,3
}
i∈[1,l]
,{t
j
′
}
j
′
∈cover(r
′
)
>。
技术总结
本发明涉及一种基于云边协同的可撤销的访问控制方法,包括以下步骤:区块链执行系统设置,并生成全局参数;数据所有者进行设置,生成公钥和主密钥;边缘节点执行设置算法,输出边缘节点的公钥和主密钥;由数据拥有者的密钥与边缘节点的密钥组成用户解密密钥;数据拥有者首先根据访问策略和明文信息执行数据的部分加密,生成部分密文,然后边缘节点对部分密文进行二次加密,得到最终密文;区块链对用户解密密钥进行密钥合法性检查,密钥通过检查的用户能继续访问数据;边缘节点先对最终密文进行半解密,得到半解密密文,然后用户对半解密密文进行最终解密,得到正确的明文;在执行撤销操作后,利用更新后的撤销列表和密钥,对密文进行更新,并将更新后的密文存储在云中。并将更新后的密文存储在云中。并将更新后的密文存储在云中。
技术研发人员:杜瑞忠 纪丽娟
受保护的技术使用者:河北大学
技术研发日:2023.05.18
技术公布日:2023/8/6
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
