So my latest project involves RSA encryption and decryption. I build the bare bones of the program, but now need to change some variable elements to complete the assignment, and I'm having some trouble.
My code is currently this:
Right now, all variables are specifically declared, but I need them to be generated.
1. P and Q need to be randomly generated primes (between 3 and 128)
2. Use Z ((P-1) * (Q-1)) to randomly generate an e which:
A. 1 < E < Z
B. E and phiPQ are relatively prime (relatively prime means that gcd(E, phiPQ) == 1)
C. There may be several candidates for E, so pick the smallest one
3. Generate D ((DE-1) is evenly divisible by phiPQ)
I don't necessarily want the code here, but I'm just not sure how I can take what I have above and now modify it to accept what needs to be generated.
You can’t do all that lot at once, so don’t even try. One bit at a time. Do you know how to generate prime numbers? If not google for Sieve of Eratosthenes. Use that to remove non‑primes from an array with 128 elements.
Then you can create a new prime number array and use a Random object to select from that array. If you use that in high‑security settings, there is a SecureRandom class. You might be able to use methods of the BigInteger class to find prime numbers.