IP Library Granted Patent US 12,499,277
Granted Patent B2
US 12,499,277 · App. 18/298,100 · Granted Dec 16, 2025

Flexible hardware accelerators for masking conversions with a power of two modulus

Inventors: Olivier Bronchain (Brussels, BE); Tobias Schneider (Styria, AT)
Assignee: NXP B.V.
G06F21/72G06F7/504H04L9/0852
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,499,277
App. No.
18/298,100
Granted
Dec 16, 2025
Kind
B2
Abstract

A hardware converter configured to convert d arithmetic shares of x to d Boolean shares of x. The hardware converter has a plurality of addition layers in a tree structure. Each layer has a plurality of secure bit adders.

Claims (71)

1 . A hardware converter configured to convert d arithmetic shares of x to d Boolean shares of x using a modulus of 2 k , where x has k bits, the hardware converter comprising:

a first plurality of hardware addition layers, each layer comprising:

a second plurality of secure bit adders,

wherein each of the secure bit adders are configured to add a first input and a second input and produce an output having N shares, wherein the number of the N shares is based upon a hierarchical position of an addition layer of the respective secure bit adder in the first plurality of hardware addition layers, wherein N is an integer greater than one,

the first input of each secure bit adder is N shares, wherein the first N/2 of the shares of the first input are zero shares,

the second input of each secure bit adder is N shares, wherein the last N/2 of the shares of the second input are zero shares,

the inputs to each of the secure bit adders of the second plurality of secure bit adders of a first layer include a kth bit of the d arithmetic shares of x, and

the inputs to each of the secure bit adders of the second plurality of secure bit adders of remaining layers include the output of a previous layer.

2 . The hardware converter of claim 1 , wherein the first plurality of hardware addition layers produces outputs in a single processing cycle.

3 . The hardware converter of claim 1 , wherein the inputs of the remaining layers are directly connected to the output of the previous layer.

4 . The hardware converter of claim 1 , wherein the secure adders for a first to k−1th bits produce a carry bit that is input into the secure adder for the next bit.

5 . The hardware converter of claim 1 , wherein the secure bit adders further include a secure full adder including a first bit input, a second bit input, a carry bit input, an output bit output, and carry bit output, the secure full adder comprising:

a first XOR circuit configured to XOR the first bit input, the second bit input, and the carry bit input to produce the output bit output;

a second XOR circuit configured to XOR the second bit input with the carry bit input;

a secure AND circuit configured to AND an output of the first XOR circuit with an output of the second XOR circuit; and

a third XOR circuit configured to XOR the second input bit with an output of the secure AND circuit to produce the carry bit output.

6 . A hardware converter configured to convert d arithmetic shares of x to d Boolean shares of x using a modulus of 2 k , where x has k bits, the hardware converter comprising:

a first plurality of hardware addition layers, each layer comprising:

a second plurality of secure bit adders and a second plurality of multiplexers, wherein each of the secure bit adders are configured to add a first input and a second input and produce an output having N shares, wherein N is an integer greater than one,

the first input of each secure bit adder is N shares, wherein the first N/2 of the shares of the first input are zero shares,

the second input of each secure bit adder is N shares, wherein the last N/2 of the shares of the second input are zero shares,

the inputs to each of the secure bit adders of the second plurality of secure bit adders of a first layer include a kth bit of the d arithmetic shares of x,

the inputs to each of the secure bit adders of the second plurality of secure bit adders of remaining layers include the output of a previous layer,

each of the secure adders includes a carry bit input and a carry bit output,

the multiplexers receive the carry bit output from a respective associated secure bit adder and a fixed bit value,

a respective output of each of the multiplexers is connected to the carry bit input of the respective associated secure bit adder, and

a first multiplexer of the second plurality of multiplexers outputs the fixed bit value for the first bit of the d shares of x and the remaining multiplexers of the second plurality of multiplexers output the carry output from a prior bit for a second to kth bits.

7 . The hardware converter of claim 6 , wherein the secure bit adders further include a secure full adder including a first bit input, a second bit input, the carry bit input, an output bit output, and the carry bit output, the secure full adder comprising:

a first XOR circuit configured to XOR the first bit input, the second bit input, and the carry bit input to produce the output bit output;

a second XOR circuit configured to XOR the second bit input with the carry bit input;

a secure AND circuit configured to AND an output of the first XOR circuit with an output of the second XOR circuit; and

a third XOR circuit configured XOR the second input bit with an output of the secure AND circuit to produce the carry bit output.

8 . A hardware converter configured to convert d Boolean shares of x to d arithmetic shares of x using a modulus of 2 k , where x has k bits, comprising:

a random number generator configured to generate d−1 random arithmetic shares of x;

a secure hardware arithmetic shares to Boolean shares converter (SecA2B) configured to receive the generated d−1 random arithmetic shares and a dth share that is zero and to produce SecA2B Boolean output shares using a modulus of 2 k ,

a secure hardware subtractor configured to receive the SecA2B Boolean output shares from the SecA2B and to securely subtract the SecA2B Boolean output shares of the SecA2B from the d Boolean shares of x producing subtracted output shares;

a refresh circuit configured to receive the subtracted output shares from the secure hardware subtractor, and to refresh the subtracted output shares from the secure hardware subtractor producing refreshed output shares; and

an unmask circuit configured to receive the refreshed output shares from the refresh circuit and to combine the refreshed output shares of the refresh circuit to produce the dth arithmetic share of x.

9 . The hardware converter of claim 8 , wherein the SecA2B comprises:

a first plurality of hardware addition layers, each layer comprising:

a second plurality of secure bit adders,

wherein each of the secure bit adders are configured to add a first input and a second and produce an output having N shares, wherein N is an integer greater than one,

the first input of each secure bit adder is N shares, wherein the first N/2 of the shares of the first input are zero shares,

the second input of each secure bit adder is N shares, wherein the last N/2 of the shares of the second input are zero shares,

the inputs to each of the secure bit adders of the second plurality of secure bit adders of a first layer include a kth bit of the d arithmetic shares of x, and

the inputs to each of the secure bit adders of the second plurality of secure bit adders of remaining layers include the output of a previous layer.

10 . The hardware converter of claim 9 , wherein the first plurality of hardware addition layers produces outputs in a single processing cycle.

11 . The hardware converter of claim 9 , wherein the inputs of the remaining layers are directly connected to the output of the previous layer.

12 . The hardware converter of claim 9 , wherein the secure adders for a first to k−1th bits produce a carry bit that is input into the secure adder for the next bit.

13 . The hardware converter of claim 9 , wherein the secure adders for kth bits do not produce a carry bit.

14 . The hardware converter of claim 9 , the secure bit adders further include a secure full adder including a first bit input, a second bit input, a carry bit input, an output bit output, and carry bit output, the secure full adder comprising:

a first XOR circuit configured to XOR the first bit input, the second bit input, and the carry bit input to produce the output bit output;

a second XOR circuit configured to XOR the second bit input with the carry bit input;

a secure AND circuit configured to AND an output of the first XOR circuit with an output of the second XOR circuit; and

a third XOR circuit configured to XOR the second input bit with an output of the secure AND circuit to produce the carry bit output.

15 . The hardware converter of claim 8 , wherein the SecA2B comprises:

a first plurality of hardware addition layers, each layer comprising:

a second plurality of secure bit adders and a second plurality of multiplexers, wherein each of the secure bit adders are configured to add a first input and a second input and produce an output having N shares, wherein N is an integer greater than one,

the first input of each secure bit adder is N shares, wherein the first N/2 of the shares of the first input are zero shares,

the second input of each secure bit adder is N shares, wherein the last N/2 of the shares of the second input are zero shares,

the inputs to each of the secure bit adders of the second plurality of secure bit adders of a first layer include a kth bit of the d arithmetic shares of x,

the inputs to each of the secure bit adders of the second plurality of secure bit adders of remaining layers include the output of a previous layer,

each of the secure adders includes a carry bit input and a carry bit output,

the multiplexers receive the carry bit output from a respective associated secure bit adder and a fixed bit value,

a respective output of each of the multiplexers is connected to the carry bit input of the respective associated secure bit adder, and

a first multiplexer of the second plurality of multiplexers outputs the fixed bit value for the first bit of the d shares of x and the remaining multiplexers of the second plurality of multiplexers output the carry output from a prior bit for a second to kth bits.

16 . The hardware converter of claim 15 , wherein the secure bit adders further include a secure full adder including a first bit input, a second bit input, the carry bit input, an output bit output, and the carry bit output, the secure full adder comprising:

a first XOR circuit configured to XOR the first bit input, the second bit input, and the carry bit input to produce the output bit output;

a second XOR circuit configured to XOR the second bit input with the carry bit input;

a secure AND circuit configured to AND an output of the first XOR circuit with an output of the second XOR circuit; and

a third XOR circuit configured to XOR the second input bit with an output of the secure AND circuit to produce the carry bit output.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 10, 2023
From: BRONCHAIN, OLIVIER; SCHNEIDER, TOBIAS
To: NXP B.V.
Reel/Frame 063277/0027 →
Continuity (1)
Related Publication 20240338492A1 · Oct 10, 2024
References Cited (38)
US 8050402B2 · Golic · 2011 [cited by applicant]
US 10871947B2 · Hutter · 2020 [cited by applicant]
US 11385893B2 · Vigilant · 2022 [cited by applicant]
US 11386239B2 · Pulkus · 2022 [cited by applicant]
US 20090112896A1 · Golic · 2009 [cited by examiner]
US 20100235417A1 · Baek · 2010 [cited by examiner]
US 20140181170A1 · Ban · 2014 [cited by examiner]
US 20220254428A1 · Adham · 2022 [cited by examiner]
US 20230115373A1 · Badaroglu · 2023 [cited by examiner]
US 20230353361A1 · Schoenauer et al. · 2023 [cited by applicant]
US 20230367549A1 · Schmit · 2023 [cited by examiner]
US 20230396436A1 · Azouaoui et al. · 2023 [cited by applicant]
US 20240015012A1 · Bronchain et al. · 2024 [cited by applicant]
US 20240272873A1 · Hoffmann · 2024 [cited by examiner]
CN 104852795A · 2015 [cited by applicant]
CN 107508663A · 2017 [cited by applicant]
CN 108604987A · 2018 [cited by applicant]
EP 2634953A1 · 2013 [cited by applicant]
EP 3503460A1 · 2019 [cited by applicant]
KR 20200067414A · 2020 [cited by applicant]
Coron, JS., Großschädl, J., Tibouchi, M., Vadnala, P.K. Conversion from Arithmetic to Boolean Masking with Logarithmic Complexity. 2015. In: Leander, G. (eds) Fast Software Encryption. FSE 2015. Lecture Notes in Compute… [cited by examiner]
Biryukov, A., Dinu, D., Le Corre, Y., Udovenko, A. Optimal First-Order Boolean Masking for Embedded IoT Devices. 2018. In: Eisenbarth, T., Teglia, Y. (eds) Smart Card Research and Advanced Applications. Cardis 2017. Lec… [cited by examiner]
Gao, S., Großschädl, J., Marshall, B., Page, D., Pham, T., & Regazzoni, F. An Instruction Set Extension to Support Software-Based Masking. 2021. IACR Transactions on Cryptographic Hardware and Embedded Systems, 2021(4),… [cited by examiner]
U.S. Appl. No. 17/935,550, filed Sep. 26, 2022; Inventor: Melissa Azouaoui et al.; Title: “Protecting Polynomial Rejection Through Masked Compressed Comparison”. [cited by applicant]
Roberto Avanzi, et al., “Crystals-kyber algorithm specifications and supporting documentation,” NIST PQC Round 3 (2019), 4. [cited by applicant]
Florian Bache and Tim Giineysu, “Boolean Masking for Arithmetic Additions at Arbitrary Order in Hardware,” Applied Sciences 12 (2022), No. 5. [cited by applicant]
Gilles Barthe, et al., “Masking the GLP Lattice-Based Signature Scheme at Any Order,” Eurocrypt (2), Lecture Notes in Computer Science, vol. 10821, Springer, 2018, pp. 354-384. [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]
Gaetan Cassiers, et al., “Hardware Private Circuits: From Trivial Composition to Full Verification,” IEEE Trans. Computers 70 (2021), No. 10, 1677-1690. [cited by applicant]
Jean-Sebastien Coron, et al., “Secure Conversion Between Boolean and Arithmetic Masking of Any Order,” CHES, Lecture Notes in Computer Science, vol. 8731, Springer, 2014, pp. 188-205. [cited by applicant]
Leo Ducas, et al., “Crystals—Dilithium: Digital signatures from Module Lattices, ” IACR Cryptol. ePrint Arch. (2017), 633. [cited by applicant]
Tim Fritzmann, et al., “Masked Accelerators and Instruction Set Extensions for Post-quantum Cryptography,” IACR Trans. Cryptogr. Hardw. Embed. Syst. 2022 (2022), No. 1, 414-460. [cited by applicant]
Louis Goubin, “A sound method for switching between boolean and arithmetic masking,” CHES, Lecture Notes in Computer Science, vol. 2162, Springer, 2001, pp. 3-15. [cited by applicant]
Dahmun Goudarzi, et al., “Probing security through input-output separation and revisited quasilinear masking,” IACR Trans. Cryptogr. Hardw. Embed. Syst. 2021 (2021), No. 3, 599-640. [cited by applicant]
David Knichel and Amir Moradi, “Low-latency hardware private circuits,” IACR Cryptol. ePrint Arch. (2022), 507. [cited by applicant]
Vincent Migliore, “Masking dilithium—efficient implementation and side-channel evaluation,” ACNS, Lecture Notes in Computer Science, vol. 11464, Springer, 2019, pp. 344-362. [cited by applicant]
Tobias Schneider, et al., “Arithmetic addition over boolean masking—towards first- and second-order resistance in hardware,” ACNS, Lecture Notes in Computer Science, vol. 9092, Springer, 2015, pp. 559-578. [cited by applicant]
Tobias Schneider, et al., “Efficiently masking binomial sampling at arbitrary orders for lattice-based crypto,” Public Key Cryptography (2), Lecture Notes in Computer Science, vol. 11443, Springer, 2019, pp. 534-564. [cited by applicant]