import java.io.*;
import java.util.*;
import java.math.*;
import java.lang.Math;
public class Main
{
public static void main(String[] args) {
BigInteger bi1, bi2, bi3;
int e=0;
Scanner s = new Scanner(System.in);
System.out.println("Enter value of p which is prime");
int p=s.nextInt();
System.out.println("ENter the value of q which is prime");
int q=s.nextInt();
int n=p*q;
int phi=(p-1)*(q-1);
bi2=new BigInteger(String.valueOf(phi));
bi3=new BigInteger("0");
for(int i=2;i<phi;i++){
bi1=new BigInteger(String.valueOf(i));
bi3=bi2.gcd(bi1);
if((bi3).intValue()==1){
e=i;
break;}
}
double d=0;
for(int i=1;i<=100;i++){
if(((i*phi)+1)%e==0){
d=(((i*phi)+1)/e);break;
}
}
System.out.println("Enter value of message:");
int m=s.nextInt();
int c=((int)(Math.pow(Double.valueOf(m),Double.valueOf(e))))%n;
System.out.println("The ENCRYPTED MESSAGE Is:"+c);
bi1=BigInteger.valueOf(c);
int dec=((bi1.pow((int)d)).mod(BigInteger.valueOf(n))).intValue();
System.out.println("The ORIGINAL MESSAGE Is:"+dec);
}
}
No comments:
Post a Comment