SYSTEMS AND METHODS FOR PROVIDING SIGNATURELESS, CONFIDENTIAL AND AUTHENTICATION OF DATA DURING HANDSHAKE FOR CLASSICAL AND QUANTUM COMPUTING ENVIRONMENTS
20220345298 · 2022-10-27
Inventors
- Chris Cap (Bayville, NJ, US)
- Barry Van Hooser (Pleasanton, CA, US)
- Sarah McCarthy (Carrickfergus, GB)
- Louie Gasparini (San Mateo, CA, US)
Cpc classification
H04L9/0825
ELECTRICITY
International classification
Abstract
Systems and methods for handshaking, without a certificate authority, to provide at least post-quantum communications security over a computer network. The method generates an authentication tag, hashing, by an initiator, a concatenation of unique identifiers of the initiator and a recipient. The method also generates an encrypted text, symmetrically encrypting, by the initiator that is configured to use a shared secret, a concatenation of the authentication tag and the unique identifiers of the initiator and the recipient. The method further includes sending the encrypted text from the initiator to a server. The method also includes symmetrically decrypting, by the server that is configured to use the shared secret, the encrypted text. The method further includes authenticating, by the server, the encrypted text. The method also includes generating a session key and providing the session key from the server to the initiator.
Claims
1. A method comprising: providing zero-trust, forward secrecy, confidentiality of data, and integrity of data comprising a client encapsulating a first symmetric key using a static Key Encapsulation Mechanism (KEM) public key to produce a ciphertext; the client sending the ciphertext to a server; the client generating an ephemeral KEM keypair; the client sending the ephemeral KEM public key to the server using an Authenticated Encryption with Associated Data (AEAD) with the first symmetric key; the server decapsulating the ciphertext using the static KEM private key to produce the first symmetric key; the server encapsulating a second symmetric key using the ephemeral KEM public key to produce another ciphertext; the server sending the other ciphertext to the client; the client decapsulating the other ciphertext using the ephemeral KEM public key to produce the second symmetric key.
2. The method of claim 1, wherein performing mutual identity authentication; the method further comprising: the server generating the unique identifier of the client; the server generating a password for the client; the server sending the unique identifier and password to the client using AEAD with the second symmetric key.
3. The method of claim 2, further comprising: the server generating an ephemeral KEM keypair; the server sending the ephemeral KEM public key to the client using AEAD with the second symmetric key.
4. The method of claim 2, wherein the password comprises a post-quantum level of security, and wherein the server generates the password with a random number generator.
5. The method of claim 1 wherein performing mutual identity authentication; the method further comprising: the client sending their unique identifier and password to the server using AEAD with the second symmetric key.
6. The method of claim 5, further comprising: the server generating an ephemeral KEM keypair; the server sending the ephemeral KEM public key to the client using AEAD with the second symmetric key.
7. The method of claim 6, wherein using an ephemeral KEM keypair to provide zero-trust and forward secrecy, the method further comprising: the client encapsulating a symmetric key using the ephemeral KEM public key to produce a ciphertext; the client sending the ciphertext to the server; the server decapsulating the ciphertext using the ephemeral KEM private key to produce a symmetric key.
8. A method to: provide direct communication between a server and an initiator client, indirect communication between the server and a recipient client, and direct communication between the initiator client and the recipient client; and provide mutual identity authentication, wherein the method comprises: providing zero-trust, forward secrecy, confidentiality of data, and integrity of data comprising the client encapsulating a first symmetric key using a static Key Encapsulation Mechanism (KEM) public key to produce a ciphertext; the initiator client sending the ciphertext to the server; the initiator client generating an ephemeral KEM keypair; the initiator client sending the ephemeral KEM public key to the server using an Authenticated Encryption with Associated Data (AEAD) with the first symmetric key; the server decapsulating the ciphertext using the static KEM private key to produce the first symmetric key; the server encapsulating a second symmetric key using the ephemeral KEM public key to produce a ciphertext; the server sending the ciphertext to the recipient client; and the recipient client decapsulating the ciphertext using the ephemeral KEM private key to produce the second symmetric key.
9. The method of claim 8, further comprising: the initiator client sending the unique identifier of the recipient client to the server using AEAD with a symmetric key shared with the server; the server generating a symmetric key; the server encrypting the unique identifier of the initiator client, the routing address of the initiator client, and the generated symmetric key using AEAD with a symmetric key shared with the recipient client to produce an encrypted buffer; the server sending the routing address of the recipient client, the generated symmetric key, and the encrypted buffer to the initiator client using AEAD with a symmetric key shared with the initiator client; the initiator client forwarding the encrypted buffer to the recipient client to establish a secure session.
10. The method of claim 8, wherein there is indirect communication between the server and multiple recipient clients and there is direct communication between the initiator client and multiple recipient clients.
11. The method of claim 10 further comprising: the initiator client sending the unique identifier of each recipient client to the server using AEAD with a symmetric key shared with the server; the server generating a symmetric key for each recipient client; for each recipient client, the server encrypting the unique identifier of the initiator client, the routing address of the initiator client, and the generated symmetric key using AEAD with a symmetric key shared with the recipient client to produce an encrypted buffer; for each recipient client, the server sending the routing address of the recipient client, the generated symmetric key, and the encrypted buffer using AEAD with a symmetric key shared with the initiator client; the initiator client forwarding the encrypted buffer to each recipient client to establish a secure session.
12. The method of claim 8, wherein there is direct communication between the server and the recipient client.
13. The method of claim 12, further comprising: the initiator client sending the unique identifier of the recipient client to the server using AEAD with a symmetric key shared with the server; the server generating a symmetric key; the server sending the unique identifier of the initiator client, the routing address of the initiator client, and the generated symmetric key to the recipient client using AEAD with a symmetric key shared with the recipient client; the server sending the routing address of the recipient client and the generated symmetric key to the initiator client using AEAD with a symmetric key shared with the initiator client; the initiator client establishing a secure session with the recipient client.
14. The method of claim 13, wherein the server sending the routing address of the recipient client and the generated symmetric key to the initiator client using AEAD with a symmetric key shared with the initiator client; the server sending the unique identifier of the initiator client, the routing address of the initiator client, and the generated symmetric key to the recipient client using AEAD with a symmetric key shared with the recipient client.
15. The method of claim 8, wherein there is direct communication between the server and multiple recipient clients and there is direct communication between the initiator client and multiple recipient clients.
16. The method of claim 15, further comprising: the initiator client sending the unique identifier of each recipient client to the server using AEAD with a symmetric key shared with the server; the server generating a symmetric key for each recipient client; for each recipient client, the server sending the unique identifier of the initiator client, the routing address of the initiator client, and the generated symmetric key to the recipient client using AEAD with a symmetric key shared with the recipient client; for each recipient client, the server sending the routing address of the recipient client, the generated symmetric key, and the encrypted buffer using AEAD with a symmetric key shared with the initiator client; the initiator client establishing a secure session with each recipient client.
17. The method of claim 16, wherein for each recipient client, the server sending the routing address of the recipient client, the generated symmetric key, and the encrypted buffer using AEAD with a symmetric key shared with the initiator client; for each recipient client, the server sending the unique identifier of the initiator client, the routing address of the initiator client, and the generated symmetric key to the recipient client using AEAD with a symmetric key shared with the recipient client.
18. The method of claim 9, wherein the server generating the maximum number of bytes the symmetric key may be used to encrypt, and the symmetric key is a first symmetric key; wherein the method further comprises: generating, by the server, a second symmetric key and the maximum number of bytes the second symmetric key may be used to encrypt; the initiator client requests the second symmetric key from the server prior to the first symmetric key encrypting the maximum number of bytes.
19. The method of claim 11, wherein the server generating the maximum number of bytes the symmetric key may be used to encrypt, and the symmetric key is a first symmetric key; wherein the method further comprises: generating, by the server, a second symmetric key and the maximum number of bytes the second symmetric key may be used to encrypt; the initiator client requests the second symmetric key from the server prior to the first symmetric key encrypting the maximum number of bytes.
20. The method of claim 11, wherein for each recipient client, the server generating the maximum number of bytes the symmetric key may be used to encrypt, and the symmetric key is a first symmetric key; wherein the method further comprises: for each recipient client, the server generating a second symmetric key and the maximum number of bytes the second symmetric key may be used to encrypt; the initiator client requests the second symmetric key from the server prior to the first symmetric key encrypting the maximum number of bytes.
21. The method of claim 16, wherein for each recipient client, the server generating the maximum number of bytes the symmetric key may be used to encrypt, and the symmetric key is a first symmetric key; wherein the method further comprises: for each recipient client, the server generating a second symmetric key and the maximum number of bytes the second symmetric key may be used to encrypt; the initiator client requests the second symmetric key from the server prior to the first symmetric key encrypting the maximum number of bytes.
22. The method of claim 16 wherein the server generating a symmetric key is updated by the server generating multiple symmetric keys and the server generating the maximum number of bytes each one of the symmetric key may be used to encrypt; and the clients switch to a next symmetric key prior to a current symmetric key encrypting the maximum number of bytes.
23. The method of claim 11 wherein the server generating a symmetric key is updated by the server generating multiple symmetric keys and the server generating the maximum number of bytes each symmetric key may be used to encrypt; the clients switch to the next symmetric key prior to a current symmetric key encrypting the maximum number of bytes.
24. The method of claim 13 wherein the server generating a symmetric key is updated by the server generating multiple symmetric keys and the server generating the maximum number of bytes each symmetric key may be used to encrypt; the clients switch to the next symmetric key prior to a current symmetric key encrypting the maximum number of bytes.
25. The method of claim 14 wherein the server generating a symmetric key is updated by the server generating multiple symmetric keys and the server generating the maximum number of bytes each symmetric key may be used to encrypt; the clients switch to the next symmetric key prior to a current symmetric key encrypting the maximum number of bytes.
26. The method of claim 16 wherein the server generating a symmetric key is updated by the server generating multiple symmetric keys and the server generating the maximum number of bytes each symmetric key may be used to encrypt; the clients switch to the next symmetric key prior to a current symmetric key encrypting the maximum number of bytes.
27. The method of claim 17 wherein the providing of the second generated symmetric key from the server to the initiator client is performed after a server-generated period of time following the providing of the first session key to the initiator client.
28. The method of claim 18 wherein the providing of the second generated symmetric key from the server to the initiator client is performed after a server-generated period of time following the providing of the first session key to the initiator client.
29. The method of claim 18 wherein the server generating a symmetric key is updated by the server generating multiple symmetric keys and the server generating the maximum number of bytes each symmetric key may be used to encrypt; the clients switch to the next symmetric key prior to a current symmetric key encrypting the maximum number of bytes; the initiator client requests the second set of symmetric keys from the server prior to all of the first set of symmetric keys encrypting the maximum number of bytes.
30. The method of claim 19 wherein the server generating a symmetric key is updated by the server generating multiple symmetric keys and the server generating the maximum number of bytes each symmetric key may be used to encrypt; the clients switch to the next symmetric key prior to a current symmetric key encrypting the maximum number of bytes; the initiator client requests the second set of symmetric keys from the server prior to all of the first set of symmetric keys encrypting the maximum number of bytes.
31. The method of claim 19 wherein the providing of the second generated symmetric key(s) from the server to the initiator client is performed after a server-generated period of time following the providing of the first session key to the initiator client.
32. The method of claim 20 wherein the providing of the second generated symmetric key(s) from the server to the initiator client is performed after a server-generated period of time following the providing of the first session key to the initiator client.
33. The method of claim 21 wherein the providing of the second generated symmetric key(s) from the server to the initiator client is performed after a server-generated period of time following the providing of the first session key to the initiator client.
34. The method of claim 9 wherein the symmetric key comprises a post-quantum level of security, and wherein the server generates the symmetric key with a random number generator.
35. The method of claim 11 wherein the symmetric key comprises a post-quantum level of security, and wherein the server generates the symmetric key with a random number generator.
36. The method of claim 13 wherein the symmetric key comprises a post-quantum level of security, and wherein the server generates the symmetric key with a random number generator.
37. The method of claim 14 wherein the symmetric key comprises a post-quantum level of security, and wherein the server generates the symmetric key with a random number generator.
38. The method of claim 16 wherein the symmetric key comprises a post-quantum level of security, and wherein the server generates the symmetric key with a random number generator.
39. The method of claim 17 wherein the symmetric key comprises a post-quantum level of security, and wherein the server generates the symmetric key with a random number generator.
40. The method of claim 18 wherein the symmetric key comprises a post-quantum level of security, and wherein the server generates the symmetric key with a random number generator.
41. The method of claim 19 wherein the symmetric key comprises a post-quantum level of security, and wherein the server generates the symmetric key with a random number generator.
42. The method of claim 20 wherein the symmetric key comprises a post-quantum level of security, and wherein the server generates the symmetric key with a random number generator.
43. The method of claim 21 wherein the symmetric key comprises a post-quantum level of security, and wherein the server generates the symmetric key with a random number generator.
44. A method to provide a client communicate with a server, specifically a key management service, in order to obtain encryption/decryption keys for data-at-rest, wherein the method comprises: providing zero-trust, forward secrecy, confidentiality of data, and integrity of data comprising a client encapsulating a first symmetric key using a static Key Encapsulation Mechanism (KEM) public key to produce a ciphertext; the client sending the ciphertext to the server; the client generating an ephemeral KEM keypair; the client sending the ephemeral KEM public key to the server using Authenticated Encryption with Associated Data (AEAD) with the first symmetric key; the server decapsulating the ciphertext using the static KEM private key to produce the first symmetric key; the server encapsulating a second symmetric key using the ephemeral KEM public key to produce a ciphertext; the server sending the ciphertext to the client; the client decapsulating the ciphertext using the ephemeral KEM secret key to produce the second symmetric key.
45. The method of claim 44 further comprising: the client requesting an encryption key; the server generating a symmetric key and a handle for the symmetric key; the server sending the symmetric key and the handle to the client using AEAD with a symmetric key shared with the client; the client encrypting data-at-rest using AEAD with the symmetric key.
46. The method of claim 44 further comprising: the client sending the handle to the server using AEAD with a symmetric key shared with the server; the server sending the symmetric key to the client using AEAD with a symmetric key shared with the client; the client decrypting data-at-rest using AEAD with the symmetric key.
47. The method of claim 45 wherein the client sending the number of bytes that will be encrypted to the server using AEAD with a symmetric key shared with the server; the server generating a symmetric key is replaced by the server generating multiple symmetric keys and the server generating the maximum number of bytes each symmetric key may be used to encrypt; the client switches to the next symmetric key prior to a current symmetric key encrypting the maximum number of bytes.
48. The method of claim 46 wherein the server generating a symmetric key is updated by the server generating multiple symmetric keys and the server generating the maximum number of bytes each symmetric key may be used to encrypt; the client switches to the next symmetric key prior to a current symmetric key encrypting the maximum number of bytes.
49. The method of claim 44, further comprising: a client communicating with the server, specifically the entropy refill service, in order to obtain a number of bytes with high entropy.
50. The method of claim 49, further comprising: the client sending the number of bytes of entropy requested to the server using AEAD with a symmetric key shared with the server; the server generating the number of bytes of entropy that was requested; the server sending the bytes of entropy to the client using AEAD with a symmetric key shared with the client.
51. A server computer system for handshaking to provide at least post-quantum and classical communication security over digital or analog transmissions, the server computer system comprising a memory and at least one processor coupled to the memory, wherein: the server computer system is configured to provide zero-trust, forward secrecy, confidentiality of data, and integrity of data; a client computing device is configured to: encapsulate a first symmetric key using a static KEM public key to produce a ciphertext; send the ciphertext to the server computer system; generate an ephemeral KEM keypair; send the ephemeral KEM public key to the server computer system using AEAD with the first symmetric key; the at least one processor of the server computer system is configured to execute instructions to: decapsulate the ciphertext using the static KEM private key to produce the first symmetric key; encapsulate a second symmetric key using the ephemeral KEM public key to produce a ciphertext; send the ciphertext to the client computing device; and the client computing device is further configured to decapsulate the ciphertext using the ephemeral KEM secret key to produce the second symmetric key.
52. The server computer system of claim 51, further configured to perform mutual identity authentication, and wherein the at least one processor of the server computer system is further configured to execute instructions to: generate the unique identifier of the client computing device; generate a password for the client computing device; and send the unique identifier and password to the client computing device using AEAD with the second symmetric key.
53. The server computer system of claim 52, wherein the at least one processor of the server computer system is further configured to execute instructions to: generate an ephemeral KEM keypair; and send the ephemeral KEM public key to the client computing device using AEAD with the second symmetric key.
54. The server computer system of claim 52, wherein the password comprises a post-quantum level of security, and wherein the at least one processor of the server computer system is further configured to execute instructions to generate the password with a random number generator.
55. The server computer system of claim 51, further configured to perform mutual identity authentication, and wherein the client computing device is further configured to send its unique identifier and password to the server computer system using AEAD with the second symmetric key.
56. The server computer system of claim 55, wherein the at least one processor of the server computer system is further configured to execute instructions to: generate an ephemeral KEM keypair; and send the ephemeral KEM public key to the client computing device using AEAD with the second symmetric key.
57. The server computer system of claim 56, further configured to use an ephemeral KEM keypair to provide zero-trust and forward secrecy, and wherein: the client computing device is further configured to: encapsulate a symmetric key using the ephemeral KEM public key to produce a ciphertext; and send the ciphertext to the server computer system; and the at least one processor of the server computer system is further configured to execute instructions to decapsulate the ciphertext using the ephemeral KEM private key to produce a symmetric key.
58. A server computer system comprising a memory and at least one processor coupled to the memory, wherein: the server computer system is configured to: provide direct communication between the server computer system and an initiator client, provide indirect communication between the server computer system and a recipient client, and facilitate direct communication between the initiator client and the recipient client; provide mutual identity authentication; and provide zero-trust, forward secrecy, confidentiality of data, and integrity of data; the initiator client is configured to: encapsulate the first symmetric key using the static KEM public key to produce a ciphertext; send the ciphertext to the server computer system; generate an ephemeral KEM keypair; send the ephemeral KEM public key to the server computer system using AEAD with the first symmetric key; the at least one processor of the server computer system is configured to execute instructions to: decapsulate the ciphertext using the static KEM private key to produce the first symmetric key; encapsulate a second symmetric key using the ephemeral KEM public key to produce a ciphertext; and send the ciphertext to the client; and the client is further configured to decapsulate the ciphertext using the ephemeral KEM secret key to produce the second symmetric key.
59. The server computer system of claim 58, wherein: the initiator client is configured to send the unique identifier of the recipient client to the server computer system using AEAD with a symmetric key shared with the server computer system; the at least one processor of the server computer system is further configured to execute instructions to generate a symmetric key; the at least one processor of the server computer system is further configured to execute instructions to encrypt the unique identifier of the initiator client, the routing address of the initiator client, and the generated symmetric key using AEAD with a symmetric key shared with the recipient client to produce an encrypted buffer; the at least one processor of the server computer system is further configured to execute instructions to send the routing address of the recipient client, the generated symmetric key, and the encrypted buffer to the initiator client using AEAD with a symmetric key shared with the initiator client; and the initiator client is further configured to forward the encrypted buffer to the recipient client to establish a secure session.
60. The server computer system of claim 58, wherein there is indirect communication between the server computer system and multiple recipient clients and there is direct communication between the initiator client and multiple recipient clients.
61. The server computer system of claim 60, wherein: the initiator client is configured to send the unique identifier of each recipient client to the server computer system using AEAD with a symmetric key shared with the server computer system; the at least one processor of the server computer system is further configured to execute instructions to: generate a symmetric key for each recipient client; for each recipient client, encrypt the unique identifier of the initiator client, the routing address of the initiator client, and the generated symmetric key using AEAD with a symmetric key shared with the recipient client to produce an encrypted buffer; and for each recipient client, send the routing address of the recipient client, the generated symmetric key, and the encrypted buffer using AEAD with a symmetric key shared with the initiator client; and the initiator client is further configured to forward the encrypted buffer to each recipient client to establish a secure session.
62. The server computer system of claim 58, wherein there is direct communication between the server computer system and a recipient client.
63. The server computer system of claim 62, wherein: the initiator client is further configured to send the unique identifier of the recipient client to the server computer system using AEAD with a symmetric key shared with the server computer system; the at least one processor of the server computer system is further configured to execute instructions to: generate a symmetric key; send the unique identifier of the initiator client, the routing address of the initiator client, and the generated symmetric key to the recipient client using AEAD with a symmetric key shared with the recipient client; and send the routing address of the recipient client and the generated symmetric key to the initiator client using AEAD with a symmetric key shared with the initiator client; and the initiator client is further configured to establish a secure session with the recipient client.
64. The server computer system of claim 63, wherein the at least one processor of the server computer system is further configured to execute instructions to: send the routing address of the recipient client and the generated symmetric key to the initiator client using AEAD with a symmetric key shared with the initiator client; and send the unique identifier of the initiator client, the routing address of the initiator client, and the generated symmetric key to the recipient client using AEAD with a symmetric key shared with the recipient client.
65. The server computer system of claim 58, wherein there is direct communication between the server computer system and multiple recipient clients and there is direct communication between the initiator client and multiple recipient clients.
66. The server computer system of claim 65, wherein: the initiator client is further configured to send the unique identifier of each recipient client to the server computer system using AEAD with a symmetric key shared with the server computer system; the at least one processor of the server computer system is further configured to execute instructions to: generate a symmetric key for each recipient client; for each recipient client, send the unique identifier of the initiator client, the routing address of the initiator client, and the generated symmetric key to the recipient client using AEAD with a symmetric key shared with the recipient client; for each recipient client, send the routing address of the recipient client, the generated symmetric key, and the encrypted buffer using AEAD with a symmetric key shared with the initiator client; and the initiator client is further configured to establish a secure session with each recipient client.
67. The server computer system of claim 66, wherein for each recipient client, the at least one processor of the server computer system is further configured to execute instructions to: send the routing address of the recipient client, the generated symmetric key, and the encrypted buffer using AEAD with a symmetric key shared with the initiator client; and send the unique identifier of the initiator client, the routing address of the initiator client, and the generated symmetric key to the recipient client using AEAD with a symmetric key shared with the recipient client.
68. The server computer system of claim 59, wherein: the at least one processor of the server computer system is further configured to execute instructions to: generate a maximum number of bytes the symmetric key may be used to encrypt, wherein the symmetric key is a first symmetric key; and generate a second symmetric key and a maximum number of bytes the second symmetric key may be used to encrypt; and the initiator client is further configured to request the second symmetric key from the server computer system prior to the first symmetric key encrypting the maximum number of bytes.
69. The server computer system of claim 61, wherein the at least one processor of the server computer system is further configured to execute instructions to: generate a maximum number of bytes the symmetric key may be used to encrypt, and the symmetric key is a first symmetric key; generate a second symmetric key and a maximum number of bytes the second symmetric key may be used to encrypt; the initiator client is further configured to request the second symmetric key from the server computer system prior to the first symmetric key encrypting the maximum number of bytes.
70. The server computer system of claim 61, wherein: for each recipient client, the at least one processor of the server computer system is further configured to execute instructions to: generate a maximum number of bytes the symmetric key may be used to encrypt, wherein the symmetric key is a first symmetric key; generate a second symmetric key and a maximum number of bytes the second symmetric key may be used to encrypt; the initiator client is further configured to request the second symmetric key from the server computer system prior to the first symmetric key encrypting the maximum number of bytes.
71. The server computer system of claim 66, wherein: for each recipient client, the at least one processor of the server computer system is further configured to execute instructions to: generate a maximum number of bytes the symmetric key may be used to encrypt, wherein the symmetric key is a first symmetric key; and generate a second symmetric key and a maximum number of bytes the second symmetric key may be used to encrypt; the initiator client is further configured to request the second symmetric key from the server computer system prior to the first symmetric key encrypting the maximum number of bytes.
72. The server computer system of claim 66, wherein: the server computer system generating the symmetric key is updated by the server computer system generating multiple symmetric keys and the server computer system generating the maximum number of bytes each symmetric key may be used to encrypt; and the clients are further configured to switch to the next symmetric key prior to a current symmetric key encrypting the maximum number of bytes.
73. The server computer system of claim 61, wherein: the server computer system generating a symmetric key is updated by the server computer system generating multiple symmetric keys and the server computer system generating the maximum number of bytes each symmetric key may be used to encrypt; and the clients are further configured to switch to the next symmetric key prior to a current symmetric key encrypting the maximum number of bytes.
74. The server computer system of claim 63, wherein: the server computer system generating a symmetric key is updated by the server computer system generating multiple symmetric keys and the server computer system generating the maximum number of bytes each symmetric key may be used to encrypt; and the clients are further configured to switch to the next symmetric key prior to a current symmetric key encrypting the maximum number of bytes.
75. The server computer system of claim 64, wherein: the server computer system generating a symmetric key is updated by the server computer system generating multiple symmetric keys and the server computer system generating the maximum number of bytes each symmetric key may be used to encrypt; and the clients are further configured to switch to the next symmetric key prior to a current symmetric key encrypting the maximum number of bytes.
76. The server computer system of claim 66, wherein: the server computer system generating a symmetric key is updated by the server computer system generating multiple symmetric keys and the server computer system generating the maximum number of bytes each symmetric key may be used to encrypt; and the clients are further configured to switch to the next symmetric key prior to a current symmetric key encrypting the maximum number of bytes.
77. The server computer system of claim 67, wherein the providing of the second generated symmetric key(s) from the server computer system to the initiator client is performed after a server-generated period of time following the providing of the first session key to the initiator client.
78. The server computer system of claim 68, wherein the providing of the second generated symmetric key(s) from the server computer system to the initiator client is performed after a server-generated period of time following the providing of the first session key to the initiator client.
79. The server computer system of claim 68, wherein the server computer system generating a symmetric key is updated by the server computer system generating multiple symmetric keys and the server computer system generating the maximum number of bytes each symmetric key may be used to encrypt; the clients are further configured to switch to the next symmetric key prior to a current symmetric key encrypting the maximum number of bytes; and the initiator client is further configured to request the second set of symmetric keys from the server computer system prior to all of the first set of symmetric keys encrypting the maximum number of bytes.
80. The server computer system of claim 69, wherein: the server computer system generating a symmetric key is updated by the server computer system generating multiple symmetric keys and the server computer system generating the maximum number of bytes each symmetric key may be used to encrypt; the clients are further configured to switch to the next symmetric key prior to a current symmetric key encrypting the maximum number of bytes; the initiator client is further configured to request the second set of symmetric keys from the server prior to all of the first set of symmetric keys encrypting the maximum number of bytes.
81. The server computer system of claim 69, wherein the providing of the second generated symmetric key(s) from the server computer system to the initiator client is performed after a server-generated period of time following the providing of the first session key to the initiator client.
82. The server computer system of claim 70, wherein the providing of the second generated symmetric key(s) from the server computer system to the initiator client is performed after a server-generated period of time following the providing of the first session key to the initiator client.
83. The server computer system of claim 71, wherein the providing of the second generated symmetric key(s) from the server computer system to the initiator client is performed after a server-generated period of time following the providing of the first session key to the initiator client.
84. The server computer system of claim 59, wherein the symmetric key comprises a post-quantum level of security, and wherein the at least one processor of the server computer system is further configured to execute instructions to generate the symmetric key with a random number generator.
85. The server computer system of claim 61, wherein the symmetric key comprises a post-quantum level of security, and wherein the at least one processor of the server computer system is further configured to execute instructions to generate the symmetric key with a random number generator.
86. The server computer system of claim 63, wherein the symmetric key comprises a post-quantum level of security, and wherein the at least one processor of the server computer system is further configured to execute instructions to generate the symmetric key with a random number generator.
87. The server computer system of claim 64, wherein the symmetric key comprises a post-quantum level of security, and wherein the at least one processor of the server computer system is further configured to execute instructions to generate the symmetric key with a random number generator.
88. The server computer system of claim 66, wherein the symmetric key comprises a post-quantum level of security, and wherein the at least one processor of the server computer system is further configured to execute instructions to generate the symmetric key with a random number generator.
89. The server computer system of claim 67, wherein the symmetric key comprises a post-quantum level of security, and wherein the at least one processor of the server computer system is further configured to execute instructions to generate the symmetric key with a random number generator.
90. The server computer system of claim 68, wherein the symmetric key comprises a post-quantum level of security, and wherein the at least one processor of the server computer system is further configured to execute instructions to generate the symmetric key with a random number generator.
91. The server computer system of claim 69, wherein the symmetric key comprises a post-quantum level of security, and wherein the at least one processor of the server computer system is further configured to execute instructions to generate the symmetric key with a random number generator.
92. The server computer system of claim 70, wherein the symmetric key comprises a post-quantum level of security, and wherein the at least one processor of the server computer system is further configured to execute instructions to generate the symmetric key with a random number generator.
93. The server computer system of claim 71, wherein the symmetric key comprises a post-quantum level of security, and wherein the at least one processor of the server computer system is further configured to execute instructions to generate the symmetric key with a random number generator.
94. A server computer system comprising a memory and at least one processor coupled to the memory, wherein: the server computer system is configured to: provide communication for a client computing device with the server computer system, specifically a key management service, in order to obtain encryption/decryption keys for data-at-rest; and provide zero-trust, forward secrecy, confidentiality of data, and integrity of data comprising the client computing device; the client computing device is configured to: encapsulate the first symmetric key using the static KEM public key to produce a ciphertext; send the ciphertext to the server computer system; generate an ephemeral KEM keypair; and send the ephemeral KEM public key to the server computer system using AEAD with the first symmetric key; the at least one processor of the server computer system is configured to execute instructions to: decapsulate the ciphertext using the static KEM private key to produce the first symmetric key; encapsulate a second symmetric key using the ephemeral KEM public key to produce a ciphertext; and send the ciphertext to the client computing device; and the client computing device is further configured to decapsulate the ciphertext using the ephemeral KEM secret key to produce the second symmetric key.
95. The server computer system of claim 94, wherein: the client computing device is further configured to request an encryption key; the at least one processor of the server computer system is further configured to execute instructions to: generate a symmetric key and a handle for the symmetric key; and send the symmetric key and the handle to the client computing device using AEAD with a symmetric key shared with the client computing device; and the client computing device is further configured to encrypt data-at-rest using AEAD with the symmetric key.
96. The server computer system of claim 94, wherein: the client computing device is further configured to send the handle to the server computer system using AEAD with a symmetric key shared with the server computer system; the at least one processor of the server computer system is further configured to execute instructions to send the symmetric key to the client computing device using AEAD with a symmetric key shared with the client computing device; the client computing device is further configured to decrypt data-at-rest using AEAD with the symmetric key.
97. The server computer system of claim 95, wherein: the client computing device is further configured to send a number of bytes that will be encrypted to the server computer system using AEAD with a symmetric key shared with the server computer system; the server computer system generating a symmetric key is updated by the server computer system generating multiple symmetric keys and the server computer system generating a maximum number of bytes each symmetric key may be used to encrypt; and the client computing device is further configured to switch to the next symmetric key prior to a current symmetric key encrypting the maximum number of bytes.
98. The server computer system of claim 96, wherein: the server computer system generating a symmetric key is updated by the server computer system generating multiple symmetric keys and the server generating the maximum number of bytes each symmetric key may be used to encrypt; the client computing device is further configured to switch to the next symmetric key prior to a current symmetric key encrypting the maximum number of bytes.
99. The server computer system of claim 94, wherein the client computing device is further configured to communicate with the server computer system, specifically the entropy refill service, in order to obtain a number of bytes with high entropy.
100. The server computer system of claim 99, wherein the client computing device is further configured to send the number of bytes of entropy requested to the server computer system using AEAD with a symmetric key shared with the server computer system; and the at least one processor of the server computer system is further configured to execute instructions to: generate the requested number of bytes of entropy; and send the bytes of entropy to the client computing device using AEAD with a symmetric key shared with the client computing device.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0036] For a more complete understanding of the present disclosure and its advantages, reference is now made to the following description, taken in conjunction with the accompanying drawings. It is emphasized that, according to common practice, the various features of the drawings are not necessarily to-scale. On the contrary, the dimensions of the various features may be and typically are—arbitrarily expanded or reduced for the purpose of clarity.
[0037]
[0038]
[0039]
[0040]
[0041]
[0042]
[0043]
[0044]
[0045]
[0046]
[0047]
[0048]
[0049]
[0050]
[0051]
[0052]
DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS
[0053] With reference to
[0054] With reference to
[0055] Unique Identifier Database and Key Management Database are configured with a static secret key (using a different Key Encapsulation Mechanism (KEM) keypair than is shared with clients) and Services are configured with the corresponding static public key. At system start, the Forward Secrecy Handshake is performed between the Databases and the Services which access those databases—this is repeated periodically (after a number of bytes has been encrypted, for example) to maintain forward secrecy between Databases and Services during runtime. The Databases offload KEM keygen and decapsulation to the HSM, and the relevant Services offload encapsulation to the HSM.
[0056] Unique Identifier Dataset
[0057] Key Management Dataset
[0058] Hardware Security Module (HSM)
[0059] Quantum Random Number Generator (QRNG)
[0060] Quantum Secure Layer Service
[0061] Quantum Secure Layer Handshake
[0062] Variable Length Buffer Handshake
Variable Length Buffer Handshake Steps:
[0063] 1. The initiator sends the length of buffer to the recipient using AEAD
2. The initiator sends the buffer to the recipient using AEAD
[0064] Login Service
[0065] As part of the registration the client will need to perform the Forward Secrecy Handshake 106a and that includes communication with the key encapsulation system of the Server 100 using but not limited to Saber, or Kyber Post Quantum algorithms. These associate a post quantum key pair structure the Server 100 retains the secret key portion of the pair structure. The Client 120a, Client 120b receives the public key portion and uses said key to establish a shared secret or symmetric key with Server 100. This process then creates a second post quantum key pair derived from the symmetric key and is communicated using the symmetric key to transmit in a protected manner thus reducing the probability of interception of the communication and data. This is unique to each session for data to be compromised the Server 100 secret key and the second symmetric key to get access to the data or session.
[0066] Device Authority Handshake
[0067] Logout Service
[0068] Authentication of clients and establishing a connection between crypto. KEM utilization which give a performance advantage and fewer resources and more efficient. Login, authentication, after established FS handshake.
[0069] Entropy Refill Service
[0070] Key Management Service
[0071] Key Add Service
[0072] Key Get Service
[0073] Entropy Refill
[0074] File Transfer
[0075] HyperText Transfer
[0076] Encrypt
[0077] Key Add Service 114b Refresh the entropy pool with the addition of symmetric keys for and encrypted with HSM into the Server 100 database encryption keys system. This data is stored externally but cannot be accessed without the HSM to decrypt prior to transmittal. The Key Management Dataset
[0078] Decrypt
[0079] Key Get reaches out to HSM to get keys get decrypted key from database.
[0080] Unique Identifier Dataset
[0081]
[0082] The computer system 200 (one example of a “computing device”) illustrated in
[0083] The processing device 202 represents one or more general-purpose processing devices such as a microprocessor, central processing unit, or the like. More particularly, the processing device 202 may be a complex instruction set computing (CISC) microprocessor, reduced instruction set computing (RISC) microprocessor, very long instruction word (VLIW) microprocessor, or a processor implementing other instruction sets or processors implementing a combination of instruction sets. The processing device 202 may also be one or more special-purpose processing devices such as an application specific integrated circuit (ASIC), a system on a chip, a field programmable gate array (FPGA), a digital signal processor (DSP), network processor, or the like. The processing device 202 may be configured to execute instructions for performing any of the operations and steps discussed herein.
[0084] The computer system 200 illustrated in
[0085] The memory device 208 may include a computer-readable storage medium 202 on which the instructions 222c embodying any one or more of the methods, operations, or functions described herein are stored. The instructions 222c may also reside, completely or at least partially, within the main memory 204 as instructions 222b and/or within the processing device 202 during execution thereof by the computer system 200. As such, the main memory 204 or as instruction 222a and the processing device 202 also constitute computer-readable media. The instructions 222 may further be transmitted or received over a network via the network interface device 212.
[0086] While the computer-readable storage medium 220 is shown in the illustrative examples to be a single medium, the term “computer-readable storage medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. The term “computer-readable storage medium” shall also be taken to include any medium capable of storing, encoding or carrying out a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methods disclosed herein. The term “computer-readable storage medium” shall accordingly be taken to include, but not be limited to, solid-state memories, optical media, and magnetic media.
[0087] While the computer system environment of 200 shows the basic components the addition of a Hardware Security Module 224 associated with a Quantum Random Number Generator 226 are added to complete the entropy required for Post Quantum computations and interactions. The use of these components is critical as described previously in the overall methods used for this system.
[0088]
[0089]
[0090]
[0091]
[0092]
[0093]
[0094]
[0095]
[0096]
[0097]
[0098]