| CPC H04L 9/0861 (2013.01) [G06F 21/35 (2013.01); G06F 21/445 (2013.01); H04J 11/00 (2013.01); H04L 9/006 (2013.01); H04L 9/0816 (2013.01); H04L 9/0841 (2013.01); H04L 9/085 (2013.01); H04L 9/088 (2013.01); H04L 9/0894 (2013.01); H04L 9/14 (2013.01); H04L 9/30 (2013.01); H04L 9/3066 (2013.01); H04L 9/32 (2013.01); H04L 9/321 (2013.01); H04L 9/3239 (2013.01); H04L 9/3247 (2013.01); H04L 9/3249 (2013.01); H04L 9/3263 (2013.01); H04L 12/2854 (2013.01); H04L 63/0272 (2013.01); H04L 63/0435 (2013.01); H04L 63/0442 (2013.01); H04L 63/045 (2013.01); H04L 63/061 (2013.01); H04L 63/0807 (2013.01); H04L 63/123 (2013.01); H04L 63/166 (2013.01); H04L 67/04 (2013.01); H04W 4/70 (2018.02); H04W 8/082 (2013.01); H04W 12/02 (2013.01); H04W 12/033 (2021.01); H04W 12/04 (2013.01); H04W 12/06 (2013.01); H04W 12/069 (2021.01); H04W 12/40 (2021.01); H04W 40/005 (2013.01); H04W 52/0216 (2013.01); H04W 52/0235 (2013.01); H04W 52/0277 (2013.01); H04W 76/27 (2018.02); H04W 80/04 (2013.01); G06F 2221/2105 (2013.01); G06F 2221/2107 (2013.01); G06F 2221/2115 (2013.01); H04L 63/0464 (2013.01); H04L 2209/24 (2013.01); H04L 2209/72 (2013.01); H04L 2209/805 (2013.01); H04W 84/12 (2013.01); H04W 88/12 (2013.01); Y02D 30/70 (2020.08)] | 9 Claims |

|
1. A system comprising:
one or more processors; and
a non-transitory computer-readable memory operatively connected to the one or more processors, the non-transitory computer-readable memory having stored thereon machine readable instructions that, when executed by the one or more processors, cause the one or more processors to perform steps of:
a) storing (i) a key derivation function, wherein the key derivation function uses an elliptic curve Diffie-Hellman (ECDH) algorithm, and (ii) a symmetric ciphering algorithm;
b) deriving a server private key and a first server public key using cryptographic parameters, the server private key and first server public key associated with a server including the one or more processors and the non-transitory computer-readable memory;
c) receiving a message from a user module, wherein the message includes (i) a module public key, and (ii) the cryptographic parameters for the module public key, wherein the cryptographic parameters include an elliptic curve;
d) deriving a shared symmetric key using the key derivation function which utilizes:
(i) the first server public key and the module public key, and
(ii) a key exchange for the ECDH algorithm including
(1) the server private key and
(2) the cryptographic parameters;
e) encrypting by the server utilizing the shared symmetric key and the symmetric ciphering algorithm:
(i) a module instruction which includes a second server public key, and
(ii) a server digital signature generated by the server,
to generate server encrypted data; and
f) sending a response including the server encrypted data to the user module,
wherein the server encrypted data is decrypted by the user module using the shared symmetric key derived by the user module to provide the second server public key and the server digital signature generated by the server, and
wherein the user module uses the server digital signature generated by the server to verify an identity of the server.
|