CN113761469B - 一种保护数据隐私的最高位进位计算方法 - Google Patents
一种保护数据隐私的最高位进位计算方法 Download PDFInfo
- Publication number
- CN113761469B CN113761469B CN202110911627.2A CN202110911627A CN113761469B CN 113761469 B CN113761469 B CN 113761469B CN 202110911627 A CN202110911627 A CN 202110911627A CN 113761469 B CN113761469 B CN 113761469B
- Authority
- CN
- China
- Prior art keywords
- party
- matrix
- shared
- sum
- elements
- 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
- 238000004364 calculation method Methods 0.000 title claims abstract description 21
- 239000011159 matrix material Substances 0.000 claims abstract description 113
- 239000012634 fragment Substances 0.000 claims abstract description 48
- 238000000034 method Methods 0.000 claims description 36
- 230000006870 function Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 12
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 230000003993 interaction Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000000295 complement effect Effects 0.000 description 4
- 230000006872 improvement Effects 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 3
- YTAHJIFKAKIKAV-XNMGPUDCSA-N [(1R)-3-morpholin-4-yl-1-phenylpropyl] N-[(3S)-2-oxo-5-phenyl-1,3-dihydro-1,4-benzodiazepin-3-yl]carbamate Chemical compound O=C1[C@H](N=C(C2=C(N1)C=CC=C2)C1=CC=CC=C1)NC(O[C@H](CCN1CCOCC1)C1=CC=CC=C1)=O YTAHJIFKAKIKAV-XNMGPUDCSA-N 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 229940050561 matrix product Drugs 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000007480 spreading Effects 0.000 description 2
- 241000579895 Chlorostilbon Species 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000010976 emerald Substances 0.000 description 1
- 229910052876 emerald Inorganic materials 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000010977 jade Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- ZLIBICFPKPWGIZ-UHFFFAOYSA-N pyrimethanil Chemical compound CC1=CC(C)=NC(NC=2C=CC=CC=2)=N1 ZLIBICFPKPWGIZ-UHFFFAOYSA-N 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- 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
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/523—Multiplying only
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Algebra (AREA)
- Medical Informatics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Complex Calculations (AREA)
- Storage Device Security (AREA)
Abstract
本说明书实施例公开了一种保护数据隐私的最高位进位计算方法。通过构造矩阵的连乘运算,安全计算二进制数的最高位从次高位获得的进位,即安全计算最高位进位。其中,参与方基于安全多方协议彼此协同运算,获取连乘结果矩阵中至少部分元素的和共享分片,进而基于连乘结果矩阵中至少部分元素的和共享分片,获取最高位从次高位获得的进位的和共享分片。
Description
技术领域
本说明书涉及信息技术领域,特别涉及一种保护数据隐私的最高位进位计算方法。
背景技术
安全多方计算又称为多方安全计算,即多方共同计算出一个函数的结果,而***露这个函数各方的输入数据,计算的结果以和共享形式存储于多方或公开给其中的一方或多方。因此,通过安全多方计算,能够让参与的各方在不暴露各自原始数据的情况下,计算出函数的结果。
一些安全多方计算过程涉及非负判断。目前,希望提供一种安全计算二进制数的最高位(符号位)的方案。
发明内容
本说明书实施例之一提供一种保护数据隐私的最高位进位计算方法。参与方中的任一方记为L方,另一方记为R方,L方持有和共享分片x,R方持有和共享分片y,两方的和共享分片的和值等于原秘密值;所述方法由L方的设备执行,其包括:基于安全多方协议与R方协同运算,获取连乘结果矩阵中至少部分元素的和共享分片,进而基于连乘结果矩阵中至少部分元素的和共享分片,获取计算s=x+y时s的最高位从次高位获得的进位的和共享分片;其中,连乘结果矩阵为An-2An-3...A1A0;0≤i≤n-2,xi为x的第i位,yi为y的第i位。
本说明书实施例之一提供一种保护数据隐私的最高位进位计算***。其中,参与方中的任一方记为L方,另一方记为R方,L方持有和共享分片x,R方持有和共享分片y,两方的和共享分片的和值等于原秘密值;所述***在L方的设备上实现,其用于:基于安全多方协议与R方协同运算,获取连乘结果矩阵中至少部分元素的和共享分片,进而基于连乘结果矩阵中至少部分元素的和共享分片,获取计算s=x+y时s的最高位从次高位获得的进位的和共享分片;其中,连乘结果矩阵为An-2An-3...A1A0;0≤i≤n-2,xi为x的第i位,yi为y的第i位。
本说明书实施例之一提供一种保护数据隐私的最高位进位计算装置。所述装置包括处理器和存储设备,所述存储设备用于存储指令,当所述处理器执行指令时,实现如本说明书任一实施例所述的保护数据隐私的最高位进位计算方法。
附图说明
本说明书将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
图1是根据本说明书一些实施例所示的用于计算n位二进制数的最高位的二叉树的示例性结构示意图;
图2是根据本说明书另一些实施例所示的用于计算n位二进制数的最高位的二叉树的示例性结构示意图;
图3是根据本说明书一些实施例所示的安全计算An-2An-3…A1A0的方法的示例性流程图;
图4是根据本说明书一些实施例所示的计算二叉树的第1级非叶子节点的和共享分片的示例性流程图;
图5是根据本说明书一些实施例所示的计算二叉树的第1级非叶子节点的和共享分片的示例***互示意图;
图6是根据本说明书一些实施例所示的计算二叉树的第j(j=2,3,...,reil(log2(n- 1)))级非叶子节点的和共享分片的示例性流程图;
图7为根据本说明书一些实施例所示的安全乘法协议的原理示意图;
图8是根据本说明书一些实施例所示的保护数据隐私的最高位进位计算***的示例性模块图。
具体实施方式
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
应当理解,本文使用的“***”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
如本说明书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和 /或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
本说明书中使用了流程图用来说明根据本说明书的实施例的***所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
在数学中,“群”表示一个满足封闭性、满足结合律、有单位元、有逆元的二元运算的代数结构,包括阿贝尔群、同态和共轭类。其中,通常可以使用乘法符号“*”(在无歧义时可省略)或加法符号“+”作为该二元运算的符号,但需要注意的是,该二元运算不一定等同于四则运算中的乘法或加法。若干元素通过一次或多次二元运算产生的结果可称为合值。
群的二元运算满足:1.封闭律,对于G中的任意元素a、b,a*b仍在G中;2.结合律,对于G中的任意元素a、b和c,有(a*b)*c=a*(b*c);3.有单位元,G中存在元素e,使得a*e=e*a; 4.有逆元,对于G中的任一元素a,G中存在b,使得a*b=b*a=e,a、b互为逆元,此处e为单位元。值得说明的是,对于“+”表示的二元运算,e也可称为零元,逆元也可称为负元,对于G中的任意元素a、b,a-b可以表示a+(b的逆元)。群运算的次序很重要,把元素a与元素b结合,所得到的结果不一定与把元素b与元素a结合相同,即交换律a*b=b*a不一定恒成立。满***换律的群称为阿贝尔群(交换群),不满***换律的群称为非阿贝尔群(非交换群),阿贝尔群由自身的集合G和二元运算*构成。
在数学中,映射经常等同于函数。例如,假设A和B为两个非空集合,若对A中的任一元素x,依照某种规律(或法则)f,恒有B中的唯一确定的元素y与之对应,则称对应规律f为一个从A到B的映射。记作f:A→B,称y为x的像,记作y=f(x),并称x为y的原像,集合A称为映射f的定义域,集合B称为f的陪域。
进一步地,本说明书涉及一种基于(非负)整数阿贝尔群的商群,其数学表示可以是 G:=Z/nZ,其中,Z为(非负)整数集合,n为正整数,“/”左边的Z表示群元素为1的整数倍,“/”右边的nZ表示群的模为n,商群Z/nZ为模以n的余数的n阶循环群。
值得说明的是,由于计算设备通常使用固定位数(如bit)来存储计算过程中产生的数值,多方协同计算时会频繁使用涉及取模的加法、乘法(以下称为模加法、模乘法)等等。本说明书中,在没有特别说明的情况下,涉及符号的数学表示可优先按模加法、模乘法而非四则运算来理解,相关术语(如求和、和值、相乘、乘积等)也优先按模加法、模乘法而非四则运算来理解。
在一些分布式场景中,需要多方安全计算得到目标运算结果,目标运算可以是安全乘法、安全模转换或者安全选择,其中,安全可以指输出结果的正确性和输入信息、输出信息的保密性。例如,在一些机器学习场景中,一方持有私密的特征数据,另一方持有私密的标签数据。若直接计算关于私密数据(特征数据/标签数据)的目标运算结果时,一旦该目标运算结果被泄露可能导致私密数据被反推出。为此,一方可以将自身持有的私密数据x拆分成两份,保留其中一份x_L并将另一份x_R发送给对方。其中,x=x_L+x_R,即x_L+x_R为 x的和共享表示,x_L和x_R为x的和共享分片。然后,两方运行安全计算协议,各自得到该目标运算结果的一个和共享分片。两方得到的和共享分片的和值即目标运算结果,攻击者若想获知原秘密值(如x)需要得到两方的和共享分片。
类似地,还存在一种“分片+余量”的拆分方式:一方持有x的一个附加余量和共享分片x_L,另一方持有x的另一个附加余量和共享分片x_R,且Δx为双方共有的x的余量。其中,x=x_L+x_R+Δx,即x_L+x_R+Δx为x的附加余量和共享表示。对于附加余量和共享形式,攻击者若想获知原秘密值(如x)需要得到两方的附加余量和共享分片以及共有的余量。
本说明书中,具体的余量(如Δx)都使用了符号Δ来表达。为了简化表述,本说明书中也用符号Δ来代替“余量”一词。
值得说明的是,上述两种分片之间可以互相转换。仅作为示例,若要将两方的和共享分片转换成附加Δ和共享分片:任一方(不妨记为L方)可以随机生成作为x的附加Δ和共享分片,按/>计算Δx_L并将Δx_L发送给另一方(记为R方),Δx_L可以作为双方共有的x的余量(即Δx=Δx_L),L方随机生成的/>可以作为L方的附加Δ和共享分片,R方原有的和共享分片x_R可以作为x的附加Δ和共享分片(即/>);当然,R方也可以随机生成/>作为x的附加Δ和共享分片,按/>计算Δx_R并将Δx_R发送给L方,ΔxL+ΔxR可以作为双方共有的x的余量(即Δx=ΔxL+ΔxR)。若要将两方的附加Δ和共享分片转换成和共享分片:L方可以按/>计算x_L并将x_L作为x的和共享分片,R方可以按/>计算x_R并将x_R作为x的和共享分片,其中,Δx_L 和ΔxR为双方的公共知识且Δx=Δx_L+Δx_R;当然,任一方(不妨假设为L方)也可以直接将原有的附加Δ和共享分片/>作为x的和共享分片x_L,相应地Δx=Δx_R(ΔxL=0)。
一些安全多方计算过程涉及非负判断。例如,线性整流函数(Rectified LinearUnit, ReLU),又称修正线性单元,是一种人工神经网络中常用的激活函数,其输出在输入非负时和输入为负时具有不同的特点。在计算机的一些存储方式(如补码)下,有符号数的最高位被作为符号位。涉及非负判断的安全多方计算过程中,多方协同计算有符号数的最高位,各自可获得最高位的一个分片。
考虑数据在计算机内的存储形式为n位二进制数s,n为存储单元的位数,其和共享表示为x+y。可以将s及其和共享分片看作均属于商群Z/2nZ。在计算机的一些存储方式下,如补码,有符号数的最高位被作为符号位。在补码的存储方式下,符号位被视为数据一并参与运算,运算结果仍然以补码形式存储,因此涉及非负判断的安全多方计算过程中,多方协同计算有符号数的最高位,各自可获得最高位的一个分片。
不妨令ci为s的第i位获得的进位,xi为x的第i位,yi为y的第i位,则有:
ci=xi-1yi-1+xi-1ci-1+yi-1ci-1 (1)。
等式(1)的矩阵形式如下:
可以理解,在bit维度群运算涉及模2,例如等式(1)和等式(2)中的“+”均表示商群Z/2Z的模加法。
为了统一表达,不妨规定s的最低位为第0位,最高位为第n-1位。按照等式(2)进行递归,可知n位二进制数s的最高位(从次高位,即从第n-2位)获得的进位cn-1满足:
其中,
二进制数s的最高位等于xn-1+yn-1+cn-1,对于参与安全计算的双方而言,关键在于如何安全计算进位cn-1。结合等式(3)可知,进位cn-1为矩阵连乘结果(或称为连乘结果矩阵)An-2An-3...A1A0的右上角矩阵元素。因此,在一些实施例中,参与方可以基于安全多方协议、彼此协同运算,获取连乘结果矩阵中至少部分元素的附加余量和共享分片以及余量,进而基于连乘结果矩阵中至少部分元素的和共享分片,获取计算x+y时s的最高位从次高位获得的进位的和共享分片。至此,问题转换为如何安全计算矩阵连乘结果An-2An-3...A1A0中的部分元素的和共享分片。
本说明书实施例提供一种基于二叉树安全计算An-2An-3...A1A0的方法,可从叶子节点开始沿二叉树计算,直至计算至二叉树的根节点,参与安全计算的双方各自可获得 An- 2An-3...A1A0的一个和共享分片。
下面先介绍上述二叉树的结构。
具体地,可以以连乘项An-2,An-3,...,A1,A0为叶子节点构建二叉树。二叉树的特点是一个父节点最多只能有两个子节点。常见的二叉树从根节点根节点开始***,直至得到二叉树的所有叶子节点。本说明书实施例采用一种逆向的思路,即从叶子节点开始逆向生长,直至得到二叉树的根节点。每两个相邻的叶子节点的乘积被确定为一个第1级非叶子节点(非叶子节点亦即乘积矩阵)。对于j=2,3,...,reil(log2(n-1)),每两个相邻的第j-1级非叶子节点的乘积被确定为一个第j级非叶子节点。其中,二叉树的深度为reil(log2(n-1)),reil()表示向上取整,即第reil(log2(n-1))级非叶子节点为根节点。
值得说明的是,当log2(n-1)为整数时(例如,n=33时),可以构建一个满二叉树,即从叶子节点开始每一级(根节点除外)的节点刚好可以两两结对得到上一级的父节点。
当log2(n-1)不是整数时,同级的节点的数量可能为奇数,使得每两个相邻的同级节点的乘积被确定为一个下一级节点后会余下一个节点无法结对(即无法参与乘积)。可以理解,为保证根节点为An-2An-3...A1A0,二叉树中两两相邻的同级节点结对后落单的节点一般是位于某一级边缘的节点,例如,二叉树中两两相邻的叶子节点结对后落单的叶子节点可能是A0或An-1。为了便于描述,以下将二叉树中两两相邻的同级节点结对后落单的节点称为“未参与乘积的节点”。对于未参与乘积的节点,可以将该节点直接确定为下一级节点。即,未参与乘积运算的叶子节点A0或An-1可以直接被确定为与叶子节点A0或An-1对应的第1级非叶子节点,未参与乘积运算的第j-1级非叶子节点可以直接被确定为与其自身对应的第j级非叶子节点。为了统一表述,在一些场景下,我们也将落单的叶子节点,如A0或An-1,称为其自身对应的第1级乘积矩阵,将落单的第j-1级乘积矩阵称为与其自身对应的第j级乘积矩阵。应当理解为,叶子节点A0或An-1对应的第1级乘积矩阵并不是经过矩阵乘积运算得到,但是叶子节点A0或An-1对应的第1级乘积矩阵与其他叶子节点两两相乘得到的第1级乘积矩阵具有相同的运算地位,两两间可以进行结对相乘以得到下一级乘积矩阵。落单的第j-1级乘积矩阵对应的第j级乘积矩阵也并不是经过矩阵乘积运算得到,但是落单的第j-1级乘积矩阵对应的第j级乘积矩阵与其他第j级乘积矩阵具有相同的运算地位,两两间可以进行结对相乘以得到第j+1级乘积矩阵。
图1是根据本说明书一些实施例所示的用于计算n位二进制数的最高位的二叉树的示例性结构示意图。
如图1所示,当n=8时,二叉树的深度为3,未参与乘积的叶子节点A6被直接确定为第1级非叶子节点。
图2是根据本说明书另一些实施例所示的用于计算n位二进制数的最高位的二叉树的示例性结构示意图。
如图2所示,当n=9时,二叉树的深度为3且为满二叉树。
图3是根据本说明书一些实施例所示的安全计算An-2An-3...A1A0的方法的示例性流程图。为了便于描述,不妨将参与安全计算的任一方记为L方,另一方记为R方。流程300 可以由L方的设备执行,如图3所示,流程300可以包括reil(log2(n-1))步。
第1步:基于和共享分片x与R方协同,以对二叉树中两两相邻的叶子节点的至少部分矩阵元素进行运算,获得二叉树的第1级非叶子节点的至少部分矩阵元素的和共享分片。
n位二进制数s的和共享表示为x+y,L方持有和共享分片x,R方持有和共享分片 y。在一些实施例中,L方和/或R方持有的s的和共享分片可以是由s的附加余量和共享分片转换得到的。可以理解,L方持有和共享分片x的每一位,即从x0到xn-1。R方持有和共享分片y的每一位,即从y0到yn-1。
两个相邻的叶子节点(AiAi-1)的乘积具有如下形式:
不妨令a=xi,b=yi,c=xi-1,d=yi-1,通过对二叉树中两两相邻的叶子节点的至少部分矩阵元素进行运算,L方和R方各自可获得二叉树的第1级非叶子节点的至少部分矩阵元素的和共享分片。可以理解,这里的运算是指安全计算。
观察等式(4)可以发现,运算前后矩阵第二行的元素都是确定的(0或1)。因此,计算过程任一参与方可以只保存和计算部分矩阵元素,例如,等式(4)中矩阵的第一行元素。如此,可以精简计算量,从而减轻设备的计算压力。实际上,按照二叉树结构自底向上计算的过程中,由于相关矩阵的第二行都是确定的(0或1),任一参与方可以只保存和计算矩阵的第一行元素。
参考前文内容,当二进制数s的位数n为偶数时(即有奇数个叶子节点),未参与乘积运算的叶子节点A0或An-1被与确定为第1级非叶子节点。为了便于非叶子节点的乘积运算,需要L方与R方协同,基于各自持有的和共享分片,计算得到未参与乘积运算的叶子节点A0或An-1中至少部分矩阵元素的和共享分片。因此,第1步还可以包括:基于和共享分片 x与R方协同,以对未参与乘积运算的叶子节点A0或An-1的至少部分矩阵元素进行运算,获得与叶子节点A0或An-1对应的第1级非叶子节点的至少部分矩阵元素的和共享分片。
第j步(j=2,3,...,reil(log2(n-1))):基于二叉树的第j-1级非叶子节点的至少部分矩阵元素的和共享分片与R方协同,获得二叉树的第j级非叶子节点的至少部分矩阵元素的和共享分片。
可以理解,第1步的输出数据提供给第2步作为输入数据,第2步的输出数据提供给第3步作为输入数据。以此类推,直至获得二叉树的第reil(log2(n-1)级非叶子节点(即根节点)的至少部分矩阵元素的和共享分片。由于根节点An-2An-3...A1A0的右上角矩阵元素即cn-1,第reil(log2(n-1)获得的根节点的至少部分矩阵元素的和共享分片分别包含cn-1的和共享分片。
两个相邻的同级非叶子节点的乘积具有如下形式:
根节点具有如等式(5)等号右边所示的形式,结合等式(3)可知进位cn-1具有如下形式:
由等式(6)可知,根节点中的变量经历矩阵乘法后,ac被约掉,只保留下ad+b。因此,在第reil(log2(n-1))步可以不安全计算ac,只安全计算ad+b。关于安全计算ad+b的具体实现,可以参考图6、7及其相关描述。
每一步中,同级节点两两结对(相乘),与多对节点的乘积一一对应的安全计算过程可以并行。如此,在n足够大的情况下,相比按A1A0→A2A1A0→…→An-3...A1A0→ An- 2An-3...A1A0(或者即逐个右乘)进行安全计算,沿二叉树安全计算An-2An-3...A1A0的运算效率更高。
关于第1步的具体实现方式,可以参考图4、5及其相关描述。
关于第j步(j=2,3,...,reil(log2(n-1)))的具体实现方式,可以参考图6、7及其相关描述。
图4是根据本说明书一些实施例所示的计算二叉树的第1级非叶子节点的和共享分片的示例性流程图。
为了能更好地理解图4中的计算步骤,不妨先了解相关的数学推导过程。
前面提到,两个相邻的叶子节点(AiAi-1)的乘积具有如等式(4)所示的形式,令 f(a,b,c,d)=(a+c)(b+d)和g(a,b,c,d)=(a+b)cd+ab,有:
f(a,b,c,d)=a0d0+b0c0
+a0c0+(c0,c0,a0,a0)(Δa,Δb,Δc,Δd)T
+b0d0+(d0,d0,b0,b0)(Δa,Δb,Δc,Δd)T
+(Δa+Δb)(Δc+Δd) (7)
g(a,b,c,d)=g(a0,b0,c0,d0)+(c0d0,c0d0,a0d0,c0b0)(Δa,Δb,Δc,Δd)T
+(a0,a0c0)(Δb,Δd)T+a0ΔcΔd+(Δa+Δb)c0Δd
+(b0,b0d0)(Δa,Δc)T+b0ΔcΔd+(Δa+Δb)Δcd0
+ΔaΔb+(Δa+Δb)ΔcΔd (8)。
其中,a,a0,c,c0是L方的私有变量,b,b0,d,d0是R方的私有变量,a=a0+Δa,b= b0+Δb,c=c0+Δc,d=d0+Δd。举例来说,a和c分别可以是L方持有的xi和xi-1,b和d分别可以是R方的持有的yi和yi-1。
不难看出:等式(7)中,第二行的a0c0+(c0,c0,a0,a0)(Δa,Δb,Δc,Δd)T可以由L方单独计算,第三行的b0d0+(d0,d0,b0,b0)(Δa,Δb,Δc,Δd)T可以由R方单独计算,第四行的 (Δa+Δb)(Δc+Δd)可以由任一方单独计算或者由两方分别计算(Δa+Δb)(Δc+Δd)的一个和共享分片;等式(8)中,第二行的(a0,a0c0)(Δb,Δd)T+a0ΔcΔd+(Δa+Δb)c0Δd可以由L 方单独计算,第三行的(b0,b0d0)(Δa,Δc)T+b0ΔcΔd+(Δa+Δb)Δcd0可以由R方单独计算,第四行的ΔaΔb+(Δa+Δb)ΔcΔd可以由任一方单独计算或者由两方分别计算ΔaΔb+(Δa+ Δb)ΔcΔd的一个和共享分片。
在等式(7)/等式(8)中,等号右边的第一行既有L方的私有变量又有R方的私有变量,L方和R方都无法单独计算等号右边的第一行。
在一些实施例中,对于等式(7)/等式(8)中等号右边的第一行,L方的设备和/或R方的设备可以在第三方设备的协助下获得第一行的和共享分片值。
不妨以第一行中的a0d0为例进行说明。L方可以利用伪随机函数生成a0。伪随机函数接收种子作为输入并输出伪随机数序列。由于基于相同种子生成的伪随机数序列也是相同的。安全多方计算的参与方可以与第三方设备提前约定好用于生成相同伪随机数序列的种子,第三方设备能够在不与参与方通信的情况下获得参与方的私有变量值。因此,在安全计算a0d0的过程中,L方与第三方设备可以基于提前约定好的第一种子生成a0,R方与第三方设备可以基于提前约定好的第二种子生成d0,如此第三方设备能够计算a0d0。第三方设备可以将a0d0拆分成两个和共享分片,将其中一个和共享分片(记为uL)发送给L方,将另一个和共享分片(记为uR)发送给R方,其中,a0d0=uL+uR。当然,对于uL和uR中的任一和共享分片,持有该和共享分片的一方可以与第三方设备可以基于提前约定好的种子获得该和共享分片,进而第三方设备可根据a0d0=uL+uR计算另一和共享分片并将其发送另一方。如此可以节省offline通信量,offline通信量是指安全计算的参与方与第三方设备之间的通信量。
在替代性的实施方式中,a0(d0)可以由第三方设备生成并发送给L方(R方),或者可以由L方(R方)生成并发送给第三方设备,当然这会产生相应的offline通信量。
下面开始详细介绍流程400。
流程400可以由L方的设备执行。如图4所示,流程400可以包括:
步骤410,对于uL,vL,pL,qL中的每个和共享分片,利用伪随机函数生成该和共享分片或从第三方设备接收该和共享分片。
步骤420,利用伪随机函数生成a0,c0。
相应地,R方可以利用伪随机函数生成b0,d0。
第三方设备能够获得a0,b0,c0,d0,uL,uR,vL,vR,pL,pR,qL,qR,其中,a0d0=uL+uR,b0c0=vL+vR,c0d0=pL+pR,g(a0,b0,c0,d0)=qL+qR。
参考前述有关伪随机函数的内容,第三方设备可以基于与安全计算的参与方提前约定好的种子生成a0,b0,c0,d0,进而第三方设备可以计算出a0d0,b0c0,c0d0,g(a0,b0,c0,d0)。对于 a0d0,b0c0,c0d0,g(a0,b0,c0,d0)中的任一项,第三方设备可以将其拆分成两个和共享分片,将其中一个和共享分片(变量下标为L)发送给L方,将另一个和共享分片(变量下标为R) 发送给R方。当然,对于a0d0,b0c0,c0d0,g(a0,b0,c0,d0)中的任一项,任一方(不妨设为L方) 与第三方设备可以基于提前约定好的种子生成该项值的一个和共享分片,第三方设备可以计算出该项值的另一和共享分片并将其发送给另一方(R方),如此可以节省offline通信量。
在替代性的实施方式中,a0,b0,c0,d0中的任一私有变量可以由第三方设备生成并发送给该私有变量的持有方,或者可以由该私有变量的持有方生成后生成并发送给第三方设备。例如,可以由第三方设备生成c0并将c0发送给L方。又如,可以由R方生成b0并将b0发送给第三方设备。
步骤430,按Δa=a-a0计算Δa并将Δa发送给R方的设备,按Δc=c-c0计算Δc并将Δc发送给R方的设备,从R方的设备接收Δb和Δd。
相应地,R方可以按Δb=b-b0计算Δb并将Δb发送给L方,按Δd=d-d0计算Δd并将Δd发送给L方。
步骤440,至少求和uL,vL,a0c0,(c0,c0,a0,a0)(Δa,Δb,Δc,Δd)T,以获得zL。
相应地,R方可以至少求和uR,vR,b0d0,(d0,d0,b0,b0)(Δa,Δb,Δc,Δd)T,以获得zR。
L方计算的zL和R方计算的zR满足zL+zR=f(a,b,c,d)。即,第一方获得第1级非叶子节点的左上角矩阵元素f(a,b,c,d)的和共享分片为zL,第二方获得第1级非叶子节点的左上角矩阵元素f(a,b,c,d)的和共享分片为zR。回顾等式(7),第四行的(Δa+Δb)(Δc+Δd)可以出现在L方和R方中任一方的求和项中,也可以由L方和R方各自计算(Δa+Δb)(Δc+Δd)的一个和共享分片。
在替代性的实施例中,由于第三方设备能够获得a0,b0,c0,d0,第三方设备可以计算 a0d0+b0c0的值。进而,第三方设备可以将a0d0+b0c0(记为t)拆分成两个和共享分片,将其中一个和共享分片tL发送给L方,将另一个和共享分片tR发送给R方。或者,任一方(不妨设为L方)与第三方设备可以基于提前约定好的种子生成tL,第三方设备可以计算出和共享分片tR并将其发送给另一方(R方),如此可以节省offline通信量。相应地,可以将步骤440中L方的求和项uL,vL替换成tL,以及将R方的求和项uR,vR替换成tR。
步骤450,至少求和 qL,(pL,pL,uL,vL)(Δa,Δb,Δc,Δd)T,(a0,a0c0)(Δb,Δd)T,a0ΔcΔd,(Δa+Δb)c0Δd,以获得wL。
相应地,R方的设备可以求和 qR,(pR,pR,uR,vR)(Δa,Δb,Δc,Δd)T,(b0,b0d0)(Δa,Δc)T,b0ΔcΔd,(Δa+Δb)Δcd0,以获得wR。
L方计算的wL和R方计算的wR满足wL+wR=g(a,b,c,d)。即,第一方获得第1级非叶子节点的右上角矩阵元素g(a,b,c,d)的和共享分片为wL,第二方获得第1级非叶子节点的右上角矩阵元素g(a,b,c,d)的和共享分片为wR。回顾等式(8),第四行的ΔaΔb,(Δa+Δb)ΔcΔd 可以出现在L方和R方中任一方的求和项中,也可以由L方和R方各自计算ΔaΔb+(Δa+ Δb)ΔcΔd的一个和共享分片。
参考前文内容,当二进制数s的位数n为偶数时(即有奇数个叶子节点),未参与乘积运算的叶子节点A0或An-1被确定为第1级非叶子节点。
未参与乘积运算的叶子节点A0或An-1具有如下形式:
参考流程400,L方的设备可以:利用伪随机函数生成uL或从第三方设备接收uL;利用伪随机函数生成a0;按Δa=a-a0计算Δa并将Δa发送给R方的设备,从R方的设备接收Δb;求和uL,a0Δb,以获得zL。
相应地,R方的设备可以:利用伪随机函数生成uR或从第三方设备接收uR;利用伪随机函数生成b0;按Δb=b-b0计算Δb并将Δb发送给L方的设备,从L方的设备接收Δa;求和uR,Δab0,以获得zR。
第三方设备能够获得a0,b0,uL,uR,其中,a0b0=uL+uR。
L方计算的zL和R方计算的zR满足zL+zR=ab。即,L方计算得到ab的一个和共享分片zL,R方计算得到ab的另一个和共享分片zR。
在替代性的实施方式中,a0,b0中的任一私有变量可以由第三方设备生成并发送给该私有变量的持有方,或者可以由该私有变量的持有方生成后生成并发送给第三方设备。例如,可以由第三方设备生成a0并将a0发送给L方。又如,可以由R方生成b0并将b0发送给第三方设备。
图5是根据本说明书一些实施例所示的计算二叉树的第1级非叶子节点的和共享分片的示例***互示意图。图5中,RS表示第三方设备,交互包括offline和online两类,offline 是指第三方设备RS与L方/R方之间的交互,online是指L方和R方之间的交互。图5中的变量可以参考图4及其相关描述,这里不再重复介绍。
如图5所示,RS和L方共享一组种子,记为{seed0}。RS和R方共享一组种子,记为{seed1}。RS和L方可以利用{seed0}生成a0,c0,uL,vL,pL,qL。RS和R方可以利用{seed1}生成b0,d0。
RS可以按uR=a0d0-uL,vR=c0b0-vL,pR=c0d0-pL,qR=g(a0,b0,c0,d0)-qL分别计算uR,vR,pR,qR,并将uR,vR,pR,qR发送给R方。
L方可以按Δa=a-a0,Δc=c-c0分别计算Δa,Δc,并将Δa,Δc发送给R方。R方可以按Δb=b-b0,Δd=d-d0分别计算Δb,Δd,并将Δb,Δd发送给L方。
L方可以按zL=uL+vL+a0c0+(c0,c0,a0,a0)(Δa,Δb,Δc,Δd)T-fL计算zL,按wL= qL+(pL,pL,uL,vL)(Δa,Δb,Δc,Δd)T+(a0,a0c0)(Δb,Δd)T+a0ΔcΔd+(Δa+Δb)c0Δd计算wL。
R方可以按zR=uR+vR+b0d0+(d0,d0,b0,b0)(Δa,Δb,Δc,Δd)T+(Δa+Δb)(Δc+Δd)计算zR,按wR=qR+(pR,pR,uR,vR)(Δa,Δb,Δc,Δd)T+(b0,b0d0)(Δa,Δc)T+b0ΔcΔd+(Δa+Δb)Δcd0+ΔaΔb+(Δa+Δb)ΔcΔd计算wR。
L方计算的zL和R方计算的zR满足zL+zR=f(a,b,c,d),L方计算的wL和R方计算的wR满足wL+wR=g(a,b,c,d)。即,L方计算得到f(a,b,c,d)的一个和共享分片zL和 g(a,b,c,d)的一个和共享分片wL,R方计算得到f(a,b,c,d)的另一个和共享分片zR和 g(a,b,c,d)的另一个和共享分片wR。
图6是根据本说明书一些实施例所示的计算二叉树的第j(j=2,3,...,reil(log2(n- 1)))级非叶子节点的和共享分片的示例性流程图。
两个相邻的同级非叶子节点的乘积具有如等式(5)所示的形式。其中,a=aL+aR, b=bL+bR,c=cL+cR,d=dL+dR。aL,bL,cL,dL为L方的私有变量,aR,bR,cR,dR为R方的私有变量。完成流程300的第1步后,L方可获得第1级非叶子节点的和共享分片(第1 步中的zL,wL),这些和共享分片即第2步中的aL,bL或cL,dL。递归地,L方获得的第j-1(j> 2)级非叶子节点的和共享分片即第j步中的aL,bL或cL,dL。
展开ac,有ac=aLcL+aLcR+aRcL+aRcR。其中,aLcL可以由L方单独计算,aRcR可以由R方单独计算。aLcR和aRcL均为涉及双方私有变量的乘积,如图6所示,L方和R方可以通过安全乘法协议各自计算aLcR的一个和共享分片和aRcL的一个和共享分片。即,L方可获得和共享分片(aLcR)L与和共享分片(aRcL)L,R方可获得和共享分片(aLcR)R与和共享分片(aRcL)R。
展开ad+b,有ad+b=aLdL+aLdR+aRdL+aRdR+bL+bR。其中,aLcL可以由L 方单独计算,aRcR可以由R方单独计算,bL在L方本地,bR在R方本地。aLcR和aRcL均为涉及双方私有变量的乘积,如图6所示,L方和R方可以通过安全乘法协议各自计算aLdR的一个和共享分片和aRdL的一个和共享分片。即,L方可获得和共享分片(aLdR)L与和共享分片 (aRdL)L,R方可获得和共享分片(aLdR)R与和共享分片(aRdL)R。
进而,如图6所示,L方可以求和aLcL,(aLcR)L,(aRcL)L以获得ac的和共享分片(ac)L,求和aLdL,(aLdR)L,(aRdL)L,bL,以获得ad+b的和共享分片(ad+b)L。相应地,R方可以求和aRcR,(aLcR)R,(aRcL)R以获得ac的和共享分片(ac)R,求和aRdR,(aLdR)R,(aRdL)R,bR,以获得ad+b的和共享分片(ad+b)R。
在一些实施例中,L方和R方可以安全计算a(c,d),通过构造二维向量(c,d)同步计算ac和ad。即,L方可获得a(c,d)的和共享分片((ac)L,(ad)L),R方可获得a(c,d)的和共享分片((ac)L,(ad)L),其中就包含ac的和共享分片。至于ad+b的和共享分片,L方可以求和(ad)L,bL以获得ad+b的和共享分片(ad+b)L,L方可以求和(ad)R,bR以获得ad+b的和共享分片(ad+b)R。
展开a(c,d),有a(c,d)=aL(cL,dL)+aL(cR,dR)+aR(cL,dL)+aR(cR,dR)。其中, aL(cL,dL)可以由L方单独计算,aR(cR,dR)可以由R方单独计算。aL(cR,dR)和aR(cL,dL)均为涉及双方私有变量的乘积,L方和R方可以通过安全乘法协议各自计算aL(cR,dR)的一个和共享分片和aR(cL,dL)的一个和共享分片。即,L方可获得和共享分片(aLcR,aLdR)L与和共享分片(aRcL,aRdL)L,R方可获得和共享分片(aLcR,aLdR)R与和共享分片(aLcR,aLdR)R。
关于安全乘法协议的具体实现,可以参考图7及其相关描述。
图7为根据本说明书一些实施例所示的安全乘法协议的原理示意图。
如图7所示,L方和R方可以在第三方设备(图7中用RS表示)的协助下计算安全计算乘积αβ。其中,α为L方的私有变量,β为R方的私有变量。α和β可以同为一维数值,也可以同为矩阵。由于一维数值可视作1×1维的矩阵,不妨将α视为n1×m(即n1行m列) 的矩阵,将β视为m×n2(即m行n2列)的矩阵,n1、n2、m可以是任意正整数。
第三方设备能够获得α0,β0,γL,γR,满足γL+γR=α0β0。其中,α0和γL为L方的私有变量,β0和γR为R方的私有变量。
在一些实施例中,α0,β0中的任一私有变量可以由第三方设备生成,并发送给该私有变量的持有方,或者可以由该私有变量的持有方生成后生成并发送给第三方设备。在一些实施例中,对于α0,β0中的任一私有变量,该私有变量的持有方与第三方设备可以基于提前约定好的种子生成,如此可以节省offline通信量。例如,如图7所示,L方与第三方设备可以基于提前约定好的种子生成α0,R方与第三方设备可以基于提前约定好的种子生成β0。
在一些实施例中,第三方设备可以将α0β0拆分成两个和共享分片(即γL和γR),将γL发送给L方,将γR发送给R方。在一些实施例中,如图7所示,任一方(不妨设为L方)与第三方设备可以基于提前约定好的种子生成α0β0的和共享分片γL,第三方设备可以按γR=α0β0-γL计算出α0β0的另一和共享分片γR并将γR发送给另一方(R方),如此可以节省offline通信量。
如图7所示,L方可以按Δα=α-α0计算Δα,R方可以按Δβ=β-β0计算Δβ。进而, L方和R方可以交换Δα和Δβ,L方可以按σL=α0Δβ+γL计算σL,R方可以按σR=Δαβ+γR计算σR。可以证明,σL+σR=αβ。即,L方和R方各自获得αβ的一个和共享分片。
实际上,展开αβ,有αβ=α0β0+α0Δβ+Δαβ0+ΔαΔβ。其中,L方和R方各自持有α0β0的和共享分片(即γL和γR),α0Δβ可以由L方单独计算,Δαβ0可以由R方单独计算。ΔαΔβ可以由任一方(L方/R方)单独计算,L方和R方也可以各自计算ΔαΔβ一个和共享分片。例如,如图7所示,R方的求和项中的Δαβ就等于Δαβ0+ΔαΔβ。又如,在一些实施例中, L方可以按σL=αΔβ+γL计算σL,R方可以按σR=Δαβ0+γR计算σR。
应当注意的是,上述有关流程的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对流程进行各种修正和改变。然而,这些修正和改变仍在本说明书的范围之内。
图8是根据本说明书一些实施例所示的保护数据隐私的最高位进位计算***的示例性模块图。***800可以在L方的设备上实现,***800用于基于安全多方协议与R方协同运算,获取连乘结果矩阵中至少部分元素的和共享分片,进而基于连乘结果矩阵中至少部分元素的和共享分片,获取计算s=x+y时s的最高位从次高位获得的进位的和共享分片。如图8所示,***800可以包括第一协同计算模块810和第二协同计算模块820。
第一协同计算模块810可以用于:基于和共享分片x与R方协同,以对所述二叉树中两两相邻的叶子节点的至少部分矩阵元素进行计算,获得所述二叉树的第1级非叶子节点的至少部分矩阵元素的和共享分片。
第二协同计算模块820可以用于:对于j=2,3,...,reil(log2(n-1)),基于所述二叉树的第j-1级非叶子节点的至少部分矩阵元素的和共享分片,获得所述二叉树的第j级非叶子节点的至少部分矩阵元素的和共享分片。
关于***800及其模块的更多细节,可以参考图3及其相关描述。
应当理解,图8所示的***及其模块可以利用各种方式来实现。例如,在一些实施例中,***及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行***,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和***可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本说明书的***及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。
需要注意的是,以上对于***及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解***的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子***与其他模块连接。例如,第一协同计算模块810和第二协同计算模块820可以是两个模块,也可以合并为一个模块。诸如此类的变形,均在本说明书的保护范围之内。
本说明书实施例可能带来的有益效果包括但不限于:通过构造矩阵的连乘运算,安全计算二进制数的最高位从次高位获得的进位,可以保护计算双方的数据隐私。需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书实施例的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书实施例进行各种修改、改进和修正。该类修改、改进和修正在本说明书实施例中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,本领域技术人员可以理解,本说明书实施例的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本说明书实施例的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“***”。此外,本说明书实施例的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行***、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、RF、或类似介质,或任何上述介质的组合。
本说明书实施例各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、 VB.NET、Python等,常规程序化编程语言如C语言、VisualBasic、Fortran2003、Perl、COBOL2002、PHP、ABAP,动态编程语言如Python、Ruby和Groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或处理设备上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(LAN)或广域网(WAN),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(SaaS)。
此外,除非权利要求中明确说明,本说明书实施例所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书实施例流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的***组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的处理设备或移动设备上安装所描述的***。
同理,应当注意的是,为了简化本说明书实施例披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书实施例对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本说明书权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。
最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书实施例的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。
Claims (10)
1.一种保护数据隐私的最高位进位计算方法,其中,参与方中的任一方记为L方,另一方记为R方,L方持有和共享分片x,R方持有和共享分片y,两方的和共享分片的和值等于原秘密值;所述方法由L方的设备执行,其包括:
基于安全多方协议与R方协同运算,获取连乘结果矩阵中至少部分元素的和共享分片,进而基于连乘结果矩阵中至少部分元素的和共享分片,获取计算s=x+y时s的最高位从次高位获得的进位的和共享分片;其中,连乘结果矩阵为An-2An-3…A1A0;0≤i≤n-2,xi为x的第i位,yi为y的第i位,n为存储单元的位数;
所述基于安全多方协议与R方协同运算,获取连乘结果矩阵中至少部分元素的和共享分片,包括:
基于和共享分片x与R方协同,以对An-2、An-3、…、A1、A0中两两矩阵的至少部分矩阵元素进行计算,获得第1级乘积矩阵的至少部分矩阵元素的和共享分片;
基于第j-1级乘积矩阵中两两乘积矩阵的至少部分矩阵元素的和共享分片与R方协同,获得第j级乘积矩阵的至少部分矩阵元素的和共享分片;其中,j为不小于2的整数。
2.如权利要求1所述的方法,其中,An-2、An-3、…、A1、A0中的两个矩阵的乘积具有如下形式:
令a=xi,b=yi,c=xi-1,d=yi-1,f(a,b,c,d)=(a+c)(b+d),g(a,b,c,d)=(a+b)cd+ab;
所述基于和共享分片x与R方协同,以对An-2、An-3、…、A1、A0中两两矩阵的至少部分矩阵元素进行计算,获得第1级乘积矩阵的至少部分矩阵元素的和共享分片,包括:
对于uL,vL,pL,qL中的每个和共享分片,利用伪随机函数生成该和共享分片或从第三方设备接收该和共享分片,所述第三方设备能够获得a0,b0,c0,d0,uL,uR,vL,vR,pL,pR,qL,qR;其中,a0d0=uL+uR,b0c0=vL+vR,c0d0=pL+pR,g(a0,b0,c0,d0)=qL+qR,a,a0,c,c0是L方的私有变量,b,b0,d,d0是R方的私有变量;
利用伪随机函数生成a0,c0;
按Δa=a-a0计算Δa并将Δa发送给R方的设备,按Δc=c-c0计算Δc并将Δc发送给R方的设备,从R方的设备接收Δb和Δd;Δb=b-b0,Δd=d-d0;
至少求和uL,vL,a0c0,(c0,c0,a0,a0)(Δa,Δb,Δc,Δd)T,以获得zL;L方计算的zL和R方计算的zR满足zL+zR=f(a,b,c,d),R方的zR通过至少求和uR,vR,b0d0,(d0,d0,b0,b0)(Δa,Δb,Δc,Δd)T得到;
至少求和qL,(pL,pL,uL,vL)(Δa,Δb,Δc,Δd)T,(a0,a0c0)(Δb,Δd)T,a0ΔcΔd,(Δa+Δb)c0Δd,以获得wL;L方计算的wL和R方计算的wR满足wL+wR=g(a,b,c,d),R方的wR通过至少求和qR,(pR,pR,uR,vR)(Δa,Δb,Δc,Δd)T,(b0,b0d0)(Δa,Δc)T,b0ΔcΔd,(Δa+Δb)Δcd0得到。
3.如权利要求2所述的方法,其中,L方计算zL的求和项或R方计算zR的求和项还包含(Δa+Δb)(Δc+Δd),L方计算wL的求和项或R方计算wR的求和项还包含ΔaΔb,(Δa+Δb)ΔcΔd。
4.如权利要求1所述的方法,其中,An-2、An-3、…、A1、A0中的所述两两矩阵为相邻的两两矩阵;所述方法还包括:基于和共享分片x与R方协同,以对An-2、An-3、…、A1、A0中两两相邻的矩阵结对后落单的A0或An-1的至少部分矩阵元素进行运算,获得与A0或An-1对应的第1级乘积矩阵的至少部分矩阵元素的和共享分片。
5.如权利要求4所述的方法,其中,Ai具有如下形式:
令a=xi,b=yi;
所述基于和共享分片x与R方协同,以对An-2、An-3、…、A1、A0中两两相邻的矩阵结对后落单的A0或An-1的至少部分矩阵元素进行运算,获得与A0或An-1对应的第1级乘积矩阵的至少部分矩阵元素的和共享分片,包括:
通过安全乘法协议计算ab的和共享分片(ab)L。
6.如权利要求1所述的方法,其中,两个乘积矩阵的乘积具有如下形式:
其中,表示一个乘积矩阵,/>表示另一个乘积矩阵;a=aL+aR,b=bL+bR,c=cL+cR,d=dL+dR;aL,bL,cL,dL为L方的私有变量,aR,bR,cR,dR为R方的私有变量;
对于任意j,所述基于第j-1级乘积矩阵中两两乘积矩阵的至少部分矩阵元素的和共享分片与R方协同,获得第j级乘积矩阵的至少部分矩阵元素的和共享分片,包括:
通过安全乘法协议计算aLcR,aRcL,aLdR,aRdL的和共享分片(aLcR)L,(aRcL)L,(aLdR)L,(aRdL)L;
求和aLcL,(aLcR)L,(aRcL)L,以获得ac的和共享分片(ac)L;
求和aLdL,(aLdR)L,(aRdL)L,bL,以获得ad+b的和共享分片(ad+b)L。
7.如权利要求1所述的方法,其中,第j-1级乘积矩阵中两两乘积矩阵为相邻的两两乘积矩阵;两两相邻的第j-1级乘积矩阵结对后落单的第j-1级乘积矩阵被作为与其自身对应的第j级乘积矩阵。
8.如权利要求1所述的方法,其中,计算s=x+y时s的最高位从次高位获得的进位cn-1具有如下形式:
其中,表示第reil(log2(n-1))-1级的一个乘积矩阵,/>表示该级的另一个乘积矩阵;a=aL+aR,b=bL+bR,d=dL+dR;aL,bL,dL为L方的私有变量,aR,bR,dR为R方的私有变量,reil()表示向上取整;
对于j=reil(log2(n-1)),所述基于第j-1级乘积矩阵中两两乘积矩阵的至少部分矩阵元素的和共享分片与R方协同,获得第j级乘积矩阵的至少部分矩阵元素的和共享分片,包括:
通过安全乘法协议计算aLdR,aRdL的和共享分片(aLdR)L,(aRdL)L;
求和aLdL,(aLdR)L,(aRdL)L,bL,以获得进位cn-1的和共享分片(ad+b)L。
9.一种保护数据隐私的最高位进位计算***,其中,参与方中的任一方记为L方,另一方记为R方,L方持有和共享分片x,R方持有和共享分片y,两方的和共享分片的和值等于原秘密值;所述***在L方的设备上实现,其用于:
基于安全多方协议与R方协同运算,获取连乘结果矩阵中至少部分元素的和共享分片,进而基于连乘结果矩阵中至少部分元素的和共享分片,获取计算s=x+y时s的最高位从次高位获得的进位的和共享分片;
其中,连乘结果矩阵为An-2An-3…A1A0;0≤i≤n-2,xi为x的第i位,yi为y的第i位,n为存储单元的位数;
所述***包括第一协同计算模块以及第二协同计算模块;为了基于安全多方协议与R方协同运算,获取连乘结果矩阵中至少部分元素的和共享分片:
第一协同计算模块用于基于和共享分片x与R方协同,以对An-2、An-3、…、A1、A0中两两矩阵的至少部分矩阵元素进行计算,获得第1级乘积矩阵的至少部分矩阵元素的和共享分片;
第二协同计算模块用于基于第j-1级乘积矩阵中两两乘积矩阵的至少部分矩阵元素的和共享分片与R方协同,获得第j级乘积矩阵的至少部分矩阵元素的和共享分片;其中,j为不小于2的整数。
10.一种保护数据隐私的最高位进位计算装置,其中,包括处理器和存储设备,所述存储设备用于存储指令,当所述处理器执行指令时,实现如权利要求1~8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110911627.2A CN113761469B (zh) | 2021-08-10 | 2021-08-10 | 一种保护数据隐私的最高位进位计算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110911627.2A CN113761469B (zh) | 2021-08-10 | 2021-08-10 | 一种保护数据隐私的最高位进位计算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113761469A CN113761469A (zh) | 2021-12-07 |
CN113761469B true CN113761469B (zh) | 2024-05-17 |
Family
ID=78788853
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110911627.2A Active CN113761469B (zh) | 2021-08-10 | 2021-08-10 | 一种保护数据隐私的最高位进位计算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113761469B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115001649A (zh) * | 2022-04-15 | 2022-09-02 | 支付宝(杭州)信息技术有限公司 | 批量加密方法、相关装置、***、设备、介质及程序产品 |
CN115617897B (zh) * | 2022-11-04 | 2023-03-14 | 华控清交信息科技(北京)有限公司 | 一种数据类型转换方法和多方安全计算*** |
CN117454941B (zh) * | 2023-12-26 | 2024-04-26 | 哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院) | 基于函数秘密共享的安全二值神经网络推理*** |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106161405A (zh) * | 2015-04-21 | 2016-11-23 | 上海交通大学 | 基于同态加密机制的隐私可保护信息安全计算实现方法 |
CN111162896A (zh) * | 2020-04-01 | 2020-05-15 | 支付宝(杭州)信息技术有限公司 | 双方联合进行数据处理的方法及装置 |
CN111177790A (zh) * | 2020-04-10 | 2020-05-19 | 支付宝(杭州)信息技术有限公司 | 保护两方数据隐私的协同计算方法、***及装置 |
CN111523144A (zh) * | 2020-07-03 | 2020-08-11 | 支付宝(杭州)信息技术有限公司 | 针对多方的隐私数据进行安全运算的方法和装置 |
CA3128241A1 (en) * | 2019-02-22 | 2020-08-27 | Inpher, Inc. | Arithmetic for secure multi-party computation with modular integers |
WO2020199784A1 (zh) * | 2019-03-29 | 2020-10-08 | 华控清交信息科技(北京)有限公司 | 输入数据的计算方法、计算引擎及存储介质 |
CN111885079A (zh) * | 2020-07-31 | 2020-11-03 | 支付宝(杭州)信息技术有限公司 | 保护数据隐私的多方联合处理数据的方法及装置 |
CN112990260A (zh) * | 2021-02-05 | 2021-06-18 | 支付宝(杭州)信息技术有限公司 | 一种基于多方安全计算的模型评估方法和*** |
CN113158239A (zh) * | 2021-03-31 | 2021-07-23 | 支付宝(杭州)信息技术有限公司 | 保护数据隐私的选择问题处理方法 |
CN113158254A (zh) * | 2021-05-18 | 2021-07-23 | 支付宝(杭州)信息技术有限公司 | 一种保护数据隐私的选择问题处理方法和*** |
-
2021
- 2021-08-10 CN CN202110911627.2A patent/CN113761469B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106161405A (zh) * | 2015-04-21 | 2016-11-23 | 上海交通大学 | 基于同态加密机制的隐私可保护信息安全计算实现方法 |
CA3128241A1 (en) * | 2019-02-22 | 2020-08-27 | Inpher, Inc. | Arithmetic for secure multi-party computation with modular integers |
WO2020199784A1 (zh) * | 2019-03-29 | 2020-10-08 | 华控清交信息科技(北京)有限公司 | 输入数据的计算方法、计算引擎及存储介质 |
CN111162896A (zh) * | 2020-04-01 | 2020-05-15 | 支付宝(杭州)信息技术有限公司 | 双方联合进行数据处理的方法及装置 |
CN111177790A (zh) * | 2020-04-10 | 2020-05-19 | 支付宝(杭州)信息技术有限公司 | 保护两方数据隐私的协同计算方法、***及装置 |
CN111523144A (zh) * | 2020-07-03 | 2020-08-11 | 支付宝(杭州)信息技术有限公司 | 针对多方的隐私数据进行安全运算的方法和装置 |
CN111885079A (zh) * | 2020-07-31 | 2020-11-03 | 支付宝(杭州)信息技术有限公司 | 保护数据隐私的多方联合处理数据的方法及装置 |
CN112990260A (zh) * | 2021-02-05 | 2021-06-18 | 支付宝(杭州)信息技术有限公司 | 一种基于多方安全计算的模型评估方法和*** |
CN113158239A (zh) * | 2021-03-31 | 2021-07-23 | 支付宝(杭州)信息技术有限公司 | 保护数据隐私的选择问题处理方法 |
CN113158254A (zh) * | 2021-05-18 | 2021-07-23 | 支付宝(杭州)信息技术有限公司 | 一种保护数据隐私的选择问题处理方法和*** |
Non-Patent Citations (1)
Title |
---|
一种基于智能合约的全同态加密方法;仝秦玮;李洁;王洁;胡心森;胡凯;;网络空间安全;20200930(第09期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113761469A (zh) | 2021-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Gao et al. | Privacy-preserving Naive Bayes classifiers secure against the substitution-then-comparison attack | |
CN113761469B (zh) | 一种保护数据隐私的最高位进位计算方法 | |
US11539515B2 (en) | High-precision privacy-preserving real-valued function evaluation | |
US10778410B2 (en) | Homomorphic data encryption method and apparatus for implementing privacy protection | |
CN111512589B (zh) | 用于利用spdz的快速安全多方内积的方法 | |
US20210091953A1 (en) | Method for verifying information | |
CN107683502B (zh) | 根据紧凑源代码生成加密函数参数 | |
CN111475854B (zh) | 保护两方数据隐私的协同计算方法及*** | |
Bogdanov et al. | High-performance secure multi-party computation for data mining applications | |
US9515828B2 (en) | Sharing a secret via linear interpolation | |
Niu et al. | Toward verifiable and privacy preserving machine learning prediction | |
CN113158239B (zh) | 保护数据隐私的选择问题处理方法 | |
Podschwadt et al. | A survey of deep learning architectures for privacy-preserving machine learning with fully homomorphic encryption | |
WO2018102861A1 (en) | Secure text analytics | |
Nassar et al. | Securing aggregate queries for DNA databases | |
US20220166614A1 (en) | System and method to optimize generation of coprime numbers in cryptographic applications | |
Haider et al. | An Innovative approach towards image encryption by using novel PRNs and S-boxes Modeling techniques | |
JPWO2012121152A1 (ja) | 代理計算システム、方法、依頼装置及びプログラム | |
Ugwuoke et al. | Secure fixed-point division for homomorphically encrypted operands | |
CN113609503B (zh) | 一种保护数据隐私的最高位进位计算方法 | |
CN113626841A (zh) | 基于多方安全计算的选择问题处理方法 | |
US20220345312A1 (en) | Zero-knowledge contingent payments protocol for granting access to encrypted assets | |
EP3566423B1 (en) | Verification of fixed-point arithmetic | |
EP4236193A1 (en) | Inner products with secure multi-party computations | |
Ahmed et al. | Trilinear pairing-based cryptosystem authentication: for electronic health record security in healthcare system |
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 |