IP Library Granted Patent US 10,404,458
Granted Patent B1
US 10,404,458 · App. 16/008,944 · Granted Sep 3, 2019

Multi-round key encapsulation process

Inventors: Atsushi Yamada (Toronto, CA); Edward William Eaton (Waterlooo, CA)
Assignee: ISARA Corporation
H04L9/304H04L9/0631H04L9/0656H04L9/0869H04L9/302H04L9/3073H04L63/0428
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,404,458
App. No.
16/008,944
Granted
Sep 3, 2019
Kind
B1
Abstract

In a general aspect, a random seed value is used in a key encapsulation process to generate multiple ciphertexts for a recipient. The key encapsulation process includes multiple encapsulation rounds and each encapsulation round generates a respective ciphertext based on the random seed value and an additional value. The additional value includes an index indicating the encapsulation round. A symmetric key is generated based on the random seed value, and an encrypted message is generated based on the symmetric key. The ciphertexts and the encrypted message are provided for the recipient for transmission between nodes in a communication system.

Claims (66)

1. A key encapsulation method, comprising:

obtaining a random seed value;

executing a key encapsulation process to generate multiple ciphertexts for a recipient, the key encapsulation process comprising multiple encapsulation rounds, each encapsulation round generating a respective ciphertext based on the random seed value and an additional value for the encapsulation round, the additional value comprising an index indicating the encapsulation round;

wherein each encapsulation round comprises:

applying an error vector derivation function to a combination of the random seed value and the additional value for the encapsulation round to produce an error vector, wherein applying the error vector derivation function comprises:

applying a pseudorandom function to the combination of the random seed value and the additional value to produce a pseudorandom function output;

applying a filter to the pseudorandom function output to produce a filtered pseudorandom function output oft integers; and

generating the error vector based on the filtered pseudorandom function output:

generating a plaintext value based on the random seed value and the error vector; and

using the plaintext value and the error vector in an encryption function to produce a ciphertext for the encapsulation round:

generating a symmetric key based on the random seed value;

generating an encrypted message based on the symmetric key; and

providing the ciphertexts for the recipient and the encrypted message for transmission between nodes in a communication system.

2. The method of claim 1 , wherein the encryption function comprises a McEliece encryption function, and wherein using the plaintext value and the error vector in the encryption function comprises using the error vector and a public key to encrypt the plaintext value according to a McEliece cryptosystem.

3. The method of claim 1 , wherein the error vector has a Hamming weight equal to t, and respective positions of the nonzero elements of the error vector are indicated by the filtered pseudorandom function output.

4. The method of claim 1 , wherein generating the symmetric key based on the random seed value comprises applying a pseudorandom function to the random seed value to produce a pseudorandom function output that includes the symmetric key.

5. The method of claim 4 , wherein the pseudorandom function output comprises the symmetric key and a confirmation value, and the method comprises providing the confirmation value for transmission to the recipient.

6. The method of claim 1 , wherein each encapsulation round generates a respective ciphertext based on the random seed value and the additional value for the encapsulation round, the additional value further comprising an identifier of the recipient.

7. The method of claim 1 , wherein:

the key encapsulation process generates multiple ciphertexts for each of multiple recipients, each recipient identified by a respective identifier;

the additional value for each encapsulation round comprises an index for the encapsulation round and an identifier for one of the multiple recipients; and

the method comprises providing the encrypted message and the multiple ciphertexts for each respective recipient for transmission to the respective recipient.

8. A computing system, comprising:

one or more processors; and

memory storing instructions that, when executed by the one or more processors, perform operations comprising:

obtaining a random seed value;

executing a key encapsulation process to generate multiple ciphertexts for a recipient, the key encapsulation process comprising multiple encapsulation rounds, each encapsulation round generating a respective ciphertext based on the random seed value and an additional value, the additional value comprising an index indicating the encapsulation round;

wherein each encapsulation round comprises:

applying an error vector derivation function to a combination of the random seed value and the additional value for the encapsulation round to produce an error vector, wherein applying the error vector derivation function comprises:

applying a pseudorandom function to the combination of the random seed value and the additional value to produce a pseudorandom function output;

applying a filter to the pseudorandom function output to produce a filtered pseudorandom function output of t integers; and

generating the error vector based on the filtered pseudorandom function output;

generating a plaintext value based on the random seed value and the error vector; and

using the plaintext value and the error vector in an encryption function to produce a ciphertext for the encapsulation round:

generating a symmetric key based on the random seed value;

generating an encrypted message based on the symmetric key; and

providing the ciphertexts for the recipient and the encrypted message for transmission between nodes in a communication system.

9. The computing system of claim 8 , wherein generating the symmetric key based on the random seed value comprises applying a pseudorandom function to the random seed value to produce a pseudorandom function output that includes the symmetric key.

10. The computing system of claim 8 , wherein each encapsulation round generates a respective ciphertext based on the random seed value and the additional value for the encapsulation round, the additional value further comprising an identifier of the recipient.

11. The computing system of claim 8 , wherein:

the key encapsulation process generates multiple ciphertexts for each of multiple recipients, each recipient identified by a respective identifier;

the additional value for each encapsulation round comprises an index for the encapsulation round and an identifier for one of the multiple recipients; and

the operations comprise providing the multiple ciphertexts for each respective recipient and the encrypted message for transmission to the respective recipient.

12. The computing system of claim 8 , wherein the encryption function comprises a McEliece encryption function, and wherein using the plaintext value and the error vector in the encryption function comprises using the error vector and a public key to encrypt the plaintext value according to a McEliece cryptosystem.

13. The computing system of claim 8 , wherein the error vector has a Hamming weight equal to t, and respective positions of the nonzero elements of the error vector are indicated by the filtered pseudorandom function output.

14. The computing system of claim 9 , wherein the pseudorandom function output comprises the symmetric key and a confirmation value, and the operations comprise providing the confirmation value for transmission to the recipient.

15. A non-transitory computer-readable medium storing instructions that when executed by data processing apparatus perform operations comprising:

obtaining a random seed value;

executing a key encapsulation process to generate multiple ciphertexts for a recipient, the key encapsulation process comprising multiple encapsulation rounds, each encapsulation round generating a respective ciphertext based on the random seed value and an additional value for the encapsulation round, the additional value comprising an index indicating the encapsulation round;

wherein each encapsulation round comprises:

applying an error vector derivation function to a combination of the random seed value and the additional value for the encapsulation round to produce an error vector, wherein applying the error vector derivation function comprises:

applying a pseudorandom function to the combination of the random seed value and the additional value to produce a pseudorandom function output;

applying a filter to the pseudorandom function output to produce a filtered pseudorandom function output of t integers; and generating the error vector based on the filtered pseudorandom function output; generating a plaintext value based on the random seed value and the error vector; and

using the plaintext value and the error vector in an encryption function to produce a ciphertext for the encapsulation round;

generating a symmetric key based on the random seed value;

generating an encrypted message based on the symmetric key; and

providing the ciphertexts for the recipient and the encrypted message for transmission between nodes in a communication system.

16. The non-transitory computer-readable medium of claim 15 , wherein the encryption function comprises a McEliece encryption function, and wherein using the plaintext value and the error vector in the encryption function comprises using the error vector and a public key to encrypt the plaintext value according to a McEliece cryptosystem.

17. The non-transitory computer-readable medium of claim 15 , wherein the error vector has a Hamming weight equal to t, and respective positions of the nonzero elements of the error vector are indicated by the filtered pseudorandom function output.

18. The non-transitory computer-readable medium of claim 15 , wherein generating the symmetric key based on the random seed value comprises applying a pseudorandom function to the random seed value to produce a pseudorandom function output that includes the symmetric key.

19. The non-transitory computer-readable medium of claim 18 , wherein the pseudorandom function output comprises the symmetric key and a confirmation value, and the operations comprise providing the confirmation value for transmission to the recipient.

20. The non-transitory computer-readable medium of claim 15 , wherein each encapsulation round generates a respective ciphertext based on the random seed value and the additional value for the encapsulation round, the additional value further comprising an identifier of the recipient.

21. The non-transitory computer-readable medium of claim 15 , wherein:

the key encapsulation process generates multiple ciphertexts for each of multiple recipients, each recipient identified by a respective identifier;

the additional value for each encapsulation round comprises an index for the encapsulation round and an identifier for one of the multiple recipients; and

the operations comprise providing the encrypted message and the multiple ciphertexts for each respective recipient for transmission to the respective recipient.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 15, 2018
From: YAMADA, ATSUSHI; EATON, EDWARD WILLIAM
To: ISARA CORPORATION
Reel/Frame 046097/0568 →
Continuity (1)
Provisional Application 62588011 · Nov 17, 2017
Cited By (19)
US 12,206,763 US 12,212,959 US 12,225,126 US 12,273,108 US 12,284,512 US 12,335,399 US 12,341,790 US 12,348,630 US 12,395,353 US 12,413,398 US 12,425,230 US 12,438,731 US 12,443,700 US 12,445,305 US 12,499,201 US 12,513,128 US 12,538,123 US 12,556,367 US 12,634,136