IMPLEMENTASI ALGORITMA ONE TIME PAD PADA DATA TEKS DAN KNAPSACK PADA KUNCI SKRIPSI GUSTAF PRAMESWARA 081401014 PROGRAM STUDI S1 ILMU KOMPUTER DEPARTEMEN ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA MEDAN 2012
IMPLEMENTASI ALGORITMA ONE TIME PAD PADA DATA TEKS DAN KNAPSACK PADA KUNCI SKRIPSI Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Komputer GUSTAF PRAMESWARA 081401014 PROGRAM STUDI S1 ILMU KOMPUTER DEPARTEMEN ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA MEDAN 2012
PERSETUJUAN Judul : IMPLEMENTASI ALGORITMA ONE TIME PAD PADA DATA TEKS DAN KNAPSACK PADA KUNCI Kategori : SKRIPSI Nama : GUSTAF PRAMESWARA Nomor Induk Mahasiswa : 081401014 Program Studi : SARJANA (S1) ILMU KOMPUTER Departemen : ILMU KOMPUTER Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI (FASILKOM-TI) UNIVERSITAS SUMATERA UTARA Diluluskan di Medan, Desember 2012 Komisi Pembimbing : Pembimbing 2 Pembimbing 1 Dian Rachmawati,S.Si,M.Kom M. Andri Budiman S.T., M.Comp.Sc., M.E.M. NIP. 198307232009122004 NIP. 197401272002122001 Diketahui/Disetujui oleh Program Studi S1 Ilmu Komputer Ketua, Dr. Poltak Sihombing, M.Kom NIP. 196203171991021001
PERNYATAAN IMPLEMENTASI ALGORITMA ONE TIME PAD PADA DATA TEKS DAN KNAPSACK PADA KUNCI SKRIPSI Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya. Medan, Desember 2012 GUSTAF PRAMESWARA 081401014
PENGHARGAAN Puji dan syukur penulis ucapkan kehadirat Allah SWT atas segala rahmat dan karunia- Nya, sehingga penulis dapat menyelesaikan skripsi yang berjudul Implementasi Algoritma One Time Pad Pada Data Teks Dan Knapsack Pada Kunci. Skripsi ini merupakan salah satu syarat yang ditetapkan untuk memperoleh gelar sarjana komputer di Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara, shalawat beriring salam penulis persembahkan kepada Nabi Besar Muhammad SAW. Pada kesempatan kali ini penulis ingin mengucapkan terima kasih kepada semua pihak yang telah membantu penulis selama pengerjaan skripsi ini, antara lain kepada : 1. Bapak Dr. Poltak Sihombing, M.Kom selaku Ketua Departemen Ilmu Komputer, Fakultas Ilmu komputer dan Teknologi Informasi, Universitas Sumatera Utara dan sebagai dosen penguji I. 2. Ibu Maya Silvi Lydia, BSc,.MSc selaku sekretaris Departemen Ilmu Komputer Fakultas Ilmu komputer dan Teknologi Informasi, Universitas Sumatera Utara. 3. Bapak M. Andri Budiman, S.T.M.Comp.Sc,MEM dan ibu Dian Rachmawati, S.Si,M.Kom selaku dosen pembimbing. 4. Profesor Dr. Iryanto,M.Si dan bapak Syahriol Sitorus, S.Si,MIT selaku dosen pembanding. 5. Dekan dan Pembantu Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara. 6. Seluruh dosen Departemen Ilmu Komputer, Fakultas Ilmu komputer dan Teknologi Informasi, Universitas Sumatera Utara yang telah membimbing dan mencurahkan ilmunya selama masa perkuliahan. 7. Seluruh pegawai di lingkungan Program Studi S1 Ilmu Komputer Fasilkom-TI USU. 8. Ketiga orang tua tercinta, Ayahanda Syafri.B, Ibunda Helmi Novita (alm) dan ibunda Maizar atas kasih sayang, do a, dukungan dan motivasi yang tak ternilai harganya.
9. Abangda Ahdi Seftananda, adinda Nikmah Helfani dan adinda Dhanny Falepi yang selalu memberi semangat dan do anya. 10. Keluarga besar S1 Ilmu Komputer, khususnya angkatan 2008 yang telah banyak memberi dukungan, masukan, dan kerjasama yang baik. 11. Guru-guru dari SDN 58 Pucuk Jambi, SDN 01 Sijunjung, MTsN Sijunjung dan SMAN 2 Sijunjung untuk ilmu yang telah diberikan. 12. Teman-teman terbaik, Ficky Vernades Isman, Zikri Azhari, Rozi Afrilino, Dodi Dermawan, Salmi Hengki, Fadhli Friandes, Ronal, Nanda Ferdiansyah, Febrian, Siska Ardila, Dinnya Darosha Putri, RirinRahmala, dan Ayu Ambarwati untuk semua semangat dan kebersamaan yang kita bagi bersama. 13. Saria Mahdi Ginting, Tengku Surya Pramana, Irfan Antoni Siregar, Eko Verdianto, Setyo M. Syamsudin Noor, Dira Fahrendy, Mardiansyah Matondang, Andika Diapari, Nurul Fadhilla, Parkir Rangers serta teman-teman dilingkungan kampus yang tidak bisa disebutkan satu-persatu. 14. Keluarga besar Ikatan Mahasiswa Imam Bonjol Universitas Sumatera Utara (IMIB USU), untuk pengalaman organisasi dan proses pembelajaran serta pembentukan pribadi yang lebih matang. 15. Guru dan teman-teman dalam perguruan Pandawa dan Pangian. 16. Semua pihak yang terlibat langsung ataupun tidak langsung dalam membantu penyelesaian skripsi ini dan tidak dapat penulis ucapkan satu persatu. Tak ada gading yang tidak retak, demikian juga halnya dengan skripsi ini. Kritik dan saran yang membangun sangat penulis harapkan. Semoga skripsi ini bisa memberikan manfaat bagi pembaca penulis sendiri, amien. Medan, Desember 2012 Penulis
ABSTRAK Keamanan suatu data rahasia sangat penting untuk dijaga. Apalagi dengan semakin berkembangnya teknologi. Kriptografi merupakan cabang ilmu yang berperan dalam keamanan dan kerahasiaan suatu data. Salah satu metoda yang digunakan dalam kriptografi adalah hybrid enkripsi. Yaitu sistem pengamanan data dengan menggabungkan penggunaan algoritma simetris dengan algoritma asimetris. Skripsi ini bertujuan untuk menambah pengetahuan dan referensi tentang bagaimana cara kerja algoritma One Time Pad dalam mengamankan data teks. Dan juga bagaimana cara kerja algoritma Knapsack dalam mengamankan kunci yang dipergunakan dari algoritma One Time Pad tadi. Pembahasan ini akan menghasilkan sebuah aplikasi yang dapat digunakan untuk mengenkripsi data teks menggunakan algoritma simetris sekaligus mengamankan kunci yang digunakan dengan mengekripsinya lagi menggunakan algoritma asimetris. Kata Kunci : Kriptografi, algoritma, One Time Pad, Knapsack,
IMPLEMENTATION OF ONE TIME PAD ALGORITHM ON THREE PASS PROTOCOL ABSTRACT A data security is very important to be kept secret. Cryptography is a branch of science that contribute to security and confidentiality of the data. One of the methods used in cryptography is a hybrid encryption. That system of data security by combining the use of symmetric algorithms the key asymmetric algorithms. This thesis aims to increase knowledge and references on how algorithms work in securing a One Time Pad text data. And also how to work the Knapsack algorithm used in securing key algorithm of One Time Pad earlier. This discussion will result in an application that can be used to encrypt text data using symmetric algorithms are used at the same time securing key to encrypt it again using an asymmetric algorithm. Keywords: Cryptography, algorithms, One Time Pad, Knapsack,
DAFTAR ISI Halaman Persetujuan Pernyataan Penghargaan Abstrak Abstract Daftar Isi Daftar Gambar Daftar Tabel ii iii iv vi vii viii x xi Bab 1 Pendahuluan 1 1.1. Latar Belakang 1 1.2. Rumusan Masalah 2 1.3. Batasan Masalah 3 1.4. Tujuan Penelitian 3 1.5. Manfaat Penelitian 3 1.6. Metode Penelitian 4 1.7. Sistematika Penulisan 4 Bab 2 Landasan Teori 6 2.1. Kriptografi 6 2.1.1 Definisi Kriptografi 6 2.1.2 Komponen Kriptografi 8 2.1.3 Tujuan Kriptografi 9 2.1.4 Jenis Kriptografi 10 2.2. Algoritma One Time Pad 12 2.3. Algoritma Knapsack 13 Bab 3 Analisis dan Perancangan Sistem 19 3.1. Analisis Sistem 19
3.1.1 Analisis Masalah 19 3.1.2 Analisis Persyaratan 19 3.1.2.1 Analisis Persyaratan Fungsional 20 3.1.2.2 Analisis Persyaratan Non-Fungsional 20 3.1.2.3 Pemodelan Persyaratan dengan Use Case 21 3.1.3 Analisis Proses Sistem 28 3.1.4 Class Diagram 31 3.1.5 Pseudocode dan Flowchart 32 3.1.5.1 Pseudocode Proses Enkripsi 32 3.1.5.2 Pseudocode Proses Pembangkitan Kunci 32 3.1.5.3 Pseudocode Proses Dekripsi 33 3.1.5.4 Flowchart Proses Algoritma One Time Pad 34 3.1.5.5 Flowchart Proses Algoritma Knapsack 36 3.1.6 Perancangan Antar Muka 37 3.1.6.1 Perancangan Tab Proses Enkripsi 38 3.1.6.2 Perancangan Tab Proses Dekripsi 39 3.1.6.3 Perancangan Form Help 41 3.1.6.4 Perancangan Form About 42 3.2. Tahapan Algoritma One Time Pad dan Knapsack 43 3.2.1 Proses Enkripsi 45 3.2.2 Proses Dekripsi 47 Bab 4 Perancangan dan Implementasi 49 4.1. Implementasi Sistem 49 4.1.1. Tampilan Antarmuka Sistem 49 4.1.1.1. Tampilan FormMain 49 4.1.1.2. Tampilan FormAbout 51 4.1.1.3. Tampilan FormHelp 51 4.1.2. Implementasi Sistem 52 4.1.3. Pengujian Sistem 59 4.1.3.1. Pengujian Enkripsi 59 4.1.3.2. Pengujian Dekripsi 60 Bab 5 Penutup 66 5.1. Kesimpulan 63 5.2. Saran 64 Daftar Pustaka 65 Lampiran A Listing Program A-1
DAFTAR GAMBAR No. Gambar 2.1 2.2 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 3.15 3.16 3.17 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13 4.14 4.15 4.16 4.17 4.18 4.19 4.20 4.21 4.22 4.23 4.24 Judul Kriptografi Simetris Kriptografi kunci Publik Use Case Diagram Sistem Activity Diagram Enkripsi Plainteks Activity Diagram Enkripsi Plainkey Activity Diagram dekripsi Cipherkey Activity Diagram Dekripsi Cipherteks Activity Diagram Pembangkitan Kunci Sequence Diagram Enkripsi Sequence Diagram Dekripsi Sequence Diagram Generate Key Flowchart Proses Enkripsi One Time Pad Flowchart Proses Dekripsi One Time Pad Flowchart Proses Enkripsi Knapsack Flowchart Proses Dekripsi Knapsack Rancangan Tab Enkripsi Rancangan Tab Dekripsi Rancangan Form Help Rancangan Form About Tampilan FormMain tab Encrypt Tampilan FormMain tab Decrypt Tampilan FormAbout Tampilan FormHelp Tampilan Setelah Input File Selesai Pop-up Windows Pilih File Pesan Masukan Plainteks Tampilan Generate Key Tampilan Pop-up Windows Pilih File Kunci Publik Tampilan Pesan Masukkan Public Key Tampilan Hasil Enkripsi Informasi Hasil Enkripsi Informasi Hasil Penyimpanan Cipher teks Informasi Hasil Penyimpanan Cipher keys Informasi Hasil Penyimpanan Publik Keys Informasi Hasil Penyimpanan Private Keys Tampilan Hasil Dekripsi Informasi Hasil Penyimpanan Plainteks sebagai *.txt Informasi Hasil Penyimpanan Plainteks sebagai *.doc Hasil Pengujian Enkripsi Dengan Jumlah Karakter 16253 Hasil Pengujian Enkripsi Dengan Jumlah Karakter 32506 Hasil Pengujian Enkripsi Dengan Jumlah Karakter 48759 Hasil Pengujian dekripsi Dengan Jumlah Karakter 16253 Hasil Pengujian dekripsi Dengan Jumlah Karakter 32506 Halaman 10 11 22 23 24 26 27 28 29 30 30 35 36 36 37 38 40 42 43 47 47 48 49 49 50 50 51 52 52 53 53 54 54 54 54 55 55 56 56 56 57 57 57
4.25 Hasil Pengujian dekripsi Dengan Jumlah Karakter 48759 58 DAFTAR TABEL No. Tabel 2.1 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 4.1 4.2 4.3 Judul Tabel N invers Spesifikasi Use Case Enkripsi Plainteks (One Time Pad) Spesifikasi Use Case Enkripsi Plainkey (Knapsack) Spesifikasi Use Case Dekripsi Cipherkey (Knapsack) Spesifikasi Use Case Dekripsi Cipherteks (One Time Pad) Spesifikasi Use Case Pembangkitan Kunci Kelas Dan Antributnya Komponen Tab Enkripsi Komponen Tab Dekripsi Komponen Form Help Komponen Form About Pengujian Proses Enkripsi Dengan Jumlah Karakter Berbeda Pengujian Proses Dekripsi Dengan Jumlah Karakter Berbeda Perbandingan Kecepatan Proses Enkripsi dan Dekripsi Halaman 18 22 24 25 26 27 31 38 40 42 43 57 58 58