Home

A Method for Obtaining Digital Signatures and Public-Key Cryptosystems

Authors: R.L. Rivest, A. Shamir, and L. Adleman

Date: 1978

Link: PDF


  1. The authors present an encryption method with the novel property that publicly revealing an encryption key does not thereby reveal the corresponding decryption key. This has two important consequences:
  2. A trapdoor function is a function that is easy to compute in one direction, yet difficult to compute in the opposite direction (finding its inverse ) without special information, called the "trapdoor".
  3. A one-way function is a function that is easy to compute on every input, but hard to invert given the image of a random input.
  4. An encryption (or decryption) procedure typically consists of a general method and an encryption key. The general method, under the control of the key, enciphers a message M to obtain the enciphered form of the message, called the ciphertext C. Everyone can use the same general method; the security of a given procedure will rest on the security of the key.

  5. Encryption is the standard means of rendering a communication private.
  6. How user Bob can send Alice a “signed” message M:
  7. Users can fetch the other users' public keys from a public directory. To prevent an attacker from injecting their keys into the directory, all message from the public directory is signed. The public key for the public directory can be given to the user when they join the network — so they don’t have to look it up again.
  8. Proposed encryption method:
  9. Encryption does not increase the size of a message; both the message and the ciphertext are integers in the range 0 to n − 1.
  10. Proposed decryption method:
  11. n = p · q; where:
  12. d = large, random integer which is relatively prime to (p − 1) · (q − 1). That is, check that d satisfies: gcd(d, (p − 1) · (q − 1)) = 1
  13. The integer e is finally computed from p, q, and d to be the “multiplicative inverse” of d, modulo (p−1)·(q−1). That is: e·d≡1 (mod(p−1)·(q−1)).
  14. The security of the system rests in part on the difficulty of factoring the published divisor, n.
  15. The authors have this to say about breaking the system:

    Although this problem of “computing e-th roots modulo n without factoring n” is not a well-known difficult problem like factoring, we feel reasonably confident that it is computationally intractable.
    It may be possible to prove that any general method of breaking our scheme yields an efficient factoring algorithm. This would establish that any way of breaking our scheme must be as difficult as factoring. We have not been able to prove this conjecture, however.
    Our method should be certified by having the above conjecture of intractability withstand a concerted attempt to disprove it.