EP0202768A2

Technique for reducing RSA crypto variable storage.

Abstract

A technique for reducing RSA (Rivest, Shamir and Adleman algorithm) cryptovariable key from 1200 bits (400-bit public key, 400-bit secret key and 400-bit modulus) to 106 bits makes feasible the storage of the RSA algorithm parameters on current magnetic stripe cards used by the banking and finance industry. Of the 106 bits required, only 56 bits must be kept secret; the remaining 50 bits are nonsecret. These 106 bits are used to derive two 200-bit primes P and Q from which is computed the modulus N = PQ and two 400-bit keys PK (public key) and SK (secret key). In effect, a savings in storage is achieved at the expense of performing a precomputation to derive the modulus an keys each time the system is utilised for encryption/decryption. The 56-bit value plus the additional 50 bits of non- secret data can be used to generate the RSA cryptovariables in systems where the RSA algorithm has been implemented. In another embodiment, a technique is provided for reducing the RSA cryptovariable storage of the public key PK and modulus from 1800 bits to 242 bits. These 242 bits can be used at any later time to derive the 400-bit public key PK and 40--bit modulus N = PQ. The savings in storage is achieved by performing a precomputation each time the system is utilised for encryption/decryption.

EP0202768A2, drawing sheet 1
Sheet 1 of 17

Term

Term ended

Projected expiry passed 16 April 2006, 20.4 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

17 claims: 6 independent, 11 dependent

  1. 1
    Having thus described my invention, what I claim as new, and desire to secure by Letters Patent is:
  2. 2
    1. A method of personal identification for a user of a multiterminal system, and said method being based on a public key cryptosystem of the modular exponentiation type whose modulus is the product of two large prime binary numbers and comprising the steps of:. storing on a magnetic stripe card an account number assigned to the user and an external cryptovariable, said external cryptovariable comprising n bits of which m bits are kept secret and the remaining n-m bits are public;reading at a terminal of said multiterminal system the user's account number and said external cryptovariable;performing a fast precomputation on said external cryptovariable to regenerate a secret personal key ad public modulus assigned to the user;receiving a secret personal identification number entered by the user at the terminal;and verifying the identification of th user based on the user's account number, the regenerated secret personal key and public modulus and the personal identification number entered by the user.
  3. 3
    2. The method recited in Claim 1 wherein the step of storing is performed by recording said external cryptovariable on said magnetic stripe card with no more than 108 bits.
  4. 4
    3. The method recited in Claim 1 wherein the step of storing is performed by recording said external cryptovariable on said magnetic stripe card with 106 bits of which 56 bits are kept secret, and wherein the step of performing a fast precomputation produces a secret key and public modulus of 400 bits each.
  5. 5
    4. The method recited in Claim 1 wherein the step of verifying comprises the steps of:transmitting the user's account number and an identifier of said terminal to a host processing system in said multiterminal system;generating at said host processing system a first random number and transmitting said first random number to said terminal;concatenating a transaction request message with said first random number;exclusive ORing the personal identification number entered by the user at said terminal with said regenerated secret key to produce a deciphering key;deciphering the concatenated transaction request message and first random number using said deciphering key and said user's public modulus and transmitting the deciphered transaction request message and first random number to said host processing system;generating a second random number at said terminal and transmitting said second random number to said host processing system;using said user's account number to generate at said host processing system a public key and a modulus assigned to said user;enciphering the received deciphered transaction request message and first random number using said generated public key and modulus assigned to said user to recover said first random number;comparing the recovered first random number with the first random number generated at said host processing system;deciphering the received second random number under a second secret key and modulus and transmitting the deciphered second random number to said terminal if the recovered first random number is equal to the first random number generated at said host processing system;enciphering at said terminal the received deciphered second random number to recover the second random number;and comparing the recovered second random number with the second random number generated at said terminal.
  6. 6
    5. The method recited in Claim 1 wherein the step of performing a fast precomputation comprises the steps of:expanding the bit size of said secret m bits according to a predefined nonsecret function using said public n-m bits to generate a first prime number;dividing a predetermined constant by said first prime number to obtain a quotient;expanding the bit size of said quotient according to a predefined nonsecret function using said public n-m bits to generate a second prime number;multiplying said first and second prime numbers together to obtain as a product said public modulus;and deriving from said first and second prime numbers said secret key.
  7. 7
    6. In a public key cryptosystem of the modular exponentiation type whose modulus is the product of two large prime binary numbers P and Q, a method of generating at least one of the primes P and the modulus, comprising the steps of:supplying a secret x-bit first binary number X;supplying a nonsecret d-bit second binary number D;and expanding the bit size of X according to a predefined nonsecret function using binary number D to generate said prime number P.
  8. 8
    7. The method recited in Claim 6 further comprising the steps of:dividing a predetermined constant by said prime number P to produce a quotient;expanding the bit size of a quotient;according to a predefined nonsecret function using binary number D to generate said prime number Q;and multiplying said prime numbers P and Q together to produce a product which is said modulus.
  9. 9
    8. The method recited in Claim 7 further comprising the step of deriving a secret key from said prime numbers P and Q.
  10. 10
    9. A method transmitting a public key and modulus to a requesting user from a key distribution centre, said public key and modulus being used in a public key cryptosystem of the modular exponentiation type whose modulus is the product of two large prime binary numbers, said method of transmitting comprising the steps of:providing a non-secret cryptovariable having a number of bits m less than the number of bits n of either of said public key and modulus;transmitting said cryptovariable together with a user identification and sequence number and a number of bits to pad the transmitted block to a total of n bits;and expanding the received cryptovariable using a predefined nonsecret function to provide said public key and modulus.
  11. 12
    11. The method recited in Claim 9 wherein said step of providing said nonsecret cryptovariable is performed by generating an n-bit modulus N as the function of CR + S of a nonsecret r-bit first binary number R, a nonsecret s-bit second binary number S, and a c-bit system constant C where s<c + r.
  12. 13
    12. The method recited in Claim 11 further comprising the steps of:multiplying R by the c-bit system constant C to form a product;and adding S to said product to form N.
  13. 14
    13. In public key cryptosystem of the modular exponentiation type, a method of generating an n-bit modulus N as the function CR + S of a non- secret r-bit first binary number R, a nonsecret s-bit second binary number S, and a c-bit system constant , where s<c+r, said method comprising the steps of supplying the nonsecret r-bit first binary number R, supplying the nonsecret s-bit second binary number S, multiplying R by the c-bit system constant C, and adding S to the product RC to form N.
  14. 15
    14. The method according to Claim 13 wherein C has a high order 1 followed by all zeros, and the modulus N is generated by assembling the r bits of R, n-(r+s) zero bits, and the s bits of S in that order.
  15. 16
    15. In a public key cryptosystem of the modular exponentiation type whose modulus is the product of two large prime binary numbers P and Q, a method of generating a cryptovariable corresponding to at least one of the primes P in the modulus comprising the steps of:arbitrarily choosing a secret x-bit first binary number X;selecting a nonsecret d-bit binary number D which when used with a precomputation function produces a trial value for said prime number P;testing said trial value for primality, and if the test for primality fails, selecting another nonsecret d-bit binary number until all possible values of D have been exhausted or said trial value passes the test for primality, but if all possible values of D have been exhausted and said trial value fails the test for primality, choosing a different X and repeating the steps of selecting and testing until said trial value passes the test for primality.
  16. 17
    16. The method recited in Claim 15 further comprising the steps of:dividing a predetermined constant by a trial value of P which has passed the test for primality to produce a quotient;and choosing said d-bit number D such that when used with said precomputation function to expand said quotient a second trial value for Q is produced;and testing said second trial value for primality, and if said second trial value fails the test for primality, choosing a different number D until all possible values of D are exhausted or said second trial value passes the test of primality, but if all possible values of D are exhausted, then selecting a new number X and repeating the steps of selecting the number D until both said first and second trial values pass the test of primality.