CN117294425A - 数据处理的方法、系统以及计算设备 - Google Patents

数据处理的方法、系统以及计算设备 Download PDF

Info

Publication number
CN117294425A
CN117294425A CN202311068411.XA CN202311068411A CN117294425A CN 117294425 A CN117294425 A CN 117294425A CN 202311068411 A CN202311068411 A CN 202311068411A CN 117294425 A CN117294425 A CN 117294425A
Authority
CN
China
Prior art keywords
computing
participant
computing participant
data
intersection
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
CN202311068411.XA
Other languages
English (en)
Inventor
韩伟力
陈姝宇
李秉帅
邵云峰
叶飞
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.)
Fudan University
Huawei Cloud Computing Technologies Co Ltd
Original Assignee
Fudan University
Huawei Cloud Computing Technologies Co Ltd
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 Fudan University, Huawei Cloud Computing Technologies Co Ltd filed Critical Fudan University
Publication of CN117294425A publication Critical patent/CN117294425A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • 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
    • 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/50Oblivious transfer

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

一种数据处理的方法、系统以及计算设备,该方法包括:第一计算参与方和第二计算参与方分别获得第一密文数据;第二计算参与方从第一计算参与方处获得第一ID对应的第一特征值的份额;第一计算参与方获得第二数据,如果第一ID是交集ID,第二数据为第二计算参与方中第一ID对应的第二特征值的份额,如果第一ID不是交集ID,第二数据为随机数;如果第一密文数据指示第一ID为交集ID,第一计算参与方将其持有的第一特征值的份额以及第二数据作为神经网络的训练数据,第二计算参与方将其持有的第一特征值的份额与第二特征值的份额作为神经网络的训练数据。该方法能够提高多方计算的安全性。

Description

数据处理的方法、系统以及计算设备
本申请要求于2023年05月16日提交国家知识产权局、申请号为202310552730.1、发明名称为“隐匿ID的多方纵向联邦学习的方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及安全计算领域,并且更具体地,涉及一种数据处理的方法、系统以及计算设备。
背景技术
隐私集合求交(private set intersection,PSI)是一种安全多方计算协议,可以计算出多个参与方的数据集合的交集部分,而不暴露交集以外的任何数据集合信息。常用于如联合推荐、广告定向和纵向安全多方学习前的数据对齐等。比如在纵向安全多方学习前可以使用PSI技术完成在不暴露多个参与方的交集元素的情况下,求出每个参与方都共同持有的ID值。
在纵向安全多方学习之前,通过隐私集合求交(PSI)技术在不暴露多个计算参与方的交集元素的情况下,计算出多个计算参与方的数据集合的交集部分,并基于多个参与方的数据集合的交集部分对应的数据(特征值)进行AI模型的训练。相关的技术方案中,在基于PSI技术计算多个计算参与方持有数据中的ID交集的过程中,会暴露在交集中的ID明文,这样各个计算方就会知道有哪些ID在交集中,从而暴露了客户的ID隐私,安全性较差。
因此,如何提高多方计算的安全性,保护多个计算方的数据隐私成为亟需要解决的技术问题。
发明内容
本申请提供一种数据处理的方法、系统以及计算设备,该方法能够提高多方计算的安全性,保护多个计算方的数据隐私。
第一方面,提供了一种数据处理的方法,该方法包括:第一计算参与方和第二计算参与方分别获得第一密文数据,该第一密文数据用于指示该第一计算参与方的第一ID是否为交集ID,该交集ID表示该第一ID与该第二计算参与方的至少一个ID中的任一个ID相同;该第二计算参与方从该第一计算参与方处获得该第一ID对应的第一特征值的份额,该第一特征值的份额是该第一计算参与方将该第一特征值以秘密分享的方式在该第一计算参与方和该第二计算参与方之间分享,该第一计算参与方和该第二计算参与方各自获得的第一特征值的份额能够还原出该第一特征值;该第一计算参与方获得第二数据,其中,如果该第一ID是交集ID,该第二数据为该第二计算参与方中该第一ID对应的第二特征值的份额,如果该第一ID不是交集ID,该第二数据为随机数,该第二特征值的份额是该第二计算参与方将该第二特征值以秘密分享的方式在该第一计算参与方和该第二计算参与方之间分享,该第一计算参与方和该第二计算参与方各自获得的第二特征值的份额能够还原出该第二特征值;如果该第一密文数据指示该第一ID为交集ID,该第一计算参与方将其持有的第一特征值的份额以及该第二数据作为神经网络的训练数据;如果该第一密文数据指示该第一ID为交集ID,该第二计算参与方将其持有的第一特征值的份额与第二特征值的份额作为该神经网络的训练数据。
上述技术方案中,可以在不暴露客户ID隐私的前提下,基于在交集中的ID对应的数据(特征值)进行后续的AI模型训练,从而保护了客户的ID隐私,安全性较高,满足了纵向多方安全学习的数据预处理阶段所需的功能和隐私需求。
结合第一方面,在第一方面的某些实现方式中,该方法还包括:该第一计算参与方和该第二计算参与方分别对该第一密文数据进行恢复,得到第一数据;根据该第一数据确定该第一ID是否为该交集ID。
结合第一方面,在第一方面的某些实现方式中,该方法还包括:如果该第一计算参与方根据其获取的第一密文数据指示第一密文数据指示该第一ID不是交集ID,该第一计算参与方将其持有的该第一特征值的份额以及该第二数据删除;如果第二计算参与方根据其获取的第一密文数据指示第一ID不是交集ID,该第二计算参与方将其持有的该第一特征值的份额与该第二特征值的份额删除。
上述技术方案中,如果第一ID不是交集ID,那么与之对应的第二数据即为随机数,此处可以将该第二数据删除,这样使得只有是交集ID对应的特征值才可以参与神经网络模型的训练,避免了额外的开销,提高了模型训练的效率。
结合第一方面,在第一方面的某些实现方式中,该方法还包括:该第一计算参与方和该第二计算参与方根据多个哈希桶对应的多个密文数据,确定交集ID的数量是否大于预设阈值,该多个密文数据包括该第一密文数据;该第二计算参与方在该交集ID的数量大于该预设阈值的情况下,从该第一计算参与方处获得该第一ID对应的第一特征值的份额;该第一计算参与方在该交集ID的数量大于该预设阈值的情况下,获得第二数据。
上述技术方案中提供了阈值判断,如果交集中的元素个数很少,则终止后续的操作。避免数据不够多,训练出来的模型效果不理想,浪费训练成本。
结合第一方面,在第一方面的某些实现方式中,该方法还包括:第一计算参与方和该第二计算参与方分别随机打乱各自获取的多个密文数据的顺序。
结合第一方面,在第一方面的某些实现方式中,该第一计算参与方和该第二计算参与方之间通过可编程的不经意伪随机函数OPPRF或密钥交换DH分别获得第一密文数据。
结合第一方面,在第一方面的某些实现方式中,该第一计算参与方通过可编程的不经意伪随机函数OPPRF获得第二数据。
结合第一方面,在第一方面的某些实现方式中,该第一计算参与方的第一ID为该第一计算参与方在第一哈希桶中的ID,该第二计算参与方的至少一个ID为该第二计算参与方在该第一哈希桶中的至少一个ID,该第一密文数据为该第一哈希桶对应的密文数据,该第二数据为该第一哈希桶对应的第二数据。
第二方面,提供了一种数据处理的系统,该系统中包括第一计算参与方和第二计算参与方,其中,第一计算参与方和第二计算参与方分别用于获得第一密文数据,该第一密文数据用于指示该第一计算参与方的第一ID是否为交集ID,该交集ID表示该第一ID与该第二计算参与方的至少一个ID中的任一个ID相同;该第二计算参与方还用于从该第一计算参与方处获得该第一ID对应的第一特征值的份额,该第一特征值的份额是该第一计算参与方将该第一特征值以秘密分享的方式在该第一计算参与方和该第二计算参与方之间分享,该第一计算参与方和该第二计算参与方各自获得的第一特征值的份额能够还原出该第一特征值;该第一计算参与方还用于获得第二数据,其中,如果该第一ID是交集ID,该第二数据为该第二计算参与方中该第一ID对应的第二特征值的份额,如果该第一ID不是交集ID,该第二数据为随机数,该第二特征值的份额是该第二计算参与方将该第二特征值以秘密分享的方式在该第一计算参与方和该第二计算参与方之间分享,该第一计算参与方和该第二计算参与方各自获得的第二特征值的份额能够还原出该第二特征值;如果该第一密文数据指示该第一ID为交集ID,该第一计算参与方还用于将其持有的第一特征值的份额以及该第二数据作为神经网络的训练数据;如果该第一密文数据指示该第一ID为交集ID,该第二计算参与方还用于将其持有的第一特征值的份额与第二特征值的份额作为该神经网络的训练数据。
结合第二方面,在第二方面的某些实现方式中,该第一计算参与方和该第二计算参与方,还分别用于对该第一密文数据进行恢复,得到第一数据;该第一计算参与方和该第二计算参与方,还分别用于根据该第一数据确定该第一ID是否为该交集ID。
结合第二方面,在第二方面的某些实现方式中,如果该第一计算参与方根据其获取的第一密文数据指示第一密文数据指示该第一ID不是交集ID,该第一计算参与方还用于将其持有的该第一特征值的份额以及该第二数据删除;如果第二计算参与方根据其获取的第一密文数据指示第一ID不是交集ID,该第二计算参与方还用于将其持有的该第一特征值的份额与该第二特征值的份额删除。
结合第二方面,在第二方面的某些实现方式中,该第一计算参与方和该第二计算参与方,还用于根据多个哈希桶对应的多个密文数据,确定交集ID的数量是否大于预设阈值,该多个密文数据包括该第一密文数据;该第二计算参与方,具体用于在该交集ID的数量大于该预设阈值的情况下,从该第一计算参与方处获得该第一ID对应的第一特征值的份额;该第一计算参与方,具体用于在该交集ID的数量大于该预设阈值的情况下,获得第二数据。
结合第二方面,在第二方面的某些实现方式中,第一计算参与方和该第二计算参与方,还用于分别随机打乱各自获取的多个密文数据的顺序。
结合第二方面,在第二方面的某些实现方式中,该第一计算参与方和该第二计算参与方,具体用于通过可编程的不经意伪随机函数OPPRF或密钥交换DH分别获得第一密文数据。
结合第二方面,在第二方面的某些实现方式中,该第一计算参与方具体用于:通过可编程的不经意伪随机函数OPPRF获得第二数据。
结合第二方面,在第二方面的某些实现方式中,该第一计算参与方的第一ID为该第一计算参与方在第一哈希桶中的ID,该第二计算参与方的至少一个ID为该第二计算参与方在该第一哈希桶中的至少一个ID,该第一密文数据为该第一哈希桶对应的密文数据,该第二数据为该第一哈希桶对应的第二数据。
第三方面,提供了一种计算设备集群,包括至少一个计算设备,每个计算设备包括处理器和存储器;该至少一个计算设备的处理器用于执行该至少一个计算设备的存储器中存储的指令,以使得该计算设备集群执行第一方面或第一方面任意一种可能的实现方式中的方法。
可选地,该处理器可以是通用处理器,可以通过硬件来实现也可以通过软件来实现。当通过硬件实现时,该处理器可以是逻辑电路、集成电路等;当通过软件来实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现,该存储器可以集成在处理器中,可以位于该处理器之外,独立存在。
第四方面,提供了一种芯片,该芯片获取指令并执行该指令来实现上述第一方面以及第一方面的任意一种实现方式中的方法。
可选地,作为一种实现方式,该芯片包括处理器与数据接口,该处理器通过该数据接口读取存储器上存储的指令,执行上述第一方面以及第一方面的任意一种实现方式中的方法。
可选地,作为一种实现方式,该芯片还可以包括存储器,该存储器中存储有指令,该处理器用于执行该存储器上存储的指令,当该指令被执行时,该处理器用于执行第一方面以及第一方面中的任意一种实现方式中的方法。
第五方面,提供了一种包含指令的计算机程序产品,当该指令被计算设备集群运行时,使得该计算设备集群执行如上述第一方面以及第一方面的任意一种实现方式中的方法。
第六方面,提供了一种计算机可读存储介质,包括计算机程序指令,当该计算机程序指令由计算设备集群执行时,该计算设备集群执行如上述第一方面以及第一方面的任意一种实现方式中的方法。
作为示例,这些计算机可读存储包括但不限于如下的一个或者多个:只读存储器(read-only memory,ROM)、可编程ROM(programmable ROM,PROM)、可擦除的PROM(erasablePROM,EPROM)、Flash存储器、电EPROM(electrically EPROM,EEPROM)以及硬盘驱动器(harddrive)。
可选地,作为一种实现方式,上述存储介质具体可以是非易失性存储介质。
附图说明
图1是本申请实施例的计算参与方所持有的纵向分布的数据的示意图。
图2是本申请实施例提供的一种数据处理的方法的示意性流程图。
图3是本申请实施例提供的一种第一计算参与方、第二计算参与方分别对自己持有的数据中的ID集合执行哈希的结果示意图。
图4是本申请实施例提供的一种第一计算参与方和第二计算参与方通过OPPRF获得y的秘密分享值<y>的示意性框图。
图5是本申请实施例提供的一种第一计算参与方和第二计算参与方通过OPPRF获得<fs>的示意性框图。
图6是本申请实施例提供的一种数据选取的示意图。
图7是本申请实施例提供的另一种数据选取的示意图。
图8是本申请实施例提供的一种数据处理的系统800的示意性框图。
图9是本申请实施例提供的一种计算设备1500的架构示意图。
图10是本申请实施例提供的一种计算设备集群的架构示意图。
图11是本申请实施例提供的计算设备1500A和1500B之间通过网络进行连接的示意图。
图12是一种适用于本申请实施例的云场景的示意性框图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
本申请将围绕包括多个设备、组件、模块等的系统来呈现各个方面、实施例或特征。应当理解和明白的是,各个系统可以包括另外的设备、组件、模块等,并且/或者可以并不包括结合附图讨论的所有设备、组件、模块等。此外,还可以使用这些方案的组合。
另外,在本申请实施例中,“示例的”、“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用示例的一词旨在以具体方式呈现概念。
本申请实施例中,“相应的(corresponding,relevant)”和“对应的(corresponding)”有时可以混用,应当指出的是,在不强调其区别时,其所要表达的含义是一致的。
本申请实施例描述的业务场景是为了更加清楚地说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:包括单独存在A,同时存在A和B,以及单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
为了便于描述,下面先对本申请实施例涉及的相关概念进行详细描述。
1、神经网络
神经网络是一种模仿生物神经网络功能的计算机系统,通过对数据进行学习和训练来完成各种任务。它是一种由多个节点组成的计算模型,每个节点都模拟生物神经元的行为,能够接收和处理输入信号,并通过学习和调整权重来产生输出信号。
神经网络通常由多层节点组成,其中输入层接收外部数据输入,输出层生成最终的输出结果,中间的隐藏层则对输入进行处理和转换。在神经网络中,节点之间的连接具有不同的权重,这些权重可以通过训练和学习来调整以提高网络的准确性和性能。神经网络被广泛应用于各种领域,包括图像识别、语音识别、自然语言处理、自动驾驶、医学诊断和金融预测等。常见的神经网络架构包括前馈神经网络、卷积神经网络、循环神经网络和深度神经网络等。
2、安全多方学习(secure multi-party learning,SMPL)
安全多方学习是一种在不汇聚多方(不同组织或者用户)数据的情况下多方利用各自所有的数据协同训练AI模型的分布式机器学习范式。传统的机器学习范式需要汇聚大量的数据用于模型的训练,而用于训练的数据很有可能来自多个不同的组织或者用户。将多个不同组织或者不同用户的数据汇聚在一起,极有可能造成数据泄露的风险,对组织来说会暴露信息资产,对个人用户来说可能泄露个人隐私。
3、纵向安全多方学习(vertical secure multi-party learning,VSMPL)
纵向安全多方学习是指在多个参与方的数据是纵向分布的情况下,为了保护数据隐私的同时发挥数据价值,多个参与方使用安全多方计算技术联合自己持有的数据来完成AI模型的训练。在纵向多方学习中,参与方可能是不同的组织,如医院、银行或政府机构,这些组织通常会持有用户的ID值和其对应的多个特征值(feature),不同的参与方持有的feature不一样。而这些数据都是用户的敏感私有数据,因此将不同组织的纵向数据汇聚在一起进行AI模型的训练,会造成数据隐私泄露。为了解决纵向多方学习的隐私问题,纵向安全多方学习技术应运而生。纵向安全多方学习使用隐私集合求交技术对齐多个参与方的数据后,再使用秘密分享、混淆电路等安全多方计算技术共同训练AI模型。
4、可编程的不经意伪随机函数(oblivious programmable pseudorandomfunction,OPPRF)
可编程的不经意伪随机函数是一种密码学协议,其实现的功能是:有两个参与方,假设其中一个参与方是Alice,另一个参与方是Bob。Alice向OPPRF输入一个x,Bob向OPPRF输入很多对(xi,yi),经过OPPRF后,Alice会获得一个y。如果Alice的x等于Bob的某个xi,则y值为yi,否则y是一个随机数r。在整个OPPRF过程中,Alice和Bob都不能获得额外的信息,也即Bob不知道Alice输入的x,也不知道Alice获得的y值。Alice只拿到一串字符串y,根据y无法得知自己拿到的是随机数r还是yi,所以也不知道自己的x是否和Bob的某个xi相等。一般Alice被称作Receiver方,Bob被称作Sender方。
5、布谷鸟哈希(cuckoo hashing)
布谷鸟哈希是一种哈希表的实现方式,它可以解决哈希冲突的问题。在布谷鸟哈希中,每个元素有两个哈希函数,可以被分配到两个哈希表中的一个位置。如果第一个哈希表中的位置已经被占用,那么就将该元素放入另一个哈希表中对应的位置。如果另一个哈希表的对应位置也已经被占用,那么就将该元素挤出原来的位置,放到新的位置中。这个过程可能会反复多次,直到所有元素都能够被成功地放入哈希表中。因此对集合使用布谷鸟哈希,每个桶里只有一个集合中的元素,可能会有元素无法找到位置则被放入stash中。布谷鸟哈希的平均时间复杂度为常数级别,是一种非常高效的哈希表实现方式。
6、隐私集合求交(private set intersection,PSI)
隐私集合求交是一种安全多方计算协议,可以计算出多个参与方的数据集合的交集部分,而不暴露交集以外的任何数据集合信息。常用于如联合推荐、广告定向和纵向安全多方学习前的数据对齐等。比如在纵向安全多方学习前可以使用PSI技术完成在不暴露多个参与方的交集元素的情况下,求出每个参与方都共同持有的ID值。
PSI已发展了近20年,实现PSI的技术包括但不限于:密钥交换(diffie-hellman,DH)、不经意传输(oblivious transfer,OT)、不经意伪随机函数(oblivious pseudorandomfunction,OPRF)、可编程的不经意伪随机函数(OPPRF)、同态加密(homomorphicencryption,HE)等。刚开始的PSI方案可以完成求两个参与方的交集结果,但不暴露交集以外的信息。后续的PSI方案主要是在场景、功能、隐私、效率等方面的提升。在场景方面,有针对不平衡数据集的设计的PSI方案;在功能方面,出现了可以支持超过两方的多方PSI方案,以及支持使用交集中的key元素对应的关联value值进行计算的circuit-PSI方案;在隐私方面,出现了不暴露交集结果的PSI方案;在效率方面,提出了使用哈希降低计算量和通信量的方法。
7、秘密分享(secret sharing)
秘密分享是一种密码学概念,又称秘密拆分,用于将一个秘密值拆分成若干个份,以便在多个实体之间共享。每个实体得到秘密的一部分,称为份额或分片。根据被分割的方式,在收集到足够数量的份额后能恢复出原始的秘密值。
应理解,分割方式不同,形成了不同秘密分享技术,常见的有加法秘密分享(additive secret sharing,ASS)、布尔秘密分享(boolean secret sharing,BSS)等。
8、加法秘密分享(additive secret sharing,ASS)
加法秘密分享是秘密分享的一种实例,用于将一个秘密值拆分成多个份额,以便在多个参与方之间共享。在加法秘密分享中,原始秘密被表示为一个整数,并且可以通过将其拆分成多个部分来进行分享,只有在所有的分享都被重新组合时才能恢复出原始的秘密值。这种方法可以用于实现安全的多方计算,例如在保护个人隐私的情况下进行数据分析,或者在分布式计算中进行安全的计算
加法秘密分享的一种拆分方法为采用域上加法进行拆分。例如,有三份参与方,一个参与方持有的原始秘密值是10,在大小为16的环上拆分成3个部分,生成2个随机数分别为13和7,最终获得的分享值为13,7和6(=(10-13-6)mod16)。持有秘密值10的参与方将这三份分享中的两份发给其他两个参与方。其他两个参与方只持有一份分享,无法还原出原始的分享值。只有三个分享值加在一起才能还原出原始秘密值10(=(13+7+6)mod16)。
9、布尔秘密分享(boolean secret sharing,BSS)
布尔秘密分享是用异或生成秘密值的多个随机数,这些随机数互相异或获得的值就是原始的秘密值。例如,有三份参与方,一个参与方持有的原始秘密值是0b010,在大小为8的环上拆分成3个部分,生成2个随机数分别为0b110和0b011,最终获得的分享值为0b110,0b011和0b111(=0b010^0b110^0b011)。持有秘密值0b010的参与方将这三份分享中的两份发给其他两个参与方。其他两个参与方只持有一份分享,无法还原出原始的分享值。只有三个分享值一起异或,才能还原出原始秘密值0b010(=0b111^0b110^0b011)。
在纵向安全多方学习之前,通过隐私集合求交(PSI)技术在不暴露多个计算参与方的交集元素的情况下,计算出多个计算参与方的数据集合的交集部分,并基于多个参与方的数据集合的交集部分对应的数据(特征值)进行AI模型的训练。相关的技术方案中,在基于PSI技术计算多个计算参与方持有数据中的ID交集的过程中,会暴露在交集中的ID明文,这样各个计算方就会知道有哪些ID在交集中,从而暴露了客户的ID隐私,安全性较差。
有鉴于此,本申请实施例提供了一种数据处理的方法,可以在不暴露客户ID隐私的前提下,基于在交集中的ID对应的数据(特征值)进行后续的AI模型训练,从而保护了客户的ID隐私,安全性较高。
应理解,本申请实施例提供的方法所应用的场景是多个组织联合起来训练安全多方学习模型,且数据是纵向分布的情况下,完成AI模型训练的预处理过程。具体的,该场景可以包括但不限于:跨公司或者跨行业的数据联合建模的场景,对于具体的数据分布方式和参与方的数量不做任何要求。
举例说明,下面以金融行业与运营商联合建模的场景为例进行说明。比如多个金融行业用户(如银行,券商等)和运营商(如移动,电信,联通等)使用自己的用户数据进行联合建模从而提高金融行业模型(如信用分模型,信用卡用户违约模型等)准确度。如图1所示,这些不同组织所持有的数据是呈纵向分布的,每个组织有用户的ID值和特征值,不同组织ID值不完全相同且特征不一样。这些不同组织想要使用共同用户的特征数据(特征值)来训练一个预测该用户信用水平的评估模型。
图2是本申请实施例提供的一种数据处理的方法的示意性流程图,该方法应用于在AI模型训练之前对数据的预处理阶段,该方法可以包括步骤210-240,下面分别对步骤210-240进行详细描述。
步骤210:确定第一计算参与方和第二计算参与方的同一个编号的哈希桶中的ID元素之间是否有交集ID。
本申请实施例中,第一计算参与方和第二计算参与方分别将各自持有的用户数据中的ID映射到哈希桶中。
本申请对计算参与方的数量不做具体限定,只要大于一个计算参与方即可。图2中是以两个计算参与方(第一计算参与方和第二计算参与方)为例予以说明的。
本申请实施例中,每个计算参与方各自持有的用户数据可以包括多对(x,Feature),其中,x为ID,Feature为ID对应的特征值,该特征值可以是和该ID对应的一个特征值,或者也可以是和该ID对应的多个特征值,本申请实施例对此不做具体限定。
举例说明,银行的用户数据中的ID为账户的手机号,特征值为该ID对应的存取款信息;券商的用户数据中的ID为账户的手机号,特征值为该ID对应的证券交易信息;运营商的用户数据中的ID为账户的手机号,特征值为该ID对应的通话记录等。
本申请实施例中,假设第一计算参与方使用布谷鸟哈希算法将自己的用户数据中的ID映射到哈希桶中,第二计算参与方使用普通的哈希算法将自己的用户数据中的ID映射到哈希桶中。
需要说明的是,使用布谷鸟哈希算法的第一计算参与方也可以称为leader参与方,也即leader参与方使用布谷鸟哈希算法将自己的用户数据中的ID映射到哈希桶中,而其他不是leader参与方的,则使用普通的哈希算法将自己的用户数据中的ID映射到哈希桶中。
应理解,上述leader参与方是从至少两个计算参与方中随机选取的。为了便于描述,图2中以第一计算参与方为leader参与方为例进行描述的。
举例说明,如图3所示,对于第一计算参与方而言,由于第一计算参与方对自己的ID集合执行的是布谷鸟哈希,所以每个桶里只有一个ID元素。对于第二计算参与方而言,由于第二计算参与方对自己的ID集合执行的是普通哈希,所以每个桶里有多个ID元素。由于第一计算参与方和第二计算参与方使用的是相同的哈希函数,因此,如果两个计算参与方的用户数据中有相同的ID元素,则这些相同的ID元素会被哈希到同一个编号的哈希桶中。
应理解,本申请实施例对哈希桶的个数不做具体限定,图3中是以每个计算参与方的ID集合的数据量为n,并有n个哈希桶为例予以说明的。如果哪个计算参与方的ID集合的数据量不足n条,可以通过生成随机数来补齐。
本申请实施例中,可以针对第一计算参与方和第二计算参与方的同一个编号的哈希桶中的ID元素,确定第一计算参与方在该编号的哈希桶中的ID元素与第二计算参与方在该编号的哈希桶中的ID元素之间是否有交集。
为了便于描述,下面以编号为1的哈希桶(1号哈希桶)为例,确定第一计算参与方在1号哈希桶的ID元素与第二计算参与方在1号哈希桶的ID元素之间是否有交集。对于其他编号的哈希桶与1号哈希桶的执行过程相同,此处不再赘述。
作为示例,第一计算参与方和第二计算参与方可以分别获得y的秘密分享值(<y>),其中,y用于标志第一计算参与方在1号哈希桶的ID元素是交集ID,也即第二计算参与方在1号哈希桶的ID元素中是否有一个ID元素与第一计算参与方在1号哈希桶的ID元素相等。例如,如果y为1,那么可以说明第一计算参与方在1号哈希桶的ID元素与第二计算参与方在1号哈希桶的ID元素之间有交集,第一计算参与方在1号哈希桶的ID元素是交集ID。如果y为0,那么可以说明第一计算参与方在1号哈希桶的ID元素与第二计算参与方在1号哈希桶的ID元素之间没有交集,第一计算参与方在1号哈希桶的ID元素不是交集ID。
应理解,上述y的秘密分享值可以是y的一个份额或分片,各个计算参与方各自持有y的一个份额,该各个计算参与方各自持有的y的份额组合起来可以得到y。
一种可能的实现方式中,可以通过OPPRF协议来实现第一计算参与方和第二计算参与方分别获得y的秘密分享值(<y>)。作为示例,第一计算参与方和第二计算参与方可以通过OPPRF协议,基于云服务器的转发分别获得y的秘密分享值(<y>)。例如,图12为云场景的示意性框图,云服务器为图12所示的云数据中心的服务器。
图12中的云场景可以包括:云管理平台110、互联网120以及客户端130。云管理平台110用于管理提供多个云服务的基础设施。基础设施包括多个云数据中心,每个云数据中心中包括多个服务器,每个服务器中分别包括云服务资源,为租户提供相应的云服务。云管理平台110可以位于云数据中心,其可以提供访问接口(如界面或应用程序界面(application programinterface,API))。租户可操作客户端130远程接入访问接口在云管理平台110注册云账号和密码,并登录云管理平台110。云管理平台110对云账号和密码鉴权成功后,租户可进一步在云管理平台110付费选择并购买特定规格(处理器、内存、磁盘)的虚拟机。付费购买成功后,云管理平台110提供所购买的虚拟机的远程登录账号密码,客户端130可远程登录该虚拟机,在该虚拟机中安装并运行租户的应用。因此,租户可通过云管理平台110在云数据中心中创建、管理、登录和操作虚拟机。其中,虚拟机也可称为云服务器(elastic compute service,ECS)、弹性实例(不同的云服务提供商有不同的叫法)。
应理解,云服务的租户可以是个人、企业、学校、医院、行政机关等。
云管理平台110的功能包括但不限于用户控制台、计算管理服务、网络管理服务、存储管理服务、鉴权服务、镜像管理服务。用户控制台提供界面或API与租户交互,计算管理服务用于管理运行虚拟机和容器的服务器以及裸金属服务器,网络管理服务用于管理网络服务(如网关、防火墙等),存储管理服务用于管理存储服务(如数据桶服务),鉴权服务用于管理租户的账号密码,镜像管理服务用于管理虚拟机镜像。租户使用客户端130,通过互联网120可以登录云管理平台110,对租用的云服务进行管理。
下面对第一计算参与方和第二计算参与方之间通过OPPRF协议来分别获得y的秘密分享值(<y>)的一种具体实现方式详细描述。
举例说明,假设第一计算参与方在1号哈希桶中的ID元素为x0,第二计算参与方在1号哈希桶中的ID元素为x1,x2···xm。第一计算参与方将1号哈希桶中的x0作为输入信息输入至OPPRF,第二计算参与方将1号哈希桶中的多对(xi,yi)为输入信息输入至OPPRF,其中,同一个桶中的xi对应的yi都置为同一个随机数y*,即y1=y2=…ym=y*,第二计算参与方将自己设置的y*作为自己持有的y的秘密分享值<y>。如果x0是交集元素,即第二计算参与方在1号哈希桶的x1,x2···xm中有一个xi与x0相等,OPPRF向第一计算参与方输出的y的秘密分享值<y>为1的秘密分享值。如果x0不是交集元素,即第二计算参与方在1号哈希桶的x1,x2···xm中没有一个xi与x0相等,OPPRF向第一计算参与方输出的y的秘密分享值<y>为0的秘密分享值。
上述第一计算参与方和第二计算参与方各自持有的y的秘密分享值<y>组合起来可以得到y,y的取值要么是0,要么是1。
在一些实施例中,如果多方安全计算的场景中包括三个或三个以上的计算参与方,例如,包括第一计算参与方,第二计算参与方,第三计算参与方,第四计算参与方。第一计算参与方和第二计算参与方通过执行图4所示的过程,使得第一计算参与方得到y01的秘密分享值<y01>,同样的,第一计算参与方和第三计算参与方通过执行图4所示的过程,使得第一计算参与方得到y02的秘密分享值<y02>,第一计算参与方和第四计算参与方通过执行图4所示的过程,使得第一计算参与方得到y03的秘密分享值<y03>。第一计算参与方可以对获得的<y01>、<y02>、<y02>进行异或,并将异或的结果作为自己持有的y的秘密分享值<y>。
步骤220:对交集ID中的ID数量进行阈值判断。
本申请实施例中,经过步骤220中的ID求交集后,每个计算参与方会获得y的秘密分享值<y>,其标志着第一计算参与方中的x是否是交集元素,如果y为1,则x是交集元素;如果y为0,则x不是交集元素。
在步骤220中,假设有n个哈希桶,第一计算参与方将获得的n个哈希桶对应的n个y的秘密分享值<y>进行相加,该相加的结果即为交集ID中的ID数量。并对相加的结果进行阈值判断。如果相加的结果大于预设阈值,可以执行步骤230,如果相加的结果小于预设阈值,流程结束。
本申请实施例可以提供阈值判断,如果交集中的元素个数很少,则终止后续的操作。避免数据不够多,训练出来的模型效果不理想,浪费训练成本。
步骤230:第一计算参与方和第二计算参与方分别获得在交集中的ID对应的特征值feature的秘密分享值<fs>。
为了便于描述,下面以一个桶,例如编号为1的哈希桶(1号哈希桶)为例进行说明。
本申请实施例中,对于第一计算参与方而言,1号哈希桶里只有一个ID元素x0,因此第一计算参与方直接将x0对应的特征值秘密分享给第二计算参与方。也即第一计算参与方和第二计算参与方分别持有x0对应的特征值feature的秘密分享值<fs>。
本申请实施例中,对于第二计算参与方而言,1号哈希桶里有多个ID元素(x1,x2···xm),经过ID求交后,第二计算参与方也并不知道1号哈希桶中是否有交集ID,也不知道哪个ID元素是交集ID,因此并不知道自己究竟该分享哪个ID元素的特征值。
作为示例,如图5所示,第二计算参与方和第一计算参与方执行OPPRF,第一计算参与方将1号哈希桶中的x0作为输入信息输入至OPPRF,第二计算参与方将1号哈希桶中的多对(xi,yi)为输入信息输入至OPPRF,其中,同一个桶中的xi对应的yi都置为feature-r,feature为xi对应的特征值,同一个桶的不同元素的r值都一样。如果x0是交集元素,即第二计算参与方在1号哈希桶的x1,x2···xm中有一个xi与x0相等,OPPRF向第一计算参与方输出的<fs>为f10=fi-r,其中,fi为xi(xi=x0)对应的特征值。第二计算参与方持有的是r。如果x0不是交集元素,即第二计算参与方在1号哈希桶的x1,x2···xm中没有一个xi与x0相等,OPPRF向第一计算参与方输出的<fs>为没有意义的随机数。
在一些实施例中,如果多方安全计算的场景中包括三个或三个以上的计算参与方,例如,包括第一计算参与方,第二计算参与方,第三计算参与方,第四计算参与方。第一计算参与方还可以通过上述获得f20,f30,其中,f20为第三计算参与方向第一计算参与方分享的<fs>,f30为第四计算参与方向第一计算参与方分享的<fs>。第一计算参与方还可以将其获得的f10、f20、f30再分享给没有该份额的计算参与方,同时将自己的x0对应的特征值秘密分享给各个没有该份额的计算参与方。
具体的,第一计算参与方将x0对应的特征值秘密分享给第三计算参与方和第四计算参与方,将f10再分享给第三计算参与方和第四计算参与方,将f20再分享给第二计算参与方和第四计算参与方,将f30再分享给第二计算参与方和第三计算参与方。
步骤240:根据获得的多个y的取值,对多个<fs>进行数据筛选,得到用于模型训练的训练数据。
本申请实施例中,以n个哈希桶为例,各个计算参与方可以通过上述步骤获得n个<y>,以及与n个<y>分别对应的n个<fs>。通过对n个<y>进行恢复得到n个y,并根据y的取值对n个<fs>进行筛选。一个示例,由于取值为1的y用于表征第一计算参与方在某个哈希桶中的x为交集元素,与之对应的<fs>为包括每个参与方的x对应的特征值的秘密值,取值为0的y用于表征第一计算参与方在某个哈希桶中的x不是交集元素,与之对应的<fs>为没有意义的随机数。因此,可以保留取值为1的y对应的<fs>,删除取值为0的y对应的<fs>,并将保留的<fs>作为训练数据,用于后续的模型训练。
上述通过数据选取,使得只有交集中的秘密分享数据用于后续的模型训练,避免了额外开销。
可选的,在一些实施例中,在步骤240之前,还可以打乱获得的n个<y>的顺序,例如,可以通过安全多方随机打乱(secure shuffle)打乱获得的n个<y>的顺序。
举例说明,如图6所示,有两个步骤,第一步是生成选取池,第二步是获得训练数据。第一步的选取池是有多个one-hot向量的秘密分享值。one-hot向量是第一计算参与方的交集ID对应的下标位置为1,其他位置为0。因此one-hot向量个数和交集ID的个数相同,每个one-hot向量代表了选取某一条合并之后的数据。第二部获得训练数据,是使用one-hot向量和合并数据进行安全多方的点积运算,需要选取多少个训练数据,则随机在选取池里取相应个数的one-hot向量。
具体的,如图7所示,首先是将ID求交获得的y列表看成一个向量,记录<ys>。将<ys>经过安全多方打乱顺序为<ys_shuffle>,即各个参与方不知道打乱前后的映射关系。再将打乱后的向量<ys_shuffle>恢复成明文。根据1所在的位置,生成明文的one-hot向量池。但是这个one-hot向量池中的one-hot向量的1所在的位置并不是交集元素的真正位置,而是被打乱之后的位置。因此最后再使用安全多方打乱还原得到交集真正的one-hot向量的秘密分享值。
本申请实施例中,满足了纵向多方安全学习的数据预处理阶段所需的功能和隐私需求,并设计了相关的密码学协议完成数据预处理阶段所需的功能和隐私需求。
上文结合图1至图7,详细描述了本申请实施例提供的方法,下面将结合图8-图11,详细描述本申请的系统实施例。应理解,方法实施例的描述与系统实施例的描述相互对应,因此,未详细描述的部分可以参见前面方法实施例。
图8是本申请实施例提供的一种数据处理的系统800的示意性框图。该系统800可以通过软件、硬件或者两者的结合实现。本申请实施例提供的系统800可以实现本申请实施例所示的方法流程,该系统800包括:第一计算参与方810和第二计算参与方820,其中,第一计算参与方810和第二计算参与方820分别用于获得第一密文数据,该第一密文数据用于指示该第一计算参与方810在该第一ID是否为交集ID,该交集ID表示该第一ID与该第二计算参与方820的至少一个ID中的任一个ID相同;该第二计算参与方820还用于从该第一计算参与方810处获得该第一ID对应的第一特征值的份额,该第一特征值的份额是该第一计算参与方将该第一特征值以秘密分享的方式在该第一计算参与方810和该第二计算参与方820之间分享,该第一计算参与方810和该第二计算参与方820各自获得的第一特征值的份额能够还原出该第一特征值;该第一计算参与方810还用于获得该第二数据,其中,如果该第一ID是交集ID,该第二数据为该第二计算参与方820中该第一ID对应的第二特征值的份额,如果该第一ID不是交集ID,该第二数据为随机数,该第二特征值的份额是该第二计算参与方820将该第二特征值以秘密分享的方式在该第一计算参与方810和该第二计算参与方820之间分享,该第一计算参与方810和该第二计算参与方820各自获得的第二特征值的份额能够还原出该第二特征值;如果该第一密文数据指示该第一ID为交集ID,该第一计算参与方810还用于将其持有的第一特征值的份额以及该第二数据作为神经网络的训练数据;如果该第一密文数据指示该第一ID为交集ID,该第二计算参与方820还用于将其持有的第一特征值的份额与第二特征值的份额作为该神经网络的训练数据。
可选的,该第一计算参与方810和该第二计算参与方820,还分别用于对该第一密文数据进行恢复,得到第一数据;该第一计算参与方810和该第二计算参与方820,还分别用于根据该第一数据确定该第一ID是否为该交集ID。
可选的,如果该第一计算参与方810根据其获取的第一密文数据指示该第一ID不是交集ID,该第一计算参与方810还用于将其持有的该第一特征值的份额以及该第二数据删除;如果第二计算参与方820根据其获取的第一密文数据指示该第一ID不是交集ID,该第二计算参与方820还用于将其持有的该第一特征值的份额与该第二特征值的份额删除。
可选的,该第一计算参与方810和该第二计算参与方820,还用于根据多个哈希桶对应的多个密文数据,确定交集ID的数量是否大于预设阈值,该多个密文数据包括该第一密文数据;该第二计算参与方820具体用于在该交集ID的数量大于该预设阈值的情况下,从该第一计算参与方处获得该第一ID对应的第一特征值的份额;该第一计算参与方810具体用于在该交集ID的数量大于该预设阈值的情况下,获得与该第二数据。
可选的,第一计算参与方810和该第二计算参与方820,还用于分别随机打乱各自获取的多个密文数据的顺序。
可选的,该第一计算参与方810和该第二计算参与方820,具体用于通过可编程的不经意伪随机函数OPPRF或密钥交换DH分别获得第一密文数据。
可选的,该第一计算参与方810具体用于:通过可编程的不经意伪随机函数OPPRF获得第二数据。
这里的系统800可以以功能模块的形式体现。这里的术语“模块”可以通过软件和/或硬件形式实现,对此不作具体限定。
例如,“第一计算参与方”可以是实现上述功能的软件程序、硬件电路或二者结合。示例性的,接下来以第一计算参与方为例,介绍第一计算参与方的实现方式。类似的,其他模块,例如第二计算参与方的实现方式可以参考第一计算参与方的实现方式。
第一计算参与方作为软件功能单元的一种举例,第一计算参与方可以包括运行在计算实例上的代码。其中,计算实例可以包括物理主机(计算设备)、虚拟机、容器中的至少一种。进一步地,上述计算实例可以是一台或者多台。例如,第一计算参与方可以包括运行在多个主机/虚拟机/容器上的代码。需要说明的是,用于运行该代码的多个主机/虚拟机/容器可以分布在相同的区域(region)中,也可以分布在不同的region中。进一步地,用于运行该代码的多个主机/虚拟机/容器可以分布在相同的可用区(availability zone,AZ)中,也可以分布在不同的AZ中,每个AZ包括一个数据中心或多个地理位置相近的数据中心。其中,通常一个region可以包括多个AZ。
同样,用于运行该代码的多个主机/虚拟机/容器可以分布在同一个虚拟私有云(virtual private cloud,VPC)中,也可以分布在多个VPC中。其中,通常一个VPC设置在一个region内,同一region内两个VPC之间,以及不同region的VPC之间跨区通信需在每个VPC内设置通信网关,经通信网关实现VPC之间的互连。
第一计算参与方作为硬件功能单元的一种举例,第一计算参与方可以包括至少一个计算设备,如服务器等。或者,第一计算参与方也可以是利用专用集成电路(application-specific integrated circuit,ASIC)实现、或可编程逻辑器件(programmable logic device,PLD)实现的设备等。其中,上述PLD可以是复杂程序逻辑器件(complex programmable logical device,CPLD)、现场可编程门阵列(field-programmable gate array,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合实现。
第一计算参与方包括的多个计算设备可以分布在相同的region中,也可以分布在不同的region中。第一计算参与方包括的多个计算设备可以分布在相同的AZ中,也可以分布在不同的AZ中。同样,第一计算参与方包括的多个计算设备可以分布在同一个VPC中,也可以分布在多个VPC中。其中,所述多个计算设备可以是服务器、ASIC、PLD、CPLD、FPGA和GAL等计算设备的任意组合。
因此,在本申请的实施例中描述的各示例的模块,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
另外,上述实施例提供的系统实施例与方法实施例属于同一构思,其具体实现过程详见上文中的方法实施例,这里不再赘述。
本申请实施例提供的方法可以由计算设备执行,该计算设备也可以被称为计算机系统。包括硬件层、运行在硬件层之上的操作系统层,以及运行在操作系统层上的应用层。该硬件层包括处理单元、内存和内存控制单元等硬件,随后对该硬件的功能和结构进行详细说明。该操作系统是任意一种或多种通过进程(process)实现业务处理的计算机操作系统,例如,Linux操作系统、Unix操作系统、Android操作系统、iOS操作系统或windows操作系统等。该应用层包含浏览器、通讯录、文字处理软件、即时通信软件等应用程序。并且,可选地,该计算机系统是智能手机等手持设备,或个人计算机等终端设备,本申请并未特别限定,只要能够通过本申请实施例提供的方法即可。本申请实施例提供的方法的执行主体可以是计算设备,或者,是计算设备中能够调用程序并执行程序的功能模块。
下面结合图9,对本申请实施例提供的一种计算设备进行详细描述。
图9是本申请实施例提供的一种计算设备1500的架构示意图。该计算设备1500可以是服务器或者计算机或者其他具有计算能力的设备。图9所示的计算设备1500包括:至少一个处理器1510和存储器1520。
应理解,本申请不限定计算设备1500中的处理器、存储器的个数。
处理器1510执行存储器1520中的指令,使得计算设备1500实现本申请提供的方法。或者,处理器1510执行存储器1520中的指令,使得计算设备1500实现本申请提供的各功能模块,从而实现本申请提供的方法。
可选地,计算设备1500还包括通信接口1530。通信接口1530使用例如但不限于网络接口卡、收发器一类的收发模块,来实现计算设备1500与其他设备或通信网络之间的通信。
可选地,计算设备1500还包括系统总线1540,其中,处理器1510、存储器1520和通信接口1530分别与系统总线1540连接。处理器1510能够通过系统总线1540访问存储器1520,例如,处理器1510能够通过系统总线1540在存储器1520中进行数据读写或代码执行。该系统总线1540是快捷外设部件互连标准(peripheral component interconnectexpress,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。所述系统总线1540分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
一种可能的实现方式,处理器1510的功能主要是解释计算机程序的指令(或者说,代码)以及处理计算机软件中的数据。其中,该计算机程序的指令以及计算机软件中的数据能够保存在存储器1520或者缓存1516中。
可选地,处理器1510可能是集成电路芯片,具有信号的处理能力。作为示例而非限定,处理器1510是通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(fieldprogrammable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。其中,通用处理器是微处理器等。例如,该处理器1510是中央处理单元(central processing unit,CPU)。
可选地,每个处理器1510包括至少一个处理单元1512和内存控制单元1514。
可选地,处理单元1512也称为核心(core)或内核,是处理器最重要的组成部分。处理单元1512是由单晶硅以一定的生产工艺制造出来的,处理器所有的计算、接受命令、存储命令、处理数据都由核心执行。处理单元分别独立地运行程序指令,利用并行计算的能力加快程序的运行速度。各种处理单元都具有固定的逻辑结构,例如,处理单元包括例如,一级缓存、二级缓存、执行单元、指令级单元和总线接口等逻辑单元。
一种实现举例,内存控制单元1514用于控制存储器1520与处理单元1512之间的数据交互。具体地说,内存控制单元1514从处理单元1512接收内存访问请求,并基于该内存访问请求控制针对内存的访问。作为示例而非限定,内存控制单元是内存管理单元(memorymanagement unit,MMU)等器件。
一种实现举例,各内存控制单元1514通过系统总线进行针对存储器1520的寻址。并且在系统总线中配置仲裁器(图9中未示出),该仲裁器负责处理和协调多个处理单元1512的竞争访问。
一种实现举例,处理单元1512和内存控制单元1514通过芯片内部的连接线,例如地址线,通信连接,从而实现处理单元1512和内存控制单元1514之间的通信。
可选地,每个处理器1510还包括缓存1516,其中,缓存是数据交换的缓冲区(称作cache)。当处理单元1512要读取数据时,会首先从缓存中查找需要的数据,如果找到了则直接执行,找不到的话则从存储器中找。由于缓存的运行速度比存储器快得多,故缓存的作用就是帮助处理单元1512更快地运行。
存储器1520能够为计算设备1500中的进程提供运行空间,例如,存储器1520中保存用于生成进程的计算机程序(具体地说,是程序的代码)。计算机程序被处理器运行而生成进程后,处理器在存储器1520中为该进程分配对应的存储空间。进一步的,上述存储空间进一步包括文本段、初始化数据段、位初始化数据段、栈段、堆段等等。存储器1520在上述进程对应的存储空间中保存进程运行期间产生的数据,例如,中间数据,或过程数据等等。
可选地,存储器也称为内存,其作用是用于暂时存放处理器1510中的运算数据,以及与硬盘等外部存储器交换的数据。只要计算机在运行中,处理器1510就会把需要运算的数据调到内存中进行运算,当运算完成后处理单元1512再将结果传送出来。
作为示例而非限定,存储器1520是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasablePROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(doubledata rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DRRAM)。应注意,本文描述的系统和方法的存储器1520旨在包括但不限于这些和任意其它适合类型的存储器。
以上列举的计算设备1500的结构仅为示例性说明,本申请并未限定于此,本申请实施例的计算设备1500包括现有技术中计算机系统中的各种硬件,例如,计算设备1500还包括除存储器1520以外的其他存储器,例如,磁盘存储器等。本领域的技术人员应当理解,计算设备1500还可以包括实现正常运行所必须的其他器件。同时,根据具体需要,本领域的技术人员应当理解,上述计算设备1500还可包括实现其他附加功能的硬件器件。此外,本领域的技术人员应当理解,上述计算设备1500也可仅仅包括实现本申请实施例所必须的器件,而不必包括图9中所示的全部器件。
本申请实施例还提供了一种计算设备集群。该计算设备集群包括至少一台计算设备。该计算设备可以是服务器。在一些实施例中,计算设备也可以是台式机、笔记本电脑或者智能手机等终端设备。
如图10所示,所述计算设备集群包括至少一个计算设备1500。计算设备集群中的一个或多个计算设备1500中的存储器1520中可以存有相同的用于执行上述方法的指令。
在一些可能的实现方式中,该计算设备集群中的一个或多个计算设备1500中的存储器1520也可以分别存有用于执行上述方法的部分指令。换言之,一个或多个计算设备1500的组合可以共同执行上述方法的指令。
需要说明的是,计算设备集群中的不同的计算设备1500中的存储器1520可以存储不同的指令,分别用于执行上述计算参与方的部分功能。也即,不同的计算设备1500中的存储器1520存储的指令可以实现将上述计算参与方中的一个或多个功能。
在一些可能的实现方式中,计算设备集群中的一个或多个计算设备可以通过网络连接。其中,所述网络可以是广域网或局域网等等。图10示出了一种可能的实现方式。如图10所示,两个计算设备1500A和1500B之间通过网络进行连接。具体地,通过各个计算设备中的通信接口与所述网络进行连接。
应理解,图10中示出的计算设备1500A的功能也可以由多个计算设备1500完成。同样,计算设备1500B的功能也可以由多个计算设备1500完成。
本实施例中,还提供了一种包含指令的计算机程序产品,所述计算机程序产品可以是包含指令的,能够运行在计算设备上或被储存在任何可用介质中的软件或程序产品。当其在计算设备上运行时,使得计算设备执行上述所提供的方法,或者使得该计算设备实现上述提供的系统的功能。
本实施例中,还提供了一种计算机可读存储介质,计算机可读存储介质可以是计算设备能够存储的任何可用介质或者是包含一个或多个可用介质的数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘)等。该计算机可读存储介质包括指令,当计算机可读存储介质中的指令在计算设备上被执行时,使得计算设备执行上述所提供的方法。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (19)

1.一种数据处理的方法,其特征在于,所述方法包括:
第一计算参与方和第二计算参与方分别获得第一密文数据,所述第一密文数据用于指示所述第一计算参与方的第一ID是否为交集ID,所述交集ID表示所述第一ID与所述第二计算参与方的至少一个ID中的任一个ID相同;
所述第二计算参与方从所述第一计算参与方处获得所述第一ID对应的第一特征值的份额,所述第一特征值的份额是所述第一计算参与方将所述第一特征值以秘密分享的方式在所述第一计算参与方和所述第二计算参与方之间分享,所述第一计算参与方和所述第二计算参与方各自获得的第一特征值的份额能够还原出所述第一特征值;
所述第一计算参与方获得第二数据,其中,如果所述第一ID是交集ID,所述第二数据为所述第二计算参与方中所述第一ID对应的第二特征值的份额,如果所述第一ID不是交集ID,所述第二数据为随机数,所述第二特征值的份额是所述第二计算参与方将所述第二特征值以秘密分享的方式在所述第一计算参与方和所述第二计算参与方之间分享,所述第一计算参与方和所述第二计算参与方各自获得的第二特征值的份额能够还原出所述第二特征值;
如果所述第一密文数据指示所述第一ID为交集ID,所述第一计算参与方将其持有的第一特征值的份额以及所述第二数据作为神经网络的训练数据;
如果所述第一密文数据指示所述第一ID为交集ID,所述第二计算参与方将其持有的第一特征值的份额与第二特征值的份额作为所述神经网络的训练数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一计算参与方和所述第二计算参与方分别对所述第一密文数据进行恢复,得到第一数据;
根据所述第一数据确定所述第一ID是否为所述交集ID。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
如果所述第一计算参与方根据其获取的第一密文数据指示所述第一ID不是交集ID,所述第一计算参与方将其持有的所述第一特征值的份额以及所述第二数据删除;
如果所述第二计算参与方根据其获取的第一密文数据指示所述第一ID不是交集ID,所述第二计算参与方将其持有的所述第一特征值的份额与所述第二特征值的份额删除。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:
所述第一计算参与方和所述第二计算参与方根据多个哈希桶对应的多个密文数据,确定交集ID的数量是否大于预设阈值,所述多个密文数据包括所述第一密文数据;
所述第二计算参与方从所述第一计算参与方获得所述第一ID对应的第一特征值的份额,包括:
所述第二计算参与方在所述交集ID的数量大于所述预设阈值的情况下,从所述第一计算参与方处获得所述第一ID对应的第一特征值的份额;
所述第一计算参与方获得第二数据,包括:
所述第一计算参与方在所述交集ID的数量大于所述预设阈值的情况下,获得所述第二数据。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
所述第一计算参与方和所述第二计算参与方分别随机打乱各自获取的多个密文数据的顺序。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述第一计算参与方和第二计算参与方分别获得第一密文数据,包括:
所述第一计算参与方和所述第二计算参与方之间通过可编程的不经意伪随机函数OPPRF或密钥交换DH分别获得所述第一密文数据。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述第一计算参与方获得第二数据,包括:
所述第一计算参与方通过可编程的不经意伪随机函数OPPRF获得所述第二数据。
8.根据权利要求1至7中任一项所述的方法,其特征在于,所述第一计算参与方的第一ID为所述第一计算参与方在第一哈希桶中的ID,所述第二计算参与方的至少一个ID为所述第二计算参与方在所述第一哈希桶中的至少一个ID,所述第一密文数据为所述第一哈希桶对应的密文数据,所述第二数据为所述第一哈希桶对应的第二数据。
9.一种数据处理的系统,其特征在于,所述系统包括:
第一计算参与方和第二计算参与方,分别用于获得第一密文数据,所述第一密文数据用于指示所述第一计算参与方的第一ID是否为交集ID,所述交集ID表示所述第一ID与所述第二计算参与方的至少一个ID中的任一个ID相同;
所述第二计算参与方,还用于从所述第一计算参与方处获得所述第一ID对应的第一特征值的份额,所述第一特征值的份额是所述第一计算参与方将所述第一特征值以秘密分享的方式在所述第一计算参与方和所述第二计算参与方之间分享,所述第一计算参与方和所述第二计算参与方各自获得的第一特征值的份额能够还原出所述第一特征值;
所述第一计算参与方,还用于获得第二数据,其中,如果所述第一ID是交集ID,所述第二数据为所述第二计算参与方中所述第一ID对应的第二特征值的份额,如果所述第一ID不是交集ID,所述第二数据为随机数,所述第二特征值的份额是所述第二计算参与方将所述第二特征值以秘密分享的方式在所述第一计算参与方和所述第二计算参与方之间分享,所述第一计算参与方和所述第二计算参与方各自获得的第二特征值的份额能够还原出所述第二特征值;
如果所述第一密文数据指示所述第一ID为交集ID,所述第一计算参与方还用于将其持有的第一特征值的份额以及所述第二数据作为神经网络的训练数据;
如果所述第一密文数据指示所述第一ID为交集ID,所述第二计算参与方还用于将其持有的第一特征值的份额与第二特征值的份额作为所述神经网络的训练数据。
10.根据权利要求9所述的系统,其特征在于,
所述第一计算参与方和所述第二计算参与方,还分别用于对所述第一密文数据进行恢复,得到第一数据;
所述第一计算参与方和所述第二计算参与方,还分别用于根据所述第一数据确定所述第一ID是否为所述交集ID。
11.根据权利要求9或10所述的系统,其特征在于,如果所述第一计算参与方根据其获取的第一密文数据指示所述第一ID不是交集ID,所述第一计算参与方还用于将其持有的所述第一特征值的份额以及所述第二数据删除;
如果所述第二计算参与方根据其获取的第一密文数据指示所述第一ID不是交集ID,所述第二计算参与方还用于将其持有的所述第一特征值的份额与所述第二特征值的份额删除。
12.根据权利要求9至11中任一项所述的系统,其特征在于,
所述第一计算参与方和所述第二计算参与方,还用于根据多个密文数据,确定交集ID的数量是否大于预设阈值,所述多个密文数据包括所述第一密文数据;
所述第二计算参与方,具体用于在所述交集ID的数量大于所述预设阈值的情况下,从所述第一计算参与方处获得所述第一ID对应的第一特征值的份额;
所述第一计算参与方,具体用于在所述交集ID的数量大于所述预设阈值的情况下,获得所述第二数据。
13.根据权利要求12所述的系统,其特征在于,
所述第一计算参与方和所述第二计算参与方,还用于分别随机打乱各自获取的多个密文数据的顺序。
14.根据权利要求9至13中任一项所述的系统,其特征在于,
所述第一计算参与方和所述第二计算参与方,具体用于通过可编程的不经意伪随机函数OPPRF或密钥交换DH分别获得所述的第一密文数据。
15.根据权利要求9至14中任一项所述的系统,其特征在于,所述第一计算参与方具体用于:
通过可编程的不经意伪随机函数OPPRF获得所述第二数据。
16.根据权利要求9至15中任一项所述的系统,其特征在于,所述第一计算参与方的第一ID为所述第一计算参与方在第一哈希桶中的ID,所述第二计算参与方的至少一个ID为所述第二计算参与方在所述第一哈希桶中的至少一个ID,所述第一密文数据为所述第一哈希桶对应的密文数据,所述第二数据为所述第一哈希桶对应的第二数据。
17.一种计算设备集群,其特征在于,包括至少一个计算设备,每个计算设备包括处理器和存储器;
所述至少一个计算设备的处理器用于执行所述至少一个计算设备的存储器中存储的指令,以使得所述计算设备集群执行如权利要求1至8中任一项所述的方法。
18.一种包含指令的计算机程序产品,其特征在于,当所述指令被计算设备集群运行时,使得所述计算设备集群执行如权利要求的1至8中任一项所述的方法。
19.一种计算机可读存储介质,其特征在于,包括计算机程序指令,当所述计算机程序指令由计算设备集群执行时,所述计算设备集群执行如权利要求1至8中任一项所述的方法。
CN202311068411.XA 2023-05-16 2023-08-23 数据处理的方法、系统以及计算设备 Pending CN117294425A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202310552730 2023-05-16
CN2023105527301 2023-05-16

Publications (1)

Publication Number Publication Date
CN117294425A true CN117294425A (zh) 2023-12-26

Family

ID=89257880

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311068411.XA Pending CN117294425A (zh) 2023-05-16 2023-08-23 数据处理的方法、系统以及计算设备

Country Status (1)

Country Link
CN (1) CN117294425A (zh)

Similar Documents

Publication Publication Date Title
CN111082934B (zh) 基于可信执行环境的跨域安全多方计算的方法及装置
KR102332034B1 (ko) 정보 보호를 위한 시스템 및 방법
US9077539B2 (en) Server-aided multi-party protocols
US9160535B2 (en) Truly anonymous cloud key broker
WO2018145127A1 (en) Electronic identification verification methods and systems with storage of certification records to a side chain
CN106452775A (zh) 实现电子签章的方法、装置及签章服务器
CN109274501A (zh) 基于盲签名的许可区块链隐私保护方法
CN114329527A (zh) 交集数据获取方法、设备和系统
US8220040B2 (en) Verifying that group membership requirements are met by users
CN111639367B (zh) 基于树模型的两方联合分类方法、装置、设备及介质
Vladimirov et al. Security and privacy protection obstacles with 3D reconstructed models of people in applications and the metaverse: A survey
WO2022156594A1 (zh) 联邦模型训练方法、装置、电子设备、计算机程序产品及计算机可读存储介质
Blesswin et al. Enhanced semantic visual secret sharing scheme for the secure image communication
Zhu et al. Two novel semi-quantum-reflection protocols applied in connected vehicle systems with blockchain
US11544786B2 (en) Systems and methods for provably fair atomic swaps of private digital assets
CN110266490B (zh) 云存储数据的关键词密文生成方法及装置
CN114514550A (zh) 将请求分区成区块链的交易
CN104954127A (zh) 一种授权方法、生物特征信息发送方法及装置
CN111404954A (zh) 分级共享方法及装置
CN113254989B (zh) 目标数据的融合方法、装置和服务器
CN110533393A (zh) 教育信息存储方法、设备及介质
CN117294425A (zh) 数据处理的方法、系统以及计算设备
CN117114059A (zh) 神经网络中激活函数的计算方法、装置以及计算设备
CN114268438B (zh) 多方协同签名方法、装置、计算机设备和存储介质
US11201856B2 (en) Message security

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