基于区块链与属性加密的iot数据可信收集共享方法
技术领域
1.本发明属于区块链技术领域,具体涉及一种基于区块链与属性加密的iot数据可信收集共享方法。
背景技术:2.随着传感器、无线通信和网络技术的快速发展,物联网(iot)已经渗透进现实生活中的方方面面,它可以通过互联无处不在的智能设备来收集数据并作出决策,由此可知,iot数据在实际应用中拥有很高的价值属性和隐私性。
3.针对于iot数据的收集和共享,传统的移动众包技术通常需要一个集中式服务器进行操作,一旦发生单点故障,便可能会造成iot数据的泄露,增加潜在的风险。此外,如果缺乏高效的数据保护机制,便无法对iot数据在收集和共享过程中的恶意行为进行监控,而iot管理者的身份和可信度也会影响到数据采集的质量。
技术实现要素:4.为了解决上述问题,本发明将区块链与属性加密结合,设计出一种基于hyperledger fabric的多子链区块链结构,代替传统的集中式服务器,为iot数据在各方实体之间的采集和共享提供安全可靠的环境。通过部署智能合约解决数据在陌生实体之间传递时的信任问题,结合任务分级管理策略实现区块链子链之间的隔离,有效避免了恶意实体窃取物联网隐私数据的可能。与此同时,引入属性加密技术并与云端进行协同交互,使物联网数据能够实现细粒度的访问控制,从而让物联网数据的收集共享过程更加高效可信。
5.为了达到上述技术目的,本发明是通过以下技术方案实现的:
6.一种基于区块链与属性加密的iot数据可信收集共享方法,包括以下步骤:
7.s1:数据获取方(iot customer)作为物联网数据的需求者,向可信任服务提供商(service provider)发送数据请求,由服务提供商根据客户的需求,将数据采集任务广播至区块链中,物联网数据管理者(iot manager)作为部署大量终端传感器来收集数据并拥有数据所有权的一方,可以根据自身的信誉值来选择对应层级的任务接收;
8.s2:区块链上部署信誉评估合约,分级管理合约,定期对不同域内的iot数据管理者(iot manager)的信誉进行评估,共同构建出基于hyperledgerfabric的多子链分层区块链结构,由不同层级中的iot数据管理者实现对目标数据的采集,并使用多子链作为iot数据在各方实体之间安全共享的服务器;
9.s3:区块链上部署属性加密合约,云
‑‑
链交互合约,通过基于属性的加密实现对iot数据更加细粒度的访问控制,实现一次数据采集,多次共享,无需重复加密;将采集到的iot数据加密后存储在云端,链上仅保留数据哈希值,减轻链上负载压力,链上链下协同存储,共同完成iot数据的完整性校验,提升系统工作效率;
10.s4:所述数据获取方根据自身的属性集合与iot数据管理者为其颁发的授权通证进行匹配,匹配成功即可得到所需要的数据明文;若失败,则终止该过程。
11.优选的,所述数据获取方根据自身的数据需求向可信服务提供商发送数据收集任务,包括数据用途、数据质量,紧急程度,数据特征,私密性和安全性等属性信息,并由服务提供商进行整理后为该任务划分层级,并将不同层级的任务广播到不同的区块链子链中;
12.优选的,所述区块链主体由hyperledgerfabric联盟链搭建而成,提供分级管理合约对联盟链中的各条子链进行层级划分,每条子链上只存储对应层级的数据收集任务,通过信誉评估合约定期对iot数据管理者进行信任评估,每个iot数据管理者仅能在当前自身所处层级的区块链子链中接收数据收集任务,不能跨子链执行,除非在下一轮的信任评估中获得了更高的分数;
13.优选的,所述区块链上的信誉评估合约和分级管理合约在评估计算阶段的具体实现方式为:
14.reputation
update
=reputationm+score*α*ic*t
level
ꢀꢀ
(1)
15.公式(1)中reputation
update
表示每一轮评估更新过后的信誉值,reputationm表示当前iot数据管理者的信誉值,α表示对应层级的奖励,t
level
表示任务的等级。
[0016][0017]
公式(2)中score表示一个数据采集任务的最终得分,iscorea,qscorea,tscorea分别表示该操作的实际得分,ω表示对应属性所占的权重,具体计算方式如下:
[0018][0019][0020][0021]
ω表示对应属性所占的权重,由iot数据管理者(iot manager)在历史数据采集任务中的得分矩阵计算得出:
[0022][0023]
[0024][0025][0026]
在等式6,7,8和9中,iscorei,qscorei,tscorei表示工人在第i个任务上获得的分数,αi表示工人在第i个任务期间的信用正增长和负增长,如果信用为正增长,αi=1,否则αi=0。
[0027][0028]
ic表示iot数据管理者信誉值正增长所占比例,m表示信誉值正增长的任务数,n表示当前执行的任务总数,t
level
表示任务级别的权重,计算方式如下:
[0029][0030]
优选的,所述属性加密合约和云—链交互合约在执行数据访问控制时的具体交互过程如下:
[0031]
加密过程由可信服务提供商执行,首先生成公钥pk和主私钥msk;
[0032]
pk=g1,g,h=g
β
,e(g,g)
α
ꢀꢀ
(12)
[0033]
msk=(β,g
α
)
ꢀꢀ
(13)
[0034]
服务提供商基于该任务的属性信息对iot数据明文设定属性访问条件,并通过访问结构树与公钥pk对数据进行加密;
[0035][0036]
服务提供商通过主私钥msk与属性集合计算出属性私钥;
[0037][0038]
物联网数据管理者(iot manager)将公钥发送给服务提供商,服务提供商用iot manager的公钥对属性私钥加密;
[0039]
服务提供商将物联网数据密文与加密后的属性私钥发送至云服务器进行托管,可
有效防止云端服务器进行恶意篡改,同时对物联网数据密文进行哈希计算并在区块链上发起一笔交易,可用于后续数据共享过程中的完整性校验。
[0040]
解密过程如下:
[0041]
数据获取方向云端服务器提交数据下载请求,属性集和公钥;
[0042]
云端服务器通过基于属性的匹配策略来判断该请求是否合法,若确认具有访问资格,则用数据获取方的公钥对密文和已经加密过的属性私钥进行加密;
[0043]
数据获取方通过自身的私钥对其解密后得到物联网数据密文与加密的属性私钥,同时,向物联网数据管理者申请授权凭证;
[0044]
物联网数据管理者向数据获取方颁发授权通证,获取方通过授权解密物联网数据明文:
[0045][0046]
本发明的有益效果是:
[0047]
1)设计出一种基于hyperledgerfabric的多子链区块链结构,代替传统物联网数据收集技术中的集中式服务器,为iot数据在各方实体之间的采集和共享提供安全可靠的环境。
[0048]
2)通过部署智能合约解决敏感数据在陌生实体之间传递共享时的信任问题,结合任务分级管理策略实现区块链子链之间的隔离,有效避免了恶意实体窃取物联网隐私数据的可能。
[0049]
3)引入属性加密技术并与云端进行交互,云
‑‑
链协同,使物联网数据能够实现属性级别的细粒度的访问控制,从而让物联网数据的收集共享过程更加高效可信,降低多次加密解密所造成的计算开销。
附图说明
[0050]
图1是本发明实施例提供的一种基于区块链与属性加密的iot数据可信收集共享方法总流程图。
[0051]
图2是本发明的系统总体架构图。
[0052]
图3是本发明实施例提供的一种基于属性加密和云—链协同的数据安全共享交互流程图。
具体实施方式
[0053]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0054]
实施例1
[0055]
如附图1所示,一种基于区块链与属性加密的iot数据可信收集共享方法,所述方法的具体步骤如下:
[0056]
数据获取方(iot customer)作为iot数据的需求者,向可信任服务提供商(service provider)发送数据请求,由服务提供商根据客户的需求,将数据采集任务广播
至区块链中;
[0057]
所述区块链上部署信誉评估合约,分级管理合约,定期对不同域内的iot数据管理者(iot manager)的信誉进行评估,共同构建出基于hyperledgerfabric的多子链分层区块链结构,由不同层级中的iot数据管理者实现对目标数据的采集,并使用多子链作为iot数据在各方实体之间安全共享的服务器;
[0058]
所述区块链上部署属性加密合约,云
‑‑
链交互合约,通过基于属性的加密实现对iot数据更加细粒度的访问控制,实现一次数据采集,多次共享,无需重复加密。将采集到的iot数据加密后存储在云端,链上仅保留数据哈希值,减轻链上负载压力,链上链下协同存储,共同完成iot数据的完整性校验,提升系统工作效率;
[0059]
所述服务提供商基于属性加密合约执行物联网数据的访问控制决策。
[0060]
所述数据获取方根据自身的属性集合与iot数据管理者为其颁发的授权通证对加密数据与属性私钥进行解密,解密成功即可得到所需要的物联网数据明文。若失败,则终止该过程。
[0061]
实施例2
[0062]
如附图2所示,本发明的系统总体架构图,主要包括五个实体,即数据获取方、可信服务提供商、区块链、物联网管理者、云端服务器。
[0063]
所述数据获取方根据自身的数据需求向可信服务提供商发送数据收集任务,包括数据用途、数据质量,紧急程度,数据特征,私密性和安全性等属性信息,并由服务提供商进行整理后为该任务划分层级,并将不同层级的任务广播到不同的区块链子链中。
[0064]
基于hyperledgerfabric的多子链分层区块链结构,其特征在于:所述区块链主体由hyperledger fabric联盟链搭建而成,提供分级管理合约对联盟链中的各条子链进行层级划分,每条子链上只存储对应层级的数据收集任务,通过信誉评估合约定期对iot数据管理者进行信任评估,每个iot数据管理者仅能在当前自身所处层级的区块链子链中接收数据收集任务,不能跨子链执行,除非在下一轮的信任评估中获得了更高的分数,便可以申请跨通道查看更高级别子链中的数据采集任务。
[0065]
所述区块链上的信誉评估合约和分级管理合约在评估计算阶段的具体实现方式为:
[0066]
reputation
update
=reputationm+score*α*ic*t
level
ꢀꢀ
(1)
[0067]
公式(1)中reputation
update
表示每一轮评估更新过后的信誉值,reputationm表示当前iot数据管理者的信誉值,α表示对应层级的奖励,t
level
表示任务的等级。
[0068][0069]
公式(2)中score表示一个数据采集任务的最终得分,iscorea,qscorea,tscorea分别表示该操作的实际得分,ω表示对应属性所占的权重,具体计算方式如下:
[0070][0071]
[0072][0073]
ω表示对应属性所占的权重,由iot数据管理者(iot manager)在历史数据采集任务中的得分矩阵计算得出:
[0074][0075][0076][0077][0078]
在等式6,7,8和9中,iscorei,qscorei,tscorei表示工人在第i个任务上获得的分数,αi表示工人在第i个任务期间的信用正增长和负增长,如果信用为正增长,αi=1,否则αi=0。
[0079][0080]
ic表示iot数据管理者信誉值正增长所占比例,m表示信誉值正增长的任务数,n表示当前执行的任务总数,t
level
表示任务级别的权重,计算方式如下:
[0081][0082]
实施例3
[0083]
如附图3所示,是本发明实施例提供的一种基于属性加密和云—链协同的数据安
全共享交互流程图。
[0084]
所述属性加密合约和云—链交互合约在执行数据访问控制和安全共享时的具体交互过程如下:
[0085]
加密过程由可信服务提供商执行,过程如下:
[0086]
首先生成公钥pk和主私钥msk;
[0087]
pk=g1,g,h=g
β
,e(g,g)
α
ꢀꢀ
(12)
[0088]
msk=(β,g
α
)
ꢀꢀ
(13)
[0089]
服务提供商基于该任务的属性信息对iot数据明文设定属性访问条件,并通过访问结构树与公钥pk对数据进行加密;
[0090][0091]
服务提供商通过主私钥msk与属性集合计算出属性私钥;
[0092][0093]
物联网数据管理者(iot manager)将公钥发送给服务提供商,服务提供商用iot manager的公钥对属性私钥加密;
[0094]
服务提供商将物联网数据密文与加密后的属性私钥发送至云服务器进行托管,可有效防止云端服务器进行恶意篡改,同时对物联网数据密文进行哈希计算并在区块链上发起一笔交易,可用于后续数据共享过程中的完整性校验。
[0095]
解密过程如下:
[0096]
数据获取方向云端服务器提交数据下载请求,属性集和公钥;
[0097]
云端服务器通过基于属性的匹配策略来判断该请求是否合法,若确认具有访问资格,则用数据获取方的公钥对密文和已经加密过的属性私钥进行加密;
[0098]
数据获取方通过自身的私钥对其解密后得到物联网数据密文与加密的属性私钥,并向物联网数据管理者申请授权凭证;
[0099]
物联网数据管理者向数据获取方颁发授权通证,获取方通过授权解密物联网数据明文:
[0100][0101]
上述即为基于属性加密实现数据在各方实体之间安全共享的整个流程,物联网数据通过非对称加密的方式在多方之间安全传输,保障了物联网数据的隐私性、完整性和安全性。