CN111506933A - 安全多方计算的方法和系统 - Google Patents
安全多方计算的方法和系统 Download PDFInfo
- Publication number
- CN111506933A CN111506933A CN202010470354.8A CN202010470354A CN111506933A CN 111506933 A CN111506933 A CN 111506933A CN 202010470354 A CN202010470354 A CN 202010470354A CN 111506933 A CN111506933 A CN 111506933A
- Authority
- CN
- China
- Prior art keywords
- terminal device
- calculation
- shared secret
- operation result
- terminal equipment
- 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.)
- Granted
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 129
- 238000000034 method Methods 0.000 claims abstract description 53
- 238000012795 verification Methods 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 14
- 238000012545 processing Methods 0.000 description 9
- 238000007781 pre-processing Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000005034 decoration Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开了一种安全多方计算的方法和系统。其中,基于秘密共享实现安全多方计算的方法,包括:通过分别与个用户对应的终端设备,从各自对应的用户接收各自对应的用户掌握的数字值;在终端设备上分别部署与所接收的数字值相对应的共享秘密;通过每个终端设备,根据所设置的共享秘密以及多方计算的计算规则,计算与每个终端设备对应的运算结果,其中所述计算规则用于根据所述用户掌握的数字值得到安全多方计算的运算结果;以及根据各个终端设备对应的运算结果,计算得到多方计算的运算结果。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种安全多方计算的方法和系统。
背景技术
安全多方计算是指在没有可信第三方的情况下,多个参与方利用各自掌握的数据共同按照共同的计算规则进行计算使得通过所有参与方能够共同算出计算结果,但是又不会泄露每一方的输入信息。目前,在安全多方计算中,最常用的方式是采用加密电路的方式来实现。
但是通过加密电路的方式来实现安全多方计算,需要将计算的函数表示成逻辑电路,并且需要针对逻辑电路的各个逻辑门逐个做加密操作。从而,这种安全多方计算的实现方式,会在增加安全多方计算的成本的同时,降低安全多方计算的效率和性能。同时,应对恶意用户数量大于诚实用户的安全多方计算实现需要复杂的预处理过程,也会降低安全多方计算的性能。
另外,安全多方计算的流程需要在非计算参与方处进行校验,以实现非计算参与方对于计算正确性的审计。这一点对于加密电路实现安全多方计算的方案是难以实现的。
针对上述的现有技术中存在的通过加密电路实现安全多方计算增加安全多方计算的成本并且降低安全多方计算的效率和性能的技术问题,恶意用户数量大于诚实用户的安全多方计算实现需要复杂的预处理过程的技术问题,以及安全多方计算的在非计算参与方处进行校验的技术问题目前尚未提出有效的解决方案。
发明内容
本公开的实施例提供了一种安全多方计算的方法和系统,以至少解决现有技术中存在的通过加密电路实现安全多方计算增加安全多方计算的成本并且降低安全多方计算的效率和性能的技术问题,以及预处理过程开销较大和非计算参与方校验计算正确性的技术问题。
根据本公开实施例的一个方面,提供了一种基于秘密共享实现安全多方计算的方法,包括:通过分别与n个用户P1至Pn对应的终端设备T1至Tn,从各自对应的用户P1至Pn接收各自对应的用户掌握的数字值Q1至Qn;在终端设备T1至Tn上分别部署与所接收的数字值Q1至Qn相对应的共享秘密Qi,j,其中Qi,j表示在第j个终端设备Tj上部署的与第i个终端设备Ti接收的数字值Qi相关的共享秘密,n为大于1的自然数,i=1~n,j=1~n,并且通过共享秘密Qi,1至Qi,n能够恢复出第i个终端设备Ti接收的数字值Qi;通过终端设备T1至Tn中的每一个终端设备Ti,根据所设置的共享秘密Q1,i至Qn,i以及多方计算的计算规则,计算与终端设备Ti对应的运算结果Zi,其中所述计算规则用于根据所述n个用户掌握的数字值Qi得到安全多方计算的运算结果Z;以及根据各个终端设备Ti对应的运算结果Zi,计算得到多方计算的运算结果Z。
根据本公开实施例的另一方面,还提供了一种基于秘密共享实现安全多方计算的系统,包括分别与n个用户P1至Pn对应的终端设备T1至Tn。其中,所述系统配置用于执行以下操作:通过分别与n个用户P1至Pn对应的终端设备T1至Tn,从各自对应的用户P1至Pn接收各自对应的用户掌握的数字值Q1至Qn;在终端设备T1至Tn上分别部署与所接收的数字值Q1至Qn相对应的共享秘密Qi,j,其中Qi,j表示在第j个终端设备Tj上部署的与第i个终端设备Ti接收的数字值Qi相关的共享秘密,n为大于1的自然数,i=1~n,j=1~n,并且通过共享秘密Qi,1至Qi,n能够恢复出第i个终端设备Ti接收的数字值Qi;通过终端设备T1至Tn中的每一个终端设备Ti,根据所设置的共享秘密Q1,i至Qn,i以及多方计算的计算规则,计算与终端设备Ti对应的运算结果Zi,其中所述计算规则用于根据所述n个用户掌握的数字值Qi得到安全多方计算的运算结果Z;以及根据各个终端设备Ti对应的运算结果Zi,计算得到多方计算的运算结果Z。
从而根据本实施例,利用秘密共享的方式,实现了安全多方计算,从而能够在保证各个用户P1至Pn所掌握的数值不被泄露的前提下,仍然能够利用这些数值进行运算,并最终得到运算结果。并且,通过这种方式,可以不必再通过加密电路来实现安全多方计算,从而解决了现有技术中存在的通过加密电路实现安全多方计算增加安全多方计算的成本并且降低安全多方计算的效率和性能的技术问题。
附图说明
此处所说明的附图用来提供对本公开的进一步理解,构成本申请的一部分,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。在附图中:
图1是用于实现根据本公开实施例所述的方法的计算设备的硬件结构框图;
图2是根据本公开实施例所述的安全多方计算的的系统的示意图;
图3是根据本公开实施例的第一个方面所述的安全多方计算的方法的流程示意图;
图4是根据本公开实施例中各个终端设备中部署的与数字值对应的共享秘密的示意图;
图5是根据本公开实施例中,通过安全多方计算得到运算结果的示意图;
图6A是根据本公开实施例中,对两个终端设备中的数字值进行乘法运算时两个终端设备中的共享秘密的示意图;以及
图6B是根据本公开实施例中,两个终端设备分配了三元组的共享秘密后的示意图;
图6C是根据本公开实施例中,三个终端设备分配了三元组的共享秘密后的示意图;以及
图7是根据本公开实施例中,在终端设备上部署了与信息校验数字值以及相应的共享秘密校验数字值的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本公开的技术方案,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本公开一部分的实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本公开保护的范围。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本实施例,还提供了一种基于秘密共享实现安全多方计算的方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本实施例所提供的方法实施例可以在移动终端、计算机终端、服务器或者类似的计算设备中执行。图1示出了一种用于实现基于秘密共享实现安全多方计算的方法的计算设备的硬件结构框图。如图1所示,计算设备可以包括一个或多个处理器(处理器可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器、以及用于通信功能的传输装置。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算设备还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
应当注意到的是上述一个或多个处理器和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算设备中的其他元件中的任意一个内。如本公开实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器可用于存储应用软件的软件程序以及模块,如本公开实施例中的基于秘密共享实现安全多方计算的方法对应的程序指令/数据存储装置,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的基于秘密共享实现安全多方计算的方法。存储器可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至计算设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算设备的通信供应商提供的无线网络。在一个实例中,传输装置包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算设备的用户界面进行交互。
此处需要说明的是,在一些可选实施例中,上述图1所示的计算设备可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图1仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算设备中的部件的类型。
图2是根据本实施例所述的基于秘密共享实现安全多方计算的安全多方计算系统的示意图。参照图2所示,该系统包括:服务器100;以及与服务器100通信的n个终端设备T1至Tn。其中终端设备T1至Tn的用户P1至Pn分别掌握有各自的数字值Q1至Qn。
其中,设计安全多方计算系统的目的,在于使得用户P1至Pn在不必向其他用户以及服务器100公开自己掌握的数字值的情况下,能够完成与各自的数字值相关的计算。
例如,在某些情况下,可能需要计算用户P1至Pn所掌握的数字值Q1至Qn之和,即Q1+Q2+……+Qn。在这种情况下,按照通常的方法,需要用户P1至Pn将自己掌握的数字值发送给服务器100由服务器100进行求和运算。或者需要用户P1至Pn将自己掌握的数字值发送给其他用户从而一起完成求和运算。
但是如果数字值Q1至Qn对于各自的用户P1至Pn而言是需要进行保密的信息,那就需要在用户P1至Pn不将各自的数字值Q1至Qn发送至其他设备(例如服务器100以及其他用户的终端设备)的情况下,还能完成以上所述的运算,并且将最终的运算结果告知用户P1至Pn。因此这就涉及到安全多方计算的问题。
需要说明的是,系统中的服务器100以及终端设备T1至Tn均可适用上面所述的硬件结构。
在上述运行环境下,根据本实施例的第一个方面,提供了一种基于秘密共享实现安全多方计算的方法,该方法由图2中所示的安全多方计算系统实现。图3示出了该方法的流程示意图,参考图3所示,该方法包括:
S302:通过分别与n个用户P1至Pn对应的终端设备T1至Tn,分别从各自对应的用户P1至Pn接收各自对应的用户掌握的数字值Q1至Qn;
S304:在终端设备T1至Tn上分别部署与所接收的数字值Q1至Qn相对应的共享秘密Qi,j,其中Qi,j表示在第j个终端设备Tj上部署的与第i个终端设备Ti接收的数字值Qi相关的共享秘密,n为大于1的自然数,i=1~n,j=1~n,并且通过共享秘密Qi,1至Qi,n能够恢复出第i个终端设备Ti接收的数字值Qi;
S306:通过n个终端设备中的每个终端设备Ti,根据所设置的共享秘密Q1,i至Qn,i以及多方计算的计算规则,计算与终端设备Ti对应的运算结果Zi,其中该计算规则用于根据所述n个用户掌握的数字值Qi得到安全多方计算的运算结果Z;以及
S308:根据各个终端设备Ti对应的运算结果Zi,计算得到运算结果Z。
具体地,参考图2所示,当用户P1至Pn需要进行安全多方计算时,可以分别将各自掌握的数字Q1至Qn输入值对应的终端设备T1至Tn(S302)。
在终端设备T1至Tn接收到各自的数字值Q1至Qn时,终端设备T1至Tn会根据各自输入的数字值Q1至Qn生成相应的共享秘密Qi,j(S302)。其中Qi,j表示在第j个用户的终端设备Tj上生成的与第i个用户掌握的数字值Qi相关的共享秘密,n为大于1的自然数,i=1~n,j=1~n,并且有Qi,1至Qi,n之和等于第i个用户掌握的数字值Qi。
秘密共享的思想是将秘密以适当的方式拆分,拆分后的每一个份额由不同的参与者管理,单个参与者无法恢复秘密信息,只有若干个参与者一同协作才能恢复秘密消息。而在本实施例中,每一个数字值Qi被拆分成n个共享秘密Qi,j,并分别由终端设备T1至Tn管理。由于终端设备T1至Tn均只部署有共享秘密的一个份额,因此部分的终端设备无法根据已经部署的共享秘密Qi,j恢复出数字值Qi,除非全部的终端设备T1至Tn能够将关于数字值的所有共享秘密Qi,j均收集完毕才能恢复出数字值Qi。
而在本实施例中,对于数字值Qi,则是需要收集齐所有的n个共享秘密Qi,j后,才能恢复出数字值Qi。
例如,当用户P1向终端设备T1输入数字值Q1时,系统就根据终端设备T1接收的数字值Q1,生成与数字值Q1对应的n个共享秘密Q1,1、Q1,2、……、Q1,n。并且分别将共享秘密Q1,1、Q1,2、……、Q1,n部署至终端设备T1至Tn。
其中,共享秘密Q1,1至Q1,n例如是由终端设备T1根据用户P1输入的数字值Q1生成的。而部署共享秘密Q1,1至Q1,n则可以通过多种方式实现。例如,终端设备T1可以直接将共享秘密Q1,2至Q1,n分别发送至相应的终端设备T2至Tn;或者终端设备T1可以将共享秘密Q1,2至Q1,n发送至服务器100,由服务器100分别发送至相应的终端设备T2至Tn。
进一步的,其他终端设备T2至Tn也均进行类似的操作。从而,每个终端设备上都部署有与各个数字值Q1至Qn对应的共享秘密。具体如下表所示表1各个终端设备部署的共享秘密
Q<sub>1</sub> | Q<sub>1</sub> | Q<sub>3</sub> | …… | Q<sub>i</sub> | …… | Q<sub>n</sub> | |
T<sub>1</sub> | Q<sub>1,1</sub> | Q<sub>2,1</sub> | Q<sub>3,1</sub> | …… | Q<sub>i,1</sub> | …… | Q<sub>n,1</sub> |
T<sub>2</sub> | Q<sub>1,2</sub> | Q<sub>2,2</sub> | Q<sub>3,2</sub> | …… | Q<sub>i,2</sub> | …… | Q<sub>n,2</sub> |
T<sub>3</sub> | Q<sub>1,3</sub> | Q<sub>2,3</sub> | Q<sub>3,3</sub> | …… | Q<sub>i,3</sub> | …… | Q<sub>n,3</sub> |
…… | …… | …… | …… | …… | …… | …… | …… |
T<sub>j</sub> | Q<sub>1,j</sub> | Q<sub>2,j</sub> | Q<sub>3,j</sub> | …… | Q<sub>i,j</sub> | …… | Q<sub>n,j</sub> |
….. | …… | …… | …… | …… | …… | …… | …… |
T<sub>n</sub> | Q<sub>1,n</sub> | Q<sub>2,n</sub> | Q<sub>3,n</sub> | …… | Q<sub>i,n</sub> | …… | Q<sub>n,n</sub> |
从而,通过这种方式,在终端设备T1至Tn上分别部署与所接收的数字值Q1至Qn相对应的共享秘密Qi,j,其中Qi,j表示在第j个终端设备Tj上部署的与第i个终端设备Ti接收的数字值Qi相关的共享秘密,n为大于1的自然数,i=1~n,j=1~n,并且通过共享秘密Qi,1至Qi,n能够恢复出第i个终端设备Ti接收的数字值Qi。
具体地,图4示出了终端设备T1至Tn上部署的数字值自己共享秘密的示意图。参考图4所示,
在第1个终端设备T1中,部署有所接收的数字值Q1、与数字值Q1对应的共享秘密Q1,1、与数字值Q2对应的共享秘密Q2,1、……、与数字值Qn对应的共享秘密Qn,1。
在第2个终端设备T2中,部署有所接收的数字值Q2、与数字值Q1对应的共享秘密Q1,2、与数字值Q2对应的共享秘密Q2,2、……、与数字值Qn对应的共享秘密Qn,2。
依次类推,直到在第n个终端设备Tn中,部署有所接收的数字值Qn、与数字值Q1对应的共享秘密Q1,n、与数字值Q2对应的共享秘密Q2,n、……、与数字值Qn对应的共享秘密Qn,n。
然后,终端设备T1至Tn中的每一个终端设备Ti,根据所设置的共享秘密Q1,i至Qn,i以及多方计算的计算规则,计算与每个终端设备Ti对应的运算结果Zi,其中所述计算规则用于根据所述n个用户掌握的数字值Qi得到安全多方计算的运算结果Z(S306)。
具体地,图5示出了安全多方计算系统利用共享秘密计算出最终的运算结果Z的示意图。
首先,终端设备T1至Tn中的每一个终端设备Ti,根据所部属的共享秘密Q1,i至Qn,i以及多方计算的计算规则,计算与终端设备Ti对应的运算结果Zi。
例如,终端设备T1根据所部属的共享秘密Q1,1至Qn,1计算得到相应的运算结果Z1;
终端设备T2根据所部属的共享秘密Q1,2至Qn,2计算得到相应的运算结果Z2;以及
直到终端设备Tn根据所部属的共享秘密Q1,n至Qn,n计算得到相应的运算结果Zn。
最后,参考图5所示,安全多方计算系统会根据各个终端设备T1至Tn计算得到的相应运算结果Z1至Zn,计算出最终的运算结果Z(S308)。
其中,各个终端设备T1至Tn的运算结果Z1至Zn都是根据各个数值Q1至Qn的共享秘密计算得出的,并且对于每一个数值Qi,在收集齐相应的共享秘密Qi,1至Qi,n之后,都可以恢复出数值Qi。因此,在收集齐所有终端设备的运算结果Z1至Zn后,可以根据共享秘密与对应数值之间的联系,仅仅利用运算结果Z1至Zn在不恢复出相应数值Q1至Qn的情况下,计算出最终的运算结果Z。
从而,通过本实施例的技术方案,利用秘密共享的方式,实现了安全多方计算,从而能够在保证各个用户P1至Pn所掌握的数值不被泄露的前提下,仍然能够利用这些数值进行运算,并最终得到运算结果。并且,通过这种方式,可以不必再通过加密电路来实现安全多方计算,从而解决了现有技术中存在的通过加密电路实现安全多方计算增加安全多方计算的成本并且降低安全多方计算的效率和性能的技术问题。
可选地,通过将共享秘密Qi,1至Qi,n求和能够恢复出第i个终端设备Ti接收的数字值Qi。
具体地参考图4所示,例如终端设备T1所接收的数字值是Q1,并且根据数字值Q1生成了相应的共享秘密Q1,1至Q1,n,并且分别由终端设备T1至Tn各自保留一个份额的共享秘密。
这其中,共享秘密Q1,1至Q1,n满足,Q1,1+Q1,2+……+Q1,n=Q1,即将各个终端设备T1至Tn分别部署的共享秘密Q1,1至Q1,n相加,可以得到Q1的数值。
同样的,对于其他的数字值Q2至Qn,分别满足:
Q2,1+Q2,2+……+Q2,n=Q2;
Q3,1+Q3,2+……+Q3,n=Q3;
……
Qn,1+Qn,2+……+Qn,n=Qn。
具体地,可以通过以下方式产生与各个数字值Q1至Qn对应的共享秘密。
以T1接收的数字值Q1为例,当终端设备T1接收到用户输入的数字值Q1时,系统会为该数字值Q1分配一个随机数R1,并且会根据该随机数R1生成与之对应的n-1个随机数r1,1、r1,2、……、r1,n-1。其中,满足以下公式:
R1=r1,1+r1,2+……+r1,n-1。
然后,按照如下公式确定与数字值Q1对应的共享秘密Q1,1至Q1,n:
Q1,1=Q1-R1;
Q1,2=r1,1;
Q1,3=r1,2;
……
Q1,n=r1,n-1。
从而有
Q1,1+Q1,2+Q1,3+……+Q1,n
=Q1-R1+r1,1+r1,2+……+r1,n-1
=Q1。
同样地,当终端设备T2接收到用户输入的数字值Q2时,系统会为该数字值Q2分配一个随机数R2,并且会根据该随机数R2生成与之对应的n-1个随机数r2,1、r2,2、……、r2,n-1。其中,满足以下公式:
R2=r2,1+r2,2+……+r2,n-1。
然后,按照如下公式确定与数字值Q2对应的共享秘密Q2,1至Q2,n:
Q2,1=r2,1;
Q2,2=Q2-R2;
Q2,3=r2,2;
……
Q2,n=r2,n-1。
从而有
Q2,1+Q2,2+Q2,3+……+Q2,n
=r1,1+Q2-R2+r1,2+……+r1,n-1
=Q2。
依次类推,也就是说,对于每一个终端设备Ti,当终端设备Ti接收到用户输入的数字值Qi时,系统会为该数字值Qi分配一个随机数Ri,并且会根据该随机数Ri生成与之对应的n-1个随机数ri,1、ri,2、……、ri,n-1。其中,满足以下公式:
Ri=ri,1+ri,2+……+ri,n-1。
然后,在终端设备Ti上部署Qi-Ri作为与Qi对应的共享秘密的一个份额,而将其他随机数ri,1、ri,2、……、ri,n-1分别分配给其他的n-1个终端设备。
从而各个终端设备T1至Tn部署的共享秘密Qi,1至Qi,n能够通过求和得到数字值Qi。
并且,对于终端设备Ti而言,由于其仅仅是将部分随机数ri,1、ri,2、……、ri,n-1分别分配给其他的n-1个终端设备,因此即便是这些随机数被泄露,人们也仍然无法知道终端设备Ti所接收的数字值,从而起到了保密的作用。
生成随机数的过程,例如可以在接收数字值Qi的终端设备Ti上实现。或者也可以由服务器100生成后发送至终端设备Ti。
从而通过这种方式,使得各个终端设备所部署的共享秘密与相应的数字值之间存在一个线性的运算关系,从而方便后续的安全多方计算。
并且,进一步地,多方计算的计算规则为将n个数字值Q1至Qn中的至少一部分数字值进行线性运算。并且通过终端设备T1至Tn中的每一个终端设备Ti,根据所设置的共享秘密Q1,i至Qn,i以及多方计算的计算规则,计算与终端设备Ti对应的运算结果Zi,包括:通过每个终端设备Ti,利用终端设备Ti所部属的与该至少一部分数字值对应的共享秘密,进行线性运算,得到对应的运算结果Zi。
并且,进一步地,根据各个终端设备Ti对应的运算结果Zi,得到多方计算的运算结果Z,包括:将各个终端设备Ti对应的运算结果Zi进行求和运算,得到多方计算的运算结果Z。
具体地,例如多方运算的计算规则是求取(a*Q1+b*Q2+Q3)的数值,其中a和b均为常数。
为了得到多方运算的运算结果,需要在各个终端设备上进行以下运算:
终端设备T1:Z1=a*Q1,1+b*Q2,1+Q3,1;
终端设备T2:Z2=a*Q1,2+b*Q2,2+Q3,2;
……
终端设备Tn:Zn=a*Q1,n+b*Q2,n+Q3,n。
也就是说,各个终端设备利用与Q1、Q2和Q3对应的共享秘密,根据多方运算的计算规则,进行相应的线性运算。
由于运算结果Z1、Z2、……、Zn都是通过与各个数字对应的共享秘密计算得到的,因此即便是终端设备T1至Tn将各自的运算结果Z1至Zn进行公布,Q1至Q3的数字值仍然能够得到很好的保密而不被泄露。
然后,多方运算系统对运算结果Z1至Zn进行求和运算,即可得到最终的多方运算的运算结果Z。即
Z=Z1+Z2+……+Zn
=(a*Q1,1+b*Q2,1+Q3,1)+(a*Q1,2+b*Q2,2+Q3,2)+……+(a*Q1,n+b*Q2,n+Q3,n)
=a*(Q1,1+Q1,2+……+Q1,n)+b*(Q2,1+Q2,2+……+Q2,n)+(Q3,1+Q3,2+……+Q3,n)
=a*Q1+b*Q2+Q3。
从而,通过这种方式,即可在不公开各个终端设备T1至Tn接收的数字值Q1至Qn的情况下,计算至少一部分数字值之间的线性运算。
此外,可选地,多方计算的计算规则为将n个数字值Q1至Qn中的两个数字值Qx和Qy进行乘法运算,其中1≤x,y≤n,并且x≠y。并且通过终端设备T1至Tn中的每一个终端设备Ti,根据所设置的共享秘密Q1,i至Qn,i以及多方计算的计算规则,计算与终端设备Ti对应的运算结果Zi,包括:
根据生成的随机数A和B以及A与B的乘积C,分别在n个终端设备T1至Tn的每一个终端设备Ti部署与随机数A和B以及乘积C对应的共享秘密Ai、Bi以及Ci;
通过每一个终端设备Ti计算(Qx,i-Ai)以及(Qy,i-Bi),并且在n个终端设备T1至Tn之间公布各自运算的(Qx,i-Ai)以及(Qy,i-Bi),并且公布与乘积C对应的共享秘密Ci,其中Qx,i为在终端设备Ti上部署的与数字值Qx对应的共享秘密,Qy,i为在终端设备Ti上部署的与数字值Qy对应的共享秘密;
通过每一个终端设备Ti计算以下公式,得到运算结果Zi:
并且,进一步的,根据各个终端设备Ti对应的运算结果Zi,得到多方计算的运算结果Z,包括:将各个终端设备Ti对应的运算结果Zi进行求和运算,并根据求和运算的结果得到多方计算的运算结果Z。
为了便于理解本实施例的技术方案中的乘法运算,下面以安全多方计算系统包含两个终端设备T1和T2为例来进行说明。但是本领域技术人员能够根据本实施例的说明,扩展至更多个终端设备的应用。
参考图6A所示,安全多方计算系统的终端设备T1和T2上部署有接收的数字值Q1和Q2以及分别与数字值Q1和Q2对应的共享秘密Q1,1、Q2,1、Q1,2以及Q2,2。
并且其中,
Q1=Q1,1+Q1,2;以及
Q2=Q2,1+Q2,2。
在这种情况下,如果要计算数值Q1*Q2,例如通过以下公式进行计算:
Q1*Q2
=(Q1,1+Q1,2)*(Q2,1+Q2,2)
=Q1,1*Q2,1+Q1,1*Q2,2+Q1,2*Q2,1+Q1,2*Q2,2
其中,在本实施例的基于秘密共享的安全多方计算系统的方案下,由于终端设备T1仅仅部署有Q1,1和Q2,1,终端设备T2仅仅部署有Q1,2和Q2,2,因此是没有办法通过终端设备T1或T2对(Q1,1*Q2,2)和(Q1,2*Q2,1)进行计算的,否则就会导致Q1或Q2的数值泄露。
在这种情况下,本实施例的技术方案引入了三元组的概念。即引入了随机数A和B以及随机数A和B的乘积C。
其中,随机数A和B的数值是不公布的。但是由于随机数A和B的数值没有公布,因此可以公布数值(Q1-A)以及数值(Q2-B)。也就是说即便是在公布数值(Q1-A)以及数值(Q2-B)的情况下,由于随机数A和B没有公布,仍然可以掩藏数值Q1和Q2不被公开。
具体地,参考图6B所示,在终端设备T1上可以部署关于A的共享秘密A1、关于B的共享秘密B1以及关于C的共享秘密C1。在终端设备T2上可以部署关于A的共享秘密A2、关于B的共享秘密B2以及关于C的共享秘密C2。
其中,A1+A2=A,B1+B2=B,且C1+C2=C
然后,T1广播(Q1,1-A1)以及(Q2,1-B1)的数值,并且T2广播(Q1,2-A2)以及(Q2,2-B2)的数值。从而T1和T2可根据以下公式计算得到数值(Q1-A)以及数值(Q2-B):
(Q1,1-A1)+(Q1,2-A2)=(Q1,1+Q1,2)-(A1+A2)=Q1-A;
(Q2,1-B1)+(Q2,2-B2)=(Q2,1+Q2,2)-(B1+B2)=Q2-B。
然后,T1和T2可以按照以下公式计算各自的运算结果Zi
Zi=-(1/2)*(Q1-A)*(Q2-B)+Q1,i*(Q2-B)+Q2,i*(Q1-A)+Ci。
即,终端设备T1计算得到:
Z1=-0.5*(Q1-A)*(Q2-B)+Q1,1*(Q2-B)+Q2,1*(Q1-A)+C1。
即,终端设备T2计算得到:
Z2=-0.5*(Q1-A)*(Q2-B)+Q1,2*(Q2-B)+Q2,2*(Q1-A)+C2。
然后,将终端设备T1和T2计算得到的结果Z1和Z2相加,即可得到Z1+Z2的数值。并且根据以下公式,可以得到Q1*Q2的表达式:
Z1+Z2
=-0.5*(Q1-A)*(Q2-B)+Q1,1*(Q2-B)+Q2,1*(Q1-A)+C1-0.5*(Q1-A)*(Q2-B)+Q1,2*(Q2-B)+Q2,2*(Q1-A)+C2
=(A-Q1)*(Q2-B)+(Q1,1+Q1,2)*(Q2-B)+(Q2,1+Q2,2)*(Q1-A)+C1+C2
=A*Q2-A*B-Q1*Q2+Q1*B+Q1*Q2-Q1*B+Q1*Q2-A*Q2+C
=Q1*Q2=Z,
从而,通过将T1和T2计算的结果相加,即可得到Q1和Q2的乘积。
从而,因此可以计算得到Q1和Q2之间的乘积。从而完成关于Q1和Q2的乘积的安全多方计算。
此外,图6C示出了在通过3个终端设备计算进行安全多方计算的情况下,计算乘法的示意图。参考图6C所示,在终端设备T1上可以部署关于A的共享秘密A1、关于B的共享秘密B1以及关于C的共享秘密C1。在终端设备T2上可以部署关于A的共享秘密A2、关于B的共享秘密B2以及关于C的共享秘密C2。在终端设备T3上可以部署关于A的共享秘密A3、关于B的共享秘密B3以及关于C的共享秘密C3。
其中,A1+A2+A3=A,B1+B2+B3=B,且C1+C2+C3=C。
例如在需要计算Q1*Q2时,T1广播(Q1,1-A1)以及(Q2,1-B1)的数值,并且T2广播(Q1,2-A2)以及(Q2,2-B2)的数值,T3广播(Q1,3-A3)以及(Q2,3-B3)的数值。从而T1至T3可根据以下公式计算得到数值(Q1-A)以及数值(Q2-B):
(Q1,1-A1)+(Q1,2-A2)+(Q1,3-A3)=(Q1,1+Q1,2+Q1,3)-(A1+A2+A3)=Q1-A;
(Q2,1-B1)+(Q2,2-B2)+(Q2,3-B3)=(Q2,1+Q2,2+Q2,3)-(B1+B2+B3)=Q2-B。
然后,T1至T3可以按照以下公式计算各自的运算结果Zi
Zi=-(1/3)*(Q1-A)*(Q2-B)+Q1,i*(Q2-B)+Q2,i*(Q1-A)+Ci。
即,终端设备T1计算得到:
终端设备T2计算得到:
终端设备T3计算得到:
然后,将终端设备T1至T3计算得到的结果Z1至Z3相加,即可得到Z1+Z2+Z3的数值。并且根据以下公式,可以得到Q1*Q2的表达式:
从而,通过将T1至T3计算的结果相加,即可得到Q1和Q2的乘积。
从而,因此可以计算得到Q1和Q2之间的乘积。从而完成关于Q1和Q2的乘积的安全多方计算。
此外,在利用三元组进行乘法计算之前,本实施例的技术方案引入了预处理阶段,在该阶段,三元组由一个仅在预处理阶段运行的服务器生成并分发,该服务器需要生成足量的三元组并通过秘密分享的方式发放给所有用户,称为三元组列表。在预处理阶段结束之后,计算才可以开始,此时该服务器与所有用户断开连接,从而保证用户终端的安全。
当三元组被使用时,用户终端设备T1至Tn产生随机数R1至Rn。并且根据所产生的随机数Ri(1≤i≤n)选择已有三元组列表中的一个三元组(以该随机数选取对应序号的三元组),作为本次使用的三元组。之后该三元组被弃用,三元组列表更新。
从而通过这种方式,在使用三元组进行乘法计算的过程中,可以有效地保证三元组的使用过程中的保密性,从而进一步增强了多方安全计算的安全性。并且该预处理过程可以通过简单的方式应对恶意用户数量大于诚实用户的安全多方计算场景,从而避免了应对恶意用户数量大于诚实用户的安全多方计算过程会降低安全多方计算的性能的情况的发生。
可选地,方法还包括:分别在终端设备Ti部署对应的信息校验数字值Mi,其中i=1~n;在终端设备T1至Tn上分别部署与信息校验数字值M1至Mn相对应的共享秘密校验数字值Mi,j。其中Mi,j表示在第j个终端设备Tj上部署的与第i个终端设备Ti部署的信息校验数字值Mi相关的共享秘密校验数字值,n为大于1的自然数,i=1~n,j=1~n,并且通过共享秘密校验数字值Mi,1至Mi,n能够恢复出第i个终端设备Ti的信息校验数字值Mi;以及通过终端设备T1至Tn中的每个终端设备Ti,根据所设置的共享秘密校验数字值M1,i至Mn,i以及多方计算的计算规则,计算与所述运算结果Z对应的运算结果校验值M。
参考图7所示,在本实施例中,在终端设备T1至Tn部署数字值Q1至Qn时,对于每一个数字值Qi和设置有对应的信息校验数字值Mi。然后,各个终端设备上分别部署有与信息校验数字值Mi对应的共享秘密校验数字值M1,i至Mn,i。其中,下面的表2列出了各个终端设备部署的共享秘密校验数字值
表1各个终端设备部署的共享秘密校验数字值
M<sub>1</sub> | M<sub>1</sub> | M<sub>3</sub> | …… | M<sub>i</sub> | …… | M<sub>n</sub> | |
T<sub>1</sub> | M<sub>1,1</sub> | M<sub>2,1</sub> | M<sub>3,1</sub> | …… | M<sub>i,1</sub> | …… | M<sub>n,1</sub> |
T<sub>2</sub> | M<sub>1,2</sub> | M<sub>2,2</sub> | M<sub>3,2</sub> | …… | M<sub>i,2</sub> | …… | M<sub>n,2</sub> |
T<sub>3</sub> | M<sub>1,3</sub> | M<sub>2,3</sub> | M<sub>3,3</sub> | …… | M<sub>i,3</sub> | …… | M<sub>n,3</sub> |
…… | …… | …… | …… | …… | …… | …… | …… |
T<sub>j</sub> | M<sub>1,j</sub> | M<sub>2,j</sub> | M<sub>3,j</sub> | …… | M<sub>i,j</sub> | …… | M<sub>n,j</sub> |
….. | …… | …… | …… | …… | …… | …… | …… |
T<sub>n</sub> | M<sub>1,n</sub> | M<sub>2,n</sub> | M<sub>3,n</sub> | …… | M<sub>i,n</sub> | …… | M<sub>n,n</sub> |
其中,例如信息校验数字值Mi与对应的数字值Qi之间可以是线性关系,即
Mi=αQi,并且其中例如信息校验数字值Mi例如可以符合以下条件:
从而在通过多个终端Tj在利用所设置的共享秘密Qij安全多方计算时,也利用共享秘密校验数字值Mij同时进行相应的计算。
例如,在进行加法计算时,例如计算Z=Qx+Qy(其中Qx为终端Tx上的数字值,Qy终端设备Ty上的数字值)。那么最终得到校验值Mz也应当满足:
Mz=Mx+My。其中Mx为终端Tx上的信息校验数字值,My终端设备Ty上的信息校验数字值。
此外,在进行乘法的安全多方计算时,也可以根据乘法的算法(例如设置三元组),计算相应的校验值Mz
从而通过这种方式,可以利用在终端设备上设置的信息校验数字值,对安全多方计算的计算结果进行校验。
此外,计算结束后,所有的中间输出值如Q-A,与其对应的校验值M(Q-A)需要电子签名并发送至公告板上进行保存,所有计算中间值的合法性共同保证了安全多方计算的正确性。这些结果将被用于非参与用户的审计。并且,本方案可以不必在非计算参与方处进行安全多方计算的流程的校验,从而有利于提高安全多方计算的安全性和可验证性。
此外,参考图2所示,根据本实施例的第二个方面,提供了一种基于秘密共享实现安全多方计算的系统,包括分别与n个用户P1至Pn对应的终端设备T1至Tn。其中,所述系统配置用于执行以下操作:通过分别与n个用户P1至Pn对应的终端设备T1至Tn,从各自对应的用户P1至Pn接收各自对应的用户掌握的数字值Q1至Qn;在终端设备T1至Tn上分别部署与所接收的数字值Q1至Qn相对应的共享秘密Qi,j,其中Qi,j表示在第j个终端设备Tj上部署的与第i个终端设备Ti接收的数字值Qi相关的共享秘密,n为大于1的自然数,i=1~n,j=1~n,并且通过共享秘密Qi,1至Qi,n能够恢复出第i个终端设备Ti接收的数字值Qi;通过终端设备T1至Tn中的每一个终端设备Ti,根据所设置的共享秘密Q1,i至Qn,i以及多方计算的计算规则,计算与终端设备Ti对应的运算结果Zi,其中所述计算规则用于根据所述n个用户掌握的数字值Qi得到安全多方计算的运算结果Z;以及根据各个终端设备Ti对应的运算结果Zi,计算得到多方计算的运算结果Z。
可选地,所述共享秘密Qi,j满足以下条件:通过将共享秘密Qi,1至Qi,n求和能够恢复出第i个终端设备Ti接收的数字值Qi。
可选地,所述多方计算的计算规则为将所述n个数字值Q1至Qn中的至少一部分数字值进行线性运算,并且通过终端设备T1至Tn中的每一个终端设备Ti,根据所设置的共享秘密Q1,i至Qn,i以及多方计算的计算规则,计算与终端设备Ti对应的运算结果Zi,包括:通过所述每一个终端设备Ti,利用所述终端设备Ti所部属的与所述至少一部分数字值对应的共享秘密,进行所述线性运算,得到对应的运算结果Zi。
可选地,根据各个终端设备Ti对应的运算结果Zi,得到多方计算的运算结果Z,包括:将各个终端设备Ti对应的运算结果Zi进行求和运算,得到多方计算的运算结果Z。
可选地,所述多方计算的计算规则为将所述n个数字值Q1至Qn中的两个数字值Qx和Qy进行乘法运算,其中1≤x,y小于等于n,并且x≠y。并且通过终端设备T1至Tn中的每一个终端设备Ti,根据所设置的共享秘密Q1,i至Qn,i以及多方计算的计算规则,计算与终端设备Ti对应的运算结果Zi,包括:根据生成的随机数A和B以及A与B的乘积C,分别在所述n个终端设备T1至Tn的每一个终端设备Ti部署与所述随机数A和B以及乘积C对应的共享秘密Ai、Bi以及Ci;通过每一个终端设备Ti计算(Qx,i-Ai)以及(Qy,i-Bi),并且在所述n个终端设备T1至Tn之间公布各自运算的(Qx,i-Ai)以及(Qy,i-Bi),并且公布与乘积C对应的共享秘密Ci,其中Qx,i为在终端设备Ti上部署的与数字值Qx对应的共享秘密,Qy,i为在终端设备Ti上部署的与数字值Qy对应的共享秘密;通过每一个终端设备Ti计算以下公式,得到运算结果Zi:
可选地,根据各个终端设备Ti对应的运算结果Zi,得到多方计算的运算结果Z,包括:将各个终端设备Ti对应的运算结果Zi进行求和运算,并根据求和运算的结果得到多方计算的运算结果Z。
此外,所述系统还配置用于执行以下操作:分别在终端设备Ti部署对应的信息校验数字值Mi,其中i=1~n;在终端设备T1至Tn上分别部署与信息校验数字值M1至Mn相对应的共享秘密校验数字值Mi,j,其中Mi,j表示在第j个终端设备Tj上部署的与第i个终端设备Ti部署的信息校验数字值Mi相关的共享秘密校验数字值,n为大于1的自然数,i=1~n,j=1~n,并且通过共享秘密校验数字值Mi,1至Mi,n能够恢复出第i个终端设备Ti的信息校验数字值Mi;以及通过终端设备T1至Tn中的每个终端设备Ti,根据所设置的共享秘密校验数字值M1,i至Mn,i以及多方计算的计算规则,计算与所述运算结果Z对应的运算结果校验值M。
从而根据本实施例,利用秘密共享的方式,实现了安全多方计算,从而能够在保证各个用户P1至Pn所掌握的数值不被泄露的前提下,仍然能够利用这些数值进行运算,并最终得到运算结果。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Onyy Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种基于秘密共享实现安全多方计算的方法,其特征在于,包括:
通过分别与n个用户P1至Pn对应的终端设备T1至Tn,从各自对应的用户P1至Pn接收各自对应的用户掌握的数字值Q1至Qn;
在终端设备T1至Tn上分别部署与所接收的数字值Q1至Qn相对应的共享秘密Qi,j,其中Qi,j表示在第j个终端设备Tj上部署的与第i个终端设备Ti接收的数字值Qi相关的共享秘密,n为大于1的自然数,i=1~n,j=1~n,并且通过共享秘密Qi,1至Qi,n能够恢复出第i个终端设备Ti接收的数字值Qi;
通过终端设备T1至Tn中的每个终端设备Ti,根据所设置的共享秘密Q1,i至Qn,i以及多方计算的计算规则,计算与每个终端设备Ti对应的运算结果Zi,其中所述计算规则用于根据所述n个用户掌握的数字值Qi得到安全多方计算的运算结果Z;以及
根据各个终端设备Ti对应的运算结果Zi,计算得到多方计算的运算结果Z。
2.根据权利要求1所述的方法,其特征在于,所述共享秘密Qi,j满足以下条件:通过将共享秘密Qi,1至Qi,n求和能够恢复出第i个终端设备Ti接收的数字值Qi。
3.根据权利要求2所述的方法,其特征在于,所述多方计算的计算规则为将所述数字值Q1至Qn中的至少一部分数字值进行线性运算,并且通过终端设备T1至Tn中的每个终端设备Ti,根据所设置的共享秘密Q1,i至Qn,i以及多方计算的计算规则,计算与每个终端设备Ti对应的运算结果Zi,包括:
通过所述终端设备Ti,利用所述终端设备Ti所部署的与所述至少一部分数字值对应的共享秘密,进行所述线性运算,得到对应的运算结果Zi。
4.根据权利要求3所述的方法,其特征在于,根据各个终端设备Ti对应的运算结果Zi,得到多方计算的运算结果Z,包括:
将各个终端设备Ti对应的运算结果Zi进行求和运算,得到多方计算的运算结果Z。
5.根据权利要求2所述的方法,其特征在于,所述多方计算的计算规则为将所述数字值Q1至Qn中的两个数字值Qx和Qy进行乘法运算,其中1≤x,y≤n,
并且通过终端设备T1至Tn中的每个终端设备Ti,根据所设置的共享秘密Q1,i至Qn,i以及多方计算的计算规则,计算与每个终端设备Ti对应的运算结果Zi,包括:
根据生成的随机数A和B以及所述随机数A与B的乘积C,分别在所述终端设备T1至Tn的每个终端设备Ti部署与所述随机数A和B以及乘积C对应的共享秘密Ai、Bi以及Ci;
通过每个终端设备Ti计算(Qx,i-Ai)以及(Qy,i-Bi),并且在所述终端设备T1至Tn之间公布各自运算的(Qx,i-Ai)以及(Qy,i-Bi),其中Qx,i为在终端设备Ti上部署的与数字值Qx对应的共享秘密,Qy,i为在终端设备Ti上部署的与数字值Qy对应的共享秘密;以及
通过每个终端设备Ti计算以下公式,得到运算结果Zi:
6.根据权利要求5所述的方法,其特征在于,根据各个终端设备Ti对应的运算结果Zi,得到多方计算的运算结果Z,包括:
将各个终端设备Ti对应的运算结果Zi进行求和运算,并根据求和运算的结果得到多方计算的运算结果Z。
7.根据权利要求1至6任意一项所述的方法,其特征在于,还包括:
分别在终端设备Ti部署对应的信息校验数字值Mi,其中i=1~n;
在终端设备T1至Tn上分别部署与信息校验数字值M1至Mn相对应的共享秘密校验数字值Mi,j,其中Mi,j表示在第j个终端设备Tj上部署的与第i个终端设备Ti部署的信息校验数字值Mi相关的共享秘密校验数字值,n为大于1的自然数,i=1~n,j=1~n,并且通过共享秘密校验数字值Mi,1至Mi,n能够恢复出第i个终端设备Ti的信息校验数字值Mi;以及
通过终端设备T1至Tn中的每个终端设备Ti,根据所设置的共享秘密校验数字值M1,i至Mn,i以及多方计算的计算规则,计算与所述运算结果Z对应的运算结果校验值M。
8.一种基于秘密共享实现安全多方计算的系统,包括分别与n个用户P1至Pn对应的终端设备T1至Tn,其特征在于,所述系统配置用于执行以下操作:
通过分别与n个用户P1至Pn对应的终端设备T1至Tn,从各自对应的用户P1至Pn接收各自对应的用户掌握的数字值Q1至Qn;
在终端设备T1至Tn上分别部署与所接收的数字值Q1至Qn相对应的共享秘密Qi,j,其中Qi,j表示在第j个终端设备Tj上部署的与第i个终端设备Ti接收的数字值Qi相关的共享秘密,n为大于1的自然数,i=1~n,j=1~n,并且通过共享秘密Qi,1至Qi,n能够恢复出第i个终端设备Ti接收的数字值Qi;
通过终端设备T1至Tn中的每个终端设备Ti,根据所设置的共享秘密Q1,i至Qn,i以及多方计算的计算规则,计算与每个终端设备Ti对应的运算结果Zi,其中所述计算规则用于根据所述n个用户掌握的数字值Qi得到安全多方计算的运算结果Z;以及
根据各个终端设备Ti对应的运算结果Zi,计算得到多方计算的运算结果Z。
9.根据权利要求8所述的系统,其特征在于,所述共享秘密Qi,j满足以下条件:通过将共享秘密Qi,1至Qi,n求和能够恢复出第i个终端设备Ti接收的数字值Qi。
10.根据权利要求9所述的系统,其特征在于,所述多方计算的计算规则为将所述数字值Q1至Qn中的至少一部分数字值进行线性运算,并且通过终端设备T1至Tn中的每个终端设备Ti,根据所设置的共享秘密Q1,i至Qn,i以及多方计算的计算规则,计算与每个终端设备Ti对应的运算结果Zi,包括:
通过所述终端设备Ti,利用所述终端设备Ti所部署的与所述至少一部分数字值对应的共享秘密,进行所述线性运算,得到对应的运算结果Zi。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010470354.8A CN111506933B (zh) | 2020-05-28 | 2020-05-28 | 安全多方计算的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010470354.8A CN111506933B (zh) | 2020-05-28 | 2020-05-28 | 安全多方计算的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111506933A true CN111506933A (zh) | 2020-08-07 |
CN111506933B CN111506933B (zh) | 2024-09-06 |
Family
ID=71870364
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010470354.8A Active CN111506933B (zh) | 2020-05-28 | 2020-05-28 | 安全多方计算的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111506933B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112464155A (zh) * | 2020-12-01 | 2021-03-09 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、多方安全计算系统和电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107786330A (zh) * | 2017-09-26 | 2018-03-09 | 陈彦丰 | 用于秘密共享的方法、装置、计算机存储介质及电子设备 |
WO2019111318A1 (ja) * | 2017-12-05 | 2019-06-13 | 日本電気株式会社 | サーバ装置、秘密等号判定システム、秘密等号判定方法および秘密等号判定プログラム記録媒体 |
CN110061829A (zh) * | 2019-04-26 | 2019-07-26 | 上海点融信息科技有限责任公司 | 基于区块链网络的安全多方计算方法、装置及存储介质 |
CN110557245A (zh) * | 2018-06-04 | 2019-12-10 | 罗伯特·博世有限公司 | 用于spdz的容错和安全多方计算的方法和系统 |
-
2020
- 2020-05-28 CN CN202010470354.8A patent/CN111506933B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107786330A (zh) * | 2017-09-26 | 2018-03-09 | 陈彦丰 | 用于秘密共享的方法、装置、计算机存储介质及电子设备 |
WO2019111318A1 (ja) * | 2017-12-05 | 2019-06-13 | 日本電気株式会社 | サーバ装置、秘密等号判定システム、秘密等号判定方法および秘密等号判定プログラム記録媒体 |
CN110557245A (zh) * | 2018-06-04 | 2019-12-10 | 罗伯特·博世有限公司 | 用于spdz的容错和安全多方计算的方法和系统 |
CN110061829A (zh) * | 2019-04-26 | 2019-07-26 | 上海点融信息科技有限责任公司 | 基于区块链网络的安全多方计算方法、装置及存储介质 |
Non-Patent Citations (3)
Title |
---|
王浩: "无线移动自组网的分布式密钥管理和认证研究", 中国博士学位论文全文数据库 信息科技辑, no. 5, 15 November 2007 (2007-11-15) * |
苏冠通,徐茂桐: "安全多方计算技术与应用综述", 信息通信技术与政策, no. 5, 31 May 2019 (2019-05-31) * |
陈子迪 等: ""基于秘密共享的IBE移动密码系统"", 《软件》, vol. 39, no. 2, 28 February 2018 (2018-02-28), pages 13 - 14 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112464155A (zh) * | 2020-12-01 | 2021-03-09 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、多方安全计算系统和电子设备 |
CN112464155B (zh) * | 2020-12-01 | 2024-01-26 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、多方安全计算系统和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111506933B (zh) | 2024-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110084063B (zh) | 一种保护隐私数据的梯度下降计算方法 | |
CN109446828B (zh) | 一种安全多方计算方法及装置 | |
EP3559811A1 (en) | Protecting parallel multiplication operations from external monitoring attacks | |
JP7259876B2 (ja) | 情報処理装置、秘密計算方法及びプログラム | |
CN111586142B (zh) | 一种安全多方计算方法及系统 | |
CN111737715A (zh) | 一种去中心化的电子合同在线签署的方法及系统 | |
CN111064583A (zh) | 一种门限sm2数字签名方法、装置、电子设备及存储介质 | |
CN112101944A (zh) | 一种高效隐私支付实现方法、装置、计算机设备及存储介质 | |
CN109787762B (zh) | 服务器各自生成密钥分量的密钥管理方法、电子设备 | |
KR20210054422A (ko) | 다자간 보안컴퓨팅을 이용하여 샤미르 비밀정보 조각이 유실된 단말에 비밀정보 조각을 복구하는 방법 | |
US20100306543A1 (en) | Method of efficient secure function evaluation using resettable tamper-resistant hardware tokens | |
CN114548418A (zh) | 一种基于秘密分享的横向联邦iv算法 | |
CN114337994A (zh) | 数据处理方法、装置及系统 | |
CN112734426A (zh) | 一种基于区块链技术的多方私密数据计算方法 | |
CN112685752A (zh) | 基于区块链的数据处理方法、装置、电子设备及区块链 | |
CN111506933A (zh) | 安全多方计算的方法和系统 | |
CN116248266A (zh) | 基于秘密分享的安全多方计算方法及系统 | |
CN112597542A (zh) | 目标资产数据的聚合方法及装置、存储介质、电子装置 | |
CN107888385A (zh) | Rsa模数生成方法、rsa密钥生成方法、计算机设备及介质 | |
CN114139197A (zh) | 一种代理安全多方计算方法、系统、处理设备及存储介质 | |
CN112668016B (zh) | 一种模型训练方法、装置和电子设备 | |
CN109981591B (zh) | 单一客户端生成私钥的密钥管理方法、电子设备 | |
CN109377366B (zh) | 基于区块链的通证处理方法、装置及存储介质 | |
JP7259875B2 (ja) | 情報処理装置、秘密計算方法及びプログラム | |
CN114880693B (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20211207 Address after: 100007 No. 68 xiangbaihu alley, Dongcheng District, Beijing Applicant after: Xu Maotong Address before: No. 28-b13, second floor, building 37, No. 11 Hepingli East Street, Dongcheng District, Beijing 100125 Applicant before: Zero knowledge technology (Beijing) Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |