CN112464155B - 一种数据处理方法、多方安全计算系统和电子设备 - Google Patents

一种数据处理方法、多方安全计算系统和电子设备 Download PDF

Info

Publication number
CN112464155B
CN112464155B CN202011384908.9A CN202011384908A CN112464155B CN 112464155 B CN112464155 B CN 112464155B CN 202011384908 A CN202011384908 A CN 202011384908A CN 112464155 B CN112464155 B CN 112464155B
Authority
CN
China
Prior art keywords
delta
computing
data owner
vector
obtaining
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011384908.9A
Other languages
English (en)
Other versions
CN112464155A (zh
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.)
Huakong Tsingjiao Information Technology Beijing Co Ltd
Original Assignee
Huakong Tsingjiao Information Technology Beijing 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 Huakong Tsingjiao Information Technology Beijing Co Ltd filed Critical Huakong Tsingjiao Information Technology Beijing Co Ltd
Priority to CN202011384908.9A priority Critical patent/CN112464155B/zh
Publication of CN112464155A publication Critical patent/CN112464155A/zh
Application granted granted Critical
Publication of CN112464155B publication Critical patent/CN112464155B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization

Abstract

本发明实施例提供了一种数据处理方法、多方安全计算系统和电子设备,第一数据拥有方(持有第一向量X=[X1,X2,…,Xn])和第二数据拥有方(持有第二向量W=[W1,W2,…,Wn]),第一数据拥有方将第一向量进行秘密分享,第二数据拥有方将第二向量进行秘密分享;依次令j=1,2,3…,k,且每次进行如下计算:所有计算参与方采用多方安全计算协议协同计算(X2j+W2j‑1)*(X2j‑1+W2j),得到Mj;第一数据拥有方计算X2j*X2j‑1,得到CXj;第二数据拥有方计算W2j‑1*W2j,得到CWj;第一数据拥有方计算Mji‑CXj,得到DXj;第二数据拥有方计算Mjg‑CWj,得到DWj;完成上述计算后,第一数据拥有方计算得到di;第二数据拥有方计算得到dg;根据di和dg等第一向量和第二向量内积运算后的秘密分享因子,确定第一向量和第二向量的内积,从而提高内积计算效率。

Description

一种数据处理方法、多方安全计算系统和电子设备
技术领域
本发明涉及数据处理领域,特别是涉及一种数据处理方法、多方安全计算系统和电子设备。
背景技术
多方安全计算是指,针对无可信第三方的情况下,在多个非互信数据库之间,在数据相互保密的前提下,实现数据的计算和融合。
多方安全计算通常提供了基本的加法、乘法、比较等计算,以适用于各种场景;例如,模型训练、采用模型进行预测等。在模型训练、采用模型进行预测等场景的计算过程中,通常会涉及到内积计算;内积计算的过程中如下:数据拥有方持有的数据为:Vector_data=(X1,X2,...,Xn),模型方所持有得模型中有权重向量Vector_weight=(W1,W2,...,Wn),对两者进行内积计算:X1*W1+X2*W2+...+Xn*Wn。可见,采用多方安全计算进行模型训练、采用模型进行预测的过程中,进行内积计算时,需要进行n次密文的乘法。
相对于多方安全计算的加法和减法而言,多方安全计算的乘法,通常实现较为复杂,需要消耗更多的计算量和通信量;因此如何提高内积计算的效率,是目前亟待解决的问题之一。
发明内容
本发明实施例提供一种数据处理方法,以提高内积计算效率。
相应的,本发明实施例还提供了一种多方安全计算系统和电子设备,用以保证上述方法的实现及应用。
为了解决上述问题,本发明实施例公开了一种数据处理方法,具体包括:应用于多方安全计算系统中,所述多方安全计算系统包括计算参与方,所述计算参与方包括:第一数据拥有方和第二数据拥有方,所述第一数据拥有方持有第一向量X=[X1,X2,...,Xn],所述第二数据拥有方持有第二向量W=[W1,W2,...,Wn],所述方法用于计算所述第一向量和第二向量的内积,n为正整数,所述方法包括:所述第一数据拥有方将所述第一向量进行秘密分享,以使各计算参与方持有第一向量的秘密分享因子;所述第二数据拥有方将所述第二向量进行秘密分享,以使各计算参与方持有第二向量的秘密分享因子;依次令j=1,2,3...,k(k通过将n/2向下取整得到),且每次进行如下计算:所有计算参与方采用多方安全计算协议协同计算(X2j+W2j-1)*(X2j-1+W2j),得到Mj;其中,各计算参与方持有Mj的秘密分享因子;所述第一数据拥有方在本地计算X2j*X2j-1,得到CXj;以及所述第二数据拥有方在本地计算W2j-1*W2j,得到CWj;所述第一数据拥有方在本地计算Mji-CXj,得到DXj;以及所述第二数据拥有方在本地计算Mjg-CWj,得到DWj;Mji为第一数据拥有方持有的Mj的秘密分享因子,Mjg为第二数据拥有方持有的Mj的秘密分享因子,i、g∈[1,m],g不等于i,m为计算参与方所包含的参与方的数量,m大于或等于2;当j=k且完成上述计算后,所述第一数据拥有方计算得到di;以及第二数据拥有方计算/>得到dg;其中,di和dg,为第一向量和第二向量内积运算后的秘密分享因子;其中,所述第一向量和第二向量内积运算后的秘密分享因子,用于确定所述第一向量和第二向量的内积。
可选地,各计算参与方均持有预设参数δ且δ的值均为δj,所述δ用于在各计算参与方输出内积运算后的秘密分享因子时的验证;所述的方法还包括:在得到DXj之后,所述第一数据拥有方基于CXj和δj,计算δji;在得到DWj之后,所述第二数据拥有方基于CWj和δj,计算δjg;所有计算参与方依据所述δji和δjg,协同计算δ'j;各计算参与方分别采用所述δ'j更新各自持有的δ的值。
可选地,所述在得到DXj之后,所述第一数据拥有方基于CXj和δj,计算δji,包括:在得到DXj之后,所述第一数据拥有方计算CXj与δj之和,得到δji;所述在得到DWj之后,所述第二数据拥有方基于CWj和δj,计算δjg,包括:在得到DWj之后,所述第二数据拥有方计算CWj与δj之和,得到δjg
可选地,所述所有计算参与方依据所述δji和δjg,协同计算δ'j,包括:所有计算参与方协同计算所述δji与δjg之和,得到δ'j
可选地,所述计算参与方还包括其他参与方;所述所有计算参与方依据所述δji和δjg,协同计算δ'j,包括:所有计算参与方协同计算所述δji、δjg与其他参与方持有的δj之和,得到δ'j
可选地,所述计算参与方还包括其他参与方,所述的方法还包括:当j=k且完成上述计算后,其他参与方计算得到dh;其中,Mjh为其他参与方持有的Mj的秘密分享因子,dh为第一向量和第二向量内积运算后的秘密分享因子,h∈[1,m],h不等于g、i。
可选地,各计算参与方均持有预设参数δ且δ的值包括k个δ'j,所述δ用于在各计算参与方输出内积运算后的秘密分享因子时的验证;在第一数据拥有方得到di之后,第一数据拥有方计算得到δ'ji;在第二数据拥有方得到dg之后,第二数据拥有方计算/>得到δ'jg;在其他参与方得到dh之后,其他参与方计算/>得到δ'jh;所有计算参与方依据所述δ'ji、δ'jg和δ'jh,协同计算δ”j;各计算参与方分别采用所述δ”j更新各自持有的δ的值。
可选地,所述所有计算参与方依据所述δ'ji、δ'jg和δ'jh,协同计算δ”j,包括:所有计算参与方协同计算所述δ'ji、δ'jg与δ'jh之和,得到δ”j
可选地,所述的方法还包括:各计算参与方输出第一向量和第二向量内积运算后的秘密分享因子;和/或,所有计算参与方依据所述多方安全计算协议,采用第一向量和第二向量内积运算后的秘密分享因子协同进行其他计算,得到对应的计算结果并输出。
可选地,所述的方法还包括:对所述各计算参与方持有的内积运算后的秘密分享因子进行验证;验证成功后,执行所述输出的步骤。
本发明实施例还公开了一种多方安全计算系统,所述多方安全计算系统包括计算参与方,所述计算参与方包括:第一数据拥有方和第二数据拥有方,所述第一数据拥有方持有第一向量X=[X1,X2,...,Xn],所述第二数据拥有方持有第二向量W=[W1,W2,...,Wn],所述系统用于计算所述第一向量和第二向量的内积,n为正整数,所述第一数据拥有方,用于将所述第一向量进行秘密分享,以使各计算参与方持有第一向量的秘密分享因子;所述第二数据拥有方,用于将所述第二向量进行秘密分享,以使各计算参与方持有第二向量的秘密分享因子;依次令j=1,2,3...,k(k通过将n/2向下取整得到),且每次各计算参与方用于进行如下计算:所述计算参与方,用于采用多方安全计算协议协同计算(X2j+W2j-1)*(X2j-1+W2j),得到Mj;其中,各计算参与方持有Mj的秘密分享因子;所述第一数据拥有方,用于在本地计算X2j*X2j-1,得到CXj;所述第二数据拥有方,用于在本地计算W2j-1*W2j,得到CWj;所述第一数据拥有方,用于在本地计算Mji-CXj,得到DXj;所述第二数据拥有方,用于在本地计算Mjg-CWj,得到DWj;所述第一数据拥有方,用于当j=k且完成上述计算后,计算得到di;第二数据拥有方,用于当j=k且完成上述计算后,计算/>得到dg;其中,Mji为第一数据拥有方持有的Mj的秘密分享因子,Mjg为第二数据拥有方持有的Mj的秘密分享因子,i、g∈[1,m],g不等于i,m为计算参与方所包含的参与方的数量,m大于或等于2;di和dg,为第一向量和第二向量内积运算后的秘密分享因子;其中,所述第一向量和第二向量内积运算后的秘密分享因子,用于确定所述第一向量和第二向量的内积。
可选地,各计算参与方均持有预设参数δ且δ的值均为δj,所述δ用于在各计算参与方输出内积运算后的秘密分享因子时的验证;所述第一数据拥有方,还用于在得到DXj之后,基于CXj和δj,计算δji;所述第二数据拥有方,还用于在得到DWj之后,基于CWj和δj,计算δjg;所述计算参与方,还用于依据所述δji和δjg,协同计算δ'j;所述计算参与方,还用于采用所述δ'j更新各自持有的δ的值。
可选地,所述第一数据拥有方,用于在得到DXj之后,所述第一数据拥有方计算CXj与δj之和,得到δji;所述第二数据拥有方,用于在得到DWj之后,所述第二数据拥有方计算CWj与δj之和,得到δjg
可选地,所述计算参与方,用于协同计算所述δji与δjg之和,得到δ'j
可选地,所述计算参与方还包括其他参与方;所述计算参与方,用于协同计算所述δji、δjg与其他参与方持有的δj之和,得到δ'j
可选地,所述计算参与方还包括其他参与方,所述其他参与方,用于当j=k且完成上述计算后,计算得到dh;其中,Mjh为其他参与方持有的Mj的秘密分享因子,dh为第一向量和第二向量内积运算后的秘密分享因子,h∈[1,m],h不等于g、i。
可选地,各计算参与方均持有预设参数δ且δ的值包括k个δ'j,所述δ用于在各计算参与方输出内积运算后的秘密分享因子时的验证;所述第一数据拥有方,用于在第一数据拥有方得到di之后,计算得到δ'ji;所述第二数据拥有方,用于在第二数据拥有方得到dg之后,计算/>得到δ'jg;所述其他参与方,用于在其他参与方得到dh之后,计算/>得到δ'jh;所述计算参与方,用于依据所述δ'ji、δ'jg和δ'jh,协同计算δ”j;所述计算参与方,用于分别采用所述δ”j更新各自持有的δ的值。
可选地,所述计算参与方,用于协同计算所述δ'ji、δ'jg与δ'jh之和,得到δ”j
可选地,所述计算参与方,还用于输出第一向量和第二向量内积运算后的秘密分享因子;和/或,依据所述多方安全计算协议,采用第一向量和第二向量内积运算后的秘密分享因子协同进行其他计算,得到对应的计算结果并输出。
可选地,所述计算参与方,还用于对所述各计算参与方持有的内积运算后的秘密分享因子进行验证;验证成功后,执行所述输出的步骤。
本发明实施例还公开了一种可读介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如本发明实施例中一个或多个所述的数据处理方法。
本发明实施例还公开了一种电子设备,包括:一个或多个处理器;和其上存储有指令的一个或多个可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行如上述本发明实施例中一个或多个所述的数据处理方法。
与现有技术相比,本发明实施例包括以下优点:
本发明实施例中,所述第一数据拥有方将所述第一向量进行秘密分享,以使各计算参与方持有第一向量的秘密分享因子;所述第二数据拥有方将所述第二向量进行秘密分享,以使各计算参与方持有第二向量的秘密分享因子;然后依次令j=1,2,3...,k(k通过将n/2向下取整得到),且每次进行如下计算:所有计算参与方采用多方安全计算协议协同计算(X2j+W2j-1)*(X2j-1+W2j),得到Mj;其中,各计算参与方持有Mj的秘密分享因子;所述第一数据拥有方在本地计算X2j*X2j-1,得到CXj;以及所述第二数据拥有方在本地计算W2j-1*W2j,得到CWj;所述第一数据拥有方在本地计算Mji-CXj,得到DXj;以及所述第二数据拥有方在本地计算Mjg-CWj,得到DWj;Mji为第一数据拥有方持有的Mj的秘密分享因子,Mjg为第二数据拥有方持有的Mj的秘密分享因子,i、g∈[1,m],g不等于i,m为计算参与方所包含的参与方的的数量;此时,各计算参与方即可持有(X2j+W2j-1)*(X2j-1+W2j)-X2j*X2j-1-W2j*W2j-1对应计算结果的秘密分享因子;可见,本发明实施例在计算(X2j+W2j-1)*(X2j-1+W2j)-X2j*X2j-1-W2j*W2j-1过程中,无需各计算参与方协同计算其中(X2j+W2j-1)*(X2j-1+W2j)、X2j*X2j-1和W2j*W2j-1三者之间的加法/减法计算;从而减少了各计算参与方之间的计算量和通信量,能够提高内积计算效率。当j=k且完成上述计算后,所述第一数据拥有方计算得到di;以及第二数据拥有方计算/>得到dg;其中,di和dg为第一向量和第二向量内积运算后的秘密分享因子;所述内积运算后的秘密分享因子,可以用于确定所述第一向量和第二向量的内积,进而实现第一向量和第二向量的内积计算。相对于现有技术而言,本发明实施例还减少了乘法计算的次数,也能够提供内积计算效率。
附图说明
图1是本发明的一种数据处理方法实施例的步骤流程图;
图2是本发明的一种数据处理方法可选实施例的步骤流程图;
图3是本发明的另一种数据处理方法可选实施例的步骤流程图;
图4是本发明的一种多方安全计算系统实施例的结构框图;
图5是本发明的一种多方安全计算系统可选实施例的结构框图;
图6示意性地示出了用于执行根据本发明的方法的电子设备的框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
本发明实施例中提供的数据处理方法,可以应用于多方安全计算系统中,所述多方安全计算系统可以包括计算参与方。一个示例中,所述计算参与方可以包括两个参与方:第一数据拥有方和第二数据拥有方。其中,所述第一数据拥有方持有第一向量,所述第二数据拥有方持有第二向量,所述方法可以用于所述多方安全计算系统中的计算参与方计算第一向量和第二向量的内积。
其中,为了便于后续说明,第一向量采用X表示,X=[X1,X2,...,Xn],n为向量所包含的数据项的数量,n为正整数;第二向量采用W表示,W=[W1,W2,...,Wn]。计算参与方包含的参与方的数量采用m表示,m为大于或等于2的正整数。
本发明实施例中,为了减少乘法计算次数,可以将第一向量和第二向量的内积X1*W1+X2*W2+...+Xn*Wn中的两组乘法计算转换为一组乘法计算,即将X2j*W2j+X2j-1*W2j-1,转换为(X2j+W2j-1)*(X2j-1+W2j)-X2j*X2j-1-W2j*W2j-1,得到(X1+W2)*(X2+W1)-X1*X2-W1*W2+...+(Xk-1+Wk)*(Xk+Wk-1)-Xk-1*Xk-Wk-1*Wk,k通过将n/2向下取整得到,j=1,2,3,...,k。其中,X2j*X2j-1、W2j*W2j-1可由本地计算,(X2j+W2j-1)*(X2j-1+W2j)可以是密文计算。进而将密文乘法计算的次数降为原来的一半,减少各计算参与方的计算量和通信量,从而提高内积计算的效率。
以下对多方安全计算系统中计算参与方计算(X1+W2)*(X2+W1)-X1*X2-W1*W2+...+(Xk-1+Wk)*(Xk+Wk-1)-Xk-1*Xk-Wk-1*Wk进行说明。
参照图1,示出了本发明的一种数据处理方法实施例的步骤流程图,具体可以包括如下步骤:
步骤102、所述第一数据拥有方将所述第一向量进行秘密分享,以使各计算参与方持有第一向量的秘密分享因子;所述第二数据拥有方将所述第二向量进行秘密分享,以使各计算参与方持有第二向量的秘密分享因子。
本发明实施例中,为了在计算第一向量和第二向量内积的过程中,不泄露第一向量和第二向量;第一数据拥有方可以将第一向量加密后分享至各计算参与方,以及第二数据拥有方可以将第二向量加密后分享至各计算参与方。
一个示例中,第一数据拥有方将第一向量加密后分享至各计算参与方的方式可以是,第一数据拥有方以适当的方式拆分第一向量,得到第一向量的多个秘密分享因子,并将各秘密分享因子分享给计算参与方;即第一数据拥有方将所述第一向量进行秘密分享,进而各计算参与方持有第一向量的部分秘密分享因子。
一个示例中,第二数据拥有方将第二向量加密后分享至各计算参与方的方式可以,是第二数据拥有方以适当的方式拆分第二向量,得到第二向量的多个秘密分享因子,并将各秘密分享因子分享给计算参与方;即第二数据拥有方将所述第二向量进行秘密分享,进而各计算参与方持有第二向量的部分秘密分享因子。
(X1+W2)*(X2+W1)-X1*X2-W1*W2+...+(Xk-1+Wk)*(Xk+Wk-1)-Xk-1*Xk-Wk-1*Wk可以看做包括k组(X2j+W2j-1)*(X2j-1+W2j)-X2j*X2j-1-W2j*W2j-1的计算,以及这k组计算之间的加法计算;j的取值范围为1~k。其中,可以先计算k次(X2j+W2j-1)*(X2j-1+W2j)-X2j*X2j-1-W2j*W2j-1,然后再基于k次计算得到的结果进行求和,确定第一向量和第二向量的内积。进而本发明实施例可以依次令j=1,2,3...,k,然后在j等于每一个值时,按照步骤1042~步骤1046,计算(X2j+W2j-1)*(X2j-1+W2j)-X2j*X2j-1-W2j*W2j-1
步骤104、依次令j=1,2,3...,k,且每次进行如下计算:
步骤1042、所有计算参与方采用多方安全计算协议协同计算(X2j+W2j-1)*(X2j-1+W2j),得到Mj;其中,各计算参与方持有Mj的秘密分享因子。
步骤1044、所述第一数据拥有方在本地计算X2j*X2j-1,得到CXj;以及所述第二数据拥有方在本地W2j-1*W2j,得到CWj
其中,步骤1042和步骤1044可以同时执行;也可以先执行步骤1042,再执行步骤1044;还可以先执行步骤1044,再执行步骤1042;本发明实施例对此不作限制。
本发明实施例中,(X2j+W2j-1)*(X2j-1+W2j)可以拆分为两次加法计算和一次乘法计算。其中,所有计算参与方可以基于多方安全计算协议,采用在各自持有的第一向量的秘密分享因子和第二向量的秘密分享因子,协同计算X2j+W2j-1,得到Aj;以及计算X2j-1+W2j,得到Bj。然后再计算Aj*Bj,得到Mj
其中,各计算参与方持有Mj的秘密分享因子。若将第一数据拥有方标识为所有计算参与方中第i个参与方,则第一数据拥有方持有的Mj的秘密分享因子可以称为Mji。若将第二数据拥有方标识为所有计算参与方中第g个参与方,则第二数据拥有方持有的Mj的秘密分享因子可以称为Mjg,i、g∈[1,m],g不等于i。
本发明实施例中,所述第一数据拥有方可以在本地采用X2j和X2j-1本身(即X2j和X2j-1的明文)计算X2j*X2j-1,得到CXj。以及第二数据拥有方可以在本地W2j和W2j-1本身(即W2j和W2j-1的明文)计算W2j-1*W2j,得到CWj
步骤1046、所述第一数据拥有方在本地计算Mji-CXj,得到DXj;以及所述第二数据拥有方在本地计算Mjg-CWj,得到DWj;Mji为第一数据拥有方持有的Mj的秘密分享因子,Mjg为第二数据拥有方持有的Mj的秘密分享因子。
本发明实施例中,可以由所述第一数据拥有方在本地计算Mji-CXj,得到DXj;以及由第二数据拥有方在本地计算Mjg-CWj,得到DWj。也就是说,第一数据拥有方持有(X2j+W2j-1)*(X2j-1+W2j)计算结果的秘密分享因子Mji与X2j*X2j-1的差值,第二数据拥有方持有(X2j+W2j-1)*(X2j-1+W2j)计算结果的秘密分享因子Mjg与W2j*W2j-1的差值。此时可以看做是(X2j+W2j-1)*(X2j-1+W2j)-X2j*X2j-1-W2j*W2j-1的计算结果以秘密分享的方式保存在了各计算参与方,也就是各计算参与方持有(X2j+W2j-1)*(X2j-1+W2j)-X2j*X2j-1-W2j*W2j-1的秘密分享因子。可见,在计算(X2j+W2j-1)*(X2j-1+W2j)-X2j*X2j-1-W2j*W2j-1过程中,无需各计算参与方协同计算其中(X2j+W2j-1)*(X2j-1+W2j)、X2j*X2j-1和W2j*W2j-1三者之间的加法或减法;从而减少了各计算参与方之间的计算量和通信量,能够提高内积计算效率。
步骤106、当j=k且完成上述计算后,所述第一数据拥有方计算得到di;以及第二数据拥有方计算/>得到dg;其中,di和dg为第一向量和第二向量内积运算后的秘密分享因子,其中,所述第一向量和第二向量内积运算后的秘密分享因子,用于确定所述第一向量和第二向量的内积。
待j=k并完成上述步骤1024~步骤1026的计算之后,第一数据拥有方持有k个DXj,第二数据持有方持有k个DWj。为了实现(X1+W2)*(X2+W1)-X1*X2-W1*W2+...+(Xk-1+Wk)*(Xk+Wk-1)-Xk-1*Xk-Wk-1*Wk,第一数据拥有方可以将k个DXj进行求和,即计算得到di;以及第二数据拥有方可以将k个DWj进行求和,即计算/>得到dg;进而各计算参与方持有第一向量和第二向量内积运算后的秘密分享因子。也就是说,各计算参与方持有(X1+W2)*(X2+W1)-X1*X2-W1*W2+...+(Xk-1+Wk)*(Xk+Wk-1)-Xk-1*Xk-Wk-1*Wk对应计算结果的秘密分享因子。后续可以由计算任务指定的数据服务系统,根据多方安全计算协议对应的秘密分享方式,采用第一向量和第二向量内积运算后的秘密分享因子如采用di和dg,计算获得所述第一向量和第二向量的内积。
综上,本发明实施例中,所述第一数据拥有方将所述第一向量进行秘密分享,以使各计算参与方持有第一向量的秘密分享因子;所述第二数据拥有方将所述第二向量进行秘密分享,以使各计算参与方持有第二向量的秘密分享因子;然后依次令j=1,2,3...,k(k通过将n/2向下取整得到),且每次进行如下计算:所有计算参与方采用多方安全计算协议协同计算(X2j+W2j-1)*(X2j-1+W2j),得到Mj;其中,各计算参与方持有Mj的秘密分享因子;所述第一数据拥有方在本地计算X2j*X2j-1,得到CXj;以及所述第二数据拥有方在本地计算W2j-1*W2j,得到CWj;所述第一数据拥有方在本地计算Mji-CXj,得到DXj;以及所述第二数据拥有方在本地计算Mjg-CWj,得到DWj;Mji为第一数据拥有方持有的Mj的秘密分享因子,Mjg为第二数据拥有方持有的Mj的秘密分享因子,i、g∈[1,m],g不等于i,m为计算参与方所包含的参与方的的数量;此时,各计算参与方即可持有(X2j+W2j-1)*(X2j-1+W2j)-X2j*X2j-1-W2j*W2j-1对应计算结果的秘密分享因子;可见,本发明实施例在计算(X2j+W2j-1)*(X2j-1+W2j)-X2j*X2j-1-W2j*W2j-1过程中,无需各计算参与方协同计算其中(X2j+W2j-1)*(X2j-1+W2j)、X2j*X2j-1和W2j*W2j-1三者之间的加法/减法计算;从而减少了各计算参与方之间的计算量和通信量,能够提高内积计算效率。当j=k且完成上述计算后,所述第一数据拥有方计算得到di;以及第二数据拥有方计算/>得到dg;其中,di和dg为第一向量和第二向量内积运算后的秘密分享因子;所述内积运算后的秘密分享因子,可以用于确定所述第一向量和第二向量的内积,进而实现第一向量和第二向量的内积计算。相对于现有技术而言,本发明实施例还减少了乘法计算的次数,也能够提供内积计算效率。
本发明的一个可选实施例中,所述计算参与方可以包括3个及3个以上的参与方:第一数据拥有方、第二数据拥有方和至少一个其他参与方。以下对当所述计算参与方还包括其他参与方时,对其他参与方在计算第一向量和第二向量内积过程中的计算进行说明。
参照图2,示出了本发明的一种数据处理方法可选实施例的步骤流程图。
步骤202、所述第一数据拥有方将所述第一向量进行秘密分享,以使各计算参与方持有第一向量的秘密分享因子;所述第二数据拥有方将所述第二向量进行秘密分享,以使各计算参与方持有第二向量的秘密分享因子。
一个示例中,所述第二数据拥有方持有的第二向量可以是模型的权重向量,所述第一数据拥有方持有的第一向量可以是用于训练模型的数据向量,也可以是用于进行预测的数据向量;本发明实施例对此不作限制。
步骤204、依次令j=1,2,3...,k,且每次进行如下计算:
步骤2042、所有计算参与方采用多方安全计算协议协同计算(X2j+W2j-1)*(X2j-1+W2j),得到Mj;其中,各计算参与方持有Mj的秘密分享因子。
步骤2044、所述第一数据拥有方在本地计算X2j*X2j-1,得到CXj;以及所述第二数据拥有方在本地计算W2j-1*W2j,得到CWj
步骤2046、所述第一数据拥有方在本地计算Mji-CXj,得到DXj;以及所述第二数据拥有方在本地计算Mjg-CWj,得到DWj;Mji为第一数据拥有方持有的Mj的秘密分享因子,Mjg为第二数据拥有方持有的Mj的秘密分享因子,i、g∈[1,m],g不等于i,m为计算参与方的数量。
其中,步骤2042~步骤2046,与上述步骤步骤1042~步骤1046类似,在此不再赘述。
若将其他参与方标识为所有计算参与方中的第h个参与方,则所有计算参与方采用多方安全计算协议协同计算(X2j+W2j-1)*(X2j-1+W2j),得到Mj后,其他参与方持有Mj的秘密分享因子可以称为Mjh,h∈[1,m],h不等于g、i。其中,若计算参与方包括多个其他参与方,则每个其他参与方的h取值可以不同。
需要注意的是,在所有计算参与方采用多方安全计算协议协同计算(X2j+W2j-1)*(X2j-1+W2j),得到Mj后,在所述第一数据拥有方在本地计算Mji-CXj,得到DXj;以及所述第二数据拥有方在本地计算Mjg-CWj,得到DWj过程中,其他参与方不对其持有的Mjh进行计算。
待执行完步骤2046后,第一数据拥有方持有(X2j+W2j-1)*(X2j-1+W2j)计算结果的秘密分享因子与X2j*X2j-1的差值,第二数据拥有方持有(X2j+W2j-1)*(X2j-1+W2j)计算结果的秘密分享因子与W2j*W2j-1的差值;以及其他参与方持有(X2j+W2j-1)*(X2j-1+W2j)计算结果的秘密分享因子。此时可以看做是(X2j+W2j-1)*(X2j-1+W2j)-X2j*X2j-1-W2j*W2j-1的计算结果以秘密分享的方式保存在了各计算参与方(即第一数据拥有方、第二数据拥有方和其他参与方),也就是的各计算参与方持有(X2j+W2j-1)*(X2j-1+W2j)-X2j*X2j-1-W2j*W2j-1的秘密分享因子。
步骤206、当j=k且完成上述计算后,所述第一数据拥有方计算得到di;以及第二数据拥有方计算/>得到dg;其中,di和dg为第一向量和第二向量内积运算后的秘密分享因子。
其中,步骤206与上述步骤106类似,在此不再赘述。
步骤208、其他参与方计算得到dh;其中,Mjh为其他参与方持有的Mj的秘密分享因子,dh为第一向量和第二向量内积运算后的秘密分享因子,h∈[1,m],h不等于g、i。
本发明实施例中,当j=k且完成上述步骤2042~步骤2046的计算后,其他参与方持有k个Mjh。为了实现
(X1+W2)*(X2+W1)-X1*X2-W1*W2+...+(Xk-1+Wk)*(Xk+Wk-1)-Xk-1*Xk-Wk-1*Wk,其他参与方可以将k个Mjh进行求和,即计算得到dh;进而其他参与方可以持有第一向量和第二向量内积运算后的秘密分享因子dh。当其他参与方包括多个时,每个其他参与方均可以执行步骤208;进而每个其他参与方均持有第一向量和第二向量内积运算后的秘密分享因子dh
进而其他参与方、第一数据拥有方和第二数据拥有方,均持有第一向量和第二向量内积运算后的秘密分享因子。也就是说,其他参与方、第一数据拥有方和第二数据拥有方持有(X1+W2)*(X2+W1)-X1*X2-W1*W2+...+(Xk-1+Wk)*(Xk+Wk-1)-Xk-1*Xk-Wk-1*Wk对应计算结果的秘密分享因子。后续可以由计算任务指定的数据服务系统,根据多方安全计算协议对应的秘密分享方式,采用第一向量和第二向量内积运算后的秘密分享因子如采用di、dg和dh,计算获得所述第一向量和第二向量的内积。
本发明的一个可选实施例中,以下将上述内积计算的方法与SPDZ协议(一种多方安全计算协议)结合进行说明。
本发明实施例中,在各计算参与方输出计算结果的秘密分享因子之前,需要进行MAC((Message Authentication Code,消息认证码)验证;以防计算参与方对计算数据进行篡改,保证数据的准确性。其中,各计算参与方持有MAC的秘密分享因子MACj,两者之间的关系可以为:MAC=(MACj+δ)*α;其中,α为密钥,各计算参与方持有密钥的秘密分享因子。
本发明实施例中,各计算参与方持有的MAC的秘密分享因子,随着各计算参与方依据多方安全计算协议协同采用各自持有的数据进行计算同时,进行相对应的计算。其中,Mji-CXj是第一数据拥有方本地计算的,Mjg-CWj和/>是第二数据拥有方本地计算的,/>是其他参与方本地计算的;这些计算均不是第一数据拥有方、第二数据拥有方和其他参与方本端采用多方安全计算协议协同进行计算的;因此各计算参与方持有的MAC秘密分享因子是不变的。为了保证MAC的一致性,本发明实施例可以在得到DXj和DWj之后,以及在得到所述内积运算后的秘密分享因子di、dg和dh之后,均更新各计算参与方持有的预设参数δ的值;可以如下:
参照图3,示出了本发明的另一种数据处理方法可选实施例的步骤流程图。
步骤302、所述第一数据拥有方将所述第一向量进行秘密分享,以使各计算参与方持有第一向量的秘密分享因子;所述第二数据拥有方将所述第二向量进行秘密分享,以使各计算参与方持有第二向量的秘密分享因子。
步骤304、依次令j=1,2,3...,k,且每次进行如下计算:
步骤3042、所有计算参与方采用多方安全计算协议协同计算(X2j+W2j-1)*(X2j-1+W2j),得到Mj;其中,各计算参与方持有Mj的秘密分享因子。
步骤3044、所述第一数据拥有方在本地计算X2j*X2j-1,得到CXj;以及所述第二数据拥有方在本地计算W2j-1*W2j,得到CWj
步骤3046、所述第一数据拥有方在本地计算Mji-CXj,得到DXj;以及所述第二数据拥有方在本地计算Mjg-CWj,得到DWj;Mji为第一数据拥有方持有的Mj的秘密分享因子,Mjg为第二数据拥有方持有的Mj的秘密分享因子,i、g∈[1,m],g不等于i。
其中,步骤3042~步骤3046,与上述步骤步骤1042~步骤1046类似,在此不再赘述。
步骤3048、在得到DXj之后,所述第一数据拥有方基于CXj和δj,计算δji
步骤30410、在得到DWj之后,所述第二数据拥有方基于CWj和δj,计算δjg
本发明实施例中,在所有计算参与方每次完成上述步骤3042~步骤3046后,各计算参与方持有预设参数δ的值均为δj
由于第一数据拥有方在得到DXj,其持有的MAC的秘密分享因子MACji=(Mjij)*αi,变成了MACji=(DXjj)*αi;此时,为了保证第一数据持有方的MACji不变,第一数据拥有方可以基于CXj和δj,计算δji。一个示例中,所述在得到DXj之后,所述第一数据拥有方基于CXj和δj,计算δji,包括:在得到DXj之后,所述第一数据拥有方计算CXj与δj之和,得到δji。即δji=CXjj=X2j*X2j-1j
由于第二数据拥有方在得到DWj,其持有的MAC的秘密分享因子MACjg=(Mjgj)*αg,变成了MACjg=(DWjj)*αg;此时,为了保证第二数据持有方的MACjg不变,第二数据拥有方可以采用CWj与δj之和,得到δg。一个示例中,所述在得到DWj之后,所述第二数据拥有方基于CWj和δj,计算δjg,包括:在得到DWj之后,所述第二数据拥有方计算CWj与δj之和,得到δjg。即δjg=CWjj=W2j*W2j-1j
需要注意的是,当计算参与方包括其他参与方时,其他参与方持有的δ的值依然为δj
步骤30412、所有计算参与方依据所述δji和δjg,协同计算δ'j
步骤30414、各计算参与方分别采用所述δ'j更新各自持有的δ的值。
由于第一数据提供方和第二数据提供方持有的δ的值发生了变化,为了保证MAC的一致性,所有计算参与方可以依据第一数据提供方持有的δji和第二数据提供方持有的δjg,协同计算δ'j;然后各计算参与方分别采用所述δ'j更新各自持有的δ的值。
本发明的一个示例中,若计算参与方仅包括:第一数据拥有方和第二数据拥有方,则所有计算参与方依据所述δji和δjg,协同计算δ'j,可以包括:所有计算参与方协同计算所述δji与δjg之和,得到δ'j;即δ'j=δjijg
本发明的一个示例中,若计算参与方包括:第一数据拥有方、第二数据拥有方和其他参与方,则所有计算参与方依据所述δji和δjg,协同计算δ'j,可以包括:所有计算参与方协同计算所述δji、δjg与其他参与方持有的δj之和,得到δ'j;即δ'j=δjijgj。其中,当其他参与方包括s个时,δ'j=δjijg+s*δj。s=m-2,s为正整数。
步骤306、当j=k且完成上述计算后,所述第一数据拥有方计算得到di;以及第二数据拥有方计算/>得到dg;其中,di和dg为第一向量和第二向量内积运算后的秘密分享因子。
步骤308、在第一数据拥有方得到di之后,第一数据拥有方计算得到δ'ji
步骤310、在第二数据拥有方得到dg之后,第二数据拥有方计算得到δ'jg
其中,在执行完步骤30414后,各计算参与方持有的δ的值为δ'j
当所述第一数据拥有方计算得到di之后,第一数据拥有方持有的MAC的秘密分享因子MACji变成了MACji=(dij)*αi;为了保证第一数据持有方的MACji不变,第一数据拥有方可以将每次计算DXj之后并对δ进行更新得到的δ'j相加,即计算/>得到δ'ji
当所述第二数据拥有方计算得到dg之后,第二数据拥有方持有的MAC的秘密分享因子MACjg变成了MACjg=(dgj)*αg;为了保证第二数据持有方的MACjg不变,第二数据拥有方可以将每次计算DWj之后对δ进行更新得到的δ'j相加,即计算/>得到δ'jg
若所述计算参与方包括:第一数据拥有方、第二数据拥有方和其他参与方,则其他参与方还可以执行步骤312。
步骤312、其他参与方计算得到dh;其中,Mjh为其他参与方持有的Mj的秘密分享因子,dh为第一向量和第二向量内积运算后的分量,h∈[1,m],h不等于g、i。
步骤314、在其他参与方得到dh之后,其他参与方计算得到δ'jh
当所述其他参与方计算得到dg之后,其他参与方持有的MAC的秘密分享因子MACjh变成了MACjh=(dhj)*αh;为了保证其他参与方的MACjh不变,其他参与方可以将每次计算Mj之后对δ进行更新得到的δj相加,即计算/>得到δ'jh
步骤316、所有计算参与方依据所述δ'ji、δ'jg和δ'jh,协同计算δ”j
步骤318、各计算参与方分别采用所述δ”j更新各自持有的δ的值。
当计算参与方包括其他参与方时,所有计算参与方可以基于第一数据拥有方持有的δ'ji、第二数据拥有方持有的δ'jg和其他参与方持有的δ'jh,计算δ'j,然后采用δ'j更新各自持有的δ的值。其中,所有计算参与方可以计算δ'ji、δ'jg与δ'jh之和,得到δ”j;然后各计算参与方分别采用所述δ”j更新各自持有的δ的值。
当然,若计算参与方仅包括第一数据拥有方和第二数据拥有方,则在执行完步骤312后,可以无需执行步骤314-步骤316;然后所有计算参与方可以基于第一数据拥有方持有的δ'ji和第二数据拥有方持有的δ'jg,计算δ”j,再采用δ”j更新各自持有的δ的值。其中,所有计算参与方可以协同计算δ'ji与δ'jg之和,得到δ”j,即δ'j=δ'ji+δ'jg。再执行步骤318。
在各计算参与方持有第一向量和第二向量内积运算后的秘密分享因子后,一个示例中,各计算参与方输出第一向量和第二向量内积运算后的秘密分享因子。其中,各计算参与方可以向计算任务指定的数据服务系统,输出第一向量和第二向量内积运算后的秘密分享因子。
其中,若计算参与方仅包括第一数据拥有方和第二数据拥有方,则所述第一数据拥有方输出其持有的内积运算后的秘密分享因子di,以及所述第二数据拥有方输出其持有的内积运算后的秘密分享因子dg。此时,数据服务系统可以根据多方安全计算协议对应的秘密分享方式,采用di和dg生成第一向量和第二向量的内积。
若计算参与方包括:第一数据拥有方、第二数据拥有方和其他参与方,则所述第一数据拥有方输出其持有的内积运算后的秘密分享因子di,所述第二数据拥有方输出其持有的内积运算后的秘密分享因子dg,以及其他参与方输出其持有的内积运算后的秘密分享因子dh。此时,数据服务系统可以根据多方安全计算协议对应的秘密分享方式,采用所述内积运算后的秘密分享因子di、dg和dh,生成所述第一向量和第二向量的内积。
在各计算参与方持有第一向量和第二向量内积运算后的秘密分享因子后,一个示例中,所有计算参与方依据所述多方安全协议,采用第一向量和第二向量内积运算后的秘密分享因子协同进行其他计算,得到对应的计算结果并输出。
若计算参与方仅包括第一数据拥有方和第二数据拥有方,则第一数据拥有方和第二数据拥有方,可以依据多方安全计算协议,在各自持有的di和dg的基础上进行其他计算。在完成其他计算后,第一数据提供方和第二数据提供方各自持有其他计算对应计算结果的秘密分享因子;然后第一数据提供方和第二数据提供方,可以分别输出各自持有的其他计算对应计算结果的秘密分享因子至数据服务系统。
若计算参与方包括:第一数据拥有方、第二数据拥有方和其他参与方,则第一数据拥有方、第二数据拥有方和其他参与方,可以依据多方安全计算协议,在各自持有的di、dg和dh的基础上进行其他计算。在完成其他计算后,第一数据提供方、第二数据提供方和其他参与方,各自持有其他计算对应计算结果的秘密分享因子;然后第一数据提供方、第二数据提供方和其他参与方,可以分别输出各自持有的其他计算对应计算结果的秘密分享因子至数据服务系统。
其中,是直接输出内积运算后的秘密分享因子,还是采用第一向量和第二向量内积运算后的秘密分享因子协同进行其他计算后再输出,可以根据计算任务确定,本发明实施例对此不作限制。
本发明实施例中,在各计算参与方在输出内积运算后的秘密分享因子之前,所述的方法还包括:对所述各计算参与方持有的内积运算后的秘密分享因子进行验证,验证成功后,执行所述输出的步骤。其中,对所述各计算参与方持有的内积运算后的秘密分享因子进行验证,可以是对各计算参与方各自持有的与内积运算后的秘密分享因子对应的MAC的秘密分享因子进行验证;可以基于各计算参与方各自持有的MAC的秘密分享因子、δ和密钥的秘密分享因子,进行MAC验证。验证失败后,可以不输出内积运算后的秘密分享因子。
当然,在各计算参与方在输出其他计算对应计算结果的秘密分享因子之前,所述的方法还包括:对所述各计算参与方持有的其他计算结果的秘密分享因子进行验证,验证成功后,执行所述输出的步骤。
综上,相对于现有技术而言,本发明实施例通过得到DXj之后,所述第一数据拥有方基于CXj和δj,计算δji;在得到DWj之后,所述第二数据拥有方基于CWj和δj,计算δjg;所有计算参与方依据所述δji和δjg,协同计算δ'j;各计算参与方分别采用所述δ'j更新各自持有的δ的值。以及在第一数据拥有方得到di之后,第一数据拥有方计算得到δ'ji;在第二数据拥有方得到dg之后,第二数据拥有方计算/>得到δ'jg;在其他参与方得到dh之后,其他参与方计算/>得到δ'jh;所有计算参与方依据所述δ'ji、δ'jg和δ'jh,协同计算δ”j;各计算参与方分别采用所述δ”j更新各自持有的δ的值;与SPDZ协议更好的结合,实现无需各计算参与方协同计算其中(X2j+W2j-1)*(X2j-1+W2j)、X2j*X2j-1和W2j*W2j-1三者之间的加法/减法计算,从而提高内积计算的效率。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图4,示出了本发明一种多方安全计算系统实施例的结构框图。
本发明实施例提供了一种多方安全计算系统400,包括计算参与方402,所述计算参与方402包括:第一数据拥有方4022和第二数据拥有方4024,所述第一数据拥有方4022持有第一向量X=[X1,X2,...,Xn],所述第二数据拥有方4024持有第二向量W=[W1,W2,...,Wn],n为正整数。其中:
所述第一数据拥有方4022,用于将所述第一向量进行秘密分享,以使各计算参与方持有第一向量的秘密分享因子;
所述第二数据拥有方4024,用于将所述第二向量进行秘密分享,以使各计算参与方持有第二向量的秘密分享因子;
依次令j=1,2,3...,k(k通过将n/2向下取整得到),且每次各计算参与方402用于进行如下计算:
所述计算参与方402,用于采用多方安全计算协议协同计算(X2j+W2j-1)*(X2j-1+W2j),得到Mj;其中,各计算参与方持有Mj的秘密分享因子;
所述第一数据拥有方4022,用于在本地计算X2j*X2j-1,得到CXj
所述第二数据拥有方4024,用于在本地计算W2j-1*W2j,得到CWj
所述第一数据拥有方4022,用于在本地计算Mji-CXj,得到DXj
所述第二数据拥有方4024,用于在本地计算Mjg-CWj,得到DWj
所述第一数据拥有方4022,用于当j=k且完成上述计算后,计算得到di
第二数据拥有方4024,用于当j=k且完成上述计算后,计算得到dg
其中,Mji为第一数据拥有方持有的Mj的秘密分享因子,Mjg为第二数据拥有方持有的Mj的秘密分享因子,i、g∈[1,m],g不等于i,m为计算参与方所包含的参与方的数量,m大于或等于2;di和dg,为第一向量和第二向量内积运算后的秘密分享因子;其中,所述第一向量和第二向量内积运算后的秘密分享因子,用于确定所述第一向量和第二向量的内积。
参照图5,示出了本发明一种多方安全计算系统可选实施例的结构框图。
本发明一个可选实施例中,各计算参与方均持有预设参数δ且δ的值均为δj,所述δ用于在各计算参与方输出内积运算后的秘密分享因子时的验证;
所述第一数据拥有方4022,还用于在得到DXj之后,基于CXj和δj,计算δji
所述第二数据拥有方4024,还用于在得到DWj之后,基于CWj和δj,计算δjg
所述计算参与方402,还用于依据所述δji和δjg,协同计算δ'j
所述计算参与方402,还用于采用所述δ'j更新各自持有的δ的值。
本发明一个可选实施例中,所述第一数据拥有方4022,用于在得到DXj之后,所述第一数据拥有方计算CXj与δj之和,得到δji
所述第二数据拥有方4024,用于在得到DWj之后,所述第二数据拥有方计算CWj与δj之和,得到δjg
本发明一个可选实施例中,所述计算参与方402,用于协同计算所述δji与δjg之和,得到δ'j
本发明一个可选实施例中,所述计算参与方402还包括其他参与方4026;
所述计算参与方402,用于协同计算所述δji、δjg与其他参与方4026持有的δj之和,得到δ'j
本发明一个可选实施例中,所述计算参与方402还包括其他参与方4026,
所述其他参与方4026,用于当j=k且完成上述计算后,计算得到dh;其中,Mjh为其他参与方持有的Mj的秘密分享因子,dh为第一向量和第二向量内积运算后的秘密分享因子,h∈[1,m],h不等于g、i。
本发明一个可选实施例中,各计算参与方均持有预设参数δ且δ的值包括k个δ'j,所述δ用于在各计算参与方输出内积运算后的秘密分享因子时的验证;
所述第一数据拥有方4022,用于在第一数据拥有方得到di之后,计算得到δ'ji
所述第二数据拥有方4024,用于在第二数据拥有方得到dg之后,计算得到δ'jg
所述其他参与方4026,用于在其他参与方得到dh之后,计算得到δ'jh
所述计算参与方402,用于依据所述δ'ji、δ'jg和δ'jh,协同计算δ”j
所述计算参与方402,用于分别采用所述δ”j更新各自持有的δ的值。
本发明一个可选实施例中,所述计算参与方402,用于协同计算所述δ'ji、δ'jg与δ'jh之和,得到δ”j
本发明一个可选实施例中,所述计算参与方402,还用于输出第一向量和第二向量内积运算后的秘密分享因子;和/或,依据所述多方安全协议,采用第一向量和第二向量内积运算后的秘密分享因子协同进行其他计算,得到对应的计算结果并输出。
本发明一个可选实施例中,所述计算参与方402,还用于对所述各计算参与方持有的内积运算后的秘密分享因子进行验证;验证成功后,执行所述输出的步骤。
综上,本发明实施例中,所述第一数据拥有方将所述第一向量进行秘密分享,以使各计算参与方持有第一向量的秘密分享因子;所述第二数据拥有方将所述第二向量进行秘密分享,以使各计算参与方持有第二向量的秘密分享因子;然后依次令j=1,2,3...,k(k通过将n/2向下取整得到),且每次进行如下计算:所有计算参与方采用多方安全计算协议协同计算(X2j+W2j-1)*(X2j-1+W2j),得到Mj;其中,各计算参与方持有Mj的秘密分享因子;所述第一数据拥有方在本地计算X2j*X2j-1,得到CXj;以及所述第二数据拥有方在本地计算W2j-1*W2j,得到CWj;所述第一数据拥有方在本地计算Mji-CXj,得到DXj;以及所述第二数据拥有方在本地计算Mjg-CWj,得到DWj;Mji为第一数据拥有方持有的Mj的秘密分享因子,Mjg为第二数据拥有方持有的Mj的秘密分享因子,i、g∈[1,m],g不等于i,m为计算参与方所包含的参与方的的数量;此时,各计算参与方即可持有(X2j+W2j-1)*(X2j-1+W2j)-X2j*X2j-1-W2j*W2j-1对应计算结果的秘密分享因子;可见,本发明实施例在计算(X2j+W2j-1)*(X2j-1+W2j)-X2j*X2j-1-W2j*W2j-1过程中,无需各计算参与方协同计算其中(X2j+W2j-1)*(X2j-1+W2j)、X2j*X2j-1和W2j*W2j-1三者之间的加法/减法计算;从而减少了各计算参与方之间的计算量和通信量,能够提高内积计算效率。当j=k且完成上述计算后,所述第一数据拥有方计算得到di;以及第二数据拥有方计算/>得到dg;其中,di和dg为第一向量和第二向量内积运算后的秘密分享因子;所述内积运算后的秘密分享因子,可以用于确定所述第一向量和第二向量的内积,进而实现第一向量和第二向量的内积计算。相对于现有技术而言,本发明实施例还减少了乘法计算的次数,也能够提供内积计算效率。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明实施例还提供了一种可读介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如本发明实施例中一个或多个所述的数据处理方法。
本发明实施例还提供了一种电子设备,包括:一个或多个处理器;和其上存储有指令的一个或多个可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行如上述本发明实施例中一个或多个所述的数据处理方法。
本发明实施例一个示例中提供了一种电子设备,例如服务器,图6示出了可以实现根据本发明的服务器,例如管理服务器、存储服务器、应用服务器、云控服务、服务器集群等。该服务器传统上包括处理器610和以存储器620形式的计算机程序产品或者计算机可读介质。存储器620可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。存储器620具有用于执行上述方法中的任何方法步骤的程序代码631的存储空间630。例如,用于程序代码的存储空间630可以包括分别用于实现上面的方法中的各种步骤的各个程序代码631。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。这些计算机程序产品包括诸如硬盘,紧致盘(CD)、存储卡或者软盘之类的程序代码载体。这样的计算机程序产品通常为便携式或者固定存储单元。该存储单元可以具有与图6的服务器中的存储器620类似布置的存储段、存储空间等。程序代码可以例如以适当形式进行压缩。通常,存储单元包括计算机可读代码,即可以由例如诸如610之类的处理器读取的代码,这些代码当由服务器运行时,导致该服务器执行上面所描述的方法中的各个步骤。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种数据处理方法、一种多方安全计算系统和一种电子设备,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (22)

1.一种数据处理方法,其特征在于,应用于多方安全计算系统中,所述多方安全计算系统包括计算参与方,所述计算参与方包括:第一数据拥有方和第二数据拥有方,所述第一数据拥有方持有第一向量X=[X1,X2,...,Xn],所述第二数据拥有方持有第二向量W=[W1,W2,...,Wn],所述方法用于计算所述第一向量和第二向量的内积,n为正整数,所述方法包括:
所述第一数据拥有方将所述第一向量进行秘密分享,以使各计算参与方持有第一向量的秘密分享因子;所述第二数据拥有方将所述第二向量进行秘密分享,以使各计算参与方持有第二向量的秘密分享因子;
依次令j=1,2,3...,k,k通过将n/2向下取整得到,且每次进行如下计算:
所有计算参与方采用多方安全计算协议协同计算(X2j+W2j-1)*(X2j-1+W2j),得到Mj;其中,各计算参与方持有Mj的秘密分享因子;
所述第一数据拥有方在本地计算X2j*X2j-1,得到CXj;以及所述第二数据拥有方在本地计算W2j-1*W2j,得到CWj
所述第一数据拥有方在本地计算Mji-CXj,得到DXj;以及所述第二数据拥有方在本地计算Mjg-CWj,得到DWj;Mji为第一数据拥有方持有的Mj的秘密分享因子,Mjg为第二数据拥有方持有的Mj的秘密分享因子,i、g∈[1,m],g不等于i,m为计算参与方所包含的参与方的数量,m大于或等于2;
当j=k且完成上述计算后,所述第一数据拥有方计算得到di;以及第二数据拥有方计算/>得到dg;其中,di和dg,为第一向量和第二向量内积运算后的秘密分享因子;其中,所述第一向量和第二向量内积运算后的秘密分享因子,用于确定所述第一向量和第二向量的内积。
2.根据权利要求1所述的方法,其特征在于,各计算参与方均持有预设参数δ且δ的值均为δj,所述δ用于在各计算参与方输出内积运算后的秘密分享因子时的验证;所述的方法还包括:
在得到DXj之后,所述第一数据拥有方基于CXj和δj,计算δji
在得到DWj之后,所述第二数据拥有方基于CWj和δj,计算δjg
所有计算参与方依据所述δji和δjg,协同计算δ′j
各计算参与方分别采用所述δ′j更新各自持有的δ的值。
3.根据权利要求2所述的方法,其特征在于,
所述在得到DXj之后,所述第一数据拥有方基于CXj和δj,计算δji,包括:
在得到DXj之后,所述第一数据拥有方计算CXj与δj之和,得到δji
所述在得到DWj之后,所述第二数据拥有方基于CWj和δj,计算δjg,包括:
在得到DWj之后,所述第二数据拥有方计算CWj与δj之和,得到δjg
4.根据权利要求2所述的方法,其特征在于,所述所有计算参与方依据所述δji和δjg,协同计算δ′j,包括:
所有计算参与方协同计算所述δji与δjg之和,得到δ′j
5.根据权利要求2所述的方法,其特征在于,所述计算参与方还包括其他参与方;所述所有计算参与方依据所述δji和δjg,协同计算δ′j,包括:
所有计算参与方协同计算所述δji、δjg与其他参与方持有的δj之和,得到δ'j
6.根据权利要求1所述的方法,其特征在于,所述计算参与方还包括其他参与方,所述的方法还包括:
当j=k且完成上述计算后,其他参与方计算得到dh;其中,Mjh为其他参与方持有的Mj的秘密分享因子,dh为第一向量和第二向量内积运算后的秘密分享因子,h∈[1,m],h不等于g、i。
7.根据权利要求6所述的方法,其特征在于,各计算参与方均持有预设参数δ且δ的值包括k个δ′j,所述δ用于在各计算参与方输出内积运算后的秘密分享因子时的验证;
在第一数据拥有方得到di之后,第一数据拥有方计算得到δ′ji
在第二数据拥有方得到dg之后,第二数据拥有方计算得到δ′jg
在其他参与方得到dh之后,其他参与方计算得到δ′jh
所有计算参与方依据所述δ′ji、δ′jg和δ′jh,协同计算δ″j
各计算参与方分别采用所述δ″j更新各自持有的δ的值。
8.根据权利要求7所述的方法,其特征在于,所述所有计算参与方依据所述δ′ji、δ′jg和δ′jh,协同计算δ″j,包括:
所有计算参与方协同计算所述δ′ji、δ′jg与δ′jh之和,得到δ″j
9.根据权利要求1所述的方法,其特征在于,所述的方法还包括:
各计算参与方输出第一向量和第二向量内积运算后的秘密分享因子;和/或,
所有计算参与方依据所述多方安全计算协议,采用第一向量和第二向量内积运算后的秘密分享因子协同进行其他计算,得到对应的计算结果并输出。
10.根据权利要求9所述的方法,其特征在于,所述的方法还包括:
对所述各计算参与方持有的内积运算后的秘密分享因子进行验证;
验证成功后,执行所述输出的步骤。
11.一种多方安全计算系统,其特征在于,所述多方安全计算系统包括计算参与方,所述计算参与方包括:第一数据拥有方和第二数据拥有方,所述第一数据拥有方持有第一向量X=[X1,X2,...,Xn],所述第二数据拥有方持有第二向量W=[W1,W2,...,Wn],所述系统用于计算所述第一向量和第二向量的内积,n为正整数,
所述第一数据拥有方,用于将所述第一向量进行秘密分享,以使各计算参与方持有第一向量的秘密分享因子;
所述第二数据拥有方,用于将所述第二向量进行秘密分享,以使各计算参与方持有第二向量的秘密分享因子;
依次令j=1,2,3...,k,k通过将n/2向下取整得到,且每次各计算参与方用于进行如下计算:
所述计算参与方,用于采用多方安全计算协议协同计算(X2j+W2j-1)*(X2j-1+W2j),得到Mj;其中,各计算参与方持有Mj的秘密分享因子;
所述第一数据拥有方,用于在本地计算X2j*X2j-1,得到CXj
所述第二数据拥有方,用于在本地计算W2j-1*W2j,得到CWj
所述第一数据拥有方,用于在本地计算Mji-CXj,得到DXj
所述第二数据拥有方,用于在本地计算Mjg-CWj,得到DWj
所述第一数据拥有方,用于当j=k且完成上述计算后,计算得到di
第二数据拥有方,用于当j=k且完成上述计算后,计算得到dg
其中,Mji为第一数据拥有方持有的Mj的秘密分享因子,Mjg为第二数据拥有方持有的Mj的秘密分享因子,i、g∈[1,m],g不等于i,m为计算参与方所包含的参与方的数量,m大于或等于2;di和dg,为第一向量和第二向量内积运算后的秘密分享因子;其中,所述第一向量和第二向量内积运算后的秘密分享因子,用于确定所述第一向量和第二向量的内积。
12.根据权利要求11所述的系统,其特征在于,各计算参与方均持有预设参数δ且δ的值均为δj,所述δ用于在各计算参与方输出内积运算后的秘密分享因子时的验证;
所述第一数据拥有方,还用于在得到DXj之后,基于CXj和δj,计算δji
所述第二数据拥有方,还用于在得到DWj之后,基于CWj和δj,计算δjg
所述计算参与方,还用于依据所述δji和δjg,协同计算δ′j
所述计算参与方,还用于采用所述δ′j更新各自持有的δ的值。
13.根据权利要求12所述的系统,其特征在于,
所述第一数据拥有方,用于在得到DXj之后,所述第一数据拥有方计算CXj与δj之和,得到δji
所述第二数据拥有方,用于在得到DWj之后,所述第二数据拥有方计算CWj与δj之和,得到δjg
14.根据权利要求12所述的系统,其特征在于,
所述计算参与方,用于协同计算所述δji与δjg之和,得到δ′j
15.根据权利要求12所述的系统,其特征在于,所述计算参与方还包括其他参与方;
所述计算参与方,用于协同计算所述δji、δjg与其他参与方持有的δj之和,得到δ′j
16.根据权利要求11所述的系统,其特征在于,所述计算参与方还包括其他参与方,
所述其他参与方,用于当j=k且完成上述计算后,计算得到dh;其中,Mjh为其他参与方持有的Mj的秘密分享因子,dh为第一向量和第二向量内积运算后的秘密分享因子,h∈[1,m],h不等于g、i。
17.根据权利要求16所述的系统,其特征在于,各计算参与方均持有预设参数δ且δ的值包括k个δ′j,所述δ用于在各计算参与方输出内积运算后的秘密分享因子时的验证;
所述第一数据拥有方,用于在第一数据拥有方得到di之后,计算得到δ′ji
所述第二数据拥有方,用于在第二数据拥有方得到dg之后,计算得到δ′jg
所述其他参与方,用于在其他参与方得到dh之后,计算得到δ′jh
所述计算参与方,用于依据所述δ′ji、δ′jg和δ′jh,协同计算δ″j
所述计算参与方,用于分别采用所述δ″j更新各自持有的δ的值。
18.根据权利要求17所述的系统,其特征在于,
所述计算参与方,用于协同计算所述δ′ji、δ′jg与δ′jh之和,得到δ″j
19.根据权利要求11所述的系统,其特征在于,
所述计算参与方,还用于输出第一向量和第二向量内积运算后的秘密分享因子;和/或,依据所述多方安全计算协议,采用第一向量和第二向量内积运算后的秘密分享因子协同进行其他计算,得到对应的计算结果并输出。
20.根据权利要求19所述的系统,其特征在于,
所述计算参与方,还用于对所述各计算参与方持有的内积运算后的秘密分享因子进行验证;验证成功后,执行所述输出的步骤。
21.一种电子设备,其特征在于,包括:
一个或多个处理器;和
其上存储有指令的一个或多个可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行如权利要求1-10中任一所述的数据处理方法。
22.一种可读存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如方法权利要求1-10任一所述的数据处理方法。
CN202011384908.9A 2020-12-01 2020-12-01 一种数据处理方法、多方安全计算系统和电子设备 Active CN112464155B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011384908.9A CN112464155B (zh) 2020-12-01 2020-12-01 一种数据处理方法、多方安全计算系统和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011384908.9A CN112464155B (zh) 2020-12-01 2020-12-01 一种数据处理方法、多方安全计算系统和电子设备

Publications (2)

Publication Number Publication Date
CN112464155A CN112464155A (zh) 2021-03-09
CN112464155B true CN112464155B (zh) 2024-01-26

Family

ID=74806155

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011384908.9A Active CN112464155B (zh) 2020-12-01 2020-12-01 一种数据处理方法、多方安全计算系统和电子设备

Country Status (1)

Country Link
CN (1) CN112464155B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113079137B (zh) * 2021-03-22 2022-05-27 华控清交信息科技(北京)有限公司 多方隐私求交方法和隐私数据处理系统
CN113315631B (zh) * 2021-06-09 2021-12-21 华控清交信息科技(北京)有限公司 一种数据处理方法、装置和用于数据处理的装置
CN114553407A (zh) * 2022-02-16 2022-05-27 淘宝(中国)软件有限公司 基于秘密分享的数据处理方法及设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101895530A (zh) * 2010-06-08 2010-11-24 安徽师范大学 一种基于点积协议的协议安全性量化方法及系统
CN104156671A (zh) * 2013-05-13 2014-11-19 清华大学 一种保护隐私的无中心点积计算方法
US9449177B1 (en) * 2013-03-13 2016-09-20 Hrl Laboratories, Llc General protocol for proactively secure computation
CN110971405A (zh) * 2019-12-06 2020-04-07 支付宝(杭州)信息技术有限公司 多方协同的sm2签名、解密方法及其系统
CN111133719A (zh) * 2017-09-29 2020-05-08 罗伯特·博世有限公司 用于利用spdz的更快速的安全多方内积计算的方法
CN111512589A (zh) * 2017-12-14 2020-08-07 罗伯特·博世有限公司 用于利用spdz的快速安全多方内积的方法
CN111506933A (zh) * 2020-05-28 2020-08-07 零知识科技(北京)有限公司 安全多方计算的方法和系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120002811A1 (en) * 2010-06-30 2012-01-05 The University Of Bristol Secure outsourced computation
US10432400B2 (en) * 2016-10-25 2019-10-01 Southern Methodist University Method and system for privacy preserving disclosure of a shared, identity linked secret

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101895530A (zh) * 2010-06-08 2010-11-24 安徽师范大学 一种基于点积协议的协议安全性量化方法及系统
US9449177B1 (en) * 2013-03-13 2016-09-20 Hrl Laboratories, Llc General protocol for proactively secure computation
CN104156671A (zh) * 2013-05-13 2014-11-19 清华大学 一种保护隐私的无中心点积计算方法
CN111133719A (zh) * 2017-09-29 2020-05-08 罗伯特·博世有限公司 用于利用spdz的更快速的安全多方内积计算的方法
CN111512589A (zh) * 2017-12-14 2020-08-07 罗伯特·博世有限公司 用于利用spdz的快速安全多方内积的方法
CN110971405A (zh) * 2019-12-06 2020-04-07 支付宝(杭州)信息技术有限公司 多方协同的sm2签名、解密方法及其系统
CN111506933A (zh) * 2020-05-28 2020-08-07 零知识科技(北京)有限公司 安全多方计算的方法和系统

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
一个安全两方共享秘密的乘法协议;荆巍巍;黄刘生;罗永龙;徐维江;;小型微型计算机系统(第03期);431-436 *
可验证的安全内积计算协议的设计与实现;冉鹏;张文科;杨浩淼;;通信技术(第10期);1369-1374 *
安全多方计算技术与应用综述;苏冠通;徐茂桐;;信息通信技术与政策(第05期);19-22 *
安全多方计算的关键技术分析;仲红;;安徽农业大学学报(第02期);291-295 *

Also Published As

Publication number Publication date
CN112464155A (zh) 2021-03-09

Similar Documents

Publication Publication Date Title
CN112464155B (zh) 一种数据处理方法、多方安全计算系统和电子设备
CN110971405B (zh) 多方协同的sm2签名、解密方法及其系统
CN112906044B (zh) 多方安全计算方法、装置、设备及存储介质
CN112580821A (zh) 一种联邦学习方法、装置、设备及存储介质
CN112182649A (zh) 一种基于安全两方计算线性回归算法的数据隐私保护系统
CN112329072B (zh) 一种基于安全多方计算的模型联合训练方法
CN109936455B (zh) 一种数字签名的方法、装置和系统
CN112182644A (zh) 一种数据处理方法、装置和电子设备
CN111475854A (zh) 保护两方数据隐私的协同计算方法及系统
CN110535635B (zh) 一种支持信息隐藏的协同签名方法与系统
CN112187469B (zh) 一种基于密钥因子的sm2多方协同数字签名方法和系统
CN113743939A (zh) 基于区块链的身份认证方法、装置及系统
CN112632630A (zh) 一种基于sm2的协同签名计算方法及装置
CN107888385B (zh) Rsa模数生成方法、rsa密钥生成方法、计算机设备及介质
CN114338028A (zh) 门限签名方法、装置、电子设备和可读存储介质
CN111523556A (zh) 模型训练方法、装置及系统
CN112926064B (zh) 一种模型训练方法及装置、数据处理系统和电子设备
CN112668016B (zh) 一种模型训练方法、装置和电子设备
CN116865970A (zh) 基于国密算法的多方协同密钥产生和数字签名方法及系统
CN112668038A (zh) 一种模型训练方法、装置和电子设备
CN109981591B (zh) 单一客户端生成私钥的密钥管理方法、电子设备
CN111245594B (zh) 一种基于同态运算的协同签名方法及系统
CN114257374B (zh) 一种用于标识密码体制的可验证安全外包计算方法及系统
CN112183759A (zh) 模型训练方法、装置及系统
CN111523675A (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