基于联邦学习的区块链工业物联网数据共享方法与流程

文档序号:24649019发布日期:2021-04-13 16:46阅读:60来源:国知局
基于联邦学习的区块链工业物联网数据共享方法与流程

1.本发明属于工业物联网技术领域,涉及密码学、区块链技术、信息安全、工业物联网技术领域,具体涉及一种基于联邦学习的区块链工业物联网数据共享方法。


背景技术:

2.工业物联网数据共享一直是人们关心的热点话题之一。工业物联网设备众多,各企业独立存储和维护各自数据,常出现数据孤岛;设备之间每时每刻都产生着海量的数据;隐私数据泄露等安全性问题经常出现。区块链具有去中心化、透明可信、强安全的共识机制特性,越来越多企业选择将工业物联网数据放在区块链上,在内部实现数据共享。当数据需要跨企业共享时,信任就成了最大的问题,人们并不希望把数据直接共享出去,因为数据之间可能含有部分敏感数据,而直接“脱敏”会影响数据的计算结果准确度,同时也担心在传输的过程中因为窃听等原因造成数据泄露。这些都让跨企业数据共享和跨企业大数据科学研究之路变得更加艰难。
3.联邦学习是一种新兴的人工智能基础技术,其设计目标是在保障大数据共享交换时的信息安全、保护终端个人数据隐私、保证合法合规的前提下,在多参与者或多计算节点之间开展高效率的机器学习,有望成为下一代人工智能协同算法和协作网络的基础。因其强大的隐私保护能力和打破“数据孤岛”的能力,能很好的解决上述问题。


技术实现要素:

4.有鉴于此,本发明的目的在于提供一种基于联邦学习的区块链工业物联网数据共享方法,保证区块链中保持的隐私数据不被泄露,企业可以根据需求选择参与运算的区块以及数据,节约运算性能。
5.为达到上述目的,本发明提供如下技术方案:
6.一种基于联邦学习的区块链工业物联网数据共享方法,将各物联网终端设备采集到的数据通过网络传输到本地区块链上,需要共享的数据在本地区块链进行训练无损学习模型,将结果传递参数到共享区块链,共享区块链上存储相同训练模型并对传入结果进行整合计算,最后将结果反馈给用户使用;具体包括以下步骤:
7.s1:数据准备阶段;
8.s2:密钥生成阶段;
9.s3:数据加密与传输;
10.s4:数据解密阶段;
11.s5:数据共享阶段。
12.进一步,步骤s1中,数据准备阶段具体包括:
13.s11:n个不同的传感器收集到的数据分别定义为d1,d2,d3,

,d
n
,分别存放在区块b1,b2,b3,

,b
n
上;每个企业都有各自的区块链,分别存放各自的数据;
14.s12:传感器采集到的数据d1,d2,d3,

,d
n
,根据保密等级不同及数据量大小放入
不同的企业区块上;共享数据的时候,企业用户可以根据实际需求及保密等级选择共享数据d
i

15.s13:当数据d
i
能共享时,该数据所在区块链会从共享区块链下载训练模型m
fed
,并生成新的区块b
i
,然后对数据d
i
进行训练计算,得到训练结果w
i
=m
fed
(d
i
);不同的企业根据能共享的数据区块,分别训练得到不同的结果w1,w2,w3,

,w
n
;此处因为各个传感器的性能不一致,导致传输到企业区块上的数据时间也不一致。
16.s14:若需要共享的数据刚好是传感器刚刚采集到的数据,可以使用异步传输机制,即每隔固定时间t训练一次模型,得到训练结果w
k
;对于采集传输时间大于时间t的数据,可以适当采取放弃。
17.进一步,步骤s2中,密钥生成阶段具体包括:
18.s21:需要共享的区块b
i
运行密钥生成函数keygen,产生加密数据e(w
i
)所用的密钥key;
19.s22:选择两个独立的大素数p,q,即满足gcd(pq,(p

1)(q

1))=1,以保证这两个素数的长度相等;
20.s23:计算n=pq,λ=lcm,(p

1)(q

1);随机选择一个整数g,μ=(l(g
λ
mod n2))
‑1,这里l被定义为其中公钥为(n,g),私钥为(λ,μ);
21.s24:如果使用等效长度的p,q,则可以设置上述密钥生成步骤的更简单的变体g=n+1,lambda=ψ(n);
22.mμ=ψ(n)
‑1mod n,这里ψ(n)=(p

1)(q

1);
23.s25:同理,在共享区块链上也需要生成模型传输用的公钥和私钥。
24.进一步,步骤s3中,数据加密与传输具体包括:企业区块链训练后的结果w
i
和训练模型m
fed
是需要加密的密文,在这里,0≤w
i
<n,0≤m
fed
<n;具体过程如下:
25.s31:随机选择一个整数r,0<r<n,与n互质,即gcd(r,n)=1;区块b
i
计算密文
26.s32:将密文和发送给共享区块链上的区块bs
i
,bs1,bs2,

,bs
n
表示由各个企业共享区块链训练以后传入共享区块链的数据,对应于训练结果w1,w2,w3,

,w
n

27.s33:共享区块链上同样计算好模型的密文当企业需要共享数据前需要下载训练模型m
fed
,即下载加密后的密文
28.s34:当用户上传新的训练模型的时候,共享区块链需要重新计算训练模型密文为企业区块链提供新的密文下载。因为区块链不可篡改的特点,新上传的模型密文不会覆盖旧的模型密文。
29.进一步,步骤s4中,数据解密阶段具体包括:
30.s41:共享区块链上的区块bs
i
接收到传入的数据后,对接收到的数据进行解密处理,计算出明文
31.证明:
32.引入私钥λ,根据carmichael定理得:
[0033][0034]
根据关系(1+n)
x
≡1+nx mod n2得:
[0035][0036]
使用l(x)函数得:
[0037]
s42:汇总当前所有区块的数据m={m1,m2,m3,

,m
n
},m是各个区块的训练结果w1,w2,w3,

,w
n
的集合;
[0038]
s43:同理,当需要共享数据的区块b
i
下载了训练模型密文后,也是通过该方法进行解密。
[0039]
进一步,步骤s5中,数据共享阶段具体包括:共享区块链汇聚完当前所有数据m后,开始运行对应训练模型计算最终结果r=m_fed(m),并将结果保存到新的区块,并将结果提供给用户查询使用。模型可以根据需求定期运行或者手动运行,每次运行重复解密和计算两部分即可。当然,因为区块链的不可以篡改特点,模型每次运行结果都将保存。用户可以选择直接下载以前的数据,也可以重新运行产生最新的数据。同时,用户也可以根据实际需求选择用以前的模型进行计算或选择上传新的模型。根据数据量的大小不同,每次运行时间会有所差别,用户也可以有选择的选择部分企业的工业物联网数据进行运算,对于延迟比较大的数据结果可以选择性运行。
[0040]
进一步,数据传输和接收时仅提供数据使用权的接口。
[0041]
本发明的有益效果在于:与现有的技术相比,本发明提供了一种新颖的工业物联网数据共享机制,将工业物联网设备采集到的数据均保存在本地区块链中,保证了隐私数据不被泄露,企业可以根据需求选择参与运算的区块以及数据,节约运算性能。在数据共享传输的过程中,只传输运算结果和模型参数密文,采用同态加密传输机制,保障传输的安全性。
[0042]
本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书来实现和获得。
附图说明
[0043]
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作优选的详细描述,其中:
[0044]
图1为本发明基于联邦学习的区块链工业物联网数据共享方法的流程图;
[0045]
图2为本发明基于联邦学习的区块链工业物联网数据共享模型应用案例图。
具体实施方式
[0046]
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
[0047]
请参阅图1~图2,本发明提供一种适用于基于区块链构建的工业物联网环境中的基于联邦学习的区块链工业物联网数据共享方法,包括下列步骤:
[0048]
1)数据准备阶段
[0049]
(1)n个不同的传感器收集到的数据分别定义为d1,d2,d3,

,d
n
,分别存放在区块b1,b2,b3,

,b
n
上。每个企业都有各自的区块链,分别存放各自的数据。
[0050]
(2)传感器采集到的数据d1,d2,d3,

,d
n
,根据保密等级不同及数据量大小放入不同的企业区块上。共享数据的时候,企业用户可以根据实际需求及保密等级选择共享数据d
i

[0051]
(3)当数据d
i
可以共享时,该区块链会从共享区块链下载训练模型m
fed
,并生成新的区块b
i
,然后对数据d
i
进行训练计算,得到训练结果w
i
=m
fed
(d
i
)。不同的企业根据可以共享的数据区块,分别训练得到不同的结果w1,w2,w3,

,w
n
.此处因为各个传感器的性能不一致,导致传输到企业区块上的数据时间也不一致。
[0052]
(4)若需要共享的数据刚好是传感器刚刚采集到的数据,可以使用异步传输机制。即每隔固定时间t训练一次模型,得到训练结果w
k
。对于采集传输时间大于时间t的数据,可以适当采取放弃。
[0053]
2)密钥生成阶段
[0054]
(1)需要共享的区块b
i
运行密钥生成函数keygen,产生加密数据e(w
i
)所用的密钥key。
[0055]
(2)选择两个独立的大素数p,q,即满足gcd(pq,(p

1)(q

1))=1,以保证这两个素数的长度相等。
[0056]
(3)计算n=pq,λ=lcm,(p

1)(q

1).随机选择一个整数g,μ=(l(g
λ
mod n2))
‑1,这里l被定义为其中公钥为(n,g),私钥为(λ,μ)。
[0057]
(4)如果使用等效长度的p,q,则可以设置上述密钥生成步骤的更简单的变体g=n+1,lambda=ψ(n).
[0058]
mμ=ψ(n)
‑1mod n.这里ψ(n)=(p

1)(q

1).
[0059]
(5)同理,在共享区块链上也需要生成模型传输用的公钥和私钥。
[0060]
3)数据加密与传输
[0061]
联邦学习在一定的程度上保护了本地用户数据集的隐私安全问题,但在真正使用中,并非绝对安全,仍然会存在隐私泄露风险。最常见的两种攻击是模型提取攻击和模型逆向攻击。攻击者通过模型提取和分析,窃取模型参数和本地用户上传的参数,破坏模型保密性,对整个模型的运算结果造成很大的影响。故在本方案中,我们引入同态加密作为模型及
参数的加密传输。
[0062]
企业区块链训练后的结果w
i
和训练模型m
fed
是我们需要加密的密文,在这里,0≤w
i
<n,0≤m
fed
<n.具体过程如下:
[0063]
(1)随机选择一个整数r,0<r<n,与n互质,即gcd(r,n)=1.区块b
i
计算密文
[0064]
(2)将密文和发送给共享区块链上的区块bs
i
.bs1,bs2,

,bs
n
表示由各个企业共享区块链训练以后传入共享区块链的数据,对应于训练结果w1,w2,w3,

,w
n
.
[0065]
(3)共享区块链上同样计算好模型的密文当企业需要共享数据前需要下载训练模型m
fed
,即下载加密后的密文
[0066]
(4)当用户上传新的训练模型的时候,共享区块链需要重新计算训练模型密文为企业区块链提供新的密文下载。因为区块链不可篡改的特点,新上传的模型密文不会覆盖旧的模型密文。
[0067]
4)数据解密阶段
[0068]
(1)共享区块链上的区块bs
i
接收到传入的数据后,对接收到的数据进行解密处理,计算出明文
[0069]
证明:
[0070]
引入私钥λ,根据carmichael定理得:
[0071][0072]
根据关系(1+n)
x
≡1+nx mod n2得:
[0073][0074]
使用l(x)函数得:
[0075]
(2)汇总当前所有区块的数据m={m1,m2,m3,

,m
n
},m就是之前各个区块的训练结果w1,w2,w3,

,w
n
的集合。
[0076]
(3)同理,当需要共享数据的区块b
i
下载了训练模型密文后,也是通过该方法进行解密。
[0077]
5)数据共享阶段
[0078]
共享区块链汇聚完当前所有数据m后,开始运行对应训练模型计算最终结果r=m
fed
(m),并将结果保存到新的区块.并将结果提供给用户查询使用。模型可以根据需求定期运行或者手动运行,每次运行重复解密和计算两部分即可。当然,因为区块链的不可以篡改特点,模型每次运行结果都将保存。用户可以选择直接下载以前的数据,也可以重新运行产生最新的数据。同时,用户也可以根据实际需求选择用以前的模型进行计算或选择上传新的模型。根据数据量的大小不同,每次运行时间会有所差别,用户也可以有选择的选择部分企业的工业物联网数据进行运算,对于延迟比较大的数据结果可以选择性运行。具体过程
如下所示:
[0079][0080]
步骤1)和5)中数据传输和接收时仅提供数据使用权的接口。
[0081]
实施例1:本实施例是基于混合现实和全息投影的智能化设备视频显示机制,如图2所示,具体包括以下步骤:
[0082]
1)数据采集阶段。不同的企业a、b、c拥有不同的数据区块链b
a
、b
b
、b
c
,用于存储各自的工业设备传感器采集到的数据。因为数据保密的等级不同,区块链上可存储的性能有限,所以传感器返回的信息会根据其保密等级及大小存储在不同区块上,如a企业有摄像头1、摄像头2、摄像头3、工控设备1、工控设备2、工控设备3、温度传感器1、温度传感器2、温度传感器3等。温度传感器数据量相对小一点,b
a
上的一个区块可存储一个温度传感器一天的数据,而摄像头作为大流量数据的传感器,可能一个区块只能存储两小时回传的数据。工控设备传入的数据因保密级别较高,可能需要存储区块链b
a
的非共享区块上。其他两个企业b、c类似,将采集到的数据存储在区块链b
b
、b
c
上。
[0083]
2)数据共享阶段。该阶段主要是企业确定哪些数据可以参与共享,将可以共享的区块对应的标志设置为1。等待用户确定数据训练模型。当有用户上传数据训练模型m
fed
到共享区块链sb后,sb生成新的区块存储训练模型,然后通过同态加密算法加密模型m
fed
,并将加密后的模型m
fed
下发到企业a、b、c的区块链b
a
、b
b
、b
c
上,分别生成新的区块。然后区块链b
a
、b
b
、b
c
上根据模型m
fed
训练数据,并将结果进行加密,加密方法参考第3节介绍相关知识。并将训练后的结果参数返回给共享区块链sb,sb接收到数据后,解密并整合企业a、b、c返回
的数据,再次根据模型m
fed
进行运算,并生成新的区块存储最终训练结果。
[0084]
3)查询使用阶段。当共享区块链sb计算完成最终训练结果后,会给用户返回一个完成的信息。此时用户可以根据自己的情况下载查询训练后的结果并使用结果,或者用户可以选择上传新的模型重新进行计算。
[0085]
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1