32
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.
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
(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
RSA ECC ABOUT
START
Klik File Pilih RSA Tampilkan Layar RSA
Klik Tab Sheet RSA
Klik File Pilih ECC
Klik Tab Sheet ECC
Tampilkan Layar ECC Klik Help Pilih About Klik OK, File Pilih RSA
Klik File Pilih RSA
Klik Tab Sheet RSA
Klik OK, File Pilih ECC
Tampilkan Layar RSA Tampilkan Layar RSA
Keluar Layar Help & Tampilkan Layar RSA
Tampilkan Layar Help
Tampilkan Layar About
Klik Help Pilih About
Keluar Layar Help & Tampilkan Layar ECC
EXIT Klik OK, Tab Sheet RSA
Klik OK, Tab Sheet ECC
Klik File Pilih Exit Keluar Program Aplikasi
Klik File Pilih Exit Klik File Pilih Exit Keluar Program Aplikasi Keluar Program Aplikasi
3.1.2.2 STD Sub Menu RSA RSA Encryption Decryption Browse File Save File Generate Key Exit
Klik File Pilih Exit Keluar Program Klik Button Generate Key Tampilkan Key Generation Detail
Klik Button Browse File Tampilkan Dialog Box Input File
Klik Button Decryption Tampilkan Mode Decryption Klik Button Encryption
Tampilkan Mode Encryption
Klik Button Save File Tampilkan Dialog Box Save File
Klik Button Save File
Tampilkan Dialog Box Save File
START
Klik File Pilih Exit Keluar Program
3.1.2.3 STD Sub Menu ECC ECC Encryption Decryption Browse File Save File Exit Clear All Update Key File
Klik File Pilih Exit Keluar Program Klik Button Browse File Tampilkan Dialog Box Input File
Klik Button Clear All Reset Semua Key & Nilai Klik Button Encryption
Lakukan Proses Enkripsi Lakukan Proses Dekripsi
Klik Button Decryption Klik Button Save File
Tampilkan Dialog Box Save File
Klik Button Save File Tampilkan Dialog Box Save File
START
Keluar Program Klik File Pilih Exit Klik Button Update Key File
Gunakan Key File yang sudah ada
3.1.2.4 STD Sub Menu About
ABOUT RSA ECC
START
Tampilkan Layar About Klik Ok, File Pilih ECC
Tampilkan Layar RSA
Tampilkan Layar RSA
Tampilkan Layar RSA Tampilkan Layar ECC Klik File Pilih ECC Tampilkan Layar ECC
Klik Help Pilih About
Klik Help Pilih About Tampilkan Layar About
Klik Tab Sheet ECC Klik File Pilih RSA
Klik Tab Sheet RSA Klik Ok, File Pilih ECC
Klik Ok, Tab Sheet ECC
Klik Ok, Tab Sheet RSA
Exit
Klik File Pilih Exit Keluar Program
Klik File Pilih Exit Keluar Program
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
3.1.3.1 Rancangan Layar Utama
FILE HELP
ECC RSA
Generate Key
Browse File Encrypt Decrypt Save File
^
^
^
^ Prime Number 1 Prime Number 2
e : d :
n : n :
RSA & ECC Comparisson
Key Generation
File and Encryption
Key Generation Detail RSA
ECC Exit
About
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.
- 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
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.
- 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
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.
- 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.
- 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
FILE HELP
ECC RSA
Generate Key
Browse File Encrypt Decrypt Save File
^
^
^
^ Prime Number 1 Prime Number 2
e : d :
n : n :
RSA & ECC Comparisson
Key Generation
File and Encryption
Key Generation Detail
RSA & ECC Commparison
Dibuat untuk proyek skripsi jenjang S1
Oleh :
0700695515 – Revyana Selviastuti ABOUT
OK
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
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
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
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
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
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
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
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
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
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
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
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
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