BAB 3 PERANCANGAN POGRAM APLIKASI
3.1
Perancangan Program 3.1.1 Struktur Menu Program aplikasi yang dirancang memiliki struktur dimana terdapat dua sub menu dari menu utamanya. Bentuk struktur menu program aplikasi yang dirancang dapat digambarkan sebagai berikut.
Gambar 3.1 Rancangan Struktur Menu Utama 1. Layar Utama Pada layar utama ini menampilkan seluruh menu, yaitu File dan Help dan sub menu, yaitu RSA, ECC, Exit dan About dengan tampilan toolbar dan tab sheet. 2. Menu File Menu ini ditampilkan dengan toolbar yang didalamnya berisi sub menu RSA, ECC, dan Exit.
32
33
3. Sub Menu RSA Sub menu ini ditampilkan dengan toolbar dan tab sheet. Dalam sub menu ini ditampilkan layar proses enkripsi dan dekripsi dengan menggunakan algoritma metode enkripsi RSA. 4. Sub Menu ECC Sub menu ini ditampilkan dengan toolbar dan tab sheet. Dalam sub menu ini ditampilkan layar proses enkripsi dan dekripsi dengan menggunakan algoritma metode enkripsi ECC. 5. Sub Menu Exit Sub menu ini ditampilkan dengan toolbar. Sub menu ini berfungsi untuk keluar dari program aplikasi algoritma metode enkripsi. 6. Menu Help Menu ini ditampilkan dengan toolbar. Di dalam menu ini terdapat sub menu About. 7. Sub Menu About Sub menu ini ditampilkan dengan toolbar. Pada layar sub menu About ini menampilkan keterangan dari profile pembuat program aplikasi algoritma metode enkripsi.
3.1.2 STD (State Transition Diagram) Perpindahan state setelah dilakukannya action pada rancangan program aplikasi ini akan dijelaskan lebih lanjut menggunakan STD
34 (State Transition Diagram). Dibawah ini adalah STD rancangan dari setiap modul yang terdapat pada program aplikasi yang dibuat.
3.1.2.1 STD Layar Utama
Klik OK, File Pilih RSA Keluar Layar Help & Tampilkan Layar RSA Klik OK, Tab Sheet RSA Klik File Pilih RSA Tampilkan Layar RSA Klik Tab Sheet RSA Tampilkan Layar RSA Klik File Pilih RSA START Tampilkan Layar RSA Klik Tab Sheet RSA
Klik OK, File Pilih ECC Keluar Layar Help & Tampilkan Layar ECC Klik OK, Tab Sheet ECC
Klik File Pilih ECC
RSA
Tampilkan Layar ECC
ECC
Klik Tab Sheet ECC Klik File Pilih Exit Keluar Program Aplikasi
Klik Help Pilih About Tampilkan Layar About
Klik File Pilih Exit Keluar Program Aplikasi
EXIT
Klik Help Pilih About Tampilkan Layar Help
Gambar 3.2 STD Layar Utama
ABOUT
Klik File Pilih Exit Keluar Program Aplikasi
35 3.1.2.2 STD Sub Menu RSA
Save File Klik Button Save File Tampilkan Dialog Box Save File
Klik Button Save File Tampilkan Dialog Box Save File
Encryption
Decryption
Klik Button Encryption Tampilkan Mode Encryption
Klik Button Decryption Tampilkan Mode Decryption
Browse File
Klik File Pilih Exit Keluar Program
Klik Button Browse File Tampilkan Dialog Box Input File
Generate Key
Klik Button Generate Key Tampilkan Key Generation Detail
RSA
START
Klik File Pilih Exit Keluar Program
Exit
Gambar 3.3 STD Sub Menu RSA.
36 3.1.2.3 STD Sub Menu ECC
Save File Klik Button Save File Tampilkan Dialog Box Save File
Klik Button Save File Tampilkan Dialog Box Save File
Encryption
Decryption
Klik Button Encryption Lakukan Proses Enkripsi
Klik Button Decryption Lakukan Proses Dekripsi
Browse File Klik Button Clear All Reset Semua Key & Nilai Klik Button Browse File Tampilkan Dialog Box Input File
Update Key File
Clear All
Klik Button Update Key File
Klik File Pilih Exit Keluar Program
Gunakan Key File yang sudah ada
ECC START Klik File Pilih Exit Keluar Program
Exit
Gambar 3.4 STD Sub Menu ECC
37 3.1.2.4 STD Sub Menu About
Klik Ok, File Pilih ECC Tampilkan Layar ECC Klik Ok, Tab Sheet ECC Klik File Pilih RSA Tampilkan Layar RSA
ABOUT
START
Klik Ok, File Pilih ECC Tampilkan Layar RSA
RSA
Klik File Pilih ECC Tampilkan Layar ECC
Klik Ok, Tab Sheet RSA
Klik Tab Sheet ECC
Klik Help Pilih About Tampilkan Layar About
Klik Tab Sheet RSA Tampilkan Layar RSA Klik File Pilih Exit Keluar Program
ECC
Klik File Pilih Exit Keluar Program
Exit
Klik Help Pilih About Tampilkan Layar About
Gambar 3.5 STD Sub Menu About
3.1.3
Rancangan Layar Rancangan layar yang terdapat pada program aplikasi ini terdiri dari empat bagian besar, yaitu : -
Rancangan Layar Utama
-
Rancangan Layar Sub Menu RSA
-
Rancangan Layar Sub Menu ECC
-
Rancangan Layar Sub Menu About
38 3.1.3.1 Rancangan Layar Utama RSA & ECC Comparisson FILE HELP RSA About ECCRSA Exit
ECC
Key Generation Prime Number 1
Prime Number 2 Key Generation Detail
^
Generate Key
e:
d:
n:
n:
^ File and Encryption
^
^ Browse File
Encrypt
Decrypt
Save File
Gambar 3.6 Rancangan Layar Utama Fungsi setiap komponen rancangan menu layar utama ini adalah sebagai berikut : -
Toolbar menu File berfungsi sebagai navigasi untuk masuk kedalam sub menu RSA, ECC, dan Exit
-
Toolbar menu Help berfungsi sebagai navigasi untuk masuk kedalam sub menu About.
39 -
Toolbar File sub menu RSA berfungsi untuk masuk ke layar sub menu RSA.
-
Toolbar File sub menu ECC berfungsi untuk masuk ke layar sub menu ECC
-
Toolbar File sub menu Exit berfungsi untuk keluar dari program aplikasi.
-
Toolbar Help sub menu About berfungsi untuk menampilkan keterangan si pembuat program aplikasi.
3.1.3.2 Rancangan Layar Sub Menu RSA
Gambar 3.7 Rancangan Layar Sub Menu RSA
40 Fungsi setiap komponen rancangan sub menu layar sub menu RSA ini adalah sebagai berikut : -
Toolbar menu File berfungsi sebagai navigasi untuk masuk ke sub menu RSA, ECC, dan Exit
-
Toolbar menu Help berfungsi sebagai navigasi untuk masuk ke sub menu About.
-
Tab sheet RSA berfungsi untuk masuk ke layar sub menu RSA.
-
Tab sheet ECC berfungsi untuk masuk ke layar sub menu ECC.
-
Check box Prime Number 1 berfungsi untuk mengaktifkan text field Prime Number 1.
-
Check box Prime Number 2 berfungsi untuk mengaktifkan text field Prime Number 2.
-
Text field Prime Number 1 berfungsi untuk menginput nilai p.
-
Text field Prime Number 2 berfungsi untuk menginput nilai q.
-
Button Generate Key berfungsi untuk memberikan nilai e yang diberikan secara random oleh komputer dan menghitung nilai d dan n dari input Prime Number 1 (p) dan Prime Number 2 (q).
-
Text field Public Key e: berfungsi menampilkan nilai e yang diberikan secara random oleh komputer.
-
Text field Public Key n: berfungsi menampilkan nilai n hasil perhitungan komputer.
41 -
Text field Private Key d: berfungsi menampilkan nilai d hasil perhitungan komputer.
-
Text field Private Key n: berfungsi menampilkan nilai n hasil perhitungan komputer.
-
Text area Key Generation Detail berfungsi menampilkan keterangan lengkap dari Key Generation.
-
Text area File and Encryption berfungsi menampilkan plaintext yang akan dienkripsi.
-
Button Browse File berfungsi untuk input file text yang akan di enkripsi.
-
Button Encrypt berfungsi untuk melakukan proses enkripsi.
-
Button Decrypt berfungsi untuk melakukan proses dekripsi.
-
Button Save File berfungsi untuk menyimpan file ciphertext hasil enkripsi.
42 3.1.3.3 Rancangan Layar Sub Menu ECC
Gambar 3.8 Rancangan Layar Sub Menu ECC Fungsi setiap komponen rancangan sub menu layar sub menu ECC ini adalah sebagai berikut : -
Toolbar menu File berfungsi sebagai navigasi untuk masuk ke sub menu RSA, ECC, dan Exit
-
Toolbar menu Help berfungsi sebagai navigasi untuk masuk ke sub menu About.
-
Tab sheet sub menu RSA berfungsi untuk masuk ke layar sub menu RSA.
43 -
Tab sheet sub menu ECC berfungsi untuk masuk ke layar sub menu ECC.
-
Text field p Lower Limit berfungsi untuk menginput nilai p Lower Limit.
-
Text field p Upper Limit berfungsi untuk menginput nilai p Upper Limit.
-
Button Update File Kunci berfungsi untuk menghitung nilai p, a, b, nA dari input p Lower Limit dan p Upper Limit.
-
Button Clear All berfungsi untuk mereset nilai p Lower Limit dan p Upper Limit.
-
Text field Key p: berfungsi menampilkan nilai p yang diberikan secara random oleh komputer dengan batasan p Lower Limit < p < p Upper Limit.
-
Text field Key a: berfungsi menampilkan nilai a yang diberikan secara random oleh komputer dengan ketentuan a < p - 1.
-
Text field Key b: berfungsi menampilkan nilai b yang diberikan secara random oleh komputer dengan ketentuan b < p - 1.
-
Text field Key nA: berfungsi menampilkan nilai nA hasil perhitungan komputer.
-
Text area File and Encryption berfungsi menampilkan plaintext dan ciphertext.
44 -
Button Browse File berfungsi untuk input file text yang akan di enkripsi atau di dekripsi.
-
Button Encrypt berfungsi untuk melakukan proses enkripsi.
-
Button Decrypt berfungsi untuk melakukan proses dekripsi.
-
Button Save File berfungsi untuk menyimpan file ciphertext hasil enkripsi atau plaintext hasil dekripsi.
3.1.3.4 Rancangan Layar Sub Menu About RSA & ECC Comparisson FILE
HELP
RSA
ECC
Key Generation Prime Number 1
Prime Number 2 Key Generation Detail ABOUT
^
Generate Key
d:
n:
n:
RSA & ECC Commparison Dibuat untuk proyek skripsi jenjang S1
^
e:
Oleh : 0700695515 – Revyana Selviastuti
File and Encryption
OK
^
^ Browse File
Encrypt
Decrypt
Gambar 3.9 Rancangan Layar Sub Menu About
Save File
45 Fungsi setiap komponen rancangan sub menu layar sub menu ECC ini adalah sebagai berikut : -
Button Ok untuk keluar dan kembali ke layar utama dan sub menu RSA.
3.1.4 Spesifikasi Modul Modul EditNumbersOnly Fungsi: men-setting agar hanya bisa input angka BEGIN Setting editstyle agar hanya bisa menerima angka saja END
Modul About1Click Fungsi: menampilkan form about BEGIN Tampilan form about END
Modul CheckBox1Click Fungsi: mengaktif / menonaktifkan input Prime Number 1 BEGIN IF Checkbox1 = checked THEN aktifkan Edit1 ELSE
46 nonaktifkan Edit1 END
Modul CheckBox2Click Fungsi: mengaktif / menonaktifkan input Prime Number 2 BEGIN IF Checkbox2 = checked THEN aktifkan Edit2 ELSE nonaktifkan Edit2 END
Modul GenKeyClick Fungsi: men-generate kunci publik dan kunci privat BEGIN bersihkan Memo1 IF ada input Prime Number 1 THEN panggil modul CheckPrime dengan input Prime Number 1 IF Prime Number 1 bukan bilangan Prima THEN tampilkan pesan “Prime Number 1 is not Prime” ELSE terima Prime Number 1 sebagai p ELSE tambahkan pesan di Memo1 “Generating p values”
47 cari nilai p dengan modul GenPrime tampilkan nilai p pada Edit1 IF ada input Prime Number 2 THEN panggil modul CheckPrime dengan input Prime Number 2 IF Prime Number 2 bukan bilangan Prima THEN tampilkan pesan “Prime Number 2 is not Prime” ELSE terima Prime Number 2 sebagai q ELSE tambahkan pesan di Memo1 “Generating q values” cari nilai q dengan modul GenPrime tampilkan nilai q pada Edit1 IF nilai p dan q OK THEN tambahkan pada Memo1 nilai p tambahkan pada Memo1 nilai q hitung n dengan cara p * q hitung øn dengan cara (p – 1) * (q – 1) hitung e dengan memanggil modul GenE hitung d dengan memanggil modul CalcD tambahkan pada Memo1 nilai n tambahkan pada Memo1 nilai øn tambahkan pada Memo1 nilai e tambahkan pada Memo1 nilai d tampilkan nilai e pada Edit3
48 tampilkan nilai n pada Edit4 tampilkan nilai d pada Edit5 tampilkan nilai n pada Edit6 END END
Modul Form Create Fungsi: men-setting tampilan awal layar utama dan variabel-variabel global pada saat pertama kali program dijalankan BEGIN panggil modul EditNumbersOnly untuk semua input setting nilai awal semua varibel global END
Modul Button2Click Fungsi: Membuka File untuk di Encrypt atau Decrypt BEGIN buka Open File Dialog bersihkan Memo2 tampilkan file pada Memo2 END
Modul Exit1Click Fungsi: Menutup program
49 BEGIN tutup program END
Modul RSA1Click Fungsi: Mengaktifkan tab RSA BEGIN aktifkan tab RSA END
Modul ECC1Click Fungsi: Mengaktifkan tab ECC BEGIN aktifkan tab ECC END
Modul Button3Click Fungsi: Mengenkripsi file / text yang terdapat di Memo2 BEGIN IF tidak ada text di Memo2 THEN tampilkan pesan “Text is empty” ELSE IF tab yang aktif = RSA THEN encrypt Memo2 memakai modul RSAAlg dengan varibel e dan n tampilkan hasil enkripsi pada Memo2
50 IF tab yang aktif = ECC THEN encrypt Memo2 memakai modul ECCAlgEnc tampilkan hasil enkripsi pada Memo2 END
Modul Button4Click Fungsi: Mendekripsi file / text yang terdapat di Memo2 BEGIN IF tidak ada text di Memo2 THEN tampilkan pesan “Text is empty” ELSE IF tab yang aktif = RSA THEN encrypt Memo2 memakai modul RSAAlg dengan varibel d dan n tampilkan hasil dekripsi pada Memo2 IF tab yang aktif = ECC THEN encrypt Memo2 memakai modul ECCAlgDec tampilkan hasil dekripsi pada Memo2 END
Modul Button5Click Fungsi: Men-save file / text yang sedang ditampilkan di Memo2 BEGIN buka Save File Dialog save semua text di Memo2 ke dalam file END
51 Modul Button6Click Fungsi: Membersihkan semua input yang terdapat pada tab ECC BEGIN bersihkan Edit7 – Edit12 dari input END
Modul Button7Click Fungsi: memvalidasi input p Lower dan Upper Limit dan memanggil modul UpdKeyCombFile BEGIN IF input p lower kosong THEN tampilkan pesan “Please input p Lower Limit” ELSE IF input p upper kosong THEN tampilkan pesan “Please input p Upper Limit” ELSE IF (p lower < 227) OR (p upper > 283) tampilkan pesan “ p value should be between 227 and 283” ELSE IF p lower > p upper tampilkan pesan “p lower should be smaller than p upper” ELSE IF (p lower > 227) AND (p upper < 283) THEN panggil modul UpdKeyCombFile dengan variabel p lower dan p upper END
52 Modul CheckPrime Fungsi: mengecek apakah suatu bilangan merupakan bilangan prima atau bukan BEGIN IF bil.tersebut = 0 THEN RETURN false ELSE FOR i = 2 to bil.tersebut / 2 DO j = bil.tersebut mod i IF j = 0 THEN RETURN false RETURN true END
Modul GenPrime Fungsi: menentukan bilangan prima secara acak BEGIN REPEAT acak a IF a kelipatan 2 THEN a = a + 1 UNTIL panggil modul CheckPrime dengan variabel a RETURN a END
53 Modul CheckRelPrime Fungsi: mengecek apakah 2 bilangan merupakan bilangan yang relatif prima atau bukan BEGIN IF a < b THEN tukar a dengan b m = a mod b WHILE m <> 0 DO a=b b=m m = a mod b IF b = 1 THEN RETURN true ELSE RETURN false END
Modul GenE Fungsi: menentukan nilai e BEGIN e = GenPrime WHILE CheckRelPrime dengan variabel e dan øn DO e = GenPrime RETURN e END
Modul CalcD Fungsi: menghitung nilai d
54 BEGIN Hitung d dengan rumus (1+k øn)/e RETURN d END
Modul RSAAlg Fungsi: menghitung algoritma RSA (ab mod c) BEGIN hitung hasil ab mod c RETURN hasil END
Modul UpdKeyCombFile Fungsi: mengupdate file “pab key combination.txt” yang berisi kombinasi kunci p, a dan b yang dapat membentuk 256 titik pada kurva elliptic BEGIN FOR p = p awal to p akhir DO IF p adalah bilangan prima THEN FOR a = 0 to p-1 DO FOR b = 0 to p-1 DO Panggil modul CalcNode IF jumlah titik = 256 THEN Tulis p, a, dan b ke dalam file “pab key combination.txt”
55 Hitung jumlah kombinasi kunci p, a, dan b yang ditemukan ENDIF ENDFOR ENDFOR ENDIF ENDFOR END
Modul CalcNode Fungsi: membuat representasi karakter ASCII pada titik-titik yang dibentuk oleh persamaan kurva elliptic. BEGIN Cari titik-titik yang terdapat pada persamaan kurva elliptic Simpan koordinat titik tersebut ke dalam nomor desimal ASCII Hitung banyak titik END
Modul ECCAlgEnc Fungsi: Menjalankan proses enkripsi dengan algoritma ECC BEGIN baca file pab key combination.txt IF file “pab key combination.txt” ditemukan THEN Tulis header file
56 acak titik G dengan range 0-254 WHILE hasil perkalian bukan titik infinitas DO Kalikan titik G sebanyak n kali acak nA dengan range 1 sampai n-1 PA = nA * G hitung jumlah baris pada memo2 FOR ulang = 1 to jumlah baris DO Baca karakter pada Memo2 acak nilai k antara 0 sampai p cari nilai kPA dengan mengalikan k dengan titik PA jumlahkan titik kPm (titik karakter) dengan titik kPA Tulis hasil enkripsi pada Memo2 ENDFOR ENDIF END
Modul ECCAlgDec Fungsi: Menjalankan proses dekripsi dengan algoritma ECC BEGIN Periksa semua kunci yang diinput IF semua kunci yang diinput benar THEN Tulis header file acak titik G dengan range 0-254 WHILE hasil perkalian bukan titik infinitas DO
57 Kalikan titik G sebanyak n kali acak nA dengan range 1 sampai n-1 PA = nA * G hitung jumlah baris pada memo2 FOR ulang = 1 to jumlah baris DO Baca karakter pada Memo2 nACm1 = titik Cm yang pertama * nA -nACm1 = titik yang berlawanan dengan titik nACm1 Jumlahkan titik Cm2 dengan titik -nACm1 Tulis hasil dekripsi pada Memo2 ENDFOR ENDIF END