Sunday, 24 March 2019

RSA ALGORITHM


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

FERMATS LITTLE THEOREM

import java.math.*; import java.io.*; import java.util.Scanner; public class Main { public static void main(String[] args) {    Sca...