IMPLEMENTASI ALGORITMA ELGAMAL DENGAN PEMBANGKIT BILANGAN PRIMA LEHMANN DAN ALGORITMA LEAST SIGNIFICANT BIT (LSB) DENGAN COVER IMAGE BITMAP UNTUK KEAMANAN DATA TEXT
IMPLEMENTASI ALGORITMA ELGAMAL DENGAN PEMBANGKIT BILANGAN
PRIMA LEHMANN DAN ALGORITMA LEAST SIGNIFICANT BIT (LSB) DENGAN
COVER IMAGE BITMAP UNTUK KEAMANAN DATA TEXT SKRIPSI HERMANDA IHUT TUA SIMAMORA
081401079
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2013 SKRIPSI
Diajukan untuk melengkapi tugas akhir dan memenuhi syarat mencapai gelar Sarjana Komputer
HERMANDA IHUT TUA SIMAMORA 081401079 PROGRAM STUDI S1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA MEDAN
2013
i
PERSETUJUAN
Judul : IMPLEMENTASI ALGORITMA ELGAMAL DENGAN PEMBANGKIT BILANGAN LEHMAN DAN ALGORITMA LEAST SIGNIFICANT BIT (LSB) DENGAN COVER IMAGE BITMAP UNTUK KEAMANAN DATA TEXT
Kategori : SKRIPSI Nama : HERMANDA IHUT TUA SIMAMORA Nomor Induk Mahasiswa : 081401079 Program Studi : SARJANA (S1) ILMU KOMPUTER Departemen : ILMU KOMPUTER Fakultas : ILMU KOMPUTER DAN TEKNOLOGI
INFORMASI Diluluskan di
Medan, 27 Agustus 2013 Komisi Pembimbing : Pembimbing 2 Pembimbing 1 Handrizal, Ssi, M.Comp.Sc M. Andri , ST, M.Comp.Sc, MEM NIP.- NIP. 197510082008011011 Diketahui/Disetujui oleh Departemen Ilmu Komputer FMIPA USU Ketua, Dr. Poltak Sihombing, M.Kom NIP. 196203171991031001 ii iii
PERNYATAAN
IMPLEMENTASI ALGORITMA ELGAMAL DENGAN PEMBANGKIT BILANGAN PRIMA LEHMANN DAN ALGORITMA LEAST SIGNIFICANT BIT (LSB)
DENGAN COVER IMAGE BITMAP UNTUK KEAMANAN DATA TEXT SKRIPSI Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, 20 Agustus 2013 HERMANDA IHUT TUA SIMAMORA NIM. 081401079 iv
PENGHARGAAN
Puji dan syukur penulis ucapkan kepada Tuhan Yang Maha Esa atas berkat dan kasih karunia- nya sehingga penulis dapat menyelesaikan skripsi ini dengan baik.
Dengan segala kerendahan hati, pada kesempatan ini penulis menyampaikan terima kasih kepada semua pihak yang telah membantu penyelesaian skripsi ini. Penulis mengucapkan terima kasih kepada: 1.
Bapak Dr. Poltak Sihombing, M.Kom sebagai Ketua Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
2. Ibu Maya Silvi Lydia, BSc. MSc sebagai Sekretaris Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
3. Dekan dan Pembantu Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
4. Bapak M. Andri Budiman, ST, MCompSc, MEM dan Bapak Handrizal, Ssi, M.Comp.Sc selaku pembimbing yang telah membimbing penulis sehingga penulis dapat menyelesaikan skripsi ini.
5. Bapak Ade Candra, ST, M.Kom dan Bapak Herriyance, ST, M.Kom. sebagai dosen penguji yang telah memberikan saran dan kritikan yang sangat berguna bagi Penulis.
6. Seluruh dosen serta pegawai di Program Studi S1 Ilmu Komputer Departemen Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi USU.
7. Ayahanda tercinta M. Simamora dan Ibunda tercinta D. Pasaribu, kakak saya Triyanti Simamora SE, Tiur Yulianta Simamora S.Kep, adik saya Betty Sonia Simamora yang selalu memberikan doa, motivasi dan dukungannya baik materi maupun spiritual serta semangat yang diberikan selama kuliah dan menyelesaikan skripsi ini.
8. Dan juga kepada teman-teman seperjuangan angkatan 2008 program studi S1 Ilmu Komputer USU, terkhusus kepada: Angga Malau, Ria Marpaung , Juwita Pasaribu , Rosalina Situmorang, Brikson Barus , Elieser Hutapea , Harry Davidson, Johannes Hutabarat dan Octavianus Sianturi yang telah berbagi kebersamaan selama berada di S1 Ilmu Komputer
Penulis menyadari bahwa skripsi ini masih jauh dari sempurna. Oleh karena itu penulis menerima kritik dan saran dari semua pihak yang bersifat membangun dan menyempurnakan skripsi ini. Penulis berharap semoga skripsi ini bermanfaat bagi penulis sendiri pada khususnya dan pembaca pada umumnya.
Medan, 27 Agutus 2013 Penulis v
Pada saat ini, banyak data atau informasi user yang dicuri oleh orang yang tidak berkepentingan, sehingga berkembanglah beberapa teknik keamanan, dimana salah satunya kriptografi. Pada kriptografi, data akan diacak sehingga tidak dapat dibaca dan dimengerti oleh orang lain. Kriptoanalisis adalah teknik yang digunakan untuk memecahkan kriptografi, sehingga data acak dapat dikembalikan ke data asli, sehingga kriptografi tidak sepenuhnya aman. Untuk mendapatkan keamanan yang lebih kuat, maka akan digabungkan kriptografi dengan steganografi. Algoritma kriptografi yang akan digunakan adalah ElGamal dengan pembangkit bilang prima lehmann, sedangkan algoritma steganografi yang akan digunakan adalah least significant bit (LSB). Data atau informasi terlebih dahulu dienkripsi dengan algoritma ElGamal, kemudian disisipkan kedalam sebuah citra dengan algoritma LSB, sehingga hasil dari enkripsi dan steganografi tidak akan menimbulkan kecurigaan bagi pihak lain. Berdasakan pengujian, untuk mengenkripsi dan menyisipkan pesan 20 hingga 60 karakter, dibutuhkan waktu kurang dari 3 detik, sedangkan waktu untuk ekstraksi dan dekripsi kurang dari 1 detik, serta perubahan citra tidak tampak oleh mata. Oleh karena itu, dapat disimpulkan bahwa dengan menggabungkan kriptografi dan steganogrofi maka keamanan data lebih kuat dan kinerja dari program adalah baik.
Kata kunci : Bitmap Image, ElGamal, Least Signifcant bit (LSB), Lehmann, Kriptografi, Teks. vi
IMPLEMENTATION OF ELGAMAL ELGORITHM USING LEHMANN'S PRIME GENERATOR AND LEAST SIGNIFICANT BIT ALGORITHM WITH BITMAP COVER IMAGE TO SECURE TEXT DATA. ABSTRACT
At this time, a lot of data or user information stolen by people who are not interested, so it develops some security techniques, one of which cryptography. Using cryptography, the data will be encrypted so it can not be read and understood by others. Cryptanalysis is the technique used to solve cryptography, so that random data can be restored to the original data, so cryptography is not completely secure. In order to obtain stronger security, it will be combined steganography with cryptography. Cryptographic algorithms that will be used is ElGamal , whereas steganography algorithms that will be used is the least significant bit (LSB). Data or information will encrypted with ElGamal algorithm, and then inserted into an image with the LSB algorithm, so that the results of encryption and steganography would not arouse suspicion for others. Based on the testing, to encrypt and insert messages 20 to 60 characters, it takes less than 3 seconds, while the time for extraction and decryption of less than 1 second, and the image changes are not visible to the eye. Therefore, it can be concluded that by combining cryptography and steganography, it will obtain the stronger security and the performance of the program is good.
Keyword : Cryptography, Bitmap Image, ElGamal, Least Significant Bit (LSB), Lehmann, Text.
Halaman Persetujuan ii
13
15
2.5.1 Definisi Steganografi
15
2.5 Steganografi
14
2.4.4 Primitive Root
2.4.3 Modulo Eksponensial
16
12
2.4.2 Bilangan Prima
12
2.4.1 Aritmatika Modulo
12
2.4 Landasan Matematika Kriptografi
2.5.2 Teknik Steganografi
2.5.3 Least Significant Bit (LSB)
2.3.2 Contoh Perhitungan Elgamal
23
26
2.9.3 Class Diagram
25
2.9.2 Activity Diagram
23
2.9.1 Use Case Diagram
2.9 Unified Modelling Language
17
21
2.8 Tabel ASCII
20
2.7.1 Citra Bitmap (BMP)
19
2.7 Citra Digital
9
9
Pernyataan iii
1
2
1.3 Batasan Masalah
2
1.2 Rumusan Masalah
1
1.1 Latar Belakang
Bab 1 Pendahuluan
3
Daftar Gambar x
Daftar Tabel ix
Daftar Isi vii
Abstract vi
Abstrak v
Penghargaan iv
1.4 Tujuan Penelitian
1.5 Manfaat Penelitian
2.3.1 Pembangkit Bilangan Prima Lehmann
7
8
2.3 Algoritma ElGamal
7
2.2.2 Algoritma Asimetris
7
2.2.1 Algoritma Simetris
2.2 Jenis Algoritma Kriptografi
3
6
2.1 Definisi dan Tujuan Kriptografi
6
4 Bab 2 Tinjauan Pustaka
1.7 Sistematika Penulisan
3
1.6 Metode Penelitian
2.9.4 Sequence Diagram 27 vii vii Bab 3 Analisis dan Perancangan
28
3.1 Analisis Sistem
28
3.1.1 Analisis Masalah
28
3.1.2 Analisis Persyaratan (Requirement Analysis)
30
3.1.2.1 Analisis Persyaratan Fungsional
30
3.1.2.2 Analisis Persyaratan Non-Fungsional
30
3.1.2.3 Pemodelan Persyaratan Sistem dengan Use Case
31
3.1.3 Analisis Proses Sistem
40
3.2 Perancangan Sistem
45
3.2.1 Class Diagram
45
3.2.2 Perancanga Antar Muka
48 Bab 4 Implementasi dan Pengujian Aplikasi
53
4.1 Implementasi
53
4.1.1 Tampilan Halaman Utama
53
4.1.2 Tampilan Halaman Bangkitkan Kunci
54
4.1.3 Tampilan Halaman Enkripsi dan Penyisipan
56
4.1.4 Tampilan Halaman Ekstraksi dan Dekripsi
60
4.2 Pengujian Aplikasi
64
4.2.1 Langkah-langkah Bangkitkan Kunci
66
4.2.2 Langkah-langkah Pengujian Enkripsi dan Penyisipan
66
4.2.3 Langkah-langkah Pengujian Ekstraksi dan Dekripsi
68
4.2.4 Hasil Pengujian Enkripsi dan Penyisipan
70
4.2.5 Hasil Pengujian Ekstraksi dan Dekripsi
75 Bab 5 Kesimpulan dan Saran
79
5.1. Kesimpulan
79
5.2. Saran
80 Daftar Pustaka
81
DAFTAR TABEL Nomor Judul Halaman
73
34
36
38
45
70
73
73
73
21
74
74
76
76
76
77
77
32
Dokumentasi Naratif Use Case Bangkitkan kunci Dokumentasi Naratif Use Case Enkripsi Dokumentasi Naratif Use Case Ektraksi dan dekripsi Kelas dan Atributnya Citra Hasil Enkripsi dan Penyisipan Waktu Enkripsi dan Penyisipan untuk Session I Waktu Enkripsi dan Penyisipan untuk Session II Waktu Enkripsi dan Penyisipan untuk Session III Waktu Enkripsi dan Penyisipan untuk Session IV Waktu Enkripsi dan Penyisipan untuk Session V Waktu Rata-Rata Enkripsi dan Penyisipan Waktu Ekstraksi dan Dekripsi untuk Session I Waktu Ekstraksi dan Dekripsi untuk Session II Waktu Ekstraksi dan Dekripsi untuk Session III Waktu Ekstraksi dan Dekripsi untuk Session IV Waktu Ekstraksi dan Dekripsi untuk Session V Waktu rata-rata Ekstraksi dan Dekripsi
2.1
4.3
3.1
3.2
3.3
3.4
3.5
4.1
4.2
4.4
4.13 Daftar Karakter ASCII yang Digunakan Dokumentasi Naratif Program Enkripsi dan Steganografi.
4.5
4.6
4.7
4.8
4.9
4.10
4.11
4.12
77 ix
DAFTAR GAMBAR Nomor Judul Halaman
27
40
39
37
35
33
31
29
26
43
25
24
18
18
17
17
16
15
41
47
Sequnce Diagram Ekstraksi dan Penyisipan Class Diagram untuk Sistem yang Dikembangkan Jframe Menu Utama Program Jframe Bangkitkan Kunci Jframe Enkripsi&Penyisipan Jframe Ekstraksi dan Dekripsi Jframe About Program Jframe Cara Penggunaan Program
65
74
69
69
68
68
67
67
66
60
48
56
54
53
52
51
51
50
49
Halaman Utama Halaman Bangkitkan Kunci Halaman Enkripsi dan Penyisipan Halaman Ekstraksi dan Dekripsi Citra DesktopWindows Proses Bangkitkan Kunci Buka File Pesan, Kunci, dan Gambar Proses Enkripsi dan Penyisipan Simpan File Citra Digital Hasil Enkripsi dan Penyisipan Buka File Gambar dan Kunci Proses Ekstraksi dan Dekripsi Simpan File Citra Grafik Waktu Enkripsi dan Penyisipan Grafik Waktu Ekstraksi dan Dekripsi
Sequnce Diagram Enkripsi dan Penyisipan
2.1
3.1
3.8
3.7
3.6
3.5
3.4
3.3
3.2
2.10
3.10
2.9
2.8
2.7
2.6
2.5
2.4
2.3
2.2
3.9
3.11
Use Case Diagram Sistem yang Akan dikembangkan Activity Diagram Program Enkripsi dan Steganografi Activity Diagram Bangkitkan Kunci Activity Diagram Proses Enkripsi dan Penyisipan Activity Diagram Ekstraksi dan Dekripsi Sequence Diagram Bangkitkan kunci
4.6
4.14 Diagram Sistem Steganografi Proses Penyisipan dan Ekstraksi dalam Steganografi Cara mengakses bit dari gambar Cara mengakses bit text Menyisipkan bit-bit text file ke byte gambar Cara ekstraksi pesan dari Gambar Contoh Usecase pada Proses Penjualan Contoh Activity Diagram Contoh Class Diagram Contoh sequence Diagram Diagram Ishikawa untuk Analisis Permasalahan Sistem
4.13
4.12
4.11
4.10
4.9
4.8
4.7
4.5
3.12
4.4
4.3
4.2
4.1
3.16
3.15
3.14
3.13
78 x