Showing posts with label IT6712 SECURITY LABORATORY. Show all posts
Showing posts with label IT6712 SECURITY LABORATORY. Show all posts
Implement the SIGNATURE SCHEME - Digital Signature Standard in java
PROGRAM CODE:
TestDigitalSignature.java
SignatueUtil.java
OUTPUT:
SIGNATURE
TestDigitalSignature.java
import java.security.KeyPair;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.Signature;
//import PublicKeyUtil.*;
//import SignatureUtil.*;
public class TestDigitalSignature {
public static void main(String args[]) throws Exception {
String file = "emp.txt";
/* Public key stored in this file */
String publicKeyFile = "publicKey.txt";
/* Signature of given file stored here */
String signatureFile = "siganture.txt";
/* Signature algorithm to get Signature instance */
String sigAlgorithm = "SHA1withDSA";
/* generate public and private keys */
KeyPair keyPair = PublicKeyUtil.getKeyPair("DSA");
PublicKey publicKey = keyPair.getPublic();
PrivateKey privateKey = keyPair.getPrivate();
/* Generate signature for given file */
byte signature[] = SignatureUtil.getSignature(file, privateKey,
sigAlgorithm);
/* Save public key */
PublicKeyUtil.saveKey(publicKey, publicKeyFile);
/* Save signature */
SignatureUtil.saveSignature(signatureFile, signature);
// Verify Signature
/* Read public key from file */
byte[] pubKeyBytes = PublicKeyUtil.readKeyFromFile(publicKeyFile);
/* Convert publick key bytes into PublicKey object */
PublicKey pubKey = PublicKeyUtil.convertArrayToPubKey(pubKeyBytes,
"DSA");
/* Read signature from file */
byte[] receivedSignature = SignatureUtil
.readSignatureFromFile(signatureFile);
/* Verify signature */
Signature verifySignature = Signature.getInstance(sigAlgorithm);
/* initialize signature object */
verifySignature.initVerify(pubKey);
/* Feed data */
SignatureUtil.feedData(verifySignature, file);
/* Verify signature */
boolean isAuthenticated = verifySignature.verify(receivedSignature);
if (isAuthenticated) {
System.out.println("Data is authenticated");
} else {
System.out.println("Data is not from expected sender");
}
}
}
PublicKeyUtil.javaimport java.security.PrivateKey;
import java.security.PublicKey;
import java.security.Signature;
//import PublicKeyUtil.*;
//import SignatureUtil.*;
public class TestDigitalSignature {
public static void main(String args[]) throws Exception {
String file = "emp.txt";
/* Public key stored in this file */
String publicKeyFile = "publicKey.txt";
/* Signature of given file stored here */
String signatureFile = "siganture.txt";
/* Signature algorithm to get Signature instance */
String sigAlgorithm = "SHA1withDSA";
/* generate public and private keys */
KeyPair keyPair = PublicKeyUtil.getKeyPair("DSA");
PublicKey publicKey = keyPair.getPublic();
PrivateKey privateKey = keyPair.getPrivate();
/* Generate signature for given file */
byte signature[] = SignatureUtil.getSignature(file, privateKey,
sigAlgorithm);
/* Save public key */
PublicKeyUtil.saveKey(publicKey, publicKeyFile);
/* Save signature */
SignatureUtil.saveSignature(signatureFile, signature);
// Verify Signature
/* Read public key from file */
byte[] pubKeyBytes = PublicKeyUtil.readKeyFromFile(publicKeyFile);
/* Convert publick key bytes into PublicKey object */
PublicKey pubKey = PublicKeyUtil.convertArrayToPubKey(pubKeyBytes,
"DSA");
/* Read signature from file */
byte[] receivedSignature = SignatureUtil
.readSignatureFromFile(signatureFile);
/* Verify signature */
Signature verifySignature = Signature.getInstance(sigAlgorithm);
/* initialize signature object */
verifySignature.initVerify(pubKey);
/* Feed data */
SignatureUtil.feedData(verifySignature, file);
/* Verify signature */
boolean isAuthenticated = verifySignature.verify(receivedSignature);
if (isAuthenticated) {
System.out.println("Data is authenticated");
} else {
System.out.println("Data is not from expected sender");
}
}
}
FOR FULL PORGRAM and lab manual
CONTACT:
CELL:9789697608
9566627095
EMAIL:hitechguil@gmail.com
FOR FULL PORGRAM and lab manual
CONTACT:
CELL:9789697608
9566627095
EMAIL:hitechguil@gmail.com
PUBLIC KEY
SIGNATURE
MD5 IMPLEMENTATION IN JAVA
PROGRAM CODE
public class MD5
{
FOR FULL PROGRAM and lab manual
public static void main(String[] args)
{
String[] testStrings = { "", "Sanfoundry", "Message Digest",
"abcdefghijklmnopqrstuvwxyz" };
for (String s : testStrings)
System.out.println("0x" + toHexString(computeMD5(s.getBytes()))
+ " <== \"" + s + "\"");
return;
}
}
OUTPUT:
public class MD5
{
FOR FULL PROGRAM and lab manual
CONTACT:
CELL:9789697608
9566627095
EMAIL:hitechguil@gmail.com
}public static void main(String[] args)
{
String[] testStrings = { "", "Sanfoundry", "Message Digest",
"abcdefghijklmnopqrstuvwxyz" };
for (String s : testStrings)
System.out.println("0x" + toHexString(computeMD5(s.getBytes()))
+ " <== \"" + s + "\"");
return;
}
}
RSA Algorithm implementation in java
PROGRAM CODE
import java.io.DataInputStream;
import java.io.IOException;
import java.math.BigInteger;
import java.util.Random;
public class RSA
{
private BigInteger p;
private BigInteger q;
private BigInteger N;
private BigInteger phi;
private BigInteger e;
private BigInteger d;
private int bitlength = 1024;
private Random r;
FOR FULL PROGRAM and lab manual
OUTPUT:
import java.io.DataInputStream;
import java.io.IOException;
import java.math.BigInteger;
import java.util.Random;
public class RSA
{
private BigInteger p;
private BigInteger q;
private BigInteger N;
private BigInteger phi;
private BigInteger e;
private BigInteger d;
private int bitlength = 1024;
private Random r;
FOR FULL PROGRAM and lab manual
CONTACT:
CELL:9789697608
9566627095
EMAIL:hitechguil@gmail.com
}DES(DATA ENCRYPTION STANDARD) IMPLEMENTATION IN JAVA
PROGRAM CODE:
import javax.swing.*;
import java.security.SecureRandom;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import java.util.Random ;
class DES {
byte[] skey = new byte[1000];
String skeyString;
static byte[] raw;
String inputMessage,encryptedData,decryptedMessage;
public DES() {
System.out.println(e);
}
}
void generateSymmetricKey() {
try {
Random r = new Random();
int num = r.nextInt(10000);
String knum = String.valueOf(num);
byte[] knumb = knum.getBytes();
skey=getRawKey(knumb);
skeyString = new String(skey);
System.out.println("DES Symmetric key = "+skeyString);
}
catch(Exception e) {
System.out.println(e);
}
}
private static byte[] getRawKey(byte[] seed) throws Exception {
KeyGenerator kgen = KeyGenerator.getInstance("DES");
SecureRandom sr = SecureRandom.getInstance("SHA1PRNG");
sr.setSeed(seed);
kgen.init(56, sr);
SecretKey skey = kgen.generateKey();
raw = skey.getEncoded();
return raw;
}
private static byte[] encrypt(byte[] raw, byte[] clear) throws Exception {
SecretKeySpec skeySpec = new SecretKeySpec(raw, "DES");
Cipher cipher = Cipher.getInstance("DES");
cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
byte[] encrypted = cipher.doFinal(clear);
return encrypted;
}
private static byte[] decrypt(byte[] raw, byte[] encrypted) throws Exception {
SecretKeySpec skeySpec = new SecretKeySpec(raw, "DES");
Cipher cipher = Cipher.getInstance("DES");
cipher.init(Cipher.DECRYPT_MODE, skeySpec);
byte[] decrypted = cipher.doFinal(encrypted);
return decrypted;
}
public static void main(String args[]) {
DES des = new DES();
}
}
OUTPUT:import java.security.SecureRandom;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import java.util.Random ;
class DES {
byte[] skey = new byte[1000];
String skeyString;
static byte[] raw;
String inputMessage,encryptedData,decryptedMessage;
public DES() {
FOR FULL PROGRAM and lab manual
CONTACT:
CELL:9789697608
9566627095
EMAIL:hitechguil@gmail.com
catch(Exception e) {System.out.println(e);
}
}
void generateSymmetricKey() {
try {
Random r = new Random();
int num = r.nextInt(10000);
String knum = String.valueOf(num);
byte[] knumb = knum.getBytes();
skey=getRawKey(knumb);
skeyString = new String(skey);
System.out.println("DES Symmetric key = "+skeyString);
}
catch(Exception e) {
System.out.println(e);
}
}
private static byte[] getRawKey(byte[] seed) throws Exception {
KeyGenerator kgen = KeyGenerator.getInstance("DES");
SecureRandom sr = SecureRandom.getInstance("SHA1PRNG");
sr.setSeed(seed);
kgen.init(56, sr);
SecretKey skey = kgen.generateKey();
raw = skey.getEncoded();
return raw;
}
private static byte[] encrypt(byte[] raw, byte[] clear) throws Exception {
SecretKeySpec skeySpec = new SecretKeySpec(raw, "DES");
Cipher cipher = Cipher.getInstance("DES");
cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
byte[] encrypted = cipher.doFinal(clear);
return encrypted;
}
private static byte[] decrypt(byte[] raw, byte[] encrypted) throws Exception {
SecretKeySpec skeySpec = new SecretKeySpec(raw, "DES");
Cipher cipher = Cipher.getInstance("DES");
cipher.init(Cipher.DECRYPT_MODE, skeySpec);
byte[] decrypted = cipher.doFinal(encrypted);
return decrypted;
}
public static void main(String args[]) {
DES des = new DES();
}
}
Rail fence – row & Column Transformation
PROGRAM CODE:
import java.io.*;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
//RailFence Technique Done using Swings
class railfence extends JFrame implements ActionListener
{
public static void main(String args[])
{
new railfence();
}
}
OUTPUT:import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
//RailFence Technique Done using Swings
class railfence extends JFrame implements ActionListener
{
FOR FULL PROGRAM and lab manual
CONTACT:
CELL:9789697608
9566627095
EMAIL:hitechguil@gmail.com
}public static void main(String args[])
{
new railfence();
}
}
Vigenere Cipher implementation in java
PROGRAM CODE
public class VigenereCipher
{
FOR FULL PROGRAM,PROCEDURE and lab manual
public static String decrypt(String text, final String key)
{
String res = "";
text = text.toUpperCase();
for (int i = 0, j = 0; i < text.length(); i++)
{
char c = text.charAt(i);
if (c < 'A' || c > 'Z')
continue;
res += (char) ((c - key.charAt(j) + 26) % 26 + 'A');
j = ++j % key.length();
}
return res;
}
public static void main(String[] args)
{
String key = "VIGENERECIPHER";
String message = "welcome to vigener cipher";
String encryptedMsg = encrypt(message, key);
System.out.println("String: " + message);
System.out.println("Encrypted message: " + encryptedMsg);
System.out.println("Decrypted message: " + decrypt(encryptedMsg, key));
}
}
OUTPUT:
public class VigenereCipher
{
FOR FULL PROGRAM,PROCEDURE and lab manual
CONTACT:
CELL:9789697608
9566627095
EMAIL:hitechguil@gmail.com
}public static String decrypt(String text, final String key)
{
String res = "";
text = text.toUpperCase();
for (int i = 0, j = 0; i < text.length(); i++)
{
char c = text.charAt(i);
if (c < 'A' || c > 'Z')
continue;
res += (char) ((c - key.charAt(j) + 26) % 26 + 'A');
j = ++j % key.length();
}
return res;
}
public static void main(String[] args)
{
String key = "VIGENERECIPHER";
String message = "welcome to vigener cipher";
String encryptedMsg = encrypt(message, key);
System.out.println("String: " + message);
System.out.println("Encrypted message: " + encryptedMsg);
System.out.println("Decrypted message: " + decrypt(encryptedMsg, key));
}
}
Hill Cipher implementation in java
PROGRAM CODE:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class HillCipher
{
int keymatrix[][];
int linematrix[];
int resultmatrix[];
public void divide(String temp, int s)
{
while (temp.length() > s)
{
String sub = temp.substring(0, s);
temp = temp.substring(s, temp.length());
perform(sub);
}
if (temp.length() == s)
perform(temp);
else if (temp.length() < s)
{
for (int i = temp.length(); i < s; i++)
temp = temp + 'x';
perform(temp);
}
}
public void perform(String line)
{
linetomatrix(line);
linemultiplykey(line.length());
result(line.length());
}
public void keytomatrix(String key, int len)
{
keymatrix = new int[len][len];
int c = 0;
for (int i = 0; i < len; i++)
{
for (int j = 0; j < len; j++)
{
keymatrix[i][j] = ((int) key.charAt(c)) - 97;
c++;
}
}
}
public void linetomatrix(String line)
{
linematrix = new int[line.length()];
for (int i = 0; i < line.length(); i++)
{
linematrix[i] = ((int) line.charAt(i)) - 97;
}
}
public void linemultiplykey(int len)
{
resultmatrix = new int[len];
for (int i = 0; i < len; i++)
{
for (int j = 0; j < len; j++)
{
resultmatrix[i] += keymatrix[i][j] * linematrix[j];
}
resultmatrix[i] %= 26;
}
}
public void result(int len)
{
String result = "";
for (int i = 0; i < len; i++)
{
result += (char) (resultmatrix[i] + 97);
}
System.out.print(result);
}
public boolean check(String key, int len)
{
keytomatrix(key, len);
int d = determinant(keymatrix, len);
d = d % 26;
if (d == 0)
{
System.out
.println("Invalid key!!! Key is not invertible because determinant=0...");
return false;
}
else if (d % 2 == 0 || d % 13 == 0)
{
System.out
.println("Invalid key!!! Key is not invertible because determinant has common factor with 26...");
return false;
}
else
{
return true;
}
}
public int determinant(int A[][], int N)
{
int res;
if (N == 1)
res = A[0][0];
else if (N == 2)
{
res = A[0][0] * A[1][1] - A[1][0] * A[0][1];
}
else
{
res = 0;
for (int j1 = 0; j1 < N; j1++)
{
int m[][] = new int[N - 1][N - 1];
for (int i = 1; i < N; i++)
{
int j2 = 0;
for (int j = 0; j < N; j++)
{
if (j == j1)
continue;
m[i - 1][j2] = A[i][j];
j2++;
}
}
res += Math.pow(-1.0, 1.0 + j1 + 1.0) * A[0][j1]
* determinant(m, N - 1);
}
}
return res;
}
public void cofact(int num[][], int f)
{
int b[][], fac[][];
b = new int[f][f];
fac = new int[f][f];
int p, q, m, n, i, j;
for (q = 0; q < f; q++)
{
for (p = 0; p < f; p++)
{
m = 0;
n = 0;
for (i = 0; i < f; i++)
{
for (j = 0; j < f; j++)
{
b[i][j] = 0;
if (i != q && j != p)
{
b[m][n] = num[i][j];
if (n < (f - 2))
n++;
else
{
n = 0;
m++;
}
}
}
}
fac[q][p] = (int) Math.pow(-1, q + p) * determinant(b, f - 1);
}
}
trans(fac, f);
}
void trans(int fac[][], int r)
{
int i, j;
int b[][], inv[][];
b = new int[r][r];
inv = new int[r][r];
int d = determinant(keymatrix, r);
int mi = mi(d % 26);
mi %= 26;
if (mi < 0)
mi += 26;
for (i = 0; i < r; i++)
{
for (j = 0; j < r; j++)
{
b[i][j] = fac[j][i];
}
}
for (i = 0; i < r; i++)
{
for (j = 0; j < r; j++)
{
inv[i][j] = b[i][j] % 26;
if (inv[i][j] < 0)
inv[i][j] += 26;
inv[i][j] *= mi;
inv[i][j] %= 26;
}
}
System.out.println("\nInverse key:");
matrixtoinvkey(inv, r);
}
public int mi(int d)
{
int q, r1, r2, r, t1, t2, t;
r1 = 26;
r2 = d;
t1 = 0;
t2 = 1;
while (r1 != 1 && r2 != 0)
{
q = r1 / r2;
r = r1 % r2;
t = t1 - (t2 * q);
r1 = r2;
r2 = r;
t1 = t2;
t2 = t;
}
return (t1 + t2);
}
public void matrixtoinvkey(int inv[][], int n)
{
String invkey = "";
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
invkey += (char) (inv[i][j] + 97);
}
}
System.out.print(invkey);
}
public static void main(String args[]) throws IOException
{
HillCipher obj = new HillCipher();
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
int choice;
System.out.println("Menu:\n1: Encryption\n2: Decryption");
choice = Integer.parseInt(in.readLine());
System.out.println("Enter the line: ");
String line = in.readLine();
System.out.println("Enter the key: ");
String key = in.readLine();
double sq = Math.sqrt(key.length());
if (sq != (long) sq)
System.out
.println("Invalid key length!!! Does not form a square matrix...");
else
{
int s = (int) sq;
if (obj.check(key, s))
{
System.out.println("Result:");
obj.divide(line, s);
obj.cofact(obj.keymatrix, s);
}
}
}
}
OUTPUT:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class HillCipher
{
int keymatrix[][];
int linematrix[];
int resultmatrix[];
public void divide(String temp, int s)
{
while (temp.length() > s)
{
String sub = temp.substring(0, s);
temp = temp.substring(s, temp.length());
perform(sub);
}
if (temp.length() == s)
perform(temp);
else if (temp.length() < s)
{
for (int i = temp.length(); i < s; i++)
temp = temp + 'x';
perform(temp);
}
}
public void perform(String line)
{
linetomatrix(line);
linemultiplykey(line.length());
result(line.length());
}
public void keytomatrix(String key, int len)
{
keymatrix = new int[len][len];
int c = 0;
for (int i = 0; i < len; i++)
{
for (int j = 0; j < len; j++)
{
keymatrix[i][j] = ((int) key.charAt(c)) - 97;
c++;
}
}
}
public void linetomatrix(String line)
{
linematrix = new int[line.length()];
for (int i = 0; i < line.length(); i++)
{
linematrix[i] = ((int) line.charAt(i)) - 97;
}
}
public void linemultiplykey(int len)
{
resultmatrix = new int[len];
for (int i = 0; i < len; i++)
{
for (int j = 0; j < len; j++)
{
resultmatrix[i] += keymatrix[i][j] * linematrix[j];
}
resultmatrix[i] %= 26;
}
}
public void result(int len)
{
String result = "";
for (int i = 0; i < len; i++)
{
result += (char) (resultmatrix[i] + 97);
}
System.out.print(result);
}
public boolean check(String key, int len)
{
keytomatrix(key, len);
int d = determinant(keymatrix, len);
d = d % 26;
if (d == 0)
{
System.out
.println("Invalid key!!! Key is not invertible because determinant=0...");
return false;
}
else if (d % 2 == 0 || d % 13 == 0)
{
System.out
.println("Invalid key!!! Key is not invertible because determinant has common factor with 26...");
return false;
}
else
{
return true;
}
}
public int determinant(int A[][], int N)
{
int res;
if (N == 1)
res = A[0][0];
else if (N == 2)
{
res = A[0][0] * A[1][1] - A[1][0] * A[0][1];
}
else
{
res = 0;
for (int j1 = 0; j1 < N; j1++)
{
int m[][] = new int[N - 1][N - 1];
for (int i = 1; i < N; i++)
{
int j2 = 0;
for (int j = 0; j < N; j++)
{
if (j == j1)
continue;
m[i - 1][j2] = A[i][j];
j2++;
}
}
res += Math.pow(-1.0, 1.0 + j1 + 1.0) * A[0][j1]
* determinant(m, N - 1);
}
}
return res;
}
public void cofact(int num[][], int f)
{
int b[][], fac[][];
b = new int[f][f];
fac = new int[f][f];
int p, q, m, n, i, j;
for (q = 0; q < f; q++)
{
for (p = 0; p < f; p++)
{
m = 0;
n = 0;
for (i = 0; i < f; i++)
{
for (j = 0; j < f; j++)
{
b[i][j] = 0;
if (i != q && j != p)
{
b[m][n] = num[i][j];
if (n < (f - 2))
n++;
else
{
n = 0;
m++;
}
}
}
}
fac[q][p] = (int) Math.pow(-1, q + p) * determinant(b, f - 1);
}
}
trans(fac, f);
}
void trans(int fac[][], int r)
{
int i, j;
int b[][], inv[][];
b = new int[r][r];
inv = new int[r][r];
int d = determinant(keymatrix, r);
int mi = mi(d % 26);
mi %= 26;
if (mi < 0)
mi += 26;
for (i = 0; i < r; i++)
{
for (j = 0; j < r; j++)
{
b[i][j] = fac[j][i];
}
}
for (i = 0; i < r; i++)
{
for (j = 0; j < r; j++)
{
inv[i][j] = b[i][j] % 26;
if (inv[i][j] < 0)
inv[i][j] += 26;
inv[i][j] *= mi;
inv[i][j] %= 26;
}
}
System.out.println("\nInverse key:");
matrixtoinvkey(inv, r);
}
public int mi(int d)
{
int q, r1, r2, r, t1, t2, t;
r1 = 26;
r2 = d;
t1 = 0;
t2 = 1;
while (r1 != 1 && r2 != 0)
{
q = r1 / r2;
r = r1 % r2;
t = t1 - (t2 * q);
r1 = r2;
r2 = r;
t1 = t2;
t2 = t;
}
return (t1 + t2);
}
public void matrixtoinvkey(int inv[][], int n)
{
String invkey = "";
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
invkey += (char) (inv[i][j] + 97);
}
}
System.out.print(invkey);
}
public static void main(String args[]) throws IOException
{
HillCipher obj = new HillCipher();
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
int choice;
System.out.println("Menu:\n1: Encryption\n2: Decryption");
choice = Integer.parseInt(in.readLine());
System.out.println("Enter the line: ");
String line = in.readLine();
System.out.println("Enter the key: ");
String key = in.readLine();
double sq = Math.sqrt(key.length());
if (sq != (long) sq)
System.out
.println("Invalid key length!!! Does not form a square matrix...");
else
{
int s = (int) sq;
if (obj.check(key, s))
{
System.out.println("Result:");
obj.divide(line, s);
obj.cofact(obj.keymatrix, s);
}
}
}
}
Playfair Cipher Implementation in java
PROGRAM CODE:
import java.util.Scanner;
public class PlayfairCipherEncryption
{
private String KeyWord = new String();
private String Key = new String();
private char matrix_arr[][] = new char[5][5];
public void setKey(String k)
{
String K_adjust = new String();
boolean flag = false;
K_adjust = K_adjust + k.charAt(0);
for (int i = 1; i < k.length(); i++)
{
for (int j = 0; j < K_adjust.length(); j++)
{
if (k.charAt(i) == K_adjust.charAt(j))
{
flag = true;
}
}
if (flag == false)
K_adjust = K_adjust + k.charAt(i);
flag = false;
}
KeyWord = K_adjust;
}
public void KeyGen()
{
boolean flag = true;
char current;
Key = KeyWord;
for (int i = 0; i < 26; i++)
{
current = (char) (i + 97);
if (current == 'j')
continue;
for (int j = 0; j < KeyWord.length(); j++)
{
if (current == KeyWord.charAt(j))
{
flag = false;
break;
}
}
if (flag)
Key = Key + current;
flag = true;
}
System.out.println(Key);
matrix();
}
private void matrix()
{
int counter = 0;
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 5; j++)
{
matrix_arr[i][j] = Key.charAt(counter);
System.out.print(matrix_arr[i][j] + " ");
counter++;
}
System.out.println();
}
}
private String format(String old_text)
{
int i = 0;
int len = 0;
String text = new String();
len = old_text.length();
for (int tmp = 0; tmp < len; tmp++)
{
if (old_text.charAt(tmp) == 'j')
{
text = text + 'i';
}
else
text = text + old_text.charAt(tmp);
}
len = text.length();
for (i = 0; i < len; i = i + 2)
{
if (text.charAt(i + 1) == text.charAt(i))
{
text = text.substring(0, i + 1) + 'x' + text.substring(i + 1);
}
}
return text;
}
private String[] Divid2Pairs(String new_string)
{
String Original = format(new_string);
int size = Original.length();
if (size % 2 != 0)
{
size++;
Original = Original + 'x';
}
String x[] = new String[size / 2];
int counter = 0;
for (int i = 0; i < size / 2; i++)
{
x[i] = Original.substring(counter, counter + 2);
counter = counter + 2;
}
return x;
}
public int[] GetDiminsions(char letter)
{
int[] key = new int[2];
if (letter == 'j')
letter = 'i';
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 5; j++)
{
if (matrix_arr[i][j] == letter)
{
key[0] = i;
key[1] = j;
break;
}
}
}
return key;
}
public String encryptMessage(String Source)
{
String src_arr[] = Divid2Pairs(Source);
String Code = new String();
char one;
char two;
int part1[] = new int[2];
int part2[] = new int[2];
for (int i = 0; i < src_arr.length; i++)
{
one = src_arr[i].charAt(0);
two = src_arr[i].charAt(1);
part1 = GetDiminsions(one);
part2 = GetDiminsions(two);
if (part1[0] == part2[0])
{
if (part1[1] < 4)
part1[1]++;
else
part1[1] = 0;
if (part2[1] < 4)
part2[1]++;
else
part2[1] = 0;
}
else if (part1[1] == part2[1])
{
if (part1[0] < 4)
part1[0]++;
else
part1[0] = 0;
if (part2[0] < 4)
part2[0]++;
else
part2[0] = 0;
}
else
{
int temp = part1[1];
part1[1] = part2[1];
part2[1] = temp;
}
Code = Code + matrix_arr[part1[0]][part1[1]]
+ matrix_arr[part2[0]][part2[1]];
}
return Code;
}
public static void main(String[] args)
{
PlayfairCipherEncryption x = new PlayfairCipherEncryption();
Scanner sc = new Scanner(System.in);
System.out.println("Enter a keyword:");
String keyword = sc.next();
x.setKey(keyword);
x.KeyGen();
System.out
.println("Enter word to encrypt: (Make sure length of message is even)");
String key_input = sc.next();
if (key_input.length() % 2 == 0)
{
System.out.println("Encryption: " + x.encryptMessage(key_input));
}
else
{
System.out.println("Message length should be even");
}
sc.close();
}
}
import java.util.Scanner;
public class PlayfairCipherEncryption
{
private String KeyWord = new String();
private String Key = new String();
private char matrix_arr[][] = new char[5][5];
public void setKey(String k)
{
String K_adjust = new String();
boolean flag = false;
K_adjust = K_adjust + k.charAt(0);
for (int i = 1; i < k.length(); i++)
{
for (int j = 0; j < K_adjust.length(); j++)
{
if (k.charAt(i) == K_adjust.charAt(j))
{
flag = true;
}
}
if (flag == false)
K_adjust = K_adjust + k.charAt(i);
flag = false;
}
KeyWord = K_adjust;
}
public void KeyGen()
{
boolean flag = true;
char current;
Key = KeyWord;
for (int i = 0; i < 26; i++)
{
current = (char) (i + 97);
if (current == 'j')
continue;
for (int j = 0; j < KeyWord.length(); j++)
{
if (current == KeyWord.charAt(j))
{
flag = false;
break;
}
}
if (flag)
Key = Key + current;
flag = true;
}
System.out.println(Key);
matrix();
}
private void matrix()
{
int counter = 0;
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 5; j++)
{
matrix_arr[i][j] = Key.charAt(counter);
System.out.print(matrix_arr[i][j] + " ");
counter++;
}
System.out.println();
}
}
private String format(String old_text)
{
int i = 0;
int len = 0;
String text = new String();
len = old_text.length();
for (int tmp = 0; tmp < len; tmp++)
{
if (old_text.charAt(tmp) == 'j')
{
text = text + 'i';
}
else
text = text + old_text.charAt(tmp);
}
len = text.length();
for (i = 0; i < len; i = i + 2)
{
if (text.charAt(i + 1) == text.charAt(i))
{
text = text.substring(0, i + 1) + 'x' + text.substring(i + 1);
}
}
return text;
}
private String[] Divid2Pairs(String new_string)
{
String Original = format(new_string);
int size = Original.length();
if (size % 2 != 0)
{
size++;
Original = Original + 'x';
}
String x[] = new String[size / 2];
int counter = 0;
for (int i = 0; i < size / 2; i++)
{
x[i] = Original.substring(counter, counter + 2);
counter = counter + 2;
}
return x;
}
public int[] GetDiminsions(char letter)
{
int[] key = new int[2];
if (letter == 'j')
letter = 'i';
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 5; j++)
{
if (matrix_arr[i][j] == letter)
{
key[0] = i;
key[1] = j;
break;
}
}
}
return key;
}
public String encryptMessage(String Source)
{
String src_arr[] = Divid2Pairs(Source);
String Code = new String();
char one;
char two;
int part1[] = new int[2];
int part2[] = new int[2];
for (int i = 0; i < src_arr.length; i++)
{
one = src_arr[i].charAt(0);
two = src_arr[i].charAt(1);
part1 = GetDiminsions(one);
part2 = GetDiminsions(two);
if (part1[0] == part2[0])
{
if (part1[1] < 4)
part1[1]++;
else
part1[1] = 0;
if (part2[1] < 4)
part2[1]++;
else
part2[1] = 0;
}
else if (part1[1] == part2[1])
{
if (part1[0] < 4)
part1[0]++;
else
part1[0] = 0;
if (part2[0] < 4)
part2[0]++;
else
part2[0] = 0;
}
else
{
int temp = part1[1];
part1[1] = part2[1];
part2[1] = temp;
}
Code = Code + matrix_arr[part1[0]][part1[1]]
+ matrix_arr[part2[0]][part2[1]];
}
return Code;
}
public static void main(String[] args)
{
PlayfairCipherEncryption x = new PlayfairCipherEncryption();
Scanner sc = new Scanner(System.in);
System.out.println("Enter a keyword:");
String keyword = sc.next();
x.setKey(keyword);
x.KeyGen();
System.out
.println("Enter word to encrypt: (Make sure length of message is even)");
String key_input = sc.next();
if (key_input.length() % 2 == 0)
{
System.out.println("Encryption: " + x.encryptMessage(key_input));
}
else
{
System.out.println("Message length should be even");
}
sc.close();
}
}
SECURITY LABORATORY (IT6712)
Hi this is our second lab manual from gr-solution.The first lab manual for Mobile Application Development lab has been used more than hundred colleges in tamilnadu and Andra Pradesh.We thank all the buyer and we also get lot of good feedback.
Hardware Requirements
RAM Memory -2 GB or more
Intel Pentium 4 or AMD Athlon 2 GHz (or faster)
1 GB (or more) available hard disk space
Software Requirements
Java Runtime Environment 1.6 or above
GnuPG,KF sensor,Net Strumbler,snort
Lab manual features
*A complete Lab Manual with pdf contain source code,Procedure,software installation procedure and also software for all experiment.
*Step by step procedure to install and execute all the programs.
*Anna University Latest Sylabus.
*Easy to execute all the experiment .
*Step by step procedure is available with the manual.So that easily Run the experiment without the help of other.
A complete Lab Manual with source code for all experiment.
LabManual cost details
LAB MANUAL DVD(Rs 1000)
The labmanual with dvd it includes all experiment in pdf,software and installation procedure.The labmanul cost RS1000.The dvd will be reach you with in one or two days.
LAB MANUAL SOFT COPY(Rs 700)
The softcopy of lab manual is availabe via email.It includes all experiment in pdf,installation procedure.The labmanual cost RS700.The email will reach you shortly after payment.
Payment method:
The payment has be made to the following bank account.After payment contact as we will send our lab manual.
contact details:
Bank Account Details:
EXPERIMENTS
1)Implement the following SUBSTITUTION & TRANSPOSITION TECHNIQUES concepts:
a) Caesar Cipher
Hardware Requirements
RAM Memory -2 GB or more
Intel Pentium 4 or AMD Athlon 2 GHz (or faster)
1 GB (or more) available hard disk space
Software Requirements
Java Runtime Environment 1.6 or above
GnuPG,KF sensor,Net Strumbler,snort
Lab manual features
*A complete Lab Manual with pdf contain source code,Procedure,software installation procedure and also software for all experiment.
*Step by step procedure to install and execute all the programs.
*Anna University Latest Sylabus.
*Easy to execute all the experiment .
*Step by step procedure is available with the manual.So that easily Run the experiment without the help of other.
A complete Lab Manual with source code for all experiment.
LabManual cost details
LAB MANUAL DVD(Rs 1000)
The labmanual with dvd it includes all experiment in pdf,software and installation procedure.The labmanul cost RS1000.The dvd will be reach you with in one or two days.
LAB MANUAL SOFT COPY(Rs 700)
The softcopy of lab manual is availabe via email.It includes all experiment in pdf,installation procedure.The labmanual cost RS700.The email will reach you shortly after payment.
Payment method:
The payment has be made to the following bank account.After payment contact as we will send our lab manual.
contact details:
CELL:8344790950
EMAIL:hitechguil@gmail.com
Bank Account Details:
BANK NAME :STATE BANK OF INDIA
ACCOUNT NO:20222847933
ACCOUNT HOLDER NAME:P GUILBERT RAJ
IFSC CODE:SBIN0010501
EXPERIMENTS
1)Implement the following SUBSTITUTION & TRANSPOSITION TECHNIQUES concepts:
a) Caesar Cipher
c)
Hill Cipher
Caesar Cipher implementation in java
PROGRAM:
import java.util.Scanner;
public class ceasercipher
{
public static final String ALPHABET = "abcdefghijklmnopqrstuvwxyz";
public static String encrypt(String plainText, int shiftKey)
{
plainText = plainText.toLowerCase();
String cipherText = "";
for (int i = 0; i < plainText.length(); i++)
{
int charPosition = ALPHABET.indexOf(plainText.charAt(i));
int keyVal = (shiftKey + charPosition) % 26;
char replaceVal = ALPHABET.charAt(keyVal);
cipherText += replaceVal;
}
return cipherText;
}
public static String decrypt(String cipherText, int shiftKey)
{
cipherText = cipherText.toLowerCase();
String plainText = "";
for (int i = 0; i < cipherText.length(); i++)
{
int charPosition = ALPHABET.indexOf(cipherText.charAt(i));
int keyVal = (charPosition - shiftKey) % 26;
if (keyVal < 0)
{
keyVal = ALPHABET.length() + keyVal;
}
char replaceVal = ALPHABET.charAt(keyVal);
plainText += replaceVal;
}
return plainText;
}
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
System.out.println("Enter the String for Encryption: ");
String message = new String();
message = sc.next();
System.out.println("Encryption message= "+encrypt(message, 3));
System.out.println("Decryption message= "+decrypt(encrypt(message, 3), 3));
sc.close();
}
}
OUTPUT:
import java.util.Scanner;
public class ceasercipher
{
public static final String ALPHABET = "abcdefghijklmnopqrstuvwxyz";
public static String encrypt(String plainText, int shiftKey)
{
plainText = plainText.toLowerCase();
String cipherText = "";
for (int i = 0; i < plainText.length(); i++)
{
int charPosition = ALPHABET.indexOf(plainText.charAt(i));
int keyVal = (shiftKey + charPosition) % 26;
char replaceVal = ALPHABET.charAt(keyVal);
cipherText += replaceVal;
}
return cipherText;
}
public static String decrypt(String cipherText, int shiftKey)
{
cipherText = cipherText.toLowerCase();
String plainText = "";
for (int i = 0; i < cipherText.length(); i++)
{
int charPosition = ALPHABET.indexOf(cipherText.charAt(i));
int keyVal = (charPosition - shiftKey) % 26;
if (keyVal < 0)
{
keyVal = ALPHABET.length() + keyVal;
}
char replaceVal = ALPHABET.charAt(keyVal);
plainText += replaceVal;
}
return plainText;
}
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
System.out.println("Enter the String for Encryption: ");
String message = new String();
message = sc.next();
System.out.println("Encryption message= "+encrypt(message, 3));
System.out.println("Decryption message= "+decrypt(encrypt(message, 3), 3));
sc.close();
}
}
Subscribe to:
Posts (Atom)
























