APLIKASI DEKRIPSI DAN ENKRIPSI PESAN DENGAN ALGORITMA DATA ENCRYPTION STANDARD (DES) BERBASIS JAVA
NASKAH PUBLIKASI
diajukan oleh Witarko 10.11.4268
Kepada SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER AMIKOM YOGYAKARTA YOGYAKARTA 2014
DESCRIPTION AND ENCRYPTION APPLICATION WITH ALGORITHM DATA ENCRYPTION STANDARD (DES) BASED JAVA APLIKASI DEKRIPSI DAN ENKRIPSI PESAN DENGAN ALGORITMA DATA ENCRYPTION STANDARD (DES) BERBASIS JAVA Witarko Ema Utami Jurusan Teknik Informatika STMIK AMIKOM YOGYAKARTA
ABSTRACT A Message can contain data that is very important. Therefore, the message safety is should be a very important concern. And the way to make that message safe is with encryption. Encryption is the process to make safe of information by making the information can’t be read or understood. If information already encrypted, then the information is sent safely to the other without fear of being seen. Then, to be able to read messages that have been encrypted, the process called decryption. Decryption is the process to read the information that has been encrypted. One method of encryption and decryption is the Data Encryption Standard (DES) that have been used as the standard for data security in the United States government. Data Encryption Standard (DES) encryption techniques belong to the private key. DES algorithms will encrypt data blocks of 64 bits using a key of 56 bits. Application in this paper is able to encrypt and decrypt the text so that it becomes unreadable by using the DES cryptographic algorithm. This application is created using the Java programming language on the Windows operating system. Keywords: Cryptography, DES, Java, Security, Key, Message, Encryption, Decryption.
1.
Pendahuluan Perkembangan teknologi jaringan komputer menyebabkan terkaitnya satu
komputer dengan komputer yang lainnya. Hal ini membuka banyak peluang dalam pengembangan aplikasi komputer tetapi juga membuat peluang adanya ancaman terhadap pengubahan dan pencurian data (Rifki Sadikin, 2012). Seiring dengan perkembangan dunia teknologi saat ini, hampir semua hal selalu disajikan dalam bentuk digital dan terkomputerisasi. Seperti halnya buku dan perpustakaan online. Bahkan layanan Bank pun ada di internet yang sebenarnya sangat rawan terjadi tindak kejahatan dunia maya (Cyber Crime). Maka dari itu, setiap orang berupaya agar setiap data yang beredar di dunia maya ataupun dalam suatu jaringan tertentu tetap terjaga kerahasiaannya. Banyak cara yang dilakukan orang-orang untuk mengamankan data, salah satu caranya adalah dengan membuat data informasi tersebut tidak dapat dipahami orang lain. Dimulai dari sinilah muncul ilmu baru yang disebut ilmu Kriptografi. Kriptogafi adalah ilmu dan seni untuk menjaga keamanan pesan ketika pesan dikirim dari suatu tempat ke tempat lain (Dony Ariyus, 2008). Pada era teknologi sekarang, enkripsi adalah salah satu cara yang paling baik untuk mengamankan pesan. Enkripsi sendiri adalah proses mengamankan suatu informasi dengan membuat informasi tersebut tidak dapat dibaca atau dimengerti. Setelah data terenkripsi, maka cara agar dapat membaca informasi atau pesan tersebut adalah dengan cara dekripsi, kebalikan dari enkripsi. Dekripsi adalah proses untuk membaca informasi yang sudah dienkripsi. Ada banyak algoritma kriptografi yang digunakan untuk mengenkripsi pesan, mulai dari yang paling klasik sampai yang paling modern. Semua memiliki karakteristrik sendiri - sendiri. Mengenkripsi sebuah pesan menggunakan algoritma kriptografi sebenarnya bukanlah perkara yang mudah. Karena algoritma kriptografi modern hampir semuanya menggunakan model bit. Oleh karena itu dibutuhkan ketelitian yang luar biasa untuk bisa mengenkripsi sebuah pesan menggunakan algoritma yang bermodelkan bit. Salah satu algoritma yang menggunakan model bit adalah algoritma Data Encryption Standard (DES). Data Encryption Standard (DES) merupakan salah satu algoritma kriptografi yang cukup sulit dan lama dalam penerapannya. Butuh berkali-kali proses permutasi untuk setiap kunci dan plainteks (pesan). Dan apabila proses pengenkripsian dan pendekripsian ini dilakukan secara manual, yang artinya dilakukan tanpa bantuan komputer, maka tingkat kesalahannya luar biasa besar. Salah satu angka saja akan membuat hasil yang sangat berbeda. Bahkan bisa berakibat gagalnya pesan untuk dibaca.
Melihat permasalahan tersebut, tentunya teknologi komputer saat ini dapat kita gunakan untuk pengembangan aplikasi enkripsi dan dekripsi pesan, diharapkan aplikasi enkripsi dan dekripsi pesan ini dapat membatu kita agar lebih mudah mengenkripsi dan mendekripsikan pesan menggunakan algoritma DES. Karena dalam apliksi enkripsi dan dekripsi yang ada sekarang ini, masih terbilang susah digunakan dan tidak ada penjelasan untuk setiap langkah enkripsi dan dekripsinya. Berdasarkan latar belakang yang telah dipaparkan inilah penulis mencoba membuat aplikasi yang dapat memudahkan proses enkripsi dan dekripsi pesan menggunakan algoritma DES dan dari penelitian ini penulis mengangkat judul “Aplikasi Dekripsi dan Enkripsi Pesan dengan Algoritma Data Encryption Standard (DES) berbasis Java”.
2.
Landasan Teori
2.1.
Konsep Dasar Kriptografi Kriptografi berasal dari bahasa Yunani, crypto dan graphia. Crypto berarti secret
(rahasia) dan graphia berarti writing (tulisan). Menurut terminologinya, kriptografi adalah ilmu dan seni untuk mejaga keamanan pesan ketika pesan dikirim dari suatu tempat ke tempat lain. Kriptografi mempunyai sejarah yang sangat menarik dan panjang. Kriptografi sudah digunakan 4000 tahun yang lalu, diperkenalkan oleh orang-orang Mesir lewat hieroglyph. Jenis tulisan ini bukanlah bentuk standar untuk menulis pesan.
2.2.
Algoritma Kriptografi Klasik Kriptografi klasik memiliki beberapa ciri:
2.3.
1.
Berbasis karakter
2.
Menggunakan pena dan kertas saja, belum terkomputerisasi
3.
Termasuk ke dalam kriptografi kunci simetris
Algoritma Kriptografi Modern Enkripsi modern berbeda dengan enkripsi konvensional. Enkripsi modern sudah
menggunakan komputer untuk pengoperasiannya, berfungsi untuk mengamankan data baik yang ditransfer melalui jaringan komputer maupun yang bukan. Hal ini sangat berguna untuk melindungi privacy, data integrity, authentication dan non-repuditation. 2.3.1.
Algoritma Simetri Algoritma simetris disebut juga algoritma konvensional adalah algoritma
yang menggunakan kunci enkripsi yang sama dengan kunci dekripsinya. Disebut
konvensional karena algoritma yang bisa digunakan orang sejak berabad-abad yang lalu adalah algoritma jenis ini. Aplikasi dari algoritma simetris digunakan oleh beberapa algoritma di bawah ini:
2.3.2.
1.
Data Encryption Standard (DES)
2.
Advance Encryption Standard (AES)
3.
International Data Encryption Algorithm (IDEA)
4.
A5
5.
RC4
Algoritma Asimetri Algoritma asimetrik (juga disebut algoritma Kunci Publik) didesain
sedemikian rupa sehingga kunci yang digunakan untuk enkripsi berbeda dari kunci yang digunakan untuk dekripsi.
2.3.3.
Algoritma Hibrida Algoritma hibrida adalah algoritma yang memanfaatkan dua tingkatan
kunci, yaitu kunci rahasia (simetri) – yang disebut juga session key (kunci sesi) – untuk enkripsi data dan pasangan kunci rahasia – kunci public untuk pemberian tanda tangan digital serta melindungi kunci simetri.
3.
Analisis dan Perancangan
3.1.
Analisis Sistem 3.2.1.
Identifikasi Masalah Keamanan sebuah pesan atau data menjadi perhatian yang sangat
serius. Terkadang orang-orang sering sekali bertukar pesan-pesan penting berupa password atau pesan penting lainnya. Apa yang terjadi apabila pesan rahasia kita diketahui oleh orang lain yang tidak berkepentingan. Jika sampai itu terjadi, maka tentu saja rahasia kita terbongkar. Untuk mengatasi permasalahan diatas, penulis membuat aplikasi untuk membantu kita mengamankan pesan rahasia agar tidak dapat dibaca orang lain menggunakan teknik yang disebut enkripsi menggunakan algoritma kriptografi Data Encryption Standard (DES). Dengan menggunakan aplikasi ini, pengguna dapat mengamankan pesan sekaligus dapat mempelajari bagaimana skema dari algoritma kriptografi DES.
3.2.2.
Analisis Kebutuhan Sistem
3.2.3.1.
Analisis Kebutuhan Fungsional Analisis kebutuhan fungsional berisi proses-proses apa saja yang
nantinya dilakukan oleh sistem. Kebutuhan fungsional juga berisi informasiinformasi apa saja yang harus ada, dihasilkan dan dilakukan oleh sistem. 1.
Pengguna menginstal aplikasi dekripsi dan enkripsi DES.
2.
Pengguna memiliki kunci simetri sebagai pengaman pesan dan pesan (plain text) untuk melakukan proses enkripsi.
3.
Dengan menu-menu yang ada pada aplikasi enkripsi dan dekripsi DES, pesan (plain text) dapat dienkripsi menggunakan algoritma DES yang dijelaskan secara detail.
4.
Pengguna memiliki kunci simetri dan pesan terenkripsi (chipper text) untuk melakukan proses dekripsi.
5.
Dengan menu-menu yang ada pada aplikasi enkripsi dan dekripsi DES,
pesan
terenkripsi
(chipper
text)
dapat
didekripsi
menggunakan algoritma DES yang dijelaskan secara detail. 6.
Pesan yang terenkripsi berupa kode-kode yang tidak dapat dibaca oleh orang awam sehinga pesan terjaga kerahasiaannya.
7.
Pesan
yang
terdekripsi
berupa
pesan
asli
yang
sudah
diterjemahkan dan dapat dibaca oleh orang awam. 3.2.3.2.
Analisis Kebutuhan Non Fungsional Analisis kebutuhan non-fungsional menjabarkan apa saja yang harus
dimiliki oleh sistem agar dapat berjalan. Kebutuhan non-funsional meliputi ketersediaan perangkat keras, perangkat lunak dan pengguna. 3.2.3.3.
Analisis Kebutuhan Perangkat Keras (Hardware) Perangkat keras yang dibutuhkan : 1.
Spesifikasi perangkat keras yang digunakan dalam pembuatan aplikasi adalah :
2.
3.2.3.4.
a.
Processor AMD E-450 APU with Radeon™ HD Graphics
b.
RAM (Random Access Memory) 2.00 GB
c.
Harddisk 250 GB
Spesifikasi minimum perangkat keras untuk implementasi aplikasi : a.
Processor 1.5 GHZ
b.
RAM (Random Access Memory) 1.00 GB
c.
Free Space Memory 500 MB
Analisis Kebutuhan Perangkat Lunak (Software) 1.
Software yang dibutuhkan untuk pembuatan aplikasi :
2.
a.
Sistem Operasi Windows 7 (32-bit)
b.
NetBeans 6.9.1
c.
Java™ SE Development Kit (JDK) 6 update 18
Sistem informasi yang dibutuhkan untuk penerapan aplikasi ini adalah minimal Windows XP
3.2.3.
Analisis Kelemahan Sistem Untuk mengidentifikasi masalah, maka harus dilakukan analisis
terhadap kekuatan, kelemahan, peluang dan ancaman. Panduan analisis ini dikenal dengan analisis SWOT (Strengths, Weakness, Opportunities, Threats). 3.1.3.1.
Analisis Kekuatan (Strengths) Beberapa kekuatan dari aplikasi enkripsi dan dekripsi DES ini adalah : 1.
Aplikasi enkripsi dan dekripsi DES ini mampu melakukan proses enkripsi dan dekripsi pesan dengan menggunakan metode DES.
2.
Aplikasi ini dapat mengenkripsi dan mendekripsi teks atau tulisan yang berupa angka, huruf dan karakter lainya yang masih dalam anggota ASCII.
3.
Aplikasi ini disertai tutorial bagaimana cara mengenkripsi dan mendekripsi menggunakan DES.
4.
Aplikasi ini menjelaskan secara detail bagaimana proses enkripsi dan dekripsi setiap langkah pengerjaannya.
5.
Aplikasi ini mampu mengenkripsi dan mendekripsi sebuah kalimat panjang yang lebih dari 64 bit.
6.
Aplikasi ini dibuat dengan (Graphical User Interface) GUI yang user friendly sehingga mudah digunakan.
3.1.3.2.
Analisis Kelemahan (Weakness) Beberapa kelemahan aplikasi enkripsi dan dekripsi DES ini adalah : 1. Aplikasi
ini
menggunakan
algoritma
DES,
yang
artinya
menggunakan 1 kunci simetri yang sama. Apabila kunci tersebut tersebar,
maka
orang
lain
dapat
menterjemahkan
pesan
menggunkan kunci tersebut. 2. Algoritma kriptografi DES termasuk algoritma yang sudah lama, dan sudah banyak kriptanalis yang mampu menjebol algoritma ini. 3.1.3.3.
Analisis Peluang (Opportunities) Beberapa peluang aplikasi enkripsi dan dekripsi DES ini adalah ; 1. Aplikasi ini dapat dimanfaatkan oleh semua orang yang ingin mempelajari
cara
enkripsi
dan
dekripsi
menggunakan metode algoritma DES.
pesan
atau
teks
2. Aplikasi ini cocok untuk orang-orang yang ingin merahasiakan pesan rahasianya agar tidak dapat diketahui orang lain. 3.1.3.4.
Analisis Ancaman (Threats) Proses enkripsi dan dekripsi menggunakan aplikasi enkripsi dan
dekripsi DES terhitung lama karena dalam pembuatannya, algoritma yang dipakai untuk membuat aplikasi ini menggunakan metode Array, bukan menggunakan metode bit seperti seharusnya meskipun hasilnya sama.
3.2.4.
Analisis Kelayakan Sistem Analisis ini digunakan untuk menentukan kemungkinan apakah aplikasi
enkripsi dan dekripsi DES layak untuk dikembangkan atau harus dihentikan. 3.1.4.1.
Analisis Kelayakan Teknologi Dari segi kelayakan teknologi aplikasi ini dapat dikatakan layak karena
untuk menjalankan aplikasi ini pengguna (user) tidak harus menginstal Java terlebih dahulu. Karena aplikasi ini sudah dikemas menjadi format executable (.exe) menggunakan aplikasi Advanced Installer 10.2. 3.1.4.2.
Analisis Kelayakan Hukum Kelayakan hukum disini merupakan peraturan yang ada dalam
pemerintahan, yang pasti selalu berubah-ubah setiap waktu dan diantisipasi dengan undang-undang yang berlaku. Berdasarkan penelitian, sistem yang diusulkan layak secara hukum karena software atau perangkat lunak yang mendukung aplikasi ini adalah menggunakan software yang legal, sehingga jika suatu saat sistem ini dijalankan dan terdapat pemeriksaan software, maka sistem ini tidak dapat dikatakan melanggar hukum. Aplikasi enkripsi dan dekripsi DES ini juga tidak mengandung unsur-unsur yang melanggar hukum karena tidak mengandung unsur SARA dan pornografi. 3.1.4.3.
Analisis Kelayakan Operasional Dari segi operasional aplikasi ini dikatakan layak, karena di jaman yang
modern ini, sudah banyak sekali orang-orang dapat mengoperasikan komputer dan mengetahui tentang keamanan data. Aplikasi ini juga di desain sedemikian rupa agar mudah untuk digunakan.
4.
Implementasi dan Pembahasan
4.1
Implementasi dan Pembahasan Tampilan 4.1.1
Proses Tampilan Enkripsi dan Dekripsi Kata Otomatis Proses dalam tampilan Enkripsi Kata Otomatis merupakan proses dimana
pengguna ( user ) dapat mengoperasikan sebuah kata untuk dienkripsi tanpa
melihat atau melewati setiap tahap penyandianya. Dalam proses ini pengguna diminta untuk memasukan plaintext untuk untuk proses enkripsi dan chipertext untuk proses dekripsi. Dan juga user harus memasukan kunci untuk melakukan enkripsi atau dekripsi. Pada tahap ini, aplikasi dilengkapi dengan pilihan combo box berisi pilihan String, Hexadecimal dan biner. Hal ini dimaksudkan agar pengguna dapat menggunakan aplikasi untuk enkripsi dan dekripsi walaupun kata yang akan dienkripsi atau didekripsi berbentuk String, Hexadecimal ataupun Biner.
Gambar 4.1. Tampilan Enkripsi Otomatis
Gambar 4.2. Tampilan Dekripsi Otomatis 4.1.2
Proses Tampilan Enkripsi dan Dekripsi Kata Step by Step Proses dalam tampilan Enkripsi Kata Step by step merupakan proses
dimana pengguna ( user ) dapat mengoperasikan sebuah kata untuk dienkripsi atau didekripsi dengan melihat atau melewati setiap tahap penyandiannya. Berikut urutan proses penyandian nya. 1.
Convert To Biner Dalam proses ini pengguna diminta untuk memasukan plaintext untuk proses enkripsi atau chipertext untuk proses dekripsi. User juga
diminta untuk memasukan kunci DES. Pada tahap ini, aplikasi dilengkapi dengan pilihan combo box berisi pilihan String dan Hexadecimal.
Hal
ini
dimaksudkan
agar
pengguna
dapat
menggunakan aplikasi walaupun kata atau pesan masih berbentuk String maupun Hexadecimal.
Gambar 4.3. Step Enkripsi Convert To Bin
Gambar 4.4. Step Dekripsi Convert To Bin 2.
Initial Permutation Pada step ini, Plaintext / Chipertext akan dipermutasikan dengan tabel (Initial Permutation (IP) yang kemudian disebut dengan X0. Selanjutnya, bagi blok IP/ X0 tersebut menjadi dua bagian L0 dan R0 dengan masing-masing mempunyai ukuran 32 bit. Kemudian, klik Next untuk ke langkah selanjutnya.
Gambar 4.5. Tampilan Enkripsi Initial Permutation
Gambar 4.6. Tampilan Dekripsi Initial Permutation 3.
Pencarian K+ untuk Pembangkitan Kunci Kunci yang sudah dalam bentuk biner dipermutasikan dengan tabel PC-1. Hasil permutasi kunci dengan tabel PC-1 disebut K+. Selanjutnya bagi dua kunci permutasi tersebut (K+) menjadi C0 dan D0, dimana setiap bagian mempunyai ukuran 28 bit. Setelah C0 didefinisikan, sekarang kita dapat membuat 16 blok Cn dan Dn, 1<=n<=16. Setiap pasang dari blok Cn dan Dn dibentuk dari pasangan
Cn-1
dan
Dn-1,
secara
berulang
untuk
n
=
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 menggunakan aturan “left shift” dari blok sebelumnya.
Gambar 4.7. Tampilan Kunci K+ dengan Tabel PC-1 Jika sudah mendapatkan nilai K+, kemudian klik next untuk langkah selanjutnya. 4.
Pembangkitan Kunci Kini
kita
membentuk
kunci
Kn,
untuk
1<=n<=16,
dengan
menerapkan permutasi sesuai dengan petunjuk tabel untuk setiap gabungan antara Cn dan Dn. Setiap pasang mempunyai ukuran 56 bit, tetapi permutasi ini hanya akan menggunakan 48 bit. Berikut ini adalah hasil dari pembangkitan 16 anak kunci.
Gambar 4.8. Tampilan Pembangkitan 16 anak kunci 5.
Tutorial Round 16 Pada step kali ini, hanya sebagai tutorial untuk melakukan enkripsi 16 kali putaran saja tanpa ada proses lain.
Gambar 4.9. Tampilan Tutorial Round 16 6.
Hasil Round 16 Kita lanjutkan dengan melakukan 16 iterasi untuk 1<=n<=16, dengan menerapkan fungsi f yang mengoperasikan dua blok data dari masing-masing 32 bit dan kunci 48 bit Kn untuk menghasilkan 32 bit data. Rumus yang digunakan adalah :
Gambar 4.10. Hasil 16 kali putaran Dekripsi
Gambar 4.11. Hasil 16 kali putaran Enkripsi Perbedaan enkripsi dan dekripsi adalah penggunaan Kunci. Jika enkripsi, maka kunci yang akan digunakan adalah K1 sampai dengan K16, lalu untuk dekripsi, kunci yang digunakan adalah K16 sampai dengan K1. Untuk menghitung f, pertama sistem akan mengembangkan setiap blok Rn-1 dari 32 bit menjadi 48 bit. Untuk melakukan hal ini, sistem
membutuhkan
fungsi
Expansion
Permutation
(E).
Selanjutnya, untuk perhitungan f, sistem akan melakukan operasi XOR pada E(Rn-1) dengan kunci Kn. Perhitungan f masih belum selesai, selanjutnya kita lakukan sebuah operasi pada setiap grup yang terdiri dari 6 bit. Kita gunakan setiap grup tersebut sebagai alamat pada tabel “Sboxes”. Dari hasil sebelumnya dapat ditentukan
Dimana setiap Bi terdiri dari 6 bit, maka dapat dihitung :
Jika B adalah 6 bit blok, maka S1(B) ditentukan sebagai berikut : Bit pertama dan terakhir dari B mewakili bilangan desimal 0-3 (0011). Anggap bilangan ini sebagai i. 4 bit tengah lainnya mewakili bilangan desimal 0-15 (0000-1111) dan anggap bilangan ini sebagai j. Dengan demikian variabel i sebagai baris dan j sebagai kolom. Sebagai contoh jika input B = 011011, maka i = 01 = 1 dan j = 1101 =13. Pada baris 1 dan kolom 13 kita dapatkan nilai 5, jadi outputnya adalah 0101.
Tahap terakhir dalam perhitungan f adalah dengan melakukan permutasi P dari output tersebut.
Pada step ini, sistem akan menampilkan informasi hasil enkripsi 16 putaran, yang retdiri dari E(Rn), Kn, En XOR Kn, S-Box Outputs, Hasil 7.
, Ln = Rn-1, dan R1.
Initial Permutation Invers dan Hasil Enkripsi Setelah melalui 16 kali putaran, maka pada putaran terakhir (Round 16) akan menghasilkan L16dan R16, yang nantinya akan digunakan untuk menentukan hasil enkripsi.
Gambar 4.12. Initial Permutation Invers dan Hasil Enkripsi
Gambar 4.13. Initial Permutation Invers dan Hasil Dekripsi Untuk mencari hasil enkripsi atau dekripsi, maka langkah yang dilakukan sistem adalah membalik L16 dan R16 kemudian
digabungkan menjadi R16L16. Setelah itu, lakukan permutasi -1
dengan Tabel IP . Untuk proses enkripsi, hasil permutasi tersebut adalah chipertext dari plaintext yang sudah dimasukan di awal step. Lalu, untuk dekripsi hasil permutasi tersebut adalah plaintext dari chipertext yang sudah dimasukan di awal step.
4.1.3
Proses Tampilan Enkripsi dan Dekripsi Kalimat Pada proses Enkripsi Kalimat disini, sedikit berbeda dengan enkripsi biasa,
karena seharusnya enkripsi dan dekripsi menggunakan Algoritma DES hanya bisa menggunakan 64 bit saja. Lalu, bagaimana cara mengenkripsi atau mendekripsi pesan apabila plaintext / chipertext lebih dari 64 bit. Cara yang paling masuk akal adalah membagi kalimat panjang tersebut menjadi beberapa bagian dengan setiap bagian terdiri dari 64 bit. Tentu saja jumlah bagian ini tergantung oleh panjang karakter dari kalimat itu sendiri. . Lalu, apabila ada blok yang belum terisi 64 bit atau 8 karater, maka akan diganti dengan karakter spasi sehingga bisa memenuhi ketentuan 64 bit algoritma DES.
Gambar 4.14. Tampilan Statement Encryption
Gambar 4.15. Tampilan Statement Decryption 5.
Penutup
5.1.
Kesimpulan Berdasarkan hasil analisis dan implementasi yang telah dilakukan, serta untuk
mengakhiri penelitian pada laporan skripsi yang berjudul “Aplikasi Dekripsi dan Enkripsi Pesan dengan Algoritma Data Encryption Standard (DES) berbasis Java” maka penulis dapat menarik kesimpulan sebagai berikut : 1.
Alur Algoritma Data Encryption Standard (DES) dilakukan dengan cara merubah plaintext dan key kedalam bentuk biner yang kemudian akan dibagi kedalam blok-blok biner sesuai ketentuan dari algoritma DES. Pesan atau plaintext yang digunakan berukuran 64 bit dan kunci yang digunakan berukuran 64 bit. Setelah plaintext dirubah menjadi biner, maka akan dilakukan permutasi awal menggunakan tabel Initial Permutation, lalu hasil dari permutasi ini dibagi menjadi 2 blok biner, yakni R0 dan L0. Langkah selanjutnya, key yang sudah berbentuk biner, dilakukan operasi untuk membangkitkan 16 buah anak kunci yang nantinya akan digunakan untuk mengenkripsi pesan. Setelah didapat 16 buah anak kunci tersebut, kemudian dimulailah perputaran 16 kali DES. Setelah perputaran selesai, tahap terakhir adalah melakukan permutasi R16L16 menggunakan tabel IP Invers. Perbedaan mendasar antara enkripsi dan dekripsi menggunakan algoritma DES adalah pada penggunaan 16 buah anak kunci. Pada proses enkripsi, kunci yang digunakan untuk perputaran adalah K1 sampai K16, sedangkan untuk dekripsi, kunci yang digunakan dimulai dari K16 sampai dengan K1.
2.
Pada aplikasi ini, proses enkripsi dan dekripsi dapat dilakukan secara bertahap. Penulis membagi langkah-langkah enkripsi dan dekripsi menjadi 6 langkah. Yang pertama, adalah melakukan konversi nilai masukan plaintext
dan key kedalam biner, kemudian melakukan Initial Permutation. Langkah ketiga adalah pembangkitan kunci dengan diawali pemcarian K+, baru kemudian dilangkah keempat akan ditemukan hasil dari pembangkitan 16 anak kunci tersebut. Langkah kelima adalah melakukan putaran 16 kali sesuai aturan algoritma DES. Langkah keenam atau terakhir adalah melakukan permutasi menggunakan tabel IP Invers. 3.
Aplikasi ini sudah dirancang sedemikian rupa agar dapat mengenkripsi dan mendekripsi pesan tanpa harus melalui langkah-langkah panjang. Jadi, proses enkripsi dan dekripsi ini sudah secara otomatis dijalankan oleh komputer tanpa harus menampilkan kepada user bagaimana proses ini berjalan.
4.
Algortima DES membatasi panjang karakter sebuah pesan yang akan dienkripsi dan didekripsi. Oleh karena itu, untuk dapat menenkripsi dan mendekripsi pesan berupa kalimat panjang, maka yang harus dilakukan adalah membagi kalimat itu menjadi blok-blok dimana setiap blok berisi 64 bit atau 8 karakter. Lalu, apabila ada blok yang belum terisi 64 bit atau 8 karater, maka akan diganti dengan karakter spasi sehingga bisa memenuhi ketentuan 64 bit algoritma DES.
5.2.
Saran Dalam penulisan skripsi ini tentu masih terdapat banyak kekurangan, namun ini
tidak menutup untuk dapat disempurnakan untuk pengembangan selanjutnya agar dapat meningkatkan fungsionalitasnya dan manfaat aplikasi ini. Beberapa hal yang mungkin dapat dilakukan untuk pengembangan aplikasi Encrypt Decrypt DES ini yaitu: 1.
Merubah metode konversi ke biner yang masih menggunakan Array menjadi bertipe Byte.
2.
Menambah logika untuk menyaring masukan berupa Hexadecimal dan Biner agar lebih akurat.
3.
Mengganti tutorial statis menjadi dinamis, seperti flash atau gambar bergerak agar menarik dan tidak membosankan.
4.
Memperbaiki Graphical User Interface (GUI) agar kelihatan lebih bagus dan lebih user friendly.
5.
Menambah algoritma kriptografi lain supaya bervariasi dan bisa digunakan untuk metode kriptografi hybrid.
6.
Menambahkan menu Help atau menu bantuan agar aplikasi ini bisa digunakan oleh orang awam.
DAFTAR PUSTAKA
Ariyuz, Dony. 2006. Kriptografi Keamanan Data dan Komunikasi. Yogyakarta : GRAHA ILMU. Ariyuz, Dony. 2008. Pengantar Ilmu Kriptografi Teori, Analisis, dan Implementasi. Yogyakarta : Andi Offset. Sadikin, Rifki. 2012. Kriptografi untuk Keamanan Jaringan. Yogyakarta : Andi Offset. Kurniawan, Yusuf. 2004. Kriptografi Keamanan Internet dan Jaringan Telekomunikasi. Bandung : Informatika Bandung. Kristanto, Andri. 2003. Keamanan Data pada Jaringan Komputer. Yogyakarta : Gava Media G. Sri Hartati, B. Herry Suharto, M. Soesilo Wijono. 2006. Pemrograman GUI Swing Java dengan NetBeans 5, Yogyakarta : Andi offset. Matius Soesilo, G. Sri Hartati Wijono, B. Herry Suharto. 2005. Java2SE dengan JBuilder. Yogyakarta : Andi Offset Budi Raharjo, Imam Heryanto, Arif Haryono. 2012. Mudah Belajar Java. Bandung : Informatika Bandung. Fowler, Martin. 2005. UML Distilled 3th Ed., Panduan Singkat Bahasa Pemodelan Objek Standar. Yogyakarta : Andi offset. Hermawan, Julius. 2004. Analisa-Desain dan Pemrograman Obyek dengan UML dan Visual Basic.NET. Yogyakarta : Andi offset.