mirror of
https://github.com/zach-sb/SENG2250_Assignment3.git
synced 2025-11-09 04:47:36 +11:00
59 lines
1.2 KiB
Java
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;
|
|
}
|
|
}
|