1.本技术涉及互联网技术领域,尤其涉及一种基于联邦学习的数据传输方法、装置以及可读存储介质。
背景技术:
2.在人工智能时代,机器学习尤其是深度学习模型的获得需要大量的训练数据作为前提,但在很多业务场景中,模型的训练数据往往分散在各个不同的业务团队、部门、甚至是不同的公司内,由于涉及到用户隐私,这些数据无法直接使用,因此形成了所谓的“数据孤岛”。近年来,联邦学习技术(federated learning)迅速发展,为跨团队数据合作、打破“数据孤岛”提供了新的解决思路,并开始从理论研究迈向批量应用的落地阶段。
3.联邦学习与普通机器学习任务的核心区别之一在于训练参与方从一方变为了两方甚至多方,因此一个核心问题就在于如何在协调两方或者多方共同完成一个模型训练任务的同时,保护所有参与方的数据安全,不让任何一方得知另一方的数据。现有技术中,同态加密是最常用的安全技术手段之一,该技术可以让参与方在不得知另一方数据的前提下,完成特定的数值运算。然而,同态加密具有一个显著的缺点,即同态加密会导致数据严重膨胀,例如,当密钥为3072比特时,一个32比特的浮点数在同态加密后转为一个6144比特的大整数,膨胀了192倍,这种数据膨胀会造成参与方之间存在巨大的通信开销。
技术实现要素:
4.本技术实施例提供了一种基于联邦学习的数据传输方法、装置以及可读存储介质,可以有效降低联邦学习任务中的通信开销,提高联邦学习任务运行的效率。
5.本技术实施例一方面提供了一种基于联邦学习的数据传输方法,包括:
6.第一参与节点获取第一密文,根据属于第一参与节点的业务数据对第一密文进行隐私运算,生成第二密文;第一密文是指第二参与节点对初始明文进行加密处理所得的数据;第二参与节点是指与第一参与节点进行联邦学习的节点;
7.对第二密文进行数值界限预估,得到第二密文对应的明文预估界限值;明文预估界限值用于表征第二密文对应的明文的数值范围;
8.基于明文预估界限值,对第二密文进行加法偏移处理,得到第三密文;
9.根据明文预估界限值和第三密文,生成具有多项式格式的目标压缩密文,发送目标压缩密文至第二参与节点。
10.本技术实施例一方面提供了一种基于联邦学习的数据传输方法,包括:
11.第二参与节点接收第一参与节点发送的目标压缩密文,采用私钥对目标压缩密文进行解密处理,得到第一压缩明文;第一参与节点是指与第二参与节点进行联邦学习的节点;目标压缩密文是由第一参与节点根据明文预估界限值和第三密文生成的具有多项式格式的密文;第三密文是指第一参与节点基于明文预估界限值对第二密文进行加法偏移处理所得的密文;明文预估界限值是由第一参与节点对第二密文进行数值界限预估得到的,明
文预估界限值用于表征第二密文对应的明文的数值范围;第二密文是指第一参与节点根据属于第一参与节点的业务数据对第一密文进行隐私运算生成的密文,第一密文是指第二参与节点对初始明文进行加密处理所得的数据;
12.对具有多项式格式的第一压缩明文进行位运算操作,得到第二明文;
13.获取明文预估界限值,基于明文预估界限值对第二明文进行减法复原处理,得到目标明文。
14.本技术实施例一方面提供了一种基于联邦学习的数据传输装置,包括:
15.运算模块,用于第一参与节点获取第一密文,根据属于第一参与节点的业务数据对第一密文进行隐私运算,生成第二密文;第一密文是指第二参与节点对初始明文进行加密处理所得的数据;第二参与节点是指与第一参与节点进行联邦学习的节点;
16.预估模块,用于对第二密文进行数值界限预估,得到第二密文对应的明文预估界限值;明文预估界限值用于表征第二密文对应的明文的数值范围;
17.偏移模块,用于基于明文预估界限值,对第二密文进行加法偏移处理,得到第三密文;
18.压缩模块,用于根据明文预估界限值和第三密文,生成具有多项式格式的目标压缩密文,发送目标压缩密文至第二参与节点。
19.其中,上述运算模块,包括:
20.第一运算单元,用于获取属于第一参与节点的业务数据,对业务数据和第一密文进行线性代数运算,得到第二密文;线性代数运算包括标量乘法操作、同态加法操作、标量加法操作中的一种或多种。
21.其中,上述预估模块,包括:
22.第一获取单元,用于获取初始明文对应的第一数值范围以及业务数据对应的第二数值范围;获取初始明文的第一数据维度以及业务数据的第二数据维度,根据线性代数运算的运算类型,在第一数据维度和第二数据维度中确定目标数据维度;
23.第一预估单元,用于基于线性代数运算的运算类型、第一数值范围、第二数值范围以及目标数据维度,生成第二密文对应的明文预估界限值。
24.其中,上述初始明文和业务数据均为矩阵;
25.上述第一获取单元,具体用于获取初始明文的第一矩阵宽度和第一矩阵高度,将第一矩阵宽度和第一矩阵高度确定为初始明文的第一数据维度;获取业务数据的第二矩阵宽度和第二矩阵高度,将第二矩阵宽度和第二矩阵高度确定为业务数据的第二数据维度;当线性代数运算为标量乘法操作,且第一矩阵高度与第二矩阵宽度相等时,将第一矩阵高度确定为目标数据维度;当线性代数运算为标量乘法操作,且第二矩阵高度与第一矩阵宽度相等时,将第二矩阵高度确定为目标数据维度。
26.其中,第一密文包括至少两个子密文;
27.上述运算模块,包括:
28.第二运算单元,用于获取属于第一参与节点的业务数据对应的数据特征,基于数据特征对至少两个子密文进行聚类,得到一个或多个聚类区间;分别对一个或多个聚类区间中的子密文进行同态加法操作,得到每个聚类区间对应的聚类子密文,将一个或多个聚类子密文确定为第二密文。
29.其中,上述预估模块,包括:
30.第二获取单元,用于获取初始明文对应的数值范围以及数据维度;
31.第二预估单元,用于基于同态加法操作的运算类型、数值范围以及数据维度生成第二密文对应的明文预估界限值。
32.其中,上述偏移模块,具体用于获取明文预估界限值中的上限值,对上限值和第二密文进行标量加法操作,得到第三密文;第三密文对应的明文为非负数。
33.其中,上述压缩模块,具体用于获取用于表征预估界限值的移位参数,基于移位参数对第三密文进行标量乘法操作,得到至少两个密文单项式;对至少两个密文单项式进行同态加法操作,得到具有多项式格式的目标压缩密文。
34.本技术实施例一方面提供了一种基于联邦学习的数据传输装置,包括:
35.解密模块,用于第二参与节点接收第一参与节点发送的目标压缩密文,采用私钥对目标压缩密文进行解密处理,得到第一压缩明文;第一参与节点是指与第二参与节点进行联邦学习的节点;目标压缩密文是由第一参与节点根据明文预估界限值和第三密文生成的具有多项式格式的密文;第三密文是指第一参与节点基于明文预估界限值对第二密文进行加法偏移处理所得的密文;明文预估界限值是由第一参与节点对第二密文进行数值界限预估得到的,明文预估界限值用于表征第二密文对应的明文的数值范围;第二密文是指第一参与节点根据属于第一参与节点的业务数据对第一密文进行隐私运算生成的密文,第一密文是指第二参与节点对初始明文进行加密处理所得的数据;
36.解压模块,用于对具有多项式格式的第一压缩明文进行位运算操作,得到第二明文;
37.复原模块,用于获取明文预估界限值,基于明文预估界限值对第二明文进行减法复原处理,得到目标明文。
38.其中,上述解压模块,包括:
39.解压单元,用于对具有多项式格式的第一压缩明文进行位运算操作,得到至少两个具有整数格式的解压明文;
40.解码单元,用于获取放缩因子和至少两个解压明文分别对应的指数项参数,根据放缩因子和至少两个指数项参数分别对每个解压明文进行解码操作,得到至少两个具有浮点数格式的子明文,将至少两个子明文确定为第二明文。
41.其中,上述复原模块,具体用于获取明文预估界限值中的上限值,分别将至少两个子明文与上限值相减,得到至少两个复原子明文,将至少两个复原子明文确定为目标明文。
42.本技术实施例一方面提供了一种计算机设备,包括:处理器、存储器、网络接口;
43.上述处理器与上述存储器、上述网络接口相连,其中,上述网络接口用于提供数据通信功能,上述存储器用于存储计算机程序,上述处理器用于调用上述计算机程序,以执行本技术实施例中的方法。
44.本技术实施例一方面提供了一种计算机可读存储介质,上述计算机可读存储介质中存储有计算机程序,上述计算机程序适于由处理器加载并执行本技术实施例中的方法。
45.本技术实施例一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中,计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该
计算机设备执行本技术实施例中的方法。
46.本技术实施例支持第一参与节点获取第二参与节点发送的第一密文,并可以根据属于第一参与节点的业务数据对第一密文进行隐私运算,从而可以生成第二密文,进一步,可以对得到的第二密文进行数值界限预估,得到第二密文对应的明文预估界限值,进而可以基于该明文预估界限值对第二密文进行加法偏移处理,得到第三密文,随后可以根据明文预估界限值和第三密文,生成具有多项式格式的目标压缩密文,最终可以将目标压缩密文发送至第二参与节点。由此可见,在第一参与节点和第二参与节点进行联邦学习的过程中,第一参与节点在向第二参与节点发送密文之前,通过本技术实施例提供的方法将多个密文打包压缩在一起进行传输,可以大幅度降低由于密文发送所带来的通信开销,从而可以显著提高联邦学习任务运行的效率,提高联邦学习的可用性。
附图说明
47.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
48.图1是本技术实施例提供的一种系统架构示意图;
49.图2a
‑
图2b是本技术实施例提供的一种基于联邦学习的数据传输的场景示意图;
50.图3是本技术实施例提供的一种基于联邦学习的数据传输方法的流程示意图;
51.图4是本技术实施例提供的一种基于联邦学习的数据传输方法的流程示意图;
52.图5是本技术实施例提供的一种基于联邦学习的数据传输方法的流程示意图;
53.图6是本技术实施例提供的一种基于联邦学习的数据传输方法的流程示意图;
54.图7是本技术实施例提供的一种基于联邦学习的数据传输装置的结构示意图;
55.图8是本技术实施例提供的一种基于联邦学习的数据传输装置的结构示意图;
56.图9是本技术实施例提供的一种计算机设备的结构示意图;
57.图10是本技术实施例提供的一种计算机设备的结构示意图。
具体实施方式
58.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
59.人工智能(artificial intelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
60.人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、
大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习、自动驾驶、智慧交通等几大方向。
61.联邦学习(federated machine learning/federated learning)又名联邦机器学习、联合学习、联盟学习,是一个机器学习框架,能有效帮助多个机构在满足用户隐私保护、数据安全和政府法规的要求下,进行数据使用和机器学习建模。根据数据的分布特点,可以将联邦学习分为横向联邦学习、纵向联邦学习以及联邦迁移学习三类。联邦学习作为分布式的机器学习范式,可以有效解决“数据孤岛”问题,让参与方在不共享数据的基础上联合建模,从而在技术上打破“数据孤岛”,实现ai协作。
62.本技术实施例提供的方案涉及人工智能的联邦学习以及深度学习等技术,具体过程通过如下实施例进行说明。
63.请参见图1,是本技术实施例提供的一种系统架构示意图。如图1所示,该系统架构可以为多个参与节点组成的网络,多个参与节点可以包括参与节点100、参与节点200a、参与节点200b、
…
、参与节点200n,其中,任意两个参与节点之间可以存在通信连接,例如参与节点100和参与节点200a之间存在通信连接,参与节点100和参与节点200b之间存在通信连接,参与节点200a和参与节点200b之间存在通信连接。可以理解的是,上述通信连接不限定连接方式,可以通过有线通信方式进行直接或间接地连接,也可以通过无线通信方式进行直接或间接地连接,还可以通过其它方式,本技术在此不做限制。
64.可以理解,上述参与节点可以分布在不同的团队、部门或者公司内,也就是说,每个参与节点可以存储与各自用户相关且具有不同数据特征的数据,这些数据可以存储在各自的本地集群中,例如,参与节点100拥有用户的基本画像,主要是一些静态标签(如年龄、性别、学历等),参与节点200a拥有用户的购买行为、兴趣、浏览历史等信息,参与节点200b则拥有用户的收支行为、信用评级等信息。进一步地,当两个或两个以上的参与节点共同参与到一个模型训练任务时,需要使用各自的本地数据作为训练数据参与到模型训练中,而在数据不出库和保护数据隐私的前提下,上述参与节点可以采用联邦学习的方案完成模型训练任务。为便于理解,以参与节点100和参与节点200a为例,假设在两方纵向联邦学习的过程中,参与节点100(例如,属于某广告公司)和参与节点200a(例如,属于某社交网络平台)合作,试图联合训练一个或多个基于深度学习的个性化推荐模型,其中,参与节点100拥有部分数据特征,例如,(x1,x2,
…
,x
40
),共40维数据特征(例如年龄、性别等),而参与节点200a拥有另一部分数据特征,例如,(x
41
,x
42
,
…
,x
100
),共60维数据特征(例如兴趣、浏览历史等),当参与节点100和参与节点200a联合后,也就拥有了更多的数据特征,例如,(x1,x2,
…
,x
40
)和(x
41
,x
42
,
…
,x
100
)组合起来就有100维数据特征,可以理解,这样可以极大地扩展训练数据的特征维度。其中,对于有监督深度学习,参与节点100和/或参与节点200a还可以拥有训练数据的标签信息。接收到模型训练相关指令后,参与节点100和参与节点200a可以各自在本地独立建模,随后可以分别使用本地的训练数据训练模型,需要说明的是,在双方训练模型的过程中,参与节点100和参与节点200a可以在加密保护下不断交互中间计算结果(如偏导数或梯度),同时,标签信息的拥有方可以根据其拥有的标签信息计算预测误差(即损失函数),进而可以根据交互结果不断更新各自的模型参数,当模型收敛时,训练任务结束,此时参与节点100和参与节点200a分别持有模型中与自己的数据特征相关的模型
参数,后续可以使用最终得到的模型共同提供相应的服务,例如,使用训练好的个性化推荐模型,可以在社交网络平台上为平台用户提供个性化的广告推送。
65.可以理解,各参与节点交换模型信息的过程被精心地设计和全程加密,以使没有一个参与节点能够猜测到其它任何参与节点的隐私数据内容,但却可以实现联合建模的目的,也就是说,除了最终产出的模型参数,上述过程中不应该泄露任何一方的数据信息,也不可以反推数据信息的中间结果。此外,本技术实施例提供的具体可以是一个“去中心化”的系统架构,模型训练相关的数据经过加密算法加密后,在各个参与节点之间直接通信而不依赖第三方参与“转发”,实现了“去中心化”,整个训练过程仅需要协调各参与节点的进度即可,因此能够增强实际应用中的安全性。
66.需要说明的是,现有联邦学习任务中采用的加密方法(如同态加密)往往会导致严重的数据膨胀,导致通信开销十分巨大,因此本技术实施例提供了一种基于联邦学习的数据传输方法,可以有效降低联邦学习任务中的通信开销,为便于理解和说明,此处仍以参与节点100和参与节点200a为例。假设参与节点100拥有明文x,参与节点200a拥有明文y,其中,明文x和明文y可以包括模型训练过程中产生的一些数据(如梯度),此时双方希望通过对明文x和明文y执行某种运算来获取想要的交互结果,若将参与节点100作为本次运算的“发起方”,则参与节点100可以先采用公钥对本地的明文x进行加密,得到密文x’,进而可以将密文x’发送至参与节点200a,参与节点200a接收到密文x’后,可以根据其本地的明文y对密文x’进行希望的隐私运算,从而得到密文z1,但由于加密导致了数据膨胀,因此参与节点200a不能直接将密文z1发送给参与节点100,而是要对密文z1进行打包压缩后再进行传输,具体的,参与节点200a可以对密文z1进行数值界限预估,得到密文z1对应的明文预估界限值w(即密文z1对应的明文的数值范围),随后,参与节点200a可以基于明文预估界限值w对密文z1进行加法偏移处理,得到密文z2,进一步,可以根据明文预估界限值w和密文z2,生成具有多项式格式的压缩密文z3,进而可以将压缩密文z3传回给参与节点100。需要说明的是,相应的,后续参与节点100接收到压缩密文z3后,可以采用私钥(也可称为密钥)对压缩密文z3进行解密处理,还要进行相应的解压和减法复原处理,最终才可以得到真实的运算结果。可以理解,本技术实施例提供的方法可以很顺利地拓展至多个参与节点(大于两个)的应用场景,其交互过程与两个参与节点的交互过程是一致的,这里不再进行赘述。
67.其中,在多个(包含两个)参与节点进行联合学习的过程中,会不断发生上述描述的交互过程,可以理解,任意一个发起交互运算的参与节点(可以是参与节点100、参与节点200a、参与节点200b、参与节点200n中的任意一个)会拥有用于解密的私钥(例如上述举例说明的参与节点100),其余参与节点则对私钥一无所知。其中,加密所采用的算法具体可以是同态加密算法,该加密算法有一个特点是:对经过同态加密后的密文数据进行运算,将运算结果解密,与未加密的原始明文数据进行同样运算的结果是一样的。利用这种特点,各参与方可以对需要交互的模型相关数据采用同态加密,并直接发送给其它相关参与节点,对方在密文上完成训练所需的计算,然后将结果返回,接收方解密后可以得到计算后的结果,而无法获知其原始数据,这样就保证了数据的安全性。
68.上述可知,与现有方案相比,本技术实施例提供的方法可以在密文发送前,将需要传输的多个密文打包压缩在一起,从而可以有效降低联邦学习任务中由于密文发送所带来的通信开销。
69.其中,图1中的参与节点100、参与节点200a、参与节点200b、
…
、参与节点200n可以包括平板电脑、笔记本电脑、掌上电脑、手机、智能音响、移动互联网设备(mid,mobile internet device)、pos(point of sales,销售点)机、可穿戴设备(例如智能手表、智能手环等)等。
70.可以理解的是,本技术实施例提供的数据传输方法可以由计算机设备执行,计算机设备包括但不限于参与节点(可以为终端设备或服务器)。其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云数据库、云服务、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器。终端设备可以是平板电脑、笔记本电脑、台式计算机、掌上电脑、智能手机、移动互联网设备(mobile internet device,mid)、可穿戴设备(例如智能手表、智能手环等)、智能电脑、智能车载等智能终端。其中,终端设备和服务器可以通过有线或无线方式进行直接或间接地连接,本技术实施例在此不做限制。
71.需要说明的是,一个参与节点还可以是区块链网络上的一个节点。区块链是一种分布式数据存储、点对点传输、共识机制以及加密算法等计算机技术的新型应用模式,主要用于对数据按时间顺序进行整理,并加密成账本,使其不可被篡改和伪造,同时可进行数据的验证、存储和更新。可以理解的是,区块(block)是在区块链网络上承载交易数据(即交易业务)的数据包,是一种被标记上时间戳和之前一个区块的哈希值的数据结构,区块经过网络的共识机制验证并确定区块中的交易。可以理解的是,区块链系统中可以包括一个或多个智能合约,这些智能合约可以是指一种区块链各节点(包括共识节点)可以理解并执行的代码,可以执行任意逻辑并得到结果。在一个区块链节点系统中可以包括多个节点,该区块链节点系统可以对应于区块链网络(包括但不限于联盟链所对应的区块链网络),多个节点具体可以包括上述所说的参与节点100、参与节点200a、参与节点200b、
…
、参与节点200n。
72.进一步地,请参见图2a
‑
图2b,图2a
‑
图2b是本技术实施例提供的一种基于联邦学习的数据传输的场景示意图。实现该数据传输场景的计算机设备可以为如图1所示的多个参与节点(参与节点100、参与节点200a、参与节点200b、
…
、参与节点200n中任意两个或两个以上的参与节点),在本技术实施例中,仅以参与节点100和参与节点200a共同执行为例进行说明。如图2a所示,参与节点100拥有与其服务用户相关的本地数据300a,参与节点200a拥有与其服务用户相关的本地数据400a,且本地数据300a和本地数据400a可以为具有不同特征维度的数据集。在参与节点100和参与节点200a联合建模的训练过程中(即双方参与到同一个联邦学习任务),双方可以独立部署基于联邦学习的本地框架,且可以利用本地框架在本地独立创建各自的模型,例如参与节点100可以创建初始模型300b,参与节点200a可以创建初始模型400b。
73.进一步,假设该场景下本地数据300a和本地数据400a中用户重叠较多而用户特征重叠较少,则可以将两个数据集按照纵向(即特征维度)切分,并取出双方用户相同而用户特征不完全相同的那部分数据进行训练,且不暴露不互相重叠的用户,这种方法也称为纵向联邦学习。例如,假设参与节点100和参与节点200a分别属于两个不同的机构,参与节点100属于某地的银行,参与节点200a属于同一个地方的电商,可以理解,双方的用户群体很有可能包含该地的大部分居民,因此用户的交集较大,但是,由于银行记录的主要是用户的
收支行为、信用评级等信息,而电商则保有用户的浏览与购买历史等信息,因此它们的用户特征交集较小,纵向联邦学习就是将这些不同特征在加密的状态下加以聚合,以增强模型能力的联邦学习,目前机器学习模型如逻辑回归、决策树等均是建立在纵向联邦学习系统框架之下的。其中,上述数据提取过程具体可以采用基于加密的用户样本对齐技术(如rsa,一种加密算法),这里不进行展开。基于此,参与节点100可以从本地数据300a中提取出相应的数据对初始模型300b进行训练,同理,参与节点200a可以从本地数据400a中提取出相应的数据对初始模型400b进行训练。进一步,参与节点100和参与节点200a可以分别调用本地框架中的加密模块对其模型训练相关的数据进行加密,随后在两方之间直接进行通信。
74.可以理解的是,在整个模型训练过程中,参与节点100和参与节点200a各自的原始数据(如本地数据300a和本地数据400a)均不出本地。
75.需要说明的是,同态加密可分为半同态加密和全同态加密两种,如果一个密码学算法只满足乘法同态或者加法同态,就称其为半同态加密(she(somewhat homomorphic encryption)或phe(partially homomorphic encryption));而如果一个密码学算法既满足乘法同态又满足加法同态,就称其为全同态加密(fhe,fully homomorphic encryption)。在本技术实施例中,可以使用满足加法性质(即加法同态,具体可以参见下述图3所对应实施例的步骤s101中的相关描述)的半同态加密技术来进行隐私运算,如paillier同态加密方案、okamoto
‑
uchiyama同态加密方案等。
76.进一步,结合半同态加密技术的性质,参与节点100和参与节点200a进行加密通信的具体过程可以参见图2b,如图2b所示,假设参与节点100在训练过程中的某个时刻得到了明文300e(其中可以包括多个明文,例如可以是多个偏导数的集合),此时双方需要基于明文300e进行交互,则参与节点100可以在初始化阶段,生成公钥300c和私钥300d,并将公钥300c发送给参与节点200a,也就是说,公钥300c可被公开,私钥300d不可被公开,且只有参与节点100拥有私钥300d。进而参与节点100可以使用公钥300c对明文300e进行加密,得到密文300f,随后可以将密文300f发送给参与节点200a。参与节点200a接收到密文300f后,可以根据其本地的业务数据400c对密文300f进行隐私运算,得到密文400d。其中,业务数据400c可以指参与节点200a在训练过程中产生的一些偏导数(或梯度),也可以指本地数据400a的子集,其可以是密文形式,也可以是明文形式,具体可以根据实际需要确定,本技术实施例对此不做限制。其中,隐私运算可以包括标量乘法操作、同态加法操作、标量加法操作中的一种或多种。例如,假设业务数据400c是一些偏导数(明文),参与节点200a和参与节点100希望对密文300f和业务数据400c进行标量加法操作,即计算“密文300f
⊕
业务数据400c”的结果,则此时参与节点200a可以先使用公钥300c对业务数据400c进行加密操作得到中间密文,随后再对中间密文和密文300f进行同态加法操作,即可得到本次运算的中间结果(即密文400d)。
77.需要说明的是,由于同态加密往往会导致数据严重膨胀,因此参与节点200a在发送密文至参与节点100之前,可以对其进行打包压缩处理,具体的,参与节点200a可以先对密文400d进行数值界限预估,从而可以得到密文400d对应的明文预估界限值400e,其中,明文预估界限值400e可用于表征密文400d对应的明文的数值范围,可以理解,明文预估界限值400e包括上限值和下限值。进而参与节点200a可以基于明文预估界限值400e,对密文400d进行加法偏移处理,得到密文400f,随后参与节点200a可以根据明文预估界限值400e
和密文400f,采用本技术实施例提供的打包压缩算法生成具有多项式格式的密文400g(是压缩后的密文),并将密文400g发送至参与节点100,打包压缩算法的具体运算过程可以参见下述图3所对应实施例中的步骤s104。需要说明的是,进行加法偏移处理的目的是为了确保待压缩的密文满足打包压缩算法的要求,具体来说,对密文400d进行加法偏移处理后得到的密文400f所对应的明文需要为非负数。
78.进一步,参与节点100接收到参与节点200a发送的密文400g后,需要对其进行解密、解压等处理恢复真实的计算结果,具体过程可以为:首先,参与节点100可以使用私钥300d对压缩后的密文400g进行一次解密处理,得到明文300g,可以理解,此时明文300g仍处于压缩状态,因此,参与节点100还需要对其进行解压处理,具体可以根据本技术实施例提供的解压算法对明文300g进行位运算操作,得到明文300h,进而可以获取上述明文预估界限值400e,并基于明文预估界限值400e对明文300h进行减法复原处理(即上述加法偏移处理的逆运算),最终可以复原得到明文300i,即上述隐私运算的真实结果。解压算法的具体运算过程可以参见下述图6所对应实施例中的步骤s402。
79.其中,本技术实施例对上述任意密文和明文的具体形式(如可以为矩阵、数组等)不做限制。
80.在参与节点100和参与节点200a联合建模的训练过程中,双方可以通过上述图2b中所描述的过程不断地进行通信,可以理解,在这个过程中,任意一方都可能成为拥有私钥的一方(即隐私运算的发起方),本技术对此不做限制,上述图2b所对应的实施例仅以参与节点100拥有私钥300d为例进行说明。
81.最终,当初始模型300b和初始模型400b收敛时,根据双方计算所得的最终模型参数组合可以得到模型500作为最终训练好的模型。而后续参与节点100和参与节点200a共同使用模型500提供相应的服务时,双方之间的通信过程与上述训练过程中的通信过程一致,这里不再进行赘述。
82.上述可知,本技术实施例提供了一种针对联邦学习的密文打包压缩与解密解压方法,可以支持任意使用了满足加法性质的半同态加密算法的联邦学习算法,例如纵向联邦lr算法、纵向联邦gbdt算法(又称纵向联邦xgb算法)、纵向联邦神经网络算法等,该方法可以作为联邦学习任务的模型训练和模型推理模块集成到联邦学习平台中,并在公有云或私有云对外提供联邦学习服务,可应用于金融风控、广告推荐、人群画像、信息查询等多种场景。采用本技术实施例提供的方法,可以有效降低通信开销和解密开销,提升联邦学习平台(或系统)的可用性,进一步提高联邦学习模型的效果。
83.请参见图3,图3是本技术实施例提供的一种基于联邦学习的数据传输方法的流程示意图。该数据传输方法可以由任意多个参与节点执行(如图1中参与节点100、参与节点200a、参与节点200b、
…
、参与节点200n中的任意两个或两个以上的节点)。该数据传输方法至少可以包括以下步骤s101
‑
步骤s104:
84.步骤s101,第一参与节点获取第一密文,根据属于第一参与节点的业务数据对第一密文进行隐私运算,生成第二密文;第一密文是指第二参与节点对初始明文进行加密处理所得的数据;第二参与节点是指与第一参与节点进行联邦学习的节点;
85.在联邦学习任务的训练或推理过程中,第一参与节点和第二参与节点可以在加密保护下不断地进行数据交互。具体的,本技术实施例中采用的是满足加法性质的半同态加
密技术,这类技术通常要求输入的明文是大整数(又称为高精度整数,其含义就是用基本数据类型无法储存其精度的整数,如2048比特的大整数),而机器学习中使用的往往是浮点数(如32比特的浮点数),因此,为了支持浮点数,第二参与节点需要对具有浮点数格式的初始明文进行编码操作,得到编码后的初始明文,编码后的初始明文具有大整数格式,随后可以使用公钥对编码后的初始明文进行加密处理,得到第一密文,进而可以将第一密文发送至第一参与节点。其中,初始明文可以指第二参与节点在训练过程中产生的数据,用于与第一参与节点进行数据交互。本技术实施例对所用的编码方式不做限制,在一种实施方式中,将浮点数x编码为2048比特的大整数x的编码运算公式如下:
[0086][0087]
其中,b为放缩因子,常用的设置为b=16,e为指数项参数,round表示四舍五入的取整函数。可以理解,编码为其它长度的大整数的计算公式与公式(1)类似,这里不进行赘述。在完成编码后,使用加密算法对大整数x进行加密处理可以得到密文[x]。在本技术实施例中,可以记x=<e,x>和[x]=<e,[x]>,也就是说,编码操作后,浮点数x的密文[x]由两部分组成,包括指数项参数e和大整数密文[x]。
[0088]
进一步,第一参与节点接收第二参与节点发送的第一密文(包括编码后的初始明文对应的密文以及相应的指数项参数),进而可以根据属于第一参与节点的业务数据对第一密文进行隐私运算,从而生成第二密文。其中,业务数据是明文,可以包括但不限于用于模型训练的本地数据、训练过程中产生的梯度(或偏导数)等。
[0089]
需要说明的是,本技术实施例可以使用满足加法性质的半同态加密技术来进行隐私运算,此类加法性质的半同态加密技术主要满足以下几种操作:
[0090]
(a)初始化:在初始化阶段,生成公钥pk与私钥sk,其中公钥pk可被公开,私钥sk不可被公开;
[0091]
(b)加密处理:给定一个数值(明文)v,采用公钥pk进行加密处理得到密文[v],可表示为enc(v,pk)
→
[v];
[0092]
(c)解密处理:给定一个密文[v],采用私钥sk进行解密处理复原数值(明文v),可表示为dec([v],sk)
→
v;
[0093]
(d)同态加法操作:给定两个密文[u]和[v],通过同态加法操作得到新的密文[w],可表示为满足dec([w],sk)
→
w且w=u v;
[0094]
(e)标量加法操作:给定一个密文[u]和明文v,通过标量加法操作得到新的密文[w],可表示为满足dec([w],sk)
→
w且w=u v,值得注意的是,在绝大多数情况下,标量加法通过一次加密操作enc(v,pk)
→
[v]和一次同态加法操作来完成;
[0095]
(f)标量乘法操作:给定一个密文[u]和明文v,通过标量乘法操作得到新的密文[w],可表示为满足dec([w],sk)
→
w且w=u
×
v。
[0096]
在联邦学习中,上述半同态加密技术有两种常用的使用形式,分别为线性代数运算和直方图聚集操作,结合上述半同态加密技术的性质,也就是说,本技术实施例中的隐私
运算可以包括线性代数运算和直方图聚集操作,其中会涉及同态加法操作、标量加法操作、标量乘法操作中的一种或多种操作。
[0097]
可以理解的是,在本技术实施例中,第二参与节点是指同时拥有私钥和公钥的节点,第一参与节点是指仅拥有公钥而对私钥一无所知的节点,也就是说,第二参与节点在初始化公钥和私钥后,会将公钥发送给第一参与节点,以使第一参与节点也可以使用公钥进行加密处理。可以理解,本技术支持任意两个或两个以上的节点参与到同一个联邦学习任务中,但在同一次隐私运算的过程中,仅有一个节点拥有用于解密的私钥,也就是说,第二参与节点的数量只有一个,但第一参与节点的数量可以为一个或多个,本技术对第一参与节点的数量不做限制。
[0098]
步骤s102,对第二密文进行数值界限预估,得到第二密文对应的明文预估界限值;明文预估界限值用于表征第二密文对应的明文的数值范围;
[0099]
具体的,在机器学习任务中,数值往往会落在一个比较小的范围内,例如,在使用logistic loss(逻辑回归中使用的损失函数)作为损失函数时,其偏导数的计算公式为δ=sigmoid(y
′
)
‑
y,其中,sigmoid为激活函数,其输出在0到1之间,y'为模型预测值,y为样本标签,且y∈{0,1},由此可见,δ的范围在
‑
1到1之间,也就是说,δ存在上下界。基于此,可以理解,在联邦学习过程中,其中间计算结果(即隐私运算后生成的第二密文)同样存在上下界,且上下界是可预估的。因此,第一参与节点可以获取初始明文对应的数值范围和数据维度,以及业务数据对应的数值范围和数据维度,进而可以基于隐私运算的运算类型、相应的数值范围以及数据维度生成第二密文对应的明文预估界限值。
[0100]
其中,明文预估界限值可以包括上限值(即明文预估界限值中的最大值)和下限值(即明文预估界限值中的最小值),用于表征第二密文对应的明文的数值范围。数值界限预估除了在本技术实施例中作为后续打包压缩步骤的前提,还可以在其它需要预估数值上下界的场景下使用,例如某些运算结果存在超过预设的最大上限的可能时,对这些运算结果进行数值界限预估,可以起到一定的保护作用,这里不再展开。
[0101]
可以理解,在实际应用中,上述提及的数值范围、数据维度均为公开的信息,即所有参与节点都知道这些信息,因此,数值界限预估不存在隐私泄露的可能。后续会分别对线性代数运算和直方图聚集两种形式的数值界限预估分别进行讨论,这里先不进行展开。
[0102]
步骤s103,基于明文预估界限值,对第二密文进行加法偏移处理,得到第三密文;
[0103]
结合上述步骤s102所说,密文对应的真实数值(即密文对应的明文)落在一个较小的区间范围内,因此,对于编码操作后得到的大整数来说,虽然最高可支持位2048或3072位,但实际上只用到了较少的空间,例如,结合上述步骤s101中的公式(1),针对浮点数y,当0≤y≤2
32
,b=16,e=8时,其编码得到的长度为2048位的大整数y对应的数值范围为:0≤y=round(y
×
b
e
)≤2
64
,也就是说,尽管加密算法的有效空间高达2048位,但联邦学习中每个密文的真实数值最高只达到64位。需要说明的是,虽然编码后的大整数最高只达到64位,但由于加密操作涉及复杂的模幂运算,加密后的大整数是大于64位的,但这不影响本方案的可行性。基于此,本技术实施例提供了一种作用于密文的基于多项式的打包压缩算法,该算法要求待压缩的密文对应的明文为非负数,假设第二密文定义为[v
i
]=<e
i
,[v
i
]>,i=1,2,
…
,m,即第二密文包含了m个密文(m为大于1的正整数),则打包压缩算法要求v
i
≥0,因此,本步骤需要在进行打包压缩前对第二密文进行加法偏移处理,具体的,假设通过上述步
骤s102得到了第二密文对应的明文预估界限值为[
‑
φ,φ],其中,上限值为φ,下限值
‑
φ,则第一参与节点可以获取明文预估界限值中的上限值φ,进而可以分别对上限值φ和第二密文中的每个密文均进行标量加法操作,得到第三密文[u
i
]=<e
i
,[u
i
]>,i=1,2,
…
,m,其计算公式如下:
[0104][0105]
其中,上述计算过程会涉及加密操作和同态加法操作,此时得到的第三密文同样包括m个密文,且可以保证密文[u
i
]对应的明文u
i
为非负数。
[0106]
步骤s104,根据明文预估界限值和第三密文,生成具有多项式格式的目标压缩密文,发送目标压缩密文至第二参与节点。
[0107]
具体的,第一参与节点可以先获取用于表征上述预估界限值的移位参数,进而可以基于移位参数对第三密文进行标量乘法操作,得到至少两个密文单项式,进一步,可以对至少两个密文单项式进行同态加法操作,从而可以得到具有多项式格式的目标压缩密文,最终可以发送目标压缩密文至第二参与节点。
[0108]
结合上述步骤s103中所述,对于给定的包含m个密文的第三密文[u
i
]=<e
i
,[u
i
]>,i=1,2,
…
,m,本技术实施例提供的打包压缩算法可以使用标量乘法操作和同态加法操作进行下述运算:
[0109][0110]
其中,移位参数t用于表征上述预估界限值[
‑
φ,φ],也就是说,移位参数t可由第二密文对应的大整数明文的数值范围确定,例如,若步骤s103中的密文[v
i
]对应的真实数值最高只达到64位,则可设置t=64。其中,压缩密文[u
pack
]包含了m个多项式,分别为[u1]、对这m个多项式进行同态加法操作并整理后,即可得到最终的目标压缩密文[u
pack
]=<e1,e2,
…
,e
m
,[u
pack
]>,需要说明的是,指数项参数(e1,e2,
…
,e
m
,)不参与上述运算,由于指数项参数(e1,e2,
…
,e
m
,)所需的内存远远小于密文所需的内存,因此,目标压缩密文[u
pack
]所需的内存大小接近于原来有m个密文所需内存的1/m,也就是说,对密文[u1]、密文[u2]、
…
、密文[u
m
]进行上述打包压缩处理,可将m个密文压缩为一个密文[u
pack
]。最后,第一参与节点可以将目标压缩密文[u
pack
]发送至第二参与节点,从而可以将通信开销降低至原来的1/m。其中,m的上限与密钥长度有关,在实际应用中,密钥长度通常为2048比特或3072比特,此时m可以为64或128。可以理解,在很多高安全要求的场景下,密钥长度可取3072比特(对应的密文长度为6144比特),这种情况下编码得到的大整数可高达3072位,但本技术实施例提供的方法仍然适用,此时需要相应地调整公式(1)、公式(3)中的相关参数。
[0111]
综上所述,本技术实施例提出了一种基于多项式的密文打包压缩技术,支持第一参与节点获取第二参与节点发送的第一密文,并可以根据属于第一参与节点的业务数据对第一密文进行隐私运算,从而可以生成第二密文,进一步,可以对得到的第二密文进行数值界限预估,得到第二密文对应的明文预估界限值,进而可以基于该明文预估界限值对第二密文进行加法偏移处理,得到第三密文,随后可以根据明文预估界限值和第三密文,生成具有多项式格式的目标压缩密文,最终可以将目标压缩密文发送至第二参与节点。由此可见,在第一参与节点和第二参与节点进行联邦学习的过程中,第一参与节点在向第二参与节点
发送密文之前,通过本技术实施例提供的基于多项式的打包压缩算法将多个密文打包压缩在一起进行传输,可以大幅度降低由于密文发送所带来的通信开销,从而可以显著提高联邦学习任务运行的效率,提高联邦学习的可用性。
[0112]
进一步地,请参见图4,图4是本技术实施例提供的一种基于联邦学习的数据传输方法的流程示意图。如图4所示,该数据传输方法的过程包括如下步骤s201
‑
步骤s203,且步骤s201
‑
步骤s203为图3所对应实施例中步骤s101
‑
步骤s102的一个具体实施例,该数据传输过程针对线性代数运算的场景,可以包括如下步骤:
[0113]
步骤s201,获取属于第一参与节点的业务数据,对业务数据和第一密文进行线性代数运算,得到第二密文;
[0114]
具体的,第一参与节点获取到第二参与节点发送的第一密文后,可以获取存储在本地的业务数据,进而可以对业务数据和第一密文进行线性代数运算,得到第二密文,其中,线性代数运算包括标量乘法操作、同态加法操作、标量加法操作中的一种或多种。
[0115]
需要说明的是,基于同态加密的线性代数运算在许多联邦学习算法中均有应用,如逻辑回归(logistic regression,lr)算法,神经网络算法等。在一种实施方式中,假设初始明文和业务数据均为矩阵,第二参与节点拥有的初始明文为矩阵m1,第一参与节点拥有的业务数据包括矩阵m2和矩阵m3,矩阵m1的大小为in
×
h,矩阵m2的大小为h
×
out,矩阵m3的大小为in
×
out。假设参与的双方希望计算m4=m1×
m2 m3(属于线性代数运算),同时希望保护自己的矩阵不被对方所得知,其流程可以为:
[0116]
(a)第二参与节点初始化公钥pk和私钥sk,并将公钥pk发送给第一参与节点;
[0117]
(b)第二参与节点使用公钥pk加密矩阵m1得到矩阵[m1],并将矩阵[m1]发送给第一参与节点,这里矩阵[m1]指的是由多个密文组成的矩阵,且其中每个密文是矩阵m1对应位置上数值的密文,也就是说,矩阵[m1]在第i行第j列的密文为[m1]
(ij)
=enc(m
1(ij)
,pk);
[0118]
(c)第一参与节点接收到矩阵[m1]后,计算其中矩阵[m4](即第二密文)在第i行第j列的密文的计算方式如下:该过程涉及到标量乘法操作、同态加法操作以及标量加法操作。计算完成后,若第一参与节点直接将矩阵[m4]发送给第二参与节点,则第二参与节点可使用密钥sk对矩阵[m4]进行解密得到矩阵m4,显然,m4=m1×
m2 m3。
[0119]
步骤s202,获取初始明文对应的第一数值范围以及业务数据对应的第二数值范围;获取初始明文的第一数据维度以及业务数据的第二数据维度,根据线性代数运算的运算类型,在第一数据维度和第二数据维度中确定目标数据维度;
[0120]
具体的,第一参与节点可以初始明文对应的第一数值范围以及业务数据对应的第二数值范围,同时,可以获取初始明文的第一数据维度以及业务数据的第二数据维度,进而可以根据线性代数运算的运算类型,在第一数据维度和第二数据维度中确定目标数据维度。可选的,在一种实施方式中,当初始明文和业务数据均为矩阵时,第一参与节点可以获取初始明文的第一矩阵宽度和第一矩阵高度,并将第一矩阵宽度和第一矩阵高度确定为初始明文的第一数据维度,同理,可以获取业务数据的第二矩阵宽度和第二矩阵高度,并将第
二矩阵宽度和第二矩阵高度确定为业务数据的第二数据维度。进一步,当线性代数运算为标量乘法操作,且第一矩阵高度与第二矩阵宽度相等时,可以将第一矩阵高度确定为目标数据维度,或者,当线性代数运算为标量乘法操作,且第二矩阵高度与第一矩阵宽度相等时,可以将第二矩阵高度确定为目标数据维度。可以理解,目标数据维度取决于性代数运算的具体运算过程。
[0121]
结合上述步骤s201,矩阵m1为初始明文,矩阵m2和矩阵m3为业务数据,假设矩阵m1中的所有元素均在数值范围[
‑
φ1,φ1]内,矩阵m2中的所有元素均在数值范围[
‑
φ2,φ2]内,矩阵m3中的所有元素均在数值范围[
‑
φ3,φ3]内,则第一参与节点获取到的第一数值范围为[
‑
φ1,φ1],第二数值范围包括[
‑
φ2,φ2]和[
‑
φ3,φ3],相应的,第一数据维度包括第一矩阵宽度in和第一矩阵高度h,第二数据维度则包括第二矩阵宽度h、第二矩阵高度out以及第二矩阵宽度in和第二矩阵高度out。其中,φ1、φ2、φ3、in、h、out都是公开可知的数据。由于上述步骤s201中的线性代数运算为因此可以将第二矩阵宽度h确定为目标数据维度。
[0122]
步骤s203,基于线性代数运算的运算类型、第一数值范围、第二数值范围以及目标数据维度,生成第二密文对应的明文预估界限值。
[0123]
具体的,结合上述步骤s201
‑
步骤s202,计算得到的矩阵[m4]作为第二密文,矩阵[m4]对应的明文为矩阵m4,矩阵m4中的所有元素均在数值范围[
‑
φ,φ]内,也就是说,矩阵[m4]对应的明文预估界限值为[
‑
φ,φ],其中,φ=h
×
φ1×
φ2 φ3。
[0124]
本技术实施例支持第一参与节点获取第二参与节点发送的第一密文,并可以根据属于第一参与节点的业务数据对第一密文进行线性代数运算,从而可以生成第二密文,进一步,可以基于线性代数运算的运算类型、初始明文对应的第一数值范围、业务数据对应的第二数值范围以及目标数据维度,生成第二密文对应的明文预估界限值,后续可以基于该明文预估界限值对第二密文进行加法偏移处理,得到第三密文,随后可以根据明文预估界限值和第三密文,生成具有多项式格式的目标压缩密文,最终可以将目标压缩密文发送至第二参与节点。由此可见,在第一参与节点和第二参与节点进行联邦学习的过程中,第一参与节点在向第二参与节点发送密文之前,通过预估第二密文对应的明文预估界限值,进而基于明文预估界限值将多个密文打包压缩在一起进行传输,可以大幅度降低由于密文发送所带来的通信开销,从而可以显著提高联邦学习任务运行的效率,提高联邦学习的可用性。
[0125]
进一步地,请参见图5,图5是本技术实施例提供的一种基于联邦学习的数据传输方法的流程示意图。如图5所示,该数据传输方法的过程包括如下步骤s301
‑
步骤s303,且步骤s301
‑
步骤s303为图3所对应实施例中步骤s101
‑
步骤s102的一个具体实施例,该数据传输过程针对直方图聚集的场景,可以包括如下步骤:
[0126]
步骤s301,获取属于第一参与节点的业务数据对应的数据特征,基于数据特征对至少两个子密文进行聚类,得到一个或多个聚类区间;分别对一个或多个聚类区间中的子密文进行同态加法操作,得到每个聚类区间对应的聚类子密文,将一个或多个聚类子密文确定为第二密文;
[0127]
具体的,第一参与节点获取到第二参与节点发送的第一密文(假设第一密文包括至少两个子密文)后,可以获取存储在本地的业务数据对应的数据特征,进而可以基于该数据特征对至少两个子密文进行聚类,从而可以得到一个或多个聚类区间。进一步,可以分别
对一个或多个聚类区间中的子密文进行同态加法操作,得到每个聚类区间对应的聚类子密文,最终可以将一个或多个聚类子密文确定为第二密文。
[0128]
需要说明的是,机器学习中另一种常见的隐私运算是对梯度(或偏导数)进行聚集,用于后续的计算流程,许多算法如决策树算法、梯度提升树(gradient boosting decision tree,gbdt,又称xgb)算法等均包含有直方图聚集的操作。假设有n条训练样本,n为大于1的整数,第二参与节点拥有这些样本的偏导数t1,t2,
…
,t
n
(即初始明文),第一参与节点拥有这些样本的数据特征(即业务数据对应的数据特征,如年龄、性别等)。假设第二参与节点希望基于第一参与节点的数据特征对偏导数进行聚集,例如,将年龄划分为18岁以下、18岁
‑
35岁、35岁
‑
60岁、60岁以上共四个聚类区间,并对每个聚类区间内的样本的偏导数进行聚集,同时希望保护双方的数据不被对方所得知,其流程可以为:
[0129]
(a)第二参与节点初始化公钥pk和私钥sk,并将公钥pk发送给第一参与节点;
[0130]
(b)第二参与节点使用公钥pk对偏导数t1,t2,
…
,t
n
进行加密得到偏导数密文[t1],[t2],
…
,[t
n
](即n个子密文组成的第一密文),并发送给第一参与节点;
[0131]
(c)第一参与节点基于自己的数据特征,将落入同一聚类区间内的样本的偏导数密文进行同态加法操作,即可得到直方图的密文[s1],[s2],
…
,[s
q
](即包含q个聚类子密文的第二密文),其中,q为聚类区间个数,且q为正整数,且q小于或等于n,例如,密文[s1]为年龄在18岁以下的所有样本的偏导数密文的总和。计算完成后,若第一参与节点直接将密文[s1],[s2],
…
,[s
q
]发送给第二参与节点,则第二参与节点可以使用密钥sk对密文[s1],[s2],
…
,[s
q
]进行解密,得到直方图聚集的结果,即s1,s2,
…
,s
q
。
[0132]
步骤s302,获取初始明文对应的数值范围以及数据维度;
[0133]
具体的,结合上述步骤s301,假设第二参与节点拥有的偏导数t1,t2,
…
,t
n
均在数值范围[
‑
φ’,φ’]内,则第一参与节点获取到的数值范围为[
‑
φ’,φ’],数据维度为n(即样本数量),其中,φ’和n都是公开可知的数据。
[0134]
步骤s303,基于同态加法操作的运算类型、数值范围以及数据维度生成第二密文对应的明文预估界限值。
[0135]
具体的,结合上述步骤s301
‑
步骤s302,对偏导数t1,t2,
…
,t
n
进行直方图聚集得到的密文[s1],[s2],
…
,[s
q
]作为第二密文,对应的明文(包括s1,s2,
…
,s
q
)均在数值范围[
‑
φ,φ]内,也就是说,第二密文对应的明文预估界限值为[
‑
φ,φ],其中,φ=n
×
φ’。
[0136]
综上所述,本技术实施例支持第一参与节点获取第二参与节点发送的包含至少两个子密文的第一密文,并可以根据属于第一参与节点的业务数据对应的数据特征对至少两个子密文进行聚类,从而可以生成包含一个或多个聚类子密文的第二密文,进一步,可以基于聚类过程中的运算类型、初始明文对应的数值范围以及数据维度,生成第二密文对应的明文预估界限值,后续可以基于该明文预估界限值对第二密文进行加法偏移处理,得到第三密文,随后可以根据明文预估界限值和第三密文,生成具有多项式格式的目标压缩密文,最终可以将目标压缩密文发送至第二参与节点。由此可见,在第一参与节点和第二参与节点进行联邦学习的过程中,第一参与节点在向第二参与节点发送密文之前,通过预估第二密文对应的明文预估界限值,进而基于明文预估界限值将多个密文打包压缩在一起进行传输,可以大幅度降低由于密文发送所带来的通信开销,从而可以显著提高联邦学习任务运行的效率,提高联邦学习的可用性。
[0137]
请参见图6,图6是本技术实施例提供的一种基于联邦学习的数据传输方法的流程示意图。该数据传输方法可以由任意多个参与节点执行(如图1中参与节点100、参与节点200a、参与节点200b、
…
、参与节点200n中的任意两个或两个以上的节点)。该数据传输方法至少可以包括以下步骤s401
‑
步骤s403:
[0138]
步骤s401,第二参与节点接收第一参与节点发送的目标压缩密文,采用私钥对目标压缩密文进行解密处理,得到第一压缩明文;第一参与节点是指与第二参与节点进行联邦学习的节点;
[0139]
具体的,在联邦学习任务的训练或推理过程中,第二参与节点接收到第一参与节点发送的目标压缩密文后,可以采用私钥对目标压缩密文进行解密处理,从而得到第一压缩明文,此时第一压缩明文具有多项式格式,即处于压缩状态。其中,目标压缩密文是由第一参与节点根据明文预估界限值和第三密文生成的具有多项式格式的密文;第三密文是指第一参与节点基于明文预估界限值对第二密文进行加法偏移处理所得的密文;明文预估界限值是由第一参与节点对第二密文进行数值界限预估得到的,明文预估界限值用于表征第二密文对应的明文的数值范围;第二密文是指第一参与节点根据属于第一参与节点的业务数据对第一密文进行隐私运算生成的密文,第一密文是指第二参与节点对初始明文进行加密处理所得的数据。
[0140]
例如,结合上述图3所对应实施例中的步骤s104,第二参与节点接收到目标压缩密文[u
pack
]=<e1,e2,
…
,e
m
,[u
pack
]>后,需要对其进行解密与解压操作,复原回真实数值v1,v2,
…
,v
m
。在本步骤中,第二参与节点仅需要使用私钥对目标压缩密文[u
pack
]进行一次解密操作,即可将目标压缩密文[u
pack
]解密为大整数u
pack
(即第一压缩明文)。
[0141]
步骤s402,对具有多项式格式的第一压缩明文进行位运算操作,得到第二明文;
[0142]
具体的,第二参与节点可以对具有多项式格式的第一压缩明文进行位运算操作,得到至少两个具有整数格式的解压明文。例如,结合上述步骤s401和图3所对应实施例中的步骤s104,可知大整数u
pack
=u1 2
t
×
(u2 2
t
×
(u3
…
)),因此可以使用位运算操作得到m个大整数u1,u2,
…
,u
m
(即m个解压明文),例如,当公式(3)中的移位参数t=64时,大整数u
pack
的第1
‑
64位为大整数u1,第65
‑
128位为大整数u2,以此类推,可以解压得到m个大整数。
[0143]
可以理解,由于一开始对初始明文进行了编码操作,因此本步骤还需要对上述解压明文进行解码操作,具体的,第二参与节点可以获取放缩因子和至少两个解压明文分别对应的指数项参数,随后根据放缩因子和至少两个指数项参数分别对每个解压明文进行解码操作,可以得到至少两个具有浮点数格式的子明文,并可以将至少两个子明文确定为第二明文。例如,结合上述图3所对应实施例中的步骤s101中的公式(1),分别对大整数u1,u2,
…
,u
m
进行解码操作,即可以将<e
i
,u
i
>解码为浮点数u
i
(其中,i=1,2,
…
,m),最终可以得到浮点数u1,u2,
…
,u
m
(即m个子明文),这个过程总共需要执行m次解码操作。
[0144]
步骤s403,获取明文预估界限值,基于明文预估界限值对第二明文进行减法复原处理,得到目标明文。
[0145]
具体的,第二参与节点可以获取明文预估界限值中的上限值,进而可以分别将至少两个子明文与上限值相减,得到至少两个复原子明文,最终可以将至少两个复原子明文确定为目标明文(即第二密文对应的明文,是上述隐私运算的真实结果)。例如,结合上述图3所对应实施例中的步骤s103中的公式(2),获取明文预估界限值中的上限值φ,并计算v
i
=u
i
‑
φ,i=1,2,
…
,m,从而可以复原出m个复原子明文v1,v2,
…
,v
m
。
[0146]
上述可知,传统的密文解密过程通常涉及复杂的运算(如中国剩余定理等),以保证密文的鲁棒性,但这会导致单次解密操作十分耗时,因此,当需要解密的密文数量很多时,解密开销会十分巨大。与直接解密m个密文相比,本技术实施例提供的与上述打包压缩算法对应的解密解压算法仅需要进行一次解密操作,由于解码操作和明文加减法操作的耗时远远低于解密操作,因此,密文解密的开销可降低至原来的1/m。
[0147]
上述可知,本技术实施例提出了一种基于多项式的密文解密解压技术,支持第二参与节点接收第一参与节点发送的目标压缩密文,并采用私钥对目标压缩密文进行解密处理,得到第一压缩明文,进一步,可以对具有多项式格式的第一压缩明文进行位运算操作,得到第二明文,随后获取明文预估界限值,并可以基于明文预估界限值对第二明文进行减法复原处理,最终得到目标明文,即第一参与节点进行隐私运算的真实结果。由此可见,在第一参与节点和第二参与节点进行联邦学习的过程中,在第二参与节点进行解密的阶段,本技术实施例提供的基于多项式的解密解压算法,通过一次解密操作,可以将打包压缩后的多个密文一次性进行解压,从而可以大幅度降低由于密文解密所带来的解密开销,且可以显著提高联邦学习任务运行的效率,提高联邦学习的可用性。
[0148]
综上所述,本技术提供的基于联邦学习的数据传输方法可以应用于任意使用了满足加法性质的半同态加密技术的联邦学习算法,其中该数据传输方法主要包括联邦学习中的数值界限预估、基于多项式的打包压缩算法以及基于多项式的解密解压算法,采用本技术提供的方法,可以有效降低由于密文发送带来的通信开销以及由于解密带来的解密开销,从而可以提升联邦学习平台(或系统)的可用性,进一步提高联邦学习模型的效果。
[0149]
请参见图7,是本技术实施例提供的一种基于联邦学习的数据传输装置的结构示意图。该基于联邦学习的数据传输装置可以是运行于计算机设备的一个计算机程序(包括程序代码),例如该基于联邦学习的数据传输装置为一个应用软件;该装置可以用于执行本技术实施例提供的基于联邦学习的数据传输方法中的相应步骤。如图7所示,该基于联邦学习的数据传输1可以包括:运算模块11、预估模块12、偏移模块13、压缩模块14;
[0150]
运算模块11,用于第一参与节点获取第一密文,根据属于第一参与节点的业务数据对第一密文进行隐私运算,生成第二密文;第一密文是指第二参与节点对初始明文进行加密处理所得的数据;第二参与节点是指与第一参与节点进行联邦学习的节点;
[0151]
预估模块12,用于对第二密文进行数值界限预估,得到第二密文对应的明文预估界限值;明文预估界限值用于表征第二密文对应的明文的数值范围;
[0152]
偏移模块13,用于基于明文预估界限值,对第二密文进行加法偏移处理,得到第三密文;
[0153]
上述偏移模块13,具体用于获取明文预估界限值中的上限值,对上限值和第二密文进行标量加法操作,得到第三密文;第三密文对应的明文为非负数;
[0154]
压缩模块14,用于根据明文预估界限值和第三密文,生成具有多项式格式的目标压缩密文,发送目标压缩密文至第二参与节点;
[0155]
上述压缩模块14,具体用于获取用于表征预估界限值的移位参数,基于移位参数对第三密文进行标量乘法操作,得到至少两个密文单项式;对至少两个密文单项式进行同态加法操作,得到具有多项式格式的目标压缩密文。
[0156]
其中,运算模块11的具体功能实现方式可以参见上述图3所对应实施例中的步骤s101,预估模块12的具体功能实现方式可以参见上述图3所对应实施例中的步骤s102,偏移模块13的具体功能实现方式可以参见上述图3所对应实施例中的步骤s103,压缩模块14的具体功能实现方式可以参见上述图3所对应实施例中的步骤s104,这里不再进行赘述。
[0157]
请一并参见图7,上述运算模块11可以包括:第一运算单元111、第二运算单元112;
[0158]
第一运算单元111,用于获取属于第一参与节点的业务数据,对业务数据和第一密文进行线性代数运算,得到第二密文;线性代数运算包括标量乘法操作、同态加法操作、标量加法操作中的一种或多种;
[0159]
在一种实施方式中,第一密文包括至少两个子密文;
[0160]
第二运算单元112,用于获取属于第一参与节点的业务数据对应的数据特征,基于数据特征对至少两个子密文进行聚类,得到一个或多个聚类区间;分别对一个或多个聚类区间中的子密文进行同态加法操作,得到每个聚类区间对应的聚类子密文,将一个或多个聚类子密文确定为第二密文。
[0161]
其中,第一运算单元111的具体功能实现方式可以参见上述图4所对应实施例中的步骤s201,第二运算单元112的具体功能实现方式可以参见上述图5所对应实施例中的步骤s301,这里不再进行赘述。
[0162]
请一并参见图7,上述预估模块12可以包括:第一获取单元121、第一预估单元122、第二获取单元123、第二预估单元124;
[0163]
第一获取单元121,用于获取初始明文对应的第一数值范围以及业务数据对应的第二数值范围;获取初始明文的第一数据维度以及业务数据的第二数据维度,根据线性代数运算的运算类型,在第一数据维度和第二数据维度中确定目标数据维度;
[0164]
在一种实施方式中,上述初始明文和业务数据均为矩阵;
[0165]
上述第一获取单元121,具体用于获取初始明文的第一矩阵宽度和第一矩阵高度,将第一矩阵宽度和第一矩阵高度确定为初始明文的第一数据维度;获取业务数据的第二矩阵宽度和第二矩阵高度,将第二矩阵宽度和第二矩阵高度确定为业务数据的第二数据维度;当线性代数运算为标量乘法操作,且第一矩阵高度与第二矩阵宽度相等时,将第一矩阵高度确定为目标数据维度;当线性代数运算为标量乘法操作,且第二矩阵高度与第一矩阵宽度相等时,将第二矩阵高度确定为目标数据维度;
[0166]
第一预估单元122,用于基于线性代数运算的运算类型、第一数值范围、第二数值范围以及目标数据维度,生成第二密文对应的明文预估界限值;
[0167]
第二获取单元123,用于获取初始明文对应的数值范围以及数据维度;
[0168]
第二预估单元124,用于基于同态加法操作的运算类型、数值范围以及数据维度生成第二密文对应的明文预估界限值。
[0169]
其中,第一获取单元121的具体功能实现方式可以参见上述图4所对应实施例中的步骤s202,第一预估单元122的具体功能实现方式可以参见上述图4所对应实施例中的步骤s203,第二获取单元123的具体功能实现方式可以参见上述图5所对应实施例中的步骤s302,第二预估单元124的具体功能实现方式可以参见上述图5所对应实施例中的步骤s303,这里不再进行赘述。
[0170]
本技术实施例提出了一种基于多项式的密文打包压缩技术,支持第一参与节点获
取第二参与节点发送的第一密文,并可以根据属于第一参与节点的业务数据对第一密文进行隐私运算,从而可以生成第二密文,进一步,可以对得到的第二密文进行数值界限预估,得到第二密文对应的明文预估界限值,进而可以基于该明文预估界限值对第二密文进行加法偏移处理,得到第三密文,随后可以根据明文预估界限值和第三密文,生成具有多项式格式的目标压缩密文,最终可以将目标压缩密文发送至第二参与节点。由此可见,在第一参与节点和第二参与节点进行联邦学习的过程中,第一参与节点在向第二参与节点发送密文之前,通过本技术实施例提供的基于多项式的打包压缩算法将多个密文打包压缩在一起进行传输,可以大幅度降低由于密文发送所带来的通信开销,从而可以显著提高联邦学习任务运行的效率,提高联邦学习的可用性。
[0171]
请参见图8,是本技术实施例提供的一种基于联邦学习的数据传输装置的结构示意图。该基于联邦学习的数据传输装置可以是运行于计算机设备的一个计算机程序(包括程序代码),例如该基于联邦学习的数据传输装置为一个应用软件;该装置可以用于执行本技术实施例提供的基于联邦学习的数据传输方法中的相应步骤。如图8所示,该基于联邦学习的数据传输2可以包括:解密模块21、解压模块22、复原模块23;
[0172]
解密模块21,用于第二参与节点接收第一参与节点发送的目标压缩密文,采用私钥对目标压缩密文进行解密处理,得到第一压缩明文;第一参与节点是指与第二参与节点进行联邦学习的节点;目标压缩密文是由第一参与节点根据明文预估界限值和第三密文生成的具有多项式格式的密文;第三密文是指第一参与节点基于明文预估界限值对第二密文进行加法偏移处理所得的密文;明文预估界限值是由第一参与节点对第二密文进行数值界限预估得到的,明文预估界限值用于表征第二密文对应的明文的数值范围;第二密文是指第一参与节点根据属于第一参与节点的业务数据对第一密文进行隐私运算生成的密文,第一密文是指第二参与节点对初始明文进行加密处理所得的数据;
[0173]
解压模块22,用于对具有多项式格式的第一压缩明文进行位运算操作,得到第二明文;
[0174]
复原模块23,用于获取明文预估界限值,基于明文预估界限值对第二明文进行减法复原处理,得到目标明文;
[0175]
上述复原模块23,具体用于获取明文预估界限值中的上限值,分别将至少两个子明文与上限值相减,得到至少两个复原子明文,将至少两个复原子明文确定为目标明文。
[0176]
其中,解密模块21的具体功能实现方式可以参见上述图6所对应实施例中的步骤s401,解压模块22的具体功能实现方式可以参见上述图6所对应实施例中的步骤s402,复原模块23的具体功能实现方式可以参见上述图6所对应实施例中的步骤s403,这里不再进行赘述。
[0177]
请一并参见图8,上述解压模块22可以包括:解压单元221、解码单元222;
[0178]
解压单元221,用于对具有多项式格式的第一压缩明文进行位运算操作,得到至少两个具有整数格式的解压明文;
[0179]
解码单元222,用于获取放缩因子和至少两个解压明文分别对应的指数项参数,根据放缩因子和至少两个指数项参数分别对每个解压明文进行解码操作,得到至少两个具有浮点数格式的子明文,将至少两个子明文确定为第二明文。
[0180]
其中,解压单元221、解码单元222的具体功能实现方式可以参见上述图6所对应实
施例中的步骤s402,这里不再进行赘述。
[0181]
本技术实施例提出了一种基于多项式的密文解密解压技术,支持第二参与节点接收第一参与节点发送的目标压缩密文,并采用私钥对目标压缩密文进行解密处理,得到第一压缩明文,进一步,可以对具有多项式格式的第一压缩明文进行位运算操作,得到第二明文,随后获取明文预估界限值,并可以基于明文预估界限值对第二明文进行减法复原处理,最终得到目标明文,即第一参与节点进行隐私运算的真实结果。由此可见,在第一参与节点和第二参与节点进行联邦学习的过程中,在第二参与节点进行解密的阶段,本技术实施例提供的基于多项式的解密解压算法,通过一次解密操作,可以将打包压缩后的多个密文一次性进行解压,从而可以大幅度降低由于密文解密所带来的解密开销,且可以显著提高联邦学习任务运行的效率,提高联邦学习的可用性。
[0182]
请参见图9,是本技术实施例提供的一种计算机设备的结构示意图。如图9所示,该计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,上述计算机设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(display)、键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi
‑
fi接口)。存储器1004可以是高速ram存储器,也可以是非不稳定的存储器(non
‑
volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图9所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
[0183]
在如图9所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
[0184]
第一参与节点获取第一密文,根据属于第一参与节点的业务数据对第一密文进行隐私运算,生成第二密文;第一密文是指第二参与节点对初始明文进行加密处理所得的数据;第二参与节点是指与第一参与节点进行联邦学习的节点;
[0185]
对第二密文进行数值界限预估,得到第二密文对应的明文预估界限值;明文预估界限值用于表征第二密文对应的明文的数值范围;
[0186]
基于明文预估界限值,对第二密文进行加法偏移处理,得到第三密文;
[0187]
根据明文预估界限值和第三密文,生成具有多项式格式的目标压缩密文,发送目标压缩密文至第二参与节点。
[0188]
应当理解,本技术实施例中所描述的计算机设备1000可执行前文图3、图4、图5任一个所对应实施例中对上述基于联邦学习的数据传输方法的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
[0189]
请参见图10,是本技术实施例提供的一种计算机设备的结构示意图。如图10所示,该计算机设备2000可以包括:处理器2001,网络接口2004和存储器2005,此外,上述计算机设备2000还可以包括:用户接口2003,和至少一个通信总线2002。其中,通信总线2002用于实现这些组件之间的连接通信。其中,用户接口2003可以包括显示屏(display)、键盘(keyboard),可选用户接口2003还可以包括标准的有线接口、无线接口。网络接口2004可选
的可以包括标准的有线接口、无线接口(如wi
‑
fi接口)。存储器2004可以是高速ram存储器,也可以是非不稳定的存储器(non
‑
volatile memory),例如至少一个磁盘存储器。存储器2005可选的还可以是至少一个位于远离前述处理器2001的存储装置。如图10所示,作为一种计算机可读存储介质的存储器2005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
[0190]
在如图10所示的计算机设备2000中,网络接口2004可提供网络通讯功能;而用户接口2003主要用于为用户提供输入的接口;而处理器2001可以用于调用存储器2005中存储的设备控制应用程序,以实现:
[0191]
第二参与节点接收第一参与节点发送的目标压缩密文,采用私钥对目标压缩密文进行解密处理,得到第一压缩明文;第一参与节点是指与第二参与节点进行联邦学习的节点;目标压缩密文是由第一参与节点根据明文预估界限值和第三密文生成的具有多项式格式的密文;第三密文是指第一参与节点基于明文预估界限值对第二密文进行加法偏移处理所得的密文;明文预估界限值是由第一参与节点对第二密文进行数值界限预估得到的,明文预估界限值用于表征第二密文对应的明文的数值范围;第二密文是指第一参与节点根据属于第一参与节点的业务数据对第一密文进行隐私运算生成的密文,第一密文是指第二参与节点对初始明文进行加密处理所得的数据;
[0192]
对具有多项式格式的第一压缩明文进行位运算操作,得到第二明文;
[0193]
获取明文预估界限值,基于明文预估界限值对第二明文进行减法复原处理,得到目标明文。
[0194]
应当理解,本技术实施例中所描述的计算机设备2000可执行前文图6所对应实施例中对上述基于联邦学习的数据传输方法的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
[0195]
此外,这里需要指出的是:本技术实施例还提供了一种计算机可读存储介质,且上述计算机可读存储介质中存储有前文提及的基于联邦学习的数据传输装置1以及基于联邦学习的数据传输装置2所执行的计算机程序,且上述计算机程序包括程序指令,当上述处理器执行上述程序指令时,能够执行前文图3、图4、图5、图6任一个所对应实施例中对基于联邦学习的数据传输方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本技术所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本技术方法实施例的描述。
[0196]
上述计算机可读存储介质可以是前述任一实施例提供的基于联邦学习的数据传输装置或者上述计算机设备的内部存储单元,例如计算机设备的硬盘或内存。该计算机可读存储介质也可以是该计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,该计算机可读存储介质还可以既包括该计算机设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该计算机设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
[0197]
此外,这里需要指出的是:本技术实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读
存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行前文图3、图4、图5、图6任一个所对应实施例提供的方法。
[0198]
本技术实施例的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、装置、产品或设备固有的其他步骤单元。
[0199]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0200]
本技术实施例提供的方法及相关装置是参照本技术实施例提供的方法流程图和/或结构示意图来描述的,具体可由计算机程序指令实现方法流程图和/或结构示意图的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。这些计算机程序指令可提供到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或结构示意一个方框或多个方框中指定的功能的步骤。
[0201]
以上所揭露的仅为本技术较佳实施例而已,当然不能以此来限定本技术之权利范围,因此依本技术权利要求所作的等同变化,仍属本技术所涵盖的范围。
转载请注明原文地址:https://doc.8miu.com/read-1250127.html