IMPLEMENTASI SISTEM KEAMANAN DATA DENGAN MENGGUNAKAN TEKNIK STEGANOGRAFI END OF FILE (EOF) DAN RABIN PUBLIC KEY CRYPTOSYSTEM SKRIPSI HENNY WANDANI 081401001 PROGRAM STUDI S1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA MEDAN 2012
IMPLEMENTASI SISTEM KEAMANAN DATA DENGAN MENGGUNAKAN TEKNIK STEGANOGRAFI END OF FILE (EOF) DAN RABIN PUBLIC KEY CRYPTOSYSTEM Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Komputer DRAFT SKRIPSI HENNY WANDANI 081401001 PROGRAM STUDI S1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA MEDAN 2012
PERSETUJUAN Judul : IMPLEMENTASI SISTEM KEAMANAN DATA DENGAN MENGGUNAKAN TEKNIK STEGANOGRAFI END OF FILE (EOF) DAN RABIN PUBLIC KEY CRYPTOSYSTEM Kategori : SKRIPSI Nama : HENNY WANDANI Nomor Induk Mahasiswa : 081401001 Program Studi : S1 ILMU KOMPUTER Departemen : ILMU KOMPUTER Fakultas : FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI (FASILKOM-TI) UNIVERSITAS SUMATERA UTARA Komisi Pembimbing : Diluluskan di Medan, Agustus 2012 Pembimbing 2 Pembimbing 1 Amer Sharif, S.Si, M.Kom M. Andri B,ST,MCompSc,MEM NIP. - NIP. 197510082008011001 Diketahui/Disetujui oleh Program Studi S1 Ilmu Komputer Ketua, Dr. Poltak Sihombing, M.Kom NIP. 196203171991031001
PERNYATAAN IMPLEMENTASI SISTEM KEAMANAN DATA DENGAN MENGGUNAKAN TEKNIK STEGANOGRAFI END OF FILE (EOF) DAN RABIN PUBLIC KEY CRYPTOSYSTEM SKRIPSI Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya. Medan, Agustus 2012 HENNY WANDANI NIM 081401001
PENGHARGAAN Segala puji dan syukur penulis ucapkan kepada Allah SWT yang senantiasa melimpahkan rahmat dan karunia-nya sehingga skripsi ini dapat diselesaikan. Ucapan terima kasih penulis sampaikan kepada semua pihak yang telah membantu penulis dalam menyelesaikan skripsi ini baik secara langsung maupun tidak langsung. Pada kesempatan ini penulis ingin mengucapkan terima kasih yang sebesar-besarnya kepada : 1. Bapak Mohammad Andri Budiman, S.T, M. Comp.Sc, MEM selaku Dosen Pembimbing I yang telah memberikan bimbingan, saran dan masukan kepada penulis dalam pengerjaan skripsi ini. 2. Bapak Amer Sharif, S.Si, M.Kom selaku Dosen Pembimbing II yang telah memberikan bimbingan, saran dan masukan kepada penulis dalam pengerjaan skripsi ini. 3. Bapak Prof. Dr. Iryanto, M.Si selaku Dosen Pembanding I yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini. 4. Bapak Drs. Marihat Situmorang, M.Kom selaku Dosen Pembanding II yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini. 5. Bapak Dr. Poltak Sihombing, M.Kom selaku Ketua Program Studi Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi. 6. Ibu Maya Silvi Lydia, B.Sc, M.Sc selaku Sekretaris Program Studi Ilmu Komputer, Dekan dan Pembantu Dekan Fakultas Ilmu Komputer dan Teknologi Informasi, semua dosen dan semua pegawai di Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi. 7. Ayahanda Irwan, S.T dan Ibunda Nuraini Siregar tercinta yang telah memberikan doa, motivasi, perhatian serta kasih sayang yang tulus serta pengorbanan yang tidak ternilai harganya. 8. Kakak-kakak penulis yang tersayang dr.yuli Dewani dan Dewi Syahfitri serta kepada seluruh keluarga besar penulis yang telah memberikan doa, dukungan dan perhatiannya kepada penulis. 9. Foni Sanjaya, S.Kom yang telah memberikan doa, semangat, dukungan, saran dan perhatiannya kepada penulis. 10. Teman-teman seperjuangan mahasiswa S1-Ilmu Komputer stambuk 2008 secara khusus Khairunnisa Lubis, Nurul Faradhilla, Prisilia Lukas, Wiliyana, Ria Virgi
Yani, Henny Haryani, Cindy Violita, Siska Anggaraini, Heny Muliana, Brikson Barus dan Sadifa Asrofa yang telah memberikan semangat dan menjadi teman diskusi penulis dalam menyelesaikan skripsi ini. 11. Semua pihak yang terlibat langsung ataupun tidak langsung yang tidak dapat penulis ucapkan satu per satu yang telah membantu penyelesaian skripsi ini. Penulis menyadari bahwa skripsi ini masih terdapat kekurangan. Oleh karena itu, kepada pembaca agar kiranya memberikan kritik dan saran yang bersifat membangun demi kesempurnaan skripsi ini. Sehingga dapat bermanfaat bagi kita semuanya. Medan, Agustus 2012 Penulis Henny Wandani
ABSTRAK Semakin meningkatnya perkembangan komunikasi data membuat semakin pentingnya aspek keamanan dan kerahasiaan data. Kriptografi merupakan suatu seni atau ilmu menjaga keamanan data atau pesan yang bersifat mengacak suatu data atau pesan. Sedangkan steganografi adalah ilmu menyembunyikan pesan atau data ke dalam suatu media. Kedua teknik tersebut dapat digabungkan dan akan menghasilkan suatu sistem keamanan data yang tinggi. Pada penelitian ini, terlebih dahulu dilakukan proses enkripsi data atau pesan rahasia yang berupa data teks angka dengan jumlah maksimum yang dimasukkan adalah 24 digit angka, kemudian hasil enkripsi (ciphertext) akan disembunyikan ke dalam suatu file gambar yang berformat bitmap dengan ukuran minimum 25x25. Selanjutnya, dilakukan proses ekstraksi dan dekripsi ciphertext, sehingga diperoleh kembali plaintext yang berupa data teks angka. Algoritma kriptografi yang digunakan adalah algoritma Rabin Public Key dan teknik steganografi yang digunakan adalah metode End of File. Kata kunci : End of File, Rabin Public Key.
THE IMPLEMENTATION OF DATA SECURITY SYSTEM WITH USING TECHNIQUES STEGANOGRAPHY END OF FILE AND RABIN PUBLIC KEY CRYPTOSYSTEM ABSTRACT The increase of data communications results in the increasing importance of safety and confidentiality of data. Cryptography is the art or science of maintaining the security of data or messages by scrambling a data or message. While steganography is the science of hiding messages or data into a medium. Both of these techniques can be combined to generate a high security data system. In this study, data or secret messages in the form of numbers with a maximum of 24 digit is firstly encrypted, the result of encryption (ciphertext) will be hidden into an image which is a bitmap file format with a minimum size of 25 x 25. The process of extraction and decryption will retrieve the plaintext in the form of numbers as before. Cryptography algorithm used is the Rabin Public Key algorithm and the technique of steganography used is the End of File method. Keyword : End of File, Rabin Public Key.
DAFTAR ISI Persetujuan Pernyataan Penghargaan Abstrak Abstract Daftar Isi Daftar Tabel Daftar Gambar Halaman ii iii iv vi vii viii xi xii Bab 1 Pendahuluan 1.1 Latar Belakang 1 1.2 Rumusan Masalah 2 1.3 Batasan Masalah 2 1.4 Tujuan Penelitian 2 1.5 Manfaat Penelitian 3 1.6 Metodologi Penelitian 4 1.7 Sistematika Penulisan 5 Bab 2 Tinjauan Teoretis 2.1 Kriptografi 6 2.1.1 Enkripsi dan Dekripsi 6 2.1.2 Sejarah dan Perkembangan Kriptografi 7 2.1.3 Tujuan Kriptografi 8 2.2 Jenis-Jenis Algoritma Kriptografi 9 2.2.1 Algoritma Simetris 9 2.2.2 Algoritma Asimetris 10 2.3 Diffie Hellman 11 2.4 RSA (Rivest Shamir Adleman) 12 2.5 Algoritma Rabin Public Key 13 2.6 Aritmatika Modulo 16 2.7 Greatest Common Divisor (GCD) 17 2.8 Bilangan Prima 17 2.9 Relatif Prima 18 2.10 Algoritma Euclid 19 2.11 Extended Euclidean 20 2.12 Chinese Remainder Theorem 21 2.13 Steganografi 22 2.14 File Bitmap 24 Bab 3 Analisis Dan Perancangan Sistem 3.1 Analisis Sistem 26 3.1.1 Analisis Rabin Public Key Cryptosystem 26 3.1.1.1 Proses Pembangkitan Kunci 26
3.1.1.2 Proses Enkripsi 27 3.1.1.3 Proses Dekripsi 29 3.1.2 Analisis Metode End of File (EOF) 33 3.1.2.1 Analisis Proses Embedding 33 3.1.2.2 Analisis Proses Extraction 34 3.2 Perancangan Sistem 36 3.2.1 Flowchart Gambaran Umum Sistem 36 3.2.1.1 Flowchart Pembangkitan Kunci pada Algoritma Rabin Public Key 36 3.2.1.2 Flowchart Proses Enkripsi pada Algoritma Rabin Public Key 38 3.2.1.3 Flowchart Proses Dekripsi pada Algoritma Rabin Public Key 38 3.2.1.4 Flowchart Proses Embedding pada Metode End of File (EOF) 40 3.2.1.5 Flowchart Proses Extract pada Metode End of File (EOF) 41 3.2.2 Use Case Diagram 41 3.2.2.1 Use Case Key Generator 42 3.2.2.2 Use Case Key Generate Kunci 43 3.2.2.3 Use Case Embed/Encode 44 3.2.2.4 Use Case Input Kunci Publik 45 3.2.2.5 Use Case Input Plaintext 46 3.2.2.6 Use Case Enkripsi 47 3.2.2.7 Use Case Pilih Cover Image 47 3.2.2.8 Use Case Embedding/Encoding 48 3.2.2.9 Use Case Extract/Decode 49 3.2.2.10 Use Case Pilih Stego Image 50 3.2.2.11 Use Case Extraction/Decoding 51 3.2.2.12 Use Case Input Kunci Privat 52 3.2.2.13 Use Case Dekripsi 53 3.2.3 Pseudocode 54 3.2.3.1 Pseudocode Proses Pembangkitan Kunci 54 3.2.3.2 Pseudocode Proses Enkripsi 55 3.2.3.3 Pseudocode Proses Dekripsi 56 3.2.3.4 Pseudocode Proses Embedding 58 3.2.3.5 Pseudocode Proses Extraction 58 3.2.4 Perancangan Antar Muka (Interface) 59 3.2.4.1 Halaman Menu Utama 59 3.2.4.2 Halaman Menu Key Generator 60 3.2.4.3 Halaman Menu Embed/Encode 61 3.2.4.4 Halaman Menu Extract/Decode 63 3.2.4.5 Halaman Menu About 64 3.2.4.6 Halaman Menu Help 65 Bab 4 Implementasi dan Pengujian Sistem 4.1 Implementasi Sistem 67 4.1.1 Spesifikasi Perangkat Keras 67 4.1.2 Spesifikasi Perangkat Lunak 67
4.2 Tampilan Antar Muka 68 4.2.1 Tampilan Halaman Menu Utama 68 4.2.2 Tampilan Halaman Menu Key Generator 69 4.2.3 Tampilan Halaman Menu Embed/Encode 70 4.2.4 Tampilan Halaman Menu Extract/Decode 72 4.2.5 Tampilan Halaman Menu About 73 4.2.6 Tampilan Halaman Menu Help 74 4.3 Pengujian Sistem 74 4.3.1 Pengujian Proses Pembangkitan Kunci 75 4.3.2 Pengujian Proses Input Kunci Publik dan Plaintext 76 4.3.3 Pengujian Proses Enkripsi 76 4.3.4 Pengujian Proses Pilih Cover Image 78 4.3.5 Pengujian Proses Embedding 80 4.3.6 Pengujian Proses Pilih Stego Image 82 4.3.7 Pengujian Proses Ekstraksi 83 4.3.8 Pengujian Input Kunci Privat 84 4.3.9 Pengujian Proses Dekripsi 85 Bab 5 Kesimpulan Dan Saran 5.1 Kesimpulan 89 5.2 Saran 90 Daftar Pustaka ` 91 Lampiran Listing Program A-1
DAFTAR TABEL Halaman 3.1 Hasil Enkripsi Angka Kelipatan 11 dengan Kunci Publik 77 28 3.2 Spesifikasi Use Case Key Generator 43 3.3 Spesifikasi Use Case Generate Kunci 43 3.4 Spesifikasi Use Case Embed/Encode 44 3.5 Spesifikasi Use Case Input Kunci Publik 45 3.6 Spesifikasi Use Case Input Plaintext 46 3.7 Spesifikasi Use Case Enkripsi 47 3.8 Spesifikasi Use Case Pilih Cover Image 48 3.9 Spesifikasi Use Case Embedding/Decoding 49 3.10 Spesifikasi Use Case Extract/Decode 49 3.11 Spesifikasi Use Case Pilih Stego Image 51 3.12 Spesifikasi Use Case Extraction/Decoding 52 3.13 Spesifikasi Use Case Input Kunci Privat 52 3.14 Spesifikasi Use Case Dekripsi 53 4.1 Hasil Enkripsi dan Dekripsi pada Sistem 87
DAFTAR GAMBAR Halaman 2.1 Proses Umum dalam Kriptografi 7 2.2 Bentuk Scytale 8 2.3 Skema Kriptografi Simetris 10 2.4 Kriptografi Asimetris 11 2.5 Proses Steganografi 23 2.6 Sebelum dan Sesudah Penyisipan Pesan dengan Menggunakan Metode End of File 24 3.1 Matriks Pixel Citra RGB 34 3.2 Matriks Pixel Citra RGB yang Telah Disisipkan Ciphertext 34 3.3 Matriks Pixel Citra RGB yang Telah Disisipkan Ciphertext 35 3.4 Matriks Pixel Stego Image yang Terdapat pada Baris Terakhir Matriks Pixel Citra 35 3.5 Flowchart Gambaran Umum Sistem 36 3.6 Flowchart Pembangkitan Kunci 37 3.7 Flowchart Proses Enkripsi Algoritma Rabin Public Key 38 3.8 Flowchart Proses Dekripsi Algoritma Rabin Public Key 39 3.9 Flowchart Proses Embedding pada Metode End of File (EOF) 40 3.10 Flowchart Proses Extraction pada Metode End of File (EOF) 41 3.11 Use Case Diagram Sistem 42 3.12 Rancangan Antar Muka Halaman Menu Utama 60 3.13 Rancangan Antar Muka Halaman Menu Key Generator 61 3.14 Rancangan Antar Muka Halaman Menu Embed/Encode 62 3.15 Rancangan Antar Muka Halaman Menu Extract/Decode 63 3.16 Rancangan Antar Muka Halaman Menu About 64 3.17 Rancangan Antar Muka Halaman Menu Help 65 4.1 Tampilan Halaman Menu Utama 68 4.2 Tampilan Submenu yang Terdapat pada Menu File 69 4.3 Tampilan Halaman Menu Key Generator 70 4.4 Tampilan Halaman Menu Embed/Encode 71 4.5 Tampilan Halaman Menu Extract/Decode 72 4.6 Tampilan Halaman Menu About 73 4.7 Tampilan Halaman Menu Help 74 4.8 Hasil Pembangkitan Kunci 75 4.9 Hasil Proses Input Kunci Publik dan Plaintext 76 4.10 Pesan Dialog Peringatan Kunci Publik yang Diinputkan Tidak Bernilai Numerik 77 4.11 Pesan Dialog Peringatan untuk Menginputkan Plaintext 77 4.12 Hasil Proses Enkripsi 77 4.13 Pop-up Window Open File 78 4.14 Hasil Pemilihan Cover Image 79 4.15 Pesan Dialog Peringatan Gambar yang Dipilih Terlalu Kecil 79
4.16 Hasil Proses Embedding 80 4.17 Sebelum dan Sesudah Proses Embedding 81 4.18 Pop-up Window Save Image 81 4.19 Pop-up Window Open File 82 4.20 Hasil Pemilihan Stego Image 83 4.21 Hasil Ekstraksi Stego Image 83 4.22 Pesan Dialog Peringatan Gambar yang Dipilih Tidak Terdapat Pesan yang Disembunyikan 84 4.23 Hasil Proses Penginputan Kunci Privat p dan q 85 4.24 Hasil Proses Dekripsi 86 4.25 Sistem Menghasilkan Plaintext yang Berbeda dari Plaintext yang Sebenarnya 87 4.26 Pesan Dialog Peringatan Kunci Privat yang Diinputkan Tidak Bernilai Numerik 88 4.27 Pesan Dialog Peringatan Kunci Privat yang Diinputkan Salah 88