CN114008976B - 用于双壳加密的混合密钥交换 - Google Patents
用于双壳加密的混合密钥交换 Download PDFInfo
- Publication number
- CN114008976B CN114008976B CN202080044425.6A CN202080044425A CN114008976B CN 114008976 B CN114008976 B CN 114008976B CN 202080044425 A CN202080044425 A CN 202080044425A CN 114008976 B CN114008976 B CN 114008976B
- Authority
- CN
- China
- Prior art keywords
- cryptographic
- data
- message
- key
- cause
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 239000000463 material Substances 0.000 claims abstract description 267
- 238000004891 communication Methods 0.000 claims abstract description 59
- 230000004044 response Effects 0.000 claims abstract description 53
- 238000004422 calculation algorithm Methods 0.000 claims description 69
- 238000009795 derivation Methods 0.000 claims description 18
- 230000006870 function Effects 0.000 claims description 16
- 230000015654 memory Effects 0.000 claims description 10
- 238000000034 method Methods 0.000 description 38
- 230000005540 biological transmission Effects 0.000 description 14
- 230000008569 process Effects 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 7
- 238000012546 transfer Methods 0.000 description 7
- 238000013500 data storage Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000009977 dual effect Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000003936 working memory Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/045—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply hybrid encryption, i.e. combination of symmetric and asymmetric encryption
-
- 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/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0478—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload applying multiple layers of encryption, e.g. nested tunnels or encrypting the content with a first key and then with at least a second key
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/061—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
- H04L63/205—Network architectures or network communication protocols for network security for managing network security; network security policies in general involving negotiation or determination of the one or more network security mechanisms to be used, e.g. by negotiation between the client and the server or between peers or by selection according to the capabilities of the entities involved
-
- 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
-
- 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/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2463/00—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
- H04L2463/061—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying further key derivation, e.g. deriving traffic keys from a pair-wise master key
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
- Storage Device Security (AREA)
Abstract
第一计算***通过建议混合密码方案与第二计算***建立密码保护的通信会话。响应于所建议的混合密码方案,第二计算***向所述第一计算***传输密码材料,并且所述第一计算***向所述第二计算***传输密码材料。使用所述密码材料,导出两个或更多个密码密钥。一个密码密钥用于对一个或多个数据项执行内部密码操作,并且另一个密码密钥用于对已通过所述内部密码操作进行密码保护的一个或多个数据项执行外部密码操作。
Description
相关申请的交叉引用
本申请要求在2019年6月19日提交、标题为“用于双壳加密的混合密钥交换”的美国临时申请号62/863,751,以及在2020年6月17日提交、标题为“用于双壳加密的混合密钥交换”的美国专利申请号16/903,873的权益,其全部内容通过引用的方式结合在本文中。
背景技术
安全性是网络通信的重要组成部分,因为网络通信通常包含敏感数据。用户依靠网络服务提供商来部署关键技术,以确保他们的交易信息保持安全,以抵御全球在线攻击者日益增长的威胁。网络通信通常通过密码保护的通信协议来保护,这些协议促进了客户端和服务器之间通信会话的安全性。尽管做出了重大努力来防止数据落入未经授权的实体手中,但恶意实体使用的技术仍然会成功并不断发展。跟上这种演变本身不仅需要大量资源,而且更新技术以确保数据安全还涉及额外的重要资源,以确保未来的兼容性。
附图说明
将参考附图描述各种技术,在附图中:
图1示出了一个实施例,其中客户端使用由双壳加密保护的通信信道与服务器通信。
图2示出了一个示例性实施例,其中第一计算***(客户端)与第二装置(服务器)协商以建立相互混合密码方案和相关联的密码密钥。
图3示出了一个示例性实施例,其中第一计算***(客户端)与第二计算***(服务器)协商以基于一个或多个提议的密码方案建立相互混合密码方案,然后至少部分地基于所建立的相互混合密码方案来导出密码密钥。
图4示出了一个示例性实施例,其中第一计算***(客户端)与第二计算***(服务器)协商以通过执行密码材料的初始交换来建立相互混合密码方案,然后至少部分地基于初始交换的密码材料来导出密码密钥。
图5示出了一个示例性实施例,其中第一计算***(客户端)与第二计算***(服务器)协商以通过执行密码材料的初始交换并结合第一密码方案的提议以及第二密码方案的子提议来建立带外混合密码方案,然后至少部分地基于密码材料来导出密码密钥。
图6示出了一个示例性实施例,其中第一计算***(客户端)构建消息、利用根据混合密码方案导出的第一密码密钥对消息执行密码操作、根据密码传输协议将消息串行化为块,并且利用根据混合密码方案导出的第二密码密钥对每个块执行密码操作。
图7示出了一个示例,其中第一计算***(客户端)构建消息、对消息进行串行化,并且首先利用第一密码密钥对消息执行密码操作,其次利用第二密码密钥对消息执行密码操作,每个密钥是根据混合密码方案导出的。
图8示出了一个示例性实施例,其中第一计算***(客户端)构建消息,并且使用多个串行化将受密码保护的消息传输到第二装置(服务器),其中通过使用根据混合密码方案导出的密码密钥的串行化的各阶段之间的密码操作来密码保护消息数据。
图9示出了根据本文所述的各个实施例的用于执行双壳加密的示例性过程。
图10示出了其中可以实现各个实施例的***。
具体实施方式
本文件描述了促进新型混合密码密钥交换的各种***和方法,该交换能够将后量子密码技术的安全性与经典密码密钥交换技术的稳健性相结合,同时确保行业采用、标准-合规性和认证的路径。在一些示例中,这是通过使用双壳加密来实现的。在双壳加密中,使用通过混合密码密钥交换提供的不同加密密钥执行至少两个不同的加密操作。作为使用双壳加密的结果,所描述的方案提供的整体安全性等效于(至少一样强)由不同的单独加密操作中的任何一个提供的最大安全性。除了较早应用的量子安全密码操作的安全性改进以外,还保留了后来应用的经典密码操作的符合标准的方面。这种改进的技术提供了一种握手,该握手导致会话的多个密码密钥的协商,以启用至少双壳加密,同时遵守用于建立密码保护的会话的公共协议。
在示例性实施例中,当第一装置(例如客户端装置,如下面结合图10所描述的)提示第二装置(例如网络服务器装置,如下面结合图10所描述的)使用混合密码方案开始通信时,双壳加密开始。混合密码方案是一种使用两个或更多个不同的密码协议或算法来保护数据(例如在第一装置和第二装置之间传送的数据)的方法,其中在第一轮中用第一密码算法(例如下面结合图2所描述的量子安全算法)对传送的数据进行加密。在第一轮中用第一密码算法加密的数据然后在第二轮中用第二密码算法加密,如现代公钥密码算法或共享密钥密码算法,如下面结合图2所描述的。
为了使用双壳加密,在示例性实施例中,第一装置与第二装置协商使用哪个混合密码方案,包括在执行双壳加密时将使用哪些密码算法。一旦在第一装置和第二装置之间建立了相互混合密码方案,就执行密钥交换。密钥交换,如下面结合图2-5进一步详细描述的,允许第一装置和第二装置获得使用混合密码方案执行加密所必需的密钥。
在第一装置和第二装置之间交换密钥之后,数据被直接加密或者当它通过安全通信信道时被加密,如下面结合图6-8所述。首先,使用第一密码算法和用于加密内层的第一密钥对数据进行加密。该加密内层可以是量子安全加密,如下所述。其次,先前使用第一密钥通过第一密码算法加密的数据使用第二密钥通过第二密码算法进行加密。该外层加密是常用的加密标准或协议,如下面结合图6-8所描述的。
尽管出于说明的目的广泛使用双壳加密,但应注意,本文所描述的技术可适于利用附加的加密层(多于两层)或其他密码保护(例如,数字签名)。当使用附加的加密层时,如果多于两种算法要应用于第一装置和第二装置之间的数据,则混合密码方案的协商将包括附加算法。因此,交换附加的密钥并且可能需要更复杂的密钥交换协议。
在前面和下面的描述中,描述了各种技术。出于解释的目的,将阐述具体的配置和细节,以便提供对实现对这些技术的可能方式的透彻理解。然而,还将显而易见的是,以下描述的技术可以在没有具体细节的情况下以不同的配置来实践。此外,可省略或简化公知的特征,以避免使所描述的技术不清楚。
下面结合图1描述说明双壳加密的实施例。下面结合图2-5介绍使用双壳加密的混合密钥交换的几个示例性实施例。下面结合图6-8介绍使用双壳加密执行的加密的几个示例性实施例。第一组实施例,集合A(图2-5),描述了建立加密密钥的各种方法(例如,在两个计算实体之间,例如在客户端和服务器之间协商共享秘密)。第二组实施例,集合B(图6-8),描述了使用加密密钥来执行密码操作的各种方法。集合A的任何实施例可以与集合B的任何实施例组合以执行双壳加密。尽管出于说明的目的广泛使用双壳加密,但应注意,本文所描述的技术可适于利用附加的加密层(多于两层)或其他密码保护(例如,数字签名)。出于说明的目的,关于图1-8中进一步描述的各种实施例,计算***可与计算装置互换。客户端、客户端计算机、客户端装置或任何其他客户端是计算***的类型或用途。服务器、服务器计算机、服务器装置或任何其他服务器是计算***的一种类型或用途。计算***可与计算机装置互换。
图1示出了一个实施例,其中客户端102使用由双壳加密110、112保护的通信信道108与服务器114通信108。首先,客户端102,下面结合图10进一步描述,与服务器114协商混合密码方案104,下面结合图10进一步描述。混合密码方案是其中使用多种不同密码算法的密码方案。例如,在如本文进一步描述的双壳加密中,量子安全密码算法与第一密码密钥结合使用以由客户端102或服务器114加密一个或多个数据项,以及非量子安全密码算法与第二密码密钥结合使用以加密先前加密的一个或多个数据项。
在图1的实施例中,一旦建立混合密码方案104,客户端102和服务器114就交换密钥,如下面结合图2-5进一步描述的。密钥交换106通常通过在客户端和服务器之间交换多个密码材料并利用这些密码材料导出一个或多个密码密钥来执行。导出至少部分地基于在混合密码方案的协商或握手期间交换的密码材料来执行,但是只要在客户端102和服务器114之间交换密码材料,就可以独立于协商或握手来执行。一旦交换了密钥106,就可以执行握手验证以确认客户端102和服务器114各自从交换的密码材料导出等价密钥。密码密钥是根据密码材料导出的,并且用于执行本文进一步描述的加密操作的密码密钥不是直接从用于执行所述加密操作的任何其他密码密钥导出的。
密码材料包括用于使用密钥导出函数导出密码密钥的信息。这包括用于生成或导出密钥的数值或其他类型的信息,例如质数、伪质数、散列值或用于密码密钥导出的任何其他类型的信息。密码材料可以实现为用作密码算法输入的位序列,其中序列的特定属性取决于所使用的特定算法。在一个实施例中,密码材料可以被细分成两个较小的或导出的密码材料,其中来自较大密码材料的每个较小的或导出的密码材料可以单独使用来导出一个或多个密码密钥。
密码密钥是用于执行加密操作的任何类型的密钥,例如加密密钥或解密密钥,以及其他类型的密钥。密码操作是一种变换,例如数学变换,它与密钥一起应用于一个或多个数据对象。例如,密码操作是加密、解密、散列、签名或任何其他类型的密码操作。一种类型的密码操作是使用特定密码算法执行的密码操作,例如加密,如在本文进一步描述的。例如,一种类型的密码操作是使用高级加密标准(AES)执行的加密,而另一种类型的相同密码操作是使用Rivest-Shamir-Adleman(RSA)执行的加密。
由客户端102和服务器114导出的多个密钥用于保护要传送的数据108。使用从交换的密码材料导出的一个密码密钥执行内部加密112,并且使用从交换的密码材料导出的另一个密码密钥执行外部加密。如下文进一步描述的,内部加密112可以使用量子安全算法来执行。外部加密110可以使用不同的加密算法来执行,使得外部加密110符合各种密码传输协议,或者甚至可以由各种密码传输协议,例如TLS来执行。
用于执行内部112或外部110加密或解密的密钥直接从交换的106密码材料或每个单独交换的106密码材料的子集导出。从密钥立即或间接导出的数值可用于执行内部112或外部110加密或解密,直接从交换的106密码材料导出。在数据的传送108期间交换的消息可以直接基于通过双壳加密加密的数据,或者可以包括通过双壳加密加密的部分或全部数据。
图2示出了示例性实施例A-1,其中第一计算***(客户端)202与第二计算***(服务器)204协商以建立相互混合密码方案和相关联的密码密钥222、224、226、228。通常,第一计算***202与第二计算***204协商以商定要使用的显式混合密码方案,并且一旦商定了显式混合密码方案,则由第一计算***202和第二计算***202导出220密码密钥。实施例A-1的操作包括:
1.在第一计算***202处,在如下所述的密码传输协议下向第二计算***204提交提议206或建议,以使用混合密码方案,其中第一密码算法执行数据的内部加密,并且第二个密码算法对由内部加密加密的数据执行外部加密。
2.从第二计算***204接收同意使用所提议的206或所建议的混合密码方案的响应208,该响应包括第一密码材料210和第二密码材料212。响应208可以替代地包括用于构造或导出第一密码材料210和第二密码材料212的单个密码材料。
3.由第一计算***202向第二计算***204传输214第三密码材料216和第四密码材料218。第一计算***202可以替代地传输214用于构造或导出第三密码材料216和第四密码材料218的单个密码材料。
4.由第一计算***202和第二计算***204基于第一密码材料210和第三密码材料216导出220用于第一密码算法的第一加密密钥222、226。
5.由第一计算***202和第二计算***204基于第二密码材料212和第四密码材料218导出220用于第二密码算法的第二加密密钥224、228。
6.在第一计算***202和第二计算***204之间执行握手验证230,确认对第一加密密钥222、226和第二加密密钥224、228的商定。
在一个实施例中,第一计算***202和第二计算***204中的一个是客户端(例如下面结合图10所述)并且第一计算***202和第二计算***204中的另一个是服务器(例如下面结合图10所述)。在步骤1-3和6的每一个中使用的示例密码传输协议包括但不限于:传输层安全(TLS,例如TLS 1.1、TLS 1.2和TLS 1.3)、IP安全(IPSec)、安全套接层(SSL)、媒体访问控制安全(MACsec)、安全外壳(SSH)的版本,以及与WiFi、蜂窝(5G、WiMAX、LTE、CDMA、UMTS、GSM等)和其他通信协议的更广泛的通信技术一起使用的安全协议。在一个实施例中,提议206是包括用于发起密码传输协议的握手的数据的消息,例如各种版本的TLS中的ClientHello消息。在一个实施例中,提议206是包括用于重新协商会话的数据的消息。在一个实施例中,提议206是对先前提议或其他提议的反提议。提议206中建议的混合密码方案包括在第一计算***202支持的密码套件列表中列出的两个或更多个密码算法。在各种实施例中,混合密码方案是至少使用双壳加密的方案,其中使用第一密码算法执行内部加密或解密,并使用第二密码算法执行外部加密或解密。
在一个实施例中,响应208是一个或多个包括数据的消息,例如各种版本的TLS中的ServerHello消息。响应208指示同意提议的或建议的密码套件。另外,响应208提供第一密码材料210和第二密码材料212,如本文所述。密钥导出220是由第一计算***202和第二计算***204两者导出一个或多个密码密钥222、224、226、228的过程。在一个实施例中,密钥导出220是从密码材料210、212、216、218导出一个或多个密码密钥222、224、226、228的散列函数。在提议206和响应208期间,使用由第一计算***202和第二计算***204相互决定的密码算法所支持的任何密钥导出函数来实现密钥导出220。
在一个实施例中,握手验证230是执行验证以确保第一计算***202和第二计算***204具有相互导出220的相同的密码密钥222、224、226、228的步骤。握手验证230可以例如通过在第一计算***202和第二计算***204之间商定的或预定的消息的简单交换来执行。该消息由每个计算***202、204使用导出的加密密钥222、224、226、228中的一个或每一个进行加密,并被发送到另一相应的计算***。每个计算***202、204将接收到的加密消息解密为明文。如果明文与原始消息不匹配,则密钥交换失败。在一个实施例中,确认第一计算***202和第二计算***204两者对导出密钥222、224、226、228的商定的握手验证230通过简单的预定消息或数据值的加密和解密来执行。如果解密的消息或数据值与加密的明文不匹配,则握手验证230失败。否则,密钥被成功交换。
如上所述,第一密码材料210和第三密码材料216用于促进双壳加密方案中的外层加密(或第二加密),而第二密码材料212和第四密码材料218用于促进双壳加密方案中的内层加密(或第一加密)。在一个实施例中,第一密码材料210和第三密码材料216各自从单独的密码材料构造和/或导出的,其中单独的密码材料可以在尺寸上大于或等于第一密码材料210和第三密码材料216中的每一个。另外,在一个实施例中,第二密码材料212和第四密码材料218各自从另一个单独的密码材料构造和/或导出,其中另一个单独的密码材料也可以在尺寸上大于或等于第二密码材料212和第四密码材料218中的每一个。
例如,在一个实施例中,如果第一密码材料210和第二密码材料212各自从单独的密码材料构造和/或导出,则所述单独的密码材料是比特序列,其中第一子序列是或者用于导出或构造第一密码材料210,并且第二子序列是或者用于导出第二密码材料212。可以使用每个导出或构造的密码材料的子序列从单独的密码材料中导出附加的密码材料。子序列可以是分离的或交错的。如果第三密码材料216和第四密码材料218各自从单独的密码材料构造和/或导出,则所述单独的密码材料是比特序列,其中第一子序列是或者用于导出或构造第三密码材料216,并且第二子序列是或者用于导出第四密码材料218。
作为另一个示例,在一个实施例中,将单独的密码材料连同第一值一起输入到密码散列函数、密钥导出或其他函数中以生成第一密码材料210。将单独的密码材料连同第二值一起输入到密码散列函数、密钥导出或其他函数中以生成第二密码材料212。使用另一个单独的密码材料连同第三值和第四值来执行相同的过程以生成第三密码材料216和第四密码材料218。密码材料的一部分是密码材料中用于生成另一个密码材料的数据子集。在一个实施例中,密码材料的一部分包括所有密码材料。在另一个实施例中,密码材料的一部分包括少于全部的密码材料。
第一密码材料210和第三密码材料216可以对应于经典密码方案或量子安全密码方案,并且第二密码材料212和第四密码材料218可以对应于经典密码方案或量子安全密码方案(也称为后量子方案),本公开涵盖所有此类组合。
每个密码材料对(第一密码材料210与第三密码材料216配对,第二密码材料212与第四密码材料218配对)可以对应于相同的密码方案或不同的密码方案。在一个实施例中,如果第一密码材料210和第二密码材料212由一个单独的密码材料或不同的单独密码材料构建或导出,如上所述,则构建或导出第一密码材料210和第三密码材料216的每一个的单独的密码材料对应于每个构建或导出的密码材料的相应密码方案。另外,在一个实施例中,如果第二密码材料212和第四密码材料218由一个单独的密码材料或不同的单独的密码材料构建或导出,如上所述,则构建或导出第二密码材料212和第四密码材料218中的每一个的单独的密码材料对应于每个构建或导出的密码材料的相应密码方案。
在一个实施例中,密码方案彼此独立的以便防止对其中一个的攻击作用被用于另一个。作为说明性示例,第一密码材料210和第三密码材料216可以是作为Diffie-Hellman密钥交换(例如,椭圆曲线Diffie-Hellman(ECDH)密钥交换)的一部分传输的密码材料,并且第二密码材料212和第四密码材料218可以是作为容错学习或其他(例如,环上容错学习)量子安全密钥交换的一部分传输的密码材料。如果使用传统计算***和量子计算***两者抵抗密码攻击,则密钥交换是量子安全的。
在一个实施例中,密码材料210、212、216、218是可用于使用密钥导出函数(其从秘密值导出一个或多个秘密密钥)导出密码密钥的信息。密码材料210、212、216、218可被实现为用作密码算法的输入的比特序列,其中序列的特定属性取决于所使用的特定算法,其中一些算法在本文中列出。
第一密码材料210和第三密码材料216可用于导出220第一密码密钥222、226,例如根据2006年3月NIST特刊800-56A的推荐使用离散对数密码学的成对密钥建立方案(Recommendation for Pair-Wise Key Establishment Schemes Using DiscreteLogarithm Cryptog raphy)中描述的协议。第一密码密钥222、226可由密码传输协议用于会话密钥,例如通过作为会话密钥本身或用作导出会话密钥的输入。用于第二密码材料212和第四密码材料218的密钥导出220函数用于导出220第二加密密钥224、228,并且可以与用于第一密码材料210和第三加密材料216的密钥导出220函数相同或相似。替代地,密钥导出220函数可以相同,但具有不同的参数。使用建立的密码材料210、212、216、218在第一计算***202和第二计算***204上独立地执行密钥导出220操作。可用于导出220第一密码密钥222、226和/或第二密码密钥224、228的示例密钥商定算法是:BIKE、Clas sic McEliece、CRYSTALS-KYBER、FrodoKEM、HQC、LAC、LED Acrypt、NewHope、NTRU、NTRU Prime、NTS-KEM、ROLLO、Round5、RQC、SABER、SIKE、Three Bears以及其他这样的后量子算法。
图3示出了示例性实施例A-2,其中第一计算***(客户端)302与第二计算***(服务器)304协商以基于一个或多个建议306、308的密码方案建立相互混合密码方案,然后至少部分地基于所建立的相互混合密码方案来导出324密码密钥326、328、330、332。在实施例A-2中,第一计算***302与第二计算***304协商以商定要使用的带外混合密码方案。在一个实施例中,带外混合密码方案是一种在密码材料的常规通信之外交换一个或多个密码材料的混合密码方案。一旦商定了混合密码方案,就执行通过密钥导出324的密钥交换。实施例A-2的操作包括:
1.在第一计算***302处,如上面结合图2所描述的,在密码传输协议下向第二计算***304传输提议306。提议306是使用第一密码方案的提议并且在提议306中包括指定使用第二密码方案的子提议308。
2.从第二计算***304接收同意使用第一密码方案的响应310,该响应310包括第一密码材料312和对子提议314的接受,对子提议314的接受包括第二密码材料316。响应310和对子提议314的接受可以替代地包括用于构造或导出第一密码材料312和第二密码材料316的单个密码材料。
3.向第二计算***304传输318第三密码材料320和第四密码材料322。第一计算***302可以替代地传输318用于构造或导出第三密码材料320和第四密码材料322的单个密码材料。
4.由第一计算***302和第二计算***304基于第一密码材料312和第三密码材料320导出324第一加密密钥326、330。
5.由第一计算***302和第二计算***304基于第二密码材料316和第四密码材料322导出324第二加密密钥328、332。
6.在第一计算***302和第二计算***304之间执行握手验证334,确认对第一加密密钥326、330和第二加密密钥328、332的商定。
在一个实施例中,提议306是包括用于发起密码传输协议的握手的数据的消息,例如各种版本的TLS中的ClientHello消息。在一个实施例中,子提议308是提议306的一个或多个数据组件。密码方案提议和子提议可以在ClientHello消息的扩展字段中指定,例如,当TLS用作密码传输协议时。提议306和子提议308中指定的密码方案被预先建立为由第一计算***302和第二计算***304两者支持,如上面结合图2所描述的。
在一个实施例中,由第二计算***304提供的响应310包括响应310消息,如上面结合图2所描述的,用于提议306和子提议308两者。响应310包括第一密码材料312,并且子提议314的接受包括第二密码材料316。密钥导出324和握手验证334如上面结合图2所描述的那样执行。
图4示出了示例性实施例A-3,其中第一计算***(客户端)402与第二计算***(服务器)404协商以通过执行密码材料408、410、414、416的初始交换406、412来建立相互混合密码方案,然后至少部分地基于初始交换的密码材料408、410、414、416来导出418密码密钥420、422、424、426。在实施例A-3中,第一计算***402与第二计算***404协商以商定显式混合密码方案与不等待首先建立混合密码方案的密码材料408、410的预先交换一起使用。实施例A-3的操作包括:
1.在第一计算***402处,在如上面结合图2描述的密码传输协议下,向第二计算***404提交提议406,以使用所建议的混合密码方案,该混合密码方案至少包括第一密码材料408和第二密码材料410。第一计算***402可以替代地提交包括用于构造或导出第一密码材料408和第二密码材料410的单个密码材料的提议406。
2.从第二计算***404接收同意使用所建议的混合密码方案的响应412,该响应412包括第三密码材料414和第四密码材料416。响应412可以替代地包括用于构造或导出第三密码材料414和第四密码材料416的单个密码材料。
3.由第一计算***402和第二计算***404基于第一密码材料408和第三密码材料414导出418第一加密密钥420、424。
4.由第一计算***402和第二计算***404基于第二密码材料410和第四密码材料416导出418第二加密密钥422、426。
5.在第一计算***402和第二计算***404之间执行握手验证428,以确认对第一加密密钥420、424和第二加密密钥422、426的商定。
当与图3的实施例A-2或图2的实施例A-1相比时,图4的实施例A-3包括更少的操作或通信步骤。密码材料408、410与提议406一起由第一计算***402发送,并且在对提议建立混合密码方案的响应412中从第二计算***404接收密码材料414、416。在将密码材料408、410、414、416的交换与混合密码方案的协商相结合时,消除了一轮通信。
图5示出了示例性实施例A-4,其中第一计算***(客户端)502与第二计算***(服务器)504协商以通过执行密码材料508、512的初始交换并结合对第一密码方案的提议506以及对第二密码方案的子提议510来建立带外混合密码方案,然后至少部分地基于密码材料508、512、516、520来导出522密码密钥524、526、528、530。在实施例A-4中,第一计算装置502与第二计算装置504协商以商定带外混合密码方案,如上面结合图3所描述的,与不等待首先建立混合密码方案的密码材料508、512的预先交换一起使用。实施例A-4的操作包括:
1.在第一计算***502处,在如上面结合图2所描述的密码传输协议下,向第二计算***504提交提议506,以使用包括第一密码材料508的第一建议的混合密码方案。另外,指定使用第二建议的密码方案的子提议510与提议506一起提交,其中子提议510包括第二密码材料512。第一计算***502可以替代地提交包括用于构造或导出第一密码材料508和第二密码材料512的单个密码材料的提议506和子提议510。
2.从第二计算***504接收同意使用第一建议的混合密码方案的响应514,该响应514包括第三密码材料516。另外,对子提议518的接受连同包括第四密码材料520的响应514一起提交给第一计算***502。响应514和对来自第二计算***504的子提议518的接受可以替代地包括用于构造或导出第三密码材料516和第四密码材料520的单个密码材料。
3.由第一计算***502和第二计算***504基于第一密码材料508和第三密码材料516导出522第一加密密钥524、528。
4.由第一计算***502和第二计算***504基于第二密码材料512和第四密码材料520导出522第二加密密钥526、530。
5.在第一计算***502和第二计算***504之间执行握手验证532,以确认对第一加密密钥524、528和第二加密密钥526、530的商定。
结合集合A(图2-5)的实施例,集合B(图6-8)的实施例描述了用于使用加密密钥来执行密码操作的各种方法,如上面结合图2所描述的。集合B的每个实施例,如图6-8所示,可以与集合A的任何一个实施例一起使用,如图2-5所示。
图6示出了示例性实施例B-1,其中第一计算***(客户端)602构建610消息612、利用根据混合密码方案导出的第一密码密钥对消息612执行密码操作,例如加密614、根据本文描述的密码传输协议将密码保护的消息616串行化618为块,并且利用根据混合密码方案导出的第二密码密钥对每个块执行密码操作,例如加密622。在实施例B-1中,包括单个通信信道中的数据的应用消息612使用由集合A的实施例中的任何一个建立的密码密钥被两次(或双重)密码保护614、622。实施例B-1的操作包括:
1.商定在使用集合A的实施例中的任何一个的第一计算节点和第二计算节点之间使用混合密码方案602和密码传输协议。
2.使用来自操作(步骤)1的集合A的实施例建立608可由第一计算***602和第二计算***604访问的第一密码密钥和第二密码密钥。
3.在第一计算***602处,构建610应用消息612。
4.通过使用第一密码密钥来密码保护应用消息612来执行内部密码操作,例如加密614,以产生密码保护的应用消息(加密应用消息616)。
5.使用密码传输协议将密码保护的应用消息(加密应用消息616)串行化(块和帧)618为一个或多个消息帧,该消息帧包括密码保护的数据(加密数据620),其至少包括初始消息帧。
6.通过使用第二密码密钥来密码保护来自包括密码保护的数据(加密数据620)的一个或多个消息帧的初始消息帧的主体,以产生包括初始消息帧的双重保护消息(双重加密消息624)来执行外部密码操作,例如加密622。
7.将包括一个或多个密码保护的消息帧的双重保护消息(双重加密消息624)帧传输626到第二计算***604。
8.对包括密码保护的数据(加密数据620)的一个或多个消息帧中的每一帧重复操作6和7。
在一个实施例中,根据集合A(图2-5)的实施例执行集合B(图6-8)的操作1(606)和2(608)。集合A(图2-5)中的任何实施例可用于满足集合B(图6-8)的每个实施例的操作1和2。
在一个实施例中,应用消息612是任意长度的任意字节流。在一个实施例中,应用消息612是包括任意长度的任意字节流的任何种类的数据。一份数据是信息的单位,例如数据。例如,在一实施例中,数据是包括字符值的一个或多个字节。应用消息612利用第一密码密钥加密,该第一密码密钥是从第一密码材料和第三密码材料导出的,如上面结合图2-5所描述的。对应用消息612没有结构要求。根据用于促进实施例B-1的密码传输协议(例如TLS、SSL、SSH等)所需的最大记录大小,应用消息612被拆分或串行化618成帧。密码保护的应用消息帧620使用第二密码密钥被双重或两次密码保护(例如通过外层加密),其中第二密码密钥是从第二密码材料和第四密码材料导出的,如上面结合图2-5所描述的。
图7示出了示例性实施例B-2,其中第一计算***(客户端)702构建消息712,串行化714消息712,并且通过使用第一密码密钥执行第一(内部)密码操作,例如加密718以及使用第二密码密钥执行第二(外部)密码操作,例如加密722来密码保护718、722串行化消息716,其中每个密钥是根据上面在图2-5所描述的混合密码方案导出的。在实施例B-2中,单个通信信道中的应用消息712使用使用集合A(图2-5)中的实施例的任何一个建立的密码密钥进行双重保护(例如,双重加密)。实施例B-2的操作包括:
1.商定在第一计算***702和第二计算***704之间使用混合密码方案706和密码传输协议。
2.建立708可由第一计算***702和第二计算***704访问的第一密码密钥和第二密码密钥。
3.在第一计算***702处,构建710应用消息712。
4.使用密码传输协议将应用消息714串行化(块和帧)714为包括一个或多个消息帧的串行化消息716,其至少包括初始消息帧。
5.通过使用第一密码密钥对(串行化消息716的)初始消息帧的主体进行密码保护来执行例如加密718的内部密码操作,以产生至少包括密码保护的消息记录的单重密码保护的消息(单重加密消息720)。
6.通过使用第二密码密钥对密码保护的消息记录(单重加密消息720)的主体进行密码保护来执行例如加密722的外部密码操作,以产生双重密码保护的消息记录(双重加密消息724)。
7.将双重密码保护的消息记录(双重加密消息728)传输726到第二计算***704。
8.对串行化消息716中的每个消息帧重复操作5-7。
在一个实施例中,根据所使用的密码通信协议的记录限制,将任意组成和长度的应用消息712划分或串行化714为包括消息帧的串行化消息716。首先通过使用结合上述集合A(图2-5)的实施例的任何一个导出的第一密码密钥执行例如加密718的内部密码操作来对每个帧进行密码保护。然后,通过使用结合上述集合A(图2-5)的实施例的任何一个导出的第二密码密钥来执行例如加密722的外部密码操作,对每个帧进行第二(双重)密码保护,但是不同顺序的密码操作被认为在本公开的范围内。
图8示出了示例性实施例B-3,其中第一计算***(客户端)802构建810消息812,并且使用多个数据串行化814、822将密码保护的消息传输830到第二装置(服务器)804,其中消息812数据由密码操作818、826在串行化814、826的各级之间使用根据混合密码方案导出的密码密钥来进行密码保护。在实施例B-3中,隧道化或密码通信信道中的应用消息812使用由集合A的实施例的任何一个建立的密码密钥进行双重加密,如上面结合图2-5所描述的。实施例B-2的操作包括:
1.商定在第一计算***802和第二计算***804之间使用混合密码方案806、第一密码传输协议和第二密码传输协议。
2.建立808可由第一计算***802和第二计算***804访问的第一加密密钥和第二加密密钥。
3.在第一计算***802处,构建810应用消息812。
4.通过使用第一密码传输协议将应用消息812划分成一个或多个第一消息帧(串行化消息)816来执行第一串行化814。
5.通过使用第一密码密钥对一个或多个第一消息帧(串行化消息)816的每个进行密码保护来执行例如加密818的内部密码操作,以产生一个或多个密码保护的消息(单重加密消息)820。
6.通过使用第二密码传输协议将一个或多个密码保护的消息记录(单重加密消息)820分成一个或多个第二消息帧(串行化单重加密消息)824来执行第二串行化822,其至少包括初始消息帧。
7.通过使用第二密码密钥对一个或多个第二消息帧(串行化单重加密消息)824的初始消息帧的主体进行密码保护来执行例如加密826的外部密码操作,以产生隧道化消息记录(双重加密消息)828。
8.将隧道化消息记录(双重加密消息)832传输830到第二计算***。
9.对一个或多个第二消息帧(串行化单重加密消息)824中的每个消息帧重复操作7和8。
在一个实施例中,结合集合A(图2-5)的密钥交换802实施例选择第二密码传输协议(例如TLS、SSH、SSL等)。由第一计算***802创建或构建810任意组成和任意长度的应用消息812。然后根据第一密码传输协议的最大记录大小将消息812划分或串行化814为一个或多个记录(串行化消息)816。例如通过使用结合集合A(图2-8)的任何一个实施例建立的第一密码密钥来执行加密(内部加密818)对串行化消息816中的每条记录进行密码保护。根据第二密码传输协议的记录大小,密码保护的记录(单重加密消息)820由第二串行化822进一步划分或串行化为帧或消息记录(串行化单重加密消息)824。例如通过使用结合集合A(图2-8)的任何一个实施例建立的第二密码密钥的外部加密826对串行化单重加密消息824中的每条记录或帧进行密码保护。
本领域技术人员根据本公开内容将理解,某些实施例可能能够实现某些优点,包括以下的一些或全部:(1)使用利用单个握手协商的两个密钥来执行双壳加密,以及(2)通过使用双壳加密,可以结合符合标准的经典外部加密操作来执行不符合标准的内部量子安全加密操作,以实现量子安全强度以及标准合规性。如上所述,各种机制通过在握手期间以各种方式(例如,在单个握手消息中,在多个握手消息中,利用握手消息的各种字段等)传输用于两个(或更多个)密钥的足够的密码材料来提供使用单个握手协商两个或更多个密钥。
图9示出了根据上面结合图2-8描述的各个实施例的用于执行双壳加密的示例性过程900。在一个实施例中,在过程900中,所述***通过从另一个***获得第一和第二密码材料904,然后将第三和第四密码材料传输到另一个***906来开始902。这可以例如根据对应于实施例A-1、A-2、A-3和/或A-4的上述技术来完成。所述***然后使用每个密码材料来导出第一加密密钥908和第二加密密钥910,这也可以例如根据对应于实施例A-1、A-2、A-3和/或A-4的上述技术来完成。所述***使用第一导出加密密钥908和第二导出加密密钥910来执行内部加密912和外部加密914。内部加密912和外部加密914可以例如根据对应于实施例B-1、B-2和/或B-3的上述技术来完成,并与上面结合实施例A-1、A-2、A-3和/或A-4所描述的任何技术结合地使用。一旦使用内部加密912和外部加密914对数据进行了加密,则示例过程900结束916。
图10示出了用于实现根据实施例的各方面的示例***1000的各方面。如将了解,尽管出于解释目的使用基于web的***,但是可视情况使用不同***来实现各个实施例。在一个实施例中,***包括电子客户端装置1002,该电子客户端装置包括可操作来在适当网络1004上发送和/或接收请求、消息或信息并且将信息传送回到装置的用户的任何适当装置。此类客户端装置的示例包括个人计算机、手机或其他移动电话、手持式消息传递装置、膝上计算机、平板计算机、机顶盒、个人数据助理、嵌入式计算机***、电子书阅读器等。在一个实施例中,网络包括任何适当的网络,包括内联网、互联网、蜂窝网络、局域网、卫星网络或任何其他此类网络和/或它们的组合,并且用于此类***的部件至少部分地取决于选定网络和/或***的类型。用于通过此类网络进行通信的许多协议和部件是众所周知的,因而本文不再详细论述。在一个实施例中,网络上的通信通过有线和/或无线连接及其组合来实现。在一个实施例中,网络包括互联网和/或其他可公开寻址的通信网络,因为***包括用于接收请求并且响应于所述请求而提供内容的web服务器1006,然而对于其他网络来说,可使用服务类似目的的替代装置,如本领域普通技术人员所显而易见的。
在一个实施例中,说明性***包括通过网络1004从服务器1006向客户端1002传输第一和第二密码材料1022。通过网络1004从客户端1002向服务器1006执行第三和第四密码材料1020的传输。根据上述实施例,在密钥交换完成之后,在客户端1002和服务器1006之间通过网络1004建立双重加密通信隧道1018或混合密码通信会话。还可以在web服务器1006和应用程序服务器1008之间建立双重加密通信隧道1024或混合密码通信会话。还可以在应用程序服务器1008和数据存储区1010之间建立双重加密通信隧道1026或混合密码通信会话。
在一个实施例中,说明性***包括至少一个应用程序服务器1008和数据存储区1010,并且应理解,可以存在可以链接起来或以其他方式来配置的若干应用程序服务器、层或其他元件、过程或部件,其可进行交互以执行如从适当数据存储区获得数据的任务。在一个实施例中,服务器被实现为硬件装置、虚拟计算机***、在计算机***上执行的编程模块、和/或配置有硬件和/或软件的其他装置以通过网络接收和响应通信(例如,web服务应用程序编程接口(API)请求)。如本文所使用的,除非另有说明或从上下文中清楚,术语“数据存储区”指代能够存储、访问和检索数据的任何装置或装置组合,所述装置的装置组合可包括任何标准、分布式、虚拟或集群式***中的任何组合和任何数目的数据服务器、数据库、数据存储装置和数据存储介质。在一个实施例中,数据存储区与块级和/或对象级接口通信。应用程序服务器可包括任何适当硬件、软件和固件,所述硬件、软件和固件视执行客户端装置的一个或多个应用程序的各方面的需要而与数据存储区集成、处置应用程序的部分或全部数据访问和业务逻辑。
在一个实施例中,应用程序服务器与数据存储区合作提供访问控制服务并生成内容,包括但不限于文本、图形、音频、视频和/或由web服务器以按下形式提供给与客户端装置相关联的用户的其他内容:超文本标记语言(“HTML”)、可扩展标记语言(“XML”)、JavaScript、级联样式表(“CSS”)、JavaScript对象表示法(JSON)、和/或另一种适当的客户端或其他结构化语言。在一个实施例中,传送到客户端装置的内容由客户端装置处理以提供一种或多种形式的内容,包括但不限于用户可以通过听觉、视觉和/或其他感官感受到的形式。在一个实施例中,所有请求和响应的处理以及客户端装置1002与应用程序服务器1008之间的内容传递由web服务器使用以下各项处理:PHP超文本预处理器(“PHP”)、Python、Ruby、Perl、Java、HTML、XML、JSON和/或本示例中另一种合适的服务器端结构化语言。在一个实施例中,本文描述为由单个装置执行的操作由形成分布式和/或虚拟***的多个装置共同执行。
在一个实施例中,数据存储区1010包括若干不同的数据表、数据库、数据文档、动态数据存储方案和/或用于存储与本公开的特定方面相关的数据的其他数据存储机构和介质。在一个实施例中,数据存储区包括用于存储生成数据1012和用户信息1016的机构,该生成数据和用户信息用于提供用于生成端的内容。数据存储区还被示出为包括用于存储日志数据1014的机构,该日志数据在一个实施例中用于报告、计算资源管理、分析或其他此类目的。在一个实施例中,诸如页面图像信息和访问权限信息(例如,访问控制策略或其他许可编码)的其他方面视情况存储在以上列出的任何机构中的数据存储区中或数据存储区1010中的附加机构中。
在一个实施例中,通过与其相关联的逻辑,数据存储区1010是可操作的以从应用程序服务器1008接收指令并响应于该指令获得、更新或以其他方式处理数据,并且应用程序服务器1008响应于所接收到的指令提供静态、动态数据或静态和动态数据的组合。在一个实施例中,动态数据(诸如在web日志(博客)、购物应用程序、新闻服务和其他此类应用程序中使用的数据)由如本文所述的服务器端结构化语言生成或由在应用程序服务器上操作或在其控制下操作的内容管理***(“CMS”)提供。在一个实施例中,用户通过用户操作的装置提交对某类项目的搜索请求。在该示例中,数据存储区访问用户信息以验证用户的身份,访问目录详细信息以获得有关该类型项目的信息,并将信息返回给用户,诸如在结果列表中用户经由用户装置1002上的浏览器查看的网页。继续该示例,在浏览器的专用页面或窗口中查看感兴趣的特定项目的信息。然而,应注意,本公开的实施例不一定限于网页的上下文,而是更普遍地适用于一般处理请求,其中请求不一定是对内容的请求。示例请求包括管理***1000和/或另一个***托管的计算资源和/或与其进行交互的请求,诸如用于启动、终止、删除、修改、读取、和/或以其他方式访问此类计算资源。
在一个实施例中,每个服务器通常包括提供用于所述服务器的一般管理和操作的可执行程序指令的操作***,并且包括存储指令的计算机可读存储介质(例如,硬盘、随机存取存储器、只读存储器等),当由服务器的处理器执行时,所述指令使得或以其他方式允许服务器执行其期望的功能(例如,这些功能是根据服务器的一个或多个处理器执行存储在计算机可读存储介质上的指令而实现的)。
在一个实施例中,***1000是利用经由通信链路(例如,传输控制协议(TCP)连接和/或传输层安全(TLS)或其他密码保护的通信会话)使用一个或多个计算机网络或直接连接互连的若干计算机***和部件的分布式和/或虚拟计算***。然而,本领域普通技术人员应理解,这种***可在具有比图10所示的组件更少或更多组件的***中操作。因此,图10中的***1000的描绘本质上应视为说明性的,并且不限制本公开的范围。
各个实施例可进一步在广泛范围的操作环境中实现,在一些情况下,所述环境可包括一个或多个用户计算机、计算装置或可用于操作多个应用程序中的任一个的处理装置。在一个实施例中,用户或客户端装置包括多个计算机中的任一个,诸如运行标准操作***的台式计算机、膝上计算机或平板计算机,以及运行移动软件并能够支持多个联网和消息传递协议的(移动)手机、无线和手持式装置,并且此类***还包括运行各种可商购得的操作***和其他已知应用程序中的任一个的多个工作站,用于诸如开发和数据库管理之类的目的。在一个实施例中,这些装置还包括其他电子装置(诸如虚拟终端、瘦客户端、游戏***和能够经由网络进行通信的其他装置),以及利用操作***级别虚拟化的虚拟装置(诸如虚拟机、管理程序、软件容器),以及支持能够经由网络进行通信的虚拟化的其他虚拟装置或非虚拟装置。
在一个实施例中,***利用本领域技术人员可能熟悉的至少一种网络来使用各种可商购得的协议中的任一种支持通信,所述协议如传输控制协议/互联网协议(“TCP/IP”)、用户数据报协议(“UDP”)、在开放***互连(“OSI”)模型的各层中操作的协议、文件传送协议(“FTP”)、通用即插即用(“UpnP”)、网络文件***(“NFS”)、公共互联网文件***(“CIFS”)以及其他协议。在一个实施例中,网络是局域网、广域网、虚拟专用网、互联网、内部网、外联网、公共交换电话网、红外网络、无线网络、卫星网络以及它们的任何组合。在一个实施例中,面向连接的协议用于在网络端点之间进行通信,使得面向连接的协议(有时称为基于连接的协议)能够在有序流中传输数据。在一个实施例中,面向连接的协议可以是可靠的或不可靠的。例如,TCP协议是一种可靠的面向连接的协议。异步传输模式(“ATM”)和帧中继是不可靠的面向连接的协议。面向连接的协议与面向数据包的协议(诸如UDP)形成对比,后者在没有保证的排序的情况下传输数据包。
在一个实施例中,***利用web服务器,该web服务器运行各种服务器或中间层应用程序中的一个或多个,包括超文本传输协议(“HTTP”)服务器、FTP服务器、公共网关接口(“CGI”)服务器、数据服务器、Java服务器、Apache服务器和业务应用程序服务器。在一个实施例中,一个或多个服务器还能够响应于来自用户装置的请求而执行程序或脚本,如通过执行实施为以任何编程语言(如C、C#或C++)或任何脚本语言(如Ruby、PHP、Perl、Python或TCL)以及其组合写成的一个或多个脚本或程序的一个或多个web应用程序。在一个实施例中,一个或多个服务器还包括数据库服务器,包括但不限于从/>和可商购得的那些,以及开源服务器,如MySQL、Postgres、SQLite、MongoDB以及其他任何能够存储、检索和访问结构化或非结构化数据的服务器。在一个实施例中,数据库服务器包括基于表的服务器、基于文档的服务器、非结构化服务器、关系服务器、非关系服务器,或者这些和/或其他数据库服务器的组合。
在一个实施例中,***包括以上讨论的各种数据存储区以及其他存储器和存储介质,其可驻留在各种位置,如在一个或多个计算机本地(和/或驻留在一个或多个计算机中)的存储介质上,或远离网络上的计算机中的任何或所有计算机。在一个实施例中,信息驻留在本领域技术人员熟悉的存储区域网(“SAN”)中,并且类似地,用于执行属于计算机、服务器或其他网络装置的功能的任何必要的文件视情况本地和/或远程存储。在***包括计算机化装置的实施例中,每个此类装置可包括经由总线电耦合的硬件元件,这些元件包括例如至少一个中央处理单元(“CPU”或“处理器”)、至少一个输入装置(例如鼠标、键盘、控制器、触摸屏或小键盘)、至少一个输出装置(例如显示装置、打印机或扬声器)、至少一个存储装置诸如磁盘驱动器、光学存储装置、和固态存储装置诸如随机存取存储器(“RAM”)或只读存储器(“ROM”),以及可移除的媒体装置、存储卡、闪存卡等,以及它们的各种组合。
在一个实施例中,此类装置还包括计算机可读存储介质读取器、通信装置(例如,调制解调器、网卡(无线或有线)、红外通信装置等)、以及如上所述的工作存储器,其中计算机可读存储介质读取器连接或被配置来接收计算机可读存储介质,表示远程、本地、固定和/或可移除的存储装置以及用于暂时和/或更永久地含有、存储、传输和检索计算机可读信息的存储介质。在一个实施例中,***和各种装置通常还包括位于至少一个工作存储器装置内的多个软件应用程序、模块、服务或其他元件,包括操作***和应用程序,如客户端应用程序或web浏览器。在一个实施例中,使用定制硬件,和/或特定元件在硬件、软件(包括可移植软件,如小程序)或两者中实现。在一个实施例中,采用与如网络输入/输出装置的其他计算装置的连接。
在一个实施例中,用于含有代码或部分代码的存储介质和计算机可读介质包括本领域已知或已使用的任何适当介质,包括存储介质和通信介质,如但不限于以用于存储和/或传输信息(如计算机可读指令、数据结构、程序模块或另一个数据)的任何方法或技术所实现的易失性和非易失性、可移除和不可移除的介质,包括RAM、ROM、电可擦可编程只读存储器(“EEPROM”)、闪存或另一个存储器技术、只读光盘驱动器(“CD-ROM”)、数字通用光盘(DVD)或其他光学存储装置、磁盒、磁带、磁盘存储装置或另一个磁性存储装置,或可用于存储所需信息且可由***装置访问的任何另一个介质。基于本文所提供的公开内容和教义,本技术领域普通技术人员将了解实现各个实施例的其他方式和/或方法。
因此,本说明书和附图被认为是说明性的而非限制性的。然而,将显而易见的是,在不脱离如在权利要求中阐述的本发明的更宽精神和范围的情况下,可以对其做出各种修改和改变。
其他变型也在本公开的精神内。因此,尽管所公开的技术可具有各种修改和替代构造,但在附图中示出并在上文中详细描述了其某些示出的实施例。然而,应理解,并不旨在将本发明限于所公开的一种或多种具体形式,相反,旨在涵盖落在如所附权利要求限定的本发明的精神和范围内的所有修改、替代构造和等效物。
在描述所公开实施例的上下文中(尤其是在所附权利要求的上下文中),术语“一个”和“一种”以及“所述”以及类似指称对象的使用应解释为涵盖单数和复数两者,除非在本文另外地指示或明显地与上下文矛盾。同样,“或”一词的使用应被解释为表示“和/或”,除非明确或与上下文矛盾。术语“包括”、“具有”、“包含”和“含有”应被解释为开放式术语(即,意味着“包括但不限于”),除非另有说明。术语“连接的”在未进行修改并且指代物理连接的情况下应解释为部分地或全部地纳入在以下解释内:附接至或结合在一起,即使存在介入物。除非本文另外指明,否则本文中值范围的列举仅仅意图用作个别地表示属于所述范围的各单独值的速记方法,并且犹如本文个别描述地那样将各单独值并入到本说明书中。除非上下文另有说明或矛盾,否则术语“集合”(例如,“项的集合”)或“子集”的使用应被解释为包括一个或多个成员的非空集合。此外,除非上下文另有说明或矛盾,否则对应集合的术语“子集”不一定表示对应集合的真子集,而是所述子集和对应集合可以相等。除非另有明确说明或从上下文中清楚,否则“基于”一词的使用意为“至少部分地基于”而不限于“仅仅基于”。
连结语,诸如“A,B,和C中的至少一个”或“A,B和C中的至少一个”形式的短语(即带有或不带有序列逗号的相同短语),除非另有特别说明或与另外与上下文明显矛盾,应在上下文中理解为通常用来表示某个项、术语等可以是A或B或C,A和B和C的集合的任何非空子集,或与上下文没有矛盾或另外排除在外(包含至少一个A,至少一个B或至少一个C)的任何集合。例如,在具有三个成员的集合的说明性示例中,连结短语“A、B、和C中的至少一个”和“A、B和C中的至少一个”是指以下任意集合:{A},{B},{C},{A,B},{A,C},{B,C},{A,B,C},并且如果没有明显矛盾或与上下文矛盾,则具有{A},{B}和/或{C}的任何集合作为子集(例如,具有多个“A”的集合)。因此,这种连结语通常不意图暗示某些实施例要求存在A中的至少一个,B中的至少一个和C中的至少一个。类似地,诸如“A,B,或C中的至少一个”和“A、B或C中的至少一个”的短语所指代的与“A,B,和C中的至少一个”和“A、B或C中的至少一个”所指代的相同,都是指代以下任意集合:{A},{B},{C},{A,B},{A,C},{B,C},{A,B,C},除非上下文中明确或清晰地指出不同的含义。另外,除非另有说明或与上下文矛盾,否则术语“多个”指示为复数的状态(例如,“多个项”指示多项)。多个项的数量为至少两个,但如果明确或通过上下文指示,则可以更多。
除非本文中另有指示或另外与上下文明显矛盾,否则本文中所描述的过程的操作都可以按任何合适的顺序进行。在一个实施例中,诸如本文所描述的那些过程(或其变型和/或组合)的过程在配置有可执行指令的一个或多个计算机***的控制下执行并且被实施为由硬件或其组合共同地在一个或多个处理器上执行来实施的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用程序)。在一个实施例中,代码例如以计算机程序的形式存储在计算机可读存储介质上,所述计算机程序包括可由一个或多个处理器执行的多个指令。在一个实施例中,计算机可读存储介质是排除暂时性信号(例如,传播的瞬变电或电磁传输)但包括在暂时性信号的收发器内的非暂时性数据存储电路(例如,缓冲器、高速缓存和队列)的非暂时性计算机可读存储介质。在一个实施例中,代码(例如,可执行代码或源代码)被存储在其上存储有可执行指令的一组一个或多个非暂时性计算机可读存储介质上,所述可执行指令在由计算机***的一个或多个处理器执行时(即,由于被执行)使计算机***执行本文所述的操作。在一个实施例中,该组非暂时性计算机可读存储介质包括多个非暂时性计算机可读存储介质,并且多个非暂时性计算机可读存储介质中的一个或多个单独的非暂时性存储介质不具有所有代码,而所述多个非暂时性计算机可读存储介质共同存储所有代码。在一个实施例中,执行可执行指令,使得不同的指令由不同的处理器执行,例如,在一个实施例中,非暂时性计算机可读存储介质存储指令,并且主CPU执行某些指令,而图形处理器单元执行其他指令。在另一个实施例中,计算机***的不同部件具有不同的处理器,并且不同的处理器执行指令的不同子集。
因此,在一个实施例中,计算机***被配置为实施单独地或共同地执行本文所描述的过程的操作的一个或多个服务,并且这样的计算机***配置有使得能够执行操作的适用的硬件和/或软件。此外,计算机***在本公开的一个实施例中是单个装置,并且在另一实施例中是分布式计算机***,其包括以不同方式操作的多个装置,使得所述分布式计算机***执行本文所述的操作,并且使得单个装置不执行所有操作。
本文所提供的任何以及所有示例或示例性语言(例如,“诸如”)的使用仅意图更好地说明本发明的实施例,并且除非另外要求保护,否则不会对本发明的范围施加限制。说明书中的任何语言都不应被解释为指示任何非要求保护的要素对于实践本发明都是必需的。
可鉴于以下条款对本公开的各个实施例进行描述:
1.一种计算机实现的方法,其包括:
在第一***中,执行与第二***的握手以建立密码保护的通信会话,握手包括:
从第二***获得第一密码材料和第二密码材料;
向第二***传输第三密码材料和第四密码材料以允许第二***基于第一密码材料和第三密码材料导出第一加密密钥并基于第二密码材料和第四加密材料导出第二加密密钥;
基于第一密码材料和第三密码材料导出第一加密密钥;
基于第二密码材料和第四密码材料导出第二加密密钥;
使用第一加密密钥对数据进行加密以得到第一加密数据;
使用第二加密密钥对第一加密数据进行加密以得到第二加密数据;以及
通过密码保护的通信会话传输消息,所述消息基于第二加密数据。
2.如条款1所述的计算机实现的方法,其中密码保护的通信会话是混合密码保护的通信会话,其中第一加密密钥对应于第一密码算法并且第二加密密钥对应于第二密码算法。
3.如条款1或2所述的计算机实现的方法,其中所述第二***响应于从第一***到第二***的标识第一密码算法和第二密码算法的第一消息而向第一***传输第一密码材料和第二密码材料。
4.如条款1-3中任一项所述的计算机实现的方法,其中所述第一***向第二***传输标识第一密码算法的第一消息并且向第二***传输标识第二密码算法的第二消息,并且所述第二***响应于第一消息向第一***传输第一密码材料并且响应于第二消息向第一***传输第二密码材料。
5.如条款1-4中任一项所述的计算机实现的方法,其中第一***向第二***传输包括第三密码材料和第四密码材料的第一消息,并且响应于第一消息而从第二***接收包括第一密码材料和第二密码材料的第二消息,第一消息标识第一密码算法和第二密码算法。
6.如条款1-5中任一项所述的计算机实现的方法,其中:
第一***向第二***传输包括第三密码材料的第一消息,第一消息标识第一密码算法;
第一***向第二***传输包括第四密码材料的第二消息,第二消息标识第二密码算法;
响应于指示第一密码算法的第一消息,第二***向第一***传输第一密码材料;以及
响应于指示第二密码算法的第二消息,第二***向第一***传输第二密码材料。
7.一种***,其包括:
一个或多个处理器;
存储器,其存储计算机可执行指令,所述计算机可执行指令是可执行以使一个或多个处理器:
至少通过以下操作建立密码保护的通信会话:
从另一个***获得第一密码材料;
向另一个***传输第二密码材料,以允许另一个***基于第一密码材料和第二密码材料导出第一密码密钥,并基于第一密码材料和第二密码材料导出第二密码密钥;
基于第一密码材料和第二密码材料导出第一密码密钥,并基于第一密码材料和第二密码材料导出第二密码密钥;
使用第一密码密钥对数据执行密码操作以创建第一密码保护的数据;
使用第二密码密钥对密码保护的数据执行密码操作以创建第二密码保护的数据;以及
通过密码保护的通信会话传输第二密码保护的数据。
8.如条款7所述的***,其中使用第一密码密钥对数据的密码操作是第一类型的加密操作并且使用第二密码密钥对密码保护的数据的加密操作是第二类型的加密操作。
9.如条款7或8所述的***,其中使***建立密码保护的通信会话的指令是可执行以使***响应于从***传输到另一个***的第一消息而从另一个***获得第一密码材料,第一消息包括关于第一密码算法的信息和关于第二密码算法的信息。
10.如条款7-9中任一项所述的***,其中使***建立密码保护的通信会话的指令是可执行以使***:响应于由***传输到另一个***的第一消息而从另一个***获得第一密码材料的第一部分,第一消息包括关于第一密码算法的信息;并且响应于由***传输到另一个***的第二消息而从另一个***获得第一密码材料的第二部分,第二消息包括关于第二密码算法的信息。
11.如条款7-10中任一项所述的***,其中使***建立密码保护的通信会话的指令是可执行以使所述***向另一个***传输包括第二密码材料的第一消息,第一消息指示第一密码算法和第二密码算法,并且响应于第一消息,***从另一个***获得包括第一密码材料的响应。
12.如条款7-11中任一项所述的***,其中使***建立密码保护的通信会话的指令是可执行以使***:
响应于由***传输到另一个***的第一消息,从另一个***获得第一密码材料的第一部分,第一消息包括第二密码材料的第一部分和关于第一密码算法的信息;以及
响应于由***传输到另一个***的第二消息,从另一个***获得第一密码材料的第二部分,第二消息包括第二密码材料的第二部分和关于第二密码算法的信息。
13.如条款7-12中任一项所述的***,其中使***使用第一密码密钥对数据执行密码操作以创建第一密码保护的数据并使用第二密码密钥对密码保护的数据执行密码操作以创建第二密码保护的数据的指令是可执行以使***分割对数据的密码操作的结果以获得密码保护数据。
14.如条款7-13中任一项所述的***,其中使***使用第一密码密钥对数据执行密码操作以创建第一密码保护的数据并使用第二密码密钥对第一密码保护的数据执行密码操作以创建第二密码保护的数据的指令是可执行以使***将数据分割成各个块并对各个块中的每一块执行密码操作以获得第一密码保护的数据。
15.一种非暂时性计算机可读存储介质,其上存储有可执行指令,所述可执行指令作为由***的一个或多个处理器执行的结果,使所述***至少:
通过至少与另一个***通信来建立密码保护的通信会话,使得***和另一个***两者都能够使用第一密码材料和第二密码材料;
基于第一密码材料导出第一密码密钥,并基于第二密码材料导出第二密码密钥;
使用第一密码密钥对数据执行密码操作以创建第一密码保护的数据;
使用第二密码密钥对第一密码保护的数据执行密码操作;以及
通过密码保护的通信会话传输对第一密码保护的数据的密码操作的结果。
16.如条款15所述的非暂时性计算机可读存储介质,其中使***对数据执行密码操作以创建第一密码保护的数据的指令包括使***将对数据的密码操作的结果串行化以获得第一密码保护的数据的指令。
17.如条款15或16所述的非暂时性计算机可读存储介质,其中使***对数据执行密码操作以创建第一密码保护的数据的指令包括使***将数据串行化为串行化数据并对串行化数据执行密码操作以创建第一密码保护的数据的指令。
18.如条款15-17中任一项所述的非暂时性计算机可读存储介质,其中使***对数据执行密码操作以创建第一密码保护的数据的指令包括使***将数据串行化为串行化数据并对串行化数据执行密码操作,以及将对串行化数据的密码操作的结果串行化以获得第一密码保护的数据的指令。
19.如条款15-18中任一项所述的非暂时性计算机可读存储介质,其中使计算机***与另一个***建立密码保护的通信会话的指令还包括使计算机***响应于从***传输到另一个***的第一消息而从另一个***接收第一密码材料的指令,第一消息包括关于第一密码算法的信息和关于第二密码算法的信息。
20.如条款15-19中任一项所述的非暂时性计算机可读存储介质,其中使计算机***与另一个***建立密码保护的通信会话的指令还包括使计算机***向另一个***传输包括第二密码材料的第一消息并且响应于第一消息而从另一个***接收包括第一密码材料的响应的指令,第一消息指示第一密码算法和第二密码算法。
21.如条款7-14中任一项所述的***,其中使用第一密码密钥对数据的密码操作是第一类型的数字签名操作并且使用第二密码密钥对密码保护的数据的加密操作是第二类型的数字签名操作。
本文描述了本公开的实施例,包括发明人已知的用于执行本发明的最佳模式。阅读上述描述后,那些实施例的变型对于本领域的普通技术人员来说可以变得显而易见。发明人希望技术人员视情况采用此类变型,并且发明人意图以不同于如本文所特别描述的方式来实践本公开的实施例。因此,如适用法律所允许,本公开的范围包括此处所附权利要求中叙述的主题的所有修改和等效物。此外,除非本文中另有指示或另外与上下文明显矛盾,否则本公开的范围涵盖其所有可能变型中的上述要素的任何组合。
本文所引用的所有参考文献(包括出版物、专利申请和专利)据此以引用方式并入,其程度等同于每个参考文献单独地且具体地被表示为以引用方式并入本文并且以其全文在本文得以陈述。
Claims (15)
1.一种用于使用加密保护的通信信道进行通信的***,其包括:
一个或多个处理器;
存储器,其存储计算机可执行指令,所述计算机可执行指令能够执行以使所述一个或多个处理器:
至少通过以下操作建立密码保护的通信会话:
从另一个***获得第一密码材料;
向所述另一个***传输第二密码材料,以允许所述另一个***基于所述第一密码材料和所述第二密码材料导出第一密码密钥,并基于所述第一密码材料和所述第二密码材料导出第二密码密钥,其中,所述第一密码材料和所述第二密码材料包括被用于使用密钥导出函数来导出密码密钥的信息;
基于所述第一密码材料和所述第二密码材料导出所述第一密码密钥,并基于所述第一密码材料和所述第二密码材料导出所述第二密码密钥;
使用所述第一密码密钥对数据执行密码操作以创建第一密码保护的数据;
使用所述第二密码密钥对所述第一密码保护的数据执行所述密码操作以创建第二密码保护的数据;以及
通过所述密码保护的通信会话传输所述第二密码保护的数据。
2.如权利要求1所述的***,其中使用所述第一密码密钥对所述数据的所述密码操作是第一类型的加密操作并且使用所述第二密码密钥对所述第一密码保护的数据的所述密码操作是第二类型的加密操作。
3.如权利要求1所述的***,其中使所述***建立密码保护的通信会话的所述指令能够执行以使所述***响应于从所述***传输到所述另一个***的第一消息而从所述另一个***获得所述第一密码材料,所述第一消息包括关于第一密码算法的信息和关于第二密码算法的信息。
4.如权利要求1所述的***,其中使所述***建立密码保护的通信会话的所述指令能够执行以使所述***:响应于由所述***传输到所述另一个***的第一消息而从所述另一个***获得所述第一密码材料的第一部分,所述第一消息包括关于第一密码算法的信息;并且响应于由所述***传输到所述另一个***的第二消息而从所述另一个***获得所述第一密码材料的第二部分,所述第二消息包括关于第二密码算法的信息。
5.如权利要求1所述的***,其中使所述***建立密码保护的通信会话的所述指令能够执行以使所述***向所述另一个***传输包括所述第二密码材料的第一消息,所述第一消息指示第一密码算法和第二密码算法,并且响应于所述第一消息,所述***从所述另一个***获得包括所述第一密码材料的响应。
6.如权利要求1所述的***,其中使所述***建立密码保护的通信会话的所述指令能够执行以使所述***:
响应于由所述***传输到所述另一个***的第一消息,从所述另一个***获得所述第一密码材料的第一部分,所述第一消息包括所述第二密码材料的第一部分和关于第一密码算法的信息;以及
响应于由所述***传输到所述另一个***的第二消息,从所述另一个***获得所述第一密码材料的第二部分,所述第二消息包括所述第二密码材料的第二部分和关于第二密码算法的信息。
7.如权利要求1所述的***,其中使所述***使用所述第一密码密钥对所述数据执行所述密码操作以创建所述第一密码保护的数据并使用所述第二密码密钥对所述第一密码保护的数据执行所述密码操作以创建所述第二密码保护的数据的所述指令能够执行以使所述***分割对所述数据的所述密码操作的结果以获得所述第一密码保护的数据。
8.如权利要求1所述的***,其中使所述***使用所述第一密码密钥对所述数据执行所述密码操作以创建所述第一密码保护的数据并使用所述第二密码密钥对所述第一密码保护的数据执行所述密码操作以创建所述第二密码保护的数据的所述指令能够执行以使所述***将所述数据分割成各个块并对所述各个块中的每一块执行所述密码操作以获得所述第一密码保护的数据。
9.如权利要求1所述的***,其中使用所述第一密码密钥对所述数据的所述密码操作是第一类型的数字签名操作并且使用所述第二密码密钥对所述第一密码保护的数据的所述密码操作是第二类型的数字签名操作。
10.一种非暂时性计算机可读存储介质,其上存储有可执行指令,所述可执行指令作为由***的一个或多个处理器执行的结果,使所述***至少:
通过至少与另一个***通信来建立密码保护的通信会话,使得所述***和所述另一个***两者都能够使用第一密码材料和第二密码材料,其中,所述第一密码材料和所述第二密码材料包括被用于使用密钥导出函数来导出密码密钥的信息;
基于所述第一密码材料和所述第二密码材料导出第一密码密钥,并基于所述第一密码材料和所述第二密码材料导出第二密码密钥;
使用所述第一密码密钥对数据执行密码操作以创建第一密码保护的数据;
使用所述第二密码密钥对所述第一密码保护的数据执行所述密码操作;以及
通过所述密码保护的通信会话传输对所述第一密码保护的数据的所述密码操作的结果。
11.如权利要求10所述的非暂时性计算机可读存储介质,其中使所述***对所述数据执行所述密码操作以创建所述第一密码保护的数据的所述指令包括使所述***将对所述数据的所述密码操作的结果串行化以获得所述第一密码保护的数据的指令。
12.如权利要求10所述的非暂时性计算机可读存储介质,其中使所述***对所述数据执行所述密码操作以创建所述第一密码保护的数据的所述指令包括使所述***将所述数据串行化为串行化数据并对所述串行化数据执行所述密码操作以创建所述第一密码保护的数据的指令。
13.如权利要求10所述的非暂时性计算机可读存储介质,其中使所述***对所述数据执行所述密码操作以创建所述第一密码保护的数据的所述指令包括使所述***将所述数据串行化为串行化数据并对所述串行化数据执行所述密码操作,以及将对所述串行化数据的所述密码操作的结果串行化以获得所述第一密码保护的数据的指令。
14.如权利要求10所述的非暂时性计算机可读存储介质,其中使所述计算机***与所述另一个***建立密码保护的通信会话的所述指令还包括使所述计算机***响应于从所述***传输到所述另一个***的第一消息而从所述另一个***接收所述第一密码材料的指令,所述第一消息包括关于第一密码算法的信息和关于第二密码算法的信息。
15.如权利要求10所述的非暂时性计算机可读存储介质,其中使所述计算机***与所述另一个***建立密码保护的通信会话的所述指令还包括使所述计算机***向所述另一个***传输包括所述第二密码材料的第一消息并且响应于所述第一消息而从所述另一个***接收包括所述第一密码材料的响应的指令,所述第一消息指示第一密码算法和第二密码算法。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962863751P | 2019-06-19 | 2019-06-19 | |
US62/863,751 | 2019-06-19 | ||
US16/903,873 US20200403978A1 (en) | 2019-06-19 | 2020-06-17 | Hybrid key exchanges for double-hulled encryption |
US16/903,873 | 2020-06-17 | ||
PCT/US2020/038531 WO2020257521A1 (en) | 2019-06-19 | 2020-06-18 | Hybrid key exchanges for double-hulled encryption |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114008976A CN114008976A (zh) | 2022-02-01 |
CN114008976B true CN114008976B (zh) | 2024-05-17 |
Family
ID=74039478
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080044425.6A Active CN114008976B (zh) | 2019-06-19 | 2020-06-18 | 用于双壳加密的混合密钥交换 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20200403978A1 (zh) |
EP (1) | EP3987744A1 (zh) |
CN (1) | CN114008976B (zh) |
WO (1) | WO2020257521A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210092103A1 (en) * | 2018-10-02 | 2021-03-25 | Arista Networks, Inc. | In-line encryption of network data |
US11456877B2 (en) * | 2019-06-28 | 2022-09-27 | Intel Corporation | Unified accelerator for classical and post-quantum digital signature schemes in computing environments |
US11374975B2 (en) * | 2020-07-02 | 2022-06-28 | International Business Machines Corporation | TLS integration of post quantum cryptographic algorithms |
US11153080B1 (en) * | 2020-07-29 | 2021-10-19 | John A. Nix | Network securing device data using two post-quantum cryptography key encapsulation mechanisms |
US12003629B2 (en) | 2020-12-30 | 2024-06-04 | John A. Nix | Secure server digital signature generation for post-quantum cryptography key encapsulations |
US11848930B1 (en) * | 2021-06-15 | 2023-12-19 | Whatsapp Llc | Methods, mediums, and systems for verifying devices in an encrypted messaging system |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104170312A (zh) * | 2011-12-15 | 2014-11-26 | 英特尔公司 | 用于使用硬件安全引擎通过网络进行安全通信的方法和设备 |
US9781081B1 (en) * | 2015-10-02 | 2017-10-03 | Amazon Technologies, Inc. | Leveraging transport-layer cryptographic material |
CN108476133A (zh) * | 2015-12-11 | 2018-08-31 | 亚马逊科技有限公司 | 通过部分可信的第三方进行的密钥交换 |
CN108885665A (zh) * | 2016-04-04 | 2018-11-23 | 比特梵德知识产权管理有限公司 | 用于解密虚拟化环境中的网络流量的***和方法 |
CN109347835A (zh) * | 2018-10-24 | 2019-02-15 | 苏州科达科技股份有限公司 | 信息传输方法、客户端、服务器以及计算机可读存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10819510B2 (en) * | 2018-02-06 | 2020-10-27 | Wickr Inc. | Facilitating communications using hybrid cryptography |
-
2020
- 2020-06-17 US US16/903,873 patent/US20200403978A1/en active Pending
- 2020-06-18 WO PCT/US2020/038531 patent/WO2020257521A1/en unknown
- 2020-06-18 CN CN202080044425.6A patent/CN114008976B/zh active Active
- 2020-06-18 EP EP20743393.9A patent/EP3987744A1/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104170312A (zh) * | 2011-12-15 | 2014-11-26 | 英特尔公司 | 用于使用硬件安全引擎通过网络进行安全通信的方法和设备 |
US9781081B1 (en) * | 2015-10-02 | 2017-10-03 | Amazon Technologies, Inc. | Leveraging transport-layer cryptographic material |
CN108476133A (zh) * | 2015-12-11 | 2018-08-31 | 亚马逊科技有限公司 | 通过部分可信的第三方进行的密钥交换 |
CN108885665A (zh) * | 2016-04-04 | 2018-11-23 | 比特梵德知识产权管理有限公司 | 用于解密虚拟化环境中的网络流量的***和方法 |
CN109347835A (zh) * | 2018-10-24 | 2019-02-15 | 苏州科达科技股份有限公司 | 信息传输方法、客户端、服务器以及计算机可读存储介质 |
Non-Patent Citations (1)
Title |
---|
Katarzyna Kapusta.Enhancing data protection in a distributed storage environment using structure-wise fragmentation and dispersal of encrypted data.《2018 17th IEEE International Conference On Trust, Security And Privacy In Computing And Communications/ 12th IEEE International Conference On Big Data Science And Engineering (TrustCom/BigDataSE)》.2018,正文2-5. * |
Also Published As
Publication number | Publication date |
---|---|
EP3987744A1 (en) | 2022-04-27 |
WO2020257521A1 (en) | 2020-12-24 |
CN114008976A (zh) | 2022-02-01 |
US20200403978A1 (en) | 2020-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11792169B2 (en) | Cloud storage using encryption gateway with certificate authority identification | |
US10375067B2 (en) | Mutual authentication with symmetric secrets and signatures | |
CN114008976B (zh) | 用于双壳加密的混合密钥交换 | |
US10909250B2 (en) | Key management and hardware security integration | |
US10250573B2 (en) | Leveraging transport-layer cryptographic material | |
CN110326267B (zh) | 具有替代数字证书的网络安全***、方法及存储介质 | |
EP3350974B1 (en) | Client(s) to cloud or remote server secure data or file object encryption gateway | |
US10785261B2 (en) | Techniques for secure session reestablishment | |
US10693638B1 (en) | Protected cryptographic environment | |
US20170171219A1 (en) | Signed envelope encryption | |
US12003540B1 (en) | Communication session resumption | |
US10963593B1 (en) | Secure data storage using multiple factors | |
CN110999203B (zh) | 用于生成共享密钥的方法和*** | |
CA3066728A1 (en) | Cloud storage using encryption gateway with certificate authority identification | |
US9961055B1 (en) | Inaccessibility of data to server involved in secure communication | |
US10218682B1 (en) | Secure network protocol cryptographic processing | |
US11082217B1 (en) | Session resumption | |
US11582195B1 (en) | Parallel encrypted data streams for virtual private networks | |
CN107276996A (zh) | 一种日志文件的传输方法及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |