CN115004627A - 分布式对称加密 - Google Patents
分布式对称加密 Download PDFInfo
- Publication number
- CN115004627A CN115004627A CN202180010614.6A CN202180010614A CN115004627A CN 115004627 A CN115004627 A CN 115004627A CN 202180010614 A CN202180010614 A CN 202180010614A CN 115004627 A CN115004627 A CN 115004627A
- Authority
- CN
- China
- Prior art keywords
- cryptographic
- commitment
- partial
- client computer
- verification
- 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.)
- Pending
Links
- 238000012795 verification Methods 0.000 claims abstract description 220
- 230000036961 partial effect Effects 0.000 claims abstract description 183
- 238000000034 method Methods 0.000 claims abstract description 107
- 238000004364 calculation method Methods 0.000 claims description 76
- 230000008569 process Effects 0.000 abstract description 31
- 230000006870 function Effects 0.000 description 95
- 238000004891 communication Methods 0.000 description 39
- 230000015654 memory Effects 0.000 description 24
- 238000010586 diagram Methods 0.000 description 16
- 238000010200 validation analysis Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 230000002452 interceptive effect Effects 0.000 description 5
- 230000000670 limiting effect Effects 0.000 description 5
- 239000000463 material Substances 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 101100203322 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) SKS1 gene Proteins 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- FMFKNGWZEQOWNK-UHFFFAOYSA-N 1-butoxypropan-2-yl 2-(2,4,5-trichlorophenoxy)propanoate Chemical compound CCCCOCC(C)OC(=O)C(C)OC1=CC(Cl)=C(Cl)C=C1Cl FMFKNGWZEQOWNK-UHFFFAOYSA-N 0.000 description 1
- 235000007754 Achillea millefolium Nutrition 0.000 description 1
- 240000000073 Achillea millefolium Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 230000001404 mediated effect Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3255—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using group based signatures, e.g. ring or threshold signatures
-
- 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 Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
公开了用于改进的分布式对称密码术的***和方法。客户端计算机可与许多密码装置通信,以便加密或解密数据。每个密码装置可拥有可用在加密或解密数据的过程中的秘密份额和验证份额。所述客户端计算机可生成承诺并将所述承诺发送到所述密码装置。每个密码装置都可基于所述承诺和所述密码装置相应的秘密份额生成部分计算,并且同样基于所述承诺和所述密码装置相应的验证份额生成部分签名。所述部分计算和所述部分签名可发送到所述客户端计算机。所述客户端计算机可使用所述部分计算和所述部分签名来分别生成密码密钥和验证签名。所述客户端计算机可使用所述密码密钥加密或解密消息。
Description
相关申请交叉引用
本申请是国际专利申请,其要求2020年1月31日提交的第16/779,422号美国专利申请的提交日的权益,所述美国专利申请出于所有目的以全文引用的方式并入本文中。
背景技术
“密码术即服务(cryptography as a service)”可指一个实体代表另一实体执行密码操作的过程。例如,服务器计算机可代表客户端计算机加密数据(例如敏感医疗记录或其它私人文件)。稍后,当客户端计算机想要检取已加密数据时,客户端计算机可与服务器计算机通信以便解密所述已加密数据。替代地或另外,客户端计算机可将已加密数据发送到另一客户端计算机。这另一客户端计算机可与服务器计算机通信,以便解密已加密数据。因此,密码术即服务可用于跨时间或空间保护数据。密码术即服务可以是合乎需要的,因为服务器可能更有能力存储敏感密码信息,例如秘密密码密钥。
使用共享秘密的分布式密码术是可用于将密码术实施为服务的一种技术。胜于,针对客户端计算机执行密码术的单个服务器计算机,密码装置(例如,服务器计算机)的分布式网络可共同针对客户端计算机执行密码术。密码材料,例如秘密密钥或共享秘密,可被划分成秘密份额并在密码装置当中分配。这些当事方可使用其相应秘密份额共同执行加密或解密。与常规密码术相比,分布式密码术可提供安全性益处,因为攻击者更难以获取共享秘密。攻击者必须获取多个秘密份额以重建秘密密钥或共享秘密或以其它方式破坏密码***。相比之下,当使用非共享秘密执行密码术时,黑客可能只需要获取非共享秘密来破坏密码***。
分布式或其它方式的密码术可分类为对称的或非对称的。对于对称密码术,相同密码密钥可用于加密和解密数据。对于非对称密码术,使用两个密码密钥。使用一个密码密钥加密的数据必须使用另一密码密钥解密,反之亦然。非对称密码术通常比对称密码术慢得多,在一些情况下,慢三到五个数量级之多。因此,对称密码术通常优选用于高速或高通量密码术即服务应用。
然而,分布式对称密码术即服务具有一些不合需要的特性。作为一个示例,可能难以确定客户端计算机是在加密数据还是在解密数据。由于加密和解密都使用相同的密码密钥,因此客户端计算机可能声称使用所述服务来加密数据,而实际上是解密数据。这可能成问题,因为这使得难以录入或以其它方式记录客户端计算机活动。恶意客户端计算机可能滥用***,谎称执行加密操作以便例如私下解密恶意客户端无权访问的数据。
因此,需要改进分布式对称加密。
发明内容
实施例涉及改进的用于分布式对称密码术的***和方法。客户端计算机和来自密码装置网络的多个密码装置可一起工作以生成对称密码密钥和验证签名。客户端计算机可使用密码密钥来加密消息并产生密文。
客户端计算机(或接收计算机)和密码装置还可一起工作以解密所述密文并产生所述消息。当解密时,客户端计算机可将验证签名提供到密码装置。密码装置可验证所述验证签名。如果所述验证签名是合法的,则密码装置可与客户端计算机一起工作以再次产生所述密码密钥。接着,客户端计算机可使用所述密码密钥来解密所述密文。密码装置可基于验证签名来确定客户端计算机是加密消息还是解密密文,因为所述验证签名是在加密期间生成,而在解密期间验证。
一个实施例涉及一种方法,所述方法包括由计算机***执行:使用消息和随机值生成承诺;向多个密码装置中的每一者发送包括所述承诺的请求,所述多个密码装置存储从秘密值生成的多个秘密份额和从验证值生成的多个验证份额,所述请求指示所述多个密码装置中的每一者将执行对应于加密的密码函数;从所述多个密码装置接收多个部分计算,其中所述多个部分计算由所述多个密码装置使用所述多个秘密份额和所述承诺生成;从所述多个密码装置接收多个部分签名,其中所述多个部分签名由所述多个密码装置使用所述多个验证份额和所述承诺生成;基于所述多个部分计算生成密码密钥;基于所述多个部分签名生成验证签名;通过使用所述密码密钥加密所述消息和所述随机值来生成密文;以及生成包括所述密文、所述验证签名和所述承诺的有效负载。
另一实施例涉及一种方法,所述方法包括由计算机***执行:将验证签名和承诺发送到多个密码装置,其中所述多个密码装置使用验证密钥和所述承诺验证所述验证签名;接收多个部分计算,其中所述多个部分计算由所述多个密码装置使用多个秘密份额和所述承诺生成;基于所述多个部分计算生成密码密钥;以及使用所述密码密钥来解密密文以产生消息和随机值。
另一实施例涉及一种方法,所述方法包括由密码装置执行:从客户端计算机接收请求,所述请求包括使用消息和随机值生成的承诺;基于所述请求的内容确定所述客户端计算机想要加密所述消息;基于秘密份额和所述承诺生成部分计算;基于验证份额和所述承诺生成部分签名;以及将所述部分计算和所述部分签名发送到所述客户端计算机,由此使得所述客户端计算机能够:(1)使用所述部分计算生成密码密钥,(2)使用所述密码密钥加密所述消息,由此生成密文,(3)使用所述部分签名生成验证签名,并且(4)生成包括所述密文、所述验证签名和所述承诺的有效负载。
下文详细描述本公开的这些和其它实施例。例如,其它实施例涉及与本文所描述的方法相关联的***、装置和计算机可读介质。
在论述本发明的具体实施例之前,可详细描述一些术语。
术语
“服务器计算机”可以包括功能强大的计算机或计算机集群。例如,服务器计算机可包括大型主机、小型计算机集群或作为一个单元运作的一组服务器。在一个实例中,服务器计算机可以包括耦合到网络服务器的数据库服务器。服务器计算机可以包括一个或多个计算设备,并且可使用多种计算结构、布置和编译中的任一种来服务来自一个或多个客户端计算机的请求。
“存储器”可以是可以存储电子数据的任何合适的装置或多个装置。合适的存储器可以包括非瞬态计算机可读介质,其存储可由处理器执行以实现期望方法的指令。存储器的实例可以包括一个或多个存储器芯片、磁盘驱动器等。此类存储器可使用任何合适的电、光和/或磁操作模式来操作。
“处理器”可指任何合适的一个或多个数据计算装置。处理器可包括一起工作以实现所要功能的一个或多个微处理器。处理器可以包括CPU,所述CPU包括至少一个高速数据处理器,所述高速数据处理器足以执行用于执行用户和/或***生成的请求的程序组件。所述CPU可以是微处理器,例如AMD的速龙(Athlon)、钻龙(Duron)和/或皓龙(Opteron);IBM和/或摩托罗拉(Motorola)的PowerPC;IBM和索尼(Sony)的Cell处理器;英特尔(Intel)的赛扬(Celeron)、安腾(Itanium)、奔腾(Pentium)、至强(Xeon)和/或XScale;和/或类似处理器。
术语“密码密钥”可以包括在加密或解密中使用的数据。例如,密码密钥可指两个大的质数的乘积。密码密钥可用在例如RSA(Rivest、Shamir、Adleman)或AES(高级加密标准)的密码***中,并且可用于加密明文且产生密文输出,或解密密文且产生明文输出。密码密钥可以是对称的,在这种情况下,同一密钥用于加密和解密,或不对称,在这种情况下,不同密钥用于加密和解密。
术语“明文”可指未加密或呈普通形式的文本。例如,这可指在无需任何处理的情况下可由人类或计算机解读的文本,例如短语“你好,近来如何?”数字或其它符号也可适合作为明文。
术语“密文”可指呈加密形式的文本。例如,这可指必须予以解密后才可由人或计算机解读的文本。密文可使用例如RSA或AES等任何密码算法或密码***生成。
“客户端计算机”可指使用例如服务器计算机等其它计算机或装置的服务的计算机。客户端计算机可通过例如互联网的网络连接到这些其它计算机或装置。例如,客户端计算机可包括笔记本电脑,其连接到图像托管服务器以便查看存储在所述图像托管服务器上的图像。
“密码装置”可指可执行包括加密和解密的密码操作的任何装置。密码装置可参与分布式或多方密码术。密码装置的示例包括服务器计算机、硬件安全模块、台式计算机、笔记本电脑、智能手机、智能手表或其它便携式电子装置。密码装置可拥有“秘密”或“秘密份额”。
“代理装置”可指充当代理的装置。代理装置可代表其它装置执行操作。例如,代理装置可代表其它装置接收和发送消息或其它数据。用以在装置网络中的其它装置之间路由通信的代理装置可称作“集线器装置”。
术语“多方计算”可指由多方执行的计算。每一方,例如计算机、服务器或密码装置,可具有一些计算输入。各方可使用输入共同计算出计算的输出。
术语“安全多方计算”可指安全的多方计算。在一些情况下,“安全多方计算”是指其中各方彼此并不共享信息或其它输入的多方计算。示例是姚氏百万富翁问题(Yao'sMillionaires'problem),其中两个百万富翁想要在不向彼此透露其财富的情况下确定哪一个更富有。
“秘密值”或“秘密”可指作为密码过程的部分隐藏的值或事物。密码过程的安全性可能依赖于所述秘密仅为秘密的。秘密可包括密码密钥或“秘密份额”。秘密的暴露可能允许既定方以外的各方对消息进行加密或解密。
“共享秘密”可指多方之间共享的秘密值或事物。例如,共享秘密可以是密码密钥,所述密码密钥被分割以使得多方各自拥有该密码密钥的一部分。例如,双方可各自拥有包括128位密码密钥的共享秘密中的64位。
“秘密份额”可指从共享秘密导出的值。例如,秘密份额可包括秘密值的前64位。秘密份额还可包括与数字或其它数据组合的秘密值。在一些情况下,多个秘密份额可组合以再现共享秘密。
“散列函数”可以指可用于将任意长度或大小的数据映射到固定长度或大小的数据的任何函数。散列函数还可用于通过将数据用其对应的“散列值”替换来混淆数据。散列函数可用于生成可用于评估已加密数据的完整性的“承诺”或“承诺消息”数据。
“承诺”或“承诺消息”可指可用于验证某个动作过程已被遵循的数据。在密码术背景中,承诺可指可用于验证已加密消息未被篡改的消息。在消息被加密之前,可基于所述消息例如通过散列函数来产生承诺。此承诺可与已加密消息一起发送。消息被解密后,接收方可使用相同散列函数生成自己的承诺消息。接收到的承诺消息和生成的承诺消息可进行比较以验证已加密消息的完整性。
“伪随机函数”可指产生看似随机的输出的确定性函数。伪随机函数可包括防冲突散列函数以及椭圆曲线组。伪随机函数可接近于随机预言,其为将输入映射到其输出域的随机输出的理想密码原语。伪随机函数可由伪随机数发生器构成。
“随机临时数”或“密码临时数”可指可在密码过程中优选使用有限次数的随机值(例如,随机数)。随机临时数可随机或伪随机地生成,并且可结合密码散列函数使用。随机临时数可防止一些密码攻击,例如“重放攻击”。
“知识的非交互式零知识证明”可指在证明实体与验证实体之间不需要交互的知识的零知识证明。“知识的零知识证明”是证明实体可借以在不透露关于秘密的任何额外信息的情况下向验证实体证明对秘密的知识的陈述是正确的一种方法。知识的非交互式零知识证明可用于验证计算的准确性或性能。
“验证值”可指用于验证计算、事实或知识的数据。验证值的示例是如上文所论述的知识的非交互式零知识证明。验证值的另一示例是密码密钥。例如,私用密码密钥可用于通过使用所述私用密码密钥对数据进行签名或加密来验证拥有所述密码密钥的人员或计算机的身份。包括密码密钥的验证值可称作“验证密钥”。
“验证份额”可指验证值的部分,或从验证值导出的数据。多个验证份额可以某一方式组合以产生对应验证值。例如,一系列验证份额的乘积可等于对应的验证值。
“签名”、“数字签名”或“验证签名”可指用于使用密码术验证数据真实性的数据。计算机可通过使用只有所述计算机知晓的密码密钥(即,私钥)加密数据来对所述数据进行数字签名。其它计算机可通过使用对应于所述计算机的公开已知密码密钥(即,公钥)解密所述数据来验证签名。验证签名可用于验证已签名数据的来源或已签名数据的真实性。
“部分签名”可指数字签名的部分。部分签名在与其它部分签名组合时可再现数字签名。例如,多个部分签名的异或可用于再现数字签名。
“部分计算”可指计算的部分。可组合多个部分计算以产生计算的输出。例如,多个固体的体积可包括那些固体的总体积的部分计算,并且可通过相加来组合那些部分计算。部分计算可由参与多方计算的多个方或密码装置生成。
“消息”可以指可在两个实体之间发送的任何数据。消息可包括明文数据或密文数据。消息可以包括字母数字序列(例如,“hello123”)或任何其它数据(例如,图像或视频文件)。消息可在计算机或其它实体之间发送。
“有效负载”可指发送的消息中的信息。有效负载可排除自动生成的元数据。有效负载可包括多个数据元素。例如,对应于人类生命统计的有效负载可包括对应于人类的体重、身高和年龄的三个数据值。
“密钥生成种子”可指用于生成密码密钥的值或其它数据。例如,密钥生成种子可以是数字,例如“12034024”。密钥生成种子可用作随机或伪随机函数的输入以生成密码密钥。密钥生成函数可以是一致的,也就是说,相同密钥生成种子生成相同的密码密钥。
附图说明
图1示出根据一些实施例的示例性分布式对称密码术***的***框图。
图2示出根据一些实施例的示例性客户端计算机的***框图。
图3示出根据一些实施例的示例性密码装置的***框图。
图4示出根据一些实施例的示例性秘密份额和验证份额预配***的***框图。
图5示出根据一些实施例的示例性秘密份额和验证份额预配过程的序列图。
图6示出分布式对称加密的示例性方法的混合序列图。
图7示出分布式对称解密的示例性方法的混合序列图。
图8示出根据一些实施例的用于改进的分布式对称加密的示例性方法的混合序列图。
图9示出根据一些实施例的用于改进的分布式对称解密的示例性方法的混合序列图。
图10示出根据一些实施例的示例性计算机***。
具体实施方式
一些实施例涉及对分布式对称密码术的改进,所述分布式对称密码术包括作为服务的分布式对称加密和分布式对称解密两者。
客户端计算机和密码装置网络中的多个密码装置可一起工作以加密消息或解密密文。密码装置网络中并非所有密码装置都必然需要参与,只有阈值数目的密码装置参与。例如,在具有十个密码装置的网络中,可能只需要七个密码装置参与。
在分布式对称加密期间,客户端计算机可生成待加密消息的承诺。所述承诺可包括消息的散列。客户端计算机可将承诺发送到参与的密码装置。
密码装置可存储用于加密或解密的秘密份额以及存储验证份额。参与的密码装置可使用承诺和其相应秘密份额生成多个部分计算。这些秘密份额可对应于共享秘密。这些秘密份额的阈值数目可以某种方式组合以再现所述共享秘密。
同样,多个参与的密码装置可使用所述承诺和其相应验证份额生成多个部分签名。这些验证份额可对应于验证值。这些验证份额的阈值数目可在某种情况下组合以再现所述验证值。在一些实施例中,验证值可对应于验证密钥。
参与的密码装置可将多个部分计算和多个部分签名发送到客户端计算机。客户端计算机可使用多个部分计算来生成密码密钥,并且使用多个部分签名来生成验证签名。客户端计算机可使用密码密钥加密消息以产生密文。
为了解密消息,客户端计算机(其可与用于加密的计算机***相同)可将承诺和验证签名发送到额外多个密码装置。这额外多个密码装置可包括在分布式对称加密期间使用的相同密码装置,或同样存储相应秘密和验证密钥的不同的多个密码装置。验证密钥可包括对应于验证值的公钥,所述验证值可包括私钥。
额外多个密码装置可使用验证密钥验证所述验证签名。如果验证签名合法,则额外多个密码装置可生成额外多个部分计算并将所述额外多个部分计算发送到客户端计算机。客户端计算机可使用所述额外多个部分计算来生成密码密钥,然后使用所述密码密钥解密消息。以这些方式,客户端计算机和密码装置可执行分布式对称密码术。
下文参考各图更详细地描述一些实施例。在第I节描述秘密共享和分布式伪随机函数等概念。在第II节参考图1描述示例性分布式密码网络。在II节参考图2描述示例性客户端计算机。在第II节参考图3描述示例性密码装置。在第III节参考图4和5描述用于秘密份额分配的示例性***和方法。在第IV节和第V节参考图6和7描述分布式对称密码术(在无验证签名的情况下)的方法。在第VI节和第VII节参考图8和9描述改进的分布式对称密码术(即,有验证签名)的方法。在第VIII节参考图10描述计算机***。
I.分布式对称密码术概述
一些实施例可利用秘密共享、伪随机函数和分布式伪随机函数,以便实施分布式对称密码术。在下文更详细地描述这些概念。
A.秘密份额和验证份额
如上所述,秘密份额可从共享秘密导出。可使用共享秘密或秘密份额以便执行密码操作。例如,可使用共享秘密或秘密份额来生成密码密钥。秘密份额可以某种方式组合,以便再现从中导出那些秘密份额的共享秘密。在某些密码应用中,使用秘密份额可能比使用非共享秘密更优选,因为恶意用户必须窃取多个秘密份额以便再现和获得共享秘密。相比之下,在非分布式密码***中,恶意用户只需要窃取一个秘密值即可获得该秘密。
验证份额可类似于秘密份额。验证份额可对应于验证值,类似于秘密份额如何对应于共享秘密。验证份额可以某种方式组合以再现验证值。在一些实施例中,用于生成、分配或组合验证份额的方法也可用于生成、分配或组合验证份额。
验证份额可用于产生验证签名,所述验证签名可用于验证分布式对称密码操作。例如,在一些实施例中,密码装置在分布式对称解密期间验证验证签名。验证签名的存在向密码装置指示客户端计算机正在执行解密操作。
秘密份额和验证份额可拥有一些有用的任选特性。一个此类特性是“n中取t”特性。此特性指示,在总共n个秘密份额或验证份额中取t个秘密份额或验证份额足以再现共享秘密或验证值。此外,使用哪些秘密份额或验证份额来再现共享秘密可能无关紧要,只要至少使用t个秘密份额或验证份额即可。
有许多技术可用于实施秘密共享,特别是n中取t秘密共享。Shamir秘密共享方案是下文论述的一个非限制性示例。然而,其它适当的秘密共享技术同样适用。
总的来说,Shamir秘密共享涉及将共享秘密(或者,验证值)编码到多项式P(x)=a0+a1x+a2x2+…+akxk的系数中。秘密份额或验证份额可包括多项式上的不同点(成对的x,P(x)值)。可通过使用秘密份额或验证份额插补多项式而从秘密份额或验证份额获得共享秘密或验证值。拉格朗日插值法(Lagrange interpolation)是一个可使用的方法。
k度的多项式可包括k+1个系数a0、a1、…、ak。虽然可将共享秘密或验证值编码成任何系数,但有时优选将共享秘密或验证值编码成零阶系数a0。可通过将共享秘密或验证值转换为某个数然后将此数用作a0来将共享秘密或验证值编码成零阶系数a0。其它系数a1、a2、…、ak的值可以任何适当方式(例如,随机)选择。如果将共享秘密S编码成零阶系数a0,则x=0处评估的多项式等于共享秘密,即,P(0)=a0=S。
Shamir秘密共享使用以下事实:需要k+1个唯一点来唯一地限定k度的多项式。k+1是插补多项式并确定共享秘密或验证值所需的点的最小或阈值数目。因此,k+1可称作阈值数目t。此特性实现“阈值已认证密码术”。当秘密份额被分配到多个密码装置(例如,每个密码装置一个秘密份额)并且那些密码装置参与分布式密码操作时,至少阈值数目的那些密码装置必须参与,以便达到阈值数目的秘密份额。
此外,由于秘密份额(或验证份额)包括多项式上的点(存在无限个),因此对于任何给定阈值,Shamir秘密共享可提供任意大量的秘密份额。这意味着密码装置网络对于任何给定阈值都可拥有任意大量的密码装置。
多项式P(x)以及因此共享秘密(或验证值)S可使用拉格朗日插值法确定,拉格朗日插值法可用于将包括成对的(xj,P(xj))值的秘密份额或验证份额与多项式P(x)相关。所述对(xj、P(xj))对应于第j秘密份额。多项式的拉格朗日形式由以下公式给出:
其中lj(x)是第j拉格朗日基多项式(即,对应于第j秘密份额)。拉格朗日基多项式lj(x)由以下公式定义:
其中xj是对应于第j秘密份额(或验证值)的x值,并且xp是第p秘密份额(或验证值)的x值。
因为当将共享秘密或验证值S编码为零阶系数a0时,零阶系数a0等于P(0),所以可通过取代x=0来简化前述公式:
Shamir秘密共享可用于将秘密份额或验证值分配到许多密码装置。这些秘密份额或验证份额可包括作为成对的值(xj,P(xj))给出的唯一点。如上所示,使用阈值数目个这些秘密份额或验证值,可计算出拉格朗日系数lj并将其与值P(xj)一起使用以确定共享秘密(或验证值)S。
值得注意的是,不论使用哪些秘密份额或验证份额,都可重建共享秘密或验证值。因此,每次不同的密码装置都可参与分布式密码操作,并且仍会产生相同的共享秘密或验证值。然而,有时优选产生从共享秘密或验证值导出的值,而非共享秘密或验证值本身。这可使用分布式伪随机函数来实现,如下文所描述。
B.伪随机和分布式伪随机函数
伪随机函数是产生输出的函数,其中输入与输出之间的关系看起来是随机的。使用伪随机函数的优点在于,在给定输出的情况下难以确定输入,并且因此伪随机函数可用于模糊输入。
在假设的密码应用中,共享秘密S可包括密码密钥。共享秘密S当以及如果从其构成秘密份额s0、s1、…、st重建时可用于加密或解密数据。然而,这可能是不合需要的,因为在重建共享秘密之后,共享秘密可能被恶意参与者(例如,恶意客户端计算机或恶意密码装置)盗窃和使用。相反,可能优选的是,将共享秘密用作伪随机函数的输入,然后使用伪随机函数的输出作为密码密钥,或使用伪随机函数的输出来生成密码密钥。以此方式,共享秘密S未被暴露。
分布式伪随机函数可指可以分布式方式计算的伪随机函数。例如,多个密码装置可计算多个部分计算。可组合这些部分计算以产生伪随机函数的输出。那些部分组合的组合可等同于对应的非分布式伪随机函数的输出。
任何看似随机并且一致的伪随机函数都可用作分布式伪随机函数的基础。伪随机函数的显著示例是散列函数和密码***,例如高级加密标准(AES)密码***和椭圆曲线密码***。将在下文出于示出一些实施例的目的描述椭圆曲线密码术,然而应理解,可用任何适当的伪随机函数实践实施例。
椭圆曲线是满足方程式y2=x3+ax+b的任何曲线。椭圆曲线密码术通常使用有限域上的椭圆曲线执行。有限域的示例是整数mod p,其中p是质数。椭圆曲线组可由其阶数q限定,所述阶数是所述组内的元素的数目。决策性迪菲-赫尔曼(Diffie-Hellman)假设在这些椭圆曲线组下仍成立。
与许多其它密码***一样,椭圆曲线密码***依赖于计算上不可行的解决方案的数学问题。对于椭圆曲线密码术,目前还不存在高效的解决方案来应对“椭圆曲线离散对数问题”。给定椭圆曲线上的原始点A和椭圆曲线上的乘积点C,十分难以确定被乘数B,使得点乘法A*B=C成立。实际结果是,只要B保持隐藏,消息就可转换成点A并且与点B进行点乘以产生乘积点C。
决策性迪菲-赫尔曼假设指出,在具有发生器g的原始阶为p的乘法组G中,对于随机和独立的a和b,值ga、gb和gab全都看起来是选自组G的随机元素。换句话说,难以确定ga、gb和gab之间的乘法关系(即,所述gab等于ga和gb的乘积)。
实际上,椭圆曲线上的两个点可相乘以产生第三点,并且所述两个点与第三点之间的关系看起来是随机的。因此,如果某个值可表示一点,则所述值可点乘另一值以产生第三值,并且这三个值之间的关系看起来是随机的。因此,椭圆曲线可用作分布式伪随机函数的伪随机函数基础。
C.应用
在一些实施例中,椭圆曲线密码术可用于使用多个秘密份额来加密承诺H(m)(即,对应于输入消息m的散列值)。这些已加密承诺可称作部分计算。如下所示,可组合部分计算以产生与使用共享秘密S加密的承诺H(m)相等的值,从而表明椭圆曲线密码术可用作分布式伪随机函数。
项H(m)S可用于表示使用椭圆曲线密码术使用共享秘密S加密的承诺H(m)。项可用于表示包括使用秘密份额si加密的承诺H(m)的部分计算。在椭圆曲线密码术中,这些加密等同于将承诺H(m)自身点乘S或si倍。
其中si是第i秘密份额,而λi是对应于si的第i拉格朗日系数(参看公式(3))。因此,使用共享秘密S加密的承诺(即,H(m)S)等于使用秘密份额加密并使用拉格朗日系数求幂的承诺的乘积这示出Shamir秘密共享和椭圆曲线密码术可一起使用来实施分布式伪随机函数的一种方式。在一些实施例中,分布式伪随机函数的输出可用于生成可用于加密和解密的密码密钥(例如,作为密钥生成种子,使用密钥生成函数)。只要使用一致的承诺H(m),则密码密钥将是一致的,因此可生成相同的密码密钥并将所述密码密钥用于加密消息和解密对应的密文。
总之,在一些实施例的上下文,每个密码装置都可拥有秘密份额si。阈值数目的密码装置可参与多方密码操作。客户端计算机可拥有客户端计算机想要加密的消息m。客户端计算机可生成消息的承诺H(m),并将所述承诺发送到参与的密码装置。参与的密码装置可各自使用其对应的秘密份额si来加密承诺m,从而在过程中生成多个部分计算参与的密码装置可将多个部分计算发送到客户端计算机。客户端计算机可确定对应于多个部分计算的拉格朗日系数λi。所述客户端计算机可用其对应的拉格朗日系数λi对多个部分计算求幂,以产生多个中间计算。客户端计算机可通过计算其乘积来组合中间计算。中间计算的乘积可等同于使用共享秘密S加密的承诺H(m)(即,H(m)S)。中间计算的乘积可用作密钥生成种子,以便生成密码密钥。所述密码密钥可用于加密客户端计算机的消息并产生密文。当密文要被解密时,可发生相同的过程,并且可产生相同的密码密钥。可用密码密钥解密密文,从而生成消息m。
在一些实施例中,可使用类似方法产生验证签名。客户端计算机可将消息m的承诺H(m)发送到多个密码装置。所述多个密码装置可使用椭圆曲线密码术来使用密码装置的相应验证份额中的每一者加密承诺H(m)以产生多个部分签名。所述多个密码装置可将所述多个部分签名发送到客户端计算机。客户端计算机可确定对应于所述多个部分签名的多个拉格朗日系数λi,然后使用其对应的拉格朗日系数对每个部分签名求幂以产生多个中间签名。客户端计算机可生成验证签名作为所述多个中间签名的乘积。验证签名可等同于使用验证值加密的承诺H(m)。
验证值和验证密钥可包括非对称密码密钥对。也就是说,验证值可包括秘密或私用密码密钥,而验证密钥可包括公共密码密钥,或反之亦然。为了验证验证签名,密码装置可使用验证密钥对验证签名进行解密,以产生承诺H(m),如果承诺H(m)与从客户端计算机接收的承诺匹配,则验证签名是合法的。
前述示例旨在作为根据一些实施例的共享秘密和分布式伪随机函数可如何用于执行分布式对称密码术的一个非限制性示例。实施例可使用任何适当的伪随机函数(例如AES、散列函数等)以及任何适当的秘密共享技术(例如Blakley方案、中国余数定理等)。
II.分布式密码网络
A.***框图
图1示出根据一些实施例的示例性分布式密码术网络100的***框图。示例性分布式密码术网络可包括密码装置102到108、客户端计算机110和112、不安全网络114以及任选地,代理装置116。
尽管仅示出四个密码装置102到108,但实施例可用任何数目的密码装置来实践。同样地,虽然仅示出两个客户端计算机110和112,但实施例可用任何数目的客户端计算机来实践。
图1的计算机和装置可通过通信网络彼此通信,所述通信网络可采用任何合适的形式,并且可包括以下中的任一者和/或组合:直接互连;互联网;局域网(LAN);城域网(MAN);作为互联网上节点的运行任务(OMNI);安全自定义连接;广域网(WAN);无线网络(例如,采用例如但不限于无线应用协议(WAP)、I-模式等协议)等。计算机与装置之间的消息可使用安全通信协议来发送,所述安全通信协议例如但不限于:文件传输协议(FTP);超文本传输协议(HTTP);安全超文本传输协议(HTTPS)、安全套接层(SSL)、ISO(例如,ISO 8583)和/或其类似者。
分布式密码术网络可使客户端计算机110和112能够使用由密码装置102到108安全地存储的密码材料(秘密份额)来加密消息或解密密文。客户端计算机110和112可通过网络(例如互联网或不安全网络114)或通过任选代理装置116直接与密码装置102到108通信。客户端计算机110到112可拥有待加密(“明文消息”或“明文”)或解密(“密文消息”或“密文”)的消息,以及使客户端计算机110到112能够参与分布式对称密码过程的硬件、软件、代码或指令。
每个密码装置102到108都可拥有秘密份额和验证份额。秘密份额和验证份额可从共享秘密和验证值导出。可在密码装置102到108当中共享所述共享秘密和验证值,例如,可存在从中导出秘密份额和验证份额的单个共享秘密和验证值。验证值对应于验证密钥,所述验证密钥可由密码装置102到108用来验证使用验证份额产生的验证签名。阈值数目的秘密份额可允许重建共享秘密,并且阈值数目的验证份额可允许重建验证值。所述阈值数目可小于密码装置102到108的总数目。例如,如果存在二十个密码装置102到108,则阈值数目可以是14个密码装置,或任何其它适当数目的密码装置。
密码装置102到108可组织成密码装置网络。此密码装置网络可包括连接到例如互联网或不安全网络114等较大计算机网络的局域网。密码装置网络与外部计算机(例如,客户端计算机110和112)之间的通信可由代理装置116介导,所述代理装置可包括通过任何适当构件(例如,应用程序编程接口API)与客户端计算机110和112通信的网络服务器。
密码装置网络可组织成任何适当的联网结构。例如,密码装置网络可包括“链”结构,由此将密码装置组织成密码装置的线性序列。从客户端计算机110到一个密码装置(例如,密码装置108)的通信在到达所述密码装置之前可通过所有前述密码装置(例如,密码装置102到106)和代理装置116。或者,密码装置网络可包括“树”结构,其中不同分支包括密码装置的不同集合(例如,一个分支可包括密码装置102和104,而另一分支可包括密码装置106和108)。密码装置网络可包括任何数目的代理装置,所述代理装置可充当密码装置或其它代理装置的代理。
不安全网络114可包括计算机网络,客户端计算机110和112通过所述计算机网络彼此通信。不安全网络114可包括例如互联网的网络。例如客户端计算机110的客户端计算机可与密码装置102到108通信,以便加密消息,使得已加密消息可经由不安全网络114安全地发送到客户端计算机112。然后,客户端计算机112可与密码装置102到108通信,以便解密消息。
例如,客户端计算机110和112可包括不同医院中的医疗记录***。这些医院可能不具备自行加密医疗记录的能力。因此,为了遵守患者保密规则,这些医院可使用其相应客户端计算机110或112以及密码装置102到108来加密医疗记录,之后将其存储在医疗记录数据库中。当需要解密医疗记录时(即,在医生和对应于该医疗记录的患者见面之前),客户端计算机110或112可与密码装置102到108通信以便解密所述医疗记录。作为另一示例,如果患者正从第一医院转移到第二医院,则对应于第一医院的客户端计算机(例如,客户端计算机110)可将加密的医疗记录发送到对应于第二医院的客户端计算机(例如,客户端计算机112)。对应于第二医院的客户端计算机可使用通过与密码装置102到108通信或使用相同的主密钥预配的不同的一组密码装置来解密医疗记录。
下文参考图2更详细地描述示例性客户端计算机。
B.客户端计算机
如上文所描述,客户端计算机可包括计算机***,所述计算机***与分布式对称密码术***(例如,密码装置网络)通信以便加密消息或解密密文。客户端计算机可包括个人计算机或与用户相关联的通信装置。这些装置可包括例如笔记本电脑、台式计算机、智能手机、平板电脑、智能手表、PDA等。客户端计算机还可包括与组织(例如,企业)相关联的服务器计算机或主机计算机。
一个示例性客户端计算机200在图2中示出。客户端计算机200可包括处理器202、通信接口204和计算机可读介质206。
1.处理、传送和存储
处理器202可包括任何合适的一个或多个数据计算装置。处理器202能够解译代码并执行存储在计算机可读介质206上的指令。处理器202可包括在精简指令集上操作的中央处理单元(CPU),并且可包括单核或多核处理器。处理器202可包括算术逻辑单元(ALU)和高速缓冲存储器,这些组件可由处理器202用于执行代码或其它功能。
通信接口204可包括客户端计算机200可借以与其它计算机或装置通信的任何接口。通信接口的示例包括有线接口,例如USB、以太网或FireWire。示例还包括用于无线通信的接口,例如蓝牙或Wi-Fi接收器。客户端计算机200可拥有多个通信接口204。例如,包括智能手机的客户端计算机200可通过微型USB端口、蜂窝接收器、蓝牙接收器和Wi-Fi接收器进行通信。
客户端计算机200可使用通信接口204通过一个或多个安全且经认证的点对点信道与其它装置或计算机通信。这些信道可使用标准公钥基础设施。例如,客户端计算机200和密码装置可通过其通信接***换对称密钥和/或密钥份额。此密钥交换可包括迪菲-赫尔曼密钥交换。在交换密码密钥之后,客户端计算机200和密码装置可通过公共信道(例如不安全网络)使用标准认证加密方案进行通信,以用密码密钥加密任何消息。还可使用其它认证方法,例如数字签名。
计算机可读介质206可包括硬件,所述硬件可拥有可由处理器202解译的代码、数据或指令。计算机可读介质206可存储或以其它方式包括许多软件模块,包括随机数生成模块208、选择模块210、计算模块212和密钥生成模块214。
2.随机数生成模块
随机数生成模块208可包括或包含可由处理器202用以生成随机或伪随机数的代码、指令、例程、子例程等。这些随机数可包括密码上安全的伪随机数,并且代码可包括满足密码安全要求的一个或多个伪随机数生成算法。这些要求可包括例如通过“下一位测试”和通过“状态妥协扩展测试”。密码上安全的随机数发生器的示例包括Yarrow、ChaCha20和Fortuna算法等。
随机数生成模块208可出于生成随机数或伪随机数的目的与客户端计算机200中的其它模块或硬件通信。例如,伪随机数生成模块208可检取***时间(例如,当前年份、月份、日时等),以便对伪随机数生成算法进行播种。
随机数或伪随机数可出于加密或生成承诺的目的而用于“盲化”(即,模糊)消息。消息可以某种方式与随机数或伪随机数组合,以便使消息模糊。例如,消息“hello”可与随机数12345串接以产生盲化消息“hello12345”。或者,逐位异或(XOR)可用来使用随机数来对消息进行盲化。通过用随机数来盲化消息,客户端计算机200可保护自身免受一些密码攻击,包括重放攻击。因此,与仅基于消息m生成承诺H(m)不同,客户端计算机200可基于消息和随机值(或随机临时数)生成承诺。另外,代替加密消息m,客户端计算机200可对消息m和随机值进行加密。
3.选择模块
选择模块210可包括由处理器202使用的代码或指令,以用于从密码装置网络中的密码装置选择阈值数目的密码装置。阈值数目的密码装置可包括从存储在那些密码装置上的秘密份额和验证份额再现共享秘密或验证值所必要的数目的密码装置。在一些实施例中,客户端计算机200可能不会从密码装置网络中的密码装置中选择密码装置。替代地,客户端计算机200可与代理装置通信,并且代理装置可执行选择过程。由此,选择模块210可以是任选的。
例如,选择模块210可包括实施随机选择算法的代码。选择模块210可包括密码装置网络中的密码装置列表。选择模块210可在不替换的情况下从列表中选择,直到选择出阈值数目的密码装置为止。或者,选择模块210可包括能实现基于规则的密码装置选择的代码。例如,选择模块210可确定与每个密码装置相关联的威胁得分。威胁得分可对应于给定密码装置已被黑客或恶意用户破坏的可能性。选择模块210可选择具有最低威胁得分的阈值数目的密码装置,或者从具有低于某一值的威胁得分的密码装置中随机选择。
作为另一替代方案,选择模块210可包括能实现基于计算负载选择密码装置的代码。密码装置网络中的一些密码装置可能已经代表其它客户端计算机执行分布式对称密码术,并且因此可能具有更高的计算负载。客户端计算机200可使用选择模块210以便选择具有较低计算负载的阈值数目的密码装置,以便改进分布式对称密码术***的周转时间和通量。
4.计算模块
计算模块212可包括使处理器202能够执行分布式对称密码术所涉及的各种计算的代码或指令。这些可包括例如基于消息和随机值生成承诺、组合部分计算以及组合部分签名。
计算模块212可包括能实现使用任何适当函数或算法生成承诺的代码。例如,计算模块212可包括可用于生成承诺的散列函数(例如,安全散列算法SHA-256、SHA3、BLAKE2等)。消息和随机值可提供为散列函数的输入,并且所得散列值可用作承诺。如上所述,承诺可用来验证消息被正确加密和解密。可在消息被加密之前基于该消息产生承诺。在该消息被加密并随后被解密之后,可基于解密的消息产生另一承诺。只要解密的消息与原始消息相同,则两个消息的承诺就应相同。
计算模块212可包括能实现使用任何适当方法、函数或算法来组合部分计算和部分签名的代码。例如,可通过计算部分计算的总和或乘积来组合所述部分计算。计算模块212还可包括能实现例如拉格朗日系数计算等多项式插补的代码。这些拉格朗日系数可对应于部分计算。另外,计算模块212可包括能实现求幂运算和模幂运算的代码。
例如,客户端计算机200可使用计算模块212来计算对应于多个部分计算的多个拉格朗日系数。客户端计算机200随后可使用计算模块212使用多个拉格朗日系数对那些部分计算求幂,以便生成多个中间计算。客户端计算机200可计算这些中间计算的乘积。中间计算的乘积可用作密钥生成种子。客户端计算机200可使用计算模块212将此密钥生成种子输入到密钥生成算法中,以便产生可用于加密或解密消息的密码密钥。
同样,计算模块212可包括使客户端计算机200能够使用类似于用于生成密钥生成种子的技术(例如,使用拉格朗日多项式的插补等)从部分签名生成验证签名的代码。
5.密钥生成模块
密钥生成模块214可包括使处理器202能够生成密码密钥的代码或指令。这些密码密钥可由密钥生成种子生成。密钥生成取决于用于执行密码术的特定密码***。例如,对于“AES-128-CBC”密码***(以密码分组链接模式操作的具有128位密钥的AES分组密码),密钥生成算法可接受口令或密钥生成种子作为输入,并产生128位密钥以用于AES分组密码。
客户端计算机200可使用密钥生成模块214来生成用于加密消息或解密密文的密码密钥。用作密钥生成模块214的输入的密钥生成种子可完全或部分地根据从密码装置接收的部分计算导出。密钥生成种子可包括中间计算的乘积,所述中间计算通过使用部分计算的对应拉格朗日系数对所述部分计算求幂而生成。这些部分计算可由密码装置使用从客户端计算机接收的承诺和秘密份额生成,如上文第I节所描述。因此,密钥生成种子和密码密钥可间接地从秘密份额导出,因为秘密份额用于生成部分计算,所述部分计算用于生成中间计算,所述中间计算继而可组合并且用作密钥生成种子。
C.密码装置
图3显示根据一些实施例的示例性密码装置300。密码装置300可包括密码装置网络中的计算机或另一装置。在一些实施例中,密码装置300可包括服务器计算机。密码装置300可存储分别从共享秘密和验证值导出的秘密份额和验证份额。另外,密码装置300可存储用于验证验证签名的验证密钥。共享秘密和验证份额可由密码装置用以使用分布式伪随机函数生成部分计算和部分签名。部分计算可由客户端计算机用以生成密码密钥。密码密钥可由客户端计算机用以加密或解密消息。密码装置300可包括处理器302、通信接口304和计算机可读介质306。
1.处理、传送和存储
处理器302可包括任何合适的一个或多个数据计算装置。处理器302能够解译代码并执行存储在计算机可读介质306上的指令。处理器302可包括在精简指令集上操作的中央处理单元(CPU),并且可包括单核或多核处理器。处理器302可包括算术逻辑单元(ALU)和高速缓冲存储器。这些组件可由处理器302用于执行代码或其它功能。
通信接口304可包括密码装置300可借以与其它计算机或装置通信的任何接口。通信接口的示例包括有线接口,例如USB、以太网或FireWire。示例还包括用于无线通信的接口,例如蓝牙或Wi-Fi接收器。密码装置300可拥有多个通信接口304,例如微型USB端口、以太网端口、蜂窝接收器、蓝牙接收器等。
密码装置300可使用通信接口304通过一个或多个安全且经认证的点对点信道与其它装置或计算机通信。这些信道可使用标准公钥基础设施。例如,密码装置300和客户端计算机可通过其通信接***换对称密钥。此密钥交换可包括迪菲-赫尔曼密钥交换。在交换密码密钥之后,密码装置300和客户端计算机可通过公共信道(例如不安全网络)使用标准认证加密方案进行通信,以用密码密钥加密任何消息。还可使用其它认证方法,例如数字签名。通过执行此密钥交换,密码装置300与客户端计算机客户端计算机之间的通信(例如,承诺、部分计算、部分签名、验证签名等)可被加密,从而允许密码装置300和客户端计算机通过不安全网络安全地通信。
计算机可读介质306可包括硬件,所述硬件可拥有或存储可由处理器302解译的代码、数据或指令。计算机可读介质306可存储或以其它方式包括许多软件模块,包括分布式伪随机函数模块308、验证模块310和安全存储器元件312。安全存储器元件可存储秘密份额314、验证份额316和验证密钥318。
2.分布式伪随机函数模块
分布式伪随机函数模块308可包括用于评估伪随机函数(PRF)或分布式伪随机函数(DPRF)目的的代码。例如,这可包括执行与椭圆曲线密码术、例如AES的分组密码或例如SHA-2的散列函数相关联的密码操作。
例如,分布式伪随机函数模块308可包括代码,所述代码可由处理器302使用,以便在决策性迪菲-赫尔曼假设下实施椭圆曲线密码术。椭圆曲线密码术可用于基于承诺和秘密份额314而生成部分计算。这些部分计算稍后可由客户端计算机组合以产生密码密钥,所述密码密钥可例如用于加密消息或解密密文,如上文第I节所描述。
因此,处理器302可使用分布式伪随机函数模块308,以便使用消息m的承诺H(m)作为输入来执行椭圆曲线密码术。所述承诺可转换成椭圆曲线组中的点,所述点接着可被秘密被乘数(例如,秘密份额314)点乘以产生乘积点。乘积点可包括部分计算,所述部分计算接着可由密码装置300发送到客户端计算机。给定相同的承诺输入和相同的秘密份额314,所得部分计算将相同,从而使部分计算能够用来生成一致的加密和解密密钥。
3.验证模块
验证模块310可包括代码或指令,所述代码或指令可由处理器302执行以生成部分签名以及验证验证签名。如上所述,验证签名可由密码装置300用于确定客户端计算机是加密数据还是解密数据。有效验证签名的存在可指示客户端计算机正在解密数据,因为密码装置300可在分布式对称解密期间验证所述验证签名。
验证模块310可使用(例如存储在安全存储器312中的)验证份额,以便根据从客户端计算机接收的承诺生成部分签名。密码装置300可将部分签名发送到客户端计算机,所述客户端计算机还可从其它密码装置接收许多其它部分签名。客户端计算机可组合这些部分签名以生成验证签名,所述验证签名可由客户端计算机发送到密码装置300。然后,密码装置300可使用验证模块310来使用验证密钥验证所述验证签名。验证模块310可通过使用其对应的验证份额和椭圆曲线密码术来加密所述承诺来生成部分签名。或者,验证模块310可通过使用其对应的验证份额和任何适当形式的同态密码术来加密所述承诺来生成部分签名。作为另一替代方案,验证模块310可使用承诺、验证份额和适当的消息认证码算法来生成部分签名。
验证模块310可使用验证密钥318来验证验证签名。验证密钥318可对应于可从验证份额316和属于其它密码装置的其它验证份额导出的验证值。在一些实施例中,验证密钥318和验证值可包括非对称密钥对。例如,验证密钥318可包括公共密码密钥,而验证值可包括私用密码密钥。
验证签名可包括使用验证值加密的承诺H(m)。可使用验证密钥318来解密验证签名以产生承诺H(m)。密码装置300可使用验证模块310,以便使用验证密钥318解密验证签名并将所得承诺与从客户端计算机接收的承诺进行比较。如果两个承诺相符,则验证签名是合法的。然而,密码装置300可使用验证模块310使用任何其它适当方法,例如基于配对友好椭圆曲线、消息认证码(MAC)、散列的消息认证码(HMAC)等,来验证验证签名。用于验证签名的示例技术可见于:[1]Boldyreva A.(2003)“基于间隙-迪菲-赫尔曼组签名方案的阈值签名、多签名和盲化签名(Threshold Signatures,Multisignatures and BlindSignatures Based on the Gap-Diffie-Hellman-Group Signature Scheme).”出处:Desmedt Y.G.(eds)公钥密码术(Public Key Cryptography)--PKC 2003.PKC 2003.计算机科学讲义(Lecture Notes in Computer Science),第2567卷.施普林格,柏林,海德堡;[2]Victor Shoup.2000.“实际阈值签名(Practical threshold signatures).”第19届密码技术理论和应用国际会议(EUROCRYPT'00)会刊.施普林格出版社,柏林,海德堡,第207-220页;以及[3]Naor M.,Pinkas B.,Reingold O.(1999)分布式伪随机函数和KDC(Distributed Pseudo-random Functions and KDCs).出处:Stern J.(eds)密码学的发展(Advances in Cryptology)--EUROCRYPT'99.EUROCRYPT 1999.计算机科学讲义,第1592卷.施普林格,柏林,海德堡。
4.安全存储器
安全存储器312可包括计算机可读介质306的存储器区或独立存储器元件。安全存储器312可存储敏感密码材料以使得所述密码材料难以被未授权的外部人员(例如,黑客)检取。例如,存储在安全存储器312中的数据可以已加密形式存储。安全存储器312可存储从共享秘密导出的秘密份额314。另外,安全存储器312可存储从验证值导出的验证份额316和对应于验证值的验证密钥318。密码装置300可使用秘密份额314来生成用于生成密码密钥的部分计算。同样,密码装置300可使用验证份额316来导出用于生成验证签名的部分签名。密码装置300可使用验证密钥318来验证从多个部分签名生成的验证签名。
III.生成和分配秘密份额和验证值
在描述用于改进的分布式对称密码术的方法之前,描述可用于将秘密份额和验证份额分配给密码装置网络中的密码装置的方法可能是有益的。
出于图解说明的目的,下文参考图4和5描述秘密份额和验证份额的生成和分配的非限制性示例。然而,应理解,任何适当方法均可用于生成秘密份额和验证份额并将其分配到密码装置。
图4示出包括受信任外部服务器402、通信网络404和密码装置网络412的份额分配***400。密码装置网络412可包括任选代理装置406和密码装置408到410。值得注意的是,虽然仅示出两个密码装置408和410,但密码装置网络412可包括任何数目的密码装置。
受信任外部服务器402可包括能够生成和分配秘密份额、验证份额和验证密钥的服务器计算机。受信任外部服务器402能够通过通信网络404与密码装置408到410或代理装置406通信。受信任外部服务器402可拥有处理器和计算机可读介质,并且能够根据任何适当的秘密共享方案(例如,如上文所描述的Shamir秘密共享)执行生成共享秘密、秘密份额、验证值或验证份额所必要的任何操作。例如,受信任外部服务器402可生成对应于多项式P(x)的系数的许多随机数。这些随机数中的一者可被解译为共享秘密或验证值。受信任外部服务器402可评估不同值x下的多项式P(x)。包括评估的多项式和对应值x的秘密份额(和/或验证份额)可被分配给密码装置408和410。
通信网络404可包括互联网或蜂窝通信网络等网络,装置、计算机和服务器彼此可通过所述网络通信。通信网络404可以是安全的或是不安全的。受信任外部服务器402可通过通信网络404与密码装置网络412通信,例如,受信任外部服务器402可通过通信网络404将秘密份额、验证份额和验证密钥发送到密码装置网络。
密码装置网络412可包括密码装置408和410,以及代理装置406。代理装置406可充当网关,其介导密码装置408和410与密码装置网络412外部的计算机、装置或服务器(例如,受信任外部服务器402)之间的通信。秘密份额或验证份额可由受信任外部服务器402通过通信网络404发送到代理装置406。代理装置406可将秘密份额分配到它们相应的密码装置。
密码装置408到410可基本上类似于上文参考图1和3所描述的密码装置。所述密码装置可拥有处理器、通信接口和计算机可读介质。计算机可读介质可拥有或包括由密码装置408和410用于执行分布式对称密码术的许多软件模块。密码装置408和410可另外包括安全存储器元件。密码装置408和410可将从受信任外部服务器402接收的秘密份额、验证份额和验证密钥存储在密码装置相应的安全存储器元件中。
图5示出详述一个示例性方法的序列图,可通过所述示例性方法生成和分配秘密份额、验证值和验证密钥。应理解,可通过用于生成和分配秘密份额、验证份额和验证密钥的任何适当方法实践实施例,并且因此图5的示例性方法旨在是非限制性的。尽管图4中的通信网络404未明确示出,但密码装置网络502与受信任外部服务器504之间的通信可通过通信网络传送。同样,尽管图4的代理装置404未示出,但与密码装置网络502的通信可由代理装置代表密码装置网络接收。
步骤506和508是密码装置网络502与受信任外部服务器504之间握手规程的两个步骤。一些通信协议,例如传输控制协议(TCP),使用握手规程来建立参与的计算机之间的未来通信的规则或特性。例如,如果密码装置网络502与受信任外部服务器504之间的通信被加密,则步骤506和508可涉及密码装置网络502与受信任外部服务器504之间的加密密钥交换。
例如,密码装置网络502(或代理装置)可拥有可用来加密和解密密码装置网络502与受信任外部服务器504之间发送的消息的对称密码密钥。受信任外部服务器504可拥有公私密钥对中的私钥。密码装置网络502可使用公私密钥对中的公钥来加密对称密码密钥,然后将对称密码密钥发送到受信任外部服务器504。使用私钥,受信任外部服务器504可解密对称密码密钥。此时,密码装置网络502和受信任外部服务器504都拥有对称密码密钥。密码装置网络502和受信任外部服务器504可使用对称密码密钥来加密和解密它们之间的任何未来通信。
在步骤510,密码装置网络502可发送完成秘密份额和验证份额生成和分配过程所必要的信息。这可包括例如密码装置网络中的装置数目、密码装置网络的装置阈值数目、地址信息以及任何请求的取样值等信息。地址信息可包括与密码装置网络502中的每个密码装置相关联的数字地址,例如IP地址或MAC地址。请求的样本值可对应于特定值x,其用于对多项式P(x)进行取样,以便生成秘密份额或验证值。例如,样本值可以是数字5,并且对应于该样本值的秘密份额可包括(5,P(5))。
例如,在步骤510,密码装置网络502可发送一系列分组,每个分组含有请求的样本值以及对应于请求的样本值的每个密码装置的地址,例如IP地址或MAC地址。另外,所述分组可包括例如TCP或UDP端口的信息,在所述端口上与密码装置网络502中的密码装置通信。
在步骤512,受信任外部服务器504可生成秘密份额、验证值和验证密钥。受信任外部服务器504生成共享验证值和验证密钥所依据的方法取决于所使用的秘密共享方法,以及在分布式对称密码术期间使用的分布式伪随机函数。同样,生成验证值和验证密钥所依据的方法取决于用以使用验证密钥验证验证签名的特定方法。在一些实施例中,共享秘密可包括随机数,并且受信任外部服务器512可使用密码上安全的随机数发生器来生成共享秘密。在一些实施例中,验证值和验证密钥可包括非对称密钥对,并且验证值和验证密钥可使用根据任何适当的密码***(例如,RSA)生成非对称密钥对的任何适当方式来生成。
在步骤514,受信任外部服务器504可生成对应于共享秘密的第一多项式和对应于验证值的第二多项式。受信任外部服务器可将共享秘密编码成第一多项式的一个系数,并将验证值编码成第二多项式的一个系数。在一些实施例中,可将共享秘密和验证值编码成其相应多项式的零阶系数。受信任外部服务器504可使用任何适当技术生成第一和第二多项式的其它系数。例如,其它系数可包括随机或伪随机数。
多项式的特性(例如,可如何包括系数)可完全或部分基于受信任外部服务器504在步骤510中接收的信息(例如,秘密份额和验证份额的数目)。如上文所描述,需要k+1个唯一点来唯一地限定k度的多项式(即,拥有k+1个系数,包括零阶系数)。因此,第一多项式中的系数数目可等于在步骤510处请求的秘密份额的阈值数目。同样,第二多项式中的系数数目可等于在步骤510处请求的验证份额的阈值数目。
在步骤516,受信任外部服务器504可基于对应的多项式生成秘密份额和验证份额。受信任外部服务器504可在唯一值x处对秘密份额多项式和验证份额多项式进行取样,以便产生对应值P(x)。这些成对的(x,P(x))值可包括秘密份额。x值可包括在步骤510处提供给受信任外部服务器504的优选取样值。
在步骤518,受信任外部服务器504可使用在步骤510中提供的路由或地址信息将秘密份额、验证份额和验证密钥发送到密码装置网络502中的密码装置。以此方式,密码装置网络502中的每个密码装置可接收其相应秘密份额和验证份额,以及所有密码装置共同的验证密钥。
图5的示例性方法是秘密份额生成和分配过程的一个非限制性示例。存在对于所属领域的技术人员来说可能显而易见的许多变型。作为另一示例,密码装置可通过不经意传输等密码方法接收其相应秘密份额。作为另一示例,密码装置网络502可使用例如安全多方计算的方法在完全没有受信任外部服务器504辅助的情况下生成秘密份额。
IV.分布式对称操作
A.加密
参考图6,可更好地理解分布式对称加密。图6示出根据一些实施例的可改进的分布式对称加密过程。在改进的分布式对称加密中(下文参考图8描述),客户端计算机使用由密码装置生成的多个部分签名来生成验证签名。在改进的分布式对称解密期间,客户端计算机将验证签名提供到密码装置。验证签名向密码装置指示客户端计算机正在执行解密。相比之下,在分布式对称解密中,客户端计算机不生成验证签名。因此,密码装置无法确定客户端计算机是在执行分布式对称加密还是在执行分布式对称解密。
图6示出执行分布式对称加密过程的客户端计算机602和多个密码装置604到610的混合序列图。客户端计算机602可用阈值数目的密码装置执行分布式对称加密过程,所述阈值数目的密码装置可少于全部数目的密码装置。如图6中所指示,客户端计算机602正在结合密码装置604到608而非密码装置610执行分布式对称加密。尽管图6中示出四个密码装置604到610,但应理解,分布式对称加密可用任何数目的密码装置执行。
在步骤612,客户端计算机602可生成承诺x。可基于消息m和随机值r(替代地,“随机临时数”)生成承诺。承诺x可包括通过使用消息m和随机值r作为散列函数(例如,SHA-256)的输入而产生的散列值。
在步骤614,客户端计算机602可将承诺x发送到多个参与的密码装置,即,密码装置604到608。客户端计算机602可直接或通过代理装置将承诺x发送到参与的密码装置604到608。
在步骤616,密码装置604到608可基于承诺x和密码装置相应的秘密份额sk1、sk2和sk3生成部分计算y1、y2和y3。密码装置604到608可使用分布式伪随机函数生成这些部分计算y1、y2和y3,如上文第I节所描述。密码装置604到608可通过调用分布式伪随机评估函数DPRF.Eval使用承诺x和相应的秘密份额sk1、sk2和sk3来生成部分计算y1、y2和y3(即,yi=DPRF.Eval(ski,x))。分布式伪随机函数可包括椭圆曲线密码函数。例如,密码装置604到608可通过使用它们相应的秘密份额ski和椭圆曲线密码术加密承诺x来生成它们对应的部分计算yi。
在步骤618,参与的密码装置604到608可将部分计算y1、y2和y3发送到客户端计算机602。参与的密码装置604到608可直接或通过代理装置发送部分计算y1、y2和y3。
任选地,在步骤618,参与的密码装置604到608可各自将非交互式零知识证明(NIZK)发送到客户端计算机602。客户端计算机602可使用NIZK来验证对应于那些NIZK的部分计算y1、y2和y3已正确生成。如果任何NIZK未能验证,则客户端计算机602可中止分布式对称加密过程。
在步骤620,客户端计算机602可组合所述部分计算并生成密码密钥。客户端计算机602可将部分计算y1、y2和y3组合以生成密钥生成种子,并且所述密钥生成种子可与密钥生成算法一起使用以生成密码密钥。客户端计算机602可使用任何适当方式组合所述部分计算。例如,客户端计算机可使用将部分计算y1、y2和y3用作自变量的分布式伪随机组合函数DPRF.Combine(即,y=DPRF.Combine(y1,y2,y3))。此函数可涉及客户端计算机602确定对应于多个部分计算的多个拉格朗日系数。客户端计算机602可通过用部分计算对应的拉格朗日系数对每个部分计算求幂来生成多个中间计算。客户端计算机602可通过计算所述多个中间计算的乘积来生成密钥生成种子。密钥生成种子可输入到密钥生成算法中以产生密码密钥。详见上文第I节。
在步骤622,客户端计算机602可使用密码密钥加密消息m以生成密文e。或者,客户端计算机602可对消息m和用于对承诺进行盲化的随机数r进行加密(参看步骤612)。客户端计算机602可使用对应于所述密码密钥的例如AES等任何适当对称密码***来加密消息(例如,如在步骤622处所示,密文e=AESy(m|r))。
在步骤624处,客户端计算机602可生成包括密文e和承诺x的有效负载。此有效负载包括使用分布式对称密码术解密密文所需的信息。客户端计算机602可将此有效负载发送到另一客户端计算机,以便安全地发送消息。
B.解密
参考图7,可更好地理解分布式对称解密。图7示出根据本公开的一些实施例的可改进的分布式对称解密过程。在改进的对称解密(下文参考图9描述)中,客户端计算机将验证签名发送到参与的密码装置。验证签名向密码装置指示客户端计算机正在执行解密。相比之下,在图7中,客户端计算机不将验证签名发送到密码装置。因此,密码装置无法确定客户端计算机是在执行分布式对称加密还是在执行分布式对称解密。
图7示出执行分布式对称解密过程的客户端计算机702和多个密码装置704到710的混合序列图。客户端计算机702可用阈值数目的密码装置执行分布式对称解密过程,所述阈值数目的密码装置可少于全部数目的密码装置。如图7中所指示,客户端计算机702正在结合密码装置704、706和710执行分布式对称解密。值得注意的是,客户端计算机702可结合除了在分布式对称加密期间使用的密码装置(例如,图6中的密码装置604到608)之外的密码装置执行分布式对称解密。密码装置708可能未被客户端计算机702选择参与分布式对称解密过程。
在一些情况下,术语“密码装置”可指分布式对称加密中涉及的密码装置,而术语“额外密码装置”可指分布式对称解密中涉及的密码装置。术语“额外部分计算”可指由额外密码装置——即,涉及分布式对称解密的那些密码装置——生成的部分计算。同样,术语“额外秘密份额”可指对应于额外密码装置的秘密份额。
在步骤712,客户端计算机702可将承诺x发送到密码装置704、706和710。客户端计算机702本身可能已生成此承诺,或者可能已从例如另一台客户端计算机等另一计算机接收到所述承诺。例如,另一客户端计算机可能已执行分布式对称加密过程并生成包括密文e和承诺x的有效负载。另一客户端计算机可能已将此有效负载发送到客户端计算机702,并且客户端计算机702可将在所述有效负载中接收到的承诺发送到密码装置704、706和710。客户端计算机702可直接或通过代理装置将承诺发送到密码装置704、706和710。
在步骤714,密码装置704、706和710可基于承诺x和密码装置相应的秘密份额sk1、sk2和sk4生成部分计算y1、y2和y4。密码装置704、706和710可使用分布式伪随机函数来生成这些部分计算,如上文第I节所描述。例如,如图7中所示,密码装置704、706和710可使用其相应的秘密份额和承诺作为自变量来执行DPRF.Eval函数。分布式伪随机函数可包括椭圆曲线密码函数。例如,密码装置704、706和710可各自通过使用其相应秘密份额和椭圆曲线密码术加密承诺来生成部分计算。
在步骤716,参与的密码装置704、706和710可将部分计算y1、y2和y4发送到客户端计算机702。参与的密码装置704、706和710可直接或通过代理装置发送所述部分计算。
任选地,在步骤716,参与的密码装置704、706和710可各自将非交互式零知识证明(NIZK)发送到客户端计算机702。客户端计算机702可使用NIZK来验证已正确生成对应于那些NIZK的部分计算。如果任何NIZK未能验证,则客户端计算机可中止分布式对称解密过程。
在步骤718,客户端计算机702可组合所述部分计算并生成密码密钥。客户端计算机702可组合所述部分计算以生成密钥生成种子,然后使用所述密钥生成种子作为密钥生成算法的输入,以便生成密码密钥。客户端计算机702可使用例如将部分计算y1、y2和y4用作自变量的DPRF.Combine函数等任何适当方式来组合所述部分计算。例如,客户端计算机702可首先确定对应于多个部分计算的多个拉格朗日系数。客户端计算机702可通过用部分计算对应的拉格朗日系数对每个部分计算求幂来生成多个中间计算。客户端计算机702可通过计算所述多个中间计算的乘积来生成密钥生成种子。密钥生成种子可输入到密钥生成算法中以产生密码密钥。详见上文第I节。
在步骤720,客户端计算机702可解密密文以产生消息m。或者,客户端计算机702可解密密文以产生消息m和用于盲化承诺的随机值r(参看图6的步骤612)。客户端计算机702可使用对应于密码密钥的例如AES等任何适当的对称密码***来解密密文(例如,如图7中所示,m|r=AESy -1(e))。
在任选步骤722,客户端计算机702可验证消息是否与承诺m一致。客户端计算机702可使用消息和随机值作为散列函数的输入以生成额外承诺。然后,客户端计算机702可将在步骤712中发送的承诺与在步骤722中生成的承诺进行比较。如果承诺相同,则指示消息已被正确加密和解密。
V.改进的分布式对称操作
如上文所指示,在分布式对称操作中,密码装置可能无法确定客户端计算机是在加密消息还是在解密密文。这是因为从密码装置的角度来看,分布式加密和解密基本上相同:客户端计算机向密码装置发送承诺,密码装置生成部分计算,并且密码装置将所述部分计算返回到客户端计算机。然后,客户端计算机基于部分计算生成密码密钥,并使用所述密码密钥加密消息或解密密文。由此,在分布式对称操作中,密码装置可能无法确定客户端计算机是在加密数据还是在解密数据。这继而使得难以录入客户端计算机的行为,或防止恶意客户端计算机的滥用。
改进的分布式对称密码术涉及使用阈值签名方案。在改进的对称加密期间,密码装置基于从客户端计算机接收的承诺生成部分签名。然后,客户端计算机可组合这些部分签名以产生验证签名。在解密期间,验证签名可由客户端计算机提供到密码装置。密码装置可使用验证密钥验证验证签名,然后在验证签名被成功验证的前提下选择参与分布式对称解密。
验证签名的存在与否向密码装置指示正在执行哪种分布式密码操作。如果是在分布式密码操作期间生成验证签名,则密码装置可确定客户端计算机正在执行加密。如果是在分布式密码操作期间验证验证签名,则密码装置可确定客户端计算机正在执行解密。以此方式,可录入或以其它方式监测客户端计算机的行为。这是相对于上文第IV节所描述的分布式对称操作的改进。
A.加密
图8示出根据一些实施例的用于改进的分布式对称加密的示例性方法的混合序列图。与分布式对称加密不同,改进的分布式对称加密可涉及客户端计算机生成验证签名。此验证签名可在改进的分布式对称解密过程期间提供给密码装置。密码装置可在改进的分布式对称解密期间验证所述验证签名,以便验证分布式对称加密已正确执行。此外,密码装置可基于加密或解密请求的内容(例如,验证签名的存在与否)来确定客户端计算机是想要加密还是解密消息。
图8示出执行改进的分布式对称加密过程的客户端计算机802和多个密码装置804到810。客户端计算机802可用预定阈值数目的密码装置执行改进的分布式对称加密过程,所述预定阈值数目的密码装置可少于全部数目的密码装置。如图8中所指示,客户端计算机802正在结合密码装置804到808而非密码装置810执行改进的分布式对称加密。值得注意的是,尽管示出四个密码装置804到810,但改进的分布式对称加密可用任何数目的密码装置执行。
在步骤812,客户端计算机802可生成承诺x。可基于待加密的消息m和随机值r(或者“随机数”或“随机临时数”)来生成承诺。所述承诺可包括使用消息和随机值作为散列函数(例如,SHA-256、SHA3、BLAKE2等)的输入而产生的散列值。
在步骤814,客户端计算机802可将承诺x发送到多个参与的密码装置,即,密码装置804到808。客户端计算机802可直接或通过代理装置将承诺发送到参与的密码装置804到808。客户端计算机802可另外将指示符(例如,作为逐位或整数标记)发送到密码装置804到808。指示符可指示客户端计算机想要执行加密。密码装置804到808可审核或以其它方式分析指示符,并在日志文件中录入或以其它方式记录客户端计算机802的意图。
在步骤816,密码装置804到808可基于承诺和密码装置相应的秘密份额sk1、sk2和sk3生成部分计算y1、y2和y3。密码装置804到808可使用分布式伪随机函数生成这些部分计算,如上文第I节所描述。所述分布式伪随机函数可包括椭圆曲线密码函数。例如,密码装置804到808可通过使用其相应秘密份额和椭圆曲线密码术加密承诺来生成密码装置的对应部分计算。分布式伪随机函数可包括将承诺和相应秘密份额用作自变量的DPRF.Eval函数。
在步骤818,密码装置804到808可基于承诺和密码装置的相应验证份额生成部分签名z1、z2和z3。密码装置810可能未被客户端计算机或密码装置网络选择来参与分布式对称加密过程。或者,密码装置810可能已离线,或另外可能没有响应来自客户端计算机802的解密请求。密码装置804到808可使用承诺x、密码装置相应的验证份额sk'1、sk'2和sk'3以及分布式伪随机函数生成这些部分签名,如上文第I节所描述。
分布式伪随机函数可包括椭圆曲线密码函数。例如,密码装置804到808可通过使用其相应验证份额和椭圆曲线密码术加密承诺来生成密码装置的对应部分签名。然而,应理解,密码装置804到808可以任何其它适当方式生成部分签名。例如,使用基于配对友好椭圆曲线、消息认证码、基于散列的消息认证码等的部分签名方案。密码装置804到808可使用将承诺x和密码装置的相应验证份额sk'1、sk'2和sk'3用作自变量的阈值认证部分签名函数TA.PartSign来生成部分签名。
任选地,在步骤818,参与的密码装置804到808可各自将NIZK(非交互式零知识证明)发送到客户端计算机802。客户端计算机802可使用NIZK来验证已正确生成对应于那些NIZK的部分计算。如果任何NIZK未能验证,则客户端计算机可中止改进的分布式对称加密过程。
在步骤820,参与的密码装置804到808可将部分计算y1、y2和y3以及部分签名z1、z2和z3发送到客户端计算机802。参与的密码装置804到808可直接或通过代理装置发送所述部分计算。
在步骤822,客户端计算机802可组合所述部分计算并生成密码密钥y。客户端计算机802可使用将部分计算y1、y2和y3用作自变量的DPRF.Combine函数来组合所述部分计算。在一些实施例中,客户端计算机802可将所述部分计算组合以生成密钥生成种子,并且所述密钥生成种子可与密钥生成算法一起使用以生成密码密钥。客户端计算机802可使用任何适当方式组合所述部分计算。例如,客户端计算机802可首先确定对应于多个部分计算的多个拉格朗日系数。客户端计算机802可通过用部分计算对应的拉格朗日系数对每个部分计算求幂来生成多个中间计算。客户端计算机802可通过计算所述多个中间计算的乘积来生成密钥生成种子。密钥生成种子可输入到密钥生成算法中以产生密码密钥。详见第I节。
同样,在步骤824,客户端计算机802可组合部分签名z1、z2和z3并生成验证签名z。客户端计算机802可使用TA.CombineSig函数组合部分签名z1、z2和z3。客户端计算机802可使用任何适当方式组合所述部分签名。例如,客户端计算机802可首先确定对应于多个部分签名的多个拉格朗日系数。客户端计算机可通过用部分签名对应的拉格朗日系数对每个部分签名求幂来生成多个中间签名。客户端计算机802可通过计算所述多个中间签名的乘积来生成验证签名。详见第I节。
在步骤826,客户端计算机802可使用密码密钥y加密消息以生成密文e。或者,客户端计算机802可对消息m和用于对承诺进行盲化的随机数或临时数r进行加密(参看步骤812)。客户端计算机可使用对应于密码密钥的例如AES等任何适当对称密码***来加密消息(例如,如图8中所示:e=AESy(m|r))。
在步骤828,客户端计算机802可生成包括密文e、承诺x和验证签名z的有效负载。此有效负载包括使用改进的分布式对称密码术解密密文所需的信息。客户端计算机802可将所述有效负载发送到另一客户端计算机,以便安全地发送消息。然后,此另一客户端计算机可使用改进的分布式对称密码术、承诺和验证签名来解密密文。
B.解密
参考图9,可更好地理解改进的分布式对称解密。在改进的分布式对称解密中,客户端计算机将验证签名发送到参与的密码装置。验证签名向密码装置指示客户端计算机正在执行解密。这是相对于第IV节中描述的分布式对称解密的改进,因为密码装置能够确定客户端计算机正在执行分布式对称解密。
图9示出执行改进的分布式对称解密过程的客户端计算机902和多个密码装置904到910的混合序列图。如图9中所指示,客户端计算机902正在结合密码装置904、906和910执行改进的分布式对称解密。值得注意的是,客户端计算机902可结合除了在改进的分布式对称加密期间使用的密码装置(例如,图8中的密码装置804到808)之外的密码装置执行改进的分布式对称解密。
在一些情况下,术语“密码装置”可指改进的分布式对称加密中涉及的密码装置,而术语“额外密码装置”可指改进的分布式对称解密中涉及的密码装置。术语“额外部分计算”可指由额外密码装置--即,涉及改进的分布式对称解密的那些密码装置--生成的部分计算。同样,术语“额外秘密份额”可指对应于额外密码装置的秘密份额。
在步骤912,客户端计算机902可将承诺x和验证签名z发送到参与的密码装置904、906和910。客户端计算机902可能已生成承诺和验证签名本身,或者可能已从例如另一客户端计算机等另一计算机接收到所述承诺和验证签名。例如,另一客户端计算机(例如,图8中的客户端计算机802)可能已执行改进的分布式对称加密过程并生成包括密文、承诺和验证签名的有效负载。另一客户端计算机可能已将此有效负载发送到客户端计算机902,并且客户端计算机902可将在所述有效负载中接收到的承诺和验证签名发送到密码装置904、906和910。客户端计算机902可直接或通过代理装置将承诺和验证签名发送到密码装置904、906和910。客户端计算机902可另外将指示符发送到参与的密码装置904、906和910。指示符可向参与的密码装置指示客户端计算机902想要执行解密。参与的密码装置904、906和910可在日志文件中记录此指示符。
在步骤914,密码装置904、906和910可使用承诺x和验证密钥vk验证验证签名z。这可涉及密码装置904、906和910使用验证密钥、承诺和验证签名作为自变量来执行验证签名函数VerSig。如果验证签名是合法的,则密码装置904、906和910可继续改进的对称解密过程。否则,密码装置904、906和910可终止所述过程。
密码装置904、906和910可使用任何适当的技术或方式验证所述验证签名。例如,验证密钥可包括公私密钥对中的公钥,而验证值可包括公私密钥对中的私钥。验证签名可等同于使用验证值加密的承诺。密码装置904、906和910可通过使用验证密钥解密所述验证签名以产生承诺来验证所述验证签名。然后,密码装置904、906和910可将所述承诺与从客户端计算机902接收的承诺进行比较。如果承诺相符,则验证签名可被验证为合法的。
应理解,密码装置904、906可使用例如上文所描述的基于分布式签名函数的方法等任何适当方法来验证所述验证签名。密码装置904、906和910还可使用基于散列的消息认证码函数(HMAC函数)来验证所述验证签名。
在步骤916,只要确定验证签名是合法的,密码装置904、906和910就可基于承诺x和密码装置相应的秘密份额sk1、sk2和sk4生成部分计算y1、y2和y4。密码装置904、906和910可使用分布式伪随机函数来生成这些部分计算,如上文第I节所描述。例如,密码装置904、906和910可通过使用其相应的秘密份额和承诺作为自变量执行DPRF.Eval函数来生成部分计算。分布式伪随机函数可包括椭圆曲线密码函数。例如,密码装置904、906和910可各自通过使用其相应秘密份额和椭圆曲线密码术加密承诺来生成部分计算。
在步骤918,参与的密码装置904、906和910可将部分计算y1、y2和y4发送到客户端计算机902。参与的密码装置904、906和910可直接或通过代理装置发送所述部分计算。
任选地,在步骤918,参与的密码装置904、906和910可各自将NIZK发送到客户端计算机902。客户端计算机902可使用NIZK来验证已正确生成对应于那些NIZK的部分计算。如果任何NIZK未能验证,则客户端计算机可中止改进的分布式对称解密过程。
在步骤920,客户端计算机902可将部分计算y1、y2和y4组合,并生成密码密钥y。例如,客户端计算机902可使用DPRF.Combine函数组合所述部分计算。在一些实施例中,客户端计算机902可组合所述部分计算以生成密钥生成种子,然后使用所述密钥生成种子作为密钥生成算法的输入,以便生成密码密钥。客户端计算机902可使用任何适当方式组合所述部分计算。例如,客户端计算机902可首先确定对应于多个部分计算的多个拉格朗日系数。客户端计算机902可通过用部分计算对应的拉格朗日系数对每个部分计算求幂来生成多个中间计算。客户端计算机902可通过计算所述多个中间计算的乘积来生成密钥生成种子。密钥生成种子可输入到密钥生成算法中以产生密码密钥。详见第I节。
在步骤922,客户端计算机902可解密密文e以产生消息m。或者,客户端计算机902可解密密文以产生消息m和用于盲化承诺的随机值r(参看图6的步骤812)。客户端计算机902可使用对应于密码密钥的例如AES等任何适当的对称密码***来解密密文(例如,如图9中所示,m|r=AESy -1(e))。
在任选步骤924,客户端计算机904可验证消息是否与承诺一致。客户端计算机902可使用消息和随机值作为散列函数的输入以生成额外承诺。然后,客户端计算机902可将在步骤912中发送的承诺与在步骤922中生成的承诺进行比较。如果承诺相同,则指示消息已被正确加密和解密。
VI.计算机***
本文中提及的任何计算机***都可利用任何合适数目的子***。图10中的计算机设备1000中展示此类子***的实例。在一些实施例中,计算机***包括单个计算机设备,并且子***可包括所述计算机设备的组件。在其它实施例中,计算机***可包括多个计算机设备,每个计算机设备都是具有内部组件的子***。
图10中示出的子***通过***总线1005互连。示出了额外子***,例如打印机1004、键盘1008、(多个)存储装置1009、(耦合到显示适配器1011的)监视器1006等。耦合到输入/输出(I/O)控制器1001的***设备和I/O装置可通过本领域中已知的任何数目个构件连接到计算机***,所述构件例如输入/输出(I/O)端口1007(例如USB、)。例如,I/O端口1007或外部接口1010(例如以太网、Wi-Fi等)可用于将计算机***1000连接到例如互联网的广域网、鼠标输入装置或扫描仪。通过***总线1005的互连允许中央处理器1003与每个子***通信并且控制来自***存储器1002或存储装置1009(例如,固定盘,例如硬盘驱动器或光盘)的指令的执行,以及子***之间的信息交换。***存储器1002和/或存储装置1009可体现计算机可读介质。在本文中提及的任何数据可从一个组件输出到另一组件并且可输出到用户。
计算机***可包括例如通过外部接口1010或通过内部接口连接在一起的多个相同组件或子***。在一些实施例中,计算机***、子***或设备可以通过网络进行通信。在此类情况下,一个计算机可视为客户端,且另一计算机可视为服务器,其中每台计算机可以是同一计算机***的一部分。客户端和服务器可以各自包括多个***、子***或组件。
应理解,本发明的任何实施例都可以使用硬件(例如,专用集成电路或现场可编程门阵列)和/或使用计算机软件以控制逻辑的形式实施,其中通用可编程处理器是模块化的或集成的。如本文所用,处理器包括单核处理器、在同一集成芯片上的多核处理器,或在单个电路板上或网络化的多个处理单元。基于本公开和本文中所提供的教示,本领域的普通技术人员将知道并且了解使用硬件和硬件与软件的组合来实施本发明的实施例的其他方式和/或方法。
本申请中描述的任何软件组件或功能可实施为使用例如Java、C、C++、C#、Objective-C、Swift的任何合适的计算机语言或例如Perl或Python的脚本语言使用例如常规的或面向对象的技术由处理器执行的软件代码。软件代码可作为一系列指令或命令存储在计算机可读介质上以供存储和/或传递,合适的介质包括随机存取存储器(RAM)、只读存储器(ROM)、磁性介质例如硬盘驱动器或软盘,或光学介质例如光盘(CD)或DVD(数字通用盘)、闪存存储器等。计算机可读介质可以是此类存储或传输装置的任何组合。
此类程序还可以使用适合于经由包括互联网在内的符合多种协议的有线网络、光学网络和/或无线网络进行传输的载波信号来编码和发送。因此,根据本发明的实施例的计算机可读介质可以使用以此类程序编码的数据信号来创建。以程序代码编码的计算机可读介质可以与兼容装置一起封装或者与其它装置分开提供(例如,经由互联网下载)。任何此类计算机可读介质可以驻留于单个计算机产品(例如,硬盘驱动器、CD或整个计算机***)上或内,且可存在于***或网络内的不同计算机产品上或内。计算机***可包括用于将本文中所提及的任何结果提供给用户的监视器、打印机或其他合适的显示器。
本文所描述的任何方法可完全或部分地通过计算机***执行,所述计算机***包括可被配置以执行所述步骤的一个或多个处理器。因此,实施例可涉及被配置成执行本文所述的任何方法的步骤、可能具有执行相应步骤或相应步骤群组的不同组件的计算机***。尽管以编号的步骤呈现,但是本文中的方法步骤也可以同时执行或以不同的次序执行。另外,这些步骤的部分可与来自其它方法的其它步骤的部分一起使用。同样,一个步骤的全部或部分可以是可选的。另外,任何方法的任何步骤可以用模块、电路或用于执行这些步骤的其它手段来执行。
特定实施例的具体细节可按任何适合的方式组合而不脱离本发明实施例的精神和范围。然而,本发明的其它实施例可以涉及与每个个别方面或这些个别方面的特定组合相关的特定实施例。上文对本发明的示例性实施例的描述已经出于说明和描述的目的呈现。不旨在是详尽的,或将本发明局限到描述的精确形式,根据上文的教导许多修改和变形是可能的。选择和描述这些实施例是为了最好地解释本发明的原理及其实际应用,从而使本领域的技术人员能够在各种实施例中最好地利用本发明,并且进行适合于预期的特定用途的各种修改。
除非明确指示有相反的意思,否则叙述“一个/种”或“该/所述”旨在表示“一个/种或多个/种”。除非明确指示为相反情况,否则“或”的使用旨在表示“包括性的或”,而不是“排除性的或”。
本文中提及的所有专利、专利申请、公开和描述出于所有目的以引用方式全部并入本文。并非承认它们是现有技术。
Claims (21)
1.一种方法,包括由计算机***执行:
使用消息和随机值生成承诺;
向多个密码装置中的每一者发送包括所述承诺的请求,所述多个密码装置存储从秘密值生成的多个秘密份额和从验证值生成的多个验证份额,所述请求指示所述多个密码装置中的每一者将执行对应于加密的密码函数;
从所述多个密码装置接收多个部分计算,其中所述多个部分计算由所述多个密码装置使用所述多个秘密份额和所述承诺生成;
从所述多个密码装置接收多个部分签名,其中所述多个部分签名由所述多个密码装置使用所述多个验证份额和所述承诺生成;
基于所述多个部分计算生成密码密钥;
基于所述多个部分签名生成验证签名;
通过使用所述密码密钥加密所述消息和所述随机值来生成密文;以及
生成包括所述密文、所述验证签名和所述承诺的有效负载。
2.根据权利要求1所述的方法,其中:
向所述多个密码装置发送所述承诺包括向代理装置发送所述承诺,其中所述代理装置将所述承诺发送到所述多个密码装置;
从所述多个密码装置接收所述多个部分计算包括从所述代理装置接收所述多个部分计算,其中所述代理装置从所述多个密码装置接收所述多个部分计算;以及
从所述多个密码装置接收所述多个部分签名包括从所述代理装置接收所述多个部分签名,其中所述代理装置从所述多个密码装置接收所述多个部分签名。
3.根据权利要求1所述的方法,其中所述多个密码装置至少包括预定阈值数目的密码装置,并且其中所述预定阈值数目的密码装置少于全部数目的密码装置。
4.根据权利要求1所述的方法,其中基于所述多个部分计算生成所述密码密钥包括:
基于所述多个部分计算生成密钥生成种子;以及
通过使用所述密钥生成种子作为密钥生成函数的输入来生成所述密码密钥。
5.根据权利要求1所述的方法,其中生成所述承诺包括使用散列函数生成所述消息和所述随机值的散列值。
6.根据权利要求1所述的方法,还包括从密码装置的网络中选择所述多个密码装置。
7.根据权利要求1所述的方法,还包括:
向多个额外密码装置发送所述验证签名和所述承诺,其中所述多个额外密码装置使用验证密钥和所述承诺验证所述验证签名;
接收多个额外部分计算,其中所述多个额外部分计算由所述多个额外密码装置使用多个额外秘密份额和所述承诺生成;
基于所述多个额外部分计算生成第二密码密钥;以及
使用所述第二密码密钥解密所述密文以产生所述消息和所述随机值。
8.根据权利要求7所述的方法,其中所述多个密码装置中的一个或多个密码装置与多个额外密码装置中的一个或多个额外密码装置相同,其中所述多个秘密份额中的一个或多个秘密份额与多个额外秘密份额中的一个或多个额外秘密份额相同。
9.一种方法,包括由计算机***执行:
将验证签名和承诺发送到多个密码装置,其中所述多个密码装置使用验证密钥和所述承诺验证所述验证签名;
接收多个部分计算,其中所述多个部分计算由所述多个密码装置使用多个秘密份额和所述承诺生成;
基于所述多个部分计算生成密码密钥;以及
使用所述密码密钥来解密密文以产生消息和随机值。
10.根据权利要求9所述的方法,其中所述验证签名向所述多个密码装置指示所述计算机***想要执行解密,并且其中所述多个密码装置通过以下操作验证所述验证签名:
使用验证密钥解密所述验证签名以产生额外承诺;以及
确定所述额外承诺是否与所述承诺相同。
11.根据权利要求9所述的方法,还包括将指示符发送到所述多个密码装置,其中所述指示符向所述多个密码装置指示所述计算机***想要执行解密。
12.根据权利要求9所述的方法,其中:
向所述多个密码装置发送所述承诺包括向代理装置发送所述承诺,其中所述代理装置将所述承诺发送到所述多个密码装置;
向所述多个密码装置发送所述验证签名包括将所述验证签名发送到代理装置,其中所述代理装置将所述验证签名发送到所述多个密码装置;以及
从所述多个密码装置接收所述多个部分计算包括从所述代理装置接收所述多个部分计算,其中所述代理装置从所述多个密码装置接收所述多个部分计算。
13.根据权利要求9所述的方法,其中所述多个密码装置至少包括预定阈值数目的密码装置,其中所述预定阈值数目的密码装置少于全部数目的密码装置。
14.根据权利要求9所述的方法,其中基于所述多个部分计算生成所述密码密钥包括:
基于所述多个部分计算生成密钥生成种子;以及
通过使用所述密钥生成种子作为密钥生成函数的输入来生成所述密码密钥。
15.根据权利要求9所述的方法,还包括从密码装置的网络中选择所述多个密码装置。
16.一种方法,包括由密码装置执行:
从客户端计算机接收请求,所述请求包括使用消息和随机值生成的承诺;
基于所述请求的内容确定所述客户端计算机想要加密所述消息;
基于秘密份额和所述承诺生成部分计算;
基于验证份额和所述承诺生成部分签名;以及
将所述部分计算和所述部分签名发送到所述客户端计算机,由此使得所述客户端计算机能够:(1)使用所述部分计算生成密码密钥,(2)使用所述密码密钥加密所述消息,由此生成密文,(3)使用所述部分签名生成验证签名,并且(4)生成包括所述密文、所述验证签名和所述承诺的有效负载。
17.根据权利要求16所述的方法,还包括在从所述客户端计算机接收所述请求之前,从受信任外部服务器接收所述秘密份额,其中所述受信任外部服务器还向一个或多个其它密码装置发送一个或多个其它秘密份额。
18.根据权利要求16所述的方法,还包括:
从所述客户端计算机接收所述验证签名和所述承诺;
基于所述验证签名和所述承诺确定所述客户端计算机想要解密所述消息;
使用验证密钥和所述承诺验证所述验证签名;
基于所述承诺和所述秘密份额生成所述部分计算;以及
将所述部分计算发送到所述客户端计算机,其中所述客户端计算机使用所述部分计算来生成所述密码密钥,并且使用所述密码密钥来解密所述密文以产生所述消息和所述随机值。
19.根据权利要求18所述的方法,其中使用所述验证密钥和所述承诺验证所述验证签名包括:
使用所述验证密钥解密所述验证签名以产生额外承诺;以及
将所述承诺与所述额外承诺进行比较。
20.根据权利要求18所述的方法,还包括:
从所述客户端计算机接收指示所述客户端计算机想要解密所述消息的指示符;以及
将所述客户端计算机想要解密所述消息记录在日志文件中。
21.一种***,包括:
一个或多个处理器;以及
计算机可读介质,其存储多个指令,所述多个指令在被执行时使所述一个或多个处理器执行根据权利要求1至20中任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/779,422 US11438152B2 (en) | 2020-01-31 | 2020-01-31 | Distributed symmetric encryption |
US16/779,422 | 2020-01-31 | ||
PCT/US2021/014006 WO2021154542A1 (en) | 2020-01-31 | 2021-01-19 | Distributed symmetric encryption |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115004627A true CN115004627A (zh) | 2022-09-02 |
Family
ID=77062764
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180010614.6A Pending CN115004627A (zh) | 2020-01-31 | 2021-01-19 | 分布式对称加密 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11438152B2 (zh) |
EP (1) | EP4097914A4 (zh) |
CN (1) | CN115004627A (zh) |
WO (1) | WO2021154542A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024146347A1 (zh) * | 2023-01-04 | 2024-07-11 | 声龙(新加坡)私人有限公司 | 数据加密的方法、装置、设备及存储介质 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023055371A1 (en) * | 2021-09-30 | 2023-04-06 | Visa International Service Association | Replicated secret share generation for distributed symmetric cryptography |
CN114826702A (zh) * | 2022-04-11 | 2022-07-29 | 中国南方电网有限责任公司 | 数据库访问密码加密方法、装置和计算机设备 |
CN115001685B (zh) * | 2022-07-22 | 2022-10-21 | 北京信安世纪科技股份有限公司 | 不经意传输方法、装置、设备和存储介质 |
CN115134093B (zh) * | 2022-08-30 | 2022-11-15 | 北京信安世纪科技股份有限公司 | 数字签名方法及计算设备 |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NZ329891A (en) * | 1994-01-13 | 2000-01-28 | Certco Llc | Method of upgrading firmware of trusted device using embedded key |
US5625692A (en) | 1995-01-23 | 1997-04-29 | International Business Machines Corporation | Method and system for a public key cryptosystem having proactive, robust, and recoverable distributed threshold secret sharing |
AU2001287164B2 (en) * | 2000-08-04 | 2008-06-26 | First Data Corporation | Method and system for using electronic communications for an electronic contact |
US7383329B2 (en) | 2001-02-13 | 2008-06-03 | Aventail, Llc | Distributed cache for state transfer operations |
US7353380B2 (en) | 2001-02-12 | 2008-04-01 | Aventail, Llc, A Subsidiary Of Sonicwall, Inc. | Method and apparatus for providing secure streaming data transmission facilities using unreliable protocols |
CN101453332A (zh) | 2002-04-15 | 2009-06-10 | 株式会社Ntt都科摩 | 利用双线性映射的签名方案 |
US7725730B2 (en) | 2002-08-09 | 2010-05-25 | Emc Corporation | Cryptographic methods and apparatus for secure authentication |
US7590236B1 (en) | 2004-06-04 | 2009-09-15 | Voltage Security, Inc. | Identity-based-encryption system |
US20090198619A1 (en) | 2008-02-06 | 2009-08-06 | Motorola, Inc. | Aggregated hash-chain micropayment system |
GB2491896A (en) | 2011-06-17 | 2012-12-19 | Univ Bruxelles | Secret key generation |
US8868903B2 (en) | 2012-10-10 | 2014-10-21 | Ben-Gurion University Of The Negev | Digital arbitration |
EP2992638A1 (en) | 2013-04-30 | 2016-03-09 | Thomson Licensing | Threshold encryption using homomorphic signatures |
EP2905922A1 (en) | 2014-02-10 | 2015-08-12 | Thomson Licensing | Signing method delivering a partial signature associated to a message, threshold signing method, signature verification method, and corresponding computer program and electronic devices |
GB2530084B (en) | 2014-09-12 | 2022-04-27 | Sw7 Ventures H K Ltd | Key usage detection |
WO2016049406A1 (en) * | 2014-09-26 | 2016-03-31 | Technicolor Usa, Inc. | Method and apparatus for secure non-interactive threshold signatures |
EP3262551A4 (en) | 2015-02-27 | 2018-10-31 | Dyadic Security Ltd. | Asystem and methods for protecting keys using garbled circuits |
US9641341B2 (en) * | 2015-03-31 | 2017-05-02 | Duo Security, Inc. | Method for distributed trust authentication |
US10237068B2 (en) | 2015-04-27 | 2019-03-19 | Cisco Technology, Inc. | Network path proof of transit using in-band metadata |
WO2017106793A1 (en) | 2015-12-16 | 2017-06-22 | Visa International Service Association | Systems and methods for secure multi-party communications using a proxy |
US20170243193A1 (en) | 2016-02-18 | 2017-08-24 | Skuchain, Inc. | Hybrid blockchain |
WO2017179059A1 (en) | 2016-04-14 | 2017-10-19 | B. G. Negev Technologies And Applications Ltd., At Ben-Gurion University | Self-stabilizing secure and heterogeneous systems |
EP3367608A1 (en) | 2017-02-28 | 2018-08-29 | Koninklijke Philips N.V. | Elliptic curve isogeny based key agreement protocol |
EP3379767B1 (en) * | 2017-03-24 | 2021-01-13 | Hewlett-Packard Development Company, L.P. | Distributed authentication |
US10887090B2 (en) | 2017-09-22 | 2021-01-05 | Nec Corporation | Scalable byzantine fault-tolerant protocol with partial tee support |
US11552797B2 (en) | 2017-10-30 | 2023-01-10 | Visa International Service Association | Multi-party threshold authenticated encryption |
WO2019158209A1 (en) | 2018-02-16 | 2019-08-22 | Ecole polytechnique fédérale de Lausanne (EPFL) | Methods and systems for secure data exchange |
US10841081B2 (en) * | 2018-05-15 | 2020-11-17 | International Business Machines Corporation | Threshold oblivious pseudorandom function in a key management system |
GB201809887D0 (en) | 2018-06-15 | 2018-08-01 | Iothic Ltd | Decentralised authentication |
US11431487B2 (en) | 2020-04-28 | 2022-08-30 | Visa International Service Association | Adaptive attack resistant distributed symmetric encryption |
-
2020
- 2020-01-31 US US16/779,422 patent/US11438152B2/en active Active
-
2021
- 2021-01-19 CN CN202180010614.6A patent/CN115004627A/zh active Pending
- 2021-01-19 WO PCT/US2021/014006 patent/WO2021154542A1/en unknown
- 2021-01-19 EP EP21747347.9A patent/EP4097914A4/en active Pending
-
2022
- 2022-07-25 US US17/872,971 patent/US11804960B2/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024146347A1 (zh) * | 2023-01-04 | 2024-07-11 | 声龙(新加坡)私人有限公司 | 数据加密的方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US11438152B2 (en) | 2022-09-06 |
EP4097914A1 (en) | 2022-12-07 |
US20210243020A1 (en) | 2021-08-05 |
US11804960B2 (en) | 2023-10-31 |
EP4097914A4 (en) | 2024-02-21 |
WO2021154542A1 (en) | 2021-08-05 |
US20220385463A1 (en) | 2022-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12028454B2 (en) | Multi-party threshold authenticated encryption | |
US11895231B2 (en) | Adaptive attack resistant distributed symmetric encryption | |
CN113424185B (zh) | 快速不经意传输 | |
US11804960B2 (en) | Distributed symmetric encryption | |
Shao et al. | Fine-grained data sharing in cloud computing for mobile devices | |
CN114282928A (zh) | 基于区块链***结合钱包管理***的加密密钥存储和转移 | |
JP2023500570A (ja) | コールドウォレットを用いたデジタルシグニチャ生成 | |
CN109891423A (zh) | 使用多个控制机构的数据加密控制 | |
KR20210139344A (ko) | 데이터 기반 활동을 수행하는 방법 및 장치 | |
Kaaniche et al. | A novel zero-knowledge scheme for proof of data possession in cloud storage applications | |
CN111865555B (zh) | 一种基于k-Lin假设的同态加密方法 | |
CN115336224A (zh) | 自适应抗攻击分布式对称加密 | |
Al-Kaabi | Methods toward enhancing RSA algorithm: a survey | |
CN112836240A (zh) | 基于区块链的电子医疗数据安全共享方法、***及介质 | |
EP2395698B1 (en) | Implicit certificate generation in the case of weak pseudo-random number generators | |
WO2023055371A1 (en) | Replicated secret share generation for distributed symmetric cryptography | |
WO2023048711A1 (en) | Threshold secret share generation for distributed symmetric cryptography | |
CN114915401A (zh) | 一种可验证的同态代理重加密方法及*** | |
Purnamasari et al. | Secure data sharing scheme using identity-based encryption for e-health record | |
Wang et al. | Secure outsourced calculations with homomorphic encryption | |
Salim et al. | An efficient public auditing scheme for cloud storage with secure access control and resistance against DOS attack by iniquitous TPA | |
Liu et al. | Proofs of encrypted data retrievability with probabilistic and homomorphic message authenticators | |
George et al. | Improved multi‐party verification protocol with reduced computational overhead in cloud storage system | |
Alhamada et al. | Secure Key Exchange for Protecting Health Data Diffie-Hellman Based Approach | |
Boomija et al. | Threshold multiparty multi‐randomness secure partially homomorphic encryption for data security 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 |