CN111771199A - 将第一函数应用于数据集中的每个数据元素的计算机实施的方法以及实施该方法的工作者节点 - Google Patents

将第一函数应用于数据集中的每个数据元素的计算机实施的方法以及实施该方法的工作者节点 Download PDF

Info

Publication number
CN111771199A
CN111771199A CN201880089866.0A CN201880089866A CN111771199A CN 111771199 A CN111771199 A CN 111771199A CN 201880089866 A CN201880089866 A CN 201880089866A CN 111771199 A CN111771199 A CN 111771199A
Authority
CN
China
Prior art keywords
data set
data
function
applying
result
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.)
Pending
Application number
CN201880089866.0A
Other languages
English (en)
Inventor
M·G·韦宁根
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.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips NV
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 Koninklijke Philips NV filed Critical Koninklijke Philips NV
Publication of CN111771199A publication Critical patent/CN111771199A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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
    • G06F21/6254Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • General Factory Administration (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

提供了一种将第一函数应用于第一数据集中的每个数据元素的计算机实施的方法,所述方法包括:(i)确定所述第一数据集中的每个数据元素是否满足标准,其中,所述标准仅在将第一函数应用于数据元素的结果等于将第二函数应用于数据元素的结果的情况下才满足;(ii)形成包括所述第一数据集中不满足所述标准的数据元素的压缩数据集;(iii)将第一函数应用于压缩数据集中的每个数据元素;并且(iv)基于步骤(iii)的结果来形成输出;其中,步骤(i)‑(iv)是使用多方计算(MPC)技术来执行的。还提供了对应的系统和工作者节点。

Description

将第一函数应用于数据集中的每个数据元素的计算机实施的 方法以及实施该方法的工作者节点
技术领域
本公开涉及将第一函数应用于数据集中的每个数据元素,并且具体涉及一种用于将第一函数应用于数据集中的每个数据元素的计算机实施的方法和工作者节点。
背景技术
在需要处理来自多个互不信任方的敏感信息的设置中,能够使用基于密码术的隐私保护技术,诸如多方计算(MPC)。具体地,当使用MPC时,敏感数据在多方之间是“秘密共享的”,因此任何一方在没有其他方的帮助下都不能够学习所述数据。在这些各方之间使用密码协议,能够对这样的“秘密共享的”数据执行计算。尽管能对秘密共享的数据进行宽范围的原语操作,但是并非所有常规编程语言结构都是可用的。例如,不能够具有条件涉及敏感变量的“if”语句,这仅仅是因为系统中的任何一方都不应当知道条件是否成立。因此,需要有效的方法来执行更高级别的操作(例如,对列表进行排序或者找到其最大值),所述方法仅利用对秘密共享的数据可用的操作。
信息处理中发生的一种常见操作是“映射”操作,其中,将相同的函数f应用于数据集中的所有元素。
发明内容
对秘密共享的数据执行“映射”操作的一种方式是:在MPC下将函数f应用于数据集中每个数据元素的秘密共享。然而,假定函数f要被映射到数据集,对此:
-使用MPC对输入x计算函数f在计算上是昂贵的;
-存在标准φ,其直接对输入x进行检查,使得在其为真的情况下,f(x)=g(x),其中,函数g直接计算(例如,其是常数);并且
-已知φ针对数据集的大部分成立。
如果数据的私密性不是问题,那么可以通过对φ成立的数据元素应用g而不是f,来减少针对“映射”操作所花费的时间。转换为MPC设置,这意味着针对数据集的每个数据元素x,使用MPC来检查φ是否成立;并且如果φ成立,则使用MPC在x上执行g;否则,使用MPC在x上执行f。然而,这将泄漏关于x的信息,因为为了能够在φ(x)上进行分支,有必要揭示φ(x)是否为真。
因此,需要一种经改进的技术,用于将第一函数应用于数据集中的每个数据元素,以解决上述问题中的一个或多个问题。
在本文中所描述的技术提供了能够将函数f映射到以上设置中的数据集上,其避免了必须将f应用到数据集中的所有数据元素并且不泄漏标准φ的值。实施例提供了能够将函数f映射到数据集,使得f需要在MPC下在数据集中的数据元素上最多执行N次,其中,N是不满足φ的数据元素数量的已知上限。为了获得这种改进,在本文中所描述的技术提供了对数据集的所有数据元素执行g,并且执行“压缩”操作,其中,根据压缩的结果来形成输出。尽管这些步骤带来了额外的计算工作,但是如果f足够复杂,则避免对数据集中的一些数据元素进行f的计算所节省的成本超过了这些额外成本,从而导致了整体性能的改进。
根据第一特定方面,提供了一种将第一函数应用于第一数据集中的每个数据元素的计算机实施的方法,所述方法包括:(i)确定所述第一数据集中的每个数据元素是否满足标准,其中,所述标准仅在将所述第一函数应用于所述数据元素的结果等于将第二函数应用于所述数据元素的结果的情况下才满足;(ii)形成包括所述第一数据集中不满足所述标准的数据元素的压缩数据集;(iii)将所述第一函数应用于所述压缩数据集中的每个数据元素;并且(iv)基于步骤(iii)的结果来形成输出;其中,步骤(i)-(iv)是使用多方计算MPC技术来执行的。
根据第二方面,提供了用于在根据第一方面的方法中使用的工作者节点。
根据第三方面,提供了一种用于将第一函数应用于第一数据集中的每个数据元素的系统,所述系统包括多个工作者节点,其中,所述多个工作者节点被配置为使用多方计算MPC技术用于:确定所述第一数据集中的每个数据元素是否满足标准,其中,所述标准仅在将所述第一函数应用于所述数据元素的结果等于将第二函数应用于所述数据元素的结果的情况下才满足;形成包括所述第一数据集中不满足所述标准的数据元素的压缩数据集;将第一函数应用于所述压缩数据集中的每个数据元素;并且基于将所述第一函数应用于所述压缩数据集中的每个数据元素的结果来形成输出。
根据第四方面,提供了一种被配置用于在根据第三方面的系统中使用的工作者节点。
根据第五方面,提供了一种用于在将第一函数应用于第一数据集中的每个数据元素的过程中使用的工作者节点,其中,所述工作者节点被配置为与至少一个其他工作者节点一起使用一种或多种多方计算MPC技术用于:确定所述第一数据集中的每个数据元素是否满足标准,其中,所述标准仅在将所述第一函数应用于所述数据元素的结果等于将第二函数应用于所述数据元素的结果才满足;形成包括所述第一数据集中不满足所述标准的数据元素的压缩数据集;将所述第一函数应用于所述压缩数据集中的每个数据元素;并且基于将所述第一函数应用于所述压缩数据集中的每个数据元素的结果来形成输出。
根据第六方面,提供了一种用于操作工作者节点以将第一函数应用于第一数据集中的每个数据元素的计算机实施的方法,所述方法包括:(i)确定所述第一数据集中的每个数据元素是否满足标准,其中,所述标准仅在将所述第一函数应用于所述数据元素的结果等于将第二函数应用于所述数据元素的结果的情况下才满足;(ii)形成包括所述第一数据集中不满足所述标准的数据元素的压缩数据集;(iii)将所述第一函数应用于所述压缩数据集中的每个数据元素;并且(iv)基于步骤(iii)的结果来形成输出;其中,步骤(i)-(iv)是与一个或多个其他工作者节点一起使用多方计算MPC技术来执行的。
根据第七方面,提供一种计算机程序产品,其包括在其中体现有计算机可读代码的计算机可读介质,所述计算机可读代码被配置为使得在由合适的计算机或处理器运行时,使所述计算机或处理器执行根据第一方面或第六方面的方法。
通过参考下文是描述的(一个或多个)实施例,这些和其他方面将变得显而易见。
附图说明
现在将参考以下附图,仅以示例的方式来描述示例性实施例,在附图中:
图1是根据在本文中所描述的技术的实施例的包括多个工作者节点的系统的框图;
图2是能够在本文中所描述的技术的实施例中使用的工作者节点的框图;
图3是图示了根据在本文中所描述的技术的实施例的所谓的过滤映射流程的图;
图4是图示了根据在本文中所描述的技术的实施例的所谓的过滤映射简化流程的图;
图5是图示了将第一函数应用于数据集中的每个数据元素的方法的流程图;并且
图6是图示了根据在本文中所描述的技术的针对上限的不同值执行正常映射流程与过滤映射流程的图。
具体实施方式
图1是在其中可以实施在本文中所描述的技术和原理的系统1的框图。系统1包括多个工作者节点2,其中,在图1中示出了三个工作者节点2。每个工作者节点2能够参与与一个或多个其他工作者节点2的多方计算(MPC)。多方计算技术允许对来自互不信任方的敏感(私有)输入计算联合函数,而无需这些方将这些输入公开给信任的第三方或彼此(因此保护这些输入的私密性)。密码协议确保了没有参与方(或者各方的联盟)从该计算中获知除了计算结果的预期部分之外的任何事物。在图1中所示的系统中,能够由一个或多个工作者节点2和/或由一个或多个输入节点(在图1中未示出)提供用于计算的输入。计算的输出可以被返回到提供(一个或多个)输入的节点,例如,一个或多个工作者节点2和/或一个或多个输入节点,和/或输出能够被提供给不提供输入的一个或多个节点,例如一个或多个其他工作者节点2和/或一个或多个输出节点(在图1中未示出)。通常,MPC的输出的接收者是请求所述计算的节点。
能够将图1中的多个工作者节点2视为能够执行MPC的工作者节点2的“委员会”。单个委员会可以执行整个MPC,但是在一些情况下,多个委员会(包括相应的多个工作者节点2)能够执行MPC的相应部分。
工作者节点2被相互连接,并且因此能够在其之间交换信令(被示为信号3)。工作者节点2可以是彼此本地的,或者一个或多个工作者节点2可以远离其他工作者节点2。在那种情况下,工作者节点2可以经由包括互联网和局域网的一个或多个无线或有线网络而互连。
每个工作者节点2能够是任何类型的电子设备或计算设备。例如,工作者节点2能够是任何适当类型的电子设备或计算设备(诸如服务器、计算机、膝上型计算机、智能电话等)或者是其部分。将意识到,图1中所示的工作者节点2不需要是相同类型的设备,并且例如,一个或多个工作者节点2能够是服务器,一个或多个工作者节点2能够是台式计算机等。
图2是示例性工作者节点2的框图。工作者节点4包括用于实现与其他设备或节点(诸如其他工作者节点2)的数据连接的接口电路4。具体地,接口电路4能够经由任何期望的有线或无线通信协议实现在工作者节点2与网络(诸如互联网或局域网)之间的连接。工作者节点2还包括处理单元6,其用于对数据执行操作并且用于总体上控制工作者节点2的操作。工作者节点2还包括存储器单元8,其用于存储执行在本文中所描述的技术所需的任何数据,并且用于存储使处理单元6执行下文更详细描述的方法步骤的计算机程序代码。
能够利用软件和/或硬件以多种方式来实施处理单元6,以执行在本文中所描述的各种功能。处理单元6可以包括一个或多个微处理器或者数字信号处理器(DSP),其可以使用软件或计算机程序代码来编程以执行所需的功能和/或控制处理单元10的部件以实现所需的功能。处理单元6可以被实施为执行一些功能的专用硬件(例如,放大器、前置放大器、模数转换器(ADC)和/或数模转换器(DAC))和处理器(例如,一个或多个编程的微处理器、控制器、DSP和相关联的电路)的组合以执行其他功能。可以在本公开的各种实施例中采用的部件的示例包括但不限于:常规微处理器、DSP、专用集成电路(ASIC)和现场可编程门阵列(FPGA)。
存储器单元8能够包括任何类型的非瞬态机器可读介质,诸如高速缓存或系统存储器,其包括易失性和非易失性计算机存储器,诸如随机存取存储器(RAM)、静态RAM(SRAM)、动态RAM(DRAM)、只读存储器(ROM)、可编程ROM(PROM)、可擦除PROM(EPROM)和电可擦除PROM(EEPROM)。
如果工作者节点2存储或保存能够在多方计算中处理的一个或多个数据集,则能够将(一个或多个)数据集存储在存储器单元8中。
如上所述,在信息处理中发生的一种常见操作是映射操作,其中,将相同的函数f应用于数据集中的所有数据元素。然而,应用函数f会是在计算上昂贵的,特别是在数据集是秘密/私有并且必须在MPC下将函数f应用于每个个体数据元素的情况下。
针对一些函数f,能够存在标准φ,其直接检查输入(数据元素)x,使得在其为真的情况下,则f(x)=g(x),其中,函数g直接计算(例如,其是常数),这意味着可以通过对φ成立的数据元素应用g而不是f来减少映射操作所花费的时间。这能够意味着,针对数据集中的每个数据元素x,使用MPC检查φ是否成立;并且如果φ成立,则使用MPC在x上执行g;否则,使用MPC在x上执行f。然而,这将泄漏关于x的信息,因为为了能够在φ(x)上进行分支,将有必要揭示φ(x)是否为真。
因此,需要其程序流程不取决于敏感数据以尊重数据集中的数据元素的敏感度的技术。在本文中所描述的技术提供了对将函数f应用于对一方或多方为秘密或私有的数据集的改进,其中,存在上文针对函数f的标准φ,这意味着函数f不需要被应用于数据集中的所有数据元素。
参考图3描述了在本文中所提出的技术的第一实施例,图3图示了对包括多个数据元素22的数据集20的映射操作。该第一实施例在本文中也被称为“过滤映射”操作。将意识到,尽管图3将数据集20示为具有五个数据元素22,但是数据集20可以包括更少的数据元素22,或者通常包括超过五个数据元素22。为了便于识别,在图3中将数据元素22从#1到#5连续地编号。
首先,针对数据集20中的所有数据元素22,检查φ是否被满足。使用MPC技术来执行该检查。亦即,使用MPC技术由两个或更多个工作者节点2来执行检查,使得没有个体工作者节点2获知数据元素22的内容或者获知特定数据元素22是否满足φ。如上所述,仅在f(x)=g(x)的情况下才满足φ,即,仅在将函数f应用于数据元素x的结果与将函数g应用于数据元素x的结果相同的情况下才满足φ。下文参考算法5来描述对标准φ的检查的示例。
在图3中,发现满足φ的数据元素22以空白盒示出,而发现不满足φ的数据元素22以交叉影线盒示出。将意识到,图3仅为了易于理解而示出了数据元素22之间的这种区别,并且没有个体工作者节点2知道哪个数据元素22满足/不满足φ。在图3的示例中,发现数据元素#2和#5不满足标准φ。发现数据元素#1、#3和#4满足标准φ。
给定不满足φ的数据元素22的数量的上限N,通过压缩操作26将数据集20压缩为具有N个数据元素22的压缩数据集24。压缩操作26将数据集20中不满足标准φ的数据元素22置于压缩数据集24中,以及在不满足上限(即,不满足φ的数据元素22的数量小于N)的情况下的对应于默认值28的一个或多个数据元素,以形成N大小的压缩数据集24。用于执行该压缩的技术在下文更详细地阐述。默认值28能够是在f的域中的随机数据元素。备选地,默认值28能够是数据集20中满足标准φ的数据元素22。压缩操作26是使用MPC技术由两个或更多个工作者节点2来执行的,从而没有个体工作者节点2获知数据元素22的值、数据集20的哪些数据元素22成为压缩数据集24的部分、以及压缩数据集24中的哪些数据元素对应于(一个或多个)默认值28。执行压缩操作26的工作者节点2可以与执行对标准φ的检查的工作者节点2相同或不同。
在图3的示例中,压缩操作26将数据元素#2和#5置于压缩数据集24中。
图3还示出了复制操作30,复制操作30复制数据集20以形成与数据集20相同的复制数据集32。将意识到,实际上,如果压缩操作26将数据集20中不满足标准φ的数据元素22复制到压缩数据集24中,则不需要执行该复制操作30。
函数f被应用于压缩数据集24的所有元素(即,不满足φ的数据元素和一个或多个默认值28)。这由映射操作34示出,并且导致具有f映射数据集元素37的压缩f映射数据集26。将函数f应用于压缩数据集24中的元素是使用MPC技术由两个或更多个工作者节点2来执行的,从而没有个体工作者节点2获知压缩数据集24中数据元素22的值,或者将函数f应用于任何数据元素22(包括(一个或多个)默认值28)的结果。执行f映射操作34的工作者节点2可以与执行检查和/或压缩操作26的工作者节点2相同或不同。
在图3的示例中,f映射操作34将函数f应用于数据元素#2和#5。
函数g被应用于复制数据集32(或原始数据集20)的所有元素22。这由映射操作38示出,并且导致具有g映射数据元素41的g映射数据集40。将函数g应用于复制数据集32中的元素是使用MPC技术由两个或更多个工作者节点2来执行的,从而没有个体工作者节点2获知数据集20/复制数据集32中数据元素22的值,或者将函数g应用于任何数据元素22的结果。执行g映射操作38的工作者节点2可以与执行检查、压缩操作26和/或f映射操作34的工作者节点2相同或不同。
在图3的示例中,g映射操作38将函数g应用于所有数据元素#1至#5。
在映射操作34、38之后,通过解压缩操作42将压缩的f映射数据集36解压缩为具有与数据集20相同大小(即,相同数量的数据元素)的f映射数据集44。具体地,将与不满足标准φ的数据元素22相对应的f映射数据元素37放置到与数据集20中的各个数据元素的位置相对应的位置的f映射数据集44中,其中,相关的g映射数据元素41包含于针对满足标准φ的数据集20中的任何数据元素22的f映射数据集44中。因此,f映射数据集44包括f映射数据元素37和一些g映射数据元素41。用于执行该解压缩的技术在下文更详细地阐述。在其中(一个或多个)默认值28是数据集20中不满足标准φ的一些数据元素22的实施例中,针对被用作默认值28的那些数据元素22,解压缩操作42能够包括将压缩的f映射数据集36中的那些数据元素22的f映射版本置于f映射数据集44中,或者将g映射数据集中的那些数据元素22的g映射版本置于f映射数据集44中(并且将意识到,集合36、40中的哪个提供这些元素并不重要,因为其是相同的)。
解压缩操作42是使用MPC技术由两个或更多个工作者节点2来执行的,从而没有个体工作者节点2获知f映射数据元素37、g映射数据元素41的值、哪些f映射数据元素37解压缩到f映射数据集44中的哪些位置、哪些g映射数据集41解压缩到f映射数据集44中的哪些位置、或者f映射数据集44的内容。执行解压缩操作42的工作者节点2可以与执行检查、压缩操作26、f映射操作34和/或g映射操作38的工作者节点2相同或不同。
在图3的示例中,将f映射数据元素#2和#5解压缩到f映射数据集44中与数据集20中数据元素#2和#5的位置相对应的位置,而将g映射数据元素#1、#3和#4解压缩到f映射数据集44中与数据集20中的数据元素#1、#3和#4的位置相对应的位置。
应当注意,在f映射数据集44中,通过直接计算数据集20中的该数据元素22的f,或者通过在满足φ的情况下计算该数据元素22的g,来获得每个映射数据元素。因此,基于标准φ的定义,图3中所示的技术的最终结果是将函数f应用于原始数据集20中的所有数据元素22。
在本文中所提出的技术的第二实施例涉及对数据集的所谓的映射-简化操作。在映射-简化操作/计算中,任务是计算
Figure BDA0002641525060000091
其中,
Figure BDA0002641525060000092
是关联运算符(例如,加法),而f(xi)在满足标准φ时等于关联运算符的中性元素(例如,在加法的情况下为零)。在该第二实施例中,通过与上述第一实施例相比,不需要解压缩操作,并且能够直接对压缩的f映射数据集直接地执行“简化”操作以产生输出。
下文参考图4来描述第二实施例,图4示出了包括多个数据元素52的数据集50。将意识到,尽管图4示出了具有五个数据元素52的数据集50,但是数据集50可以包括更少的数据元素52,或者通常包括五个以上的数据元素52。为了易于识别,。在图4中将数据元素52从#1到#5连续地编号。
首先,针对数据集50中的所有数据元素52,检查φ是否被满足。使用MPC技术来执行该检查。亦即,使用MPC技术由两个或更多个工作者节点2来执行所述检查,从而没有个体工作者节点2获知数据元素52的内容或者获知特定数据元素52是否满足φ。如上所述,仅在f(x)=g(x)=针对
Figure BDA0002641525060000101
的中性运算符的情况下才满足φ,即,仅在将函数f应用于数据元素x的结果是针对
Figure BDA0002641525060000102
的中性运算符的情况下才满足φ(即,将函数f应用于数据元素x的结果产生不对整个映射-简化操作的输出有贡献的结果)。
在图4中,发现满足φ的数据元素52在空白盒中示出,而发现不满足φ的数据元素52在交叉影线盒中示出。将意识到,图4仅仅为了易于理解而示出了数据元素52之间的这种区别,并且没有个体工作者节点2获知哪些数据元素52满足/不满足φ。在图4的示例中,发现数据元素#2和#5不满足标准φ。发现数据元素#1、#3和#4满足标准φ。
给定不满足φ的数据元素52的数量的上限N,通过压缩操作56将数据集50压缩为具有N个数据元素52的压缩数据集54。压缩操作56将数据集50中不满足标准φ的数据元素52置于压缩数据集54中,以及在不满足上限(即,如果不满足φ的数据元素52的数量小于N)时的对应于默认值58的一个或多个数据元素,以形成N大小的压缩数据集54。在该实施例中,(一个或多个)默认值58是使得将函数f应用于(一个或多个)默认值的结果是关联运算符
Figure BDA0002641525060000103
的中性元素。如在第一实施例中,(一个或多个)默认值能够是f的域中的随机数据元素、或者其能够是数据集50中不满足标准φ的数据元素52。在下文中更详细地阐述了用于执行该压缩操作56的技术。压缩操作56是使用MPC技术由两个或更多个工作者节点2来执行的,从而没有个体工作者节点2获知数据元素52的值、数据集50的哪些数据元素52成为压缩数据集54的部分、以及压缩数据集54中的哪些数据元素对应于(一个或多个)默认值58。执行压缩操作56的工作者节点2可以与执行对标准φ的检查的工作者节点2相同或不同。
在图4的示例中,压缩操作56将数据元素#2和#5置于压缩数据集54中。
函数f被应用于压缩数据集54的所有元素(即,不满足φ的数据元素和一个或多个默认值28)。这由映射操作60示出,并且导致具有f映射数据集元素的压缩的f映射数据集62。将函数f应用于压缩数据集34中的元素是使用MPC技术由两个或更多个工作者节点2来执行的,从而没有个体工作者节点2获知压缩数据集54中数据元素52的值,或者将函数f应用于任何数据元素52(包括(一个或多个)默认值58)的结果。执行f映射操作60的工作者节点2可以与执行检查和/或压缩操作56的工作者节点2相同或不同。
在图3的示例中,f映射操作60将函数f应用于数据元素#2和#5。
在映射操作60之后,通过简化操作64使用运算符
Figure BDA0002641525060000111
来简化压缩的f映射数据集62。亦即,将f映射数据集62中的f映射数据元素(即,对应于不满足标准φ的数据元素52以及从一个或多个默认值58导出的f映射数据元素)使用关联运算符
Figure BDA0002641525060000112
进行组合以产生输出66。
简化操作64是使用MPC技术由两个或更多个工作者节点2来执行的,从而没有个体工作者节点2获知f映射数据元素的值或输出66。执行简化操作64的工作者节点2可以与执行检查、压缩操作56和/或f映射操作60的工作者节点2相同或不同。
在图4的示例中,使用运算符
Figure BDA0002641525060000113
将f映射数据元素#2和#5组合以形成输出66(注意,f映射的默认数据元素是运算符
Figure BDA0002641525060000114
的中性元素)。
应当注意,输出66是从数据元素52形成的,将函数f应用于数据元素52为运算符
Figure BDA0002641525060000115
提供了非中立的元素(通过标准φ的定义)。
下文参考特定的MPC框架描述了第一和第二实施例的更详细的实现方式。因此,在本文中所描述的技术提供了对秘密共享数据集执行“映射”操作。所述数据集中的数据元素是向量,从而整个数据集是其中元素为行的矩阵,在多个工作者节点2之间秘密共享(因此,输入节点已经预先与工作者节点2秘密共享数据集,或者数据集是先前多方计算的结果)。在第一实施例中,映射操作的结果是另一秘密共享数据集,给出为矩阵,所述矩阵包含将“映射”操作应用于数据集的结果;并且在第二实施例中,结果是秘密共享向量,其包含对数据集应用“映射-简化”运算的结果。
在本文中所描述的技术能够基于用于在多个工作者节点2之间执行多方计算的任何标准技术。为了实施所述技术,有必要能够利用加法和乘法的原语操作对给定环中的数字进行计算。在下文的描述中,作为本领域中的标准,将多方计算算法描述为常规算法,不同之处在于秘密共享值在括号之间,例如[x],并且如[x]·[y]的操作产生在实施给定操作的工作者节点2之间的密码协议。这样的框架的示例是本领域技术人员已知的基于Shamir秘密共享或SPDZ协议族的被动安全MPC。
四个更高级别的操作也可用于实施在本文中所描述的技术,以允许访问敏感索引处的数组元素。这些操作是:
-[i]←Ix(ix)返回“秘密索引”[i]:数组索引ix的表示为一个或多个秘密共享值;
-r←IxGet([M];[i])返回由秘密索引[i]指向的秘密共享矩阵[M]中的行;
-[M”]←IxSet([M];[M'];[i])返回矩阵[M]的秘密共享,其中,由秘密索引[i]指向的行由来自[M']的相应行代替;
-[i']←IxCondUpdate([i],[δ])在[δ]=0时返回指向相同索引的秘密索引,并且在[δ]=1时返回到下一索引。
基于现有MPC框架的实施这些操作的多种方式在本领域中是已知的,并且在本文中不提供进一步的细节。已经使用了对由Eindhoven University of Technology的S.DeHoogh在2012年的博士论文“Design of large scale applications of securemultiparty computation:secure linear programming”的向量索引技术的矩阵的直接调整,并且在下文的算法1中阐述。备选技术基于S.de Hoogh、B.Schoenmakers和M.Veeningen的“Universally Verifiable Outsourcing and Application to Linear Programming”,volume 13of Cryptology and Information Security Series,chapter 10.IOS Press,2015的秘密向量索引技术的调整。
Figure BDA0002641525060000121
过滤映射流程—以下部分涉及在以下算法2中所示的过滤映射流程,并且提供了上文第一实施例的具体实现方式。算法2以以下项目为论证:映射的函数f、简化函数g和指定何时能够使用简化函数g的述语/标准φ、φ不成立的数据元素的数量的上限N、以及包含能够应用f的某种默认值(但是不使用其结果)的向量z。
Figure BDA0002641525060000131
首先,计算向量[v],其针对[M]的每行在不满足φ时包含一,并且在满足φ时包含零(算法2的行3)。
接下来,给定矩阵[M]和向量[v],算法如下所述以全一标记[M]的行来构建矩阵[M']。首先,将矩阵[M']的每行初始化为[v](算法2的行5)。接下来,通过逐行通过[M]来填充[M']。每当[vi]=1时,通过更新算法2的行10中的秘密索引[j],[j]指向[M']的行号,其中,预期去往[M]的当前行。如果[vi]为零,则将矩阵[ΔM']设置为等于[M'],并且如果[vi]为1,则矩阵[ΔM']由[M]的第i行的N个副本组成(算法2的行8)。然后,将[ΔM']的第[j]行复制到矩阵[M'](算法2的行9)。注意,如果[vi]=0,则[M']不改变;否则,其第[j]行被设置为[M]的第i行,如预期发生的那样。
现在,将函数f应用于较小矩阵[M']的所有数据元素(算法2的行12),并且将函数g应用于[M]的所有元素(算法2的行13)。
最后,将f应用于[M']的结果与将g应用于[M]的结果合并。该算法遍历[N]的所有行,其中,如果[vi]=1,则秘密索引[j]保持跟踪应当将[N']的哪一行写入[N](算法2的行19)。从[N']中取回相应的行(算法2的行17);并且如果[vi]=1,则用该行覆写[N]的第i行;如果[vi]=0,则按原样保留该行(算法2的行18)。
过滤映射-简化流程—以下部分涉及以下算法3中示出的过滤映射-简化流程,并且提供了上述第二实施例的具体实现方式。算法3以以下项目为论证:映射的函数f、述语/标准φ、运算符
Figure BDA0002641525060000142
上限N、以及默认值z使得f(z)是
Figure BDA0002641525060000143
的中性元素。
Figure BDA0002641525060000141
算法3的第一步要检查φ并且获得压缩矩阵[M'](算法3的行2-10),与上述算法2相同。在这种情况下,将函数f应用于[M'](算法3的行12),但是无需将g应用于[M]。替代地,利用
Figure BDA0002641525060000144
对结果进行简化,并且返回结果(算法3的行14)。
下面列出了对以上实施例和算法的一些扩展:
获得上限—上文的算法假设对数据集中不满足述语φ的数据元素的数量具有上限N。在一些情况下,这样的上限可能已经可用并且预先定义。例如,在下文所呈现的案例研究中,将映射操作与数据集的聚合版本的公开内容相组合,能够从中确定上限。在其他情况下,上限可能不可用,但是揭示上限可能不被视为隐私问题。在这种情况下,在确定向量[v]之后,能够由工作者节点2将其总和∑[vi]打开,并且用作N的值。备选地,能够对总和进行舍入或扰动,以便不揭示其确切值。在其他情况下,可能上限是可用的,但是可能会被违反。在这样的情况下,能够计算∑[vi]并且将其与假定的上限进行比较,只是泄漏了该比较的结果。
仅在映射项目上执行g—在上述第一实施例中,g在数据集20中的所有数据元素22上执行,而应用g的结果仅用于满足φ的数据元素22。如果除了不满足φ的数据元素的数量的上限N之外,还存在不满足φ的数据元素的数量的下限(即,满足φ的项目的数量的上限),则能够仅在那些项目上计算g,以使压缩/解压缩操作26、42在计算上更加昂贵为代价。在g相对复杂的情况下,相对于计算数据集20中的每个数据元素22的g,这种方案能够减少总体计算负担。
逐块应用—对于大型数据集,替代将上述实施例/算法应用于整个数据集,将数据集划分为数据元素的较小的块并且将映射操作应用于这些较小的块可能会更有效。这是因为在上文所描述的压缩和解压缩操作中所使用的索引函数通常在未压缩和压缩数据集的大小上都线性地缩放。然而,将原始数据集划分为较小的块需要知道针对每个个体块的上限,与一个总的上限N相反。在这些上限出于其他原因尚未获知的情况下,这降低了隐私性。在这个意义上,提供逐块处理允许在速度与隐私之间进行折中(其中,块大小1表示前面提到的替代项,以揭示针对数据集中每个项的述语φ)。
灵活的应用—尽管根据上文所描述的第一实施例的技术避免了f的不必要的执行,但是这样做却以额外计算g、检查φ以及执行压缩和解压缩操为代价。因此,如果上限N不足够小,则上文所描述的技术不节省时间。例如,在下文所描述的情况下,该算法仅在十个数据元素中最多五个不满足φ时才节省时间。如果各种计算的执行时间是已知的,则基于上限N,能够灵活地决定是否执行常规的映射操作(即,将f应用于每个数据元素)或者过滤映射操作。如果这些执行时间事先是未知的,则能够在计算过程中对其进行测量。另外,如果上限N为零,则能够跳过压缩/解压缩流程。
图5中的流程图示出了根据在本文中所描述的技术将第一函数应用于第一数据集中的每个数据元素的方法。下文根据由多个工作者节点2在系统1中执行的操作描述了图5中的方法,将第一函数应用于数据集中的数据元素,其中,每个步骤由两个或更多工作者节点2作为多方计算来执行。然而,将意识到,下文所例示和描述的每个步骤也能够被理解为指代在多方计算中的个体工作者节点2的操作。
另外,将意识到,系统1中的任何特定工作者节点2可以参与或者执行图5中所示的步骤中的任何一个或多个步骤。因此,特定工作者节点2可以仅参与或者执行图5中的步骤之一,或者特定的工作者节点2可以参与或者执行图5中的任何两个或更多个(连续或非连续的)步骤,或者特定的工作者节点2可以参与或者执行图5中示出的所有步骤。
在该方法的开始处,存在被称为第一数据集的数据集,其包括多个数据元素。能够通过输入节点将数据集作为私有/秘密输入提供给系统1,或者所述数据集能够属于要参与该方法的工作者节点2之一,并且工作者节点2能够提供数据集作为对方法的输入,其他工作者节点2作为私有/秘密输入。在所述方法中,将被称为第一函数的函数f应用于数据集中的每个数据元素。针对为了有效提高将第一函数映射到第一数据集的性能的方法,第一函数应当在计算上相对昂贵以计算作为多方计算的部分,应当存在易于检查任何特定数据元素的标准,使得在为真的情况下,将第一函数应用于数据元素的结果等于将第二函数应用于数据元素的结果(其中,第二函数在计算上相对容易以计算作为MPC的部分),并且该标准应当针对大部分数据集成立。
在第一步骤(步骤101)中,确定第一数据集中的每个数据元素是否满足该标准。该检查是由多个工作者节点2作为MPC来执行的。如上所述,仅在(或者在并且仅在)将第一函数应用于数据元素的结果等于将第二函数应用于数据元素的结果的情况下,针对特定数据元素才满足标准。
在一些实施例中,能够确定第一数据集中不满足该标准的数据元素的数量是否超过第一阈值(在本文中也被称为上限)。如果在第一数据集中不满足该标准的数据元素的数量不超过第一阈值,则该方法能够进行该方法中的接下来的步骤,并且映射操作能够继续。然而,如果在第一数据集中不满足所述标准的数据元素的数量超过了第一阈值,则映射操作能够以常规方式进行(例如,通过将第一函数应用于数据集中的每个数据元素作为MPC的部分),或者该方法能够停止。能够将第一阈值设置为这样的值,该值使得图5的方法能够比将第一函数应用于数据集中所有数据元素的常规方法提供有用的性能增益。
接下来,在步骤103中,形成压缩数据集,所述压缩数据集包括第一数据集中不满足该标准的数据元素。该压缩是由多个工作者节点2作为MPC来执行的。因此,将第一函数应用于数据元素的结果与将第二函数应用于数据元素的结果不同的数据元素被压缩到压缩数据集中。
在一些实施例中,除了第一数据集中不满足该标准的数据元素之外,与默认值相对应的一个或多个数据元素还包含在压缩数据集中。具体地,如果不满足该标准的数据元素的数量小于上限(第一阈值),则能够在压缩数据集中包括与默认值相对应的一个或多个数据元素以使压缩数据集中的数据元素的数量设置为上限。
在一些实施例中,可以如上文所描述地确定第一阈值,并且能够在执行步骤101之前确定该第一阈值,但是在其他实施例中,能够基于第一数据集中不满足所述标准的数据元素的总数量来确定第一阈值。在这种情况下,为了避免向工作者节点2揭示第一数据集中不满足所述标准的数据元素的确切数量,能够将总数量进行舍入或扰动以生成第一阈值。
接下来,在已经形成压缩数据集之后,在步骤105中,将第一函数应用于压缩数据集中的每个数据元素。该映射步骤是由多个工作者节点2作为MPC来执行的。在压缩数据集包括一个或多个默认值的实施例中,步骤105包括将第一函数应用于第一数据集中不满足所述标准的数据元素中的每个数据元素,并且应用于对应于默认值的一个或多个数据元素中的每个数据元素。将意识到,在该步骤中执行计算的工作者节点2不知道哪些数据元素是来自第一数据集的数据元素,以及哪些数据元素是默认值。
最后,在步骤107中,基于将第一函数应用于压缩数据集中的数据元素的结果,形成映射的输出。再次地,形成输出是由多个工作者节点2作为MPC来执行的。
在一些实施例中(对应于上文所描述的过滤映射实施例),所述方法的输出将是第二数据集,其中,第二数据集的每个数据元素对应于将第一函数应用于第一数据集中的相应数据元素的结果。因此,在一些实施例中,所述方法还能够包括使用MPC技术将第二函数应用于第一数据集中的每个数据元素的步骤,并且能够在步骤107中根据步骤105的结果和将第二函数应用于第一数据集中的每个数据元素的结果来形成输出。
备选地,在一些实施例中,所述方法还能够包括以下步骤:使用MPC技术将第二函数应用于第一数据集中满足标准的每个数据元素,并且能够在步骤107中根据步骤105的结果和将第二函数应用于第一数据集中满足标准的数据元素的结果来形成输出。为了实施该步骤,能够执行第二压缩步骤,所述第二压缩步骤将满足标准的数据元素压缩为第二压缩数据集,并且能够将第二函数应用于第二压缩数据集。所述第二压缩数据集能够包括针对在步骤103中所形成的压缩数据集与如上文所描述的一个或多个默认值相对应的一个或多个数据元素。在这些实施例中,能够存在第二阈值,并且第二压缩数据集仅在确定第一数据集中满足标准的数据元素的数量不超过第二阈值的情况下,才可以形成。
在以上任一实施例中,能够形成所述第二数据集,从而所述第二数据集包括:与将第一函数应用于压缩数据集中在第一数据集中并且不满足所述标准的数据元素的结果相对应的数据元素,以及与将第二函数应用于第一数据集中满足标准的数据元素的结果相对应的数据元素。
在一些实施例中,对应于上文的过滤映射-简化实施例,步骤107中的方法的输出是将第一函数应用于压缩数据集中在第一数据集中并且不满足所述标准的数据元素的结果的组合。具体地,能够使用关联运算符(例如,加法)来形成结果的组合,其中,第一数据集中的数据元素满足标准意味着将第一函数或第二函数应用于数据元素的结果是针对关联运算符的中性元素(例如,零)。
如上所述,系统1中的任何工作者节点2都可以执行图5中所示的步骤中的任何一个或多个步骤,或者如上所述作为具有一个或多个其他工作者节点2的MPC的部分来执行。这样,特定的工作者节点2可以执行或者被配置或适于执行步骤101、103、105、107和上述步骤中的任何一个或多个步骤。
过滤映射-简化技术的示例性实现方式和评估—本节介绍了案例研究,该案例研究示出了上述技术如何提高映射操作(特别是映射-简化操作)的性能。案例研究涉及Kaplan-Meier生存分析。
Kaplan-Meier估计器是基于寿命数据的生存函数的估计(即,患者存活超过指定时间的概率)。在给定时间i处的估计概率pi表示为pi=∏j≤i(nj-dj)/nj,其中,nj是在时间j之前仍在研究中的患者的数量,并且dj是在时间j处的死亡的数量;该乘积在发生死亡的所有时间点之上(尽管应当注意的是,nj不仅因为死亡而减少,而且由于其他原因而退出研究的人们也有所减少)。
用于决定两个Kaplan-Meier估计是否在统计上不同的简单统计测试是所谓的Mantel-Haenzel对数秩测试。例如,这是由R的survdiff调用执行的测试(这是R软件环境的用于统计计算和图形(www.r-project.org)的“survdiff”命令)。给定值nj,1、nj,2、dj,1、dj,2在每个时间点t处的定义:
Figure BDA0002641525060000191
Figure BDA0002641525060000192
零假设,即:两条曲线表示相同的基础生存函数的假设,对应于
Figure BDA0002641525060000193
如果1–cdf(X)>α,则该零假设被拒绝(即,曲线是不同的),其中,cdf是
Figure BDA0002641525060000194
分布的累积密度函数,并且例如α=0.05。
应当注意,能够使用映射-简化运算来执行对该统计测试的计算。亦即,每个元组(nj,1、nj,2、dj,1、dj,2)都能够被映射到(Ej,1,Vi,dj,1),并且这些值是使用逐点的求和进行简化的以获得(∑Ej,1,∑Vi,∑dj,1);并且这些值被用于计算X。此外,应当注意,在易于建立标准φ:=(dj,1,dj,2)=(0,0)下,给出(Ej,1,Vi,dj,1)=(0;0;0)(逐点求和下的中性元素),因此满足了能够应用过滤映射-简化的条件。作为默认值,能够使用z=(nj,1,nj,2,dj,1,dj,2)=(1,1,0,0)。
匿名化生存图和上限
在Kaplan-Meier的情况下,每次的值nj和dj是非匿名数据。能够通过合并不同的时间点来匿名化该数据。具体地,将N个连续时间点(ni,di)i=1,…,N的块匿名化为一个时间点(n;d),其中,n=n1,d=∑di
该匿名化生存数据使得能够在上述φ不成立的时间点的数量上建立上限N。亦即,给定匿名化时间点(n,d),(n';d'),对应于(n;d)的块中的点的数量最多为n-n':在该时间间隔期间退出的人数。因此,每个块都具有上限,如上文所讨论地实现映射-简化算法的逐块应用。
现在介绍对Kaplan-Meier生存数据执行统计测试的详细信息。除了上文所讨论的基本MPC框架之外,还假设以下内容可用:
-函数[c]←Div([a],[b],L),在给定秘密共享的[a]和[b]的情况下,返回秘密共享的[c],使得a/b≈c·2-L,即,c是a=b的定点表示,具有L位精度。
根据上文所引用的D.Bogdanov、M.Niitsoo、T.Toft和J.Willemson的“Design oflarge scale applications of secure multiparty computation:secure linearprogramming”或者“High-performance secure multi-party computation for datamining applications”Int.J.Inf.Secur.,11(6):403-418,2012年11月,可以通过调整除法算法来获得这样的算法。按照惯例,[a]1、[a]2是表示由应用分别定义的精度为BITS_1和BITS_2的定点值的秘密共享。
-运算符[b]←[a]>>L,将秘密共享值a向右移L位,如上述两个参考文献所述。
-函数[fl]←eqz([x]),如果x=0,则设置fl=1,否则,设置fl=0。在上文的第一参考文献中描述了实现该函数的协议。
给定这些原语,就能够实施用于Kaplan-Meier测试的逐行运算,即,用于映射-简化运算的函数f,如下文的算法4所示。在下文的算法5中示出了评估φ的算法,即计算哪些行对测试没有贡献的函数。
Figure BDA0002641525060000201
Figure BDA0002641525060000202
在下文的算法6中示出了用于执行对数秩测试的总体算法。
Figure BDA0002641525060000211
首先,如上文所讨论的,计算匿名化生存数据(算法6的行1-5)。针对每个S大小的块,从第一时间点获取参与者的数量(算法6的行4),并且从所有时间点获取死亡的总数量(算法6的行5)。然后,针对每个块,计算事件的数量的上限(算法6的行7),并且应用FilteredMapReduce函数以获得这些时间点对整体测试统计的贡献(算法6的行9)。将该信息汇总在一起,并且从中计算出测试统计(算法6的行10-17)。
已经构建了以上系统的原型实现方式。已经为两方使用FRESCO SPDZ后端使用FRESCO(高效安全计算的框架,参见https://github.com/aicis/fresco)实例化多方计算框架。如上文所讨论的,该框架提供在本文中所描述的技术所需的MPC功能。关于如上文所讨论的Kaplan-Meier所需的额外MPC功能,来自“High-performance secure multi-partycomputation for data mining applications”的除法协议适用于在每次迭代之后执行右移,从而适用于较小的模数;对于右移和零测试,使用了由FRESCO提供的协议。使用常数BITS_1=23,常数BITS_1=30。
作为性能度量,使用了针对计算所需的预处理时间的估计。所使用的SPDZ协议在执行计算时会消耗在执行计算之前需要生成的特定预处理数据(尤其是所谓的乘法三元组和预共享的随机位)。利用最先进的工具,预处理的工作量要比计算本身的工作量大一个或多个数量级,因此,预处理工作量是对总体工作量的现实测量。为了估计预处理时间,跟踪在计算期间所需的预处理数据的量;并且将其乘以每个预处理项的成本,该成本是通过在常规膝上型上的一个虚拟机中模拟这两个预处理方而获得的。
图6中的图表图示了,根据在本文中所描述的技术,针对上限N的不同值,针对Kaplan-Meier案例研究的正常映射流程与过滤映射流程的性能。假设存在十个时间点的列表,其上限是可用的(例如,由于匿名化数据在十个时间点的组进行发布),该图表根据在本文中针对上限N的各个值所描述的技术将正常映射操作(显示在顶部)与过滤映射进行比较。能够看到,应用过滤器(即,使用φ确定哪些行对最终结果没有贡献)几乎不需要时间(由每行的第一部分所示)。然后,每一行从左到右示出了针对压缩操作所需的时间、将f映射到压缩列表所需的时间以及针对解压缩操作所需的时间,并且能够看到,针对每个操作所花费的时间随着上限的增加而线性地增加。
当上限N为6(图6中的底行)时,压缩和解压缩的开销变得如此之大,以至于将f直接映射到所有数据元素的速度更快。如果不需要解压缩,则针对上限N=6而不是上限N=7(图6中未示出),压缩和将f映射到压缩数据集仍然比较便宜(快速)。在代表性数据集上进行整体Kaplan-Meier计算的总体结果是在映射-简化操作上的时间减少了51%,这是整体计算的大部分。
因此,提供了用于将第一函数应用于数据集中的每个数据元素的改进技术,以解决常规技术中的一个或多个问题。通常,在许多情况下都需要进行多方计算,例如,在多个互不信任方希望对其的数据集进行联合分析的情况下。将映射操作应用于数据元素列表是许多分析算法中都会发生的一般概念。在本文中所描述的技术将与存在对其映射操作简单的(即,满足φ)大量“不重要”数据元素的数据集一起使用。Kaplan-Meier统计测试就是这样的一个示例,但是本领域技术人员将意识到能够应用在本文中所描述的技术的其他数据集/测试。
根据研究附图、公开内容和所附权利要求,本领域技术人员在实践本文描述的原理和技术时,能够理解和实现所公开的实施例的变型。在权利要求中,词语“包括”不排除其他元件或步骤,并且不定冠词“一”或“一个”不排除多个。单个处理器或其他单元可以实现权利要求中记载的若干项的功能。在互不相同的从属权利要求中记载某些措施的事实并不意味着不能有利地使用这些措施的组合。计算机程序可以存储在或分布在适当的介质上,例如与其他硬件一起提供或作为其部分提供的光学存储介质或固态介质,但是也可以以其他形式分布,诸如经由互联网或者其他有线或无线电信系统。权利要求中的任何附图标记都不应当被解释为限制范围。

Claims (57)

1.一种将第一函数应用于第一数据集中的每个数据元素的计算机实施的方法,所述方法包括:
(i)确定所述第一数据集中的每个数据元素是否满足标准,其中,所述标准仅在将所述第一函数应用于所述数据元素的结果等于将第二函数应用于所述数据元素的结果的情况下才满足;
(ii)形成包括所述第一数据集中不满足所述标准的所述数据元素的压缩数据集;
(iii)将所述第一函数应用于所述压缩数据集中的每个数据元素;并且
(iv)基于步骤(iii)的结果来形成输出;
其中,步骤(i)-(iv)是使用多方计算MPC技术来执行的。
2.根据权利要求1所述的计算机实施的方法,其中,所述标准在并且仅在将所述第一函数应用于所述数据元素的结果等于将所述第二函数应用于所述数据元素的结果的情况下才满足。
3.根据权利要求1或2所述的计算机实施的方法,其中,形成所述压缩数据集的步骤包括:根据所述第一数据集中不满足所述标准的所述数据元素以及与默认值相对应的一个或多个数据元素来形成所述压缩数据集。
4.根据权利要求3所述的计算机实施的方法,其中,将所述第一函数应用于所述压缩数据集中的每个数据元素的步骤包括:将所述第一函数应用于所述第一数据集中不满足所述标准的所述数据元素中的每个数据元素,并且将所述第一函数应用于与所述默认值相对应的所述一个或多个数据元素中的每个数据元素。
5.根据权利要求1-4中的任一项所述的计算机实施的方法,其中,所述方法还包括以下步骤:
确定所述第一数据集中不满足所述标准的数据元素的数量是否超过第一阈值;并且
在所述第一数据集中不满足所述标准的数据元素的所述数量不超过所述第一阈值的情况下执行步骤(ii)、(iii)和(iv)。
6.根据权利要求1或2所述的计算机实施的方法,其中,所述方法还包括以下步骤:
基于所述第一数据集中不满足所述标准的数据元素的所述数量来确定第一阈值。
7.根据权利要求5或6所述的计算机实施的方法,其中,所述压缩数据集包括等于所述第一阈值的总数量的数据元素。
8.根据权利要求1至7中的任一项所述的计算机实施的方法,其中,所述方法还包括以下步骤:
(v)使用MPC技术将所述第二函数应用于所述第一数据集中的每个数据元素;并且
其中,形成输出的步骤包括基于步骤(iii)和(v)的结果来形成输出。
9.根据权利要求8所述的计算机实施的方法,其中,基于步骤(iii)和(v)的结果来形成输出的步骤包括:
根据步骤(iii)和步骤(v)的结果来形成第二数据集,其中,所述第二数据集包括:与将所述第一函数应用于所述压缩数据集中在所述第一数据集中并且不满足所述标准的所述数据元素的结果相对应的数据元素,以及与将所述第二函数应用于所述第一数据集中满足所述标准的所述数据元素的结果相对应的数据元素。
10.根据权利要求9所述的计算机实施的方法,其中,所述第二数据集具有与所述第一数据集相同数量的数据元素。
11.根据权利要求8-10中的任一项所述的计算机实施的方法,其中,所述方法还包括:
在所述第一数据集中满足所述标准的数据元素的数量不超过第二阈值的情况下,使用MPC技术将所述第二函数应用于所述第一数据集中满足所述标准的每个数据元素。
12.根据权利要求1-7中的任一项所述的计算机实施的方法,其中,基于步骤(iii)的结果来形成输出的步骤包括:
通过使用关联运算符来组合将所述第一函数应用于所述压缩数据集中在所述第一数据集中并且不满足所述标准的所述数据元素的结果,来形成所述输出。
13.根据权利要求12所述的计算机实施的方法,其中,所述标准使得:所述标准仅在将所述第一函数应用于所述数据元素的结果和将所述第二函数应用于所述数据元素的结果是针对所述关联运算符的中性元素的情况下才满足。
14.根据权利要求1-13中的任一项所述的计算机实施的方法,其中,所述方法的所述步骤中的每个步骤是由多个工作者节点来执行的。
15.一种用于在根据权利要求1-14中的任一项所述的方法中使用的工作者节点。
16.一种用于将第一函数应用于第一数据集中的每个数据元素的系统,所述系统包括:
多个工作者节点,其中,所述多个工作者节点被配置为使用多方计算MPC技术用于:
确定所述第一数据集中的每个数据元素是否满足标准,其中,所述标准仅在将所述第一函数应用于所述数据元素的结果等于将第二函数应用于所述数据元素的结果的情况下才满足;
形成包括所述第一数据集中不满足所述标准的所述数据元素的压缩数据集;
将所述第一函数应用于所述压缩数据集中的每个数据元素;并且
基于将所述第一函数应用于所述压缩数据集中的每个数据元素的结果来形成输出。
17.根据权利要求16所述的系统,其中,所述标准在并且仅在将所述第一函数应用于所述数据元素的结果等于将所述第二函数应用于所述数据元素的结果的情况下才满足。
18.根据权利要求16或17所述的系统,其中,所述多个工作者节点被配置为:根据所述第一数据集中不满足所述标准的所述数据元素以及与默认值相对应的一个或多个数据元素来形成所述压缩数据集。
19.根据权利要求18所述的系统,其中,所述多个工作者节点被配置为:将所述第一函数应用于所述第一数据集中不满足所述标准的所述数据元素中的每个数据元素,并且将所述第一函数应用于与所述默认值相对应的所述一个或多个数据元素中的每个数据元素。
20.根据权利要求16-19中的任一项所述的系统,其中,所述多个工作者节点还被配置为:
确定所述第一数据集中不满足所述标准的数据元素的数量是否超过第一阈值;并且
在所述第一数据集中不满足所述标准的数据元素的所述数量不超过所述第一阈值的情况下执行:形成压缩数据集、应用所述第一函数以及形成输出。
21.根据权利要求16或17所述的系统,其中,所述多个工作者节点被配置为:
基于所述第一数据集中不满足所述标准的数据元素的所述数量来确定第一阈值。
22.根据权利要求20或21所述的系统,其中,所述压缩数据集包括等于所述第一阈值的数据元素的总数量。
23.根据权利要求16-22中的任一项所述的系统,其中,所述多个工作者节点还被配置为:
使用MPC技术将所述第二函数应用于所述第一数据集中的每个数据元素;并且
其中,所述多个工作者节点被配置为基于应用所述第一函数的结果和应用所述第二函数的结果来形成输出。
24.根据权利要求23所述的系统,其中,所述多个工作者节点被配置为通过以下操作基于应用所述第一函数的结果和应用所述第二函数的结果来形成输出:
根据应用所述第一函数的结果和应用所述第二函数的结果来形成第二数据集,其中,所述第二数据集包括:与将所述第一函数应用于所述压缩数据集中在所述第一数据集中并且不满足所述标准的所述数据元素的结果相对应的数据元素,以及与将所述第二函数应用于所述第一数据集中满足所述标准的所述数据元素的结果相对应的数据元素。
25.根据权利要求24所述的系统,其中,所述第二数据集具有与所述第一数据集相同数量的数据元素。
26.根据权利要求23-25中的任一项所述的系统,其中,所述多个工作者节点被配置为:
在所述第一数据集中满足所述标准的数据元素的数量不超过第二阈值的情况下,使用MPC技术将所述第二函数应用于所述第一数据集中满足所述标准的每个数据元素。
27.根据权利要求16-22中的任一项所述的系统,其中,所述多个工作者节点被配置为通过以下操作基于包括应用所述第一函数的结果来形成输出:
通过使用关联运算符来组合将所述第一函数应用于所述压缩数据集中在所述第一数据集中并且不满足所述标准的所述数据元素的结果,来形成所述输出。
28.根据权利要求27所述的系统,其中,所述标准使得:所述标准仅在将所述第一函数应用于所述数据元素的结果和将所述第二函数应用于所述数据元素的结果是针对所述关联运算符的中性元素的情况下才满足。
29.一种工作者节点,其被配置用于在根据权利要求16-28中的任一项所述的系统中使用。
30.一种在将第一函数应用于第一数据集中的每个数据元素中使用的工作者节点,其中,所述工作者节点被配置为与至少一个其他工作者节点一起使用一种或多种多方计算MPC技术用于:
确定所述第一数据集中的每个数据元素是否满足标准,其中,所述标准仅在将所述第一函数应用于所述数据元素的结果等于将第二函数应用于所述数据元素的结果的情况下才满足;
形成包括所述第一数据集中不满足所述标准的所述数据元素的压缩数据集;
将所述第一函数应用于所述压缩数据集中的每个数据元素;并且
基于将所述第一函数应用于所述压缩数据集中的每个数据元素的结果来形成输出。
31.根据权利要求30所述的工作者节点,其中,所述标准在并且仅在将所述第一函数应用于所述数据元素的结果等于将所述第二函数应用于所述数据元素的结果的情况下才满足。
32.根据权利要求30或31所述的工作者节点,其中,所述工作者节点被配置为:根据所述第一数据集中不满足所述标准的所述数据元素以及与默认值相对应的一个或多个数据元素来形成所述压缩数据集。
33.根据权利要求32所述的工作者节点,其中,所述工作者节点被配置为:将所述第一函数应用于所述第一数据集中不满足所述标准的所述数据元素中的每个数据元素,并且将所述第一函数应用于与所述默认值相对应的所述一个或多个数据元素中的每个数据元素。
34.根据权利要求30-33中的任一项所述的工作者节点,其中,所述工作者节点还被配置为:
确定所述第一数据集中不满足所述标准的数据元素的数量是否超过第一阈值;并且
在所述第一数据集中不满足所述标准的数据元素的所述数量不超过所述第一阈值的情况下执行:形成压缩数据集、应用所述第一函数以及形成输出。
35.根据权利要求30或31所述的工作者节点,其中,所述工作者节点被配置为:
基于所述第一数据集中不满足所述标准的数据元素的所述数量来确定第一阈值。
36.根据权利要求34或35所述的工作者节点,其中,所述压缩数据集包括等于所述第一阈值的数据元素的总数量。
37.根据权利要求30-36中的任一项所述的工作者节点,其中,所述工作者节点还被配置为:
使用MPC技术将所述第二函数应用于所述第一数据集中的每个数据元素;并且
其中,所述多个工作者节点被配置为基于应用所述第一函数的结果和应用所述第二函数的结果来形成输出。
38.根据权利要求37所述的工作者节点,其中,所述工作者节点被配置为通过以下操作基于应用所述第一函数的结果和应用所述第二函数的结果来形成输出:
根据应用所述第一函数的结果和应用所述第二函数的结果来形成第二数据集,其中,所述第二数据集包括:与将所述第一函数应用于所述压缩数据集中在所述第一数据集中并且不满足所述标准的所述数据元素的结果相对应的数据元素,以及与将所述第二函数应用于所述第一数据集中满足所述标准的所述数据元素的结果相对应的数据元素。
39.根据权利要求38所述的工作者节点,其中,所述第二数据集具有与所述第一数据集相同数量的数据元素。
40.根据权利要求37-39中的任一项所述的工作者节点,其中,所述工作者节点被配置为:
在所述第一数据集中满足所述标准的数据元素的数量不超过第二阈值的情况下,使用MPC技术将所述第二函数应用于所述第一数据集中满足所述标准的每个数据元素。
41.根据权利要求30-36中的任一项所述的工作者节点,其中,所述工作者节点被配置为通过以下操作基于包括应用所述第一函数的结果来形成输出:
通过使用关联运算符来组合将所述第一函数应用于所述压缩数据集中在所述第一数据集中并且不满足所述标准的所述数据元素的结果,来形成所述输出。
42.根据权利要求41所述的工作者节点,其中,所述标准使得:所述标准仅在将所述第一函数应用于所述数据元素的结果和将所述第二函数应用于所述数据元素的结果是针对所述关联运算符的中性元素的情况下才满足。
43.一种操作工作者节点以将第一函数应用于第一数据集中的每个数据元素的计算机实施的方法,所述方法包括:
(i)确定所述第一数据集中的每个数据元素是否满足标准,其中,所述标准仅在将所述第一函数应用于所述数据元素的结果等于将第二函数应用于所述数据元素的结果的情况下才满足;
(ii)形成包括所述第一数据集中不满足所述标准的所述数据元素的压缩数据集;
(iii)将所述第一函数应用于所述压缩数据集中的每个数据元素;并且
(iv)基于步骤(iii)的结果来形成输出;
其中,步骤(i)-(iv)是与一个或多个其他工作者节点一起使用多方计算MPC技术来执行的。
44.根据权利要求43所述的计算机实施的方法,其中,所述标准在并且仅在将所述第一函数应用于所述数据元素的结果等于将所述第二函数应用于所述数据元素的结果的情况下才满足。
45.根据权利要求43或44所述的计算机实施的方法,其中,形成所述压缩数据集的步骤包括:根据所述第一数据集中不满足所述标准的所述数据元素以及与默认值相对应的一个或多个数据元素来形成所述压缩数据集。
46.根据权利要求45所述的计算机实施的方法,其中,将所述第一函数应用于所述压缩数据集中的每个数据元素的步骤包括:将所述第一函数应用于所述第一数据集中不满足所述标准的所述数据元素中的每个数据元素,并且将所述第一函数应用于与所述默认值相对应的所述一个或多个数据元素中的每个数据元素。
47.根据权利要求43-46中的任一项所述的计算机实施的方法,其中,所述方法还包括以下步骤:
确定所述第一数据集中不满足所述标准的数据元素的数量是否超过第一阈值;并且
在所述第一数据集中不满足所述标准的数据元素的所述数量不超过所述第一阈值的情况下执行步骤(ii)、(iii)和(iv)。
48.根据权利要求43或44所述的计算机实施的方法,其中,所述方法还包括以下步骤:
基于所述第一数据集中不满足所述标准的数据元素的所述数量来确定第一阈值。
49.根据权利要求47或48所述的计算机实施的方法,其中,所述压缩数据集包括等于所述第一阈值的数据元素的总数量。
50.根据权利要求43-49中的任一项所述的计算机实施的方法,其中,所述方法还包括以下步骤:
(v)使用MPC技术将所述第二函数应用于所述第一数据集中的每个数据元素;并且
其中,形成输出的步骤包括基于步骤(iii)和(v)的结果来形成输出。
51.根据权利要求50所述的计算机实施的方法,其中,基于步骤(iii)和(v)的结果来形成输出的步骤包括:
根据步骤(iii)和步骤(v)的结果来形成第二数据集,其中,所述第二数据集包括:与将所述第一函数应用于所述压缩数据集中在所述第一数据集中并且不满足所述标准的所述数据元素的结果相对应的数据元素,以及与将所述第二函数应用于所述第一数据集中满足所述标准的所述数据元素的结果相对应的数据元素。
52.根据权利要求51所述的计算机实施的方法,其中,所述第二数据集具有与所述第一数据集相同数量的数据元素。
53.根据权利要求50-52中的任一项所述的计算机实施的方法,其中,所述方法还包括:
在所述第一数据集中满足所述标准的数据元素的数量不超过第二阈值的情况下,使用MPC技术将所述第二函数应用于所述第一数据集中满足所述标准的每个数据元素。
54.根据权利要求43-49中的任一项所述的计算机实施的方法,其中,基于步骤(iii)的结果来形成输出的步骤包括:
通过使用关联运算符来组合将所述第一函数应用于所述压缩数据集中在所述第一数据集中并且不满足所述标准的数据元素的结果,来形成所述输出。
55.根据权利要求54所述的计算机实施的方法,其中,所述标准使得:所述标准仅在将所述第一函数应用于所述数据元素的结果和将所述第二函数应用于所述数据元素的结果是针对所述关联运算符的中性元素的情况下才满足。
56.根据权利要求43-55中的任一项所述的计算机实施的方法,其中,所述方法的所述步骤中的每个步骤是由多个工作者节点来执行的。
57.一种计算机程序产品,包括在其中体现有计算机可读代码的计算机可读介质,所述计算机可读代码被配置为使得在由合适的计算机或处理器运行时,使所述计算机或处理器执行根据权利要求1-14和43-56中的任一项所述的方法。
CN201880089866.0A 2017-12-22 2018-12-13 将第一函数应用于数据集中的每个数据元素的计算机实施的方法以及实施该方法的工作者节点 Pending CN111771199A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201762609450P 2017-12-22 2017-12-22
US62/609,450 2017-12-22
PCT/EP2018/084654 WO2019121271A1 (en) 2017-12-22 2018-12-13 A computer-implemented method of applying a first function to each data element in a data set, and a worker node for implementing the same

Publications (1)

Publication Number Publication Date
CN111771199A true CN111771199A (zh) 2020-10-13

Family

ID=64899270

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880089866.0A Pending CN111771199A (zh) 2017-12-22 2018-12-13 将第一函数应用于数据集中的每个数据元素的计算机实施的方法以及实施该方法的工作者节点

Country Status (4)

Country Link
US (1) US11836273B2 (zh)
EP (1) EP3729317B1 (zh)
CN (1) CN111771199A (zh)
WO (1) WO2019121271A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11922210B2 (en) * 2017-12-05 2024-03-05 Koninklijke Philips N.V. Multiparty computation scheduling
EP3839922B1 (en) * 2018-08-13 2023-06-14 Nippon Telegraph And Telephone Corporation Secure joining system, method, secure computing apparatus and program
US20220360431A1 (en) * 2019-10-02 2022-11-10 Nippon Telegraph And Telephone Corporation Secret survival data processing system, secret survival data processing apparatus, secret survival data processing method, and program
CN113242123B (zh) * 2021-04-29 2023-03-17 龚健 一种共同用户数据获取方法和装置及服务器

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102611692A (zh) * 2011-01-14 2012-07-25 微软公司 多承租人数据中心中的安全计算
US20170076113A1 (en) * 2015-09-14 2017-03-16 Creme Software Limited System and method for secure analysis of datasets
US20170083384A1 (en) * 2015-09-21 2017-03-23 Capital One Services, LLC. Systems for parallel processing of datasets with dynamic skew compensation
CN106547811A (zh) * 2015-09-22 2017-03-29 国际商业机器公司 数据集的分布式合并
CN107103246A (zh) * 2016-02-22 2017-08-29 埃沙尔公司 使电路免受侧信道分析的方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5420132B2 (zh) 1974-02-14 1979-07-20
US10248915B2 (en) * 2008-03-07 2019-04-02 International Business Machines Corporation Risk profiling for enterprise risk management
CN103379114B (zh) * 2012-04-28 2016-12-14 国际商业机器公司 用于在MapReduce系统中保护隐私数据的方法和装置
US9384204B2 (en) * 2013-05-22 2016-07-05 Amazon Technologies, Inc. Efficient data compression and analysis as a service
WO2015166216A1 (en) * 2014-05-02 2015-11-05 Barclays Bank Plc Transaction authentication
US9143161B1 (en) 2014-04-25 2015-09-22 International Business Machines Corporation Field level compression in parallel data flows
JP6472766B2 (ja) * 2016-03-16 2019-02-20 株式会社東芝 乱数生成回路
US10859609B2 (en) * 2016-07-06 2020-12-08 Power Fingerprinting Inc. Methods and apparatuses for characteristic management with side-channel signature analysis
US10223547B2 (en) * 2016-10-11 2019-03-05 Palo Alto Research Center Incorporated Method for differentially private aggregation in a star topology under a realistic adversarial model
CA3082614A1 (en) * 2017-11-14 2019-05-23 Pii Guard Aps A computer-implemented method of performing format-preserving encryption of a data object of variable size

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102611692A (zh) * 2011-01-14 2012-07-25 微软公司 多承租人数据中心中的安全计算
US20170076113A1 (en) * 2015-09-14 2017-03-16 Creme Software Limited System and method for secure analysis of datasets
US20170083384A1 (en) * 2015-09-21 2017-03-23 Capital One Services, LLC. Systems for parallel processing of datasets with dynamic skew compensation
CN106547811A (zh) * 2015-09-22 2017-03-29 国际商业机器公司 数据集的分布式合并
CN107103246A (zh) * 2016-02-22 2017-08-29 埃沙尔公司 使电路免受侧信道分析的方法

Also Published As

Publication number Publication date
EP3729317A1 (en) 2020-10-28
US11836273B2 (en) 2023-12-05
EP3729317B1 (en) 2021-10-20
US20210004494A1 (en) 2021-01-07
WO2019121271A1 (en) 2019-06-27

Similar Documents

Publication Publication Date Title
CN111771199A (zh) 将第一函数应用于数据集中的每个数据元素的计算机实施的方法以及实施该方法的工作者节点
Kim et al. Secure and differentially private logistic regression for horizontally distributed data
CA3159667A1 (en) Systems and methods for encrypting data and algorithms
US11362829B2 (en) Distributed privacy-preserving verifiable computation
CN113761563B (zh) 数据交集计算方法、装置及电子设备
Yan et al. Chinese remainder theorem-based secret image sharing for (k, n) threshold
WO2019020830A1 (en) EVALUATION OF A MONITORING FUNCTION
van Egmond et al. Privacy-preserving dataset combination and Lasso regression for healthcare predictions
Li et al. Weighted pseudo‐almost periodic functions on time scales with applications to cellular neural networks with discrete delays
CN114186263A (zh) 一种基于纵向联邦学习的数据回归方法及电子装置
Aljably et al. Anomaly detection over differential preserved privacy in online social networks
Almutairi et al. Secure Third Party Data Clustering Using Data: Multi-User Order Preserving Encryption and Super Secure Chain Distance Matrices (Best Technical Paper)
EP3096308B1 (en) Element replication device, element replication method, and program
CN117057445A (zh) 基于联邦学习框架的模型优化方法、系统和装置
CN116401238A (zh) 偏离度监测方法、装置、设备、存储介质和程序产品
Kuzman Poletsky theory of discs in almost complex manifolds
EP3246900B1 (en) Matrix and key generation device, matrix and key generation system, matrix coupling device, matrix and key generation method, and program
Gao et al. Compressed sensing-based privacy preserving in labeled dynamic social networks
US11537742B2 (en) Sampling from a remote dataset with a private criterion
Wang et al. pCOVID: A Privacy-Preserving COVID-19 Inference Framework
Dogan Eigenvalue problems for nonlinear third‐order m‐point p‐Laplacian dynamic equations on time scales
EP3566423A1 (en) Verification of fixed-point arithmetic
Zhang et al. Secure Outsourcing Evaluation for Sparse Decision Trees
Campoy Regularity of Sets Under a Reformulation in a Product Space with Reduced Dimension
Wang Epidemic Spreading Models

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