Key encapsulation mechanisms
AssigneeISARA Corporation
InventorAtsushi Yamada
Life of this patent
Estimating the term…
Abstract
In a general aspect, a key encapsulation mechanism is used in a communication network. In some aspects, an error vector derivation function is applied to a random value to produce an error vector, and a plaintext value is obtained based on the random value. The error vector and the plaintext value are used in an encryption function to produce a ciphertext, and a key derivation function (KDF) is applied to the random value to produce a key derivation function output that includes a symmetric key and a confirmation value. The symmetric key is used to generate an encrypted message based on an unencrypted message. The ciphertext, the confirmation value, and the encrypted message are provided for transmission in a communication network.
Claims29
A key encapsulation method, comprising:
- applying an error vector derivation function to a random value to produce an error vector, wherein applying the error vector derivation function to the random value comprises:
- applying a pseudorandom function to the random value to produce a pseudorandom function output;
- applying a filter to the pseudorandom function output to produce a filtered pseudorandom function output, the filtered pseudorandom function output comprising t integers;
- and
- generating the error vector based on the filtered pseudorandom function output, the error vector having a Hamming weight equal to t;
- obtaining a plaintext value based on the random value;
- using the error vector and the plaintext value in an encryption function to produce a ciphertext;
- applying a key derivation function to the random value to produce a key derivation function output, the key derivation function output comprising a symmetric key and a confirmation value;
- by operation of one or more processors in a computer system, using the symmetric key to generate an encrypted message based on an unencrypted message;
- and
- providing the ciphertext, the confirmation value, and the encrypted message for transmission between nodes in a communication network.
A computing system comprising:
- a data processing apparatus;
- and
- a non-transitory computer-readable medium storing instructions that are operable when executed by the data processing apparatus to perform operations comprising:
- applying an error vector derivation function to a random value to produce an error vector, wherein applying the error vector derivation function to the random value comprises:
- applying a pseudorandom function to the random value to produce a pseudorandom function output;
- applying a filter to the pseudorandom function output to produce a filtered pseudorandom function output, the filtered pseudorandom function output comprising t integers;
- and
- generating the error vector based on the filtered pseudorandom function output, the error vector having a Hamming weight equal to t;
- obtaining a plaintext value based on the random value;
- using the error vector and the plaintext value in an encryption function to produce a ciphertext;
- applying a key derivation function to the random value to produce a key derivation function output, the key derivation function output comprising a symmetric key and a confirmation value;
- using the symmetric key to generate an encrypted message based on an unencrypted message;
- and
- providing the ciphertext, the confirmation value, and the encrypted message for transmission in a communication network.
A key decapsulation method, comprising:
- obtaining a ciphertext and an encrypted message transmitted between nodes in a communication system;
- applying a decryption function to the ciphertext to produce a first decryption function output and a second decryption function output;
- obtaining a seed value based on the first decryption function output;
- applying a key derivation function to the seed value to produce a key derivation function output, the key derivation function output comprising a symmetric key;
- applying an error vector derivation function to the seed value to produce an error vector check value, wherein applying the error vector derivation function to the seed value comprises:
- applying a pseudorandom function to the seed value to produce a pseudorandom function output;
- applying a filter to the pseudorandom function output to produce a filtered pseudorandom function output, the filtered pseudorandom function output comprising t integers;
- and
- generating the error vector check value based on the filtered pseudorandom function output, the error vector check value having a Hamming weight equal to t;
- comparing the second decryption function output with the error vector check value;
- and
- by operation of one or more processors in a computer system, using the symmetric key to decrypt the encrypted message in response a determination that the second decryption function output is equal to the error vector check value.
A computing system comprising:
- a data processing apparatus;
- and
- a non-transitory computer-readable medium storing instructions that are operable when executed by the data processing apparatus to perform operations comprising:
- obtaining a ciphertext an encrypted message transmitted between nodes in a communication system;
- applying a decryption function to the ciphertext to produce a first decryption function output and a second decryption function output;
- obtaining a seed value based on the first decryption function output;
- applying a key derivation function to the seed value to produce a key derivation function output, the key derivation function output comprising a symmetric key;
- applying an error vector derivation function to the seed value to produce an error vector check value, wherein applying the error vector derivation function to the seed value comprises:
- applying a pseudorandom function to the seed value to produce a pseudorandom function output;
- applying a filter to the pseudorandom function output to produce a filtered pseudorandom function output, the filtered pseudorandom function output comprising t integers;
- and
- generating the error vector check value based on the filtered pseudorandom function output, the error vector check value having a Hamming weight equal to t;
- comparing the second decryption function output with the error vector check value;
- and
- using the symmetric key to decrypt the encrypted message in response a determination that the second decryption function output is equal to the error vector check value.
Dependencies are inferred from the claim text.