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
INFORMASI
DAN
TEKNOLOGI
(FASILKOM-TI)
UNIVERSITAS
SUMATERA UTARA
Diluluskan di Medan,
Komisi Pembimbing
Desember 2012
:
Pembimbing 2
Pembimbing 1
Dian Rachmawati,S.Si,M.Kom NIP. 198307232009122004
M. Andri Budiman S.T., M.Comp.Sc., M.E.M. 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 karuniaNya, 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
Keywords: Cryptography, algorithms, One Time Pad, Knapsack,
algorithm.
DAFTAR ISI
Halaman
Persetujuan
ii
Pernyataan
iii
Penghargaan
iv
Abstrak
vi
Abstract
vii
Daftar Isi
viii
Daftar Gambar
x
Daftar Tabel
xi
Bab 1
Pendahuluan
1
1.1. 1.2. 1.3. 1.4. 1.5. 1.6. 1.7.
1 2 3 3 3 4 4
Bab 2
Bab 3
Latar Belakang Rumusan Masalah Batasan Masalah Tujuan Penelitian Manfaat Penelitian Metode Penelitian Sistematika Penulisan
Landasan Teori
6
2.1. Kriptografi 2.1.1 Definisi Kriptografi 2.1.2 Komponen Kriptografi 2.1.3 Tujuan Kriptografi 2.1.4 Jenis Kriptografi 2.2. Algoritma One Time Pad 2.3. Algoritma Knapsack
6 6 8 9 10 12 13
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
Bab 4
3.2. Tahapan Algoritma One Time Pad dan Knapsack 3.2.1 Proses Enkripsi 3.2.2 Proses Dekripsi Perancangan dan Implementasi
43 45 47 49
Bab 5
4.1. Implementasi Sistem 4.1.1. Tampilan Antarmuka Sistem 4.1.1.1. Tampilan FormMain 4.1.1.2. Tampilan FormAbout 4.1.1.3. Tampilan FormHelp 4.1.2. Implementasi Sistem 4.1.3. Pengujian Sistem 4.1.3.1. Pengujian Enkripsi 4.1.3.2. Pengujian Dekripsi Penutup
49 49 49 51 51 52 59 59 60 66
5.1. Kesimpulan 5.2. Saran
63 64
Daftar Pustaka Lampiran A
Listing Program
65 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 DAFTAR TABEL
No.
Judul Tabel
58
Halaman
Tabel 2.1
N invers
18
3.1
Spesifikasi Use Case Enkripsi Plainteks (One Time Pad)
22
3.2
Spesifikasi Use Case Enkripsi Plainkey (Knapsack)
24
3.3
Spesifikasi Use Case Dekripsi Cipherkey (Knapsack)
25
3.4
Spesifikasi Use Case Dekripsi Cipherteks (One Time Pad)
26
3.5
Spesifikasi Use Case Pembangkitan Kunci
27
3.6
Kelas Dan Antributnya
31
3.7
Komponen Tab Enkripsi
38
3.8
Komponen Tab Dekripsi
40
3.9
Komponen Form Help
42
3.10
Komponen Form About
43
4.1
Pengujian Proses Enkripsi Dengan Jumlah Karakter Berbeda
57
4.2
Pengujian Proses Dekripsi Dengan Jumlah Karakter Berbeda
58
4.3
Perbandingan Kecepatan Proses Enkripsi dan Dekripsi
58