IP Library › Granted Patent US 12,634,150
Granted Patent B2
US 12,634,150 · App. 18/376,940 · Granted May 19, 2026

Memory management in a computer system configured for generating a signature and apparatus for implementing the same

Inventors: Etienne Marcatel (Plaisir, FR); Kevin Lebret (Conflans Sainte Honorine, FR); Philippe Elbaz-Vincent (Rodez France, FR)
Assignee: BULL SAS
H04L9/3247
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,634,150
App. No.
18/376,940
Granted
May 19, 2026
Kind
B2
Abstract

A computer-implemented method for memory management in a computer system configured for generating a signature of a binary data message m using a key B of a predetermined lattice-based structure is proposed, which comprises: determining coefficients of a 2×2 signature generation matrix SG, wherein the non-diagonal coefficients of the signature generation matrix SG are complex polynomials with a non-zero imaginary part, and the diagonal coefficients of the signature generation matrix SG are real polynomials; and determining a LDL representation of the signature generation matrix SG according to which SG is represented by a matrix product L.D.L*, wherein L is a 2×2 lower triangular matrix with ones on the diagonal, D is a 2×2 diagonal matrix, and L* is the adjoint of L; wherein the storing in a memory buffer of the computer system of the coefficients of the signature generation matrix SG and the coefficients of the matrices of the LDL representation is managed based on that the signature generation matrix SG has real diagonal coefficients, and the memory buffer is used alternatively to store the coefficients of the signature generation matrix SG or the coefficients of the matrix D of the LDL representation.

Claims (318)

1 . A computer-implemented method for memory management in a computer system configured for generating a signature of a binary data message m using a key B of a predetermined lattice-based structure, the method comprising:

determining, based on the key B, coefficients of a 2×2 signature generation matrix SG, wherein non-diagonal coefficients of the signature generation matrix SG are complex polynomials with a non-zero imaginary part, and diagonal coefficients of the signature generation matrix SG are real polynomials;

determining a LDL representation of the signature generation matrix SG according to which SG is represented by a matrix product L.D.L*, wherein L is a 2×2 lower triangular matrix with ones as diagonal coefficients, D is a 2×2 diagonal matrix, and L* is the adjoint matrix of L, wherein matrix L is of form

(

1

0

l

1

⁢

0

1

)

,

the method further comprising: computing coefficient l 10 of the matrix L as

l

1

⁢

0

=

g

0

⁢

1

g

0

⁢

0

—

,

wherein the signature generation matrix SG is of form

(

g

0

⁢

0

g

0

⁢

1

g

1

⁢

0

g

1

⁢

1

)

,

where g 00 and g 11 are real polynomials, and g 10 and g 01 are complex polynomials and g 10 is equal to complex conjugate g 10 of g 01 , D is of form

(

d

0

⁢

0

0

0

d

1

⁢

1

)

and determined as:

(

g

0

⁢

0

0

0

g

1

⁢

1

-

|

g

0

⁢

1

|

2

g

0

⁢

0

)

,

and wherein computing the coefficient l 10 of the matrix L comprises: computing inverse 1/g 00 of real coefficient g 00 , and performing a real-complex multiplication of 1/g 00 with the complex polynomial g 01 ; and

managing storing in a memory buffer of the computer system of coefficients of the signature generation matrix SG and coefficients of the matrices of the LDL representation based on:

(a) the signature generation matrix SG is of form

(

g

0

⁢

0

g

0

⁢

1

g

1

⁢

0

g

1

⁢

1

)

,

where diagonal coefficients g 00 and g 11 are real polynomials, g 10 and g 01 are complex polynomials and g 10 is equal to complex conjugate g 10 of g 01 , D is of form

(

d

0

⁢

0

0

0

d

1

⁢

1

)

and determined as:

(

g

00

0

0

g

11

-

❘

"\[LeftBracketingBar]"

g

01

❘

"\[RightBracketingBar]"

2

g

00

)

,

and

where the memory buffer is used alternatively to store coefficients of the signature generation matrix SG or coefficients of the matrix D of the LDL representation, and the coefficient d 11 is stored in the memory buffer by overwriting one or more coefficients of the signature generation matrix SG.

2 . The method according to claim 1 , wherein the memory buffer is dimensioned for storing complex non-diagonal coefficients and real diagonal coefficients of the signature generation matrix SG.

3 . The method according to claim 1 , wherein the key B has a matrix structure, and the signature generation matrix is determined based on matrix product B.B*, wherein B* is the adjoint matrix of B.

4 . The method according to claim 1 , wherein the key B has a matrix structure, and the signature generation matrix is determined based on matrix product {circumflex over (B)}.{circumflex over (B)}*, wherein {circumflex over (B)}* is adjoint matrix of {circumflex over (B)}, and wherein {circumflex over (B)} is obtained based on a transform of matrix B in a frequency domain.

5 . The method according to claim 1 , wherein the signature generation matrix SG is of form:

(

g

0

⁢

0

g

0

⁢

1

⁢

g

0

⁢

1

g

0

⁢

0

)

,

wherein g 00 is a real polynomial, g 01 is a complex polynomial, and g 01 is complex conjugate of g 01 , and wherein the memory buffer is dimensioned for storing g 00 and real and imaginary parts of g 01 .

6 . The method according to claim 1 , wherein the signature generation matrix is a Gram matrix of size 2×2.

7 . The method according to claim 1 , further comprising: generating a signature s 2 of message m based on determination of coefficients of the signature generation matrix SG, and determination of the LDL representation of the signature generation matrix SG.

8 . The method according to claim 1 , wherein the key B is of form

(

g

-

f

G

-

F

)

,

wherein f, g, F, and G are polynomials of [x]/(φ k ), where Φ κ =x n +1∈ [x] for n=2 κ , and κ be a positive integer which verify equation f·G−g·F=q mod (φ κ ), where q is a constant equal to 12×2 10 +1.

9 . An apparatus, the apparatus comprising a processor and a memory operatively coupled to the processor, wherein the apparatus is configured to perform a method for memory management in a computer system configured for generating a signature of a binary data message m using a key B of a predetermined lattice-based structure, the method comprising:

determining, based on the key B, coefficients of a 2×2 signature generation matrix SG, wherein non-diagonal coefficients of the signature generation matrix SG are complex polynomials with a non-zero imaginary part, and diagonal coefficients of the signature generation matrix SG are real polynomials;

determining a LDL representation of the signature generation matrix SG according to which SG is represented by a matrix product L.D.L*, wherein L is a 2×2 lower triangular matrix with ones as diagonal coefficients, D is a 2×2 diagonal matrix, and L′ is the adjoint matrix of L, wherein matrix L is of form

(

1

0

l

1

⁢

0

1

)

,

the method further comprising: computing coefficient l 10 of the matrix L as l 10 = g 01 /g 00 , wherein the signature generation matrix SG is of form

(

g

10

g

11

)

,

where g 00 and g 11 are real polynomials, and g 10 and g 01 are complex polynomials, and g 10 is equal to complex conjugate g 10 of g 01 , the diagonal matrix D is of form

(

d

0

⁢

0

0

0

d

1

⁢

1

)

and determined as:

(

g

00

0

0

g

11

-

❘

"\[LeftBracketingBar]"

g

01

❘

"\[RightBracketingBar]"

2

g

00

)

,

and wherein computing the coefficient l 10 of the matrix L comprises: computing inverse 1/g 00 of real coefficient g 00 , and performing a real-complex multiplication of 1/g 00 with the complex polynomial g 01 ; and

managing storing in a memory buffer of the computer system of the coefficients of the signature generation matrix SG and coefficients of the matrices of the LDL representation based on:

where the memory buffer is used alternatively to store coefficients of the signature generation matrix SG or coefficients of the matrix D of the LDL representation and the coefficient d 11 is stored in the memory buffer by overwriting one or more coefficients of the signature generation matrix SG.

10 . A non-transitory computer-readable medium encoded with executable instructions which, when executed, causes an apparatus comprising a processor and a memory operatively coupled to the processor, to perform a method for memory management in a computer system configured for generating a signature of a binary data message m using a key B of a predetermined lattice-based structure, the method comprising:

determining, based on the key B, coefficients of a 2×2 signature generation matrix SG, wherein non-diagonal coefficients of the signature generation matrix SG are complex polynomials with a non-zero imaginary part, and diagonal coefficients of the signature generation matrix SG are real polynomials;

determining a LDL representation of the signature generation matrix SG according to which SG is represented by a matrix product L.D.L*, wherein L is a 2×2 lower triangular matrix with ones as diagonal coefficients, D is a 2×2 diagonal matrix, and L* is the adjoint matrix of L, wherein matrix L is of form

(

l

1

⁢

0

1

)

,

the method further comprising: computing coefficient l 10 of the matrix L as l 10 = g 01 /g 00 wherein the signature generation matrix SG is of form

(

g

0

⁢

0

g

0

⁢

1

g

1

⁢

0

g

1

⁢

1

)

,

where g 00 and g 11 are real polynomials, and g 10 and g 01 are complex polynomials, and g 10 is equal to complex conjugate g 10 of g 01 , D is of form

(

d

0

⁢

0

0

0

d

1

⁢

1

)

and determined as

(

g

0

⁢

0

0

0

g

1

⁢

1

-

|

g

0

⁢

1

|

2

g

0

⁢

0

)

,

and wherein computing the coefficient l 10 of the matrix L comprises: computing inverse 1/g 00 of real coefficient g 00 , and performing a real-complex multiplication of 1/g 00 with the complex polynomial g 01 ; and

managing storing in a memory buffer of the computer system of the coefficients of the signature generation matrix SG and coefficients of the matrices of the LDL representation based on:

where the memory buffer is used alternatively to store coefficients of the signature generation matrix SG or coefficients of the matrix D of the LDL representation and the coefficient d 11 is stored in the memory buffer by overwriting one or more coefficients of the signature generation matrix SG.

11 . The apparatus according to claim 9 , wherein the memory buffer is dimensioned for storing complex non-diagonal coefficients and real diagonal coefficients of the signature generation matrix SG.

12 . The apparatus according to claim 9 , wherein the key B has a matrix structure, and the signature generation matrix is determined based on matrix product B.B*, wherein B* is adjoint matrix of B.

13 . The apparatus according to claim 9 , wherein the key B has a matrix structure, and the signature generation matrix is determined based on matrix product {circumflex over (B)}.{circumflex over (B)}*, wherein {circumflex over (B)}* is adjoint matrix of {circumflex over (B)}, and wherein {circumflex over (B)} is obtained based on a transform of the matrix B in a frequency domain.

14 . The non-transitory computer-readable medium according to claim 10 , wherein the memory buffer is dimensioned for storing complex non-diagonal coefficients and real diagonal coefficients of the signature generation matrix SG.

15 . The non-transitory computer-readable medium according to claim 10 , wherein the key B has a matrix structure, and the signature generation matrix is determined based on the matrix product B.B*, wherein B* is adjoint matrix of B.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 17, 2023
From: ELBAZ-VINCENT, PHILIPPE; LEBRET, KEVIN; MARCATEL, ETIENNE
To: BULL SAS
Reel/Frame 065246/0110 →
Priority Claims (1)
EP 22306500 · Oct 6, 2022 · regional
Continuity (1)
Related Publication 20240154817A1 · May 9, 2024
References Cited (24)
“Shuo Sun, Fast Fourier Othrogonalization over NTRU Lattices, 2022, Iinstitute of Information Engineering, Chinese Academy of Sciences, pp. 1-19” (Year: 2022). [cited by examiner]
“Thomas Pornin, New Efficient, Constant-Time limplementations of Falcon, 2019, IACR International Association for Cryptologic Research vol. 20190885:222901 pp. 1-21” (Year: 2019). [cited by examiner]
European Search Report for corresponding EP Application No. 22306500, dated Mar. 7, 2023. [cited by applicant]
Sun et al., “Fast Fourier Orthogonalization over NTRU Lattices”, Springer Nature SwitzerlandAG, pp. 109-127, Aug. 24, 2022. [cited by applicant]
Zhao et al., “Quantum-safe HIBE: does it cost a Latte?”, IACR, International Association for Cryptologic Research, vol. 20220503:130924, pp. 1-22, May 3, 2022. [cited by applicant]
Pornin, “New Efficient, Constant-Time Implementations of Falcon”, IACR, International Association for Cryptologic Research, vol. 20190805:222901, pp. 1-21, Aug. 58, 2019. [cited by applicant]
Guo et al., A practical implementation of the signature scheme falcon suited for memory constrained device, Microelectronics & Computer, vol. 37, No. 9, pp. 50-55, Sep. 1, 2020. [cited by applicant]
Cooley et a;., “An Algorithm for the Machine Calculation of Complex Fourier Series”, Mathematics of Computation, vol. 19, No. 90, pp. 297-301, Apr. 1965. [cited by applicant]
Dang et al., “Implementation and Benchmarking of Round 2 Candidates in the NIST Post-Quantum Cryptography Standardization Process Using Hardware and Software/Hardware Co-design Approaches”, Cryptology ePrint Archive: Re… [cited by applicant]
Dang et al., “High-Speed Hardware Architectures and FPGA Benchmarking of CRYSTALS-Kyber, NTRU, and Saber”, IEEE Transactions on Computers, vol. 72, pp. 306-320, Feb. 2023. [cited by applicant]
Ducas, et al., “Fast Fourier Orthogonalization”, Cryptology ePrint Archive, Paper 2015/1014, 2015. [cited by applicant]
Gonzalez et al., “Verifying Post-Quantum Signatures in 8 kB of RAM”, Post-Quantum Cryptography: 12th International Workshop, PQCrypto 2021, Daejeon, South Korea, Jul. 20-22, 2021, Proceedings 12. Springer International … [cited by applicant]
Gentry et al., “How to Use a Short Basis: Trapdoors for Hard Lattices and new Cryptographic Constructions”, Electronic Colloquium on Computational Complexity (ECCC), vol. 14, Sep. 25, 2008. [cited by applicant]
Hoffstein et al., “NTRU: A Ring-Based Public Key Cryptosystem”, International Workshop on Ant Colony Optimization and Swarm Intelligence, pp. 268-288, 1998. [cited by applicant]
Karabulut et al., “Falcon Down: Breaking Falcon Post-Quantum Signatures Scheme through Side-Channel Attacks”, 2021 58th ACM/IEEE Design Automation Conference (DAC), pp. 691-696, Dec. 2021. [cited by applicant]
Klein et al., “Finding the closets lattice vector when it's unusually close”, ACM-SIAM Symposium on Discrete Algorithms, 2000. [cited by applicant]
McCarthy et al., “BEARZ attack FALCON: implementation attacks with countermeasures on the FALCON signature scheme”, 17th International Joint Conference on e-Business and Telecommunications, Jul. 8, 2020-Jul. 10, 2020, J… [cited by applicant]
Micciancio et al., “Trapdoors for Lattices: Simpler, Tighter, Faster, Smaller”, IACR Cryptol. ePrint Arch. (2012), vol. 501, Sep. 14, 2011. [cited by applicant]
Nguyen et al., “High-Level Synthesis in Implementing and Benchmarking Number Theoretic Transform in Lattice-based Post-Quantum Cryptography using Software/Hardware Codesign”, Applied Reconfigurable Computing. Architectu… [cited by applicant]
Oder et al., “Towards Practical Microcontroller Implementation of the Signature Scheme Falcon”, Post-Quantum Cryptography, 2019. [cited by applicant]
Peikert, “An Efficient and Parallel Gaussian Sampler for Latitices”, Annual Cryptology Conference, 2010. [cited by applicant]
Varma et al., “Post Quantum Secure Command and Control of Mobile Agent”, International Journal of Semantic Computing, vol. 15, No. 03, pp. 359-379, 2021. [cited by applicant]
Wang et al., “Parameterized Hardware Accelerators for Lattice-Based Crytography and Their Application to the HW/SW Co-Design of qTESLA”, IACR transactions on cryptographic hardware and embedded systems, vol. 2020, No. 3… [cited by applicant]
Zhao et al., “A Compact and High-Performance Hardware Architecture for CRYSTALS-Dilithium”, IACR Transactions on Cryptographic Hardware and Embedded Systems, vol. 2022, No. 1, 270-295, Nov. 11, 2021. [cited by applicant]