IP Library › Granted Patent US 12,250,303
Granted Patent B2
US 12,250,303 · App. 17/820,843 · Granted Mar 11, 2025

Protection of a cryptographic operation

Inventor: Guilhem Assael (Pourrieres, FR)
Assignee: STMICROELECTRONICS (ROUSSET) SAS
H04L9/0877G06F7/725
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,250,303
App. No.
17/820,843
Granted
Mar 11, 2025
Kind
B2
Abstract

The present disclosure relates to a cryptographic method comprising: multiplying a point belonging to a mathematical set with a group structure by a scalar by performing: the division of a scalar into a plurality of groups formed of a same number w of digits, w being greater than or equal to 2; and the execution, by a cryptographic circuit and for each group of digits, of a sequence of operations on point, the sequence of operations being identical for each group of digits, at least one of the operations executed for each of the groups of digits being a dummy operation.

Claims (73)

1. A method, comprising:

executing an application invoking a cryptographic operation; and

performing the invoked cryptographic operation, the performing the invoked cryptographic operation including:

multiplying, using cryptographic circuitry, a point, belonging to a mathematical set with a group structure, by a scalar; and

protecting, using the cryptographic circuitry, the scalar during the multiplying, the multiplying and protecting including:

dividing the scalar into a plurality of groups formed of a same number w of digits, w being greater than or equal to 2; and

executing, for each group of digits, of a sequence of operations on the point, the sequence of operations having a same sequence for each group of digits, at least one of the operations executed for each of the groups of digits being a dummy operation,

wherein the same sequence of operations comprises:

the execution, w times, of a double operation;

the execution of an add operation; and

the execution, (w−1) times, of the double operation.

2. The method according to claim 1 , comprising:

modifying a current value of an intermediate result of the multiplication in response to each non-dummy operation; and

not modifying the current value in response to a dummy operation.

3. The method according to claim 1 , comprising:

modifying a current value of an intermediate result of the multiplication in response to each non-dummy operation; and

modifying the current value to a different, mathematically equivalent value in response to a dummy operation.

4. The method according to claim 1 , comprising, before the division into a plurality of groups of digits, re-encoding of the scalar in a non-adjacent windowed form of parameter w.

5. The method according to claim 1 , wherein the mathematical set is an elliptic curve or an hyperelliptic curve.

6. The method according to claim 5 , wherein the curve is a Koblitz curve defined by a set of points having the following form:

{( x,y )∈ K×K:y 2 +xy=x 3 +ax 2 +1}

where a is equal to 0 or 1, K is a finite binary field, and x and y define coordinates of a point on the Koblitz curve.

7. The method according to claim 6 , wherein the sequence of operations includes a Frobenius endomorphism.

8. The method according to claim 1 , comprising, before the execution of the sequence of operations on the point, calculation and storage of a plurality of multiples of said point.

9. The method of claim 1 , comprising:

generating a result of the multiplication of the point by the scalar based on the execution of the sequences of operation for the plurality of groups of digits.

10. The method of claim 1 , wherein the invoked cryptographic operation is an authentication operation.

11. A device, comprising:

a memory; and

cryptographic circuitry coupled to the memory, wherein the cryptographic circuitry, in operation, in response to a request from an application, executes a cryptographic operation, the executing the cryptographic operation including multiplying a point by a scalar, the point belonging to a mathematical set with a group structure, and protecting the scalar during the multiplying, the multiplying and protecting including:

dividing the scalar into a plurality of groups formed of a same number w of digits, w being greater than or equal to 2; and

executing, for each group of digits, of a sequence of operations on the point, the sequence of operations having a same sequence for each group of digits, at least one of the operations executed for each of the groups of digits being a dummy operation,

wherein the same sequence of operations comprises:

the execution, w times, of a double operation;

the execution of an add operation; and

the execution, w−1 times, of the double operation.

12. The device according to claim 11 , wherein the multiplying and protecting includes:

modifying a current value of an intermediate result of the multiplication in response to each non-dummy operation; and

not modifying the current value of the intermediate result in response to a dummy operation.

13. The device according to claim 11 , wherein the multiplying and protecting includes:

modifying a current value of an intermediate result of the multiplication in response to each non-dummy operation; and

modifying the current value of the intermediate result to a different, mathematically equivalent value in response to a dummy operation.

14. The device according to claim 11 , wherein the multiplying and protecting includes, before the division into a plurality of groups of digits, re-encoding of the scalar in a non-adjacent windowed form of parameter w.

15. The device according to claim 11 , wherein the mathematical set is an elliptic curve or an hyperelliptic curve.

16. The device according to claim 11 , wherein the cryptographic circuitry, in operation, generates a result of the multiplication of the point by the scalar based on the execution of the sequences of operation for the plurality of groups of digits.

17. The device of claim 11 , wherein the request from the application is an authentication request.

18. A system, comprising:

a host processor, which, in operation, executes an application; and

a cryptographic coprocessor coupled to the host processor, wherein the cryptographic coprocessor, in operation, performs a cryptographic operation in response to a request from the application, the performing the cryptographic operation including multiplying a point by a scalar, the point belonging to a mathematical set with a group structure, and protecting the scalar during the multiplying, the multiplying and protecting including:

dividing the scalar into a plurality of groups formed of a same number w of digits, w being greater than or equal to 2; and

executing, for each group of digits, of a sequence of operations on the point, the sequence of operations having a same sequence for each group of digits, at least one of the operations executed for each of the groups of digits being a dummy operation,

wherein the same sequence of operations comprises:

the execution, w times, of a double operation;

the execution of an add operation; and

the execution, w−1 times, of the double operation.

19. The system of claim 18 , wherein the multiplying and protecting includes, before the division into a plurality of groups of digits, re-encoding of the scalar in a non-adjacent windowed form of parameter w.

20. The system according to claim 18 , wherein the mathematical set is an elliptic curve or an hyperelliptic curve.

21. The system according to claim 20 , wherein the curve is a Koblitz curve defined by a set of points having the following form:

{( x,y )∈ K×K:y 2 +xy=x 3 +ax 2 +1}

where a is equal to 0 or 1, K is a finite binary field, and x and y define coordinates of a point on the Koblitz curve.

22. The system according to claim 18 , wherein the cryptographic coprocessor, in operation, generates a result of the multiplication of the point by the scalar based on the execution of the sequences of operation for the plurality of groups of digits.

23. A non-transitory computer-readable medium having contents which configure cryptographic circuitry to perform a cryptographic operation in response to a request from an application, the performing the cryptographic operation including:

multiplying a point by a scalar, the point belonging to a mathematical set with a group structure; and

protecting the scalar during the multiplying, the multiplying and protecting including:

dividing the scalar into a plurality of groups formed of a same number w of digits, w being greater than or equal to 2; and

executing, for each group of digits, of a sequence of operations on the point, the sequence of operations having a same sequence for each group of digits, at least one of the operations executed for each of the groups of digits being a dummy operation,

wherein the same sequence of operations comprises:

the execution, w times, of a double operation;

the execution of an add operation; and

the execution, w−1 times, of the double operation.

24. The non-transitory computer-readable medium of claim 23 , wherein the contents comprise instructions executed by the cryptographic circuitry.

25. The non-transitory computer-readable medium of claim 23 , wherein the multiplying and protecting includes, before the division into a plurality of groups of digits, re-encoding of the scalar in a non-adjacent windowed form of parameter w.

26. The non-transitory computer-readable medium according to claim 23 , wherein the multiplying and protecting comprises generating a result of the multiplication of the point by the scalar based on the execution of the sequences of operation for the plurality of groups of digits.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 22, 2022
From: ASSAEL, GUILHEM
To: STMICROELECTRONICS (ROUSSET) SAS
Reel/Frame 061181/0673 →
Priority Claims (1)
FR 2109096 · Aug 31, 2021 · national
Continuity (1)
Related Publication 20230074513A1 · Mar 9, 2023
References Cited (9)
US 20080019509A1 · Al-Gahtani · 2008 [cited by examiner]
US 20120008780A1 · Al-Somani et al. · 2012 [cited by applicant]
US 20150288520A1 · Jacobson · 2015 [cited by examiner]
Abdulrahman et al., “New Regular Radix-8 Scheme for Elliptic Curve Scalar Multiplication without Pre-Computation,” [cited by applicant]
Elmegaard-Fessel, “Efficient Scalar Multiplication and Security against Power Analysis in Cryptosystems based on the NIST Elliptic Curves Over Prime Fields,” Thesis for the Master degree in Mathematics, Institute for Ma… [cited by applicant]
Hitchcock et al., “A New Elliptic Curve Scalar Multiplication Algorithm to Resist Simple Power Analysis,” In Batten et al. (eds.), vol. 2384 of Lecture Notes in Computer Science, Springer, [cited by applicant]
Nascimento et al., “A comparison of simple side-channel analysis countermeasures for variable-base elliptic curve scalar multiplication,” XIV Simpósio Brasileiro em Segurança da Informação e de Sistemas Computacionais—S… [cited by applicant]
Pontie et al., “An Elliptic Curve Crypto-Processor Secured by Randomized Windows,” 2014 17th Euromicro Conference on Digital System Design, Verona, Italy Aug. 27-29, 2014, pp. 535-542. [cited by applicant]
Pontie et al., “Dummy operations in scalar multiplication over elliptic curves: A tradeoff between security and performance.” [cited by applicant]