CN112989420B - 一种保护数据隐私的相关系数确定方法和系统 - Google Patents
一种保护数据隐私的相关系数确定方法和系统 Download PDFInfo
- Publication number
- CN112989420B CN112989420B CN202110350385.4A CN202110350385A CN112989420B CN 112989420 B CN112989420 B CN 112989420B CN 202110350385 A CN202110350385 A CN 202110350385A CN 112989420 B CN112989420 B CN 112989420B
- Authority
- CN
- China
- Prior art keywords
- product
- vector
- value vector
- slice
- party
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
Abstract
本说明书实施例公开了一种保护数据隐私的相关系数确定方法和系统。其中,方法应用于多方安全计算中的某一计算方,某一计算方持有第一变量值向量,方法包括:基于第一变量值向量,计算得到第一差值向量;基于第一差值向量,与其他计算方协同运算,获得第一变量值向量与第二变量值向量之间的协方差的第一分片;其中,其他计算方持有第二变量值向量;基于第一变量值向量,计算得到第一标准差;第一标准差为第一变量值向量中元素的标准差;基于第一标准差,与其他计算方协同运算,获得第一乘积的第一分片;基于协方差的第一分片和第一乘积的第一分片,与其他计算方协同运算,获得相关系数的第一分片。
Description
技术领域
本说明书涉及信息技术领域,特别涉及一种基于多方安全计算的保护数据隐私的相关系数计算方法和系统。
背景技术
大数据时代,存在非常多的数据孤岛。数据通常分散存于不同的企业中,企业与企业之间出于对竞争关系和隐私保护的考虑,并不是完全的互相信任。
在充分保护企业数据隐私安全的前提下,利用双方都有的数据完成一些数据统计计算的需求非常迫切。然而,目前企业数据的联合计算中,没有很好的考虑到对企业数据的隐私保护。
因此,有必要提出一种基于多方安全计算的相关系数计算方法和系统,以在数据的联合计算中能够保证数据的隐私安全。
发明内容
本说明书实施例的一个方面提供一种基于多方安全计算的相关系数计算方法。该方法应用于多方安全计算中的某一计算方,某一计算方持有第一变量值向量,该方法包括:基于第一变量值向量,计算得到第一差值向量;第一差值向量的元素为第一变量值向量中对应元素与第一均值的差值;第一均值为第一变量值向量中元素的均值;基于第一差值向量,与其他计算方协同运算,获得第一变量值向量与第二变量值向量之间的协方差的第一分片;其中,其他计算方持有第二变量值向量;基于第一变量值向量,计算得到第一标准差;第一标准差为第一变量值向量中元素的标准差;基于第一标准差,与其他计算方协同运算,获得第一乘积的第一分片;其中,第一乘积为第一标准差的倒数与其他计算方的第二标准差的倒数的乘积;基于协方差的第一分片和第一乘积的第一分片,与其他计算方协同运算,获得相关系数的第一分片。
本说明书实施例的另一个方面提供一种基于多方安全计算的相关系数计算系统。
该系统应用于多方安全计算中的某一计算方,某一计算方持有第一变量值向量,该系统包括:差值向量计算模块,可以用于基于第一变量值向量,计算得到第一差值向量;第一差值向量的元素为第一变量值向量中对应元素与第一均值的差值;第一均值为第一变量值向量中元素的均值。第一协同运算模块,可以用于基于第一差值向量,与其他计算方协同运算,获得第一变量值向量与第二变量值向量之间的协方差的第一分片;其中,其他计算方持有第二变量值向量。标准差计算模块,可以用于基于第一变量值向量,计算得到第一标准差;第一标准差为第一变量值向量中元素的标准差。第二协同运算模块,可以用于基于第一标准差,与其他计算方协同运算,获得第一乘积的第一分片;其中,第一乘积为第一标准差的倒数与其他计算方的第二标准差的倒数的乘积。第三协同运算模块,用于基于协方差的第一分片和第一乘积的第一分片,与其他计算方协同运算,获得相关系数的第一分片。
本说明书实施例的另一个方面提供一种基于多方安全计算的相关系数计算装置包括至少一个存储介质和至少一个处理器,所述至少一个存储介质用于存储计算机指令;所述至少一个处理器用于执行所述计算机指令以实现基于多方安全计算的相关系数计算方法。
本说明书实施例的另一个方面提供一种计算机可读存储介质,所述存储介质存储计算机指令,当计算机读取存储介质中的计算机指令后,计算机执行基于多方安全计算的相关系数计算方法。
附图说明
本说明书将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
图1是根据本说明书一些实施例所示的基于多方安全计算的相关系数计算系统的示例性应用场景示意图;
图2是根据本说明书一些实施例所示的多方安全乘法协议的示例性示意图;
图3是根据本说明书一些实施例所示的基于多方安全计算的相关系数计算方法的示例性交互流程图;
图4是根据本说明书一些实施例所示的基于多方安全计算的相关系数计算系统的示例性模块图。
具体实施方式
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
应当理解,本文使用的“系统”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
传统的机器学习需要把所有的训练样本数据都集中在一个地方,统一进行模型的训练。保护隐私的机器学习在训练时不需要把所有的训练样本数据集中在一起,在训练过程中每个数据拥有者都不会泄露自己的隐私数据。在进行模型训练之前,可以对各数据方持有的样本数据做特征分析,例如,计算IV、特征相关性、特征重要性等等。以计算特征相关性为例,其中一种方式是计算训练样本不同特征之间的相关系数,通过计算相关系数,可以在后续对特征做不同的处理。例如,如果两个特征的相关性比较高,则可以考虑在模型训练的时候去掉其中一个特征。又例如,如果一个是特征,一个是标签,通过计算可以得到特征和标签之间的相关性,如果相关性太低,也可以考虑在模型训练时去掉与标签相关性太低的特征。
然而,与模型训练需要保护数据的隐私安全一样,在计算不同数据拥有方的样本特征之间(或样本标签与样本特征之间)的相关系数时,同样需要保护数据的隐私安全。因此,本说明书一些实施例提出一种基于多方安全计算的相关系数计算方法和系统,以在计算数据之间的相关性时,可以有效地保护数据的隐私安全。以下通过对附图的描述详细阐述本说明书披露的技术方案。
图1是根据本说明书一些实施例所示的基于多方安全计算的相关系数计算系统的示例性应用场景示意图。
如图1所示,在应用场景100中可以包括A方的设备110、B方的设备120、第三方服务器130以及网络140。
在一些实施例中,A方和B方可以分别持有训练样本中的特征数据和/或标签数据。例如,A方可以持有特征数据,B方持有标签数据;A方持有标签数据,B方持有特征数据;或者A方持有标签数据和一部分特征数据,B方持有另一部分特征数据。A方持有的数据属于A方的隐私,B方持有的数据属于B方的隐私。在分析相关性的过程中,A方和B方都不希望向对方暴露自己的数据隐私。因此,为了保护双方的数据隐私安全,可以基于秘密分享计算数据之间的相关系数(例如,皮尔逊相关系数)。秘密分享的思想是,将秘密以适当的方式拆分,拆分后的每一个分片由不同的参与者管理,单个参与者无法恢复秘密信息,只有若干个参与者一同协作才能恢复秘密消息。通过本说明书实施例所披露的基于多方安全计算的相关系数计算方法,可以在不暴露各方所持有的数据隐私的情况下,完成相关系数的计算。
设备110/设备120可以包括各类具有信息收发功能的计算设备,如智能电话、膝上型计算机、台式计算机、服务器等。在一些实施例中,服务器可以是独立的服务器或者服务器组,该服务器组可以是集中式的或者分布式的。在一些实施例中,服务器可以是区域的或者远程的。在一些实施例中,服务器可在云平台上执行。例如,该云平台可包括私有云、公共云、混合云、社区云、分散式云、内部云等中的一种或其任意组合。
第三方服务器130可协助A方的设备110和B方的设备120完成多方安全计算。例如,第三方服务器130可以在A方与B方进行多方安全乘法计算时,向双方提供随机数。关于多方安全乘法计算的更多内容可以参见图2的相关说明。
网络140连接系统的各组成部分,使得各部分之间可以进行通讯。在系统中各部分之间的网络可以包括有线网络和/或无线网络。例如,网络140可以包括电缆网络、有线网络、光纤网络、电信网络、内部网络、互联网、局域网络(LAN)、广域网络(WAN)、无线局域网络(WLAN)、城域网(MAN)、公共交换电话网络(PSTN)、蓝牙网络、紫蜂网络(ZigBee)、近场通信(NFC)、设备内总线、设备内线路、线缆连接等或其任意组合。每两个部分之间的网络连接可以是采用上述一种方式,也可以是采取多种方式。
在计算双方的数据的相关系数时,所涉及到的多方协同运算可以以多方安全乘法协议为基础进行。多方安全乘法协议可以描述为,当一个乘数属于A方的隐私数据、另一个乘数属于B方的隐私数据时,任一方的设备不能直接计算这两个乘数的乘积,可按照多方安全乘法协议与另一方的计算设备交互,以基于己方的隐私数据计算得到该乘积的一个分片。即,A方和B方各自获得该乘积的一个分片。第三方服务器130可协助A方的设备110和B方的设备120运行多方安全乘法协议。
图2是根据本说明书一些实施例所示的多方安全乘法协议的示例性示意图。
如图2所示,第一计算方和第二计算方分别是提供隐私数据的一方,例如,第一计算方拥有隐私数据a,第二计算方拥有隐私数据b。
在多方安全乘法协议中,为了在各计算方之间隐藏其各自拥有的数据,第一计算方和第二计算方可以获得随机数。在一些实施例中,随机数可以是数字、向量或矩阵。随机数可以由第三方生成(例如,第三方服务器130)。
参见图2,获得的随机数可以包括u、v,其中,u、v可以是矩阵、向量、数字,或其任意组合。获得的随机数将按照一定规则分发给第一计算方和第二计算方。具体地,在一些实施例中,第三方可以生成两个随机数u、v,计算u、v的乘积,并将乘积拆分为z0和z1两个加性分片,即z0+z1=uv。第一计算方可以获得u和z0,第二计算方可以获得v和z1。假设要计算第一计算方拥有的隐私数据a与第二计算方拥有的隐私数据b的乘积,由于要计算a*b,又不能分别向对方泄露隐私数据a和隐私数据b,则可以借助获得的随机数来实现a*b的计算。
在计算时,第一计算方可以利用获得的随机数u对隐私数据a进行加密,例如,将a-u的值(即e)发送给第二计算方,同理,第二计算方可以利用获得的随机数v对隐私数据b进行加密,例如,将b-v的值(即f)发送给第一计算方,f和e可以分别认为是对b和a进行加密后的数据。由于第二计算方实际从第一计算方得到的为e,也就是不会知道a和u为多少,第一计算方实际从第二计算方得到的为f,也不会知道b和v为多少,那么第一计算方获得的随机数的u和z0,以及其拥有的a都是对第二计算方保密的,第二计算方获得的随机数v和z1,以及其拥有的b都是对第一计算方保密的,其各自拥有的数据都处于隐私保护中。
然后,第一计算方可以利用其拥有的随机数u和z0,以及从第二计算方接收的f,计算得到c0,其中,c0=uf+z0。同理,第二计算方可以利用其拥有的随机数v和z1,以及从第一计算方接收的e,计算得到c1,c1=eb+z1。c0+c1即为要计算的a*b,c0表示第一计算方拥有的a*b的第一分片,c1表示第二计算方拥有的a*b的第二分片。
可以证明,c0+c1=uf+eb+uv=ub-uv+ab-ub+uv=ab,即,c0+c1=ab。以上即为多方安全乘法协议的示例性计算过程,基于多方安全乘法协议,可以在各参与方不暴露其隐私数据的情况下,计算与其他参与方的隐私数据的乘积。基于此,多方协同完成矩阵乘法、向量乘法、多项式等安全计算,都可以分解为最基础的多方安全乘法问题,进而完成多方矩阵乘法、向量乘法、多项式等安全计算。
图3是根据本说明书一些实施例所示的基于多方安全计算的相关系数计算方法的示例性交互流程图,涉及多方之间的数据交互。在一些实施例中,流程300可以由处理设备(例如,设备110或设备120)执行。
在一些实施例中,流程300可以由参与多方安全计算中的某一计算方执行。某一计算方可以是参与计算的任一计算方(例如,设备110或设备120),仅为了便于说明,在本说明书中以第一计算方作为参与计算的某一计算方。需要说明的是,在第一计算方执行操作时,第二计算方即为相对于第一计算方的其他计算方,同理,在第二计算方执行操作时,第一计算方即相对于第二计算方的其他计算方。
参与计算的计算方可以持有训练样本的变量值向量。例如,第一计算方可以持有第一变量值向量,第二计算方可以持有第二变量值向量。变量值向量可以是指由某一变量的不同取值组成的向量。示例性的,变量a可以取1、2、2.5、3、5,则[1,2,2.5,3,5]为变量a的变量值向量。在一些实施例中,变量值向量还可以是基于训练样本中的样本特征数据或标签特征数据得到的特征值向量或标签值向量。在一些实施例中,第一计算方可以持有以矩阵形式表示的特征矩阵,其中一行对应一个训练样本的特征参数。一个训练样本可以包含多个特征参数,因此一个训练样本的特征参数可以以(行)向量形式表示,进而特征矩阵的一列则为某特征的特征值向量。例如,可以用xa、xb、……、xz表示特征矩阵中的不同特征对应的特征值列向量。在一些实施例中,第一计算方可以持有以矩阵形式表示的标签矩阵,其一行对应一个训练样本的标签值。在一些实施例中,一个训练样本可以包含一个或多个标签值,因此一个训练样本的标签值可以以(行)向量形式表示,进而标签矩阵的一列为某特征的标签值向量。例如,可以用ya、yb、……、yz表示不同标签对应的标签值列向量。不难理解,当一个训练样本的标签值仅有一个时,标签矩阵可以降维成标签值向量。
在一些实施例中,第一计算方的第一变量值向量可以与第二计算方的第二变量值向量具有对应关系。对应关系是指第二计算方的变量值向量和第一计算方的变量值向量一一对齐,例如,第一计算方拥有的第一变量值向量为特征值向量Xa,第二计算方拥有的第二变量值向量为标签值向量Ya,第一变量值向量与第二变量值向量之间的对应关系可以表示为(xa1,ya1)、(xa2,ya2)、……、(xan,yan),即ya1为xa1的标签,ya2为xa2的标签,以此类推。在一些实施例中,对齐方式可以是添加标识或ID的方式。例如,为特征数据和标签数据中属于同一训练样本的数据添加一个相同的ID,比如,xa1、xa2的ID分别为ID1、ID2,ya1、ya2的ID分别为ID1、ID2,并且在计算时以相同的ID排序方式排列成为特征值向量/标签值向量,以确保计算过程中特征数据与标签数据对齐。各计算方可以在进行运算前,基于样本对标识或ID达成共识,确保相同的训练样本的特征数据和标签数据具有相同的标识/ID,以及对基于标识/ID的排列顺序达成共识,以便于记录各数据之间的相关性,以及进行模型训练。
流程300可以包括以下操作。
步骤302,基于所述第一变量值向量,计算得到第一差值向量。在一些实施例中,步骤302可以由差值向量计算模块410执行。
如前所述,第一变量值向量可以为所述某一计算方(如,第一计算方)持有训练样本的特征值向量或标签值向量。例如,可以以Xa表示第一计算方持有的第一变量值向量,Xa可以为[5,10,6,15,2]。
第一差值向量是指将第一变量值向量减去第一变量值向量的元素均值后得到的向量。即,第一差值向量的元素为第一变量值向量中对应元素与第一均值的差值。第一均值为第一变量值向量中元素的均值。例如,沿用上述示例,以Xa表示的第一变量值向量为例,第一变量值向量的中的元素分别为5、10、6、15、2,则第一均值E[Xa]为(5+10+6+15+2)/5=7.6。那么第一差值向量Xa-E[Xa]中的元素的值则等于第一变量值向量的元素减去第一均值,经过计算可以得到第一差值向量为[-2.6,2.4,-1.6,7.4,-5.6]。
步骤304,基于所述第一差值向量,与其他计算方协同运算,获得第一变量值向量与第二变量值向量之间的协方差的第一分片。在一些实施例中,步骤304可以由第一协同运算模块420执行。
其他计算方持有第二变量值向量。第二变量值向量与第一变量值向量类似,其区别在于第二变量值向量表示为其他计算方持有。仅作为示例,可以以Ya表示所述其他计算方持有的第二变量值向量,Ya可以为[6,9,7,10,3]。其他计算方可以基于第二变量值向量计算得到第二差值向量,其计算方式可以与第一计算方计算得到第一差值向量的方式相同,详细内容可以参见步骤302中的描述,此处不再赘述。
协方差是指第一差值向量与第二差值向量的点积,并除以向量维数(等效于乘以向量维数的倒数)。维数可以理解为向量的长度或向量元素的个数。例如,协方差可以表示为Cov(Xa,Ya),并且Cov(Xa,Ya)=(Xa-E[Xa])·(Ya-E[Ya])/n。其中,n为向量维数;·表示点积运算。
在一些实施例中,处理设备可以基于下文实施例所描述的方式,基于第一差值向量,与其他计算方协同运算,获得协方差的第一分片。
处理设备可以基于第一差值向量,与其他计算方多次执行安全乘法运算,获得差值向量点积的第一分片。差值向量点积为第一差值向量与其他计算方的第二差值向量的点积。点积(又称为数量积、dot product或scalar product)是指接受在实数R上的两个向量并返回一个实数值标量的二元运算,具体可以将两个向量对位元素相乘后求和后所得到的单个数值。例如,两个向量a=[a1,a2,…,an]和b=[b1,b2,…,bn],那么其点积为a·b=a1b1+a2b2+……+anbn,为单个数值。
假设向量a为第一差值向量,a=Xa-E[Xa],向量b为第二差值向量,b=Ya-E[Ya],a·b=(Xa-E[Xa])·(Ya-E[Ya])。由a·b=a1b1+a2b2+……+anbn可知,差值向量点积中有多个乘积项(例如,a1b1、a2b2、……),第一计算方可以与其他计算方基于多方安全计算乘法协议,多次协同运算得到所有的乘积项。例如,第一次执行安全乘法运算可以计算得到a1b1,第二次执行安全乘法运算可以计算得到a2b2,以此类推,在第n次时得到anbn。计算完之后,第一计算方可以得到<a1b1>0+<a2b2>0+……+<anbn>0,即,差值向量点积的第一分片;第二计算方可以得到<a1b1>1+<a2b2>1+……+<anbn>1,即,差值向量点积的第二分片。
处理设备可以将差值向量点积的第一分片乘以第一变量值向量的维数倒数,得到协方差的第一分片。例如,第一变量值向量的维数为n,则协方差的第一分片为(<a1b1>0+<a2b2>0+……+<anbn>0)/n,协方差的第二分片为(<a1b1>1+<a2b2>1+……+<anbn>1)/n。
基于多方安全乘法协议协同运算的原理和过程可以参见图2及其相关描述,此处不再赘述。
步骤306,基于所述第一变量值向量,计算得到第一标准差。在一些实施例中,步骤306可以由标准差计算模块430执行。
第一标准差为第一变量值向量中元素的标准差。
由于第一变量值向量的标准差的计算并不涉及其他计算方的数据,因此可以按照上述公式直接在计算方本地计算得到。
步骤308,基于所述第一标准差,与其他计算方协同运算,获得第一乘积的第一分片。在一些实施例中,步骤308可以由第二协同运算模块440执行。
第一乘积为第一标准差的倒数与其他计算方的第二标准差的倒数的乘积。第二标准差可以由其他计算方可以按照第一计算方计算得到第一标准差相同的方式计算得。
例如,以1/σ1表示第一标准差的倒数,1/σ2表示第二标准差的倒数,第一乘积则可以表示为1/σ1*1/σ2,第一计算方可以按照多方安全乘法协议与其他计算方协同运算得到。计算完成后,第一计算方可以得到第一乘积的第一分片d0,d0=<1/σ1*1/σ2>0,其他计算方可以持有第一乘积的第二分片d1,d1=<1/σ1*1/σ2>1。
步骤310,基于所述协方差的第一分片和所述第一乘积的第一分片,与其他计算方协同运算,获得相关系数的第一分片。在一些实施例中,步骤310可以由第三协同运算模块450执行。
在一些实施例中,相关系数可以用协方差乘以第一乘积表示。示例性地,相关系数可以表示为s=c*d,其中,c表示协方差,d表示第一乘积。
由于在计算相关系数的过程中应用了多方安全乘法协议,协方差和第一乘积均以分片的形式存在与第一计算方和其他计算方。因此相关系数的计算可以进一步表示为其中,c0为所述协方差的第一分片,c1为所述协方差的第二分片,d0为所述第一乘积的第一分片,d1为所述第一乘积的第二分片。对其进行展开可得,q=c0d0+c0d1+c1d0+c1d1。
在一些实施例中,处理设备可以按照下文实施例所描述的方式,计算得到相关系数的第一分片。
基于协方差的第一分片c0,与其他计算方执行安全乘法运算,获得第二乘积的第一分片。第二乘积为协方差的第一分片与其他计算方的第一乘积的第二分片的乘积。第二乘积对应上述相关系数计算公式中的c0d1,通过与其他计算方协同运算,第一计算方可以获得第二乘积的第一分片<c0d1>0,其他计算方获得第二乘积的第二分片<c0d1>1。
基于第一乘积的第一分片d0,与其他计算方执行安全乘法运算,获得第三乘积的第一分片。第三乘积为第一乘积的第一分片与其他计算方的协方差的第二分片的乘积。第三乘积对应上述相关系数计算公式中的c1d0,通过与其他计算方协同运算,第一计算方可以获得第三乘积的第一分片<c1d0>0,其他计算方获得第三乘积的第二分片<c1d0>1。
求和协方差的第一分片与第一乘积的第一分片的乘积、第二乘积的第一分片以及第三乘积的第一分片,获得相关系数的第一分片。
在上述相关系数的计算公式中,协方差的第一分片与第一乘积的第一分片的乘积对应c0d0,c0d0可以由第一计算方在其本地计算得到。那么第一计算方持有的相关系数的第一分片为c0d0+<c0d1>0+<c1d0>0。其他计算方可以持有的相关系数的第二分片为c1d1+<c0d1>1+<c1d0>1。
在一些实施例中,可以通过合并第一计算方持有的相关系数的第一分片和第二计算方持有的相关系数的第二分片,即可得到明文的相关系数。
在本说明书实施例中,基于多方安全计算技术计算参与方持有的变量的相关系数,计算过程中通过对复杂计算公式的变形,尽可能多的转化成本地计算,尽量少的用多方安全计算技术,提高了整体计算效率,并且在整个过程中没有隐私泄露,达到了保护数据隐私安全的目的。
应当注意的是,上述有关各流程的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对流程进行各种修正和改变。然而,这些修正和改变仍在本说明书的范围之内。例如,对本说明书有关流程步骤的改变,如添加预处理步骤和存储步骤等。
图4是根据本说明书一些实施例所示的基于多方安全计算的相关系数计算系统的示例性模块图。如图4所示,系统400可以包括差值向量计算模块410、第一协同运算模块420、标准差计算模块430、第二协同运算模块440和第三协同运算模块450。
差值向量计算模块410可以用于基于所述第一变量值向量,计算得到第一差值向量。
第一变量值向量是指基于训练样本中的样本特征数据或标签特征数据得到的以向量形式表示的特征参数。所述第一变量值向量为所述某一计算方持有训练样本的特征值向量或标签值向量。差值向量计算模块410可以将第一变量值向量减去第一变量值向量的元素均值后得到第一差值向量。第一差值向量的元素为第一变量值向量中对应元素与第一均值的差值。第一均值为第一变量值向量中元素的均值。
第一协同运算模块420可以用于基于所述第一差值向量,与其他计算方协同运算,获得第一变量值向量与第二变量值向量之间的协方差的第一分片。
其中,其他计算方持有第二变量值向量。协方差是指第一差值向量与第二差值向量的乘积,并乘以向量维数的倒数。在一些实施例中,第一协同运算模块420可以基于所述第一差值向量,与其他计算方多次执行安全乘法运算,获得差值向量点积的第一分片;其中,所述差值向量点积为第一差值向量与所述其他计算方的第二差值向量的点积;将所述差值向量点积的第一分片乘以所述第一变量值向量的维数倒数,得到所述协方差的第一分片。
标准差计算模块430可以用于基于所述第一变量值向量,计算得到第一标准差。
第一标准差为第一变量值向量中元素的标准差。标准差计算模块430可以在其本地计算得到第一标准差。
第二协同运算模块440可以用于基于所述第一标准差,与其他计算方协同运算,获得第一乘积的第一分片。
第一乘积为第一标准差的倒数与其他计算方的第二标准差的倒数的乘积。第二协同运算模块440可以按照多方安全乘法协议与其他计算方协同运算得到第一乘积的第一分片。
第三协同运算模块450可以用于基于所述协方差的第一分片和所述第一乘积的第一分片,与其他计算方协同运算,获得相关系数的第一分片。
在一些实施例中,第三协同运算模块450可以基于所述协方差的第一分片,与其他计算方执行安全乘法运算,获得第二乘积的第一分片;所述第二乘积为所述协方差的第一分片与所述其他计算方的第一乘积的第二分片的乘积;基于所述第一乘积的第一分片,与其他计算方执行安全乘法运算,获得第三乘积的第一分片;所述第三乘积为所述第一乘积的第一分片与所述其他计算方的协方差的第二分片的乘积;求和所述协方差的第一分片与所述第一乘积的第一分片的乘积、所述第二乘积的第一分片以及所述第三乘积的第一分片,获得所述相关系数的第一分片。
关于基于多方安全计算的相关系数计算系统的各模块的具体描述,可以参考本说明书流程图部分,例如,图3的相关说明。
应当理解,图4所示的系统及其模块可以利用各种方式来实现。例如,在一些实施例中,系统及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本说明书的系统及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。
需要注意的是,以上对于基于多方安全计算的相关系数计算系统及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。例如,在一些实施例中,差值向量计算模块410、第一协同运算模块420、标准差计算模块430、第二协同运算模块440和第三协同运算模块450可以是一个系统中的不同模块,也可以是一个模块实现上述的两个或两个以上模块的功能。例如,差值向量计算模块410和标准差计算模块430可以是两个模块,也可以是一个模块同时具有差值向量计算和标准差计算功能。例如,各个模块可以共用一个存储模块,各个模块也可以分别具有各自的存储模块。诸如此类的变形,均在本说明书的保护范围之内。
本说明书实施例可能带来的有益效果包括但不限于:基于多方安全计算技术计算参与方持有的变量的相关系数,提高了整体计算效率,并且保护了数据的隐私安全。需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,本领域技术人员可以理解,本说明书的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本说明书的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本说明书的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、RF、或类似介质,或任何上述介质的组合。
本说明书各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB.NET、Python等,常规程序化编程语言如C语言、Visual Basic、Fortran 2003、Perl、COBOL 2002、PHP、ABAP,动态编程语言如Python、Ruby和Groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或服务器上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(LAN)或广域网(WAN),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(SaaS)。
此外,除非权利要求中明确说明,本说明书所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的系统。
同理,应当注意的是,为了简化本说明书披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有±20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本说明书一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。
针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本说明书权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。
最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。
Claims (8)
1.一种保护数据隐私的相关系数确定方法,所述方法应用于多方安全计算中的某一计算方,所述某一计算方持有第一变量值向量,所述方法包括:
基于所述第一变量值向量,计算得到第一差值向量;所述第一差值向量的元素为第一变量值向量中对应元素与第一均值的差值;所述第一均值为第一变量值向量中元素的均值;
基于所述第一差值向量,与其他计算方协同运算,获得第一变量值向量与第二变量值向量之间的协方差的第一分片;其中,所述其他计算方持有第二变量值向量;基于所述第一差值向量,与其他计算方协同运算,获得第一变量值向量与第二变量值向量之间的协方差的第一分片,包括:
基于所述第一差值向量,与其他计算方多次执行安全乘法运算,获得差值向量点积的第一分片;其中,所述差值向量点积为第一差值向量与所述其他计算方的第二差值向量的点积;
将所述差值向量点积的第一分片乘以所述第一变量值向量的维数倒数,得到所述协方差的第一分片;
基于所述第一变量值向量,计算得到第一标准差;所述第一标准差为第一变量值向量中元素的标准差;
基于所述第一标准差,与其他计算方协同运算,获得第一乘积的第一分片;其中,所述第一乘积为所述第一标准差的倒数与所述其他计算方的第二标准差的倒数的乘积;基于所述协方差的第一分片和所述第一乘积的第一分片,与其他计算方协同运算,获得相关系数的第一分片;所述相关系数反映第一变量值向量与第二变量值向量之间的相关性。
2.根据权利要求1所述的方法,所述基于所述协方差的第一分片和所述第一乘积的第一分片,与其他计算方协同运算,获得相关系数的第一分片,包括:
基于所述协方差的第一分片,与其他计算方执行安全乘法运算,获得第二乘积的第一分片;所述第二乘积为所述协方差的第一分片与所述其他计算方的第一乘积的第二分片的乘积;
基于所述第一乘积的第一分片,与其他计算方执行安全乘法运算,获得第三乘积的第一分片;所述第三乘积为所述第一乘积的第一分片与所述其他计算方的协方差的第二分片的乘积;
求和所述协方差的第一分片与所述第一乘积的第一分片的乘积、所述第二乘积的第一分片以及所述第三乘积的第一分片,获得所述相关系数的第一分片。
3.根据权利要求1所述的方法,所述第一变量值向量为所述某一计算方持有训练样本的特征值向量或标签值向量。
4.一种保护数据隐私的相关系数确定系统,所述系统应用于多方安全计算中的某一计算方,所述某一计算方持有第一变量值向量,所述系统包括:
差值向量计算模块,用于基于所述第一变量值向量,计算得到第一差值向量;所述第一差值向量的元素为第一变量值向量中对应元素与第一均值的差值;所述第一均值为第一变量值向量中元素的均值;
第一协同运算模块,用于基于所述第一差值向量,与其他计算方协同运算,获得第一变量值向量与第二变量值向量之间的协方差的第一分片;其中,所述其他计算方持有第二变量值向量;其中,所述第一协同运算模块进一步用于:
基于所述第一差值向量,与其他计算方多次执行安全乘法运算,获得差值向量点积的第一分片;其中,所述差值向量点积为第一差值向量与所述其他计算方的第二差值向量的点积;
将所述差值向量点积的第一分片乘以所述第一变量值向量的维数倒数,得到所述协方差的第一分片;
标准差计算模块,用于基于所述第一变量值向量,计算得到第一标准差;所述第一标准差为第一变量值向量中元素的标准差;
第二协同运算模块,用于基于所述第一标准差,与其他计算方协同运算,获得第一乘积的第一分片;其中,所述第一乘积为所述第一标准差的倒数与所述其他计算方的第二标准差的倒数的乘积;
第三协同运算模块,用于基于所述协方差的第一分片和所述第一乘积的第一分片,与其他计算方协同运算,获得相关系数的第一分片;所述相关系数反映第一变量值向量与第二变量值向量之间的相关性。
5.根据权利要求4所述的系统,所述第三协同运算模块进一步用于:
基于所述协方差的第一分片,与其他计算方执行安全乘法运算,获得第二乘积的第一分片;所述第二乘积为所述协方差的第一分片与所述其他计算方的第一乘积的第二分片的乘积;
基于所述第一乘积的第一分片,与其他计算方执行安全乘法运算,获得第三乘积的第一分片;所述第三乘积为所述第一乘积的第一分片与所述其他计算方的协方差的第二分片的乘积;
求和所述协方差的第一分片与所述第一乘积的第一分片的乘积、所述第二乘积的第一分片以及所述第三乘积的第一分片,获得所述相关系数的第一分片。
6.根据权利要求4所述的系统,所述第一变量值向量为所述某一计算方持有训练样本的特征值向量或标签值向量。
7.一种保护数据隐私的相关系数确定装置,包括处理器,所述处理器用于执行权利要求1~3中任一项所述的方法。
8.一种计算机可读存储介质,所述存储介质存储计算机指令,当计算机读取存储介质中的计算机指令后,计算机执行如权利要求1~3任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110350385.4A CN112989420B (zh) | 2021-03-31 | 2021-03-31 | 一种保护数据隐私的相关系数确定方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110350385.4A CN112989420B (zh) | 2021-03-31 | 2021-03-31 | 一种保护数据隐私的相关系数确定方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112989420A CN112989420A (zh) | 2021-06-18 |
CN112989420B true CN112989420B (zh) | 2022-05-10 |
Family
ID=76338724
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110350385.4A Active CN112989420B (zh) | 2021-03-31 | 2021-03-31 | 一种保护数据隐私的相关系数确定方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112989420B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111177790A (zh) * | 2020-04-10 | 2020-05-19 | 支付宝(杭州)信息技术有限公司 | 保护两方数据隐私的协同计算方法、系统及装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3428647A1 (en) * | 2017-07-12 | 2019-01-16 | Consejo Superior de Investigaciones Científicas (CSIC) | Expression signature for glioma diagnosis and/or prognosis in a subject |
EP3522064B1 (en) * | 2018-02-02 | 2021-12-22 | Università Degli Studi Di Trento | A method and apparatus for distributed, privacy-preserving and integrity-preserving exchange, inventory and order book |
CN109255247B (zh) * | 2018-08-14 | 2020-08-14 | 阿里巴巴集团控股有限公司 | 多方安全计算方法及装置、电子设备 |
CN109359470B (zh) * | 2018-08-14 | 2020-09-01 | 阿里巴巴集团控股有限公司 | 多方安全计算方法及装置、电子设备 |
CN110580410B (zh) * | 2019-08-09 | 2023-07-28 | 创新先进技术有限公司 | 模型参数确定方法、装置和电子设备 |
CN110807528A (zh) * | 2019-10-30 | 2020-02-18 | 深圳前海微众银行股份有限公司 | 特征相关性计算方法、设备及计算机可读存储介质 |
CN111177740B (zh) * | 2019-11-14 | 2023-05-02 | 腾讯科技(深圳)有限公司 | 数据混淆处理方法、系统及计算机可读介质 |
CN110909216B (zh) * | 2019-12-04 | 2023-06-20 | 支付宝(杭州)信息技术有限公司 | 检测用户属性之间的关联性的方法及装置 |
CN112100679B (zh) * | 2020-11-16 | 2021-03-02 | 支付宝(杭州)信息技术有限公司 | 基于隐私保护的数据处理方法、装置和服务器 |
-
2021
- 2021-03-31 CN CN202110350385.4A patent/CN112989420B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111177790A (zh) * | 2020-04-10 | 2020-05-19 | 支付宝(杭州)信息技术有限公司 | 保护两方数据隐私的协同计算方法、系统及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112989420A (zh) | 2021-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111178547B (zh) | 一种基于隐私数据进行模型训练的方法及系统 | |
US11176469B2 (en) | Model training methods, apparatuses, and systems | |
CN111475854A (zh) | 保护两方数据隐私的协同计算方法及系统 | |
US20210399879A1 (en) | Arithmetic for Secure Multi-Party Computation with Modular Integers | |
CN112561085B (zh) | 一种基于多方安全计算的多分类模型训练方法和系统 | |
CN111027713B (zh) | 共享机器学习系统及方法 | |
US20200372394A1 (en) | Machine learning with differently masked data in secure multi-party computing | |
CN114021734B (zh) | 用于联邦学习和隐私计算的参数计算装置、系统及方法 | |
CN115409198A (zh) | 分布式预测方法及其系统 | |
CN113761563B (zh) | 数据交集计算方法、装置及电子设备 | |
WO2018102861A1 (en) | Secure text analytics | |
CN113158239B (zh) | 保护数据隐私的选择问题处理方法 | |
Guo et al. | The improved split‐step θ methods for stochastic differential equation | |
WO2022003420A9 (en) | Distributed machine learning via secure multi-party computation and ensemble learning | |
CN113051586A (zh) | 联邦建模系统及方法、联邦模型预测方法、介质、设备 | |
CN114282256A (zh) | 一种基于秘密分享的排序打乱方法和恢复方法 | |
CN111881207A (zh) | 基于区块链的专家信息共享方法、装置、设备及存储介质 | |
CN112989420B (zh) | 一种保护数据隐私的相关系数确定方法和系统 | |
Ugwuoke et al. | Secure fixed-point division for homomorphically encrypted operands | |
CN111079153B (zh) | 安全建模方法、装置、电子设备及存储介质 | |
CN116896441A (zh) | 基于量子全同态加密实现隐私计算处理的方法、装置、介质和设备 | |
CN111784078B (zh) | 一种针对决策树的分布式预测方法和系统 | |
CN112990475B (zh) | 一种基于多方安全计算的模型训练方法和系统 | |
Tan et al. | An Innovative Encryption Method for Agriculture Intelligent Information System based on Cloud Computing Platform. | |
CN113761469B (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 |