CN112740615A - 多方计算的密钥管理 - Google Patents

多方计算的密钥管理 Download PDF

Info

Publication number
CN112740615A
CN112740615A CN201880097930.XA CN201880097930A CN112740615A CN 112740615 A CN112740615 A CN 112740615A CN 201880097930 A CN201880097930 A CN 201880097930A CN 112740615 A CN112740615 A CN 112740615A
Authority
CN
China
Prior art keywords
computer node
message
computer
obfuscated
key
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
CN201880097930.XA
Other languages
English (en)
Other versions
CN112740615B (zh
Inventor
O·格里博
S·纳加桑达拉姆
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.)
Visa International Service Association
Original Assignee
Visa International Service Association
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 Visa International Service Association filed Critical Visa International Service Association
Publication of CN112740615A publication Critical patent/CN112740615A/zh
Application granted granted Critical
Publication of CN112740615B publication Critical patent/CN112740615B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • 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/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • 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
    • 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
    • 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/50Oblivious transfer

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

公开用于管理内部部署环境和云计算环境中的密码密钥以及执行多方密码术的方法和系统。可由密钥管理计算机从硬件安全模块检取密码密钥。所述密钥管理计算机可从所述密码密钥生成密钥份额,并将所述密钥份额安全地分配给计算机节点或密钥份额数据库。所述计算机节点可使用所述密钥份额,以便执行安全多方密码术。

Description

多方计算的密钥管理
背景技术
密码术用于维护信息安全,信息安全继而用于通过互联网等网络进行的许多通信。在大多数密码系统中,密码密钥或密码密钥对用于加密和解密消息。如果密码密钥没有被盗,则即使存在窃听者,各方也可安全地彼此通信。在计算机系统中,密码术在密码认证、私人消息接发和电子商务等方面起着重要作用。
密码密钥可存储在硬件安全模块中,以防止密码密钥被盗。这些硬件安全模块可以是设计成保护密码密钥的物理计算装置,包括安全密码处理芯片。
然而,为了执行密码操作,通常需要从硬件安全模块检取密码密钥。通常,每当密码密钥被检取时,密码密钥会被导入到不如硬件安全模块安全的计算环境中,从而增大密码密钥被盗或泄漏给窃听者的风险。
具体地说,最近的软件开发趋势引起对第三方云计算系统的广泛采用。组织不在其自身集中式网络上托管或服务,而是越来越多地将其服务托管在第三方云上。这会产生安全问题,对于密码操作或服务来说尤为如此。
通常,为了在云平台上执行传统的密码操作,组织必须将其密码密钥交给不受所述组织控制的第三方(即云提供商)。密码密钥驻存在云基础设施中的存储器中,而所述组织无法保证密码密钥不能被窃听者或另一恶意第三方检取。
或者,密码密钥可保持在硬件安全模块中,并且可在每一次进行密码操作时由基于云的密码应用程序访问。以此方式,密码密钥不会被传送到云中。然而,每一次从硬件安全模块检取密码密钥都会使密码密钥暴露(无论怎么短暂)。另外,时延和通信开销可极大地增加执行密码操作所需的时间量,从而极大地降低密码服务的效率并增加其实施成本。
本发明的实施例单独地和共同地解决这些和其它问题。
发明内容
本发明的实施例涉及用于在内部部署(on-premises)和分布式计算环境(例如云计算网络)两者中管理和分配密码密钥份额和执行安全多方加密的方法和系统。
实施例利用了混淆(garbled)电路作为三方姚氏(YAO)协议的部分,以便执行多方密码术。第一计算机节点和第二计算机节点各自向第三计算机节点提供“混淆”密钥份额,所述第三计算机节点使用所述混淆密钥份额以便利用混淆电路来加密初始消息。第一计算机节点和第二计算机节点从未看到属于另一计算机节点的密钥份额,而第三计算机节点仅接收呈混淆形式的密钥份额。
在一个实施例中,密钥管理计算机可从硬件安全模块检取密码密钥并基于所述密码密钥生成第一和第二密钥份额。这两个密钥份额可被安全传送到云计算环境中的第一和第二计算机节点,使得每个计算节点仅接收其自身的密钥份额而非另一密钥份额。两个计算节点连同第三计算节点一起可使用所述两个密钥份额共同执行三方姚氏协议以加密和解密从客户端计算机接收的消息。
在另一实施例中,密钥管理计算机可从硬件安全模块检取密码密钥并基于所述密码密钥生成第一和第二密钥份额。第一和第二密钥份额可被安全传送到第一密钥份额数据库和第二密钥份额数据库。第一和第二计算节点可各自从相应数据库检取密钥份额。两个计算节点连同第三计算节点一起可使用这两个密钥份额共同执行三方姚氏协议,以加密和解密从客户端计算机接收的消息。
本公开的实施例提供关于密码操作的安全、效率和速度的数个优势。
例如,本公开的实施例提供了数个安全益处。通过将密码密钥拆分或以其它方式分成密钥份额,以其完整形式存储所述密码密钥的唯一位置是在硬件安全模块上。这使得黑客或其它恶意用户更加难以获取密码密钥,因为黑客需要破解多个计算机节点、从那些计算机节点检取密钥份额并确定如何重组所述密钥份额以生成密钥。此外,在基于云计算的实施例中,整个密钥从未进入云计算环境的范围。因此,在密钥份额预配过程期间,不存在整个密钥被截获的风险。此外,不同于其中密码密钥在被拆分为密钥份额之前由计算机节点接收的常规系统,本公开的实施例生成密钥份额,然后将所述密钥份额预配到每个计算机节点。因此,参与多方计算的每个计算机节点都不会看到属于其它计算机节点的密钥份额,因此密码密钥被黑客截获的风险减少。
另外,本公开的实施例通过减少对硬件安全模块的依赖而提高效率。在下文论述的两个实施例中,硬件安全模块仅被访问一次以便将密钥份额预配给参与的计算机节点,从而减少硬件安全模块在密码密钥存储方面的作用。因此,相对于常规远程硬件安全模块加密,密码过程的速度得以提高,因为参与的计算机节点花了较少时间与硬件安全模块通信以及等待以完成密码操作。此外,在一些内部部署相关的实施例中,通过将密钥份额直接预加载到数据库来进一步减少对硬件安全模块的利用。
作为另一益处,本公开的实施例可用作在云计算环境中在没有基于云的硬件安全模块的情况下运行的任何应用程序或服务的可扩展密钥管理。并非所有常规云计算环境都提供云托管的硬件安全模块。然而,使用本公开的实施例,可执行密码操作,并且即使在不存在基于云的硬件安全模块的情况下也可管理密码密钥和密钥份额。
一个实施例涉及一种方法,包括:由第一计算机节点从密钥管理计算机接收第一密钥份额;由所述第一计算机节点从客户端计算机接收初始消息;由所述第一计算机节点将所述初始消息传送给第二计算机节点;由所述第一计算机节点生成混淆电路、基于所述第一密钥份额和所述混淆电路的第一混淆密钥份额以及基于所述初始消息和所述混淆电路的混淆消息;由所述第一计算机节点将所述混淆电路、所述第一混淆密钥份额和所述混淆消息传送给第三计算机节点,其中所述第三计算机节点还从所述第二计算机节点接收基于存储于所述第二计算机节点处的第二密钥份额和所述混淆电路的第二混淆密钥份额,这使所述第三计算机节点通过将所述第一混淆密钥份额、所述第二混淆密钥份额和所述混淆消息输入到所述混淆电路而生成后续消息并将所述后续消息传送给所述第一计算机节点;以及由所述第一计算机节点将所述后续消息或其衍生内容传送给所述客户端计算机。
另一实施例涉及一种第一计算机节点,包括:处理器;以及耦合到所述处理器的非瞬态计算机可读介质,所述非瞬态计算机可读介质包括代码,所述代码可由所述处理器执行以用于实施上述方法。
另一实施例涉及一种方法,包括:由第三计算机节点从第一计算机节点接收第一混淆电路、第一混淆密钥份额和第一混淆消息;由第三计算机节点从第二计算机节点接收第二混淆电路、第二混淆密钥份额和第二混淆消息;由所述第三计算机节点通过将所述第一混淆密钥份额、所述第二混淆密钥份额和所述第一或所述第二混淆消息输入到所述第一或所述第二混淆电路来生成后续消息;以及由所述第三计算机节点将所述后续消息传送给所述第一计算机节点。
术语
“服务器计算机”可包括功能强大的计算机或计算机集群。例如,服务器计算机可以是大型主机、小型计算机群集或像单元一样工作的一组服务器。在一个示例中,服务器计算机可以是耦合到网络服务器的数据库服务器。服务器计算机可包括一个或多个计算设备,并且可使用各种计算结构、布置和编译中的任一种来服务来自一个或多个客户端计算机的请求。
“存储器”可以是可以存储电子数据的任何合适的装置或多个装置。合适的存储器可包括非瞬态计算机可读介质,其存储可由处理器执行以实施所要方法的指令。存储器的示例可包括一个或多个存储器芯片、磁盘驱动器等。此类存储器可使用任何合适的电、光和/或磁操作模式来操作。
“处理器”可指任何合适的一个或多个数据计算装置。处理器可包括一起工作以实现所要功能的一个或多个微处理器。处理器可以包括CPU,所述CPU包括至少一个高速数据处理器,所述高速数据处理器足以执行用于执行用户和/或系统生成的请求的程序组件。所述CPU可以是微处理器,例如AMD的速龙(Athlon)、钻龙(Duron)和/或皓龙(Opteron);IBM和/或摩托罗拉(Motorola)的PowerPC;IBM和索尼(Sony)的Cell处理器;英特尔(Intel)的赛扬(Celeron)、安腾(Itanium)、奔腾(Pentium)、至强(Xeon)和/或XScale;和/或类似处理器。
“密码密钥”可包括用于加密或解密的事物。在一些情况下,密码密钥可以是两个大质数的乘积。密码密钥可在RSA或AES密码系统等密码过程中用作输入。密码密钥可用于加密明文并产生密文,或解密密文并产生明文。
“明文”可包括呈普通形式的文本。例如,明文可指在无需任何处理的情况下可由人或计算机读取的文本,例如短语“你好,近来如何?”明文还可指呈未加密形式的文本。数字或其它符号也可适合作为明文。
“密文”可包括呈加密形式的文本。例如,密文可指在人或计算机可读之前必须予以解密的文本。密文可通过RSA或AES等密码系统生成。
“多方计算”可包括由多方执行的计算。每方可为计算贡献一些输入。例如,双方可各自拥有密钥份额,并且可使用这两个密钥份额共同执行加密。
“安全多方计算”可包括安全的多方计算。在许多情况下,安全多方计算可指其中各方彼此并不共享其输入的多方计算。例如,双方可各自拥有密钥份额,并且可在不向另一方透露其相应密钥份额的情况下使用这两个密钥份额共同执行加密。
“计算机节点”可包括计算机网络中的节点。计算机节点可以是计算机,例如在计算机网络中与客户端计算机通信的服务器计算机。计算机节点可以是物理计算机、虚拟机或计算机系统的另一种仿真。在一些情况下,计算机节点可以是在计算机上运行的应用程序或程序,其可与网络中的其它计算机节点通信。
“布尔代数”或“布尔逻辑”可包括其中变量值是通常分别标示为1和0的真值“真”和“假”的代数分支。布尔逻辑运算符包括AND、OR和NOT。布尔逻辑可用于实施布尔门(也称为“逻辑门”)和布尔电路(也称为“逻辑电路”)。
“布尔门”(或“逻辑门”)包括执行布尔函数的装置或软件,例如AND、OR、NOT、NAND、XOR等。布尔门可具有用于输入布尔函数的自变量的数个“输入线”以及用于输出结果的数个“输出线”。例如,二端AND门可具有两个输入线和单个输出线。输出线的值可仅在两个输入线的值均为真时才为真。物理布尔门可由晶体管(即CMOS晶体管)集合构成。也可使用软件模拟布尔门。
“布尔电路”(或“逻辑电路”)可包括执行更复杂的布尔逻辑函数的互连布尔门的集合。举例来说,两个AND门和一个OR门可连接以计算布尔函数F(A,B,C,D)=(A AND B)OR(C AND D),其中每个输入线对应于A、B、C和D中的一个,并且输出线对应于F(A,B,C,D)。许多数学函数可使用布尔电路评估。
“混淆门”可包括带有隐藏或“混淆”含义的过程或计算。混淆门可执行布尔函数,其中混淆门的输入和输出是“混淆值”而非传统的布尔值。混淆门可表示为加密表,并且混淆输入值可用作密码密钥以解密所述门的输出值。
“混淆电路”可包括用于执行更复杂的函数的互连混淆门的集合。混淆电路可在安全多方计算中使用,以便在不向参与实体透露混淆电路输入的情况下执行某个功能。例如,双方可各自拥有密钥份额,并且可使其各自的密钥份额混淆(从而产生混淆值)以便将所述密钥份额用作混淆加密电路的输入。因为密钥份额被混淆,所以各方无法得知另一方的密钥份额。
“混淆值”可包括带有隐藏或“混淆”含义的值。混淆值可包括随机或表面上随机的字母数字序列。混淆值可包括对应于混淆电路中的混淆门的输入或输出线的标记。混淆值可以是混淆电路的输入或输出。混淆值输出可被解除混淆(ungarble)以产生由混淆电路表示的函数的输出。可在安全多方计算中使用混淆值,以便维护输入值的保密性。
“代理”可包括表示或充当另一实体或装置的中间方的实体或装置。例如,代理服务器可充当向服务计算机请求服务的客户端计算机的中间方。代理可用于针对实体之间的通信限制或以其它方式执行访问控制。
“内部部署区”可包括在内部部署上运行的计算机或装置的集合。这些可包括由拥有或管理内部部署的实体或组织拥有或操作的计算机。例如,组织可操作网络服务,例如视频流式传输服务,并且可从所述组织拥有的建筑物处“内部部署”容纳的服务器计算机的集合操作所述网络服务。
“受限区”可包括对其来说访问装置或计算机受到控制的那些计算机或装置的集合。例如,受限区可包括执行敏感操作或存储个人标识信息或密码密钥等敏感信息的计算机的网络。在受限区中运行的计算机或装置与受限区外部运行的计算机或装置之间的通信可受到控制或监控。例如,仅某些计算机、实体或装置可被允许与受限区中运行的计算机或装置通信。
“硬件安全模块”可包括用于存储、保护和管理密码密钥的物理计算装置。硬件安全模块可提供一些密码处理功能,并且可拥有用于此目的的一个或多个密码处理芯片。硬件安全模块可呈插入卡或直接连接到计算机或网络服务器的外部装置的形式。硬件安全模块可根据例如FIPS 140的标准进行认证,并且可设计成防篡改的。
“分布式计算网络”或“云计算网络”可包括可配置计算机系统资源的共享池。分布式计算网络可包括基础设施的分布式集合,包括服务器计算机、存储器存储装置和联网基础设施,以及数据库和应用程序等平台资源。在分布式计算网络中,数个计算机节点可彼此通信,以便向客户端计算机提供某种服务。
附图说明
图1示出展示示例性加密过程的流程图。
图2示出展示用于生成混淆门的示例性方法的流程图。
图3示出示例性布尔电路和等同混淆电路的图。
图4示出根据一些实施例的基于云的密钥管理和多方加密系统的框图。
图5示出根据一些实施例的基于云的密钥管理和多方加密的方法的流程图。
图6示出根据一些实施例的内部部署密钥管理和多方加密系统的框图。
图7A和7B示出根据一些实施例的内部部署密钥管理和多方加密的方法的流程图。
图8示出根据一些实施例的第一计算机节点的系统框图。
图9示出根据一些实施例的第二计算机节点的系统框图。
具体实施方式
本公开的实施例涉及用于安全地分配密码密钥份额给计算机节点并使用这些密钥份额和计算机节点执行安全多方加密和解密的方法和系统。在内部部署环境中以及在云或分布式计算环境中均可使用这些方法和系统。实施例利用三方姚氏协议和混淆电路,以便在敏感密钥份额无披露风险的情况下执行密码术。
通常,密钥管理计算机可从硬件安全模块检取密码密钥并生成两个密钥份额,这两个密钥份额可被安全地预配给第一计算节点和第二计算节点或第一密钥份额数据库和第二密钥份额数据库。第一计算节点、第二计算节点和第三计算节点可对从客户端计算机或应用程序接收的消息共同执行安全多方加密或解密。
第一计算机节点、第二计算机节点和第三计算机节点使用三方姚氏协议共同执行加密或解密,所述三方姚氏协议是一种涉及使用混淆电路的方法。第一计算机节点和第二计算机节点各自向第三计算机节点提供相应密钥份额的混淆版本,并且第三计算机节点使用混淆电路执行加密或解密操作。所述密钥份额保持彼此隔离,并且第一计算机节点、第二计算机节点或第三计算机节点中的任何一个节点都不会拥有两个密钥份额。加密或解密操作的结果被传送回客户端计算机或客户端应用程序。
在描述根据本公开的实施例的系统和方法之前,图1-3可用于理解密码术、混淆门和混淆电路,这可用于理解本公开的实施例。
图1示出可用于理解一些实施例的非对称加密过程的流程图。图1详细说明可根据RSA密码系统使用公钥编码和加密消息102“OK”、之后使用私钥进行解密和解码的方式。
消息102可使用编码表104等编码表进行编码。编码表104将每个字母与其在英语字母中的字母顺序索引配对。“O”是英语字母中的第15个字母,而“K”是第11个字母。使用编码表104,可因此将“OK”编码为1511(编码消息106)。
RSA(Rivest-Shamir-Adleman)密码系统可使用两种不同密码密钥,即公钥和私钥。使用公钥加密的消息可使用私钥进行解密。公钥和私钥各自包括两个值:模数和指数。所述模数是两个质数的乘积。在图1中,模数n是3233。基于模数而选择公用指数e和私用指数d。通常,公用指数e被选为小于且与卡迈克尔函数(Carmichael's totient function)互质,而私用指数d是e的模乘逆元。在图1中,公用指数e是17,并且私用指数d是413。
编码消息106连同公钥108一起用作加密函数110的输入。编码消息106“1511”升到公用指数e=17的幂,并且结果的模数n=3233已确定。结果是加密消息112:2880。
加密消息112可使用解密函数116和私钥114进行解密。解密函数116类似于加密函数110。加密消息112“2880”升到私用指数d=413的幂,并且结果的模数n=3233已确定。结果是解密消息118:1511。值得注意的是,解密消息118与编码消息106相同,从而指示加密和解密过程成功。
解密消息118可使用解码表120进行解码,所述解码表将字母顺序索引与英文字母中的对应字母配对。“15”对应于字母“O”,并且“11”对应于字母“K”。所得解码消息122是“OK”,其与消息102相同。
图2示出生成对应于布尔门的混淆门的示例性方法,其可用于理解混淆门、混淆电路以及本公开的一些实施例。
“AND”门202包括两个输入线A和B,以及输出线F。输出线F在输入线A和B均具有布尔值真的情况下具有布尔值真,否则具有值假。AND门的行为汇总于真值表204中,其中0对应于布尔值假,并且1对应于布尔值真。
例如“AND”门202的布尔逻辑门的集合可用于建构布尔电路。在布尔电路中,布尔逻辑门和非门(inverter)的输出馈入后续布尔逻辑门的输入。许多数学功能可使用布尔电路执行,例如加密。例如,AES加密可使用包括大约32,000个布尔逻辑门的布尔电路执行。
然而,可使用混淆电路来代替布尔电路以执行加密等功能。正如布尔电路可根据布尔门建构,混淆电路可根据混淆门建构。混淆门可用于执行布尔门的功能,并且还有使混淆门的输入和输出保密的附加优势。例如,混淆电路可用于执行加密,同时维护输入、输出和中间计算的保密性。以此方式,混淆电路可用于执行多方加密,同时使消息(输入)、密钥份额(输入)和加密消息(输出)保密。图2示出可用于生成对应于“AND”门202的混淆门并针对一组给定输入评估结果的一系列步骤S206-S218。
在步骤S206,可针对“AND”门202的每个线(A、B和F)将秘密标记分配到真和假。表208汇总了结果。对于输入线A,23已被分配为假的标记,并且17已被分配为真的输入标记。对于输入线B,98已被分配为假的输入标记,并且2已被分配为真的输入标记。对于输出线F,77已被分配为假的输入标记,并且100已被分配为真的输入标记。可选择标记,使得实体难以确定或以其它方式猜测标记与对应的布尔值之间的关系,例如,可使用随机或伪随机数生成器选择或生成标记。
在步骤S210,对应于表208的每个行的输出标记可使用对应的输入标记作为密码密钥进行加密。即,输出标记77可使用(23、98)、(23、2)和(17、98)双重加密,并且输出标记100可使用(17、2)双重加密。加密结果汇总于表212中。
在步骤S214,评估器(例如第三计算机节点,如下文所描述)可通过利用对应于评估器的输入的标记解密四个值中的每个值来评估混淆门。例如,为了评估对应于输入真和真的输出,评估器可使用17和2(对应于输入线A上的布尔值真和输入线B上的布尔值真的标记或“混淆输入”)解密这四个加密值中的每一者。表S216汇总了解密结果。值得注意的是,第四行(100)的解密值等于输出线F上对应于布尔值真的标记,而前三行的解密值不对应于任何线标记。
在步骤S218,评估器可用值替换所得标记。前三个值(79834、9986和1755)不对应于标记,而最终值100对应于输出线F上的布尔值真。表220汇总了这些结果。以此方式,混淆门可从对应的布尔门生成,并且可用于执行布尔门的功能,同时维护输入和输出的保密性。仅在对应于输入和输出的标记已知的情况下才知道输入和输出的布尔值。
图3可用于理解混淆电路的一些原理和应用。图3示出用于实施三方多数表决的布尔电路。输入真可解读为肯定表决,而输入假可解读为否定表决。如果表决通过,即,如果来自A方输入302、B方输入306和C方输入306的至少两个输入为真,则布尔电路308的输出为真。布尔电路308实施布尔函数326,即,F(A,B,C)=(A AND B)OR(A AND C)OR(B AND C)。
对于表决,可能有利的是将输入(即,表决)保密。这可使用混淆电路316来实现。布尔电路308的三个AND门和一个OR门替换为混淆电路316中的四个混淆门318-324。
如参考图2所描述,每个混淆门的输入是混淆值,其用于解密混淆门以便产生输出标记。在混淆电路316中,每个混淆门318、320和322的输出标记用作混淆值以解密混淆门324的输出标记,其为对应于整个混淆电路的输出的输出标记。A方混淆输入310和B方混淆输入312(在函数328中示为“A”和“B”)用作密码密钥来解密混淆门318。结果用作密码密钥来解密混淆门324。A方混淆输入310和C方混淆输入314用作密码密钥来解密混淆门320,并且结果同样用作密码密钥来解密混淆门324。同样,B方混淆输入312和C方混淆输入314用于解密混淆门322,其输出用作密码密钥来解密混淆门324。
通过解密混淆门324产生的标记对应于布尔电路308的等同输出。即,如果混淆输入310、312和314中的两个或更多个混淆输入对应于布尔值真,则混淆门324的混淆输出将对应于输出真。
虽然混淆电路用于实施AES、RSA或其它形式的加密。图2和3示出混淆门的集合可用于形成实施例如秘密多数表决和AES加密等更复杂的函数的混淆电路。
图4示出根据一些实施例的基于云的密钥管理系统的系统框图。所述系统包括内部部署区402和分布式(或云)计算网络412。内部部署区可另外包括受限区404。图4中另外示出一系列步骤S502-S526,这些步骤可参考图5的流程图进行理解。
内部部署区402可包括在“内部部署”计算机上安装或运行的计算机、服务器、计算资源和软件。这可与例如在分布式(或“云”)计算网络412中运行的计算机、服务器、计算资源或软件形成对比。内部部署区402可包括密钥管理器408和代理410以及受限区404。
受限区404可以是安全性需要比内部部署区402和分布式计算网络412更高的计算区。对受限区404中的计算资源的访问可限于包括密钥管理计算机408在内的几个受信任实体。与在受限区404内运行的计算机和其它装置的通信可受到监测或受制于任何其它合适的安全策略,包括自主访问控制和强制访问控制。受限区404可需要加强的安全性,以便保护存储在硬件安全模块406中的密码密钥和其它敏感资源。
硬件安全模块406可用于安全地存储密码密钥(也称为“整密钥”)。硬件安全模块406可以是防篡改的物理计算装置,即,硬件安全模块406可提供篡改证据或在被篡改的情况下变得不可操作或删除密码密钥。硬件安全模块406可包括一个或多个安全密码处理芯片,并且可存在于其它硬件安全模块的集群中。密钥管理计算机408可访问硬件安全模块406,以便密钥管理计算机408检取密码密钥。
密钥管理计算机408可具有从硬件安全模块406提取或导入密码密钥的能力。密钥管理计算机408可具有使其能够从硬件安全模块406安全地检取密码密钥的安全通信能力。这些可包括例如相互认证和/或执行客户端证书认证的能力。另外,密钥管理计算机408能够从密码密钥生成第一密钥份额和第二密钥份额。密钥管理计算机408可拥有任何合适的代码、指令或软件以便从密码密钥生成密钥份额。其还可执行软件或代码,使得密钥管理计算机408能够执行涉及生成第一和第二密钥份额、包括生成密码方面安全的随机数的功能。
下文旨在仅作为从密码密钥生成密钥份额的非限制性示例。可理解,存在可结合本公开的实施例采用的许多其它合适的方法。密钥管理器408可生成随机或伪随机数。密钥管理器408可使用此随机或伪随机数作为第一或第二密钥份额。密钥管理器可计算随机数和密码密钥的XOR(异或)。密码密钥的随机数的XOR可用作另一密钥份额(例如第二密钥份额)。
密钥管理计算机408能够将第一和第二密钥份额安全地传送给分布式计算网络412中的第一计算机节点416和第二计算机节点418。密钥管理器408与第一计算机节点416和第二计算机节点418之间的通信可由代理410和防火墙414介导或保护。
代理410可限制内部部署区402与分布式计算网络412之间的连接。代理可防止不是第一计算机节点416或第二计算机节点418的计算机或实体与密钥管理计算机408通信。另外,代理410可通过分析密钥管理器408与分布式计算网络412中包括防火墙414或基于云的可扩展密钥管理器(未示出)在内的实体之间的网络业务来实施内容过滤规则。此外代理410可存储和管理用于针对第一计算机节点416和第二计算机节点418进行认证的客户端侧证书。
分布式(或“云”)计算网络412可包括数个计算机节点,包括第一计算机节点416、第二计算机节点418、客户端计算机402和第三计算机节点422。这些节点中的三个节点,即第一计算机节点416、第二计算机节点418和第三计算机节点422可共同执行三方姚氏协议以便加密或解密从客户端计算机420接收的消息。分布式计算网络412可由第三方操作,所述第三方即除了拥有、管理或操作内部部署区402的实体之外的实体。
防火墙414可通过防止对分布式计算网络412中的实体或装置进行访问而用作网络安全控制。在一些实施例中,防火墙414可能不允许除代理410以外的任何外部实体与第一计算机节点416或第二计算机节点418通信。
第一计算机节点416可与客户端计算机或应用程序420介接。第一计算机节点416可从客户端计算机420接收初始消息,并且可出于加密或解密初始消息的目的而生成混淆电路。第一计算机节点416可生成混淆电路、混淆消息和混淆密钥份额以作为三方姚氏协议的部分。第一计算机节点416可将初始消息传送给第二计算机节点418,并且可将混淆电路、混淆消息和混淆密钥份额传送给第三计算机节点422,使得第三计算机节点422可使用混淆电路、混淆消息、第一混淆密钥份额以及从第二计算机节点418接收的第二混淆密钥份额来加密或解密初始消息。第一计算机节点416可不接收第二计算机节点418存储的第二密钥份额,反之亦然。在下文参考图8进一步详细论述第一计算机节点416。
第二计算机节点418可从第一计算机节点416接收初始消息。第二计算机节点418可基于所述初始消息生成混淆消息、第二混淆密钥份额和混淆电路,并将所述混淆消息、第二混淆密钥份额和混淆电路传送给第三计算机节点422,以便第三计算机节点422使用混淆电路加密或解密所述初始消息并且生成后续消息。通常,除了与客户端计算机420介接之外,第二计算机节点418执行与第一计算机节点416类似的功能,并且可大体上参考图8和下文描述来理解。
客户端计算机420可以是向第一计算机节点416请求密码处理服务的客户端计算机或应用程序。客户端计算机420可拥有客户端计算机420想要加密或解密的初始消息。客户端计算机420可向第一计算机节点416提供初始消息,并从第一计算机节点416接收后续消息或所述后续消息的衍生内容。例如,所述初始消息可以是明文消息,并且所述后续消息可以是对应于所述明文消息的加密消息。
第三计算机节点422可使用第一混淆密钥份额、第二混淆密钥份额和混淆消息以生成后续消息来评估混淆电路。另外,第三计算机节点422可验证从第一计算机节点416和第二计算机节点418接收的混淆电路和混淆消息是一致的。第三计算机节点422可使用第一和第二混淆密钥份额执行客户端计算机420请求的加密或解密操作,但本身不拥有任何密钥份额。第三计算机节点422可将后续消息传送回到第一计算机节点416,所述第一计算机节点可对后续消息(必要时)解除混淆,并将结果传送回到客户端计算机420。在下文参考图9进一步详细论述第三计算机节点422。
图5示出根据一些实施例的基于云的密钥管理和多方加密的方法。参考图4也可理解所述方法。
在步骤S502,密钥管理计算机408可检取存储在硬件安全模块406中的密码密钥。在一些实施例中,密钥管理计算机408可首先从第一计算机节点416和第二计算机节点418等一个或多个实体接收密钥份额预配请求。密钥管理计算机408可使用客户端证书验证或认证请求者,所述客户端证书例如对应于执行多方密码术的一个或多个计算机节点的证书(MPC客户端证书)。密钥管理计算机408可另外例如使用HSM客户端证书验证或认证硬件安全模块406。在执行任何任选验证或认证步骤之后,密钥管理计算机408可从硬件安全模块406检取密码密钥。
在步骤S504,密钥管理计算机408可从存储在硬件安全模块406中的密钥(即,密码密钥)生成或形成第一密钥份额和第二密钥份额。存在数个可将密码密钥用于生成两个或更多个密钥份额的方式。作为一个示例,密钥管理计算机408可使用任何合适的密码方面安全的随机数生成器来生成随机数,并将所述随机数用作两个密钥份额中的一个(例如,第一密钥份额)。密钥管理计算机408可计算第一密钥份额和来自硬件安全模块406的密码密钥的XOR(异或),并将第一密钥份额和密码密钥的XOR用作第二密钥份额。然而,可使用任何合适的秘密共享方法来从密码密钥生成第一和第二密钥份额,所述方法例如沙米尔秘密共享(Shamir's Secret Sharing)或中国剩余定理(Chinese remainder theorem)。
在步骤S506,密钥管理计算机408将第一密钥份额和第二密钥份额传送给第一计算机节点416和第二计算机节点418。密钥管理计算机408可通过代理410和防火墙414将第一密钥份额和第二密钥份额传送到第一计算机节点416和第二计算机节点418,所述代理和防火墙可分别用作密钥管理计算机408和分布式计算网络412的访问控制或安全保护。第一计算机节点416和第二计算机节点418可使用代理证书或任何其它合适的认证方法来验证代理410。第一计算机节点416可从密钥管理计算机408接收第一密钥份额,并且第二计算机节点418可从密钥管理计算机408接收第二密钥份额。每个计算机节点都不能接收对应于另一计算机节点的密钥份额。第一计算机节点416和第二计算机节点418可将其相应的密钥份额安全地存储在例如安全存储器元件中。
在步骤S508,第一计算机节点416可从客户端计算机420接收初始消息。所述初始消息可包括客户端计算机420想要加密或解密的消息,例如,所述初始消息可以是明文或密文。所述初始消息可另外包括关于请求的操作的信息,例如,客户端计算机420是否希望消息被加密或解密。客户端计算机420和第一计算机节点416可在客户端计算机420将初始消息传送给第一计算机节点416之前相互或以其它方式对彼此进行认证。
在步骤S510,第一计算机节点416可将初始消息传送给第二计算机节点418。在一些实施例中,第二计算机节点418可生成混淆电路、第二混淆密钥份额和混淆消息。在这些实施例中,第二计算机节点418可使用初始消息来生成混淆电路、第二混淆密钥份额和/或混淆消息。
在步骤S512,第一计算机节点416可生成混淆电路、基于第一密钥份额和混淆电路的第一混淆密钥份额,以及基于初始消息和混淆电路的混淆消息。在一些实施例中,第一计算机节点416和第二计算机节点418可按一致的方式生成混淆电路和混淆消息。第一计算机节点416和第二计算机节点418可使用相同的算法或过程来生成混淆电路,使得由每个计算机节点生成的混淆电路相同。可通过数个方式实现混淆电路的生成,而下文旨在作为非限制性示例。
第一计算机节点416可拥有限定可用于执行加密的布尔电路或未标记混淆电路的模板或文件,所述电路例如实施AES密码系统的加密或解密算法的布尔电路。第一计算机节点416可使用随机数生成器生成对应于混淆电路的输入和输出线标记。第一计算机节点416可基于第一密钥份额而使用一些输入线标记来生成第一混淆密钥份额。例如,如果第一密钥份额长度为256位,则混淆电路可拥有与第一密钥份额对应的256个输入线。可基于对应于第一密钥份额的256个输入线标记来生成第一混淆密钥份额。同样,混淆电路可拥有对应于初始消息的某一数目的输入线。可通过确定对应于初始消息的输入线标记生成混淆消息。
在步骤S514,第二计算机节点418可生成第二混淆电路、基于存储于第二计算机节点418处的第二密钥份额的第二混淆密钥份额,以及第二混淆消息。第二计算机节点418可按第一计算机节点416生成混淆电路、第一混淆密钥份额和混淆消息基本相同的方式生成第二混淆电路、第二混淆密钥份额和第二混淆消息。
在步骤S516,第一计算机节点可将混淆电路、第一混淆密钥份额和混淆消息传送给第三计算机节点422。在一些实施例中,所述混淆电路可被称为第一混淆电路,并且所述混淆消息可被称为第一混淆消息。
在步骤S518,第二计算机节点418可将第二混淆电路、第二混淆密钥份额和第二混淆消息传送给第三计算机节点422。
在步骤S520,第三计算机节点422可确定第一混淆电路与第二混淆电路匹配以及第一混淆消息与第二混淆消息匹配。第三计算机节点422可执行此验证,以便确定第一计算机节点416和第二计算机节点418在要执行的多方密码操作方面已达成一致。第三计算机节点422可使用任何合适的方法来验证第一混淆电路与第二混淆电路匹配以及第一混淆消息与第二混淆消息匹配。例如,第三计算机节点422可遍历第一和第二混淆消息(以及表示第一和第二混淆电路的任何文件或数据)并执行逐位或逐字节比较,以便验证混淆消息以及混淆电路一致。或者,第三计算机节点422可比较两个混淆电路或混淆消息的散列。
在步骤S522,第三计算机节点422可通过将第一混淆密钥份额、第二混淆密钥份额和混淆消息输入到混淆电路来生成后续消息。混淆电路可包括对应于第一密钥份额、第二密钥份额和混淆消息的数个输入线。第三计算机节点422可使用对应于那些输入线(即,第一混淆密钥份额、第二混淆密钥份额和混淆消息)的标记来解密对应的输出线,所述标记可用作解密连续混淆门的输出线的标记,如上文参考图2和3所描述。结果可以是对应于后续消息的一组输出线标记。
在步骤S524,第三计算机节点422可将后续消息传送给第一计算机节点416。
在步骤S526,第一计算机节点416可将后续消息或其衍生内容传送给客户端计算机420。在一些实施例中,后续消息可以是对应于混淆加密或解密电路的输出的一组输出线标记。第一计算机节点416可通过将所述标记替换为其对应的布尔值来对消息解除混淆,之后将解除混淆的消息传送给客户端计算机420。在一些实施例中,后续消息或其衍生内容是密文(即,混淆电路用于执行加密)。在其它实施例中,后续消息或其衍生内容是明文(即,混淆电路用于执行解密)。
可以这样:图5的步骤可按任何合适的顺序或次序执行,并且可省略或添加步骤。例如,第一计算机节点416和第二计算机节点418可在第一计算机节点416从客户端计算机420接收初始消息之前生成相应的混淆电路和混淆密钥份额。
图6示出根据一些实施例的基于内部部署的密钥管理系统的系统框图。所述系统包括:内部部署区602、包括硬件安全模块606的受限区604、密钥管理计算机608、包括第一密钥份额数据库612和第二密钥份额数据库614的受限区610、第一计算机节点616、第二计算机节点618、客户端计算机620和第三计算机节点622。图6中还示出一系列步骤S702-S730,所述步骤对应于预配密钥份额和执行多方密码术的方法。步骤S702-S730可参考图7的流程图进行理解。在图6中,第一计算机节点616、第二计算机节点618和第三计算机节点622都在同一内部部署处(即,内部部署区602)运行。
图6在许多方面类似于图4,并且图6(并且扩展到图7)的许多描述将分别类似于图4和5的描述。关键差异包括以下实情:第一计算机节点616、第二计算机节点618和第三计算机节点622在内部部署区而不在分布式计算网络中运行。另外,图6不包括代理或防火墙。此外,第二受限区610包括分别由第一计算机节点616和第二计算机节点618访问的第一密钥份额数据库612和614,而不是由第一计算机节点616和第二计算机节点618存储其相应的密钥份额。密钥管理计算机可提前预配密钥份额给第一密钥份额数据库612和第二密钥份额数据库614,从而进一步减少对硬件安全模块606的利用。这是可能的,因为风险容忍度在内部部署区602等内部部署环境中通常更高。
受限区604可以是相比于内部部署区602的其它部分需要更高安全性的计算区。对受限区604中的计算资源(即,硬件安全模块606)的访问可限于几个受信任实体,包括密钥管理计算机608。与在受限区604内运行的计算机和其它装置的通信可受到监测或受制于其它合适的安全策略,包括自主访问控制和强制访问控制。受限区604可需要加强的安全性,以便保护存储在硬件安全模块606中的密码密钥和其它敏感记录。
硬件安全模块606可用于安全地存储密码密钥。硬件安全模块606可以是防篡改的物理计算装置,即,硬件安全模块606可提供篡改证据或在被篡改的情况下变得不可操作或删除密码密钥。硬件安全模块606可包括一个或多个安全密码处理芯片,并且可存在于其它硬件安全模块的集群中。密钥管理计算机608可访问硬件安全模块606,以便密钥管理计算机检取密码密钥。
密钥管理计算机608可具有从硬件安全模块606提取或导入密码密钥的能力。密钥管理计算机608可具有使其能够从硬件安全模块606安全地检取密码密钥的安全通信能力。这些可包括例如相互认证和/或执行客户端证书认证的能力。另外,密钥管理计算机608能够从密码密钥生成第一密钥份额和第二密钥份额。密钥管理计算机608可拥有任何合适的代码、指令或软件以便从密码密钥生成密钥份额。其还可执行软件或代码,使得密钥管理计算机608能够执行涉及生成第一和第二密钥份额、包括生成密码方面安全的随机数的功能。密钥管理计算机608能够将第一和第二密钥份额安全地传送给受限区610中运行的第一密钥份额数据库612和第二密钥份额数据库614。
受限区610可以是需要较高安全性的计算区。对受限区610中的计算资源(即,第一密钥份额数据库612和第二密钥份额数据库614)的访问可限于几个受信任实体(例如第一计算机节点616和第二计算机节点618)。与在受限区610内运行的数据库的通信可受到监测或受制于其它合适的安全策略,包括自主访问控制和强制访问控制。受限区610可需要加强的安全性,以便保护分别存储在第一密钥份额数据库612和第二密钥份额数据库614中的第一和第二密钥份额。
第一密钥份额数据库612和第二密钥份额数据库614可以是分别存储从密钥管理计算机接收的第一密钥份额和第二密钥份额的两个数据库。第一密钥份额数据库612和第二密钥份额数据库614可受任何合适的安全措施保护,例如,与密钥份额数据库通信的实体可能要进行客户端证书认证。
第一计算机节点616可与客户端计算机620介接。第一计算机节点616可从客户端计算机620接收初始消息,并且可出于加密或解密初始消息的目的而生成混淆电路。第一计算机节点616可生成混淆电路、混淆消息和混淆密钥份额以作为三方姚氏协议的部分。第一计算机节点616可将初始消息传送给第二计算机节点618,并且可将混淆电路、混淆消息和混淆密钥份额传送给第三计算机节点622,使得第三计算机节点622可使用混淆电路、混淆消息、第一混淆密钥份额以及从第二计算机节点618接收的第二混淆密钥份额来加密或解密初始消息。第一计算机节点616可从第一密钥份额数据库610检取第一密钥份额,而不是将第一密钥份额存储在其自身的存储器中。
第二计算机节点618可从第一计算机节点616接收初始消息。第二计算机节点618可基于所述初始消息生成混淆消息、第二混淆密钥份额和混淆电路,并将所述混淆消息、第二混淆密钥份额和混淆电路传送给第三计算机节点622,以便第三计算机节点622使用混淆电路加密或解密所述初始消息并且生成后续消息。通常,除了与客户端计算机620介接之外,第二计算机节点618执行与第一计算机节点616类似的功能,并且可大体上参考图8和下文描述来理解。第二计算机节点618可从第二密钥份额数据库612检取第二密钥份额,而不是将第二密钥份额存储在其自身的存储器中。
客户端计算机620可以是向第一计算机节点616请求密码处理服务的客户端计算机或应用程序。客户端计算机620可拥有客户端计算机620想要加密或解密的初始消息。客户端计算机620可向第一计算机节点616提供初始消息,并从第一计算机节点616接收后续消息或所述后续消息的衍生内容。例如,所述初始消息可以是明文消息,并且所述后续消息可以是对应于所述明文消息的加密(密文)消息。
第三计算机节点622能够使用第一混淆密钥份额、第二混淆密钥份额和混淆消息以生成后续消息来评估混淆电路。另外,第三计算机节点622可验证从第一计算机节点616和第二计算机节点618接收的混淆电路和混淆消息是一致的。第三计算机节点622可使用第一和第二混淆密钥份额执行客户端计算机620请求的加密或解密操作,但本身不拥有任何密钥份额。第三计算机节点622可将后续消息传送回到第一计算机节点,所述第一计算机节点可对后续消息(必要时)解除混淆,并将结果传送回到客户端计算机620。在下文参考图9进一步详细论述第三计算机节点622。
图7示出根据一些实施例的基于内部部署的密钥管理和多方加密的方法。参考图6也可理解所述方法。值得注意的是,图7的许多步骤类似于图5的步骤。
在步骤S702,密钥管理计算机608可检取存储在硬件安全模块606中的密码密钥。在一些实施例中,密钥管理计算机608可首先从一个或多个实体接收密钥份额预配请求,所述一个或多个实体例如第一计算机节点616和第二计算机节点618,或第一密钥份额数据库612和第二密钥份额数据库614。密钥管理计算机608可使用客户端证书验证或认证请求者,所述客户端证书例如对应于执行多方密码术的一个或多个计算机节点的证书(MPC客户端证书)。密钥管理计算机608可另外例如使用HSM客户端证书验证或认证硬件安全模块606。在执行任何任选验证或认证步骤之后,密钥管理计算机608可从硬件安全模块606检取密码密钥。
在步骤S704,密钥管理计算机608可从存储在硬件安全模块606中的密钥(即,密码密钥)生成或形成第一密钥份额和第二密钥。存在数个可将密码密钥用于生成两个或更多个密钥份额的方式。作为一个示例,密钥管理计算机608可使用任何合适的密码方面安全的随机数生成器来生成随机数,并将所述随机数用作两个密钥份额中的一个(例如,第一密钥份额)。密钥管理计算机608可计算第一密钥份额和来自硬件安全模块606的密码密钥的XOR(异或),并将第一密钥份额和密码密钥的XOR用作第二密钥份额。然而,可使用任何合适的秘密共享方法来从密码密钥生成第一和第二密钥份额,所述方法例如沙米尔秘密共享或中国剩余定理。
在步骤S706,密钥管理计算机608可将第一密钥份额和第二密钥份额分别传送给第一密钥份额数据库612和第二密钥份额数据库614。第一计算机节点616和第二计算机节点618可检取其相应的密钥份额以便执行多方密码操作,并且可能无权访问对应于另一计算机节点的密钥份额。
在步骤S708,第一计算机节点616可从第一密钥份额数据库612检取第一密钥份额,以便将第一密钥份额用作多方密码操作的部分。
在步骤S710,第二计算机节点618可从第二密钥份额数据库614检取第二密钥份额,以便将第二密钥份额用作多方密码操作的部分。
在步骤S712,第一计算机节点616可从客户端计算机620接收初始消息。所述初始消息可包括客户端计算机620想要加密或解密的消息,例如,所述初始消息可以是明文或密文。所述初始消息可另外包括关于请求的操作的信息,例如,客户端计算机620是否希望初始消息被加密或解密。客户端计算机620和第一计算机节点616可在客户端计算机620将初始消息传送给第一计算机节点616之前相互或以其它方式对彼此进行认证。
在步骤S714,第一计算机节点616可将初始消息传送给第二计算机节点618。在一些实施例中,第二计算机节点618可生成混淆电路、第二混淆密钥份额和混淆消息。在这些实施例中,第二计算机节点618可使用初始消息来生成混淆电路、第二混淆密钥份额和/或混淆消息。
在步骤S716,第一计算机节点616可生成混淆电路、基于第一密钥份额和混淆电路的第一混淆密钥份额,以及基于初始消息和混淆电路的混淆消息。可通过数个方式实现混淆电路的生成,而下文旨在作为非限制性示例。
第一计算机节点616可拥有限定可用于执行加密的布尔电路或未标记混淆电路的模板或文件,所述电路例如实施AES密码系统的加密或解密算法的布尔电路。第一计算机节点616可使用随机数生成器生成对应于混淆电路的输入和输出线标记。第一计算机节点616可基于第一密钥份额而使用一些输入线标记来生成第一混淆密钥份额。例如,如果第一密钥份额长度为256位,则混淆电路可拥有与第一密钥份额对应的256个输入线。可基于对应于第一密钥份额的256个输入线标记来生成第一混淆密钥份额。同样,混淆电路可拥有对应于初始消息的某一数目的输入线。可通过确定对应于初始消息的输入线标记生成混淆消息。
现参考图7B,在步骤S718,第二计算机节点618可生成第二混淆电路、基于存储于第二密钥份额数据库614中的第二密钥份额的第二混淆密钥份额,以及第二混淆消息。第二计算机节点618可按第一计算机节点616生成混淆电路、第一混淆密钥份额和混淆消息基本相同的方式生成第二混淆电路、第二混淆密钥份额和第二混淆消息。
在步骤S720,第一计算机节点616可将混淆电路、第一混淆密钥份额和混淆消息传送给第三计算机节点622。在一些实施例中,所述混淆电路可被称为第一混淆电路,并且所述混淆消息可被称为第一混淆消息。
在步骤S722,第二计算机节点618可将第二混淆电路、第二混淆密钥份额和第二混淆消息传送给第三计算机节点622。
在步骤S724,第三计算机节点622可确定第一混淆电路与第二混淆电路匹配以及第一混淆消息与第二混淆消息匹配。第三计算机节点622可执行此验证,以便确定第一计算机节点616和第二计算机节点618在要执行的多方密码操作方面已达成一致。第三计算机节点622可使用任何合适的方法来验证第一混淆电路与第二混淆电路匹配以及第一混淆消息与第二混淆消息匹配。例如,第三计算机节点622可遍历第一和第二混淆消息(以及表示第一和第二混淆电路的任何文件或数据)并执行逐位或逐字节比较,以便验证混淆消息以及混淆电路一致。或者,第三计算机节点622可比较两个混淆电路或混淆消息的散列。
在步骤S726,第三计算机节点622可通过将第一混淆密钥份额、第二混淆密钥份额和混淆消息输入到混淆电路来生成后续消息。混淆电路可包括对应于第一密钥份额、第二密钥份额和混淆消息的数个输入线。第三计算机节点622可使用对应于那些输入线(即,第一混淆密钥份额、第二混淆密钥份额和混淆消息)的标记来解密对应的输出线,所述标记可用作解密连续混淆门的输出线的标记,如上文参考图2和3所描述。结果可以是对应于后续消息的一组输出线标记。
在步骤S728,第三计算机节点622可将后续消息传送给第一计算机节点616。
在步骤S730,第一计算机节点616可将后续消息或其衍生内容传送给客户端计算机620。在一些实施例中,后续消息可以是对应于混淆加密或解密电路的输出的一组输出线标记。第一计算机节点616可通过将所述标记替换为其对应的布尔值来对消息解除混淆,之后将解除混淆的消息传送给客户端计算机620。在一些实施例中,后续消息或其衍生内容是密文(即,混淆电路用于执行加密)。在其它实施例中,后续消息或其衍生内容是明文(即,混淆电路用于执行解密)。
可参考示出第一计算机节点800的框图的图8更好地理解图4和图6的第一计算机节点。第一计算机节点800可包括处理器802、通信接口804、存储第一密钥份额808的安全存储器元件以及计算机可读介质810,所述计算机可读介质包括代码或其它软件模块,包括通信模块812、密码术模块814和混淆电路模块816。
处理器802可以是如上文术语部分中描述的任何合适的处理设备或装置。通信接口804可包括使第一计算机节点800能够通过网络与其它计算机或系统通信的网络接口,所述网络例如分布式计算网络、内部部署网络(例如局域网)或例如互联网的网络。
安全存储器元件806可包括在一定程度上受保护的存储器或计算机可读介质。存储在安全存储器元件806上的数据可以加密形式存储。在一些实施例中,安全存储器元件806可包括与计算机可读介质810分开的硬件模块。在其它实施例中,安全存储器元件806可包括来自计算机可读介质810的受保护存储器段。安全存储器元件806可安全地存储第一密钥份额808。第一计算机节点800可从安全存储器元件806检取第一密钥份额808,以便生成混淆密钥份额作为多方加密过程的部分。在一些实施例中,例如在第一密钥份额808存储在密钥份额数据库中的内部部署实施例中,第一计算机节点800可能不存储密钥份额808。
通信模块812可包括可由处理器802执行的代码或软件,以用于建立第一计算机节点800与其它实体之间的通信,所述其它实体包括代理、第二计算机节点、第三计算机节点、客户端计算机或密钥份额数据库。第一计算机节点800可使用通信模块812以便从这些实体接收数据。这可包括例如通过代理从密钥管理计算机接收第一密钥份额、从密钥份额数据库接收第一密钥份额、从客户端计算机接收初始消息(例如加密消息)或从第三计算机节点接收后续消息。第一计算机节点800可另外使用通信模块812将数据传送给第二计算机节点、第三计算机节点和客户端计算机,例如,第一计算机节点800可从客户端计算机接收初始消息,并将初始消息传送给第二计算机节点。第一计算机节点800可另外将混淆电路、混淆消息和混淆密钥份额传送给第三计算机节点,第三计算机节点可使用所述混淆电路、混淆消息和混淆密钥份额以便对混淆消息进行加密或解密,从而生成后续消息。第一计算机节点800还可使用通信模块812将后续消息传送给客户端计算机。通信模块812可包括建立安全通信信道所必要的任何代码或软件。这可包括用于例如执行相互TLS认证、认证客户端证书等的代码。
密码术模块814可包括可由处理器802执行以用于执行密码操作的软件或代码。这些密码操作可以是结合混淆电路模块816用以生成混淆电路的操作。例如,密码术模块814可包括用于生成伪随机数的代码,所述伪随机数可用作混淆电路中的混淆门的标记。作为另一示例,密码术模块814可用于执行加密或解密操作以作为生成混淆门或混淆电路的部分,例如使用对应的输入线作为密码密钥来加密与输出线相关联的标记。
混淆电路模块816可包括可由处理器执行的软件或代码,以用于生成混淆电路、混淆消息、混淆密钥份额以及用于对消息解除混淆。第一计算机节点800可使用混淆电路模块816生成混淆电路、第一混淆密钥份额和混淆消息。第一计算机节点800可另外使用混淆电路模块816对混淆的后续消息解除混淆,之后将解除混淆的后续消息传送给客户端计算机。
可通过数个方式实现混淆电路的生成,而下文旨在仅作为单个非限制性示例。混淆电路模块816可包括模板文件或代码,其对应于用于执行加密的混淆电路,例如用于实施AES的混淆电路。模板文件可指定混淆电路中混淆门的数目以及它们的相互关系,例如不同混淆门的输入和输出线彼此连接的方式。第一计算机节点800可通过确定模板文件中与每个输入和输出线相关联的标记来生成混淆电路。第一计算机节点800可使用混淆电路模块815和密码术模块814来生成随机数,并将每个生成的随机数作为标记分配给每个输入和输出线。
第二计算机节点(例如图4的第二计算机节点418)可大体上执行第一计算机节点800的类似操作,并且可大体上参考图8进行理解。这些操作可包括生成混淆值、混淆消息和混淆电路等等。第一计算机节点800和第二计算机节点可同步,使得两个计算机节点都可生成一致的混淆电路。此同步可例如通过第一计算机节点800和第二计算机节点使用一致的用于随机数生成的种子值来实现。
通过图9中所示的第三计算机节点900的框图可更好地理解图4和图6的第三计算机节点。第三计算机节点900可包括处理器902、通信接口904和计算机可读介质906。计算机可读介质906可包括通信模块908、验证模块910和混淆电路评估模块912。
处理器902可以是如上文术语部分中描述的任何合适的处理设备或装置。通信接口904可包括使第三计算机节点902能够通过网络与其它计算机或系统通信的网络接口,所述网络例如分布式计算网络、内部部署网络(例如局域网)或例如互联网的网络。
通信模块908可包括可由处理器902执行的代码或软件,以用于建立第三计算机节点900与其它实体之间的通信,所述其它实体包括第一计算机节点和第二计算机节点。第三计算机节点900可使用通信模块912以便从这些实体接收数据。这可包括例如从第一计算机节点接收第一混淆电路、第一混淆密钥份额和第一混淆消息,以及从第二计算机节点接收第二混淆电路、第二混淆密钥份额和第二混淆消息。第三计算机节点900可另外使用通信模块908将在多方密码操作期间生成的后续消息传送给第一计算机节点。
验证模块910可包括可由处理器902执行以用于验证混淆电路和混淆消息的代码或软件。在一些实施例中,第三计算机节点900可从第一计算机节点接收第一混淆电路和第一混淆消息,并从第二计算机节点接收第二混淆电路和第二混淆消息。第三计算机节点900可使用验证模块910以便验证第一和第二混淆消息匹配以及第一和第二混淆电路匹配,从而指示第一计算机节点和第二计算机节点在要执行的多方密码操作方面达成一致。验证模块910可包括实现任何合适的比较或验证方法的代码。例如,验证模块910可包括可由处理器902执行的代码,以用于遍历第一和第二混淆消息并执行逐位或逐字节比较,以便验证所述消息相同。验证模块910还可包括用于对第一混淆电路和第二混淆电路执行类似比较的代码。
混淆电路评估模块912可包括可由处理器902执行以用于评估混淆电路的代码。这些可包括用于执行多方加密的混淆电路。第三计算机节点可将第一混淆密钥份额、第二混淆密钥份额和第一或第二混淆消息输入混淆电路中,以便生成后续消息。后续消息可以是混淆的或解除混淆的,并且可对应于第一或第二混淆消息。例如,所述混淆消息可对应于明文初始消息,并且所述后续消息可对应于密文消息。混淆电路评估模块912可包括评估混淆电路所必要的任何代码或软件。例如,混淆电路评估模块912可包括使第三计算机节点900能够使用对应的输入线标记解密输出线标记的密码处理功能。
关于混淆电路和加密的其它细节可见于2017年8月31日提交的PCT/US2017/049722,其以全文引用的方式并入本文中。
本文所提及的任何计算机系统都可以使用任何合适数量的子系统。在一些实施例中,计算机系统包括单个计算机设备,其中子系统可以是计算机设备的组件。在其它实施例中,计算机系统可以包括多个计算机设备,每个计算机设备都是具有内部组件的子系统。
计算机系统可包括例如由外部接口或由内部接口连接在一起的多个组件或子系统。在一些实施例中,计算机系统、子系统或设备可以通过网络进行通信。在此类情况下,一个计算机可视为客户端,且另一计算机可视为服务器,其中每台计算机可以是同一计算机系统的一部分。客户端和服务器可以各自包括多个系统、子系统或组件。
应理解,本发明的任何实施例都可以使用硬件(例如,专用集成电路或现场可编程门阵列)和/或使用计算机软件以控制逻辑的形式实现,其中通用可编程处理器是模块化的或集成的。如本文所用,处理器包括单核处理器、在同一集成芯片上的多核处理器,或在单个电路板上或网络化的多个处理单元。基于本公开和本文中所提供的教示,本领域的普通技术人员将知道并且了解使用硬件和硬件与软件的组合来实施本发明的实施例的其它方式和/或方法。
本申请中描述的任何软件组件或功能可以被实施为要使用例如Java、C、C++、C#、Objective-C、Swift的任何合适计算机语言或例如Perl或Python的脚本语言,使用例如常规的或面向对象的技术由处理器执行的软件代码。软件代码可作为一系列指令或命令存储在计算机可读介质上以供存储和/或传送,合适的介质包括随机存取存储器(RAM)、只读存储器(ROM)、例如硬盘驱动器或软盘的磁性介质,或例如光盘(CD)或数字通用盘(DVD)的光学介质、闪存存储器等等。计算机可读介质可以是此类存储或传送装置的任何组合。
此类程序还可以使用适应于经由包括互联网的符合多种协议的有线、光学和/或无线网络进行传送的载波信号来编码和传送。因此,根据本发明的实施例的计算机可读介质可以使用以此类程序编码的数据信号来创建。以程序代码编码的计算机可读介质可与兼容装置一起封装或与其它装置分开提供(例如,经由互联网下载)。任何此类计算机可读介质可以驻留于单个计算机产品(例如,硬盘驱动器、CD或整个计算机系统)上或内,且可存在于系统或网络内的不同计算机产品上或内。计算机系统可包括用于将本文中所提及的任何结果提供给用户的监视器、打印机或其它合适的显示器。
本文所述的任何方法可以完全地或部分地用包括可被配置成执行这些步骤的一个或多个处理器的计算机系统执行。因此,实施例可涉及被配置成执行本文所述的任何方法的步骤、可能具有执行相应步骤或相应步骤群组的不同组件的计算机系统。尽管呈现为编号步骤,但本文中的方法的步骤可以同时或以不同顺序被执行。另外,这些步骤的部分可与来自其它方法的其它步骤的部分一起使用。同样,一个步骤的全部或部分可以是可选的。另外,任何方法的任何步骤可以用模块、电路或用于执行这些步骤的其它手段来执行。
在不偏离本发明的实施例的精神和范围的情况下,具体实施例的特定细节可以任何合适方式组合。然而,本发明的其它实施例可涉及与每个单独的方面相关的特定实施例,或者这些单独的方面的特定组合。上文对本发明的示例性实施例的描述已经出于说明和描述的目的呈现。不旨在是详尽的,或将本发明局限到描述的精确形式,根据上文的教导许多修改和变形是可能的。选择和描述这些实施例是为了最好地解释本发明的原理及其实际应用,从而使本领域的技术人员能够在各种实施例中最好地利用本发明,并且进行适合于预期的特定用途的各种修改。
除非明确指示有相反的意思,否则叙述“一个/种”或“该/所述”旨在表示“一个/种或多个/种”。除非明确指示有相反的意思,“或”的使用旨在表示是“包括性的或”,而不是“排他性的或”。
本文中提及的所有专利、专利申请、公开和描述出于所有目的以引用方式全部并入本文。不承认它们是现有技术。

Claims (20)

1.一种方法,包括:
由第一计算机节点从密钥管理计算机接收第一密钥份额;
由所述第一计算机节点从客户端计算机接收初始消息;
由所述第一计算机节点将所述初始消息传送给第二计算机节点;
由所述第一计算机节点生成混淆电路、基于所述第一密钥份额和所述混淆电路的第一混淆密钥份额以及基于所述初始消息和所述混淆电路的混淆消息;
由所述第一计算机节点将所述混淆电路、所述第一混淆密钥份额和所述混淆消息传送给第三计算机节点,其中所述第三计算机节点还从所述第二计算机节点接收基于存储于所述第二计算机节点处的第二密钥份额和所述混淆电路的第二混淆密钥份额,
这使所述第三计算机节点通过将所述第一混淆密钥份额、所述第二混淆密钥份额和所述混淆消息输入到所述混淆电路而生成后续消息并将所述后续消息传送给所述第一计算机节点;以及
由所述第一计算机节点将所述后续消息或其衍生内容传送给所述客户端计算机。
2.根据权利要求1所述的方法,其中所述混淆电路是第一混淆电路,其中所述混淆消息是第一混淆消息,并且其中所述第三计算机节点还从所述第二计算机节点接收第二混淆电路以及基于所述初始消息和所述第二混淆电路的第二混淆消息。
3.根据权利要求2所述的方法,其中所述第三计算机节点确定所述第一混淆电路与所述第二混淆电路匹配以及所述第一混淆消息与第二混淆消息匹配。
4.根据权利要求1所述的方法,还包括:
由所述第一计算机节点基于所述后续消息和所述混淆电路生成解除混淆的后续消息。
5.根据权利要求1所述的方法,其中所述初始消息是明文,并且所述后续消息或其衍生内容是密文。
6.根据权利要求1所述的方法,其中所述密钥管理计算机从存储在硬件安全模块中的密钥生成所述第一密钥份额。
7.根据权利要求1所述的方法,其中所述密钥管理计算机形成所述第一密钥份额和所述第二密钥份额。
8.根据权利要求1所述的方法,其中所述第一计算机节点、所述第二计算机节点和所述第三计算机节点全都处于同一内部部署处。
9.根据权利要求1所述的方法,其中所述第一计算机节点、第二计算机节点和第三计算机节点是分布式计算网络的部分。
10.一种第一计算机节点,包括:
处理器;以及
耦合到所述处理器的非瞬态计算机可读介质,所述非瞬态计算机可读介质包括能由所述处理器执行以实施方法的代码,所述方法包括:
从密钥管理计算机接收第一密钥份额;
从客户端计算机接收初始消息;
将所述初始消息传送给第二计算机节点;
生成混淆电路、基于所述第一密钥份额和所述混淆电路的第一混淆密钥份额以及基于所述初始消息和所述混淆电路的混淆消息;
将所述混淆电路、所述第一混淆密钥份额和所述混淆消息传送给第三计算机节点,其中所述第三计算机节点还从所述第二计算机节点接收基于存储于所述第二计算机节点处的第二密钥份额和所述混淆电路的第二混淆密钥份额,
这使所述第三计算机节点通过将所述第一混淆密钥份额、所述第二混淆密钥份额和所述混淆消息输入到所述混淆电路而生成后续消息并将所述后续消息传送给所述第一计算机节点;以及
将所述后续消息或其衍生内容传送给所述客户端计算机。
11.根据权利要求10所述的第一计算机节点,其中所述混淆电路是第一混淆电路,其中所述混淆消息是第一混淆消息,并且其中所述第三计算机节点还从所述第二计算机节点接收第二混淆电路以及基于所述初始消息和所述混淆电路的第二混淆消息。
12.根据权利要求11所述的第一计算机节点,其中所述第三计算机节点确定所述第一混淆电路与所述第二混淆电路匹配以及所述第一混淆消息与所述第二混淆消息匹配。
13.根据权利要求10所述的第一计算机节点,其中所述方法还包括:
基于所述后续消息和所述混淆电路生成解除混淆的后续消息。
14.根据权利要求10所述的第一计算机节点,其中所述初始消息是明文,并且所述后续消息或其衍生内容是密文。
15.根据权利要求10所述的第一计算机节点,其中所述密钥管理计算机从存储在硬件安全模块中的密钥生成所述第一密钥份额。
16.根据权利要求10所述的第一计算机节点,其中所述密钥管理计算机形成所述第一密钥份额和所述第二密钥份额。
17.根据权利要求10所述的第一计算机节点,其中所述第一计算机节点、所述第二计算机节点和所述第三计算机节点全都处于同一内部部署处。
18.一种方法,包括:
由第三计算机节点从第一计算机节点接收第一混淆电路、第一混淆密钥份额和第一混淆消息;
由所述第三计算机节点从第二计算机节点接收第二混淆电路、第二混淆密钥份额和第二混淆消息;
由所述第三计算机节点通过将所述第一混淆密钥份额、所述第二混淆密钥份额和所述第一或所述第二混淆消息输入到所述第一或所述第二混淆电路而生成后续消息;以及
由所述第三计算机节点将所述后续消息传送给所述第一计算机节点。
19.根据权利要求18所述的方法,还包括由所述第三计算机节点验证所述第一混淆电路与所述第二混淆电路匹配以及所述第一混淆消息与所述第二混淆消息匹配。
20.根据权利要求18所述的方法,其中所述第一计算机节点对所述后续消息解除混淆并将所述后续消息传送给客户端计算机。
CN201880097930.XA 2018-09-24 2018-09-24 多方计算的密钥管理 Active CN112740615B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2018/052448 WO2020068038A1 (en) 2018-09-24 2018-09-24 Key management for multi-party computation

Publications (2)

Publication Number Publication Date
CN112740615A true CN112740615A (zh) 2021-04-30
CN112740615B CN112740615B (zh) 2024-05-24

Family

ID=69952426

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880097930.XA Active CN112740615B (zh) 2018-09-24 2018-09-24 多方计算的密钥管理

Country Status (5)

Country Link
US (2) US11664982B2 (zh)
EP (1) EP3857812A4 (zh)
CN (1) CN112740615B (zh)
SG (1) SG11202102202RA (zh)
WO (1) WO2020068038A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9768953B2 (en) * 2015-09-30 2017-09-19 Pure Storage, Inc. Resharing of a split secret
US11507883B2 (en) 2019-12-03 2022-11-22 Sap Se Fairness and output authenticity for secure distributed machine learning
US11748770B1 (en) * 2020-03-30 2023-09-05 Amdocs Development Limited System, method, and computer program for using shared customer data and artificial intelligence to predict customer classifications
US11658815B2 (en) * 2020-08-03 2023-05-23 Coinbase Il Rd Ltd. System and method for performing key operations during a multi-party computation process
US11757634B2 (en) * 2021-03-30 2023-09-12 Bank Of America Corporation System for secure client-side cryptographic key retrieval using cryptographic key splitting and wrapping
CN113901507B (zh) * 2021-12-08 2022-04-19 粤港澳大湾区数字经济研究院(福田) 一种多参与方的资源处理方法及隐私计算系统
CN117254911B (zh) * 2023-11-17 2024-02-13 北京安华金和科技有限公司 一种基于秘密分享的多方安全计算处理方法和系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090147958A1 (en) * 2007-12-08 2009-06-11 International Business Machines Corporation Dynamic, Selective Obfuscation of Information for Multi-Party Transmission
US20110211692A1 (en) * 2010-02-26 2011-09-01 Mariana Raykova Secure Computation Using a Server Module
US20170093879A1 (en) * 2015-09-30 2017-03-30 International Business Machines Corporation Multi-level security enforcement utilizing data typing
CN106797311A (zh) * 2014-08-29 2017-05-31 维萨国际服务协会 用于安全密码生成的方法
US20170171174A1 (en) * 2015-12-11 2017-06-15 Amazon Technologies, Inc. Key exchange through partially trusted third party
CN108352015A (zh) * 2016-02-23 2018-07-31 恩链控股有限公司 用于基于区块链的系统结合钱包管理系统的安全多方防遗失存储和加密密钥转移

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9077539B2 (en) * 2011-03-09 2015-07-07 Microsoft Technology Licensing, Llc Server-aided multi-party protocols
US9065637B2 (en) * 2012-01-25 2015-06-23 CertiVox Ltd. System and method for securing private keys issued from distributed private key generator (D-PKG) nodes
US9736128B2 (en) * 2014-05-21 2017-08-15 The Board Of Regents, The University Of Texas System System and method for a practical, secure and verifiable cloud computing for mobile systems
US10178090B2 (en) * 2015-02-27 2019-01-08 Bar-Ilan University System and methods for protecting keys using garbled circuits
SG11201804478VA (en) * 2015-05-19 2018-06-28 Cryptomove Inc Security via data concealment
US20170359321A1 (en) * 2016-06-13 2017-12-14 Microsoft Technology Licensing, Llc Secure Data Exchange
US11563567B2 (en) * 2017-09-27 2023-01-24 Visa International Service Association Secure shared key establishment for peer to peer communications
US11818249B2 (en) * 2017-12-04 2023-11-14 Koninklijke Philips N.V. Nodes and methods of operating the same
US11251959B2 (en) * 2018-07-09 2022-02-15 Ares Technologies, Inc. Method of manufacturing a secure computing hardware apparatus
CN109255247B (zh) * 2018-08-14 2020-08-14 阿里巴巴集团控股有限公司 多方安全计算方法及装置、电子设备
CN109359470B (zh) * 2018-08-14 2020-09-01 阿里巴巴集团控股有限公司 多方安全计算方法及装置、电子设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090147958A1 (en) * 2007-12-08 2009-06-11 International Business Machines Corporation Dynamic, Selective Obfuscation of Information for Multi-Party Transmission
US20110211692A1 (en) * 2010-02-26 2011-09-01 Mariana Raykova Secure Computation Using a Server Module
CN106797311A (zh) * 2014-08-29 2017-05-31 维萨国际服务协会 用于安全密码生成的方法
US20170093879A1 (en) * 2015-09-30 2017-03-30 International Business Machines Corporation Multi-level security enforcement utilizing data typing
US20170171174A1 (en) * 2015-12-11 2017-06-15 Amazon Technologies, Inc. Key exchange through partially trusted third party
CN108352015A (zh) * 2016-02-23 2018-07-31 恩链控股有限公司 用于基于区块链的系统结合钱包管理系统的安全多方防遗失存储和加密密钥转移

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
DAVID W ARCHER, ET AL.,: "From Keys to Databases-Real-World Applications of Secure Multi-Party Computation", 《COMPUTER JOURNAL》, vol. 61, no. 12, pages 1749 - 1771 *
MOHASSEL PAYMAN, ROSULEK MIKE, ET AL.,: "Fast and Secure Three-party Computation: The Garbled Circuit Approach", 《CCS\'15: PROCEEDINGS OF THE 22ND ACM SIGSAC CONFERENCE ON COMPUTER AND COMMUNICATIONS SECURITY》, pages 591 - 602 *

Also Published As

Publication number Publication date
US11664982B2 (en) 2023-05-30
WO2020068038A1 (en) 2020-04-02
US20210273784A1 (en) 2021-09-02
EP3857812A4 (en) 2021-09-15
EP3857812A1 (en) 2021-08-04
US20230254129A1 (en) 2023-08-10
SG11202102202RA (en) 2021-04-29
CN112740615B (zh) 2024-05-24

Similar Documents

Publication Publication Date Title
US10785019B2 (en) Data transmission method and apparatus
CN112740615B (zh) 多方计算的密钥管理
US11271730B2 (en) Systems and methods for deployment, management and use of dynamic cipher key systems
CN109891423B (zh) 使用多个控制机构的数据加密控制
US9852300B2 (en) Secure audit logging
US20170244687A1 (en) Techniques for confidential delivery of random data over a network
CN105306194B (zh) 供加密档案和/或通讯协定的多重加密方法与系统
US20130028419A1 (en) System and a method for use in a symmetric key cryptographic communications
KR102656403B1 (ko) 보안 통신에 사용하기 위한 키 생성
Bhandari et al. A framework for data security and storage in Cloud Computing
WO2019038634A1 (en) COMPUTER-IMPLEMENTED SYSTEM AND METHOD FOR HIGH-SPEED HIGH-SPEED ENCRYPTION, ENCRYPTION AND TRANSMISSION OF DATA
Azougaghe et al. An efficient algorithm for data security in cloud storage
GB2603495A (en) Generating shared keys
Olumide et al. A hybrid encryption model for secure cloud computing
US11917056B1 (en) System and method of securing a server using elliptic curve cryptography
CN116866029A (zh) 随机数加密数据传输方法、装置、计算机设备及存储介质
Thangavel et al. An analysis of privacy preservation schemes in cloud computing
KR102304831B1 (ko) 순열그룹 기반의 암호화 기술을 적용한 암호화시스템 및 방법
Kumar et al. Handling secure healthcare data streaming using R2E algorithm
Suo et al. Encryption technology in information system security
Kaur et al. Cryptography in cloud computing
Surya et al. Single sign on mechanism using attribute based encryption in distributed computer networks
CN116599771B (zh) 数据分级保护传输方法及装置、存储介质和终端
Saini et al. Cryptographic hybrid model-an advancement in cloud computing security: a survey
Divya et al. Security in data forwarding through elliptic curve cryptography in cloud

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