Implementasi Kombinasi Beaufort Cipher Dan Affine Cipher Pada Three-Pass Protocol Untuk Pengamanan Data
UNTUK PENGAMANAN DATA
SKRIPSI
AZIZAH MEI SARI SEBAYANG
101401091
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2014
(2)
IMPLEMENTASI KOMBINASI BEAUFORT CIPHER DAN AFFINE CIPHER PADA THREE-PASS PROTOCOL
UNTUK PENGAMANAN DATA
SKRIPSI
Diajukan untuk melengkapi tugas akhir dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer
AZIZAH MEI SARI SEBAYANG 101401091
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
MEDAN 2014
(3)
Judul : IMPLEMENTASI KOMBINASI BEAUFORT CIPHER DAN AFFINE CIPHER PADA THREE - PASS
PROTOCOL UNTUK PENGAMANAN DATA
Kategori : SKRIPSI
Nama : AZIZAH MEI SARI SEBAYANG
Nomor Induk Mahasiswa : 101401091
Program Studi : SARJANA (S1) ILMU KOMPUTER
Departemen : ILMU KOMPUTER
Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
Diluluskan di
Medan, Agustus 2014
Komisi Pembimbing :
Pembimbing 2 Pembimbing 1
M. Andri Budiman, ST, M.Comp.Sc, MEM Maya Silvi Lydia, B.Sc, M.Sc NIP. 197510082008011011 NIP. 197401272002122001
Diketahui/Disetujui oleh
Program Studi S1 Ilmu Komputer Ketua,
Dr. Poltak Sihombing, M.Kom NIP. 196203171991031001
(4)
ii
PERNYATAAN
IMPLEMENTASI KOMBINASI BEAUFORT CIPHER DAN AFFINE CIPHER PADA THREE-PASS PROTOCOL
UNTUK PENGAMANAN DATA
SKRIPSI
Saya menyatakan bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.
Medan, Agustus 2014
Azizah Mei Sari Sebayang 101401091
(5)
PENGHARGAAN
Puji dan syukur kehadirat Allah SWT, yang memberikan rahmat dan karuniaNya sehingga penulis dapat menyelesaikan penyusunan skripsi yang berjudul ‘IMPLEMENTASI KOMBINASI BEAUFORT CIPHER DAN AFFINE CIPHER PADA THREE-PASS PROTOCOL UNTUK PENGAMANAN DATA’ sebagai syarat untuk memperoleh gelar Sarjana Komputer, pada Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara. Shalawat dan salam kepada Rasulullah SAW.
Ucapan terima kasih penulis sampaikan kepada:
1. Bapak Prof. Dr. Dr. Syahril Pasaribu, DTM&H, M.Sc(CTM). Sp.A(K) selaku Rektor Universitas Sumatera Utara.
2. Bapak Prof. Muhammad Zarlis selaku Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
3. Bapak Dr. Poltak Sihombing, M.Kom selaku Ketua Program Studi S1 Ilmu Komputer Universitas Sumatera Utara dan Dosen Pembanding
4. Ibu Maya Silvi Lydia, B.Sc, M.Sc selaku Sekretaris Program Studi S1 Ilmu Komputer Universitas Sumatera Utara dan Dosen Pembimbing.
5. Bapak M. Andri Budiman, ST, M.Comp.Sc, MEM selaku Dosen Pembimbing.
6. Bapak Syahriol Sitorus, S.Si, MIT selaku Dosen Pembanding.
7. Dekan dan Pembantu Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara, seluruh tenaga pengajar dan pegawai di Program Studi S1 Ilmu Komputer Fasilkom-TI USU.
(6)
iv
8. Ayahanda Zainal Sebayang, S.Sos dan ibunda Dra. Asriati Kaban, yang selalu memberikan do’a, kasih sayang dan dukungannya kepada penulis.
9. Abangnda Abdul Aziz Sebayang, Adinda Zaid Hasan Sebayang, dan Adinda Latifah Febri Aini Sebayang dan Fitriana Ramadhansyah yang selalu memberikan semangat, canda, hiburan kepada penulis.
10. Keluarga UKMI Al Khuwarizmi, IKLC, SGC USU, RTIK dan teman - teman Organisasi IMILKOM yang selalu memberikan semangat dan inspirasi kepada penulis
11. Sahabat – Sahabat Nurhennida Br. Sitepu, Hayatun Nufus, Yayang Kurniati, dan Fanny Fairina N yang selalu memberikan semangat dan dorongan kepada penulis selama menyelesaikan skripsi ini.
12. Teman - teman 2010 Aulia, Reni, Amel, Poppy, Nurul, Sadam, Arifin, Hamdi, Adit, Novri, Westhy, Lenora, Sunfirst yang selalu saling memberikan motivasi kepada penulis
13. Adik - adik yang tercinta khususnya Geubrima, Dina, Fitri, Resti, Kiky, Tika, Indri, Ifa, Citra, Rezky, Neno, Rossy, Ilmi, Novi, Vici, Ranti, Diah, Ami, Rahmi, Dea, Fatimah, Rama, Ani, dll yang selalu memberikan dorongan dan do’anya kepada penulis
Semoga Allah SWT melimpahkan berkah kepada semua pihak yang telah memberikan bantuan, perhatian, serta dukungan kepada penulis dalam menyelesaikan skripsi ini. Akhirnya, semoga skripsi ini bermanfaat bagi pribadi, keluarga, masyarakat, organisasi dan negara.
Medan, Juni 2014
(7)
ABSTRAK
Kriptografi terbagi dua jenis yaitu kriptografi klasik dan modern. Pada penerapannya kriptografi modern lebih dipercaya oleh masyarakat sebagai teknik untuk mengamankan data, tetapi tidak sedikit masyarakat yang masih menggunakan kriptografi klasik dengan cara mengkombinasi dua algoritma kriptografi klasik. Algoritma Affine Cipher dan Beaufort Cipher yang merupakan varian dari Vigenère Cipher adalah algoritma yang dikategorikan ke dalam kriptografi klasik dengan jenis cipher subsitusi. Pada penerapannya kedua algoritma tersebut memiliki kelemahan masing – masing. Affine Cipher memiliki kelemahan yaitu memiliki ukuran kunci yang kecil. Ukuran kunci yang kecil menyebabkan algoritma ini dapat dipecahkan dengan pencarian brute force. Sedangkan keamanan Beaufort Cipher tergantung dengan jumlah karakter kunci yang digunakan, semakin banyak jumlah kunci yang digunakan semakin sulit kemungkinan kunci dipecahkan. Pada penelitian ini akan dikembangkan kombinasi dua algoritma klasik Beaufort Cipher dan Affine Cipher dengan metode Three-pass Protocol yang diharapkan dapat memperbaiki kelemahan algoritma Affine Cipher yang memiliki kunci yang pendek dan kelemahan Beaufort Cipher yang memiliki panjang kunci tergantung pada plainteks. Pengacakan kunci dilakukan dengan RandomNumber Python dan Algoritma Lehmann Primality test. Implementasi sistem menggunakan bahasa pemrograman Python 3.1.3 dan SharpDevelop 4.1. Pengujian dilakukan terhadap plainteks 12, 20 dan 60 karakter. Parameter pengujian adalah keutuhan data, kompleksitas algoritma dan waktu proses. Hasil penelitian menunjukkan bahwa kombinasi kedua algoritma Beaufort Cipher dan Affine Cipher mengembalikan data plainteks awal yang utuh. Pengujian kompleksitas algoritma diperoleh (n). Sehingga disimpulkan kombinasi kedua algoritma Beaufort Cipher dan Affine Cipher memenuhi keutuhan data yang baik, kompleksitas algoritma
) (n
dan jumlah plainteks berbanding lurus terhadap waktu.
Kata Kunci: Kriptografi, Beaufort Cipher, Affine Cipher, Three-pass Protocol, Lehmann.
(8)
vi
IMPLEMENTATION OF BEAUFORT CIPHER AND AFFINE CIPHER
COMBINATION IN THREE-PASS PROTOCOL
FOR DATA SECURITY
ABSTRACT
Cryptography is divided into two types classical and modern cryptography. In the application of modern cryptography is more trusted as a technique for securing the data, but a few people still use classical cryptographic algorithms by combining two classical cryptography. Affine Cipher Algorithm and Beaufort Cipher which is a variant of the algorithm Vigenère Cipher is categorized into classical cryptography with the type of substitution cipher. In practice both these algorithms have each weakness. The weakness of Affine Cipher is a short key sizes. Short key size causes the algorithm can be solved by brute force search. While security Beaufort Cipher key depends on the number of characters used. The more plaintext, the more of keys that are used, it’s difficult to solve key possibilities. This research will develop a combination of two classic algorithms Beaufort Cipher and Affine Cipher with Three-pass Protocol methods. This method is expected can improve the weaknesses of Affine Cipher algorithm which has short key and the weaknesses Beaufort cipher that has a key length depends on the plaintext. Randomization was performed with the key by Python RandomNumber and Lehmann primality test. Implementation of systems using Python programming language 3.1.3 and SharpDevelop 4.1. Tests performed on the plaintext which 12, 20 and 60 characters. Parameter testing is the integrity of data, the complexity of the algorithms and processing time. The results showed that the combination of both algorithms Beaufort Cipher and Affine Cipher restoring the intact plaintext. Testing the algorithm complexity is obtained (n). Thus concluded the combination of both algorithms Beaufort Cipher and Affine Cipher fulfill the integrity of the data, the complexity of the algorithm is (n) and the number of plaintext is directly proportional to the time.
Keywords: Cryptography, Beaufort Cipher, Affine Cipher, Three-pass Protocol, Lehmann.
(9)
DAFTAR ISI
Halaman
Persetujuan i
Pernyataan ii
Penghargaan iii
Abstrak v
Abstract vi
Daftar Isi vii
Daftar Tabel ix
Daftar Gambar x
Daftar Lampiran xii
Bab 1 Pendahuluan
1.1 Latar Belakang 1
1.2 Rumusan Masalah 4
1.3 Batasan Masalah 4
1.4 Tujuan Penelitian 4
1.5 Manfaat Penelitian 4
1.6 Metodologi Penelitian 5
1.7 Sistematika Penulisan 7
Bab 2 Landasan Teori
2.1 Kriptografi 8
2.1.1 Definisi Kriptografi 8
2.1.2 Tujuan Kriptografi 8
2.1.3 Sistem Kriptografi Klasik 9
2.1.4 Sistem Kriptografi Modern 10
2.2 Three-pass Protocol 11
2.3 Affine Cipher 12
2.4 Vigenere Cipher 13
2.4.1 Varian Vigenere Cipher 16
2.5 Penelitian yang Relevan 18
Bab 3 Analisis dan Perancangan
3.1 Analisis Sistem 19
3.1.1 Analisis Masalah 19
3.1.2 Analisis Kebutuhan 22
3.1.2.1 Kebutuhan Fungsional 22 3.1.2.2 Kebutuhan Nonfungsional 23
3.1.3 Analisis Proses 24
3.1.4 Pseudocode 24
3.1.4.1 Pseudocode Mencari File 24 3.1.4.2 Pseudocode Membaca File 25 3.1.4.3 Pseudocode Kunci Beaufort Cipher 25
(10)
viii
3.1.4.4 Pseudocode Enkripsi Beaufort Cipher 26 3.1.4.5 Pseudocode Algoritma Lehmann 26 3.1.4.6 Pseudocode Enkripsi Affine Cipher 27 3.1.4.7 Pseudocode Dekripsi Beaufort Cipher 27 3.1.4.8 Pseudocode Dekripsi Affine Cipher 27
3.2 Perancangan Sistem 28
3.2.1 Flowchart 28
3.2.1.1 Flowchart Beaufort Cipher 28
3.2.1.2 Flowchart Kunci Beaufort Cipher 29
3.2.1.3 Flowchart Affine Cipher 29
3.2.1.4 Flowchart Kunci Affine Cipher 30
3.2.1.5 Flowchart Sistem 31
3.2.2 Use Case 33
3.2.2.1 Use Case Diagram 33
3.2.3 Sequence Diagram 34
3.2.4 Activity Diagram 35
3.2.5 Mock-up 36
3.2.5.1 Halaman Awal 36
3.2.5.2 Halaman Beranda 37
3.2.5.3 Halaman Algoritma 38
3.2.5.4 Halaman Sistem 38
Bab 4 Implementasi dan Pengujian
4.1 Implementasi 41
4.1.1 Halaman Awal 41
4.1.2 Halaman Beranda 42
4.1.3 Halaman Algoritma 42
4.1.4 Halaman Sistem 43
4.2 Pengujian 44
4.2.1 Kunci Beaufort Cipher 45
4.2.2 Kunci Affine Cipher 47
4.2.3 Enkripsi Beaufort Cipher 48
4.2.4 Enkripsi Affine Cipher 51
4.2.5 Dekripsi Beaufort Cipher 53
4.2.6 Dekripsi Affine Cipher 55
4.2.7 Pengujian Kombinasi Kedua Algoritma 58
Bab 5 Kesimpulan dan Saran
5.1 Kesimpulan 60
5.2 Saran 61
(11)
DAFTAR TABEL
Halaman
Tabel 2.1 Bujursangkar Vigenere 15
Tabel 4.1 Proses Perhitungan Kunci Beaufort Cipher 46 Tabel 4.2 Proses Perhitungan Kunci Affine Cipher 47
Tabel 4.3 Proses Enkripsi Beaufort Cipher 48
Tabel 4.4 Proses Enkripsi Affine Cipher 50
Tabel 4.5 Proses Dekripsi Beaufort Cipher 51
Tabel 4.6 Proses Enkripsi Affine Cipher 52
Tabel 4.7 Kompleksitas Algoritma Enkripsi Beaufort Cipher 53 Tabel 4.8 Kompleksitas Algoritma Enkripsi Affine Cipher 54 Tabel 4.9 Kompleksitas Algoritma Dekripsi Beaufort Cipher 54 Tabel 4.10 Kompleksitas Algoritma Dekripsi Affine Cipher 55 Tabel 4.11 Waktu Proses pada Plainteks 12 Karakter 56 Tabel 4.12 Waktu Proses pada Plainteks 20 Karakter 56 Tabel 4.13 Waktu Proses pada Plainteks 60 Karakter 57
(12)
x
DAFTAR GAMBAR
Halaman
Gambar 1.1 Diagram Proses Algoritma Affine Cipher 3 Gambar 1.2 Diagram Proses Algoritma Vigenere Cipher 3
Gambar 1.3 Alur Diagram Sistem 3
Gambar 2.1 Sistem Kriptografi Simetrik 10
Gambar 2.2 Sistem Kriptografi Asimetrik 11
Gambar 2.3 Skema Cara Kerja Three-pass Protocol 12
Gambar 2.4 Skema Affine Cipher 12
Gambar 2.5 Skema Vigenere Cipher 14
Gambar 3.1 Diagram Ishikawa Masalah Penelitian 21
Gambar 3.2 Pseudocode Mencari File 24
Gambar 3.3 Pseudocode Membaca File 25
Gambar 3.4 Pseudocode Kunci Beaufort Cipher 25
Gambar 3.5 Pseudocode Enkripsi Beaufort Cipher 26 Gambar 3.6 Pseudocode Algoritma Lehmann dan Generator Bilangan Prima 26
Gambar 3.7 Pseudocode Enkripsi Affine Cipher 27
Gambar 3.8 Pseudocode Dekripsi Beaufort Cipher 27
Gambar 3.9 Pseudocode Dekripsi Affine Cipher 27
Gambar 3.10 Flowchart Algoritma Beaufort Cipher 28
Gambar 3.11 Flowchart Kunci Beaufort Cipher 29
Gambar 3.12 Flowchart Algoritma Affine Cipher 30 Gambar 3.13 Flowchart A. Fungsi Pengacak Bilangan Prima 31
Gambar 3.13 Flowchart B. Fungsi Bilangan Acak 31
Gambar 3.14 Flowchart Sistem 32
Gambar 3.15 Use Case Diagram Sistem 33
Gambar 3.16 Sequence Diagram Sistem 34
Gambar 3.17 Activity Diagram Sistem 35
Gambar 3.18 Mock-up Halaman Awal 36
Gambar 3.19 Mock-up Aksi konfirmasi keluar Sistem 37
Gambar 3.20 Mock-up Halaman Beranda 37
Gambar 3.21 Mock-up Halaman Algoritma 38
(13)
Gambar 4.1 Tampilan Halaman Awal 41
Gambar 4.2 Tampilan Halaman Beranda 42
Gambar 4.3 Tampilan Halaman Algoritma 43
Gambar 4.4 Tampilan Halaman Sistem 43
Gambar 4.5 Tampilan contoh pengujian Plainteks = kriptografi. 45 Gambar 4.6 Tampilan Plainteks Awal dan Acak Kunci Beaufort Cipher 46 Gambar 4.7 Tampilan Plainteks Awal dan Acak Kunci Affine Cipher 47
Gambar 4.8 Tampilan Hasil Cipherteks I 48
Gambar 4.9 Tampilan Hasil Cipherteks II 49
Gambar 4.10 Tampilan Hasil Cipherteks III 50
Gambar 4.11 Tampilan Hasil Plainteks Awal Kembali 52 Gambar 4.12 Grafik Hubungan Waktu Proses dan Karakter Plainteks 58
(14)
xii
DAFTAR LAMPIRAN
Halaman
A. Listing Program A-1
(15)
ABSTRAK
Kriptografi terbagi dua jenis yaitu kriptografi klasik dan modern. Pada penerapannya kriptografi modern lebih dipercaya oleh masyarakat sebagai teknik untuk mengamankan data, tetapi tidak sedikit masyarakat yang masih menggunakan kriptografi klasik dengan cara mengkombinasi dua algoritma kriptografi klasik. Algoritma Affine Cipher dan Beaufort Cipher yang merupakan varian dari Vigenère Cipher adalah algoritma yang dikategorikan ke dalam kriptografi klasik dengan jenis cipher subsitusi. Pada penerapannya kedua algoritma tersebut memiliki kelemahan masing – masing. Affine Cipher memiliki kelemahan yaitu memiliki ukuran kunci yang kecil. Ukuran kunci yang kecil menyebabkan algoritma ini dapat dipecahkan dengan pencarian brute force. Sedangkan keamanan Beaufort Cipher tergantung dengan jumlah karakter kunci yang digunakan, semakin banyak jumlah kunci yang digunakan semakin sulit kemungkinan kunci dipecahkan. Pada penelitian ini akan dikembangkan kombinasi dua algoritma klasik Beaufort Cipher dan Affine Cipher dengan metode Three-pass Protocol yang diharapkan dapat memperbaiki kelemahan algoritma Affine Cipher yang memiliki kunci yang pendek dan kelemahan Beaufort Cipher yang memiliki panjang kunci tergantung pada plainteks. Pengacakan kunci dilakukan dengan RandomNumber Python dan Algoritma Lehmann Primality test. Implementasi sistem menggunakan bahasa pemrograman Python 3.1.3 dan SharpDevelop 4.1. Pengujian dilakukan terhadap plainteks 12, 20 dan 60 karakter. Parameter pengujian adalah keutuhan data, kompleksitas algoritma dan waktu proses. Hasil penelitian menunjukkan bahwa kombinasi kedua algoritma Beaufort Cipher dan Affine Cipher mengembalikan data plainteks awal yang utuh. Pengujian kompleksitas algoritma diperoleh (n). Sehingga disimpulkan kombinasi kedua algoritma Beaufort Cipher dan Affine Cipher memenuhi keutuhan data yang baik, kompleksitas algoritma
) (n
dan jumlah plainteks berbanding lurus terhadap waktu.
Kata Kunci: Kriptografi, Beaufort Cipher, Affine Cipher, Three-pass Protocol, Lehmann.
(16)
vi
IMPLEMENTATION OF BEAUFORT CIPHER AND AFFINE CIPHER
COMBINATION IN THREE-PASS PROTOCOL
FOR DATA SECURITY
ABSTRACT
Cryptography is divided into two types classical and modern cryptography. In the application of modern cryptography is more trusted as a technique for securing the data, but a few people still use classical cryptographic algorithms by combining two classical cryptography. Affine Cipher Algorithm and Beaufort Cipher which is a variant of the algorithm Vigenère Cipher is categorized into classical cryptography with the type of substitution cipher. In practice both these algorithms have each weakness. The weakness of Affine Cipher is a short key sizes. Short key size causes the algorithm can be solved by brute force search. While security Beaufort Cipher key depends on the number of characters used. The more plaintext, the more of keys that are used, it’s difficult to solve key possibilities. This research will develop a combination of two classic algorithms Beaufort Cipher and Affine Cipher with Three-pass Protocol methods. This method is expected can improve the weaknesses of Affine Cipher algorithm which has short key and the weaknesses Beaufort cipher that has a key length depends on the plaintext. Randomization was performed with the key by Python RandomNumber and Lehmann primality test. Implementation of systems using Python programming language 3.1.3 and SharpDevelop 4.1. Tests performed on the plaintext which 12, 20 and 60 characters. Parameter testing is the integrity of data, the complexity of the algorithms and processing time. The results showed that the combination of both algorithms Beaufort Cipher and Affine Cipher restoring the intact plaintext. Testing the algorithm complexity is obtained (n). Thus concluded the combination of both algorithms Beaufort Cipher and Affine Cipher fulfill the integrity of the data, the complexity of the algorithm is (n) and the number of plaintext is directly proportional to the time.
Keywords: Cryptography, Beaufort Cipher, Affine Cipher, Three-pass Protocol, Lehmann.
(17)
BAB 1 PENDAHULUAN
1.1 Latar Belakang
Seringnya menggunakan media elektronik dalam mengirim atau tukar - menukar informasi dan data, menurut Hamir yang dikutip dari (http://bppt.go.id/, 2011) peluang untuk disadap oleh pihak lain sangat besar. Lembaga pemerintah memiliki kewajiban memberikan informasi kepada publik. Namun, proses pengamanan tetap sangat penting. Ancaman yang dapat terjadi bisa berbentuk ideologi, politik, ekonomi, bahkan dapat berbentuk iptek dan informasi. Ancaman informasi dapat terjadi karena dua faktor, yaitu internal dan eksternal. Faktor internal bisa disebabkan oleh kecerobohan pegawai dalam menyampaikan informasi yang sebenarnya terbatas, tidak tertibnya administrasi surat rahasia dan tidak digunakannya perangkat pengamanan, misalnya tidak menggunakan persandian enkripsi ataupun kriptografi.
Kriptografi terbagi dua jenis yaitu kriptografi klasik dan modern. Pada penerapannya kriptografi modern lebih dipercaya oleh masyarakat sebagai teknik untuk mengamankan data, tetapi tidak sedikit masyarakat yang masih menggunakan kriptografi klasik dengan cara mengkombinasi dua algoritma kriptografi klasik (Sadikin, 2012). Algoritma Affine Cipher dan Beaufort Cipher yang merupakan varian dari Vigenère Cipher adalah algoritma yang dikategorikan ke dalam kriptografi klasik dengan jenis cipher subsitusi. Pada penerapannya kedua algoritma tersebut memiliki kelemahan masing – masing. Affine Cipher memiliki kelemahan yaitu memiliki ukuran kunci yang kecil. Ukuran kunci yang kecil menyebabkan algoritma ini dapat dipecahkan dengan pencarian brute force. Sedangkan keamanan Beaufort Cipher tergantung dengan jumlah karakter kunci yang digunakan, semakin banyak jumlah kunci yang digunakan semakin sulit kemungkinan kunci dipecahkan. Alur diagram kelemahan kedua algoritma ini seperti Gambar 1.1 dan Gambar 1.2.
(18)
2
Terdapat banyak penelitian yang sudah dilakukan untuk menutupi kelemahan kedua algoritma Affine Cipher dan Beaufort Cipher . Seperti halnya penelitian yang dilakukan oleh Winata (2012), beliau menganalisis beberapa kombinasi algoritma kriptografi klasik dan menyimpulkan bahwa kombinasi Affine Cipher dan Vigenère Cipher adalah kombinasi yang paling kuat. Penelitian yang lain juga dilakukan oleh Juliadi (2013), beliau mengimplementasikan Affine Cipher dan diperkuat dengan VigenèreCipher sehingga menghasilkan cipherteks yang sulit dipecahkan.
Three-pass protocol merupakan salah satu metode kriptografi berbasis protokol. Protokol ini pertama kali dikembangkan oleh Adi Shamir, seorang ahli kriptografi tahun 1980. Protokol yang dikembangkan ini dikenal dengan Shamir No-Key Exchange Protocol. Disebut dengan three-pass protocol karena pengirim dan penerima pesan melakukan penukaran sebanyak tiga tahap untuk mengenkripsi pesan, sehingga memungkinkan pengirim dan penerima mengirim dan menerima pesan tanpa harus mendistribusikan kunci. Pada dasarnya three-pass protocol ini diimplementasikan dengan menggunakan satu algoritma enkripsi dan dekripsi yang telah disepakati oleh pihak pengirim dan pihak penerima. Pada penelitian yang dilakukan oleh Pramana (2013), beliau menggunakan three-pass protocol dalam mengimplementasikan algoritma Massey-Omura Cryptosystem untuk keamanan email dengan Algoritma Lehmann sebagai prime generator. Beliau menyimpulkan algoritma tersebut relatif aman. Selain itu telah dilakukan juga penelitian oleh Kanamori (2009), beliau mengggunakan three-pass protocol dan mendistribusi kunci dengan metode Quantum.
Untuk mengatasi kelemahan yang terdapat pada algoritma Affine cipher dan Beaufort cipher, maka kedua algoritma ini akan dikombinasikan pada three-pass protocol. Sehingga pendistribusian kunci tidak dilakukan dan menghindari mudahnya kunci dipecahkan. Penelitian mengombinasikan algoritma kriptografi klasik dengan metode three-pass protocol sudah dilakukan oleh Oktaviana (2012), beliau mengombinasikan Caesar Cipher dengan VigenèreCipher pada three-pass protocol. Beliau menyimpulkan kombinasi kedua algoritma tersebut relatif aman dan sederhana. Penelitian mengenai varian Vigenère cipher yaitu Beaufort cipher masih sedikit dikembangkan sehingga terkesan langka. Berdasarkan uraian di atas, maka penulis
(19)
mengambil tugas akhir dengan judul “Implementasi kombinasi algoritma Beaufort
Cipher dan Affine Cipher pada Three-pass Protocol untuk pengamanan data”.
Gambar 1.1 Diagram proses Algoritma Affine Cipher
Gambar 1.2 Diagram proses Algoritma Vigenère Cipher
Pada Gambar 1.1 menunjukkan diagram proses algoritma Affine Cipher. Pengirim mengirimkan hasil enkripsinya kepada pihak penerima berupa cipherteks CMW melalui saluran umum dan mengirimkan kunci enkripsinya melalui saluran aman. Pada Gambar 1.2 menunjukkan proses algoritma Vigenère Cipher. Pengirim mengirimkan hasil enkripsinya kepada pihak penerima berupa cipherteks IUU melalui saluran umum dan mengirimkan kunci enkripsinya melalui saluran aman. Jika saluran aman pada proses kedua algoritma disusupi oleh penyadap maka berdasarkan pada Gambar 1.1 kunci a : 27 dan b : 2 dapat dengan cepat diketahui. Sama seperti Gambar 1.2 Jika saluran aman pada proses kedua algoritma disusupi oleh penyadap maka berdasarkan pada Gambar 1.2 kunci : IKA akan cepat diketahui.
(20)
4
1.2Rumusan Masalah
Berdasarkan penjabaran yang ada pada latar belakang, rumusan masalah yang akan dibahas adalah bagaimana implementasi kombinasi algoritma klasik pada three-pass protocol untuk pengamanan data.
1.3Batasan Masalah
Dalam hal mengimplementasikan kombinasi kedua algoritma ini terdapat beberapa batasan masalah sebagai berikut :
1. Pesan yang digunakan berupa file teks yang berekstensi *.doc
2. Plainteks dan cipherteks yang dapat dibuat berdasarkan ASCII printable character (kode karakter 32-127 kecuali simbol singlequote (‘) dan doublequote(“)
3. Implementasi berupa enkripsi dan dekripsi pesan saja.
4. Tools yang digunakan adalah Python 3.1.1 dan SharpDevelop 4.1
5. Parameter yang akan digunakan adalah keutuhan data, kompleksitas algoritma dan waktu proses.
1.4Tujuan Penelitian
Adapun tujuan dari penelitian ini adalah untuk mengimplementasikan kombinasi algoritma Beaufort Cipher dan Affine Cipher pada Three-pass protocol untuk pengamanan data.
1.5Manfaat Penelitian
Adapun manfaat dari penelitian ini adalah diharapkan dapat memudahkan masyarakat dalam hal merahasiakan pesan dengan cara yang sederhana dan aman.
(21)
1.6 Metodologi Penelitian
Metode penelitian yang dilakukan dalam penelitian ini adalah: 1. Studi pustaka
Pada tahap ini penelitian dimulai dengan peninjauan pustaka berupa buku – buku, artikel – artikel ilmiah, dan penelitian - penelitian yang didokumentasikan dalam bentuk jurnal yang berhubungan dengan Three-pass protocol, Affine cipher, Vigenère cipher, Varian Vigenère cipher (Beaufort Cipher)
2. Analisis dan Perancangan
Berkaitan dengan batasan masalah, pada tahap ini dianalisa apa saja yang dibutuhkan dalam penelitian ini dan selanjutnya dirancang dalam sebuah model alur diagram seperti pada Gambar 1.3.
3. Implementasi
Pada tahap ini perancangan alur diagram diimplementasikan dengan tools Python 3.1.3 dan SharpDevelop 4.1.
4. Pengujian
Pada tahap ini prototipe yang telah diimplementasikan dilakukan pengujian dengan file teks yang berekstensi *.doc.
5. Dokumentasi
Pada tahap ini pendokumentasian dilakukan selama penelitian, mulai dari analisa hingga pengujian dalam bentuk skripsi.
(22)
6
Gambar 1.3. Alur diagram sistem
Gambar 1.3 menunjukkan alur sistem yang akan dibuat dimulai dari memasukkan plainteks awal, selanjutnya akan dilakukan enkripsi dengan algoritma Beaufort Cipher sehingga menghasilkan cipherteks pertama. Selanjutnya dilakukan enkripsi dengan Affine Cipher dan menghasilkan cipherteks kedua. Selanjutnya dilakukan dekripsi Beaufort Cipher dan dihasilkan cipherteks ketiga. Pada tahap terakhir akan dilakukan dekripsi Affine Cipher dan mengembalikan plainteks awal.
Akhir Mulai
Plainteks
Plainteks Enkripsi Beaufort Cipher
Dekripsi Affine Cipher
Enkripsi Affine Cipher
Dekripsi Beaufort Cipher
Cipherteks 1
Cipherteks 2
Cipherteks 3
(23)
1.7 Sistematika Penulisan
Sistematika penulisan skripsi ini terdiri dari beberapa bagian utama, yaitu:
BAB 1 PENDAHULUAN
Bab ini menjelaskan latar belakang judul skripsi ”Implementasi kombinasi algoritma Beaufort Cipher dan Affine Cipher pada Three-pass Protocol untuk pengamanan data”, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metode penelitian dan sistematika penulisan.
BAB 2 LANDASAN TEORI
Bab ini berisi tentang penjelasan singkat mengenai sistem kriptografi secara umum, kriptografi klasik dan teori-teori dasar perhitungan yang digunakan dalam algoritma Affine cipher, Vigenère cipher, varian Vigenère cipher (Beaufort Cipher) dan bilangan acak.
BAB 3 ANALISIS DAN PERANCANGAN
Bab ini membahas analisis terhadap masalah penelitian dan perancangan terhadap sistem yang akan dibangun.
BAB 4 IMPLEMENTASI DAN PENGUJIAN
Bab ini berisi implementasi algoritma Beaufort Cipher dan Affine Cipher pada Three-pass Protocol, selanjutnya pengujian terhadap sistem yang telah dibangun dengan beberapa sampel file teks, serta pembahasan hasil pengujian dan analisisnya.
BAB 5 KESIMPULAN DAN SARAN
Bab ini memuat kesimpulan dari keseluruhan uraian bab - bab sebelumnya dan saran berdasarkan hasil pengujian yang diharapkan dapat bermanfaat untuk pengembangan selanjutnya.
(24)
BAB 2
LANDASAN TEORI
2.1 Kriptografi
2.1.1 Definisi Kriptografi
Kriptografi adalah ilmu mengenai teknik enkripsi di mana data diacak menggunakan suatu kunci enkripsi menjadi sesuatu yang sulit dibaca oleh seseorang yang tidak memiliki kunci dekripsi. Dekripsi menggunakan kunci dekripsi mendapatkan kembali data asli. Proses enkripsi dilakukan menggunakan suatu algoritma dengan beberapa parameter. Algoritma biasanya tidak dirahasiakan, bahkan enkripsi yang mengandalkan kerahasiaan algoritma dianggap sesuatu yang tidak baik. Rahasia terletak di beberapa parameter yang digunakan, jadi kunci ditentukan oleh parameter. Parameter yang menentukan kunci dekripsi itulah yang harus dirahasiakan (Kromodimoeljo, 2010)
Kriptografi pada awalnya dijabarkan sebagai ilmu yang mempelajari bagaimana menyembunyikan pesan. Namun seiring perkembangannya kriptografi pada pengertian modern adalah ilmu yang bersandarkan pada teknik matematika untuk berurusan dengan keamanan informasi seperti kerahasiaan, keutuhan data dan otentikasi entitas. Jadi, bila diklasifikasikan terdapat kriptografi klasik dan kriptografi modern.
2.1.2 Tujuan Kriptografi
Kriptografi bertujuan untuk memberikan layanan keamanan sebagai berikut (Sadikin, 2012) :
1. Otentikasi
Otentikasi memberikan kepastian terhadap identitas setiap entitas yang terlibat dan sumber sebuah data.
2. Kendali Akses
Layanan keamanan jaringan yang menghalangi penggunaan tidak terotorisasi terhadap sumber daya.
(25)
3. Kerahasiaan (Confidentiality)
Data yang ditransmisikan diproteksi terhadap pengungkapan oleh pihak-pihak yang tidak berwenang.
4. Keutuhan Data (Data Integrity)
Data yang diterima oleh penerima dipastikan adalah sama dengan data yang dikirim oleh pengirim.
5. Non-Repudiation
Setiap entitas yang berkomunikasi tidak dapat menolak atau menyangkal atas data yang telah dikirim atau diterima.
6. Ketersediaan
Laayanan ini membuat sumber daya sistem tetap dapat diakses dan digunakan ketika ada permintaan dari pihak yang berwenang.
2.1.3 Sistem Kriptografi Klasik
Sistem kriptografi klasik umumnya telah digunakan jauh sebelum era komputer. Kriptografi klasik juga dibagi menjadi dua jenis cipher yaitu cipher transposisi yang mengubah susunan huruf - huruf di dalam pesan dan cipher substitusi yang mengganti setiap huruf atau kelompok huruf dengan sebuah huruf atau kelompok huruf lain. Kriptografi klasik, teknik enkripsi yang digunakan adalah enkripsi simetris dimana kunci dekripsi sama dengan kunci enkripsi. Penyandian ini berorientasi pada karakter. Terdapat 5 bagian dalam sistem kriptografi klasik (Sadikin, 2012) yaitu:
1. Plaintext
Pesan atau data dalam bentuk aslinya yang dapat dibaca dan masukan bagi algoritma enkripsi.
2. Secret Key
Masukan bagi algoritma enkripsi merupakan nilai yang bebas terhadap teks asli dan menentukan hasil keluaran algoritma enkripsi.
3. Ciphertext
Hasil dari proses algoritma enkripsi dan teks asli dianggap telah tersembunyi. 4. Algoritma Enkripsi
Algoritma enkripsi memiliki 2 masukan yaitu teks asli dan kunci rahasia, kedua masukan tersebut akan diproses sehingga menghasilkan teks sandi.
(26)
10
5. Algoritma Dekripsi
Algoritma dekripsi memiliki 2 masukan yaitu teks sandi dan kunci rahasia, keduanya akan diproses sehingga menghasilkan teks asli.
2.1.4 Sistem Kriptografi Modern
Sistem kriptografi modern umumnya berorientasi pada bit. Untuk public key cryptography, diperlukan teknik enkripsi asimetris dimana kunci dekripsi tidak sama dengan kunci enkripsi. Enkripsi, dekripsi dan pembuatan kunci untuk teknik enkripsi asimetris memerlukan komputasi yang lebih intensif dibandingkan enkripsi simetris, karena enkripsi asimetris menggunakan bilangan - bilangan yang sangat besar. Beberapa mekanisme yang berkembang pada kriptografi modern (Sadikin, 2012) :
1. Penyandian dengan kunci simetrik (symmetric key encipherment).
Penyandian dengan kunci simetrik adalah penyandian yang kunci enkripsi dan kunci dekripsi bernilai sama. Penyandian ini masih digunakan pada kriptografi modern. Skema penyandian ini dapat digambarkan pada Gambar 2.1.
Gambar 2.1. Sistem Kriptografi Simetrik (Sumber : Sadikin, 2012)
2. Penyandian dengan kunci asimetrik (asymmetric key encipherment)
Penyandian dengan kunci asimetrik yang disebut juga dengan kunci publik adalah penyandian yang kunci enkripsi dan kunci dekripsi bernilai berbeda. Penyandian ini yang banyak dikembangkan. Skema penyandian ini dapat digambarkan pada Gambar 2.2.
(27)
Gambar 2.2 Sistem Kriptografi Asimetrik (Sumber : Fauzana, 2013)
Tidak seperti sistem kriptografi klasik di mana setiap entitas harus saling mengetahui kunci rahasia, sistem kriptografi modern yang juga disebut kriptografi kunci asimetrik, memiliki dua jenis kunci, yaitu kunci enkripsi dan kunci dekripsi yang berbeda. Dalam kriptografi kunci asimetris, hampir semua algoritma kriptografinya menggunakan konsep kunci publik, kecuali algoritma Pohlig - Hellman karena kunci enkripsi maupun kunci dekripsinya bersifat privat.
2.2Three-pass Protocol
Dalam kriptografi Three-pass protocol adalah konsep yang memungkinkan satu pihak bisa dengan aman mengirim pesan kepada pihak kedua tanpa harus bertukar atau mendistribusikan kunci enkripsi. Protokol ini pertama kali dikembangkan oleh Adi Shamir seorang ahli kriptografi pada tahun 1980. Protokol ini dimodifikasi oleh James Massey dan Jim K Omura yang disebut dengan Massey-omura. Keduanya adalah pakar teori informasi pada tahun 1982 (Pramana, 2013).
Three-pass protocol memiliki beberapa tahapan untuk dapat menyampaikan pesan itu dari pengirim kepada penerima. Berikut tahapannya (Pramana, 2013) : a. Pengirim memilih kunci enkripsi eA. Pengirim mengenkripsi pesan dengan
kunci dan mengirimkan pesan terenkripsi kepada penerima.
b. Penerima memiliki kunci enkripsi eB. Penerima mengenkripsi pesan )
, (
1 eA m
C dengan kunci dan mengirim pesan terenkripsi lagi ))
, ( ,
( 1
2 eB C eA m
C kepada pengirim.
A Algoritma Enkripsi Teks Asli B Algoritma Dekripsi
Kpublik B
Ciphertext Teks Asli
Pembangkit Kunci Kprivat B
(28)
12
c. Pengirim mendekripsi pesan C2(eB,C1(eA,m)) dengan menggunakan dA dan mengirim lagi pesan C3(eB,m) yang mana pesan ini dienkripsi oleh kunci penerima. Pengirim kembali mengirim pesan tersebut ke penerima dan kemudian penerima akan mendekripsi pesan tersebut dengan dB untuk bisa melihat pesan.
Tahapan - tahapan ini dapat diilustrasikan pada Gambar 2.3
Gambar 2.3 Skema cara kerja Three-pass protocol
2.3Affine Cipher
Affine cipher adalah perluasan dari Caesar cipher yang mengalikan plainteks dengan sebuah nilai dan menambahkannya dengan sebuah pergeseran. Skema sandi Affine cipher dapat diilustrasikan pada Gambar 2.4.
Gambar 2.4 Skema Affine Cipher
Secara matematis enkripsi plainteks P lalu menghasilkan cipherteks C dinyatakan dengan fungsi kongruen :
) (modn b mP
C (1)
Berdasarkan persamaan (1), plainteks dapat dihitung sebagai berikut : Plainteks : M A H A S I S W A I L K O M
(29)
n = 26, m = 9, b = 2
M = 12.9 + 2 = 110 (mod 26) = 6 -> G A = 0.9 + 2 = 2 (mod 26) = 2 -> C
yang dalam hal ini n adalah ukuran alfabet, madalah bilangan bulat yang harus relatif prima dengan n dan b adalah jumlah pergeseran. Untuk melakukan dekripsi,
persamaan di atas harus dipecahkan untuk mendapatkan P. Solusi kekongruenan tersebut hanya ada di inversi m(mod n). Jika 1
m ada maka dekripsi dilakukan dengan persamaan :
) )(mod (
1
n b
C m
P (2)
Berdasarkan persamaan (2), cipherteks dapat dikembalikan sebagai berikut : n = 26, m = 9, b = 2, m-1 = 3
G = 3. (6 – 2) (mod 26) = 12 -> M C = 3. (2 – 2) (mod 26) = 0 -> A
2.4 Vigenère Cipher
Vigenère Cipher mungkin adalah contoh terbaik dari cipher alphabet - majemuk. Algoritma ini dipublikasikan oleh diplomat sekaligus kriptologis Perancis, Blaise de Vigenère pada abad 16. Giovan Batista Belaso telah menggambarkannya pertama kali pada tahun 1553 seperti ditulis di dalam bukunya La Cifra del Sig. Vigenère Cipher dipublikasikan pada tahun 1586, tetapi algoritma tersebut baru dikenal luas 200 tahun kemudian yang oleh penemu sandi tersebut kemudian dinamakan Vigenère cipher (Winata, 2012).
Vigenère cipher sangat dikenal karena mudah dipahami dan diimplementasikan. Cipher menggunakan bujursangkar Vigenère untuk melakukan enkripsi. Kolom kiri dari bujursangkar menyatakan huruf - huruf kunci, sedangkan baris paling atas menyatakan huruf - huruf plainteks. Setiap baris di dalam bujursangkar menyatakan huruf - huruf cipherteks yang diperoleh dengan Caesar Cipher. Skema sandi Vigenère Cipher dapat diilustrasikan pada Gambar 2.5.
(30)
14
Gambar 2.5 Skema Vigenère Cipher
Bujursangkar Vigenère digunakan untuk memperoleh cipherteks dengan menggunakan kunci yang sudah ditentukan. Jika panjang kunci lebih pendek daripada panjang plainteks, maka kunci diulang penggunaannya. Bujursangkar Vigenère ditunjukkan pada Tabel 2.1.
(31)
Tabel 2.1 Bujursangkar Vigenère
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 a 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 b 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 A c C D E F G H I J K L M N O P Q R S T U V W X Y Z A B d D E F G H I J K L M N O P Q R S T U V W X Y Z A B C e E F G H I J K L M N O P Q R S T U V W X Y Z A B C D f F G H I J K L M N O P Q R S T U V W X Y Z A B C D E g G H I J K L M N O P Q R S T U V W X Y Z A B C D E F h H I J K L M N O P Q R S T U V W X Y Z A B C D E F G i I J K L M N O P Q R S T U V W X Y Z A B C D E F G H j J K L M N O P Q R S T U V W X Y Z A B C D E F G H I k K L M N O P Q R S T U V W X Y Z A B C D E F G H I J l L M N O P Q R S T U V W X Y Z A B C D E F G H I J K m M N O P Q R S T U V W X Y Z A B C D E F G H I J K L n N O P Q R S T U V W X Y Z A B C D E F G H I J K L M o O P Q R S T U V W X Y Z A B C D E F G H I J K L M N p P Q R S T U V W X Y Z A B C D E F G H I J K L M N O q Q R S T U V W X Y Z A B C D E F G H I J K L M N O P r R S T U V W X Y Z A B C D E F G H I J K L M N O P Q s S T U V W X Y Z A B C D E F G H I J K L M N O P Q R t T U V W X Y Z A B C D E F G H I J K L M N O P Q R S u U V W X Y Z A B C D E F G H I J K L M N O P Q R S T v V W X Y Z A B C D E F G H I J K L M N O P Q R S T U w W X Y Z A B C D E F G H I J K L M N O P Q R S T U V x X Y Z A B C D E F G H I J K L M N O P Q R S T U V W y Y Z A B C D E F G H I J K L M N O P Q R S T U V W X z Z 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
Berdasarkan Tabel 2.1 plainteks dapat dihitung sebagai berikut : Plainteks : M A H A S I S W A I L K O M
(32)
16
Kunci : a z i m e y a z i m e y a z Cipherteks : M Z P M W G S V I U P I O L
Secara matematis, misalkan kunci dengan panjang m adalah rangkaian k1,k1...km,
plainteks adalah rangkaian p1,p1...pt dan cipherteks adalah rangkaian c1,c1...ct,
maka enkripsi pada Vigenère cipher dapat dinyatakan sebagai berikut : 26
mod )
( i r
i p k
c ; (1it) (3)
dan
) (modm r
i (1rt)
Berdasarkan persamaan (3) huruf M dapat dienkripsi dengan kunci a dan z sebagai berikut :
(M + a) mod 26 = (12 + 0) mod 26 = 12 = M (M + z) mod 26 = (12 + 25) mod 26 = 11 = L
Dekripsi pada Vigenère dilakukan dengan cara yang berkebalikan, yaitu menarik garis mendatar dari huruf kunci sampai ke huruf cipherteks yang dituju, lalu dari huruf cipherteks Tarik garis vertikal ke atas sampai ke huruf plainteks. Secara matematis dekripsi dapat dinyatakan dengan persamaan :
26 mod )
( i r
i c k
p (4)
Berdasarkan persamaan (4) huruf L dan M dapat didekripsi dengan kunci a dan z sebagai berikut :
(M - a) mod 26 = (12 - 0) mod 26 = 12 = M (L - z) mod 26 = (11 - 25) mod 26 = 12 = M
2.4.1 Varian Vigenère Cipher
Beaufort Cipher adalah salah satu varian dari Vigenère Cipher dimana cara melakukan enkripsi dan dekripsi hampir sama dengan melakukan enkripsi dan dekripsi pada Vigenère Cipher. Beaufort Cipher ditemukan oleh Laksamana Sir Francis Beaufort, Royal Navy, yang juga pencipta skala Beaufort, yang merupakan instrumen ahli meteorologi digunakan untuk menunjukkan kecepatan angin. (Mollin, 2007)
(33)
Cara melakukan enkripsi dan dekripsi Beaufort Cipher akan ditunjukkan pada persamaan (8) dan (10).
) ,...,
,
(e1 x1 e2 x2 er xr
x (5)
di mana
K e e
e( 1,..., r) dan x(x1,...,xr)Z (6)
Proses enkripsi dan dekripsi pada persamaan (8) dan (10) berdasarkan persamaan (5) dan (6) yang menjelaskan K adalah kunci dan Z adalah bilangan bulat dapat dikatakan berasal dari inversi persamaan (7) dan (9). Untuk melihat hubungan kedua berikut ini diasumsikan P adalah plainteks, C adalah cipherteks dan K sebagai kunci.
Enkripsi Vigenere Cipher : C K
P (Mod n) (7)
Enkripsi Beaufort Cipher : C P
K (Mod n) (8)
Dekripsi Vigenere Cipher : P K
C (Mod n) (9)
Dekripsi Beaufort Cipher : P C
(34)
18
2.5 Penelitian yang Relevan
Berikut penelitian tentang kriptografi yang membahas algoritma Affine cipher, Vigenère cipher dan three-pass protocol :
1. Pada penelitian Mehta K M et al (2013) yang berjudul Encryption using Affine and One Time Pad (AAOTP) disimpulkan bahwa dapat mengenkripsi 256 karakter ASCII dengan memanfaatkan bilangan acak. Konsep ini dinilai aman dan susah dipecahkan.
2. Pada penelitian Shukla S et al (2014) yang berjudul Implementation of Affine substitution cipher with keyed transposition cipher for enhancing data security dapat disimpulkan bahwa pendekatan kriptografi dengan algoritma Affine Cipher membutuhkan kombinasi algoritma yang lain. Penelitian ini juga menunjukkan multienkripsi menyulitkan proses dekripsi.
3. Pada penelitian Kester (2012) yang berjudul a cryptosystem based on Vigenère cipher with varying key menyatakan bahwa implementasi kriptosistem ini sangat sulit jika kuncinya panjang dan varian fungsinya harus sulit untuk diprediksi.
4. Berdasarkan penelitian oleh Kanamori et a (2009), membuat sebuah pengembangan three-pass protocol dengan teknologi kuantum, sehingga keamanan lebih terjaga meskipun kunci didistribusikan. Penelitian ini memiliki teknologi yang dapat mendeteksi eavesdroppers. Selain itu pengembangan ini bisa diimplementasikan sesuaikan dengan teknologi yang ada saat ini.
5. Berdasarkan penelitian oleh Oktaviana B (2013) membuat sebuah kombinasi algoritma Caesar Cipher dan Vigenère Cipher pada three-pass protocol diperoleh sebuah kombinasi algoritma yang kuat tanpa melakukan pertukaran kunci.
6. Pada penelitian oleh Pramana (2013), diimplementasikan algoritma Massey - Omura ini pada konsep three-pass protocol dan diterapkan pada keamanan Email pada Mozilla thunderbird. Kesimpulan dari penelitian ini waktu eksekusinya berbanding lurus dengan besar bilangan prima dan kunci. Rata – rata waktu enkripsi lebih lama dibandingkan dengan waktu dekripsi.
(35)
BAB 3
ANALISIS DAN PERANCANGAN
3.1 Analisis Sistem
Analisis sistem adalah sebuah teknik pemecahan masalah yang menguraikan sebuah sistem menjadi bagian – bagian komponen dengan tujuan mempelajari seberapa bagus bagian –bagian komponen tersebut bekerja dan berinteraksi untuk meraih tujuan mereka. Analisa sistem ini juga merupakan suatu proses mengumpulkan dan menginterpretasikan kenyataan – kenyataan yang ada, mendiagnosa persoalan dan menggunakan keduanya untuk memperbaiki sistem (Whitten 2004).
Analisa sistem ini meliputi tiga tahapan yaitu : analisis masalah, analisis kebutuhan dan analisis proses. Analisis masalah bertujuan untuk mengidentifikasi penyebab masalah serta memahami kelayakan masalah. Analisis kebutuhan bertujuan untuk mengidentifikasi data apa dan proses apa yang dibutuhkan pada sistem yang akan dibuat. Pada tahapan analisis ini dilakukan juga untuk menjelaskan fungsi – fungsi yang ditawarkan dan mampu dikerjakan oleh sistem baik kebutuhan fungsional dan non-fungsional. Analisis proses bertujuan untuk mengetahui alur suatu sistem dan tools yang digunakan untuk merancang sebuah sistem. Pada analisa sistem juga terdapat pseudocode yang bertujuan mempermudah programmer untuk merancang sebuah sistem.
3.1.1 Analisis Masalah
Pada kriptografi terdapat enam hal pokok layanan yang harus terpenuhi yaitu : otentikasi, kenadali akses, kerahasiaan data, keutuhan data, nonrepudiation, ketersediaan. Mengirim dan menerima pesan rahasia membutuhkan elemen – elemen berikut ini (Sadikin, 2012) :
1. Plaintext
Pesan atau data dalam bentuk aslinya yang dapat dibaca dan masukan bagi algoritma enkripsi.
(36)
20
2. Secret Key
Masukan bagi algoritma enkripsi merupakan nilai yang bebas terhadap teks asli dan menentukan hasil keluaran algoritma enkripsi.
3. Ciphertext
Hasil dari proses algoritma enkripsi dan teks asli dianggap telah tersembunyi. 4. Algoritma Enkripsi
Algoritma enkripsi memiliki 2 masukan yaitu teks asli dan kunci rahasia, kedua masukan tersebut akan diproses sehingga menghasilkan teks sandi.
5. Algoritma Dekripsi
Algoritma dekripsi memiliki 2 masukan yaitu teks sandi dan kunci rahasia, keduanya akan diproses sehingga menghasilkan teks asli.
Pada proses mengirim dan menerima pesan rahasia dibutuhkan algoritma enkripsi yang bertujuan untuk menjadikan pesan asli menjadi sandi yang sulit dimengerti. Agar pesan yang dikirim dapat dimengerti oleh pihak penerima maka dibutuhkan algoritma dekripsi yang bertujuan untuk mengembalikan pesan asli. Pada penelitian ini, akan diimplementasikan kombinasi algoritma kriptografi klasik Beaufort Cipher dan Affine Cipher pada Three-pass Protocol.
Diagram Ishikawa merupakan suatu alat visual untuk mengidentifikasi, mengeksplorasi, dan secara diagram menggambarkan semua penyebab yang berhubungan dengan suatu permasalahan. Diagram ini berbentuk tulang ikan yang kepalanya menghadap ke kanan. Diagram ini menunjukkan sebuah dampak atau akibat dari permasalahan dengan berbagai penyebabnya (Whitten, 2004). Masalah penelitian ini secara umum dapat dilihat pada Gambar 3.1 yang dirancang dalam bentuk diagram Ishikawa (fishbone/cause and effect diagram).
(37)
Implementasi Kombinasi Kriptografi Klasik Pada
Three-pass Protocol User
Material
Metode
Sistem
Algoritma kriptografi klasik Tidak aman Algoritma Affine Cipher
dapat dipecahkan dengan
Brute Force
Belum adanya aplikasi desktop Yang mengombinasikan algoritmakriptografi Aplikasi kriptografi masih Tergolong tidak sederhana Kunci kriptografi Klasik
Mudah didapat Oleh penyusup Ukuran kunci kriptografi Klasik (Affine Cipher) Pendek
Saluran yang dipercaya Aman dapat disusupi oleh
penyadap User membutuhkan pengamanan
Data yang sederhana dan aman Kebutuhan user untuk Bertransaksi rahasia
Gambar 3.1 Diagram Ishikawa Masalah Penelitian
Berdasarkan Gambar 3.1, masalah utama yang ada pada segi empat paling kanan (kepala ikan), yaitu mengirim dan menerima pesan rahasia. Sedangkan segi empat yang lainnya dihubungkan oleh sebuah garis ke tulang utama (garis horizontal yang terhubung ke kepala ikan) adalah kategori masalah. Garis horizontal selanjutnya yang ditunjukkan oleh tulang – tulang kecil yang diwakili oleh garis panah yang mengarah ke tulang – tulang kategori masalah adalah sebab dari masalah yang berada pada kepala ikan.
(38)
22
3.1.2 Analisis Kebutuhan
Analisis kebutuhan terbagi atas dua bagian, yaitu kebutuhan fungsional dan kebutuhan nonfungsional. Kebutuhan fungsional mendeskripsikan aktivitas yang disediakan suatu sistem. Sedangkan kebutuhan nonfungsional mendeskripsikan fitur, karakteristik dan batasan lainnya (Whitten, 2004).
3.1.2.1 Kebutuhan Fungsional
Untuk menerapkan kombinasi algoritma Beaufort Cipher dan Affine Cipher pada Three-pass Protocol, kebutuhan fungsional yang harus dipenuhi antara lain sebagai berikut :
1. User Pertama
User pertama adalah pihak pengirim yang hanya dapat melakukan fungsi – fungsi berikut ini setelah masuk ke dalam sistem.
a. Mengacak kunci Beaufort Cipher
User melakukan pengacakan kunci algoritma Beaufort Cipher. b. Enkripsi Pesan
User melakukan enkripsi pesan menggunakan algoritma Beaufort Cipher lalu mengirimkan cipherteks pertama kepada pihak penerima.
c. Dekripsi Pesan
User melakukan dekripsi pesan menggunakan algoritma Beaufort Cipher lalu mengirimkan cipherteks ketiga kepada pihak penerima.
2. User Kedua
User kedua adalah pihak penerima yang hanya dapat melakukan fungsi – fungsi berikut ini setelah masuk ke dalam sistem.
a. Mengacak kunci Affine Cipher
(39)
b. Enkripsi Pesan
User melakukan enkripsi pesan menggunakan algoritma Affine Cipher lalu mengirimkan cipherteks cipherteks kedua kepada pihak pengirim.
c. Dekripsi Pesan
User melakukan dekripsi pesan menggunakan algoritma Affine Cipher lalu menerima pesan asli dari pihak pengirim.
3.1.2.2 Kebutuhan Nonfungsional
Kebutuhan nonfungsional meliputi karakteristik berikut ini : 1. Performa
Perangkat lunak yang akan dibangun dapat menunjukkan hasil dari fungsi kriptografi yang dilakukan oleh sistem.
2. Mudah dipelajari dan digunakan
Perangkat lunak yang akan dibangun memiliki tampilan yang user friendly dan mudah digunakan karena memiliki halaman petunjuk
3. Hemat Biaya
Perangkat lunak yang dibangun akan menngunakan teknologi open source dan bebas digunakan.
4. Dokumentasi
Perangkat lunak yang akan dibangun memiliki panduan penggunaan. 5. Manajemen Kualitas
Perangkat lunak yang akan dibangun akan memiliki kualitas yang baik yaitu proses enkripsi dan dekripsi kata sandi yang relatif cepat.
6. Kontrol
Perangkat lunak yang dibangun akan menampilkan pesan error untuk setiap input yang tidak sesuai.
(40)
24
3.1.3 Analisis Proses
Perangkat lunak yang dibangun akan menggunakan dua bahasa pemrograman, yaitu wing IDE Python 3.1.3 dan SharpDevelop 4.1. Pada analisis proses ini akan menggunakan dua metode enkripsi dan dekripsi yang di kombinasikan dalam bentuk Three-pass Protocol serta Lehmann Primality Test dan bilangan acak dari fungsi Python. Bilangan acak digunakan sebagai pengacak angka yang dijadikan parameter kunci dan dilakukan pengecekan prima dengan Lehmann Primality Test.
Algoritma Beaufort Cipher akan dijadikan algoritma pengirim pesan asli dan algoritma Affine Cipher akan dijadikan algoritma penerima pesan asli. Pengiriman pesan ini dilakukan tanpa melakukan pertukaran data (kunci) dengan metode Three-pass Protocol. SharpDevelop 4.1 adalah Bahasa pemrograman yang dijadikan sebagai sarana interface melakukan kombinasi kedua algoritma dan Python 3.1.3 merupakan Bahasa pemrograman yang melakukan perhitungan enkripsi dan dekripsi.
3.1.4 Pseudocode
Pseudocode merupakan kode yang mirip dengan instruksi kode program yang sebenarnya. Pada penelitian ini terdapat delapan pseudocode yang mewakili fungsi yang ada pada sistem.
3.1.4.1 Pseudocode Mencari File
Pada sistem yang dirancang terdapat fungsi yang berguna untuk melakukan pencarian data file teks (*.doc). Pseudocode ditunjukkan pada Gambar 3.2.
Gambar 3.2 Pseudocode Mencari File *.doc
OpenFileDialog dialog ← new OpenFileDialog();
dialog.Filter ← Document (MsWord)|*.doc; dialog.Title ← "Open file doc : "; dialog.RestoreDirectory ← true;
if(dialog.ShowDialog() ← DialogResult.OK){ dirName ← GetDirectoryName(dialog.FileName); drive ← dirName.Split(VolumeSeparatorChar)[1];
(41)
3.1.4.2 Pseudocode Membaca File
Pada sistem yang akan dirancang terdapat fungsi yang berguna untuk melakukan baca data file teks (*.doc). Pseudocode ditunjukkan pada Gambar 3.3.
Gambar 3.3 Pseudocode Membaca File *.doc
3.1.4.2 Pseudocode Kunci Beaufort Cipher
Pada sistem yang akan dirancang terdapat fungsi yang berguna untuk melakukan acak bilangan dengan RandomNumber. Pseudocode ditunjukkan pada Gambar 3.4.
Gambar 3.4 Pseudocode Kunci Beaufort Cipher
Microsoft.Office wordApp ← new Microsoft.Office; filenameO ← data;
objFalse ← false; objTrue ← true;
try{ Microsoft.Office. aDoc
← wordApp.Documents.Open(ref filenameO, ref objFalse , ref objTrue, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing,
ref objTrue, ref missing, ref missing, ref missing, r ef missing);
aDoc.ActiveWindow.Selection.WholeStory(); aDoc.ActiveWindow.Selection.Copy(); IDataObject data ← GetDataObject();
fileText ← data.GetData
catch(Exception err){ err.Message }
finally{
File berhasil dibaca; }
def key(k): ky ← ""
for x in range(len(k)):
BilRand_Key ← random.randint(10, 99) temp ← (z.index(k[x]) + BilRand_Key) % lz ky ← ky + z[temp]
(42)
26
3.1.4.3 Pseudocode Enkripsi Beaufort Cipher
Pada sistem yang akan dirancang terdapat fungsi yang berguna untuk melakukan enkripsi data dengan Beaufort Cipher. Pseudocode ditunjukkan pada Gambar 3.5.
Gambar 3.5 Pseudocode Enkripsi Beaufort Cipher
3.1.4.4 Pseudocode Algoritma Lehmann
Pada sistem yang akan dirancang terdapat fungsi yang berguna untuk melakukan acak bilangan prima dengan RandomNumber dan primality test Algoritma Lehmann. Pseudocode ditunjukkan pada Gambar 3.6.
Gambar 3.6 Pseudocode Algoritma Lehmann dan Generator Prima
def EnkBeaufort (Plainteks, kunci): hasil1 ← ""
for x in range(len(Plainteks)):
temp ← (z.index(kunci[x]) - z.index(Plainteks[x])) % lz hasil1 ← hasil1 + z[temp]
return hasil1
def Lehmann(p): trial ← 10
for i in range (0, trial):
BilRand ← random.randint(2, p - 1) temp ← (p - 1)/2
L ← pow(BilRand, temp, p) if ((L != 1) & (L - p != -1)): return False
return True
def genPrime(x):
BilRand ← random.randint(pow(10, x - 1), pow(10, x) - 1) p ← BilRand / 2 * 2 + 1
while not (Lehmann(p)):
BilRand ← random.randint(pow(10, x - 1), pow(10, x) - 1) p ← BilRand / 2 * 2 + 1
(43)
3.1.4.3 Pseudocode Enkripsi Affine Cipher
Pada sistem yang akan dirancang terdapat fungsi yang berguna untuk melakukan enkripsi data dengan Affine Cipher. Pseudocode ditunjukkan pada Gambar 3.7.
Gambar 3.7 Pseudocode Enkripsi Affine Cipher
3.1.4.3 Pseudocode Dekripsi Beaufort Cipher
Pada sistem yang akan dirancang terdapat fungsi yang berguna untuk melakukan dekripsi data dengan Beaufort Cipher. Pseudocode ditunjukkan pada Gambar 3.8.
Gambar 3.8 Pseudocode Dekripsi Beaufort Cipher
3.1.4.3 Pseudocode Dekripsi Affine Cipher
Pada sistem yang akan dirancang terdapat fungsi yang berguna untuk melakukan dekripsi data dengan Affine Cipher. Pseudocode ditunjukkan pada Gambar 3.9.
Gambar 3.9 Pseudocode Dekripsi Affine Cipher
def EnkAff(m, b, data): hasil2 ← ""
for x in range(len(data)):
temp ← (m * z.index(data[x]) + b) % lz hasil2 ← hasil2 + z[temp]
return hasil2
def DekBeaufort (data, kunci): hasil3 ← ""
for x in range(len(data)):
temp ← (z.index(kunci[x]) - z.index(data[x])) % lz hasil3 ← hasil3 + z[temp]
return hasil3
def DekBeaufort (data, kunci): hasil3 ← ""
for x in range(len(data)):
temp ← (z.index(kunci[x]) - z.index(data[x])) % lz hasil3 ← hasil3 + z[temp]
(44)
28
3.2 Perancangan Sistem
Sistem ini dirancang dengan membuat flowchart, use case, activity diagram, sequence diagram, dan mock-up.
3.2.1 Flowchart
Pada bagian ini, terdapat lima flowchart, yaitu : flowchart Beaufort Cipher, flowchart Pengacak kunci Beaufort, flowchart Affine Cipher, flowchart Pengacak kunci Affine, flowchart sistem.
3.2.1.1 Flowchart Beaufort Cipher
Flowchart untuk melakukan enkripsi dan dekripsi dengan metode ini digambarkan pada Gambar 3.10. Pada flowchart ini terdapat dua parameter masukan, yaitu pesan asli dan kunci sepanjang plainteks asli. Pada keluarannya akan menghasilkan cipherteks sepanjang pesan asli.
Gambar 3.10 Flowchart Algoritma Beaufort Cipher
Mulai
Plainteks, Kunci Beaufort
C = K – P (Mod n)
Cipherte ks
Akhir P = K – C
(Mod n)
Plaintek s
(45)
3.2.1.2 Flowchart Kunci Beaufort Cipher
Flowchart untuk melakukan pengacakan kunci digambarkan pada Gambar 3.11. Pada flowchart ini terdapat satu parameter masukan, yaitu pesan asli. Pada keluarannya akan menghasilkan kunci sepanjang pesan asli.
Gambar 3.11 Flowchart Kunci Beaufort Cipher
3.2.1.3 Flowchart Affine Cipher
Flowchart untuk melakukan enkripsi dan dekripsi dengan metode Affine Cipher digambarkan pada Gambar 3.12. Pada flowchart ini terdapat tiga parameter masukan, yaitu pesan, bilangan prima dan pergeseran. Pada keluarannya akan menghasilkan kunci berupa bilangan prima dan angka pergeseran.
Mulai
Plainteks, Bilangan
Acak
Len(Plainteks), + Bilangan Acak
Kunci Beaufort
(46)
30
Gambar 3.12 Flowchart Algoritma Affine Cipher
3.2.1.4 Flowchart Kunci Affine Cipher
Flowchart untuk melakukan pengacakan kunci digambarkan pada Gambar 3.13. Pada flowchart ini terdapat satu parameter masukan, yaitu bilangan acak dengan batas awal dan akhir. Pada keluarannya akan menghasilkan kunci berupa bilangan acak bersifta prima dan bilangan acak.
Mulai
Plainteks, Kunci (Bil Prima, Geser)
C = m.p + b (Mod n)
Cipherte ks
Akhir P = m-1(p-b)
(Mod n)
Plaintek s
(47)
A B
Gambar 3.13 Flowchart
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
(48)
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
(49)
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
(50)
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
(51)
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
*
*
*
(52)
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
(53)
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
(54)
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.
(55)
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.
(56)
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
(57)
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.
(58)
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.
(59)
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.
(60)
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.
(1)
A-11
using (Process runProses =Process.Start(p)) {
StreamReader s = runProses.StandardOutput; string keluar = s.ReadToEnd();
if (keluar != "")
MessageBox.Show("Berhasil", "Info", MessageBo xButtons.OK);
textBoxEnkAff.Text = keluar.ToString(); } } catch { throw; } }
12.Fungsi Pergesesan Affine Cipher
void TextBoxEnkBeauTextChanged(object sender, EventArgs e) {
}
void ButtonDekAffClick(object sender, EventArgs e) {
string data2 = textBoxEnkBeau.Text.ToString(); string data1 = textBoxDekBeau.Text.ToString(); int b1 = Convert.ToInt32(textBoxBilPrima.Text); int g1 = Convert.ToInt32(textBoxGeser.Text);
ProcessStartInfo p = new ProcessStartInfo(); p.RedirectStandardOutput = true;
p.FileName = "c:\\python31\\python.exe"; p.RedirectStandardOutput = true;
p.UseShellExecute = false;
p.Arguments = "d:\\kode\\program\\pintu.py
" + "DekripAffine " + b1 + " " + g1 + " " + "\"" + data1 + "\"" + " " + "\"" + data2 + "\"";
try {
using (Process runProses =Process.Start(p)) {
StreamReader s = runProses.StandardOutput; string keluar = s.ReadToEnd();
string k = keluar; if (k != "")
MessageBox.Show("Berhasil", "Info", MessageBo xButtons.OK);
(2)
A-12
textBoxDekAff.Text = k.ToString(); } } catch { throw; } }
13.Fungsi Pergesesan Affine Cipher
void ButtonKarakterClick(object sender, EventArgs e) {
string kalimat = textBoxBuka.Text.ToString();
ProcessStartInfo p = new ProcessStartInfo(); p.RedirectStandardOutput = true;
p.FileName = "c:\\python31\\python.exe"; p.RedirectStandardOutput = true;
p.UseShellExecute = false;
p.Arguments = "d:\\kode\\program\\pintu.py " + "HtgKarakter 0 0 " + "\"" + kalimat + "\"" + " y";
try {
using (Process runProses =Process.Start(p)) {
StreamReader s = runProses.StandardOutput; string keluar = s.ReadToEnd();
string k = keluar;
textBoxKarakter.Text = k.ToString(); } } catch { throw; } }
14.Fungsi Reset
void ButtonUlangClick(object sender, EventArgs e) {
textBoxCari.Text = ""; textBoxBuka.Text = "";
(3)
A-13
textBoxKunciBeau.Text = ""; textBoxEnkBeau.Text = ""; textBoxBilPrima.Text = ""; textBoxGeser.Text = ""; textBoxEnkAff.Text = ""; textBoxDekBeau.Text = ""; textBoxDekAff.Text = ""; textBoxKarakter.Text = ""; }
} }
(4)
B-1
Full Name
: Azizah Mei Sari Sebayang
Sex
: Female
Place, Date of Birth
: Medan, May, 5
th1993
Nationality
: Indonesia
Height, Weight
: 150cm, 49 kg
Health
: Perfect
Religion
: Moslem
Address
: Jl. Pinus VII No. 6 Perumnas Simalingkar
Kec. Medan Tuntungan
Mobile-phone
: 08216082 8964
: azizahmeisari@gmail.com
Educational Background
1997
–
1998
: Kindergarten Siti Hajar, Medan
–
North Sumatera
1998 - 2004
: Elementary School at IFDS Siti Hajar, Medan
–
North
Sumatera
2004 - 2007
: Junior High School at IFDS Siti Hajar, Medan
–
North
Sumatera
2007 - 2010
: Vocational High School at Telkom Sandhy Putra
Major in Networking, Medan
–
North Sumatera
2010 - Present
: Computing Science, Computing Science and
Information Technology Faculty, University of
North Sumatera
IT Abilities
Bahasa
: Bahasa Indonesia, Inggris
Bahasa Pemrograman
: Python, PHP, C# .NET, C++
Database
: MySQL
(5)
B-2
Language
Bahasa
: Native Language
English
: Medium
Working and organizational experience
2005 - 2006 : Head of Department of Education OSIS Junior High School
IFDS Siti Hajar
2007 - 2008 : Secretary of Department BKM ROHIS Telkom Shandy Putra
2008 - 2009 : Deputy secretary of OSIS Telkom Shandy Putra
2010 - 2011 : Staff on division PW (Pengembangan Wawasan) BKM Al
Khuwarizmi
2010 - 2011 : Private Teacher on LCC (Lily Course Center)
2011 - 2012 : Staff on division PP (Pemberdaya Perempuan) PEMA FMIPA USU
2011 - 2011 : Laboratory Assistant on Information System IKLC Fasilkom-TI USU
2011 - 2012 : Laboratory Assistant on Computing Science Introduction
IKLC Fasilkom-TI USU
2010
–
2011 : Staff on division Jurnalism IMLKOM Fasilkom-TI USU
2012
–
2012 : Secretary of LSO IT (Lembaga Semi Otonom Islamic Teaching)
UKMI Al Khuwarizmi Fasilkom-TI USU
2013
–
2014 : General Secretary of IMLKOM Fasilkom-TI USU
2013
–
2014 : Secretary of PSDM SGC USU
2013
–
Now : Member Of RTIK Sumut (USU)
Achievements
Finalist
from Medan “Toyota Eco Youth” Organizers by Toyota and
Government (Environment Minister), Jakarta 2007
CCNA I Certified for Networking Academic from CISCO, 2009
Third winner on Islamic Scientific Papers with tittle "
Mekah (Ka’bah) adalah
Golden Ration Point
Dunia" Organizers by MTQ and UKMI Ad Dakwah USU,
Medan, 2010
(6)