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

联邦学习审计装置、系统及方法与流程

2021-12-01 01:52:00 来源:中国专利 TAG:


1.本技术涉及数据安全和隐私保护技术领域,具体涉及一种联邦学习审计装置、系统及方法。


背景技术:

2.随着人工智能和大数据挖掘分析等应用领域的发展,对数据量的需求越来越大。例如训练人工智能的应用模型需要使用大量带有合适的数据标签或者特征数值的训练数据。高质量的数据往往来源于经营活动中产生和积累的应用数据。但是应用数据往往分散在不同的组织和个体手上,例如交易数据分散在各个金融机构,医疗诊断数据分散在各个医疗机构。跨行业跨领域的应用数据往往也是分散的,例如互联网领域的社交属性数据和电商交易数据往往由不同实体掌控。随着数据所有权的重要性、用户隐私和数据安全等受到更多重视,也随着法律法规对数据收集处理提出更严格的约束和要求,掌握应用数据的各个组织或个体往往不愿意或者没有合适手段进行彼此之间的合作,从而很难让各自掌握的应用数据共同发挥作用。这种数据分享和协同合作方面的困境被称之为数据孤岛现象。为了解决跨行业跨组织的数据合作难题,尤其是关键的隐私保护及数据安全的问题,提出了联邦学习的概念。联邦学习指的是拥有数据的各个参与方,在不共享受保护的隐私数据且自有数据不传递到外部的前提下,通过加密的方式交换模型相关信息从而实现协同优化联邦学习模型。其中,联邦学习根据训练数据在不同参与方之间的数据特征空间和样本空间的分布情况,可以划分为在数据特征空间重叠较大而在样本空间重叠较小的横向联邦学习,在数据特征空间重叠较小而在样本空间重叠较大的纵向联邦学习,以及在数据特征空间和样本空间均重叠较小的联邦迁移学习。
3.联邦学习的各个参与方有大量的数据在彼此之间传输,因此有巨大的出入通信/流量的需求,而且在参与方之间传递的数据往往是加密后得到的大整数位宽的密态数据从而进一步提高了出入通信/流量的需求。其中,参与方可以是联邦学习模型的服务提供方,联邦学习模型的用户或查询方,或者任意联邦学习框架下的任意适合角色,例如fate开源框架下的是三种角色也即数据的提供者(host)、数据的应用方(guest)及联邦学习模型的裁决方(arbiter)中的一种。这些参与方基于自身角色定位和实际需求,并且各自在协同优化联邦学习模型或者使用联邦学习服务时可能遭遇到不同的故障发生或者通讯干扰的情况,因此对通信和计算的安全性有变化的多样化的诉求。另外还可能存在恶意的攻击方,从而使得通信和计算的安全性受到威胁。为此,需要一种解决方案不仅可以高效高速地审计各个参与方各自的出入通信/流量,例如审计某个参与方接收或者发送的数据流量或者数据包并且将可能的错误或者恶意信息报告给管理方,而且能够满足不同参与方各自的对通信和计算的安全性方面的变化的多样化的诉求,从而有利于确保联邦学习参与方特别是有众多参与方参与的联邦学习任务情况下的通信和计算的安全性。


技术实现要素:

4.本技术实施例为了解决,如何不仅可以高效高速地审计各个参与方各自的出入通信/流量而且能够满足不同参与方各自的对通信和计算的安全性方面的变化的多样化的诉求,这样的技术难题,通过提供了一种联邦学习审计装置、系统及方法,从而实现了通过不同的审计级别和设定各自独立的审计机制,可以满足每个参与方对通信和计算的安全性多样化的诉求,有利于系统整体安全性。
5.第一方面,本技术实施例提供了一种联邦学习审计方法。所述联邦学习审计方法包括:获得参与方所接收和/或发送的数据包;和根据所述参与方的审计级别而开启控制流审计、算法流审计以及数据流审计中的一种或者多种,从而审计所述数据包并生成审计结果。其中,所述控制流审计用于校验所述数据包的控制流信息,所述控制流信息与所述参与方所参与的联邦学习任务相关。所述算法流审计用于检验所述数据包的算法流信息,所述算法流信息与联邦学习算法相关,所述联邦学习算法对应所述联邦学习任务中的模块。所述数据流审计用于校验所述数据包的数据流信息,所述数据流信息与所述参与方的通信数据相关。
6.第一方面所描述的技术方案,通过不同的审计级别和设定各自独立的审计机制,可以满足每个参与方因自身需求和资源不同而产生的对通信和计算的安全性方面变化的多样化的诉求,有利于灵活调整系统整体的安全性。
7.根据第一方面所述的实施例,在一种实施方式中,所述联邦学习审计方法还包括:根据所述审计结果来判断所述数据包是否存在错误,并且根据判断结果确定是否让所述数据包用于所述联邦学习任务或者所述联邦学习算法。如此有利于实现实时审计。
8.根据第一方面所述的实施例,在一种实施方式中,所述联邦学习审计方法还包括:根据所述审计结果来判断所述数据包是否存在错误,在进行判断同时继续让所述数据包用于所述联邦学习任务或者所述联邦学习算法。如此有利于实现事后审计。
9.根据第一方面所述的实施例,在一种实施方式中,所述控制流信息包括与所述参与方所参与的联邦学习任务相对应的模块调用列表和模块调用次序。如此有利于实现根据模块调用列表和模块调用次序来审计。
10.根据第一方面所述的实施例,在一种实施方式中,所述控制流审计包括,根据所述数据包的控制流信息,确定与所述联邦学习任务相对应的模块调用列表是否与参考模块调用列表一致以及确定与所述联邦学习任务相对应的模块调用次序是否与参考模块调用次序一致,其中,所述参考模块列表和所述参考模块调用次序均预先设定。如此有利于根据参考模块列表和参考模块调用次序来审计。
11.根据第一方面所述的实施例,在一种实施方式中,根据所述数据包的控制流信息,确定与所述联邦学习任务相对应的模块调用列表是否与所述参考模块调用列表一致以及确定与所述联邦学习任务相对应的模块调用次序是否与所述参考模块调用次序一致,包括:根据所述数据包的控制流信息,判断与所述联邦学习任务相对应的模块调用列表和与所述联邦学习任务相对应的模块调用次序是否均符合用于控制流审计的有限状态机fsm,其中,所述用于控制流审计的fsm预先设定。如此,通过fsm有利于简化审计过程提高效率。
12.根据第一方面所述的实施例,在一种实施方式中,所述用于控制流审计的fsm是多个预设的联邦学习任务fsm之一,所述多个预设的联邦学习任务fsm与多个联邦学习任务一
一对应,所述多个联邦学习任务包括以下至少一种任务:纵向安全梯度提升树任务、纵向逻辑回归任务、本地sklearn逻辑回归任务、纵向线性回归任务、纵向泊松回归任务、横向逻辑回归任务、横向神经网络任务、纵向快速安全梯度提升树任务、纵向神经网络任务、横向安全梯度提升树任务、纵向联邦迁移学习任务、纵向k

means任务、feldman安全求和任务。如此,通过fsm有利于简化审计过程提高效率。
13.根据第一方面所述的实施例,在一种实施方式中,所述多个预设的联邦学习任务fsm均是有向无环图dag并且可通过拓扑排序被转化为一个或者多个单向无分叉的dag。如此,通过dag有利于简化审计过程提高效率。
14.根据第一方面所述的实施例,在一种实施方式中,获得所述参与方所接收或者发送的数据包,包括:根据所述多个预设的联邦学习任务fsm中与所述参与方所参与的联邦学习任务相对应的fsm,确定抓取间隔,并根据所述抓取间隔来间隔地获得所述参与方所接收或者发送的数据包。如此,通过抓取间隔有利于提高审计的整体效率。
15.根据第一方面所述的实施例,在一种实施方式中,所述抓取间隔是所述多个预设的联邦学习任务fsm中与所述参与方所参与的联邦学习任务相对应的fsm中的最短子路径的长度减一。如此,通过抓取间隔有利于提高审计的整体效率。
16.根据第一方面所述的实施例,在一种实施方式中,审计所述数据包并生成所述审计结果,包括:审计根据所述抓取间隔来间隔地获得的所述数据包并生成所述控制流审计的审计结果。如此,通过抓取间隔有利于提高审计的整体效率。
17.根据第一方面所述的实施例,在一种实施方式中,所述算法流信息包括所述联邦学习算法的执行流程。如此有利于实现根据算法执行流程来审计。
18.根据第一方面所述的实施例,在一种实施方式中,所述算法流审计包括,根据所述数据包的算法流信息确定所述联邦学习算法的执行流程是否与参考算法执行流程一致,其中,所述参考算法执行流程预先设定。如此有利于根据参考算法执行流程来审计。
19.根据第一方面所述的实施例,在一种实施方式中,根据所述数据包的算法流信息确定所述联邦学习算法的执行流程是否与所述参考算法执行流程一致,包括:根据所述数据包的算法流信息判断所述联邦学习算法的执行流程是否符合用于算法流审计的fsm,其中,所述用于算法流审计的fsm基于所述参考算法执行流程。如此,通过fsm有利于简化审计过程提高效率。
20.根据第一方面所述的实施例,在一种实施方式中,所述用于算法流审计的fsm是多个预设的联邦学习算法fsm之一,所述多个预设的联邦学习算法fsm与多个联邦学习算法一一对应,所述多个联邦学习算法包括以下至少一种算法:求交集算法、纵向安全梯度提升树算法、纵向逻辑回归算法、本地sklearn逻辑回归算法、纵向线性回归算法、纵向泊松回归算法、横向逻辑回归算法、横向神经网络算法、纵向快速安全梯度提升树算法、纵向安全梯度提升树特征编码算法、纵向神经网络算法、横向安全梯度提升树算法、纵向联邦迁移学习算法、纵向k

means算法、feldman安全求和算法。如此,通过fsm有利于简化审计过程提高效率。
21.根据第一方面所述的实施例,在一种实施方式中,所述多个预设的联邦学习算法fsm包括不带有迭代计算的第一类联邦学习算法fsm和带有迭代计算的第二类联邦学习算法fsm,其中,所述第一类联邦学习算法fsm均是dag并且可通过拓扑排序被转化为一个或者
多个单向无分叉的dag。如此,通过dag有利于简化审计过程提高效率。
22.根据第一方面所述的实施例,在一种实施方式中,获得所述参与方所接收或者发送的数据包,包括:判断所述联邦学习算法是否属于所述第一类联邦学习算法,若是,则根据所述第一类联邦学习算法fsm中与所述联邦学习算法相对应的fsm,确定抓取间隔,并根据所述抓取间隔来间隔地获得所述参与方所接收或者发送的数据包。如此,通过抓取间隔有利于提高审计的整体效率。
23.根据第一方面所述的实施例,在一种实施方式中,所述抓取间隔是所述第一类联邦学习算法fsm中与所述联邦学习算法相对应的fsm中的最短子路径的长度减一。如此,通过抓取间隔有利于提高审计的整体效率。
24.根据第一方面所述的实施例,在一种实施方式中,审计所述数据包并生成所述审计结果,包括:审计根据所述抓取间隔来间隔地获得的所述数据包并生成所述算法流审计的审计结果。如此,通过抓取间隔有利于提高审计的整体效率。
25.根据第一方面所述的实施例,在一种实施方式中,所述第二类联邦学习算法fsm中的迭代计算按照自内向外的嵌套关系被转化为多个可反复执行的dag,其中,所述多个可反复执行的dag中的每一个下层dag是相对于该下层dag而言的上层dag中的状态节点。如此,通过dag有利于简化审计过程提高效率。
26.根据第一方面所述的实施例,在一种实施方式中,所述多个可反复执行的dag中的每一个dag包括一个或者多个强连通scc分量。如此,通过dag有利于简化审计过程提高效率。
27.根据第一方面所述的实施例,在一种实施方式中,与该下层dag对应的状态节点的合法状态转移事件是完成对该下层dag的迭代计算。如此,通过dag有利于简化审计过程提高效率。
28.根据第一方面所述的实施例,在一种实施方式中,获得所述参与方所接收或者发送的数据包,包括:判断所述联邦学习算法是否属于所述第二类联邦学习算法,若是,则根据所述第二类联邦学习算法fsm中与所述联邦学习算法相对应的fsm被转化而成的多个可反复执行的dag,确定抓取间隔,并根据所述抓取间隔来间隔地获得所述参与方所接收或者发送的数据包。如此,通过抓取间隔有利于提高审计的整体效率。
29.根据第一方面所述的实施例,在一种实施方式中,审计所述数据包并生成所述审计结果,包括:审计根据所述抓取间隔来间隔地获得的所述数据包并生成所述算法流审计的审计结果。
30.根据第一方面所述的实施例,在一种实施方式中,所述通信数据与所述联邦学习任务或者所述联邦学习算法相关,所述数据流信息包括所述通信数据的基本特征,其中,所述基本特征包括以下至少一种:大小、类型、格式、哈希值。如此有利于实现根据数据的基本特征来审计。
31.根据第一方面所述的实施例,在一种实施方式中,所述数据流审计包括,根据所述数据包的数据流信息确定所述基本特征是否符合预设规范。如此有利于实现根据数据的基本特征来审计。
32.根据第一方面所述的实施例,在一种实施方式中,所述数据流信息还包括密态数据,所述数据流审计还包括,根据所述数据包的数据流信息确定所述密态数据被解密后是
否合理。如此,实现了根据密态数据解密后的结果来审计。
33.根据第一方面所述的实施例,在一种实施方式中,根据所述数据包的数据流信息确定所述密态数据被解密后是否合理,包括:根据预设规则表判断所述密态数据被解密后是否满足合理范围和可为空属性的要求。如此,通过预设规则表提高了审计的效率。
34.根据第一方面所述的实施例,在一种实施方式中,所述方法还包括:判断所述参与方是否为裁决方或者具有裁决方权限,并且当且仅当所述参与方为裁决方或者具有裁决方权限时允许所述参与方审计所述密态数据。如此,实现了对审计密态数据的权限的控制。
35.第二方面,本技术实施例提供了一种非瞬时性计算机可读存储介质。该计算机存储介质保存计算机指令,其特征在于,该计算机指令被处理装置执行时,使得所述处理装置执行根据第一方面中任一项所述的联邦学习审计方法。
36.第二方面所描述的技术方案,通过不同的审计级别和设定各自独立的审计机制,可以满足每个参与方因自身需求和资源不同而产生的对通信和计算的安全性方面变化的多样化的诉求,有利于灵活调整系统整体的安全性。
37.第三方面,本技术实施例提供了一种联邦学习审计系统。所述联邦学习审计系统包括多个参与方用于协同进行联邦学习模型的训练或者应用,所述多个参与方中的至少一个参与方根据第一方面中任一项所述的联邦学习审计方法对该参与方所接收或者发送的数据包进行审计。
38.第三方面所描述的技术方案,通过不同的审计级别和设定各自独立的审计机制,可以满足每个参与方因自身需求和资源不同而产生的对通信和计算的安全性方面变化的多样化的诉求,有利于灵活调整系统整体的安全性。
39.第四方面,本技术实施例提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现根据第一方面中任一项所述的联邦学习审计方法。
40.第四方面所描述的技术方案,通过不同的审计级别和设定各自独立的审计机制,可以满足每个参与方因自身需求和资源不同而产生的对通信和计算的安全性方面变化的多样化的诉求,有利于灵活调整系统整体的安全性。
41.第五方面,本技术实施例提供了一种电子设备,所述电子设备包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行根据第一方面中任一项所述的联邦学习审计方法。
42.第五方面所描述的技术方案,通过不同的审计级别和设定各自独立的审计机制,可以满足每个参与方因自身需求和资源不同而产生的对通信和计算的安全性方面变化的多样化的诉求,有利于灵活调整系统整体的安全性。
43.第六方面,本技术实施例提供了一种联邦学习审计装置。所述联邦学习审计装置包括:数据收集模块,用于获得参与方所接收或者发送的数据包;和数据分析模块,用于根据所述参与方的审计级别而开启控制流审计、算法流审计以及数据流审计中的一种或者多种,从而审计所述数据包并生成审计结果。其中,所述控制流审计用于校验所述数据包的控制流信息,所述控制流信息与所述参与方所参与的联邦学习任务相关。所述算法流审计用于检验所述数据包的算法流信息,所述算法流信息与联邦学习算法相关,所述联邦学习算法对应所述联邦学习任务中的模块。所述数据流审计用于校验所述数据包的数据流信息,
所述数据流信息与所述参与方的通信数据相关。
44.第六方面所描述的技术方案,通过不同的审计级别和设定各自独立的审计机制,可以满足每个参与方因自身需求和资源不同而产生的对通信和计算的安全性方面变化的多样化的诉求,有利于灵活调整系统整体的安全性。
45.根据第六方面所述的实施例,在一种实施方式中,所述联邦学习审计装置还包括:密钥管理模块,用于密钥生成和密钥维护,其中,所述密钥生成是基于量子随机数。如此,实现了通过量子随机数提高密钥管理的安全性。
46.根据第六方面所述的实施例,在一种实施方式中,所述密钥生成包括基于量子随机数生成用于paillier加密算法的私钥,其中,所述私钥基于等比特位宽的两个不相等素数生成,在生成所述私钥的过程中通过判断校验误差是否低于2的负t次幂来进行素数校验,所述t是所述量子随机数的比特位宽。如此,通过素数校验过程的优化而改进了密钥生成的过程。
47.第七方面,本技术实施例提供了一种联邦学习审计系统。所述联邦学习审计系统包括多个参与方用于协同进行联邦学习模型的训练或者应用,所述多个参与方中的每一个参与方包括根据第六方面中任一项所述的联邦学习审计装置,所述多个参与方通过区块链技术来共同存储和维护参与通信的密态中间结果。
48.第七方面所描述的技术方案,通过不同的审计级别和设定各自独立的审计机制,可以满足每个参与方因自身需求和资源不同而产生的对通信和计算的安全性方面变化的多样化的诉求,有利于灵活调整系统整体的安全性。
附图说明
49.为了说明本技术实施例或背景技术中的技术方案,下面将对本技术实施例或背景技术中所需要使用的附图进行说明。
50.图1示出了本技术实施例提供的联邦学习审计装置的结构框图。
51.图2示出了本技术实施例提供的一种实施方式的联邦学习审计系统的示意图。
52.图3示出了本技术实施例提供的另一种实施方式的联邦学习审计系统的示意图。
53.图4示出了本技术实施例提供的联邦学习审计方法的流程示意图。
具体实施方式
54.本技术实施例为了解决,如何不仅可以高效高速地审计各个参与方各自的出入通信/流量而且能够满足不同参与方各自的对通信和计算的安全性方面的变化的多样化的诉求,这样的技术难题,通过提供了一种联邦学习审计装置、系统及方法。其中,所述联邦学习审计方法包括:获得参与方所接收或者发送的数据包;和根据所述参与方的审计级别而开启控制流审计、算法流审计以及数据流审计中的一种或者多种,从而审计所述数据包并生成审计结果。其中,所述控制流审计用于校验所述数据包的控制流信息,所述控制流信息与所述参与方所参与的联邦学习任务相关。所述算法流审计用于检验所述数据包的算法流信息,所述算法流信息与联邦学习算法相关,所述联邦学习算法对应所述联邦学习任务中的模块。所述数据流审计用于校验所述数据包的数据流信息,所述数据流信息与所述参与方的通信数据相关。如此,实现了通过不同的审计级别和设定各自独立的审计机制,可以满足
每个参与方对通信和计算的安全性多样化的诉求,有利于系统整体安全性。
55.本技术实施例可用于以下应用场景,包括但是不限于,多方安全计算、与联邦学习有关的机器学习模型训练、数据安全、隐私保护或者应用隐私计算框架或算法的其它应用场景等。
56.本技术实施例可以依据具体应用环境进行调整和改进,此处不做具体限定。
57.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术的实施例进行描述。
58.请参阅图1,图1示出了本技术实施例提供的联邦学习审计装置的结构框图。如图1所示,联邦学习审计装置100包括数据收集模块110,数据分析模块120,数据存储模块130,密钥管理模块140以及密态张量规则表存储器150。其中,该联邦学习审计装置100接收联邦学习某个参与方所接收或者发送的待审计数据,并输出审计后数据和/或审计结果。待审计数据是该参与方从任意另一参与方所接收或者发送给任意另一参与方的通信数据或者信息,例如在进行某个联邦学习的任务期间或者指定的审计期间,该参与方与其它参与方之间的通信信息或者数据包。在一种实施方式中,联邦学习审计装置100所审计的待审计数据是相对于特定参与方而言,联邦学习审计装置100可以是部署在该特定参与方所处的位置,或者位于包括该特定参与方作为通信节点的通信链路上的合适位置,从而可以审计该特定参与方与其它参与方之间的通信信息或者数据包。在另一种实施方式中,联邦学习审计装置100所审计的待审计数据是相对于特定的两个参与方之间而言,例如联邦学习审计装置100可以是部署在该特定的两个参与方之间的通信链路上,从而审计该特定的两个参与方中的一方与另一方之间的通信信息或者数据包,例如可以适用于审计fate框架下某个guest与arbiter之间的通信信息。考虑到联邦学习的相关框架和算法的多样性以及发展所带来的变化,本技术实施例所提供的联邦学习审计装置、系统及方法,应被理解为旨在涵盖在各种合适的联邦学习框架或者算法下的任意合适的参与方为了与其它参与方协同实现联邦学习训练目的或者任务目标而带来的通信信息、通信数据或者数据包。
59.请继续参阅图1,根据实际需求和用户选择,可以设定为要求待审计数据经过联邦学习审计装置100的审计后才能用于联邦学习后续流程,或者可以设定为待审计数据在未经过联邦学习审计装置100的审计情况下也可用于联邦学习后续流程。相应地,联邦学习审计装置100的审计可以有实时审计和事后审计两种模式。其中,实时审计模式对应的是要求待审计数据如联邦学习中的数据包只有经过审计后才能用于联邦学习后续流程的情况,例如本应由某个参与方所接收的密文数据只有经过审计后才能提供给参与方。换句话说,实时审计模式可以理解为根据对数据包的审计结果来判断该数据包是否存在错误,并且根据判断结果确定是否让该数据包用于后续流程例如用于联邦学习任务或者联邦学习算法。事后审计模式对应的是不要求待审计数据经过审计后才能用于联邦学习后续流程的情况,例如允许联邦学习中的数据包直接进入联邦学习后续流程而联邦学习审计装置100会抓取数据包的副本或拷贝用于审计。事后审计模式下,联邦学习审计装置100可以同步地抓取数据包并拷贝后用于审计,也可以抓取一定时间段内的数据包并拷贝后用于审计。事后审计模式下,联邦学习中的数据包可以不经过联邦学习审计装置100而直接进入联邦学习后续流程也就是对联邦学习审计装置100进行旁路化处理。换句话说,事后审计模式可以理解为根据对数据包的审计结果来判断该数据包是否存在错误,在进行判断同时继续让该数据包用
于后续流程例如用于联邦学习任务或者联邦学习算法。在实时审计模式或者事后审计模式下,联邦学习审计装置100所输出的是审计后数据和/或审计结果。其中,审计结果用于说明待审计数据中是否包括可能的错误或者恶意信息,并通知该参与方和/或合适的管理方或裁决方。在一种可能的实施方式中,审计后数据可以理解为对待审计数据完成审计后的数据包,其中在待审计数据中可能存在的错误或者恶意信息经过审计后被纠正或者删除了从而得到审计后数据,也就是说审计后数据中对审计中发现的待审计数据中的错误或者恶意信息进行纠正。在另一种可能的实施方式中,审计后数据依然保留待审计数据中可能存在的错误或者恶意信息,但是会给这些错误或者恶意信息贴上标签或者识别符,也就是说审计后数据中对审计中发现的待审计数据中的错误或者恶意信息仅标注但不纠正。这里,与被审计的数据包或者说待审计数据对应的联邦学习后续流程可以理解为联邦学习进程,例如运行中的联邦学习任务或者特定联邦学习算法,只要该联邦学习进程会受到该数据包或者待审计数据中的错误或者恶意信息的影响而可能出现异常或者不合理的状况。
60.请继续参阅图1,数据收集模块110包括控制流收集单元112、算法流收集单元114以及数据流收集单元116,数据分析模块120包括控制流分析单元122、算法流分析单元124以及数据流分析单元126。其中,控制流收集单元112与控制流分析单元122对应,用于控制流审计;算法流收集单元114与算法流分析单元124对应,用于算法流审计;数据流收集单元116与数据流分析单元126对应,用于数据流审计。这里,控制流审计、算法流审计以及数据流审计分别对应通信信息或者数据包中的控制流信息、算法流信息以及数据流信息。其中,控制流信息指的是通信信息或者数据包中可用于在宏观层面指示联邦学习任务相关状态的数据或者指标,例如状态信息(如数据库服务状态、网络连接状态等)和模块调用次序,更多细节请见下面的详细说明。算法流信息指的是通信信息或者数据包中可用于在相对于控制流信息而言的更微观层面指示联邦学习算法的执行流程是否符合要求的数据或者指标,例如判断特定算法如求样本交集的rsa交集算法的执行流程是否与参考流程或标准流程一致,更多细节请见下面的详细说明。数据流信息指的是通信信息或者数据包中可用于指示联邦学习的数据是否符合规范的数据或者指标,例如数据大小、类型、格式等,更多细节请见下面的详细说明。因此,待审计数据或者说通信信息或者数据包,可以被拆分后分类为控制流信息、算法流信息、数据流信息以及其它信息。或者,可以对待审计数据进行解析并从中提取出控制流信息、算法流信息以及数据流信息。具体的拆分方式或者解析方式,可以根据实际应用中的联邦学习软件或者联邦学习的框架和算法而定,或者可以根据参与方之间所遵循的联邦学习通信协议所规定的相关细节而定,在此不做具体限定。例如,假设参与方之间的通信信息或者数据包由数据包头部(header)和数据包体部(body)组成,且数据包头部包括控制流信息和算法流信息,数据包体部包括数据流信息,则可以通过抓取数据包并解析数据包头部来获取控制流信息和算法流信息。这里,其它信息指的是不归属于控制流信息、算法流信息或者数据流信息中任一种的信息,可能是冗余信息、不相关信息或者不符合联邦学习软件所指定的通信数据包规范的无效信息。
61.请继续参阅图1,通过将待审计数据拆分或者解析成控制流信息、算法流信息、数据流信息以及其它信息,并相应地分别针对控制流信息、算法流信息以及数据流信息来提供控制流审计、算法流审计以及数据流审计,可以建立起不同层次的审计级别。应当理解的是,如上所述,控制流信息、算法流信息和数据流信息彼此之间有不同的范畴,也针对不同
的需求,各自所面对的通信和计算的安全性方面的风险来源也不相同,因此可以将相应的控制流审计、算法流审计以及数据流审计理解为彼此独立的三种审计机制。例如,某个参与方的控制流审计反馈了该参与方当前调用了错误的算子运算模块,但是算法流审计反馈了被调用的算子运算模块所执行的算法流程符合要求;再例如某个参与方的控制流审计和算法流审计均反馈为不含有错误或者恶意信息,但是数据流审计反馈了当前数据包的数据格式是错误的。通过控制流审计、算法流审计以及数据流审计这三种审计机制的组合,则可以得到相应的审计级别,每个审计级别对应一种组合以及与该组合相应的计算资源和存储资源方面的需求。应当理解的是,这三种审计机制,只有在相应审计机制被开启或者包括该审计机制的组合或审计级别被开启时,才会进行相应的审计机制也就是进行相应的数据收集和数据分析。并且,结合上述的实时审计和事后审计两种模式,可以设定相应的信息在被审计后才能用于联邦学习后续流程或者可以不经审计直接用于联邦学习后续流程。具体地,当且仅当联邦学习审计装置100开启了控制流审计的功能时,数据收集模块110的控制流收集单元112获取数据包的控制流信息,数据分析模块120的控制流分析单元122分析所获取的控制流信息,并且该数据包的控制流信息在实时审计模式下经过审计后才能用于联邦学习后续流程;当联邦学习审计装置100没有开启控制流审计的功能时或者开启了控制流审计的功能但在事后审计模式下,则该数据包的控制流信息可以不经审计直接用于联邦学习后续流程。类似地,当且仅当联邦学习审计装置100开启了算法流审计的功能时,数据收集模块110的算法流收集单元114获取数据包的算法流信息,数据分析模块120的算法流分析单元124分析所获取的算法流信息,并且该数据包的算法流信息在实时审计模式下经过审计后才能用于联邦学习后续流程;当联邦学习审计装置100没有开启算法流审计的功能时或者开启了算法流审计的功能但在事后审计模式下,则该数据包的算法流信息可以不经审计直接用于联邦学习后续流程。当且仅当联邦学习审计装置100开启了数据流审计的功能时,数据收集模块110的数据流收集单元116获取数据包的数据流信息,数据分析模块120的数据流分析单元126分析所获取的数据流信息,并且该数据包的数据流信息在实时审计模式下经过审计后才能用于联邦学习后续流程;当联邦学习审计装置100没有开启数据流审计的功能时或者开启了数据流审计的功能但在事后审计模式下,则该数据包的数据流信息可以不经审计直接用于联邦学习后续流程。
62.如此,通过上述三种审计机制的彼此独立的功能开启或者关闭,可以控制流审计、算法流审计以及数据流审计这三种审计机制的组合并且建立起不同层次的审计级别。例如,可以设定审计级别从低到高依次为0、1、2、3,并且各个审计级别对应的组合为:审计级别为0时对应不审计也就是控制流审计、算法流审计以及数据流审计的功能均为关闭状态;审计级别为1时对应只开启控制流审计功能而算法流审计以及数据流审计的功能均为关闭状态;审计级别为2时对应开启控制流审计功能和算法流审计功能而数据流审计的功能为关闭状态;审计级别为3时对应控制流审计、算法流审计以及数据流审计的功能均为开启状态。如此,通过设定不同层次的审计级别,并根据审计级别来配置开启或者关闭相应的审计机制的功能,并配备相应的资源,可以满足不同参与方各自的对通信和计算的安全性方面的变化的多样化的诉求。应当理解的是,审计级别的具体划分和设定方式,可以根据实际需求而定,在此不做具体限定。在各种可能的审计级别的具体划分和设定方式中,一般设定最低的审计级别如审计级别为0时,意味着不开启任何审计机制或者说控制流审计、算法流审
计以及数据流审计均未关闭状态,或者意味着联邦学习审计装置100自身都未被启用或处于待机状态。审计级别也可以理解为审计权限,也就是当前的联邦学习审计装置100可以执行审计功能的权限。不同的参与方可以有不同的审计级别或者不同的审计权限。例如,一个参与方的审计级别可以为1,这意味着只开启控制流审计功能;而另一个参与方的审计级别可以为2,这意味着开启控制流审计功能和算法流审计功能。如此,通过不同的审计级别和设定各自独立的审计机制,可以满足每个参与方因自身需求和资源不同而产生的对通信和计算的安全性方面变化的多样化的诉求,有利于灵活调整系统整体的安全性。
63.下面详细说明控制流信息和相应的控制流审计。
64.如上所述,控制流信息指的是通信信息或者数据包中可用于在宏观层面指示联邦学习任务相关状态的数据或者指标。具体地,控制流信息可以包括各种状态信息,例如数据库服务状态、网络连接状态、联邦学习任务状态、被调用的模块状态、联邦学习相关的组件和服务的状态。其中,联邦学习任务状态指的是特定的联邦学习任务例如纵向安全梯度提升树的状态,可能的联邦学习任务状态有等待运行、运行中、运行成功和运行失败等。被调用的模块状态指的是为了执行特定的联邦学习任务而调用的模块的状态,例如等待运行、运行中、运行成功和运行失败等。网络连接状态指的是联邦学习的各参与方的网络连接状况,例如连接正常或者连接异常。联邦学习相关的组件和服务的状态指的是联邦学习的各参与方的相关组件和服务的状态,例如相关组件为数据库的时候也指代数据库服务状态,包括但不限于,关系型数据库(比如mysql)的状态和时序性数据库(比如influxdb)的状态,再例如相关组件为消息队列时也可以指代消息队列(比如rabbitmq)的状态。控制流信息还可以包括软件版本与合法性信息,也就是联邦学习软件及其组件的版本信息,用于校验这些软件及组件的版本是否正确以及是否被篡改,例如通过比较标识符如md5 digest或者sha

256等来进行校验。控制流信息还可以包括模块调用次序,也就是特定的联邦学习任务中的作为参考或者合理性比较的模块调用流程,一旦发现调用了不在当前任务所对应的模块列表中的模块或者模块调用次序不当则可以终止当前联邦学习任务并报告给管理方。例如,以联邦学习中的纵向安全梯度提升树任务为例,纵向安全梯度提升树任务的作为参考的模块调用流程依次调用读取数据模块、数据转换模块、求交集模块、纵向安全梯度提升树算法模块、模型评估模块,这些是为了完成任务所必须的关键性模块。通过解析待审计数据中的控制流信息而获得当前的模块调用次序,将该模块调用次序与作为参考的模块调用流程比对,就可以得知是否依次调用了正确的关键性模块以及调用次序是否恰当。应当理解的是,除了校验控制流信息中是否按照正确次序依次调用关键性模块,还可以校验其它与纵向安全梯度提升树任务的关联性较低甚至无关联的模块是否符合规范,例如可以校验以下模块:联邦采样模块、特征归一化与标准化模块、纵向特征分箱模块、横向特征分箱模块、one

hot编码模块、纵向特征选取模块、合并数据表模块、纵向逻辑回归算法模块、本地sklearn逻辑回归算法模块、纵向线性回归算法模块、纵向泊松回归算法模块、横向逻辑回归算法模块、横向神经网络算法模块、纵向快速安全梯度提升树算法模块、纵向安全梯度提升树特征编码模块、纵向pearson相关系数模块、纵向神经网络算法模块、横向安全梯度提升树算法模块、数据切分模块、列扩张模块、安全信息获取模块、纵向联邦迁移学习算法模块、psi指数模块、纵向k

means算法模块、数据统计模块、评分卡模块、样本加权模块、feldman安全求和模块等等。
65.通过上述的控制流审计,可以通过各种状态信息确保网络连接正常、数据库服务正常等,还可以确保按照正确次序依次调用关键性模块,还可以确保其它模块符合规范。如此,控制流信息可以用于识别联邦学习任务的异常状态以及影响联邦学习任务进行的恶意攻击等。例如,可以根据控制流信息而得知网络连接异常或者被调用的模块运行失败等。控制流信息和相应的控制流审计可以用于防止恶意的参与方或进程导致联邦学习任务所依赖的必需服务(如数据库服务、网络连接等)被故意终止并使得联邦学习任务无法正常进行。控制流信息和相应的控制流审计还可以用于防止恶意的参与方或进程发送恶意的控制流信息。例如,恶意的参与方或进程可以重复发送读取数据的控制流信息,从而影响联邦学习任务的正常进行,而通过控制流审计可以发现并阻止这种行为。
66.应当理解的是,为了提高控制流审计中校验模块调用次序的效率,可以结合联邦学习这一应用场景的特点而预先设计多个配置文件,每个配置文件对应完成特定联邦学习任务所需要的模块列表和模块调用次序。其中,还可以根据完成特定联邦学习任务所需要的模块列表和模块调用次序而创建相应的有限状态机(finite state machine,fsm)。fsm中包括唯一的初始状态用于表征fsm在构建完成时的状态,对应开始特定联邦学习任务时的状态;还包括唯一的终止状态用于表征fsm在完成所有的状态转移后的状态,对应特定联邦学习任务完成时的状态;还包括从初始状态到终止状态之间用于状态转移的各个中间状态,对应特定联邦学习任务从开始到完成的过程中调用的各个模块。fsm在同一时间只能处于一种状态,这意味着特定联邦学习任务在同一时间只能调用一个模块。fsm中的状态转移只会发生在满足特定要求的输入时,这意味着特定联邦学习任务中当前被调用的模块的切换也要求满足特定要求的输入。如此,可以通过fsm或者其它合适的方式来简化通过配置文件来校验完成特定联邦学习任务所需要的模块列表和模块调用次序的这一过程,也就是简化控制流审计。
67.其中,因为fsm在同一时间只能处于一种状态并且状态转移只会发生在满足特定要求的输入时,因此可以将模块的调用和被调用模块完成相应计算任务均定义为一种状态转移事件,并将特定状态下的状态转移事件定义为与该特定状态对应的模块完成该模块的相应计算任务。例如,设特定联邦学习任务为纵向安全梯度提升树任务,该纵向安全梯度提升树任务的执行流程可以展开成以下步骤并为每个步骤分配一个状态:第1个步骤对应状态s0或称初始状态,开始任务;第2个步骤对应状态s1,读取原始数据例如从存储介质中读取用户上传的用于联邦学习的原始数据;第3个步骤对应状态s2,进行数据格式转换也就是将用户上传的原始数据转换为联邦学习所需的对象;第4个步骤对应状态s3,求解样本交集也就是使用隐私安全算法在不暴露样本差集的前提下求样本交集;第5个步骤对应状态s4,获得纵向安全梯度提升树,也就是在保护数据安全和数据隐私的前提下训练一个纵向联邦的梯度提升树模型;第6个步骤对应状态s5,模型评估也就是计算模型的各项评估指标如准确率、平均平方误差等;第7个步骤对应状态s6或称终止状态,结束任务。如此,将纵向安全梯度提升树任务的执行流程展开后生成了fsm的各个状态s0、s1一直到s6,并且各个状态之间的状态转移事件对应相应的模块完成了相应运算操作。当发生了不合理的状态转移事件,比如调用了不在当前模块列表中的模块或者调用了不符合当前模块调用次序的模块,fsm都认为是一次不合理的或者非法的状态转移事件。例如,在状态s1下转移到状态s2的正确的状态转移事件是完成读取原始数据的运算操作,假设在状态s1下发生了调用与状态s2
对应的数据格式转换模块,则意味着发生了异常状态,需要终止该纵向安全梯度提升树任务的进行并报告管理方。类似地,可以将其它联邦学习任务的执行流程也展开并分配状态,其它联邦学习任务包括但是不限于,纵向逻辑回归任务、本地sklearn逻辑回归任务、纵向线性回归任务、纵向泊松回归任务、横向逻辑回归任务、横向神经网络任务、纵向快速安全梯度提升树任务、纵向神经网络任务、横向安全梯度提升树任务、纵向联邦迁移学习任务、纵向k

means任务以及feldman安全求和任务等等。
68.应当理解的是,用于控制流审计的fsm,也就是基于特定联邦学习任务所需要的模块列表和模块调用次序而创建的fsm一定满足有向无环图(directed acyclic graph,dag)的特征。dag要求从初始状态到终止状态的状态转移是单向的不循环的,而联邦学习任务的执行流程一定可以展开成符合dag要求的形式,例如上述纵向安全梯度提升树任务的执行流程可以展开fsm的各个状态s0、s1一直到s6。而满足dag要求的fsm可以根据拓扑排序(topological sort,ts)或者叫做线性化(linearization)从而转化为等价的拓扑排序序列。换句话说,用于控制流审计的fsm可能具有一个或者多个分支,但仍满足dag的要求,而这些分支或者分叉点经过拓扑排序或者线性化处理,则可以转化为等价的多个单向链表或者叫做单向无分叉的有向无环图。也就是说,基于特定联邦学习任务所需要的模块列表和模块调用次序而创建的fsm一定对应特定的dag,而该特定的dag如果包含至少一个分叉或者分支点,则一定可以转化成多个子dag,每个子dag是单向链表或者单向无分叉的有向无环图。相应地,在将dag转化为等价的单向链表或者叫做单向无分叉的有向无环图同时,也将联邦学习任务的执行流程转化为相应的多条子路径,每条子路径上没有分叉或者需要进行选择或者条件式判定的情况。这样得到的对应于单向链表或者单向无分叉的有向无环图的子路径,以及由若干条这样的子路径组合而成的联邦学习任务的执行流程,满足因果关系上的唯一性,也就是从一个状态到另一个状态的合法路径是唯一的,不存在多于一条的合法路径。这意味着可以利用因果关系上的唯一性进一步简化控制流审计的过程,具体地,可以无需检验dag中的每一个状态和每一个次状态转移事件符合要求,而是可以间隔地检验状态和状态转移事件。这一点体现在获取控制流信息时,可以不需要获取每一个数据包中的控制流信息,而是间隔地获取数据包,例如每隔两个抓取一个或者每隔三个抓取一个。抓取数据包的间隔可以根据实际需求设置,例如设置为存在多条子路径的情况下其中最短的子路径的长度减去一,从而最大化间隔而降低抓取频率,有利于节省资源和提高审计效率。并且,结合上述关于数据包的结构,假设数据包的头部包括控制流信息,则可以进一步通过联邦学习的通信协议或者通信标准而要求在数据包的头部中包括历史路径也就是已经发生的状态转移信息和对应的时间。例如,以上述纵向安全梯度提升树任务的执行流程和对应的控制流审计的fsm为参考,设当前数据包指示处于状态s2下,则该数据包的头部应包括从状态s0到状态s1以及从状态s1到状态s2的状态转移事件和对应信息。如此,通过要求数据包的头部或者数据包的其他部位包括历史路径也就是已经发生的状态转移信息和对应的时间,使得控制流审计时可以利用这些信息进一步简化校验过程。并且,通过每个被抓取的数据包的头部或者其它部位所包括的历史路径,可以直接判断是否符合预定义的合法路径,并且当存在多个合法路径时还可以利用并行计算方式来加速运算,从而进一步提高校验效率。
69.下面详细说明算法流信息和相应的算法流审计。
70.如上所述,算法流信息指的是通信信息或者数据包中可用于在相对于控制流信息而言的更微观层面指示联邦学习算法的执行流程是否符合要求的数据或者指标。例如,恶意的参与方可能故意停止发送其它参与方所需的中间结果或者发送错误的中间结果,而这样不符合联邦学习算法的执行流程。与控制流信息针对特定联邦学习任务例如纵向安全梯度提升树任务的不同之处在于,算法流信息针对的是特定联邦学习算法例如求样本交集的rsa交集算法。其中,特定联邦学习任务的执行流程中可能调用某个模块执行特定的联邦学习算法。例如,上述的纵向安全梯度提升树任务的执行流程展开后在第5个步骤也即状态s4,获得纵向安全梯度提升树,这一操作可以通过运行联邦学习算法中的纵向安全梯度提升树算法来实现。算法流信息所针对的特定联邦学习算法可以是被包括在特定联邦学习任务的执行流程中的某个模块的运算操作,也可以是另外提供的运算操作,示例性的联邦学习算法包括但是不限于,求交集算法、纵向安全梯度提升树算法、纵向逻辑回归算法、本地sklearn逻辑回归算法、纵向线性回归算法、纵向泊松回归算法、横向逻辑回归算法、横向神经网络算法、纵向快速安全梯度提升树算法、纵向安全梯度提升树特征编码算法、纵向神经网络算法、横向安全梯度提升树算法、纵向联邦迁移学习算法、纵向k

means算法以及feldman安全求和算法等等。
71.应当理解的是,为了提高算法流审计的效率,可以结合联邦学习这一应用场景的特点而预先设计多个配置文件,每个配置文件对应特定联邦学习算法的执行流程。并且,根据特定联邦学习算法的执行流程可以生成相应的fsm。fsm中包括唯一的初始状态用于表征fsm在构建完成时的状态,对应开始特定联邦学习算法时的状态;还包括唯一的终止状态用于表征fsm在完成所有的状态转移后的状态,对应特定联邦学习算法完成时的状态;还包括从初始状态到终止状态之间用于状态转移的各个中间状态,对应特定联邦学习算法从开始到完成的执行流程。fsm在同一时间只能处于一种状态,这意味着特定联邦学习算法在同一时间只能处于执行流程中的一个环节或者步骤。fsm中的状态转移只会发生在满足特定要求的输入时,这意味着特定联邦学习算法中环节或者步骤的演变要求发生特定事件,例如发送或者接收特定计算结果等。与上述的控制流审计中基于完成特定联邦学习任务所需要的模块列表和模块调用次序而生成配置文件和相应fsm类似的地方在于,算法流审计中是基于特定联邦学习算法的执行流程来生成配置文件和相应fsm,因此将控制流审计中校验模块列表和模块调用次序的过程和算法流审计中校验特定联邦学习算法的执行流程的过程分别转化成等效的用于控制流审计的fsm和用于算法流审计的fsm。例如,联邦学习中求交集算法的执行流程可以展开成多个步骤并为每个步骤分配相应状态,其中示例性的步骤可以是计算操作如生成一组随机数、通信操作如发送特定的计算结果到其他参与方、接收数据操作如接收到其他参与方的特定计算结果。这些求交集算法的执行流程中的步骤及相应状态需要满足发生特定事件这一要求,才会判定为发生了合理的状态转移事件。例如,计算操作的状态下,合理的状态转移事件意味着完成了相应的计算目标;通信操作的状态下,合理的状态转移事件意味着发送或者接收了正确的数据。如此,可以通过fsm或者其它合适的方式来简化通过对应特定联邦学习算法的配置文件来校验特定联邦学习算法的执行流程,也就是简化算法流审计。
72.上面提到用于控制流审计的fsm必然满足dag要求,而满足dag要求的fsm可以根据拓扑排序而转化为等价的多个单向链表或者叫做单向无分叉的有向无环图,并且可以用于
进一步简化控制流审计的过程,例如用于间隔地获取数据包从而节省资源和提高审计效率。与用于控制流审计的fsm必然满足dag要求不同,用于算法流审计的fsm可能不满足dag要求,也就是可能不满足有向无环图所要求的从初始状态到终止状态的状态转移是单向的不循环的。这是因为联邦学习算法中有相当一部分包括迭代计算,而这些迭代计算如果直接表示在fsm上意味着状态的重复也就是状态循环。例如,基于梯度下降的算法需要反复迭代并在每次迭代中更新梯度和模型参数直到达到最大迭代次数或者训练结果收敛如梯度变化小于预设阈值。另一方面,因为难以预先判断出这些迭代计算所需的迭代次数,所以无法将迭代计算简单表示成预设个数的状态,而是需要结合实际运行情况来继续迭代或者中止迭代。
73.相对的,对于不带有迭代计算的联邦学习算法,例如上述的求样本交集的rsa交集算法,这些联邦学习算法可以直接表示成满足dag要求的fsm。因此,与上述用于控制流审计的fsm相似,用于不带有迭代计算的联邦学习算法的算法流审计的fsm可以根据拓扑排序而转化为等价的多个单向链表或者叫做单向无分叉的有向无环图。这意味着,可以将这些满足简化要求(不带有迭代计算)的联邦学习算法的执行流程转化为相应的多条子路径,每条子路径上没有分叉或者需要进行选择或者条件式判定的情况。这样得到的对应于单向链表或者单向无分叉的有向无环图的子路径,以及由若干条这样的子路径组合而成的联邦学习算法的执行流程,满足因果关系上的唯一性,也就是从一个状态到另一个状态的合法路径是唯一的,不存在多于一条的合法路径可以。这意味着可以利用因果关系上的唯一性进一步简化算法流审计的过程,具体地,可以无需检验dag中的每一个状态和每一个次状态转移事件符合要求,而是可以间隔地检验状态和状态转移事件。这一点体现在获取算法流信息时,可以不需要获取每一个数据包中的算法流信息,而是间隔地获取数据包,例如每隔两个抓取一个或者每隔三个抓取一个。抓取数据包的间隔可以根据实际需求设置,例如设置为存在多条子路径的情况下其中最短的子路径的长度减去一,从而最大化间隔而降低抓取频率,有利于节省资源和提高审计效率。并且,结合上述关于数据包的结构,假设数据包的头部包括算法流信息,则可以进一步通过联邦学习的通信协议或者通信标准而要求在数据包的头部中包括历史路径也就是已经发生的状态转移信息和对应的时间。例如,以上述求交集算法的执行流程和对应的算法流审计的fsm为参考,设当前数据包指示处于通信操作和相应状态下,则该数据包的头部应包括之前的所有状态转移事件和对应信息。如此,通过要求数据包的头部或者数据包的其他部位包括历史路径也就是已经发生的状态转移信息和对应的时间,使得算法流审计时可以利用这些信息进一步简化校验过程。并且,通过每个被抓取的数据包的头部或者其它部位所包括的历史路径,可以直接判断是否符合预定义的合法路径,并且当存在多个合法路径时还可以利用并行计算方式来加速运算,从而进一步提高校验效率。
74.而对于不满足简化要求的联邦学习算法也就是带有迭代计算的联邦学习算法,上面提到难以预先判断出这些迭代计算所需的迭代次数,因此需要结合实际运行情况来判断是否中止迭代,为此可以运用强连通分量(strongly connected component,scc)的理论来处理带有迭代计算的联邦学习算法的执行流程从而转化为多个子状态机或称子fsm。其中,每个子fsm包括唯一的初始状态和唯一的终止状态,还包括从初始状态到终止状态之间用于状态转移的各个中间状态,并且子fsm在同一时间只能处于一种状态。具体地,通过解析
带有迭代计算的联邦学习算法,识别出位于最内侧的可执行多次的有向无环图dag,并将对该最内侧的dag的审计视为一个节点,也就是说该节点的状态转移事件是完成对该最内侧的dag的审计(根据实际需求反复执行该最内侧的dag直到满足相应的迭代终止条件)。该节点属于相对于该最内侧的dag而言的上层dag,假设该上层dag自身也是可执行多次的也就是也包含了迭代计算,则再将执行对该上层dag的审计视为另一个节点,该另一个节点属于更上层的dag。如此,可以自下而上或者从最内侧到最外侧,将有嵌套关系的迭代计算拆分成多个可反复执行的dag,并将每个dag的循环视为一个属于上层dag的状态节点。如此,按照自下而上或者自最内侧到最外侧的方式构建起多层的dag的嵌套关系。其中,每一层的dag都是有向无环图,可能包括一个或者多个强连通scc分量,每个scc分量可能包括至少两个为scc分量的节点所组成的子集。换句话说,每一层的dag可能包括一个或多个状态节点,这些状态节点可以进一步展开成下层dag。例如,安全梯度提升树(secure boost)算法的执行流程,经过分析后可以发现其中包括三个层次的嵌套循环,从最外层到最内侧编号为循环1、循环2以及循环3,则通过scc分量的理论来处理该安全梯度提升树算法的执行流程可以得到三个层次的dag。其中,位于最内侧的循环3是可执行多次的dag,并可以据此生成与循环3对应的fsm,对循环3的审计通过与循环3对应的fsm进行。将完成循环3的审计(根据实际需求反复执行循环3的dag直到满足相应的迭代终止条件)视为一个状态节点,该状态节点是循环2的状态机的一个节点并且完成循环3的审计意味着该状态节点的合理的状态转移事件。这里,因为循环2中除了与循环3对应的状态节点外,其它部分不带有迭代计算,因此循环2的状态机也是可执行多次的dag,其中的一个状态节点是与循环3对应的状态节点因此也是scc分量。对循环2的审计通过与循环2对应的fsm进行,将完成循环2的审计视为循环1的状态机的一个节点。类似地,循环1中除了与循环2对应的状态节点外,其他部分不带有迭代计算,因此循环1的状态机也是可执行多次的dag。如此,按照从最内侧到最外侧的方式将带有三个层次的嵌套循环的安全梯度提升树算法的执行流程,转化为三个层次的dag,每个层次的dag可以执行多次,这样使得每个层次的dag的审计可以通过反复执行相应的fsm并在达到相应迭代终止条件后完成审计,并且完成每个层次的dag的审计视为满足了在上一个层次的dag中的状态节点的状态转移事件。如此得到的整个带有迭代计算的联邦学习算法的执行流程的状态机是满足dag要求的,其中的一个或者多个状态节点是scc分量且可以看做子fsm,每个子fsm也是满足dag要求并且每个子fsm也可以包括一个或者多个状态节点为scc分量且可以进一步展开为满足dag要求的状态机。进一步地,在将整个带有迭代计算的联邦学习算法的执行流程利用scc分量理论而转化为满足dag要求的fsm后,可以利用该fsm简化校验过程,还可以进一步利用拓扑排序将该fsm转化为等价的多个单向链表或者叫做单向无分叉的有向无环图,从而进一步简化校验过程,有利于通过并行计算方式来加速运算和提高校验效率。
75.应当理解的是,上述的带有三个层次的嵌套循环的安全梯度提升树算法的执行流程仅为示例性,带有迭代计算的联邦学习算法可以带有任意可能的嵌套循环或者不嵌套的循环,并且可以参考上述的方式利用scc分量理论而转化为满足dag要求的fsm,只要从最内侧到最外侧自下而上地识别出可执行多次的dag并将完成该dag的审计视为上层状态机的一个状态节点,从而可以将嵌套关系的迭代计算拆分成多个可反复执行的dag,有利于简化校验过程和提高校验效率。
76.总之,对于不带有迭代计算的联邦学习算法,例如上述的求样本交集的rsa交集算法,这些联邦学习算法可以直接表示成满足dag要求的fsm。而对于带有迭代计算的联邦学习算法,例如安全梯度提升树算法,这些联邦学习算法可以利用scc分量理论而转化为满足dag要求的fsm。并且,这些满足dag要求的fsm用于算法流审计,因为其满足dag要求也就是单向不循环的特征,所以可以大幅简化校验过程和提高校验效率。因此可以预先设计多个配置文件,每个配置文件对应特定联邦学习算法且包括与该特定联邦学习算法对应的满足dag要求的fsm。在进行算法流审计时,通过获取数据包的算法流信息并基于这些fsm进行校验,可以判断联邦学习算法的执行流程是否符合要求。
77.应当理解的是,算法流审计中所采用的配置文件和相应fsm对应的是特定联邦学习算法的执行流程,也因此是针对算法而定制的。一般可以通过以下几种方式来生成配置文件并据此生成fsm:(1)通过分析联邦学习算法而人工编写用于算法流审计的配置文件和fsm;(2)利用自动化软件生成配置文件和fsm,例如通过静态代码分析器解析代码,或者通过在多种数据源和场景下运行当前的联邦学习算法并基于执行日志进行归纳,或者通过在代码中与算法流相关的语句加上标注(如包含当前代码所属的算法名称、运算次序、以及循环)从而协助分析。除非本技术另行说明,对算法的执行流程进行分析或者归纳的具体方式可以根据实际应用场景和需求进行调整,可以采用任意合适的常规技术手段在此不做具体限定。
78.下面详细说明数据流信息和相应的数据流审计。
79.如上所述,数据流信息指的是通信信息或者数据包中可用于指示联邦学习的数据是否符合规范的数据或者指标。数据流审计可以通过数据的基本特征例如数据大小、类型、格式、哈希值等进行审计,从而判断数据流信息中是否有不符合规范的数据,如不合理的或者恶意的数据。具体地,数据流审计可以根据数据大小进行审计例如根据密钥的位宽或者张量的维度进行审计,还可以根据数据类型进行审计例如要求公钥、私钥或者密态数据为大整数类型或者要求原始数据类型为64比特带符号位的整数或者双精度浮点数,还可以根据数据格式进行审计例如要求原始数据格式为联邦学习软件所兼容的格式如合法的csv格式等,还可以根据哈希值进行审计例如要求待校验的数据的md5码或者哈希值在传输前后保持一致。如此,通过这些数据的基本特征进行数据流审计,可以识别出发生异常的情况。例如,预期的公钥位宽为1024位,而检测到数据流信息中的密钥位宽为128位或2025位,这可能是恶意进程生成的。另外,数据流信息中还包括大量的加密后的密态数据,这些密态数据需要经过解密才能得到其中的明文数据或者原始数据从而可以据此判断原始数据是否符合规范。然而解密操作不仅需要更多资源,还涉及到密钥的管理。一般情况下的数据流信息和数据流审计仅针对数据的基本特征,并不涉及对数据进行解密及校验原始数据。关于数据流审计中对数据进行解密及校验原始数据的实施例,会在下面进一步说明。
80.请继续参阅图1,上面详细说明了控制流信息和相应的控制流审计,这可以通过图1中联邦学习审计装置100的控制流收集单元112和控制流分析单元122来完成;还详细说明了算法流信息和相应的算法流审计,这可以通过算法流收集单元114来算法流分析单元124来完成;还详细说明了数据流信息和相应的数据流审计,这可以通过数据流收集单元116与数据流分析单元126来完成。如上所述,通过将待审计数据拆分或者解析成控制流信息、算法流信息、数据流信息以及其它信息,并相应地分别针对控制流信息、算法流信息以及数据
流信息来提供控制流审计、算法流审计以及数据流审计,可以建立起不同层次的审计级别,也就是选择性地开启或者关闭彼此独立的三种审计机制的功能以及相应的联邦学习审计装置100中的部件。联邦学习审计装置100还包括数据存储模块130,数据存储模块130包括时序数据存储器132和非时序数据存储器134。其中,时序数据存储器132用于联邦学习审计装置100在审计期间所提取的存在时序关系的数据,或者带有时间标签或时间戳的数据。上面提到的控制流信息、算法流信息以及数据流信息都是存在时序关系的数据或叫做时序类信息。根据当前的审计级别和相应的被开启的审计机制的功能,数据收集模块110获取相应的时序类信息并存储在数据存储模块130的时序数据存储器132。数据分析模块120则从数据存储模块130获取相应的时序类信息进行分析或者直接从数据收集模块110获取时序类信息进行分析。时序数据存储器132通过建立数据库或者消息队列或者其它合适的技术手段来存储和维护时序类信息。例如,时序数据存储器132可以包括时序数据库(未示出)如influxdb用来将时序类信息按照控制流信息、算法流信息以及数据流信息进行分类存储,也可以包括消息队列存储器(未示出)如rabbitmq用来将存在时序关系的数据按照各自对应的时间以先后次序添加到队列中。非时序数据存储器134用于存储非时序类信息,例如联邦学习参与方信息、任务信息等。非时序数据存储器134可以包括关系型数据库(未示出)用来存储和维护非时序类信息。非时序数据存储器134还可以用于存储与控制流审计和算法流审计相关的配置文件及相应的fsm,例如可以将状态机或fsm存储在非时序数据存储器134的关系型数据库中,并在开启控制流审计或者算法流审计时调用相应的状态机或fsm。非时序数据存储器134还可以用于存储联邦学习参与方信息和任务信息等。示例性的关系型数据库可以是mysql、sql server、postgresql或者任意合适的数据库类型。上面提到的控制流审计中要检测联邦学习相关的组件和服务的状态,其中也可以包括检测非时序数据存储器134中的关系型数据库的状态以及时序数据存储器132中的时序数据库和消息队列存储器的状态。
81.请继续参阅图1,联邦学习审计装置100还包括密钥管理模块140和密态张量规则表存储器150。一般来说,联邦学习的管理方或者如fate框架下的arbiter类似的角色定位的参与方会进行与密钥相关的管理与维护。密钥的管理可以通过密钥管理模块140进行。而密钥信息的存储和维护可以通过数据存储模块130中的非时序数据存储器134进行,也就是密钥信息也属于非时序类信息。具体地,在审计期间或者联邦学习审计装置100运行期间,密钥管理模块140可能进行与密钥相关的管理与维护操作,包括密钥生成、密钥更新、到期密钥作废、获取公钥、获取私钥等等。由与密钥相关的管理与维护操作而生成的密钥信息可以存储在数据存储模块130中的非时序数据存储器134中。在一些示例性实施例中,密钥管理模块140可以自带存储器用于存储密钥信息,或者单独提供用于存储密钥信息的专属存储器。为了区分用于不同的联邦学习任务或者算法模块的密钥,可以通过给联邦学习任务分配任务标识符,通过给联邦学习任务中的算法模块分配带有任务标识符的前缀的算法标识符,从而使得可以通过带有任务标识符的前缀的算法标识符来定位最新的密钥信息如公钥和私钥。
82.请继续参阅图1,密钥管理模块140的密钥生成功能,可以通过基于伪随机数的随机数生成算法如通过在给定的种子的基础上加上足够的环境噪声来生成伪随机序列。例如,可以通过外部设备存储随机环境噪声的熵池,其中的环境噪声来源于鼠标、键盘等外部
设备数据的哈希值。在一些示例性实施例中,密钥管理模块140的密钥生成功能是基于量子设备来生成的真随机数,并将量子随机数存储到密钥管理模块140中。以paillier加密算法的密钥生成为例,paillier加密算法要求公钥通过两个素数的乘积生成且这两个素数的比特位宽相等,私钥则是基于这两个素数生成。利用量子随机数生成paillier加密算法的密钥的过程包括:使用量子随机数生成器生成位宽为t的整数t;将整数t的最低位设为1;用整数t的下一个素数替换t;判断被替换后的t的位宽是否为t,如果位宽不为t则反复使用量子随机数生成器生成新的整数t直到被替换后的t的位宽为t,如果位宽为t则被替换后的t是用于生成公钥和私钥的素数。其中,用整数t的下一个素数替换t这一操作中,可以利用概率性素数测试来快速判断一个数是否为素数,例如miller

rabin测试。这种测试的原理是,当校验的误差概率低于2的

t次幂时,认为校验的误差概率已经低于随机生成一个由t个比特表示的正整数恰好等于被校验数的概率,从而认为这样的素数或者伪素数足以用于密钥的生成。如此,可以通过基于量子设备来生成的真随机数,从而避免了伪随机序列的周期重复问题,提高了密钥管理方面的安全性。
83.请继续参阅图1,通常情况下的数据流信息和数据流审计仅针对数据的基本特征,并不涉及对数据进行解密及校验原始数据。对数据进行解密及校验原始数据的需要用到密钥管理模块140所存储的密钥也就是公钥和私钥。对于密态数据,需要先解密得到原始数据再判断原始数据是否合理,例如判断数据内容是否超出合理范围以及判断某个必须为非空(或非零)的特征是否为空。为了提高校验原始数据的效率,可以通过预设的规则表来快速判断原始数据是否符合规范。密态张量规则表存储器150可以存储预设的规则表。具体地,密态数据一般以张量(如向量、矩阵、高维矩阵等)的形式存储,因此预设的规则表的数据结构可以表示为一系列由多元组到集合的映射,其中多元组为张量的维度而集合为密态数据所对应的原始数据的合理范围。下面结合表1的示例性的预设的规则表进行说明。
84.表1
85.索引模式合理范围是否可为空1(负无穷大,1)或[2,√5)否2(负无穷大,正无穷大)是3[0,100]否
[0086]
如上面表1所示,该规则表分别示出了在不同索引模式下的原始数据的合理范围。例如,对于一个大小为(100,3)的非空密态矩阵或者张量,根据表1可以得知第1列不可为空且第3列也不可为空。在通过密态张量规则表存储器150来进行数据流审计时,需要获取密钥管理模块140中的私钥从而对密态张量进行解密,然后对照规则表中的每一条检查是否满足当前索引模式的数据均满足合理范围和可为空属性的要求。密态张量规则表存储器150所存储的预设的规则表可以由联邦学习的发起方或原始数据的提供方来提供,也可以通过自动生成机制来生成规则表,例如可以根据各种特征的各自的合理范围来构造训练数据并在明文数据下训练模型从而得到各个中间结果(模型训练中的梯度、损失函数、黑塞矩阵、模型参数等数据)的合理范围以及可为空属性,最后再根据模型的特征推导出用于计算中间结果的规则表的数学表达式从而基于原始数据来计算出规则表。
[0087]
应当理解的是,数据流审计特别是涉及到解密密态数据后对原始数据进行分析,往往涉及到较大的通信量和计算需求,因此可以通过异构硬件架构例如gpu或者fpga来提
供解密运算的效率。例如,对于大规模的数据解密可以通过抽放分析和异构加速来提高整体效率。另外,当联邦学习任务是涉及多个参与方特别是参与方总数大于或等于3时,往往需要安排一个可信的管理方或者称作裁决方。该裁决方是多方联邦学习任务中唯一拥有私钥的实体,也可以说是在密钥管理方面唯一有权限生成及管理私钥的实体。这种情况下,假设裁决方和所有联邦学习任务的参与方通过如联邦学习审计装置100的类似装置来进行审计,则可以理解为只有裁决方的审计装置具有私钥生成及私钥管理功能,而其它参与方的审计装置不具有私钥相关功能或者禁止使用相关功能。另外,当联邦学习任务的参与方足够多(如大于等于100个)时,联邦学习的所有参与方还可以利用区块链技术来共同存储和维护所有参与通信的密态中间结果,并且联邦学习的所有参与方的审计装置均需验证公有区块链数据的真实性,从而使得恶意的联邦学习参与方难以篡改已有的中间结果,提高安全性。
[0088]
应当理解的是,图1所示的联邦学习审计装置100可以作为联邦学习网关上的插件从而不影响具体参与方上对联邦学习相关软件或服务的运行,也可以作为具体参与方的硬件平台的插件或者整合成为其一部分,也可以作为独立于联邦学习任务的参与方之外的管理方或者裁决方处的审计装置。这些可以根据实际应用场景和需求调整,在此不做具体限定。
[0089]
请参阅图2,图2示出了本技术实施例提供的一种实施方式的联邦学习审计系统的示意图。如图2所示,联邦学习审计系统200是多方参与的系统,其中包括参与方210,参与方220以及参与方230。其中每个参与方可以理解为具有如图1所示的联邦学习审计装置或者在合适的网关处配置有联邦学习审计装置用于该参与方的审计,并各自有对应的审计级别和相应的审计功能。其中,参与方210的审计级别为1,开启了控制流审计同时关闭了算法流审计和数据流审计,在密钥管理方面被禁止。这意味着,与参与方210对应的联邦学习审计装置中的控制流审计功能被开启,其中的控制流收集单元和控制流分析单元被调用。参与方210在密钥管理方面被禁止意味着与参与方210对应的联邦学习审计装置的密钥管理模块被禁止调用或者不包括密钥管理模块。类似地,参与方220的审计级别为2,开启了控制流审计和算法流审计同时关闭了数据流审计,在密钥管理方面被禁止。参与方230的审计级别为3,开启了控制流审计、算法流审计以及数据流审计,在密钥管理方面被禁止。联邦学习审计系统200为了完成联邦学习任务需要在参与方210,参与方220以及参与方230之间传输数据,每个参与方均可以对各自所接收或者发送的待审计数据进行审计,并根据该参与方的审计级别提供相应的审计功能,还可以各自采用实时审计模式或者事后审计模式。并且,每个参与方的审计装置可以共用用于审计的配置文件和fsm。当某个参与方的联邦学习审计装置发现异常状况时,可以通知其它参与方。例如,当参与方210的控制流审计发现了异常状况,如网络连接状态异常,则可以通知参与方220和参与方230。另外,所有参与方还可以利用区块链技术来共同存储和维护所有参与通信的密态中间结果,并且联邦学习的所有参与方的审计装置均需验证公有区块链数据的真实性,从而使得恶意的联邦学习参与方难以篡改已有的中间结果,提高安全性。应当理解的是,联邦学习审计系统200中没有配备管理方或者裁决方,因此所有的参与方都在密钥管理方面被禁止,这是因为处于隐私安全考虑,只有管理方或者裁决方才适合管理密钥信息包括私钥。如此,通过不同的审计级别和设定各自独立的审计机制,可以满足每个参与方因自身需求和资源不同而产生的对通信和计算
的安全性方面变化的多样化的诉求,有利于灵活调整系统整体的安全性。
[0090]
请参阅图3,图3示出了本技术实施例提供的另一种实施方式的联邦学习审计系统的示意图。如图3所示,联邦学习审计系统300是多方参与的系统,其中包括参与方310,参与方320以及参与方330,并且还配备有裁决方302。其中每个参与方可以理解为具有如图1所示的联邦学习审计装置或者在合适的网关处配置有联邦学习审计装置用于该参与方的审计,并各自有对应的审计级别和相应的审计功能。其中,参与方310的审计级别为1,开启了控制流审计同时关闭了算法流审计和数据流审计,在密钥管理方面被禁止。这意味着,与参与方310对应的联邦学习审计装置中的控制流审计功能被开启,其中的控制流收集单元和控制流分析单元被调用。参与方320的审计级别为0,关闭了控制流审计、算法流审计和数据流审计,在密钥管理方面被禁止。这意味着,与参与方320对应的联邦学习审计装置的所有审计功能被关闭或者联邦学习审计装置整体未被启用,也就是不进行审计。参与方320的审计级别为2,开启了控制流审计和算法流审计同时关闭了数据流审计,在密钥管理方面被禁止。裁决方302的审计级别为4,开启了控制流审计、算法流审计以及数据流审计,并且在密钥管理方面被允许。这意味着,裁决方302的联邦学习审计装置具有完整的审计功能,包括密钥管理模块和密态张量规则表存储器,并且在数据流审计中还包括对密态数据解密后校验原始数据的功能。与图2所示的联邦学习审计系统200不同的是,图3所示的联邦学习审计系统300配备了裁决方302,从而可以通过裁决方302生成和管理密钥信息,并对参与方310,参与方320以及参与方330各自的密态数据进行解密和校验原始数据,从而提供更好的安全性。如此,通过不同的审计级别和设定各自独立的审计机制,可以满足每个参与方因自身需求和资源不同而产生的对通信和计算的安全性方面变化的多样化的诉求,有利于灵活调整系统整体的安全性。
[0091]
请参阅图4,图4示出了本技术实施例提供的联邦学习审计方法的流程示意图。如图4所示,联邦学习审计方法400包括以下步骤。
[0092]
步骤s402:获得参与方所接收或者发送的数据包。
[0093]
其中,相关细节参考上述图1所示的联邦学习审计装置100的数据收集模块110的相关细节,在此不再赘述。
[0094]
步骤s404:根据所述参与方的审计级别而开启控制流审计、算法流审计以及数据流审计中的一种或者多种,从而审计所述数据包并生成审计结果。
[0095]
其中,相关细节参考上述图1所示的联邦学习审计装置100的数据分析模块120的相关细节,在此不再赘述。
[0096]
应当理解的是,结合图1、图2和图3的实施例,可以对联邦学习审计方法进行任意的修改、增加、删除或者替换。
[0097]
请参阅图1至图4,本技术实施例提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述的联邦学习审计方法。其中,所述计算机程序产品可以采用任意合适的编程工具来实现,例如通过任意合适的fpga编程工具,并且可以用硬件,软件,固件或固态逻辑电路中的任何一种或组合来实现。所述计算机程序产品通过不同的审计级别和设定各自独立的审计机制,可以满足每个参与方因自身需求和资源不同而产生的对通信和计算的安全性方面变化的多样化的诉求,有利于灵活调整系统整体的安全性。
[0098]
请参阅图1至图4,本技术实施例提供了一种电子设备。所述电子设备包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的联邦学习审计方法。其中,所述电子设备可以用硬件,软件,固件或固态逻辑电路中的任何一种或组合来实现。所述电子设备通过不同的审计级别和设定各自独立的审计机制,可以满足每个参与方因自身需求和资源不同而产生的对通信和计算的安全性方面变化的多样化的诉求,有利于灵活调整系统整体的安全性。
[0099]
本技术提供的具体实施例可以用硬件,软件,固件或固态逻辑电路中的任何一种或组合来实现,并且可以结合信号处理,控制和/或专用电路来实现。本技术具体实施例提供的设备或装置可以包括一个或多个处理器(例如,微处理器,控制器,数字信号处理器(dsp),专用集成电路(asic),现场可编程门阵列(fpga)等),这些处理器处理各种计算机可执行指令从而控制设备或装置的操作。本技术具体实施例提供的设备或装置可以包括将各个组件耦合在一起的系统总线或数据传输系统。系统总线可以包括不同总线结构中的任何一种或不同总线结构的组合,例如存储器总线或存储器控制器,外围总线,通用串行总线和/或利用多种总线体系结构中的任何一种的处理器或本地总线。本技术具体实施例提供的设备或装置可以是单独提供,也可以是系统的一部分,也可以是其它设备或装置的一部分。
[0100]
本技术提供的具体实施例可以包括计算机可读存储介质或与计算机可读存储介质相结合,例如能够提供非暂时性数据存储的一个或多个存储设备。计算机可读存储介质/存储设备可以被配置为保存数据,程序器和/或指令,这些数据,程序器和/或指令在由本技术具体实施例提供的设备或装置的处理器执行时使这些设备或装置实现有关操作。计算机可读存储介质/存储设备可以包括以下一个或多个特征:易失性,非易失性,动态,静态,可读/写,只读,随机访问,顺序访问,位置可寻址性,文件可寻址性和内容可寻址性。在一个或多个示例性实施例中,计算机可读存储介质/存储设备可以被集成到本技术具体实施例提供的设备或装置中或属于公共系统。计算机可读存储介质/存储设备可以包括光存储设备,半导体存储设备和/或磁存储设备等等,也可以包括随机存取存储器(ram),闪存,只读存储器(rom),可擦可编程只读存储器(eprom),电可擦可编程只读存储器(eeprom),寄存器,硬盘,可移动磁盘,可记录和/或可重写光盘(cd),数字多功能光盘(dvd),大容量存储介质设备或任何其他形式的合适存储介质。
[0101]
以上是本技术实施例的实施方式,应当指出,本技术具体实施例描述的方法中的步骤可以根据实际需要进行顺序调整、合并和删减。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其他实施例的相关描述。可以理解的是,本技术实施例以及附图所示的结构并不构成对有关装置或系统的具体限定。在本技术另一些实施例中,有关装置或系统可以包括比具体实施例和附图更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者具有不同的部件布置。本领域技术人员将理解,在不脱离本技术具体实施例的精神和范围的情况下,可以对具体实施例记载的方法和设备的布置,操作和细节进行各种修改或变化;在不脱离本技术实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本技术的保护范围。
再多了解一些

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

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

相关文献