You are on page 1of 4

RSA Algorithm in Java

The term RSA is an acronym for Rivest-Shamir-Adleman who


brought out the algorithm in 1977. RSA is an asymmetric
cryptographic algorithm which is used for encryption purposes
so that only the required sources should know the text and no
third party should be allowed to decrypt the text as it is
encrypted. RSA works on the fact that it is very hard to factorize
large numbers (order of 100+ digits).
The term “Asymmetric” signifies that there are two keys public
(known to all) and private (only at the receiver).
So, we need to calculate a private key and a public key for the
implementation of RSA.
Public Key comprises of (n, e).
Private Key comprises of (n, d).
Cipher text (encrypted), C = Pe mod n
Plain text (decrypted), P = Cd mod n

Generating the Public Key:

 We’ll first select two prime numbers P and Q, where P


should not be equal to Q.
P = 7, Q= 11.

Unrestricted
 Once we have selected the numbers, we need to calculate
the value of n and Ø.

n=P*Q
Here, n = 7 * 11 = 77

Ø = (P - 1) * (Q - 1)
Here, Ø = (7 - 1) * (11 - 1) = 6 * 10 = 60

 Now, we’ll find the value of e.


Remember, e should be an integer such that, 1 < e < Ø
Also, e should be relatively prime with n.
Therefore, e = 13.

Our Public Key is made of n and e.

Generating the Private Key:

 Now, we can calculate the value of d.


The value of d should be such that (d * e) mod Ø should be
equal to 1.
i.e., (d * e) mod ø = 1
hence, here we have:
(d * 13) mod 60 = 1

Unrestricted
d = (k * Ø + 1)/e, for some integer k.
For k = 8, value of d,
d = (8 * 60 + 1)/13
d = 37
Private Key made of n and d.

Our Public Key: (n = 77 and e = 3)


Our Private Key: (d = 37)

Let us encrypt our Plain Text “HELLO”.


1.) First convert the message into a number m. Let us use
the ASCII encoding. A: 65, B: 66 ……. Z: 90

“HELLO”: 7269767679

2.) We’ll calculate the cipher text,


C = me (mod n)
C = 72697676793 (mod 60)
C = 39

3.) To get back the plain text, we have

Unrestricted
Cd = m (mod n)
3937 = m (mod 60)
m = 7269767679

Unrestricted

You might also like