IP Library Granted Patent US 8,472,621
Granted Patent B2
US 8,472,621 · App. 12/787,660 · Granted Jun 25, 2013

Protection of a prime number generation for an RSA algorithm

Inventors: Joan Daemen (Overpelt, BE); Frank Cuypers (De Pinte, BE); Gilles Van Assche (Brussels, BE); Pierre-Yvan Liardet (Peynier, FR)
Assignees: STMicroelectronics (Rousset) SAS; Proton World International N.V.
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 8,472,621
App. No.
12/787,660
Granted
Jun 25, 2013
Kind
B2
Abstract

A method for protecting a generation, by an electronic circuit, of at least one prime number by testing the prime character of successive candidate numbers, including: for each candidate number: the calculation of a reference number involving at least one first random number, and at least one primality test based on modular exponentiation calculations; and for a candidate number having successfully passed the primality test: a test of consistency between the candidate number and its reference number.

Claims (64)

1. A method for protecting generation, by an electronic circuit, of at least one prime number by testing a prime character of successive candidate numbers, comprising:

for each candidate number of the successive candidate numbers:

calculating, with the electronic circuit, a respective reference number involving at least one first random number; and

performing, with the electronic circuit, at least one primality test based on modular exponentiation calculations; and

for a candidate number of the successive candidate numbers having successfully passed said primality test, testing a consistency, with the electronic circuit, between the candidate number and its respective reference number.

2. The method of claim 1 , wherein the respective reference number is obtained by subtracting from or by adding to its respective candidate number a quantity depending on said at least one first random number.

3. The method of claim 2 , wherein each candidate number of the successive candidate numbers is submitted, before the at least one primality test based on modular exponentiation calculations, to at least one primality test based on a sieve table comprising as many elements as there are prime numbers between a first threshold and a second threshold, an initial candidate number of the successive candidate numbers being obtained by multiplying an arbitrary number by a first product of the prime numbers smaller than the first threshold.

4. The method of claim 3 , wherein a second candidate number of the successive candidate numbers is determined at least in part based on a prior first candidate number of the successive candidate numbers and the respective reference number of the first candidate number by adding to the first candidate number and the respective reference number of the first candidate number, said first product.

5. The method of claim 3 , wherein a second candidate number of the successive candidate numbers is determined at least in part based on a prior first candidate number of the successive candidate numbers and the respective reference number of the first candidate number by adding to the first candidate number and the respective reference number of the first candidate number, a multiple of said first product, the multiple being a function of at least one second random number and a second product of the prime numbers ranging between the first and the second thresholds.

6. The method of claim 5 , wherein said multiple further is a function of a public exponent of an RSA algorithm.

7. The method of claim 3 , wherein the sieve table of each candidate number is based on the respective reference number of the candidate number.

8. The method of claim 3 , wherein for at least one candidate number of the successive candidate numbers, the sieve table is updated from a prior sieve table by adding to each element of the prior sieve table said first product modulo the element.

9. The method of claim 1 , wherein each candidate number is submitted, before the at least one primality test based on modular exponentiation calculations, to a test of compliance with a public exponent of an RSA algorithm.

10. The method of claim 1 , wherein the at least one primality test based on modular exponentiation calculations comprises a Miller-Rabin test.

11. An electronic circuit comprising means for implementing the method of claim 1 .

12. A method, comprising:

testing a primality of a candidate number using a circuit, the testing of the primality of the candidate number comprising:

generating a reference number from the candidate number; and

performing a first primality test on the reference number; and

testing a consistency between the candidate number and the reference number if the candidate number successfully passes the testing of the primality of the candidate number.

13. The method of claim 12 , wherein testing the primality of the candidate number further comprises performing a second primality test on the candidate number.

14. The method of claim 13 , wherein testing the consistency between the candidate number and the reference number is performed subsequent to performing the first primality test and the second primality test.

15. The method of claim 12 , wherein the first primality test comprises a sieve table test involving testing primality of the reference number using each of a plurality of prime numbers between a first threshold and a second threshold.

16. The method of claim 15 , wherein testing the primality of the candidate number further comprises performing a second primality test on the candidate number, wherein the second primality test comprises a modular exponentiation calculation.

17. The method of claim 16 , wherein the second primality test comprises a Miller Rabin test.

18. The method of claim 12 , wherein generating the reference number comprises subtracting from or adding to the candidate number a quantity depending on at least one first random number.

19. The method of claim 12 , wherein the circuit forms at least part of a smartcard.

20. An apparatus, comprising:

a circuit configured to test a primality of a candidate number, wherein testing the primality of the candidate number comprises:

generating a reference number from the candidate number; and

performing a first primality test on the reference number,

wherein the circuit is further configured to test a consistency between the candidate number and the reference number if the candidate number successfully passes the testing of the primality of the candidate number.

21. The apparatus of claim 20 , wherein testing the primality of the candidate number further comprises performing a second primality test on the candidate number.

22. The apparatus of claim 21 , wherein testing the consistency between the candidate number and the reference number is performed subsequent to performing the first primality test and the second primality test.

23. The apparatus of claim 20 , wherein the first primality test comprises a sieve table test involving testing primality of the reference number using each of a plurality of prime numbers between a first threshold and a second threshold.

24. The apparatus of claim 23 , wherein testing the primality of the candidate number further comprises performing a second primality test on the candidate number, wherein the second primality test comprises a modular exponentiation calculation.

25. The apparatus of claim 24 , wherein the second primality test comprises a Miller Rabin test.

26. The apparatus of claim 20 , wherein generating the reference number comprises subtracting from or adding to the candidate number a quantity depending on at least one first random number.

27. The apparatus of claim 20 , wherein the circuit forms at least part of a smartcard.

28. An apparatus, comprising:

a memory;

means for testing a primality of a candidate number, the testing of the primality of the candidate number comprising:

generating a reference number from the candidate number; and

performing a first primality test on the reference number; and

means for testing a consistency between the candidate number and the reference number if the candidate number successfully passes the testing of the primality of the candidate number.

29. The apparatus of claim 28 , wherein testing the primality of the candidate number further comprises performing a second primality test on the candidate number.

30. The apparatus of claim 29 , wherein testing the consistency between the candidate number and the reference number is performed subsequent to performing the first primality test and the second primality test.

31. The apparatus of claim 28 , wherein the first primality test comprises a sieve table test involving testing primality of the reference number using each of a plurality of prime numbers between a first threshold and a second threshold.

32. The apparatus of claim 31 , wherein testing the primality of the candidate number further comprises performing a second primality test on the candidate number, wherein the second primality test comprises a modular exponentiation calculation.

33. The apparatus of claim 32 , wherein the second primality test comprises a Miller Rabin test.

34. The apparatus of claim 28 , wherein generating the reference number comprises subtracting from or adding to the candidate number a quantity depending on at least one first random number.

35. The apparatus of claim 28 , wherein the memory and the means for testing the primality of the candidate number form at least part of a smartcard.

36. At least one processor readable storage device storing processor executable instructions which, when executed by at least one processor, cause the at least one processor to perform a method comprising:

testing a primality of a candidate number, the testing of the primality of the candidate number comprising:

generating a reference number from the candidate number; and

performing a first primality test on the reference number; and

testing a consistency between the candidate number and the reference number if the candidate number successfully passes the testing of the primality of the candidate number.

37. The at least one processor readable storage device of claim 36 , wherein testing the primality of the candidate number further comprises performing a second primality test on the candidate number.

38. The at least one processor readable storage device of claim 37 , wherein testing the consistency between the candidate number and the reference number is performed subsequent to performing the first primality test and the second primality test.

39. The at least one processor readable storage device of claim 36 , wherein the first primality test comprises a sieve table test involving testing primality of the reference number using each of a plurality of prime numbers between a first threshold and a second threshold.

40. The at least one processor readable storage device of claim 39 , wherein testing the primality of the candidate number further comprises performing a second primality test on the candidate number, wherein the second primality test comprises a modular exponentiation calculation.

41. The at least one processor readable storage device of claim 40 , wherein the second primality test comprises a Miller Rabin test.

42. The at least one processor readable storage device of claim 36 , wherein generating the reference number comprises subtracting from or adding to the candidate number a quantity depending on at least one first random number.

43. A smartcard comprising the at least one processor readable storage device of claim 36 .

Assignments (2)
CHANGE OF NAME Recorded Oct 9, 2024
From: PROTON WORLD INTERNATIONAL
To: STMICROELECTRONICS BELGIUM
Reel/Frame 069174/0847 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 2, 2010
From: DAEMEN, JOAN; CUYPERS, FRANK; VAN ASSCHE, GILLES; LIARDET, PIERRE-YVAN
To: PROTON WORLD INTERNATIONAL N.V.; STMICROELECTRONICS (ROUSSET) SAS
Reel/Frame 024628/0691 →
Priority Claims (1)
FR 09 53523 · May 28, 2009 · national
Continuity (1)
Related Publication 20100306295A1 · Dec 2, 2010