IP Library › Granted Patent US 12,192,333
Granted Patent B2
US 12,192,333 · App. 17/857,502 · Granted Jan 7, 2025

Method and device for code-based generation of a key pair for asymmetric cryptography

Inventor: Rainer Urian (Augsburg, DE)
Assignee: Infineon Technologies AG
H04L9/0825G06F17/16H04L1/0063H04L9/0869H04L9/3026H04L9/3033H04L9/3066
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 12,192,333
App. No.
17/857,502
Granted
Jan 7, 2025
Kind
B2
Abstract

According to various embodiments, a method for code-based generation of a key pair for asymmetric cryptography is described including generating a private key defining a linear code, determining a parity check or generator matrix for the linear code, blinding a sub-matrix of the parity check or generator matrix, generating a blinded inverse matrix by inverting the blinded sub-matrix or by inverting a quadratic matrix contained in the blinded sub-matrix, de-blinding the blinded inverse matrix to generate an inverse matrix and generating a public key for the private key using the inverse matrix.

Claims (50)

1. A method for code-based generation of a key pair for asymmetric cryptography comprising:

generating a private key defining a linear code;

determining a parity check or generator matrix for the linear code;

blinding a sub-matrix of the parity check or generator matrix;

generating a blinded inverse matrix by inverting the blinded sub-matrix or by inverting a quadratic matrix contained in the blinded sub-matrix;

de-blinding the blinded inverse matrix to generate an inverse matrix; and

generating a public key for the private key using the inverse matrix,

wherein the blinded inverse matrix is generated by determining an invertible quadratic matrix contained in the blinded sub-matrix of the parity check or generator matrix and inverting the invertible quadratic matrix, and wherein the inverse matrix is the inverse of the de-blinded invertible quadratic matrix.

2. The method of claim 1 , wherein generating the private key comprises selecting random elements of a finite field and an irreducible polynomial with coefficients in the finite field.

3. The method of claim 2 , wherein the irreducible polynomial is the Goppa polynomial of the linear code.

4. The method of claim 1 , wherein the public key is generated by multiplying the inverse matrix with a part of the parity check or generator matrix which remains when removing a part to which the inverse matrix is the inverse.

5. The method of claim 1 , wherein the parity check or generator matrix is a binary matrix, and wherein the sub-matrix of the parity check or generator matrix has a same number of rows as the parity check or generator matrix and at least as many columns as rows in case the parity check matrix has more columns than rows, and wherein the sub-matrix of the parity check or generator matrix has a same number of columns as the parity check or generator matrix and at least as many rows as columns in case the parity check matrix has more rows than columns.

6. The method of claim 1 , wherein blinding the sub-matrix comprises multiplying the sub-matrix with a blinding matrix.

7. The method of claim 6 , wherein the blinding matrix is random or pseudo-random.

8. The method of claim 6 , wherein the blinding matrix is invertible.

9. The method of claim 6 ,

wherein the multiplication is a multiplication of the blinding matrix from the left and the blinding matrix has as many columns as the parity check or generator matrix has rows and as at least as many rows as the parity check or generator matrix has rows, or

wherein the multiplication is a multiplication of the blinding matrix from the right and the blinding matrix has as many rows as the parity check or generator matrix has columns and as at least as many columns as the parity check or generator matrix has columns.

10. The method of claim 1 , comprising blinding the sub-matrix of the parity check or generator matrix such that the blinded sub-matrix of the parity check or generator matrix is quadratic, wherein the blinded inverse matrix is generated by inverting the sub-matrix of the parity check or generator matrix and the inverse matrix is the inverse of the sub-matrix.

11. The method of claim 1 , wherein blinding the sub-matrix comprises multiplying the sub-matrix with a blinding matrix, and wherein the blinding matrix has as many columns as the parity check or generator matrix has rows and as many rows as the parity check or generator matrix has rows.

12. The method of claim 1 , comprising blinding the sub-matrix of the parity check or generator matrix such that the blinded sub-matrix of the parity check or generator matrix has more columns, more rows or more columns and more rows than a difference between code length and code dimension.

13. The method of claim 1 ,

wherein blinding the sub-matrix comprises multiplying the sub-matrix with a blinding matrix from the left, and the blinding matrix has as many columns as the parity check or generator matrix has rows and has more rows than the parity check or generator matrix has rows, or

wherein blinding the sub-matrix comprises multiplying the sub-matrix with a blinding matrix from the right, and the blinding matrix has as many rows as the parity check or generator matrix has columns and has more columns than the parity check or generator matrix has columns.

14. The method of claim 1 , wherein blinding the sub-matrix comprises multiplying the sub-matrix with a blinding matrix from the left and the invertible quadratic matrix has as many rows and columns as the parity check or generator matrix has rows or wherein blinding the sub-matrix comprises multiplying the sub-matrix with a blinding matrix from the right and the invertible quadratic matrix has as many rows and columns as the parity check or generator matrix has columns.

15. The method of claim 1 , wherein the parity check or generator matrix is a binary matrix, and wherein the sub-matrix of the parity check or generator matrix has more columns as rows or has more rows as columns.

16. The method of claim 1 , comprising generating the private key, the parity check or generator matrix and the public key according to systematic Niederreiter or McEliece cryptosystem.

17. The method of claim 1 , comprising:

generating the private key by a first data processing element;

blinding the sub-matrix of the parity check or generator matrix by the first data processing element;

transmitting the blinded sub-matrix of the parity check or generator matrix from the first data processing element to a second data processing element;

receiving the blinded inverse matrix from the second data processing element at the first data processing element; and

generating the public key by the first data processing element.

18. The method of claim 17 , comprising generating the blinded inverse matrix by the second data processing element.

19. A key generation device for code-based generation of a key pair for asymmetric cryptography comprising one or more hardware processors, wherein the one or more hardware processors are configured to:

generate a private key defining a linear code;

determine a parity check or generator matrix for the linear code;

blind a sub-matrix of the parity check or generator matrix;

generate a blinded inverse matrix by inverting the blinded sub-matrix or by inverting a quadratic contained in the blinded sub-matrix;

de-blind the blinded inverse matrix to generate an inverse matrix; and

generate a public key for the private key using the inverse matrix,

wherein the blinded inverse matrix is generated by determining an invertible quadratic matrix contained in the blinded sub-matrix of the parity check or generator matrix and inverting the invertible quadratic matrix, and wherein the inverse matrix is the inverse of the de-blinded invertible quadratic matrix.

20. A method for code-based generation of a key pair for asymmetric cryptography performed by a key generation device having a hardware security module and a hardware processor, the method comprising:

generating a private key defining a linear code through the hardware security module;

determining a parity check or generator matrix for the linear code by the hardware security module;

blinding a sub-matrix of the parity check or generator matrix by the hardware security module;

generating a blinded inverse matrix by inverting the blinded sub-matrix or by inverting a quadratic matrix contained in the blinded sub-matrix by the hardware processor;

de-blinding the blinded inverse matrix to generate an inverse matrix by the hardware security module; and

generating a public key for the private key using the inverse matrix by the hardware security module,

wherein the blinded inverse matrix is generated by determining an invertible quadratic matrix contained in the blinded sub-matrix of the parity check or generator matrix and inverting the invertible quadratic matrix, and wherein the inverse matrix is the inverse of the de-blinded invertible quadratic matrix.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 5, 2022
From: URIAN, RAINER
To: INFINEON TECHNOLOGIES AG
Reel/Frame 060399/0212 →
Priority Claims (1)
DE 102021118435.5 · Jul 16, 2021 · national
Continuity (1)
Related Publication 20230048825A1 · Feb 16, 2023
References Cited (12)
US 20140105403A1 · Baldi · 2014 [cited by examiner]
US 20140181171A1 · Dourbal · 2014 [cited by examiner]
US 20180173589A1 · Chang · 2018 [cited by examiner]
US 20230186293A1 · Dolev · 2023 [cited by examiner]
WO 2012066328A1 · 2012 [cited by applicant]
D. Bernstein, et al., “McBits: Fast Constant Time Code-Based Cryptography,” Cryptographic Hardware and Embedded Systems—CHES, 23 pgs., Jun. 11, 2013. [cited by applicant]
R. J. McEliece, “A Public-Key Cryptosystem Based on Algebraic Coding Theory,” DSN Progess Report 42-44, 3 pgs., Jan. and Feb. 1978. [cited by applicant]
P. Mohassel, “Efficient and Secure Delegation of Linear Algebra,” Cryptology ePrint Archive, 33 pgs., 2011. [cited by applicant]
X. Lei, et al., “Outsourcing Large Matrix Inversion Computation To A Public Cloud,” IEEE Transactions on Cloud Computing, 10 pgs., Sep. 26, 2013. [cited by applicant]
F. Strenzke, “A Smart Card Implementation of the McEliece PKC,” Information Security Theory and Practices, 13 pgs., 2010. [cited by applicant]
M. R. Albrecht, et al., “Classic McEliece: Conservative Code-Based Cryptography,” url: https://classic.mceliece.org/nist/mceliece-20201010.pdf, 55 pgs., Oct. 10, 2020. [cited by applicant]
Mar. 9, 2023 (DE) Office Action—App. DE 102021118435.5. [cited by applicant]