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

数据防泄露的方法、电子设备和计算机可读存储介质与流程

2022-04-13 19:22:01 来源:中国专利 TAG:


1.本发明涉及数据处理领域,具体而言,涉及一种数据防泄露的方法、电子设备和计算机可读存储介质。


背景技术:

2.随着隐私保护法案的逐渐完善,各数据持有方之间不能相互共享数据以提高训练模型的精度。而联邦学习这一种通过共享模型梯度参数,实现数据不出本地的方法正是解决这类问题的有效方法。现有的联邦学习大多是中心化的,会有一个第三方协调各客户端的参数。但当第三方协调方存在恶意时,很容易泄露客户端的隐私。因此,采用分布式的联邦学习可以避免这一风险,且分布式的联邦学习可以和区块链有效的结合。
3.相关技术中,有通过在区块链上按既定的顺序一一上传梯度参数并求和,最终求平均聚合。然而,这种情况下若存在相隔的两个客户端恶意串通时,就能轻易的获取中间客户端的梯度参数,反推出其数据分布甚至隐私数据。且串通的越多,被窃取隐私的客户端就越多。
4.因此,目前采用联邦学习的方法,容易被窃取数据,出现数据泄露问题。


技术实现要素:

5.本发明的目的在于提供一种数据防泄露的方法、电子设备和计算机可读存储介质,可以防止联邦组中参与端之间的恶意串通,避免泄露客户隐私数据,提升了数据的安全性。
6.第一方面,本发明提供一种数据防泄露的方法,方法应用于区块链,区块链中包括多个区块链节点,每个区块链节点对应一个联邦组的参与端;区块链上预先存储有公钥列表,公钥列表中包括联邦组的每个参与端对应的公钥;方法包括:响应于第一参与端调用智能合约的调用请求,从公钥列表中选取第一公钥发送至第一参与端;第一公钥为公钥列表中除第一参与端以外的第二参与端中随机一个公钥;获取第一参与端上传的第一密文数据;其中,第一密文数据为第一参与端基于第一公钥对第一参与端对应的第一待发送数据进行加密后的得到的;响应于第二参与端发起的查询请求,将对所述第一密文数据进行解密的第二参与端确定为目标参与端;获取目标参与端上传的第二密文数据;其中,第二密文数据为通过目标参与端基于目标私钥对密文数据进行解密第一待发送数据,基于第二参与端对应的第二待发送数据和第一待发送数据生成第三待发送数据,并基于第二公钥对第三待发送数据进行加密得到的;第二公钥为当前公钥列表中除当前第二参与端对应的公钥之外的其他公钥中随机一个公钥;当每个第二参与端均被确定为目标参与端,并获取到相应的目标参与端发送的第二密文数据之后,将获取的最后一个第二密文数据确定为目标密文数据。
7.在可选的实施方式中,方法还包括:在响应于第一参与端调用智能合约的调用请求之后,将第一参与端对应的公钥存储于已使用列表,同时删除公钥列表中的第一参与端
对应的公钥;以及,在响应于第二参与端发起的查询请求,并确定目标参与端之后,将目标参与端对应的公钥存储于已使用列表,同时删除公钥列表中的目标参与端对应的公钥。
8.在可选的实施方式中,响应于第二参与端发起的查询请求,将对所述第一密文数据进行解密的第二参与端确定为目标参与端的步骤,包括:响应于第二参与端发起的查询请求,通过第二参与端对第一密文数据进行解密,并对解密后得到的验证码进行校验;其中,第二参与端为多个;将验证码校验通过的第二参与端确定为目标参与端。
9.在可选的实施方式中,每个参与端对应的待发送数据包括每个参与端对模型进行训练得到的模型参数;基于第二参与端对应的第二待发送数据和解密后的密文中携带的第一待发送数据生成第三待发送数据的步骤,包括:通过所述第二参与端将与第二参与端对应的第二模型参数和解密后的密文中携带的第一模型参数进行加和处理,得到当前模型参数;基于当前模型参数和预先设置的验证码生成第三模型参数。
10.在可选的实施方式中,当待发送数据为模型参数时,对应的目标参数为对目标密文数据进行均值处理后的模型参数;方法还包括:向每个参与端广播目标参数,以使每个参与端基于目标参数对模型进行更新训练,直至模型收敛。
11.在可选的实施方式中,方法还包括:判断公钥列表是否为空;如果是,确定待发送数据聚合完毕,并将已使用列表中的公钥重新存储于公钥列表中。
12.在可选的实施方式中,基于第二公钥对第三待发送数据进行加密的步骤,包括:基于第二公钥和预先选择的加密方法对第三待发送数据进行加密。
13.第二方面,本发明提供一种数据防泄露的装置,装置应用于区块链,区块链中包括多个区块链节点,每个区块链节点对应一个联邦组的参与端;区块链上预先存储有公钥列表,公钥列表中包括联邦组的每个参与端对应的公钥;装置包括:公钥选取模块,用于响应于第一参与端调用智能合约的调用请求,从公钥列表中选取第一公钥发送至第一参与端;第一公钥为公钥列表中除第一参与端以外的第二参与端中随机一个公钥;第一获取模块,用于获取第一参与端上传的第一密文数据;其中,第一密文数据为第一参与端基于第一公钥对第一参与端对应的第一待发送数据进行加密后的得到的;目标确定模块,用于响应于第二参与端发起的查询请求,将对所述第一密文数据进行解密的第二参与端确定为目标参与端;第二获取模块,用于获取目标参与端上传的第二密文数据;其中,第二密文数据为通过目标参与端基于目标私钥对密文数据进行解密得到第一待发送数据,基于第二参与端对应的第二待发送数据和第一待发送数据生成第三待发送数据,并基于第二公钥对第三待发送数据进行加密得到的;第二公钥为当前公钥列表中除当前第二参与端对应的公钥之外的其他公钥中随机一个公钥;遍历执行模块,用于当每个第二参与端均被确定为目标参与端,并获取到相应的目标参与端发送的第二密文数据之后,将获取的最后一个第二密文数据确定为目标密文数据。
14.第三方面,本发明提供一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的计算机可执行指令,处理器执行计算机可执行指令以实现前述实施方式任一项方法。
15.第四方面,本发明提供一种计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,计算机可执行指令在被处理器调用和执行时,计算机可执行指令促使处理器实现前述实施方式任一项的方法。
16.本发明实施例提供的数据防泄露的方法、电子设备和计算机可读存储介质,该方法应用于区块链,区块链中包括多个区块链节点,每个区块链节点对应一个联邦组的参与端,也即每次联邦组的参与端进行数据上链时,则对应一个区块链节点。上述区块链上预先存储有公钥列表,公钥列表中包括联邦组的每个参与端对应的公钥。该方法首先响应于第一参与端调用智能合约的调用请求,从公钥列表中选取除第一参与端以外的随机一个第二参与端对应的第一公钥发送至第一参与端,然后获取第一参与端上传的第一密文数据,其中,第一密文数据为第一参与端基于第一公钥对第一参与端对应的第一待发送数据进行加密后的得到的。然后,区块链再次响应于第二参与端发起的查询请求,将对所述第一密文数据进行解密的第二参与端确定为目标参与端。进而,获取目标参与端上传的第二密文数据,该第二密文数据为通过目标参与端基于目标私钥对密文数据进行解密得到第一待发送数据,基于第二参与端对应的第二待发送数据和第一待发送数据生成第三待发送数据,并基于第二公钥对第三待发送数据进行加密得到的;第二公钥为当前公钥列表中除当前第二参与端对应的公钥之外的其他公钥中随机一个公钥。最终,当每个第二参与端均被确定为目标参与端,并获取到相应的目标参与端发送的第二密文数据之后,将获取的最后一个第二密文数据确定为目标密文数据。该方式由于第一参与端进行加密时选取的公钥是公钥列表中随机选择的,因此当第二参与端接收到加密的第一密文数据后,无法获知当前接收到的第一密文数据是由联邦组中哪个客户端发送的,相应的,接收到第二密文数据的目标参与端也无法获知当前第二密文数据的发送端是联邦组中的哪个参与端,从而当每个第二参与端在接收到密文数据进行解密时,均无法获知接收的密文数据的发送方,因此可以防止联邦组中参与端之间的恶意串通,避免泄露客户隐私数据,提升了数据的安全性。
17.本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
18.为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
19.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
20.图1为本发明实施例提供的一种数据防泄露的方法的流程图;
21.图2为本发明实施例提供的一种模型参数加密上链的示意图;
22.图3为本发明实施例提供的另一种数据防泄露的方法的流程图;
23.图4为本发明实施例提供的一种数据防泄露的装置的结构图;
24.图5为本发明实施例提供的一种电子设备的结构图。
具体实施方式
25.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明
的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
26.目前联邦学习是数据共享且数据不出本地的一种有效方法,现有的联邦学习大多是中心化的,会有一个第三方协调各客户端的参数。然而,如果当第三方协调方存在恶意时,很容易泄露客户端的隐私。因此,采用分布式的联邦学习可以避免这一风险,且分布式的联邦学习可以和区块链有效的结合。
27.现有的分布式的联邦学习方法中,有通过在区块链上按既定的顺序一一上传梯度参数并求和,最终求平均聚合。但这种情况下若存在相隔的两个客户端恶意串通时,就能轻易的获取中间客户端的梯度参数,反推出其数据分布甚至隐私数据,导致隐私泄露,当训练任务的数据为敏感数据时,该情况便更为严重。诸如,当对于依次进行数据传输的客户端a、b、c和d,当客户端b与d串通时,可以轻易的获取客户端a与c的梯度参数,导致隐私泄露,且串通的越多,被窃取隐私的客户端就越多。基于此,本发明实施例提供的一种数据防泄露的方法、电子设备和计算机可读存储介质,可以避免客户端之间恶意串通,从而避免泄露客户隐私数据,提升了数据的安全性。
28.为便于对本实施例进行理解,首先对本发明实施例所公开的一种数据防泄露的方法进行详细介绍。该数据防泄露的方法应用于区块链,区块链中包括多个区块链节点,每个区块链节点对应一个联邦组的参与端;区块链上预先存储有公钥列表,公钥列表中包括联邦组的每个参与端对应的公钥。
29.为便于理解,假设联邦组的参与端分别为a、b、c、d
……
n,则每个参与端对应有公钥a和对应的私钥a,公钥b和对应的私钥b
……
公钥n和对应的私钥n。每个参与端将自身的公钥发送至区块链,以将每个参与端的公钥存储于公钥列表中。在进行密文解密时,当采用公钥a进行加密时,只有对应的私钥a才可以对密文进行解密,其他的私钥b、c、d
……
n均无法对其进行解密。在此基础上,以下对本发明实施例提供的数据防泄露的方法进行详细说明。
30.参见图1所示,本发明实施例提供的数据防泄露的方法,可以包括以下步骤:
31.步骤s102,响应于第一参与端调用智能合约的调用请求,从公钥列表中选取第一公钥发送至第一参与端。
32.第一参与端为首个发起数据上传的客户端,如果第一参与端要进行联邦学习时,可以首先向区块链发起调用公钥的请求。上述公钥列表中存储的公钥包括联邦组中每个参与端对应的公钥,当区块链接收到第一参与端调用智能合约的调用请求时,为了防止其他参与端获知串通获知第一参与端的模型参数,则第一公钥可以为公钥列表中除第一参与端以外的第二参与端中随机一个公钥。这样可以保证通过该第一公钥进行后续的加密操作时,只有该第一公钥对应的参与端可以对密文数据进行解密,并且该参与端并不能获知接收到的密文数据是哪个参与端发送的,相较于现有技术中,通过告知其他参与端自身的公钥,并通过自身公钥加密数据后发送的方法,更加具有隐私性。
33.上述智能合约为可以用于执行以下流程的合约:
34.1)联邦客户端(包括本实施例的第一参与端和第二参与端)将各自公钥上传作为智能合约的输入;
35.2)智能合约将各客户端的公钥存入到列表public_key中;
36.3)待客户端调用智能合约时,将该客户端的公钥放入另一个列表used中,该列表初始为空列表,再从public_key中随机选择一个公钥发送给该客户端。
37.步骤s104,获取第一参与端上传的第一密文数据。
38.上述第一密文数据为第一参与端基于第一公钥对第一参与端对应的第一待发送数据进行加密后的得到的。当第一参与端接收到第一公钥时,由于该第一公钥时从公钥列表中获取的除自身以外的其他参与端中随机一个公钥,因此第一参与端也不会获知第一密文数据将会发送至哪个参与端,也即针对第一参与端,也可以保证数据书传输的隐私性,从而可以保证数据防泄漏。
39.步骤s106,响应于第二参与端发起的查询请求,将对第一密文数据进行解密的第二参与端确定为目标参与端。
40.当第一参与端将第一密文数据上传至区块链,并由区块链获取到该第一密文数据之后,由于联邦组的其他的第二参与端不知道是否是用自身公钥加密的,因此,每个第二参与端均可以向区块链发起查询请求,以从区块链上查询加密后的数据,但是,只有与第一公钥对应的参与端才可以通过对应的目标私钥对第一密文数据进行解密,因此,在接收到第二参与端发起的查询请求后,如果有第二参与端对第一密文数据解密成功,则将该第二参与端确定为目标参与端。
41.步骤s108,获取目标参与端上传的第二密文数据。
42.上述第二密文数据为通过目标参与端基于目标私钥对第一密文数据进行解密得到第一待发送数据,基于第二参与端对应的第二待发送数据和第一待发送数据生成第三待发送数据,并基于第二公钥对第三待发送数据进行加密得到的。
43.目标私钥和上述第一公钥为确定的目标参与端对应的密钥对。通过该目标私钥可以对第一密文数据进行解密,从而得到第一参与端发送的第一待发送数据。需要注意的是,虽然目标参与端可以解密得到的第一待发送数据,但是并不会获知该第一待发送数据是哪个参与端发送的。
44.将解密得到的第一待发送数据和目标参与端自身的第二待发送数据进行叠加操作,诸如可以是数据聚合,也可以是单纯的参数加和,可以得到对应的第三待发送数据。该第三待发送数据的生成方式可以根据数据的类型和数据操作需求进行相应的确定,在一种实施方式中,当待发送数据为模型梯度参数时,为了便于联邦组中每个参与端能够进一步对自身本地的模型进行更新训练,则生成数据的方式可以采用对模型梯度参数求均值的方式。
45.上述第二公钥为当前公钥列表中除当前第二参与端对应的公钥之外的其他公钥中随机一个公钥。由于第一参与端已经进行过数据的加密操作,因此,当前公钥列表为不包括第一参与端的公钥的公钥列表,这样可以保证数据在联邦组中未进行数据加密和解密的其他参与端之间的连续流转,同时,仍然采用随机选取可以避免其他第二参与端之间串通导致的数据泄露问题的发生。
46.步骤s110,当每个第二参与端均被确定为目标参与端,并获取到相应的目标参与端发送的第二密文数据之后,将获取的最后一个第二密文数据确定为目标密文数据。
47.上述每个第二参与端均被确定为目标参与端,指的是每个第二参与端的公钥均为
选择过进行数据加密,且该第二参与端也通过自身的私钥对获取的密文数据进行解密成功过,也即,联邦组的每个参与端均进行过一次数据的上链操作,则将最后一个执行数据上链的参与端上传的密文数据确定为最终的目标密文数据。通过该方式,联邦组的每个参与端均参与了数据的上链,但是却无法获知数据流转过程中上一个参与端和下一个参与端,因此避免了参与端之间的串通,保证了数据防泄漏的效果。
48.本发明实施例提供的数据防泄露的方法,首先响应于第一参与端调用智能合约的调用请求,从公钥列表中选取除第一参与端以外的随机一个第二参与端对应的第一公钥发送至第一参与端,然后获取第一参与端上传的第一密文数据,其中,第一密文数据为第一参与端基于第一公钥对第一参与端对应的第一待发送数据进行加密后的得到的。然后,区块链再次响应于第二参与端发起的查询请求,将对所述第一密文数据进行解密的第二参与端确定为目标参与端。进而,获取目标参与端上传的第二密文数据,该第二密文数据为通过目标参与端基于目标私钥对密文数据进行解密,基于第二参与端对应的第二待发送数据和解密后的密文中携带的第一待发送数据生成第三待发送数据,并基于第二公钥对第三待发送数据进行加密得到的;第二公钥为当前公钥列表中除当前第二参与端对应的公钥之外的其他公钥中随机一个公钥。最终,当每个第二参与端均被确定为目标参与端,并获取到相应的目标参与端发送的第二密文数据之后,将获取的最后一个第二密文数据确定为目标密文数据。该方式由于第一参与端进行加密时选取的公钥是公钥列表中随机选择的,因此当第二参与端接收到加密的第一密文数据后,无法获知当前接收到的第一密文数据是由联邦组中哪个客户端发送的,相应的,接收到第二密文数据的目标参与端也无法获知当前第二密文数据的发送端是联邦组中的哪个参与端,从而当每个第二参与端在接收到密文数据进行解密时,均无法获知接收的密文数据的发送方,因此可以防止联邦组中参与端之间的恶意串通,避免泄露客户隐私数据,提升了数据的安全性。
49.在一可选的实施方式中,为了保证每个参与端在进行数据加密后,不会再一次参与到本轮的数据流转,从而导致数据流转中断,上述方法还包括:在响应于第一参与端调用智能合约的调用请求之后,将第一参与端对应的公钥存储于已使用列表,同时删除公钥列表中的第一参与端对应的公钥;以及,在响应于第二参与端发起的查询请求,并确定所述目标参与端之后,将目标参与端对应的公钥存储于已使用列表,同时删除公钥列表中的目标参与端对应的公钥。
50.在一种实施方式中,当第一参与端发起调用请求后,将该第一参与端对应的公钥存入已使用列表used中,再从公钥列表public_key中将该第一参与端对应的公钥删除,并从公钥列表public_key中剩余的公钥中随机选择一个公钥发送至第一参与端。
51.在另一种实施方式中,当任意一个第二参与端发起调用请求后,首先确定该第二参与端是否为目标参与端,当确定该第二参与端为目标参与端时,将该第二参与端(也即目标参与端)对应的公钥存入已使用列表used中,再从公钥列表public_key中将该第二参与端(也即目标参与端)对应的公钥删除,并从公钥列表public_key中当前剩余的公钥中随机选择一个公钥发送至该第二参与端(也即目标参与端)。
52.进一步,在确定目标参与端时,可以包括以下步骤:
53.步骤1.1)响应于第二参与端发起的调用请求,通过第二参与端对第一密文数据进行解密,并对解密后得到的验证码进行校验。其中,第二参与端为多个,也即,多个第二参与
端均获取链上数据并尝试解密,解密后匹配末尾的验证码。在一种实施方式中,可以通过s=c^d mod n进行解密,其中,s=m||k,m为对第一密文数据进行解密后得到的明文数据,k为验证码,通过明文m后拼接一串验证码k,确定s;明文m即第二参与端对应的待发送数据,验证码可以在一开始统一设定。c为第一密文数据;d为第二参与端的私钥;n为公共模数,为设定的两个质数p与q的乘积,即n=p*q,欧拉函数
54.步骤1.2)将验证码校验通过的第二参与端确定为目标参与端。当验证码匹配正确,则代表是用该客户端的公钥进行的加密,例如,明文数据为12,验证码为0268,则要进行加密的数据为120268,当解密后得到对应的验证码,则可以确定该第二参与端为目标参与端。需要注意的是,验证码为预先设定的固定值,每个参与端均知晓该验证码,且验证码唯一。上述举例中验证码仅为示例,在实际应用中,还可以采用其他验证码进行验证。
55.在一种实施方式中,上述每个参与端对应的待发送数据包括每个参与端对模型进行训练得到的模型参数,诸如可以包括模型梯度参数或模型结构参数等,则上述基于第二参与端对应的第二待发送数据和解密后的密文中携带的第一待发送数据生成第三待发送数据时,可以通过第二参与端将与第二参与端对应的第二模型参数和解密后的密文中携带的第一模型参数进行加和处理,得到当前模型参数,并基于当前模型参数和预先设置的验证码生成第三模型参数。在进行加和处理之前,首先将对第一密文数据解密后得到的验证码进行去除,并将将自身参数与解密后的参数相加,然后再次加上预先设置的验证码得到第三模型参数。
56.进一步,再次从当前公钥列表中获取一个随机的公钥对该第三模型参数进行加密,并将加密后的密文数据上链。
57.当待发送数据为模型参数时,且每个第二参与端均进行密文解密-确定为目标参与端-密文加密-上链操作后,将联邦组中最后一个第二参与端处理后的得到的第三模型参数确定为目标参数。该目标参数为对目标密文数据进行均值处理后的模型参数,也即,该目标参数为将联邦组中每个参与端的模型参数进行加和平均处理后得到的最终的模型参数。当区块链确定该目标模型参数之后,向每个参与端广播目标参数,以使每个参与端基于目标参数对模型进行更新训练,直至模型收敛。
58.上述得到模型参数的具体的训练模型过程因训练任务而异。例如图节点分类问题,可以采用图神经网络训练模型完成分类任务。
59.参见图2所示,图中encn()表示使用参与端n的公钥进行加密,recn()表示使用参与端n的私钥进行解密,x0,x1表示各参与端的模型参数。当所述的参与端用新的模型参数替换模型,并开始下一轮的训练,即重复上述步骤,直至模型收敛。
60.在一可选的实施方式中,上述方法还包括,判断公钥列表是否为空;如果是,则确定待发送数据聚合完毕,此时,公钥列表为空,但已使用列表中存储有联邦组的每个参与端的公钥。考虑到可以会再次执行上述逻辑,因此将已使用列表中的公钥重新存储于公钥列表中,并将已使用列表清空。
61.上述第二参与端在基于第二公钥对第三待发送数据进行加密时,可以基于第二公钥和预先选择的非对称加密方法对第三待发送数据进行加密。在一种实施方式中,加密算法采用的为rsa非对称加密,联邦组中每个参与端的上传的公钥组pk=(e,n),n为公共模
数,为设定的两个质数p,q的乘积,即n=p*q,欧拉函数公钥e满足e满足且e与必须为互质数。参与端自身持有的私钥d由公式计算得出。可以在明文m后拼接一串验证码k,记为s,s=m||k。例如明文为12,验证码为0268,则要进行加密的数据为120268,即公钥加密的算法为c=(m||k)emod n,c为密文数据。该密文数据的生成方式可以适用于上述第一参与端和任意一个第二参与端的加密过程,此处不再赘述。
62.在一种实施方式中,还可以参见图3所示的流程图,该方法包括以下步骤:
63.步骤s31,联邦参与方通过智能合约上传各自公钥至区块链。联邦参与方也即上述联邦组中的每个参与端,智能合约为执行公钥输入、公钥存储(包括存储到公钥列表和已使用列表)、公钥选择的代码逻辑。
64.步骤s32,联邦参与方本地训练获得模型的参数。
65.步骤s33,最先完成训练的参与方调用智能合约获得随机挑选的公钥对自身参数进行加密。最先完成训练的参与方也即上述第一参与端。
66.步骤s34,未解密成功过的参与方获取链上数据并尝试解密,解密后对比验证码。未解密成功过的参与方也即上述第二参与端。
67.步骤s35,匹配成功的参与方将解密后的参数加上自身参数。匹配成功的参与方也即上述目标参与端。
68.步骤s36,判断所有公钥是否都已被使用,如果是,则执行步骤s37,如果否,则执行s38。
69.步骤s37,对解密后的参数求均值并广播给所有参与方,进而执行步骤s39。
70.步骤s38,调用智能合约获得未使用过的公钥进行加密。并进一步执行s33。
71.步骤s39,进行下一轮训练直至全局模型收敛。
72.上述整个过程中,所有加密的参与方都不知道公钥的归属,解密的参与方也不知道上一个上链的是哪个参与方端。因此即使存在参与方之间串通,也无法获得联邦组中参与方的隐私,可以降低数据泄露和被窃取的风险,且随机上链的模式还能预防客户端串通作恶。
73.本发明实施例还提供一种数据防泄露的装置,装置应用于区块链,区块链中包括多个区块链节点,每个区块链节点对应一个联邦组的参与端;区块链上预先存储有公钥列表,公钥列表中包括联邦组的每个参与端对应的公钥;参见图4所示,该装置包括以下部分:
74.公钥选取模块402,用于响应于第一参与端调用智能合约的调用请求,从公钥列表中选取第一公钥发送至第一参与端;第一公钥为公钥列表中除第一参与端以外的第二参与端中随机一个公钥;
75.第一获取模块404,用于获取所述第一参与端上传的第一密文数据;其中,所述第一密文数据为所述第一参与端基于所述第一公钥对所述第一参与端对应的第一待发送数据进行加密后的得到的;
76.目标确定模块406,用于响应于第二参与端发起的查询请求,将对所述第一密文数据进行解密的第二参与端确定为目标参与端;
77.第二获取模块408,用于获取所述目标参与端上传的第二密文数据;其中,所述第
二密文数据为通过所述目标参与端基于目标私钥对所述密文数据进行解密得到第一待发送数据,基于第二参与端对应的第二待发送数据和第一待发送数据生成第三待发送数据,并基于第二公钥对所述第三待发送数据进行加密得到的;所述第二公钥为当前公钥列表中除当前第二参与端对应的公钥之外的其他公钥中随机一个公钥;
78.遍历执行模块410,用于当每个第二参与端均被确定为所述目标参与端,并获取到相应的目标参与端发送的第二密文数据之后,将获取的最后一个第二密文数据确定为目标密文数据。
79.本发明实施例提供的数据防泄露的装置,首先响应于第一参与端调用智能合约的调用请求,从公钥列表中选取除第一参与端以外的随机一个第二参与端对应的第一公钥发送至第一参与端,然后获取第一参与端上传的第一密文数据,其中,第一密文数据为第一参与端基于第一公钥对第一参与端对应的第一待发送数据进行加密后的得到的。然后,区块链再次响应于第二参与端发起的查询请求,将对所述第一密文数据进行解密的第二参与端确定为目标参与端。进而,获取目标参与端上传的第二密文数据,该第二密文数据为通过目标参与端基于目标私钥对密文数据进行解密得到第一待发送数据,基于第二参与端对应的第二待发送数据和解密后的密文中携带的第一待发送数据生成第三待发送数据,并基于第二公钥对第三待发送数据进行加密得到的;第二公钥为当前公钥列表中除当前第二参与端对应的公钥之外的其他公钥中随机一个公钥。最终,当每个第二参与端均被确定为目标参与端,并获取到相应的目标参与端发送的第二密文数据之后,将获取的最后一个第二密文数据确定为目标密文数据。该方式由于第一参与端进行加密时选取的公钥是公钥列表中随机选择的,因此当第二参与端接收到加密的第一密文数据后,无法获知当前接收到的第一密文数据是由联邦组中哪个客户端发送的,相应的,接收到第二密文数据的目标参与端也无法获知当前第二密文数据的发送端是联邦组中的哪个参与端,从而当每个第二参与端在接收到密文数据进行解密时,均无法获知接收的密文数据的发送方,因此可以防止联邦组中参与端之间的恶意串通,避免泄露客户隐私数据,提升了数据的安全性。
80.在一些实施方式中,上述装置还包括:列表处理模块,用于在响应于第一参与端调用智能合约的调用请求之后,将第一参与端对应的公钥存储于已使用列表,同时删除公钥列表中的第一参与端对应的公钥;以及,在响应于第二参与端发起的查询请求,并确定所述目标参与端之后,将目标参与端对应的公钥存储于已使用列表,同时删除公钥列表中的目标参与端对应的公钥。
81.在一些实施方式中,上述目标确定模块406,还用于:响应于第二参与端发起的查询请求,通过第二参与端对第一密文数据进行解密,并对解密后得到的验证码进行校验;其中,第二参与端为多个;将验证码校验通过的第二参与端确定为目标参与端。
82.在一些实施方式中,每个参与端对应的待发送数据包括每个参与端对模型进行训练得到的模型参数;上述第二获取模块408,还用于:通过第二参与端将与第二参与端对应的第二模型参数和解密后的密文中携带的第一模型参数进行加和处理,得到当前模型参数;基于当前模型参数和预先设置的验证码生成第三模型参数。
83.在一些实施方式中,当待发送数据为模型参数时,对应的目标参数为对目标密文数据进行均值处理后的模型参数;上述装置还包括参数广播模块,用于:向每个参与端广播目标参数,以使每个参与端基于目标参数对模型进行更新训练,直至模型收敛。
84.在一些实施方式中,上述装置还包括:列表重存模块,用于判断公钥列表是否为空;如果是,确定待发送数据聚合完毕,并将已使用列表中的公钥重新存储于公钥列表中。
85.在一些实施方式中,上述第二获取模块408,还用于:基于第二公钥和预先选择的加密方法对第三待发送数据进行加密。
86.本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
87.本发明实施例提供了一种电子设备,具体的,该电子设备包括处理器和存储装置;存储装置上存储有计算机程序,计算机程序在被所述处理器运行时执行如上所述实施方式的任一项所述的方法。
88.图5为本发明实施例提供的一种电子设备的结构示意图,该电子设备100包括:处理器50,存储器51,总线52和通信接口53,所述处理器50、通信接口53和存储器51通过总线52连接;处理器50用于执行存储器51中存储的可执行模块,例如计算机程序。
89.其中,存储器51可能包含高速随机存取存储器(ram,random access memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口53(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
90.总线52可以是isa总线、pci总线或eisa总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
91.其中,存储器51用于存储程序,所述处理器50在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流过程定义的装置所执行的方法可以应用于处理器50中,或者由处理器50实现。
92.处理器50可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器50中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器50可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(digital signal processing,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现成可编程门阵列(field-programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器51,处理器50读取存储器51中的信息,结合其硬件完成上述方法的步骤。
93.本发明实施例所提供的数据防泄露的方法、电子设备和计算机可读存储介质的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
94.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统
和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
95.另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
96.所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
97.在本发明的描述中,需要说明的是,术语术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。
98.最后应说明的是:以上实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
再多了解一些

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

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

相关文献