CN110941834A - 多方计算、数据审计、数据处理方法、系统及设备 - Google Patents

多方计算、数据审计、数据处理方法、系统及设备 Download PDF

Info

Publication number
CN110941834A
CN110941834A CN201811110406.XA CN201811110406A CN110941834A CN 110941834 A CN110941834 A CN 110941834A CN 201811110406 A CN201811110406 A CN 201811110406A CN 110941834 A CN110941834 A CN 110941834A
Authority
CN
China
Prior art keywords
computing
program
party
calculation
node
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
Application number
CN201811110406.XA
Other languages
English (en)
Other versions
CN110941834B (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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201811110406.XA priority Critical patent/CN110941834B/zh
Publication of CN110941834A publication Critical patent/CN110941834A/zh
Application granted granted Critical
Publication of CN110941834B publication Critical patent/CN110941834B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/101Collaborative creation, e.g. joint development of products or services

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Resources & Organizations (AREA)
  • Theoretical Computer Science (AREA)
  • Strategic Management (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Tourism & Hospitality (AREA)
  • Health & Medical Sciences (AREA)
  • Operations Research (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Economics (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Hardware Redundancy (AREA)

Abstract

本申请实施例提供一种多方计算、数据审计、数据处理方法、系统及设备。其中,所述多方计算方法包括:获取为参与多方计算的计算节点准备的第一计算程序;将所述第一计算程序发送至所述计算节点;启动计算时,运行自身参与所述多方计算所需的第二计算程序,并触发所述计算节点运行所述第一计算程序。本申请实施例提供的技术方案,由一个计算节点为参与多方计算的其他计算节点准备计算程序,即mpc程序,其他参与计算节点无需编写计算程序;大大降低了安全多方计算的参与成本,降低了mpc推广的困难。

Description

多方计算、数据审计、数据处理方法、系统及设备
技术领域
本申请涉及计算机技术领域,尤其涉及一种多方计算、数据审计、数据处理方法、系统及设备。
背景技术
安全多方计算(Secure Multiparty Computation,以下简称mpc)是指拥有秘密输入的多方,希望用各自的秘密输入共同计算一个函数。计算结束后,每一方都能接收到输出,并且每一方只能了解自己的输入和输出,而不了解其他方的输入和输出。安全多方计算实际上是网络用户之间的一种分布式协议,它能够使用户在不泄漏各自输入的前提下完成合作计算的任务。
但是,mpc目前还存在一些实用性缺陷,比如:1、需要各个参与方编写复杂的mpc代码;2、需要各个参与方按照一定的协议顺序执行mpc代码;因此,使用中需要较多的专家人力参与,难于自动化运行。
发明内容
鉴于上述问题,提出了本申请以提供一种解决上述问题或至少部分地解决上述问题的多方计算方法、数据审计方法、系统、装置及设备。
于是,在本申请的一个实施例中,提供了一种多方计算方法。该方法包括:
获取为参与多方计算的计算节点准备的第一计算程序;
将所述第一计算程序发送至所述计算节点;
启动计算时,运行自身参与所述多方计算所需的第二计算程序,并触发所述计算节点运行所述第一计算程序。
在本申请的另一个实施例中,提供了一种多方计算方法。该方法包括:
接收发起多方计算的计算节点发送的第一计算程序;
监听到所述计算节点触发启动计算事件时,运行所述第一计算程序以参与所述多方计算。
在本申请的又一个实施例中,提供了一种多方计算系统。该系统包括:
主计算节点,用于获取为参与多方计算的辅计算节点准备的第一计算程序;将所述第一计算程序发送至所述辅计算节点;启动计算时,运行自身参与所述多方计算所需的第二计算程序,并触发所述辅计算节点运行所述第一计算程序;
辅计算节点,用于接收所述主计算节点发送的第一计算程序;监听到所述主计算节点触发启动计算时,运行所述第一计算程序以参与所述多方计算。
在本申请的又一个实施例中,提供了一种数据审计方法。该方法包括:
向参与多方计算的多个计算节点发送获取目标证据的请求;
基于所述请求反馈所述目标证据的计算节点的数量大于或等于阈值时,接收到的所述目标证据判为有效;
基于有效的所述目标证据进行审计。
在本申请的又一个实施例中,提供了一种数据处理方法。该数据处理方法包括:
第一多方计算节点,获取第一计算程序;
所述第一多方计算节点,对所述第一计算程序进行签名,得到签名程序;
所述第一多方计算节点,将所述签名程序发送至一个或多个第二多方计算节点,并触发所述第二多方计算节点运行所述签名程序;
所述第一多方计算节点运行第二计算程序,其中,所述第二程序的结果与所述第一程序的结果相关联。
在本申请的又一个实施例中,提供了一种计算设备。该计算设备包括存储器及处理器;其中,
所述存储器,用于存储程序;
所述处理器,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以用于:
获取为参与多方计算的计算节点准备的第一计算程序;
将所述第一计算程序发送至所述计算节点;
启动计算时,运行自身参与所述多方计算所需的第二计算程序,并触发所述计算节点运行所述第一计算程序。
在本申请的又一个实施例中,提供了一种计算设备。该计算设备,包括存储器及处理器;其中
所述存储器,用于存储程序;
所述处理器,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以用于:
接收发起多方计算的计算节点发送的第一计算程序;
监听到所述计算节点触发启动计算事件时,运行所述第一计算程序以参与所述多方计算。
在本申请的又一个实施例中,提供了一种代理方设备。该代理方设备,包括存储器及处理器;其中
所述存储器,用于存储程序;
所述处理器,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以用于:
向参与多方计算的多个计算节点发送获取目标证据的请求;
基于所述请求反馈所述目标证据的计算节点的数量大于或等于阈值时,接收到的所述目标证据判为有效;
基于有效的所述目标证据进行审计。
在本申请的又一个实施例中,提供了一种计算设备。该计算设备包括:存储器、处理器及通信组件;其中,
所述存储器,用于存储程序;
所述通信组件,与所述处理器耦合;
所述处理器,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以用于:
获取第一计算程序;
对所述第一计算程序进行签名,得到签名程序;
控制所述通信组件将所述签名程序发送至一个或多个第二多方计算节点,并触发所述第二多方计算节点运行所述签名程序;
运行第二计算程序,其中,所述第二程序的结果与所述第一程序的结果相关联。
本申请一实施例提供的技术方案,由一个计算节点为参与多方计算的其他计算节点准备计算程序,即mpc程序,其他参与计算节点无需编写计算程序;大大降低了安全多方计算的参与成本,降低了mpc推广的困难。
采用上述方案实现安全多方计算,为避免提供计算程序的计算节点编写恶意的mpc代码各其他计算节点,因此本申请的另一实施例提供了一种各计算节点在运行mpc代码后都会留存证据并在其他计算节点中备份一份,而且只有编写mpc代码的计算节点与超过一定阈值数量的计算节点合谋,才能产出这些日志;在这些压力下,编写mpc代码的计算节点不得不忠实的编写正确意图的代码,因此参与计算的计算节点无需自己编写代码,也无需在线监控代码的执行。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一实施例提供的多方计算系统的结构示意图;
图2为本申请一实施例提供的多方计算方法的流程示意图;
图3为本申请另一实施例提供的多方计算方法的流程示意图;
图4为本申请一实施例提供的数据处理方法的流程示意图;
图5为本申请一实施例提供的数据审计方法的流程示意图;
图6为本申请一实施例提供的多方计算装置的结构示意图;
图7为本申请另一实施例提供的多方计算装置的结构示意图;
图8为本申请一实施例提供的数据处理装置的结构示意图;
图9为本申请一实施例提供的数据审计装置的结构框图;
图10为本申请一实施例提供的计算设备的结构示意图;
图11为本申请一实施例提供的计算设备的结构示意图;
图12为本申请一实施例提供的代理方设备的结构示意图;
图13为本申请一实施例提供的计算设备的结构示意图。
具体实施方式
安全多方计算:是一个由多个参与方各自提供输入,共同计算输出的计算协议。该协议的特点是各个参与方仅了解自身的输入和计算的输出,而无法了解其他任何参与方的输入。例如“百万富翁问题”:两个参与方各自输入自己的财富数目,最后计算出谁的财富更多,除此之外不了解任何关于对方财富值的信息。
安全多方计算(secure multiparty computation,以下简称mpc)技术是一项先进的密码学技术,允许多个数据持有方以各自的数据为输入,一起计算数据输出,同时不获取对方的数据明文。但是mpc目前还存在一些实用性缺陷,比如:1.需要各个参与方编写复杂的mpc代码;2.需要各个参与方按照一定的协议顺序执行mpc代码;因此,使用中需要较多的专家人力参与,难于自动化运行。
在本申请的说明书、权利要求书及上述附图中描述的一些流程中,包含了按照特定顺序出现的多个操作,这些操作可以不按照其在本文中出现的顺序来执行或并行执行。操作的序号如101、102等,仅仅是用于区分各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1示出了本申请一实施例提供的多方计算系统的结构示意图。图1仅示出了两个辅计算节点参与主计算节点发起的多方计算的示例。实际应用中,辅计算节点的数量还可以是三个、四个或更多,本申请实施例对此不作具体限定。具体的,如图1所示,所述多方计算系统包括:
主计算节点101,用于获取为参与多方计算的辅计算节点准备的第一计算程序;将所述第一计算程序发送至所述辅计算节点;启动计算时,运行自身参与所述多方计算所需的第二计算程序,并触发所述辅计算节点运行所述第一计算程序;
辅计算节点102,用于接收所述主计算节点发送的第一计算程序;监听到所述主计算节点触发启动计算时,运行所述第一计算程序以参与所述多方计算。
本实施例提供的技术方案,由一个计算节点为参与多方计算的其他计算节点准备计算程序,即mpc程序,其他参与计算节点无需编写计算程序;大大降低了安全多方计算的参与成本,降低了mpc推广的困难。
这里需要说明的是,本申请实施例提供的多方计算系统中各组成单元,例如主计算节点、辅计算节点的具体工作流程可参见上述各实施例中相应内容,在此不再赘述。
图2示出了本申请一实施例提供的多方计算方法的流程示意图。本申请实施例提供的所述方法的执行主体可以上述多方计算系统中的主计算节点。如图2所示,所述多方计算方法,包括:
201、获取为参与多方计算的计算节点准备的第一计算程序。
202、将所述第一计算程序发送至所述计算节点。
203、启动计算时,运行自身参与所述多方计算所需的第二计算程序,并触发所述计算节点运行所述第一计算程序。
上述201中,为参与多方计算的计算节点准备的第一计算程序可以是,多方计算发起方编写的mpc程序。在安全多方计算中,计算需求最强即为多方计算发起方。本实施例中可将多方计算发起方定义为主计算节点。而其他参与方仅是由于利益关系提供数据参与计算的,可定义为辅计算节点。例如保险公司与多家医院合作进行用户核保计算,则保险公司是需求的发起者,即主计算节点;又如盲军棋游戏,黑棋主动攻击白棋,则黑棋是计算需求的发起者,即主计算节点。
具体实施时,为不同计算节点的准备的第一计算程序可不同。例如,图1所示多方计算系统,主计算节点分别为辅计算节点a1准备的第一计算程序为c1;为辅助节点a2准备的第一计算程序为c2。
上述202中,在发送第一计算程序之前,需使用自有的私钥签名。即本步骤202可具体包括如下步骤:
2021、使用自有私钥对所述第一计算程序进行签名处理,得到签名程序;
2022、将所述签名程序发送至所述计算节点。
本申请实施例提供的技术方案的执行主体为多方计算系统中的主计算节点,因此上述自有私钥即主计算节点的私钥。
这里需要补充的是:在安全且互信的环境中,第一计算程序无需签名,其他计算节点可以自由执行。此处,对第一计算程序进行签名,使得第一程序带有了计算发起方签名,具有不可抵赖性。这样将来若出现问题,可通过签名追责发起方。由此可知,签名处理属于一种保证性措施。
上述203中,各计算节点对应的第一计算程序均发送完后,主计算节点即可触发运行协议。该运行协议的内容为:主计算节点运行自身参与所述多方计算所需的第二计算程序,各辅计算节点运行各自接收到的第一计算程序。
本实施例提供的技术方案,由一个计算节点为参与多方计算的其他计算节点准备计算程序,即mpc程序,其他参与计算节点无需编写计算程序;大大降低了安全多方计算的参与成本,降低了mpc推广的困难。
每个辅计算节点都会将自己的第一计算程序、以及第一计算程序的运行日志使用各自的私钥签名得到签名数据,并将参与多方计算得到的计算结果及所述签名数据作为证据。每个辅计算节点将自己的证据复制多份,自己保存一份,同时发送给其他所有辅计算节点及主计算节点各一份。即本申请实施例提供的所述方法,还可包括如下步骤:
204、接收所述计算节点发送的证据。
其中,所述证据包括签名数据及所述计算节点参与多方计算得到的计算结果;所述签名数据是所述计算节点使用自有私钥对所述第一计算程序及所述第一计算程序的运行日志进行签名后得到的。
205、存储所述证据。
所述证据可存储在可信存储空间内;该可信存储空间可以是区块链,或是可信数据库。该可信数据库可以为主计算节点的数据库,或第三方数据库。可信存储空间为区块链时,可以避免主计算节点存储的签名数据被篡改。
进一步的,本申请实施例提供的所述方法还可包括如下步骤:
206、需调取证据时,查找符合调取需求的目标证据。
207、将所述目标证据发送至请求方,以由请求方复原所述目标证据便于审计。
图3示出了本申请另一实施例提供的多方计算方法的流程示意图。本申请实施例提供的所述方法的执行主体可以是上述多方计算系统中的辅计算节点。如图3所示,所述方法包括:
301、接收发起多方计算的计算节点发送的第一计算程序。
302、监听到所述计算节点触发启动计算事件时,运行所述第一计算程序以参与所述多方计算。
上述301中,发起多方计算的计算节点即为上述多方计算系统中的主计算节点。主计算节点为自身准备了计算所需的第二计算程序,同时还为其他辅计算节点分别准备了计算所需的第一计算程序。第一计算程序可以是签名后的程序;即主计算节点在发送第一计算程序之前,使用自有私钥对第一计算程序进行签名,然后再将签名后的第一计算程序发送至对应的辅计算节点。
上述302中,主计算节点触发运行协议后,会向各辅计算节点发送触发指令,各辅计算节点接收到触发指令后,即表明监听到启动计算事件。
本实施例提供的技术方案,由一个计算节点为参与多方计算的其他计算节点准备计算程序,即mpc程序,其他参与计算节点无需编写计算程序;大大降低了安全多方计算的参与成本,降低了mpc推广的困难。
进一步的,本申请实施例提供的方法还可包括如下步骤:
303、将所述第一计算程序及所述第一计算程序的运行日志使用自有私钥进行签名,得到签名数据。
304、将参与所述多方计算得到计算结果及所述签名数据作为证据进行存储。
其中,所述证据可存储在可信存储空间内;该可信存储空间可以是区块链,或是可信数据库。该可信数据库可以为主计算节点的数据库,或第三方数据库。
再进一步的,本申请实施例提供的方法还包括如下步骤:
305、将所述证据发送至参与所述多方计算的所有计算节点,以由各计算节点留存。
进一步的,本申请实施例提供的方法还包括如下步骤:
306、需调取证据时,查找符合调取需求的目标证据;
307、将所述目标证据发送至请求方,以由请求方复原所述目标证据便于审计。
通常对于一个mpc计算来说,会有一个参与方是计算需求的发起者,对计算的需求最强,而其他参与方仅是由于利益关系提供数据参与计算。例如保险公司与多家医院合作进行用户核保计算,则保险公司是需求的发起者;又如盲军棋游戏,黑棋主动攻击白棋,则黑棋是计算需求的发起者。考虑到这一情况,对于mpc中的n个参与方,可定义其中计算需求最强的一方为主参与方a1,其他n-1方为辅计算节点a2~an。设定一个投票人数阈值k(例如只要n个参与方中有k个投赞成票即通过)。下面以图1所示的一个主计算节点A,两个辅计算节点a1和a2为例,对本申请各实施例提供的技术方案进行说明。具体的,
S1、主计算节点A根据自己的实际计算需求,为辅计算节点a1和辅计算节点a2分别编写2段mpc程序,分别为c1和c2。
S2、主计算节点A将计算程序c1使用a1的私钥签名,并发送给辅计算节点a1;主计算节点A将计算程序c2使用a2的私钥签名,并发送给辅计算节点a2。
S3、主计算节点A触发运行协议,该协议的内容是:主计算节点A运行计算需求对应的程序cA,辅计算节点a1自动运行程序c1;辅计算节点a2自动运行程序c2。
S4、辅计算节点a1将程序c1及程序c1的运行日志使用a1的私钥签名得到签名数据,并将参与计算得到的计算结果及签名数据称为“mpc证据”p1;辅计算节点a2将程序c2及程序c2的运行日志使用a2的私钥签名得到签名数据,并将参与计算得到的计算结果及签名数据称为“mpc证据”p2。
S5、辅计算节点a1将mpc证据p1复制3份,自己保存一份,向辅计算节点a1发送一份,向主计算节点A发送一份。
需要复原证据用于收费/追责时,由主计算节点A、辅计算节点a1和辅计算节点a2给出各自的mpc证据,只要多于2个计算节点提供的mpc证据相同,则该份证据便被视为有效;由于mpc证据pi中既含有主计算节点A的签名,又含有辅计算节点ai的签名,签名含有时间戳,因此该证据是不可抵赖的。
本实施例提供的技术方案,使用签名日志记录下代码内容、执行过程,这样即使主参与方编写了恶意的mpc代码给别人执行,也会被忠实记录下来,而且只有他与超过一定阈值的辅计算节点合谋,才能删除这些日志。在这些压力之下,主参与方不得不忠实的编写正确意图的代码。因此辅计算节点无需自己编写代码,也无需在线监控代码的执行。
另外,本申请实施例提供的技术方案,使用签名日志记录下代码内容、执行过程,这样可以安全的保证只需要一个参与方(主参与方)编写mpc代码,而且mpc代码可以自动化运行,大大降低了mpc参与的成本(只需要主参与方一个人懂mpc就行了),免除了mpc推广的困难。
图4示出了本申请一实施例提供的数据处理方法的流程示意图。如图4所示,所述方法包括:
401、第一多方计算节点,获取第一计算程序。
402、所述第一多方计算节点,对所述第一计算程序进行签名,得到签名程序。
403、所述第一多方计算节点,将所述签名程序发送至一个或多个第二多方计算节点,并触发所述第二多方计算节点运行所述签名程序。
404、所述第一多方计算节点运行第二计算程序,其中,所述第二程序的结果与所述第一程序的结果相关联。
上述401中,第一计算程序可具体是第一多方计算节点为由自己发起的多发计算,给参与多方计算的一个或多个第二多方计算节点准备的mpc程序。
上述402中,第一多方计算节点可使用自有的私钥对第一计算程序进行签名,得到的签名程序即可发送至参与多方计算的一个或多个第二多方计算节点。
上述403中,第一多方计算节点可通过触发运行协议,来触发所述第二多方计算节点运行所述签名程序。该运行协议的内容可具体为:第一多方计算节点运行自身参与所述多方计算所需的第二计算程序,一个或多个第二多方计算节点运行各自接收到的签名程序。
上述404中,第一多方计算节点运行的第二计算程序与一个或多个第二多方计算节点运行的第一计算程序,在运行协议中有明确定义;且第一计算程序、第二计算程序及运行协议均由第一多方计算节点提供。这样,一个或多个第二多方计算节点就无需编写计算程序,大大降低了安全多方计算的参与成本,降低了mpc推广的困难。
进一步的,本实施例提供的所述方法,还可包括如下步骤:
405、所述第一多方计算节点,接收至少一个所述第二多方计算节点在运行完所述签名程序后生成的证据。
406、存储所述证据。
这里存储证据的目的是为了便于后续审计。其中,如何利用存储的证据进行数据审计,将在下一实施例中详细说明。
这里还需说明的是:本实施例提供的所述数据处理方法还可包括上述各实施例中提及的其他步骤,此处不再赘述。
图5示出了本申请一实施例提供的数据审计方法的流程示意图。本申请实施例提供的所述方法需在上述各实施例提供的技术方案的支持下实现。本申请实施例提供的技术方案的执行主体可以是审计节点。该审计节点可以是代理方节点。如图5所示,所述方法包括:
501、向参与多方计算的多个计算节点发送获取目标证据的请求。
502、基于所述请求反馈所述目标证据的计算节点的数量大于或等于阈值时,接收到的所述目标证据判为有效。
503、基于有效的所述目标证据进行审计。
上述502中阈值可基于参与多方计算的多个计算节点的数量来确定。例如,参与多方计算的计算节点的数量为5个,则阈值可确定为3;又例如,参与多方计算的计算节点的数量为8个,则阈值可确定为5。
在本申请提供的审计过程中,审计的目标是进行安全多方计算的各计算方。该审计过程可根据接收到的针对查询结果的审计请求开始进行,该查询结果可为根据安全多方计算确定出的。
采用上述方案实现安全多方计算,为避免提供计算程序的计算节点编写恶意的mpc代码各其他计算节点,因此本申请的另一实施例提供了一种各计算节点在运行mpc代码后都会留存证据并在其他计算节点中备份一份,而且只有编写mpc代码的计算节点与超过一定阈值数量的计算节点合谋,才能产出这些日志;在这些压力下,编写mpc代码的计算节点不得不忠实的编写正确意图的代码,因此参与计算的计算节点无需自己编写代码,也无需在线监控代码的执行。
需要说明的是:上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤101至步骤103的执行主体可以为设备A;又比如,步骤101和102的执行主体可以为设备A,步骤103的执行主体可以为设备B;等等。
图6示出了本申请一实施例提供的多方计算装置的结构示意图。如图6所示,所述多方计算装置包括:获取模块11、发送模块12及运行模块13。其中,获取模块11用于获取为参与多方计算的计算节点准备的第一计算程序;发送模块12用于将所述第一计算程序发送至所述计算节点;运行模块13用于启动计算时,运行自身参与所述多方计算所需的第二计算程序,并触发所述计算节点运行所述第一计算程序。
本实施例提供的技术方案,由一个计算节点为参与多方计算的其他计算节点准备计算程序,即mpc程序,其他参与计算节点无需编写计算程序;大大降低了安全多方计算的参与成本,降低了mpc推广的困难。
进一步的,所述发送模块12还用于使用自有私钥对所述第一计算程序进行签名处理,得到签名程序;将所述签名程序发送至所述计算节点。
进一步的,所述装置还包括:接收模块和存储模块。其中,接收模块用于接收所述计算节点发送的证据;存储模块用于存储所述证据。其中,所述证据包括签名数据及所述计算节点参与多方计算得到的计算结果;所述签名数据是所述计算节点使用自有私钥对所述第一计算程序及所述第一计算程序的运行日志进行签名后得到的。
进一步的,所述装置还包括查找模块。其中,查找模块用于在需调取证据时,查找符合调取需求的目标证据;所述发送模块12还用于将所述目标证据发送至请求方,以由请求方复原所述目标证据便于审计。
这里需要说明的是:上述实施例提供的多方计算装置可实现上述各方法实施例中描述的技术方案,上述各模块或单元具体实现的原理可参见上述各方法实施例中的相应内容,此处不再赘述。
图7示出了本申请另一实施例提供的多方计算装置的结构示意图。如图7所示,所述多方计算装置包括:接收模块21和运行模块22。其中,接收模块21用于接收发起多方计算的计算节点发送的第一计算程序;运行模块22用于监听到所述计算节点触发启动计算事件时,运行所述第一计算程序以参与所述多方计算。
本实施例提供的技术方案,由一个计算节点为参与多方计算的其他计算节点准备计算程序,即mpc程序,其他参与计算节点无需编写计算程序;大大降低了安全多方计算的参与成本,降低了mpc推广的困难。
进一步的,所述装置还包括:签名模块和存储模块。其中,签名模块用于将所述第一计算程序及所述第一计算程序的运行日志使用自有私钥进行签名,得到签名数据;存储模块用于将参与所述多方计算得到计算结果及所述签名数据作为证据进行存储。
进一步的,所述装置还包括发送模块。该发送模块用于将所述证据发送至参与所述多方计算的所有计算节点,以由各计算节点留存。
进一步的,所述装置还包括查找模块。查找模块用于需调取证据时,查找符合调取需求的目标证据;所述发送模块还用于将所述目标证据发送至请求方,以由请求方复原所述目标证据便于审计。
这里需要说明的是:上述实施例提供的多方计算装置可实现上述各方法实施例中描述的技术方案,上述各模块或单元具体实现的原理可参见上述各方法实施例中的相应内容,此处不再赘述。
图8示出了本申请一实施例提供的数据处理装置的结构示意图。如图8所示,所述数据处理装置包括:获取模块31、签名模块32、发送触发模块33及运行模块34。其中,所述获取模块31用于获取第一计算程序;所述签名模块32用于对所述第一计算程序进行签名,得到签名程序;所述发送触发模块33用于将所述签名程序发送至一个或多个第二多方计算节点,并触发所述第二多方计算节点运行所述签名程序;所述运行模块34用于运行第二计算程序,其中,所述第二程序的结果与所述第一程序的结果相关联。
本实施例提供的技术方案,由一个计算节点为参与多方计算的其他计算节点准备计算程序,即mpc程序,其他参与计算节点无需编写计算程序;大大降低了安全多方计算的参与成本,降低了mpc推广的困难。
进一步的,所述数据处理装置还包括:接收模块和存储模块。其中,接收模块用于接收至少一个所述第二多方计算节点在运行完所述签名程序后生成的证据;所述存储模块用于存储所述证据。
这里需要说明的是:上述实施例提供的数据处理装置可实现上述各方法实施例中描述的技术方案,上述各模块或单元具体实现的原理可参见上述各方法实施例中的相应内容,此处不再赘述。
图9示出了本申请一实施例提供的数据审计装置的结构框图。如图9所示,所述数据审计装置包括:发送模块41、判定模块42和审计模块43。其中,发送模块41用于向参与多方计算的多个计算节点发送获取目标证据的请求;判定模块42用于基于所述请求反馈所述目标证据的计算节点的数量大于或等于阈值时,接收到的所述目标证据判为有效;审计模块43用于基于有效的所述目标证据进行审计。
采用上述方案实现安全多方计算,为避免提供计算程序的计算节点编写恶意的mpc代码各其他计算节点,因此本申请的另一实施例提供了一种各计算节点在运行mpc代码后都会留存证据并在其他计算节点中备份一份,而且只有编写mpc代码的计算节点与超过一定阈值数量的计算节点合谋,才能产出这些日志;在这些压力下,编写mpc代码的计算节点不得不忠实的编写正确意图的代码,因此参与计算的计算节点无需自己编写代码,也无需在线监控代码的执行。
进一步的,所述数据审计装置还包括确定模块,该确定模块用于根据参与多方计算的多个计算节点的数量,确定所述阈值。
这里需要说明的是:上述实施例提供的数据审计装置可实现上述各方法实施例中描述的技术方案,上述各模块或单元具体实现的原理可参见上述各方法实施例中的相应内容,此处不再赘述。
图10示出了本申请一实施例提供的计算设备的结构示意图。该计算设备包括存储器51及处理器52。存储器51可被配置为存储其它各种数据以支持在计算设备上的操作。这些数据的示例包括用于在计算设备上操作的任何应用程序或方法的指令。存储器51可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
所述处理器52,与所述存储器51耦合,用于执行所述存储器51中存储的所述程序,以用于:
获取为参与多方计算的计算节点准备的第一计算程序;
将所述第一计算程序发送至所述计算节点;
启动计算时,运行自身参与所述多方计算所需的第二计算程序,并触发所述计算节点运行所述第一计算程序。
其中,处理器52在执行存储器51中的程序时,除了上面的功能之外,还可实现其它功能,具体可参见前面各实施例的描述。
进一步的,如图10所示,计算设备还包括:显示器54、通信组件53、电源组件55、音频组件56等其它组件。图10中仅示意性给出部分组件,并不意味着计算设备只包括图10所示组件。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,所述计算机程序被计算机执行时能够实现上述各实施例提供的多方计算方法的步骤或功能。
图11示出了本申请一实施例提供的计算设备的结构示意图。该计算设备包括存储器61及处理器62。存储器61可被配置为存储其它各种数据以支持在计算设备上的操作。这些数据的示例包括用于在计算设备上操作的任何应用程序或方法的指令。存储器61可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
所述处理器62,与所述存储器61耦合,用于执行所述存储器61中存储的所述程序,以用于:
接收发起多方计算的计算节点发送的第一计算程序;
监听到所述计算节点触发启动计算事件时,运行所述第一计算程序以参与所述多方计算。
其中,处理器62在执行存储器61中的程序时,除了上面的功能之外,还可实现其它功能,具体可参见前面各实施例的描述。
进一步的,如图11所示,计算设备还包括:显示器64、通信组件63、电源组件65、音频组件66等其它组件。图11中仅示意性给出部分组件,并不意味着计算设备只包括图11所示组件。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,所述计算机程序被计算机执行时能够实现上述各实施例提供的多方计算方法的步骤或功能。
图12示出了本申请一实施例提供的代理方设备的结构示意图。如图12所示,所述代理方设备包括存储器71及处理器72。其中,存储器71可被配置为存储其它各种数据以支持在代理方设备上的操作。这些数据的示例包括用于在代理方设备上操作的任何应用程序或方法的指令。存储器71可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
所述处理器72,与所述存储器71耦合,用于执行所述存储器71中存储的所述程序,以用于:
向参与多方计算的多个计算节点发送获取目标证据的请求;
基于所述请求反馈所述目标证据的计算节点的数量大于或等于阈值时,接收到的所述目标证据判为有效;
基于有效的所述目标证据进行审计。
其中,处理器72在执行存储器71中的程序时,除了上面的功能之外,还可实现其它功能,具体可参见前面各实施例的描述。
进一步的,如图12所示,计算设备还包括:显示器74、通信组件73、电源组件75、音频组件76等其它组件。图12中仅示意性给出部分组件,并不意味着代理方设备只包括图12所示组件。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,所述计算机程序被计算机执行时能够实现上述各实施例提供的数据审计方法的步骤或功能。
图13示出了本申请一实施例提供的计算设备的结构示意图。如图13所示,所述计算设备包括存储器81、处理器82及通信组件83。其中,存储器81可被配置为存储其它各种数据以支持在代理方设备上的操作。这些数据的示例包括用于在代理方设备上操作的任何应用程序或方法的指令。存储器81可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
通信组件83,与所述处理器82耦合;
所述处理器82,与所述存储器81耦合,用于执行所述存储器81中存储的所述程序,以用于:
获取第一计算程序;
对所述第一计算程序进行签名,得到签名程序;
控制所述通信组件将所述签名程序发送至一个或多个第二多方计算节点,并触发所述第二多方计算节点运行所述签名程序;
运行第二计算程序,其中,所述第二程序的结果与所述第一程序的结果相关联。
其中,处理器82在执行存储器81中的程序时,除了上面的功能之外,还可实现其它功能,具体可参见前面各实施例的描述。
进一步的,如图13所示,计算设备还包括:显示器84、电源组件85、音频组件86等其它组件。图13中仅示意性给出部分组件,并不意味着代理方设备只包括图13所示组件。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,所述计算机程序被计算机执行时能够实现上述各实施例提供的数据审计方法的步骤或功能。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (17)

1.一种多方计算方法,其特征在于,包括:
获取为参与多方计算的计算节点准备的第一计算程序;
将所述第一计算程序发送至所述计算节点;
启动计算时,运行自身参与所述多方计算所需的第二计算程序,并触发所述计算节点运行所述第一计算程序。
2.根据权利要求1所述的方法,其特征在于,将所述第一计算程序发送至所述计算节点,包括:
使用自有私钥对所述第一计算程序进行签名处理,得到签名程序;
将所述签名程序发送至所述计算节点。
3.根据权利要求1或2所述的方法,其特征在于,还包括:
接收所述计算节点发送的证据;
存储所述证据;
其中,所述证据包括签名数据及所述计算节点参与多方计算得到的计算结果;所述签名数据是所述计算节点使用自有私钥对所述第一计算程序及所述第一计算程序的运行日志进行签名后得到的。
4.根据权利要求3所述的方法,其特征在于,还包括:
需调取证据时,查找符合调取需求的目标证据;
将所述目标证据发送至请求方,以由请求方复原所述目标证据便于审计。
5.一种多方计算方法,其特征在于,包括:
接收发起多方计算的计算节点发送的第一计算程序;
监听到所述计算节点触发启动计算事件时,运行所述第一计算程序以参与所述多方计算。
6.根据权利要求5所述的方法,其特征在于,还包括:
将所述第一计算程序及所述第一计算程序的运行日志使用自有私钥进行签名,得到签名数据;
将参与所述多方计算得到计算结果及所述签名数据作为证据进行存储。
7.根据权利要求6所述的方法,其特征在于,还包括:
将所述证据发送至参与所述多方计算的所有计算节点,以由各计算节点留存。
8.根据权利要求6或7所述的方法,其特征在于,还包括:
需调取证据时,查找符合调取需求的目标证据;
将所述目标证据发送至请求方,以由请求方复原所述目标证据便于审计。
9.一种多方计算系统,其特征在于,包括:
主计算节点,用于获取为参与多方计算的辅计算节点准备的第一计算程序;将所述第一计算程序发送至所述辅计算节点;启动计算时,运行自身参与所述多方计算所需的第二计算程序,并触发所述辅计算节点运行所述第一计算程序;
辅计算节点,用于接收所述主计算节点发送的第一计算程序;监听到所述主计算节点触发启动计算时,运行所述第一计算程序以参与所述多方计算。
10.一种数据审计方法,其特征在于,包括:
向参与多方计算的多个计算节点发送获取目标证据的请求;
基于所述请求反馈所述目标证据的计算节点的数量大于或等于阈值时,接收到的所述目标证据判为有效;
基于有效的所述目标证据进行审计。
11.根据权利要求10所述的方法,其特征在于,还包括:
根据参与多方计算的多个计算节点的数量,确定所述阈值。
12.一种数据处理方法,其特征在于,包括:
第一多方计算节点,获取第一计算程序;
所述第一多方计算节点,对所述第一计算程序进行签名,得到签名程序;
所述第一多方计算节点,将所述签名程序发送至一个或多个第二多方计算节点,并触发所述第二多方计算节点运行所述签名程序;
所述第一多方计算节点运行第二计算程序,其中,所述第二程序的结果与所述第一程序的结果相关联。
13.根据权利要求12所述的方法,其特征在于,还包括:
所述第一多方计算节点,接收至少一个所述第二多方计算节点在运行完所述签名程序后生成的证据;
存储所述证据。
14.一种计算设备,其特征在于,包括存储器及处理器;其中
所述存储器,用于存储程序;
所述处理器,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以用于:
获取为参与多方计算的计算节点准备的第一计算程序;
将所述第一计算程序发送至所述计算节点;
启动计算时,运行自身参与所述多方计算所需的第二计算程序,并触发所述计算节点运行所述第一计算程序。
15.一种计算设备,其特征在于,包括存储器及处理器;其中
所述存储器,用于存储程序;
所述处理器,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以用于:
接收发起多方计算的计算节点发送的第一计算程序;
监听到所述计算节点触发启动计算事件时,运行所述第一计算程序以参与所述多方计算。
16.一种代理方设备,其特征在于,包括存储器及处理器;其中
所述存储器,用于存储程序;
所述处理器,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以用于:
向参与多方计算的多个计算节点发送获取目标证据的请求;
基于所述请求反馈所述目标证据的计算节点的数量大于或等于阈值时,接收到的所述目标证据判为有效;
基于有效的所述目标证据进行审计。
17.一种计算设备,其特征在于,包括:存储器、处理器及通信组件;其中,
所述存储器,用于存储程序;
所述通信组件,与所述处理器耦合;
所述处理器,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以用于:
获取第一计算程序;
对所述第一计算程序进行签名,得到签名程序;
控制所述通信组件将所述签名程序发送至一个或多个第二多方计算节点,并触发所述第二多方计算节点运行所述签名程序;
运行第二计算程序,其中,所述第二程序的结果与所述第一程序的结果相关联。
CN201811110406.XA 2018-09-21 2018-09-21 多方计算、数据审计、数据处理方法、系统及设备 Active CN110941834B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811110406.XA CN110941834B (zh) 2018-09-21 2018-09-21 多方计算、数据审计、数据处理方法、系统及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811110406.XA CN110941834B (zh) 2018-09-21 2018-09-21 多方计算、数据审计、数据处理方法、系统及设备

Publications (2)

Publication Number Publication Date
CN110941834A true CN110941834A (zh) 2020-03-31
CN110941834B CN110941834B (zh) 2023-06-23

Family

ID=69905267

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811110406.XA Active CN110941834B (zh) 2018-09-21 2018-09-21 多方计算、数据审计、数据处理方法、系统及设备

Country Status (1)

Country Link
CN (1) CN110941834B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112184219A (zh) * 2020-09-22 2021-01-05 远光软件股份有限公司 安全多方计算方法、电子设备及存储介质
CN112464174A (zh) * 2020-10-27 2021-03-09 华控清交信息科技(北京)有限公司 验证多方安全计算软件的方法、装置和用于验证的装置
CN115270162A (zh) * 2022-09-26 2022-11-01 国网浙江省电力有限公司金华供电公司 基于多方计算的审计审价异构数据在线整合方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103327044A (zh) * 2012-03-21 2013-09-25 中兴通讯股份有限公司 信用等级的查询方法及装置
CN106682530A (zh) * 2017-01-10 2017-05-17 杭州电子科技大学 一种基于区块链技术的医疗信息共享隐私保护方法及装置
CN107017993A (zh) * 2017-04-01 2017-08-04 北京江南天安科技有限公司 一种多方联合密钥产生和数字签名方法及系统
CN108364223A (zh) * 2017-12-29 2018-08-03 阿里巴巴集团控股有限公司 一种数据审计的方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103327044A (zh) * 2012-03-21 2013-09-25 中兴通讯股份有限公司 信用等级的查询方法及装置
CN106682530A (zh) * 2017-01-10 2017-05-17 杭州电子科技大学 一种基于区块链技术的医疗信息共享隐私保护方法及装置
CN107017993A (zh) * 2017-04-01 2017-08-04 北京江南天安科技有限公司 一种多方联合密钥产生和数字签名方法及系统
CN108364223A (zh) * 2017-12-29 2018-08-03 阿里巴巴集团控股有限公司 一种数据审计的方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
蒋瀚;徐秋亮;: "基于云计算服务的安全多方计算" *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112184219A (zh) * 2020-09-22 2021-01-05 远光软件股份有限公司 安全多方计算方法、电子设备及存储介质
CN112464174A (zh) * 2020-10-27 2021-03-09 华控清交信息科技(北京)有限公司 验证多方安全计算软件的方法、装置和用于验证的装置
CN112464174B (zh) * 2020-10-27 2023-09-29 华控清交信息科技(北京)有限公司 验证多方安全计算软件的方法、装置和用于验证的装置
CN115270162A (zh) * 2022-09-26 2022-11-01 国网浙江省电力有限公司金华供电公司 基于多方计算的审计审价异构数据在线整合方法及系统
CN115270162B (zh) * 2022-09-26 2022-12-02 国网浙江省电力有限公司金华供电公司 基于多方计算的审计审价异构数据在线整合方法及系统

Also Published As

Publication number Publication date
CN110941834B (zh) 2023-06-23

Similar Documents

Publication Publication Date Title
CN108805570B (zh) 数据处理方法、装置及存储介质
CN110400221B (zh) 数据处理方法、系统、存储介质及计算机设备
CN109361740B (zh) 一种区块链的区块生成方法、装置、设备和介质
EP3619668B1 (en) Performing parallel execution of transactions in a distributed ledger system
CN110399424B (zh) 区块生成方法、装置、区块链节点及存储介质
JP7047133B2 (ja) 符号化ブロックチェーンデータのインデックス化および復元
CN112395642A (zh) 一种安全多方隐私计算方法、装置、设备及存储介质
JP2020505663A (ja) リプレイ攻撃の検出のためのシステム及び方法
CN110941834A (zh) 多方计算、数据审计、数据处理方法、系统及设备
CN111191294B (zh) 基于区块链的单节点记账方法、系统、设备和存储介质
CA3098942C (en) Taking snapshots of blockchain data
US11194792B2 (en) Taking snapshots of blockchain data
US20230283461A1 (en) Method, device, and storage medium for determining extremum based on secure multi-party computation
US20200320225A1 (en) Apparatus and method of creating a data chain in a data structure that can be cryptographically proven to contain valid data
CN111260475A (zh) 一种数据处理方法、区块链节点设备及存储介质
CN115659346A (zh) 一种多方安全计算平台的功能测试方法及装置
CN111209540B (zh) 信息验证方法、装置和存储介质
US20210359862A1 (en) Systems and methods for synchronizing anonymized linked data across multiple queues for secure multiparty computation
CN112019350B (zh) 区块链的区块验证方法及装置
US11962562B2 (en) Anonymous message board server verification
WO2022271669A1 (en) Systems and methods for transaction validation in layer 2
Wang et al. Blockchain-Based Unbalanced PSI with Public Verification and Financial Security
CN116611103A (zh) 多方安全计算方法和装置
CN115619519A (zh) 账户资质认证方法、装置、设备、存储介质和产品
CN114021167A (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