对加密数据启用提升协议的制作方法

文档序号:30713463发布日期:2022-07-11 14:25阅读:139来源:国知局
对加密数据启用提升协议的制作方法
对加密数据启用提升协议


背景技术:

1.本发明总体上涉及加密数据的领域,并且更具体地涉及对加密数据启用提升协议(boosting protocol)。
2.数据加密将数据转换成另一种形式或代码,使得仅访问秘密密钥(正式地被称为解密密钥)或密码的人可以读取它。加密数据通常被称为密文,而未加密数据被称为明文。目前,加密是组织使用的最流行和有效的数据安全方法之一。主要存在两种类型的数据加密:非对称加密(也称为公钥加密)和对称加密。数据加密的目的是保护数字数据机密性,因为它被存储在计算机系统上并且使用互联网或其他计算机网络来传输。
3.同态加密(homomorphic encryption)是具有附加评估能力的加密形式,用于在不访问秘密密钥的情况下对加密数据进行计算。这种计算的结果保持被加密。同态加密可以视为对称密钥密码技术或公钥密码技术的扩展。同态加密可以用于隐私保留(privacy-preserving)的外包存储和计算。这允许数据被加密并被外包到商业云环境以供在加密的同时全部处理。在高度管制的行业(诸如,医疗保健)中,同态加密可用于通过移除禁止数据共享的隐私屏障来实现新服务。例如,由于医疗数据隐私担忧,医疗保健中的预测分析可能难以应用,但是如果预测分析服务提供商可以对加密数据进行操作,则这些隐私担忧将减弱。


技术实现要素:

4.本发明实施例的各方面公开如权利要求1所述的方法、以及如权利要求8和9所述的对应计算机系统和计算机程序产品,用于使用加密数据来训练机器学习模型。
附图说明
5.图1描绘了根据本发明实施例的分布式数据处理环境的框图。
6.图2描绘了根据本发明实施例的加密数据训练程序的步骤的流程图。
7.图3描绘了根据本发明实施例的客户端环境与云计算环境之间的数据流。
8.图4描绘了根据本发明实施例的分布式数据处理环境的计算设备的框图。
具体实施方式
9.本发明的各实施例认识到,客户端想要保护他们的隐私数据,而云平台运营商想要保护他们的知识产权(即,机器学习模型)。因此,需要能够在没有解密密钥的情况下在加密数据上进行机器学习模型的训练。同态加密已经显现为用于实现对加密数据的计算功能的技术,但将同态加密应用于复杂问题是非常低效的,例如,复杂深度神经网络的机器学习训练。本发明的各实施例使得能够对加密数据(例如,同态加密的数据)进行复杂的机器学习模型的训练。
10.本发明的各实施例提出使用更简单的模型(例如,逻辑回归)并且在强隐私和计算约束下利用提升协议。本发明的各实施例确保客户端数据从不被云平台解密,并且云平台
模型从未被揭示给客户端。本发明的各实施例利用云平台来进行繁重的计算工作中的大部分。本发明的各实施例支持若干现有技术机器学习总体元算法,例如提升算法,包含自适应提升、梯度提升和投票方法。
11.在本发明的各实施例中,客户端拥有不能以其原始形式共享的高度机密数据。客户端愿意将高度机密的数据与云平台共享为不能被解密的同态加密的数据。云平台对同态加密的数据执行某些计算,即诊断、模型训练、推断等。云平台模型包含对云平台机密的知识产权。云平台可以将加密结果发送回客户端,在该客户端上,该加密结果可以被解密。
12.现在将参考附图详细描述本发明。
13.图1描绘了根据本发明实施例的示出了分布式数据处理环境100的功能框图。图1仅提供了本发明的一个实施例的说明并且不暗示对其中可以实施不同实施例的环境的任何限制。在所描绘的实施例中,分布式数据处理环境100包括通过网络120互连的服务器110和客户端计算设备130。网络120可以是例如局域网(lan)、广域网(wan)(诸如,互联网)或这两者的组合,并且可以包括有线、无线或光纤连接。一般而言,网络120可以是将支持服务器110与客户端计算设备130之间的通信的连接和协议的任何组合。分布式数据处理环境100可以包括附加的服务器、计算机或未示出的其他设备。
14.服务器110操作以运行加密数据训练程序112并使用数据库114存储和/或发送数据。在所描绘的实施例中,服务器110容纳加密数据训练程序112和数据库114。在其他实施例中(未示出),加密数据训练程序112和数据库114可容纳在分开的计算设备上。在一些实施例中,服务器110表示诸如在云计算环境(例如,私有或公共云平台)中利用多个计算机作为服务器系统的服务器计算系统。在一些实施例中,服务器110可以是管理服务器、web服务器或能够接收和发送数据的任何其他电子设备或计算系统。在一些实施例中,服务器110可以是膝上型计算机、平板计算机、上网本计算机、个人计算机(pc)、桌上型计算机、智能电话或能够经由网络120与客户端计算机设备130通信的任何可编程电子设备。服务器110可以包含如图4中进一步详细描述的组件。
15.加密数据训练程序112操作为用于在加密数据上训练机器学习模型的程序。在实施例中,加密数据训练程序112接收加密数据。在实施例中,加密数据训练程序112使用提升算法来训练机器学习模型。在实施例中,加密数据训练程序112对加密数据执行分类。在实施例中,加密数据训练程序112将加密结果发送到客户端。在实施例中,加密数据训练程序112从客户端接收提升更新。在实施例中,加密数据训练程序112将提升更新应用于机器学习模型。在所描绘的实施例中,加密数据训练程序112驻留在服务器110上。在其他实施例中,加密数据训练程序112可驻留在另一计算设备(未示出)上,只要加密数据训练程序112可以访问网络120。
16.数据库114操作为用于由加密数据训练程序112接收、使用和/或输出的数据的储存库。由加密数据训练程序112接收、使用和/或生成的数据可以包括但不限于加密数据、同态加密数据和来自机器学习模型的加密结果。数据库114可以用能够存储可由服务器110访问和利用的数据和配置文件的任何类型的存储设备来实现,诸如数据库服务器、硬盘驱动器或闪存。在实施例中,通过加密数据训练程序112和/或服务器110访问数据库114以存储和/或访问数据。在所描绘的实施例中,数据库114驻留在服务器110上。在另一实施例中,数据库114可驻留在分布式数据处理环境100内的其他地方,只要数据库114可访问网络120。
17.客户端计算设备130操作以运行用户接口132和客户端数据库134。在一些实施例中,客户端计算设备130可以是但不限于,电子设备,诸如膝上型计算机、平板计算机、上网本计算机、个人计算机(pc)、桌上型计算机、智能电话、或能够运行用户接口132并且经由网络120与服务器110和经加密数据训练程序112通信(即,发送和接收数据)的任何可编程电子设备。在一些实施例中,客户端计算设备130表示能够执行机器可读程序指令并且经由网络(诸如,网络120)与服务器110和/或分布式数据处理环境100内的其他计算设备(未示出)通信的一个或多个可编程电子设备或可编程电子设备的组合。在实施例中,客户端计算设备130表示与用户相关联的一个或多个设备。在所描绘的实施例中,客户端计算设备130包括用户接口132的实例。客户端计算设备130可以包括如图4中进一步详细描述的组件。
18.用户界面132操作为客户端计算设备130上的本地用户界面,通过该本地用户界面,用户可以选择加密数据来发送到服务器110上的加密数据训练程序112以通过机器学习模型运行、将提升更新发送到加密数据训练程序112和/或查看由加密数据训练程序112发送的加密结果。在一些实施例中,用户界面132是可以经由网络120向用户显示(即,可视地)或呈现(即,可听地)从加密数据训练程序112发送的信息(诸如,图形、文本和/或声音)的图形用户界面(gui)、web用户界面(wui)和/或语音用户界面(vui)。在实施例中,用户界面132使得用户能够选择要向服务器110上的加密数据训练程序112发送的加密数据以通过机器学习模型运行、对加密数据训练程序112发送提升更新和/或查看由加密数据训练程序112发送的加密结果。在实施例中,用户界面132能够发送和接收数据(即,分别为经由网络120向经加密数据训练程序112发送数据和从经加密数据训练程序112接收数据)。
19.客户端数据库134操作为用于由客户端计算设备130接收、使用和/或输出的数据的储存库。由客户端计算设备130接收、使用和/或生成的数据可以包括但不限于私有原始数据、加密数据、同态加密数据以及从加密数据训练程序112接收的加密结果。客户端数据库134可以用能够存储可由客户端计算设备130访问和利用的数据和配置文件的任何类型的存储设备(诸如,数据库服务器、硬盘驱动器或闪存)来实现。在实施例中,客户端计算设备130访问客户端数据库134以存储和/或访问数据。在所描绘的实施例中,客户端数据库134驻留在客户端计算设备130上。在另一实施例中,客户端数据库134可驻留在分布式数据处理环境100内的其他地方,只要客户端数据库134可访问网络120。
20.图2描绘了根据本发明实施例的加密数据训练程序112的步骤的流程图。在所描绘的实施例中,加密数据训练程序112接收加密数据集,使用提升算法来训练机器学习模型,对加密的数据执行分类,将加密结果发送到客户端,从客户端接收提升更新,并且将提升更新应用到机器学习模型。应当理解,图2中描绘的过程说明了过程流的一个可能的迭代,其对加密数据训练程序112接收的每个加密数据集重复。图3描绘了根据本发明实施例的在加密数据训练程序112期间客户端环境与云计算环境之间的数据流。
21.在步骤210中,加密数据训练程序112从客户端接收加密数据。在实施例中,云计算环境的加密数据训练程序112从客户端接收加密数据,如图3所示。在实施例中,加密数据训练程序112从客户端计算设备130接收加密数据。在实施例中,加密数据训练程序112接收由客户端通过客户端计算设备130上的用户界面132生成的同态加密实例(sk,pk)

keygen(λ,τ),其中λ和τ是安全参数。在实施例中,加密数据训练程序112通过客户端计算设备130上的用户界面132从客户端接收公钥pk。在实施例中,私钥sk由客户端保持在客户端计算设
备130上的客户端数据库134中。在实施例中,加密数据训练程序112使客户端能够通过用户界面132使用公钥pk对数据集d加密以生成d
enc

encrypt(pk,d)。在实施例中,加密数据训练程序112将加密数据集d
enc
存储在服务器110上的数据库114中。
22.在步骤220中,加密数据训练程序112使用提升算法在加密数据上训练机器学习模型。在实施例中,加密数据训练程序112使用提升算法在加密数据上训练云计算环境的机器学习模型,如图3所示。在实施例中,加密数据训练程序112在加密数据集d
enc
上训练服务器110的机器学习模型。在实施例中,加密数据训练程序112在加密数据集d
enc
上训练弱分类器,例如,逻辑回归或深度为1的决策树。在实施例中,加密数据训练程序112在加密数据集d
enc
上训练分类器wi。在实施例中,加密数据训练程序112使用提升算法(即,适配提升、梯度提升、和/或投票方法)来训练机器学习模型或分类器。利用自适应提升和梯度提升的实施例在以下步骤260之后描述。
23.在步骤230中,加密数据训练程序112对加密数据执行分类。在实施例中,加密数据训练程序112使用经训练的机器学习模型来执行分类,如图3中所示。在实施例中,加密数据训练程序112使用经训练的机器学习模型或分类器对加密数据集d
enc
执行分类。在实施例中,加密数据训练程序112从经训练的机器学习模型或分类器接收分类的结果。在实施例中,加密数据训练程序112从经训练的机器学习模型或分类器接收分类的混洗(shuffled)加密结果,其中混洗意味着结果的阵列已经以随机方式或顺序被排序。随机排序顺序仅对于加密数据训练程序112是已知的,而对于客户端不是已知的,从而确保真实结果不会透露给客户端。
24.在步骤240中,加密数据训练程序112将加密结果发送到客户端。在实施例中,加密数据训练程序112将分类的混洗加密结果发送到客户端,如图3所示。在实施例中,加密数据训练程序112将分类的混洗加密结果发送到客户端计算设备130。在实施例中,加密数据训练程序112发送分类的加密结果,其中该加密结果的顺序是经随机混洗的。
25.在步骤250中,加密数据训练程序112从客户端接收提升更新。在实施例中,加密数据训练程序112从客户端接收提升更新,如图3所示。在实施例中,加密数据训练程序112以采样概率、细化的目标标签等的提升的形式从客户端计算设备130接收提升更新。在实施例中,加密数据训练程序112接收对混洗加密结果的提升更新。在实施例中,客户端通过客户端计算设备130上的用户界面132已经接收到加密结果、对结果进行解密、并且生成提升更新以发送回服务器110。
26.在步骤260中,加密数据训练程序112应用提升更新。在实施例中,加密数据训练程序112应用来自客户端的提升更新,如图3所示。在实施例中,加密数据训练程序112通过将来自步骤230的随机排序顺序进行反转来以其未混洗的顺序获得加密结果而将来自客户端计算设备130的加密结果解混洗(unshuffle)。在实施例中,加密数据训练程序112应用从客户端计算设备130接收的提升更新来继续训练机器学习模型或分类器。加密数据训练程序112应用根据所使用的提升算法接收的提升更新,这在以下描述。在实施例中,响应于加密数据训练程序112应用提升更新,加密数据训练程序112迭代地重复步骤230至步骤260达预定义迭代次数,其中,该预定义次数可以由用户通过用户界面132来定义。在实施例中,响应于加密数据训练程序112应用提升更新,加密数据训练程序112迭代地重复步骤230至步骤260,直到i≤k,其中,i表示当前迭代次数,并且,k表示所训练的分类器的总数或所执行的
最大迭代次数。
27.在实施例中,加密数据训练程序112使用自适应提升算法。在步骤210,加密数据训练程序112接收同态加密实例(sk,pk)

keygen(λ,τ)、公钥和加密数据集d
enc
。在该实施例中,加密数据训练程序112另外从客户端计算设备130接收权重函数和k。在步骤220中,加密数据训练程序112相对于权重w在加密数据集d
enc
上训练加权分类器wi。在步骤230中,加密数据训练程序112对该加密数据集d
enc
执行分类。在步骤240中,加密数据训练程序112将加密结果发送到客户端计算设备130。在步骤250中,加密数据训练程序112从客户端接收更新的权重其中客户端计算误分类率δi并且使用计算更新的权重,其中,如果分类正确,则err(x)是0,并且如果不正确,则err(x)是1。在该实施例中,加密数据训练程序112迭代地重复步骤230至步骤260,直到i≤k。
28.在另一实施例中,加密数据训练程序112使用梯度提升算法。在步骤210,加密数据训练程序112接收同态加密实例(sk,pk)

keygen(λ,τ)、公钥和被存储为d
enc
=(x
enc
,y
enc
)的加密数据集d
enc
,其中,x
enc
是加密数据点,y
enc
是数据点的加密标签。在该实施例中,加密数据训练程序112另外启动目标梯度t=y
enc
,并启动要训练的目标模型f0←
φ。在步骤220中,加密数据训练程序112在由表示的(x
enc
,t)上训练加权分类器wi。在步骤230中,加密数据训练程序112执行分类,该分类返回在第k次迭代之后要训练的目标模型在步骤240中,加密数据训练程序112将加密结果发送到客户端计算设备130。在步骤250中,加密数据训练程序112从客户端接收目标梯度t,其中客户端解密以获得fk,计算下面所示的梯度步骤(1),并且加密知在该实施例中,加密数据训练程序112迭代地重复步骤230至步骤260,直到k≤k。
29.对于每个(xi,yi)∈d,
30.在另一实施例中,加密数据训练程序112使用自适应提升算法,并且服务器110是私有云环境。在步骤210,加密数据训练程序112接收同态加密实例(sk,pk)

keygen(λ,τ)、公钥和加密数据集d
enc
。在该实施例中,加密数据训练程序112另外在d
enc
域和集合k上发起秘密权重函数w,这是被训练的多个分类器的超参数。在步骤220中,加密数据训练程序112相对于权重w在加密数据集d
enc
上训练加权分类器wi。在步骤230中,加密数据训练程序112对加密数据集d
enc
执行分类。在步骤240中,加密数据训练程序112将混洗加密结果发送到客户计算装置130。在步骤250中,加密数据训练程序112从客户端接收按混洗顺序的结果δ(x),其中客户端计算误分类率δi并计算并计算其中,如果分类正确,则err(x)为0,如果不正确,则err(x)为1。在步骤260中,加密数据训练程序112对结果解混洗并将权重向量w更新为w(x)

w(x)δ(x)。在该实施例中,加密数据训练程序112迭代重复步骤230至步骤260直到i≤k。
31.图4描绘了根据本发明说明性实施例的适用于服务器110和客户端计算设备130的计算机400的框图。应当理解,图4仅提供一个实施方式的说明并且不暗示关于其中可以实
现不同实施例的环境的任何限制。可以对所描绘的环境做出许多修改。
32.计算机400包括通信结构402,其提供高速缓存416、存储器406、永久性存储装置408、通信单元410和输入/输出(i/o)接口412之间的通信。通信结构402可用被设计用于在处理器(诸如,微处理器、通信和网络处理器等)、系统存储器、外围设备和系统内的任何其他硬件组件之间传递数据和/或控制信息的任何架构来实现。例如,通信结构402可用一个或多个总线或纵横开关来实现。
33.存储器406和永久性存储装置408是计算机可读存储介质。在该实施例中,存储器406包括随机存取存储器(ram)。一般而言,存储器406可以包括任何合适的易失性或非易失性计算机可读存储介质。高速缓存416是快速存储器,其通过保存来自存储器406的最近访问的数据和被访问数据附近的数据来增强(多个)计算机处理器404的性能。
34.加密数据训练程序112可以存储在永久性存储装置408和存储器406中,用于由相应计算机处理器404中的一个或多个经由高速缓存416来执行和/或访问。在实施例中,永久性存储装置408包括磁性硬盘驱动器。可替代地,或除了磁性硬盘驱动之外,永久性存储装置408可以包括固态硬盘驱动、半导体存储设备、只读存储器(rom)、可擦除可编程只读存储器(eprom)、闪存、或能够存储程序指令或数字信息的任何其他计算机可读存储介质。
35.由永久性存储装置408使用的介质也可以是可移动的。例如,可移动硬盘驱动器可以用于永久性存储装置408。其他示例包括光盘和磁盘、拇指驱动器和智能卡,它们被插入到驱动器中以便转移到也是永久性存储装置408的一部分的另一计算机可读存储介质上。
36.在这些示例中,通信单元410提供与其他数据处理系统或设备的通信。在这些示例中,通信单元410包括一个或多个网络接口卡。通信单元410可通过使用物理和无线通信链路中的任一个或两者来提供通信。程序(诸如,加密数据训练程序112)可以通过通信单元410下载到永久性存储器408。
37.(一个或多个)i/o接口412允许与可以连接到计算设备130和服务器110的其他设备进行数据的输入和输出。例如,i/o接口412可以提供到外部设备418(诸如键盘、小键盘、触摸屏和/或一些其他合适的输入设备)的连接。外部设备418还可以包括便携式计算机可读存储介质,诸如,例如拇指驱动器、便携式光盘或磁盘、以及存储卡。用于实践本发明的实施例的软件和数据可以存储在这种便携式计算机可读存储介质上并且可以经由i/o接口412加载到永久性存储器408上。i/o接口412还连接到显示器420。
38.显示器420提供向用户显示数据的机制,并且可以是例如计算机监视器。
39.本文描述的程序基于在本发明的具体实施例中对其实施的应用来标识。然而,应当理解,本文中的任何特定程序术语仅为了方便而使用,并且因此本发明不应局限于仅在由这样的术语标识和/或暗示的任何特定应用中使用。
40.本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有用于使处理器执行本发明的各方面的计算机可读程序指令的计算机可读存储介质(或多个介质)。
41.计算机可读存储介质可为可保留和存储供指令执行装置使用的指令的有形装置。计算机可读存储介质可以是例如但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备、或者前述任意合适的组合。计算机可读存储介质的更具体示例的非穷尽列表包括以下各项:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器
(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式紧凑盘只读存储器(cd-rom)、数字通用盘(dvd)、记忆棒、软盘、诸如穿孔卡之类的机械编码设备或具有记录在其上的指令的槽中的凸出结构、以及上述各项的任何合适的组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,穿过光纤电缆的光脉冲)或通过导线发送的电信号。
42.本文中描述的计算机可读程序指令可以经由网络(例如,互联网、局域网、广域网和/或无线网络)从计算机可读存储介质下载到相应的计算/处理设备,或者下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输纤维、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口接收来自网络的计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
43.用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或以一种或多种程序设计语言的任何组合编写的源代码或目标代码,这些程序设计语言包括面向对象的程序设计语言(诸如,smalltalk、c++等)、以及常规的过程式程序设计语言(诸如“c”程序设计语言或类似程序设计语言)。计算机可读程序指令可以完全地在用户计算机上执行、部分在用户计算机上执行、作为独立软件包执行、部分在用户计算机上部分在远程计算机上执行或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可通过任何类型的网络(包括局域网(lan)或广域网(wan))连接至用户计算机,或者可连接至外部计算机(例如,使用互联网服务提供商通过互联网连接)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可以通过利用计算机可读程序指令的状态信息来使电子电路个性化来执行计算机可读程序指令,以便执行本发明的各方面。
44.下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个框以及流程图和/或框图中各个框的组合,都可以由计算机可读程序指令实现。
45.这些计算机可读程序指令可被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或框图的或多个框中指定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置、和/或其他设备以特定方式工作,从而,其中存储有指令的计算机可读存储介质包括包含实现流程图和/或框图中的或多个框中规定的功能/动作的方面的指令的制造品。
46.也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的处理,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图中的或多个框中规定的功能/动作。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1