RSA
This commit is contained in:
BIN
src/RSA/RSA.class
Normal file
BIN
src/RSA/RSA.class
Normal file
Binary file not shown.
63
src/RSA/RSA.java
Normal file
63
src/RSA/RSA.java
Normal file
@@ -0,0 +1,63 @@
|
||||
public class RSA
|
||||
{
|
||||
double q,alpha,Xa,Xb;
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
RSA pair1 = new RSA(71, 7, 5, 12);
|
||||
System.out.println(pair1.getYa());
|
||||
System.out.println(pair1.getYb());
|
||||
System.out.println(pair1.getKey());
|
||||
}
|
||||
|
||||
RSA(double q , double alpha, double Xa, double Xb)
|
||||
{
|
||||
if(isPrime(q))
|
||||
{
|
||||
this.q = q;
|
||||
this.alpha = alpha;
|
||||
this.Xa = Xa;
|
||||
this.Xb = Xb;
|
||||
}
|
||||
else
|
||||
System.out.println("q must be prime!");
|
||||
}
|
||||
|
||||
public double getYa()
|
||||
{
|
||||
return Math.pow(alpha,Xa) % q;
|
||||
}
|
||||
|
||||
public double getYb()
|
||||
{
|
||||
return Math.pow(alpha,Xb) % q;
|
||||
}
|
||||
public double getKey()
|
||||
{
|
||||
double Kab,Kba;
|
||||
Kab = Math.pow(getYb(),Xa) % (int) q;
|
||||
System.out.println(Kab);
|
||||
Kba = Math.pow(getYa(),Xb) % (int) q;
|
||||
System.out.println(Kba);
|
||||
if(Kab == Kba)
|
||||
return Kab;
|
||||
else if(Math.abs(Kab - Kba) <= 1.9 && Kab > Kba)
|
||||
return Kab;
|
||||
else if(Math.abs(Kab - Kba) <= 1.9 && Kba > Kab)
|
||||
return Kba;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
//Check if number is prime
|
||||
public static boolean isPrime(double n)
|
||||
{
|
||||
for(double i=2;i<n;i++)
|
||||
{
|
||||
if(n%i==0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user