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
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 |