← Back to Patent Explorer
US5373560A Expired / Lapsed US ⏱️ 0.0 years remaining

Partial modular reduction method

Assignee: Individual
•
Filing: 1993-08-04
•
Granted: 1994-12-13
•
Expires: 2013-08-04
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method is given for the modular reduction of cryptographic variables, a component of many public key cryptosystems. It involves calculating a partial inverse to the modulus, partially multiplying cryptovariables, and using estimates which depend on properties of the modulus, If the estimates fail, a spill word is used. A method for choosing a modulus to get cryptographic security and maximal efficiency in modular reduction is also given.

Inventors

  • 👤 Roger Schlafly

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-28 23:23
CPC Classifications
G; G06; G06F; G06F7/00; G06F7/60; G06F7/72; G06F7/723; H; H04; H04L; H04L9/00; H04L9/30; H04L9/3006; H04L9/3013; H04L9/3066

Claims Analysis

Total Claims: 56
Claim 1
Independent Claim 92 words
In a cryptosystem, a method for inverting a cryptovariable comprising inputting said cryptovariable and representing it as an integer; constructing an approximate inverse to said integer; computing a residual of said inverse by taking a twos complement of a product of said integer with said inverse; testing a spill word included in said residual; improving the accuracy of said inverse until said spill word is zero; partial multiplying said inverse by said residual and adding a shift of said inverse; repeating until desired length and accuracy is obtained; and outputting said inverse.
Claim 2
Dependent Claim 92 words
In a cryptosystem, a method for inverting a cryptovariable comprising inputting said cryptovariable and representing it as an integer; constructing an approximate inverse to said integer; computing a residual of said inverse by taking a twos complement of a product of said integer with said inverse; testing a spill word included in said residual; improving the accuracy of said inverse until said spill word is zero; partial multiplying said inverse by said residual and adding a shift of said inverse; repeating until desired length and accuracy is obtained; and outputting said inverse.
Claim 3
Dependent Claim 33 words
The method of claim 1 further comprising testing said cryptovariable for maximal condition; using iterations which assure that said spill word will be zero; and using a partial multiply to compute said residual.
Claim 4
Dependent Claim 13 words
The method of claim 1 further comprising shortening said cryptovariable for intermediate results.
Claim 5
Dependent Claim 13 words
The method of claim 1 further comprising truncating said inverse to reduce precision.
Claim 6
Dependent Claim 27 words
The method of claim 1 further comprising representing said inverse in terms of a base and using a power of said base to obtain said approximate inverse.
Claim 7
Dependent Claim 28 words
The method of claim 1 further comprising a sequence of logarithms 2, 3, 4, 6, 10, 18, 34 . . . as lengths for iterations of said inverse.
Claim 8
Dependent Claim 19 words
The method of claim 1 where said cryptosystem is of modular exponential type and said cryptovariable is a modulus.
Claim 9
Dependent Claim 21 words
The method of claim 1 further comprising using said inverse for the modular reduction of other cryptovariables and products of cryptovariables.
Claim 10
Dependent Claim 52 words
In a cryptosystem, a method for modular reduction comprising inputting a modulus; inputting an inverse to said modulus; inputting a cryptovariable; partial multiplying said cryptovariable by said inverse to obtain an integer quotient; partial multiplying said integer quotient by said modulus and partial subtracting from said cryptovariable to obtain a partial residue.
Claim 11
Dependent Claim 52 words
In a cryptosystem, a method for modular reduction comprising inputting a modulus; inputting an inverse to said modulus; inputting a cryptovariable; partial multiplying said cryptovariable by said inverse to obtain an integer quotient; partial multiplying said integer quotient by said modulus and partial subtracting from said cryptovariable to obtain a partial residue.
Claim 12
Dependent Claim 37 words
The method of claim 9 further comprising testing a spill word of said partial residue; partial subtracting said modulus from said partial residue if said spill word is nonzero; and repeating until said spill word is zero.
Claim 13
Dependent Claim 25 words
The method of claim 10 further comprising testing said modulus and said inverse for a condition that assures that said spill word will be zero.
Claim 14
Dependent Claim 13 words
The method of claim 9 further comprising computing said inverse from said modulus.
Claim 15
Dependent Claim 23 words
The method of claim 9 further comprising testing said cryptovariable for a condition that assures that a quotient spill word will be zero.
Claim 16
Dependent Claim 15 words
The method of claim 9 further comprising obtaining said cryptovariable by multiplying two other cryptovariables.
Claim 17
Dependent Claim 19 words
The method of claim 9 further comprising obtaining said cryptovariable by multiplying two other cryptovariables with a subquadratic multiplier.
Claim 18
Dependent Claim 39 words
The method of claim 9 further comprising testing for a leading one in said inverse; copying words from said cryptovariable to achieve multiplication by one; and accumulating other products to said copied words in order to obtained said quotient.
Claim 19
Dependent Claim 31 words
The method of claim 9 further comprising shifting said inverse so that storage requirements are reduced for said inverse; and shifting the product of said shifted inverse to obtain said quotient.
Claim 20
Dependent Claim 28 words
The method of claim 9 further comprising comparing said partial residue to said modulus and possibly subtracting, whereby resultant residue is fully reduced and less than said modulus.
Claim 21
Dependent Claim 26 words
The method of claim 9 further comprising repeating said partial multiplying and subtracting for further modular reduction, and conditionally subtracting said modulus to achieve full reduction.
Claim 22
Dependent Claim 11 words
The method of claim 9 further comprising generating public key messages.
Claim 23
Independent Claim 76 words
A system for partial modular reduction of cryptographic variables, comprising a processor unit; registers in said processor; addition, subtraction, and multiplication operations on said registers; a partial multiplier using said operations; means to input a modulus; means to input a cryptovariable; means for partial multiplying said cryptovariable by said inverse to obtain an integer quotient; means for partial multiplying said integer quotient by said modulus and partial subtracting from said cryptovariable to obtain a partial residue.
Claim 24
Independent Claim 76 words
A system for partial modular reduction of cryptographic variables, comprising a processor unit; registers in said processor; addition, subtraction, and multiplication operations on said registers; a partial multiplier using said operations; means to input a modulus; means to input a cryptovariable; means for partial multiplying said cryptovariable by said inverse to obtain an integer quotient; means for partial multiplying said integer quotient by said modulus and partial subtracting from said cryptovariable to obtain a partial residue.
Claim 25
Dependent Claim 43 words
The system of claim 21 further comprising means for testing a spill word of said partial residue; means for partial subtracting said modulus from said partial residue if said spill word is nonzero; and means to repeat until said spill word is zero.
Claim 26
Dependent Claim 27 words
The system of claim 22 further comprising means for testing said modulus and said inverse for a condition that assures that said spill word will be zero.
Claim 27
Dependent Claim 10 words
The system of claim 21 further comprising a subquadratic multiplier.
Claim 28
Dependent Claim 23 words
The system of claim 21 further comprising means for conditionally subtracting said modulus from said partial residue and output a fully reduced residue.
Claim 29
Independent Claim 63 words
A method for generating a cryptographic modulus comprising generating pseudorandom bits; constructing a modulus from said bits; computing a partial inverse to said modulus; estimating the accuracy of said partial inverse; choosing a partial multiplier function; estimating the accuracy of said partial multiplier function; combining said accuracy estimates for a size test on said modulus; and repeating until said size test is successful.
Claim 30
Independent Claim 63 words
A method for generating a cryptographic modulus comprising generating pseudorandom bits; constructing a modulus from said bits; computing a partial inverse to said modulus; estimating the accuracy of said partial inverse; choosing a partial multiplier function; estimating the accuracy of said partial multiplier function; combining said accuracy estimates for a size test on said modulus; and repeating until said size test is successful.
Claim 31
Dependent Claim 22 words
The method of claim 26 wherein said size test is for a zero among the most significant several bits in said modulus.
Claim 32
Dependent Claim 18 words
The method of claim 26 wherein said size test guarantees that a modular reduction spill word is zero.
Claim 33
Dependent Claim 12 words
The method of claim 26 further comprising testing said modulus for primality.
Claim 34
Dependent Claim 25 words
The method of claim 26 further comprising choosing said modulus to have a multiplicative subgroup whose order is a prime of at least 160 bits.
Claim 35
Dependent Claim 16 words
The method of claim 26 further comprising choosing DSA parameters according to NIST secure modulus method.
Claim 36
Dependent Claim 21 words
The method of claim 26 where said inverse can be stored compactly and still have sufficient accuracy for said size test.
Claim 37
Dependent Claim 65 words
A cryptosystem, comprising means to input a cryptovariable; means to multiply said cryptovariable to form a product; a modulus means; means to reduce the product with respect to said modulus means; and said modulus means having an input port for setting the modulus equal to the prime __________________________________________________________________________ 98A3DF52 AEAE9799 325CB258 D767EBD1 F4630E9B 9E21732A 4AFB1624 BA6DF911 466AD8DA 960586F4 A0D5E3C3 6AF09966 0BDDC157 7E54A9F4 02334433 ACB14BCB. __________________________________________________________________________
Claim 38
Dependent Claim 65 words
A cryptosystem, comprising means to input a cryptovariable; means to multiply said cryptovariable to form a product; a modulus means; means to reduce the product with respect to said modulus means; and said modulus means having an input port for setting the modulus equal to the prime __________________________________________________________________________ 98A3DF52 AEAE9799 325CB258 D767EBD1 F4630E9B 9E21732A 4AFB1624 BA6DF911 466AD8DA 960586F4 A0D5E3C3 6AF09966 0BDDC157 7E54A9F4 02334433 ACB14BCB. __________________________________________________________________________
Claim 39
Dependent Claim 15 words
The cryptosystem of claim 33 wherein said cryptosystem is based on the discrete logarithm problem.
Claim 40
Dependent Claim 13 words
The cryptosystem of claim 33 wherein said cryptosystem is based on elliptic curves.
Claim 41
Dependent Claim 40 words
The cryptosystem of claim 33 further comprising the multiplicative group with prime order ______________________________________ BB5DFE42 DE115C00 DB5EF1B0 388344D6 C15485AD ______________________________________ and generator __________________________________________________________________________ 5D9E9D4C 6EF57E63 67659293 45D2FA1F 40D84922 37BA8BDA 1E3A3FBC 6FCB118F 991EA62B 256BAB43 8BE5F2CE 979466A6 EDD266BA 1AD0B9D7 B97E5565 25A00A76. __________________________________________________________________________
Claim 42
Dependent Claim 80 words
A cryptosystem, comprising means to input a cryptovariable; means to multiply said cryptovariable to form a product; modulus means; means to reduce the product with respect to said modulus means; and said modulus means having an input port for setting the modulus equal to the prime __________________________________________________________________________ 93E8965D AFD9DFEC FD00B466 B68F90EA 68AF5DC9 FED91527 8D1B3A13 7471E655 96C37FED 0C7829FF 8F8331F8 1A270043 8ECDCC09 447DC397 C685F397 294F722B CC484AED F28BED25 AAAB35D3 5A65DB1F D62C9D7B A55844FE B1F9401E 67134093 3EE43C54 E4DC4594 00D7AD61 248B83A2 624835B3 1FFF2D95 95A5B90B 276E44F9. __________________________________________________________________________
Claim 43
Dependent Claim 80 words
A cryptosystem, comprising means to input a cryptovariable; means to multiply said cryptovariable to form a product; modulus means; means to reduce the product with respect to said modulus means; and said modulus means having an input port for setting the modulus equal to the prime __________________________________________________________________________ 93E8965D AFD9DFEC FD00B466 B68F90EA 68AF5DC9 FED91527 8D1B3A13 7471E655 96C37FED 0C7829FF 8F8331F8 1A270043 8ECDCC09 447DC397 C685F397 294F722B CC484AED F28BED25 AAAB35D3 5A65DB1F D62C9D7B A55844FE B1F9401E 67134093 3EE43C54 E4DC4594 00D7AD61 248B83A2 624835B3 1FFF2D95 95A5B90B 276E44F9. __________________________________________________________________________
Claim 44
Dependent Claim 15 words
The cryptosystem of claim 37 wherein said cryptosystem is based on the discrete logarithm problem.
Claim 45
Dependent Claim 13 words
The cryptosystem of claim 37 wherein said cryptosystem is based on elliptic curves.
Claim 46
Dependent Claim 56 words
The cryptosystem of claim 37 further comprising the multiplicative group with prime order ______________________________________ BB5DFE42 DE115C00 DB5EF1B0 388344D6 C15485AD ______________________________________ and generator __________________________________________________________________________ 69279F8E BAB80E8F 24F01846 2196636C 4C225464 F0133E0F 2F21E7BB ED1D853F 06EB949A 86850A30 A9B5B2CE A830EAAD 00E7BDF6 1EBC81CC 41DEBAFF 1B5BFD9F 2AA4B113 29B13C3D C6951127 FBC86B4D 3533823B F97A58DE 2FF1F9C9 B3177BA3 494ED5E0 00383DBD 6A699D57 89548FCE F507368E 4BE66EEB 0F087573 8CBCFCC5. __________________________________________________________________________
Claim 47
Dependent Claim 42 words
In a modulus-based cryptosystem, a system for representing residue classes comprising a modulus; a bound greater than said modulus, not necessarily explicit; a nonassociative semigroup operation on nonnegative integers less than said bound; and a nonassociative semigroup operation compatible with modular multiplication.
Claim 48
Dependent Claim 42 words
In a modulus-based cryptosystem, a system for representing residue classes comprising a modulus; a bound greater than said modulus, not necessarily explicit; a nonassociative semigroup operation on nonnegative integers less than said bound; and a nonassociative semigroup operation compatible with modular multiplication.
Claim 49
Dependent Claim 28 words
The system of claim 41 wherein said bound is chosen depending on said modulus to guarantee quotient and residue spill words are zero in said nonassociative semigroup operation.
Claim 50
Dependent Claim 13 words
The system of claim 41 wherein said bound is a power of two.
Claim 51
Dependent Claim 19 words
The system of claim 41 further comprising means to extract modular exponentials of cryptovariables with respect to said modulus.
Claim 52
Dependent Claim 12 words
The system of claim 41 further comprising means to change said modulus.
Claim 53
Dependent Claim 47 words
In a cryptosystem, a method for constructing a nonassociative semigroup comprising inputting a modulus; proving existence of a bound greater than said modulus; operating on integers less than said bound by multiplication followed by partial modular reduction; generating said nonassociative semigroup with integers less than said modulus.
Claim 54
Dependent Claim 47 words
In a cryptosystem, a method for constructing a nonassociative semigroup comprising inputting a modulus; proving existence of a bound greater than said modulus; operating on integers less than said bound by multiplication followed by partial modular reduction; generating said nonassociative semigroup with integers less than said modulus.
Claim 55
Dependent Claim 24 words
The method of claim 46 further comprising calculating a modular exponential by first calculating in said nonassociative semigroup and then fully reducing the result.
Claim 56
Dependent Claim 11 words
The method of claim 46 further comprising generating public key messages.

References Cited (Backward Citations)

US4405829A Cited
US5272755A Cited
US5231668A Cited
US5271061A Cited
US5253195A Cited
US5274707A Cited

USPTO Annuity & Maintenance Windows

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag