一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于区块链的电力终端数据访问控制方法及系统与流程

2021-10-19 23:45:00 来源:中国专利 TAG: 终端 访问控制 电力 数据 区块


1.本发明涉及电力终端数据访问控制领域,具体涉及一种基于区块链的电力终端数据访问控制方法及系统。


背景技术:

2.访问控制是数据共享过程中最重要的问题之一。电力物联网由于广泛涉及到用户的用电行为,隐私极度敏感。同时,电力服务十分广泛,需要多系统之间进行数据共享。在传统的数据共享架构中,电力终端将数据上传到平台,电力终端向平台索取数据。在这种情况下,数据的所有权从终端用户转移到平台,难以保障用户的权益。此外,单一的中心无法同时获取多方信任,严重限制了数据共享的范畴。
3.区块链作为一种去中心化技术,可以在无中心场景下实现数据共享支撑。此外,作为一种分布式账本技术,其不可篡改的特性使它保管的数据具备不可篡改特性,为数据共享的流程提供了可追溯性和可信性。因此,借助区块链构建平台,实现数据的跨系统安全共享,成为研究热点。
4.为了解现有技术的发展状况,对已有的论文和专利进行了检索、比较和分析,筛选出如下与本发明相关度比较高的技术信息:
5.技术方案1:专利号为cn 110224814 a的《一种区块链数据共享方法及装置》专利,涉及一种数据共享方法,分以下两步进行:第一步,数据来源结合数据哈希值和使用者公钥,对数据进行加密后发送到智能合约;第二步,数据用户使用私钥,对数据进行解密。
6.技术方案2:专利号为cn 111385301 a的《一种区块链数据共享加密和解密方法、设备及存储介质》专利,设计一种数据共享方法,分以下几步进行:第一步:数据来源产生公钥a1,私钥a,对明文进行加密得到a1,上传到区块链;第二步:区块链为数据来源生成密钥c1;第三步:数据来源使用密钥c1对a进行加密得到rea,上传到区块链;第四步:智能合约利用rea对密文a1进行加密,得到a2;第五步:数据使用方利用a2进行同态运算,使用c1对结果进行解密,可以在不知道明文的情况下获得计算结果。
7.技术方案3:专利号为cn 111444264 a的《一种基于区块链的数据安全共享方法》,涉及一种数据共享方法,分以下几步进行:第一步,数据来源对数据进行脱敏及清洗后,上传至数据共享平台;第二步,平台对数据进行加密处理后,获取数据哈希后,写入区块链;第三步,平台将数据权限及访问规则写入智能合约部署到区块链;第四步,用户用自己的权限向平台查询数据。
8.技术方案1在区块链上传递加密后数据,链下的数据安全通道传递数据密钥。此类方法要求数据共享双方已经在链下具备安全通信的条件,这种情况下完全可以直接在链下传递加密数据;技术方案2实现的是多方安全计算,电力用户并未能获得数据明文,并不能算是完全的数据共享;技术方案3的数据加密及权限管理,完全属于平台所有,数据来源本身无法对自己的数据进行管理。


技术实现要素:

9.为了解决现有技术中所存在的上述问题,本发明提供一种基于区块链的电力终端数据访问控制方法,包括:
10.电力终端采用对称加密技术加密电力数据明文,将加密后的电力数据明文上传至存储服务器中并获得对应的存储地址;
11.电力终端利用自身拟定的访问控制策略结合从区块链获取的公共参数对加密后的电力数据明文的密钥加密得到访问控制策略密文,并将访问控制策略密文和存储地址上传至区块链中;
12.电力用户向区块链请求访问电力数据,获取由区块链下发的对应的访问控制策略密文、存储地址以及区块链不同属性管理节点下发的密钥集和公共参数;
13.电力用户利用获得的来自区块链不同属性管理节点的密钥集和公共参数,对所述访问控制策略密文进行解密验证,若解密验证成功,则获取加密电力数据明文的密钥,否则结束操作;
14.电力用户根据存储地址从存储服务器中获取访问控制策略对应的加密后的电力数据明文,并利用所述密钥解密加密后的电力数据明文得到电力数据明文。
15.优选的,所述电力终端利用自身拟定的访问控制策略结合从区块链获取的公共参数对加密后的电力数据明文的密钥加密得到访问控制策略密文包括:
16.利用所述加密后的电力数据的密钥z通过生成随机数ν2,...,v
n
构建向量ν=(z,ν2,...,v
n
)
t
,并生成随机数y2,...,y
n
,β1,..,β
n
对向量进行混淆得到带有密钥的向量
17.电力终端利用自身拟定的访问控制策略根据线性秘密共享体制构造权限访问控制策略矩阵(a,δ(i));
18.计算属性结构矩阵a与带有密钥的向量的乘积得到向量并计算
[0019][0020][0021][0022][0023]
得到访问控制策略密文ct2={c
1,i
,c
2,i
,c
3,i
,c
4,i
};
[0024]
其中,g为双线性群的生成元,e(g,g)生成元为g的双线性运算,δ(i)为属性结构矩阵a第i行对应的属性;ρ(i)为属性结构矩阵a第i行对应的节点;为管理节点ρ(i)对应的公钥,为管理节点ρ(i)对应的公钥;y
ρ(i)
为管理节点ρ(i)对应的私钥;α
ρ(i)
为管理节点ρ(i)对应的私钥;f(δ(i))为属性结构矩阵a第i行对应的属性δ(i)对应的哈希值;j
i
为属性结构矩阵a第i行所有1的集合,t
i
为随机数;i为1,2,3,

,l;j为1,2,3,

,n;l为属性矩阵a的行数,n为属性矩阵a的列数,λ'
i
为属性矩阵和带有密钥的向量的乘积得到的向量的第i列;c
1,i
为加密密文的第一个字段,c
2,i
为加密密文的第二个字段,c
3,i
为加密密文的
第三个字段,c
4,i
为加密密文的第四个字段。
[0025]
优选的,所述电力用户利用获得的来自区块链不同属性管理节点的密钥集和公共参数,对所述访问控制策略密文进行解密验证包括:
[0026]
步骤1:电力用户生成随机数ω2,..,ω
n
构成随机列向量(0,ω2,..,ω
n
)
t
后与访问控制策略相乘得到后,结合来自不同属性管理节点的密钥集结合对访问控制策略密文的每一行计算:
[0027][0028]
其中,k1
uid,δ(x)
,k2
uid,δ(x)
为电力用户获得的来自不同属性管理节点的密钥;h(uid)为电力用户编号uid对应的哈希值;ω
x
为随机数;w
x
为属性矩阵和随机列向量的乘积;x为1,2,3,

,n;λ
x
为属性矩阵和带有密钥的向量的乘积得到的向量的第x列;e(k1
uid,δ(x)
,c
2,x
)为k1
uid,δ(x)
和c
2,x
的双线性运算;为h(uid)和的双线性运算;e(k2
uid,δ(x)
,c
4,x
)为k2
uid,δ(x)
和c
4,x
的双线性运算;e(h(uid),g)为h(uid)和g的双线性运算;
[0029]
步骤2:计算使得∑
x
c
x
a
x
=(1,0,...,0)成立的矩阵c
x

[0030]
其中,a
x
为属性矩阵的第x列;
[0031]
步骤3:基于和矩阵c
x
计算判断计算结果是否为e(g,g)
z
,若是解密验证成功,否则解密验证失败。
[0032]
优选的,还包括:
[0033]
电力用户基于自身的运算能力判断是否将访问控制密文外包解密;
[0034]
当用户自身可以实现解密运算时,由电力用户基于自身拥有的属性密钥集对访问控制策略密文进行解密验证,获取电力加密数据的密钥;
[0035]
否则,电力用户制作授权密钥并将授权密钥发送给解密服务器进行外包解密验证得到解密中间结果,并将所述中间结果发送给电力用户。
[0036]
优选的,还包括,电力终端可以通过外包加密的方式对访问控制策略加密。
[0037]
基于同一种发明构思,本发明提供了一种基于区块链的电力终端数据访问控制系统,包括:
[0038]
数据加密模块、控制策略加密模块、请求数据模块、验证模块和解密模块;
[0039]
所述数据加密模块,电力终端采用对称加密技术加密电力数据明文,将加密后的电力数据明文上传至存储服务器中并获得对应的存储地址;
[0040]
所述控制策略加密模块,电力终端利用自身拟定的访问控制策略结合从区块链获取的公共参数对加密后的电力数据明文的密钥加密得到访问控制策略密文,并将访问控制策略密文和存储地址上传至区块链中;
[0041]
所述请求数据模块,电力用户向区块链请求访问电力数据,获取由区块链下发的对应的访问控制策略密文、存储地址以及区块链不同属性管理节点下发的密钥集和公共参数;
[0042]
所述验证模块,电力用户利用获得的来自区块链不同属性管理节点的密钥集和公共参数,对所述访问控制策略密文进行解密验证,若解密验证成功,则获取加密电力数据明
文的密钥,否则结束操作;
[0043]
所述解密模块,电力用户根据存储地址从存储服务器中获取访问控制策略对应的加密后的电力数据明文,并利用所述密钥解密加密后的电力数据明文得到电力数据明文。
[0044]
与现有技术相比,本发明的有益效果为:
[0045]
一种基于区块链的电力终端数据访问控制方法,包括:电力终端采用对称加密技术加密电力数据明文,将加密后的电力数据明文上传至存储服务器中并获得对应的存储地址;电力终端利用自身拟定的访问控制策略结合从区块链获取的公共参数对加密后的电力数据明文的密钥加密得到访问控制策略密文,并将访问控制策略密文和存储地址上传至区块链中;电力用户向区块链请求访问电力数据,获取由区块链下发的对应的访问控制策略密文、存储地址以及区块链不同属性管理节点下发的密钥集和公共参数;电力用户利用获得的来自区块链不同属性管理节点的密钥集和公共参数,对所述访问控制策略密文进行解密验证,若解密验证成功,则获取加密电力数据明文的密钥,否则结束操作;电力用户根据存储地址从存储服务器中获取访问控制策略对应的加密后的电力数据明文,并利用所述密钥解密加密后的电力数据明文得到电力数据明文。电力终端自行制定数据的访问策略,便于数据来源终端对数据的管理,数据本身获得了绝对的安全,数据全程未经过任何明文传输,确保了数据的不可泄漏,允许更加复杂的访问策略,适用更加丰富的属性要求和业务场景。
附图说明
[0046]
图1为本发明的区块链的电力终端数据访问控制方法步骤流程图;
[0047]
图2为本发明的系统框架图;
[0048]
图3为终端侧加密时延对比图;
[0049]
图4为解密时延对比图。
具体实施方式
[0050]
为了更好地理解本发明,下面结合说明书附图和实例对本发明的内容做进一步的说明。
[0051]
实施例1:
[0052]
一种基于区块链的电力终端数据访问控制方法,通过区块链构建电力物联网场景下的电力终端数据访问控制机制,保证数据源对数据的可控。同时设计跨系统的属性基加密机制,实现基于属性的多中心数据权限管控。此外,针对终端计算资源有限的问题,设计了加解密外包机制。电力终端可自行决定权限管控策略,满足权限的用户就可从区块链上获得数据并解密。如图1所示,包括:
[0053]
步骤1:电力终端采用对称加密技术加密电力数据明文,将加密后的电力数据明文上传至存储服务器中并获得对应的存储地址;
[0054]
步骤2:电力终端利用自身拟定的访问控制策略结合从区块链获取的公共参数对加密后的电力数据明文的密钥加密得到访问控制策略密文,并将访问控制策略密文和存储地址上传至区块链中;
[0055]
步骤3:电力用户向区块链请求访问电力数据,获取由区块链下发的对应的访问控
制策略密文、存储地址以及区块链不同属性管理节点下发的密钥集和公共参数;
[0056]
步骤4:电力用户利用获得的来自区块链不同属性管理节点的密钥集和公共参数,对所述访问控制策略密文进行解密验证,若解密验证成功,则获取加密电力数据明文的密钥,否则结束操作;
[0057]
步骤5:电力用户根据存储地址从存储服务器中获取访问控制策略对应的加密后的电力数据明文,并利用所述密钥解密加密后的电力数据明文得到电力数据明文。
[0058]
区块链初始化公共参数和各节点自身参数,区块链的各个节点(由传统物联网系统的属性管理中心组成)之间进行协商,生成公共参数。
[0059]
首先生成双线性群g,阶数为p,生成元为g,并制定哈希函数如下:
[0060]
h(user_id)

g
[0061]
f(access_policy)

g
[0062]
其中h函数用于将用户id映射到g,f函数用于将控制策略映射到g。
[0063]
生成双线性映射g
×
g

g
t
,定义双线性运算e(g,g)。
[0064]
公开到区块链的参数包括g,e(g,g),g,p等。
[0065]
各系统的管理端生成自身参数,区块链节点θ生成自身的公私钥对:
[0066]
私钥:α
θ
,y
θ
∈z
p
[0067]
公钥对:
[0068]
完成以上操作之后,将各系统的参数和数据共享平台的公共参数上传到区块链。
[0069]
其中步骤1具体包括,电力终端针对数据进行加密。假定加密的数据明文为m。用密钥z对数据m加密得到c0=me(g,g)
z
,即加密后的数据。而后,将加密后的数据c0上传至存储服务器中。
[0070]
步骤2具体包括,电力终端对加密的密钥z进行保护。生成随机数ν2,...,v
n
构建向量ν=(z,ν2,...,v
n
)
t
。生成随机数y2,...,y
n
,β1,..,β
n
,对向量进行混淆。得到向量
[0071]
而后,生成可表达的访问控制策略如a@a and b@b,声明要求a系统签发的a属性和b系统签发的b属性同时存在时,具备数据访问权限(例如,假定某处有一个电表终端,可以访问该电表数据的用户,同时具有物业系统颁发的住户属性和电力营销系统颁发的电表业主属性,才可以读取该数据)。
[0072]
电力终端可自身对访问控制策略加密处理,也可以根据自身计算资源外包处理。首先对访问策略进行处理,得到访问控制矩阵。矩阵构造方法如下:
[0073]
令u作为属性空间,属性结构a即u中一系列元素的集合。假定电力终端制定的权限访问策略为(a,δ),其中矩阵a为l
×
n的布尔矩阵。每行表示一个属性。δ(x)为映射函数,指第x行对应的属性。ρ(x)为映射函数:第x行对应的节点θ。
[0074]
而后针对矩阵a中为1的部分,计算j
i
={m
ij
=1},中间变量其中,a是一个0和1构成的矩阵,j
i
是第i行所有1的集合;
[0075]
生成加密密文:确保只有符合访问控制策略的用户可以解密获得密钥z。
[0076]
[0077][0078][0079][0080][0081]
而后,得到ct2={c
1,i
,c
2,i
,c
3,i
,c
4,i
}作为访问控制密文;
[0082]
其中,δ(i)为属性结构矩阵a第i行对应的属性;ρ(i)为属性结构矩阵a第i行对应的节点;为管理节点ρ(i)对应的公钥,为管理节点ρ(i)对应的公钥;y
ρ(i)
为管理节点ρ(i)对应的私钥;α
ρ(i)
为管理节点ρ(i)对应的私钥;f(δ(i))为属性结构矩阵a第i行对应的属性δ(i)对应的哈希值;j
i
为属性结构矩阵a第i行所有1的集合,t
i
为随机数;i为1,2,3,

,l;j为1,2,3,

,n;l为属性矩阵a的行数,n为属性矩阵a的列数,λ'
i
为属性矩阵和带有密钥的向量的乘积得到的向量的第i列;c
1,i
为加密密文的第一个字段,c
2,i
为加密密文的第二个字段,c
3,i
为加密密文的第三个字段,c
4,i
为加密密文的第四个字段。
[0083]
将数据c0上传至存储服务器中。该部分可以与电力数据加密同时进行。而后,将访问控制策略a,数据密文,数据的访问地址,与访问控制密文一起上传至区块链。
[0084]
步骤3具体包括,用户向区块链各属性节点管理各系统申请密钥,系统依据属性,为其生成密钥并发回。
[0085]
对于每一个属性u,对应的系统为其签发私钥:
[0086]
生成随机数t,生成密钥k1,k2
[0087][0088]
k2
uid,u
=g
t
[0089]
用户从区块链检索数据信息,获得密文。
[0090]
步骤4具体包括,生成随机数而后结合自身属性,对每一行进行计算:
[0091][0092]
而后计算c
x
使得∑
x
c
x
a
x
=(1,0,...,0),而后
[0093][0094]
此时m=c0/e(g,g)
z
,完成解密。
[0095]
如用户难以完成解密运算,可制作授权密钥对对解密进行外包:
[0096]
k'
gid,u
=(k
gid,u
)
1/τ
[0097]
l'
gid,u
=(l
gid,u
)
1/τ
[0098]
解密服务器用授权密钥对执行相同运算,可得到中间结果e(g,g)
z/τ
,用户对其简单运算之后可完成解密。
[0099]
步骤5具体包括,用户从访问地址中获得数据。对数据进行解密,获得明文m。
[0100]
本发明构建了一种基于区块链的跨系统访问控制框架。在该框架中,区块链用于为电力终端和电力用户之间提供可信的数据共享平台。各系统通过区块链发布公共参数,
电力终端利用公共参数实现基于属性的加密,并将密文上链,电力用户通过区块链获取数据。
[0101]
针对电力终端数据面向多系统共享过程的安全问题,设计多中心的属性加密的机制:密钥本身仅仅能由具有对应属性的用户解开,属性可来自不同的分发机构。由于属性来自不同的密钥管理中心,不同用户在不同属性产生的密钥无法合并,因此可以对抗合谋攻击;明文未经过任何公开传输,属性密钥也由用户自身在本地进行合并,避免了数据泄露的风险。
[0102]
本发明将.数据的所有权、管控权回到终端手中,而非平台。电力终端自行制定数据的访问策略,平台仅作为数据分享的渠道。
[0103]
数据本身获得了绝对的安全,一方面,已经上链的数据无法再更改,确保了数据的可信;另一方面,数据全程未经过任何明文传输,确保了数据的不可泄漏。
[0104]
数据共享的范畴变广。传统的单一物联网系统情况下,访问策略的表达能力有限。在本专利的设计下,允许更加复杂的访问策略,也就允许了更加丰富的属性要求和业务场景。
[0105]
实施例2:
[0106]
基于同一种发明构思,本发明还提供了一种基于区块链的电力终端数据访问控制系统,包括:
[0107]
数据加密模块、控制策略加密模块、请求数据模块、验证模块和解密模块;
[0108]
所述数据加密模块,电力终端采用对称加密技术加密电力数据明文,将加密后的电力数据明文上传至存储服务器中并获得对应的存储地址;
[0109]
所述控制策略加密模块,电力终端利用自身拟定的访问控制策略结合从区块链获取的公共参数对加密后的电力数据明文的密钥加密得到访问控制策略密文,并将访问控制策略密文和存储地址上传至区块链中;
[0110]
所述请求数据模块,电力用户向区块链请求访问电力数据,获取由区块链下发的对应的访问控制策略密文、存储地址以及区块链不同属性管理节点下发的密钥集和公共参数;
[0111]
所述验证模块,电力用户利用获得的来自区块链不同属性管理节点的密钥集和公共参数,对所述访问控制策略密文进行解密验证,若解密验证成功,则获取加密电力数据明文的密钥,否则结束操作;
[0112]
所述解密模块,电力用户根据存储地址从存储服务器中获取访问控制策略对应的加密后的电力数据明文,并利用所述密钥解密加密后的电力数据明文得到电力数据明文。
[0113]
实施例3:
[0114]
首先,本发明建立了基于区块链的多中心数据共享平台,而后,构造了基于属性的跨系统数据访问控制框架。电力终端在发布数据时提供可表达的策略如a@a and b@b,即可实现当用户同时具有由a颁发的a权限和b颁发的b权限时,才可获得数据明文。平台由a、b等物联网系统维护。由于部分电力终端难以承担大量的运算,访问控制可安全的外包到网关执行。具体如图2所示。
[0115]
区块链实验环境为部署于腾讯上的1核2g服务器,ubuntu 18.04系统。区块链架构采用hyperledger fabric 2.2.0,并利用docker容器部署联盟链节点,智能合约采用
javascript进行编写。采用50次运行平均值,得写入链上步骤用时2060ms,共识用时75ms,查询用时14ms。初始化并未严重影响系统的时延。
[0116]
各属性中心的初始化、电力终端的加密环节与用户的解密环节均在链下进行,拟基于charm,采用python3.6.12环境进行编写。与传统的多中心访问控制及外包访问控制方案进行对比。为方便表述,yannis rouselakis1和brent waters在2015提出的多中心访问控制记做rw15,go ohtake在2017提出的外包访问控制记作go19.与我们的方案展开时间延迟对比如下:
[0117]
初始化阶段如图3所示,结果显示本文的方案显著降低了加密所需的时延;
[0118]
解密侧的效果如图4所示,本方案表现显著优于rw15。go17虽然表现较好,但该方案不适用于多中心场景。相比rw方案,本方案已大幅度的为终端减轻了解密计算的负担。
[0119]
显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0120]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
[0121]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0122]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0123]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0124]
以上仅为本发明的实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均包含在申请待批的本发明的权利要求范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献