CN111586142A - 一种安全多方计算方法及系统 - Google Patents
一种安全多方计算方法及系统 Download PDFInfo
- Publication number
- CN111586142A CN111586142A CN202010363040.8A CN202010363040A CN111586142A CN 111586142 A CN111586142 A CN 111586142A CN 202010363040 A CN202010363040 A CN 202010363040A CN 111586142 A CN111586142 A CN 111586142A
- Authority
- CN
- China
- Prior art keywords
- party
- operator
- calculation
- random noise
- untrusted
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
本发明提出一种安全多方计算方法,运行安全多方计算方法的系统包括客户端以及至少两个不信任方P1、P2,其中不信任方P1用于第一算子计算、第二算子计算并存储,另一不信任方P2用于产生计算过程中需要的随机噪声并用于第三算子计算,该方法包括以下步骤:P1在接收经加密运算的用户数据后进行第一算子计算,并将计算结果存储;P2对所产生的随机噪声进行第三算子计算并将计算结果返回至P1;P1利用已存储的计算结果和接收的来自P2的计算结果进行第二算子计算,并将结果返回客户端;客户端进行解密运算,得到运算结果。本发明提出了新的安全多方计算的方法和系统,让数据在不信任的计算机系统中可以运行安全的隐私计算,保证数据的安全和隐私性。
Description
技术领域
本发明涉及密码、云计算安全、隐私保护以及机器学习等领域,尤其涉及一种在不信任的计算机上进行隐私计算的安全多方计算方法,系统,设备及计算机可读介质。
背景技术
安全多方计算(Secure Multi-Party Computation,简称SMPC)是指一组互不信任的参与方之间保护隐私的协同计算,在安全多方计算中,要确保输入的独立性,计算的正确性,同时不泄露各个输入值给参与计算的其他成员。例如,在一个多用户的网络中,用户之间可能互不信任,但可以通过该网络实现协同计算,同时在计算过程中以及计算结束后,都能保证用户数据的安全性。
在云计算领域,数据存储在云上会有数据安全和隐私的问题。“安全多方云计算”是指将云计算服务引入安全多方计算中,在安全多方云计算中,用户(包括个人用户和企业用户)可以将数据存储到云端并且将数据计算外包给云,多个云协作以完成用户提出的计算需求,并将计算结果返回给用户,在计算过程中以及计算结束后,用户数据的安全性都能得到保证。
另外,在数据共享和计算领域,数据在管理方和使用方之间的转移,会带来法律方面的合规要求以及数据安全方面的风险。基于安全多方计算的数据流通产品,首先它就是利用SMPC技术,在数据发布、跨组织数据流通的过程中进行数据保护,使得任何一方都在最终不能拿到除计算结果以外第三方数据的情况下进行计算。目前的多方计算技术包括,例如混淆电路(Garbled Circuit)、秘密共享(secrete sharing),不经意传输(oblivioustransfer)、同态加密(homomorphic encryption)等。
然而,无论在云计算中,还是在数据共享和计算领域,数据和隐私安全都面临着挑战。客户需要把数据存储在公有云上,但是客户不信任公有云的安全,数据到公有云上会有数据泄露的风险。在数据共享和数据交换中,数据需要在不信任的计算机系统中执行运算,同样面临着泄露以及被篡改的风险。
发明内容
本发明实施例提供一种在不信任的计算机上进行隐私计算的安全多方计算方法,系统,设备及计算机可读介质。
第一方面,本发明实施例提供一种安全多方计算方法,其特征在于,运行安全多方计算方法的系统包括客户端以及至少两个不信任方P1、P2,其中不信任方P1用于第一算子计算、第二算子计算并存储,另一不信任方P2用于产生计算过程中需要的随机噪声并用于第三算子计算,该方法包括以下步骤:P1在接收经加密运算的用户数据后进行第一算子计算,并将计算结果存储;P2对所产生的随机噪声进行第三算子计算并将计算结果返回至P1;P1利用已存储的计算结果和接收的来自P2的计算结果进行第二算子计算,并将结果返回客户端;客户端进行解密运算,得到运算结果。
利用P2所产生的随机噪声进行加密运算和解密运算。P2可以部署在公有云,可信执行环境TEE比如Intel SGX中进行计算以产生随机噪声。P2部署在可信执行环境中时,根据安全性要求,P2可接触部分或全部用户数据。可以通过哈希函数(SHA256)、AES加密Counter模式或者其他方法的结果作为随机噪声。随机噪声的大小可以设置为128比特、192比特、256比特或更高。在满足安全性要求的前提下,在P1完成第一算子计算后将计算结果传递至客户端进行解密运算,得到运算结果。第一至第三算子是实现用户安全多方计算目的的算法的组合。
第二方面,本发明实施例提供一种安全多方计算系统,其特征在于,该系统包括客户端以及至少两个不信任方P1、P2,其中不信任方P1包括第一计算单元用于第一算子计算、第二计算单元用于第二算子计算,以及存储单元用于存储计算结果,另一不信任方P2包括随机噪声产生单元用于产生计算过程中需要的随机噪声以及第三计算单元并用于第三算子计算,该系统运行以下步骤:P1在接收经加密运算的用户数据后进行第一算子计算,并将计算结果存储;P2对所产生的随机噪声进行第三算子计算并将计算结果返回至P1;P1利用已存储的计算结果和接收的来自P2的计算结果进行第二算子计算,并将结果返回客户端;客户端进行解密运算,得到运算结果。利用P2所产生的随机噪声进行加密运算和解密运算。
利用P2所产生的随机噪声进行加密运算和解密运算。P2可以部署在公有云,可信执行环境TEE比如Intel SGX中进行计算以产生随机噪声。P2部署在可信执行环境中时,根据安全性要求,P2可接触部分或全部用户数据。可以通过哈希函数(SHA256)、AES加密Counter模式或者其他方法的结果作为随机噪声。随机噪声的大小可以设置为128比特、192比特、256比特或更高。在满足安全性要求的前提下,在P1完成第一算子计算后将计算结果传递至客户端进行解密运算,得到运算结果。第一至第三算子是实现用户安全多方计算目的的算法的组合。
第三方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行前述所述的方法。
一种计算机设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现前述所述的方法。
本发明的实施例中,具有至少两个不信任方P1、P2,其中一个不信任方P1作为主要计算和存储的系统,另一个不信任方P2产生计算过程中需要的随机噪声来保证数据的安全和隐私性。该系统的安全性要求P1和P2互不串通,P2可以部署在公有云、任何不信任方,或者可信执行环境TEE(Trusted Execution Environment),比如Intel SGX中进行计算生产随机噪声。随机噪声的生成方式很多,比如可以用哈希函数(SHA256)、AES加密counter模式或者其他方法的结果作为随机噪声。本发明提出了新的安全多方计算的方法和系统,让数据在不信任的计算机系统中可以运行安全的隐私计算,保证数据的安全和隐私性。
上述概述仅仅是为了说明书的目的,并不意图以任何方式进行限制。
附图说明
通过结合附图描述本说明书实施例,可以使得本说明书实施例更加清楚。
图1示出根据本说明书实施例的安全多方计算的场景示意图;
图2示出根据本说明书实施例的一种完全多方计算加法的方法流程图;
图3示出根据本说明书实施例的一种完全多方计算加法的方法流程图;
图4示出根据本说明书实施例的一种完全多方计算乘法的方法流程图;
图5示出根据本说明书实施例的一种完全多方计算乘法的方法流程图;
图6示出根据本说明书实施例的一种完全多方计算乘法的方法流程图;
图7示出根据本说明书实施例的一种完全多方计算除法的方法流程图;
图8示出根据本说明书实施例的一种完全多方计算除法的方法流程图;
图9示出根据本说明书实施例的一种完全多方计算线性运算的方法流程图。
具体实施方式
下面将结合附图描述本说明书实施例。
图1示出根据本说明书实施例的在不信任的计算机上进行隐私计算的安全多方计算的应用场景示意图。如图1所示,在该场景中包括用户终端和云端不信任终端P1、P2,可以理解的是,上述终端可以是具有计算与存储功能的计算机,移动终端或手持终端等设备,这里仅示意性地示出包含用户终端与云端不信任终端P1、P2等三方。在实际应用中,可根据场景需要和相应的安全性要求,可以包含更多的终端。例如,用户数据来自用户终端以外的第三方,可以来自互联网,或移动终端上的应用,可以是自动下发也可以是基于请求下发。云端不信任终端可以是两台设备,三台设备或者更多,云端不信任终端可以受控于服务器或其它类似设备,以使得在某时间段内云端不信任终端接收相应的计算指令,进行计算和/或通信。云端不信任终端P1、P2之间的通信包括P1向P2请求生成随机噪声,发送同步信号,或其它与用户数据无关的控制信号等。基于安全性要求,安全多方计算所依赖的计算参数可以来自于云端的多方设备,以及基于多方设备各自产生的参数或函数,也可以是由这些参数或函数的进一步运算而产生的数据。
在一实施例中,用户终端是移动终端或客户端,云端不信任终端P1、P2分别是公用的商业云计算服务器。一般情况下,例如利用P2产生随机噪声,比如Intel SGX中进行计算生产随机噪声。随机噪声的生成方式很多,比如可以用哈希函数(SHA256)、AES加密Counter模式或者其他方法的结果作为随机噪声,比如128比特、256比特或者更大的随机数。云端不信任方P2也可以在与云端不信任方P1同一台计算机或者不同计算机上的可信执行环境比如Intel SGX中运算。特别地,P2可以是可信执行环境TEE(Trusted ExecutionEnvironment)是主处理器上的一个安全区域,其可以保证加载到该环境内部的代码和数据的安全性、机密性以及完整性。在此条件下,根据安全性要求,P2可以获取全部或部分用户数据。TEE提供一个隔离的执行环境,提供的安全特征包含:隔离执行、可信应用的完整性、可信数据的机密性、安全存储等。安全元件(Secure Element)简称SE,通常以芯片形式提供。为防止外部恶意解析攻击,保护数据安全,在芯片中具有加密/解密逻辑电路。TEE是可信执行环境的简称。当前的可信执行环境主要是基于智能终端(如智能手机)中处理器的安全区域构建的可信执行环境。TEE是一个独立的执行区域,它提供了很多安全属性,如隔离性,TA的完整性等,同时TEE也确保了加载到TEE中代码和数据的安全性。TEE的安全级别介于REE(Rich Execution Environment)和SE(Secure Element)之间。由于TEE的安全级别低于SE,没有SE,也就没有物理上完全隔离的安全区域去保存用户的密钥。现有的多数TEE方案都是基于CPU芯片得到一个唯一HUK(Hardware Unique Key硬件唯一密钥),再由该HUK派生出其它的功能密钥。芯片制造商可以提供严格的管理方式保护该HUK。但用SE维持数据安全的成本较高。
在一实施例中,利用前述由云端不信任方P2所产生的随机噪声数据在用户终端对用户原始数据D进行加密处理得到加密数据D’,并传输至公有云的不信任方P1、P2进行必要的运算。由于用户原始数据D已经进行了加密处理,云端不信任方P1、P2所接收的数据并不是用户原始数据,尤其是云端不信任方P1并不掌握用户终端进行加密处理所采用的随机噪声,P1与P2之间对随机噪声的产生机制以及具体的值相互隔离。云端不信任方P1在接收到加密数据D’后进行必要的运算得到第一计算结果,例如用第一算子进行计算,并存储运算结果。同时,云端不信任方P1、P2在云服务器指令下工作。云端不信任方P2对其所产生的随机噪声进行运算得到第三计算结果,例如用第三算子进行计算,并将针对随机噪声的运算结果传递至云端不信任方P1。云端不信任方P1在收到针对随机噪声的运算结果后再次与已存储的第一计算结果进行运算得到第二计算结果,例如用第二算子进行计算,并存储运算结果。自此,云端不信任方P1、P2已经完成了必要的运算。在完成必要的运算之后,计算结果返回用户终端。用户终端根据加密以及相关运算规则进行解密。上述计算过程保证了云端不信任方P1、P2始终无法获取用户隐私数据,从而保障了用户数据安全。以下通过不同的运算规则及其实施例,说明本发明的技术方案。
在一实施例中,通过云端不信任方P1、P2进行安全多方加法运算。如图2所示,r1、r2、r3是加入的随机噪音,大小可以设置为128、192、256比特或以上,以满足安全性要求。P1和P2必须是互不串通的,P1是主要的存储和运算云,P2主要是产生P1运算过程中的噪音。客户端或信任方,对用户的原始数据a、b进行加密处理,例如将原始数据分别于前述随机噪声相减得到a’、b’,并将处理后的用户数据发送到云端不信任方P1,执行用户所需进行的加法运算a’+b’,并将计算结果c’存储。同时,云端不信任方P2对前述随机噪声求和得到随机噪声和r,并将随机噪声和r传送至云端不信任方P1,在云端不信任方P1中将事先存储的加法计算结果c’与随机噪声和r相加得到y’并存储。在将加法运算的初步结果y’传输至客户端或信任方之后进行解密运算。由于云端不信任方P1、P2对客户端或信任方是透明的,在将初步加法运算结果y’减去随机噪声r3之后即可得到最终的加法运算结果a+b。通过这样的协议,云端不信任方P1因为数据中加入噪声所以数据不会暴露给P1,P2不能获知c′和y′所以P2也不知道原始数据a和b。需要说明的是,以上各步骤中的算子不是唯一确定的,仅是以示例为目的,其它算子只要在对原始数据进行加密、解密并完成所需的加法运算的前提下,其它算子也是可行的。
在一优选实施例中,云端不信任方P2在生成随机噪声后无需对随机噪声进一步进行运算,主要的云数据计算或处理仅需要在云端不信任方P1即可完成。如图3所示,r1和r2是加入的随机噪音。在将用户数据与随机噪声初步运算之后,传送至云端不信任方P1进行初步的加法运算,得到初步加法结算结果c′=a′+b′,同时计算结果被存储。将计算结果发送至客户端或受信任方,进行解密运算,得到最终的加法运算结果。相对于在先的实施例,在满足安全性的前提下,简化了计算。至此,通过安全多方运算的运行机制,安全多方加法运算y=a+b:在不泄露a和b给公有云/不信任方的情况下,完成安全多方加法运算。
在一实施例中,通过云端不信任方P1、P2进行乘法运算。如图4所示,r1,r2和r3是加入的随机噪音,大小可以设置为128、192、256比特或以上,以满足安全性要求。云端不信任方P1和云端不信任方P2必须是互不串通的,云端不信任方P1是主要的存储和运算云,云端不信任方P2主要是产生云端不信任方P1运算过程中的噪音。客户端或信任方,对用户的原始数据a、b进行加密处理,例如将原始数据分别于前述随机噪声相乘得到a’、b’,并将处理后的用户数据发送到云端不信任方P1,执行用户所需进行的乘法运算a’*b’,并将计算结果c’存储。同时,云端不信任方P2对前述随机噪声的倒数求积得到随机噪声倒数积r,并将随机噪声倒数积r传送至云端不信任方P1,在云端不信任方P1中将事先存储的乘法计算结果c’与随机噪声倒数积r相乘得到y’并存储。在将乘法运算的初步结果y’传输至客户端或信任方之后进行解密运算。由于云端不信任方P1、P2对客户端或信任方是透明的,在将初步乘法运算结果y’乘以随机噪声倒数积之后即可得到最终的乘法运算结果a*b。通过这样的协议,云端不信任方P1因为数据中加入噪声所以数据不会暴露给P1,P2不能获知c′和y′,所以P2也不知道原始数据a和b。需要说明的是,以上各步骤中的算子不是唯一的,仅是以示例为目的,其它算子只要在对原始数据进行加密、解密并完成所需的乘法运算的前提下,其它算子也是可行的。
在一实施例中,通过不同的算子完成安全多方乘法运算,如图5所示。不同之处在于在云端可信执行环境中完成部分涉及用户数据的计算步骤。具体计算过程如下:客户端或信任方,对用户的原始数据a、b进行加密处理,例如将原始数据分别于前述随机噪声相加得到a’、b’,并将处理后的用户数据发送到云端不信任方P1,执行用户所需进行的乘法运算a’*b’,并将计算结果c’存储。同时,云端不信任方P2如果是可信执行环境可以对前述随机噪声以及用户数据进行运算得到中间值r,其中r=r3-a*r2-b*r1-r1*r2,并将中间值r传送至云端不信任方P1。其它情况可以直接将a*r2的值以及b*r1的值直接传递给云端不信任方P2,因此P2也是可以不直接接触到用户数据的。在云端不信任方P1中将事先存储的乘法计算结果c’与中间值r相加得到y’并存储。优选地,云端不信任方P2可以是可信执行环境T1,因而在满足安全性要求的前提下,客户接触部分或全部用户数据。在将乘法运算的初步结果y’传输至客户端或信任方之后进行解密运算。由于云端不信任方P1、P2对客户端或信任方是透明的,在将初步乘法运算结果y’减去r3即可得到最终的乘法运算结果a*b。这也进一步佐证了,完成运算的算子不是唯一的,而是可以多选的。
在一优选实施例中,云端不信任方P2在生成随机噪声后无需对随机噪声进一步进行运算,主要的云数据计算或处理仅需要在云端不信任方P1即可完成。如图6所示,r1和r2是加入的随机噪音。在将用户数据与随机噪声初步运算之后,传送至云端不信任方P1进行初步的乘法运算,得到初步乘法结算结果c′=a′*b′,同时计算结果被存储。将计算结果发送至客户端或受信任方,进行解密运算,即除以r1*r2得到最终的乘法运算结果。相对于在先的实施例,在满足安全性的前提下,简化了计算。至此,通过安全多方运算的运行机制,安全多方乘法运算y=a*b:在不泄露a和b给公有云/不信任方的情况下,完成安全多方乘法运算。
在一实施例中,通过云端不信任方P1、P2进行安全多方除法运算,如图7所示。如前述,r1,r2和r3是加入的随机噪音,大小可以设置为128、192、256比特或以上,以满足安全性要求。云端不信任方P1和云端不信任方P2必须是互不串通的,云端不信任方P1是主要的存储和运算云,云端不信任方P2主要是产生云端不信任方P1运算过程中的噪音。客户端或信任方,对用户的原始数据a、b进行加密处理,例如将原始数据分别于前述随机噪声相乘得到a’、b’,并将处理后的用户数据发送到云端不信任方P1,执行用户所需进行的除法运算a’/b’,并将计算结果c’存储。同时,云端不信任方P2对前述随机噪声的进行计算得到中间值r,其中并将中间值r传送至云端不信任方P1,在云端不信任方P1中将事先存储的除法计算结果c’与中间值r相乘得到y’并存储。在将除法运算的初步结果y’传输至客户端或信任方之后进行解密运算。由于云端不信任方P1、P2对客户端或信任方是透明的,在将初步除法运算结果y’除以r3之后即可得到最终的除法运算结果a/b。通过这样的协议,云端不信任方P1因为数据中加入噪声所以数据不会暴露给P1,P2不能获知c′和y′,所以P2也不知道原始数据a和b。需要说明的是,以上各步骤中的算子不是唯一确定的,仅是以示例为目的,其它算子只要在对原始数据进行加密、解密并完成所需的除法运算的前提下,其它算子也是可行的。
在一优选实施例中,云端不信任方P2在生成随机噪声后无需对随机噪声进一步进行运算,主要的云数据计算或处理仅需要在云端不信任方P1即可完成。如图8所示,r1和r2是加入的随机噪音。在将用户数据与随机噪声初步运算之后,传送至云端不信任方P1进行初步的除法运算,得到初步除法结算结果c′=a′/b′,同时计算结果被存储。将计算结果发送至客户端或受信任方,进行解密运算,即乘以r2/r1得到最终的除法运算结果。相对于在先的实施例,在满足安全性的前提下,简化了计算。至此,通过安全多方运算的运行机制,安全多方加法运算y=a/b:在不泄露a和b给公有云/不信任方的情况下,完成安全多方除法运算。
在一实施例中,通过云端不信任方P1、P2进行安全多方线性运算,如图9所示。如前述,r1,r2,r3和r4是加入的随机噪音,大小可以设置为128、192、256比特或以上,以满足安全性要求。云端不信任方P1和云端不信任方P2必须是互不串通的,云端不信任方P1是主要的存储和运算云,云端不信任方P2主要是产生云端不信任方P1运算过程中的噪音。客户端或信任方,对用户的原始数据a、b、x进行加密处理,例如将原始数据进行以下计算:a′=a*r1、x′=x*r2、b′=(b+r3)*r4,分别得到a’、b’、x’并将处理后的用户数据发送到云端不信任方P1,执行用户所需进行的运算d'=a'*x',并将计算结果d’存储。同时,云端不信任方P2对前述随机噪声的进行计算得到中间值r,其中并将中间值r传送至云端不信任方P1,在云端不信任方P1中将事先存储的除法计算结果d’与中间值r进行以下线性运算:y′=d′*r+b’。在将线性运算的初步结果y’传输至客户端或信任方之后进行解密运算。由于云端不信任方P1、P2对客户端或信任方是透明的,在将初步除法运算结果y’除以r4并减去r3之后即可得到最终的线性运算结果a*x+b。通过这样的协议,云端不信任方P1因为数据中加入噪声所以数据不会暴露给P1,P2不能获知d′和y′,所以P2也不知道原始数据a和b。需要说明的是,以上各步骤中的算子不是唯一确定的,仅是以示例为目的,其它算子只要在对原始数据进行加密、解密并完成所需的线性运算的前提下,其它算子也是可行的。
在一实施例中,一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行前述的安全多方计算方法。
在一实施例中,一种计算机设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现安全多方计算方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
本发明实施例所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质的更具体的示例至少(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式只读存储器(CDROM)。另外,计算机可读存储介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
在本发明实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于指令执行系统、输入法或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、射频(Radio Frequency,RF)等等,或者上述的任意合适的组合。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。所述存储介质可以是只读存储器,磁盘或光盘等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到其各种变化或替换,这些都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (18)
1.一种安全多方计算方法,其特征在于,运行安全多方计算方法的系统包括客户端以及至少两个不信任方P1、P2,其中不信任方P1用于第一算子计算、第二算子计算并存储,另一不信任方P2用于产生计算过程中需要的随机噪声并用于第三算子计算,该方法包括以下步骤:
P1在接收经加密运算的用户数据后进行第一算子计算,并将计算结果存储;
P2对所产生的随机噪声进行第三算子计算并将计算结果返回至P1;
P1利用已存储的计算结果和接收的来自P2的计算结果进行第二算子计算,并将结果返回客户端;
客户端进行解密运算,得到运算结果。
2.根据权利要求1所述的方法,利用P2所产生的随机噪声进行加密运算和解密运算。
3.根据权利要求1所述的方法,P2部署在公有云,可信执行环境TEE,比如Intel SGX中进行计算以产生随机噪声。
4.根据权利要求3所述的方法,P2部署在可信执行环境中时,根据安全性要求,P2可接触部分或全部用户数据。
5.根据权利要求2所述的方法,通过哈希函数(SHA256)、AES加密Counter模式或其他方法的结果作为随机噪声。
6.根据权利要求2至4之一所述的方法,随机噪声的大小可以设置为128比特、192比特、256比特或更高。
7.根据权利要求1所述的方法,在满足安全性要求的前提下,在P1完成第一算子计算后将计算结果传递至客户端进行解密运算,得到运算结果。
8.根据权利要求1所述的方法,第一至第三算子是实现用户安全多方计算目的的算法的组合。
9.一种安全多方计算系统,其特征在于,该系统包括客户端以及至少两个不信任方P1、P2,其中不信任方P1包括第一计算单元用于第一算子计算、第二计算单元用于第二算子计算,以及存储单元用于存储计算结果,另一不信任方P2包括随机噪声产生单元用于产生计算过程中需要的随机噪声以及第三计算单元并用于第三算子计算,该系统运行以下步骤:
P1在接收经加密运算的用户数据后进行第一算子计算,并将计算结果存储;
P2对所产生的随机噪声进行第三算子计算并将计算结果返回至P1;
P1利用已存储的计算结果和接收的来自P2的计算结果进行第二算子计算,并将结果返回客户端;
客户端进行解密运算,得到运算结果。
10.根据权利要求9所述的系统,利用P2所产生的随机噪声进行加密运算和解密运算。
11.根据权利要求9所述的系统,P2部署在公有云,可信执行环境TEE比如Intel SGX中进行计算以产生随机噪声。
12.根据权利要求11所述的系统,P2部署在可信执行环境中时,根据安全性要求,P2可接触部分或全部用户数据。
13.根据权利要求9所述的系统,通过哈希函数(SHA256)、AES加密Counter模式或者其他方法的结果作为随机噪声。
14.根据权利要求10至12之一所述的系统,随机噪声的大小可以设置为128比特、192比特、256比特或更高。
15.根据权利要求9所述的系统,在满足安全性要求的前提下,在P1完成第一算子计算后将计算结果传递至客户端进行解密运算,得到运算结果。
16.根据权利要求9所述的系统,第一至第三算子是实现用户安全多方计算目的的算法的组合。
17.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-8中任一项所述的方法。
18.一种计算机设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010363040.8A CN111586142B (zh) | 2020-04-30 | 2020-04-30 | 一种安全多方计算方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010363040.8A CN111586142B (zh) | 2020-04-30 | 2020-04-30 | 一种安全多方计算方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111586142A true CN111586142A (zh) | 2020-08-25 |
CN111586142B CN111586142B (zh) | 2023-09-12 |
Family
ID=72113304
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010363040.8A Active CN111586142B (zh) | 2020-04-30 | 2020-04-30 | 一种安全多方计算方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111586142B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112769786A (zh) * | 2020-12-29 | 2021-05-07 | 杭州趣链科技有限公司 | 基于不经意传输规则的数据传输方法、装置和计算机设备 |
CN112953700A (zh) * | 2021-01-26 | 2021-06-11 | 西安电子科技大学 | 一种提升安全多方计算效率的方法、系统及存储介质 |
CN113849844A (zh) * | 2021-11-26 | 2021-12-28 | 杭州安恒信息技术股份有限公司 | 一种多方数据安全计算方法、系统、装置及存储介质 |
CN114239064A (zh) * | 2021-12-20 | 2022-03-25 | 杭州趣链科技有限公司 | 隐私计算方法、装置、电子设备及计算机可读存储介质 |
CN116701831A (zh) * | 2023-02-28 | 2023-09-05 | 华为云计算技术有限公司 | 处理数据的方法、装置及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170346627A1 (en) * | 2015-01-09 | 2017-11-30 | Institut Mines-Telecom | Communication with everlasting security from short-term-secure encrypted quantum communication |
CN108632261A (zh) * | 2018-04-24 | 2018-10-09 | 深圳职业技术学院 | 多方量子求和方法及系统 |
CN109101822A (zh) * | 2018-07-10 | 2018-12-28 | 西安交通大学 | 一种解决多方计算中数据隐私泄露问题的方法 |
CN109255247A (zh) * | 2018-08-14 | 2019-01-22 | 阿里巴巴集团控股有限公司 | 多方安全计算方法及装置、电子设备 |
CN110061829A (zh) * | 2019-04-26 | 2019-07-26 | 上海点融信息科技有限责任公司 | 基于区块链网络的安全多方计算方法、装置及存储介质 |
CN111049825A (zh) * | 2019-12-12 | 2020-04-21 | 支付宝(杭州)信息技术有限公司 | 一种基于可信执行环境的安全多方计算方法和系统 |
-
2020
- 2020-04-30 CN CN202010363040.8A patent/CN111586142B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170346627A1 (en) * | 2015-01-09 | 2017-11-30 | Institut Mines-Telecom | Communication with everlasting security from short-term-secure encrypted quantum communication |
CN108632261A (zh) * | 2018-04-24 | 2018-10-09 | 深圳职业技术学院 | 多方量子求和方法及系统 |
CN109101822A (zh) * | 2018-07-10 | 2018-12-28 | 西安交通大学 | 一种解决多方计算中数据隐私泄露问题的方法 |
CN109255247A (zh) * | 2018-08-14 | 2019-01-22 | 阿里巴巴集团控股有限公司 | 多方安全计算方法及装置、电子设备 |
CN110061829A (zh) * | 2019-04-26 | 2019-07-26 | 上海点融信息科技有限责任公司 | 基于区块链网络的安全多方计算方法、装置及存储介质 |
CN111049825A (zh) * | 2019-12-12 | 2020-04-21 | 支付宝(杭州)信息技术有限公司 | 一种基于可信执行环境的安全多方计算方法和系统 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112769786A (zh) * | 2020-12-29 | 2021-05-07 | 杭州趣链科技有限公司 | 基于不经意传输规则的数据传输方法、装置和计算机设备 |
CN112953700A (zh) * | 2021-01-26 | 2021-06-11 | 西安电子科技大学 | 一种提升安全多方计算效率的方法、系统及存储介质 |
CN112953700B (zh) * | 2021-01-26 | 2022-03-22 | 西安电子科技大学 | 一种提升安全多方计算效率的方法、系统及存储介质 |
CN113849844A (zh) * | 2021-11-26 | 2021-12-28 | 杭州安恒信息技术股份有限公司 | 一种多方数据安全计算方法、系统、装置及存储介质 |
CN114239064A (zh) * | 2021-12-20 | 2022-03-25 | 杭州趣链科技有限公司 | 隐私计算方法、装置、电子设备及计算机可读存储介质 |
CN116701831A (zh) * | 2023-02-28 | 2023-09-05 | 华为云计算技术有限公司 | 处理数据的方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111586142B (zh) | 2023-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11601407B2 (en) | Fast oblivious transfers | |
CN111586142B (zh) | 一种安全多方计算方法及系统 | |
US10785019B2 (en) | Data transmission method and apparatus | |
CN114586313B (zh) | 用于签署一信息的系统及方法 | |
CN109309569B (zh) | 基于sm2算法的协同签名的方法、装置及存储介质 | |
US8688973B2 (en) | Securing communications sent by a first user to a second user | |
CN109067528B (zh) | 密码运算、创建工作密钥的方法、密码服务平台及设备 | |
CN109728906B (zh) | 基于非对称密钥池的抗量子计算非对称加密方法和系统 | |
US10601590B1 (en) | Secure secrets in hardware security module for use by protected function in trusted execution environment | |
Velliangiri et al. | An efficient lightweight privacy-preserving mechanism for industry 4.0 based on elliptic curve cryptography | |
US10826694B2 (en) | Method for leakage-resilient distributed function evaluation with CPU-enclaves | |
MX2008013557A (es) | Metodo para validacion criptografica de clave publica de curva eliptica. | |
Dong et al. | Attribute-based keyword search efficiency enhancement via an online/offline approach | |
CN109921905B (zh) | 基于私钥池的抗量子计算密钥协商方法和系统 | |
CN114065252A (zh) | 一种带条件检索的隐私集合求交方法、装置及计算机设备 | |
CN112953700B (zh) | 一种提升安全多方计算效率的方法、系统及存储介质 | |
US20240163084A1 (en) | Method of data transmission, and electronic devic | |
Yang et al. | DAA-TZ: an efficient DAA scheme for mobile devices using ARM TrustZone | |
CN111555880A (zh) | 数据碰撞方法、装置、存储介质及电子设备 | |
US20240048360A1 (en) | Method for processing multi-source data | |
Jannati et al. | An improved authentication protocol for distributed mobile cloud computing services | |
Cui et al. | Towards Multi-User, Secure, and Verifiable $ k $ NN Query in Cloud Database | |
CN112261015B (zh) | 基于区块链的信息共享方法、平台、系统以及电子设备 | |
US11496287B2 (en) | Privacy preserving fully homomorphic encryption with circuit verification | |
US20230027010A1 (en) | Secret code verification protocol |
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 |