{ private final BigInteger TWO=new BigInteger ("2"); private final BigInteger THREE=new BigInteger ("3"); private BigInteger d; //decryptionexponent public BigInteger n; public BigInteger e=new BigInteger ("3"); public RSA({intsize, Randomrnd) { generateKeyPair (size, rnd); } public void generateKeyPair(intsize, Randomrnd) { int sizel=size/2; int size2=sizel; int offsetl=(int) (5.0*rnd.nextDouble()+5.0); int offset2=-offsetl; if (rnd.nextDouble()<0.5) { offsetl=-offsetl; offset2=-offset2; } sizel+=offsetl; size2t+=offset?2;
//Generates two random primes so that p*q=n has size bits