• Tidak ada hasil yang ditemukan

BAB 5 KESIMPULAN DAN SARAN

A. Fungsi Pengacak Bilangan Prima B.Fungsi Bilangan Acak

3.2.1.5 Flowchart Sistem

Flowchart sistem secara umum digambarkan pada Gambar 3.14. Pada flowchart ini terdapat tiga parameter halaman pilihan yang dapat dipilih pada sistem, yaitu halaman info tentang algoritma, halaman petunjuk penggunaan sistem dan halaman aplikasi sistem kombinasi Beaufort Cipher dan Affine Cipher pada Three-pass Protocol.

Mulai Bilangan Acak (x) Algoritma Lehmann x = 1 / x = -1 Bilangan Prima Akhir Tidak Ya Mulai Batas Bilangan Acak Generator Bilangan Acak Akhir

32 Mulai Coba Tentang Algoritma Berkas Beaufort - Affine C1 = K-P (Mod n) C2 Plaintek s Plaintek s, Kunci Beau C1 C1, Kunci Aff C2 = m.P+b(Mod n) C2, Kunci Beau C3 = K-C (Mod n) C3,C1, Pl = C3– (m-1)C1 +b (Mod n) C3 Akhir Info Algoritm a Info Sistem Ya Tidak Ya Ya Ya Tidak Tidak Tidak Ya Ya Tidak

3.2.2 Use Case

Use case adalah rangkaian/ uraian sekelompok yang saling terkait dan membentuk sebuah sistem secara teratur yang dilakukan oleh actor. Use case digunakan untuk membentuk tingkah laku benda dalam sebuah model serta direalisasikan dengan kolaborasi (Whitten, 2004).

3.2.2.1 Use Case Diagram

Pada penelitian ini use case diagram dapat ditunjukkan melalui Gambar 3.15.

Gambar 3.15 Use Case Diagram Sistem System Cari Buka Acak Enkripsi Affine Cipher Dekripsi Beaufort Cipher Dekripsi Affine Cipher Hapus Enkripsi Beaufort Cipher Direktori File Kunci Beaufort Cipher

Kunci Affine Cipher

Cipherteks Pertama Cipherteks Kedua Ciipherteks Ketiga Plainteks Plainteks Kosong «uses» «uses» «uses» «uses» «uses» «uses» «uses» «extends» «extends» <<depends on>> <<depends on>> <<depends on>> <<depends on>> <<depends on>> <<depends on>> <<depends on>> <<depends on>> <<depends on>> «extends» <<depends on>> «extends» <<depends on>> Actor

34

3.2.3 Sequence Diagram

Sequence diagram (diagram urutan) adalah suatu diagram yang memperlihatkan interaksi – interaksi antar objek di dalam sistem yang disusun pada sebuah urutan atau rangkaian waktu. Sequence diagram diawali dari apa yang men-trigger aktivitas tersebut, proses dan perubahan apa saja yang terjadi secara internal dan keluaran yang dihasilkan (Whitten, 2004). Sequence diagram sistem ditunjukkan pada Gambar 3.16.

Gambar 3.16 Sequence Diagram Sistem

User Cari Buka Acak Enk. Beaufort Enk. Affine Dek. Beaufort Dek. Affine Hapus

Mencari File

Enkripsi Beaufort Cipher

Enkripsi Affine Cipher

Dekripsi Beaufort Cipher

Dekripsi Affine Cipher Tampil Form File

Membuka File

Mengacak Kunci

Mengacak Kunci Affine Cipher Menampilkan isi file / Plainteks

Menampilkan Kunci Beaufort Cipher

Menampilkan cipherteks pertama

Menampilkan Kunci Affine Cipher

Menampilkan Cipherteks kedua

Menampilkan Cipherteks ketiga

Menampilkan Plainteks

Kosongkan Form

3.2.4 Activity Diagram

Activity diagram menggambarkan berbagai alir aktivitas dalam sistem yang sedang dirancang. Activity diagram lebih menggambarkan proses – proses dan jalur – jalur aktivitas dari level atas secara umum (Whitten, 2004). Activity diagram pada sistem yang dirancang ditunjukkan pada Gambar 3.17.

Gambar 3.17 Activity Diagram Sistem

Cari File Direktori file beradaditampilkan

Klik Button Buka Menampilkan isi file (.doc)

Sebagai Plainteks

Klik Button Acak Pada Beaufort Cipher

Menampilkan Kunci Beaufort Cipher

Pemberitahuan File berhasil ditampilkan

Klik Button Enkripsi Cipher

Menampilkan Cipherteks Pertama

Klik Button Acak Pada Affine Cipher

Menampilkan Kunci Affine Cipher

Klik Button Enkripsi Affine Cipher

Menampilkan Cipherteks Kedua

Klik Button Dekripsi Beaufort Cipher

Menampilkan Cipherteks Ketiga

Klik Button Dekripsi Affine Cipher

Menampilkan Plainteks

Klik Button

Kosongkan form Form Kosong

*

*

*

36

3.2.5 Mock-up

Mock-up adalah rancangan sistem yang berskala kecil dan tidak lengkap serta digunakan sebagai tampilan desain awal. (Fauzana, 2013) Terdapat empat halaman mock-up utama yaitu halaman awal, halaman beranda, halaman algoritma dan halaman sistem.

3.2.5.1 Halaman Awal

Pada halaman awal ini berisikan tentang judul dari sebuah sistem, logo sistem dan dua buah button. Halaman awal ini dapat dilihat pada Gambar 3.18. Pengguna yang ingin masuk ke dalam sistem harus melakukan aksi terhadap button masuk dan pengguna yang ingin keluar harus melakukan aksi terhadap button keluar. Ketika button keluar dipilih maka akan mengeluarkan konfirmasi seperti yang ditunjukkan pada Gambar 3.19.

Gambar 3.18 Halaman Awal

Keterangan gambar :

1. Picturebox digunakan untuk logo Universitas Sumatera Utara 2. Label digunakan untuk judul sistem

3. Picturebox digunakan untuk logo sistem

5. Button Keluar digunakan untuk keluar dari sistem

Gambar 3.19 Aksi konfirmasi keluar sistem

Keterangan gambar :

1. Button Ok untuk melanjutkan keluar dari sistem 2. Button Cancel untuk tetap berada pada sistem

3. Messagebox digunakan untuk konfirmasi keluar dari sistem

3.2.5.2 Halaman Beranda

Pada halaman beranda berisikan tabulasi – tabulasi halaman yang dapat diakses, cara penggunaan sistem, dan logo aplikasi. Halaman beranda ini dapat ditunjukkan pada Gambar 3.20.

Gambar 3.20 Halaman Beranda

Keterangan gambar :

1. Textbox yang digunakan untuk penulisan cara penggunaan sistem 2. Picturebox yang digunakan untuk logo aplikasi

38

3. Menustrip Beranda yang digunakan untuk menunjukkan halaman beranda 4. Menustrip Algoritma yang digunakan untuk menunjukkan halaman algoritma 5. Menustrip Beaufort – Affine yang digunakan untuk mencoba sistem

3.2.5.3 Halaman Algoritma

Pada halaman algoritma ini berisikan info – info mengenai algoritma yang digunakan. Halaman tentang algoritma ini dapat ditunjukkan pada Gambar 3.21.

Gambar 3.21 Halaman Algoritma

Keterangan gambar :

1. Textbox yang digunakan sebagai info algoritma Beaufort Cipher 2. Textbox yang digunakan sebagai info algoritma Affine Cipher

3. Textbox yang digunakan sebagai info kombinasi algoritma pada Three-pass Protocol.

3.2.5.4 Halaman Sistem

Pada halaman sistem ini terdapat beberapa button yang digunakan untuk menjalankan fungsi – fungsi enkripsi Beaufort Cipher dan Affine Cipher . Halaman sistem ini dapat ditunjukkan pada Gambar 3.22.

Gambar 3.22 Halaman Sistem

Keterangan gambar :

1. Button Cari yang digunakan untuk mencari file teks (*.doc)

2. Textbox yang digunakan untuk menampilkan direktori file yang dicari. 3. Button Buka yang digunakan untuk membaca isi file teks yang sudah dicari 4. Textbox yang digunakan untuk menampilkan isi file teks.

5. Groupbox yang digunakan untuk mengidentifikasi area data.

6. Textbox yang digunakan untuk menampilkan hasil kunci Beaufort Cipher. 7. Button Acak yang digunakan untuk mengacak kunci Beaufort Cipher. 8. Button Enkripsi yang digunakan untuk melakukan enkripsi Beaufort Cipher. 9. Textbox yang digunakan untuk menampilkan hasil enkripsi dari Beaufort

Cipher.

10.Button Dekripsi yang digunakan untuk melakukan Dekripsi Beaufort Cipher. 11.Textbox yang digunakan untuk menampilkan hasil dekripsi dari Beaufort

Cipher.

12.Textbox yang digunakan untuk menampilkan bilangan acak prima. 13.Textbox yang digunakan untuk menampilkan bilangan acak. 14.Button Acak yang digunakan untuk mengacak bilangan acak.

40

15.Button Acak yang digunakan untuk mengacak bilangan acak prima. 16.Button Enkripsi yang digunakan untuk melakukan enkripsi Affine Cipher. 17.Textbox yang digunakan untuk menampilkan hasil enkripsi dari Affine Cipher. 18.Button Dekripsi yang digunakan untuk melakukan Dekripsi Affine Cipher. 19.Textbox yang digunakan untuk menampilkan hasil Dekripsi dari Affine Cipher. 20.Groupbox yang digunakan untuk mengidentifikasi area Affine Cipher.

21.Groupbox yang digunakan untuk mengidentifikasi area Beaufort Cipher. 22.Button Hitung Karakter digunakan untuk menghitung karakter plainteks 23.Textbox yang digunakan untuk menampilkan jumlah karakter plainteks 24.Button Hapus digunakan untuk mengosongkan seluruh form sistem

BAB 4

IMPLEMENTASI DAN PENGUJIAN

4.1 Implementasi

Dalam tugas akhir ini, program dibangun menggunakan bahasa pemrograman Python versi 3.1.3. Program ini terdiri dari empat halamanutama, yaitu : halaman awal untuk mencoba melakukan aplikasi sebelum pengguna masuk ke sistem, halaman beranda sebagai halaman untuk mengetahui tata cara penggunaan sistem serta logo sistem sebelum memasuki sistem, halaman algoritma sebagai halaman untuk memberikan informasi tentang algoritma apa saja yang digunakan, halaman sistem sebagai halaman utama untuk mencoba kombinasi kedua algoritma.

4.1.1 Halaman Awal

Halaman awalmerupakan halaman yang pertama kali muncul apabila sistem dibuka. Halaman ini ditunjukkan pada Gambar 4.1.

42

Pada Gambar 4.1 terdapat dua button yang dapat diberikan aksi, yaitu masuk dan keluar. Button masuk akan dilanjutkan masuk ke dalam beranda sistem, sedangkan button keluar akan diberikan konfirmasi ingin keluar dari sistem.

4.1.2 Halaman Beranda

Halaman beranda merupakan halaman yang akan ditampilkan setelah user masuk ke dalam sistem. Tampilan halaman beranda ditunjukkan pada Gambar 4.2.

Gambar 4.2 Halaman Beranda

Pada Gambar 4.2 diberikan sebuah pengaturan cara penggunaan dari sistem sehingga user dapat dengan mudah menggunakan aplikasi.

4.1.3 Halaman Algoritma

Halaman algoritma merupakan halaman yang akan ditampilkan apabila user melakukan aksi pada menustrip Algoritma dalam sistem. Tampilan halaman beranda ditunjukkan pada Gambar 4.3.

Gambar 4.3 Halaman Algoritma

Pada Gambar 4.3 diberikan sebuah informasi yang berhubungan dengan algoritma yang digunakan pada sistem.

4.1.4 Halaman Sistem

Halaman sistem merupakan halaman yang akan ditampilkan apabila user melakukan aksi pada menustrip Beaufort - Affine dalam sistem. Tampilan halaman beranda ditunjukkan pada Gambar 4.4.

44

Pada Gambar 4.4 diberikan halaman yang dapat digunakan untuk melakukan enkripsi dan dekripsi pesan dengan metode Three-pass Protocol. Pada awal penggunaannya akan dicari sebuah file teks yang isinya akan dirahasiakan. Sistem akan mengacak kunci enkripsi Beaufort Cipher berdasarkan pesan (plainteks) yang dimasukkan. Ketika tombol enkripsi pada Beaufort Cipher diberi aksi maka sistem akan menghasilkan cipherteks yang pertama. Penerima akan menerima cipherteks pertama dan melakukan enkripsi kembali dengan Affine Cipher. Pesan akan didekripsi dengan algoritma Beaufort Cipher lalu kembali didekripsi dengan algoritma Affine Cipher sehingga menghasilkan pesan asli yang sampai pada pihak penerima.

4.2 Pengujian

Pengujian dilakukan terhadap algoritma kombinasi Beaufort Cipher dan Affine Cipher pada Three-pass Protocol untuk mengukur keberhasilan sistem dalam melakukan proses enkripsi dan dekripsi kedua algoritma. Pada pengujian ini parameter yang dihitung adalah waktu kombinasi kedua algoritma melakukan enkripsi dan dekripsi. Pengujian ini dilakukan dengan beberapa kriteria sebagai berikut :

1. Plainteks berupa kalimat yang terdiri dari karakter ASCII Printable dengan panjang 12, 20 dan 60 karakter bersumber dari file teks (*.doc) atau langsung pada textbox tersedia.

2. List yang digunakan adalah = {A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z,0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, ., ,, !, &, *, #, ^, (, $, %, ), {, }, [, ], +, -, =, <, >, /, :, ;, _, ?, |, `, ~, \\, @, ‘ ‘}

|| = 93

3. Kunci Beaufort Cipher terdiri dari karakter ASCII Printable yang dibangkitkan secara acak dengan RandomNumber Python.

4. Kunci Affine Cipher terdiri dari Bilangan Prima dan Shiff (Pergeseran). Karakter yang dibangkitkan secara acak bilangan prima adalah 6 digit. Hal ini berdasarkan analisis digit bilangan prima oleh Ummi (2014), beliau menyimpulkan untuk 3 digit prima perbandingan plainteks dan cipherteks adalah 562 % sedangkan 6 digit 1100 %. Karakter yang dibangkitkan untuk pergeseran adalah 9 digit yaitu batas maksimal dari pengolahan digit pada tools yang digunakan. Pada dasarnya tidak ada aturan digit untuk pergeseran.

Bila pergeseran lebih besar maka peluang angka pergeseran untuk dipecahkan sangat kecil.

5. Perhitungan waktu dari bahasa pemrograman Python 3.1.3 secara manual.

Tampilan pengujian ditunjukkan seperti Gambar 4.5.

Gambar 4.5 Tampilan Contoh Pengujian Plainteks = kriptografi.

Gambar 4.5 menjelaskan hasil dari plainteks ‘kriptografi.’. Pengujian ini dimulai dari dimasukkannya file .doc lalu isi file dibaca. Pengguna melakukan pengacakan pada kunci Beaufort Cipher dan melakukan enkripsi Beaufort Cipher. Selanjutnya pengguna akan mengacak kunci Affine Cipher dan menlakukan enkripsi Affine Cipher. Selanjutnya pengguna melakukan dekripsi pada Beaufort Cipher dan melakukan dekripsi pada Affine Cipher. Sehingga, menghasilkan plainteks awal yang dimasukkan.

4.2.1 Kunci Beaufort Cipher

Kunci Beaufort Cipher dihasilkan dari akumulasi penjumlahan index karakter dengan bilangan yang diacak oleh RandomNumber Python. Sehingga, panjang dari kunci ini pasti sama dengan panjang plainteks yang dimasukkan. Misalkan, karakter yang menjadi plainteks adalah k = 46 dan RandomNumber Python = 100 maka, 46 + 100 = 146 dan dimodulokan dengan jumlah keseluruhan list sehingga akan didapatkan indeks pada list 53 = r. ‘r’ akan menjadi kunci Beufort Cipher untuk menghasilkan

46

cipherteks yang pertama. Ilustrasi perhitungan kunci Beaufort Cipher dapat ditunjukkan seperti Tabel 4.1. Tampilan pada sistem ditunjukkan pada Gambar 4.6.

Gambar 4.6 Tampilan Plainteks Awal dan Acak Kunci Beaufort Cipher

Gambar 4.6 menunjukkan hasil pengacakan kunci Beaufort Cipher yang berasal dari plainteks awal.

Tabel 4.1 Proses Perhitungan Kunci Beaufort Cipher

Pl

KB (Pl + BilAcak)

Mod n List Index Index List

k 46 26 0 r 53 37 b i 44 1 B p 51 12 M t 55 50 o o 50 9 J g 42 58 w r 53 70 $ a 36 40 e f 41 39 d i 44 80 < . 62 20 U

Pada Tabel 4.1 terdapat plainteks dengan masing – masing index. Pada kolom yang kedua terdapat hasil index yang didapatkan berdasarkan penjumlahan dengan bilangan acak yang tidak dapat diprediksi jumlah kemunculannya. Selanjutnya dioperasikan dengan Modulo agar index tidak keluar dari janagkauan nlist.

4.2.2 Kunci Affine Cipher

Kunci Affine Cipher terdiri dari dua parameter bilangan yaitu bilangan prima dan bilangan pergeseran. Kedua bilangan dihasilkan dari bilangan yang diacak oleh RandomNumber Python. Untuk mendapatkan bilangan prima dilakukan pengecekan prima dengan Algoritma Lehmann terhadap bilangan acak yang dikeluarkan. Untuk mendapatkan pergeseran hanya dengan mengacak RandomNumber Python. Tampilan pada sistem dapat ditunjukkan pada Gambar 4.7.

Gambar 4.7 Tampilan Plainteks Awal dan Acak Kunci Affine Cipher

Gambar 4.7 menunjukkan hasil dari pengacakan RandomNumber Python 3.1.3. Pada pengacakan ini tidak ada karakter yang berhubungan dengan plainteks awal. Nilai acak yang diberikan RandomNumber dapat dilihat pada Tabel 4.2.

Tabel 4.2 Jenis Acak Kunci Affine Cipher

Plainteks Kunci Bilangan Prima (BilAcak) Pergeseran (BilAcak) kriptografi. 790969 826383674 870367 177885499 387437 517307094 704897 271400647 514453 683802805

Tabel 4.2 ini menunjukkan hasil dari pengacakan bilangan prima dan pergeseran dari RandomNumber Python 3.1.3. Bilangan Acak yang dihasilkan untuk bilangan prima telah melewati Algoritma Lehmann terlebih dahulu untuk memastikan bilangan itu prima dengan keyakinan diatas 50%.

48

4.2.3 Enkripsi Beaufort Cipher

Enkripsi pada tahap ini akan dihasilkan cipherteks yang pertama. Cipherteks ini terdiri dari kata sandi yang panjang karakternya sama dengan panjang plainteksnya. Pada enkripsi ini diperlukan kunci di mana panjang karakternya juga sama dengan plainteksnya. Misalkan, kata plainteks = ‘kriptografi.’ dan kunci = ‘0bBMoJw$ed<U’. Tampilan pada sistem dapat ditunjukkan pada Gambar 4.8.

Gambar 4.8 Tampilan Hasil Cipherteks I

Gambar 4.8 menunjukkan hasil cipherteks yang pertama. Cipherteks ini didapat melalui operasi pengurangan dari kunci Beaufort Cipher terhadap plainteks awal. Operasi pengurangan dapat dilihat pada Tabel 4.3.

Tabel 4.3 Proses Enkripsi Beaufort Cipher

Plainteks Index pada

List Kunci Index pada List C K – P (Mod n) C1 k 46 0 26 73 { r 53 b 37 77 + i 44 B 1 50 o p 51 M 12 54 s t 55 o 50 88 ` o 50 J 9 52 q g 42 w 58 16 Q r 53 $ 70 17 R a 36 e 40 4 E f 41 d 39 91 @ i 44 < 80 36 a . 62 U 20 51 p

Pada Tabel 4.3 dihasilkan cipherteks pertama yang ditunjukkan pada kolom C1. Cipherteks ini dihasilkan dari kunci yang telah diacak dan dikurangi dengan index pada plainteks. Hasil pengurangan bilangan itu dimodulo dengan n list.

4.2.4 Enkripsi Affine Cipher

Enkripsi pada tahap ini akan menghasilkan cipherteks yang kedua. Cipherteks ini terdiri dari kata sandi yang panjang karakternya sama dengan panjang cipherteks pertama. Pada enkripsi ini diperlukan kunci dengan parameter bilangan prima dan pergeseran. Diketahui plainteks = ‘kriptografi.’ dan kunci (Bilangan Prima = 598711 dan Pergeseran = 54726078). Tampilan sistem dapat dilihat pada Gambar 4.9.

Gambar 4.9 Tampilan Hasil Cipherteks II

Gambar 4.9 menunjukkan hasil cipherteks yang kedua. Cipherteks ini dihasilkan dari perkalian plainteks berupa cipherteks pertama terhadap bilangan prima yang diacak. Selanjutnya dilakukan penjumlahan sebaganyak bilangan pergeseran yang telah diacak oleh sistem. Ilustrasi perhitungan dapat ditunjukkan pada Tabel 4.4.

50

Tabel 4.4 Proses Enkripsi Affine Cipher

Plainteks Index List Kunci C m.P + b (Mod n) C2 Bil. Prima Pergeseran { 73 598711 54726078 37 b + 77 598711 54726078 38 c o 50 598711 54726078 8 I s 54 598711 54726078 9 J ` 88 598711 54726078 64 ! q 52 598711 54726078 55 t Q 16 598711 54726078 46 k R 17 598711 54726078 23 X E 4 598711 54726078 43 h @ 91 598711 54726078 88 ` a 36 598711 54726078 51 p p 51 598711 54726078 78 -

Tabel 4.4 merupakan tabel yang menunjukkan hasil dari cipherteks yang kedua. Cipherteks yang kedua ini membutuhkan cipherteks yang pertama sebagai plainteks dan pengacakan kunci untuk bilangan prima dan pergeserannya.

4.2.5 Dekripsi Beaufort Cipher

Dekripsi pada tahap ini akan menghasilkan cipherteks yang ketiga. Cipherteks ini terdiri dari kata sandi yang panjang karakternya sama dengan panjang cipherteks kedua. Pada enkripsi ini diperlukan kunci yang sama pada saat melakukan enkripsi Beaufort Cipher yang pertama. Tampilan pada sistem ditunjukkan pada Gambar 4.10.

Gambar 4.10 menunjukkan hasil cipherteks yang ketiga. Hasil cipherteks ini diperoleh dari plainteks berupa cipherteks yang kedua. Cipherteks kedua ini telah dikurangi dengan kunci Beaufort Cipher. Ilustrasi cara mendapatkan cipherteks yang ketiga dapat ditunjukkan pada Tabel 4.5.

Tabel 4.5 Proses Dekripsi Beaufort Cipher

Plainteks Index pada

List Kunci Index pada List P K – C (Mod n) C3 b 37 0 26 82 / c 38 b 37 92 ‘ ‘ I 8 B 1 86 ? J 9 M 12 3 D ! 64 o 50 79 = t 55 J 9 47 l k 46 w 58 12 M X 23 $ 70 47 l h 43 e 40 90 \ ` 88 d 39 44 i p 51 < 80 29 3 - 78 U 20 35 9

Pada Tabel 4.5 memiliki data kunci yang sama pada saat melakukan enkripsi. Pada Tabel 4.5 ini juga menghasilkan cipherteks yang ketiga. Cipherteks ini berasal dari pengurangan dari setiap index yang ada pada kunci terhadap index yang ada pada plainteks.

4.2.6 Dekripsi Affine Cipher

Dekripsi pada tahap ini akan menghasilkan plainteks asli. Plainteks ini terdiri dari kalimat yang sama dengan plainteks di awal. Pada dekripsi ini diperlukan kunci yang sama pada saat melakukan enkripsi Affine Cipher yang pertama. Tampilan pada sistem dapat ditunjukkan pada Gambar 4.11.

52

Gambar 4.11 Tampilan Hasil Plainteks Awal kembali

Gambar 4.11 menunjukkan hasil akhir berupa plainteks awal. Pada Gambar 4.11 dapat dilihat bahwa form yang menampung hasil cipherteks mempengaruhi keluaran pada form yang menampung hasil cipherteks berikutnya. Hal ini menjelaskan bahwa enkripsi Beaufor Cipher dapat dilakukan jika ada plainteks awal. Enkripsi Affine Cipher dapat dilakukan jika ada cipherteks yang pertama. Dekripsi Beaufort Cipher dapat dilakukan jika ada cipherteks yang kedua. Dekripsi Affine Cipher dapat dilakukan jika ada cipherteks yang ketiga dan cipherteks yang pertama. Ilustrasi perhitungan dapat ditunjukkan pada Tabel 4.6.

Tabel 4.6 Proses Dekripsi Affine Cipher

C1 C3 Kunci P C1 + (m-1) * C3 + b (Mod n) Plainteks Bil. Prima Pergeseran 73 82 598711 54726078 46 k 77 92 598711 54726078 53 r 50 86 598711 54726078 44 i 54 3 598711 54726078 51 p 88 79 598711 54726078 55 t 52 47 598711 54726078 50 o 16 12 598711 54726078 42 g 17 47 598711 54726078 53 r 4 90 598711 54726078 36 a 91 44 598711 54726078 41 f 36 29 598711 54726078 44 i 51 35 598711 54726078 62 .

Tabel 4.6 menunjukkan hasil dari dekripsi Affine Cipher. Plainteks dihasilkan dari penjumlahan cipherteks yang pertama dan cipherteks yang ketiga. Kunci yang digunakan sama seperti pada saat enkripsi Affine Cipher diakukan.

Keseluruhan perhitungan dimulai dari enkripsi Beaufort Cipher lalu dilanjutkan dengan enkripsi Affine Cipher kemudian dilakukan Dekripsi Beaufort cipher terakhir dilakukan dekripsi Affine Cipher. Tahapan enkripsi dan dekripsi tersebut menunjukkan hasil plainteks akhir yang sama dengan plainteks awal masukan. Hal ini dapat disimpulkan bahwa kombinasi algoritma klasik Beaufort Cipher dan Affine Cipher pada Three-pass Protocol memenuhi keutuhan data.

4.2.7 Pengujian Kompleksitas Algoritma

Pengujian ini dilakukan untuk mengetahui tingkat nilai masukan n suatu algoritma. Kompleksitas algoritma ini dapat dilihat dari kode program yang digunakan. Untuk kompleksitas algoritma enkripsi Beaufort Cipher ditunjukkan pada Tabel 4.7.

Tabel 4.7 Kompleksitas Algoritma Enkripsi Beaufort Cipher

No Kode Program C # C x #

1 def EnkBeaufort (Plainteks, kunci): C1 1 C1

2 hasil1 = "" C2 1 C2 3 for x in range(len(Plainteks)): C3 n C3n 4 temp = (z.index(kunci[x]) -

z.index(Plainteks[x])) % lz C4 n C4n 5 hasil1 = hasil1 + z[temp] C2 n C2n

6 return hasil1 C5 1 C5

Ci i n T( ) # (11) = C1C2C3nC4nC2nC5 = (C1C2C5)n0(C2C3C4)n1 = (n)

Tabel 4.7 menunjukkan hasil dari kompleksitas algoritma dari enkripsi Beaufort Cipher. Pada Tabel 4.7 terdapat Kolom C yaitu sebagai variabel menghitung seberapa banyak processor melakukan komputasi. Kolom # sebagai variabel untuk menghitung kalimat (statement) program yang dieksekusi. Kolom C x # yaitu menunjukkan hasil

54

perkalian dari C dan #. Sehingga, berdasarkan persamaan (11) akumulasi dari kompleksitas algoritma enkripsi Beaufort Cipher adalah (n). Kompleksitas algoritma selanjutnya adalah enkripsi Affine Cipher yang ditunjukkan pada Tabel 4.8.

Tabel 4.8 Kompleksitas Algoritma Enkripsi Affine Cipher

No Kode Program C # C x #

1 def EnkAff(m, b, data): C1 1 C1

2 hasil2 = "" C2 1 C2 3 for x in range(len(data)): C3 n C3n 4 temp = (m * z.index(data[x]) + b) % lz C4 n C4n 5 hasil2 = hasil2 + z[temp] C2 n C2n

6 return hasil2 C5 1 C5

Ci i n T( ) # (12) = C1C2C3nC4nC2nC5 = (C1C2C5)n0(C2C3C4)n1 = (n)

Tabel 4.8 menunjukkan hasil dari kompleksitas algoritma dari Affine Cipher . Pada Tabel 4.8 terdapat Kolom C yaitu sebagai variabel menghitung seberapa banyak processor melakukan komputasi. Kolom # sebagai variabel untuk menghitung kalimat (statement) program yang dieksekusi. Kolom C x # yaitu menunjukkan hasil perkalian dari C dan #. Sehingga akumulasi dari kompleksitas algoritma enkripsi Affine Cipher adalah (n). Selanjutnya dihitung kompleksitas algoritma dekripsi Beaufort Cipher ditunjukkan pada Tabel 4.9.

Tabel 4.9 Kompleksitas Algoritma Dekripsi Beaufort Cipher

No Kode Program C # C x #

1 def DekBeaufort (data, kunci): C1 1 C1

2 hasil3 = "" C2 1 C2

3 for x in range(len(data)): C3 n C3n 4 temp = (z.index(kunci[x])

z.index(data[x])) % lz C4 n C4n 5 hasil3 = hasil3 + z[temp] C2 n C2n

6 return hasil3 C5 1 C5

Ci i n T( ) # (13) = C1C2C3nC4nC2nC5 = (C1C2C5)n0(C2C3C4)n1 = (n)

Tabel 4.9 menunjukkan hasil dari kompleksitas algoritma dari Beaufort Cipher . Pada Tabel 4.9 terdapat Kolom C yaitu sebagai variabel menghitung seberapa banyak processor melakukan komputasi. Kolom # sebagai variabel untuk menghitung kalimat (statement) program yang dieksekusi. Kolom C x # yaitu menunjukkan hasil perkalian dari C dan #. Sehingga akumulasi kompleksitas algoritma dekripsi Beaufort Cipher sama dengan kompleksitas algoritma enkripsi Beaufort Cipher yaitu (n). Selanjutnya dilakukan perhitungan kompleksitas algoritma dekripsi Affine Cipher ditunjukkan pada Tabel 4.10.

Tabel 4.10 Kompleksitas Algoritma Dekripsi Affine Cipher

No Kode Program C # C x #

1 def DekAff(m, b, data, data2): C1 1 C1 2 hasil4 = "" C2 1 C2 3 for x in range(len(data)): C3 n C3n 4 temp = (z.index(data[x]) + (m - 1)*

z.index(data2[x]) + b) % lz C4 n C4n 5 hasil4 = hasil4 + z[temp] C2 n C2n

6 return hasil4 C5 1 C5

Ci i n T( ) # = C1C2C3nC4nC2nC5 = (C1C2C5)n0(C2C3C4)n1 = (n)

Tabel 4.10 menunjukkan hasil dari kompleksitas algoritma dari Affine Cipher . Pada Tabel 4.10 terdapat Kolom C yaitu sebagai variabel menghitung seberapa banyak processor melakukan komputasi. Kolom # sebagai variabel untuk menghitung kalimat (statement) program yang dieksekusi. Kolom C x # yaitu menunjukkan hasil perkalian dari C dan #. Sehingga akumulasi dari kompleksitas algoritma dekripsi Affine Cipher sama dengan kompleksitas algoritma enkripsi Affine Cipher yaitu (n)

4.2.8 Pengujian Kombinasi Algoritma terhadap Waktu

Pada pengujian ini akan dilihat melalui tiga plainteks dengan karakter yang berbeda. Setiap plainteks diuji sebanyak lima kali perubahan cipherteks pertama, kedua dan ketiga terhadap waktu. Waktu proses pada plainteks 12 karakter ditunjukkan pada Tabel 4.11.

56

Tabel 4.11 Waktu Proses pada Plainteks 12 Karakter

Plainteks C1 C2 C3 Waktu (s)

kriptografi.

3TuUQ]s_As;w ^so}|-K)kKq\ HSo\+m?*:_]4 0.0019998550415 >\rT`q<4 y0& 0czv|dEU/3Zk IMaNu,Z,k)j> 0.00200009346008 C_PQ9*U}o0?v acq~m=pDj|[Z MHH%gbL5f{tB 0.00100016593933 em!,dk:,RB|* PZj#b( #uaEB %],lv17n\G88 0.00300002098083 G[n,N7 <}p!v |d<PIm{nb;RD w~NGy9z;{I@X 0.0019998550415

Rata – rata Waktu 0.001999998

Pada Tabel 4.11 ditunjukkan hasil rata – rata waktu proses setiap perubahan cipherteks. Pada tabel 4.11 terdapat Kolom C1 diperoleh dari hasil enkripsi Beaufort Cipher. Kolom C2 menunjukkan cipherteks yang kedua diperoleh dari hasil enkripsi

Dokumen terkait