IMPLEMENTASI ALGORITMA ADFGVX
CIPHER
DAN
KNAPSACK
DALAM PENGAMANAN DATA TEKS
JUL ILMI HARAHAP
121401048
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
i
IMPLEMENTASI ALGORITMA ADFGVX CIPHER DAN
KNAPSACK DALAM PENGAMANAN DATA TEKS
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah
Sarjana Ilmu Komputer
JUL ILMI HARAHAP
121401048
PROGRAM STUDI S-1 ILMU KOMPUTER
FAKULTAS ILMI KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
PERSETUJUAN
Judul : IMPLEMENTASI ALGORITMA ADFGVX CIPHER
DAN KNAPSACK DALAM PENGAMAN DATA
TEKS
Kategori : KRIPTOGRAFI
Nama : JUL ILMI HARAHAP
Nomor Induk Mahasiswa : 121401048
Program Studi : S-1 ILMU KOMPUTER
Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
Komisi Pembimbing :
Pembimbing 2 Pembimbing 1
Dian Rachmawati S.Si, M.Kom Drs. Agus Salim Harahap, M.Si NIP. 198307232009122004 NIP. 195408281981031004
Diketahui/disetujui oleh
Program Studi S1 Ilmu Komputer Ketua,
iii
PERNYATAAN
IMPLEMENTASI ALGORITMA ADFGVX CIPHER DAN KNAPSACK DALAM
PENGAMANAN DATA TEKS
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan
dan ringkasan yang masing-masing telah disebutkan sumbernya.
Medan, 25 Oktober 2016
PENGHARGAAN
Segala puji dan syukur penulis panjatkan ke hadirat Allah SWT yang telah
memberikan penulis rahmat dan hidayah-Nya sehingga penulis dapat menyelesaikan
skripsi ini tepat waktu dan sesuai dengan peraturan yang ada di Fakultas Ilmu
Kompuer dan Teknologi Informasi. Shalawat beriring salam penulis hadiahkan ke ruh junjungan kita Nabi Besar Muhammad SAW yang syafa’atnya kita harapkan di hari akhir kelak.
Dalam penyusunan skripsi ini penulis mendapat banyak bantuan, dukungan
dan bimbingan dari berbagai pihak. Pada kesempatan ini penulis ingin megucapkan
terimakasih banyak dan penghargaan kepada:
1. Bapak Prof. Dr. Runtung Sitepu, SH, M.Hum selaku Rektor Universitas
5. Bapak Drs. Agus Salim Harahap, M.Si selaku Dosen Pembimbing I yang telah
meluangkan waktu, tenaga, dan pikiran dalam membimbing, mengarahkan,
menasehati, memotivasi, dan menyemangati penulis agar dapat menyelesaikan
skripsi ini.
6. Ibu Dian Rachmawati S.Si, M.Kom, selaku Dosen Pembimbing II yang telah
meluangkan waktu, tenaga, dan pikiran dalam membimbing, mengarahkan,
menasehati, memotivasi, dan menyemangati penulis agar dapat menyelesaikan
skripsi ini.
7. Bapak Ade Candra S.T, M.Kom, selaku dosen Pembanding I yang telah
memberikan kritik dan saran terhadap skripsi penulis.
8. Bapak Handrizal S.Si, M.Comp, Sc selaku dosen Pembanding II yang telah
v
9. Seluruh staf pengajar dan pegawai Fakultas Ilmu Komputer dan Teknologi
Informasi.
10. Teristimewa orang tua yang penulis sayangi yang tidak henti-hentinya
memberikan doa, motivasi, dan dukungan yang selalu menjadi sumber
semangat penulis.
11. Abang, kakak, dan adik yang selalu memberikan semangat kepada penulis.
12. Rahma isnaini Masya S.Kom yang telah bersedia membagi ilmunya kepada
penulis.
13. Sahabat-sahabat luar biasa Ananda Dwi Putri S.Kom, Rahma Isnaini Masya
S.Kom, Rodiyah Aini Manurung, Tristania Marcellina Siagian S.Kom, Nurul
Utami Marza, yang selalu menemani dan memberi motivasi kepada penulis.
14. Teman – teman seperjuangan mahasiswa S-1 Ilmu Komputer stambuk 2012
yang selalu memberi dukungan.
15. Semua pihak yang terlibat langsung ataupun tidak langsung yang tidak dapat
penulis ucapkan satu per satu yang telah membantu menyelesaikan skripsi ini.
Penulis menyadari dalam skripsi ini masih banyak kekurangan baik dalam penulisan
maupun tata bahasa. Oleh karena itu penulis bersedia menerima kritik dan saran yang
membangun dari pembaca dalam upaya perbaikan skripsi ini. Semoga skripsi ini dapat
bermanfaat bagi penulis dan pembaca, khususnya rekan-rekan mahasiswa lainnya
yang mengikuti perkuliahan di Universitas Sumatera Utara.
Medan, 25 Oktober 2016
Penulis
ABSTRAK
Keamanan data merupakan salah satu hal yang sangat penting bagi manusia. Diantara data yang berbentuk digital lainnya, data teks sangat rentan terhadap tindakan penyalah gunaan seperti diduplikasi, dimodifikasi, bahkan dipalsukan. Terdapat beberapa teknik untuk mengamankan data, salah satunya adalah kriptografi. Kriptografi adalah sebuah cabang ilmu dalam ilmu komputer yang berfungsi untuk mengamankan data. Berdasarkan kuncinya, kriptografi dibagi menjadi dua tipe yaitu algoritma simetris dan algoritma asimetris. ADFGVX Cipher merupakan contoh dari algoritma simetris. Pada penerapannya algoritma ADFGVX Cipher mempunyai kelemahan, yaitu algoritma ini hanya dapat melakukan enkripsi terhadap alphabet
numeric saja. Untuk meningkatkan keamanan dari algoritma ADFGVX Cipher maka
algoritma ini dikombinasikan dengan algoritma knapsack. Algoritma knapsack merupakan salah satu contoh kriptografi asimetris. Dengan mengkombinasikan kedua algoritma ini, diharapkan dapat menambah keamanan data dan menutupi kelemahan dari algoritma ADFGVX Cipher. Sistem ini dibangun dengan menggunakan bahasa pemrograman C#. Hasil penelitian menunjukkan bahwa pengamanan data menggunakan Algoritma ADFGVX Cipher dan knapsack dapat mengembalikan data awal secara utuh. Sementara itu, waktu proses enkripsi menunjukkan bahwa ukuran plainteks berbanding lurus dengan waktu. Semakin besar ukuran plainteks tersebut maka semakin besar waktu proses enkripsinya, dan waktu proses dekripsi lebih cepat dibanding waktu proses enkripsi.
Vii
IMPLEMENTATION OF ADFGVX CIPHER ALGORITHM AND
KNAPSACK ALGORITHM IN DATA TEXT SECURITY
ABSTRACT
Security data is one of the most important thing for human being. Amongst of other digital data, data text is the most susceptible of being misused, such as duplicating, modification, or even being falsified. There are a lot of techniques to secure data, such as cryptography. Cryptography is branch of computer science which is used for securing data. Based on the key, cryptography is torn into two types, named symmetric algorithm and asymmetric algorithm. ADFGVX cipher is the example of symmetric algorithm. In the implementation, ADFGVX cipher has weakness, named this algorithm can only encrypt alphabet numeric. To increase the security of ADFGVX cipher algorithm, this algorithm would be combined with knapsack algorithm. Knapsack algorithm is one of the asymmetric cryptography. By combining both of these algorithms is expected could increase the security ability of the data and completing ADFGVX cipher’s weakness. This system is built by C# programming language. Testing result shows that security data using ADFGVX Cipher Algorithm and Knapsack Algorithm could return the whole data completely. Meanwhile,time of encryption process show that the file size is directly proportional to time process. The bigger plaintext size, the longer encryption time process, and decryption time process is faster than encryption time process.
DAFTAR ISI
1.1 Latar Belakang Masalah 1
1.2 Rumusan Masalah 2
1.3 Ruang Lingkup Masalah 3
1.4 Tujuan Penelitian 3
1.5 Manfaat Penelitian 3
1.6 Metodologi Penelitian 3
1.7 Sistematika Penulisan 5
Bab 2 Tinjauan Pustaka
2.1 Kriptografi 6
2.1.1 Tujuan Kriptografi 6
2.1.2 Jenis-jenis Algoritma Kriptografi 7
2.2 ADFGVX Cipher 8
2.2.1 Enkripsi ADFGVX Cipher 9
2.2.2 Dekripsi ADFGVX Cipher 10
2.3 Algoritma Knapsack 12
2.3.1 knapsack problem 12
2.3.2 Enkripsi superincreasing knapsack 13 2.3.3 Dekripsi superincreasing knapsack 15
Bab 3 Analisis dan Perancangan
3.1 Analisis Sistem 17
3.1.1 Analisis Masalah 17
3.1.2 Analisis Kebutuhan 18
3.1.2.1 Kebutuhan Fungsional 19
3.1.2.2 Kebutuhan Nonfungsional 19
3.1.3 Analisis Proses 20
3.2 Perancangan Sistem 20
3.2.1 Use Case Diagram 20
3.2.2 Activity Diagram 24
ix
3.2.4 Flowchart 27
3.2.4.1 Flowchart Enkripsi dan Dekripsi Sistem 27
3.2.4.2 Flowchart ADFGVX Cipher 29
3.2.4.3 Flowchart Knapsack 31
3.3 Perancangan Antarmuka 33
3.3.1 Perancangan Halaman Awal 34
3.3.2 Rancangan Halaman Proses Enkripsi File dan 34 Enkripsi Kunci
3.3.3 Rancangan Halaman Proses Dekripsi Kunci dan 37 Dekripsi File
3.3.4 Rancangan Halaman About 39
3.3.5 Rancangan Halaman Help 40
Bab 4 Implementasi dan Pengujian
4.1 Implementasi 41
4.1.1 Halaman Home 41
4.1.2 Halaman Enkripsi 42
4.1.3 Halaman Dekripsi 43
4.1.4 Halaman About 43
4.1.5 Halaman Help 44
4.2 Pengujian 44
4.2.1 Proses Pengujian Enkripsi Pesan 44
4.2.2 Proses Pengacakan Kunci 49
4.2.3 Enkripsi Kunci (Plainkey) 50
4.2.4 Dekripsi Kunci 52
4.2.5 Proses Dekripsi Cipherteks 56
4.2.6 Pengujian Algoritma terhadap Waktu 58
DAFTAR TABEL
Hal.
TABEL 2.1. Tabel ADFGVX Cipher ... 9
TABEL 2.2 Tabel Kunci Enkripsi ADFGVX Cipher... 10
TABEL 2.3. Perubahan Posisi Kunci ADFGVX Cipher ... 10
TABEL 2.4 Tabel Kunci Dekripsi ADFGVX Cipher ... 11
TABEL 2.5 Tabel Kunci Dekripsi ADFGVX Cipher sesuai Urutan ... 11
TABEL 2.6. Tabel ADFGVX Cipher ... 12
TABEL 2.7. Perhitungan Inversi n modulo m ... 15
TABEL 3.1. Deskripsi use-case enkripsi plainteks ... 22
TABEL 3.2. Deskripsi use-case enkripsi kunci ... 22
TABEL 3.3. Deskripsi use-case Dekripsi kunci ... 23
TABEL 3.4 Deskripsi use-case Dekripsi cipherteks ... 23
TABEL 3.5. keterangan Rancangan Halaman Utama ... 24
TABEL 3.6. Keterangan Rancangan Halaman Enkripsi... 34
TABEL 3.7. Keterangan Rancangan Halaman Dekripsi ... 36
TABEL 3.8. Keterangan Rancangan Halaman About... 39
TABEL 3.9. Rancangan Halaman Help ... 40
TABEL 4.1. Tabel ADFGVX Cipher ... ... 46
TABEL 4.2. Tabel Kunci Enkripsi ADFGVX Cipher... 47
TABEL 4.3. Perubahan Posisi Kunci ADFGVX Cipher ... 47
TABEL 4.4. Biner Kunci ... 50
TABEL 4.5. Pencarian Nilai n-1 ... 52
TABEL 4.6. Solusi Superincrasing Knapsack ... 53
TABEL 4.7. Perubahan Biner Ke Char... 55
TABEL 4.8. Tabel Kunci Dekripsi ADFGVX Cipher ... 56
TABEL 4.9. Tabel Kunci Dekripsi ADFGVX Cipher sesuai Urutan ... 56
TABEL 4.10. Tabel ADFGVX Cipher ... 57
TABEL 4.11. Waktu Proses Enkripsi Algoritma ADFGVX Cipher ... 59
xi
DAFTAR GAMBAR
Hal.
GAMBAR 2.1. Skema Proses Enkripsi dan Dekripsi ... 6
GAMBAR 2.2. Skema Algoritma Simetris (Hayanti, Disa 2013) ... 7
GAMBAR 2.3. Skema Algorima Asimetris ... 8
GAMBAR 3.1. Diagram Ishikawa Sistem ... 18
GAMBAR 3.2. Use Case Diagram ... 21
GAMBAR 3.3. Activity Diagram Enkripsi ... 25
GAMBAR 3.4. Activity Diagram Dekripsi ... 26
GAMBAR 3.5. Sequence Diagram ... 27
GAMBAR 3.6. Proses Enkripsi Sistem ... 28
GAMBAR 3.7. Proses Dekripsi Sistem ... 28
GAMBAR 3.8. Flowchart Enkripsi Algoritma ADFGVX Cipher ... 29
GAMBAR 3.9. Flowchart Dekripsi Algoritma ADFGVC Cipher ... 30
GAMBAR 3.10. Flowchart Enkripsi Algoritma Knapsack ... 31
GAMBAR 3.11. Flowchart Dekripsi Algoritma Knapsack ... 32
GAMBAR 3.12. Flowchart Pembangkit Kunci Algoritma Knapsack ... 33
GAMBAR 3.13. Rancangan Halaman Utama ... 34
GAMBAR 3.14. Rancangan Halaman Enkripsi ... 34
GAMBAR 3.15. Rancangan Halaman Dekripsi ... 37
GAMBAR 3.16. Rancangan Halaman About ... 39
GAMBAR 3.17. Rancangan Halaman Help ... 40
GAMBAR 4.1. Tampilan Halaman Home ... 42
GAMBAR 4.2. Halaman Enkripsi ... 42
GAMBAR 4.9. Proses Pengacakan Kunci ... 50
GAMBAR 4.10. Proses Enkripsi Kunci ... 51
GAMBAR 4.11. proses pencarian Nilai n-1 ... 53
GAMBAR 4.12. Proses Dekripsi Cipherkey ... 55
GAMBAR 4.13. Proses Dekripsi Cipherteks ... 58
xiii
DAFTAR LAMPIRAN
Hal.
A. Listing Program ... A-1