CN110909356B - 安全多方计算方法、装置、设备及计算机可读介质 - Google Patents

安全多方计算方法、装置、设备及计算机可读介质 Download PDF

Info

Publication number
CN110909356B
CN110909356B CN201811087071.4A CN201811087071A CN110909356B CN 110909356 B CN110909356 B CN 110909356B CN 201811087071 A CN201811087071 A CN 201811087071A CN 110909356 B CN110909356 B CN 110909356B
Authority
CN
China
Prior art keywords
main body
messy code
garbled
calculation
circuit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811087071.4A
Other languages
English (en)
Other versions
CN110909356A (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.)
Baidu Online Network Technology Beijing Co Ltd
Original Assignee
Baidu Online Network Technology Beijing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Baidu Online Network Technology Beijing Co Ltd filed Critical Baidu Online Network Technology Beijing Co Ltd
Priority to CN201811087071.4A priority Critical patent/CN110909356B/zh
Priority to US16/429,779 priority patent/US11282413B2/en
Publication of CN110909356A publication Critical patent/CN110909356A/zh
Application granted granted Critical
Publication of CN110909356B publication Critical patent/CN110909356B/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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/24Object-oriented
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提出一种安全多方计算方法,包括:利用第一主体的多方计算算子将多方计算程序段动态地转化为第一乱码电路,并通过第一主体的执行引擎依次执行所述第一乱码电路的乱码门,以对第一主体的数据进行加密;将第一主体加密后的数据和乱码门标识发送至第二主体;在第二主体根据接收的乱码门标识依次对加密后的数据进行第二次加密计算,并返回结果至第一主体。本发明实施例根据多方计算算子动态生成乱码电路,并采用流水线的方式,交给执行引擎执行乱码电路。这样使得编译和执行过程可以同时进行,提高编译和执行的效率。

Description

安全多方计算方法、装置、设备及计算机可读介质
技术领域
本发明涉及加密计算技术领域,尤其涉及一种安全多方计算方法及装置、设备和计算机可读介质。
背景技术
安全多方计算(SMC,secure multi-party computation)是解决一组互不信任的参与方之间保护隐私的协同计算问题,SMC要确保输入的独立性,计算的正确性,同时不泄露各输入值给参与计算的其他成员。
目前传统的多方计算(MPC,Multi-Party Computation)库包括:Fairplay、Oblivm、Obliv-C、FastGC、Spdz、ShareMind等。其中,第一代多方计算库例如:Fairplay、CBMC-GC、FastGC等都是基于将类C的高级语言编译成二进制的乱码电路进行实现的。第二代的多方计算库例如:Oblivm、Spdz、ShareMind、Obliv-C采用了python或类似与java、.net的自定义语言来实现多方计算的程序编写。之后编译成方便多方计算的一类中间语言,再由多方计算执行器进行执行。
然而,现有的多方计算库有以下一些问题:
(1)现有多方计算程序都是基于自定义的类高级语言程序,存在较高的学习成本。
(2)自定义高级语言或类高级语言能够支持的程序库较为简单,使用者需要自己实现传统高级语言的已有功能。
(3)生成多方计算协议与执行过程需要两步才能完成,使用成本极高,多方计算无法嵌入到现有的业务程序中与已有代码结合。
发明内容
本发明实施例提供一种安全多方计算方法、装置、设备及计算机可读介质,以解决或缓解现有技术中的一个或多个技术问题。
第一方面,本发明实施例提供了一种安全多方计算方法,包括:
利用第一主体的多方计算算子将多方计算程序段动态地转化为第一乱码电路,并通过第一主体的执行引擎依次执行所述第一乱码电路的乱码门,以对第一主体的数据进行加密;
将第一主体加密后的数据和乱码门标识发送至第二主体;
在第二主体接收到第一主体的乱码门标识和加密数据后,根据接收的乱码门标识依次对加密后的数据进行第二次加密计算,并返回结果至第一主体。
结合第一方面,本发明实施例在第一方面的第一种实施方式中,还包括:
利用第二主体的多方计算算子将多方计算程序段动态地转化为第二乱码电路,并通过第二主体的执行引擎依次执行所述第二乱码电路的乱码门,以对第二主体的数据进行加密;
由第二主体将加密后的数据和乱码门标识发送至第一主体;
在第一主体接收到第二主体的乱码门标识和加密数据后,根据接收的乱码门标识依次对加密后的数据进行第二次加密计算,并返回结果至第二主体。
结合第一方面的第一种实施方式,本发明实施例在第一方面的第二种实施方式中,在第二主体接收到第一主体的乱码门标识和加密数据后,根据接收的乱码门标识依次对加密后的数据进行第二次加密计算,并返回结果至第一主体,包括:
在第二主体中将接收到的乱码门标识与第二乱码电路相关联,确定第二乱码电路对应的乱码门;
根据所确定的乱码门对接收的第一主体的加密数据进行计算,并将获得的计算结果返回第一主体。
结合第一方面的第一种实施方式,本发明实施例在第一方面的第三种实施方式中,所述在第一主体接收到第二主体的乱码门标识和加密数据后,根据接收的乱码门标识依次对加密后的数据进行第二次加密计算,并返回结果至第二主体,包括:
在第一主体中将接收到的乱码门标识与第一乱码电路相关联,确定第一乱码电路对应的乱码门;
根据所确定的乱码门对接收的第二主体的加密数据进行计算,并将获得的计算结果返回第二主体。
结合第一方面或第一方面中的任意一种实施方式,本发明实施例在第一方面的第四种实施方式中,所述乱码门包括:与逻辑门、或逻辑门和非逻辑门中的至少一种。
第二方面,本发明实施例还提供一种安全多方计算装置,包括:
第一转化模块,用于利用第一主体的多方计算算子将多方计算程序段动态地转化为第一乱码电路,并通过第一主体的执行引擎依次执行所述第一乱码电路的乱码门,以对第一主体的数据进行加密;
第一传输模块,用于将第一主体加密后的数据和乱码门标识发送至第二主体;
第一计算模块,用于在第二主体接收到第一主体的乱码门标识和加密数据后,根据接收的乱码门标识依次对加密后的数据进行第二次加密计算,并返回结果至第一主体。
结合第二方面,本发明实施例在第二方面的第一种实施方式中,还包括:
第二转化模块,用于利用第二主体的多方计算算子将多方计算程序段动态地转化为第二乱码电路,并通过第二主体的执行引擎依次执行所述第二乱码电路的乱码门,以对第二主体的数据进行加密;
第二传输模块,用于由第二主体将加密后的数据和乱码门标识发送至第一主体;
第二计算模块,用于在第一主体接收到第二主体的乱码门标识和加密数据后,根据接收的乱码门标识依次对加密后的数据进行第二次加密计算,并返回结果至第二主体。
结合第二方面的第一种实施方式,本发明实施例在第二方面的第二种实施方式中,所述第一计算模块包括:
第一关联子模块,用于在第二主体中将收到的乱码门标识与第二乱码电路相关联,确定第二乱码电路对应的乱码门;
第一计算子模块,用于根据所确定的乱码门对接收的第一主体的加密数据进行计算,并将获得的计算结果返回第一主体。
结合第二方面的第一种实施方式,本发明实施例在第二方面的第三种实施方式中,所述第二计算模块包括:
第二关联子模块,用于在第一主体中将收到的乱码门标识与第一乱码电路相关联,确定第一乱码电路对应的乱码门;
第二计算子模块,用于根据所确定的乱码门对接收的第二主体的加密数据进行计算,并将获得的计算结果返回第二主体。
结合第二方面或第二方面中任意一种实施方式,本发明实施例在第二方面的第四种实施方式中,所述乱码门包括:与逻辑门、或逻辑门和非逻辑门中的至少一种。
第三方面,在一个可能的设计中,安全多方计算装置的结构中包括处理器和存储器,所述存储器用于存储支持安全多方计算装置执行上述第一方面中安全多方计算方法的程序,所述处理器被配置为用于执行所述存储器中存储的程序。所述安全多方计算装置还可以包括通信接口,用于安全多方计算装置与其他设备或通信网络通信。
第四方面,本发明实施例提供了一种计算机可读介质,用于存储安全多方计算装置所用的计算机软件指令,其包括用于执行上述第一方面的安全多方计算方法所涉及的程序。
本发明实施例根据多方计算算子动态生成乱码电路,并采用流水线的方式,交给执行引擎执行乱码电路。这样使得编译和执行过程可以同时进行,提高编译和执行的效率。例如,可以直接通过Java高级语言编写多方计算程序段,而不需要进行特殊编译过程。
上述概述仅仅是为了说明书的目的,并不意图以任何方式进行限制。除上述描述的示意性的方面、实施方式和特征之外,通过参考附图和以下的详细描述,本发明进一步的方面、实施方式和特征将会是容易明白的。
附图说明
在附图中,除非另外规定,否则贯穿多个附图相同的附图标记表示相同或相似的部件或元素。这些附图不一定是按照比例绘制的。应该理解,这些附图仅描绘了根据本发明公开的一些实施方式,而不应将其视为是对本发明范围的限制。
图1为本发明一实施例的安全多方计算方法的流程图;
图2为本发明一实施例的步骤S130的具体流程图;
图3为本发明另一实施例的安全多方计算方法的流程图;
图4为本发明另一实施例的步骤S230的具体流程图;
图5为本发明一实施例的安全多方计算方法实现示意图;
图6为本发明另一实施例的安全多方计算装置的连接框图;
图7为本发明另一实施例的第一计算模块的内部框图;
图8为本发明另一实施例的安全多方计算装置的连接框图;
图9为本发明另一实施例的第二计算模块的内部框图;
图10为本发明另一实施例的安全多方计算设备框图。
具体实施方式
在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本发明的精神或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的而非限制性的。本发明实施例主要提供了一种通安全多方计算的方法及装置,下面分别通过以下实施例进行技术方案的展开描述。
本发明提供了一种安全多方计算方法和装置,以下详细介绍本发明实施例的安全多方计算方法和装置的具体处理流程和原理。
如图1所示,其为本发明实施例的安全多方计算方法的流程图。本发明实施例的安全多方计算方法可以包括以下步骤:
S110:利用第一主体的多方计算算子将多方计算程序段动态地转化为第一乱码电路,并通过第一主体的执行引擎依次执行所述第一乱码电路的乱码门,以对第一主体的数据进行加密。
在一种实施例中,可以采用Java SDK(Java Software Development Kit,Java软件开发工具包)编写多方计算程序段。编写完成的程序段可以嵌入在任何Java代码中,然后再分别在各自的JVM(Java Virtual Machine,Java虚拟机)中运行。
接着,可以通过Java库中的多方计算算子,将其所述程序段转化为执行的乱码电路。其中,所述多方计算算子包括:数字运算的整数计算协议、固定位数的小数计算协议、科学计算和矩阵计算协议。其中,所述乱码电路为由多个乱码门组成的逻辑电路,用于对主体中的数据进行加密处理。例如,所述乱码门可以包括:与逻辑门、或逻辑门和非逻辑门中的至少一种。
当执行引擎在执行乱码电路时,可以采用流水化方式进行,即在将程序段转化为乱码电路的同时,也实时地对乱码电路进行执行,使得转化和执行可以同时进行。
S120:将第一主体加密后的数据和乱码门标识发送至第二主体。
在一种实施方式中,可以按照定义的顺序,将乱码电路中的乱码门依次发送至第二主体。
S130:在第二主体根据接收的乱码门标识依次对加密后的数据进行第二次加密计算,并返回结果至第一主体。
如图2所示,在一种实施方式中,所述步骤S130可以包括:
S131:在第二主体中将接收到的乱码门标识与第二乱码电路相关联,确定第二乱码电路对应的乱码门。
在一种实施方式中,当第二主体收到第一主体的乱码门标识时,在第二主体生成的乱码电路中确定与所接收的乱码门相对应的第二主体乱码门。
S132:根据所确定的乱码门对接收的第一主体的加密数据进行计算,并将获得的计算结果返回第一主体。
在一种实施方式中,在完成一个乱码门的计算后,将计算结果作为下一个乱码门的输入值。此时,可以将上一个计算结果丢弃,即不需要保存,节省内存空间。在执行乱码门的计算时,当所述乱码门的输入项准备好时,则所述乱码门自动触发。例如,若当前的乱码门为“与”、“或”门时,则需要两个输入项,若当前的乱码门为“非”门时,则需要一个输入项。
如图3所示,在一种实施例中,所述安全多方计算方法还可以包括:
S210:利用第二主体的多方计算算子将多方计算程序段动态地转化为第二乱码电路,并通过第二主体的执行引擎依次执行所述第二乱码电路的乱码门,以对第二主体的数据进行加密。
S220:由第二主体将加密后的数据和乱码门标识发送至第一主体。
S230:在第一主体根据接收的乱码门标识依次对加密后的数据进行第二次加密计算,并返回结果至第二主体。
如图4所示,所述步骤S230中可以包括:
S231:在第一主体中将接收到的乱码门标识与第一乱码电路相关联,确定第一乱码电路对应的乱码门。
S231:根据所确定的乱码门对接收的第二主体的加密数据进行计算,并将获得的计算结果返回第二主体。
本实施例中第二主体在对第二主体的数据进行加密计算的步骤原理与上述实施例中第一主体的步骤原理相似,故不再赘述。
以下以两个执行主体为例,介绍本发明实施例的安全多方计算方法的过程和原理:
如图5所示,例如当前有两个执行主体,即party A和party B。
首先,分别在各自的JVM中编写一段多方计算程序,然后根据Java库中的多方计算算子协议,转化为可流水线化执行的乱码电路,再通过该乱码电路对各自的数据进行加密处理。
最后,根据具体的算法协议分别通过各自的执行引擎进行执行和传输。
例如,party A可以将乱码电路中的乱码门标识和加密数据发送至party B中。然后,由party B根据对所述乱码门标记在party B中的乱码电路中确定对应的乱码门,然后再依次对接收的加密数据进行二次加密,最后将结果返回party A。
与此同时,party B也可以将乱码电路中的乱码门标识和加密数据发送至party A中。然后,由party A根据对所述乱码门标记在party A中的乱码电路中确定对应的乱码门,然后再依次对接收的加密数据进行二次加密,最后将结果返回party B。
最终,party A和party B分别可以在不泄露自身数据的同时,完成一个共同的计算。
本发明实施例可以直接通过Java高级语言进行编写而不需要进行特殊编译过程。Java程序执行过程中根据计算使用算子动态生成乱码,并采用流水线的方式,交给执行引擎执行。这样使得编译和执行过程可以同时进行,同时也保证执行效率。
另外,基于Java库可以实现了丰富的多方计算算子协议,例如可以支持数字运算的整数计算协议、固定位数的小数计算协议、科学计算和矩阵计算协议等。
如图6所示,在另一实施例中,本发明实施例还提供一种安全多方计算装置,包括:
第一转化模块110,用于利用第一主体的多方计算算子将多方计算程序段动态地转化为第一乱码电路,并通过第一主体的执行引擎依次执行所述第一乱码电路的乱码门,以对第一主体的数据进行加密。
第一传输模块120,用于将第一主体加密后的数据和乱码门标识发送至第二主体。
第一计算模块130,用于在第二主体接收到第一主体的乱码门标识和加密数据后,根据接收的乱码门标识依次对加密后的数据进行第二次加密计算,并返回结果至第一主体。
如图7所示,所述第一计算模块130包括:
第一关联子模块131,用于在第二主体中将收到的乱码门标识与第二乱码电路相关联,确定第二乱码电路对应的乱码门。
第一计算子模块132,用于根据所确定的乱码门对接收的第一主体的加密数据进行计算,并将获得的计算结果返回第一主体。
如图8所示,在另一种实施例中,本发明实施例的安全多方计算装置还包括:
第二转化模块210,用于利用第二主体的多方计算算子将多方计算程序段动态地转化为第二乱码电路,并通过第二主体的执行引擎依次执行所述第二乱码电路的乱码门,以对第二主体的数据进行加密。
第二传输模块220,用于由第二主体将加密后的数据和乱码门标识发送至第一主体。
第二计算模块230,用于在第一主体接收到第二主体的乱码门标识和加密数据后,根据接收的乱码门标识依次对加密后的数据进行第二次加密计算,并返回结果至第二主体。
如图9所示,所述第二计算模块230包括:
第二关联子模块231,用于在第一主体中将收到的乱码门标识与第一乱码电路相关联,确定第一乱码电路对应的乱码门。
第二计算子模块232,用于根据所确定的乱码门对接收的第二主体的加密数据进行计算,并将获得的计算结果返回第二主体。
在一种实施方式中,本实施例中所述乱码门可以包括:与逻辑门、或逻辑门和非逻辑门中的至少一种。
在另一个实施例中,本发明还提供一种安全多方计算设备,如图10所示,该设备包括:存储器510和处理器520,存储器510内存储有可在处理器520上运行的计算机程序。所述处理器520执行所述计算机程序时实现上述实施例中的安全多方计算方法。所述存储器510和处理器520的数量可以为一个或多个。
该设备还包括:
通信接口530,用于与外界设备进行通信,进行数据交互传输。
存储器510可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
如果存储器510、处理器520和通信接口530独立实现,则存储器510、处理器520和通信接口530可以通过总线相互连接并完成相互间的通信。所述总线可以是工业标准体系结构(ISA,Industry Standard Architecture)总线、外部设备互连(PCI,PeripheralComponent)总线或扩展工业标准体系结构(EISA,Extended Industry StandardComponent)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果存储器510、处理器520及通信接口530集成在一块芯片上,则存储器510、处理器520及通信接口530可以通过内部接口完成相互间的通信。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
本发明实施例所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质的更具体的示例至少(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式只读存储器(CDROM)。另外,计算机可读存储介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
在本发明实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于指令执行系统、输入法或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、射频(Radio Frequency,RF)等等,或者上述的任意合适的组合。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。所述存储介质可以是只读存储器,磁盘或光盘等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到其各种变化或替换,这些都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种安全多方计算方法,其特征在于,包括:
采用java语言编写多方计算程序段,通过java库中的第一主体的多方计算算子,将所述多方计算程序段转化为第一乱码电路,通过第一主体的执行引擎依次执行所述第一乱码电路的乱码门,以对第一主体的数据进行加密,其中,所述乱码门包括与逻辑门、或逻辑门和非逻辑门中至少一种,多个所述乱码门组成的逻辑电路为乱码电路;
将第一主体加密后的数据和乱码门标识发送至第二主体;
在第二主体根据接收的乱码门标识依次对加密后的数据进行第二次加密计算,并返回结果至第一主体。
2.根据权利要求1所述的方法,其特征在于,还包括:
采用java语言编写多方计算程序段,通过java库中的第二主体的多方计算算子,将所述多方计算程序段转化为第二乱码电路,通过第二主体的执行引擎依次执行所述第二乱码电路的乱码门,以对第二主体的数据进行加密;
由第二主体将加密后的数据和乱码门标识发送至第一主体;
在第一主体根据接收的乱码门标识依次对加密后的数据进行第二次加密计算,并返回结果至第二主体。
3.根据权利要求2所述的方法,其特征在于,在第二主体根据接收的乱码门标识依次对加密后的数据进行第二次加密计算,并返回结果至第一主体,包括:
在第二主体中将接收到的乱码门标识与第二乱码电路相关联,确定第二乱码电路对应的乱码门;
根据所确定的乱码门对接收的第一主体的加密数据进行计算,并将获得的计算结果返回第一主体。
4.根据权利要求2所述的方法,其特征在于,在第一主体根据接收的乱码门标识依次对加密后的数据进行第二次加密计算,并返回结果至第二主体,包括:
在第一主体中将接收到的乱码门标识与第一乱码电路相关联,确定第一乱码电路对应的乱码门;
根据所确定的乱码门对接收的第二主体的加密数据进行计算,并将获得的计算结果返回第二主体。
5.一种安全多方计算装置,其特征在于,包括:
第一转化模块,采用java语言编写多方计算程序段,通过java库中的第一主体的多方计算算子,将所述多方计算程序段转化为第一乱码电路,通过第一主体的执行引擎依次执行所述第一乱码电路的乱码门,以对第一主体的数据进行加密,其中,所述乱码门包括与逻辑门、或逻辑门和非逻辑门中至少一种,多个所述乱码门组成的逻辑电路为乱码电路;
第一传输模块,用于将第一主体加密后的数据和乱码门标识发送至第二主体;
第一计算模块,用于在第二主体接收到第一主体的乱码门标识和加密数据后,根据接收的乱码门标识依次对加密后的数据进行第二次加密计算,并返回结果至第一主体。
6.根据权利要求5所述的装置,其特征在于,还包括:
第二转化模块,用于采用java语言编写多方计算程序段,通过java库中的第二主体的多方计算算子,将所述多方计算程序段转化为第二乱码电路,通过第二主体的执行引擎依次执行所述第二乱码电路的乱码门,以对第二主体的数据进行加密;
第二传输模块,用于由第二主体将加密后的数据和乱码门标识发送至第一主体;
第二计算模块,用于在第一主体接收到第二主体的乱码门标识和加密数据后,根据接收的乱码门标识依次对加密后的数据进行第二次加密计算,并返回结果至第二主体。
7.根据权利要求6所述的装置,其特征在于,所述第一计算模块包括:
第一关联子模块,用于在第二主体中将收到的乱码门标识与第二乱码电路相关联,确定第二乱码电路对应的乱码门;
第一计算子模块,用于根据所确定的乱码门对接收的第一主体的加密数据进行计算,并将获得的计算结果返回第一主体。
8.根据权利要求6所述的装置,其特征在于,所述第二计算模块包括:
第二关联子模块,用于在第一主体中将收到的乱码门标识与第一乱码电路相关联,确定第一乱码电路对应的乱码门;
第二计算子模块,用于根据所确定的乱码门对接收的第二主体的加密数据进行计算,并将获得的计算结果返回第二主体。
9.一种安全多方计算设备,其特征在于,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-4中任一所述的安全多方计算方法。
10.一种计算机可读介质,其存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-4中任一所述的安全多方计算方法。
CN201811087071.4A 2018-09-18 2018-09-18 安全多方计算方法、装置、设备及计算机可读介质 Active CN110909356B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201811087071.4A CN110909356B (zh) 2018-09-18 2018-09-18 安全多方计算方法、装置、设备及计算机可读介质
US16/429,779 US11282413B2 (en) 2018-09-18 2019-06-03 Secure multi-party computation method, device, apparatus and computer-readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811087071.4A CN110909356B (zh) 2018-09-18 2018-09-18 安全多方计算方法、装置、设备及计算机可读介质

Publications (2)

Publication Number Publication Date
CN110909356A CN110909356A (zh) 2020-03-24
CN110909356B true CN110909356B (zh) 2022-02-01

Family

ID=69774320

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811087071.4A Active CN110909356B (zh) 2018-09-18 2018-09-18 安全多方计算方法、装置、设备及计算机可读介质

Country Status (2)

Country Link
US (1) US11282413B2 (zh)
CN (1) CN110909356B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111539041B (zh) * 2020-07-08 2020-11-13 支付宝(杭州)信息技术有限公司 一种安全选择方法和系统
CN113222591B (zh) * 2020-12-23 2022-12-27 华南理工大学 一种基于区块链的公平两方协商方法及系统
CN112860790B (zh) * 2021-01-14 2023-05-30 华控清交信息科技(北京)有限公司 数据管理方法、系统、装置
US11308226B1 (en) * 2021-02-22 2022-04-19 CipherMode Labs, Inc. Secure collaborative processing of private inputs
CN113158239B (zh) * 2021-03-31 2022-04-26 支付宝(杭州)信息技术有限公司 保护数据隐私的选择问题处理方法
CN112995221B (zh) * 2021-05-08 2021-07-23 浙江数秦科技有限公司 一种联盟链安全多方计算方法
CN114218318B (zh) * 2022-02-21 2022-05-17 国网山东省电力公司乳山市供电公司 一种用于电力大数据的数据处理系统及方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105103487A (zh) * 2013-08-09 2015-11-25 汤姆逊许可公司 用于基于矩阵分解的到评级贡献用户的隐私保护推荐的方法和系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8539220B2 (en) * 2010-02-26 2013-09-17 Microsoft Corporation Secure computation using a server module
US8881295B2 (en) * 2010-09-28 2014-11-04 Alcatel Lucent Garbled circuit generation in a leakage-resilient manner
US9077539B2 (en) * 2011-03-09 2015-07-07 Microsoft Technology Licensing, Llc Server-aided multi-party protocols
EP3262551A4 (en) * 2015-02-27 2018-10-31 Dyadic Security Ltd. Asystem and methods for protecting keys using garbled circuits
FR3054054B1 (fr) * 2016-07-13 2019-07-19 Safran Identity & Security Procede et systeme d'authentification par circuits confus
WO2018209222A1 (en) * 2017-05-12 2018-11-15 Massachusetts Institute Of Technology Systems and methods for crowdsourcing, analyzing, and/or matching personal data

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105103487A (zh) * 2013-08-09 2015-11-25 汤姆逊许可公司 用于基于矩阵分解的到评级贡献用户的隐私保护推荐的方法和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Yao Garbled Circuits in Secret Sharing-based Secure Multi-party Computation;Oleg Selajev.etc;《CYBERNETICA Institute of Information Security》;20111223;第3-14页 *

Also Published As

Publication number Publication date
CN110909356A (zh) 2020-03-24
US20200090552A1 (en) 2020-03-19
US11282413B2 (en) 2022-03-22

Similar Documents

Publication Publication Date Title
CN110909356B (zh) 安全多方计算方法、装置、设备及计算机可读介质
CN110457912B (zh) 数据处理方法、装置和电子设备
CN111125727B (zh) 混淆电路生成方法、预测结果确定方法、装置和电子设备
CN110569227B (zh) 模型参数确定方法、装置和电子设备
CN110427969B (zh) 数据处理方法、装置和电子设备
CN110737908B (zh) 加密方法和装置、解密方法和装置、电子设备和介质
CN107004084B (zh) 用于加密操作的乘法掩码
CN108628743A (zh) 应用程序测试方法、装置、设备及存储介质
CN110210211A (zh) 一种数据保护的方法和计算设备
Agosta et al. The MEET approach: Securing cryptographic embedded software against side channel attacks
CN109299149A (zh) 数据查询方法、计算设备以及系统
CN112070222A (zh) 用于联邦学习的处理架构、加速器及方法
CN112256275B (zh) 代码混淆方法、装置、电子设备及介质
Fang et al. Secure function evaluation using an fpga overlay architecture
US10944545B2 (en) Obfuscated performance of a predetermined function
CN107103211A (zh) Sdk发送、应用发布、应用运行方法及装置
US11632234B2 (en) Apparatus and method for generating cryptographic algorithm, apparatus and method for encryption
CN114095149B (zh) 信息加密方法、装置、设备及存储介质
Fang et al. SIFO: Secure computational infrastructure using FPGA overlays
CN114239064A (zh) 隐私计算方法、装置、电子设备及计算机可读存储介质
CN116861470B (zh) 加解密方法、装置、计算机可读存储介质和服务器
CN110234082A (zh) 一种移动终端的寻址方法、装置、存储介质和服务器
US20230208639A1 (en) Neural network processing method and server and electrical device therefor
US20220255757A1 (en) Digital signature verification engine for reconfigurable circuit devices
CN115085897A (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