m – 1. Dari grafik di atas, dapat kita buktikan pernyataan tersebut. Pada gambar 3.1 sama halnya pada gambar 3.3 dan gambar 3.4, terlihat kombinasi secara tepat antara a,
b, dan m, sehingga LCG mempunyai periode maksimal m-1, dimana dengan m = 11, perulangan terjadi pada n=11. Sedangkan pada gambar 3.2 dan 3.5, kombinasi a, b,
dan m sangat buruk, sehingga terjadi perulangan saat n = 6 dengan m = 11, sehingga tidak memenuhi syarat untuk menghasilkan LCG yang memiliki periode maksimal.
3.3 Desain Sistem
Proses perancangan yang akan digunakan pada sistem ini merupakan proses perancangan yang berorientasi pada prosedural, untuk itu dibuatlah algoritma dan
flowchart dan perancangan tampilan. Aplikasi ini dirancang suatu sistem yang memproses karakter ASCII American Standard Code for Information Interchange
256 karakter.
3.4 Algoritma dan
Flowchart Sistem
Prosedur ini merupakan gambaran sistem secara keseluruhan. Sistem ini terdiri ada tiga proses utama, yaitu proses enkripsi, proses pembangkitan kunci secara acak, dan
proses dekripsi. Di bawah ini akan digambarkan flowchart dari sistem secara garis besar :
1. Start
2. Masuk pada tampilan utama sistem
3. Ada empat buah pilihan, pilih salah satu diantaranya
4. Untuk pilihan keluar, setelah di-klik akan muncul pilihan apakah mau keluar
atau tidak, jika iya maka akan keluar dari sistem, jika tidak akan tetap pada tampilan utama dari sistem.
5. Untuk pilihan enkripsi dari file, setelah di-klik akan muncul form untuk meng-
import file teks, lalu akan ada proses pembangkitan kunci dan proses enkripsi serta dekripsi dari file teks.
UNIVERSITAS SUMATERA UTARA
6. Untuk tampilan enkripsi dari keyboard, setelah di-klik akan muncul form
untuk menginputkan plaintext, lalu ada proses pembangkitan kunci dan proses enkripsi serta dekripsi dari keyboard.
7. Untuk pilihan bantuan, jika di-klik akan muncul form bantuan yang
menjelaskan secara singkat tahap-tahap pada sistem ini
UNIVERSITAS SUMATERA UTARA
Tidak
Tidak Tidak
Tidak
Ya Ya
Ya
Ya
Gambar 3.6 Flowchart Sistem
Enkripsi dan dekripsi
file
Finish Start
Pilihan
Enkripsi dan dekripsi dari
keyboard
Bangkitkan kunci
Enkripsi dan dekripsi dari
file teks Bantuan
Keluar
Bangkitkan kunci
Enkripsi dan dekripsi dari
keyboard Import file,
tampilkan isi file Input plaintext
Tampilkan form browse plaintext
Tampilkan dan simpan sebagai
ciphertext
Tampilkan plaintext
Tampilkan from input plaintext
Tampilkan dan simpan sebagai
ciphertext
Tampilkan plaintext
Tampilkan form bantuan
Dekripsi ciphertext
Dekripsi ciphertext
Menu utama
UNIVERSITAS SUMATERA UTARA
3.4.1 Algoritma dan Flowchart Proses Enkripsi dan Dekripsi dari File Teks
Prosedur ini digunakan untuk melakukan proses enkripsi dan dekripsi. Pada tahap ini juga akan dipanggil beberapa prosedur pendukung yang telah dijelaskan sebelumnya.
Di bawah ini akan dijelaskan prosesnya secara lebih rinci : 1.
Start 2.
Pilih tombol browse untuk mengambil file teks yang akan dienkripsikan 3.
Hitung panjang plaintext 4.
Jika panjang plaintext lebih dari 1024 karakter, akan ditampilkan pesan error, dan isi file harus dipersingkat, jika tidak lanjut ke tahap berikutnya
5. Konversi plaintext ke dalam kode ASCII
6. Bangkitkan kunci
7. Hitung ciphertext, C
i
= P
i
+ K
i
adalah kunci ke-i, dan Ci adalah ciphertext ke-i mod 256 ; dimana Pi adalah plaintext ke-i,
Ki
8. Tampilkan ciphertext yang berupa kode ASCII
9. Simpan ciphertext
10. Untuk mendekripsikannya, lalu hitung plaintext,
P
i
= C
i
- K
i
11. Ubah plaintext ke karakter semula dan tampilkan
mod 256
12. Finish
‘
UNIVERSITAS SUMATERA UTARA
Ya
Tidak
A
Browse file teks
Tentukan panjang plaintext, plaintext = konversi ke
kode ASCII
Bangkitkan kunci
C
i
= P
i
+ K
i
mod 256 Start
If length plain
1024 Tampilkan isi file
Tampilkan pesan error
Tampilkan nilai ASCII, lalu simpan sebagai
ciphertext
UNIVERSITAS SUMATERA UTARA
Gambar 3.7 Flowchart Proses Enkripsi dan Dekripsi dari File Teks
3.4.2 Algoritma dan Flowchart Proses Pembangkitan Kunci
Prosedur ini digunakan untuk melakukan proses pembangkitan kunci dengan metode Linear Congruential Generator LCG. Proses ini dilakukan setelah user
menginputkan plaintext, dan akan dipanggil kembali saat mau mendekripsikan ciphertext. Di bawah ini akan dijelaskan prosesnya secara lebih rinci :
1. Start
2. Inputkan nilai Xo seed, a, b, m yang merupakan konstanta LCG
3. Hitung, total1 = mod aXo+b, m
4. For i= 2: length plain, jadi kunci akan dibangkitkan sepanjang plaintext,
sehingga panjang kunci sama dengan panjang plaintext yang merupakan ciri khas dari algoritma OTP
5. Hitung, total = mod atotal i-1 +b, m
A
P
i
= C
i
- K
i
mod 256
Konversi plaintext ke karakter semula
Finish Tampilkan plaintext
semula
UNIVERSITAS SUMATERA UTARA
6. Selanjutnya, kunci yang diperoleh dimodulokan lagi dengan 256 untuk
konversi ke ASCII 7.
Tampilkan kunci acak dan tampilkan juga grafik keacakannya 8.
Finish
Gambar 3.8 Flowchart Proses Pembangkitan Kunci
Start
Input Xo, a,b, dan m
For i = 2: length plain total1 = mod aXo+b, m
total i = mod atotal i-1 +b, m
Finish Tampilkan hasil
pembangkitan kunci dan grafik keacakan
UNIVERSITAS SUMATERA UTARA
3.4.3 Algoritma dan Flowchart Proses Enkripsi dan Dekripsi dari keyboard
Prosedur ini digunakan untuk melakukan proses enkripsi dan dekripsi. Pada tahap ini juga akan dipanggil beberapa prosedur pendukung yang telah dijelaskan sebelumnya.
Di bawah ini akan dijelaskan prosesnya secara lebih rinci : 1.
Start 2.
Inputkan plaintext yang ingin dienkripsikan pada tempat yang telah disediakan
3. Hitung panjang plaintext
4. Jika panjang plaintext lebih dari 1024 karakter, akan ditampilkan pesan
error, dan isi file harus dipersingkat, jika tidak lanjut ke tahap berikutnya 5.
Konversi plaintext ke dalam kode ASCII 6.
Bangkitkan kunci 7.
Hitung ciphertext, C
i
= P
i
+ K
i
8. Tampilkan ciphertext yang berupa kode ASCII
mod 256 ; dimana Pi adalah plaintext ke- i, Ki adalah kunci ke-i, dan Ci adalah ciphertext ke-i
9. Simpan ciphertext
10. Untuk mendekripsikannya, hitung plaintext, P
i
= C
i
- K
i
11. Ubah plaintext ke karakter semula dan tampilkan
mod 256
12. Finish
UNIVERSITAS SUMATERA UTARA
Ya Tidak
A
Input plaintext
Bangkitkan kunci
C
i
= P
i
+ K
i
mod 256 Start
If length plain
1024
Tentukan panjang plaintext, plaintext =
konversi ke kode ASCII Tampilkan
pesan error
Tampilkan nilai ASCII, lalu simpan sebagai
ciphertext
UNIVERSITAS SUMATERA UTARA
Gambar 3.9 Flowchart Proses Enkripsi dan Dekripsi dari Keyboard
3.5 Diagram