30
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.
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 :
Menu Utama
About
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 :
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
Tools
Encryption Decryption Option
File
Open
32
Transition Diagram (STD). Di bawah ini adalah STD rancangan dari setiap modul yang
terdapat dalam program aplikasi kriptografi yang dibuat.
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
36 A Layar Menu Utama
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
Main
File Tools About
Key TextBox “key”
PlainText TextBox “input” Encrypt CipherText TextBox “output” Encryption : : xxx bit
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.
38
Gambar 3.9 Rancangan layar Menu Utama (Dekripsi) Main
File Tools About
Key TextBox “key”
CipherText TextBox “input” Decrypt PlainText TextBox “output” Decryption : : xxx bit
B Layar Option
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.
Option Key Length O 128 bit O 192 bit O 256 bit Default Path Input Output OK Cancel Browse Browse
40 C Layar About
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.
BEGIN
Set nilai key_length
Set nilai mode
Set nilai dari variabel global lainnya
Set batas karakter pada textbox “key” sesuai dengan panjang key About
Keterangan
Set semua label sesuai dengan nilai mode END
Modul new
Fungsi : mengeset aplikasi kembali ke nilai awal apabila aplikasi belum disimpan maka akan muncul pilihan untuk save.
BEGIN
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
END
Modul open
Fungsi : membuka file yang berisi plaintext atau ciphertext yang nantinya dipindahkan ke textbox “input”.
BEGIN
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”
42 Modul save
Fungsi : menyimpan textbox input atau output ke dalam file.
BEGIN
Panggil dialog box
Simpan textbox yang dipilih ke dalam file ubah variabel textbox tersebut
END
Modul option
Fungsi : menampilkan pilihan untuk mengeset variabel inti dan menentukan path dari aplikasi.
BEGIN
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
END
Modul about
Fungsi : menampilkan informasi mengenai aplikasi.
BEGIN
Panggil pop-up window dari layar about
If pilih tombol “Close” then tutup pop-up window dan kembali ke menu
utama
END
Modul proses
Fungsi : menjalankan proses enkripsi atau dekripsi.
BEGIN
Mengecek apakah key dan Textbox “input” sudah diisi atau belum
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
little-endian End while
Masukkan hasil enkripsi/dekripsi ke dalam textbox “output”
END
Modul twofish
Fungsi : mengubah nilai input sesuai dengan nilai mode dengan menggunakan algoritma twofish BEGIN For r = 0 to 15 do
H
Fr,0, Fr,1L
= FH
Rr,0, Rr,1, rL
Rr+1,0 = RORH
Rr,2 ÅFr,0, 1L
Rr+1,1 = ROLH
Rr,3, 1L
ÅFr,1 Rr+1,2 = Rr,0 Rr+1,3 = Rr,1 End For END44 Modul F
Fungsi : menjalankan fungsi f yang ada pada algoritma twofish
BEGIN T0 = g
H
R0L
T1 = gH
ROLH
R1, 8L
L
F0 =H
T0 + T1+ K2r+8L
mod 232 F1 =H
T0 +2T1+ K2r+9L
mod 232 END Modul GFungsi : menjalankan fungsi g yang ada pada algoritma twofish
BEGIN
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