A method for securing multi-point multiplication operations against side-channel attacks
The method protects ECC protocols from side-channel attacks by multiplicative masking and pre-computation, effectively securing multi-point multiplications with minimal computational overhead.
Patent Information
- Application Number
- JP2023541751
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-01-11
- Filing Date
- 2022-01-11
- Publication Date
- 2026-03-02
- Estimated Expiration
- 2042-01-11
AI Technical Summary
Elliptic curve cryptography (ECC) protocols are vulnerable to side-channel attacks (SCAs), particularly when performing multi-point multiplications that use multiple nonces simultaneously, necessitating improved protection methods.
A method involving multiplicative masking of nonces with a single masking value, followed by pre-computation of possible sums, and a single unmasking operation to secure multi-point multiplication results.
Secures ECC processes against side-channel attacks while minimizing computational time and effort, ensuring the nonces used in point multiplications remain protected.
Smart Images

Figure 0007822391000019 
Figure 0007822391000020 
Figure 0007822391000021
Abstract
Description
[Technical Field]
[0001] The present invention relates to the field of public key cryptography, and more particularly to a method for securing point multiplication operations performed in elliptic curve cryptography processes against side channel attacks. [Background technology]
[0002] Cryptographic algorithms are commonly used to ensure the privacy of communications by encrypting them, for authentication, or to generate verifiable signatures. Examples of such algorithms include AES, DES, or DSA.
[0003] Such cryptographic algorithms are sensitive to side-channel attacks (SCAs) based on analyzing the power consumption or electromagnetic signature of the device performing the encryption, as shown in FIG.
[0004] Elliptic curve cryptography (ECDSA) protocols, such as ECDSA, are particularly vulnerable to SCA. Indeed, such protocols use another value, called a nonce, in addition to the private key to perform cryptographic operations. For example, a nonce can be used as a scalar value to perform scalar point multiplication. Furthermore, in "Attacking (ec) dsa given only an implicit hint" by J.-. Faugere et al. (2012) and more recently in "Minerva: The Curse of ECDSA nonces" by J. Jancar et al. (2020), it was demonstrated that even when operations manipulating the private key are protected against SCA, ECC protocols are still susceptible to such attacks: by obtaining a few bits of the nonce via SCA, an attacker may be able to obtain the complete private key by performing a lattice reduction attack. Therefore, ECC protocols need to be better protected against SCA.
[0005] This issue of protecting ECC operations that use nonce from SCA is particularly important when performing multi-point multiplications that use multiple nonces simultaneously in a single operation.
[0006] As a result, methods are needed to secure ECC processes against side-channel attacks. Such methods must be applicable and efficient when such processes perform multi-point multiplications. [Prior art documents] [Non-patent literature]
[0007] [Non-Patent Document 1] J.-. Faugere et al, “Attacking (ec) dsa given only an implicit hint”, 2012 [Non-patent document 2] J. Jancar et al, “Minerva: The curse of ECDSA nonces”, 2020 Summary of the Invention [Means for solving the problem]
[0008] Therefore, for this purpose, according to a first aspect, the present invention provides a method for multiplying a result of a multiplication operation of a plurality of points.
number
number
[0009] In this way, a given scalar value can be protected in a way that allows the result of multiple point multiplication operations to be easily unmasked after the point multiplications have been summed.
[0010] In one embodiment, - generating the masking value iRand includes generating a random value Rand and calculating the masking value iRand (iRand=1 / Rand mod N) by taking the inverse of the random value Rand; and - unmasking the masked multi-point multiplication result R' comprises multiplying the masked multi-point multiplication result R' with the generated random value Rand.
[0011] This allows the masking to be cancelled in a single operation at the end of the calculation process.
[0012] In one embodiment, the step of calculating the masked point multiplication result R' comprises: - w is a given integer w>=1, [0,2 w -1] in a i For all possible sums
number
number
[0013] Such methods minimize computational time and effort by relying on precomputed values to compute a given scalar d i can always be protected from side-channel attacks.
[0014] The size of the random value may be 32 or 64 bits. Such a reduced size of the random value limits the cost of unmasking without reducing the size of the masking value iRand.
[0015] According to a second aspect, the present invention therefore also relates to a computer program product directly loadable into the memory of at least one computer, which computer program product comprises software code instructions for carrying out the steps of the method according to the first aspect when said product is executed on a computer.
[0016] According to a third aspect, the present invention therefore also relates to a non-transitory computer-readable medium storing executable computer code which, when executed by a cryptographic device comprising a processing system having at least one hardware processor, performs the steps of the method according to the first aspect.
[0017] Thus, according to a fourth aspect, the present invention provides: - at least one non-volatile and / or read-only memory, - a processing system having at least one hardware processor configured to perform the steps of the method according to the first aspect The present invention also relates to a cryptographic device comprising:
[0018] To the accomplishment of the foregoing and related ends, the one or more embodiments comprise the features hereinafter fully described and particularly pointed out in the claims.
[0019] The following description and the annexed drawings set forth in detail certain illustrative aspects and illustrate 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. [Brief explanation of the drawings]
[0020] [Figure 1] 1 is a schematic diagram of a system including a cryptographic device according to an embodiment of the present invention; [Figure 2] 1 illustrates a schematic diagram of a method for securing the execution of an elliptic curve cryptography process involving multiple point multiplication operations against side-channel attacks, according to an embodiment of the present invention; [Figure 3] 1 illustrates a schematic example of an implementation of a method for securing the execution of an elliptic curve cryptography process involving multiple point multiplication operations against side-channel attacks (when n=2 and w=1) according to an embodiment of the present invention. DETAILED DESCRIPTION OF THE INVENTION
[0021] The present invention aims to make the execution of elliptic curve cryptography processes involving multiple point multiplication operations secure against side channel attacks.
[0022] Such a process may be performed by a cryptographic device 100, the schematic of which is shown in FIG. 1. The cryptographic device 100 may include a processor 101 connected to random access memory (RAM) 103, read-only memory (ROM) 104, and / or non-volatile memory (NVM) 105 via a bus 102. The cryptographic device 100 may further include a communication interface 106 that can connect the cryptographic device 100 to a network. Such an interface may be a wireless interface connected to an antenna and may be used to connect the cryptographic device 100 to various forms of wireless networks, such as a wide area network, a Wi-Fi network, or a cellular network. Alternatively, such an interface may be a wired interface, such as an Ethernet connection. The cryptographic device 100 may also include input / output means 107 that provide an interface to a user of the cryptographic device 100, such as one or more screens, a loudspeaker, a mouse, a tactile surface, a keyboard, etc.
[0023] Such a cryptographic device could be, for example, a smart card, a mobile phone, a tablet, or a personal computer, or it could be a smart chip or a Hardware Security Module (HSM) embedded in an identity document such as a passport.
[0024] The elliptic curve cryptography process performed by the cryptographic device may be, for example, the ECDSA protocol, which performs multiple point multiplications within the protocol.
[0025] Multiplication of multiple points is multiplication of multiple points.
number
[0026] A given scalar value d used in such calculations i is called a nonce. As introduced above, in order to protect the private key of a cryptographic process, such a nonce must be protected against side-channel attacks.
[0027] The main idea of the present invention is to protect nonces from being guessed by an attacker from an SCA trace by applying multiplicative masking to these nonces before performing multi-point multiplication operations. In this case, the problem is the unmasked multi-point multiplication results.
number
[0028] In the following paragraphs, we will explain the multiplication operation results of multiple points, as shown in Figure 2.
number
[0029] In a first step S1, the cryptographic device generates a masking value iRand, such a value may be generated randomly, for example by a pseudo-random number generator PRNG 108 included in the cryptographic device.
[0030] In a second step S2, the cryptographic device calculates a scalar value d for each predetermined scalar value i in {1,...,n}. i is multiplicatively masked with the generated masking value iRand to obtain the masked scalar d i ':d i '=iRand*d i Get modN.
[0031] In a third step S3, the cryptographic device calculates the masked multiplication results of the points i in {1,...,n}.
number
number
[0032] In a fourth step S4, the cryptographic device unmasks the masked multi-point multiplication result R' to obtain the multi-point multiplication result R. All terms d i ,P i The same masking value iRand is used to mask , so it can be easily factored and cancelled.
[0033] In one embodiment, in the first step S1, generating the masking value iRand comprises generating a random value Rand and calculating the masking value iRand by taking the inverse of the random value Rand: iRand=1 / Rand mod N. Such a random value may have a size of, for example, 32 bits or 64 bits.
[0034] In such an embodiment, in the fourth step S4, unmasking the masked multiply-point multiplication result R' comprises multiplying the masked multiply-point multiplication result R' with the generated random value Rand.
number
[0035] In this way, by unmasking the result R' of the masked multiplication operation of multiple points and using the limited size random value Rand, the cost of the operations performed in the fourth step can be minimized and good performance can be guaranteed.
[0036] In the following paragraphs, an exemplary embodiment for calculating the masked point multiplication result R′ in the third step S3 is described. The idea of this embodiment is to calculate the masked point multiplication result R′ by multiplying a given scalar d i The solution is to compute the result in chunks of predetermined length w bits of ', and pre-compute all possible chunks to avoid performing any point multiplications at the time multiple point multiplications are required.
[0037] In the first substep S31, w is a predetermined integer of w≧1, and [0, 2 w -1] in a i For all possible sums
number
[0038] Such precomputation is done on a given scalar value d i , and therefore can be performed before any other step of the method is performed. This may be done by the cryptographic device itself or by another device, such as a server, which may transfer the calculated sum to the cryptographic device.
[0039] In a second substep S32, the cryptographic device initializes an intermediate value A at the point at infinity.
[0040] In a third sub-step S33, the cryptographic device: ·Middle value A is 2 w Multiply by: A=2 w .A Pre-calculated possible total R k Total R m , i.e.: d i ' j is a masked given scalar d i ' is the jth bit of
number
[0041] This substep S33 is repeated for new values of index j until j reaches |B|-w, the last value of j for which substeps are performed, where B is d i is the number of bits in |B|. When |B| is not a multiple of w, and j becomes greater than |B|-w, this substep is repeated one last time after replacing w with |B|-j. This allows the last bit of a given scalar to be considered when there are fewer than w bits left to consider.
[0042] FIG. 3 shows an example of execution when n=2 and w=1.
[0043] In this case, the result of multiplication of the points to be obtained is R=d1.P1+d2.P2.
[0044] In the first substep S31, a i All possible sums over
number
[0045] In a first step S1, the cryptographic device generates a random value Rand and calculates a masking value iRand by taking the inverse of the random value Rand.
[0046] In a second step S2, the cryptographic device multiplicatively masks the predetermined scalar values d1 and d2 with the generated masking value iRand to obtain masked scalars d1'=iRand*d1modN and d2'=iRand*d2modN.
[0047] In a third step S3, the cryptographic device repeats the third sub-step S33 for each value of j in {0, ..., B-1}, and calculates the bit d i ' j Depending on the value of , the masked multiplication operation result is calculated by selecting a pre-computed value to be added to the intermediate value A at each iteration.
number
[0048] In a fourth step S4, the cryptographic device multiplies the masked multi-point multiplication result R' with the generated random value Rand to obtain the multi-point multiplication result R.
[0049] As a result, the above method allows for secure computation of multiple point multiplication operations without exposing the nonce used as the scalar in the point multiplication to side-channel attacks.
Claims
1. Multiplication operation result of multiple points [Equation 1] 1. A method for securing against side-channel attacks the execution of an elliptic curve cryptography process comprising a multi-point multiplication operation to compute i is a predetermined scalar value, P i is a point of an elliptic curve over a finite field defined by parameters (F, E, G, N) along with the addition law of the points, where F is the field over which the curve is defined, E is the equation of the curve, G is the base point of E on F, and N is the order of the base point G; The method is performed by a cryptographic device (100), generating a masking value iRand (S1); For each predetermined scalar value d, where i is in {1,...,n} i multiplicatively masking with the generated masking value iRand to obtain the masked scalar d i ' (S2), The result of a masked multiplication operation of multiple points, where i is in {1,...,n} [Equation 2] Calculating (S3), and unmasking the masked multiplication result R′ of the plurality of points to obtain the multiplication result R of the plurality of points (S4). A method comprising:
2. generating the masking value iRand includes generating a random value Rand and calculating the masking value iRand (iRand=1 / Rand mod N) by taking the inverse of the random value Rand; unmasking the masked multi-point multiplication result R' includes multiplying the masked multi-point multiplication result R' by the generated random value Rand; The method of claim 1.
3. Calculating the masked point multiplication result R' is [0, 2] where w is a predetermined integer w>=1. w -1] in i For all possible sums [Equation 3] (S31) Initializing an intermediate value A at infinity (S32); B is the number of bits in a given scalar value, and for integer j between 0 and |B|-w, a. The intermediate value A is 2 w Multiplying by b. The pre-computed possible sum R k Total R m to the following, i.e., d i ' j d i ' is the j-th bit of [Equation 4] To select, c. The selected total R m to the intermediate value A (S33).
3. The method of claim 1 or 2, comprising:
4. The method of claim 2 , wherein the random value Rand is 32 or 64 bits in size.
5. 5. A computer program directly loadable into the memory of at least one computer, said computer program comprising software code instructions for performing the method of any one of claims 1 to 4 when said computer program is run on a computer.
6. A non-transitory computer-readable medium storing executable computer code that, when executed by a cryptographic device (100) comprising a processing system having at least one hardware processor, performs the method of any one of claims 1 to 4.
7. A processing system having at least one hardware processor (101) configured to execute the method of any one of claims 1 to 4, At least one non-volatile memory (105) and / or read-only memory (104) A cryptographic device (100) comprising: