IP Library Granted Patent US 12,021,985
Granted Patent B2
US 12,021,985 · App. 17/832,521 · Granted Jun 25, 2024

Masked decomposition of polynomials for lattice-based cryptography

Inventors: Melissa Azouaoui (Norderstedt, DE); Tobias Schneider (Graz, AT); Markus Schoenauer (Vienna, AT)
Assignee: NXP B.V.
H04L9/3093G06F7/4873G06F7/727
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,021,985
App. No.
17/832,521
Granted
Jun 25, 2024
Kind
B2
Abstract

Various implementations relate to a data processing system comprising instructions embodied in a non-transitory computer readable medium, the instructions for a cryptographic operation including a masked decomposition of a polynomial a having n s arithmetic shares into a high part a 1 and a low part a 0 for lattice-based cryptography in a processor, the instructions, including: performing a rounded Euclidian division of the polynomial a by a base α to compute t (⋅)A ; extracting Boolean shares a 1 (⋅)B from n low bits of t by performing an arithmetic share to Boolean share (A2B) conversion on t (⋅)A and performing an AND with ζ−1, where ζ=−α −1 is a power of 2; unmasking a 1 by combining Boolean shares of a 1 (⋅)B ; calculating arithmetic shares a 0 (⋅)A of the low part a 0 ; and performing a cryptographic function using a 1 and a 0 (⋅)A .

Claims (44)

1. A data processing system comprising instructions embodied in a non-transitory computer readable medium, the instructions for a cryptographic operation including a masked decomposition of a polynomial a having n s arithmetic shares into a high part a 1 and a low part a 0 for lattice-based cryptography in a processor, the instructions, comprising:

performing a rounded Euclidian division of the polynomial a by a base α to compute t (⋅)A ;

extracting Boolean shares a 1 (⋅)B from n low bits of t by performing an arithmetic share to Boolean share (A2B) conversion on t (⋅)A and performing an AND with ζ−1, where ζ=−α −1 is a power of 2;

unmasking a 1 by combining Boolean shares of a 1 (⋅)B ;

calculating arithmetic shares a 0 (⋅)A of the low part a 0 ; and

performing a cryptographic function using a 1 and a 0 (⋅)A .

2. The data processing system of claim 1 , wherein performing a rounded Euclidian division of the polynomial a by a base α to compute t (⋅)A includes adding α/2 to a (⋅)A and dividing by α.

3. The data processing system of claim 2 , wherein performing a rounded Euclidian division of the polynomial a by a base α to compute t (⋅)A includes calculating:

t (⋅)A =a (⋅)A +γ; and

t (⋅)A =α −1 ×t (⋅)A −( q mod ζ),

where γ=α/2 and q is a prime modulus.

4. The data processing system of claim 1 , wherein calculating arithmetic shares a 0 (⋅)A of the low part a 0 includes:

calculating u (⋅)A by subtracting a 1 from t (⋅)A and adding q mod ζ, where q is a prime modulus; and

multiplying u (⋅)A by α and then subtracting α/2.

5. A data processing system comprising instructions embodied in a non-transitory computer readable medium, the instructions for a cryptographic operation including a masked decomposition of a polynomial a having n s arithmetic shares into a high part a 1 and a low part a 0 for lattice-based cryptography in a processor, the instructions, comprising:

performing a rounded Euclidian division of the polynomial a by a base α to compute t (⋅)A ;

extracting Boolean shares a 1 (⋅)B from n low bits of t by performing an arithmetic share to Boolean share (A2B) conversion on t (⋅)A and performing an AND with ζ−1, where ζ=−α −1 is a power of 2;

unmasking a 1 by combining Boolean shares of a 1 (⋅)B ;

calculating the Boolean shares a 0 (⋅)B of the low part a 0 ; and

performing a cryptographic function using a 1 and a 0 (⋅)B .

6. The data processing system of claim 5 , wherein performing a rounded Euclidian division of the polynomial a by a base α to compute t (⋅)A includes adding α/2 to a (⋅)A and dividing by α.

7. The data processing system of claim 6 , wherein performing a rounded Euclidian division of the polynomial a by a base α to compute t (⋅)A includes calculating:

t (⋅)A =a (⋅)A +γ; and

t (⋅)A =α −1 ×t (⋅)A −( q mod ζ),

where γ=α/2 and q is a prime modulus.

8. The data processing system of claim 5 , wherein calculating the Boolean shares a 0 (⋅)B of the low part a 0 includes:

shifting t (⋅)B n bits to the right, where n is a number of bits in ζ; and

calculating

a 0 (⋅)B =SecAdd(((γ+( q mod ζ)) (⋅)B ,¬t (⋅)B )

where γ=α/2 and q is a prime modulus.

9. A data processing system comprising instructions embodied in a non-transitory computer readable medium, the instructions for a cryptographic operation including a masked decomposition of a polynomial a having n s arithmetic shares into a high part a 1 and a low part a 0 for lattice-based cryptography in a processor, the instructions, comprising:

performing a rounded Euclidian division of the polynomial a by a base α to compute t (⋅)A ;

extracting Boolean shares a 1 (⋅)B from n low bits of t by performing an arithmetic share to Boolean share (A2B) conversion on t (⋅)A to produce t (⋅)B and performing a Boolean share to arithmetic share (B2A) conversion on t (⋅)B , where ζ=−α −1 ;

unmasking a 1 by combining arithmetic shares of a 1 (⋅)A ;

calculating the arithmetic shares a 0 (⋅)A of the low part a 0 ; and

performing a cryptographic function using a 1 and a 0 (⋅)A .

10. The data processing system of claim 9 , wherein performing a rounded Euclidian division of the polynomial a by a base α to compute t (⋅)A includes adding α/2 to α (⋅)A and dividing by α.

11. The data processing system of claim 10 , wherein performing a rounded Euclidian division of the polynomial a by a base α to compute t (⋅)A includes calculating:

t (⋅)A =a (⋅)A +γ; and

t (⋅)A =α −1 ×t (⋅)A −( q mod ζ),

where γ=α/2 and q is a prime modulus.

12. The data processing system of claim 9 , wherein calculating the arithmetic shares a 0 (⋅)A of the low part a 0 includes:

calculating u (⋅)A by subtracting a 1 from t (⋅)A and adding q mod ζ, where q is a prime modulus; and

multiplying u (⋅)A by α and then subtracting α/2.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE CORRECT THE APLLICATION NUMBER FROM 17/712,981 TO 17/832,521 AND TO AMEND THE TITLE OF THE INVENTION PREVIOUSLY RECORDED ON REEL 060102 FRAME 0988. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 29, 2023
From: AZOUAOUI, MELISSA; SCHNEIDER, TOBIAS; SCHOENAUER, MARKUS
To: NXP B.V.
Reel/Frame 063267/0240 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 3, 2022
From: AZOUAOUI, MELISSA; SCHNEIDER, TOBIAS; SCHOENAUER, MARKUS
To: NXP B.V.
Reel/Frame 060102/0988 →
Continuity (1)
Related Publication 20230396436A1 · Dec 7, 2023