Bab 3 Analisis dan Perancangan Sistem
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.
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
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 Importfile,
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
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, Ci = (Pi + Ki
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,Pi = (Ci - Ki 11. Ubah plaintext ke karakter semula dan tampilkan
) mod 256
12. Finish
Ya Tidak A Browse file teks
Tentukan panjang plaintext, plaintext = konversi ke kode ASCII Bangkitkan kunci Ci = (Pi + Ki) mod 256 Start If length (plain) > 1024 Tampilkan isi file
Tampilkan pesan error
Tampilkan nilai ASCII, lalu simpan sebagai
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, total(1) = mod (a*Xo+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 (a*total (i-1) +b, m) A Pi = (Ci - Ki) mod 256 Konversi plaintext ke karakter semula Finish Tampilkan plaintext semula
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) total(1) = mod (a*Xo+b, m)
total (i) = mod (a*total ( i-1) +b, m)
Finish Tampilkan hasil pembangkitan kunci dan grafik keacakan
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, Ci = (Pi + Ki
8. Tampilkan ciphertext yang berupa kode ASCII
) mod 256 ; dimana Pi adalah plaintext ke-i, Ki adalah kunci ke-ke-i, dan Ci adalah ciphertext ke-i
9. Simpan ciphertext
10.Untuk mendekripsikannya, hitung plaintext, Pi = (Ci - Ki 11.Ubah plaintext ke karakter semula dan tampilkan
) mod 256
Ya Tidak A Input plaintext Bangkitkan kunci Ci = (Pi + Ki) mod 256 Start If length (plain) > 1024 Tentukan panjang plaintext, plaintext = konversi ke kode ASCII
Tampilkan pesan error
Tampilkan nilai ASCII, lalu simpan sebagai
Gambar 3.9 Flowchart Proses Enkripsi dan Dekripsi dari Keyboard
3.5 Diagram Use Case
Diagram Use Case adalah diagram yang menunjukkan fungsionalitas suatu sistem atau kelas dan bagaimana sistem tersebut berinteraksi dengan dunia luar dan menjelaskan sistem secara fungsional yang terlihat user. Diagram use case menggambarkan fungsionalitas yang diharapkan dari sebuah sistem. Yang ditekankan adalah “apa” yang diperbuat sistem, dan bukan “bagaimana”. Sebuah use case merepresentasikan sebuah interaksi antara aktor dengan sistem. Di bawah ini adalah diagram use case dari sistem yang telah dibuat.
A Pi = (Ci - Ki) mod 256 Konversi plaintext ke karakter semula Finish Tampilkan plaintext semula
Input plaintext Input konstanta LCG Bangkitkan kunci acak Informasi detail dari plaintext Enkripsi plaintext Dekripsi ciphertext
Simpan kunci acak
Simpan ciphertext
<< include >>
User << include >>
<< include >> << include >>
<< extend >> << extend >>
Gambar 3.10 Diagram Use Case Sistem
Tabel 3.8 Spesifikasi Use Case Kriptografi
Nama Analisis dan perancangan aplikasi pesan rahasia menggunakan algoritma One Time Pad (OTP) dengan pembangkit bilangan acak Linear Congruential
Generator (LCG).
Actor User ( pengguna)
Dekripsi singkat Sistem akan mengenkripsi dan membangkitkan kunci serta mendekripsi pesan yang diinputkan user.
Pre Condition Sistem menyediakan form untuk menginputkan pesan (plaintext) dan menginputkan konstanta LCG sebagai pembangkit kunci acak.
Post Condition Sistem menampilkan hasil dari pembangkitan kunci acak, dan ciphertext hasil enkripsi, serta plaintext semula hasil dari dekripsi.
3.6 Perancangan Antarmuka
Untuk perancangan antarmuka pemakai (user interface) akan dirancang kedalam 4 halaman tampilan, yang terdiri dari menu utama yang menampilkan beberapa tombol, tombol untuk mengenkripsi dan mendekripsikan file teks yang berisikan sebuah form, tombol untuk mengenkripsi dan mendekripsikan plaintext langsung yang diinputkan dari keyboard yang berisikan sebuah form, dan tombol bantuan yang akan menampilkan form yang menjelaskan cara kerja sistem (program), dan yang terakhir tombol keluar untuk keluar dari program.
3.6.1 Tampilan Menu Utama
Pada tampilan menu utama, ada terdapat empat buah tombol, tombol pertama enkripsi dan dekripsi dari file, jika tombol ini diklik, maka proses akan dilanjutkan ke tampilan file encryption. Tombol kedua enkripsi dan dekripsi dari keyboard, jika tombol ini diklik, maka proses akan dilanjutkan ke tampilan encryption. Tombol ketiga bantuan, jika diklik akan muncul tampilan help. Tombol yang terakhir adalah pilihan untuk keluar dari sistem.
Gambar 3.11 RancanganTampilan Awal
1
ANALISIS DAN PERANCANGAN APLIKASI PESAN RAHASIA MENGGUNAKAN ALGORITMA ONE TIME PAD (OTP) DENGAN
PEMBANGKIT BILANGAN ACAK LINEAR CONGRUENTIAL
GENERATOR (LCG)
7 oleh : BILQIS 081401072 2 MENU UTAMA
3 ENKRIPSI & DEKRIPSI dari FILE 4 ENKRIPSI & DEKRIPSI dari KEYBOARD
5BANTUAN
Pada gambar di atas terdapat beberapa komponen-komponen visual yang akan dijelaskan sebagai berikut :
1. Terdiri atas tiga buah komponen Static Text yang disusun sedemikian rupa sebagai judul program.
2. Terdiri atas sebuah komponen Static Text dengan nama ‘MENU UTAMA’.
3. Terdiri atas sebuah Push Button dengan nama ‘ENKRIPSI & DEKRIPSI dari FILE’ .
4. Terdiri atas sebuah Push Button dengan nama ‘ENKRIPSI & DEKRIPSI dari KEYBOARD’ .
5. Terdiri atas sebuah Push Button dengan nama ‘BANTUAN’ . 6. Terdiri atas sebuah Push Button dengan nama ‘KELUAR’ . 7. Terdiri atas sebuah Static Text untuk menampilkan nama penulis.
3.6.2 Tampilan Enkripsi dan Dekripsi dari File
Pada halaman ini (file encryption), tombol browse diklik untuk memilih file teks yang akan dienkripsikan, selanjutnya tombol properties diklik, lalu tombol kunci. Kemudian, ada empat buah konstanta yang harus diinputkan oleh user untuk memproses kunci secara acak, selanjutnya klik tombol bangkitkan kunci, simpan, lalu enkripsi. Karakter yang telah terenkripsi beserta kode ASCII akan ditampilkan. Selanjutnya klik simpan ciphertext dan klik dekripsi, plaintext semula akan ditampilkan. Pada tombol kembali, jika diklik akan kembali ke tampilan menu utama, sedangkan pada tombol lanjut akan masuk ke tampilan enkripsi dan dekripsi dari keyboard.
Gambar 3.12 Rancangan Tampilan Enkripsi dan Dekripsi dari File Pada gambar di atas terdapat beberapa komponen-komponen visual yang akan dijelaskan sebagai berikut :
1. Terdiri atas sebuah komponen Static Text sebagai judul.
2. Terdiri atas sebuah Edit Text untuk menampilkan nama file yang akan dienkripsi.
3. Terdiri atas sebuah Edit Text untuk menampilkan isi file. 4. Terdiri atas sebuah Push Button dengan nama ‘Browse’. 5. Terdiri atas sebuah Push Button dengan nama ‘Properties’. 6. Terdiri atas sebuah Push Button dengan nama ‘Kunci’.
7. Terdiri atas sebuah Edit Text untuk menampilkan panjang karakter dari file. 8. Terdiri atas sebuah Edit Text untuk menampilkan kode ASCII dari karakter
yang sudah dikonversi. 1
ENKRIPSI dan DEKRIPSI dari FILE TEKS
2 Nama file 3 Isi file 13 Kunci yang dibang kitkan 7 Length 8 Kode ASCII 4 Browse 5 Properti 6 Kunci 9 xo 10 a 11 b 12 m 15 Bangkit kankunci 16 Simpa n kunci 17 Enkri psi 18 Ula ngi 14 Grafik keacakan 19 Karakter ciphertext 20 Kode ASCII 23 Plaintext semula 21 Simpan ciphertext 22 Dekripsi 24 Kembali 25Lanjut
9. Terdiri atas sebuah Edit Text untuk menginputkan nilai Xo. 10.Terdiri atas sebuah Edit Text untuk menginputkan nilai a. 11.Terdiri atas sebuah Edit Text untuk menginputkan nilai b. 12.Terdiri atas sebuah Edit Text untuk menginputkan nilai m.
13.Terdiri atas sebuah Edit Text untuk menampilkan hasil dari pembangkitan kunci.
14.Terdiri atas sebuah Axes untuk menampilkan grafik keacakan. 15.Terdiri atas sebuah Push Button dengan nama ‘Bangkitkan kunci’. 16.Terdiri atas sebuah Push Button dengan nama ‘Simpan kunci’. 17.Terdiri atas sebuah Push Button dengan nama ‘Enkripsi’. 18.Terdiri atas sebuah Push Button dengan nama ‘Ulangi’.
19.Terdiri atas sebuah Edit Text untuk menampilkan karakter ciphertext. 20.Terdiri atas sebuah Edit Text untuk menampilkan kode ASCII ciphertext. 21.Terdiri atas sebuah Push Button dengan nama ‘Simpan ciphertext’. 22.Terdiri atas sebuah Push Button dengan nama ‘Dekripsi’.
23.Terdiri atas sebuah Edit Text untuk menampilkan karakter plaintext semula.
24.Terdiri atas sebuah Push Button dengan nama ‘Kembali’. 25.Terdiri atas sebuah Push Button dengan nama ‘Lanjut’.
3.6.3 Tampilan Enkripsi dan Dekripsi dari Keyboard
Pada halaman ini (encryption), plaintext diisi secara langsung melalui keyboard, selanjutnya tombol properties diklik, lalu tombol kunci. Kemudian, ada empat buah konstanta yang harus diinputkan oleh user untuk memproses kunci secara acak, selanjutnya klik tombol bangkitkan kunci, simpan, lalu enkripsi. Karakter yang telah terenkripsi beserta kode ASCII akan ditampilkan. Selanjutnya klik simpan ciphertext dan klik dekripsi, plaintext semula akan ditampilkan. Pada tombol kembali, jika diklik akan kembali ke tampilan menu utama, sedangkan pada tombol lanjut akan masuk ke tampilan enkripsi dan dekripsi dari keyboard.
Gambar 3.13 Rancangan Tampilan Enkripsi dan Dekripsi dari Keyboard
Pada gambar di atas terdapat beberapa komponen-komponen visual yang akan dijelaskan sebagai berikut :
1. Terdiri atas sebuah komponen Static Text sebagai judul.
2. Terdiri atas sebuah Edit Text untuk menginputkan plaintext yang akan dienkripsi.
3. Terdiri atas sebuah Push Button dengan nama ‘Properties’. 4. Terdiri atas sebuah Push Button dengan nama ‘Kunci’.
5. Terdiri atas sebuah Edit Text untuk menampilkan panjang karakter dari plaintext yang diinputkan sebelumnya.
6. Terdiri atas sebuah Edit Text untuk menampilkan kode ASCII dari karakter yang sudah dikonversi.
8 a 9 b 10 m 1
ENKRIPSI dan DEKRIPSI dari KEYBOARD
2 Isi file 11 Kunci yang dibang kitkan 5 Length 6 Kode ASCII 3 Properties 4 Kunci 7 xo 13 Bangkit kan kunci 14 Simpa n kunci 15 Enkri psi 16 Ulan gi 12 Grafik keacakan 17 Karakter ciphertext 18 Kode ASCII 21 Plaintext semula 19 Simpan ciphertext 20 Dekripsi 22 Kembali 23Lanjut 8 a 9 b 10 m
7. Terdiri atas sebuah Edit Text untuk menginputkan nilai Xo. 8. Terdiri atas sebuah Edit Text untuk menginputkan nilai a. 9. Terdiri atas sebuah Edit Text untuk menginputkan nilai b. 10.Terdiri atas sebuah Edit Text untuk menginputkan nilai m.
11.Terdiri atas sebuah Edit Text untuk menampilkan hasil dari pembangkitan kunci.
12.Terdiri atas sebuah Axes untuk menampilkan grafik keacakan. 13.Terdiri atas sebuah Push Button dengan nama ‘Bangkitkan kunci’. 14.Terdiri atas sebuah Push Button dengan nama ‘Simpan kunci’. 15.Terdiri atas sebuah Push Button dengan nama ‘Enkripsi’. 16.Terdiri atas sebuah Push Button dengan nama ‘Ulangi’.
17.Terdiri atas sebuah Edit Text untuk menampilkan karakter ciphertext. 18.Terdiri atas sebuah Edit Text untuk menampilkan kode ASCII ciphertext. 19.Terdiri atas sebuah Push Button dengan nama ‘Simpan ciphertext’. 20.Terdiri atas sebuah Push Button dengan nama ‘Dekripsi’.
21.Terdiri atas sebuah Edit Text untuk menampilkan karakter plaintext semula.
22.Terdiri atas sebuah Push Button dengan nama ‘Kembali’. 23.Terdiri atas sebuah Push Button dengan nama ‘Lanjut’.
3.6.4 Tampilan Bantuan
Pada halaman ini (help), berisikan penjelasan singkat tentang mekanisme system pengenkripsian dan pendekripsian pesan. Terdapat sebuah tombol kembali, jika diklik akan kembali ke tampilan menu utama.
Gambar 3.14 RancanganTampilan Bantuan
Pada gambar di atas terdapat beberapa komponen-komponen visual yang akan dijelaskan sebagai berikut :
1. Terdiri atas sebuah komponen Panel dengan judul ‘Bantuan’. 2. Terdiri atas sebuah Edit Text untuk menjelaskan proses dari sistem. 3. Terdiri atas sebuah Edit Text untuk menjelaskan proses dari sistem. 4. Terdiri atas sebuah Push Button dengan nama ‘Kembali’.
1 Bantuan 2 Penjelasan singkat 3 Penjelasan singkat 4 Kembali
BAB 4
IMPLEMENTASI DAN PENGUJIAN
4.1 Implementasi
Setelah perancangan sistem kriptografi dibuat, selanjutnya masuk ke pada tahap implementasi atau pengkodean ke dalam bentuk program komputer. Implementasi dilakukan dengan menggunakan bahasa pemrograman Matlab 7.5.0.
Pada perancangan perangkat lunak diberi judul ”Analisis dan Perancangan Aplikasi Pesan Rahasia Menggunakan Algoritma One Time Pad (OTP) dengan Pembangkit Bilangan Acak Linear Congruential Generator (LCG)”. Ketika program dijalankan, maka akan ditampilkan interface seperti di bawah ini :
Terdapat empat buah tombol, jika tombol pertama diklik yaitu tombol Enkripsi dan Dekripsi dari File akan muncul tampulan seperti di bawah ini :
Gambar 4.2 Tampilan Menu Enkripsi dan Dekripsi dari File
Selanjutnya, klik tombol browse, lalu, pilih file yang akan dienkripsi, akan muncul tampilan seperti ini :
Lalu klik open kemudian pada program akan muncul nama file pada tempat yang sudah disediakan, kemudian klik tombol properties, maka akan muncul tampilan seperti ini :
Gambar 4.4 Tampilan Isi File Teks dan Properties
Dalam proses pengetikan plaintext maupun isi dari file teks, harus dipastikan bahwa plaintext diketik tanpa menggunakan tombol enter pada keyboard karena program tidak dapat menentukan dengan benar jumlah karakter dari plaintext, dimana panjang karakter akan menentukan panjang kunci untuk mengenkripsi dan dekripsi. Begitu juga pada file *.txt, harus dimodifikasi agar isinya hanya satu baris ke kanan tanpa menggunakan tombol enter untuk baris baru.
Selanjutnya, klik tombol kunci untuk menginputkan empat buah konstanta sebagai syarat untuk membangkitkan kunci pada metode LCG, lalu setelah diinputkan keempat konstanta tersebut, klik tombol bangkitkan kunci, lalu setelah itu akan ada tanda peringatan untuk mengecek hasil pembangkitan kunci, perhatikan kunci, jika perulangan terjadi secara terus menerus, silahkan tekan tombol ‘ulangi’, lebih jelasnya perhatikan gambar dibawah ini :
Gambar 4.5 Tampilan Pembangkitan Kunci
Selanjutnya, klik tombol simpan dan simpanlah dengan nama file yang diinginkan, lalu klik tombol enkripsi, setelah itu tampilan akan menjadi seperti dibawah ini :
Setelah itu, untuk kembali melihat pesan semula, klik tombol simpan ciphertext, lalu klik tombol dekripsi, maka akan muncul tampilan seperti ini :
Gambar 4.7 Tampilan Plaintext Semula Hasil Dekripsi
Jika pesan yang diinputkan melebihi 1024 buah karakter, maka akan muncul tampilan seperti dibawah ini :
Pada saat penginputan empat buah konstanta, jika input yang dimasukkan bukan merupakan bilangan, akan muncul pesan error seperti tampilan dibawah :
Gambar 4.9 Tampilan Pesan Error untuk Inputan Numerik
Selanjutnya, Pada gambar 4.7 jika klik tombol lanjut,maka tampilan dengan proses yang sama akan muncul seperti gambar di bawah ini :
Jika klik tombol lanjut, maka akan muncul tampilan bantuan seperti gambar di bawah ini :
Gambar 4.11 Tampilan Menu Bantuan
Jika klik tombol kembali, maka program akan kembali pada tampilan menu utama seperti tampilan dibawah, jika klik tombol keluar.
Jika klik tombol ya, maka user akan keluar dari sistem, jika klik tombol tidak, maka akan tetap berada pada halaman utama.
4.2 Pengujian
Penulis hanya menguji pada menu untuk mengenkripsi dan mendekripsi pesan yang diinputkan langsung dari keyboard. Pada menu utama, terdapat empat buah tombol, untuk mengenkripsi pesan dari file teks, klik tombol kedua yaitu tombol Enkripsi dan Dekripsi dari Keyboard, maka akan muncul tampulan seperti di bawah ini :
1. Enkripsi plaintext dengan metode LCG (Xo=2, a=6, b= 2731, dan m=32531), dimana nilai b dan m dibangkitkan oleh sistem.
Gambar 4.13 Tampilan Menu Enkripsi dan Dekripsi dari Keyboard (1)
Gambar 4.13 di atas menampilkan keacakan dari pembangkitan kunci. Terlihat grafik yang sangat acak dimana pada elemen pertama kunci yang dihasilkan 183, elemen yang kedua 245, elemen yang ketiga 48, dan seterusnya. Dan dapat diperhatikan juga dengan ciphertext yang dihasilkan juga cukup acak.
Di bawah ini adalah tampilan kunci acak dan ciphertext yang telah disimpan user sebelumnya :
Gambar 4.14 Tampilan Kunci yang Telah Dibangkitkan dan Disimpan dalam random key.txt
Gambar 4.15 Tampilan Ciphertext yang Disimpan dalam ciphertext.txt
2. Enkripsi plaintext dengan metode LCG (Xo=1, a=2, b= 43, dan m=76613), dimana semua konstanta LCG diinputkan oleh user.
Gambar 4.16 Tampilan Menu Enkripsi dan Dekripsi dari Keyboard (2)
Gambar 4.16 di atas menampilkan keacakan dari pembangkitan kunci. Dapat dilihat bahwa pada proses pembangkitan kunci ada beberapa buah kunci yang berulang secara berturut, ini diakibatkan karena kunci dimodulasikan dengan nilai 256 untuk mengkonversi ke kode ASCII . Meskipun hasilnya terjadi perulangan beberapa kali, kunci ini tetap bisa digunakan untuk mengenkripsi karena perulangan nilainya tidak berulang secara keseluruhan.
3. Enkripsi plaintext dengan metode LCG (Xo=12, a=3, b= 2, dan m=121), dimana semua konstanta LCG diinputkan oleh user.
Gambar 4.17 Tampilan Menu Enkripsi dan Dekripsi dari Keyboard (3)
Gambar 4.17 di atas menampilkan keacakan dari pembangkitan kunci yang buruk. Dapat dilihat bahwa pada proses pembangkitan kunci terjadi perulangan secara terus menerus yang dapat dengan jelas kita lihat pada grafik dari gambar diatas. Kunci acak seperti ini sebaiknya dihindari untuk mengenkripsi pesan, karena mempermudah para kriptanalis untuk memecah kuncinya.
4. Enkripsi plaintext dengan metode LCG (Xo=2, a=4, b= 3, dan m=76), dimana semua konstanta LCG diinputkan oleh user.
Gambar 4.18 Tampilan Menu Enkripsi dan Dekripsi dari Keyboard (4)
Gambar 4.18 di atas hampir sama dengan gambar sebelumnya, menampilkan keacakan dari pembangkitan kunci yang buruk. Kunci acak seperti ini sebaiknya dihindari untuk mengenkripsi pesan, karena mempermudah para kriptanalis untuk memecah kuncinya.
BAB 5
PENUTUP
5.1 Kesimpulan
Setelah melakukan pembahasan pada setiap bab dan teori yang ada dalam skripsi ini, dan setelah dilakukannya penelitian dan pengujian, maka penulis dapat menarik kesimpulan sebagai berikut :
1. Hasil enkripsi pada One Time Pad (OTP) yang seharusnya berupa karakter, ada sebagian yang tidak dapat ditampilkan karena ada beberapa karakter yang memang tidak ada pada tabel ASCII , oleh karena itu penulis hanya menampilkan kode ASCII saja sebagai ciphertext agar tidak membingungkan bagi user.
2. Pada proses pembangkitan kunci, yang harus diperhatikan adalah pemilihan nilai b dan m agar menghasilkan periode maksimal (nilai b dan m harus relative prima dan b < m). Oleh karena itu, penulis membantu user dalam menentukan nilai b dan m dari sistem. Sedangkan nilai a dan Xo bisa diinputkan sembarang oleh user karena tidak memiliki pengaruh cukup besar.
3. Dari hasil pengujian pada bab sebelumnya, terlihat jelas bahwa nilai b dan m yang dibangkitkan dari sistem terlihat sangat acak dibandingkan nilai yang diinputkan oleh user secara langsung.
4. Hasil analisis pada bab sebelumnya dapat membuktikan bahwa One Time Pad sama dengan Caesar Cipher saat sebuah kunci digunakan untuk semua karakter plaintext.
DAFTAR PUSTAKA
[1] Ariyus, Dony. 2007. Keamanan Multimedia. Yogyakarta : Penerbit Andi. [2] Ariyus, Dony. 2008. Pengantar Ilmu Kriptografi Teori, Analisis, dan Implementasi. Yogyakarta: Andi Yogyakarta .
[3] Astutik, Amelia.2007. Algoritma Enkripsi One Time Pad untuk Sistem
Pengamanan Access Database Server. Skripsi. Semarang, Indonesia :