Skip to main content

Write a program for simple RSA algorithm to encrypt and decrypt the data.


import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.*;
public class RSA{
       public static void main(String[] args) {
             // TODO Auto-generated method stub
             Scanner s=new Scanner(System.in);
             RSA r=new RSA();
             System.out.println("Enter value for p");
             int p=s.nextInt();
             System.out.println("Enter value for q");
             int q=s.nextInt();
             int n=(p*q);
             int fai=((p-1)*(q=1));
              System.out.println("Enter value for e");
             int e=s.nextInt();
            
             while(true) {
                    if(GCD(fai,e)!=1) {
                           System.out.println("Enter value for e");
                           e=s.nextInt();
                    }
                    else
                           break;
             }
             int d=FindD(e,fai);
             System.out.println("Enter value for d="+d);
             System.out.println("Enter Message");
             int m=s.nextInt();
             int c=(int)(Math.pow(m,e)%n);
             System.out.println("Enter value for c="+c);
             int x=(int)(Math.pow(c,d)%n);
             System.out.println("Message at decription="+x);
             if(x==m) {
                    System.out.println("Matched");
             }
             else {
                    System.out.println("not Matched");
             }
       }
       static int FindD(int E,int Fai) {
             int s;
             for(int i=0;i<Fai;i++) {
                    s=(i*E)%Fai;
                    if(s==1) {
                           return i;
                    }
             }
             return 0;
       }
       static int GCD(int FAI,int EEE) {
             if(EEE==0) {
                    return FAI;
             }
             return GCD(EEE,FAI%EEE);
       }

}

Comments

Popular posts from this blog

Write a program for error detecting code using CRC-CCITT (16- bits).

import java.io.*; import java.util.*; public class CRC   {   public static void main(String args[]) { Scanner s=new Scanner(System.in); System.out.println("Enter the no of bits : "); int   n=s.nextInt(); int data[ ]=new int[n]; System.out.println("Enter the data bits : "); for(int i=0;i<n;i++) data[i]=s.nextInt(); System.out.println("Enter the no of divisor bits : "); int m=s.nextInt(); int divisor[ ]=new int[m]; System.out.println("Enter divisor bits : "); for(int j=0;j<m;j++) divisor[j]=s.nextInt(); int len=n+m-1; int div[ ]=new int[len]; int rem[ ]=new int[len]; int crc[ ]=new int[len]; int src[ ]=new int[len]; for(int i=0;i<data.length;i++) div[i]=data[i]; System.out.println("Dividend after appending zero"); for(int i=0;i<div.length;i++) System.out.print(div[i]); System.out.println(); for(int j=0;j<div.length;j++) rem[j]=div[j]; rem=divid

Write a program for congestion control using leaky bucket algorithm

import java.util.*; public class LBA {        public static void main(String[] args ) {              // TODO Auto-generated method stub              int op ;              Scanner s = new Scanner(System. in );              int bktcap =0;              int remain =0;              int pkt []= new int [10];              System. out .println( "Enter Bucket size" );              bktcap = s .nextInt();              System. out .println( "Enter value n" );              int n = s .nextInt();              System. out .println( "Enter datarate" );              int dr = s .nextInt();              System. out .println( "Enter input values" );              for ( int i =0; i < n ; i ++){              int val = s .nextInt();              pkt [ i ]= val ;              }              for ( int i =0; i <= n ; i ++){                     int total = pkt [ i ]+ remain ;                     if ( t