Digital signature generation
By partitioning and generating digital signatures using partial keys and values, the method effectively resists side channel attacks, ensuring the private key and nonce remain secure, addressing the vulnerability of ECDSA to such attacks.
Patent Information
- Application Number
- PCT/EP2024/086321
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-01-23
- Filing Date
- 2024-12-13
- Publication Date
- 2025-07-31
AI Technical Summary
Elliptic Curve Digital Signature Algorithm (ECDSA) is highly sensitive to side channel attacks, which can compromise the security of digital signatures by revealing the private key through physical execution analysis.
A computer-implemented method that partitions the private key, nonce, and masking nonce into multiple parts, generating a digital signature without reconstructing these components, thereby resisting side channel attacks up to the (^ − 1) order by using partial keys and values.
Enhances security by ensuring that the private key, nonce, and masking nonce are never calculated in full, making it extremely difficult for malicious actors to derive these values from side channel information, thus providing robust resistance to higher-order attacks.
Smart Images

Figure EP2024086321_31072025_PF_FP_ABST
Abstract
Description
[0001]DIGITAL SIGNATURE GENERATION TECHNICAL FIELD OF THE INVENTIONThe present invention relates to a computer-implementedmethod, executed by a host device, of generating a digitalsignature for a message ^ based on an elliptic curve having anorder ^, field characteristic ^, and generator point ^, generation of the elliptic curve digital signature beingsecure against side channel attacks up to the (^ − 1) order. Acorresponding host device is also provided. BACKGROUND TO THE INVENTION The elliptic curve digital signature algorithm (ECDSA), i.e. the algorithm via which a digital signature is generated using elliptic curve cryptography is extremely sensitive to physical attacks, both invasive and non-invasive. ECDSA signature generation is also extremely sensitive to the quality of the randomness used in the process. However, generation of digital signatures using the ECDSA is also ubiquitous, and at the core of several important technologies, such as blockchain and secure communications. For this reason, it is important to ensure that ECDSA can be implemented in a manner which is as secure as possible, in particular being as resistant as possible to misuse, random number generation modifications, side channel analysis, and fault injection exploitation. The present invention focuses, in particular, on improving the robustness of the ECDSA to side channel analysis. In the context of the present application, the term “side channel analysis” (or equivalently, “side channel attacks”) refers to the analysis of cryptographic signals which relies on the manner in which the cryptographic algorithms are physically executed, rather than relying on the nature of the algorithm itself. For example, side channel analysis may be based on electromagnetic leakage, power consumption, timing information, or sound. The concept of higher-order side channel attacks is central to the present invention. Thisconcept is explained in detail in Lomné et al. (2014). Adefinition of a higher-order side channel attack is also set out in Piret et al. (2008) as: “A side-channel attack of ordert against an n-bit target is a side-channel attack based onthe combinations of observation and leakage of at most tdifferent instants within an observable implementation.” The basis of elliptic curve cryptography is an elliptic curve which may have an equation: ^^ = (^^ + ^^ + ^) mod ^In this equation ^, ^ and ^ are parameters defining the curve,where the curve is defined over a finite field ^ having acharacteristic ^. ^ is referred to as the order of the curve.In the realm of elliptic curve cryptography, a point additionfunction is defined. This is illustrated geometrically inFig. 1, in which a point ^ on the curve is added to itself.This is done by drawing a tangent to the point ^′. This pointis then reflected in the x-axis to give the point 2^ = ^ + ^.Scalar multiplication by ^ of a point on an elliptic curverefers to point addition of the point to itself ^ times. Itis also possible to add two different points to each other, in which case the line connecting the two points is drawn, and extended until it intersects the curve again. The result of the point addition of the two points is the reflection of the intersection point in the x-axis. It should be stressed that the illustration in Fig. 1 is a simplified case.Fig. 2 illustrates the steps of a conventional ECDSA algorithmwhich may be vulnerable to side-channel analysis.1Lomné, V., Prouff, E., Rivain, M., Roche, T., Thillard, A. (2014). How to Estimate the Success Rate of Higher-Order Side-Channel Attacks. In: Batina, L., Robshaw, M. (eds) Cryptographic Hardware andEmbedded Systems – CHES 2014. CHES 2014. Lecture Notes in Computer Science, vol 8731.Springer, Berlin, Heidelberg. https: / / doi.org / 10.1007 / 978-3-662-44709-3_32Piret, Gilles, and F-X. Standaert. "Security analysis of higher-order Boolean masking schemes forblock ciphers (with conditions of perfect masking)." IET Information Security 2.1 (2008): 1-11.Specifically, Fig. 2 shows a process by which a sender of amessage may generate an elliptic curve digital signature (^, ^)which can be transmitted along with a message ^ to enable areceiver of the message to verify that the sender of thesignature of the message was who they claimed to be. Fig. 2illustrates a simplified version of the convention ECDSA algorithm as defined in the standard ANSI X9.62: Public Key Cryptography For The Financial Services Industry: The Elliptic Curve Digital Signature Algorithm (ECDSA).In a first step S100, a private key ^ is generated orotherwise obtained. The private key ^ is typically a 256-bitnumber, i.e. it can take values in the range from 0 to(2 - 1). Typically, the private key ^ is randomly generatedin the interval [1, ^ − 1] where ^ is the order of the curve.In step S102 a point ^ is calculated:^ = [^]^Where ^ is the base point of the elliptic curve, and ^ is arandomly selected nonce value, which is a large random number in the interval [1, N-1]. The square bracket notation denotesthe point addition of ^ to itself ^ times. A value ^ is thencalculated as the x-coordinate of the point ^ mod ^.In step S104, the second part of the signature ^ is generated: mod ^Here, ^^^ is calculated using the inverse function mod ^, and^(^) denotes a hash of the message ^.^. ^ represents a normal multiplication of two values.In step S106, the signature (^, ^) is transmitted to the receiverof the message ^, along with the message. The signature can be verified by the receiver using the sender’s public key which is given by:^ = [^]^It can be shown, however, that if the value of ^ isdiscovered, e.g. using side channel analysis, it is relatively straightforward to derive the sender’s private key using: mod ^The present invention provides aims to provide a scheme in which an elliptic curve digital signature can be generated, but which is resistant to high-order side channel attacks. SUMMARY OF THE INVENTION Broadly, the present invention provides a scheme in which a digital signature may be generated which is resistant to high- order side channel attacks by partitioning a private key, a nonce, and a masking nonce, into a plurality of parts and performing a series of operations on those parts in which the full private key, nonce, and masking nonce are never reconstructed. When these components are partitioned into ^ parts, the digital signature is resistant to side channelattacks of order (^ − 1). The present invention is anadaptation of techniques first established in the field of multi-party computation (for example as seen in Gennaro et al. (2020)) to an easily executable computer-implemented method to be performed on a single host device, which ensures robust resistance to high-order side-channel attacks in the context of digital signature generation. Accordingly, a first aspect of the present invention provides a computer-implemented method, executed by a host device, ofgenerating a digital signature for a message ^ based on anelliptic curve having an order ^, field characteristic ^, andbase point ^, generation of the elliptic curve being secureagainst side channel attacks up to the (^ − 1) order, thecomputer-implemented method comprising:3Gennaro, Rosario, and Steven Goldfeder. "One round threshold ECDSA with identifiable abort."Cryptology ePrint Archive (2020).retrieving, from a memory, a plurality of ^ partialprivate keys ^^, where the sum of the ^ partial private keys ^^is a global private key ^ (though this is not to say that theglobal private key ^ is actually calculated or computed);generating a plurality of partial nonce values ^^, whereina global nonce value is given by ^ = (though this is not tosay that the global nonce value ^ is actually calculated orcomputed); generating a plurality of partial masking nonce values ^^,wherein a global masking nonce value is given by ^ = ∑^ ^^(though, again, this is not to say that the global maskingnonce value ^ is actually calculated or computed);generating a first signature element ^ using theplurality of partial nonce values ^^, the plurality of partial masking nonce values ^^and the base point ^; generating a second signature element ^ which is equal to^(^ + ^^), using the first signature element, a hash ^ of themessage ^, the plurality of partial private keys ^^, the plurality of partial nonce values ^^, and the plurality ofpartial masking nonce values ^^; andoutputting a pair of values (^, ^) as the digital signatureof the message ^. Generally, in implementations of the invention, elliptic curve point addition computations are executed modulo ^, summationsare executed modulo ^, and ^ and ^ take values from 1 to ^,except where expressly stated otherwise. The order N andfield characteristic ^ are typically both integers, and mayhave between 224 and 521 bits. The advantage of the present invention arises because a single host device is able to generate an elliptic curve digitalsignature (^, ^) by splitting a private key, a nonce value, and amasking nonce value into ^ separate parts, and to generate thesignature based on these separate parts. More specifically, the use of a plurality of masking nonce values during the calculation of the first signature element and the second signature element enables the generation of an elliptic curvedigital signature based on a global nonce value ^ and a globalprivate key ^ while eliminating the need for those componentsevery to be transmitted or processed in the clear It is important to note from the above that generation of the digital signature does not require calculation, at any point, of the private key, the nonce value, or the masking noncevalue. Specifically, the global private key ^ may not becalculated or computer at any point; the global nonce value ^ may not be calculated or computed at any point; and / or theglobal masking nonce value ^ may not be calculated or computedat any point.Malicious actors would therefore need knowledge of all ^ of thepartial private keys, nonce values, and masking nonce values in order, for example, to reconstruct the private key from information gleaned from side-channel attacks, thereby greatly increasing the security of elliptic curve digital signatures calculated according to the computer-implemented method of the present invention. We now discuss the generation of the first signature element ^and the second signature element ^ in more detail, with aparticular focus on how they are generated without the need to expose any of the global private key ^, global nonce value ^or the global masking nonce value ^ in the clear, leading tothe enhanced security provided by the present invention. Herein, when we refer to “generating” a value or point, we may refer to “computing” or “calculating” such a value or point.Generating the first signature element ^ may comprisegenerating a first intermediate point Γ using the plurality ofmasking nonce values ^^and the base point ^. Morespecifically, generating the first intermediate point Γ maycomprise generating a plurality of points Γ^ = [^^ ]^, where [^^]^denotes elliptic curve point addition modulo ^ of the point ^to itself ^^times. Generating the first signature element may further comprise generating value ^^^, which is an inverse of the product ^^, using the partial nonce values and the partial masking nonce values ^^. Generating the value ^^^may use only the partial nonce values and the partial masking nonce values ^^, i.e.the global nonce value ^ and the global masking nonce value ^may not be used, to enhance the security of the method.Generating the value ^^^ may comprise generating a value ^ =∑^^ ^^^^, which denotes summation of the product of over ^ and^; and applying a modular inversion function to ^ to generate avalue ^^^, wherein the inversion function is modulo ^.The first signature element ^ may then be generated using thefirst intermediate point Γ and the value ^^^. For example,generating the first signature element ^ may comprisegenerating a point ^ = [^^^]Γ, and a value ^ = ^^, where [^^^]Γdenotes elliptic curve point addition modulo ^ of the point Γto itself ^^^times, and where ^^is the ^-coordinate of thepoint ^ modulo ^.Generating the second signature element ^ may comprise:generating a set of secondary intermediate values ^^ = ∑^ ^^^^modulo ^, which denotes summation of the product ^^^^over ^.Generating the second signature element ^ may further comprisegenerating a plurality of partial signatures ^^ = ^^^ + ^^^ modulo^, where ^ is a hash of the message ^. Then, generating thesecond signature element may comprise generating a value ^ =∑^ ^^ modulo ^.Specifically, the private key ^ may be a sum of the partialprivate keys ^^. Symbolically: ^= Σ^^^In preferred implementations of the computer-implemented method of the first aspect of the invention, the private key ^ is not calculated during generation of the digital signature. This is because the computer-implemented method does not require it, and is advantageous because it minimizes the risk of the private key being determined by a malicious actor in any circumstances. According to the invention, the private key could only be determined by determining e.g. all of thepartial private keys ^^. The private key ^ may bepredetermined, and may be a key that is certified or pre- installed in a device such as the host device which executes the computer-implemented method of the first aspect of the invention. Such a private key may be referred to as a “long term” private key. The plurality of partial private keys ^^may also be predetermined, for example during a key generation process which takes place before the computer-implemented method of the first aspect of the invention. In other cases, the computer-implemented method may further comprise the step of generating the plurality of partial private keys ^^. If so, the method may further comprise retrieving the private key ^ from a memory, and generating the plurality of partial privatekeys ^^ such that ^ = Σ^^^.Similarly, a nonce value ^ may be a sum of the partial noncevalues ^^. Symbolically: ^= Σ^^^In preferred implementations of the computer-implemented method of the first aspect of the invention, the nonce value ^ is not calculated during generation of the digital signature. Like with the private key, this is because the computer- implemented method does not require it, and is advantageous because it minimizes the risk of the nonce value being determined by a malicious actor in any circumstances. It has been shown above that if a malicious actor is aware of the nonce value ^, they can derive the private key. By splittingthe nonce value ^ into the partial nonce values ^^, it ispossible to ensure that a malicious actor can only obtain thenonce value ^ and therefore the private key ^ by obtaining allof the partial nonce values ^^.Similarly again, a nonce value ^ may be a sum of the partialnonce values ^^. Symbolically: ^= Σ^^^In preferred implementations of the computer-implemented method of the first aspect of the invention, the masking noncevalue ^ is not calculated during generation of the digitalsignature. Like with the private key and the nonce value, this is because the computer-implemented method does not require it, and is advantageous because it minimizes the riskof the masking nonce value being determined by a maliciousactor in any circumstances. If a malicious actor is able to identify the masking nonce, then they may be able to infer information which is linked to the nonce value itself or the private key itself. From the definitions above, it can be seen that: ^^ = Σ^^^^^^From the definitions above, it can also be seen that: ^^ = Σ^^^^^^The computer-implemented method of the first aspect of theinvention refers in parts to generating various quantities,and provides a definition of those quantities. For example,the computer-implemented method includes generating a point Γ =Σ^Γ^. The definition should be understood as just that, a definition. It should not be interpreted as a requirementthat the point Γ is necessarily calculated by summing thepoints Γ^for all ^. It is explicitly envisaged that other waysof generating Γ are covered by the computer-implemented method,as long as the value which is ultimately computer isequivalent to Σ^Γ^. Of course, in one implementation, Γ may becomputed by summing Γ^ for all ^ but other equivalent techniquesare also envisaged. For the avoidance of doubt, this reasoning does not apply only to the computation of Γ, but for the computation of all points and values as required by the computer-implemented method of the first aspect of theinvention (e.g. Γ^, Γ, ^, ^^^, ^, ^, ^^, ^). The computer-implemented invention of the first aspect of the invention includes several steps which relate to elliptic curve point addition. This process has been described earlier in this disclosure, and the operation is known. Variously, this step may be applied ^^times, or ^^^times to a given point. It will be acknowledged that ^^and ^^^may be very large numbers which would necessitate the elliptic curve pointaddition to be executed many times. In order to ensure thatthe elliptic curve point addition is performed efficiently, the computation may include the application of one or more of a plurality of known algorithms for elliptic curve pointaddition such as the double-and-add algorithm, the windowedmethod, the sliding-window method, the ^-ary non-adjacent form (^NAF) method, the Montgomery ladder, or addition chains scalar point multiplication. In each of these cases, for scalar multiplication for a ^-bit scalar (i.e. elliptic curve point addition of a point to itself the ^-bit number of times), the multiplication may be performed in, on average,around 1.5^ steps.This enables execution of elliptic curve point addition while obviating the need to execute a number of operations on the order of the value of e.g. ^^or ^^^, thereby greatly increasing the efficiency of the computation. At present, side-channel attacks of order 1 to 3 are thought to be possible. In order to be resistant to such side-channelattacks, the value of ^ may be 2, 3, or 4. These values ensurethat a robust defence is provided against higher-order side-channel attacks without giving rise to unnecessarily arduous computation requirements. After generating the plurality of partial private keys ^^, the computer-implemented method may further comprise generatingpartial public keys ^^ = [^^]^, where [^^]^ denotes elliptic curvepoint addition modulo ^ of the point ^ to itself ^^ times. From this, it will be appreciated that the partial public keys are points, rather than numbers or values. The elliptic curve point addition may be executed using the scalar pointmultiplication using a known algorithm, as before, in order toavoid the need to perform a number of operations of the order of the value of the partial private keys ^^. The computer-implemented method may then comprise generating a globalpublic key ^ = Σ^^^, where denotes elliptic curve pointaddition modulo ^ of the points for all ^. In response to adetermination that the global public key ^ is equal to ^, thatis the infinity point (which is the identity in the additivegroup), the computer-implemented method may further comprise discarding the generated plurality of partial private keys ^^and generating a new plurality of partial private keys ^^′. The new plurality of partial keys are such that Σ^^^^ = ^, where^ is the same global private key, which is not calculated atany point during the generation of the digital signature. Similarly, if it is determined that, or in response to adetermination that ^ = 0, the computer-implemented method mayfurther comprise discarding the generated plurality of partialnonce values ^^, and generating a new plurality of nonce values^^′ and / or discarding the generated plurality of partial maskingnonce values ^^, and generating a new plurality of masking nonce values ^^′.The new plurality of partial nonce values ^^′ may be such thatΣ^^^^ = ^′, where ^′ is a new global nonce value, which is notcalculated at any point during the generation of the digital signature. The plurality of partial masking nonce values Σ^^^^ = ^′ where ^^is a new global masking nonce value, which is not calculated at any point during the generation of the digital signature. It will be acknowledged that it is only necessary to update either the partial nonce values or the partial masking nonce values because updating these will lead to a new value of Γ^,Γ, ^, and therefore ^^^, on the basis of which ^ is calculated.If only a new plurality of partial nonce values ^^′ isgenerated, the computer-implemented method may further comprise recalculating ^, ^^^, ^, and ^. If only a new plurality of partial masking nonce values ^^^is generated, the computer-implemented method may further comprise recalculating Γ^, Γ, ^, and ^. If a new plurality of partial nonce values ^^′and a new plurality of partial masking nonce values ^^^are generated, the computer-implemented method may comprise recalculating Γ^, Γ, ^, ^^^, ^, and ^. If the recalculatedvalue of ^ = 0, the process may be repeated as necessary.Additionally, if it is determined that, or in response to adetermination that ^ = 0, the computer-implemented method mayfurther comprise discarding the generated plurality of partial private keys ^^and generating a new plurality of partial private keys ^^′. The new plurality of partial keys are such that Σ^^^^ = ^, where ^ is the same global private key, which isnot calculated at any point during the generation of the digital signature. Essentially, the process may be aborted and started again.If it is determined that, or in response to a determination ^ =0 the computer-implemented method may further comprisediscarding the generated plurality of partial private keys ^^and generating a new plurality of partial private keys ^^′. The new plurality of partial keys are such that Σ^^^^ = ^, where^ is the same global private key, which is not calculated atany point during the generation of the digital signature. Similarly, if it is determined that, or in response to adetermination that ^ = 0, the computer-implemented method mayfurther comprise discarding the generated plurality of partial nonce values ^^, and generating a new plurality of nonce values^^′ and / or discarding the generated plurality of partial maskingnonce values ^^, and generating a new plurality of masking nonce values ^^′.As before, the new plurality of partial nonce values ^^′ may besuch that Σ^^^^ = ^′, where ^′ is a new global nonce value, whichis not calculated at any point during the generation of the digital signature.As before, the plurality of partial masking nonce values =^′ where ^^ is a new global masking nonce value, which is notcalculated at any point during the generation of the digital signature. The value of the ^^(which contains a term ^^^) can be changed simply by calculating a new plurality of partial nonce values ^^^. Accordingly, in such cases, the computer-implemented method may further comprise recalculating ^^using the new plurality of partial nonce values ^^^. It should be noted that would also necessarily comprise recalculating ^, ^^^, ^^, ^, and ^, which also depend on the value of the partial nonce values ^^. The value of the ^^(which contains a term containing ^) can be changed simply by calculating a new plurality of partial masking nonce values ^^^. Accordingly, in such cases, the computer-implemented method may further comprise recalculating ^^using the new plurality of partial masking nonce values ^^^. It should be noted that would also necessarily comprise recalculating Γ^, Γ, ^, ^^^, ^, and ^, which also depend on the value of the partial masking nonce values ^^. The value of the ^^(which contains a term containing ^^) can be changed simply by calculating a new plurality of partial private keys ^^^. Accordingly, in such cases, the computer- implemented method may further comprise recalculating ^^using the new plurality partial private keys ^^^. It should be noted that would also necessarily comprise recalculating the ^^, which also depend on the value of the partial private keys ^^^.In the event that ^ = 0, the computer-implemented method maycomprise recalculating one or more of the partial private keys ^^^, the partial masking nonce values ^^^, and the partial nonce values ^^^, and calculating new ^^′ using the recalculatedvalues, as well as recalculating any intermediate values (e.g. Γ^, Γ, ^, ^^^, ^, ^, ^^) as necessary. While maintaining the same global private key ^, a need may arise to generate a new digital signature based on a different set of partial private keys ^^^. Accordingly, the computer- implemented method may further comprise receiving a request for a new or refreshed plurality of partial private keys ^^^such that Σ^^^^ = ^. The computer-implemented method may thenfurther comprise generating a new or refreshed plurality ofpartial private keys ^^^ such that Σ^^^^ = ^. Generating the newor refreshed plurality of partial private keys ^^^may comprise adding or subtracting a respective value to each of the initial partial private keys ^^, and then determining a value to add to the remaining partial private key ^^such that Σ^^^^= ^. Symbolically, generating the refreshed plurality ofpartial private keys ^^^ may comprise selecting ^ − 1 values ^^;setting ^^^ = ^^ + ^^ for ^ < ^ − 1; The quantity ^ which forms part of the digital signature relieson a hash ^ of a message ^ which is to be accompanied by thedigital signature. The computer-implemented method may therefore further comprise applying a hashing algorithm to themessage ^ to generate the hash ^. Any known hashing algorithmor cryptographic hash function is suitable for this process.Suitable cryptographic hash functions may be found in the Secure Hash Standard (FIPS PUB 180-4). The computer-implemented method of the first aspect of the present invention is executed by a host device. We now discuss this feature in more detail. The host device is preferably a single device which is configured to execute all of the step of the computer-implemented method of the first aspect of the present invention. In other words, a single4https: / / nvlpubs.nist.gov / nistpubs / FIPS / NIST.FIPS.180-4.pdf host device is configured to generate e.g. all of the partial private keys, partial nonce values, and partial masking nonce values, and then to execute the subsequent processing on those generated quantities. The host device may be in the form of a computer such as a laptop computer, a desktop computer, a tablet, or a smartphone. The host device may comprise a dedicated module which is configured to execute the computer-implemented method of the first aspect of the invention, which may be implemented in either hardware (e.g. a specific processing module or chip) or software (e.g. in the form of executable code stored in a memory, which when executed by a processor of the host device, causes it to execute the computer-implemented method of the first aspect of the invention). Alternatively, the hostdevice may be a device which is connectable to a computer,e.g. via a physical connection such as a USB connection, or a wireless connection. Such a connectable device may comprise a dedicated module which is configured to execute the computer- implemented method of the first aspect of the invention, as before, and to output the generated digital signature to the computer to which it is connected. A second aspect of the present invention provides a host device configured to execute the computer-implemented method of the first aspect of the invention. The optional features set out above in respect of the first aspect of the invention apply equally well to the second aspect of the invention, except where clearly technically incompatible, or where context dictates otherwise. The host device may be in the form of a computer such as a smartphone, desktop computer, laptop computer, or tablet. Alternatively, the host device may be in the form of bespoke hardware such as a digital signature generation module, which maybe implemented in the form of a chip or other equivalent computer programming logic. The digital signature generation module may comprise an authenticator. A third aspect of the invention provides a computer program product comprising instructions which, when the program is executed by a computer, cause the computer to carry out the computer-implemented method of the first aspect of the invention. The computer program product may be a downloadable product. The computer program product of the third aspect of the invention may be loaded on the host device of the second aspect of the invention in order to enable it to execute the computer-implemented method of the first aspect of the invention. The invention includes the combination of the aspects and preferred features described except where such a combination is clearly impermissible or expressly avoided. BRIEF DESCRIPTION OF THE DRAWINGS Embodiments of the present invention will now be described with reference to the accompanying drawings, in which: -Fig. 1 is a diagram of an elliptic curve to illustratethe underlying principles of elliptic curve cryptography. -Fig. 2 is a flowchart illustrating a standard ellipticcurve digital signature generation process. -Fig. 3 is a schematic diagram including a host devicewhich may be configured to execute the computer- implemented method of the first aspect of the invention. -Fig. 4 is a flowchart illustrating a high-level processin which a digital signature is requested, generated, and output. -Fig. 5A is a flowchart illustrating a key generationprocess which may feature in implementations of the computer-implemented method of the first aspect of the invention. -Figs. 5B and 5C are flowcharts illustrating a signaturegeneration process according to a computer-implemented method of the first aspect of the present invention. DETAILED DESCRIPTION OF THE DRAWINGS Aspects and embodiments of the present invention will now be discussed with reference to the accompanying figures. Further aspects and embodiments will be apparent to those skilled in the art. All documents mentioned in this text are incorporated herein by reference. Fig. 3 is a system diagram depicting an example of a system 10 which may be configured to execute the computer-implemented method of the present invention. The system 10 comprises a client device 100 and a host device 200. It should be stressed that all of the computation involved in the actual generation of the digital signature, i.e. the computer- implemented method according to the first aspect of the present invention, is executed at the host device 200. The client device 100 is a user device which requests the digital signature. In some cases, the host device 200 may be part of the client device 100, or the client device may comprise the processor 202, memory 204, and output module 206, such that all computation is executed on the client device 100 itself. The client device 100 is connected to the host device 200 via a client device interface module 201 of the host device 200. The connection may be a wired, or physical connection, in which case the client device interface module 201 may be in the form of a USB connection. In such cases, the USB port would generally be located on the client device 100, and the host device would be plugged into the client device 100. Alternatively, the connection between the client device 100 and the host device 200 may be a wireless connection such as a Wi-Fi connection or a Bluetooth connection. The host device 200 comprises a processor 202, a memory 204 and an output module 206. The processor 202 comprises a digital signature generation module 2020. Herein, the term “module” refers to a functional module of the processor 204, which may be implemented in the form of hardware (i.e. a specific hardware module adapted to generate the digital signature according to the computer-implemented method of the first aspect of the invention, which may be in the form of a chip, or equivalent component), or software (i.e. code, which when executed by the processor 204, causes it to execute the computer-implemented method of the first aspect of the invention). The memory 204 stores the elliptic curve parameters 2040, e.g. the field characteristic ^, the generator point ^, the order of the curve ^, as well asparameters ^, ^ defining the equation of the curve. Theelliptic curve parameters may further comprise a cofactor ℎ. The memory 204 further stores the elliptic curve digital signature generation algorithm 2042, which is retrieved and executed by the digital signature generation module 2020. The memory also stores a representation of the private key 2043, and may store a plurality of partial private keys ^^2044. The memory also includes a buffer 2045, which is a temporary store of data which may be used to store e.g. intermediate values generated during the execution of the elliptic curve digital signature algorithm 2042. It should be stressed that in the present context, the term “elliptic curve digital signature algorithm” is used to refer to the signature generation algorithm which forms the focus of this patent application, rather than prior art elliptic curve digital signature algorithms. The host device 206 further comprises an output module 206 which is configured to output a generated digital signature to e.g. the client device 100 after it has been generated. Fig. 4 shows a high-level series of steps which may be executed by the system 10 depicted in Fig. 3. In a first step S200, a request for a digital signature is received at the host device 200. The request may originate from the client device 100 and be received at the host device 200 via the client device interface module 201. In response to the request, in step S202, a digital signature may be generated by the digital signature generation module 2020 of the processor 202 of the host device 200. Then, in step S204, the generate digital signature may be output by the output module 206 of the host device 200, e.g. to the client device 100. The digital signature may be output to the client device 100 via the client device interface module 201. We now discuss step S202, namely the process by which the digital signature is generated, with reference to Figs. 5A to 5C, which illustrate an example of a scheme falling within the scope of the computer-implemented method of the first aspect of the invention. Digital signatures generated according to this scheme, and indeed the entire digital signature generation process is secure against side channel attacks upto the (^ − 1) order, due to the fragmentation of variousquantities into ^ parts, with those quantities never beingcomputed in total. To illustrate this, in the descriptionbelow, we use an example in which the value of ^ is 3, and thuswhere the scheme is secure against 2 order side channel attacks. The reader will acknowledge that the computer- implemented method described is readily generalizable to any value of ^. In order to generate the digital signature, the digital signature generation module 2020 may first retrieve the elliptic curve parameters 2040 the elliptic curve digital signature generation algorithm 2042, and a representation ofthe private key 2043 from the memory 204 of the host device200. It should be noted that in the following description, the following is true (unless explicitly stated otherwise): ^All elliptic curve point addition operations (orequivalent) are executed modulo ^, where ^ is the fieldcharacteristic of the elliptic curve. ^All points summations are executed modulo ^, where ^ isthe order of the elliptic curve. Beginning with Fig. 5A, which illustrates the key generationprocess, the scheme begins at step S300, in which a pluralityof partial private keys ^^are generated: ^^ = [^^, ^^, ^^] The partial private keys ^^sum to a global private key ^: It will be acknowledged from the subsequent description ofFigs. 5A to 5C that the global private key ^ is nevercalculated throughout the digital signature generation process. The partial private keys ^^may be stored in thebuffer 2045 so that they may be swiftly retrieved later on.In step S300, a plurality of partial public keys are calculated, where: ^^ = [^^]^Thus: ^^ = [^^]^^^ = [^^]^^^ = [^^]^To clarify, the square bracket notation used above denotesthat the generator point ^ is added to itself ^^ times, usingelliptic curve point addition, which is a well-defined operation. As discussed previously, this does not necessarily mean that the partial public keys are calculated by adding ^ to itself ^^times: such a calculation may not be computationally feasible. The calculated partial public keys ^^are points on the elliptic curve. The partial public keys^^ may be stored in the buffer 2045 so that they may be swiftlyretrieved later on.In step S304, the global public key ^ is calculated:^ = Σ^^^To clarify, given that the are points on the elliptic curve, the sigma notation denotes elliptic curve point addition of the points ^^, i.e.^ = ^^ + ^^ + ^^It will be appreciated from the properties of elliptic curve point addition that: ^= [^]^In step S305, it is determined whether the global public key ^is equal to infinite point (identity element of additiveelliptic additive group). If it is determined that the globalpublic key ^ is equal to the identity element, then theprocess returns to step S300, and a new plurality of partial private keys ^^^are generated, which sum to a new globalprivate key ^^ ≠ ^ to ensure that the new global public key ^^ ^ is not equal to identity element (infinite point).If it is determined that the global public key ^ is not equalto identity element (infinite point), the process continues tostep S306, in which the plurality of partial keys ^^ 2044 arestored in the memory 204 of the host device 200. Alternatively, the plurality of partial keys may be stored in the buffer 2045The plurality of partial private keys ^^having been generated according to the method of Fig. 5A, we now turn to Fig. 5B. In step S306, the plurality of partial keys ^^2044 are retrieved from the memory 204 of the host device 200, or the buffer 2045 if they are stored there. In step S308, a plurality of partial nonce values ^^and a plurality of partial masking nonce values ^^are generated. The plurality of partial nonce values ^^and a plurality ofpartial masking nonce values ^^ are integer values in the range[1, ^ − 1] where ^ is the order of the curve.The partial nonce values ^^are such that: Σ^^^ = ^^ + ^^ + ^^ = ^Here, ^ may be referred as a global nonce value. It will beacknowledged from the subsequent description of Figs. 5A to 5Cthat ^ is never calculated in full throughout the digitalsignature generation process. The partial nonce values ^^maybe stored in the buffer 2045 so that they may be swiftlyretrieved later on. The partial masking nonce values ^^are such that: Σ^^^ = ^^ + ^^ + ^^ = ^Here, ^ may be referred to as a global masking nonce value.It will be acknowledged from the subsequent description ofFigs. 5A to 5C that ^ is never calculated in full throughoutthe digital signature generation process. The partial maskingnonce values ^^ may be stored in the buffer 2045 so that theymay be swiftly retrieved later on.By never calculating the quantities ^, ^, and ^ throughout thesignature generation process, and instead dividing them into ^ parts, it becomes necessary for malicious actors to establish all of e.g. the partial private keys ^^, partial nonce values ^^, partial masking nonce values ^^in order to reconstruct the quantities which were used to generate the digital signature. Steps S310 and S312 may take place at the same time as each other, or in either order. In step S310, the partial nonce values ^^and partial masking nonce values ^^may be retrievedfrom the buffer 2045, and a quantity ^ may be computed:^ = Σ^^^^^^^ = ^^^^ + ^^^^ + ^^^^ + ^^^^ + ^^^^ + ^^^^ + ^^^^ + ^^^^ + ^^^^It is straightforward to see that: ^= (^^ + ^^ + ^^)(^^ + ^^ + ^^) = ^ ∙ ^It should be noted that ^ is calculated without ever using theglobal nonce value ^ or the global masking nonce value ^, hence the improved robustness of the digital signature generation algorithm of the present invention to e.g. side channelattacks. The intermediate value ^ may be stored in the buffer2045.After the quantity ^ is computed in step S310, it may beretrieved from the buffer 2045, and a corresponding quantity^^^ is computed. ^^^ is the inverse of the quantity ^ modulo^, where ^ is the order of the elliptic curve. Generating theinverse of a quantity modulo ^ may be achieved using knownalgorithms such as the Euclidean extended algorithm for calculating a modular inverse. The inverse of theintermediate quantity ^^^ may be stored in the buffer 2045 forease of retrieval. Unlike in prior art digital signature algorithms, according tothe present invention, the nonce inversion step of generating^^^does not need to be protected against attack. Even ifpartial, or indeed, complete information about ^ is leaked, anattacked must gain full knowledge of all of the partial masking nonce values ^^, which requires an attack of order ^.Even when the value of ^ is low, e.g. 2 or 3, such attacksrequire a great deal of sophistication and difficult to carryout effectively. In step S312, a different value Γ^is first calculated: Γ^ = [^^]^Thus, the Γ^are a set of points on the elliptic curve, each obtained by adding (by elliptic curve point addition) thegenerator point or base point ^ to itself ^^ times. Theelliptic curve point addition may be executed using the same scheme as was used in step S302. The points Γ^may be stored in the buffer 2045. After the set of points Γ^have been computed, they may beretrieved from the buffer 2045 and a point Γ may be computed:Γ = Σ^Γ^ = Γ^ + Γ^ + Γ^ Again, this denotes elliptic curve point addition of thepoints Γ^. The point Γ may be stored in the buffer 2045.In step S314, the point Γ may be retrieved from the buffer 2045and a point ^ may be computed:^ = [^^^]Γ^ is a point on the curve generated by the addition of Γ toitself ^^^times (using elliptic curve point addition). It can be shown relatively straightforwardly that: This is analogous to the nonce inversion step in the known ECDSA. Thus, it may be seen that the use of the plurality of partial masking nonce values ^^, and the intermediate values ^and ^^^ enable the quantity ^ to be calculated without needingto calculate the actual nonce value ^, thereby greatly improving the security of the digital signature generation process.After the point ^ has been calculated, the partial maskingnonce values ^^may be discarded from e.g. the buffer 244, in order to free up storage capacity, because they are no longer required in the calculation of the digital signature. Alternatively, they may be discarded later on, e.g. after the calculation of the value ^.The value ^ is then computed, which is the x-coordinate of thepoint ^ modulo ^. ^ forms one component of the digitalsignature which is ultimately output.In step S316 it is determined whether ^ is equal to zero.Various steps may take place if it is determined that ^ isequal to zero, denoted “C” in Fig. 5B. Essentially, stepsneed to be carried out which ensure that, when ^ is recomputed,a different value is obtained. The value ^ depends on only theplurality of partial nonce values ^^, as demonstrated later (the masking nonce values ^^are only a tool which conceals the value of the nonce values during the signature generationprocess). Thus, in response to a determination that ^ is equalto zero, the process may return to step S308 and regenerate the plurality of masking partial nonce values ^^. When the new plurality of partial nonce values ^^are regenerated, the process may then proceed to step S310, in which a new value ofthe intermediate values ^ and ^^^ are computed. Then, theprocess may return to step S314 in which ^, and ^ arerecomputed.In other cases, if it is determined that ^ is equal to zero instep S316, the process may be aborted entirely, and return to step S300.If it is determined in step S316 that ^ is not equal to zero,the process continues to step S318 in Fig. 5C. In this step, a plurality of values ^^are computed: ^^ = Σ^^^^^Thus: ^^ = ^^(^^ + ^^ + ^^)^^ = ^^(^^ + ^^ + ^^)^^ = ^^(^^ + ^^ + ^^)From this, it can be shown that: Σ^^^ = (^^ + ^^ + ^^)(^^ + ^^ + ^^) = ^ ∙ ^But, as with the global nonce value ^, global masking noncevalue ^, and global private key ^, the global value ^ is nevercalculated. In step S320, a plurality of values ^^are computed: ^^ = ^^^ + ^^^ Thus: ^^ = ^^^ + ^ ∙ ^^ ∙ (^^ + ^^ + ^^)^^ = ^^^ + ^ ∙ ^^ ∙ (^^ + ^^ + ^^)^^ = ^^^ + ^ ∙ ^^ ∙ (^^ + ^^ + ^^)At this point, the partial private keys ^^and the partial nonce values ^^may be discarded, since they are no longer required to calculate ^, the remaining part of the digital signature.Finally, the second part of the signature ^ is calculated:^ = Σ^^^Thus: ^= ^ ∙ (^^ + ^^ + ^^) + ^ ∙ (^^ + ^^ + ^^)(^^ + ^^ + ^^)^ = (^ + ^ ∙ ^) ∙ ^However, this value is reached without ever calculating thevalues ^ or ^, in contrast to the classic ECDSA algorithm,which requires the direct use of the private key ^ and theECDSA nonce value ^. Here, it can be seen that the noncevalue ^ used in the present process is equivalent to theinverse of the nonce value ^ used in the classic ECDSAalgorithm exemplified in Fig. 2.In step S322, it is determined whether ^ is equal to zero. Ifit is, the process may abort and start again at step S300 ofFig. 3A. Alternatively, because the value of ^ depends on thevalue of ^, the steps which were taken in the event that ^ wasdetermined to be zero in step S316 may be taken in the eventthat ^ is determined to be zero.If it is determined that ^ is not equal to zero, the digitalsignature (^, ^) is output by the digital signature generationmodule 2020 in step S324. Returning now to Fig. 4, in step S204 the digital signature(^, ^) is output by the output module 206 of the host device 200,e.g. via the client device interface module 201 to the client device 100 and the process is complete. The features disclosed in the foregoing description, or in the following claims, or in the accompanying drawings, expressed in their specific forms or in terms of a means for performing the disclosed function, or a method or process for obtaining the disclosed results, as appropriate, may, separately, or in any combination of such features, be utilised for realising the invention in diverse forms thereof. While the invention has been described in conjunction with the exemplary embodiments described above, many equivalent modifications and variations will be apparent to those skilled in the art when given this disclosure. Accordingly, the exemplary embodiments of the invention set forth above are considered to be illustrative and not limiting. Various changes to the described embodiments may be made without departing from the spirit and scope of the invention. For the avoidance of any doubt, any theoretical explanations provided herein are provided for the purposes of improving the understanding of a reader. The inventors do not wish to be bound by any of these theoretical explanations. Any section headings used herein are for organizational purposes only and are not to be construed as limiting the subject matter described. Throughout this specification, including the claims which follow, unless the context requires otherwise, the word “comprise” and “include”, and variations such as “comprises”, “comprising”, and “including” will be understood to imply the inclusion of a stated integer or step or group of integers or steps but not the exclusion of any other integer or step or group of integers or steps. It must be noted that, as used in the specification and the appended claims, the singular forms “a,” “an,” and “the” include plural referents unless the context clearly dictates otherwise. Ranges may be expressed herein as from “about” one particular value, and / or to “about” another particular value. When such a range is expressed, another embodiment includes from the one particular value and / or to the other particular value. Similarly, when values are expressed as approximations, by the use of the antecedent “about,” it will be understood that the particular value forms another embodiment. The term “about” in relation to a numerical value is optional and meansfor example + / - 10%.
Claims
CLAIMS1. A computer-implemented method, executed by a host device, ofgenerating a digital signature for a message ^ based on anelliptic curve having an order ^, field characteristic ^, and base point ^, generation of the elliptic curve being secure against side channel attacks up to the (^ − 1) order, thecomputer-implemented method comprising: retrieving, from a memory, a plurality of ^ partialprivate keys ^^, where the sum of the ^ partial private keys ^^is a global private key ^; generating a plurality of partial nonce values ^^, wherein aglobal nonce value is given by ^ = ∑^ ^^;generating a plurality of partial masking nonce values ^^, wherein a global masking nonce value is given by ^ = ∑^ ^^;generating a first signature element ^ using theplurality of partial nonce values ^^, the plurality of partial masking nonce values ^^and the base point ^; generating a second signature element ^ which is equal to^(^ + ^^), using the first signature element, a hash ^ of themessage ^, the plurality of partial private keys ^^, the plurality of partial nonce values ^^, and the plurality of partial masking nonce values ^^; and outputting a pair of values (^, ^) as the digital signatureof the message ^.
2. The computer-implemented method of claim 1, wherein:the global private key ^ is not calculated at any point.
3. The computer-implemented method of claim 1 or claim 2,wherein: the global nonce value ^ is not calculated at any point.
4. The computer-implemented method of any one of claims 1 to 3,wherein: the global masking nonce value ^ is not calculated at anypoint.
5. The computer-implemented method of any one of claims 1 to 4,wherein generating the first signature element ^ comprises:generating a first intermediate point Γ using theplurality of masking nonce values ^^ and the base point ^; andgenerating a value ^^^, which is an inverse of theproduct ^^, using the partial nonce valuesand the partialmasking nonce values ^^; and generating the first signature element ^ using the firstintermediate point Γ and the value ^^^.
6. The computer-implemented method of claim 5, wherein generatingthe first intermediate point Γ comprises:generating a plurality of points Γ^ = [^^]^, where [^^]^denotes elliptic curve point addition modulo ^ of the point ^to itself ^^ times; andgenerating the first intermediate point Γ = ∑^ Γ^ modulo ^which denotes elliptic curve point addition of the points Γ^for all ^.
7. The computer-implemented method of claim 5 or claim 6, whereingenerating the value ^^^comprises: generating a value ^ = ∑^^ ^^^^, which denotes summation ofthe product of ^^^^ over ^ and ^; andapplying a modular inversion function to ^ to generate avalue ^^^, wherein the inversion function is modulo ^.
8. The computer-implemented method of any one of claims 5 to 7,wherein generating the first signature element ^ comprises:generating a point ^ = [^^^]Γ, and a value ^ = ^^, where[^^^]Γ denotes elliptic curve point addition modulo ^ of thepoint Γ to itself ^^^ times, and where ^^ is the ^-coordinateof the point ^ modulo ^.
9. The computer-implemented method of any one of claims 1 to 8,wherein generating the second signature element ^ comprises:generating a set of secondary intermediate values ^^ =∑^ ^^^^ modulo ^, which denotes summation of the product ^^^^ over^;generating a plurality of partial signatures ^^ = ^^^ + ^^^modulo ^, where ^ is a hash of the message ^;generating a value ^ =modulo ^.
10. The computer-implemented method of any one of claims 1 to 9,further comprising: retrieving the global private key ^ from a memory; andgenerating the plurality of partial private keyssuch that ^ = Σ^^^.
11. The computer-implemented method of claim 10, furthercomprising: generating a plurality of partial public keys= [^^]^,where [^^]^ denotes the application of the elliptic curve pointaddition operation modulo ^ ^^ times, the first applicationbeing to the point ^; generating the global public key ^ =which denoteselliptic curve point addition modulo ^ of the pointsfor all^; and in response to a determination that ^ = O, the identitypoint, discarding the generated plurality of partial private keys ^^, and generating a new plurality of partial private keys ^^′.
12. The computer-implemented method of any one of claims 1 to 11,wherein: ^is equal to 2, 3, or 4.
13. The computer-implemented method of any one of claims 1 to 12,wherein, if ^ = 0, the computer-implemented method furthercomprises: discarding the generated plurality of partial private keys ^^, and generating a new plurality of partial private keys ^^; and / or discarding the generated plurality of partial nonce values ^^, and generating a new plurality of nonce values ^^′.
14. The computer-implemented method of any one of claims 1 to 13,wherein:if ^ = 0, the computer-implemented method furthercomprises: discarding the generated plurality of partial private keys ^^, and generating a new plurality of partial private keys ^^; and / or discarding the generated plurality of partial nonce values ^^, and generating a new plurality of nonce values ^^′.
15. The computer-implemented method of any one of claims 1 to 14,further comprising generating a refreshed plurality of partial private keys ^^^ such that ∑^ ^^^ = ^.
16. The computer-implemented method of claim 15, whereingenerating the refreshed plurality of partial private keys ^^^comprises: selecting ^ − 1 values ^^;setting ^^^ = ^^ + ^_^ for ^ < ^ − 1; and17. The computer-implemented method of any one of claims 1 to 16,further comprising: receiving a message ^; and applying a hashing algorithm to the message ^ to generatethe hash ^.
18. A host device configured to execute the computer-implementedmethod of any one of claims 1 to 17.
19. A computer program product comprising instructions which, whenthe program is executed by a computer, cause the computer to carry out the computer-implemented method of any one of claims 1 to 17.
Citation Information
Patent Citations
Computer-implemented method of generating a threshold vault
US20200213099A1