Authors: R.L. Rivest, A. Shamir, and L. Adleman
Date: 1978
Link: PDF
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 ciphertextC
. Everyone can use the same general method; the security of a given procedure will rest on the security of the key.
M
:S
for the message M
using his decryption key DB
: S = DB(M)
. (Deciphering an unenciphered message: each message is the ciphertext for some other message.)S
using Alice’s public encryption key EA
(for privacy), and sends the result EA(S)
to Alice.M
as well; it can be computed from S
.DA
to obtain S
.EB
: M = EB(S)
.M
to a different version M′
, since then she would have to create the corresponding signature S′ = DB(M′)
as well.M
= Message to encrypte
, n
) = Pair of positive integers = the public encryption key.M
as an integer between 0
and n − 1
. (Break a long message into a series of blocks, and represent each block as such an integer.)C
= Raise the numeric representation of the message to the eth
power modulo n
.C ≡ E(M) ≡ Mᵉ (mod n)
, for a message M
.0
to n − 1
.C
, raise it to another power d
, modulo n
.d
, n
) = Pair of positive integers = the private decryption key.D(C) ≡ Cᵈ (mod n)
, for a ciphertext C
.n = p · q
; where:p
and q
are private, “random” and very large primes.n = p · q
.p
and q
have 100 digits; hence n
will have 200 digits.3.8 × 10⁹
years.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
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))
.n
.Although this problem of “computing
e-th
roots modulon
without factoringn
” 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.