Public/private key system with decreased public key size
AssigneeKoninklijke Philips N.V.
InventorsOscar Garcia Morchon, Sauvik Bhattacharya, Ludovicus Marinus Gerardus Maria Tolhuizen
Life of this patent
Estimating the term…
Abstract
Some embodiments are directed to a public-key encryption device (20) and a private-key decryption device (10). The public-key encryption device is configured to compute a second public-key matrix (u), the second public-key matrix (u) having fewer matrix elements than the first public-key matrix (b) of the private-key decryption device. This reduces computation and bandwidth requirements at the side of the public-key encryption device.
Claims32
A public-key encryption device comprising:
- a communication interface circuit, wherein the communication interface circuit is arranged to communicate with a private-key decryption device;
- and
- a processor circuit,
- wherein the processor circuit is arranged to obtain a first public-key matrix,
- wherein the public-key matrix is associated with the private-key decryption device,
- wherein the processor circuit is arranged to obtain a key size for a transmission key,
- wherein the processor circuit is arranged to generate the transmission key according to the key size,
- wherein the processor circuit is arranged to determine a matrix size for a second private-key matrix,
- wherein the matrix size is arranged to accommodate masking of the transmission key,
- wherein the processor circuit is arranged to generate the second private-key matrix according to the matrix size,
- wherein the processor circuit is arranged to compute a second public-key matrix from the second private-key matrix,
- wherein the second public-key matrix has fewer matrix elements than the first public-key matrix,
- wherein the processor circuit is arranged to compute a second raw shared key from the second private-key matrix and the first public-key matrix,
- wherein computing the second raw shared key comprises a matrix multiplication between the second private-key matrix and the first public-key matrix,
- wherein the processor circuit is arranged to mask the transmission key with at least part of the second raw shared key,
- wherein the processor circuit is arranged to transfer an indication of the key size and/or matrix size, the second public-key matrix, and the masked transmission key to the private-key decryption device
- wherein the processor circuit is arranged to perform a handshake with the private-key decryption device, the handshake comprising:
- receiving at least two indications of at least two first public-key matrices of the private-key decryption device from the private-key decryption device,
- wherein the two first public-key matrices have different sizes;
- selecting the larger of the first public-key matrix and the second public-key matrix;
- sending an indication of the selected first public-key matrix to the private-key decrypting device;
- and
- requesting the first public-key matrix when the first public-key matrix is not available in a key-cache, wherein the transmission key is encapsulated with the selected first-public key.
A private-key decryption device comprising:
- a communication interface circuit, wherein the communication interface circuit is arranged to communicate with a public-key encryption device;
- and
- a processor circuit,
- wherein the processor circuit is arranged to generate a first private-key matrix,
- wherein the processor circuit is arranged to compute a first public-key matrix from the first private-key matrix,
- wherein the processor circuit is arranged to allow transfer of the first public-key matrix to the public-key encryption device,
- wherein the processor circuit is arranged to receive from the public-key encryption device an indication of a key size and/or matrix size, a second public-key matrix and a masked transmission key,
- wherein the second public-key matrix has fewer matrix elements than the first public-key matrix,
- wherein the processor circuit is arranged to compute a first raw shared key from the second public-key matrix and the first private-key matrix,
- wherein the processor circuit is arranged to compute the first raw shared key,
- wherein the computing comprises a matrix multiplication between the second public-key matrix and the first private-key matrix,
- wherein the processor circuit is arranged to unmask the masked transmission key in dependence on the received size using at least part of the first raw shared key to obtain a transmission key,
- wherein the processor circuit is arranged to perform a handshake with the public-key encryption device, the handshape comprising:
- sending to the public-key encryption device at least two indications of at least two first public-key matrices of the private-key decryption device, wherein the two first public-key matrices have different sizes;
- receiving an indication of a selected first public-key matrix from the public-key encryption device;
- sending the selected first public-key matrix, when a request for the selected first public-key matrix is received, wherein the transmission key is decapsulated with the selected first-public key.
A public-key encryption method comprising:
- establishing communication with a private-key decryption device;
- obtaining a first public-key matrix, wherein the first public-key matrix is associated with the private-key decryption device;
- obtaining a key size for the transmission key;
- generating a transmission key according to the key size;
- determining a matrix size for the second private-key matrix, wherein the matrix size is arranged to accommodate masking of the transmission key;
- generating a second private-key matrix according to the matrix size;
- computing a second public-key matrix from the second private-key matrix, wherein the second public-key matrix has fewer matrix elements than the first public-key matrix;
- computing a second raw shared key from the second private-key matrix and the first public-key matrix;
- computing the second raw shared key, wherein the second raw shared key comprises a matrix multiplication between the second private-key matrix and the first public-key matrix;
- masking the transmission key with at least part of the second raw shared key;
- and
- transferring an indication of the key size and/or matrix size, the second public-key matrix, and the masked transmission key to the private-key decryption device;
- and
- performing a handshake with the private-key decryption device, wherein the handshaking comprises:
- receiving at least two indications of at least two first public-key matrices of the private-key decryption device from the private-key decryption device,
- wherein the two first public-key matrices have different sizes;
- selecting the larger of the first public-key matrix and the second public-key matrix;
- sending an indication of the selected first public-key matrix to the private-key decrypting device;
- and
- requesting the first public-key matrix when the first public-key matrix is not available in a key-cache, wherein the transmission key is encapsulated with the selected first-public key.
A private-key decryption method comprising:
- establishing communication with a public-key encryption device;
- generating a first private-key matrix;
- computing a first public-key matrix from the first private-key matrix, and allow transfer of the first public-key matrix to the public-key encryption device;
- receiving from the public-key encryption device an indication of a key size and/or matrix size;
- receiving a second public-key matrix and a masked transmission key, wherein the second public-key matrix has fewer matrix elements than the first public-key matrix;
- computing a first raw shared key from the second public-key matrix and the first private-key matrix;
- computing the first raw shared key comprising a matrix multiplication between the second public-key matrix and the first private-key matrix;
- and
- unmasking the masked transmission key in dependence on the received size using at least part of the first raw shared key to obtain a transmission key wherein the processor circuit is arranged to perform a handshake with the public-key encryption device, the handshape comprising:
- sending to the public-key encryption device at least two indications of at least two first public-key matrices of the private-key decryption device, wherein the two first public-key matrices have different sizes;
- receiving an indication of a selected first public-key matrix from the public-key encryption device;
- sending the selected first public-key matrix, when a request for the selected first public-key matrix is received, wherein the transmission key is decapsulated with the selected first-public key.
A computer program stored on a non-transitory medium, wherein the computer program when executed on a processor:
- establishes communication with a public-key encryption device;
- generates a first private-key matrix;
- computes a first public-key matrix from the first private-key matrix, and allow transfer of the first public-key matrix to the public-key encryption device;
- receives from the public-key encryption device an indication of a key size and/or matrix size;
- receives a second public-key matrix and a masked transmission key, wherein the second public-key matrix has fewer matrix elements than the first public-key matrix;
- computes a first raw shared key from the second public-key matrix and the first private-key matrix;
- computes the first raw shared key comprising a matrix multiplication between the second public-key matrix and the first private-key matrix;
- and
- unmasks the masked transmission key in dependence on the received size using at least part of the first raw shared key to obtain a transmission key;
- and
- performing a handshake with the private-key decryption device, wherein the handshaking comprises:
- receiving at least two indications of at least two first public-key matrices of the private-key decryption device from the private-key decryption device,
- wherein the two first public-key matrices have different sizes;
- selecting the larger of the first public-key matrix and the second public-key matrix;
- sending an indication of the selected first public-key matrix to the private-key decrypting device;
- and
- requesting the first public-key matrix when the first public-key matrix is not available in a key-cache, wherein the transmission key is encapsulated with the selected first-public key.
A computer program stored on a non-transitory medium, wherein the computer program when executed on a processor:
- establishes communication with a public-key encryption device;
- generates a first private-key matrix;
- computes a first public-key matrix from the first private-key matrix, and allow transfer of the first public-key matrix to the public-key encryption device;
- receives from the public-key encryption device an indication of a key size and/or matrix size;
- receives a second public-key matrix and a masked ansmission key, wherein the second public-key matrix has fewer matrix elements than the first public-key matrix;
- computes a first raw shared key from the second public-key matrix and the first private-key matrix;
- computes the first raw shared key comprising a matrix multiplication between the second public-key matrix and the first private-key matrix;
- and
- unmasks the masked transmission key in dependence on the received size using at least part of the first raw shared key to obtain a transmission key,
- wherein the processor circuit is arranged to perform a handshake with the public-key encryption device, the handshape comprising:
- sending to the public-key encryption device at least two indications of at least two first public-key matrices of the private-key decryption device, wherein the two first public-key matrices have different sizes;
- receiving an indication of a selected first public-key matrix from the public-key encryption device;
- sending the selected first public-key matrix, when a request for the selected first public-key matrix is received, wherein the transmission key is decapsulated with the selected first-public key.
Dependencies are inferred from the claim text.