Sunday 17 March 2013

Implementing Vernam Cipher Using Diffie-Hellman Key Exchange Protocol In Java:


import java.io.*;
import java.lang.Math.*;
public class vernamcipher
{
public static void main(String args[])throws IOException
{
String line,key,result1,result2;
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
System.out.println("Enter g:");
int g=Integer.parseInt(in.readLine());
System.out.println("Enter a:");
int a=Integer.parseInt(in.readLine());
System.out.println("Enter b:");
int b=Integer.parseInt(in.readLine());
System.out.println("Enter p:");
int p=Integer.parseInt(in.readLine());
int keyint=(int)(Math.pow(g,a*b))%p;
key=Integer.toString(keyint);
System.out.println("Key:");
System.out.println(key);
System.out.println("Enter the string:");
line=in.readLine();
System.out.println("Encrypted:");
result1="";
for(int i=0;i<line.length();i++)
{
result1+=(char)(line.charAt(i)^key.charAt(i%key.length()));
}
System.out.println(result1);
System.out.println("Decrypted:");
result2="";
for(int i=0;i<result1.length();i++)
{
result2+=(char)(result1.charAt(i)^key.charAt(i%key.length()));
}
System.out.println(result2);
}
}

No comments:

Post a Comment