IP Library › Granted Patent US 12,362,931
Granted Patent B2
US 12,362,931 · App. 18/320,028 · Granted Jul 15, 2025

Masked infinity norm check for crystals-dilithium signature generation

Inventors: Olivier Bronchain (Auderghem, BE); Joost Roland Renes ('s-Hertogenbosch, NL); Tobias Schneider (Graz, AT)
Assignee: NXP B.V.
H04L9/3093H04L9/3006
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,362,931
App. No.
18/320,028
Granted
Jul 15, 2025
Kind
B2
Abstract

A data processing system and method for norm checking a cryptographic operation for lattice-based cryptography in a processor, the instructions, including: multiplying a first polynomial by a second polynomial to produce a first output, wherein the d arithmetic shares have a modulus q′; securely converting the first output to d Boolean shares; securely subtracting a third polynomial from the first output to produce a second output, wherein the third polynomial is randomly generated and then offset by a first constant parameter; securely adding a first constant based upon a bound check and the first constant parameter to the second output to shift the values of the second output to positive values to produce a third output; and securely adding a second constant based upon the bound check to the third output to produce a carry bit.

Claims (236)

1. A data processing system comprising instructions embodied in a non-transitory computer readable medium, the instructions for norm checking a cryptographic operation for lattice-based cryptography in a processor, the instructions comprising processor-readable instructions that, when executed, cause a processor to:

determine data to be digitally signed;

begin digitally signing the determined data using a crystals-Dilithium signature generation process;

multiply a first polynomial having d arithmetic shares by a second polynomial to produce a first output, wherein the d arithmetic shares have a modulus q′;

securely convert the d arithmetic shares of the first output to d Boolean shares;

securely subtract a third polynomial with d Boolean shares from the first output to produce a second output with d Boolean shares, wherein the third polynomial is randomly generated and then offset by a first constant parameter;

securely add a first constant based upon a bound check and the first constant parameter to the second output to shift values of the second output to positive values to produce a third output with d Boolean shares;

securely add a second constant based upon the bound check to the third output to produce a carry bit with d Boolean shares; and

continue digitally signing the determined data when the carry bit indicates that the second output satisfies a norm check based upon the bound check.

2. The data processing system of claim 1 , wherein q′ is a power of two.

3. The data processing system of claim 1 , wherein ∥ĉ∘ŝ∥ ∞ <q′, where ĉ is the first polynomial that is public and ŝ is the second polynomial that is secret where ∥·∥ ∞ ≤q′ means that the absolute value of each of the coefficients of the polynomial is less than or equal than q′.

4. The data processing system of claim 1 , wherein the processor-readable instructions further cause the processor to:

secretly expand coefficients of the Boolean shares of the third polynomial to k+1 bits by appending zeros, where k is a number of bits of the coefficients of the third polynomial; and

secretly expand coefficients of the d Boolean shares of the first output to k+1 bits by appending zeros.

5. The data processing system of claim 4 , wherein the processor-readable instructions causing the processor to securely subtract the third polynomial with d Boolean shares from the first output include instructions that cause the processor to compute:

z

′

⁢

B

,

k

+

1

←

Sec

⁢

Sub

k

+

1

d

(

sc

B

,

k

+

1

,

x

B

,

k

+

1

)

where sc B,k+1 is the Boolean shares of the expanded first output, x B,k+1 is the Boolean shares of the is the expanded third polynomial, SecSub k+1 d is a secure subtraction function, and z′ B,k+1 is the Boolean shares of a fourth output.

6. The data processing system of claim 5 , wherein the processor-readable instructions causing the processor to securely add the first constant based upon the bound check and the first constant parameter to the second output include instructions that cause the processor to compute:

z

′

⁢

B

,

k

+

1

←

Sec

⁢

Add

k

+

1

d

(

z

B

,

k

+

1

,

β

+

γ

)

where β is the bound check, γ is the first constant parameter, and SecAdd k+1 d is a secure addition function.

7. The data processing system of claim 6 , wherein the processor-readable instructions causing the processor to securely add the second constant based upon the bound check to the third output include instructions that cause the processor to compute:

b

B

,

1

←

Sec

⁢

Add

k

+

2

d

(

z

′

⁢

B

,

k

+

1

,

2

k

+

2

-

2

·

β

)

[

k

+

1

]

where b B,1 are the d Boolean shares of the carry bit.

8. The data processing system of claim 1 , wherein the processor-readable instructions further comprise instructions that, when executed, cause the processor to securely unmask the d Boolean shares of the carry bit to produce the carry bit.

9. The data processing system of claim 1 , wherein the d Boolean shares of the first output include k′ bits, where k′=┌log 2 q′┐.

10. The data processing system of claim 1 , wherein coefficients of the third polynomial are unsigned such that 0≤x<2 k , where k is the number of bits of the coefficients of the third polynomial.

11. A method for norm checking a cryptographic operation for lattice-based cryptography, the method comprising:

determining, by a processor of a computing device, data to be digitally signed;

beginning digitally signing, by the processor, the determined data using a crystals-Dilithium signature generation process;

multiplying, by a processor of a computing device, a first polynomial having d arithmetic shares by a second polynomial to produce a first output, wherein the d arithmetic shares have a modulus q′;

securely converting, by the processor, the d arithmetic shares of the first output to d Boolean shares;

securely subtracting, by the processor, a third polynomial with d Boolean shares from the first output to produce a second output with d Boolean shares, wherein the third polynomial is randomly generated and then offset by a first constant parameter;

securely adding, by the processor, a first constant based upon a bound check and the first constant parameter to the second output to shift values of the second output to positive values to produce a third output with d Boolean shares;

securely adding, by the processor, a second constant based upon the bound check to the third output to produce a carry bit with d Boolean shares; and

continuing digitally signing the determined data, by the processor, when the carry bit indicates that the second output satisfies a norm check based upon the bound check.

12. The method of claim 11 , wherein q′ is a power of two.

13. The method of claim 11 , wherein ∥ĉ∘ŝ∥ ∞ <q′, where ĉ is the first polynomial that is public and ŝ is the second polynomial that is secret where ∥·∥ ∞ ≤q′ means that the absolute value of each of the coefficients of the polynomial is less than or equal than q′.

14. The method of claim 11 , further comprising:

secretly expand, by the processor, coefficients of the Boolean shares of the third polynomial to k+1 bits by appending zeros, where k is a number of bits of the coefficients of the third polynomial; and

secretly expand, by the processor, coefficients of the Boolean shares of the first output to k+1 bits by appending zeros.

15. The method of claim 14 , wherein securely subtract the third polynomial with d Boolean shares from the first output includes computing:

z

′

⁢

B

,

k

+

1

←

Sec

⁢

Sub

k

+

1

d

(

sc

B

,

k

+

1

,

x

B

,

k

+

1

)

where sc B,k+1 is the Boolean shares of the expanded first output, x B,k+1 is the Boolean shares of the expanded third polynomial, SecSub k+1 d is a secure subtraction function, and z′ B,k+1 is the Boolean shares of a fourth output.

16. The method of claim 15 , wherein securely adding a first constant based upon a bound check and the first constant parameter to the second output includes computing:

z

′

⁢

B

,

k

+

1

←

Sec

⁢

Add

k

+

1

d

(

z

B

,

k

+

1

,

β

+

γ

)

where β is the bound check, γ is the first constant parameter, and SecAdd k+1 d is a secure addition function.

17. The method of claim 16 , wherein securely adding a second constant based upon the bound check to the third output includes computing:

b

B

,

1

←

Sec

⁢

Add

k

+

2

d

(

z

′

⁢

B

,

k

+

1

,

2

k

+

2

-

2

·

β

)

[

k

+

1

]

where b B,1 are the d Boolean shares of the carry bit.

18. The method of claim 11 , further comprising securely unmasking, by the processor, the d Boolean shares of the carry bit to produce the carry bit.

19. The method of claim 11 , wherein the d Boolean shares of the first output include k′ bits, where k′=┌log 2 q′┐.

20. The method of claim 11 , wherein coefficients of the third polynomial are unsigned such that 0≤x<2 k , where k is the number of bits of the coefficients of the third polynomial.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 18, 2023
From: BRONCHAIN, OLIVIER; RENES, JOOST ROLAND; SCHNEIDER, TOBIAS
To: NXP B.V.
Reel/Frame 063688/0445 →
Continuity (1)
Related Publication 20240388433A1 · Nov 21, 2024
References Cited (34)
US 6076163A · Hoffstein · 2000 [cited by examiner]
US 11265163B2 · Poeppelmann · 2022 [cited by applicant]
US 11416638B2 · Banerjee · 2022 [cited by applicant]
US 20110243320A1 · Halevi · 2011 [cited by examiner]
US 20200153618A1 · Bhattacharya · 2020 [cited by examiner]
US 20220012334A1 · Ghosh · 2022 [cited by examiner]
US 20230025869A1 · Rao · 2023 [cited by examiner]
US 20230030316A1 · Pessl · 2023 [cited by examiner]
US 20230034127A1 · Park · 2023 [cited by examiner]
US 20230038135A1 · Gowanlock · 2023 [cited by examiner]
US 20230353361A1 · Schoenauer et al. · 2023 [cited by applicant]
US 20240031140A1 · Basso · 2024 [cited by examiner]
US 20240223354A1 · Azouaoui · 2024 [cited by examiner]
US 20240250831A1 · Matsui · 2024 [cited by examiner]
US 20240305663A1 · Routt · 2024 [cited by examiner]
FR 2926652A1 · 2009 [cited by applicant]
KR 102312379B1 · 2021 [cited by applicant]
KR 102375031B1 · 2022 [cited by applicant]
WO 2021240157A1 · 2021 [cited by applicant]
Agence Nationale de la securite des systemes d'information (ANSSI), Anssi views on the post-quantum cryptography transition, https: //www. ssi .gov. fr/en/publication/anssi-views-on-the-post-quantum-cryptography-transit… [cited by applicant]
Melissa Azouaoui, Olivier Bronchain, Gaetan Cassiers, Clement Hoffmann, Yulia Kuzovkova, Joost Renes, Markus Schonauer, Tobias Schneider, Francois-Xavier Standaert, and Christine van Vredendaal, Leveling dilithium again… [cited by applicant]
Gilles Barthe, Sonia Belaid, Thomas Espitau, Pierre-Alain Fouque, Benjamin Gregoire, Melissa Rossi, and Mehdi Tibouchi, Masking the GLP lattice-based signature scheme at any order, Eurocrypt (2), Lecture Notes in Comput… [cited by applicant]
Joppe W. Bos, Joost Renes, and Daan Sprenkels, Dilithium for memory constraineddevices, IACR Cryptol. ePrint Arch. (2022), 323. [cited by applicant]
Olivier Bronchain and Gaetan Cassiers, Bitslicing arithmetic/boolean masking conversions for fun and profit with application to lattice-based kems, IACR Trans. Cryptogr. Hardw. Embed. Syst. 2022 (2022), No. 4, 553-588. [cited by applicant]
Bundesamt fiir Sicherheit in der Informationstechnik, Migration zu post-quanten-kryptografie, https: / /www. bsi. bund. de/SharedDocs/Downloads/DE/BSI/Krypto/Post-Quanten-Kryptografie.pdf; isessionid=4E25811453CDCA572EE… [cited by applicant]
Jean-Sebastien Coron, Francois Gerard, Simon Montoya, and Rina Zeitoun, High order polynomial comparison and masking lattice-based encryption, IACR Cryptol. ePrint Arch. (2021), 1615. [cited by applicant]
Francois Gerard and Melissa Rossi, an efficient and provable masked implementation of qtesla, Cardis, Lecture Notes in Computer Science, vol. 11833, Springer, 2019, pp. 74-91. [cited by applicant]
Denisa 0. C. Greconici, Matthias J. Kannwischer, and Daan Sprenkels, Compact dilithium implementations on cortex-m3 and cortex-m4, IACR Trans. Cryptogr. Hardw. Embed. Syst. 2021 (2021), No. 1, 1-24. [cited by applicant]
Supama Kundu, Jan-Pieter D'Anvers, Michiel Van Beirendonck, Angshuman Karmakar, and Ingrid Verbauwhede, Higher-order masked saber, Cryptology ePrint Archive, Paper 2022/389, 2022, https: //eprint. iacr. org/2022/389. [cited by applicant]
Vincent Migliore, Beno1t Gerard, Mehdi Tibouchi, and Pierre-Alain Fouque, Masking dilithium—efficient implementation and side-channel evaluation, ACNS, Lecture Notes in Computer Science, vol. 11464, Springer, 2019, pp. … [cited by applicant]
Hauke Steffen, Georg Land, Lucie Kogelheide, and Tim Giineysu, Breaking and protecting the crystal: Side-channel analysis of dilithium in hardware, Cryptology ePrint Archive, Paper 2022/1410, 2022, https: //eprint. iacr… [cited by applicant]
U.S. Appl. No. 17/811,669, filed Jul. 11, 2022 entitled “Rejection of Masked Polynomials”. [cited by applicant]
U.S. Appl. No. 17/835,898, filed Jun. 8, 2022 entitled “Protection Polynomial Rejection Through Masked Compressed Comparison”. [cited by applicant]
U.S. Appl. No. 17/935,550; Inventors: Melissa Azouaoui, et al.; Title: “Protecting Polynomial Rejection Through Masked Compressed Comparison”; File Date: Sep. 26, 2022. [cited by applicant]