CN112906044B - 多方安全计算方法、装置、设备及存储介质 - Google Patents

多方安全计算方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN112906044B
CN112906044B CN202110503941.7A CN202110503941A CN112906044B CN 112906044 B CN112906044 B CN 112906044B CN 202110503941 A CN202110503941 A CN 202110503941A CN 112906044 B CN112906044 B CN 112906044B
Authority
CN
China
Prior art keywords
data
ciphertext
random number
plaintext
ciphertext data
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
CN202110503941.7A
Other languages
English (en)
Other versions
CN112906044A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202110503941.7A priority Critical patent/CN112906044B/zh
Publication of CN112906044A publication Critical patent/CN112906044A/zh
Application granted granted Critical
Publication of CN112906044B publication Critical patent/CN112906044B/zh
Priority to PCT/CN2022/087068 priority patent/WO2022237450A1/zh
Priority to US17/992,685 priority patent/US20230087864A1/en
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
    • 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
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File 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/46Secure multiparty computation, e.g. millionaire problem

Abstract

本申请实施例公开了一种多方安全计算方法、装置、设备及存储介质,属于数据安全技术领域。该方法包括:对第一明文数据进行同态加密处理,生成第一密文数据;向第二节点设备发送包含第一密文数据的加密数据;接收第二节点设备发送的差值密文数据;对差值密文数据进行解密处理,并基于解密结果的正负性确定数值比较结果。本申请在两个参与方均不向对方透漏己方数据,且不借助可信第三方的前提下,同时实现大小比较和相等测试。相比于相关技术中的计算方法,两个节点设备各自只需进行一次数据收发,减少了通信次数,通信开销小、计算效率高,且大小比较和相等测试可以同时进行。

Description

多方安全计算方法、装置、设备及存储介质
技术领域
本申请实施例涉及数据安全技术领域,特别涉及一种多方安全计算方法、装置、设备及存储介质。
背景技术
多方安全计算的研究主要是针对无可信第三方的情况下,如何安全地计算一个约定函数的问题。安全多方计算可以使能安全的数据合作和融合应用,在数据不出域、合法合规的前提下联合多方数据源进行计算、分析、学习,实现数据价值共享。
相关技术中,安全多方计算比较数值的大小以及进行相等测试的方法,通常采用不经意传输技术或同态加密技术。
然而,基于不经意传输的大小比较和相等测试方法,各个参与方之间的通信交互次数较多,通信开销大、效率低,基于同态加密技术的方法则计算复杂度较高,无法实际应用。
发明内容
本申请实施例提供了一种多方安全计算方法、装置、设备及存储介质,能够减少通信开销、提高计算效率。所述技术方案如下。
一方面,本申请提供了一种多方安全计算方法,所述方法应用于联合计算系统中的第一节点设备,所述方法包括如下步骤:
对第一明文数据进行同态加密处理,生成第一密文数据;
向第二节点设备发送包含所述第一密文数据的加密数据,所述第二节点设备用于基于所述加密数据以及第二明文数据,得到第二密文数据,并基于所述第一密文数据以及所述第二密文数据计算差值密文数据;
接收所述第二节点设备发送的所述差值密文数据;
对所述差值密文数据进行解密处理,并基于解密结果的正负性确定数值比较结果,所述数值比较结果包括所述第一明文数据大于所述第二明文数据、所述第一明文数据小于所述第二明文数据或所述第一明文数据等于所述第二明文数据。
另一方面,本申请提供了一种多方安全计算方法,所述方法应用于联合计算系统中的第二节点设备,所述方法包括如下步骤:
接收第一节点设备发送的加密数据,所述加密数据包含第一密文数据,所述第一节点设备用于对第一明文数据进行同态加密处理生成所述第一密文数据;
基于所述加密数据以及第二明文数据,生成第二密文数据;
基于所述第一密文数据以及所述第二密文数据计算得到差值密文数据;
向所述第一节点设备发送所述差值密文数据,所述第一节点设备用于对所述差值密文数据进行解密处理,并基于解密结果的正负性确定数值比较结果,所述数值比较结果包括所述第一明文数据大于所述第二明文数据、所述第一明文数据小于所述第二明文数据或所述第一明文数据等于所述第二明文数据。
另一方面,本申请提供了一种多方安全计算装置,所述装置包括如下结构:
第一加密模块,用于对第一明文数据进行同态加密处理,生成第一密文数据;
第一发送模块,用于向第二节点设备发送包含所述第一密文数据的加密数据,所述第二节点设备用于基于所述加密数据以及第二明文数据,得到第二密文数据,并基于所述第一密文数据以及所述第二密文数据计算差值密文数据;
第一接收模块,用于接收所述第二节点设备发送的所述差值密文数据;
解密模块,用于对所述差值密文数据进行解密处理,并基于解密结果的正负性确定数值比较结果,所述数值比较结果包括所述第一明文数据大于所述第二明文数据、所述第一明文数据小于所述第二明文数据或所述第一明文数据等于所述第二明文数据。
另一方面,本申请提供了一种多方安全计算装置,所述装置包括如下结构:
第二接收模块,用于接收第一节点设备发送的加密数据,所述加密数据包含第一密文数据,所述第一节点设备用于对第一明文数据进行同态加密处理生成所述第一密文数据;
第二加密模块,用于基于所述加密数据以及第二明文数据,生成第二密文数据;
计算模块,用于基于所述第一密文数据以及所述第二密文数据计算得到差值密文数据;
第二发送模块,用于向所述第一节点设备发送所述差值密文数据,所述第一节点设备用于对所述差值密文数据进行解密处理,并基于解密结果的正负性确定数值比较结果,所述数值比较结果包括所述第一明文数据大于所述第二明文数据、所述第一明文数据小于所述第二明文数据或所述第一明文数据等于所述第二明文数据。
另一方面,本申请提供了一种计算机设备,所述计算机设备包括处理器和存储器;所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述方面所述的多方安全计算方法。
另一方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机程序,所述计算机程序由处理器加载并执行以实现如上述方面所述的多方安全计算方法。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备实现上述方面的各种可选实现方式中提供的多方安全计算方法。
本申请实施例提供的技术方案至少包括以下有益效果:
本申请实施例中,双方节点设备向对方发送的数据均为密文数据,通过同态加密算法,对差值密文数据进行解密得到第一明文数据与第二明文数据之差的正负性,在两个参与方均不向对方透漏己方数据,且不借助可信第三方的前提下,同时实现大小比较和相等测试。相比于相关技术中的计算方法,两个节点设备各自只需进行一次数据收发,减少了通信次数,通信开销小、计算效率高,且大小比较和相等测试可以同时进行。
附图说明
图1是本申请一个示例性实施例提供的实施环境示意图;
图2是本申请一个示例性实施例提供的多方安全计算方法的流程图;
图3是本申请另一个示例性实施例提供的多方安全计算方法的流程图;
图4是本申请另一个示例性实施例提供的多方安全计算方法的流程图;
图5是本申请一个示例性实施例提供的基于加法同态加密算法的多方安全计算方法的流程图;
图6是本申请另一个示例性实施例提供的多方安全计算方法的流程图;
图7是本申请一个示例性实施例提供的基于仿射密码加密算法的多方安全计算方法的流程图;
图8是本申请另一个示例性实施例提供的多方安全计算方法的流程图;
图9是本申请一个示例性实施例提供的基于仿射密码加密算法的多方安全计算方法的流程图;
图10是本申请另一个示例性实施例提供的多方安全计算方法的流程图;
图11是本申请另一个示例性实施例提供的多方安全计算方法的流程图;
图12是本申请一个示例性实施例提供的多方安全计算装置的结构框图;
图13是本申请一个示例性实施例提供的多方安全计算装置的结构框图;
图14是本申请一个示例性实施例提供的计算机设备的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
首先,对本申请实施例中涉及的名词进行介绍。
1)多方安全计算:是指有N个参与方P1, P2, …, PN,其中,参与方Pi拥有输入数据Xi,在不向任何其他参与方泄露自己的输入数据的前提下,且不借助任何可信机构的协助,所述N个参与方共同计算一个函数f(X1, X2, …, XN)。安全多方计算有丰富的理论基础,通过应用密码学(如同态加密)、秘密分享、差分隐私等多种安全机制保证输入数据的安全性,已经开始从理论研究阶段进入工程化和大规模应用落地阶段。
2)同态加密:是实现安全多方技术最常用的方法之一。同态加密(HomomorphicEncryption,HE)是一种加密形式,它允许对密文进行特定形式的代数运算得到仍然是密文空间里的运算结果。将密文空间里的运算结果进行解密所得到的结果与对明文进行同样的运算结果一样。也就是说,在密文空间的运算等价于在明文空间里的运算。因此,利用同态加密技术,可以在加密的数据上进行运算,而在整个运算过程中无需对数据进行解密。
近年来,由于用户隐私、数据安全、合法合规、商业竞争等因素,很难合法和合规的将分散的数据源整合到一起进行计算、分析和学习。在这样的背景下,基于安全多方计算(Secure Multi-party Computation,MPC)的解决方案迅速发展起来,在不需要将分散数据源集中在一起的情况下就可以联合多个分散的数据源进行联合计算、联合数据分析和联合机器学习。安全多方计算可以使能安全的数据合作和融合应用,在数据不出域、合法合规的前提下联合多方数据源进行计算、分析、学习,实现数据价值共享。
相关技术中的大小比较和相等测试方法一般是基于不经意传输(ObliviousTransfer,OT)技术,也称为茫然传输技术,或者是基于同态加密技术。通常大小比较和相等测试需要分开实现。相关技术中基于不经意传输的大小比较和相等测试方法,虽然计算复杂度较低,但是两个参与方A和B的通信交互次数较多,通信开销大,通信效率低,不适用于跨公网通信的应用场景。而基于同态加密的大小比较和相等测试方法,计算复杂度太高,不能实际应用。此外,相关技术中的大小比较和相等测试方法大部分都不能同时完成两个数x和y的大小比较和相等测试。
为了解决上述技术问题,本申请实施例提出了一种半诚实(semi-honest)安全模型,在半诚实安全模型下,可以保证参与方不泄露各自的数据。半诚实(semi-honest)安全模型,也称为诚实但好奇(honest-but-curious)的安全模型,是指参与方A和B都会严格遵守所述大小比较和相等测试协议,不会恶意背离所述协议,也不会恶意或主动向对方进行攻击,但是参与方会在该协议执行过程中试图获得更多的信息。
图1示出了本申请一个实施例提供的联合计算系统的框图。该联合计算系统包括n个节点设备(也称为参与方),即节点设备P1、节点设备P2…节点设备Pn。任意一个节点设备可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。且任意两个节点设备拥有不同的数据源,例如不同公司的数据源,或同一公司不同部门的数据源。不同节点设备中存储有不同的数据。
不同节点设备之间通过无线网络或有线网络相连。
n个节点设备各自存储有己方数据,且该数据不能泄露。当联合计算系统中的两个节点设备之间存在数值比较需求时,例如P1与P2,则P1作为第一节点设备对己方明文数据进行同态加密处理,生成第一密文数据,并将包含第一密文数据的加密数据发送至P2,P2作为第二节点设备,基于加密数据以及第二明文数据,生成第二密文数据,进而计算得到差值密文数据,并将差值密文数据发送至P1,使得P1对差值密文数据进行解密处理,得到能够反映第一明文数据与第二明文数据之差的正负性的解密结果,进而得到数值比较结果;或者,由P2作为第一节点设备,P1作为第一节点设备执行上述步骤,同样能够在不泄露己方数据的前提下进行数值比较。该过程中,两个参与方的数据不会泄露,且各自只需进行一次数据收发,通信开销小、计算效率高。
当联合计算系统中存在节点设备需要对三个及以上的节点设备中的数据进行大小比较时,例如P1需要获取P1、P2和P3所拥有的数据x1、x2、x3的大小关系,则两两设备之间进行一次多方安全计算,比如,P1与P2作为第一节点设备和第二节点设备,比较x1与x2的大小,P2和P3作为第一节点设备和第二节点设备,比较x2与x3的大小,P1与P3作为第一节点设备与第二节点设备,比较x1与x3的大小,从而得到x1、x2、x3的大小关系。
在一种可能的实施方式中,上述联合计算系统中的多个节点设备可以组成为一区块链,而节点设备即为区块链上的节点,多方安全计算过程中所涉及的数据可保存于区块链上。
图2示出了本申请一个示例性实施例提供的多方安全计算方法的流程图。本实施例以该方法用于方法应用于联合计算系统中的第一节点设备为例进行说明,该方法包括如下步骤。
步骤201,对第一明文数据进行同态加密处理,生成第一密文数据。
联合计算系统中的第一节点设备存储有第一明文数据,第二节点设备存储有第二明文数据,当第一节点设备和/或第二节点设备需要对第一明文数据和第二明文数据进行大小比较时,为了实现双方均不向对方透露己方数据,第一节点设备首先对第一明文数据进行同态加密处理,生成第一密文数据。
可选的,第一密文数据是第一节点设备直接对第一明文数据进行加密处理得到的密文数据,也可以是第一节点设备对第一明文数据进行预处理后,对预处理结果进行加密处理得到的密文数据,本申请实施例对此不作限定。
例如,节点设备A存储有数字x,节点设备B存储有数字y,当节点设备A或者节点设备B需要比较x与y的大小时,节点设备A首先对x进行同态加密处理得到[x](即x的密文),或者由节点设备B首先对y进行同态加密处理得到[y](即y的密文)。
步骤202,向第二节点设备发送包含第一密文数据的加密数据,第二节点设备用于基于加密数据以及第二明文数据,得到第二密文数据,并基于第一密文数据以及第二密文数据计算差值密文数据。
第一节点设备生成第一密文数据后,向第二节点设备发送第一密文数据,使第二节点设备基于第一密文数据以及第二密文数据计算差值密文数据。
在一种可能的实施方式中,本申请实施例采用同态加密的方式,首先计算得到密文数据的差值即差值密文数据,进而对差值密文数据进行解密,得到能够反映第一明文数据与第二明文数据差值正负性的数据。因此第二节点设备首先需要基于加密数据,对第二明文数据进行同态加密处理,使第一明文数据与第二明文数据得到同样方式的加密处理,从而实现同态运算,且能够保证第一节点数据无法获取到第二明文数据。
第二节点设备生成第二密文数据后,基于第一密文数据与第二密文数据计算差值密文数据,该差值密文数据是第二节点设备分别对第一密文数据与第二密文数据进行相应的数据处理,并对数据处理后的密文相减得到的差值,并非直接按照第一节点设备的加密方式对第二明文数据进行加密处理得到第二密文数据且用第一密文数据减第二密文数据得到,否则第一节点设备能够基于差值密文数据得到第二明文数据。
该差值密文数据中包含有第一明文数据与第二明文数据之差的加密信息,即对差值密文数据进行解密,即可得到能够反映第一明文数据与第二明文数据之差的正负性的数据。
由于第二节点设备并不知道如何对差值密文数据进行解密,因此第二节点设备计算得到差值密文数据后,向第一节点设备发送差值密文数据,使第一节点设备基于同态加密算法的解密方式对差值密文数据进行解密,并获取第一明文数据与第二明文数据的大小关系。
步骤203,接收第二节点设备发送的差值密文数据。
第一节点设备接收第二节点设备发送的差值密文数据,基于该差值密文数据比较第一明文数据与第二明文数据的大小。
步骤204,对差值密文数据进行解密处理,并基于解密结果的正负性确定数值比较结果。
其中,数值比较结果包括第一明文数据大于第二明文数据、第一明文数据小于第二明文数据或第一明文数据等于第二明文数据。
第一节点设备对差值密文数据进行解密处理后,得到的数据为第一明文数据与第二明文数据之差的整数倍,该数据的正负性与第一明文数据与第二明文数据之差的正负性一致。
值得一提的是,本申请实施例中的第一第二并非特定的节点设备或数据。为了方便表述,本申请实施例以第一节点设备执行该方法为例进行说明,在另一种可能的实施方式中,还可以由第二节点设备执行本申请实施例提供的多方安全计算方法。
例如,多方安全计算中包含参与方A和参与方B,参与方A存储有数据x,参与方B存储有数据y,当二者中的至少一个需要进行数值比较时,可以由参与方A对x进行同态加密处理得到第一密文数据,由参与方B基于包含第一密文数据的加密数据以及第二明文数据y计算得到差值密文数据,最后由参与方A对差值密文数据进行解密处理得到数值比较结果;也可以由参与方B对y进行同态加密处理得到第一密文数据,由参与方A基于包含第一密文数据的加密数据以及第二明文数据x计算得到差值密文数据,最后由参与方B对差值密文数据进行解密处理得到数值比较结果。
综上所述,本申请实施例中,双方节点设备向对方发送的数据均为密文数据,通过同态加密算法,对差值密文数据进行解密得到第一明文数据与第二明文数据之差的正负性,在两个参与方均不向对方透漏己方数据,且不借助可信第三方的前提下,同时实现大小比较和相等测试。相比于相关技术中的计算方法,两个节点设备各自只需进行一次数据收发,减少了通信次数,通信开销小、计算效率高,且大小比较和相等测试可以同时进行。
图3示出了本申请另一个示例性实施例提供的多方安全计算方法的流程图。本实施例以该方法用于方法应用于联合计算系统中的第一节点设备为例进行说明,该方法包括如下步骤。
步骤301,联合第二节点设备进行精度协商,确定同态加密算法中的模数(modulus)。
安全计算过程中,通常需要进行多次取模运算(加密、解密过程以及其它数据处理过程均涉及取模运算),为了便于后续对负数进行编码,并识别出负数,通常要求
Figure DEST_PATH_IMAGE001
,其中x为第一明文数据,y为第二明文数据,n为模数,此时需要第一节点设备与第二节点设备进行精度协商,确保两个条件同时满足。例如,第一节点设备基于第一明文数据生成n,并将n发送至第二节点设备,第二节点设备判断n是否满足
Figure DEST_PATH_IMAGE002
,若是则向第一节点设备发送确认信息,若否则重新确定n并将n发送至第一节点设备。
在实际应用中,为了防止数值溢出,并且考虑到后续需要对明文或密文进行加法或乘法等运算,需要保证n足够大,因此可以要求
Figure DEST_PATH_IMAGE003
步骤302,基于同态加密算法以及模数对第一明文数据进行同态加密处理,生成第一密文数据。
第一节点设备基于同态加密算法生成密钥,并按照同态加密算法,基于密钥和模数对第一明文数据进行同态加密处理,生成第一密文数据。同样地,第二节点设备在生成第二密文数据以及差值密文数据时同样需要利用模数n进行取模运算。
步骤303,向第二节点设备发送包含第一密文数据的加密数据,第二节点设备用于基于加密数据以及第二明文数据,得到第二密文数据,并基于第一密文数据以及第二密文数据计算差值密文数据。
步骤304,接收第二节点设备发送的差值密文数据。
步骤305,对差值密文数据进行解密处理,并基于解密结果的正负性确定数值比较结果。
步骤303至步骤305的具体实施方式可以参考上述步骤202至步骤204,本申请实施例在此不再赘述。
本申请提出了三种利用多方安全计算方法进行数值比较的实现方式,第一种实现方式中采用的同态加密算法为加法同态加密算法。图4示出了本申请另一个示例性实施例提供的多方安全计算方法的流程图。本实施例以该方法用于方法应用于联合计算系统中的第一节点设备,且同态加密算法为加法同态加密算法为例进行说明,该方法包括如下步骤。
步骤401,联合第二节点设备进行精度协商,确定同态加密算法中的模数。
步骤405的具体实施方式可以参考上述步骤301,本申请实施例在此不再赘述。
步骤402,生成加法同态加密算法对应的密钥对,密钥对包括公钥和私钥。
第一节点设备采用加法同态加密算法对第一明文数据进行加密,首先生成该加法同态加密算法的密钥对,该密钥对包括公钥和私钥。
示意性的,第一节点设备采用帕耶(Paillier)加密算法对第一明文数据进行加密,首先生成公钥和私钥对(pk,sk)。
上述示例以Paillier加密算法为例进行说明,实际应用过程中,还可以采用其它以“公钥+私钥”的形式进行加密和解密的同态加密算法,本申请实施例对此不作限定。
步骤403,基于加法同态加密算法、模数以及公钥,对第一明文数据进行同态加密处理,生成第一密文数据。
第一节点设备利用公钥pk以及模数n,对其拥有的第一明文数据x进行同台加密处理,生成第一密文数据[x]。
示意性的,第一节点设备采用Paillier加密算法,该算法有两种常用的实现方式,其加密以及对应的解密过程如表1所示:
Figure DEST_PATH_IMAGE004
表1
上表中,m为明文,c为密文,n为模数,g为公钥,
Figure DEST_PATH_IMAGE005
Figure DEST_PATH_IMAGE006
为私钥,r为随机数,函数L(u)=(u-1)/n。
步骤404,向第二节点设备发送包含第一密文数据以及公钥的加密数据。
第一节点设备向第二节点设备发送加密数据,该加密数据包括公钥以及第一密文数据。
在一种可能的实施方式中,第二节点设备生成第一随机数p(p为正整数),基于模数对第一随机数与第二明文数据之积(py)进行取模运算,将取模运算结果py%n赋值于py,即令py=py%n。然后,第二节点设备基于公钥对取模运算结果进行同态加密处理,生成第二密文数据[py]。这里要求|py| < n/3,或者|py| < n/2;|px| < n/3,或者|px| < n/2。
为了保证第一明文数据与第二明文数据接收到同样的加密处理,从而实现密文和明文的同态运算,第二节点设备在接收到第一密文数据[x]时,还需要对第一密文数据进行数据处理,计算得到第一乘积密文[px],第一乘积密文[px]为第一随机数与第一明文数据之积px对应的密文。例如,对于Paillier加密算法,满足
Figure DEST_PATH_IMAGE007
第二节点设备计算得到第一乘积密文以及第二密文数据之后,计算差值密文数据[px]-[py]。在一种可能的实施方式中,节点设备对密文数据的运算为基于正数的加法和乘法等运算,因此第二节点设备可以先计算-[py],即对-[py]进行负数编码使其变为正数。将模数n与第一乘积密文相反数-[px]之和的取模运算结果即(n-[px])%n,赋值于-[py],即令-[py]=(n-[px])%n,后续第一节点设备在解密处理之后,若判断|px-py| > n/3(或者|px-py| > n/2),则实际解密结果应为px-py-n。然后第二节点设备基于第一乘积密文与更新后的第二密文数据的相反数,计算得到差值密文数据[px]-[py]。例如,对于Paillier加密算法,[px]-[py]=[px](-[py])=[px](n-[px])%n。
第二节点设备将计算得到的差值密文数据[px]-[py]发送至第一节点设备。
步骤405,接收第二节点设备发送的差值密文数据。
步骤405的具体实施方式可以参考上述步骤203,本申请实施例在此不再赘述。
步骤406,基于私钥对差值密文数据进行解密处理,并基于解密结果的正负性确定数值比较结果。
第一节点设备接收到差值密文数据[px]-[py]后,基于加法同态加密算法的解密方式,对[px]-[py]进行解密处理,计算得到解密结果px-py,即p(x-y),由于p为随机正整数,因此p(x-y)的正负性与x-y的正负性一致,第一节点设备基于p(x-y)确定数值比较结果。
示意性的,图5示出了参与方A与参与方B采用Paillier加密算法进行多方安全计算的流程:1,参与方A和参与方B精度协商,将浮点数转换为整数,并确定模数n;2,参与方A生成Paillier公钥和私钥对(pk,sk),对x进行同态加密处理生成[x];3,参与方A向参与方B发送公钥pk和第一密文数据[x];4,参与方B生成第一随机数p,对py进行同态加密计算得到[py],并计算[px]-[py];5,参与方B向参与方A发送[px]-[py];6,参与方A对[px]-[py]进行解密处理得到p(x-y),并确定数值比较结果。
上述示例以Paillier加密算法为例进行说明,实际应用过程中,还可以采用其它以“公钥+私钥”的形式进行加密和解密的同态加密算法,本申请实施例对此不作限定。
本申请实施例中,基于加法同态加密的大小比较和相等测试协议安全性高,可以保证各个节点设备中的数据不泄露,提高数据安全性;两个节点设备各自只需进行一次精度协商以及一次数据收发,减少了通信次数,通信开销小、计算效率高。
第二种实现方式中采用的同态加密算法为仿射密码加密算法。图6示出了本申请另一个示例性实施例提供的多方安全计算方法的流程图。本实施例以该方法用于方法应用于联合计算系统中的第一节点设备,且同态加密算法为仿射密码加密算法为例进行说明,该方法包括如下步骤。
步骤601,联合第二节点设备进行精度协商,确定同态加密算法中的模数。
步骤601的具体实施方式可以参考上述步骤301,本申请实施例在此不再赘述。
步骤602,生成第二随机数以及仿射密码加密算法的密钥组,第二随机数为正整数。
仿射密码(Affine Cipher)的加密过程是基于仿射变换(也称为线性变换)运算的。例如,输入明文m,输出密文c,c = (a*m + b) % n,或者c = (a*(m + b)) % n,其中,加密密钥为(a,b,n)。其中,*表示乘法,%表示求模运算,n是模数。为了保证加密算法的可行性(例如,保证解密密钥的存在,密文与明文的一一对应),这里要求a和n是互质的,即要求a和n的最大公约数为1。仿射密码的解密密钥为(
Figure DEST_PATH_IMAGE008
,b,n),其中,
Figure 129177DEST_PATH_IMAGE008
是a的模逆,即
Figure DEST_PATH_IMAGE009
。通常n为非常大的素数。
仿射密码具有很好的同态特性,包括密文上的加法、明文与密文相乘(俗称标量乘法,要求b=0)。所述同态特性是指在密文空间的运算结果可以直接转换成明文空间的运算结果。例如,密文加法同态是指:dec(enc(m1) + enc(m2)) = m1 + m2;标量乘法同态是指:dec(m1*enc(m2)) = m1*m2。
示意性的,本申请采用随机迭代仿射密码(Randomized Iterative AffineCipher,RIAC)进行同态加密处理。迭代仿射密码(Iterative Affine Cipher,IAC)是指重复进行仿射加密(即重复进行仿射变换)的加密算法,例如,c1 = (a1*m + b1) % n1,c2 =(a2*c1 + b2) % n2,c3 = (a3*c2 + b3) % n3…无论重复多少次,仍是仿射变换(俗称线性变换),仍是仿射密码,仍满足加法同态和标量乘法同态的特性(注意:标量乘法同态要求b=0)。
随机迭代仿射密码,是在迭代仿射密码的基础上增加噪声,以增强仿射密码的安全性。例如,对明文加噪声过程:产生随机数r,并计算m1 = (r*g) % n,m2 = (m + r*h) %n,这里要求:h = (d*g) % n,且(g,h)是加密密钥的一部分,r*g > n,m + r*h > n,且随机数r的分布也是随机的。接着对m1和m2分别进行迭代仿射加密。迭代仿射解密之后,去噪声过程为:(m2 – d*m1) % n。所以d是解密密钥的一部分。
RIAC的显著优势是计算量小,因为只有线性变换和求模运算,不需要模幂和模逆运算。另外,相比于Paillier算法,RIAC的密文会更短,因为是取模n运算,而无需像Paillier算法一样需要取模
Figure DEST_PATH_IMAGE010
运算。
在一种可能的实施方式中,第一节点设备首先生成RIAC密钥组和第二随机数θ(第二随机数为正整数)。
步骤603,基于仿射密码加密算法、密钥组以及模数,对第二随机数进行同态加密处理,生成第一加密随机数,并对第一明文数据与第二随机数之积进行同态加密处理,生成第一密文数据。
第一节点设备基于仿射密码加密算法、密钥组以及模数,分别对第二随机数θ和第一明文数据与第二随机数的乘积θx进行同态加密处理,得到第一加密随机数[θ]和第一密文数据[θx]。
步骤604,向第二节点设备发送包含第一密文数据以及第一加密随机数的加密数据。
第一节点设备向第二节点设备发送加密数据,该加密数据包括第一密文数据以及第一加密随机数。
在一种可能的实施方式中,第二节点设备生成第三随机数p(第三随机数为正整数),基于模数对第三随机数与第二明文数据之积(py)进行取模运算,将取模运算结果py%n赋值于py,即令py=py%n。然后,第二节点设备基于取模运算结果py与第一加密随机数[θ]生成第二密文数据[pθy],第二密文数据为第二随机数θ、第三随机数p与第二明文数据y三者之积对应的密文数据。例如,对于RIAC加密算法,满足[pθy]=py[θ]%n。这里要求|pθy| < n/3且|pθx| < n/3,或者|pθy| < n/2且|pθx| < n/2。
为了保证第一明文数据与第二明文数据接收到同样的加密处理,从而实现密文和明文的同态运算,第二节点设备在接收到第一密文数据[θx]时,还需要对第一密文数据进行数据处理,计算得到第二乘积密文[pθx],第二乘积密文[pθx]为第二随机数θ、第三随机数p与第一明文数据x三者之积对应的密文数据。第二节点设备基于加密数据和第三随机数计算得到第二乘积密文,例如,对于RIAC加密算法,满足[pθx]=p[θx]%n。
第二节点设备计算得到第二乘积密文以及第二密文数据之后,计算差值密文数据[pθx]-[pθy]。在一种可能的实施方式中,节点设备对密文数据的运算为基于正数的加法和乘法等运算,因此第二节点设备可以先计算-[pθy],即对-[pθy]进行负数编码使其变为正数,负数编码是令-[pθy]=(n-[pθy])%n。后续第一节点设备在解密处理之后,若判断|pθx-pθy| > n/3(或者|pθx-pθy| > n/2),则实际解密结果应为pθx-pθy-n。
然后第二节点设备计算得到差值密文数据[pθx]-[pθy]。例如,对于RIAC加密算法,满足[pθx]-[pθy]=([pθx]+n-[pθy])%n。
第二节点设备将计算得到的差值密文数据[pθx]-[pθy]发送至第一节点设备。
步骤605,接收第二节点设备发送的差值密文数据。
步骤605的具体实施方式可以参考上述步骤203,本申请实施例在此不再赘述。
步骤606,基于密钥组对差值密文数据进行解密处理。
第一节点设备接收到差值密文数据[pθx]-[pθy]后,基于仿射密码加密算法的解密方式,对[pθx]-[pθy]进行解密处理,计算得到解密结果pθx-pθy,即pθ(x-y),由于p和θ均为随机正整数,因此pθ(x-y)的正负性与x-y的正负性一致,第一节点设备基于pθ(x-y)确定数值比较结果。
示意性的,图7示出了参与方A与参与方B采用RIAC加密算法进行多方安全计算的流程:1,参与方A和参与方B精度协商,将浮点数转换为整数,并确定模数n;2,参与方A生成RIAC密钥组和第二随机数θ,分别对θ和θx进行同态加密处理生成[θ]和[θx];3,参与方A向参与方B发送[θ]和[θx];4,参与方B生成第三随机数p,并计算得到[pθy]和[pθx],进而计算[pθx]-[pθy];5,参与方B向参与方A发送[pθx]-[pθy];6,参与方A对[pθx]-[pθy]进行解密处理得到pθ(x-y),并确定数值比较结果。
本申请实施例中,基于仿射密码加密的大小比较和相等测试协议的计算复杂度低、密文膨胀系数小,进一步的,在该协议中每次比较大小可以采用不同的RIAC加密密钥组,可以增强该协议的安全性,保证各个节点设备中的数据不泄露,提高数据安全性;两个节点设备各自只需进行一次精度协商以及一次数据收发,减少了通信次数,通信开销小、计算效率高。
第三种实现方式中采用的同态加密算法同样为仿射密码加密算法。图8示出了本申请另一个示例性实施例提供的多方安全计算方法的流程图。本实施例以该方法用于方法应用于联合计算系统中的第一节点设备,且同态加密算法为仿射密码加密算法为例进行说明,该方法包括如下步骤。
步骤801,联合第二节点设备进行精度协商,确定同态加密算法中的模数。
步骤801的具体实施方式可以参考上述步骤301,本申请实施例在此不再赘述。
步骤802,生成仿射密码加密算法的密钥组。
在另一种可能的实施方式中,虽然同样采用仿射密码加密算法进行安全计算,但第一节点设备只负责生成仿射密码加密算法的密钥组,本申请实施例中的随机数由第二节点设备负责生成,并将其中一个随机数发送至第一节点设备,以得到随机数密文,从而使第二节点设备在无法得知密钥的前提下,通过对随机数密文以及第二明文数据的数学运算,将第二明文数据转化为第二密文数据。
步骤803,基于仿射密码加密算法、密钥组以及模数,对第一明文数据进行同态加密处理生成第一密文数据,并对第四随机数进行同态加密处理生成第二加密随机数。
步骤803之前,本申请实施例提供的多方安全计算还包括如下步骤。
接收第二节点设备发送的第四随机数。
第一节点设备接收到第四随机数θ后,基于仿射密码加密算法、密钥组以及模数n,对第一明文数据进行同态加密处理生成第一密文数据[x],并对第四随机数θ进行同态加密处理生成第二加密随机数[θ]。
步骤804,向第二节点设备发送包含第一密文数据以及第二加密随机数的加密数据。
第一节点设备向第二节点设备发送加密数据,该加密数据包括第一密文数据[x]以及第二加密随机数[θ]。
在一种可能的实施方式中,第二节点设备在精度协商后生成第四随机数θ以及第五随机数p,并将第四随机数发送至第一节点设备,第四随机数与第五随机数为正整数。同时,将第四随机数与第五随机数之积的取模运算结果即pθ%n,赋值于pθ,即令pθ=pθ%n;并将第四随机数与第二明文数据之积的取模运算结果即py%n,赋值于py,即令py=py%n。
第二节点设备接收到加密数据后,基于第二加密随机数、第五随机数以及第二明文数据生成第二密文数据[pθy],基于第四随机数、第五随机数以及第一密文数据生成第三乘积密文[pθx]。例如,对于RIAC加密算法,满足[pθx]= pθ[x] % n,[pθy]=py[θ] % n,其中的py为赋值后的py,pθ为赋值后的pθ。
第二节点设备计算得到第三乘积密文以及第二密文数据后,基于第三乘积密文与第二密文数据之差生成差值密文数据,即[pθx]-[pθy]。在一种可能的实施方式中,节点设备对密文数据的运算为基于正数的加法和乘法等运算,因此第二节点设备可以先计算-[pθy],即对-[pθy]进行负数编码使其变为正数,将模数n与第三乘积密文相反数-[pθy]之和的取模运算结果即(n-[pθy])%n,赋值于-[pθy],即令-[pθy]=(n-[pθy])%n,后续第一节点设备在解密处理之后通过相应减去n得到pθx-pθy。然后第二节点设备基于第三乘积密文与更新后的第二密文数据的相反数,计算得到差值密文数据[pθx]-[pθy]。例如,对于RIAC加密算法,满足[pθx]-[pθy]=([pθx]+n-[pθy])%n。
第二节点设备将计算得到的差值密文数据[pθx]-[pθy]发送至第一节点设备。
步骤805,接收第二节点设备发送的差值密文数据。
步骤806,基于密钥组对差值密文数据进行解密处理。
步骤805至步骤806的具体实施方式可以参考上述步骤605至步骤606,本申请实施例在此不再赘述。
示意性的,图9示出了参与方A与参与方B采用RIAC加密算法进行多方安全计算的流程:1,参与方A和参与方B精度协商,将浮点数转换为整数,并确定模数n;2,参与方A生成RIAC密钥组;3,参与方B生成第四随机数θ和第五随机数p;4,参与方B向参与方A发送θ;5,参与方A分别对θ和x进行同态加密处理生成[θ]和[x];6,参与方A向参与方B发送[θ]和[x];7,参与方B计算得到[pθy]和[pθx],进而计算[pθx]-[pθy];8,参与方B向参与方A发送[pθx]-[pθy];9,参与方A对[pθx]-[pθy]进行解密处理得到pθ(x-y),并确定数值比较结果。其中,步骤2和步骤3并无严格的先后顺序。
本申请实施例中,基于仿射密码加密的大小比较和相等测试协议的计算复杂度低、密文膨胀系数小,进一步的,在该协议中每次比较大小可以采用不同的RIAC加密密钥组,可以增强该协议的安全性,保证各个节点设备中的数据不泄露,提高数据安全性;两个节点设备各自只需进行一次精度协商以及一次数据收发,减少了通信次数,通信开销小、计算效率高。
图10示出了本申请另一个示例性实施例提供的多方安全计算方法的流程图。本实施例以该方法用于方法应用于联合计算系统中的第一节点设备为例进行说明,该方法包括如下步骤。
步骤1001,联合第二节点设备进行精度协商,确定模数以及取整数。
当第一明文数据和第二明文数据为浮点数时,第一节点设备和第二节点设备首先分别将第一明文数据和第二明文数据转化为整数。第一节点设备和第二节点设备需要协商好精度要求,然后通过对浮点数乘以一个较大的取整数Q并对乘积结果取整,将浮点数转换为整数,例如,选取Q =
Figure DEST_PATH_IMAGE011
步骤1002,响应于第一明文数据为正数,利用取整数对第一明文数据进行取整运算,并基于取整运算结果生成第一密文数据。
当第一明文数据和第二明文数据均为正数时,第一节点设备与第二节点设备直接基于取整运算后的第一明文数据与第二明文数据进行多方安全计算,比较数值大小。
步骤1003,响应于第一明文数据为负数,利用取整数对第一明文数据进行取整运算。
步骤1004,利用模数对取整运算结果进行负数编码,并基于编码结果生成第一密文数据。
其中,第一明文数据的绝对值小于模数的二分之一,且第二明文数据的绝对值小于模数的二分之一,第二节点设备用于基于取整数对第二明文数据进行取整运算,以及对小于0的取整运算结果进行负数编码。
当第一明文数据为负数时,第一节点设备还需要基于模数n对第一明文数据进行负数编码,以使第一明文数据转化为正数,从而基于正数进行加密运算和解密运算。
在一种可能的实施方式中,若第一明文数据x小于0,则第一节点设备对第一明文数据与模数之和进行取模运算,并将取模运算结果赋值于第一明文数据,即另x=(x+n)%n。
为了保证能从结果中识别出负整数,一般要求 |x| < n/2 和 |y| < n/2,且所有的运算都是模n运算。这样一来,如果一个运算结果c满足c >= n/2,则可以识别出c的真实值是负整数,可以通过c = c–n获得c的真实值。
同样地,若第二明文数据为负数,则第二节点设备同样执行上述步骤对第二明文数据进行负数编码处理。
步骤1005,基于同态加密算法以及模数对第一明文数据进行同态加密处理,生成第一密文数据。
步骤1006,向第二节点设备发送包含第一密文数据的加密数据,第二节点设备用于基于加密数据以及第二明文数据,得到第二密文数据,并基于第一密文数据以及第二密文数据计算差值密文数据。
步骤1007,接收第二节点设备发送的差值密文数据。
步骤1005的具体实施方式可以参考上述步骤302至步骤304,本申请实施例在此不再赘述。
步骤1008,对差值密文数据进行解密处理,并基于解密结果的正负性确定数值比较结果。
在一种可能的实施方式中,步骤1008包括如下步骤。
步骤1008a,响应于解密结果为正数,确定数值比较结果为第一明文数据大于第二明文数据。
步骤1008b,响应于解密结果为负数,确定数值比较结果为第一明文数据小于第二明文数据。
步骤1008c,响应于解密结果为0,确定数值比较结果为第一明文数据等于第二明文数据相等。
第一节点设备获取到解密结果后,基于解密结果与模数n的大小关系,判断该解密结果是否需要额外减去模数n。例如,若前期精度协商时确定p|x| < n/3 和p|y| < n/3,而解密结果p(x-y)大于n/3,则确定x或y经过负数编码,需要再减去pn,进而基于p(x-y-n)的正负性进行数值比较。
步骤1009,将数值比较结果发送至第二节点设备。
在一种可能的实施方式中,若第二节点设备需要获取数值比较结果,则第一节点设备向第二节点设备发送数值比较结果。
本申请实施例中,通过精度协商使模数n的取值大于两倍的第一明文数据以及两倍的第二明文数据,既能够防止后续加密运算时数值溢出,也能够在明文数据为负数时,便于节点设备直接利用模数进行负数编码,且能够基于编码结果与模数之间的大小关系识别出原数值是否为负数,使得多方安全计算过程的复杂度降低。
上述各个实施例以两个参与方进行数值比较为例,说明多方安全计算方法的流程。当存在三个及以上的参与方需要进行多方安全计算时,联合计算系统中的节点设备两两一组进行安全计算,例如,当参与方A拥有数据z,参与方B拥有数据y,参与方C拥有数据z且三者需要进行数值比较及相等测试时,参与方A和参与方B执行上述多方安全计算方法的步骤,得到x与y的大小关系,然后参与方B和参与方C执行上述多方安全计算方法的步骤,得到z与y的大小关系,若无法比较出x和z的大小关系,则参与方A和参与方C执行上述多方安全计算方法的步骤,得到x与z的大小关系。
图11示出了本申请一个示例性实施例提供的多方安全计算方法的流程图。本实施例以该方法用于方法应用于联合计算系统中的第二节点设备为例进行说明,该方法包括如下步骤。
步骤1101,接收第一节点设备发送的加密数据,加密数据包含第一密文数据,第一节点设备用于对第一明文数据进行同态加密处理生成第一密文数据。
在一种可能的实施方式中,第一节点设备存储有第一明文数据,第二节点设备存储有第二明文数据,当第一节点设备和/或第二节点设备需要对第一明文数据和第二明文数据进行大小比较时,为了实现双方均不向对方透露己方数据,第一节点设备首先对第一明文数据进行同态加密处理,生成第一密文数据,并将包含第一密文数据的加密数据发送至第二节点设备。该加密数据中还包含有公钥或随机数密文等数据,以便第二节点设备对第二明文数据进行相应的加密处理。
步骤1102,基于加密数据以及第二明文数据,生成第二密文数据。
第二节点设备基于接收到的加密数据对第二明文数据进行加密处理,得到第二密文数据。在一种可能的实施方式中,第二节点设备生成随机正整数,第二密文数据为第二明文数据与随机正整数之积对应的密文数据,以防止第一节点设备能够基于差值密文数据和第一密文数据求得第二明文数据。
步骤1103,基于第一密文数据以及第二密文数据计算得到差值密文数据。
第二节点设备按照预设方式对第二明文数据和随机数进行运算后,还需要对第一密文数据进行相应运算,以得到第一明文数据与随机正整数之积对应的密文数据,即密文乘积。进而基于密文乘积与第二密文数据计算得到差值密文数据。
步骤1104,向第一节点设备发送差值密文数据,第一节点设备用于对差值密文数据进行解密处理,并基于解密结果的正负性确定数值比较结果,数值比较结果包括第一明文数据大于第二明文数据、第一明文数据小于第二明文数据或第一明文数据等于第二明文数据。
第二节点设备计算得到差值密文数据后,将差值密文数据发送至第一节点设备,由第一节点设备负责解密,并确定出数值比较结果。第二节点设备接收第一节点设备发送的数值比较结果,以确定第一明文数据与第二明文数据的大小关系。
综上所述,本申请实施例中,双方节点设备向对方发送的数据均为密文数据,通过同态加密算法,对差值密文数据进行解密得到第一明文数据与第二明文数据之差的正负性,在两个参与方均不向对方透漏己方数据,且不借助可信第三方的前提下,同时实现大小比较和相等测试。相比于相关技术中的计算方法,两个节点设备各自只需进行一次数据收发,减少了通信次数,通信开销小、计算效率高,且大小比较和相等测试可以同时进行。
图12是本申请一个示例性实施例提供的多方安全计算装置的结构框图,该装置包括如下结构:
第一加密模块1201,用于对第一明文数据进行同态加密处理,生成第一密文数据;
第一发送模块1202,用于向第二节点设备发送包含所述第一密文数据的加密数据,所述第二节点设备用于基于所述加密数据以及第二明文数据,得到第二密文数据,并基于所述第一密文数据以及所述第二密文数据计算差值密文数据;
第一接收模块1203,用于接收所述第二节点设备发送的所述差值密文数据;
解密模块1204,用于对所述差值密文数据进行解密处理,并基于解密结果的正负性确定数值比较结果,所述数值比较结果包括所述第一明文数据大于所述第二明文数据、所述第一明文数据小于所述第二明文数据或所述第一明文数据等于所述第二明文数据。
可选的,所述装置还包括如下结构:
协商模块,用于联合所述第二节点设备进行精度协商,确定同态加密算法中的模数;
所述第一加密模块1201,包括如下结构:
加密单元,用于基于所述同态加密算法以及所述模数对所述第一明文数据进行同态加密处理,生成所述第一密文数据。
可选的,所述同态加密算法为加法同态加密算法;
所述加密单元,还用于执行如下步骤:
生成所述加法同态加密算法对应的密钥对,所述密钥对包括公钥和私钥;
基于所述加法同态加密算法、所述模数以及所述公钥,对所述第一明文数据进行同态加密处理,生成所述第一密文数据;
所述第一发送模块1202,包括如下结构:
第一发送单元,用于向所述第二节点设备发送包含所述第一密文数据以及所述公钥的所述加密数据;
所述解密模块1204,包括如下结构:
第一解密单元,用于基于所述私钥对所述差值密文数据进行解密处理。
可选的,所述第二节点设备用于生成第一随机数,基于所述模数对所述第一随机数与所述第二明文数据之积进行取模运算,基于所述公钥对取模运算结果进行同态加密处理生成所述第二密文数据,以及基于所述第一密文数据和所述第一随机数计算第一乘积密文并生成所述差值密文数据,所述差值密文数据为所述第一乘积密文与所述第二密文数据之差,所述第一乘积密文为所述第一随机数与所述第一明文数据之积对应的密文,所述第一随机数为正整数。
可选的,所述同态加密算法为仿射密码加密算法;
所述加密单元,还用于执行如下步骤:
生成第二随机数以及所述仿射密码加密算法的密钥组,所述第二随机数为正整数;
基于所述仿射密码加密算法、所述密钥组以及所述模数,对所述第二随机数进行同态加密处理,生成第一加密随机数,并对所述第一明文数据与所述第二随机数之积进行同态加密处理,生成所述第一密文数据;
所述第一发送模块1202,包括如下结构:
第二发送单元,用于向所述第二节点设备发送包含所述第一密文数据以及所述第一加密随机数的所述加密数据;
所述解密模块1204,包括如下结构:
第二解密单元,用于基于所述密钥组对所述差值密文数据进行解密处理。
可选的,所述第二节点设备用于生成第三随机数,基于所述模数对所述第三随机数与所述第二明文数据之积进行取模运算,基于取模运算结果与所述第一加密随机数生成所述第二密文数据,基于所述第一密文数据与所述第三随机数生成第二乘积密文,并基于所述第二乘积密文与所述第二密文数据之差得到所述差值密文数据,所述第二密文数据为所述第二随机数、所述第三随机数与所述第二明文数据三者之积对应的密文数据,所述第二乘积密文为所述第二随机数、所述第三随机数与所述第一明文数据三者之积对应的密文数据,所述第三随机数为正整数。
可选的,所述同态加密算法为仿射密码加密算法,所述第二节点设备用于在进行精度协商后生成第四随机数和第五随机数,并将所述第四随机数发送至所述第一节点设备,所述第四随机数与所述第五随机数为正整数;
所述加密单元,还用于执行如下步骤:
生成所述仿射密码加密算法的密钥组;
基于所述仿射密码加密算法、所述密钥组以及所述模数,对所述第一明文数据进行同态加密处理生成所述第一密文数据,并对所述第四随机数进行同态加密处理生成第二加密随机数;
所述第一发送模块1202,包括如下结构:
第三发送单元,用于向所述第二节点设备发送包含所述第一密文数据以及所述第二加密随机数的所述加密数据;
所述解密模块1204,包括如下结构:
第三解密单元,用于基于所述密钥组对所述差值密文数据进行解密处理。
可选的,所述第二节点设备用于基于所述第二加密随机数、所述第五随机数以及所述第二明文数据生成所述第二密文数据,基于所述第四随机数、所述第五随机数以及所述第一密文数据生成第三乘积密文,并基于所述第三乘积密文与所述第二密文数据之差生成所述差值密文数据,所述第二密文数据为所述第四随机数、所述第五随机数以及所述第二明文数据三者之积对应的密文数据,所述第三乘积密文为所述第四随机数、所述第五随机数以及所述第一明文数据三者之积对应的密文数据。
可选的,所述协商模块,包括如下结构:
协商单元,用于联合所述第二节点设备进行精度协商,确定所述模数以及取整数;
所述装置还包括如下结构:
第一处理模块,用于响应于所述第一明文数据为正数,利用所述取整数对所述第一明文数据进行取整运算,并基于取整运算结果生成所述第一密文数据;
第二处理模块,用于响应于所述第一明文数据为负数,利用所述取整数对所述第一明文数据进行取整运算;利用所述模数对取整运算结果进行负数编码,并基于编码结果生成所述第一密文数据;
其中,所述第一明文数据的绝对值小于所述模数的二分之一,且所述第二明文数据的绝对值小于所述模数的二分之一,所述第二节点设备用于基于所述取整数对所述第二明文数据进行取整运算,以及对小于0的取整运算结果进行负数编码。
可选的,所述解密模块,还包括如下结构:
第一确定单元,用于响应于所述解密结果为正数,确定所述数值比较结果为所述第一明文数据大于所述第二明文数据;
第二确定单元,用于响应于所述解密结果为负数,确定所述数值比较结果为所述第一明文数据小于所述第二明文数据;
第三确定单元,用于响应于所述解密结果为0,确定所述数值比较结果为所述第一明文数据等于所述第二明文数据相等。
可选的,所述装置还包括如下结构:
第三发送模块,用于将所述数值比较结果发送至所述第二节点设备。
图13是本申请一个示例性实施例提供的多方安全计算装置的结构框图,该装置包括如下结构:
第二接收模块1301,用于接收第一节点设备发送的加密数据,所述加密数据包含第一密文数据,所述第一节点设备用于对第一明文数据进行同态加密处理生成所述第一密文数据;
第二加密模块1302,用于基于所述加密数据以及第二明文数据,生成第二密文数据;
计算模块1303,用于基于所述第一密文数据以及所述第二密文数据计算得到差值密文数据;
第二发送模块1304,用于向所述第一节点发送所述差值密文数据,所述第一节点设备用于对所述差值密文数据进行解密处理,并基于解密结果的正负性确定数值比较结果,所述数值比较结果包括所述第一明文数据大于所述第二明文数据、所述第一明文数据小于所述第二明文数据或所述第一明文数据等于所述第二明文数据。
综上所述,本申请实施例中,双方节点设备向对方发送的数据均为密文数据,通过同态加密算法,对差值密文数据进行解密得到第一明文数据与第二明文数据之差的正负性,在两个参与方均不向对方透漏己方数据,且不借助可信第三方的前提下,同时实现大小比较和相等测试。相比于相关技术中的计算方法,两个节点设备各自只需进行一次数据收发,减少了通信次数,通信开销小、计算效率高,且大小比较和相等测试可以同时进行。
请参考图14,其示出了本申请一个实施例提供的计算机设备的结构示意图。
所述计算机设备1400包括中央处理单元(Central Processing Unit,CPU)1401、包括随机存取存储器(Random Access Memory,RAM)1402和只读存储器(Read OnlyMemory,ROM)1403的系统存储器1404,以及连接系统存储器1404和中央处理单元1401的系统总线1405。所述计算机设备1400还包括帮助计算机内的各个器件之间传输信息的基本输入/输出(Input/Output,I/O)控制器1406,和用于存储操作系统1413、应用程序1414和其他程序模块1415的大容量存储设备1407。
所述基本输入/输出系统1406包括有用于显示信息的显示器1408和用于用户输入信息的诸如鼠标、键盘之类的输入设备1409。其中所述显示器1408和输入设备1409都通过连接到系统总线1405的输入输出控制器1410连接到中央处理单元1401。所述基本输入/输出系统1406还可以包括输入输出控制器1410以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入/输出控制器1410还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备1407通过连接到系统总线1405的大容量存储控制器(未示出)连接到中央处理单元1401。所述大容量存储设备1407及其相关联的计算机可读介质为计算机设备1400提供非易失性存储。也就是说,所述大容量存储设备1407可以包括诸如硬盘或者只读光盘(Compact Disc Read-Only Memory,CD-ROM)驱动器之类的计算机可读介质(未示出)。
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、可擦除可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存或其他固态存储其技术,CD-ROM、数字视频光盘(Digital Video Disc,DVD)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器1404和大容量存储设备1407可以统称为存储器。
根据本申请的各种实施例,所述计算机设备1400还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即计算机设备1400可以通过连接在所述系统总线1405上的网络接口单元1411连接到网络1412,或者说,也可以使用网络接口单元1411来连接到其他类型的网络或远程计算机系统(未示出)。
所述存储器还包括至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集存储于存储器中,且经配置以由一个或者一个以上处理器执行,以实现上述多方安全计算方法。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现如上各个实施例所述的多方安全计算方法。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方面的各种可选实现方式中提供的多方安全计算方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读存储介质中或者作为计算机可读存储介质上的一个或多个指令或代码进行传输。计算机可读存储介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (16)

1.一种多方安全计算方法,其特征在于,所述方法应用于联合计算系统中的第一节点设备,所述方法包括:
对第一明文数据进行同态加密处理,生成第一密文数据;
向第二节点设备发送包含所述第一密文数据的加密数据,所述第二节点设备用于基于所述加密数据以及第二明文数据,得到第二密文数据,并基于至少一个随机数、所述第一密文数据以及所述第二密文数据进行负数编码并计算差值密文数据,所述差值密文数据为所述第一明文数据对应的乘积密文与所述第二密文数据之差,其中所述乘积密文是所述第一明文数据与所述随机数之积对应的密文数据,所述第二密文数据是所述第二明文数据与所述随机数之积对应的密文数据,所述随机数由所述第二节点设备生成,或由所述第一节点设备和所述第二节点设备共同生成,所述随机数为正整数;
接收所述第二节点设备发送的所述差值密文数据;
对所述差值密文数据进行解密处理,得到解密结果,所述解密结果为所述第一明文数据与所述第二明文数据之差与所述随机数的乘积;
基于所述解密结果的正负性确定数值比较结果,所述数值比较结果包括所述第一明文数据大于所述第二明文数据、所述第一明文数据小于所述第二明文数据或所述第一明文数据等于所述第二明文数据。
2.根据权利要求1所述的方法,其特征在于,所述对第一明文数据进行同态加密处理,生成第一密文数据之前,所述方法包括:
联合所述第二节点设备进行计算精度协商,并确定同态加密算法中的模数;
所述对第一明文数据进行同态加密处理,生成第一密文数据,包括:
基于所述同态加密算法以及所述模数对所述第一明文数据进行同态加密处理,生成所述第一密文数据。
3.根据权利要求2所述的方法,其特征在于,所述同态加密算法为加法同态加密算法;
所述基于所述同态加密算法以及所述模数对所述第一明文数据进行同态加密处理,生成所述第一密文数据,包括:
生成所述加法同态加密算法对应的密钥对,所述密钥对包括公钥和私钥;
基于所述加法同态加密算法、所述模数以及所述公钥,对所述第一明文数据进行同态加密处理,生成所述第一密文数据;
所述向第二节点设备发送包含所述第一密文数据的加密数据,包括:
向所述第二节点设备发送包含所述第一密文数据以及所述公钥的所述加密数据;
所述对所述差值密文数据进行解密处理,得到解密结果,包括:
基于所述私钥对所述差值密文数据进行解密处理得到所述解密结果。
4.根据权利要求3所述的方法,其特征在于,所述第二节点设备用于生成第一随机数,基于所述模数对所述第一随机数与所述第二明文数据之积进行取模运算,基于所述公钥对取模运算结果进行同态加密处理生成所述第二密文数据,以及基于所述第一密文数据和所述第一随机数计算第一乘积密文并生成所述差值密文数据,所述差值密文数据为所述第一乘积密文与所述第二密文数据之差,所述第一乘积密文为所述第一随机数与所述第一明文数据之积对应的密文,所述第一随机数为正整数。
5.根据权利要求2所述的方法,其特征在于,所述同态加密算法为仿射密码加密算法;
所述基于所述同态加密算法以及所述模数对所述第一明文数据进行同态加密处理,生成所述第一密文数据,包括:
生成第二随机数以及所述仿射密码加密算法的密钥组,所述第二随机数为正整数;
基于所述仿射密码加密算法、所述密钥组以及所述模数,对所述第二随机数进行同态加密处理,生成第一加密随机数,并对所述第一明文数据与所述第二随机数之积进行同态加密处理,生成所述第一密文数据;
所述向第二节点设备发送包含所述第一密文数据的加密数据,包括:
向所述第二节点设备发送包含所述第一密文数据以及所述第一加密随机数的所述加密数据;
所述对所述差值密文数据进行解密处理,得到解密结果,包括:
基于所述密钥组对所述差值密文数据进行解密处理得到所述解密结果。
6.根据权利要求5所述的方法,其特征在于,所述第二节点设备用于生成第三随机数,基于所述模数对所述第三随机数与所述第二明文数据之积进行取模运算,基于取模运算结果与所述第一加密随机数生成所述第二密文数据,基于所述第一密文数据与所述第三随机数生成第二乘积密文,并基于所述第二乘积密文与所述第二密文数据之差得到所述差值密文数据,所述第二密文数据为所述第二随机数、所述第三随机数与所述第二明文数据三者之积对应的密文数据,所述第二乘积密文为所述第二随机数、所述第三随机数与所述第一明文数据三者之积对应的密文数据,所述第三随机数为正整数。
7.根据权利要求2所述的方法,其特征在于,所述同态加密算法为仿射密码加密算法,所述第二节点设备用于在进行精度协商后生成第四随机数和第五随机数,并将所述第四随机数发送至所述第一节点设备,所述第四随机数与所述第五随机数为正整数;
所述基于所述同态加密算法以及所述模数对所述第一明文数据进行同态加密处理,生成所述第一密文数据,包括:
生成所述仿射密码加密算法的密钥组;
基于所述仿射密码加密算法、所述密钥组以及所述模数,对所述第一明文数据进行同态加密处理生成所述第一密文数据,并对所述第四随机数进行同态加密处理生成第二加密随机数;
所述向第二节点设备发送包含所述第一密文数据的加密数据,包括:
向所述第二节点设备发送包含所述第一密文数据以及所述第二加密随机数的所述加密数据;
所述对所述差值密文数据进行解密处理,得到解密结果,包括:
基于所述密钥组对所述差值密文数据进行解密处理得到所述解密结果。
8.根据权利要求7所述的方法,其特征在于,所述第二节点设备用于基于所述第二加密随机数、所述第五随机数以及所述第二明文数据生成所述第二密文数据,基于所述第四随机数、所述第五随机数以及所述第一密文数据生成第三乘积密文,并基于所述第三乘积密文与所述第二密文数据之差生成所述差值密文数据,所述第二密文数据为所述第四随机数、所述第五随机数以及所述第二明文数据三者之积对应的密文数据,所述第三乘积密文为所述第四随机数、所述第五随机数以及所述第一明文数据三者之积对应的密文数据。
9.根据权利要求2至8任一所述的方法,其特征在于,所述联合所述第二节点设备进行计算精度协商,并确定同态加密算法中的模数,包括:
联合所述第二节点设备进行计算精度协商,确定所述模数以及取整数;
所述联合所述第二节点设备进行计算精度协商,并确定同态加密算法中的模数之后,所述方法还包括:
响应于所述第一明文数据为正数,利用所述取整数对所述第一明文数据进行取整运算,并基于取整运算结果生成所述第一密文数据;
响应于所述第一明文数据为负数,利用所述取整数对所述第一明文数据进行取整运算;利用所述模数对取整运算结果进行负数编码,并基于编码结果生成所述第一密文数据;
其中,所述第一明文数据的绝对值小于所述模数的二分之一,且所述第二明文数据的绝对值小于所述模数的二分之一,所述第二节点设备用于基于所述取整数对所述第二明文数据进行取整运算,以及对小于0的取整运算结果进行负数编码。
10.根据权利要求1至8任一所述的方法,其特征在于,所述基于所述解密结果的正负性确定数值比较结果,包括:
响应于所述解密结果为正数,确定所述数值比较结果为所述第一明文数据大于所述第二明文数据;
响应于所述解密结果为负数,确定所述数值比较结果为所述第一明文数据小于所述第二明文数据;
响应于所述解密结果为0,确定所述数值比较结果为所述第一明文数据等于所述第二明文数据相等。
11.根据权利要求1至8任一所述的方法,其特征在于,所述基于解密结果的正负性确定数值比较结果之后,所述方法还包括:
将所述数值比较结果发送至所述第二节点设备。
12.一种多方安全计算方法,其特征在于,所述方法应用于联合计算系统中的第二节点设备,所述方法包括:
接收第一节点设备发送的加密数据,所述加密数据包含第一密文数据,所述第一节点设备用于对第一明文数据进行同态加密处理生成所述第一密文数据;
基于所述加密数据以及第二明文数据,生成第二密文数据;
基于至少一个随机数、所述第一密文数据以及所述第二密文数据进行负数编码并计算得到差值密文数据,所述差值密文数据为所述第一明文数据对应的乘积密文与所述第二密文数据之差,其中所述乘积密文为所述第一明文数据与所述随机数之积对应的密文数据,所述第二密文数据为所述第二明文数据与所述随机数之积对应的密文数据,所述随机数由所述第二节点设备生成,或由所述第一节点设备和所述第二节点设备共同生成,所述随机数为正整数;
向所述第一节点设备发送所述差值密文数据,所述第一节点设备用于对所述差值密文数据进行解密处理得到解密结果,所述解密结果为所述第一明文数据与所述第二明文数据之差与所述随机数的乘积,并基于所述解密结果的正负性确定数值比较结果,所述数值比较结果包括所述第一明文数据大于所述第二明文数据、所述第一明文数据小于所述第二明文数据或所述第一明文数据等于所述第二明文数据。
13.一种多方安全计算装置,其特征在于,所述装置包括:
第一加密模块,用于对第一明文数据进行同态加密处理,生成第一密文数据;
第一发送模块,用于向第二节点设备发送包含所述第一密文数据的加密数据,所述第二节点设备用于基于所述加密数据以及第二明文数据,得到第二密文数据,并基于至少一个随机数、所述第一密文数据以及所述第二密文数据进行负数编码并计算差值密文数据,所述差值密文数据为所述第一明文数据对应的乘积密文与所述第二密文数据之差,其中所述乘积密文为所述第一明文数据与所述随机数之积对应的密文数据,所述第二密文数据为所述第二明文数据与所述随机数之积对应的密文数据,所述随机数由所述第二节点设备生成,或由第一节点设备和所述第二节点设备共同生成,所述随机数为正整数;
第一接收模块,用于接收所述第二节点设备发送的所述差值密文数据;
解密模块,用于对所述差值密文数据进行解密处理,得到解密结果,所述解密结果为所述第一明文数据与所述第二明文数据之差与所述随机数的乘积;基于所述解密结果的正负性确定数值比较结果,所述数值比较结果包括所述第一明文数据大于所述第二明文数据、所述第一明文数据小于所述第二明文数据或所述第一明文数据等于所述第二明文数据。
14.一种多方安全计算装置,其特征在于,所述装置包括:
第二接收模块,用于接收第一节点设备发送的加密数据,所述加密数据包含第一密文数据,所述第一节点设备用于对第一明文数据进行同态加密处理生成所述第一密文数据;
第二加密模块,用于基于所述加密数据以及第二明文数据,生成第二密文数据;
计算模块,用于基于至少一个随机数、所述第一密文数据以及所述第二密文数据进行负数编码并计算得到差值密文数据,所述差值密文数据为所述第一明文数据对应的乘积密文与所述第二密文数据之差,其中所述乘积密文为所述第一明文数据与所述随机数之积对应的密文数据,所述第二密文数据为所述第二明文数据与所述随机数之积对应的密文数据,所述随机数由所述第二节点设备生成,或由所述第一节点设备和第二节点设备共同生成,所述随机数为正整数;
第二发送模块,用于向所述第一节点设备发送所述差值密文数据,所述第一节点设备用于对所述差值密文数据进行解密处理得到解密结果,所述解密结果为所述第一明文数据与所述第二明文数据之差与所述随机数的乘积,并基于所述解密结果的正负性确定数值比较结果,所述数值比较结果包括所述第一明文数据大于所述第二明文数据、所述第一明文数据小于所述第二明文数据或所述第一明文数据等于所述第二明文数据。
15.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器;所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至11任一所述的多方安全计算方法,或权利要求12所述的多方安全计算方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条计算机程序,所述计算机程序由处理器加载并执行以实现如权利要求1至11任一所述的多方安全计算方法,或权利要求12所述的多方安全计算方法。
CN202110503941.7A 2021-05-10 2021-05-10 多方安全计算方法、装置、设备及存储介质 Active CN112906044B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202110503941.7A CN112906044B (zh) 2021-05-10 2021-05-10 多方安全计算方法、装置、设备及存储介质
PCT/CN2022/087068 WO2022237450A1 (zh) 2021-05-10 2022-04-15 多方安全计算方法、装置、设备及存储介质
US17/992,685 US20230087864A1 (en) 2021-05-10 2022-11-22 Secure multi-party computation method and apparatus, device, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110503941.7A CN112906044B (zh) 2021-05-10 2021-05-10 多方安全计算方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN112906044A CN112906044A (zh) 2021-06-04
CN112906044B true CN112906044B (zh) 2021-07-30

Family

ID=76109057

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110503941.7A Active CN112906044B (zh) 2021-05-10 2021-05-10 多方安全计算方法、装置、设备及存储介质

Country Status (3)

Country Link
US (1) US20230087864A1 (zh)
CN (1) CN112906044B (zh)
WO (1) WO2022237450A1 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112906044B (zh) * 2021-05-10 2021-07-30 腾讯科技(深圳)有限公司 多方安全计算方法、装置、设备及存储介质
CN113407991A (zh) * 2021-06-10 2021-09-17 交通银行股份有限公司 一种基于可信第三方的隐私数据两方安全比较方法
CN113343283B (zh) * 2021-07-30 2021-10-15 深圳前海微众银行股份有限公司 一种数据处理方法
CN114006689B (zh) * 2021-12-28 2022-04-12 北京瑞莱智慧科技有限公司 基于联邦学习的数据处理方法、装置及介质
CN114826546A (zh) * 2022-04-02 2022-07-29 支付宝(杭州)信息技术有限公司 一种交易数据处理方法及装置
CN114448630B (zh) * 2022-04-07 2022-06-14 华控清交信息科技(北京)有限公司 一种多方安全计算方法、系统和用于多方安全计算的装置
CN115017458B (zh) * 2022-04-29 2023-06-09 北京龙腾佳讯科技股份公司 安全多方计算数据中位数的方法及系统
CN115037435B (zh) * 2022-04-29 2023-04-25 北京龙腾佳讯科技股份公司 安全多方计算数据序列的方法及系统
CN115225264A (zh) * 2022-06-17 2022-10-21 上海富数科技有限公司广州分公司 一种安全多方计算方法、装置、电子设备及存储介质
CN115495768A (zh) * 2022-11-15 2022-12-20 金网络(北京)电子商务有限公司 基于区块链及多方安全计算的涉密信息处理方法及系统
CN116248266B (zh) * 2022-12-16 2023-11-14 北京海泰方圆科技股份有限公司 基于秘密分享的安全多方计算方法及系统
CN116055049B (zh) * 2023-04-03 2023-07-04 富算科技(上海)有限公司 多方安全计算方法、装置、系统、电子设备和存储介质
CN116208316B (zh) * 2023-04-27 2023-07-18 蓝象智联(杭州)科技有限公司 节约存储空间的半同态加密方法、装置及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110214433A (zh) * 2017-12-15 2019-09-06 首尔大学校产学协力团 进行同态加密的终端装置、处理密文的服务器装置及其方法
CN111404943A (zh) * 2020-03-18 2020-07-10 腾讯科技(深圳)有限公司 数据的处理方法、装置、电子设备及计算机可读存储介质
CN111510281A (zh) * 2020-06-29 2020-08-07 腾讯科技(深圳)有限公司 一种同态加密方法及装置
CN111639345A (zh) * 2019-03-01 2020-09-08 王伟 基于同态加密的安全的多方云计算的方法和系统
CN112149171A (zh) * 2020-10-27 2020-12-29 腾讯科技(深圳)有限公司 联邦神经网络模型的训练方法、装置、设备及存储介质
CN112182660A (zh) * 2020-10-28 2021-01-05 深圳前海微众银行股份有限公司 一种数据排序方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112906044B (zh) * 2021-05-10 2021-07-30 腾讯科技(深圳)有限公司 多方安全计算方法、装置、设备及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110214433A (zh) * 2017-12-15 2019-09-06 首尔大学校产学协力团 进行同态加密的终端装置、处理密文的服务器装置及其方法
CN111639345A (zh) * 2019-03-01 2020-09-08 王伟 基于同态加密的安全的多方云计算的方法和系统
CN111404943A (zh) * 2020-03-18 2020-07-10 腾讯科技(深圳)有限公司 数据的处理方法、装置、电子设备及计算机可读存储介质
CN111510281A (zh) * 2020-06-29 2020-08-07 腾讯科技(深圳)有限公司 一种同态加密方法及装置
CN112149171A (zh) * 2020-10-27 2020-12-29 腾讯科技(深圳)有限公司 联邦神经网络模型的训练方法、装置、设备及存储介质
CN112182660A (zh) * 2020-10-28 2021-01-05 深圳前海微众银行股份有限公司 一种数据排序方法及装置

Also Published As

Publication number Publication date
US20230087864A1 (en) 2023-03-23
WO2022237450A1 (zh) 2022-11-17
CN112906044A (zh) 2021-06-04

Similar Documents

Publication Publication Date Title
CN112906044B (zh) 多方安全计算方法、装置、设备及存储介质
EP3506550B1 (en) Providing security against user collusion in data analytics using random group selection
US9158925B2 (en) Server-aided private set intersection (PSI) with data transfer
CN110011781B (zh) 用于交易金额加密且支持零知识证明的同态加密方法和介质
Abadi et al. O-PSI: delegated private set intersection on outsourced datasets
CN107196926B (zh) 一种云外包隐私集合比较方法与装置
CN111510281B (zh) 一种同态加密方法及装置
JP2022547876A (ja) メッセージの署名のためのシステムおよび方法
Jarrous et al. Secure hamming distance based computation and its applications
KR20200125980A (ko) 디지털 자산의 제어를 전송하기 위한 컴퓨터 구현된 방법 및 시스템
CN111555880B (zh) 数据碰撞方法、装置、存储介质及电子设备
Peng Danger of using fully homomorphic encryption: A look at Microsoft SEAL
Miyaji et al. A scalable multiparty private set intersection
CN109474616B (zh) 多平台数据共享方法和装置及计算机可读存储介质
WO2023240934A1 (zh) 针对隐私向量的安全处理方法和装置
EP3854052A1 (en) Computer implemented system and method for sharing a common secret
CN114726512B (zh) 数据处理方法和装置
JP2023552263A (ja) 秘密分散の再分配
WO2022116175A1 (zh) 数字签名的生成方法、装置和服务器
CN116743376A (zh) 基于高效密文混淆技术的多方秘密分享数据隐私比较方法
CN114726580B (zh) 数据处理方法和装置
CN114944934B (zh) 一种联邦学习方法和系统、第一隐私计算平台和第二隐私计算平台
CN115412246A (zh) 不经意传输方法、装置、设备和存储介质
CN114629620A (zh) 同态加密计算方法及系统、同态请求、计算和密钥系统
JP2023553783A (ja) 複数のサブネットを有する分散ネットワーク

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40047260

Country of ref document: HK