BAB 3 PERANCANGAN PROGRAM 3.1 Struktur Menu Program aplikasi kriptografi yang dirancang memiliki struktur hirarki di mana terdapat 3 sub menu dari menu utamanya. Bentuk struktur menu program aplikasi kriptografi yang dirancang dapat digambarkan sebagai berikut. Menu Utama File Tools About Gambar 3.1 Rancangan Struktur Menu Utama Pada sub menu File akan memiliki sub menu New, sub menu Open, sub menu Save, sub menu Close dan sub menu Exit yang dapat dilihat pada struktur rancangan di bawah ini : 30
File New Open Save Close Exit Gambar 3.2 Rancangan Struktur File Pada sub menu Tools akan memiliki sub menu Encryption, sub menu Decryption, dan sub menu Option yang dapat dilihat pada struktur rancangan di bawah ini : Tools Encryption Decryption Option Gambar 3.3 Rancangan Struktur Tools 3.2 State Transition Diagram (STD) Perpindahan state setelah dilakukan sebuah event atau action pada rancangan program aplikasi kriptografi ini dapat dijelaskan lebih lanjut menggunakan State 31
Transition Diagram (STD). Di bawah ini adalah STD rancangan dari setiap modul yang terdapat dalam program aplikasi kriptografi yang dibuat. Gambar 3.4 STD Menu utama 32
Gambar 3.5 STD Menu File 33
Gambar 3.6 STD Menu Tools 34
Gambar 3.7 STD Option 3.3 Rancangan Layar Rancangan layar yang terdapat pada program aplikasi kriptografi ini terdiri dari 3 bagian besar sebagai berikut. Layar Menu Utama. Layar Option. Layar About. Ketika program aplikasi ini dijalankan maka tampilan pertama yang akan muncul adalah Layar Menu Utama dengan tampilan kosong, yang mana untuk memulai aplikasi harus memilih new atau open pada menu File atau dapat dipilih melalui pilihan encryption atau decryption pada menu Tools. 35
A Layar Menu Utama Main File Tools About Key TextBox key Encryption : : xxx bit PlainText TextBox input CipherText TextBox output Encrypt Gambar 3.8 Rancangan layar Menu Utama (Enkripsi) Layar menu utama pada gambar 3.8 adalah layar yang pertama kali muncul, dengan mode diatur ke arah enkripsi dan key length sepanjang 128 bit sebagai default. Pada tampilan layar menu utama ini terdapat menu-menu utama yang terletak di bagian atas window dimana menu tersebut adalah menu file, menu tools, dan menu about. Pada menu file dan tools terdapat sub-sub menu didalamnya sedangkan menu about akan menampilkan layar about yang berguna untuk memberikan informasi mengenai segala sesuatu yang berkaitan dengan aplikasi. Ketika menu file diklik maka akan muncul sub menu new yang berfungsi untuk mengeset ulang semua nilai yang ada pada layar menu utama apabila terdapat nilai pada salah satu textbox maka akan muncul dialog box yang akan memastikan apakah aplikasi benar-benar ingin diset ulang atau mau menyimpan 36
pekerjaan sebelumnya terlebih dahulu, sub menu open akan membuka dialog box untuk membuka file yang berisi plaintext atau ciphertext yang kemudian dimasukkan ke dalam textbox input apabila pada textbox input / output terisi maka dialog box untuk memastikan apakah benar-benar ingin mengganti isi textbox input atau mau menyimpan pekerjaan sebelumnya terlebih dahulu ditampilkan, sub menu save akan membuka sub menu save input yang berguna untuk menyimpan textbox isi input dan sub menu save output yang berguna untuk menyimpan textbox isi output, sub menu close yang berfungsi untuk menutup pekerjaan yang sedang dikerjakan apabila pada textbox input / output terisi maka dialog box untuk memastikan apakah benar-benar ingin mengganti isi textbox input atau mau menyimpan pekerjaan sebelumnya terlebih dahulu ditampilkan, dan sub menu exit berfungsi untuk keluar dari aplikasi. Ketika menu tools diklik maka akan muncul sub menu encryption yang berfungsi untuk mengeset mode aplikasi ke arah enkripsi, sub menu decryption yang berfungsi untuk mengeset mode aplikasi ke arah dekripsi, dan sub menu option yang berfungsi untuk memanggil layar option. Pada bagian tengah layar terdapat 3 textbox dan 1 tombol, apabila sub menu open digunakan akan muncul path dari file yang dibuka disamping label plaintext/ciphertext. Textbox key berfungsi untuk memasukkan nilai key untuk proses enkripsi atau dekripsi. Textbox input berfungsi sebagai input baik saat proses enkripsi maupun dekripsi. Textbox output berfungsi sebagai tempat ditampilkannya dari hasil enkripsi ataupun dekripsi, Tombol Encrypt / Decrypt berfungsi untuk melakukan proses enkripsi atau dekripsi yang tergantung pada proses yang dapat diatur pada menu tools. Layar saat proses diset ke arah dekripsi dapat dilihat pada gambar 3.9. 37
Main File Tools About Key TextBox key Decryption : : xxx bit CipherText TextBox input PlainText TextBox output Decrypt Gambar 3.9 Rancangan layar Menu Utama (Dekripsi) 38
B Layar Option Option Key Length O 128 bit O 192 bit O 256 bit Default Path Input Output Browse Browse OK Cancel Gambar 3.10 Rancangan layar option Layar option ini dapat diakses melalui menu tools lalu pilih sub menu option, layar ini pada dasarnya berfungsi untuk mengatur panjang key yang digunakan pada saat enkripsi atau dekripsi (radio button dari key length). Komponen lainnya yang terdapat pada layar ini adalah pilihan untuk mengubah path default dari input dan output program serta tombol OK dan Cancel, tombol Browse berfungsi untuk mencari path yang diinginkan untuk menjadi default pada input ataupun output, tombol OK berfungsi untuk menyimpan nilai ke dalam variabel dan tombol Cancel berfungsi untuk mengembalikan nilai variabel ke nilai sebelum layar option dijalankan. 39
C Layar About About Keterangan Close Gambar 3.11 Rancangan layar How To Use dan About Layar About ini dapat diakses melalui menu about, di dalam keterangan akan berisi informasi yang berkaitan dengan aplikasi. Komponen lainnya dalam layar ini adalah tombol Close yang berfungsi untuk menutup layar help dan kembali ke layar menu utama. 3.4 Spesifikasi Modul Untuk memperjelas proses-proses yang terdapat dalam program aplikasi kriptografi ini yang terjadi pada setiap modul, maka akan diperinci dengan spesifikasi modul di bawah ini : Modul inisialisasi Fungsi : mengeset ke nilai awal untuk semua variabel dan mengeset semua komponen. Set nilai key_length Set nilai mode Set nilai dari variabel global lainnya Set batas karakter pada textbox key sesuai dengan panjang key 40
Set semua label sesuai dengan nilai mode Modul new Fungsi : mengeset aplikasi kembali ke nilai awal apabila aplikasi belum disimpan maka akan muncul pilihan untuk save. If textbox ada isi dan belum disimpan then tampilkan dialog box If pilih tombol yes pada dialog box then panggil modul save If pilih tombol no pada dialog box then lanjutkan modul If pilih tombol cancel pada dialog box then kembali ke menu utama tanpa mengubah apapun semua nilai dan komponen kembali ke awal dan semua textbox dikosongkan Modul open Fungsi : membuka file yang berisi plaintext atau ciphertext yang nantinya dipindahkan ke textbox input. If textbox ada isi dan belum disimpan then tampilkan dialog box If pilih tombol yes pada dialog box then panggil modul save If pilih tombol no pada dialog box then lanjutkan modul If pilih tombol cancel pada dialog box then kembali ke menu utama tanpa mengubah apapun Panggil dialog box Pindahkan isi file yang dipilih pada dialog box ke dalam textbox input 41
Modul save Fungsi : menyimpan textbox input atau output ke dalam file. Panggil dialog box Simpan textbox yang dipilih ke dalam file ubah variabel textbox tersebut Modul option Fungsi : menampilkan pilihan untuk mengeset variabel inti dan menentukan path dari aplikasi. Panggil pop-up window dari layar option If pilih tombol OK then set semua nilai ke nilai yang telah dipilih If pilih tombol cancel then masuk ke menu utama tanpa mengubah nilai variabel Modul about Fungsi : menampilkan informasi mengenai aplikasi. Panggil pop-up window dari layar about If pilih tombol Close then tutup pop-up window dan kembali ke menu utama Modul proses Fungsi : menjalankan proses enkripsi atau dekripsi. Mengecek apakah key dan Textbox input sudah diisi atau belum Mengecek nilai mode 42
While teks <> eof Mengambil teks sepanjang 128 bit dan diubah menjadi 4 double word dengan menggunakan konvensi little-endian Lakukan proses whitening Memasukkan keempat word tersebut berurutan sesuai dengan nilai mode yang digunakan sebagai input pada modul twofish Panggil modul twofish Lakukan proses whitening Kembalikan nilai teks menjadi bit dengan menggunakan konvensi littleendian End while Masukkan hasil enkripsi/dekripsi ke dalam textbox output Modul twofish Fungsi : mengubah nilai input sesuai dengan nilai mode dengan menggunakan algoritma twofish For r = 0 to 15 do HF r,0,f r,1l= F HR r,0,r r,1,rl R r+1,0 = ROR HR r,2 Å F r,0,1l R r+1,1 = ROLHR r,3,1lå F r,1 R r+1,2 = R r,0 R r+1,3 = R r,1 End For 43
Modul F Fungsi : menjalankan fungsi f yang ada pada algoritma twofish 0L T 0 = g HR T 1 = g HROL HR 1,8L F 0 =HT 0 + T 1 + K 2 r+8lmod 2 32 F 1 =HT 0 + 2 T 1 + K 2 r+9lmod 2 32 Modul G Fungsi : menjalankan fungsi g yang ada pada algoritma twofish Membagi nilai input menjadi 4 byte Substitusikan setiap nilai byte input dengan menggunakan S-box Mengkalikan nilai input dengan matriks MDS berdimensi 4 x 4 Kembalikan nilai input menjadi word 44