Write A Java Program To Implement The DES Algorithm Logic
Write A Java Program To Implement The DES Algorithm Logic
THEORY:
DES is a block cipher technique which encrypts data in blocks (64 bit size), i.e. 64 bits of
PLAINTEXT message goes as the input to DES, which produces 64 bits of
CIPHERTEXT message. DES uses a 56 bit key. DES is actually based on the two
fundamental concepts of cryptography: substitution and transposition. It consists of 16
steps called as a rounds. Each round is responsible for performing the steps of
substitution and transposition.
STEP-1:
STEP-2:
Initial permutation (IP) divides 64-bit PLAINTEXT into two halves ;say Left
PLAINTEXT (LPT) and Right PLAINTEXT (RPT).
STEP-3:
STEP-4:
In the end, LPT and RPT are re-joined and a Final Permutation (FP) is
performed on the combined 64-bit block.
STEP-5:
https://onlinesmarttrainer.blogspot.com/2019/02/write-java-program-to-implement-des.html 1/6
3/26/2019 Write a Java program to implement the DES algorithm logic.
SOURCE 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()
{
try
{
generateSymmetricKey();
inputMessage=JOptionPane.showInputDialog(null,"Enter message to encrypt");
byte[] ibyte = inputMessage.getBytes();
byte[] ebyte=encrypt(raw, ibyte);
String encryptedData = new String(ebyte);
System.out.println("Encrypted message "+encryptedData);
JOptionPane.showMessageDialog(null,"Encrypted Data "+"\n"+encryptedData);
byte[] dbyte= decrypt(raw,ebyte);
String decryptedMessage = new String(dbyte);
System.out.println("Decrypted message "+decryptedMessage);
JOptionPane.showMessageDialog(null,"Decrypted Data "+"\n"+decryptedMessage);
}
catch(Exception e)
{
System.out.println(e);
}
}
void generateSymmetricKey() {
try {
Random r = new Random();
int num = r.nextInt(10000);
String knum = String.valueOf(num);
b t [] k b k tB t ()
https://onlinesmarttrainer.blogspot.com/2019/02/write-java-program-to-implement-des.html 2/6
3/26/2019 Write a Java program to implement the DES algorithm logic.
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();
}
https://onlinesmarttrainer.blogspot.com/2019/02/write-java-program-to-implement-des.html 3/6
3/26/2019 Write a Java program to implement the DES algorithm logic.
}
OUTPUT:
https://onlinesmarttrainer.blogspot.com/2019/02/write-java-program-to-implement-des.html 4/6
3/26/2019 Write a Java program to implement the DES algorithm logic.
BlowFish algorithm in java Caesar Cipher DES Hill Cipher Play-fair cipher
Rijndael algorithm in java XOR a string with 0 XOR a string with a 127
https://onlinesmarttrainer.blogspot.com/2019/02/write-java-program-to-implement-des.html 5/6
3/26/2019 Write a Java program to implement the DES algorithm logic.
Total post
Labels
YouTube 181
FORMS
Computer Society of India
Followers
Followers (21)
12,233
Contact Form
Name
Email *
Message *
Send
https://onlinesmarttrainer.blogspot.com/2019/02/write-java-program-to-implement-des.html 6/6