The RSA algorithm is an asymmetric cryptography algorithm; this means that it uses a public key and a private key.
The RSA algorithm is named after those who invented
it in 1978: Ron Rivest, Adi Shamir, and Leonard Adleman.
The following steps highlight how it works:
1. Generating the keys
- Select
two large prime numbers, x and y. The prime
numbers need to be large so that they will be difficult for someone to
figure out.
- Calculate
n = x x y.
- Calculate
the totient function: ϕ(n) = (x−1)(y−1).
- Select
an integer e, such that e is co-prime to
ϕ(n) and 1< e < ϕ(n).
The pair of numbers (n,e) makes up the public key.
- Calculate d such
that e.d=1 mod ϕ(n). The
pair (n,d) makes up the private key.
2. Encryption
Given a plaintext P, represented as a
number, the ciphertext C is calculated as:
C=Pe mod n.
3. Decryption
Using the private key (n,d), the
plaintext can be found using:
P=Cd mod n.
RSA Algorithm Example
- Choose
p = 3 and q = 11
- Compute
n = p * q = 3 * 11 = 33
- Compute
φ(n) = (p - 1) * (q - 1) = 2 * 10 = 20
- Choose
e such that 1 < e < φ(n) and e and φ (n) are coprime. Let e = 7
- Compute
a value for d such that (d * e) % φ(n) = 1.
One solution is d = 3 since [(3 * 7) % 20 = 1]
- Public
key is (e, n) => (7, 33)
- Private
key is (d, n) => (3, 33)
- The
encryption of P = 2 is C = 27 %
33 = 29
- The
decryption of C = 29 is P = 293 %
33 = 2
No comments:
Post a Comment