CN110175461A - 安全多方计算的实现方法、装置、计算机设备和存储介质 - Google Patents
安全多方计算的实现方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN110175461A CN110175461A CN201910378892.1A CN201910378892A CN110175461A CN 110175461 A CN110175461 A CN 110175461A CN 201910378892 A CN201910378892 A CN 201910378892A CN 110175461 A CN110175461 A CN 110175461A
- Authority
- CN
- China
- Prior art keywords
- mpc
- mpc node
- node
- proxy server
- party computations
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了一种安全多方计算的实现方法、装置、计算机设备和存储介质,其中,该方法包括:代理服务器接收第一MPC节点发送的计算请求,其中,第一MPC节点为多个MPC节点中的一个MPC节点,代理服务器中注册有多个MPC节点中各MPC节点的回调函数;响应于计算请求,代理服务器通过调用各MPC节点的回调函数向各MPC节点发送计算请求;在确定各MPC节点均接收到计算请求的情况下,代理服务器通过调用各MPC节点的回调函数向各MPC节点发送计算开始通知,其中,计算开始通知用于指示各MPC节点执行安全多方计算。上述方法使得可以采用更加灵活可配置的方式构建安全多方计算协作服务,有效提高任务协作效率以及计算效率。
Description
技术领域
本申请涉及安全多方计算技术领域,特别涉及一种安全多方计算的实现方法、装置、计算机设备和存储介质。
背景技术
安全多方计算(Secure Multi-Party Computation,MPC)是指在一个分布式网络中,多个用户需要共同协作完成一项任务,每个用户各自持有一些私密数据作为任务的输入,他们希望共同完成对这些数据的计算,同时要求每个用户除计算结果外均不能够获知其他用户的任何输入信息。安全多方计算是解决一组互不信任的参与方之间在保护隐私的前提下完成协同计算的问题,安全多方计算要确保输入的独立性,计算的正确性,同时不泄露各输入数据给参与计算的其他成员。安全多方计算在电子选举、电子投票、电子拍卖、秘密共享、门限签名等场景中有着重要的作用。
然而,目前的安全多方计算中参与计算的各节点之间的任务协作效率较低,从而导致计算效率低。
针对上述问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种安全多方计算的实现方法,以解决现有技术中参与计算的各节点之间的任务协作效率低的问题。
本申请实施例提供了一种安全多方计算的实现方法,包括:代理服务器接收第一MPC节点发送的计算请求,其中,第一MPC节点为多个MPC节点中的一个MPC节点,代理服务器中注册有多个MPC节点中各MPC节点的回调函数;响应于计算请求,代理服务器通过调用各MPC节点的回调函数向各MPC节点发送计算请求;在确定各MPC节点均接收到计算请求的情况下,代理服务器通过调用各MPC节点的回调函数向各MPC节点发送计算开始通知,其中,计算开始通知用于指示各MPC节点执行安全多方计算。
在一个实施例中,代理服务器注册多个MPC节点中各MPC节点的回调函数,包括:代理服务器接收多个MPC节点中各MPC节点发送的回调注册请求,回调注册请求中携带有对应MPC节点的用户信息和回调函数,用户信息用于标识对应MPC节点;响应于回调注册请求,代理服务器对多个MPC节点中各MPC节点的用户信息和回调函数进行注册。
在一个实施例中,用户信息包括以下至少之一:用户ID、任务ID、端口ID、公钥和分配密码。
在一个实施例中,各MPC节点执行安全多方计算,包括:响应于计算开始通知,各MPC节点之间建立直接连接;各MPC节点根据预设的MPC协议执行安全多方计算,其中,各MPC节点之间直接传输计算中间数据。
在一个实施例中,各MPC节点执行安全多方计算,包括:响应于计算开始通知,各MPC节点之间通过代理服务器建立间接连接;各MPC节点根据预设的MPC协议执行安全多方计算,其中,各MPC节点之间通过代理服务器转发计算中间数据。
在一个实施例中,代理服务器转发计算中间数据,包括:代理服务器接收第二MPC节点发送的加密后的计算中间数据,其中,加密后的计算中间数据是由第二MPC节点根据第三MPC节点的公钥对计算中间数据进行加密后获得的,第二MPC节点和第三MPC节点是多个MPC节点中的两个MPC节点;代理服务器通过调用第三MPC节点的回调函数将接收到的加密后的计算中间数据发送至第三MPC节点,其中,第三MPC节点根据自身的私钥对接收到的计算中间数据进行解密,以获取解密后的计算中间数据。
在一个实施例中,在各MPC节点执行安全多方计算之后,还包括:代理服务器接收第四MPC节点发送的结果分发请求,其中,第四MPC节点为各MPC节点中的获得计算结果的MPC节点;响应于结果分发请求,代理服务器对计算结果进行分发。
在一个实施例中,在代理服务器接收第四MPC节点发送的结果分发请求之前,还包括:第四MPC节点确定是否要对获得的计算结果进行分发;在确定要对获得的计算结果进行分发的情况下,第四MPC节点向代理服务器发送结果分发请求,结果分发请求中携带有计算结果。
在一个实施例中,代理服务器经由防火墙接收多个MPC节点发送的数据和/或请求,并经由防火墙向多个MPC节点发送数据和/或请求。
本申请实施例还提供了一种安全多方计算的实现装置,位于代理服务器中,包括:接收模块,用于接收第一MPC节点发送的计算请求,其中,第一MPC节点为多个MPC节点中的一个MPC节点,代理服务器中注册有多个MPC节点中各MPC节点的回调函数;第一回调模块,用于响应于计算请求,通过调用各MPC节点的回调函数向各MPC节点发送计算请求;第二回调模块,用于在确定各MPC节点均接收到计算请求的情况下,通过调用各MPC节点的回调函数向各MPC节点发送计算开始通知,其中,计算开始通知用于指示各MPC节点执行安全多方计算。
本申请实施例还提供一种计算机设备,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现上述任意实施例中所述的安全多方计算的实现方法的步骤。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现上述任意实施例中所述的安全多方计算的实现方法的步骤。
在本申请实施例中,提供了一种安全多方计算的实现方法,通过注册有多个MPC节点中各MPC节点的回调函数的代理服务器接收计算请求,并响应于计算请求,调用各MPC节点的回调函数向各MPC节点发送计算请求,在确定各MPC节点均接收到计算请求的情况下,调用各MPC节点的回调函数向各MPC节点发送计算开始通知,使得各MPC节点执行安全多方计算。上述方案中,通过代理服务器在各MPC节点之间进行计算任务协调,使得可以采用更加灵活可配置的方式构建计算协作服务,从而实现各MPC节点之间的安全多方计算,有效提高任务协作效率以及安全多方计算效率。通过上述方案解决了现有的安全多方计算的任务协作效率低、计算效率低的技术问题,达到了有效提升任务协作的效率和灵活性以及提高安全多方计算的效率的技术效果。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,并不构成对本申请的限定。在附图中:
图1示出了本申请一实施例中的安全多方计算的实现方法的应用场景的示意图;
图2示出了本申请一实施例中的安全多方计算的实现方法的系统架构示意图;
图3示出了本申请一实施例中的安全多方计算的实现方法的流程图;
图4示出了本申请一实施例中的安全多方计算的实现方法的顺序图;
图5示出了本申请一实施例中的安全多方计算的实现方法的顺序图;
图6示出了本申请一实施例中的安全多方计算的实现装置的示意图;
图7示出了本申请一实施例中的计算机设备的示意图。
具体实施方式
下面将参考若干示例性实施方式来描述本申请的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本申请,而并非以任何方式限制本申请的范围。相反,提供这些实施方式是为了使本申请公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域的技术人员知道,本申请的实施方式可以实现为一种系统、装置设备、方法或计算机程序产品。因此,本申请公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
本申请实施例提供了一种安全多方计算的实现方法,图1示出了该实现方法的一种应用场景的示意图。在图1中,示意性地示出了代理服务器和多个MPC节点(本申请中,MPC节点的个数可以为2个、3个或3个以上,图1中仅示意性地示出3个MPC节点:MPC节点1、MPC节点2和MPC节点3)。如图1所示,代理服务器中注册有多个MPC节点的用户回调,用户回调包括用户信息和回调函数。代理服务器与各个MPC节点通信连接。代理服务器可以接收多个MPC节点中的任一个MPC节点发送的计算请求,并响应于该计算请求,通过调用各MPC节点的回调函数向各MPC节点发送计算请求,在确定各MPC节点均成功接收计算请求的情况下,通过调用各MPC节点的回调函数向各MPC节点发送计算开始通知,各MPC节点响应于计算开始通知进行安全多方计算。
其中,上述代理服务器可以是单一的服务器,也可以是服务器集群,或者是云服务器等都可以,具体的组成形成本申请不作限定。上述MPC节点可以是台式电脑、笔记本、手机终端、PDA等,只要是可以与代理服务器进行通信连接并具备计算能力的设备都可以,对于MPC节点的呈现形成,本申请也不作限定。
图2示出了本申请实施中的安全多方计算的实现方法的一种系统架构示意图。在图2中,示意性地示出了两个MPC节点:MPC节点1和MPC节点2。如图2所示,每个MPC节点可以包括MPC APP(应用程序)、MPC SDK(MPC软件开发工具包)、MPC CORE(MPC核心)和DataClient/Service(数据客户端/服务端)。其中,MPC APP可以接收用户输入的安全多方计算请求。MPC SDK用于提供计算任务业务接口给MPC APP使用,包括注册回调、发起邀请等操作,需要调用Data Client/Service提供的数据通信服务。MPC CORE用于提供MPC协议以实现核心计算任务,进行安全多方计算。Data Client/Service提供输入输出数据客户端或服务端的能力,起到安全多方计算的通信实体的作用。防火墙用于提供可靠、安全且高效的应用防火墙服务。代理服务器用于提供用户注册服务、处理计算请求、协商安全多方计算,并且能能够提供数据通道代理,通过请求和回调方式与数据客户端通信,并提供计算协作服务。
上述方案中,每个MPC节点都具备数据客户端,数据客户端可以与代理服务器或对端MPC节点进行通信。针对MPC计算中间数据传输方式,MPC节点可以采用以下方式中的一种:代理传输模式和直接传输模式。其中,在代理传输模式下,MPC节点具备数据客户端的能力,其依赖于代理服务器提供的中转服务来发送数据,然后代理服务器通过回调将数据发送给对端MPC节点。在代理传输模式下,多个MPC节点可以处于不同的网络中,代理服务求相当于一个公网代理,提供数据中转以实现MPC节点之间的数据交换。由于在代理转发模式下计算中间数据发送到了代理服务器,因此可以考虑使用公私钥机制,使用作为接收方的MPC节点的公钥加密计算中间数据,然后再通过代理服务器转发消息,进一步保证计算数据的隐私性。在直接传输模式下,MPC节点开启了数据服务,直接与对端MPC节点建立通信连接,能够直接接收对端MPC节点发送过来的计算中间数据或直接向对端MPC节点发送计算中间数据,由于数据不会泄露给第三方的代理服务器,因此数据的隐私性更高。在实际应用中,可以根据实际情况灵活选用这两种传输方式中的一种。
请参考图3,示出了本申请一实施例中安全多方计算的实现方法的流程图。虽然本申请提供了如下述实施例或附图所示的方法操作步骤或装置结构,但基于常规或者无需创造性的劳动在所述方法或装置中可以包括更多或者更少的操作步骤或模块单元。在逻辑性上不存在必要因果关系的步骤或结构中,这些步骤的执行顺序或装置的模块结构不限于本申请实施例描述及附图所示的执行顺序或模块结构。所述的方法或模块结构的在实际中的装置或终端产品应用时,可以按照实施例或者附图所示的方法或模块结构连接进行顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至分布式处理环境)。
具体地,如图3所示,本申请一种实施例提供的安全多方计算的实现方法可以包括以下步骤:
步骤301,代理服务器接收第一MPC节点发送的计算请求,其中,第一MPC节点为多个MPC节点中的一个MPC节点,代理服务器中注册有多个MPC节点中各MPC节点的回调函数。
具体地,代理服务器中注册有参与安全多方计算的多个MPC节点中各节点的回调函数。其中,回调函数可以包括但不限于以下至少之一:邀请回调函数、准备回调函数、数据回调函数、结果回调函数。代理服务器可以接收多个MPC节点中的第一MPC节点发送的计算请求。该计算请求可以为计算邀请请求。
步骤302,响应于计算请求,代理服务器通过调用各MPC节点的回调函数向各MPC节点发送计算请求。
具体地,在接收到计算请求后,代理服务器响应于该计算请求,可以通过调用各MPC节点的邀请回调函数向包括第一MPC节点的各MPC节点发送计算请求,以邀请各MPC节点参与安全多方计算。
步骤303,在确定各MPC节点均接收到计算请求的情况下,代理服务器通过调用各MPC节点的回调函数向各MPC节点发送计算开始通知,其中,计算开始通知用于指示各MPC节点执行安全多方计算。
具体地,在向各MPC节点发送计算请求之后,代理服务器确定是否各MPC节点均接收到该计算请求。由于代理服务器是通过调用回调函数来发送计算请求的,所以代理服务器可以根据回调函数是否执行成功来确定各MPC节点是否均接收到该计算请求。在确定各MPC节点均接收到计算请求的情况下,代理服务器可以通过调用各MPC节点的准备回调函数向各MPC节点发送计算开始通知。该计算开始通知用于告知各MPC节点均准备就绪,可以开始安全多方计算。各MPC节点响应于计算开始通知,执行安全多方计算。
上述实施例中的安全多方计算的实现方法,通过注册有多个MPC节点中各MPC节点的回调函数的代理服务器接收计算请求,并响应于计算请求,调用各MPC节点的回调函数向各MPC节点发送计算请求,在确定各MPC节点均接收到计算请求的情况下,调用各MPC节点的回调函数向各MPC节点发送计算开始通知,使得各MPC节点执行安全多方计算。上述方案中,通过代理服务器在各MPC节点之间进行计算任务协调,使得可以采用更加灵活可配置的方式构建计算协作服务,从而实现各MPC节点之间的安全多方计算,有效提高任务协作效率以及安全多方计算效率。通过上述方案解决了现有的安全多方计算的任务协作效率低、计算效率低的技术问题,达到了有效提升任务协作的效率和灵活性以及提高安全多方计算的效率的技术效果。
进一步地,在本申请一些实施例中,代理服务器注册多个MPC节点中各MPC节点的回调函数,可以包括:代理服务器接收多个MPC节点中各MPC节点发送的回调注册请求,回调注册请求中携带有对应MPC节点的用户信息和回调函数,用户信息用于标识对应MPC节点;响应于回调注册请求,代理服务器对多个MPC节点中各MPC节点的用户信息和回调函数进行注册。在本申请一些实施例中,用户信息可以包括以下至少之一:用户ID、任务ID、端口ID、公钥和分配密码。其中,代理服务器可以根据分配密码对各MPC节点进行验证,在验证通过后,才会对该MPC节点进行用户回调注册。通过上述方式,可以在代理服务器中注册各MPC节点的回调函数和用户信息,使得在MPC节点接收到计算邀请时通过回调向各MPC节点发送计算请求和计算开始通知,从而使得各MPC节点执行安全多方计算。
考虑到各MPC节点之间可以通过直接传输模式来传输计算中间数据,因此,在本申请一些实施例中,各MPC节点执行安全多方计算,可以包括:响应于计算开始通知,各MPC节点之间建立直接连接;各MPC节点根据预设的MPC协议执行安全多方计算,其中,各MPC节点之间直接传输计算中间数据。其中,各MPC节点之间建立直接连接时,获取对端的连接信息、服务地址和端口IP地址,以便于后续直接传输计算中间数据。通过上述方式,各MPC节点执行安全多方计算时,直接传输计算中间数据,无需通过代理服务器转发,可以更好地保护数据隐私。
考虑到各MPC节点可能处于不同的网络,无法直接建立通信连接,因此,可以通过代理服务器转发计算中间数据,即可以通过代理传输模式来传输计算中间数据。因此,在本申请一些实施例中,各MPC节点执行安全多方计算,可以包括:响应于计算开始通知,各MPC节点之间通过代理服务器建立间接连接;各MPC节点根据预设的MPC协议执行安全多方计算,其中,各MPC节点之间通过代理服务器转发计算中间数据。其中,代理服务器提供公网IP,使得处于不同网络的多个MPC节点之间通过代理服务器建立通信连接,实现内外网通信,还可以用于监控网络质量、进行流量监控,带宽监控等。通过上述方式,可以使得处于不同网络的多个MPC节点之间通过代理服务器建立间接连接,从而实现处于不同网络中的多个MPC节点可以协作执行安全多方计算。
在代理转发模式下,计算中间数据通过代理服务器转发,为了保护数据隐私,可以对计算中间数据进行加密后再进行转发。因此,在本申请一些实施例中,代理服务器转发计算中间数据,可以包括:代理服务器接收第二MPC节点发送的加密后的计算中间数据,其中,加密后的计算中间数据是由第二MPC节点根据第三MPC节点的公钥对计算中间数据进行加密后获得的,第二MPC节点和第三MPC节点是多个MPC节点中的两个MPC节点;代理服务器通过调用第三MPC节点的回调函数将接收到的加密后的计算中间数据发送至第三MPC节点,其中,第三MPC节点根据自身的私钥对接收到的计算中间数据进行解密,以获取解密后的计算中间数据。通过上述方式,对计算中间数据进行加密后再进行转发,可以保护代理传输模式下的数据隐私。
在各MPC节点进行安全多方计算之后,一般由其中一个MPC节点获取计算结果,为了将计算结果分发给其他MPC节点,可以通过代理服务器分发计算结果。因此,在本申请一些实施例中,在各MPC节点执行安全多方计算之后,还可以包括:代理服务器接收第四MPC节点发送的结果分发请求,其中,第四MPC节点为各MPC节点中的获得计算结果的MPC节点;响应于结果分发请求,代理服务器对计算结果进行分发。通过上述方式,可以通过代理服务器对计算结果进行分发。
进一步地,在本申请一些实施例中,在代理服务器接收第四MPC节点发送的结果分发请求之前,还可以包括:第四MPC节点确定是否要对获得的计算结果进行分发;在确定要对获得的计算结果进行分发的情况下,第四MPC节点向代理服务器发送结果分发请求,结果分发请求中携带有计算结果。其中,第四MPC节点可以根据配置文件或代码确定是否需要对获得的计算结果进行分发,在确定要对获得的计算结果进行分发的情况下,第四MPC节点向代理服务器发送结果分发请求,结果分发请求中携带有计算结果。通过上述方式,可以根据需要确定是否对计算结果进行分发。
为了保证数据通信的安全性,可以经由防火墙来发送或接收数据。因此,在本申请一些实施例中,代理服务器可以经由防火墙接收多个MPC节点发送的数据和/或请求,可以经由防火墙向多个MPC节点发送数据和/或请求。通过上述方式,可以提供可靠、安全且高效的应用防火墙服务,进一步保护数据隐私和数据安全性。
下面结合两个具体实施例对上述方法进行说明,然而,值得注意的是,该具体实施例仅是为了更好地说明本申请,并不构成对本申请的不当限定。
请参考图4和图5,分别示出了直接传输模式下的安全多方计算实现方法的顺序图和代理传输模式下的安全多方计算实现方法的顺序图。在图4和图5中均示出两个MPC节点作为示例。
如图4所示,安全多方计算实现方法可以包括以下步骤:
步骤1,MPC节点1和MPC节点2进行预处理,主要由MPC APP载入相关的配置、准备好计算环境、缓存MPC计算的布尔电路等;
步骤2,MPC节点1和MPC节点2分别向代理服务器发送用户回调注册请求,代理服务器响应于用户回调注册请求,将MPC节点1和MPC节点2的用户回调注册到代理服务器中;
步骤3,MPC节点1向代理服务器发送MPC计算邀请;
步骤4,代理服务器响应于MPC计算邀请,向MPC节点1和MPC节点2发送邀请回调;
步骤5,代理服务器在确定所有邀请回调均执行成功的情况下,向MPC节点1和MPC节点2发送准备回调;
步骤6,MPC节点1和MPC节点2响应于准备回调,建立直接连接,执行MPC计算,在MPC计算过程中,MPC节点1和MPC节点2之间直接传输计算中间数据;
步骤7,MPC节点2获得计算结果后,在确定不需分发计算结果的情况下,执行步骤9;在确定要将计算结果发送至MPC节点1的情况下,执行步骤8;
步骤8,MPC节点2将计算结果发送至代理服务器,代理服务器通过计算结果回调将计算结果发送至MPC节点1;
步骤9,结束。
如图5所示,安全多方计算实现方法包括以下步骤:
步骤1,MPC节点1和MPC节点2进行预处理,主要由MPC APP载入相关的配置、准备好计算环境、缓存MPC计算的布尔电路等;
步骤2,MPC节点1和MPC节点2分别向代理服务器发送用户回调注册请求,代理服务器响应于用户回调注册请求,将MPC节点1和MPC节点2的用户回调注册到代理服务器中;
步骤3,MPC节点1向代理服务器发送MPC计算邀请;
步骤4,代理服务器响应于MPC计算邀请,向MPC节点1和MPC节点2发送邀请回调;
步骤5,代理服务器在确定所有邀请回调均执行成功的情况下,向MPC节点1和MPC节点2发送准备回调;
步骤6,MPC节点1和MPC节点2响应于准备回调,通过代理服务器建立间接连接,执行MPC计算,在MPC计算过程中,MPC节点1和MPC节点2之间通过代理服务器转发来传输计算中间数据,其中,代理服务器通过数据回调来转发数据,在通过代理服务器转发数据之前,作为发送方的MPC节点根据作为接收方的MPC节点的公钥对数据进行加密,在作为接收方的MPC节点接收到数据之后,根据自身的私钥进行解密,以获取解密后的数据;
步骤7,MPC节点2获得计算结果后,在确定不需分发计算结果的情况下,执行步骤9;在确定要将计算结果发送至MPC节点1的情况下,执行步骤8;
步骤8,MPC节点2将计算结果发送至代理服务器,代理服务器通过计算结果回调将计算结果发送至MPC节点1;
步骤9,结束。
由上述两个实施例中的安全多方计算的实现方法可知,本申请提供的安全多方计算方法可以提供多种方式建立通信网络,包括:公网方式、内网方式和内网公网结合等方式;还可以通过在通道之上提供防火墙服务来构建可靠数据传输通道,本申请通过设置代理服务器,负责协调计算任务,比如MPC节点注册、计算邀请、连接建立、计算过程代理等,可以简化协作处理流程,使得可以采用更加灵活、可配置的方式构建计算协作服务,提供可定制的网络配置能力,使得计算调度和执行更加高效,从而提高安全多方计算效率,保证数据隐私。
基于同一发明构思,本申请实施例中还提供了一种安全多方计算的实现装置,位于代理服务器中,如下面的实施例所述。由于安全多方计算的实现装置解决问题的原理与安全多方计算的实现方法相似,因此安全多方计算的实现装置的实施可以参见安全多方计算的实现方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。图6是本申请实施例的安全多方计算的实现装置的一种结构框图,如图6所示,包括:接收模块601、第一回调模块602和第二回调模块603,下面对该结构进行说明。
接收模块601用于接收第一MPC节点发送的计算请求,其中,第一MPC节点为多个MPC节点中的一个MPC节点,代理服务器中注册有多个MPC节点中各MPC节点的回调函数。
第一回调模块602用于响应于计算请求,通过调用各MPC节点的回调函数向各MPC节点发送计算请求。
第二回调模块603用于在确定各MPC节点均接收到计算请求的情况下,通过调用各MPC节点的回调函数向各MPC节点发送计算开始通知,其中,计算开始通知用于指示各MPC节点执行安全多方计算。
在本申请一些实施例中,安全多方计算的实现装置还可以包括注册模块,所述注册模块用于在代理服务器中注册多个MPC节点中各MPC节点的回调函数,所述注册模块可以具体用于:接收多个MPC节点中各MPC节点发送的回调注册请求,回调注册请求中携带有对应MPC节点的用户信息和回调函数,用户信息用于标识对应MPC节点;响应于回调注册请求,对多个MPC节点中各MPC节点的用户信息和回调函数进行注册。
在本申请一些实施例中,用户信息可以包括以下至少之一:用户ID、任务ID、端口ID、公钥和分配密码。
在本申请一些实施例中,各MPC节点执行安全多方计算,可以包括:响应于计算开始通知,各MPC节点之间建立直接连接;各MPC节点根据预设的MPC协议执行安全多方计算,其中,各MPC节点之间直接传输计算中间数据。
在本申请一些实施例中,各MPC节点执行安全多方计算,可以包括:响应于计算开始通知,各MPC节点之间通过代理服务器建立间接连接;各MPC节点根据预设的MPC协议执行安全多方计算,其中,各MPC节点之间通过代理服务器转发计算中间数据。
在本申请一些实施例中,安全多方计算的实现装置还可以包括转发模块,用于转发计算中间数据,所述转发模块可以具体用于:接收第二MPC节点发送的加密后的计算中间数据,其中,加密后的计算中间数据是由第二MPC节点根据第三MPC节点的公钥对计算中间数据进行加密后获得的,第二MPC节点和第三MPC节点是多个MPC节点中的两个MPC节点;通过调用第三MPC节点的回调函数将接收到的加密后的计算中间数据发送至第三MPC节点,其中,第三MPC节点根据自身的私钥对接收到的计算中间数据进行解密,以获取解密后的计算中间数据。
在本申请一些实施例中,安全多方计算的实现装置还可以包括分发模块,所述分发模块具体用于:在各MPC节点执行安全多方计算之后,接收第四MPC节点发送的结果分发请求,其中,第四MPC节点为各MPC节点中的获得计算结果的MPC节点;响应于结果分发请求,对计算结果进行分发。
在本申请一些实施例中,在分发模块接收第四MPC节点发送的结果分发请求之前,第四MPC节点确定是否要对获得的计算结果进行分发;在确定要对获得的计算结果进行分发的情况下,第四MPC节点向代理服务器发送结果分发请求,结果分发请求中携带有计算结果。
在本申请一些实施例中,安全多方计算的实现装置可以经由防火墙接收多个MPC节点发送的数据和/或请求,可以经由防火墙向多个MPC节点发送数据和/或请求。
从以上的描述中,可以看出,本申请实施例实现了如下技术效果:通过注册有多个MPC节点中各MPC节点的回调函数的代理服务器接收计算请求,并响应于计算请求,调用各MPC节点的回调函数向各MPC节点发送计算请求,在确定各MPC节点均接收到计算请求的情况下,调用各MPC节点的回调函数向各MPC节点发送计算开始通知,使得各MPC节点执行安全多方计算。上述方案中,通过代理服务器在各MPC节点之间进行计算任务协调,使得可以采用更加灵活可配置的方式构建计算协作服务,从而实现各MPC节点之间的安全多方计算,有效提高任务协作效率以及安全多方计算效率。通过上述方案解决了现有的安全多方计算的任务协作效率低、计算效率低的技术问题,达到了有效提升任务协作的效率和灵活性以及提高安全多方计算的效率的技术效果。
本申请实施方式还提供了一种计算机设备,具体可以参阅图7所示的基于本申请实施例提供的安全多方计算的实现方法的计算机设备组成结构示意图,所述计算机设备具体可以包括输入设备71、处理器72、存储器73。其中,所述存储器73用于存储处理器可执行指令。所述处理器72执行所述指令时实现上述任意实施例中所述的安全多方计算的实现方法的步骤。
在本实施方式中,所述输入设备具体可以是用户和计算机系统之间进行信息交换的主要装置之一。所述输入设备可以包括键盘、鼠标、摄像头、扫描仪、光笔、手写输入板、语音输入装置等;输入设备用于把原始数据和处理这些数的程序输入到计算机中。所述输入设备还可以获取接收其他模块、单元、设备传输过来的数据。所述处理器可以按任何适当的方式实现。例如,处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。所述存储器具体可以是现代信息技术中用于保存信息的记忆设备。所述存储器可以包括多个层次,在数字系统中,只要能保存二进制数据的都可以是存储器;在集成电路中,一个没有实物形式的具有存储功能的电路也叫存储器,如RAM、FIFO等;在系统中,具有实物形式的存储设备也叫存储器,如内存条、TF卡等。
在本实施方式中,该计算机设备具体实现的功能和效果,可以与其它实施方式对照解释,在此不再赘述。
本申请实施方式中还提供了一种基于安全多方计算的实现方法的计算机存储介质,所述计算机存储介质存储有计算机程序指令,在所述计算机程序指令被执行时实现上述任意实施例中所述安全多方计算的实现方法的步骤。
在本实施方式中,上述存储介质包括但不限于随机存取存储器(Random AccessMemory,RAM)、只读存储器(Read-Only Memory,ROM)、缓存(Cache)、硬盘(Hard DiskDrive,HDD)或者存储卡(Memory Card)。所述存储器可以用于存储计算机程序指令。网络通信单元可以是依照通信协议规定的标准设置的,用于进行网络连接通信的接口。
在本实施方式中,该计算机存储介质存储的程序指令具体实现的功能和效果,可以与其它实施方式对照解释,在此不再赘述。
显然,本领域的技术人员应该明白,上述的本申请实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请实施例不限制于任何特定的硬件和软件结合。
应该理解,以上描述是为了进行图示说明而不是为了进行限制。通过阅读上述描述,在所提供的示例之外的许多实施方式和许多应用对本领域技术人员来说都将是显而易见的。因此,本申请的范围不应该参照上述描述来确定,而是应该参照前述权利要求以及这些权利要求所拥有的等价物的全部范围来确定。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请实施例可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (12)
1.一种安全多方计算的实现方法,其特征在于,包括:
代理服务器接收第一MPC节点发送的计算请求,其中,所述第一MPC节点为多个MPC节点中的一个MPC节点,所述代理服务器中注册有所述多个MPC节点中各MPC节点的回调函数;
响应于所述计算请求,所述代理服务器通过调用各MPC节点的回调函数向各MPC节点发送所述计算请求;
在确定所述各MPC节点均接收到所述计算请求的情况下,所述代理服务器通过调用各MPC节点的回调函数向各MPC节点发送计算开始通知,其中,所述计算开始通知用于指示所述各MPC节点执行安全多方计算。
2.根据权利要求1所述的方法,其特征在于,所述代理服务器注册所述多个MPC节点中各MPC节点的回调函数,包括:
所述代理服务器接收所述多个MPC节点中各MPC节点发送的回调注册请求,所述回调注册请求中携带有对应MPC节点的用户信息和回调函数,所述用户信息用于标识对应MPC节点;
响应于所述回调注册请求,所述代理服务器对所述多个MPC节点中各MPC节点的用户信息和回调函数进行注册。
3.根据权利要求2所述的方法,其特征在于,所述用户信息包括以下至少之一:用户ID、任务ID、端口ID、公钥和分配密码。
4.根据权利要求1所述的方法,其特征在于,所述各MPC节点执行安全多方计算,包括:
响应于所述计算开始通知,所述各MPC节点之间建立直接连接;
所述各MPC节点根据预设的MPC协议执行安全多方计算,其中,所述各MPC节点之间直接传输计算中间数据。
5.根据权利要求1所述的方法,其特征在于,所述各MPC节点执行安全多方计算,包括:
响应于所述计算开始通知,所述各MPC节点之间通过所述代理服务器建立间接连接;
所述各MPC节点根据预设的MPC协议执行安全多方计算,其中,所述各MPC节点之间通过所述代理服务器转发计算中间数据。
6.根据权利要求5所述的方法,其特征在于,所述代理服务器转发计算中间数据,包括:
所述代理服务器接收第二MPC节点发送的加密后的计算中间数据,其中,所述加密后的计算中间数据是由所述第二MPC节点根据第三MPC节点的公钥对计算中间数据进行加密后获得的,所述第二MPC节点和所述第三MPC节点是所述多个MPC节点中的两个MPC节点;
所述代理服务器通过调用所述第三MPC节点的回调函数将接收到的加密后的计算中间数据发送至所述第三MPC节点,其中,所述第三MPC节点根据自身的私钥对接收到的计算中间数据进行解密,以获取解密后的计算中间数据。
7.根据权利要求1所述的方法,其特征在于,在所述各MPC节点执行安全多方计算之后,还包括:
所述代理服务器接收第四MPC节点发送的结果分发请求,其中,所述第四MPC节点为所述各MPC节点中的获得计算结果的MPC节点;
响应于所述结果分发请求,所述代理服务器对所述计算结果进行分发。
8.根据权利要求7所述的方法,其特征在于,在所述代理服务器接收第四MPC节点发送的结果分发请求之前,还包括:
所述第四MPC节点确定是否要对获得的计算结果进行分发;
在确定要对获得的计算结果进行分发的情况下,所述第四MPC节点向所述代理服务器发送结果分发请求,所述结果分发请求中携带有所述计算结果。
9.根据权利要求1至8中任一项所述的方法,其特征在于,所述代理服务器经由防火墙接收所述多个MPC节点发送的数据和/或请求,并经由所述防火墙向所述多个MPC节点发送数据和/或请求。
10.一种安全多方计算的实现装置,其特征在于,位于代理服务器中,包括:
接收模块,用于接收第一MPC节点发送的计算请求,其中,所述第一MPC节点为多个MPC节点中的一个MPC节点,所述代理服务器中注册有所述多个MPC节点中各MPC节点的回调函数;
第一回调模块,用于响应于所述计算请求,通过调用各MPC节点的回调函数向各MPC节点发送所述计算请求;
第二回调模块,用于在确定所述各MPC节点均接收到所述计算请求的情况下,通过调用各MPC节点的回调函数向各MPC节点发送计算开始通知,其中,所述计算开始通知用于指示所述各MPC节点执行安全多方计算。
11.一种计算机设备,其特征在于,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现权利要求1至9中任一项所述方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述指令被执行时实现权利要求1至9中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910378892.1A CN110175461A (zh) | 2019-05-08 | 2019-05-08 | 安全多方计算的实现方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910378892.1A CN110175461A (zh) | 2019-05-08 | 2019-05-08 | 安全多方计算的实现方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110175461A true CN110175461A (zh) | 2019-08-27 |
Family
ID=67690627
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910378892.1A Pending CN110175461A (zh) | 2019-05-08 | 2019-05-08 | 安全多方计算的实现方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110175461A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110750801A (zh) * | 2019-10-11 | 2020-02-04 | 矩阵元技术(深圳)有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
CN111143894A (zh) * | 2019-12-24 | 2020-05-12 | 支付宝(杭州)信息技术有限公司 | 一种提升安全多方计算效率的方法及系统 |
CN112804365A (zh) * | 2021-04-14 | 2021-05-14 | 浙江数秦科技有限公司 | 一种用于安全多方计算的隐私数据分发方法 |
CN112989368A (zh) * | 2021-02-07 | 2021-06-18 | 支付宝(杭州)信息技术有限公司 | 多方联合进行隐私数据处理的方法及装置 |
CN113014625A (zh) * | 2021-02-09 | 2021-06-22 | 华控清交信息科技(北京)有限公司 | 一种任务处理方法、装置和用于任务处理的装置 |
CN113206832A (zh) * | 2021-03-31 | 2021-08-03 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和用于数据处理的装置 |
CN113536305A (zh) * | 2020-04-17 | 2021-10-22 | 武汉瓯越网视有限公司 | 检测采集行为的方法及装置 |
CN113726767A (zh) * | 2021-08-27 | 2021-11-30 | 交通银行股份有限公司 | 一种基于区块链的分布式多方隐私计算系统及方法 |
CN115225264A (zh) * | 2022-06-17 | 2022-10-21 | 上海富数科技有限公司广州分公司 | 一种安全多方计算方法、装置、电子设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1609784A (zh) * | 2003-10-20 | 2005-04-27 | 广东省电信有限公司科学技术研究院 | 一种在网络环境中协同播放幻灯片文件的轻量级方法 |
CN101442482A (zh) * | 2007-11-13 | 2009-05-27 | 北京大学 | 一种基于反馈传播的分布式计算网络构建方法及其系统 |
US9848310B1 (en) * | 2008-04-04 | 2017-12-19 | West Corporation | Providing temporary callback number for emergency calls |
CN108647988A (zh) * | 2018-04-03 | 2018-10-12 | 北京奇艺世纪科技有限公司 | 一种广告信息处理系统、方法、装置以及电子设备 |
CN108777839A (zh) * | 2018-05-25 | 2018-11-09 | 湖北工业大学 | 一种移动互联网中隐私保护的定位签到系统及方法 |
CN109359957A (zh) * | 2018-09-17 | 2019-02-19 | 中国银联股份有限公司 | 一种安全多方计算的方法及相关装置 |
CN109495592A (zh) * | 2019-01-11 | 2019-03-19 | 四川虹微技术有限公司 | 数据协同方法及电子设备 |
-
2019
- 2019-05-08 CN CN201910378892.1A patent/CN110175461A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1609784A (zh) * | 2003-10-20 | 2005-04-27 | 广东省电信有限公司科学技术研究院 | 一种在网络环境中协同播放幻灯片文件的轻量级方法 |
CN101442482A (zh) * | 2007-11-13 | 2009-05-27 | 北京大学 | 一种基于反馈传播的分布式计算网络构建方法及其系统 |
US9848310B1 (en) * | 2008-04-04 | 2017-12-19 | West Corporation | Providing temporary callback number for emergency calls |
CN108647988A (zh) * | 2018-04-03 | 2018-10-12 | 北京奇艺世纪科技有限公司 | 一种广告信息处理系统、方法、装置以及电子设备 |
CN108777839A (zh) * | 2018-05-25 | 2018-11-09 | 湖北工业大学 | 一种移动互联网中隐私保护的定位签到系统及方法 |
CN109359957A (zh) * | 2018-09-17 | 2019-02-19 | 中国银联股份有限公司 | 一种安全多方计算的方法及相关装置 |
CN109495592A (zh) * | 2019-01-11 | 2019-03-19 | 四川虹微技术有限公司 | 数据协同方法及电子设备 |
Non-Patent Citations (3)
Title |
---|
多方计算: "安全多方计算(MPC)从入门到精通:JUGO-IDE及SDK", 《HTTPS://BLOG.51CTO.COM/13701316/2136534?SOURCE=DRA》 * |
多方计算: "安全多方计算(MPC)从入门到精通:经典案例", 《HTTPS://BLOG.51CTO.COM/13701316/2136732》 * |
多方计算: "安全多方计算从入门到精通:MPC简介&JUGO平台", 《HTTPS://BLOG.51CTO.COM/13701316/2136084》 * |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110750801A (zh) * | 2019-10-11 | 2020-02-04 | 矩阵元技术(深圳)有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
WO2021068444A1 (zh) * | 2019-10-11 | 2021-04-15 | 云图技术有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
CN110750801B (zh) * | 2019-10-11 | 2022-06-10 | 矩阵元技术(深圳)有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
CN111143894A (zh) * | 2019-12-24 | 2020-05-12 | 支付宝(杭州)信息技术有限公司 | 一种提升安全多方计算效率的方法及系统 |
CN111143894B (zh) * | 2019-12-24 | 2022-01-28 | 支付宝(杭州)信息技术有限公司 | 一种提升安全多方计算效率的方法及系统 |
CN113536305A (zh) * | 2020-04-17 | 2021-10-22 | 武汉瓯越网视有限公司 | 检测采集行为的方法及装置 |
CN113536305B (zh) * | 2020-04-17 | 2022-09-09 | 武汉瓯越网视有限公司 | 检测采集行为的方法及装置 |
CN112989368A (zh) * | 2021-02-07 | 2021-06-18 | 支付宝(杭州)信息技术有限公司 | 多方联合进行隐私数据处理的方法及装置 |
CN112989368B (zh) * | 2021-02-07 | 2022-05-17 | 支付宝(杭州)信息技术有限公司 | 多方联合进行隐私数据处理的方法及装置 |
CN113014625A (zh) * | 2021-02-09 | 2021-06-22 | 华控清交信息科技(北京)有限公司 | 一种任务处理方法、装置和用于任务处理的装置 |
CN113014625B (zh) * | 2021-02-09 | 2023-04-07 | 华控清交信息科技(北京)有限公司 | 一种任务处理方法、装置和用于任务处理的装置 |
CN113206832A (zh) * | 2021-03-31 | 2021-08-03 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和用于数据处理的装置 |
CN112804365B (zh) * | 2021-04-14 | 2021-07-13 | 浙江数秦科技有限公司 | 一种用于安全多方计算的隐私数据分发方法 |
CN112804365A (zh) * | 2021-04-14 | 2021-05-14 | 浙江数秦科技有限公司 | 一种用于安全多方计算的隐私数据分发方法 |
CN113726767A (zh) * | 2021-08-27 | 2021-11-30 | 交通银行股份有限公司 | 一种基于区块链的分布式多方隐私计算系统及方法 |
CN113726767B (zh) * | 2021-08-27 | 2023-09-12 | 交通银行股份有限公司 | 一种基于区块链的分布式多方隐私计算系统及方法 |
CN115225264A (zh) * | 2022-06-17 | 2022-10-21 | 上海富数科技有限公司广州分公司 | 一种安全多方计算方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110175461A (zh) | 安全多方计算的实现方法、装置、计算机设备和存储介质 | |
CN103339910B (zh) | 通过基于远程过程调用的通信协议的全双工双向通信、及其应用 | |
CN108512885A (zh) | 对被识别为消息队列遥测传输包的网络包执行特定动作 | |
US10841106B1 (en) | Combined authentication and encryption | |
CN106164922A (zh) | 使用在线音频指纹的远程设备的自组织一次性配对 | |
US10097693B2 (en) | Managing data streams for a communication network | |
CN108900384A (zh) | 网络流量监控方法、装置及系统、计算机可读存储介质 | |
CN103947176A (zh) | 网络辅助的点对点安全通信建立 | |
US20090022145A1 (en) | Systems, methods, apparatus and computer program products for networking trading turret systems using sip | |
WO2024093426A1 (zh) | 基于联邦机器学习的模型训练方法和装置 | |
CN109005194A (zh) | 基于kcp协议的无端口影子通信方法及计算机存储介质 | |
US10855846B1 (en) | Encrypting multiple party calls | |
CN109995739A (zh) | 一种信息传输方法、客户端、服务器及存储介质 | |
CN103858389B (zh) | 一种传输会话的方法、客户端及Push服务器 | |
CN112437153A (zh) | 一种设备联动处理方法及装置 | |
CN109495854B (zh) | 一种基于FreeSwitch的移动终端App离线SIP呼叫功能的实现方法 | |
CN109391650B (zh) | 一种建立会话的方法及装置 | |
CN109246385A (zh) | 用于多方会议的通信方法及会议系统 | |
CN110176994A (zh) | 基于联盟区块链的会话密钥分发方法、设备及存储介质 | |
US20200169418A1 (en) | Encryption communication method, information processing apparatus, and program | |
CN107343285A (zh) | 一种管理设备及设备管理方法 | |
WO2020223917A1 (zh) | 安全多方计算的实现方法、装置、计算机设备和存储介质 | |
CN110247960B (zh) | 安全多方计算的实现方法、装置、计算机设备和存储介质 | |
CN105960791B (zh) | 无状态消息传输路由 | |
CN114338632B (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40010318 Country of ref document: HK |
|
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190827 |