CN109416721B - 隐私保护机器学习 - Google Patents

隐私保护机器学习 Download PDF

Info

Publication number
CN109416721B
CN109416721B CN201780039382.0A CN201780039382A CN109416721B CN 109416721 B CN109416721 B CN 109416721B CN 201780039382 A CN201780039382 A CN 201780039382A CN 109416721 B CN109416721 B CN 109416721B
Authority
CN
China
Prior art keywords
data
oblivious
machine learning
execution environment
trusted execution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201780039382.0A
Other languages
English (en)
Other versions
CN109416721A (zh
Inventor
M·S·d·S·科斯塔
C·A·M·C·福奈特
A·梅塔
S·诺沃津恩
O·奥里蒙科
F·舒斯特
K·瓦斯瓦尼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN109416721A publication Critical patent/CN109416721A/zh
Application granted granted Critical
Publication of CN109416721B publication Critical patent/CN109416721B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Physiology (AREA)
  • Genetics & Genomics (AREA)
  • Biomedical Technology (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)

Abstract

描述了一种多方隐私保护机器学习系统,其具有包括至少一个受保护的存储器区域的可信执行环境。在系统处的代码加载器将从多方中的至少一方接收的机器学习代码加载到受保护的存储器区域中。数据上传器将从多方中的至少一方接收的机密数据上传到受保护的存储器区域。可信执行环境使用至少一个数据不经意程序来执行机器学习代码以处理机密数据并且将结果返回给多方中的至少一方,其中数据不经意程序是其中任何的存储器访问的模式、磁盘访问的模式和网络访问的模式使得无法从模式预测机密数据的过程。

Description

隐私保护机器学习
背景技术
在使用第三方云计算系统以在大量数据上执行机器学习代码的情况下,存在重大的安全和隐私问题。在云中使用第三方计算系统为用户提供了灵活性,因为他们可以在需要时为计算资源付费。然而,用户对云计算系统内的基础设施缺乏控制确实导致安全和/或隐私问题。特别地,用户可能希望维持由代码处理的数据以及机器学习的输出的机密性和完整性。然而,目前,恶意的系统管理员或云计算系统的其他恶意观察者能够观察存储器访问的模式、磁盘访问的模式和网络访问的模式,并且使用这些观察来找到关于机密数据的细节。
下面描述的实施例不限于解决已知的隐私保护系统的任何或所有缺点的实施方式。
发明内容
以下呈现了本公开的简化发明内容,以便为读者提供基本的理解。本发明内容不旨在标识所要求保护的主题内容的关键特征或必要特征,也不旨在用于限制所要求保护的主题内容的范围。其唯一目的是以简化形式呈现本文中所公开的一些概念,作为稍后呈现的更详细的描述的序言。
描述了一种多方隐私保护机器学习系统,其具有包括至少一个受保护的存储器区域的可信执行环境。在系统处的代码加载器将从多方中的至少一方接收的机器学习代码加载到受保护的存储器区域中。数据上传器将从多方中的至少一方接收的机密数据上传到受保护的存储器区域。可信执行环境使用至少一个数据不经意(oblivious)程序来执行机器学习代码以处理机密数据并且将结果返回给多方中的至少一方,其中数据不经意程序是其中任何的存储器访问的模式、磁盘访问的模式和网络访问的模式都使得无法从模式中预测机密数据的过程。
许多伴随特征将更容易领会,因为通过参考结合附图所考虑的以下详细描述,这些特征将变得更好理解。
附图说明
从根据附图阅读的以下详细描述中将更好地理解本说明书,其中:
图1是隐私保护机器学习系统的示意图;
图2是另一隐私保护机器学习系统的示意图;
图3是在隐私保护机器学习系统处的操作的方法的流程图;
图4是高速缓存行阵列的示意图;
图5是聚类的方法以及不经意聚类的数据不经意方法的流程图;
图6是有监督机器学习的方法以及有监督机器学习的数据不经意方法的流程图;
图7是训练支持向量机的方法以及训练支持向量机的数据不经意方法的流程图;
图8是随机决策森林的示意图,其图示了用于非不经意和不经意场景的测试时间评估路径;
图9是数据不经意决策森林测试时间评估过程的流程图;
图10是矩阵分解组件的示意图;
图11是数据不经意矩阵分解过程的流程图;
图12是更详细的图11的过程的一部分过程的流程图;
图13图示了示例性的基于计算的设备,在其中实施了隐私保护机器学习系统的实施例。
在附图中,相同的参考标号用于指定相同的部件。
具体实施方式
以下结合附图提供的详细描述旨在作为本示例的描述,并且并不旨在表示构造或利用本示例的唯一形式。本说明书阐述了示例的功能和用于构造和操作示例的操作的序列。然而,可以通过不同的示例来实现相同或等同的功能和序列。
机器学习越来越多地用于各种应用中,诸如机器人、医学图像分析、人机交互、畜牧管理、农业、制造等。通常在训练阶段通过使用更多数量和种类的训练数据来提高机器学习预测的质量和准确性。然而,通常训练数据难以获得并且昂贵,并且是保密的。
在本文中所描述的各种示例中,在云中提供隐私保护机器学习系统,以便多方可以在不破坏机密性的情况下贡献其机密数据用于用作训练数据。这使得能够实现更高质量和更准确的机器学习成果(在训练时间、测试时间或两者)。两个或更多个实体能够执行协作机器学习,同时保证其单独的数据集的隐私。提交给机器学习系统的新的机密数据实例用于以隐私保护方式生成一个或多个预测。这是在不需要复杂的密码工具(诸如完全同态加密,这会引入大的运行时开销,因此限制了它们在大型数据集上进行机器学习的实际应用)的情况下实现的。
图1是包括数据中心106的隐私保护机器学习系统的示意图,数据中心106包括控制安全存储器区域的至少一个可信执行环境100。在该示例中,为了清楚起见,示出了一个可信执行环境,但是在实践中部署了许多可信执行环境,并且这些可信执行环境位于数据中心的计算单元(诸如数据中心106内的具有磁盘存储的服务器或通过网络连接的虚拟机)处。在一个示例中,可信执行环境包括安全存储器区域,该安全存储器区域是在常规过程的地址空间内的处理器保护的存储器区域。处理器监视对可信执行环境的存储器访问,以便只有在可信执行环境中运行的代码才能够访问可信执行环境中的数据。当在物理处理器包内(在处理器的高速缓存中)时,可信执行环境存储器以纯文本形式可用,但在被写入到系统存储器(随机存取存储器RAM)时被加密并且完整性受到保护。外部代码仅可以在静态定义的入口点处(使用类似于呼叫门的机构)调用可信执行环境中的代码。在一些示例中,可信执行环境内的代码能够使用每处理器私钥以及可信执行环境的摘要来对消息进行标记。这使得其他可信实体能够验证起源于具有特定代码和数据配置的可信执行环境的消息。
在一些示例中,使用硬件来实施可信执行环境,使得安全存储器区域与任何其他代码(包括操作系统和管理程序)隔离。在一些示例中,使用可信虚拟机来实施可信执行环境。
观察由可信执行环境做出的存储器访问的模式或磁盘访问的模式或网络访问的模式的恶意敌手能够获得存储在可信执行环境中的机密信息,即使敌手不能物理地打开和操纵可信执行环境。例如,除了在可信执行环境中使用的处理器芯片之外,敌手可以控制云数据中心106中的所有硬件。特别地,敌手控制母板中的网卡、磁盘和其他芯片。敌手可以记录、重放和修改网络数据包或文件。敌手还可以在离开处理器芯片之后使用物理探测、直接存储器访问(DMA)或类似技术敌手读取或修改数据。
敌手还可以控制数据中心106中的所有软件,包括操作系统和管理程序。例如,敌手可以改变页表,以便任何可信执行环境存储器的访问都会导致页面错误。该活跃的敌手通常足以模拟在操作层或管理程序层中运行的特权恶意软件,以及可能尝试通过登录到主机中并且检查磁盘和存储器来访问数据的恶意云管理员。
数据中心106包括数据上传器104,其被配置成接收或访问诸如由服务器A的操作员管理的机密数据A 118和由服务器B的操作员管理的机密数据B 120的数据。数据被加密为机密数据以待被用于在训练或测试阶段期间的机器学习。在一些实施例中,数据上传器104被配置成安全地置乱所上传的数据,如下面更详细描述的。
数据中心106包括代码加载器122,其被配置成访问或接收来自诸如服务器A 110或服务器B 108的实体的代码并且将代码上传到可信执行环境100。代码是机器学习代码,例如,已经由服务器A的操作员和服务器B的操作员商定该机器学习代码。可信执行环境被配置成执行数据不经意机器学习102,因为它对所上传的数据104执行数据不经意机器学习过程。在一些示例中,代码加载器122上传包括数据不经意机器学习过程的机器学习代码。在一些示例中,数据不经意机器学习过程已经被存储在可信执行环境中,并且代码加载器122上传要使用哪些预先存储的数据不经意过程的细节。
代码加载器122和数据上传器104包括不可信代码或可信代码。在一些示例中,机器学习代码是可信代码。
在可信执行环境100的输出是经训练的机器学习系统116的情况下,输出被发送到贡献了训练数据的实体(例如,图1中的服务器A和服务器B)中的至少一个实体。然后,服务器A能够向最终用户设备114提供改进的服务,诸如用于手势识别、键盘的文本预测、场景重建或其他应用。类似地,服务器B也能够提供改进的服务。在图1中图示的最终用户设备114包括平板计算机、台式计算机、智能电话、膝上型计算机和头戴式计算设备,但这些仅是示例,并非旨在限制范围。
在可信执行环境100的输出是一个或多个预测的情况下,输出被直接发送到最终用户设备114或被发送到服务器A和服务器B。
图2是包括云中的数据中心106的另一个隐私保护机器学习系统的示意图,其中数据中心具有存储机器学习代码的安全可信执行环境100。三家医院各自具有使用医院专用密钥200加密的机密患者数据202,其中医院专用密钥与安全可信执行环境共享。数据中心的操作系统从每个医院接收机密患者数据202的上传,并且将其存储在可信执行环境100中。可信执行环境使用密钥200解密患者数据并且执行机器学习代码。这是以数据不经意方式实现的,如下面更详细描述的。机器学习的结果被加密并且与医院共享。
备选地或附加地,本文中所描述的数据上传器104、代码加载器122和可信执行环境100的功能至少部分地由一个或多个硬件逻辑组件执行。例如但不限于,可选地使用的说明性类型的硬件逻辑组件包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑器件(CPLD)、图形处理单元(GPU)。
图3是诸如图1或图2的隐私保护机器学习系统的操作的方法的流程图。在300处,数据中心例如从在图1的部署中的服务器A接收数据不经意机器学习请求。请求包括代码和静态数据,其中静态数据包括可以被公开的参数列表(即,不需要保密其值的参数)以及多方的身份(在存在两个或更多个方向机器学习过程的训练阶段贡献数据的情况下)。代码包括要在数据中心中执行的机器学习代码。例如,在存在两个或更多个方共享机器学习结果的情况下,机器学习代码已经由多方商定。
在302处,在数据中心处的代码加载器分配数据中心中的资源以用于执行机器学习代码并存储数据,并且它利用该代码和数据创建至少一个可信执行环境。
在304处,数据中心与关联于数据不经意机器学习请求的实体(诸如服务器A)建立安全信道。然后,在306处,数据中心通过(多个)安全信道接收安全数据上传。所上传的数据包括用于与机器学习代码使用的训练数据和/或测试数据。所上传的数据是安全的,例如通过由实体生成的密钥加密,这使得数据可用于上传。密钥与可信执行环境共享,在308处,可信执行环境使用安全信道接收密钥。
可信执行环境在310处使用其接收的(多个)密钥将数据解密,并且在312处根据由代码加载器上传的代码来执行机器学习训练或测试阶段过程。可信执行环境在316处通过使用不经意随机存取存储器或在314处通过使用具有侧信道保护的机器学习过程来以数据不经意方式执行机器学习代码。在318处数据不经意机器学习过程的输出被加密并从数据中心输出到多方中的一个或多个方,诸如在图1的示例中的服务器A或者在图1中的最终用户设备114。
不经意随机存取存储器(ORAM)是受保护的中央处理单元(CPU)和物理随机存取存储器(RAM)之间的接口。该接口执行保留在CPU上执行的算法的输入-输出行为的过程,但确保由在CPU上执行的算法执行的存储器访问模式(对RAM读取/写入)的分发是独立于算法的存储器访问模式的。例如,简单的ORAM实施方式可以通过针对每个读取操作和每个写入操作扫描整个RAM来实现这一点。这对于每个存储器操作引入了显著的时间开销。以类似的方式,使用ORAM来隐藏磁盘访问的模式和网络访问的模式。
在一些示例中,机器学习代码被注释以指示其数据中的哪个数据是私有的还是非私有的,并且组件被用于自动生成不泄漏关于被注释的私有数据的信息的新机器学习代码。一些示例中,组件包括作为底层块的ORAM以及排序和硬件实施特征。该类型的方法对于有限数目的算法是可行的,并且对于该类型的方法在其中是可行的算法,其不如本文中所描述的示例高效,在本文中所描述示例中,机器学习算法本身从一开始就被设计为以高效的方式保护隐私。
机器学习过程是用于使用学习目标根据训练数据来更新数据结构的操作,或者用于使用测试数据实例从数据结构访问所学习的数据的操作。具有侧信道保护的机器学习过程是其中训练和/或测试阶段的操作被配置成使得作为操作的一部分执行的存储器访问、磁盘访问或网络访问不泄漏机密数据的一个过程。
在本文中所描述的示例中,以下面的方式将在312处的数据不经意机器学习示出为数据不经意。仿真器程序被创建为其给出了来自与在312处的机器学习生成的访问的分发相同的访问的分发的存储器访问的模式、磁盘访问的模式和网络访问的模式,并且是在只给定了指定的公开参数(其是可接受公开的)的值并且没有给定关于机密数据的其他信息的情况下被创建的。通过观察存储器访问的模式、磁盘访问的模式或网络访问的模式来执行测试以查看敌手是否可以猜测它正在与仿真器程序交互还是与在312处的数据不经意机器学习交互。如果敌手以最多1/2加上可忽略的优势的概率正确猜测,则在312处的机器学习是数据不经意。该测试是针对本文中所描述的实施例中的每个实施例来执行的,并且成功地示出实施例是数据不经意。
现在描述在314处的具有侧信道保护的机器学习的实施例。在这些实施例中,训练和/或测试阶段操作被配置成使得作为操作的一部分执行的存储器访问、磁盘访问或网络访问不泄露机密数据。这是通过使用一个或多个不经意原语来实现的。不经意原语是包括对存储器、磁盘或网络进行读取和/或写入的基本操作,并且该基本操作被配置成隐藏存储器、磁盘或网络访问的模式。不经意原语是包括低级编程语言中的指令的操作,其中在语言和支持可信执行环境的处理器的机器代码指令之间存在强的或一对一的对应关系。不经意原语被用作构建块以形成更复杂的数据不经意操作。
在用于指派和比较的原语操作的情况下,不经意原语是不具有数据相关分支并且不显示使用哪个输入来产生其输出的操作,该操作被放置在可信执行环境安全存储器区域的私有寄存器中。两个不经意原语的一个示例是omove()和ogreater(),其在64位整数的情况下包括以下Intel x86-64指令:
ogreater(x,y)
mov rcx,x
mov rdx,y
cmp rcx,rdx
setg al
retn
当执行ogreater()原语时,x的值被移动到寄存器rcx中,y的值被移动到寄存器rdx中,比较寄存器rcx处的值和寄存器rdx的值,条件指令setg将两个值(x和y)中的较大的值放置到寄存器al中。返回寄存器al中的值。
omove(cond,x,y)
Figure BDA0001918680870000081
Figure BDA0001918680870000091
当执行omove()原语时,cond的值被移动到寄存器rcx中,x的值被移动到寄存器rdx中,y的值被移动到寄存器rax中,对寄存器rcs的内容进行测试,并且条件指令cmovnz放置
一起使用omove()和ogreater()原语来实施不经意min()函数,该函数采用两个整数x和y并且返回两者中较小的一个。不经意min()函数中的指令是:
Figure BDA0001918680870000092
在该示例中,oless()不经意地评估防护(guard)x<y并且omove()根据该防护不经意地返回x或y。
构建了在任意的用户定义类型上工作的更复杂的原语。一个示例是omoveEx(),其是omove()的扩展版本,用于有条件地指派任何类型的变量,并且其用来重复地应用omove()。根据给定类型的大小,omoveEx()迭代地使用omove()的64位整数向量版本和256位向量版本。
为了不经意地访问阵列,本文中所描述的算法能够在omoveEx()上构建原语以扫描整个阵列,同时高效地仅在私有的索引处读取或写入单个元素。
在一些示例中,通过以高速缓存行粒度(例如,64字节粒度)而不是以元素或字节粒度扫描阵列来优化不经意阵列访问。在敌手最多可以以高速缓存行粒度观察存储器访问的情况下,该类型的方法是可能的,并且提供更快、更好的隐私保护计算机的显著技术益处。本文中应当认识到,在使用可信处理器包来实施可信执行环境的情况下,假设敌手最多可以以高速缓存行粒度观察存储器访问是切合实际的。
例如,通过使用向量指令来实现以高速缓存行粒度的扫描。在一个示例中,被称为vpgatherdd的指令从八个不同(动态选择)的存储器偏移中加载具有32位整数分量的256位向量寄存器。(注意,vpgatherdd的使用仅是一个示例,其不旨在限制范围,并且在一些示例中使用其他类似的指令。)通过从不同的高速缓存行加载每个整数(在下文中假设高速缓存行具有64字节的长度),可以在单个指令中从对齐的512字节的阵列中不经意地读取一个32位的整数。根据中央处理单元(CPU)高速缓存的动态布局,该技术显著地加速不经意阵列访问。对于更大的阵列,迭代地应用技术,并且使用omove()原语来从向量寄存器提取感兴趣的值。
通过小心地加载来自每个均跨越两个高速缓存行的位置的八个组件中的七个组件以及来自期望的偏移的一个组件来进一步改进该技术。这使得一条指令能够不经意地访问大小为14×64字节=896字节的对齐的阵列,如在图4中所图示的。修改该原语以高效地扫描任意大小和形式的阵列。
图4示出了使用vpgatherdd指令从896字节的存储器区域(例如,阵列404)中不经意且高效地读取4个字节(32位)。图4示出了32位整数阵列404和高速缓存行402。感兴趣的4个字节被加载到256位向量的最后一个组件(即,C7)中,利用跨越目标存储器区域中的两个高速缓存行的4个字节的值来加载所有其他组件(即,C0-C6)。这样,处理器将总是访问14个不同的高速缓存行(C0-C6中每个组件两个高速缓存行)。同时,从这14个高速缓存行中的一个高速缓存行加载C7。只能以高速缓存行粒度(取决于实际的硬件实施方式)观察存储器访问的攻击者不太可能知道阵列C7中的哪个高速缓存行被加载。这是因为对于“伪”组件C0-C6中的一个“伪”组件,必须事先访问可以从其访问C7的任何高速缓存行。因此,很可能从处理器核的私有的高速缓存提供对应于C7的读取访问。可能无法从该高速缓存提供对应于C7的读取的原因包括不以从上到下的方式填充向量寄存器的特定硬件实施方式(即,从C0到C7)。在该情况下,当以从下到上的方式填充向量寄存器时,可以使用除C7之外的另一个组件(例如,C0)来执行秘密读取。
如上所述,该技术可以用于利用一条指令不经意地从高速缓存的行对齐的896字节的阵列中读取任意4个字节。给定我们称为oget4_896()和omove()的该原语,可以创建从任意长度的阵列中不经意地读取4个字节的函数oget4()。例如,阵列被划分成896字节的高速缓存的行对齐的块。可以存在包含较少字节的头块和尾块。迭代地使用Oget4_896()以从896字节的块的每一个块中不经意地读取4个字节。Omove()用于不经意地从C7中提取感兴趣的值。在存在具有小于896字节的头块或尾块的情况下,应用oget4_896()的变型,其中从相同位置加载组件C0-C6中的一些组件。例如,100字节长的阵列必然跨越两个64字节的高速缓存行。通过从这两个高速缓存行的边界加载所有C0-C6,可以从这两个高速缓存行中的任何一个高速缓存行中不经意地读取C7。
假使要从阵列中读取多于4个字节,还通过使用C1-C6用来加载秘密来进一步改进方法。例如,通过使用C0-C5以用于伪访问以及使用C6和C7以用于秘密访问,创建了不经意地从高速缓存的行对齐的768字节的阵列中读取8个字节的函数oget8_768()。在极端情况下,创建函数oget56_128(),其中唯一的伪访问来自C0。这些变型可组合以高效地和不经意地从任意大小的阵列中读取任意数据。还可以使用相同的方法来高效地和不经意地写入到阵列的元素中。这是通过使用用于读取的vpgatherdd指令和用于写入的类似的指令来实现的。
通过将要排序的元素传递通过精心布置的比较和交换函数的排序网络来实施不经意排序。在给定输入大小n的情况下,排序网络布局是固定的,并且因此,馈送到网络的每个层中的函数的存储器访问仅取决于n而不取决于阵列的内容(与例如快速排序相反)。因此,使用公共参数n和固定元素大小来仿真排序操作的存储器轨迹。最佳的排序网络被发现会引起高成本。结果,在实践中使用具有O(n(logn)2)的运行时间的Batcher排序网络。不经意原语包括Batcher排序的通用实施方式,以用于置乱数据并且重新排序输入实例以允许稍后的高效(特定于算法)的访问。排序网络将用户定义类型的阵列以及用于该类型的不经意比较和交换函数作为输入。在一些示例中使用上述的ogreater()和omove()原语来实施不经意比较和交换。Batcher排序网络和Batcher排序是众所周知的,并且有时被称为Batcher奇偶合并排序。Batcher排序网络和Batcher排序是提前设定的一系列比较,无论之前比较的成果如何。比较序列的该独立性使得能够在硬件中并行执行和实施。可选地,并行评估一些比较和交换函数,这导致改进的性能。
在一个示例中,机器学习过程被配置成将多个示例聚类为多个集群。机器学习过程被配置为数据不经意,如参考图5所描述的,图5示出了公共聚类(public clustering)过程(即,其中敌手能够找到关于被聚类的示例和/或集群的信息的一个过程)的一个示例(图5的操作500至510)以及数据不经意聚类过程的一个示例(图5的操作512至524)。
在公共聚类过程中,处理器在500处针对指定数目的集群中的每一个集群维持集群质心的列表,并且在502处,在过程的初始化时向每个质心随机指派值。然后将要聚类的数据点中的每一个数据点指派给最接近它的集群(使用指定的距离度量(诸如,点的多维欧几里德(Euclidean)空间中的欧几里德距离)或另一种类型的距离度量)。然后在506处重新计算质心并且在508处进行检查以查看集群是否稳定。例如,如果质心不会因为在506处的重新计算操作而改变很大,则集群是稳定的。如果集群不稳定,则从504处的操作重复过程。如果集群是稳定的,则过程在510处结束并输出集群。
参考操作500至510所描述的聚类过程会泄漏信息。这是因为敌手能够通过观察在504处的指派操作期间的存储器访问(或磁盘访问或网络访问)来推断一些点坐标,或者能够从点坐标推断出为该点指派了哪个集群。例如,通过观察在504处的操作期间的点与每个中心之间的距离的计算。而且,在一些情况下,敌手能够通过观察在506处的重新计算操作和/或在504处的操作期间的存储器访问(或磁盘访问或网络访问)来找到中间集群大小和指派。
不经意聚类过程(操作512至524)在512处在可信执行环境中不经意地维持集群质心和接下来的集群质心的列表。这通过使用诸如上述的那些的不经意指派原语来完成。接下来的集群质心是过程的接下来的迭代的质心。不经意聚类过程将点的数目n、每个点中的坐标的数目d、集群的数目k和迭代的次数T作为是公共的来处理。
不经意聚类过程通过置乱要聚类的点的集合并且随机地从被置乱的集合中选择点作为初始质心值来不经意地指派质心值。置乱过程是私有的置乱,其以存储器访问的模式、网络访问的模式和磁盘访问的模式(在置乱过程期间使用的)不能用来预测点的集合的方式随机重新排序点的集合。
不经意聚类过程使用高效的流实施方式,其中对于每次迭代,在516处,外循环一次遍历所有的点,并且在518、520处存在连续的内循环。对于每个点,在518处的内循环维持点和质心索引的当前最小距离。对于每个下一集群,在520处的内循环利用伪更新或真实更新来更新下一集群的质心。
针对每个点而不是在516处的循环中可选地并行执行518处的程序。
如果迭代的次数已达到指定数目T(其中T是公共的并且由用户设置或预先配置),则过程在524处结束并且输出集群。否则,过程从步骤516进行另一次迭代。
与操作500至510的过程相比,操作的过程512至524的“隐私开销”主要包括对保持在寄存器中的循环变量的不经意指派,以及对保持在高速缓存中的下一个质心的不经意指派。特别地,不是仅针对点所属的质心更新统计数据,而是对每个质心进行伪更新(例如,使用omoveEx()原语)。在计算新的质心时,使用ogreater()和omoveEx()的组合来处理空集群的情况。这些改变不会影响过程的渐近时间复杂度。
在一个示例中,机器学习过程被配置成执行如图6中所示的预测模型的数据不经意有监督学习,其中操作600至614与公共有监督机器学习过程(操作600至614)并排。有监督学习包括最小化以下形式的目标函数:
Figure BDA0001918680870000141
其在字面上表示为将在训练实例i上求和的损失L加上正则项Ω的最小值,其中损失是函数L,其将基础事实值yi和预测模型f(给定权重w和训练实例xi)产生的预测作为参数,正则项Ω作用于权重以防止过度拟合。过度拟合是预测模型从训练示例中学习得太接近,以至于无法一般化到与训练样例不同的新示例。
公共有监督机器学习过程在600处访问标记的训练数据、在602处提取该标记的训练数据的子集并且在604处执行预测模型的有监督学习。在606处,如果模型已经显著改变,则重复过程,其中从在600处标记的训练数据提取另一子集并且再次执行有监督机器学习。一旦预测模型变得稳定(在迭代之间没有显著改变),则在608处过程结束并输出模型。然而,敌手能够在602处的操作处观察到子集的提取,并且这会泄漏关于标记的训练数据的信息。
在本文的各种示例中,存在数据不经意有监督机器学习过程。在600处的标记的训练数据在610处被安全地置乱,例如,使用Batcher排序的不经意实施方式(如上文所描述的)或秘密置乱(诸如对敌手隐藏的训练数据的随机排列)。也就是说,不是如步骤602处那样提取训练数据的子集,而是在610处安全地置乱在600处训练数据的整个集合。然后,不经意的有监督学习过程通过一次访问训练数据的基本上所有实例来学习预测模型,以便对训练数据实例中的一个训练数据实例进行训练更新。术语“基本上所有”用于意味着过程访问大多数的训练数据实例,以便敌手不能通过观察对训练数据的访问的模式来预测关于训练数据的信息。如果在614处训练更新导致对预测模型的显著改变,则从在612处的操作重复过程。这使得安全置乱的成本摊销,因为置乱仅执行一次。如果满足停止条件,则在616处过程结束并且输出模型。例如,停止条件是迭代的固定次数。
在一些示例中,预测模型是支持向量机(SVM)。支持向量机是作为空间中的点的示例的表示,空间中的点被映射,以便训练示例(被标记为在两个或更多个类别中的一个类别中)被尽可能宽的明确间隙划分。通过将新的示例映射到空间中并且观察它们落在间隙的哪一侧来预测该新的示例(未标记的)属于多个类别中的哪个类别。在一些情况下,支持向量机通过在空间中具有两个或更多个间隙来操作多于两个的类别。在一些情况下,支持向量机作为回归器(regressor)而不是分类器操作。
图7是用于训练支持向量机的公开过程(操作702至710)的流程图,该公开过程与用于训练支持向量机的数据不经意过程并排示出。在该示例中,支持向量机是二元分类器,但该方法还适用于存在多于两个类别的情况,或者使用回归而不是分类的情况。过程在700处接收训练数据,诸如根据两个可能类别所标记的示例。公开过程在702处对类别中的每个类别初始化权重,其中权重影响支持向量机如何将示例映射到空间中。公开过程在704处采用其中支持向量机(具有初始化权重)错误地预测类别的训练数据的子集。公开过程在706处使具有上述的目标函数形式的目标函数最小化,并且在708处使用最小化的成果来更新权重。在710处重复过程直到满足停止条件,诸如固定数目的时期(epoch)或收敛。
操作702至710的过程泄露机密数据,因为在704处的操作(其采用其中模型错误预测的训练数据的子集)向敌手揭示当前模型的状态。而且,最小化目标函数的过程涉及存储器访问的模式,其揭示了关于训练数据的信息。在708处的更新权重的过程还涉及存储器访问的模式,其揭示了关于权重的信息。
如在上文中参考图6所描述的,私有的支持向量机过程(操作712至722)在700处将训练数据置乱。该过程在714处初始化权重、顺序地读取置乱的数据的子集,并且不是仅仅针对错误预测的示例更新模型(如在操作704处),其在716处以不经意方式针对子集中的每个示例计算标志(flag),其中标志指示训练示例是否被当前模型错误预测。通过使用标志来对子集718中的基本上所有训练数据进行传递来最小化目标函数,以指示是进行真实动作还是伪动作,以便存储器访问的模式、磁盘访问的模式和网络访问的模式被屏蔽。这是使用不经意原语(诸如上述的ogreater()、omin()和omove()原语)来完成的。例如,使用上述的不经意指派原语,在操作720处私有的过程不经意地更新权重。在722处重复过程直到满足停止条件,诸如固定数量的时期。
在一些示例中,可信执行环境以不经意方式执行神经网络,以训练神经网络或在测试时使用神经网络来计算预测。
神经网络是由边缘互连的节点的集合,并且其中存在与节点和/或边缘相关联的权重。在训练阶段期间,通过根据训练示例最小化训练目标(诸如在上文针对一般的有监督学习所描述的)来更新权重。在各种示例中,可信执行环境被配置成使用上面图6的数据不经意有监督学习方案(其中训练数据被安全地置乱)来训练一个或多个神经网络。与在不执行安全置乱的情况下对训练数据的子集进行操作的神经网络训练过程相比,这确保了训练过程的隐私。
可信执行环境被配置成使用数据不经意过程,其中神经网络使用分段近似来计算函数。这是因为本文认识到使用分段近似的神经网络计算会将参数值泄漏给敌手。分段近似是函数的描述,其假设函数由区段或段的有序序列组成,其中以比整个函数更简单的方式单独描述单独的段或多个段。例如,神经网络通常使用双曲正切激活层,其使用分段近似来进行评估。可信执行环境被配置成通过使用一系列不经意移动原语(诸如上述的不经意移动原语)以数据不经意方式评估神经网络的双曲正切激活层。可信执行环境被配置成处理神经网络,该神经网络通过使用一系列不经意移动原语以数据不经意方式使用分段近似。这不会影响过程的复杂性,但却可以实现隐私。
图8是随机决策树800的示意图,其具有根节点806,根节点806连接到多个内部节点808,多个内部节点808终止于叶节点810。在训练期间,学习树的结构以及将在内部节点执行的二元测试的参数,并且在叶节点处累积数据。在测试时间,根据将新示例应用于与根节点关联的测试的结果,向根节点呈现新示例,并将其从根节点传递到内部节点的下一层中的节点。重复该过程,以便根据测试结果沿着通过树的路径传递示例。示例最终到达单个叶节点,并且在训练期间存储在叶节点处的数据被检索并且用于计算预测。在图8的示例中,路径812由从根节点806到树800的画有交叉阴影线的叶节点的虚线指示。
评估决策树的测试时间过程会向敌手泄漏关于树的结构、内部节点的参数以及关于新示例本身的数据。为了解决该问题,图1和图2的数据中心被配置成使用具有侧信道保护的决策树评估过程。参考图8的第二随机决策树802并且参考图9描述了该类型的过程的一个示例。
为了隐藏所采用的通过树的路径,过程遍历整个树(或基本上整个树),以便对于每个新的测试时间示例,基本上每个节点被接触一次。术语“基本上每个”用于意味着遍历所有或几乎所有节点,以便敌手不能通过观察存储器访问的模式来推断所采用的通过树的路径。所采用的搜索路径的性质可以是深度优先、广度优先、或者这些的变型。例如,在树802中由虚线814指示深度优先路径。发现使用与高效阵列扫描技术结合的广度优先搜索方向是有益的。特别地,过程使用上述的优化的oget()原语以在遍历树的同时高效地扫描树的每个层级(或层)。(在图8中树802的第二层级具有画有交叉阴影的节点。)为此,树在存储器中被布置为使得其层级中的每个层级被存储为节点的相干阵列。总之,可信执行环境将决策树存储为节点的多个阵列,并且通过遍历树和扫描阵列来评估决策树。
参考图9,新的测试时间示例被输入到随机决策树的根节点,并且在902的该当前节点处,可信执行环境在904处通过使用诸如上述的那些的不经意原语来从存储器访问针对当前节点的所学习的参数值。可信执行环境在906处使用所访问的所学习的参数值作为决策桩的一部分来相对于与当前节点相关联的决策桩评估新测试时间示例。决策桩是二元测试。使用诸如上述的那些的不经意原语来完成对决策桩的评估。可信执行环境在908处不经意地更新标志以指示当前节点是否在通过树的真实路径上。真实路径是诸如路径812的路径,其示出了对树评估新测试时间示例的结果。在优化的变型中,可信执行环境不经意地从树的每个层级只读取一个节点并对其进行评估。
可信执行环境在910处校验树中是否存在更多节点,并且如果有,则在912处根据遍历策略移动到下一节点。可以使用任何遍历策略,诸如深度优先或广度优先。一旦可信执行环境在操作912处移动到下一节点,它就从操作902处重复过程,因为当前节点已经被更新。如果没有更多节点需要遍历,则在914处返回叶标签,其是在由如上述的标志所指示的真实评估路径的末端处的叶节点的索引。
操作902至914包括用于不经意地评估决策树的过程900,并且在一些示例中这些操作还用于评估有向无环图。有向无环图类似于决策树,但是其中两个或更多个内部节点合并在一起,并且通常用于形成紧凑结构以用于存储器受限的设备。
在随机决策森林或决策丛林的情况下,在916处对多个树(或多个有向无环图)重复不经意评估过程900。
在918处,不经意地访问与索引的叶节点相关联的存储数据,并且在920处使用上述不经意原语不经意地将其聚合。然后在922处返回根据所访问的数据的聚合计算的一个或多个预测。
渐近地使用不经意基于RAM的技术比遍历整个树更加高效。然而,在实践中发现,该比较仅适用于非常大的树而不适用于中型或小型树(少于50000个节点),因为在将它们忽略的渐近分析中的隐藏的常数。在各种示例中,可信执行环境被配置成执行数据不经意矩阵分解。矩阵分解是用于获取可能稀疏地填充的大矩阵并且计算形成大矩阵的两个矩阵的过程。这在许多应用领域中是有用的,诸如,例如向用户推荐电影的推荐系统、用于查找在文档语料库中出现的主题的主题模型、概率潜在语义分析(PLSA)等。因为矩阵分解中使用的数据通常是机密数据,所以需要提供隐私保护系统(诸如图1和图2中所描述的数据中心的可信执行环境)来执行矩阵分解。
矩阵分解将用户和项(或取决于应用的其他数据)嵌入到潜在向量空间中,使得用户向量与项向量的内积产生用户将向项指派的评级的估计。例如,图10示出了用户和电影的矩阵1000,其中每行表示用户,每列表示电影,并且每个小区具有观察到的评级(由图10中的小方块表示)或预测的评级。预测的评级用于向用户提议新颖的电影。矩阵分解组件1002从用户和电影的矩阵1000计算用户矩阵1004和电影矩阵1006。在用户矩阵1004中,每行表示用户,并且每列是潜在向量空间中的维度。矩阵中的条目指示用户相对于潜在维度的偏好。在电影矩阵1006中,每行表示电影,并且每列是潜在向量空间中的维度。矩阵中的条目指示电影相对于维度的相关性。虽然潜在空间的单独的维度没有被指派固定含义,但是凭经验它们通常对应于项的可解释特性。例如,潜在维度可以对应于电影包含的动作的层级。因此,期望使用隐私保护系统来实施矩阵分解,以便不将机密数据泄露给敌手。注意,仅出于示例的目的,参考用户和项来描述关于矩阵分解的示例。在一些情况下使用其他类型的数据。
矩阵分解组件1002通过使用梯度下降或任何其他合适的最小化过程计算最小化来操作。最小化是以下形式的目标函数:
Figure BDA0001918680870000191
其在字面上表示为将对已知评级r与预测的评级比较的正则化最小二乘最小化,其中ri,j表示由用户i给予电影j的评级,其中预测的评级由用户简档ui和电影简档vj的内积给出。使用任何合适的正则化项,其用于保持用户简档和电影简档中的每个条目的大小较小。
梯度下降过程基于输入评级上的当前预测误差来迭代地更新分量矩阵U和V。只要误差减少或针对迭代的固定次数,迭代就会继续。误差ei,j被计算为观察到的评级和预测的评级之间的差ri,j-<ui,vj>,并且用户简档和电影简档在梯度的相反方向上如下更新:
Figure BDA0001918680870000201
Figure BDA0001918680870000202
其在字面上表示为,用户简档的下一个值是从将用户简档的现有的值与,对该用户评级的电影进行的电影评级误差乘以对应的电影简档的求和与正则化因子乘以现有的用户简档之差乘以更新因子,而相加进行计算的;以及电影简档的下一个值是从将电影简档的现有的值与,对评级该电影的用户进行的用户评级误差乘以对应的用户简档的求和与正则化因子乘以现有的电影简档之差乘以更新因子,而相加进行计算的。
更新过程揭示关于哪些用户-项对出现在输入评级中的机密信息。例如,假设存在哪些用户已经看过哪些电影的指示,则在梯度更新期间,更新过程揭示每个电影的流行度以及用户之间的电影简档的交集。电影简档是电影表1006中的行,用户简档是用户表1004中的行。
现在参考图11和图12描述使用梯度下降更新过程来计算上述的最小化的数据不经意矩阵分解过程。过程假设用户的数目、电影的数目、梯度下降的迭代的次数是公开的。过程还假设潜在维度的数目d和正则化因子λ,α是公开的。为清楚起见,针对电影和用户的情况描述该示例。但是,示例适用于任何两个种类的项。
可信执行环境执行设置操作1100,其中数据结构被指派在存储器中并且被初始化,如下面更详细描述的。数据结构至少包括扩展的用户简档表1202(本文中用符号U表示)以及扩展的电影简档表1208(本文中用符号V表示)。将包括用户、电影和评级观察的观察数据1200填入到数据结构中。扩展的用户简档表1202被认为包括交错的基本上所有的用户简档和电影简档,以便用户简档跟随有更新它所需的电影简档。在实践中,扩展的用户简档表1202包括用户元组和评级元组,并且扩展的电影简档表1208包括电影元组和评级元组。元组具有相同的形式和大小,以便形式和大小上的改变对敌手是隐藏的。形式是每个元组包括用户id、电影id、评级和d个值的向量。例如,用户元组具有(i,0,0,ui)的形式,其中i是用户的索引,且ui是用户i的用户简档。零表示没有电影,也没有评级。
以相同的方式,扩展的电影简档表1208被认为包括交错的基本上所有的用户简档和电影简档,以便电影简档跟随有更新它所需的用户简档。
在扩展的用户简档表中仔细地布置交错,以便对扩展的用户简档表的行的单个顺序扫描以固定的速率找到用户元组。在扩展的电影简档表中完成相同类型的交错,以便对扩展的电影简档表的行的单个顺序扫描以固定的速率找到电影元组。
交错(在扩展的用户简档表中)将具有许多评级的用户的用户简档与具有较少评级的用户的用户简档交错。类似地,交错(在扩展的电影简档表中)将具有许多评级的电影的电影简档与具有较少评级的电影的电影简档交错。该仔细的交错使得在提取过程期间能够对敌手隐藏信息,这将在下面更详细地描述。以高效的不经意方式计算仔细的交错,如本文档后面更详细描述的。
在1102处,可信执行环境使用上面的等式不经意地计算用于用户简档的梯度下降更新操作。这是通过将用户简档和电影简档置于单个数据结构(本文称为扩展的用户简档表)中,并在该数据结构内交错用户简档和电影简档来完成的。完成交错以便对数据结构的单次扫描(其基本上一次接触所有行)通过使用不经意原语操作对每行进行真实或伪更新来计算更新。因为基本上一次接触所有行,因此敌手无法从扫描中找到关于哪些用户简档实际上已经被更新的信息,因为他无法将这些与伪更新进行区别。而且,由于用户简档和电影简档一起在单个数据结构中,因此敌手无法观察哪些电影简档被用来更新哪些用户简档(反之亦然),就像在分离的数据结构中保存用户简档和电影简档的情况一样。以类似的方式,在1104处不经意地更新电影简档1104,并且该过程可选地与1102处的操作并行地发生。
操作1102的结果:扩展的用户简档表被更新(由符号
Figure BDA0001918680870000211
表示),并且在其中具有更新的用户简档以及电影简档。但是,扩展的电影简档表仍然在其中具有之前的用户简档。因此,可信执行环境被配置成在1106处从扩展的用户简档表中不经意地提取更新的用户简档,并且在1108处将那些更新的用户简档不经意地复制到扩展的电影简档表中以产生更新的扩展的电影简档表1206(由符号
Figure BDA0001918680870000221
表示)。通过在扩展的用户简档表上计算单个顺序扫描来完成提取,以便屏蔽可能以其他方式泄露信息的模式。在扫描操作期间,使用诸如本说明书在前面所描述的那些的不经意原语构建的扫描操作。没有必要对扩展的用户简档表的行进行排序以便将用户简档与电影简档分开,并且这是显著的益处,因为不经意的排序操作在时间和存储器资源方面非常昂贵。由于上面提到的仔细的交错,用于从扩展表中提取用户简档的单个顺序扫描以基本上固定的速率吐出用户简档。因此,正在查看输出的模式的敌手无法获得诸如“用户A已经比用户B评级了更多电影”或“用户A评级了最多电影”的信息。提取的用户简档的数目是n,因为n是用户的数目。提取的用户简档不经意地被复制到扩展的电影简档中。通过以大小为n的分块更新扩展的电影表来进行不经意复制。限定扩展电影表的第i个分块包括行1+(i-1)*n、2+(i-1)*n…n+(i-1)*n。对于第i个分块,用户简档按如下方式复制:副本中的每一行都附加了第i个分块中的同一行的用户字段,然后对副本进行不经意排序(可选地并行地进行),并且复制行使得正确的用户简档位于扩展的电影表的正确行中。这里的不经意排序一次排序n个元素(以分块为单位),这比排序整个扩展的电影简档更加高效。
可信执行环境在1110处从扩展的电影简档表中不经意地提取更新的电影简档,并且在1112处将那些更新的电影简档不经意地复制到扩展的用户简档表中。这是通过在扩展的用户简档表上计算顺序扫描来完成的,以便屏蔽可能以其他方式泄漏信息的模式。在扫描操作期间,使用诸如本说明书中前面所描述的那些的不经意原语构建的扫描操作。没有必要对扩展的电影简档表的行进行排序以便将用户简档与电影简档分开,这是显著的益处,因为不经意排序操作在时间和存储器资源方面非常昂贵。对扩展的用户表进行类似的不经意复制。
在校验1114处,如果已经达到迭代的固定次数,则在从用户表1004和电影表1006的扩展版本形成那些加密的用户表1004和电影表1006之后,可信执行环境输出加密的用户表1004和电影表1006。如果尚未达到迭代的固定次数,则从1102处的操作重复过程。
与使用多个顺序传递来执行更新并使用在整个数据结构(整个数据结构是大小为M+n+m的全局矩阵,其中M行用于评级、n行用于用户、m行用于电影)上的排序网络来同步的备选的方法相比,根据经验,发现图11和图12的方法给出了显著改善的运行时间。结果在下表中给出,其中T是迭代的次数,并且值以秒为单位。
T(迭代的次数) 图11和图12的方法 备选的方法
1 8 14
10 27 67
20 49 123
现在给出图11的设置操作1100的详细示例。
初始化用户和向量简档,并且可信执行环境使用输入的评级填充U和V。(1)可信执行环境构建序列LU(以及对称地LV),对于每个用户,其包含一对用户id i和他已经评级的电影的计数wi。为此,从输入的评级中提取用户id(丢弃其他字段);用户id被不经意地排序并以不经意方式顺序地重写,以便每个条目利用部分计数和指示下一个用户id是否改变的标志进行扩展;可信执行环境再次对它们进行排序(这次通过标志然后通过用户id),以获得LU作为前n个条目。(在顺序扫描期间直接输出LU将揭示计数。)例如,在第一次排序和重写之后,条目可以是(1;1;⊥)、(1;2;⊥)、(1;3;T)、(2;1;⊥)…的形式。
(2)可信执行环境将LU(以及对称地LV)扩展为大小为M+n的序列IU,对于具有wi评级的每个用户i,对于每个k=0…wi,序列IU包括一个元组(i;0;⊥;k;l),使得值l通过上面提到的交错来排序,并且在下面题为“均等交错扩展”的章节中进行解释。
(3)可信执行环境利用空用户和评级简档来构造U,如下。目标是根据LU来排序输入的等级。为此,可信执行环境利用用户评级序列号k=1…wi来扩展每个输入评级,从而产生M个元组(i,j,ri,j,k,|),并将它们附加到IU。元组按i然后按k然后按ri,j排序,以便对于k=1…wi,(i,0,⊥,k,l)直接跟随有(i,j,ri,j,k,⊥);可信执行环境顺序地重写那些元组,以便它们成为直接跟随有(i,j,ri,j,k,⊥)的(_,_,_,_,_);可信执行环境再次按照l排序;并丢弃最后M个伪元组(_,_,_,_,_)。
(4)可信执行环境通过扫描U并使用两个伪随机函数(PRF)(一个用于ui,一个用于vj)填充ui和vj来为用户和项简档生成初始值。对于每个用户元组(i,0,0,ui),可信执行环境对输入(i-1)d+1,…,id使用第一PRF来生成被归一化并被且被写入ui的d个随机数。对于每个评级元组(i,j,ri,j,vj),可信执行环境对输入(j-1)d+1,…,jd使用第二PRF来生成归一化并且被写入vj的d个随机数。然后,可信执行环境对V使用相同的两个PRF:第一个PRF用于评级元组,并且第二个PRF用于项元组。
现在给出图11的更新操作1102(或1108)的详细示例。
可信执行环境在单次扫描中计算更新的用户简档(以及对称地项简档),读取U(以及对称地V)的每个元组并且(总是)重写其向量(即,其最后的d个值),对于用户元组存储ui以及对于评级元组存储vj
可信执行环境使用各自保持Rd向量的4个循环变量u、δ、uo和δo,以记录当前用户和用户io的部分更新的简档。首先解释如何更新当前用户(i)的u和δ。在扫描期间,在读取用户元组(i,0,0,ui)时,如对于第一个元组总是这种情况一样,可信执行环境将u设置为ui并将δ设置为ui(1-λγ),并且覆盖ui(以隐藏它扫描用户元组的事实)。在读取当前用户i的评级元组(i,j,ri,j,vj)时,可信执行环境将δ更新为γvj(ri,j-(u,vj))+δ并利用δ覆盖vj。因此,最后的评级元组(在下一个用户元组之前)现在存储当前用户i的更新的简档
Figure BDA0001918680870000251
回想一下,用户U的交错将一些用户的评级元组分割。在这种情况下,如果留有待扫描的评级,则向vj写入的运行值δ(在扫描下一个用户之前)可以不包含更新的简档。因此,可信执行环境在可信执行环境处理下一个用户时使用io、uo和δo来保存被分割的用户的状态,并在稍后它扫描表格(io,j,
Figure BDA00019186808700002515
vj)的下一个评级元组时将其恢复。在LU的扩展期间,一次最多分割一个用户,因此单个状态的副本就足够了。
现在给出图11的提取步骤(1104,1110)的详细示例。
更新使得值
Figure BDA0001918680870000252
散布在
Figure BDA0001918680870000258
内(并且类似地,
Figure BDA0001918680870000253
散布在
Figure BDA0001918680870000254
内)。可信执行环境分两步从
Figure BDA0001918680870000255
提取U:(2a)可信执行环境重写所有向量(从最后一个到第一个)以将更新的
Figure BDA0001918680870000256
简档复制到具有用户索引i的所有元组中;该扫描类似于在步骤(1)中使用的扫描;然后(2b),可信执行环境以大小为(M+n)/n的n个分块对U进行分割,它只读取每个分块中的第一个和最后一个元组,并且写一个用户简档。该步骤依赖于用户的初步重新排序和交错,使得元组的第i个分块总是包含用户简档(的副本),并且可以通过仅读取
Figure BDA0001918680870000257
的2n个元组来收集所有n个用户简档(这里使用的扩展特性的细节在下面的“均等交错扩展”的章节中进行描述)。
现在给出图11的复制操作1106(或1112)的详细示例。
可信执行环境将更新的用户简档U(t+1)传播到
Figure BDA0001918680870000259
中的评级元组,其仍然携带用户简档U(t)(的多个副本)。可信执行环境以大小为n的分块顺序地更新
Figure BDA00019186808700002510
即,我们首先更新V的前n行,然后更新行n+1到行2n,依此类推,直到所有V都被更新,每次从U(t+1)的相同的n个用户简档复制,如下。(确切的分块大小是无关紧要的,但是n是渐近最优的)。
回想一下,
Figure BDA00019186808700002511
的每个评级元组是表格
Figure BDA00019186808700002512
其中
Figure BDA00019186808700002516
并且l指示元组在V中的交错位置。对于
Figure BDA00019186808700002513
的每个分块,可信执行环境附加了利用表格
Figure BDA00019186808700002514
的伪值扩展的U(t+1)的简档;可信执行环境按i然后按j对这些2n个元组进行排序,以便来自U(t+1)的每个元组紧接在其用户简档必须由
Figure BDA0001918680870000261
更新的来自
Figure BDA0001918680870000262
(的分块)的元组之前;可信执行环境通过线性重写执行所有更新;它再次按l排序;并保留前n个元组。最后,V(t+1)是那些更新的分块的串接。
均等交错扩展
现在给出关于如何在扩展的用户简档和扩展的电影简档表中不经意且高效地计算交错的细节。
加权列表L是具有n个元素i和整数权重wi≥1的对(i;wi)的序列。
L的扩展I是长度为
Figure BDA0001918680870000263
的元素的序列,使得每个元素i恰好出现wi次。
设α=∑wi/n是L的平均权重并且I的第j个分块是
Figure BDA0001918680870000264
元素
Figure BDA0001918680870000265
的子序列。
当通过从每个分块中选择一个元素来收集其所有元素时,I均等地交错L。
例如,对于L=(a,4),(b,1),(c,1),每个分块具有α=2个元素。扩展I=a、b、a、c、a、a均等地交错L,因为其元素a、b和c可以分别从其第三、第一和第二个分块中选择。扩展I'=a、a、a、a、b、c不是。
现在描述用于生成均等交错的高效方法。由于它被用作不经意构建分块,因此可信执行环境确保它以仅依赖于n和M=∑wi而不依赖于单独的权重的方式访问L、I和中间数据结构。(在矩阵分解中,M是输入的评级的总数。)注意,扩展不涉及填补(padding),因为可信执行环境在该过程中不要求相同元素的副本相邻。
给定加权列表L,在wi≥a时,元素i是重的,否则是轻的。主要思想是在每个分块中最多放置一个轻元素,利用重元素填充其余部分。可信执行环境分两步进行:(1)重新排序L,以便每个重元素跟随有对它进行补偿的轻元素;(2)顺序地产生包含一个或两个元素的副本的分块。
步骤1:假设通过减小权重(对于i∈[1,n-1],wi≥wi+1)来排序L,b是其最后的重元素(wb≥α>wb+1)。设δi为针对重元素定义的
Figure BDA0001918680870000271
和针对轻元素定义的
Figure BDA0001918680870000272
的差之和。设S为按δj(不经意地)排序的L,这打破了连结,有利于更高的元素索引指数。这还不能保证轻元素在它们补偿的重元素之后出现。为此,可信执行环境从其最后一个元素(总是最轻的)开始扫描S,交换跟随有重元素的任何轻元素(以便,最终,第一个元素是最重的)。
步骤2:可信执行环境被配置成使用两个循环变量(k,到目前为止读取的最新的重元素;和w,要放置在I中的k的副本的剩余的数目)顺序地产生I。可信执行环境重复地从重新排序的列表中读取元素并产生元素的分块。对于第一个元素k1,它产生k1的α个副本,并设置k=k1
Figure BDA0001918680870000273
对于每个轻元素ki,可信执行环境生成ki的α个副本和k的
Figure BDA0001918680870000274
个副本,并且它以
Figure BDA0001918680870000275
来减少w。对于每个重元素ki,可信执行环境产生k的w个副本和ki的α-w个副本,并且它设置k=ki
Figure BDA0001918680870000276
继续上面的示例序列L,a是重的,b和c是轻的,并且δa=2、δb=1,并且δc=2。按δ将L排序产生(b,1)、(a,4)、(c,1)。交换重元素和轻元素产生(a,4)、(b,1)、(c,1)并产生扩展I=a、a、b、a、c、a。
图13图示了示例性的基于计算的设备1300的各种组件,设备1300被实施成任何形式的计算和/或电子设备,并且其中在一些示例中实施了数据中心(诸如图1或图2的数据中心)的计算单元的实施例。
基于计算的设备1300包括一个或多个处理器1302,处理器1302是微处理器、控制器或任何其他合适类型的处理器,以用于处理计算机可执行指令以控制设备的操作,以便形成提供隐私保护机器学习服务的数据中心的一部分。在一些示例中,例如在使用片上系统架构的情况下,处理器1302包括一个或多个固定功能块(还被称为加速器),其以硬件(而不是软件或固件)实施图3至图12中的任一个附图的方法的一部分。包括操作系统1304的平台软件或任何其他合适的平台软件被设置在基于计算的设备处,以使得应用软件1306能够在设备上执行。处理器1302中的至少一个处理器被配置成在包括可信执行环境100的存储器1308处实施处理器保护的存储器区域。计算机可执行指令被存储在存储器1308处以实施数据上传器104和代码加载器122。
使用由基于计算的设备1300可访问的任何计算机可读介质来提供计算机可执行指令。计算机可读介质包括例如诸如存储器1308的计算机存储介质和通信介质。诸如存储器1308的计算机存储介质包括用于存储诸如计算机可读指令、数据结构、程序模块等信息的以任何方法或技术实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、电子可擦除可编程只读存储器(EEPROM)、闪速存储器或其他存储器技术、压缩碟只读存储器(CD-ROM)、数字多功能盘(DVD)或其他光学存储装置、磁盒、磁带、磁盘存储装置或其他磁存储设备,或用于存储供计算设备访问的信息的任何其他非传输介质。相反,通信介质在诸如载波或其他传输机构的已调制的数据信号中实施计算机可读指令、数据结构、程序模块等。如本文所限定的,计算机存储介质不包括通信介质。因此,计算机存储介质本身不应被解释为传播信号。尽管在基于计算的设备1300内示出了计算机存储介质(存储器1308),但是应当理解,在一些示例中,存储装置是远程分发或定位的,并且经由网络或其他通信链路(例如,使用通信接口1310)来访问
基于计算的设备1300还包括输入/输出控制器1312,其被布置成将显示信息输出到可选的显示设备1314,该可选的显示设备1314可以与基于计算的设备1300分离或集成在一起。显示信息可以提供图形用户界面以显示例如机器学习结果。输入/输出控制器1312还被布置为接收和处理来自一个或多个设备(诸如用户输入设备1316(例如,鼠标、键盘、相机、麦克风或其他传感器))的输入。在一些示例中,用户输入设备1316检测语音输入、用户手势或其他用户动作,并提供自然用户界面(NUI)。该用户输入可以用于指定要使用的训练数据、设置机器学习参数、访问机器学习结果以及用于其他目的。在一个实施例中,如果显示设备1314是触敏显示设备,则显示设备1314还用作用户输入设备1316。在一些示例中,输入/输出控制器1312将数据输出到除显示设备之外的设备,例如本地连接的打印设备。
输入/输出控制器1312、显示设备1314和用户输入设备1316中的任何一个可以包括自然用户界面(NUI)技术,其使得用户能够以自然的方式与基于计算的设备交互,而不受由诸如鼠标、键盘、遥控控制等输入设备施加的人工约束的影响。在一些示例中提供的NUI技术的示例包括但不限于依赖于语音和/或话音识别、触摸和/或触笔识别(触敏显示器)、屏幕上和屏幕附近的手势识别、空气中的手势、头部和眼睛跟踪、语音和话音、视觉、触摸、手势和机器智能的那些技术。在一些示例中使用的NUI技术的其他示例包括:意图和目的理解系统;使用深度相机(诸如立体相机系统、红外相机系统、红绿蓝(rgb)相机系统及其组合)的运动手势检测系统;使用加速度计/陀螺仪的运动手势检测;面部识别;三维(3D)显示器;头部、眼睛和凝视跟踪;沉浸式增强现实和虚拟现实系统;以及使用电场感测电极(脑电图(EEG)和相关方法)来感测大脑活动的技术。
作为本文中所描述的其他实例的备选或补充,示例包括以下的任何组合:
一种多方隐私保护机器学习系统,包括:
可信执行环境,包括至少一个受保护的存储器区域;
代码加载器,其将从多方中的至少一方接收的机器学习代码加载到受保护的存储器区域中;
数据上传器,其将从多方中的至少一方接收的机密数据上传到受保护的存储器区域;
其中可信执行环境使用数据不经意程序来执行机器学习代码以处理机密数据并且将结果返回给多方中的至少一方,其中数据不经意程序是其中任何的存储器访问的模式、磁盘访问的模式和网络访问的模式使得无法从模式预测机密数据的过程。
如上所述的多方隐私保护机器学习系统,其中可信执行环境执行机器学习代码以或者训练机器学习系统或者使用已经训练过的机器学习系统来生成预测。
如上所述的多方隐私保护机器学习系统,其中可信执行环境使用不经意随机存取存储器来实施数据不经意程序以访问机密数据,并且其中机器学习代码适于使用不经意随机存取存储器。
如上所述的多方隐私保护机器学习系统,其中可信执行环境使用数据不经意机器学习代码来实施数据不经意程序。
如上所述的多方隐私保护机器学习系统,其中可信执行环境使用一个或多个数据不经意原语的组合来实施数据不经意程序,数据不经意原语中的至少一个数据不经意原语是通过以高速缓存行粒度而不是元素粒度或字节粒度扫描阵列来访问阵列的操作。例如,通过使用向量指令。
如上所述的多方隐私保护机器学习系统,其中向量操作用于实施以高速缓存行粒度扫描阵列。
如上所述的多方隐私保护机器学习系统,其中所接收的数据包括标记的训练数据,并且其中数据上传器或可信执行环境被配置成在执行机器学习代码之前安全地置乱被标记的训练数据。
如上所述的多方隐私保护机器学习系统,其中安全置乱包括对于对敌手隐藏的训练数据的排序过程或随机排列的不经意实施方式。
如上所述的多方隐私保护机器学习系统,其中可信执行环境使用迭代地计算数据的集群的质心的数据不经意程序。
如上所述的多方隐私保护机器学习系统,其中可信执行环境使用迭代地计算支持向量机的权重的数据不经意程序。
如上所述的多方隐私保护机器学习系统,其中可信执行环境使用计算神经网络变换的分段近似的数据不经意程序。
如上所述的多方隐私保护机器学习系统,其中可信执行环境使用计算决策树的评估的数据不经意程序。
如上所述的多方隐私保护机器学习系统,其中可信执行环境将决策树存储为节点的多个阵列,并且通过遍历树和扫描阵列来评估决策树。
如上所述的多方隐私保护机器学习系统,其中可信执行环境使用通过不经意地扫描至少一个矩阵来计算矩阵分解的数据不经意程序,该至少一个矩阵包括用户数据的行和项数据的行,行交错,以便对矩阵的列的扫描以指定的速率输出用于单独的用户的数据。
一种多方隐私保护机器学习方法,包括:
将从多方中的至少一方接收的机器学习代码加载到在可信执行环境处的受保护的存储器区域中;
将从多方中的至少一方接收的机密数据上传到受保护的存储器区域;
使用数据不经意程序在可信执行环境中执行机器学习代码以处理机密数据并且将结果返回给多方中的至少一方,其中数据不经意程序是其中任何的存储器访问的模式、磁盘访问的模式和网络访问的模式使得无法从模式预测机密数据的过程。
如上所述的多方隐私保护机器学习方法,包括将在受保护的存储器区域中的机密数据安全地置乱。
如上所述的多方隐私保护机器学习方法,包括将机器学习代码执行为或者训练过程或者测试时间过程。
如上所述的多方隐私保护机器学习方法,包括使用不经意随机存取存储器来实施数据不经意程序以访问机密数据,并且其中机器学习代码适于使用不经意随机访问存储器。
如上所述的多方隐私保护机器学习方法,包括使用数据不经意机器学习代码来实施数据不经意程序。
一种多方隐私保护机器学习系统,包括:
用于将从多方中的至少一方接收的机器学习代码加载到可信执行环境处的受保护的存储器区域中的装置;
用于将从多方中的至少一方接收的机密数据上传到受保护的存储器区域并且将在受保护的存储器区域中的机密数据安全地置乱的装置;
用于使用数据不经意程序来执行机器学习代码以处理机密数据并且将结果返回给多方中的至少一方的装置,其中数据不经意程序是其中任何的存储器访问的模式、磁盘访问的模式和网络访问的模式使得无法从模式预测机密数据的过程。
例如,具有用于接收机器学习代码并且将其存储在受保护的存储器区域中的指令的代码加载器122(诸如网络服务器或其他计算实体)构成用于将从多方中的至少一方接收的机器学习代码加载到在可信执行环境处的受保护的存储器区域中的示例性装置。例如,具有用于访问数据、将其置乱并存储在受保护的存储器区域中的指令的数据上传器104(诸如网络服务器或其他计算实体)构成用于将从多方中的至少一方接收的机密数据上传到受保护的存储器区域并且将在受保护的存储器区域中的机密数据安全地置乱的示例性装置。
例如,流程图中的操作或处理器1302在被编程为执行流程图中所图示的操作时的操作构成用于使用数据不经意程序来执行机器学习代码以处理机密数据并且将结果返回给多方中的至少一方的装置,其中数据不经意程序其中是任何的存储器访问的模式、磁盘访问的模式和网络访问的模式使得无法从模式预测机密数据的过程。
术语“计算机”或‘“基于计算的设备”在本文中用于指代具有处理能力的任何设备,以便其执行指令。本领域技术人员将认识到,这种处理能力被合并到许多不同的设备中,并且因此术语“计算机”和“基于计算的设备”均包括个人计算机(PC)、服务器、移动电话(包括智能电话)、平板计算机、机顶盒、媒体播放器、游戏控制台、个人数字助理、可穿戴计算机和许多其他设备。
在一些示例中,本文中所描述的方法通过有形存储介质上的机器可读形式的软件来执行,例如,以包括计算机程序代码装置的计算机程序的形式,当程序在计算机上运行时,程序代码装置适于执行本文中所描述的方法中的一种或多种方法的所有操作,并且其中计算机程序可以在计算机可读介质上实施。软件适合用于在并行处理器或串行处理器上执行,以便方法操作可以以任何合适的顺序或同时执行。
这承认软件是有价值的、可单独交易的商品。它旨在涵盖在“哑(dumb)”或标准硬件上运行或者控制“哑”或标准硬件的软件,以执行期望的功能。它还旨在涵盖“描述”或限定硬件的配置的软件,诸如用于设计硅芯片或用于配置通用可编程芯片的HDL(硬件描述语言)软件,以执行期望的功能。
本领域技术人员将认识到,用于存储程序指令的存储设备可选地分发在网络上。例如,远程计算机能够将所描述的过程的一个示例存储为软件。本地或终端计算机能够访问远程计算机并且下载部分或全部软件以运行程序。备选地,本地计算机可以根据需要下载软件的片段,或者在本地终端处执行一些软件指令,并且在远程计算机(或计算机网络)处执行一些软件指令。本领域技术人员还将认识到,通过利用本领域技术人员已知的常规的技术,软件指令的全部或一部分软件指令可以由诸如数字信号处理器(DSP)、可编程逻辑阵列等的专用电路执行。
如对于本领域技术人员将是显而易见的,可以扩展或更改本文给出的任何范围或设备值而不丧失所寻求的效果。
尽管以结构特征和/或方法论动作专用的语言描述了主题内容,但是应当理解,在所附权利要求中所限定的主题内容不必限于上述的具体特征或动作。而是,公开了上述的具体特征和动作作为实施权利要求的示例形式。
应当理解,上述的益处和优点可以涉及一个实施例,或者可以涉及数个实施例。实施例不限于解决任何或所有所述问题的那些实施例或具有任何或所有所述益处和优点的那些实施例。将进一步理解,对“一个”项的引用指代那些项中的一个或多个。
本文中所描述的方法的操作可以以任何合适的顺序进行,或者在适当的情况下同时进行。附加地,在不脱离本文描述的主题内容的范围的情况下,可以从方法中的任何方法中删除单独的块。上述的示例中的任何示例的方面可以与所描述的示例中的任何其他示例的方面组合以形成进一步的示例而不会丧失所寻求的效果。
术语“包括”在本文中用于表示包括所标识的方法块或元素,但是这些块或元素不包括排他列表,并且方法或装置可包括附加的块或元素。
术语“子集”在本文中用于指代适当的子集,以便集合的子集不包括集合的所有元素(即,子集中缺少集合的元素中的至少一个元素)。
应当理解,仅仅作以示例的方式给出以上描述,并且本领域技术人员可以进行各种修改。以上说明、示例和数据提供了示例性实施例的结构和使用的完整描述。尽管已经以一定程度的特殊性或者参考一个或多个单独的实施例在上文中描述了各种实施例,但是本领域技术人员可以在不脱离本说明书的精神或范围的情况下对所公开的实施例进行大量变更。

Claims (18)

1.一种多方隐私保护机器学习系统,包括:
可信执行环境,包括至少一个受保护的存储器区域;
代码加载器,将从多方中的第一方接收的机器学习代码加载到所述受保护的存储器区域中;和
数据上传器,将从所述多方中的第二方接收的机密数据上传到所述受保护的存储器区域;
其中所述可信执行环境使用数据不经意程序来执行所述机器学习代码以处理所述机密数据并且将结果返回给所述多方中的一方,其中数据不经意程序是其中任何的存储器访问的模式、磁盘访问的模式和网络访问的模式使得无法从所述模式预测所述机密数据的过程;
其中所述可信执行环境使用不经意随机存取存储器以访问所述机密数据来实施所述数据不经意程序,并且其中所述机器学习代码适于使用所述不经意随机存取存储器;或者
其中所述可信执行环境使用一个或多个数据不经意原语的组合来实施所述数据不经意程序,其中不经意原语是不具有数据相关分支并且不显示使用哪个输入来产生所述不经意原语的输出的操作。
2.根据权利要求1所述的多方隐私保护机器学习系统,其中所述可信执行环境执行所述机器学习代码以或者训练机器学习系统,或者使用已经训练过的机器学习系统来生成预测。
3.根据权利要求1所述的多方隐私保护机器学习系统,其中所述数据不经意原语中的至少一个数据不经意原语是通过以高速缓存行粒度而不是以元素粒度或字节粒度扫描阵列来访问所述阵列的操作。
4.根据权利要求3所述的多方隐私保护机器学习系统,其中使用向量操作来实施以高速缓存行粒度进行的所述阵列的所述扫描。
5.根据权利要求1所述的多方隐私保护机器学习系统,其中所接收的所述数据包括被标记的训练数据,并且其中所述数据上传器或所述可信执行环境被配置成在执行所述机器学习代码之前,安全地置乱被标记的所述训练数据。
6.根据权利要求5所述的多方隐私保护机器学习系统,其中所述安全地 置乱包括对于对敌手隐藏的所述训练数据的排序过程或随机排列的不经意实施方式。
7.根据权利要求1所述的多方隐私保护机器学习系统,其中所述可信执行环境使用迭代地计算数据集群的质心的数据不经意程序。
8.根据权利要求1所述的多方隐私保护机器学习系统,其中所述可信执行环境使用迭代地计算支持向量机的权重的数据不经意程序。
9.根据权利要求1所述的多方隐私保护机器学习系统,其中所述可信执行环境使用计算神经网络变换的分段近似的数据不经意程序。
10.根据权利要求1所述的多方隐私保护机器学习系统,其中所述可信执行环境使用计算决策树的评估的数据不经意程序。
11.根据权利要求10所述的多方隐私保护机器学习系统,其中所述可信执行环境将所述决策树存储为多个节点的阵列,并且通过遍历所述决策树和扫描所述阵列来评估所述决策树。
12.根据权利要求1所述的多方隐私保护机器学习系统,其中所述可信执行环境使用通过不经意地扫描至少一个矩阵来计算矩阵分解的数据不经意程序,所述至少一个矩阵包括用户数据的行和项数据的行,所述行被交错,以便所述矩阵的列的扫描以指定的速率输出用于单独的用户的数据。
13.一种在多方隐私保护机器学习系统处的方法,包括:
将从多方中的第一方接收的机器学习代码加载到在可信执行环境处的受保护的存储器区域中;
将从所述多方中的第二方接收的机密数据上传到所述受保护的存储器区域;以及
使用数据不经意程序来在所述可信执行环境中执行所述机器学习代码以处理所述机密数据并且将结果返回给所述多方中的一方,其中数据不经意程序是其中任何的存储器访问的模式、磁盘访问的模式和网络访问的模式使得无法从所述模式预测所述机密数据的过程;
其中所述可信执行环境使用不经意随机存取存储器以访问所述机密数据来实施所述数据不经意程序,并且其中所述机器学习代码适于使用所述不经意随机存取存储器;或者
其中所述可信执行环境使用一个或多个数据不经意原语的组合来实施所述数据不经意程序,其中不经意原语是不具有数据相关分支并且不显示使用哪个输入来产生所述不经意原语的输出的操作。
14.根据权利要求13所述的方法,其中所述数据不经意程序还将所述结果发送到作为所述多方中的一方的一方。
15.根据权利要求13所述的方法,包括将所述机器学习代码执行为或者训练过程或者测试时间过程。
16.根据权利要求13所述的方法,包括使用不经意随机存取存储器以访问所述机密数据来实施所述数据不经意程序。
17.根据权利要求16所述的方法,其中所述机器学习代码适于使用所述不经意随机存取存储器。
18.一种多方隐私保护机器学习系统,包括:
用于将从多方中的第一方接收的机器学习代码加载到在可信执行环境处的受保护的存储器区域中的装置;
用于将从所述多方中的第二方接收的机密数据上传到所述受保护的存储器区域并且安全地置乱所述受保护的存储器区域中的所述机密数据的装置;以及
用于使用数据不经意程序来执行所述机器学习代码以处理所述机密数据并且将结果返回给所述多方中的一方的装置,其中数据不经意程序是其中任何的存储器访问的模式、磁盘访问的模式和网络访问的模式使得无法从所述模式预测所述机密数据的过程;
其中所述可信执行环境使用不经意随机存取存储器以访问所述机密数据来实施所述数据不经意程序,并且其中所述机器学习代码适于使用所述不经意随机存取存储器;或者
其中所述可信执行环境使用一个或多个数据不经意原语的组合来实施所述数据不经意程序,其中不经意原语是不具有数据相关分支并且不显示使用哪个输入来产生所述不经意原语的输出的操作。
CN201780039382.0A 2016-06-22 2017-06-15 隐私保护机器学习 Active CN109416721B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
GBGB1610883.9A GB201610883D0 (en) 2016-06-22 2016-06-22 Privacy-preserving machine learning
GB1610883.9 2016-06-22
US15/245,141 US20170372226A1 (en) 2016-06-22 2016-08-23 Privacy-preserving machine learning
US15/245,141 2016-08-23
PCT/US2017/037577 WO2017222902A1 (en) 2016-06-22 2017-06-15 Privacy-preserving machine learning

Publications (2)

Publication Number Publication Date
CN109416721A CN109416721A (zh) 2019-03-01
CN109416721B true CN109416721B (zh) 2022-09-09

Family

ID=56895308

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780039382.0A Active CN109416721B (zh) 2016-06-22 2017-06-15 隐私保护机器学习

Country Status (5)

Country Link
US (1) US20170372226A1 (zh)
EP (1) EP3475868B1 (zh)
CN (1) CN109416721B (zh)
GB (1) GB201610883D0 (zh)
WO (1) WO2017222902A1 (zh)

Families Citing this family (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11277412B2 (en) 2018-05-28 2022-03-15 Royal Bank Of Canada System and method for storing and distributing consumer information
JP6457472B2 (ja) * 2016-12-14 2019-01-23 ファナック株式会社 制御システム及び機械学習装置
EP4220464A1 (en) * 2017-03-22 2023-08-02 Visa International Service Association Privacy-preserving machine learning
US10796357B2 (en) 2017-04-17 2020-10-06 Walmart Apollo, Llc Systems to fulfill a picked sales order and related methods therefor
US11562293B2 (en) * 2017-05-08 2023-01-24 British Telecommunications Public Limited Company Adaptation of machine learning algorithms
EP3622447A1 (en) * 2017-05-08 2020-03-18 British Telecommunications Public Limited Company Interoperation of machine learning algorithms
US10554390B2 (en) * 2017-06-12 2020-02-04 Microsoft Technology Licensing, Llc Homomorphic factorization encryption
US10491373B2 (en) * 2017-06-12 2019-11-26 Microsoft Technology Licensing, Llc Homomorphic data analysis
US11126953B2 (en) 2017-06-14 2021-09-21 Walmart Apollo, Llc Systems and methods for automatically invoking a delivery request for an in-progress order
US11126954B2 (en) 2017-06-28 2021-09-21 Walmart Apollo, Llc Systems and methods for automatically requesting delivery drivers for online orders
US10909612B2 (en) 2017-07-13 2021-02-02 Walmart Apollo Llc Systems and methods for determining an order collection start time
EP3471005B1 (en) * 2017-10-13 2021-11-03 Nokia Technologies Oy Artificial neural network
WO2019104140A1 (en) * 2017-11-21 2019-05-31 Kobliner Yaacov Nissim Efficiently querying databases while providing differential privacy
EP3506547A1 (en) * 2017-12-28 2019-07-03 Flytxt B.V. Providing security against user collusion in data analytics using random group selection
GB2571703A (en) * 2018-02-07 2019-09-11 Thoughtriver Ltd A computer system
US20190332814A1 (en) * 2018-04-27 2019-10-31 Nxp B.V. High-throughput privacy-friendly hardware assisted machine learning on edge nodes
CN108712260B (zh) * 2018-05-09 2021-06-25 曲阜师范大学 云环境下保护隐私的多方深度学习计算代理方法
AU2019277292B2 (en) * 2018-05-28 2024-05-23 Royal Bank Of Canada System and method for secure electronic transaction platform
WO2019231481A1 (en) * 2018-05-29 2019-12-05 Visa International Service Association Privacy-preserving machine learning in the three-server model
US11222138B2 (en) * 2018-05-29 2022-01-11 Visa International Service Association Privacy-preserving machine learning in the three-server model
US11087223B2 (en) 2018-07-11 2021-08-10 International Business Machines Corporation Learning and inferring insights from encrypted data
US11188789B2 (en) 2018-08-07 2021-11-30 International Business Machines Corporation Detecting poisoning attacks on neural networks by activation clustering
US11334547B2 (en) * 2018-08-20 2022-05-17 Koninklijke Philips N.V. Data-oblivious copying from a first array to a second array
US11657322B2 (en) * 2018-08-30 2023-05-23 Nec Corporation Method and system for scalable multi-task learning with convex clustering
US11816575B2 (en) * 2018-09-07 2023-11-14 International Business Machines Corporation Verifiable deep learning training service
US20200082279A1 (en) 2018-09-11 2020-03-12 Synaptics Incorporated Neural network inferencing on protected data
CN110968889A (zh) * 2018-09-30 2020-04-07 中兴通讯股份有限公司 一种数据保护方法、设备、装置和计算机存储介质
US11734439B2 (en) 2018-10-18 2023-08-22 International Business Machines Corporation Secure data analysis
US11520923B2 (en) * 2018-11-07 2022-12-06 Nec Corporation Privacy-preserving visual recognition via adversarial learning
WO2020122902A1 (en) * 2018-12-12 2020-06-18 Hewlett-Packard Development Company, L.P. Updates of machine learning models based on confidential data
WO2020150678A1 (en) * 2019-01-18 2020-07-23 The Regents Of The University Of California Oblivious binary neural networks
CN111460453B (zh) * 2019-01-22 2023-12-12 百度在线网络技术(北京)有限公司 机器学习训练方法、控制器、装置、服务器、终端和介质
WO2020180300A1 (en) * 2019-03-05 2020-09-10 Mentor Graphics Corporation Machine learning-based anomaly detections for embedded software applications
CN110058883B (zh) * 2019-03-14 2023-06-16 梁磊 一种基于opu的cnn加速方法及系统
CN113614754A (zh) * 2019-03-27 2021-11-05 松下知识产权经营株式会社 信息处理系统、计算机系统、信息处理方法和程序
US11922359B2 (en) * 2019-04-29 2024-03-05 Abb Schweiz Ag System and method for securely training and using a model
US11449755B2 (en) * 2019-04-29 2022-09-20 Microsoft Technology Licensing, Llc Sensitivity classification neural network
CN110245515B (zh) * 2019-05-08 2021-06-01 北京大学 一种面向hdfs访问模式的保护方法和系统
US20200366459A1 (en) * 2019-05-17 2020-11-19 International Business Machines Corporation Searching Over Encrypted Model and Encrypted Data Using Secure Single-and Multi-Party Learning Based on Encrypted Data
CN114072820A (zh) * 2019-06-04 2022-02-18 瑞典爱立信有限公司 执行机器学习模型
CN110569659B (zh) * 2019-07-01 2021-02-05 创新先进技术有限公司 数据处理方法、装置和电子设备
US11269522B2 (en) * 2019-07-16 2022-03-08 Microsoft Technology Licensing, Llc Private data analytics
US11093320B2 (en) * 2019-08-12 2021-08-17 International Business Machines Corporation Analysis facilitator
US11669633B2 (en) 2019-08-16 2023-06-06 International Business Machines Corporation Collaborative AI on transactional data with privacy guarantees
US11568081B2 (en) 2019-08-23 2023-01-31 Microsoft Technology Licensing, Llc Secure and private hyper-personalization system and method
US11750362B2 (en) * 2019-09-17 2023-09-05 Sap Se Private decision tree evaluation using an arithmetic circuit
CN110674528B (zh) * 2019-09-20 2024-04-09 深圳前海微众银行股份有限公司 联邦学习隐私数据处理方法、设备、系统及存储介质
US11663521B2 (en) * 2019-11-06 2023-05-30 Visa International Service Association Two-server privacy-preserving clustering
CN110990829B (zh) * 2019-11-21 2021-09-28 支付宝(杭州)信息技术有限公司 在可信执行环境中训练gbdt模型的方法、装置及设备
CN111027083B (zh) * 2019-12-06 2022-03-01 支付宝(杭州)信息技术有限公司 一种私有数据处理方法及系统
CN111027713B (zh) * 2019-12-10 2022-09-02 支付宝(杭州)信息技术有限公司 共享机器学习系统及方法
CN111144547A (zh) * 2019-12-11 2020-05-12 支付宝(杭州)信息技术有限公司 基于可信执行环境的神经网络模型预测方法及装置
CN110995737B (zh) * 2019-12-13 2022-08-02 支付宝(杭州)信息技术有限公司 联邦学习的梯度融合方法及装置和电子设备
CN111027632B (zh) * 2019-12-13 2023-04-25 蚂蚁金服(杭州)网络技术有限公司 一种模型训练方法、装置及设备
CN111125735B (zh) * 2019-12-20 2021-11-02 支付宝(杭州)信息技术有限公司 一种基于隐私数据进行模型训练的方法及系统
US11861493B2 (en) * 2019-12-30 2024-01-02 Micron Technology, Inc. Machine learning models based on altered data and systems and methods for training and using the same
CN113128697B (zh) * 2020-01-16 2022-09-06 复旦大学 一种基于安全多方计算协议的可扩展机器学习系统
US11868958B2 (en) 2020-01-31 2024-01-09 Walmart Apollo, Llc Systems and methods for optimization of pick walks
US11657347B2 (en) * 2020-01-31 2023-05-23 Walmart Apollo, Llc Systems and methods for optimization of pick walks
US11803657B2 (en) 2020-04-23 2023-10-31 International Business Machines Corporation Generation of representative data to preserve membership privacy
CN111597226B (zh) * 2020-04-26 2023-06-16 北京百度网讯科技有限公司 数据挖掘系统、方法、装置、电子设备及存储介质
US11556854B2 (en) * 2020-04-28 2023-01-17 At&T Intellectual Property I, L.P. Constructing machine learning models
LT6793B (lt) * 2020-05-18 2020-12-28 Timofey Mochalov Duomenų perdavimo apsaugos būdas naudojant dirbtinį neuroninį tinklą
CN113868662A (zh) * 2020-06-30 2021-12-31 微软技术许可有限责任公司 机器学习网络的安全执行
US20220031208A1 (en) * 2020-07-29 2022-02-03 Covidien Lp Machine learning training for medical monitoring systems
US20220067181A1 (en) * 2020-09-01 2022-03-03 Argo AI, LLC Methods and systems for secure data analysis and machine learning
CN111935179B (zh) * 2020-09-23 2021-01-12 支付宝(杭州)信息技术有限公司 一种基于可信执行环境的模型训练方法和装置
CN112367156A (zh) * 2020-10-20 2021-02-12 宁波视科物电科技有限公司 一种基于安全多方计算的眼动数据处理系统及处理方法
CN112270415B (zh) * 2020-11-25 2024-03-22 矩阵元技术(深圳)有限公司 一种加密机器学习的训练数据准备方法、装置和设备
CN112528299B (zh) * 2020-12-04 2022-03-04 电子科技大学 一种工业应用场景下的深度神经网络模型安全保护方法
CN112819058B (zh) * 2021-01-26 2022-06-07 武汉理工大学 一种具有隐私保护属性的分布式随机森林评估系统与方法
US11841977B2 (en) 2021-02-11 2023-12-12 International Business Machines Corporation Training anonymized machine learning models via generalized data generated using received trained machine learning models
US11216580B1 (en) * 2021-03-12 2022-01-04 Snowflake Inc. Secure machine learning using shared data in a distributed database
WO2022197297A1 (en) * 2021-03-17 2022-09-22 Zeku, Inc. Apparatus and method of user privacy protection using machine learning
CN113095505B (zh) * 2021-03-25 2022-12-06 支付宝(杭州)信息技术有限公司 多方协同更新模型的方法、装置及系统
US11907403B2 (en) * 2021-06-10 2024-02-20 Hong Kong Applied Science And Technology Research Institute Co., Ltd. Dynamic differential privacy to federated learning systems
CN113614726A (zh) * 2021-06-10 2021-11-05 香港应用科技研究院有限公司 对联邦学习系统的动态差异隐私
US11831698B2 (en) * 2021-06-29 2023-11-28 Microsoft Technology Licensing, Llc Data streaming protocols in edge computing
CN113591942B (zh) * 2021-07-13 2023-05-09 中国电子科技集团公司第三十研究所 大规模数据的密文机器学习模型训练方法
US11366930B1 (en) * 2021-08-23 2022-06-21 Deeping Source Inc. Method for training and testing obfuscation network capable of obfuscating data to protect personal information, and learning device and testing device using the same
US11880336B2 (en) * 2022-03-10 2024-01-23 International Business Machines Corporation Tracking techniques for generated data
US11743524B1 (en) 2023-04-12 2023-08-29 Recentive Analytics, Inc. Artificial intelligence techniques for projecting viewership using partial prior data sources

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8539220B2 (en) * 2010-02-26 2013-09-17 Microsoft Corporation Secure computation using a server module
US9077539B2 (en) * 2011-03-09 2015-07-07 Microsoft Technology Licensing, Llc Server-aided multi-party protocols
CN102196431B (zh) * 2011-05-13 2014-10-22 南京邮电大学 基于物联网应用场景的隐私查询和隐私身份验证的保护方法
US9015853B2 (en) * 2012-06-15 2015-04-21 The Regents Of The University Of California Concealing access patterns to electronic data storage for privacy
CN105637798A (zh) * 2013-03-04 2016-06-01 汤姆逊许可公司 用于隐私保护计数的方法和系统
CN103489003B (zh) * 2013-09-29 2017-04-19 华南理工大学 一种基于云计算的手机图像标注方法
CN103617259A (zh) * 2013-11-29 2014-03-05 华中科技大学 一种基于有社会关系和项目内容的贝叶斯概率矩阵分解推荐方法
WO2016094840A2 (en) * 2014-12-11 2016-06-16 Ghosh Sudeep System, method & computer readable medium for software protection via composable process-level virtual machines
US9904793B2 (en) * 2015-03-23 2018-02-27 Intel Corporation Systems, methods, and apparatus to provide private information retrieval
US10579791B2 (en) * 2016-03-04 2020-03-03 Intel Corporation Technologies to defeat secure enclave side-channel attacks using fault-oriented programming

Also Published As

Publication number Publication date
GB201610883D0 (en) 2016-08-03
CN109416721A (zh) 2019-03-01
WO2017222902A1 (en) 2017-12-28
EP3475868B1 (en) 2021-07-21
US20170372226A1 (en) 2017-12-28
EP3475868A1 (en) 2019-05-01

Similar Documents

Publication Publication Date Title
CN109416721B (zh) 隐私保护机器学习
Ohrimenko et al. Oblivious {Multi-Party} machine learning on trusted processors
Zhuang et al. A fast parallel SGD for matrix factorization in shared memory systems
Chin et al. A fast parallel stochastic gradient method for matrix factorization in shared memory systems
Xie et al. SLSGD: Secure and efficient distributed on-device machine learning
CN107924339B (zh) 数据中心以及用于促进数据中心处的私密性的方法和介质
Popic et al. A hybrid cloud read aligner based on MinHash and kmer voting that preserves privacy
Dauterman et al. Snoopy: Surpassing the scalability bottleneck of oblivious storage
Chen et al. Privacy and fairness in Federated learning: on the perspective of Tradeoff
US20220067570A1 (en) Training machine learning models with training data
Zhang et al. A survey on privacy inference attacks and defenses in cloud-based deep neural network
CN111475838A (zh) 基于深度神经网络的图数据匿名方法、装置、存储介质
Zhong et al. Scaling factorization machines with parameter server
Jiang et al. Pbsx: A practical private boolean search using Intel SGX
CN111835776A (zh) 一种网络流量数据隐私保护方法及系统
Alam et al. Sgx-mr: Regulating dataflows for protecting access patterns of data-intensive sgx applications
Gupta et al. Detection of vulnerabilities in blockchain smart contracts: a review
Dasoriya A review of big data analytics over cloud
Zheng et al. A new malware detection method based on vmcadr in cloud environments
Luo et al. pRide: Private ride request for online ride hailing service with secure hardware enclave
Lapworth Parallel encryption of input and output data for HPC applications
JPWO2020145340A1 (ja) 秘密配列アクセス装置、秘密配列アクセス方法、およびプログラム
Kukkala et al. Identifying influential spreaders in a social network (While preserving Privacy)
Wang et al. A privacy-preserving cross-media retrieval on encrypted data in cloud computing
CN112367396B (zh) 分布式集群中的样本特征分位点确定方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant