Patent US5289397A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5289397A Expired / Lapsed US ⏱️ 0.0 years remaining

High-speed modulo exponentiator device

Assignee: Micron Technology Inc
•
Filing: 1991-07-22
•
Granted: 1994-02-22
•
Expires: 2011-07-22
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A high-speed modulo exponentiator device employs a computation algorithm and integrated circuit ("IC") hardware implementation to perform the modulo exponentiation function of the form C=B E (Modulo M) as a series of modulo multiplication operations, which in turn are performed as a series of simple addition, multiplication and distributed modulo operations. The intermediate data maintain a bit length in the range of the bit length of the modulus value. The simplified operations are implemented via register add and shift operations in an arithmetic logic circuit. The arithmetic logic has a bit slice architecture which plural bit slices are combined to form the basic carry-save elements of the exponentiator device. The exponentiator device may be cascaded with other devices for handling numbers of longer bit lengths. Improved techniques are used for optimizing the multiplication time and for pipelining the transfer of data between cascaded elements.

Inventors

  • 👤 James M. Clark
  • 👤 Michael Conforti

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-29 13:27
CPC Classifications
G; G06; G06F; G06F7/00; G06F7/60; G06F7/72; G06F7/722; G06F7/723; G06F7/38; G06F7/48; G06F7/52; G06F7/523; G06F7/533; G06F7/5334; G06F7/5336; G06F7/5338

Claims Analysis

Total Claims: 21
Claim 1
Independent Claim 222 words
A high-speed modulo exponentiator device for performing a modulo experimentation function of the form C=B E (Modulo M), wherein E is a large positive integer and B and M are large integers, as a series of modulo multiplication operations of the form P=(X * Y) (Modulo M), wherein X and Y are operands of the exponentiation function in binary form, comprising: digital integrated circuit ("IC") means having an X register, a Y register, and an A register for computing each modulo multiplication operation, said X, Y, and A registers being interconnected and operative with control means for carrying out a loop computation using said X, Y, and A registers including: (a) first register control means for computing an xf factor based upon three most significant bits of Y, (b) second register control means for computing 4*A+xf*X and transferring the result to the A register, (c) third register control means for determining an mf factor based upon a comparison of A with selected threshold values of M, (d) fourth register control means for computing A+mf*M and transferring the result to the A register, and (e) fifth register control means for shifting the bits of the Y register two bits to the left (two most significant bits of Y) and returning control to said first register control means until said loop computation is completed.
Claim 2
Dependent Claim 222 words
A high-speed modulo exponentiator device for performing a modulo experimentation function of the form C=B E (Modulo M), wherein E is a large positive integer and B and M are large integers, as a series of modulo multiplication operations of the form P=(X * Y) (Modulo M), wherein X and Y are operands of the exponentiation function in binary form, comprising: digital integrated circuit ("IC") means having an X register, a Y register, and an A register for computing each modulo multiplication operation, said X, Y, and A registers being interconnected and operative with control means for carrying out a loop computation using said X, Y, and A registers including: (a) first register control means for computing an xf factor based upon three most significant bits of Y, (b) second register control means for computing 4*A+xf*X and transferring the result to the A register, (c) third register control means for determining an mf factor based upon a comparison of A with selected threshold values of M, (d) fourth register control means for computing A+mf*M and transferring the result to the A register, and (e) fifth register control means for shifting the bits of the Y register two bits to the left (two most significant bits of Y) and returning control to said first register control means until said loop computation is completed.
Claim 3
Dependent Claim 23 words
A high-speed modulo exponentiator device according to claim 1, wherein said digital IC means is implemented as a gallium arsenide (GaAs) IC device.
Claim 4
Dependent Claim 21 words
A high-speed modulo exponentiator device according to claim 1, wherein said digital IC means is implemented with a bit slice architecture.
Claim 5
Dependent Claim 26 words
A high-speed modulo exponentiator device according to claim 3, wherein said digital IC means includes a plurality of bit slice units combined in a carry-save element.
Claim 6
Dependent Claim 25 words
A high-speed modulo exponentiator device according to claim 4, wherein said digital IC means includes a plurality of carry-save elements combined in an exponentiator device.
Claim 7
Dependent Claim 27 words
A high-speed modulo exponentiator device according to claim 5, wherein said digital IC means includes a master exponentiator device having input/output and control logic elements combined therewith.
Claim 8
Dependent Claim 26 words
A high-speed modulo exponentiator device according to claim 6, wherein said master exponentiator device includes a most-significant bits carry-save element and a least-significant bits carry-save element.
Claim 9
Dependent Claim 31 words
A high-speed modulo exponentiator device according to claim 6, wherein said master exponentiator device includes a in-boundary carry-save element and an out-boundary carry-save element for transferring data bits across device boundaries.
Claim 10
Dependent Claim 24 words
A high-speed modulo exponentiator device according to claim 6, wherein said digital IC means includes slave exponentiator devices cascaded with said master exponentiator devices.
Claim 11
Dependent Claim 40 words
A high-speed modulo exponentiator device according to claim 1, wherein said digital IC means is incorporated in a public key encryption system for encrypting a base argument B using a public key of an exponent E and a modulus M.
Claim 12
Independent Claim 196 words
A method for performing a modulo exponentiation function of the form C=B E (Modulo M), wherein E is a large positive integer and B and M are large integers, as a series of modulo multiplication operations of the form P=(X * Y) (Modulo M), wherein X and Y are operands of the exponentiation function in binary form, comprising the steps of: (a) providing an X register, a Y register, and an A register, and control means for carrying out a loop computation using said X, Y, and A registers; (b) computing an xf factor based upon three most significant bits of Y, (c) computing 4*A+xf*X and transferring the result to the A register, (d) determining an mf factor based upon a comparison of A with selected threshold values of M, (e) computing A+mf*M and transferring the result to the A register, (f) shifting the bits of the Y register two bits to the left (two most significant bits of Y) and returning to step (a) above until said loop computation is completed, and (g) providing an output from the A register at the completion of said loop computation as the result of the modulo multiplication operation.
Claim 13
Independent Claim 196 words
A method for performing a modulo exponentiation function of the form C=B E (Modulo M), wherein E is a large positive integer and B and M are large integers, as a series of modulo multiplication operations of the form P=(X * Y) (Modulo M), wherein X and Y are operands of the exponentiation function in binary form, comprising the steps of: (a) providing an X register, a Y register, and an A register, and control means for carrying out a loop computation using said X, Y, and A registers; (b) computing an xf factor based upon three most significant bits of Y, (c) computing 4*A+xf*X and transferring the result to the A register, (d) determining an mf factor based upon a comparison of A with selected threshold values of M, (e) computing A+mf*M and transferring the result to the A register, (f) shifting the bits of the Y register two bits to the left (two most significant bits of Y) and returning to step (a) above until said loop computation is completed, and (g) providing an output from the A register at the completion of said loop computation as the result of the modulo multiplication operation.
Claim 14
Dependent Claim 39 words
A method for performing a modulo exponentiation function according to claim 11, wherein said step of computing the xf factor includes employing an extended Booth algorithm to obtain xf=-2*y(MSB)+1*y(MSB-1)+1*y(MSB-2), where y(MSB), y(MSB-1), y(MSB-2) are three most-significant bits of Y.
Claim 15
Dependent Claim 47 words
A method for performing a modulo exponentiation function according to claim 11, wherein said step of determining includes determining mf as a multiple of -2, -1, 0, 1, or 2 times 128 based upon comparing eight most-significant bits of A with four selected threshold values of M.
Claim 16
Dependent Claim 48 words
A method for performing a modulo exponentiation function according to claim 11, wherein said X, Y, and A registers have bit lengths of n, and further comprising the step of scaling up the operands X and Y to n bits whenever their bit lengths are less than n.
Claim 17
Dependent Claim 29 words
A method for performing a modulo exponentiation function according to claim 11, further comprising the step of implementing steps (a) through (g) as register operations in an IC circuit.
Claim 18
Dependent Claim 30 words
A method for performing a modulo exponentiation function according to claim 15, wherein said implementing step includes employing a bit slice architecture in carry-save elements of an IC exponentiator device.
Claim 19
Dependent Claim 285 words
A high-speed modulo exponentiator device for performing a modulo exponentiation function of the form C=B E (Modulo M), wherein E is a large positive integer and B and M are large integers, as a series of modulo multiplication operations of the form P=(X * Y) (Modulo M), wherein X and Y are operands of the exponentiation function in binary form, based upon an extended Booth algorithm, comprising: digital integrated circuit ("IC") means including an X register, a Y register, and an A register having bit lengths of n and initialized with operand X, operand Y, and 0, respectively, said X, Y, and A registers being interconnected and operative with control means for carrying out a loop computation using said X, Y, and A registers for k=(n-1)/2, . . . , 0, when n is an odd number, and k=(n-2)/2, . . . , 0, when n is an even number, wherein said control means includes: (a) first register control means for computing xf(k)=-2*y(MSB)+1*y(MSB-1)+1*y(MSB-2), where y(MSB), y(MSB-1), y(MSB-2) are three most significant bits of Y; (b) second register control means for computing 4*A+xf(k)*X and transferring the result to the A register; (c) third register control means for determining mf(k), wherein mf(k) is a multiple of -2, -1, 0, 1, or 2 times 128, depending upon a comparison of eight most-significant bits of A with four selected threshold values of M; (d) fourth register control means for computing A+mf(k)*M and transferring the result to the A register; and (e) fifth register control means for shifting the bits of the Y register two bits to the left (two most significant bits of Y) and returning control to said first register control means until said loop computation is completed.
Claim 20
Dependent Claim 285 words
A high-speed modulo exponentiator device for performing a modulo exponentiation function of the form C=B E (Modulo M), wherein E is a large positive integer and B and M are large integers, as a series of modulo multiplication operations of the form P=(X * Y) (Modulo M), wherein X and Y are operands of the exponentiation function in binary form, based upon an extended Booth algorithm, comprising: digital integrated circuit ("IC") means including an X register, a Y register, and an A register having bit lengths of n and initialized with operand X, operand Y, and 0, respectively, said X, Y, and A registers being interconnected and operative with control means for carrying out a loop computation using said X, Y, and A registers for k=(n-1)/2, . . . , 0, when n is an odd number, and k=(n-2)/2, . . . , 0, when n is an even number, wherein said control means includes: (a) first register control means for computing xf(k)=-2*y(MSB)+1*y(MSB-1)+1*y(MSB-2), where y(MSB), y(MSB-1), y(MSB-2) are three most significant bits of Y; (b) second register control means for computing 4*A+xf(k)*X and transferring the result to the A register; (c) third register control means for determining mf(k), wherein mf(k) is a multiple of -2, -1, 0, 1, or 2 times 128, depending upon a comparison of eight most-significant bits of A with four selected threshold values of M; (d) fourth register control means for computing A+mf(k)*M and transferring the result to the A register; and (e) fifth register control means for shifting the bits of the Y register two bits to the left (two most significant bits of Y) and returning control to said first register control means until said loop computation is completed.
Claim 21
Dependent Claim 31 words
A high-speed modulo exponentiator device according to claim 17, wherein said second and fourth register control means perform multiplication functions by shifting the bits of said X, Y, and M registers.

References Cited (Backward Citations)

US4870681A Cited
US5046094A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1997-02-21 1997-08-23 1998-02-22 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2001-02-21 2001-08-23 2002-02-22 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2005-02-21 2005-08-23 2006-02-22 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag