import java.math.BigInteger; public class Q2Tools { Q2Tools() { //Nothing to do here } public void generateRSA() { int e = 65537; //Generate p //Generate q } /** * A^B mod C * @param A * @param B * @param C */ public BigInteger fastModularExpon(String base, String exponent, String modulus) { // BigInteger baseVal = new BigInteger(base); // BigInteger exponentVal = new BigInteger(exponent); // BigInteger modulusVal = new BigInteger(modulus); //modulusVal.equals(BigInteger.valueOf(1)); if(modulusVal == 1) { return BigInteger.valueOf(0); } BigInteger temp = new BigInteger("1"); while(exponentVal>0) { if((exponentVal & 1)==1) { // temp = (temp * baseVal) % modulusVal; temp = temp.multiply(BigInteger.valueOf(baseVal)); temp = temp.mod(BigInteger.valueOf(modulusVal)); } exponentVal = exponentVal >> 1; baseVal = (baseVal*baseVal) % modulusVal; } return temp; } }