IP Library › Granted Patent US 12,574,237
Granted Patent B2
US 12,574,237 · App. 18/132,274 · Granted Mar 10, 2026

Number theoretic transform with parallel coefficient processing

Inventors: Joost Roland Renes (Eindhoven, NL); Björn Fay (Brande-Hörnerkirchen, DE)
Assignee: NXP B.V.
H04L9/3093G06F17/14H04L2209/125
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,574,237
App. No.
18/132,274
Granted
Mar 10, 2026
Kind
B2
Abstract

Electronic device and method for performing number theoretic transforms (NTTs) on polynomials for cryptography uses an arithmetic transformation on an input polynomial with n coefficients to divide the input polynomial into multiple polynomials each with less than n coefficients such that the coefficients of the multiple polynomials add up to n. An NTT transformation is executed on the multiple polynomials such that the coefficients of each of the multiple polynomials are processed in parallel butterfly operations. A cryptographic operation is performed based on the results of the NTT transformation.

Claims (123)

1 . A computer-implemented method for performing number theoretic transforms (NTTs) on polynomials for cryptography, the method comprising:

receiving, by a coprocessor, a data structure storing n values, each value representing a corresponding integer coefficient of an input polynomial function of an independent variable;

segmenting the data structure into m segments having bit-lengths that are equal to a word length w of the coprocessor using an arithmetic transformation of the input polynomial function into multiple polynomial functions, each segment storing n/m values of the data structure;

performing, in registers of the coprocessor having the word length w of the coprocessor, a recursive divide-and-conquer butterfly computation using each of the segments m to produce a vector output having integer values corresponding to a number theoretic transform (NTT) of the data structure; and

performing, by the coprocessor, a cryptographic operation based on the vector output; and

wherein the cryptographic operation comprises one or more of generating secret keys, generating public keys, creating digital signatures, verifying digital signatures, encrypting digital messages, and decrypting digital messages.

2 . The method of claim 1 , wherein the number of the multiple polynomial functions is M=n/m, where n is the number of coefficients for each of the multiple polynomial functions.

3 . The method of claim 2 , wherein m equals the word length w divided by 2l, where l is the smallest power of two larger than log q and q is a prime number.

4 . The method of claim 3 , wherein the input polynomial function is f=Σ i=0 n f i X i in a ring R q =F q [X]/(X n +1).

5 . The method of claim 2 , wherein the coefficients of each of the multiple polynomial functions fit in a w-bit register of the coprocessor.

6 . The method of claim 2 , wherein the input polynomial function includes a variable X and wherein the arithmetic transformation includes replacing X m in the input polynomial function with a variable Y.

7 . The method of claim 6 , wherein performing the recursive divide-and-conquer butterfly computation includes executing the following transformation:

F

⁡

(

X

,

Y

)

↦

(

F

⁡

(

X

,

ζ

)

,

F

⁡

(

X

,

ζ

3

)

⁢

…

,

F

(

X

,

ζ

2

⁢

n

m

-

1

)

)

,

where ζ is a root of unity for F (X, Y).

8 . The method of claim 1 further comprising executing a transformation on the vector output to convert the vector output to Gentleman-Sande style NTT results.

9 . A non-transitory computer-readable storage medium containing program instructions for performing number theoretic transforms (NTTs) on polynomials for cryptography, wherein execution of the program instructions by one or more processors of a computer causes the one or more processors to perform a method comprising:

receiving, by a coprocessor, a data structure storing n values, each value representing a corresponding integer coefficient of an input polynomial function of an independent variable;

segmenting the data structure into m segments having bit-lengths that are equal to a word length w of the coprocessor using an arithmetic transformation of the input polynomial function into multiple polynomial functions, each segment storing n/m values of the data structure;

performing, in registers of the coprocessor having the word length w of the coprocessor, a recursive divide-and-conquer butterfly computation using each of the segments to produce a vector output having integer values corresponding to a number theoretic transform of the data structure; and

performing a cryptographic operation based on the vector output; and

wherein the cryptographic operation comprises one or more of generating secret keys, generating public keys, creating digital signatures, verifying digital signatures, encrypting digital messages, and decrypting digital messages.

10 . The non-transitory computer-readable storage medium of claim 9 , wherein the number of the multiple polynomial functions is M=n/m, where n is the number of coefficients for each of the multiple polynomial functions.

11 . The non-transitory computer-readable storage medium of claim 10 , wherein m equals the word length w divided by 2l, where l is the smallest power of two larger than log q and q is a prime number.

12 . The non-transitory computer-readable storage medium of claim 11 , wherein the input polynomial function is f=Σ i=0 n f i X i in a ring R q =F q [X]/(X n +1).

13 . The non-transitory computer-readable storage medium of claim 10 , wherein the coefficients of each of the multiple polynomial functions fit in a w-bit register of the coprocessor.

14 . The non-transitory computer-readable storage medium of claim 10 , wherein the input polynomial function includes a variable X and wherein the arithmetic transformation includes replacing X m in the input polynomial function with a variable Y.

15 . The non-transitory computer-readable storage medium of claim 14 , wherein performing the recursive divide-and-conquer butterfly computation includes executing the following transformation:

F

⁡

(

X

,

Y

)

↦

(

F

⁡

(

X

,

ζ

)

,

F

⁡

(

X

,

ζ

3

)

⁢

…

,

F

(

X

,

ζ

2

⁢

n

m

-

1

)

)

,

where ζ is a root of unity for F(X, Y).

16 . The non-transitory computer-readable storage medium of claim 9 , wherein the steps further comprise executing a transformation on the vector output to convert the vector output to Gentleman-Sande style NTT results.

17 . An electronic device comprising:

memory; and

at least one processor, including a coprocessor, configured to:

receive, by the coprocessor, a data structure storing n values, each value representing a corresponding integer coefficient of an input polynomial function of an independent variable;

segment, by the coprocessor, the data structure into m segments having bit-lengths that are equal to a word length w of the coprocessor using an arithmetic transformation of the input polynomial function into multiple polynomial functions, each segment storing n/m values of the data structure;

perform, in registers of the coprocessor having the word length w of the coprocessor, a recursive divide-and-conquer butterfly computation using each of the segments to produce a vector output having integer values corresponding to a number theoretic transform of the data structure; and

perform, by the coprocessor, a cryptographic operation based on the vector output; and

wherein the cryptographic operation comprises one or more of generating secret keys, generating public keys, creating digital signatures, verifying digital signatures, encrypting digital messages, and decrypting digital messages.

18 . The electronic device of claim 17 , wherein the number of the multiple polynomial functions is M=n/m, where n is the number of coefficients for each of the multiple polynomial functions.

19 . The electronic device of claim 18 , wherein m equal the word length w divided by 2l, where l is the smallest power of two larger than log q and q is a prime number.

20 . The electronic device of claim 19 , wherein the input polynomial function is f=Σ i=0 n f i X i in a ring R q =F q [X]/(X n +1).

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 10, 2023
From: RENES, JOOST ROLAND; FAY, BJÖRN
To: NXP B.V.
Reel/Frame 063278/0688 →
Continuity (1)
Related Publication 20240348441A1 · Oct 17, 2024
References Cited (34)
US 8938034B2 · Alaus et al. · 2015 [cited by applicant]
US 11206136B1 · Renes et al. · 2021 [cited by applicant]
US 11265163B2 · Poeppelmann · 2022 [cited by examiner]
US 11798435B2 · Poeppelmann · 2023 [cited by examiner]
US 11847938B2 · Renes · 2023 [cited by examiner]
US 11922135B2 · Yonemura · 2024 [cited by examiner]
US 20040039928A1 · Elbe · 2004 [cited by examiner]
US 20100064142A1 · Matsuzaki · 2010 [cited by examiner]
US 20150006604A1 · Ng · 2015 [cited by examiner]
US 20160292127A1 · Lingam · 2016 [cited by examiner]
US 20180294950A1 · Khedr · 2018 [cited by examiner]
US 20200265167A1 · Banerjee · 2020 [cited by examiner]
US 20220006611A1 · Ghosh et al. · 2022 [cited by applicant]
US 20220417019A1 · Ghosh · 2022 [cited by examiner]
US 20230171084A1 · Kwon · 2023 [cited by examiner]
US 20230188322A1 · Bajpeyi · 2023 [cited by examiner]
US 20230269067A1 · Son · 2023 [cited by examiner]
US 20230318829A1 · Sim · 2023 [cited by examiner]
US 20240267212A1 · Ghosh · 2024 [cited by examiner]
US 20250080334A1 · Saarinen · 2025 [cited by examiner]
CN 104065478A · 2014 [cited by applicant]
FR 3010556A1 · 2015 [cited by applicant]
FR 3083890A1 · 2020 [cited by applicant]
KR 20220047797A · 2022 [cited by examiner]
Alkim, Erdem et al.: “Compact and Simple RLWE Based Key Encapsulation Mechanism”; Sep. 9, 2019; Advances In Databases And Information Systems; Lecture Notes In Computer Science; ISBN: 978-3-319-10403-4; pp. 237-256. [cited by applicant]
Cooley, J. et al. “An algorithm for the machine calculation of complex Fourier series”, Research in part at Princeton University under the sponsorshipof the Army Research Office (Durham), pp. 297-301. [cited by applicant]
Pollard, J.M. “The fast Fourier transform in a finite field” Mathematics of Computation, vol. 25, No. 114, Apr. 1971, 10 pages. [cited by applicant]
Regev, Oded, “On lattices, learning with errors, random linear, and cryptography”, Random Linear Codes, and Cryptography, May 2, 2009, 37 pages. [cited by applicant]
Yubashevsky, Vadim et al “On ideal lattices and learning with errors over rings” International Association for Cryptologic Research 2010, H. Gilbert (Ed.): Eurocrypt 2010, LNCS 6110, (2010), pp. 1-23. [cited by applicant]
Seiler, Gregor, “Faster AVX2 optimized NTT multiplication for Ring-LWE lattice cryptography” IBM Research Zurich, 2018, 14 pages. [cited by applicant]
Chung, Chi-Ming Marvin et al “NTT Multiplication for NTT-unfriendly Rings: New Speed Records for Saber and NTRU on Cortex-M4 and AVX2”, IACR Transactions on Cryptographic Hardware and Embedded Systems, ISSN 2569-2925, v… [cited by applicant]
Duong-Ngoc, Phap et al. “Efficient k-Parallel Pipelined NTT Architecture for Post Quantum Cryptography”, 2020 International SoC Design Conference (ISOCC) (2020), pp. 212-213. [cited by applicant]
Duong-Ngoc, Phap et al., “Efficient NewHope Cryptography Based Facial Security System on a GPU”, IEEE Access, (2020), 11 pgs. [cited by applicant]
National Institute of Standards and Technology, Post-quantum cryptography standardization, https://csrc.nist.gov/Projects/Post-Quantum-Cryptography/, downloaded Oct. 24, 2023, 4 pgs. [cited by applicant]