EP4588208A1 - Method for performing polynomial multiplication operations - Google Patents
Method for performing polynomial multiplication operationsInfo
- Publication number
- EP4588208A1 EP4588208A1 EP23768310.7A EP23768310A EP4588208A1 EP 4588208 A1 EP4588208 A1 EP 4588208A1 EP 23768310 A EP23768310 A EP 23768310A EP 4588208 A1 EP4588208 A1 EP 4588208A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- polynomial
- integer
- coefficients
- input
- coefficient
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3093—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
Definitions
- the present invention relates to the field of cryptographic methods and devices, and more particularly to an efficient method for performing polynomial multiplication operations.
- Cryptographic algorithms are commonly used for ensuring the privacy of communications by encryption, for authentication or for generating a verifiable signature.
- the increasing computational power of quantum computers is a growing threat to the security of classical schemes such as RSA or ECDSA, which will eventually be completely defenseless against attacks performed using quantum computers. Therefore, work is being done to develop new efficient cryptographic algorithms that would be resistant against such attacks.
- a class of cryptographic algorithms able to resist quantum computers is lattice- based cryptographic algorithms.
- Such cryptographic algorithms are well positioned to be the next standard for post quantum cryptography.
- a drawback of such algorithms is that they make an extensive use of polynomial multiplications. Since existing devices don’t come with any coprocessor dedicated to such multiplications, such operation have to be computed using the CPU and their cost strongly grows as the number and size of polynomials coefficients increases.
- this invention therefore relates to a method for performing a cryptographic algorithm, performed by a cryptographic device comprising a cryptographic co-processor comprising an integer multiplier, said cryptographic algorithm comprising a polynomial multiplication between a first input polynomial A[X] and a second input polynomial B[X], wherein the first input polynomial A[X] comprises Ncm coefficients and the second input polynomial B[X] comprises Ncn coefficients and said coefficients of the first and second input polynomials are of size N b bits, with N cm , N cn and N b non-zero integers, said method comprising : a) computing a polynomial result C[X] of a polynomial multiplication between said first input polynomial A[X] and said second input polynomial B[X] by : ⁇ for the first input polynomial A[X], generating a
- Such a method enables to compute polynomial multiplications between large polynomials at a low cost by narrowing it to one or more integer multiplications without additional complexity due to the carry of the integer multiplications.
- coefficients of said input polynomials may be masked using additive or multiplicative masking, and said masked coefficients may be used for generating said concatenated integer.
- said concatenated integer and said coefficients of the second input polynomial may be masked using multiplicative blinding, and said masked concatenated integers and coefficients may be used for computing said intermediate values.
- Such masking techniques enable to protect the polynomial multiplication according to the invention against side-channel attacks.
- the cryptographic algorithm may be among: a signature generation, a signature verification, encapsulation, decapsulation, public key encryption or decryption, password-based key exchange algorithm.
- this invention therefore relates also to a computer program product directly loadable into the memory of at least one computer, comprising software code instructions for performing the steps of the method according to the first aspect when said product is run on the computer.
- this invention therefore relates also to a non-transitory computer readable medium storing executable computer code that when executed by a cryptographic device comprising a processing system having at least one hardware processor performs the method according to the first aspect.
- this invention therefore relates also to a cryptographic device comprising: ⁇ a processing system having at least one hardware processor and a cryptographic co-processor comprising an integer multiplier configured to perform the method according to the first aspect, ⁇ at least one memory for storing the input polynomial coefficients and the results of the calculations performed during the different computing steps.
- ⁇ Figure 1 is a schematic illustration of a system according to an embodiment of the present invention
- ⁇ Figure 2 is a schematic illustration of a cryptographic device according to an embodiment of the present invention
- ⁇ Figure 3 illustrates schematically a polynomial multiplication performed according to prior art
- ⁇ Figure 4 illustrates schematically a polynomial multiplication performed according to an embodiment of the present invention
- ⁇ Figure 5 illustrates schematically a method according to an embodiment of the present invention
- ⁇ Figure 6 illustrates schematically the operations performed by the cryptographic device according to an embodiment of the present invention DETAILED DESCRIPTION OF EMBODIMENTS OF THE INVENTION
- the invention aims at providing a method performing efficiently a polynomial multiplication operation of a cryptographic algorithm.
- Such a cryptographic algorithm may for example be used for signature generation, encapsulation, decapsulation, public key encryption or decryption, optionally homomorphic, password-based key exchange algorithm.
- This cryptographic algorithm may be a lattice-based cryptographic scheme such as Saber, Kyber or Dilithium.
- this method, and possibly the other steps of the cryptographic algorithm is performed by a cryptographic device 101.
- a cryptographic device 101 may be connected to a personal computer or server 102 operated by a user and sending commands to the cryptographic device for cryptographic operations such as data encryption or decryption.
- the cryptographic device 101 may be embedded in the computer 102.
- the cryptographic device 101 includes a processing system having at least one hardware processor and a cryptographic co-processor for performing cryptographic operations, and at least one memory configured for storing the data needed for such operations, such as the coefficients of the polynomials used as input to the polynomial operations, intermediate results, mask values...
- a processing system may be comprised in a tamper resistant device 103 secured against any unauthorized access, integrated in the cryptographic device.
- the cryptographic device may be a smartcard reader housing a smartcard device, or an electronic device, such as a smartphone or an IoT device, possibly including an integrated or embedded secure element or secured microcontroller.
- the cryptographic device may also be a dedicated hardware security module.
- the cryptographic device 101 may include a processing system 201 having at least one hardware processor 201a and a cryptographic co- processor 201b comprising an integer multiplier, such as a RSA or ECC coprocessor, connected via a bus 202 to a computer readable memory circuit including a random access memory (RAM) 203, a read-only memory (ROM) 204, and/or a non-volatile memory (NVM) 205.
- the cryptographic device 101 may also include a random number generator (RNG) 206, included in the hardware processor or connected to it via the bus.
- the cryptographic device 101 may further include an interface 207 used to connect the cryptographic device 101 to the computer 102.
- Such an interface may be either a wired interface such as a USB or Thunderbolt interface, or a wireless interface, such as a Bluetooth interface.
- the interface 207 may also be a communication interface used to connect the cryptographic device 101 to a wireless network, e.g., wide-area networks, WiFi networks, or mobile telephony networks, or to a wired interface such as an Ethernet one, through which communication may be performed with the computer 102.
- a first main idea of the invention in order to make polynomial multiplication much faster is to transform it into a multiplication between two integers by concatenating all the coefficients of each polynomial into a long integer; and to use the co-processor of the processing means to perform this operation at low cost.
- a third idea of the invention is to apply such a zero-extension and concatenation to one of the two polynomials to be multiplied only; and to multiply it one-by-one with the coefficients of the second polynomial.
- the method according to the invention may comprise two phases : a multiplication phase P1 during which the cryptographic device computes a polynomial result C[X] of the polynomial multiplication between said first input polynomial A[X] and said second input polynomial B[X]; and a cryptographic computation phase P2 during which the cryptographic device performs steps of the cryptographic algorithm using the polynomial result determined at the end of the multiplication phase.
- some steps of the cryptographic algorithm, which are independent of the polynomial result may be performed before the multiplication phase P1 or during the execution of the multiplication phase in parallel to it.
- the concatenated integer ⁇ ⁇ for A[X] when the extension size Ne is equal to 12 will be a9 a8 a7 a6 a5 001111111111001100000001001010000001001001000001001000100001 a4 a3 a2 a1 a0 001000010001001000001001001000000101001000000011001000000001 Thanks to the zeros inserted in the concatenated integer and spacing the original coefficients of the first input polynomial from each other, the multiplication carry does not generate an
- the multiplication phase P1 then comprises a coefficient determination step S12 during which the cryptographic device computes one by one, using said integer multiplier of the co-processor, each coefficient of the polynomial result C[X] from the concatenated integer ⁇ ⁇ generated at the integer generation step S11 and the second input polynomial B[X].
- the cryptographic device multiplies the concatenated integer ⁇ ⁇ by one coefficient of the second input polynomial B[X] and adds the carry from the multiplication of the concatenated integer ⁇ ⁇ with the previous coefficient of the second input polynomial B[X].
- each such multiplication of the concatenated integer ⁇ ⁇ by one coefficient of the second input polynomial B[X] and addition of a carry gives one coefficient of the polynomial result C[X]. More precisely for i an integer from 0 to Ncn-1, with bi the i-order coefficient of the second input polynomial B[X], the cryptographic device performs the following steps, the execution of which, for one value of i, is called hereafter a “round”: ⁇ the cryptographic device computes an intermediate value Ri using its integer multiplier by multiplying the concatenated integer ⁇ ⁇ with the coefficient bi of the second input polynomial B[X] such that : ⁇ ⁇ + ⁇ ⁇ ⁇ ⁇ ⁇ where R -1 is equal to the value 0.
- N e least significant bits indeed correspond to the result of multiplying the lowest order coefficient of the first input polynomial with the coefficient bi, summed up with the carry of contribution to the coefficient ci coming from the multiplication of the first input polynomial with all the coefficients b0 to bi-1 processed in the previous rounds.
- a modulo operation may be applied to the Ne least significant bits of the intermediate value Ri before storing it as the i th coefficient ci of the polynomial result C[X], in order to reduce it to the modulus of the coefficients of the polynomials A[X] and B[X].
- the cryptographic device applies a N e -bits right shift operation to the intermediate value ⁇ ⁇ .
- the cryptographic devices stores the 2 last digits ”08” of the intermediate value R0 as the coefficient c0 of the polynomial result.
- the cryptographic device applies a 2-digit right shift to the intermediate value R0, which is now equal to 0012.
- the cryptographic devices stores the 2 last digits ”22” of the intermediate value R1 as the coefficient c1 of the polynomial result.
- the cryptographic device applies a 2-digit right shift to the intermediate value R1, which is now equal to 0015 • Since all coefficients of the second input polynomial have been processed, the cryptographic device ends the coefficient determination step S12 by storing the 2 last digits ”15” of the intermediate value R1 as the coefficient c2 of the polynomial result.
- the length of the values generated by the operations is limited to 4 digits, while the direct multiplication of the concatenated integer ⁇ ⁇ with a corresponding concatenated integer generated from the second input polynomial would have generated a 6 digits long result equal to 152208, and would have required the cryptographic device to handle such a bigger length.
- the steps described above produce an intermediate value Ri whose size never exceeds Ne * Ncn +Nb. Therefore this method enables to compute the polynomial result provided the maximal length supported by the coprocessor performing the calculation is above that maximal size of the intermediate value Ri.
- Nmax the maximum number of coefficients N cn of the first input polynomial such that the maximal size of the intermediate value Ri remains lower than the maximal length supported by the coprocessor of the cryptographic device.
- the first input polynomial may be split into several smaller polynomials; and the method described above may be used to compute the products of each of said smaller polynomials with the second input polynomial B[X].
- the cryptographic device may: • decompose the first input polynomial A[X] into a series of polynomials Ak[X] s uch that • compute for each polynomial Ak[X] a partial polynomial result Ck[X], which results from the polynomial multiplication between the polynomial Ak[X] and the second input polynomial B[X] according to the steps described above, • compute, from the partial polynomial results Ck[X], the polynomial result C[X] of the polynomial multiplication between the first input polynomial A[X] and the second input polynomial B[X].
- the cryptographic device may generate small integers each corresponding to the concatenation and extension of several coefficients of the second input polynomial, and the concatenated integer ⁇ ⁇ may be multiplied one by one by each of these small integers, one at each round of the coefficient determination step S12.
- a unique random mask may be used for all the coefficients of A[X] or a different coefficient may be used for each coefficient.
- the masked coefficients are then used by the cryptographic device for generating the concatenated integer.
- the coefficients of at least one input polynomial are masked using an additive masking.
- the masked coefficients are then used by the cryptographic device for generating the concatenated integer.
- the method according to the invention enables to compute polynomial multiplications between large polynomials at a low cost by narrowing it to one or more series of integer multiplications. It can even be easily protected against side channel analysis by applying additive or multiplicative blinding to the inputs of the integer multiplications.
- this invention therefore relates also to a computer program product directly loadable into the memory of at least one computer, comprising software code instructions for performing the steps of the method described here above when said product is run on the computer.
- this invention therefore relates also to a non- transitory computer readable medium storing executable computer code that when executed by a cryptographic device comprising a processing system having at least one hardware processor performs the method described here above.
- this invention therefore relates also to a cryptographic device 101 illustrated in figure 2 and comprising : ⁇ a processing system having at least one hardware processor 201a and a cryptographic co-processor 201b comprising an integer multiplier, said processing system being configured to perform the steps of the methods according to the first aspect, ⁇ at least one memory 203, 204, 205 for storing the input polynomial coefficients and the results of the calculations performed during the different computing steps.
Landscapes
- Engineering & Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Physics & Mathematics (AREA)
- Algebra (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Complex Calculations (AREA)
Abstract
The present invention relates to a method for performing a cryptographic algorithm, performed by a cryptographic device comprising a cryptographic co-processor comprising an integer multiplier, said cryptographic algorithm comprising a polynomial multiplication between a first input polynomial A[X] and a second input polynomial B[X], wherein the first input polynomial A[X] comprises Ncm coefficients and the second input polynomial B[X] comprises Ncn coefficients and said coefficients of the first and second input polynomials are of size Nb bits, with Ncm, Ncn and Nb non-zero integers, said method comprising : a) computing a polynomial result C[X] of a polynomial multiplication between said first input polynomial A[X] and said second input polynomial B[X] by : − for the first input polynomial A[X], generating a concatenated integer Ax as a concatenation of the coefficients of said first input polynomial, each coefficient being extended to a size Ne with Ne ≥ [log2 N c m] + 2 ∗ Nb by inserting zeros as Most Significant Bits of said concatenated coefficients, − obtaining each coefficient ci of the polynomial result by : - for i an integer from 0 to Ncn-1, wherein bi is the i-order coefficient of the second input polynomial B[X]: computing an intermediate value Ri using said integer multiplier by multiplying said generated concatenated integer with said coefficient bi of the second input polynomial B[X] such that : Ri = Ri-1 + Ax ∗ bi where R-1 is equal to the value 0, storing the Ne least significant bits of the intermediate value Ri as the ith coefficient ci of the polynomial result C[X], applying a Ne-bits right shift operation to the intermediate value Ri, - when i = Ncn-1, for j an integer from Ncn to Ncn+Ncm-2 : storing the Ne least significant bits of the intermediate value Ri as the jth coefficient cj of the polynomial result C[X], applying a Ne-bits right shift operation to the intermediate value Ri, b) performing said cryptographic algorithm using said determined polynomial result.
Description
METHOD FOR PERFORMING POLYNOMIAL MULTIPLICATION OPERATIONS FIELD OF THE INVENTION The present invention relates to the field of cryptographic methods and devices, and more particularly to an efficient method for performing polynomial multiplication operations. BACKGROUND OF THE INVENTION Cryptographic algorithms are commonly used for ensuring the privacy of communications by encryption, for authentication or for generating a verifiable signature. The increasing computational power of quantum computers is a growing threat to the security of classical schemes such as RSA or ECDSA, which will eventually be completely defenseless against attacks performed using quantum computers. Therefore, work is being done to develop new efficient cryptographic algorithms that would be resistant against such attacks. A class of cryptographic algorithms able to resist quantum computers is lattice- based cryptographic algorithms. Such cryptographic algorithms are well positioned to be the next standard for post quantum cryptography. A drawback of such algorithms is that they make an extensive use of polynomial multiplications. Since existing devices don’t come with any coprocessor dedicated to such multiplications, such operation have to be computed using the CPU and their cost strongly grows as the number and size of polynomials coefficients increases. Methods have been developed in order to boil down a polynomial multiplication between large polynomials to series of polynomial multiplications between smaller polynomials, such as Karatsuba (https://en.wikipedia.org/wiki/Karatsuba_algorithm), Toom-Cook (https://en.wikipedia.org/wiki/Toom%E2%80%93Cook_multiplication) or methods based on Number Theoric Transform (NTT) (https://en.wikipedia.org/wiki/Discrete_Fourier_transform_(general)).
Nevertheless, the cost of performing a polynomial operation between two large polynomials, such as 256-coefficients polynomials, remains prohibitive for light devices, with low CPU power and memory size, such as smartcards and IoT devices, even when using such advanced methods. Therefore, there is a need for a method enabling to compute polynomial multiplications between large polynomials at a lower cost than existing methods. SUMMARY OF THE INVENTION For this purpose and according to a first aspect, this invention therefore relates to a method for performing a cryptographic algorithm, performed by a cryptographic device comprising a cryptographic co-processor comprising an integer multiplier, said cryptographic algorithm comprising a polynomial multiplication between a first input polynomial A[X] and a second input polynomial B[X], wherein the first input polynomial A[X] comprises Ncm coefficients and the second input polynomial B[X] comprises Ncn coefficients and said coefficients of the first and second input polynomials are of size Nb bits, with Ncm, Ncn and Nb non-zero integers, said method comprising : a) computing a polynomial result C[X] of a polynomial multiplication between said first input polynomial A[X] and said second input polynomial B[X] by : − for the first input polynomial A[X], generating a concatenated integer ^^^^ ^^^^ as a concatenation of the coefficients of said first input polynomial, each coefficient being extended to a size Ne with ^^^^ ^^^^ ≥ ⌈log2 ^^^^ ^^^^ ^^^^⌉ + 2 ∗ ^^^^ ^^^^ by inserting zeros as Most Significant Bits of said concatenated coefficients, − obtaining each coefficient ci of the polynomial result by : o for i an integer from 0 to Ncn-1, wherein bi is the i-order coefficient of the second input polynomial B[X]: ^ computing an intermediate value Ri using said integer multiplier by multiplying said generated concatenated integer with said coefficient bi of the second input polynomial B[X] such that : ^^^^ ^^^^ = + ^^^^ ^^^^ ∗ ^^^^ ^^^^ where R-1 is equal to the value 0, ^ storing the Ne least significant bits of the intermediate value Ri as the ith coefficient ci of the polynomial result C[X],
^ applying a Ne-bits right shift operation to the intermediate value ^^^^ ^^^^, o when i = Ncn-1, for j an integer from Ncn to Ncn+Ncm-2 : ^ storing the Ne least significant bits of the intermediate value Ri as the jth coefficient cj of the polynomial result C[X], ^ applying a Ne-bits right shift operation to the intermediate value Ri, b) performing said cryptographic algorithm using said determined polynomial result. Such a method enables to compute polynomial multiplications between large polynomials at a low cost by narrowing it to one or more integer multiplications without additional complexity due to the carry of the integer multiplications. Before the step of generation said concatenated integer, coefficients of said input polynomials may be masked using additive or multiplicative masking, and said masked coefficients may be used for generating said concatenated integer. Before the step of computing an intermediate value Ri using said integer multiplier by multiplying said generated concatenated integer with a first coefficient b0 of the second input polynomial B[X], said concatenated integer and said coefficients of the second input polynomial may be masked using multiplicative blinding, and said masked concatenated integers and coefficients may be used for computing said intermediate values. Such masking techniques enable to protect the polynomial multiplication according to the invention against side-channel attacks. The cryptographic algorithm may be among: a signature generation, a signature verification, encapsulation, decapsulation, public key encryption or decryption, password-based key exchange algorithm. According to a second aspect, this invention therefore relates also to a computer program product directly loadable into the memory of at least one computer,
comprising software code instructions for performing the steps of the method according to the first aspect when said product is run on the computer. According to a third aspect, this invention therefore relates also to a non-transitory computer readable medium storing executable computer code that when executed by a cryptographic device comprising a processing system having at least one hardware processor performs the method according to the first aspect. According to a fourth aspect, this invention therefore relates also to a cryptographic device comprising: − a processing system having at least one hardware processor and a cryptographic co-processor comprising an integer multiplier configured to perform the method according to the first aspect, − at least one memory for storing the input polynomial coefficients and the results of the calculations performed during the different computing steps. BRIEF DESCRIPTION OF THE DRAWINGS The following description and the annexed drawings set forth in detail certain illustrative aspects and are indicative of but a few of the various ways in which the principles of the embodiments may be employed. Other advantages and novel features will become apparent from the following detailed description when considered in conjunction with the drawings and the disclosed embodiments are intended to include all such aspects and their equivalents. ^ Figure 1 is a schematic illustration of a system according to an embodiment of the present invention; ^ Figure 2 is a schematic illustration of a cryptographic device according to an embodiment of the present invention; ^ Figure 3 illustrates schematically a polynomial multiplication performed according to prior art; ^ Figure 4 illustrates schematically a polynomial multiplication performed according to an embodiment of the present invention;
^ Figure 5 illustrates schematically a method according to an embodiment of the present invention; ^ Figure 6 illustrates schematically the operations performed by the cryptographic device according to an embodiment of the present invention DETAILED DESCRIPTION OF EMBODIMENTS OF THE INVENTION The invention aims at providing a method performing efficiently a polynomial multiplication operation of a cryptographic algorithm. Such a cryptographic algorithm may for example be used for signature generation, encapsulation, decapsulation, public key encryption or decryption, optionally homomorphic, password-based key exchange algorithm. This cryptographic algorithm may be a lattice-based cryptographic scheme such as Saber, Kyber or Dilithium. As depicted on Figure 1, this method, and possibly the other steps of the cryptographic algorithm, is performed by a cryptographic device 101. Such a cryptographic device 101 may be connected to a personal computer or server 102 operated by a user and sending commands to the cryptographic device for cryptographic operations such as data encryption or decryption. Alternatively, the cryptographic device 101 may be embedded in the computer 102. The cryptographic device 101 includes a processing system having at least one hardware processor and a cryptographic co-processor for performing cryptographic operations, and at least one memory configured for storing the data needed for such operations, such as the coefficients of the polynomials used as input to the polynomial operations, intermediate results, mask values... Such a processing system may be comprised in a tamper resistant device 103 secured against any unauthorized access, integrated in the cryptographic device. As an example, the cryptographic device may be a smartcard reader housing a smartcard device, or an electronic device, such as a smartphone or an IoT device, possibly including an integrated or embedded secure element or secured microcontroller. The cryptographic device may also be a dedicated hardware security module.
As depicted on Figure 2, the cryptographic device 101 may include a processing system 201 having at least one hardware processor 201a and a cryptographic co- processor 201b comprising an integer multiplier, such as a RSA or ECC coprocessor, connected via a bus 202 to a computer readable memory circuit including a random access memory (RAM) 203, a read-only memory (ROM) 204, and/or a non-volatile memory (NVM) 205. The cryptographic device 101 may also include a random number generator (RNG) 206, included in the hardware processor or connected to it via the bus. The cryptographic device 101 may further include an interface 207 used to connect the cryptographic device 101 to the computer 102. Such an interface may be either a wired interface such as a USB or Thunderbolt interface, or a wireless interface, such as a Bluetooth interface. The interface 207 may also be a communication interface used to connect the cryptographic device 101 to a wireless network, e.g., wide-area networks, WiFi networks, or mobile telephony networks, or to a wired interface such as an Ethernet one, through which communication may be performed with the computer 102. A first main idea of the invention in order to make polynomial multiplication much faster is to transform it into a multiplication between two integers by concatenating all the coefficients of each polynomial into a long integer; and to use the co-processor of the processing means to perform this operation at low cost. In order to be useful for computing the polynomial multiplication, it must be possible to retrieve the coefficients of the sought polynomial, resulting from the polynomial multiplication, from the result of the corresponding integer multiplication. This is not the case in general because of the multiplication carry. As an example, let us say we want to compute the polynomial multiplication between A[X] = a0+a1*X and B[X]=b0+b1*X with a0, a1, b0 and b1 N-bits integers and let us consider the notations Rij = ai*bj, “_H” the division by 2^N, “_L” the result of a modulo 2^N operation. As shown on Figure 3, computing the multiplication of a first integer equal to the concatenation of a1|a0 with a second integer equal to b1|b0, with “|” the concatenation operator, gives a result from which no coefficient of A*B can be retrieved easily because in each section of the result many different Rij terms are superimposed as a result of the carry application.
Therefore, a second main idea of the invention is to insert enough zeroes between the coefficients of the polynomials when concatenating them into long integers to avoid such a superimposition of terms when computing the multiplication between the two integers. An example is given on Figure 4. As in the case of Figure 3, we try to compute the coefficients of the polynomial equal to A[X]*B[X] by computing the multiplication of two integers formed by concatenating the coefficients of A[X] and B[X] but this time we compute the multiplication of a1|0…0|a0 with b1|0…0|b0. By doing so, we obtain a result from which the different Rij terms may be recovered easily. A drawback of such an approach is that in order to be able to compute the multiplication between the two integers each obtained by extending the coefficients of a polynomial using zeroes and concatenating them, the size of each integer, zeroes included, must be lower than half the maximal length supported by the coprocessor performing the calculation. This greatly restricts the applicability of such a method for computing a polynomial multiplication between polynomials of high order and/or with large coefficients, such as polynomial used in SABER, Dilithium or Kyber which have typically up to 25623-bit coefficients (before zero-extension). Therefore, a third idea of the invention is to apply such a zero-extension and concatenation to one of the two polynomials to be multiplied only; and to multiply it one-by-one with the coefficients of the second polynomial. By doing so, the number and size of the coefficients of the second polynomial is not limited, and the integer obtained by extension and concatenation of the first polynomial can be nearly the size of the maximal length supported by the coprocessor. For example, contrarily to the case of Figure 3, we try to compute the coefficients of the polynomial equal to A[X]*B[X] by computing first the multiplication of the integer formed by concatenating the coefficients of A[X] with one coefficient of B[X] (a1|0…0|a0 x b0); and then by computing the multiplication of the integer formed by concatenating the coefficients of A[X] with the other coefficient of B[X] (a1|0…0|a0 x b1). The following paragraphs describe, as depicted on Figure 5, the steps of a method according to the invention to perform a cryptographic algorithm comprising a
polynomial multiplication between a first input polynomial A[X] and a second input polynomial B[X]. The first input polynomial A[X] and the second input polynomial B[X] comprise respectively Ncm and Ncn coefficients of size Nb bits, with Ncm, Ncn and Nb non-zero integers. As an example, the numbers of coefficients Ncm and Ncn may be equal to a power of two such as 32, 64, 128 or 256, and the size of the coefficients Nb may be equal to 10 or 13. The method according to the invention may comprise two phases : a multiplication phase P1 during which the cryptographic device computes a polynomial result C[X] of the polynomial multiplication between said first input polynomial A[X] and said second input polynomial B[X]; and a cryptographic computation phase P2 during which the cryptographic device performs steps of the cryptographic algorithm using the polynomial result determined at the end of the multiplication phase. In addition, some steps of the cryptographic algorithm, which are independent of the polynomial result, may be performed before the multiplication phase P1 or during the execution of the multiplication phase in parallel to it. The multiplication phase P1 comprises an integer generation step S11 during which the cryptographic device generates, for the first input polynomial A[X], a concatenated integer ^^^^ ^^^^ as a concatenation of the coefficients of the first input polynomial, each coefficient being extended to an extension size Ne with ^^^^ ^^^^ ≥ ⌈log2 ^^^^ ^^^^ ^^^^⌉ + 2 ∗ ^^^^ ^^^^ by inserting zeros as Most Significant Bits MSB of said concatenated coefficients. Selecting such an extension size ensures that, in the result of the multiplication of ^^^^ ^^^^ with a coefficient of B[X], terms won’t be superimposed as a result of the carry application and that the coefficients of A[X]*B[X] can be easily recovered from the multiplication results of ^^^^ ^^^^ with all the coefficients of B[X]. During this step, the cryptographic device may either first extend the size of each coefficient to the extension size Ne by inserting zeros and then concatenate the extended coefficients into the concatenated integer, or first concatenate the original coefficients of the first input polynomial into an intermediary integer and then generate
the concatenated integer by inserting zeros between each group of bits of the intermediary integer corresponding to an original coefficient. In both cases, the coefficients of the first input polynomial shall be concatenated from the highest order coefficient to the lowest order coefficient, such that the most significant bits of the concatenated integer ^^^^ ^^^^ correspond to the highest order coefficient of the first input polynomial. As an example, if the first input polynomial A[X] is equal to ^^^^
^^^^ ^^^^ ∗ ^^^^ with a size of the coefficients Nb equal to 10 and a0 = 1000000001 a1 = 1000000011 a2 = 1000000101 a3 = 1000001001 a4 = 1000010001 a5 = 1000100001 a6 = 1001000001 a7 = 1010000001 a8 = 1100000001 a9 = 1111111111 then, the concatenated integer ^^^^ ^^^^ for A[X] when the extension size Ne is equal to 12 will be a9 a8 a7 a6 a5 001111111111001100000001001010000001001001000001001000100001 a4 a3 a2 a1 a0 001000010001001000001001001000000101001000000011001000000001 Thanks to the zeros inserted in the concatenated integer and spacing the original coefficients of the first input polynomial from each other, the multiplication carry does not generate an extra mixing of Rij terms in the multiplication result. The multiplication phase P1 then comprises a coefficient determination step S12 during which the cryptographic device computes one by one, using said integer multiplier of the co-processor, each coefficient of the polynomial result C[X] from the
concatenated integer ^^^^ ^^^^ generated at the integer generation step S11 and the second input polynomial B[X]. In order to do so, for each coefficient of the second input polynomial B[X], starting from the lowest order coefficient, the cryptographic device multiplies the concatenated integer ^^^^ ^^^^ by one coefficient of the second input polynomial B[X] and adds the carry from the multiplication of the concatenated integer ^^^^ ^^^^ with the previous coefficient of the second input polynomial B[X]. Each such multiplication of the concatenated integer ^^^^ ^^^^ by one coefficient of the second input polynomial B[X] and addition of a carry gives one coefficient of the polynomial result C[X]. More precisely for i an integer from 0 to Ncn-1, with bi the i-order coefficient of the second input polynomial B[X], the cryptographic device performs the following steps, the execution of which, for one value of i, is called hereafter a “round”: ^ the cryptographic device computes an intermediate value Ri using its integer multiplier by multiplying the concatenated integer ^^^^ ^^^^ with the coefficient bi of the second input polynomial B[X] such that : ^^^^ ^^^^ =
+ ^^^^ ^^^^ ∗ ^^^^ ^^^^ where R-1 is equal to the value 0. At the end of this step, the intermediate value Ri sums up the result of the multiplication of the concatenated integer ^^^^ ^^^^ with the coefficient bi and the previous value of the intermediate value, Ri-1. This previous value is the result of the last round of computation of these steps, with the previous coefficient bi-1 of the second input polynomial. Given the last step of the round described here below, Ri-1 corresponds to the accumulated carry of the previous rounds. ^ the cryptographic device stores the Ne least significant bits of the intermediate value Ri as the ith coefficient ci of the polynomial result C[X]. These Ne least significant bits indeed correspond to the result of multiplying the lowest order coefficient of the first input polynomial with the coefficient bi, summed up with the carry of contribution to the coefficient ci coming from the multiplication of the first input polynomial with all the coefficients b0 to bi-1 processed in the previous rounds. If necessary, a modulo operation may be applied to the Ne least significant bits of the intermediate value Ri before storing it as the ith coefficient ci of the polynomial result C[X], in order to reduce it to the modulus of the coefficients of the polynomials A[X] and B[X].
^ the cryptographic device applies a Ne-bits right shift operation to the intermediate value ^^^^ ^^^^. Such a shift enables to get the intermediate value rid of the coefficient ci and to keep in it only the contributions of the multiplications of the first input polynomial A[X] with all the already processed coefficients b0 to bi to the next coefficients ci+1, ci+2… of the polynomial result C[X]. When these steps have been performed for i = Ncn-1, the remaining intermediate value ^^^^ ^^^^ ^^^^ ^^^^−1still has to be taken into account as the higher order coefficients ^^^^ ^^^^ ^^^^ ^^^^to ^^^^ ^^^^ ^^^^ ^^^^+ ^^^^ ^^^^ ^^^^−2 of the polynomial result C[X]. Therefore, for j an integer from Ncn to Ncn+Ncm-2, the cryptographic device: ^ stores the Ne least significant bits of the intermediate value Ri as the coefficient cj; ^ applies a Ne-bits right shift operation to the intermediate value Ri. Finally, the cryptographic device performs steps of the cryptographic algorithm using the polynomial result C[X] determined at the end of the multiplication phase in a computation step S21 of the cryptographic computation phase P2. As an example, suppose A[X]=3*X+2 and B[X]=5*X+4. As shown on Figure 6, the following operations are performed by the cryptographic device according to the method described above : • During the integer generation step S11, the cryptographic devices concatenates the coefficients a0=2 and a1=3 of the first input polynomial. It also extends their size by inserting one zero in front of each. Therefore the concatenated integer ^^^^ ^^^^ is equal to 0302. • At the first round of the coefficient determination step S12, the cryptographic devices multiples the concatenated integer ^^^^ ^^^^ with the coefficient b0= 4 of the second input polynomial. The result is the intermediate value R0=1208. • The cryptographic devices stores the 2 last digits ”08” of the intermediate value R0 as the coefficient c0 of the polynomial result. • The cryptographic device applies a 2-digit right shift to the intermediate value R0, which is now equal to 0012. • At the second round of the coefficient determination step S12, the cryptographic devices multiples the concatenated integer ^^^^ ^^^^ with the coefficient b1= 5 of the
second input polynomial. The result, equal to 1510 is added to the intermediate value R0=0012 to form the updated intermediate value R1=1522. • The cryptographic devices stores the 2 last digits ”22” of the intermediate value R1 as the coefficient c1 of the polynomial result. • The cryptographic device applies a 2-digit right shift to the intermediate value R1, which is now equal to 0015 • Since all coefficients of the second input polynomial have been processed, the cryptographic device ends the coefficient determination step S12 by storing the 2 last digits ”15” of the intermediate value R1 as the coefficient c2 of the polynomial result. By multiplying the concatenated integer ^^^^ ^^^^ with the coefficients of the second input polynomial one by one, the length of the values generated by the operations is limited to 4 digits, while the direct multiplication of the concatenated integer ^^^^ ^^^^ with a corresponding concatenated integer generated from the second input polynomial would have generated a 6 digits long result equal to 152208, and would have required the cryptographic device to handle such a bigger length. The steps described above produce an intermediate value Ri whose size never exceeds Ne * Ncn +Nb. Therefore this method enables to compute the polynomial result provided the maximal length supported by the coprocessor performing the calculation is above that maximal size of the intermediate value Ri. This limitation is mainly driven by the size Nb and number Ncn of the coefficients of the first input polynomial A[X]. In the following paragraphs, we call Nmax the maximum number of coefficients Ncn of the first input polynomial such that the maximal size of the intermediate value Ri remains lower than the maximal length supported by the coprocessor of the cryptographic device. In order to overcome this limitation, the first input polynomial may be split into several smaller polynomials; and the method described above may be used to compute the products of each of said smaller polynomials with the second input polynomial B[X].
As an example, the cryptographic device may: • decompose the first input polynomial A[X] into a series of polynomials Ak[X] such that
• compute for each polynomial Ak[X] a partial polynomial result Ck[X], which results from the polynomial multiplication between the polynomial Ak[X] and the second input polynomial B[X] according to the steps described above, • compute, from the partial polynomial results Ck[X], the polynomial result C[X] of the polynomial multiplication between the first input polynomial A[X] and the second input polynomial B[X]. Doing so enables to compute the result of a polynomial multiplication between two input polynomials of any size, without using Karatsuba method. As an example,when Nmax = 64, Ncn=Ncm = 256
and
^^^^0 ∗ ^^^^ gives a partial polynomial result Ck[X] contributing to the coefficients of degrees 0 to 318 of the polynomial result C[X]; ^^^^1 ∗ ^^^^ gives a partial polynomial result Ck[X] contributing to the coefficients of degrees 64 to 382 of the polynomial result C[X]; ^^^^2 ∗ ^^^^ gives a partial polynomial result Ck[X] contributing to the coefficients of degrees 128 to 446 of the polynomial result C[X]; ^^^^3 ∗ ^^^^ a partial polynomial result Ck[X] contributing to the coefficients of degrees 192 to 510 of the polynomial result C[X]. Optionally, instead of multiplying the concatenated integer ^^^^ ^^^^ with the coefficients of the second input polynomial one by one, the cryptographic device may generate small integers each corresponding to the concatenation and extension of several coefficients of the second input polynomial, and the concatenated integer ^^^^ ^^^^ may be multiplied one by one by each of these small integers, one at each round of the coefficient determination step S12.
In some cryptographic algorithms such as Kyber or Dilithium, polynomial multiplication is performed in a polynomial ring, modulo another polynomial M[X] = XL+1 (known as cyclotomic polynomial), with L an integer. In this ring, M[X] = XL+1 = 0, i.e. XL = -1. Optionally, this could be taken directly in consideration with the invention when accumulating partial results in polynomial C. Indeed, for all monomials Ai*B*XK for which K strictly greater than L accumulated in Ck[X], Ai*B*XK = (–1)floor(K/L)*Ai*B*XK mod L. If we consider the previous example with L = 256.
By rewriting
We have
Then
Then ^^^^ ∗ ^^^^ = ^^^^0 ∗ ^^^^ + ^^^^64 ∗ ^^^^1 ∗ ^^^^012 − ^^^^1 ∗ ^^^^3 + ^^^^128 ∗ ^^^^2 ∗ ^^^^01 − ^^^^2 ∗ ^^^^23 + ^^^^192 ∗ ^^^^3 ∗ ^^^^0 − ^^^^3 ∗ ^^^^123 with
^^^^123 = ^^^^1 + ^^^^2 ∗ ^^^^64 + ^^^^3 ∗ ^^^^128 In order to protect a polynomial multiplication performed according to the method presented above against side channel attacks, the coefficients of the input polynomials A[X] and B[X] may be blinded. In a first embodiment, at the integer generation step S11, before generating the concatenated integer, the coefficients of the first and second input polynomials are masked using a multiplicative masking. For example, each coefficient of A[X] ai with i in {0,…, Nc -1} may be multiplied by a random mask rnd modulo q with q=2^Nb, and each coefficient of B[X] bi with i in {0,…, Nc -1} may be masked by the inverse of the mask used for masking the coefficient of A[X] with the same index. By doing so, the product of the mask coefficients with the same index is equal to the product of the original coefficients of this index.
A unique random mask may be used for all the coefficients of A[X] or a different coefficient may be used for each coefficient. The masked coefficients are then used by the cryptographic device for generating the concatenated integer. In a second embodiment, at the integer generation step S11, before generating concatenated integer, the coefficients of at least one input polynomial are masked using an additive masking. For example, a random mask rnd1 may be multiplied by q=2^Nb and added to each coefficient of A[X] ai with i in {0,…, Nc -1} , and a random mask rnd2 may be multiplied by q=2^Nb and added to each coefficient of B[X] bi with i in {0,…, Nc -1}. By doing so, the product of the mask coefficients with the same index is equal to the product of the original coefficients of this index plus a random value depending on rnd1 and rnd2 that is a multiple of q and may be removed by a simple modulo q operation.
^^^^ ′ ^^^^ = ^^^^ ^^^^ + ^^^^ ^^^^ ^^^^1 ∗ ^^^^, ^^^^ ^ ′ ^^^ = ^^^^ ^^^^ + ^^^^ ^^^^ ^^^^2 ∗ ^^^^ ^^^^ ′ ^^^^ ∗ ^^^^ ^ ′ ^^^ = ^^^^ ^^^^ ∗ ^^^^ ^^^^ + ^^^^ ^^^^ ^^^^1 ∗ ^^^^ ∗ ^^^^ ^^^^ + ^^^^ ^^^^ ^^^^2 ∗ ^^^^ ∗ ^^^^ ^^^^ + ^^^^ ^^^^ ^^^^1 ∗ ^^^^ ^^^^ ^^^^2 ∗ ^^^^² The masked coefficients are then used by the cryptographic device for generating the concatenated integer. In a third embodiment, at the integer multiplication step S12, before computing using the integer multiplier the multiplication of the generated concatenated integer with the first coefficient of the second input polynomial, the concatenated integer and the coefficients of the second input polynomial are masked using multiplicative blinding. For example, if the concatenated integer corresponding to A[X] is noted “a” and the coefficient of the second input polynomial is noted “b, “a” may be masked using a random number r1 and “b” using another random number r2 , a modulo q with q=2^Nb being applied to each group of bits corresponding to an original coefficient of the first input polynomial. The masked concatenated integer and the masked coefficients of the second input polynomial are then used for computing the multiplication of concatenated integer and the coefficient and the result of the product a*b may be retrieved by multiplying the masked multiplication result by the inverse of the random masks r1 and r2.
Finally, the method according to the invention enables to compute polynomial multiplications between large polynomials at a low cost by narrowing it to one or more series of integer multiplications. It can even be easily protected against side channel analysis by applying additive or multiplicative blinding to the inputs of the integer multiplications. According to a second aspect, this invention therefore relates also to a computer program product directly loadable into the memory of at least one computer, comprising software code instructions for performing the steps of the method described here above when said product is run on the computer.
According to a third aspect, this invention therefore relates also to a non- transitory computer readable medium storing executable computer code that when executed by a cryptographic device comprising a processing system having at least one hardware processor performs the method described here above. According to a fourth aspect, this invention therefore relates also to a cryptographic device 101 illustrated in figure 2 and comprising : − a processing system having at least one hardware processor 201a and a cryptographic co-processor 201b comprising an integer multiplier, said processing system being configured to perform the steps of the methods according to the first aspect, − at least one memory 203, 204, 205 for storing the input polynomial coefficients and the results of the calculations performed during the different computing steps.
Claims
CLAIMS 1. A method for performing a cryptographic algorithm, performed by a cryptographic device (101) comprising a cryptographic co-processor (201b) comprising an integer multiplier, said cryptographic algorithm comprising a polynomial multiplication between a first input polynomial A[X] and a second input polynomial B[X], wherein the first input polynomial A[X] comprises Ncm coefficients and the second input polynomial B[X] comprises Ncn coefficients and said coefficients of the first and second input polynomials are of size Nb bits, with Ncm, Ncn and Nb non-zero integers, said method comprising : a) computing (P1) a polynomial result C[X] of a polynomial multiplication between said first input polynomial A[X] and said second input polynomial B[X] by : − for the first input polynomial A[X], generating (S11) a concatenated integer ^^^^ ^^^^ as a concatenation of the coefficients of said first input polynomial, each coefficient being extended to a size Ne with ^^^^ ^^^^ ≥ ⌈log2 ^^^^ ^^^^ ^^^^⌉ + 2 ∗ ^^^^ ^^^^ by inserting zeros as Most Significant Bits of said concatenated coefficients, − obtaining (S12) each coefficient ci of the polynomial result by : o for i an integer from 0 to Ncn-1, wherein bi is the i-order coefficient of the second input polynomial B[X]: ^ computing an intermediate value Ri using said integer multiplier by multiplying said generated concatenated integer with said coefficient bi of the second input polynomial B[X] such that : ^^^^ ^^^^ =
+ ^^^^ ^^^^ ∗ ^^^^ ^^^^ where R-1 is equal to the value 0, ^ storing the Ne least significant bits of the intermediate value Ri as the ith coefficient ci of the polynomial result C[X], ^ applying a Ne-bits right shift operation to the intermediate value ^^^^ ^^^^, o when i = Ncn-1, for j an integer from Ncn to Ncn+Ncm-2 : ^ storing the Ne least significant bits of the intermediate value Ri as the jth coefficient cj of the polynomial result C[X], ^ applying a Ne-bits right shift operation to the intermediate value Ri, b) performing (S21) said cryptographic algorithm using said determined polynomial result.
2. The method of claim 1, wherein, before generating said concatenated integer (S11), coefficients of said input polynomials are masked using additive or multiplicative masking, and said masked coefficients are used for generating said concatenated integer.
3. The method of claim 1 or 2, wherein, before computing an intermediate value Ri using said integer multiplier by multiplying said generated concatenated integer with a first coefficient b0 of the second input polynomial B[X], said concatenated integer and said coefficients of the second input polynomial are masked using multiplicative blinding, and said masked concatenated integers and coefficients are used for computing said intermediate values.
4. The method of any one of claims 1 to 3, wherein the cryptographic algorithm is among: a signature generation, a signature verification, encapsulation, decapsulation, public key encryption or decryption, password-based key exchange algorithm.
5. A computer program product directly loadable into the memory of at least one computer, comprising software code instructions for performing the steps of any one of claims 1 to 4 when said product is run on the computer.
6. A non-transitory computer readable medium storing executable computer code that when executed by a cryptographic device (101) comprising a processing system (201) having at least one hardware processor (201a) performs the steps of any one of claims 1 to 4.
7. Cryptographic device (101) comprising : − a processing system (201) having at least one hardware processor (201a) and a cryptographic co-processor (201b) comprising an integer multiplier configured to perform the steps of any one of claims 1 to 4, − at least one memory (203, 204, 205) for storing the input polynomial coefficients and the results of the calculations performed during the different computing steps.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP22306367.8A EP4340293A1 (en) | 2022-09-16 | 2022-09-16 | Method for performing polynomial multiplication operations |
| PCT/EP2023/075233 WO2024056778A1 (en) | 2022-09-16 | 2023-09-14 | Method for performing polynomial multiplication operations |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| EP4588208A1 true EP4588208A1 (en) | 2025-07-23 |
Family
ID=84358719
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP22306367.8A Withdrawn EP4340293A1 (en) | 2022-09-16 | 2022-09-16 | Method for performing polynomial multiplication operations |
| EP23768310.7A Pending EP4588208A1 (en) | 2022-09-16 | 2023-09-14 | Method for performing polynomial multiplication operations |
Family Applications Before (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP22306367.8A Withdrawn EP4340293A1 (en) | 2022-09-16 | 2022-09-16 | Method for performing polynomial multiplication operations |
Country Status (2)
| Country | Link |
|---|---|
| EP (2) | EP4340293A1 (en) |
| WO (1) | WO2024056778A1 (en) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN118963700B (en) * | 2024-07-18 | 2025-07-22 | 华中科技大学 | Grating password coprocessor circuit compatible with Kyber, dilithium algorithm |
| CN121485938A (en) * | 2026-01-08 | 2026-02-06 | 北京信安世纪科技股份有限公司 | Polynomial information acquisition methods, devices, electronic equipment and storage media |
-
2022
- 2022-09-16 EP EP22306367.8A patent/EP4340293A1/en not_active Withdrawn
-
2023
- 2023-09-14 EP EP23768310.7A patent/EP4588208A1/en active Pending
- 2023-09-14 WO PCT/EP2023/075233 patent/WO2024056778A1/en not_active Ceased
Also Published As
| Publication number | Publication date |
|---|---|
| WO2024056778A1 (en) | 2024-03-21 |
| EP4340293A1 (en) | 2024-03-20 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12229322B2 (en) | Protecting parallel multiplication operations from external monitoring attacks | |
| CN108833103B (en) | Method and system for secure communication between a radio frequency identification tag and a reading device | |
| US8422671B2 (en) | Methods of encryption and decryption using operand ordering and encryption systems using the same | |
| US20080240443A1 (en) | Method and apparatus for securely processing secret data | |
| US12494910B2 (en) | Method secured against side-channel attacks performing a cryptographic algorithm comprising a polynomial operation | |
| EP3732822B1 (en) | Whitebox computation of keyed message authentication codes | |
| EP3115887B1 (en) | Method, device and non-transitory computer-readable medium for cryptographic computation | |
| WO2024056778A1 (en) | Method for performing polynomial multiplication operations | |
| JP2022520675A (en) | Cryptographic system and method | |
| JP4977300B2 (en) | Cryptography and equipment | |
| JP7191097B2 (en) | Computing device and method | |
| US12388615B2 (en) | Method for securing a multiple point multiplication operation against side-channel attacks | |
| Kotukh et al. | Method of security improvement for MST3 cryptosystem based on automorphism group of Ree function field | |
| US20250254044A1 (en) | Method for performing polynomial multiplication operations | |
| KR101805840B1 (en) | Method, device and non-transitory computer-readable medium for cryptographic computation | |
| EP4343537A1 (en) | Method for securing an operation using a private key against side-channel attacks | |
| EP4723538A1 (en) | Method for securing modular exponentiation or point multiplication operations against side-channel attacks | |
| Barker et al. | Techniques to Enhance Security of an Authentication Protocol |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: UNKNOWN |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE |
|
| PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
| 17P | Request for examination filed |
Effective date: 20250416 |
|
| AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC ME MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
| DAV | Request for validation of the european patent (deleted) | ||
| DAX | Request for extension of the european patent (deleted) |