Multiple prime number generation using a parallel prime number search algorithm
First Claim
1. In a prime number generating system including a processing unit and a plurality of exponentiation units communicatively coupled with the processing unit, a process of searching for a plurality of prime number values, comprising the steps of:
- randomly generating a plurality of k random odd numbers each providing a prime number candidate, including defining a length L for each of the plurality of k random numbers to be generated, and generating each of said plurality of k random odd numbers in an interval between 2L and 2L−
1; and
performing a plurality of t primality tests on each of said plurality of k randomly generated prime numbers whereby (k×
t) tests are performed in parallel, each of the plurality of (k×
t) primality tests including an associated exponentiation operation executed by an associated one of a plurality of (k×
t) exponentiation units.
8 Assignments
0 Petitions
Accused Products
Abstract
A process is provided for searching in parallel for a plurality of prime number values simultaneously includes the steps of: randomly generating a plurality of k random odd numbers (wherein k is preferably more than 2, but could also be one or more) expressed as n0,0, n1,0, . . . n((k−1)),0, each number providing a prime number candidate; determining a plurality of y additional odd numbers based on each one of the randomly generated odd numbers n0,0, n1,0, . . . n(k−1),0 to provide additional prime number candidates thereby yielding a total number of prime number candidates; sieving the total number of prime number candidates by performing a small divisor test on each of the candidates in order to eliminate candidates revealed to be composite numbers by the small divisor test thereby yielding a sieved number s of candidates; and performing a first probabilistic primality test on each of the sieved number s of candidates, each of the plurality of s first primality tests including an associated exponentiation operation executed by an associated one of a plurality of s of the exponentiation units, the exponentiation operations being performed by the plurality of s exponentiation units substantially simultaneously in order to eliminate candidates revealed to be composite numbers by the primality test thereby yielding a remaining number r of candidates.
36 Citations
51 Claims
-
1. In a prime number generating system including a processing unit and a plurality of exponentiation units communicatively coupled with the processing unit, a process of searching for a plurality of prime number values, comprising the steps of:
-
randomly generating a plurality of k random odd numbers each providing a prime number candidate, including defining a length L for each of the plurality of k random numbers to be generated, and generating each of said plurality of k random odd numbers in an interval between 2L and 2L−
1; andperforming a plurality of t primality tests on each of said plurality of k randomly generated prime numbers whereby (k×
t) tests are performed in parallel, each of the plurality of (k×
t) primality tests including an associated exponentiation operation executed by an associated one of a plurality of (k×
t) exponentiation units. - View Dependent Claims (2, 3)
-
-
4. In a prime number generating system including a processing unit and a plurality of exponentiation units communicatively coupled with the processing unit, a process of searching for a plurality of prime number values, comprising the steps of:
-
randomly generating a plurality of k random odd numbers each providing a prime number candidate, wherein said plurality of k randomly generated numbers are expressed as n0,0, n1,0 . . . n(k−
1)),0;determining a plurality of y additional odd numbers based on each one of the randomly generated numbers n0,0, n1,0, . . . n(k−
1),0 to provide (K×
y) additional prime number candidates (n0,1, n0,2, . . . n0,y), (n1,1, n1,2, . . . n1,y), . . . (n(k−
1),1, n(k−
1),2, . . . n(k−
1),y) thereby yielding a total number of (k×
(y+1)) prime number candidates; andperforming t primality tests on each of said total number of (k×
(y+1)) prime number candidates, each of the plurality of (k×
(y+1)×
t) primality tests including an associated exponentiation operation executed by an associated one of a plurality of (k×
(y+1)×
t) exponentiation units, said exponentiation operations being performed in parallel by said plurality of (k×
(y+1)×
t) exponentiation units. - View Dependent Claims (5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. In a prime number generating system including a processing unit and a plurality of exponentiation units communicatively coupled with the processing unit, a process of searching for a plurality of prime number values, comprising the steps of,
randomly generating at least one random odd number providing a prime number candidate; -
determining a plurality of y additional odd numbers based on said at least one randomly generated odd number to provide y additional prime number candidates, thereby providing a total number of y+1 candidates; performing a plurality t primality tests on each of said (y+1)×
t candidates, each of the (y+1)×
t primality tests including an associated exponentiation operation executed by an associated one of (y+1)×
t exponentiation units, said (y+1)×
t exponentiation operations being performed in parallel by said associated (y+1)×
t exponentiation units;and further comprising the step of; receiving a specified public exponent e associated with a cryptographic application; testing the suitability of each of said prime number candidates for use in said cryptographic application by testing the relative primality of (a) each of said prime number candidates (pc) minus one (pc−
1) and (b) a specified public exponent e, wherein said step of testing the suitability is performed prior to said step of performing said primality tests. - View Dependent Claims (14, 15, 16, 17, 18, 19)
-
-
20. In a prime number generating system including a processing unit and a plurality of exponentiation units communicatively coupled with the processing unit, a process of searching for a plurality of prime number values, comprising the steps of:
-
randomly generating a plurality of random odd numbers providing prime number candidates; sieving said candidates by performing a small divisor test on each of said candidates in order to eliminate candidates revealed to be composite numbers by said small divisor test thereby yielding a sieved number s of candidates; testing the pimality of said sieved candidates by performing a first one of a plurality of t primality tests on said sieved number s of candidates, each of the plurality s of the first primality tests including an associated exponentiation operation executed by an associated one of a plurality s of the exponentiation units, said exponentiation operations being performed simultaneously by said plurality of s exponentiation units in order to eliminate candidates revealed to be composite numbers thereby yielding a remaining number r of candidates; and performing a plurality of t−
1 additional ones of said t primality tests on each of said remaining number r of candidates, each of the plurality of (r×
(t−
1)) first primality tests including an associated exponentiation operation executed by an associated one of a plurality of (r×
(t−
1)) exponentiabon units, said (r×
(t−
1)) exponentiation operations being simultaneously performed by said plurality of (r×
(t−
1)) exponentiation units in order to eliminate further candidates revealed to be composite numbers. - View Dependent Claims (21)
-
-
22. In a prime number generating system including a processing unit and a plurality of exponentiation units communicatively coupled with the processing unit, a process of searching for a plurality of prime number values, comprising the steps of:
-
randomly generating a plurality of k random odd numbers expressed as n0,0, n1,0, . . . n(k−
1),0, each said number providing a prime number candidate;determining a plurality of y additional odd numbers based on each one of the randomly generated odd numbers n1,0, . . . n(k−
1),0, to provide (k×
y) additional prime number candidates (n0,1, n0,2′
. . . n0,y), (n1,1, n1,2, . . . n1,y), . . . (n(k−
1),1, n(k−
1),y) thereby yielding a total number of (k×
(y+1)) prime number candidates;sieving said (k×
(y+1)) prime number candidates by performing a small divisor test on each of said candidates in order to eliminate candidates revealed to be composite numbers by said small divisor test thereby yielding a sieved number s of candidates; andperforming at least one primality test on each of said sieved number s of candidates, each of the plurality of s primality tests including an associated exponentiation operation executed by an associated one of a plurality of s of the exponentiation units, said exponentiation operations being performed in parallel by said plurality of s exponentiation units in order to eliminate candidates revealed to be composite numbers by said primality test thereby yielding a remaining number r of candidates; and performing a plurality of t−
1 additional primality tests on each of said remaining number r of candidates, each of the plurality of (r×
(t−
1)) primality tests including an associated exponentiation operation executed by an associated one of a plurality of (r×
(t−
1)) exponentiation units, said (r×
(t−
1)) exponentiation operations being performed by in parallel by said plurality of (r×
(t−
1)) exponentiation units in order to eliminate further candidates revealed to be composite numbers. - View Dependent Claims (23, 24, 25, 26, 27, 28)
-
-
29. A prime number generating system for searching for a plurality of prime number values, comprising:
-
processing means operative to randomly generate a plurality of k random odd numbers each providing a prime number candidate, and to provide a plurality t sets of test parameters associated with a plurality of t primality tests to be performed on each one of said plurality of k randomly generated numbers, each (k×
t) sets of said test parameters including said associated one of said plurality k randomly generated numbers and an associated one of a plurality of t base values; anda plurality of exponentiation units each being communicatively coupled with said processing means, said plurality of exponentiation units includes a plurality of at least (k×
t) exponentiation units each being responsive to an associated one of said (k×
t) sets of test parameters, and operative to perform an exponentiation operation based on said associated set of test parameters, and also operative to generate a primality test result signal declaring said associated prime number candidate to be either composite or prime with reference to said associated base value, said exponentiation units being operative to perform said plurality of at least (k×
t) exponentiation operations in parallel;said processing means being responsive to said primality test result signals, and operative to process said test result signals for the purpose of eliminating randomly generated numbers declared to be composite in accordance with a search for prime number values. - View Dependent Claims (30, 31, 32, 33, 34, 35, 36)
-
-
37. A prime number generating system for searching for a plurality of prime number values, comprising:
-
processing means operative to randomly generate at least one random odd number providing a prime number candidate, and to determine a plurality of y additional odd numbers based on each of said at least one randomly generated odd number to provide y additional prime number candidates, thereby providing a total number of y+1 candidates, said processing means also operative to provide a plurality of t sets of test parameters associated with a plurality t primality tests to be performed on each one of said y+1 prime number candidates, each of the ((y+1(×
t) sets of test parameters including said associated one of said plurality of prime number candidates and an associated base value; anda plurality of at least ((y+1)×
t) exponentiation units each communicatively coupled with said processing means, and each responsive to an associated one of said ((y+1)×
t) sets of test parameters, and operative to perform an ecponentiation operation based on said associated set of test parameters, and also operative to generate a primality test result signal declaring said associated prime number candidate to be either composite or prime with reference to said associated base value, said plurality of at least ((y+1)×
t) exponentiation units being operative in parallel to perform said plurality of ((y+1)×
t) exponentiation;said processing means being responsive to said primality test result signals, and operative to process said test result signals for the purpose of eliminating randomly generated numbers declared to be composite in accordance with a search for prime number values. - View Dependent Claims (38, 39, 40, 41, 42, 43)
-
-
44. A computer readable storage medium having stored thereon encoding instructions for executing a process of searching for a plurality of prime number values in a prime number generation system including a processing unit and a plurality of exponentiation units communicatively coupled with the processing unit, the process comprising the steps of:
-
randomly generating a plurality of k random odd numbers each providing a prime number candidate, said plurality of k randomly generated numbers are expressed as n0,0, n1,0, . . . n(k−
1),0;determining a plurality of y additional odd numbers based on each one of the randomly generated numbers n0,0, n1,0, . . . n(k−
1),0 to provide (k×
y) additional prime number candidates (n0,1, n0,2, . . . n0,y), (n1,1, n1,2, . . . n1,y), . . . (n(k−
1),1, n(k−
1),2, . . . n(k−
1),y) thereby yielding a total number of (k×
(y+1)) prime number candidates; andperforming a plurality of t primality tests on each of said total number of (k×
(y+1)) prime numbers whereby (k×
(y+1)×
t) tests are performed in parallel, each of the plurality of (k×
(y+1)×
t) primality tests including an associated exponentiation operation executed by an associated one of a plurality of (k×
x(y+1)×
t) exponentiation units. - View Dependent Claims (45, 46, 47, 48)
-
-
49. In a prime number generating system including a processing unit and a plurality of exponentiation units communicatively coupled with the processing unit, a process of searching for a plurality of prime number values, comprising the steps of:
-
randomly generating a plurality of random odd numbers each providing a prime number candidate; and receiving a specified public exponent e associated with a cryptographic application; testing the suitability of each of said prime number candidates for use in said cryptographic application by testing the relative primality of (a) each said prime number candidate (pc) minus one (pc−
1) and (b) said specified public exponent e to yield a plurality of k suitable prime number candidates; andperforming a plurality of t primality tests on each of said plurality of k suitable prime number candidates whereby (k×
t) tests are performed in parallel, each of the plurality of (k×
t) primality tests including an associated exponentiation operation executed by an associated one of a plurality of (k×
t) exponentiation units.
-
-
50. In a prime number generating system including a processing unit and a plurality of exponentiation units communicatively coupled with the processing unit, a process of searching for a plurality of prime number values, comprising the steps of:
-
randomly generating a plurality of k random odd numbers expressed as n0,0, n1,0, . . . n(k−
1),0, each said number providing a prime number candidate;determining a plurality of y additional odd numbers based on each one of the randomly generated odd numbers n1,0, . . . n(k−
1),0 to provide (k×
y) additional prime number candidates (n0,1, n0,2′
. . . n0,y), (n1,1, n1,2, . . . n1,y), . . . n(k−
1),1, n(k−
1),2, . . . n(k−
1),y) thereby yielding a total number of (k×
(y+1)) prime number candidates;sieving said (k×
(y+1)) prime number candidates by performing a small divisor test on each of said candidates in order to eliminate candidates revealed to be composite numbers by said small divisor test thereby yielding a sieved number of candidates;receiving a specified public exponent e associated with a cryptographic application; testing the suitability of each of said sieved prime number candidates for use in said cryptographic application by testing the relative primality of (a) each said sieved prime number candidate (pc) minus one (pc−
1) and (b) said specified public exponent e to yield s suitable sieved candidates; andperforming at least one primality test on each of said s suitable sieved candidates, each of the plurality of s primality tests including an associated exponentiation operation executed by an associated one of a plurality of s exponentiation units, said exponentiation operations being performed in parallel by said plurality of s exponentiation units in order to eliminate candidates revealed to be composite numbers by said primality test thereby yielding a remaining number r of candidates. - View Dependent Claims (51)
-
Specification