Fungsi: men-setting nilai awal semua variabel global.
BEGIN
Setting nilai awal semua variabel global END
Modul hapus_gambar
Fungsi: menghapus gambar yang terdapat pada kotak gambar.
BEGIN
Batas atas kanvas = 0
Batas bawah kanvas = tinggi gambar Batas kiri kanvas = 0
Batas kanan kanvas = lebar gambar Lukis semua kanvas dengan warna putih
END
Modul hapus_semua1
Fungsi: membersihkan dan menonaktifkan semua komponen yang ada pada menu “Kriptografi Bitmap”, kecuali radio button “Enkripsi”, radio button “Dekripsi”, dan tombol “Clear All”.
BEGIN
Aktifkan radio buton “Enkripsi” Aktifkan radio buton “Dekripsi” Nonaktifkan tombol “Run” Nonaktifkan tombol “Browse” Nonaktifkan tombol “Save As” Nonaktifkan tombol “Full View”
Nonaktifkan edit box “input p” Bersihkan edit box “input p” Nonaktifkan edit box “input a” Bersihkan edit box “input a” Nonaktifkan edit box “input b” Bersihkan edit box “input b” Nonaktifkan edit box “input nA” Bersihkan edit box “input nA” Hilangkan edit box “ciphertext” Bersihkan edit box “ciphertext” Hilangkan edit box “plain image” Bersihkan edit box “plain image” Panggil modul hapus_gambar Panggil modul reset_semua
END
Modul hapus_semua2
Fungsi: membersihkan dan menonaktifkan semua komponen yang ada pada menu “Kriptografi Text”, kecuali radio button “Enkripsi”, radio button “Dekripsi”, dan tombol “Clear All”.
BEGIN
Aktifkan radio buton “Enkripsi” Aktifkan radio buton “Dekripsi” Nonaktifkan tombol “Run” Nonaktifkan tombol “Browse” Nonaktifkan tombol “Save As” Nonaktifkan edit box “input p” Bersihkan edit box “input p” Nonaktifkan edit box “input a” Bersihkan edit box “input a” Nonaktifkan edit box “input b” Bersihkan edit box “input b” Nonaktifkan edit box “input nA” Bersihkan edit box “input nA” Hilangkan edit box “ciphertext” Bersihkan edit box “ciphertext” Hilangkan edit box “plain image” Bersihkan edit box “plain image”
Reset Posisi Progress Bar
Panggil modul reset_semua
Modul hapus_semua3
Fungsi: membersihkan dan menonaktifkan semua komponen yang ada pada menu “Update File Kunci Kriptografi”, kecuali edit box “p awal” dan edit box “p akhir”.
BEGIN
Aktifkan tombol “Clear All” Aktifkan tombol “Update File” Nonaktifkan edit box “p” Bersihkan edit box “p” Nonaktifkan edit box “a” Bersihkan edit box “a” Nonaktifkan edit box “b” Bersihkan edit box “b” Hilangkan group box “Hasil”
Reset posisi Progress Bar
Panggil modul reset_semua
END
Modul Form Create
Fungsi: meen-setting tampilan awal layar dan nilai awal variabel global pada saat pertama kali program aplikasi dijalankan.
BEGIN
Tampilkan dialog box “Peringatan untuk tidak mengcopy file”
IF menekan tombol “Cancel” THEN
ke luar dari program
ELSE
Mencatat nama file kunci kriptografi Buat kanvas
Panggil modul hapus_semua1 Panggil modul hapus_semua2 Panggil modul hapus_semua3 Panggil modul reset_semua
Tulis keterangan menggunakan program pada menu “Help”
ENDIF END
Modul RBEnkripsi1Click
Fungsi: mensetting tampilan awal mode enkripsi pada menu “Kriptorafi Bitmap”, ketika user mengklik radio button “Enkripsi”.
BEGIN
Aktifkan tombol “Browse” Nonaktifkan edit box “input p” Bersihkan edit box “input p” Nonaktifkan edit box “input a” Bersihkan edit box “input a” Nonaktifkan edit box “input b” Bersihkan edit box “input b” Nonaktifkan edit box “input nA” Bersihkan edit box “input nA” Nonaktifkan tombol “Clear All”
END
Modul Dekripsi1Click
Fungsi: mensetting tampilan awal mode enkripsi pada menu “Kriptografi
Bitmap”, ketika user mengklik radio button “Dekripsi”. BEGIN
Aktifkan tombol “Browse”
Aktifkan edit box “input p”
Aktifkan edit box “input a”
Aktifkan edit box “input b”
Aktifkan edit box “input nA”
Aktifkan tombol “Clear All”
END
Modul BBrowse1Click
Fungsi: memasukkan nama file yang akan dienkripsi atau didekripsi pada menu “Kriptografi Bitmap”, ketika user mengklik tombol “Browse”.
BEGIN
IF radio button “Dekripsi” diklik THEN
Tampilkan dialog box “Open File”
Filter file yang dapat dibuka adalah file text (*.TXT)
Nonaktifkan radio button “Enkripsi”
Nonaktifkan radio button “Dekripsi”
Nonaktifkan tombol “Browse”
Tampilkan label “input”
Tampilkan nama file yang akan dienkripsi pada edit box “input”
Aktifkan tombol “Save As”
ELSE
Tampilkan dialog box “Open File”
Filter file yang dapat dibuka adalah file bitmap (*.BMP)
Tampilkan Group Box “File”
Nonaktifkan radio button “Enkripsi”
Nonaktifkan radio button “Dekripsi”
Nonaktifkan tombol “Browse”
Tampilkan label “input”
Tampilkan nama file yang akan dienkripsi pada edit box “input”
Aktifkan tombol “Save As” Buat kanvas pada kotak gambar
Tampilkan gambar bitmap pada kanvas
Aktifkan check box “Stretch Image”
Aktifkan tombol “Full View”
Simpan lebar gambar pada variabel global “lebar” Simpan tinggi gambar pada variabel global “tinggi”
Simpan ukuran bit depth gambar pada variabel global “bitdepth”
Simpan ukuran resolusi horisontal gambar pada variabel global “resolusix” Simpan ukuran resolusi vertikal gambar pada variabel global “resolusiy”
ENDIF END
Modul BSave1Click
Fungsi: memasukkan nama file hasil enkripsi atau dekripsi suatu file pada menu “Kriptografi Bitmap”, ketika user mengklik tombol “Save As”.
BEGIN
IF radio button “Enkripsi” diklik THEN
Tampilkan dialog box “Save File”
Filter nama file yang dapat disimpan adalah file text (*.TXT)
Tampilkan label “output”
Tampilkan nama file yang akan dienkripsi pada edit box “output”
Aktifkan tombol “Run”
Nonaktifkan tombol “Save As”
ELSE
Tampilkan dialog box “Save File”
Filter nama file yang dapat disimpan adalah file bitmap (*.BMP)
Tampilkan nama file yang akan dienkripsi pada edit box “output” Aktifkan tombol “Run”
Nonaktifkan tombol “Save As”
ENDIF END
Modul jumlah_sama
Fungsi: menjumlahkan dua titik yang sama pada kurva elliptic.
BEGIN
Hitung pembilang gradien singgung Hitung penyebut gradien singgung
IF penyebut gradien garis singgung = 0 THEN
Hasil penggandaan titik tersebut adalah titik infinitas dan ASCII nya 256
ELSE
Gradien garis singgung = (pembilang / penyebut) modulo p Hitung kooordinat titik hasil penggandaan titik tersebut Cari ASCII titik tersebut
ENDIF END
Modul jumlah_lawan
Fungsi: menjumlahkan dua buah titik pada kurva elliptic yang saling berlawanan.
BEGIN
Hasil penjumlahan dua titik yang berlawanan adalah titik infinitas
END
Modul jumlah_beda
Fungsi: menjumlahkan dua buah titik yang berbeda pada kurva elliptic.
BEGIN
Hitung pembilang gradien garis potong dua titik yang berbeda Hitung penyebut gradien garis potong dua titik yang berbeda Hitung gradien garis potong
Hitung titik koordinat hasil penjumlahan dua titik yang berbeda Cari ASCII titik tersebut
Modul jumlah
Fungsi: menjumlahkan dua buah titik pada kurva elliptic.
BEGIN
IF titik P adalah titik infinitas and titik Q bukan titik infinitas THEN
Hasil penjumlahannya adalah titik P
ELSE IF titik P bukan titik infinitas and titik Q adalah titik infinitas THEN
Hasil penjumlahannya adalah titik Q
ELSE IF titik P adalah titik infinitas and titik Q adalah titik infinitas THEN
Hasil penjumlahannya adalah titik infinitas
ELSE
IF xP = xQ THEN
IF yP = yQ THEN
Panggil modul jumlah_sama
ELSE IF yP ≠ yQ THEN
Panggil modul jumlah_lawan
ENDIF ELSE
Panggil modul jumlah_beda
ENDIF ENDIF END
Modul perkalian
Fungsi: mengalikan titik P pada kurva elliptic dengan sebuah bilangan asli n.
BEGIN
Jumlahkan titik P sebanyak n kali.
END
Modul cari_G
Fungsi: mencari titik G secara acak.
BEGIN
Acak titik G, di mana ASCII huruf G adalah mulai dari 0 sampai dengan 254
END
Modul cari_n
BEGIN
WHILE hasil perkalian bukan titik infinitas DO
Kalikan titik G sebanyak n kali
ENDWHILE
Simpan besar n
END
Modul cari_nA
Fungsi: mencari nilai nA secara acak.
BEGIN
Acak bilangan asli mulai dari 1 sampai dengan n-1
Simpan bilangan asli tersebut sebagai nA
END
Modul cari_PA
Fungsi: menghitung titik PA, di mana PA = nA . G
BEGIN
Kalikan nA dengan titik G Simpan titik PA
END
Modul acak_k
Fungsi: mencari nilai k secara acak.
BEGIN
Acak bilangan asli antara 0 sampai dengan p Simpan bilangan tersebut sebagai k
END
Modul cari_kG
Fungsi: mengalikan k dengan titik G
BEGIN
Kalikan k dengan titik G
Modul cari_kPA
Fungsi: mengalikan k dengan titik PA
BEGIN
Kalikan k dengan titik PA
Simpan hasil perkalian sebagai titik kPA
END
Modul jumlah_PmkPA
Fungsi: menjumlahkan titik Pm (titik sebuah karakter plaintext) dengan titik kPA
BEGIN
Jumlahkan titik Pm dengan titik kPA
END
Modul enkripsi
Fungsi: mengenkripsi sebuah karakter.
BEGIN
Panggil modul acak_k Panggil modul cari_kG Panggil modul cari_kPA
Panggil modul jumlah_Pm_kPA
END
Modul cari_nAcm1
Fungsi: mengalikan titik Cm yang pertama dengan nA.
BEGIN
Kalikan titik Cm yang pertama dengan nA
Simpan hasilnya sebagai titik nACm1
END
Modul minus_nAcm1
Fungsi: mencari titik yang berlawanan dengan titik nACm1.
BEGIN
Simpan hasilnya sebagai titik -nACm1
END
Modul jumlah_cm2_minus
Fungsi: menjumlahkan titik Cm2 dengan titik -nACm1.
BEGIN
Jumlahkan titik Cm2dengan titik -nACm1
END
Modul dekripsi
Fungsi: mendekripsikan sebuah karakter pada ciphertext.
BEGIN
Panggil modul cari_nAcm1 Panggil modul minus_nAcm1 Panggil modul jumlah_cm2_minus
END
Modul baca_baris
Fungsi: menghitung jumlah baris sebuah file text.
BEGIN
Baca file text
Hitung jumlah baris file text tersebut
END
Modul baca_file_kombinasi
Fungsi: membaca file kunci kriptografi “kombinasi_pab.txt” dan mendapatkan kombinasi kunci p, a, dan b.
BEGIN
Panggil modul baca_baris
IF file “kombinasi_kunci_pab.txt” ada THEN
IF header file = ‘KOMBINASI_KUNCI_PAB_SES’ THEN
Hitung banyak baris
Hitung banyak kombinasi kunci p, a, dan b
Panggil modul bentuk_titik
ENDIF ENDIF END
Modul periksa_angka
Fungsi: memeriksa apakah sebuah string terdiri dari angka-angka.
BEGIN
Hitung panjang string
Cek apakah karakter pertama sampai karakter terakhir string adalah angka
END
Modul bentuk_titik
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 BRun1Click
Fungsi: menjalankan proses enkripsi atau dekripsi file bitmap, ketika tombol “Run” pada menu “Kriptografi Bitmap” diklik.
BEGIN
Nonaktifkan tombol “Browse” Nonaktifkan tombol “Save As”
Cek validasi nama file input dan output
IF radio button “Enkripsi” diklik THEN
Buka file input Bentuk file output
Panggil modul baca_file_kombinasi
IF file “kombinasi_kunci_pab.txt” ditemukan THEN
Simpan waktu proses dimulai Tulis header file
Panggil modul cari_n Panggil modul cari_nA Panggil modul cari_PA
Simpan ukuran resolusi horisontal gambar
Panggil modul enkripsi untuk mengenkripsi ukuran resolusi horisontal Simpan ukuran resolusi vertikal gambar
Panggil modul enkripsi untuk mengenkripsi ukuran resolusi vertikal Simpan ukuran bit depth gambar
Panggil modul enkripsi untuk mengenkripsi ukuran bit depth Simpan tinggi gambar
Panggil modul enkripsi untuk mengenkripsi tinggi Tulis hasil enkripsi
Simpan lebar gambar
Panggil modul enkripsi untuk mengenkripsi lebar Tulis hasil enkripsi
FOR pikselx = 0 to (lebar-1) DO FOR piksely = 0 to (tinggi-1) DO
Atur posisi progress bar
Simpan informasi warna pada piksel[x,y]
Panggil modul enkripsi untuk mengenkripsi informasi warna
ENDFOR ENDFOR
Simpan waktu proses selesai
Tampilkan dialog box yang memberitahu bahwa proses telah selesai
ENDIF
Tutup file input dan output
ELSE
Periksa semua kunci yang diinput
IF kunci yang diinput benar THEN
Buka file input Bentuk file output
Panggil modul baca_baris Baca header file
IF header file benar THEN
Simpan waktu proses dimulai Panggil modul cari_G
Panggil modul cari_n Panggil modul cari_nA Panggil modul cari_PA
FOR ulang = 1 to ((jumlah baris-1)/2) DO
Panggil modul dekripsi
Simpan ukuran resolusi horisontal gambar Panggil modul dekripsi
Simpan ukuran resolusi vertikal gambar Panggil modul dekripsi
Simpan tinggi gambar Panggil modul dekripsi
Simpan tinggi gambar Panggil modul dekripsi Simpan lebar gambar Panggil modul dekripsi
Simpan informasi warna gambar pada tiap piksel Bentuk gambar pada kanvas
Atur posisi progress bar
ENDFOR
Simpan gambar yang terbentuk pada kanvas ke dalam file bitmap
Setting ukuran resolusi horisontal gambar Setting ukuran resolusi vertikal gambar
Tampilkan dialog box yang memberitahu bahwa proses telah selesai Nonaktifkan tombol “Run”
Nonaktifkan edit box “input p” Nonaktifkan edit box “input a” Nonaktifkan edit box “input b” Nonaktifkan edit box “input nA” Aktifkan tombol “Clear All” Aktifkan tombol “Full View”
ENDIF
Tutup file input dan output
ENDIF ENDIF
Panggil modul reset_semua
END
Modul BCancel1Click
Fungsi: mereset semua komponen yang terdapat pada layar menu “Kriptografi
Bitmap” dan semua variabel global, ketika tombol “Clear All” diklik. BEGIN
Panggil modul hapus_semua1 Panggil modul reset_semua Panggil modul hapus_gambar
Reset posisi progress bar END
Modul BFullClick
Fungsi: memperlihatkan gambar secara utuh, ketika tombol “Full View” diklik.
BEGIN
Panjang scroll bar vertikal Form full screen = tinggi gambar Tampilkan Form full screen
END
Modul StretchCheckClick
Fungsi: menyesuaikan ukuran kanvas dengan ukuran kotak gambar, ketika check
box “Stretch Image” diklik. BEGIN
IF check box “Stretch Image” diklik THEN Stretch gambar sebesar kotak gambar END
Modul RBEnkripsi2Click
Fungsi: mensetting tampilan awal mode enkripsi pada menu “Kriptorafi Text”, ketika user mengklik radio button “Enkripsi”.
BEGIN
Aktifkan tombol “Browse” Nonaktifkan edit box “input p” Bersihkan edit box “input p” Nonaktifkan edit box “input a” Bersihkan edit box “input a” Nonaktifkan edit box “input b” Bersihkan edit box “input b” Nonaktifkan edit box “input nA” Bersihkan edit box “input nA” Nonaktifkan tombol “Clear All”
END
Modul Dekripsi2Click
Fungsi: mensetting tampilan awal mode enkripsi pada menu “Kriptografi Text”, ketika user mengklik radio button “Dekripsi”.
BEGIN
Aktifkan tombol “Browse”
Aktifkan edit box “input p”
Aktifkan edit box “input a”
Aktifkan edit box “input nA”
Aktifkan tombol “Clear All”
END
Modul BBrowse2Click
Fungsi: memasukkan nama file yang akan dienkripsi atau didekripsi pada menu “Kriptografi Text”, ketika user mengklik tombol “Browse”.
BEGIN
Tampilkan dialog box “Open File”
Filter file yang dapat dibuka adalah file text (*.TXT)
Tampilkan Group Box “File”
Nonaktifkan radio button “Enkripsi”
Nonaktifkan radio button “Dekripsi”
Nonaktifkan tombol “Browse”
Tampilkan label “input”
Tampilkan nama file yang akan dienkripsi pada edit box “input”
Aktifkan tombol “Save As”
END
Modul BSave2Click
Fungsi: memasukkan nama file hasil enkripsi atau dekripsi suatu file pada menu “Kriptografi Text”, ketika user mengklik tombol “Save As”.
BEGIN
Tampilkan dialog box “Save File”
Filter nama file yang dapat disimpan adalah file text (*.TXT)
Tampilkan label “output”
Tampilkan nama file yang akan dienkripsi pada edit box “output”
Aktifkan tombol “Run”
Nonaktifkan tombol “Save As”
END
Modul BCancel2Click
Fungsi: mereset semua komponen yang terdapat pada layar menu “Kriptografi
Text” dan semua variabel global, ketika tombol “Clear All” diklik. BEGIN
Panggil modul hapus_semua2 Panggil modul reset_semua
Reset posisi progress bar END
Modul BRun2Click
Fungsi: menjalankan proses enkripsi atau dekripsi file teks, ketika tombol “Run” pada menu “Kriptografi Text” diklik.
BEGIN
Nonaktifkan tombol “Browse” Nonaktifkan tombol “Save As”
Cek validasi nama file input dan output
IF radio button “Enkripsi” diklik THEN
Buka file input Bentuk file output
Panggil modul baca_file_kombinasi
IF file “kombinasi_kunci_pab.txt” ditemukan THEN
Simpan waktu proses dimulai Tulis header file
Panggil modul cari_G Panggil modul cari_n Panggil modul cari_nA Panggil modul cari_PA Panggil modul baca_baris
FOR ulang = 1 to jumlah baris DO
Baca karakter pada file plaintext
Panggil modul enkripsi untuk mengenkripsi karakter tersebut Tulis hasil enkripsi pada file ciphertext
Atur posisi progress bar
ENDFOR
Simpan waktu proses selesai
Tampilkan dialog box yang memberitahu bahwa proses telah selesai
ENDIF
Tutup file input dan output
ELSE
Periksa semua kunci yang diinput
IF kunci yang diinput benar THEN
Buka file input Bentuk file output
Panggil modul baca_baris Baca header file
IF header file benar THEN
Panggil modul cari_G Panggil modul cari_n Panggil modul cari_nA Panggil modul cari_PA
FOR ulang = 1 to ((jumlah baris-1)/2) DO
Baca ASCII pada setiap baris file ciphertext Panggil modul dekripsi
Tulis karakter hasil proses dekripsi pada file plaintext Atur posisi progress bar
ENDFOR
Tampilkan dialog box yang memberitahu bahwa proses telah selesai Nonaktifkan tombol “Run”
Nonaktifkan edit box “input p” Nonaktifkan edit box “input a” Nonaktifkan edit box “input b” Nonaktifkan edit box “input nA” Aktifkan tombol “Clear All”
ENDIF
Tutup file input dan output
ENDIF ENDIF
Panggil modul reset_semua
END
Modul BClearClick
Fungsi: mereset semua komponen pada layar menu “Update File Kunci Kriptografi”, ketika tombol ”Clear All” diklik.
BEGIN
Panggil modul hapus_semua3 Panggil modul reset_semua
Reset posisi progress bar
Nonaktifkan tombol “Clear All”
END
Modul BUpdateClick
Fungsi: mengupdate file “kombinasi_kunci_pab.txt”, yang berisi kombinasi kunci p, a, dan b yang dapat membentuk 256 titik pada kurva elliptic.
BEGIN
IF nilai p akhir 227 atau p akhir 283 THEN
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 bentuk_titik
IF jumlah titik = 256 THEN
Tulis p, a, dan b ke dalam file “kombinasi_kunci_pab.txt” Hitung jumlah kombinasi kunci p, a, dan b yang ditemukan
ENDIF ENDFOR ENDFOR ENDIF ENDFOR ENDIF
Tampilkan jumlah kombinasi kunci p, a, dan b yang ditemukan Tampilkan jumlah titik tersedikit pada bilangan p prima yang terakhir Tampilkan jumlah titik terbanyak pada bilangan p prima yang terakhir
END
Modul BExitClick
Fungsi: ke luar dari program, ketika tombol “Exit” diklik.
BEGIN
Akhiri aplikasi