Anda di halaman 1dari 9

NAMA : ARRIZKY AYU FARADILA PURNAMA (1101154453)

DIAS SATRIA WIBOWO ()


KELAS : TT – 39 – G2
MK : KEAMANAN JARINGAN

1. FLOWCHART Proses Encrypt DES dan Descrypt DES

FLOWCHART ENCRYPT DES


FLOWCHART DESCRYPT DES

2. 100 Kata Sebagai Input Algoritma DES

Meski semakin banyak penikmat kopi yang mengenali berbagai jenis kopi, namun
tidak sedikit pula yang ternyata masih tidak mengetahui perbedaan kopi arabica dan robusta.
Yang penting pahit, kata beberapa orang.
Padahal citarasa kopi tidak sesederhana itu, namun lebih kompleks dan kaya. Rasa
kopi umumnya ditentukan banyak hal, mulai dari jenis atau varietasnya, lokasi
penanamannya, lingkungan sekitarnya, serta pengolahan bijinya. Itu sebabnya, meski berjenis
sama, rasa kopi Gayo dengan Toraja misalnya, memiliki aroma dan flavour yang berbeda.
Kopi sendiri memiliki jenis beragam yakni Arabica, Robusta, Liberica hingga
Excelsa. Dari ragam tersebut, Arabica dan Robusta adalah varietas terbesar yang ada di
Indonesia.
3. Prosedure Encrypt dan Descrypt dengan menggunakan JAVA
- (new class)
package Des;

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);

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();

}
(NEW CLASS1)
/*

* To change this license header, choose License Headers in Project Properties.

* To change this template file, choose Tools | Templates

* and open the template in the editor.

*/

package des;

import javax.crypto.Cipher;

import javax.crypto.KeyGenerator;

import javax.crypto.SecretKey;

class DesEncrypter {

Cipher ecipher;

Cipher dcipher;

DesEncrypter(SecretKey key) throws Exception {

ecipher = Cipher.getInstance("DES");

dcipher = Cipher.getInstance("DES");

ecipher.init(Cipher.ENCRYPT_MODE, key);

dcipher.init(Cipher.DECRYPT_MODE, key);

public String encrypt(String str) throws Exception {

// Encode the string into bytes using utf-8

byte[] utf8 = str.getBytes("UTF8");

// Encrypt

byte[] enc = ecipher.doFinal(utf8);


// Encode bytes to base64 to get a string

return new sun.misc.BASE64Encoder().encode(enc);

public String decrypt(String str) throws Exception {

// Decode base64 to get bytes

byte[] dec = new sun.misc.BASE64Decoder().decodeBuffer(str);

byte[] utf8 = dcipher.doFinal(dec);

// Decode using utf-8

return new String(utf8, "UTF8");

public class NewClass1 {

public static void main(String[] argv) throws Exception {

SecretKey key = KeyGenerator.getInstance("DES").generateKey();

DesEncrypter encrypter = new DesEncrypter(key);

String encrypted = encrypter.encrypt("Meski semakin banyak penikmat kopi yang mengenali


berbagai jenis kopi, namun tidak sedikit pula yang ternyata masih tidak mengetahui perbedaan kopi
arabica dan robusta. Yang penting pahit, kata beberapa orang.\n" +

"Padahal citarasa kopi tidak sesederhana itu, namun lebih kompleks dan kaya. Rasa kopi umumnya
ditentukan banyak hal, mulai dari jenis atau varietasnya, lokasi penanamannya, lingkungan
sekitarnya, serta pengolahan bijinya. Itu sebabnya, meski berjenis sama, rasa kopi Gayo dengan
Toraja misalnya, memiliki aroma dan flavour yang berbeda.\n" +

"Kopi sendiri memiliki jenis beragam yakni Arabica, Robusta, Liberica hingga Excelsa. Dari ragam
tersebut, Arabica dan Robusta adalah varietas terbesar yang ada di Indonesia.");

String decrypted = encrypter.decrypt(encrypted);

System.out.println("Plain Text :" + decrypted);

System.out.println("Terenkripsi :" + encrypted);

System.out.println("Deskripsi :"+ decrypted);

}
}

OUTPUT (HASIL RUN):

run:

Plain Text :Meski semakin banyak penikmat kopi yang mengenali berbagai jenis kopi, namun tidak
sedikit pula yang ternyata masih tidak mengetahui perbedaan kopi arabica dan robusta. Yang
penting pahit, kata beberapa orang.

Padahal citarasa kopi tidak sesederhana itu, namun lebih kompleks dan kaya. Rasa kopi umumnya
ditentukan banyak hal, mulai dari jenis atau varietasnya, lokasi penanamannya, lingkungan
sekitarnya, serta pengolahan bijinya. Itu sebabnya, meski berjenis sama, rasa kopi Gayo dengan
Toraja misalnya, memiliki aroma dan flavour yang berbeda.

Kopi sendiri memiliki jenis beragam yakni Arabica, Robusta, Liberica hingga Excelsa. Dari ragam
tersebut, Arabica dan Robusta adalah varietas terbesar yang ada di Indonesia.

Terenkripsi
:wOWgCKSmwc/GtQCD6E9IWTFC2O9bxeUtwEekkccVWE6EP9HscoFw2MMKSt8Y+Ej6z/Dol3bl7Bor

91Je/ZMuC+xX6QEb5zxsLpwLU57KY6ASKsMe742ywetCUl4422MS9Yxj9bx1TdZHG7UZ1wCv+AZh

Lh6RWCe3XqFGBdf8VGXORdHZXohF6BB80Hpd7FeLFiY8j/FnfO6QtXhzp8MGotHVvK3rOF2p5IoM

fdC5xzLVjMJze7v9S6FkKmMM/IqJ/ARC+e6HFuslldNJiVsnmiVt4kOeAARMSbLnO+ZeTCKTws91

X7NsRcZ4sjLZxgs8lEo5xebSVu2K1HvnJ3SCG5fQOk5I4aQmXKk1JaWQEwlIFH2u6jVdHV4/NOB7

gdOFk8LPdV+zbEWXl2NNe7xnRyrIlssq+v70Gy3NST6BPjJrU9UT57u+sRxF1SYXErbw940pNhl7

gsgAYqBa6sbtaBHw7REN44sfDOqbAYF54bSizl84MEwlZWSmIYQAVyg4R2PKT6u93sOa34h79d/x

0K11Hyz5eMF0Clc7mIhBtM4NoLrPGjPpAvg7IFD/WVySJE63ZkpMjbYgAmK6FuDxd9GwTGiZ+PRl

dvwek79oqDR1dyAxv443QL7deK1RZW3E057mWYMOYkAK0LJ6gA1tpIW2kct5eOKXNwCZ0cfPNgVy

ia2HS4PcGfvLP+PXidSr0Z0rOrY74iZWLAFOb8ohe2s6CTTCI8CP3wLSvEVfBmV9Sop6DO0J/xqI

pD8ZdizdQurqqT3T9B5XMalJPl4hQelY70pAywP6WhPdxF34GktP8FpcPX4CRD+Mov+YFl45k488

g+YKXgFbAv3fLDG1vxKiP8c8ygqzDgIvz/R8bnvPDI7Cjk8wEiBYMOCntKuQoPvBHAbbYVQXgDWh

t7L0G2PxGwNzaJP5aAMCtowKBwFhFlnGbO9l7rBawZT8gsDVWpPt+Antd1k=

Deskripsi :Meski semakin banyak penikmat kopi yang mengenali berbagai jenis kopi, namun tidak
sedikit pula yang ternyata masih tidak mengetahui perbedaan kopi arabica dan robusta. Yang
penting pahit, kata beberapa orang.

Padahal citarasa kopi tidak sesederhana itu, namun lebih kompleks dan kaya. Rasa kopi umumnya
ditentukan banyak hal, mulai dari jenis atau varietasnya, lokasi penanamannya, lingkungan
sekitarnya, serta pengolahan bijinya. Itu sebabnya, meski berjenis sama, rasa kopi Gayo dengan
Toraja misalnya, memiliki aroma dan flavour yang berbeda.
Kopi sendiri memiliki jenis beragam yakni Arabica, Robusta, Liberica hingga Excelsa. Dari ragam
tersebut, Arabica dan Robusta adalah varietas terbesar yang ada di Indonesia.

BUILD SUCCESSFUL (total time: 2 seconds)

4. Penjelasan Enkripsi Menggunakan Metode DES


Dalam enkripsi DES, ukuran blok adalah 64 bit. DES juga menggunakan kunci untuk
menyesuaikan transformasi, dekripsi sehingga dapat dianggap hanya dapat dilakukan oleh
orang yang mengetahui kunci tertentu yang digunakan untuk mengenkripsi. Kunci terdiri dari
64-bit, namun hanya 56 bit di antaranya yang benar-benar digunakan oleh algoritma. Delapan
bit digunakan hanya untuk memeriksa bit paritas, dan kemudian dibuang. Maka panjang
kunci yang efektif adalah 56 bit.
Dalam tugas ini, 100 kata yang digunakan sebagai input pad DES sebagi plain text
sehingga menghasilkan kata acak (output pada enskripsi), kemmudian untuk deskripsi
dikembalikan menjadi 100 kata awal tersebut atau 100 kata asli.

Anda mungkin juga menyukai