SENG2250_Assignment3/Q2Tools.java
2021-11-05 17:30:18 +11:00

59 lines
1.2 KiB
Java

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;
}
}