Skip to content

Latest commit

 

History

History
25 lines (14 loc) · 1.01 KB

README.md

File metadata and controls

25 lines (14 loc) · 1.01 KB

RSA

RSA java implementation

Straightforward implementation of RSA in java for a cryptography assignment

Code performs the following:

Generate two distinct 512-bit probable primes p and q

Calculate the product of these two primes N = pq

Calculate the Euler totient function phi(N)

Uses an encryption exponent e = 65537, so you will need to ensure that this is relatively prime to phi(N). If it is not, go back to step 1 and generate new values for p and q

Compute the value for the decryption exponent d, which is the multiplicative inverse of e (mod phi(N)). This uses my own implementation of the extended Euclidean GCD algorithm to calculate the inverse rather than using a library method for this purpose.

We then implement a decryption method which calculates cd (mod N). Again, this uses my own implementation of the Chinese Remainder Theorem to calculate this more efficiently.

Then digitally signs a text file by:

Generating a 256-bit digest of file using SHA-256. Apply your decryption method to this digest