IMPLEMENTASI KRIPTOGRAFI ALGORITMA
ELGAMAL
DENGAN KOMBINASI STEGANOGRAFI TEKNIK
END OF FILE (EOF)
UNTUK KEAMANAN
FILE TEXT
DAN
FILE
CITRA
SKRIPSI
ALES SANRO SOTARDODO 091401006
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
IMPLEMENTASI KRIPTOGRAFI ALGORITMA ELGAMAL DENGAN KOMBINASI STEGANOGRAFI TEKNIK
END OF FILE (EOF) UNTUK KEAMANAN FILE TEXT DAN FILE CITRA
SKRIPSI
Diajukan untuk melengkapi tugas akhir dan memenuhi syarat mencapai gelar Sarjana Komputer
ALES SANRO SOTARDODO 091401006
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
PERSETUJUAN
Judul IMPLEMENTASI KRIPTOGRAFI ALGORITMA
ELGAMAL DENGAN KOMBINASI STEGANOGRAFI TEKNIK END OF FILE (EOF) UNTUK KEAMANAN FILE TEXT DAN FILE CITRA
Kategori SKRIPSI
Nama ALES SANRO SOTARDODO
Nomor Induk Mahasiswa 091401006
Program Studi SARJANA (S1) ILMU KOMPUTER
Fakultas ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
Diluluskan di Medan, 18 Juli 2013
Komisi Pembimbing
Pembimbing II, Pembimbing I,
Ade Candra, ST, M.Kom Maya Silvi Lydia, B.Sc, M.Sc NIP. 19790904 200912 1 002 NIP. 19740127 200212 2 001
Diketahui/Disetujui oleh
Program Studi S1 Ilmu Komputer Ketua,
PERNYATAAN
IMPLEMENTASI KRIPTOGRAFI ALGORITMA ELGAMAL DENGAN KOMBINASI STEGANOGRAFI TEKNIK END OF FILE (EOF)
UNTUK KEAMANAN FILE TEXT DAN FILE CITRA
SKRIPSI
Saya menyatakan bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, 18 Juli 2013
PENGHARGAAN
Puji dan syukur penulis ucapkan kepada Tuhan Pencipta manusia, langit, bumi dan segala isinya atas segala berkat dan kasih karuniaNya sehingga penulis dapat menyelesaikan penyusunan skripsi ini, sebagai syarat untuk memperoleh gelar Sarjana Komputer, pada Program Studi S1 Ilmu Komputer Fasilkom-TI Universitas Sumatera Utara.
Ucapan terima kasih penulis sampaikan kepada :
1. Bapak Prof. Dr. dr. Syahril Pasaribu, DTM&H, M.Sc(CTM). Ap.A(K) selaku Rektor Universitas Sumatera Utara.
2. Bapak Prof. Dr. Muhammad Zarlis, M.Kom, selaku Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
3. Bapak Dr. Poltak Sihombing, M.Kom, selaku Ketua Departemen Ilmu Komputer Universitas Sumatera Utara.
4. Ibu Maya Silvi Lydia, B.Sc, M.Sc, selaku Sekretaris Departemen Ilmu Komputer Universitas Sumatera Utara.
5. Pembantu Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara, semua dosen dan pegawai pada program studi S1 Ilmu Komputer Fasilkom-TI USU.
6. Ibu Maya Silvi Lydia, B.Sc, M.Sc, dan bapak Ade Candra, ST. M.Kom, selaku Dosen Pembimbing.
7. Bapak Dr. Poltak Sihombing, M.Kom dan Bapak Amer Sharif, S.Si, M.Kom, selaku Dosen Penguji.
8. Bapak M. Andri Budiman, ST, M.Comp.Sc, MEM, selaku dosen pembimbing akademik saya.
9. Almarhum bapak saya Jampin Panjaitan, Almarhum ibu saya Luminta Simanjuntak yang dulu mendoakan dan sangat menyayangi, mendukung, dan mengarahkan saya untuk mencapai cita-cita saya, abang saya Adri Herianto, kakak saya Elvina Lidawati, Am.Keb, Sutanti, Frida Navian, Am.Keb, adik saya Melpa Marlina, dan Dina Riana yang selalu memberikan cinta kasihnya dan dukungannya baik material dan spiritual. 10. Rekan-rekan kuliah kom B dan kom A, khususnya Harmanto Simanjuntak,
satu KTB saya Harmanto, Juni, Jakup, Santo, dan Bertua, PKK saya kak Debora Nainggolan, S.Kom, adik kelompok saya, dan teman koordinasi di UKM KMK USU dan terkhususnya di UP. FMIPA, Farmasi & Fasilkom-TI.
Semoga Tuhan memberikan berkat yang berlimpah kepada semua pihak yang telah memberikan bantuan, perhatian, serta dukungan kepada penulis dalam menyelesaikan skripsi ini.
Medan, 18 Juli 2013
ABSTRAK
Perkembangan teknologi yang telah membawa perubahan pada pengiriman surat menyurat menjadi pengiriman elektronik tidak hanya membawa keuntungan, tetapi kerahasiaan data dari orang lain yang tidak diinginkan untuk mengetahui isi pesan tersebut perlu diamankan. Pada penelitian ini masalah yang diangkat adalah pengamanan file text dan file citra menggunakan dua metode yaitu steganografi dengan teknik end of file (EOF) dan kriptografi algoritma ElGamal. Steganografi teknik end of file (EOF) menyembunyikan pesan terhadap objek lain tanpa merusak objek tersebut. Kriptografi algoritma ElGamal adalah salah satu algoritma kriptografi kunci publik, kekuatan algoritma ini terletak pada logaritma diskritnya. Pada penelitian ini ukuran pesan dan citra tidak dibatasi. Dari hasil penelitian stego-image bertambah besar dan terdapat garis-garis pada bawah gambar. Pada algoritma ElGamal ini akan mempunyai hasil nilai enkripsi yang sama, jika nilai yang di enkripsi sama, sehingga tampak bahwa pengacakan terlihat semu. Bilangan prima yang digunakan harus lebih besar dari nilai yang akan di enkripsi. Besar bilangan prima akan mempengaruhi besar cipher-image yang akan dihasilkan. Metode mean squared error digunakan untuk menentukan kualitas citra hasil pengamanan dan hasil ekstraksi citra sama dengan citra asli. Stego-image dapat diamankan dengan menggunakan algoritma ElGamal, sehingga citra terlihat acak dan susah ditebak.
Katakunci : Kriptografi, steganografi, end of file, ElGamal, stego-image,
IMPLEMENTATION OF CRYPTOGRAPHY ELGAMAL ALGORITHM COMBINATION WITH STEGANOGRAPHY END OF FILE
(EOF) TECHNIQUE FOR TEXT FILE AND IMAGE FILE SECURITY
ABSTRACT
Technological developments that have brought changes to the delivery of electronic mailings to delivery not only bring benefits, but the confidentiality of the data from others that are not desirable to know the content of the message need to secure. In this research the issues studied was the security text files and image files using two methods, namely steganography techniques end of file (EOF) and ElGamal cryptographic algorithms. Steganographic techniques end of file (EOF) hide messages inside other objects without damaging the object. Cryptographic ElGamal algorithm is a public-key cryptographic algorithms, the power of these algorithms lies in discrete logarithms. In this research it was found that messages hidden with this technique has no size limit, the stego-image obtained are larger and will have significant lines at the bottom of the image. When using the ElGamal algorithm will have the same result encrypted value, if the same encrypted value, so it indicated pseudo randomization. The primes is used must be greater than the value to be encrypted. Large prime would affect a large cipher-image will be return. Mean squared error method is used to determine the quality of the image of the security and the extracted image with the original image. Stego-image can be secured by using the ElGamal algorithm, so that the image looks random and unpredictable.
Keywords : Cryptography, steganography, end of file, ElGamal, stego-image,
DAFTAR ISI
Halaman
Persetujuan ii
Pernyataan iii
Penghargaan iv
Abstrak v
Abstract vi
Daftar Isi vii
Daftar Tabel x
Daftar Gambar xi
Daftar Lampiran xiii
Bab I Pendahuluan
1.1 Latar Belakang 1
1.2 Rumusan Masalah 2
1.3 Batasan Masalah 2
1.4 Tujuan Penelitian 3
1.5 Manfaat Penelitian 3
1.6 Sistematika Penulisan 3
Bab II Landasan Teori
2.1 Steganografi 5
2.1.1 Kriteria Steganografi yang Baik 6 2.1.2 Steganografi Teknik End Of File (EOF) 7
2.2 Kriptografi 8
2.2.1 Tujuan Kriptografi 9
2.2.2 Kriptografi Simetri dan Asimetri 10
2.2.2.1 Kriptografi Simetri 10
2.2.2.2 Kriptografi Asimetri 11
2.2.3 Landasan Matematika 12
2.2.3.1 Sifat Pembagian pada Bilangan Bulat 12
2.2.3.2 Teorema Eucledian 13
2.2.3.3 Bilangan Prima 13
2.2.3.4 Relatif Prima 13
2.2.4 Kriptografi Algoritma ElGamal 14
2.3 Citra 17
2.3.1 Citra Bitmap (*.bmp) 18
2.3.2 Citra jpeg (*.jpg) 18
2.4 Mean Squared Error 19
Bab III Analisis dan Perancangan Sistem
3.1 Analisis Sistem 20
3.1.1 Analisis Masalah 20
3.1.2.1 Persyaratan Fungsional 21 3.1.2.2 Persyaratan Nonfungsional 22
3.1.3 Pemodelan Sistem 23
3.1.3.1 Perancangan Unified Modelling Language (UML) 23 3.1.3.1.1 Use Case Diagram 24 3.1.3.1.2 Activity Diagram 25 3.1.3.1.3 Sequance Diagram 30
3.1.3.1.4 Class Diagram 32
3.1.4 Perancangan Flowchart 33
3.1.4.1 Flowchart Aplikasi 33
3.1.4.2 Flowchart Proses Embed End Of File 35 3.1.4.3 Flowchart Proses Enkripsi dengan ElGamal 36 3.1.4.4 Flowchart Proses Dekripsi dengan ElGamal 38 3.1.4.5 Flowchart Proses Ekstraksi dengan End Of File 39
3.1.5 Percobaan Manual 40
3.2 Perancangan 51
3.2.1 Rancangan Interface Aplikasi 52 3.2.1.1 Rancangan Interface Form Awal (Intro) 52 3.2.1.2 Rancangan Interface Form Utama 53 3.2.1.3 Rancangan Interface Form Pengamanan 54 3.2.1.4 Rancangan Interface Form Pengungkapan 56 3.2.1.5 Rancangan Interface Form Hitung MSE 58 3.2.1.6 Rancangan Interface Form Bantuan Menggunakan
Aplikasi 59
3.2.1.7 Rancangan Interface Form Tentang Programmer 60
Bab IV Implementasi dan Pengujian
4.1 Implementasi 61
4.1.1 Form Intro 61
4.1.2 Form Halaman Utama 62
4.1.3 Form Pengamanan (Embedding dan Enkripsi) 63 4.1.4 Form Pengungkapan (Ekstraksi dan Dekripsi) 64 4.1.5 Form Hitung Mean Squared Error (MSE) 66 4.1.6 Form Bantuan Menggunakan Aplikasi 66 4.1.7 Form Bantuan Tentang Programmer 67
4.2 Pengujian 68
4.2.1 Perbandingan Pengujian Percobaan Manual dan
Menggunakan Sistem 69
4.2.2 Proses Pengamanan (Penyisipan dan Enkripsi) 73 4.2.3 Proses Pengungkapan (Dekripsi dan Ekstraksi) 76 4.2.4 Proses Menghitung Mean Squared Error (MSE) 80 4.2.5 Proses Pengujian (Pengamanan) Steganografi Teknik End
Of File (EOF) dengan Kriptografi Algoritma ElGamal 81 4.2.6 Proses Pengujian Pengungkapan (Dekripsi dan Ekstraksi)
Steganografi Teknik End Of File (EOF) dengan Kriptografi
Algoritma ElGamal 86
4.2.7 Tabel Hasil Pengujian 95
Bab V Kesimpulan dan Saran
5.1 Kesimpulan 103
5.2 Saran 104
Daftar Pustaka 105
DAFTAR TABEL
Nomor
Tabel Nama Tabel Halaman
3.1
Simbol Simbol yang Sering dipakai Pada Activity Diagram Kamus Data
Citra Asli 5x5 Piksel
Stego-Image (Bentuk Karakter)
Stego-Image (Bentuk ASCII (Desimal)) Cipher Citra (Hasil Dekripsi Citra Tabel 3.5)
Citra Hasil Enkripsi (Perubahan menjadi Base 256) R-G-B Cipher-Image
Hasil Dekripsi Hasil Ekstraksi
Perbandingan Ukuran dengan Panjang Karakter Berbeda
Proses Pengujian dengan Panjang Teks 50000 Karakter dan Besar Citra Bervariasi dan Bilangan Prima Tetap dengan Besar 32-bit
Proses Pengujian dengan Bilangan Prima Berbeda dan Gambar Tetap
Proses Pengujian Ekstraksi Citra Pada Tabel 4.1
Proses Pengujian Pengungkapan (Dekripsi dan Ekstraksi) Proses Pengujian Pengungkapan ((Dekripsi dan Ekstraksi) Data Pengujian Pada Tabel 4.1
Data Pengujian Pada Tabel 4.2 Data Pengujian Pada Tabel 4.3 Data Pengujian Pada Tabel 4.4 Data Pengujian Pada Tabel 4.5 Data Pengujian Pada Tabel 4.6
DAFTAR GAMBAR
Nomor
Gambar Nama Gambar Halaman
2.1
Skema Proses Steganografi Skema Embedding dan Ekstraksi Citra Asli
Stego-Image
Skema Kriptografi Simetri Skema Kriptografi Asimetri Intensitas Citra
Ishikawa Diagram untuk Analisis Permasalahan Sistem Use Case Diagram Sistem
Activity Diagram Pengamanan
Activity Diagram Pembangkitan Kunci
Acitivity Diagram Pengungkapan (Dekripsi dan Ekstraksi) Acitivity Diagram Hitung MSE
Sequence Diagram Sistem
Rancangan Class Diagram Sistem Flowchart Aplikasi
Flowchart Proses Embedding End Of File
Flowchart Proses Enkripsi Plain-Image dengan ElGamal Flowchart Proses Dekripsi dengan ElGamal
Flowchart Proses Ekstraksi End Of File Rancangan Interface Form Intro
Rancangan Interface Form Utama Rancangan Interface Form Pengamanan Rancangan Interface Form Pengungkapan Rancangan Interface Form Hitung MSE
Rancangan Interface Form Menggunakan Aplikasi (Bantuan) Rancangan Interface Form Tentang
Form Intro
Form Halaman Utama
Form Pengamanan (Embedding dan Enkripsi) Form Pengungkapan (Ekstraksi dan Dekripsi) Form Hitung Mean Squared Error (MSE) Form Menggunakan Aplikasi
Form Tentang
Citra Asli (Seperti Tabel 3.3) Stego-Image (Seperti Tabel 3.4) Cipher-Image (Seperti Tabel 3.7) Hasil Dekripsi (Seperti Tabel 3.9) Citra Asli (Seperti Tabel 3.10) Opendialog Untuk Memilih File Proses Embedding
Proses Pembangkitan Bilangan Prima
Proses Pembangkitan Kunci Enkripsi dan Proses Enkripsi
4.17 4.18 4.19 4.20 4.21 4.22 4.23 4.24 4.25
Proses Dekripsi Error (Nilai >255) Proses Dekripsi (Nilai 0-255) Proses Dekripsi
Proses Ekstraksi
Proses Ekstraksi (tidak ada teks)
Proses Penyimpanan Data Hasil Pengungkapan Perhitungan MSE (Ukuran Berbeda)
Proses Menghitung Mean Squared Error (MSE) Citra Asli
DAFTAR LAMPIRAN
Halaman
A. Listing Program A-1
ABSTRAK
Perkembangan teknologi yang telah membawa perubahan pada pengiriman surat menyurat menjadi pengiriman elektronik tidak hanya membawa keuntungan, tetapi kerahasiaan data dari orang lain yang tidak diinginkan untuk mengetahui isi pesan tersebut perlu diamankan. Pada penelitian ini masalah yang diangkat adalah pengamanan file text dan file citra menggunakan dua metode yaitu steganografi dengan teknik end of file (EOF) dan kriptografi algoritma ElGamal. Steganografi teknik end of file (EOF) menyembunyikan pesan terhadap objek lain tanpa merusak objek tersebut. Kriptografi algoritma ElGamal adalah salah satu algoritma kriptografi kunci publik, kekuatan algoritma ini terletak pada logaritma diskritnya. Pada penelitian ini ukuran pesan dan citra tidak dibatasi. Dari hasil penelitian stego-image bertambah besar dan terdapat garis-garis pada bawah gambar. Pada algoritma ElGamal ini akan mempunyai hasil nilai enkripsi yang sama, jika nilai yang di enkripsi sama, sehingga tampak bahwa pengacakan terlihat semu. Bilangan prima yang digunakan harus lebih besar dari nilai yang akan di enkripsi. Besar bilangan prima akan mempengaruhi besar cipher-image yang akan dihasilkan. Metode mean squared error digunakan untuk menentukan kualitas citra hasil pengamanan dan hasil ekstraksi citra sama dengan citra asli. Stego-image dapat diamankan dengan menggunakan algoritma ElGamal, sehingga citra terlihat acak dan susah ditebak.
Katakunci : Kriptografi, steganografi, end of file, ElGamal, stego-image,
IMPLEMENTATION OF CRYPTOGRAPHY ELGAMAL ALGORITHM COMBINATION WITH STEGANOGRAPHY END OF FILE
(EOF) TECHNIQUE FOR TEXT FILE AND IMAGE FILE SECURITY
ABSTRACT
Technological developments that have brought changes to the delivery of electronic mailings to delivery not only bring benefits, but the confidentiality of the data from others that are not desirable to know the content of the message need to secure. In this research the issues studied was the security text files and image files using two methods, namely steganography techniques end of file (EOF) and ElGamal cryptographic algorithms. Steganographic techniques end of file (EOF) hide messages inside other objects without damaging the object. Cryptographic ElGamal algorithm is a public-key cryptographic algorithms, the power of these algorithms lies in discrete logarithms. In this research it was found that messages hidden with this technique has no size limit, the stego-image obtained are larger and will have significant lines at the bottom of the image. When using the ElGamal algorithm will have the same result encrypted value, if the same encrypted value, so it indicated pseudo randomization. The primes is used must be greater than the value to be encrypted. Large prime would affect a large cipher-image will be return. Mean squared error method is used to determine the quality of the image of the security and the extracted image with the original image. Stego-image can be secured by using the ElGamal algorithm, so that the image looks random and unpredictable.
Keywords : Cryptography, steganography, end of file, ElGamal, stego-image,
BAB I
PENDAHULUAN
1.1 Latar Belakang
Kemajuan teknologi informasi berkembang dengan sangat cepat, teknologi telah
memasuki hampir keseluruh pelosok. Dengan perkembangan teknologi tersebut,
pengiriman surat-menyurat yang dilakukan secara manual melalui jasa pengiriman
telah banyak berubah menjadi pengiriman lewat elektronik dengan memanfaatkan
kecanggihan teknologi yang sedang berkembang saat ini. Namun, dengan kemajuan
teknologi tersebut bukan hanya kemudahan saja yang didapat, tetapi juga
keterjaminan data dari orang lain yang tidak diinginkan untuk mengetahui isi dari data
tersebut, maka data tersebut harus dilindungi.
Kriptografi merupakan ilmu yang mempelajari bagaimana cara melindungi
data dengan cara mengubahnya menjadi bentuk yang lain (enkripsi) tetapi masih bisa
dikembalikan kedalam bentuk semula (dekripsi). Kriptografi memiliki banyak
algoritma untuk melakukan penyamaran data rahasia, sebagai contoh algoritma dari
kriptografi adalah ElGamal. Algoritma ElGamal adalah algoritma kriptografi yang
dibuat oleh Taher ElGamal pada tahun 1984, algoritma ElGamal pada mulanya
digunakan untuk digital signature, namun kemudian dimodifikasi sehingga juga bisa
digunakan untuk enkripsi dan dekripsi. Algoritma ElGamal merupakan kriptografi
dengan kunci publik dan kunci privat, algoritma ElGamal termasuk kedalam
kriptografi kunci asimetris, dan kekuatan algoritma ElGamal ini terletak pada
susahnya menghitung logaritma diskritnya. Salah satu kemajuan teknologi adalah
enkripsi file diantaranya adalah enkripsi file teks, audio, citra dan lain sebagainya,
yang membantu untuk melindungi pesan rahasia dari pihak yang tidak diinginkan.
Pengolahan citra merupakan suatu bidang yang mempelajari tentang citra,
bagaimana sebuah citra bisa diproses sehingga menjadi lebih baik untuk dapat
teknik steganografi, dimana dilakukan penyembunyian pesan kedalam media lain,
sehingga keberadaan pesan tersebut tanpa disadari dalam sebuah file yang lain[16].
Teknik steganografi terinspirasi dari pengiriman surat secara manual, dimana
pengiriman surat yang dilakukan dengan cara menyamarkan isi yang akan
disampaikan kepada pihak yang dikehendaki, sehingga pihak yang tidak dikehendaki
tidak menyadari keberadaan pesan yang akan disampaikan[2]. Banyak teknik
steganografi yang digunakan untuk melakukan penyisipan pesan, diantaranya adalah
end of file (EOF), teknik ini melakukan penyisipan pesan dengan cara menambahkan
ke ujung dari media yang akan disisipi pesan, metode ini tidak akan mengurangi
kualitas citra dari sebelumnya, tetapi akan menambah besar ukuran media tersebut[1],
dan teknik end of file(EOF) ini tidak membatasi seberapa banyak pesan yang dapat
disisipi.
Dalam aplikasinya kriptografi dan steganografi saling mempunyai kelebihan
dan kelemahan masing-masing, dan jika keduanya dikombinasikan maka akan
mempunyai tingkat keamanan yang tinggi[2]. Mencermati hal-hal yang telah
dipaparkan diatas maka penulis tertarik membuat skripsi berjudul “Implementasi
Kriptografi Algoritma ElGamal dengan Kombinasi Steganografi Teknik End Of
File (EOF) untuk Keamanan File Text dan File Citra”.
1.2 Rumusan Masalah
Adapun masalah yang akan dibahas dalam penelitian ini adalah bagaimana
mengamankan file text dan file citra dengan kriptografi algoritma ElGamal dan
kombinasi steganografi teknik end of file (EOF).
1.3 Batasan Masalah
Batasan masalah dalam penelitian ini adalah :
1. File text yang digunakan adalah file text format *.txt atau input-an secara
langsung.
2. File citra yang digunakan adalah file citra bitmap 24-bit ( *.bmp ) dan JPEG
3. File text asli disisipkan ke citra dengan teknik end of file, setelah itu, stego-image
diamankan dengan Algoritma ElGamal dengan format file *.bmp .
4. Pembangkitan bilangan prima yang digunakan tidak 100% bilangan prima.
5. Pemrograman menggunakan Visual C#
1.4 Tujuan Penelitian
Adapun tujuan dari penelitian ini adalah :
1. Mengimplementasikan kriptografi algoritma ElGamal dengan kombinasi
steganografi teknik end of file untuk keamanan File Text dan File Citra.
2. Menjadikan plain-text dan plain-image menjadi stego-image kemudian
mengenkripsi dan sebaliknya.
1.5 Manfaat Penelitian
Penelitian ini diharapkan bisa bermanfaat bagi masyarakat yang membutuhkan
pengamanan gambar dan teks yang dianggap rahasia dan tidak diinginkan untuk
diketahui oleh pihak lain, dan juga bisa bermanfaat bagi orang-orang yang ingin
mengembangkan penelitian di bidang keamanan data (data security).
1.6 Sistematika Penulisan
Agar pembahasan lebih sistematis, maka tulisan ini dibuat dalam lima bab, yaitu :
Bab I Pendahuluan
Berisi latar belakang, perumusan masalah, batasan masalah,
tujuan dan manfaat penelitian dan sistematika penulisan.
Bab II Landasan Teori
Berisi tentang penjelasan singkat mengenai defenisi
steganografi, metode steganografi, penjelasan mengenai end of
file (EOF), definisi kriptografi, metode kriptografi, penjelasan
mengenai algoritma ElGamal, teori bilangan, defenisi citra,
defenisi bitmap, dan defenisi JPEG, metode perbandingan
Bab III Analisis dan Perancangan
Berisi tentang analisis mengenai proses kerja dari algoritma
ElGamal, proses kerja steganografi teknik end of file (EOF) dan
perancangan use case diagram, activity diagram, sequence
diagram, class diagram, flowchart, dan perancangan tampilan
form dari aplikasi yang akan dibangun.
Bab IV Implementasi dan Pengujian
Berisi tentang implementasi dan pengujian aplikasi.
Bab V Kesimpulan dan Saran
Berisi tentang kesimpulan yang dapat ditarik setelah
menyelesaikan tugas akhir ini dan saran-saran yang dapat
BAB II
LANDASAN TEORI
2.1 Steganografi
Istilah steganografi berasal dari bahasa Yunani, yaitu steganos yang berarti
penyamaran atau penyembunyian dan graphein yang berarti tulisan. Jadi,
steganography bisa diartikan sebagai seni menyamarkan/menyembunyikan pesan
tertulis ke dalam pesan lainnya.
Steganography dan cryptography adalah saudara sepupu dalam keluarga
spycraft. Cryptography adalah pengacakan suatu pesan sehingga artinya tidak mudah
dimengerti, sedangkan steganography berarti menghilangkan pesan sehingga pesan
tersebut tidak dapat dilihat[2]. Terdapat beberapa istilah yang berkaitan dengan
steganografi, antara lain: hiddentext atau embedded message merupakan pesan yang
disembunyikan, covertext atau cover-object merupakan pesan yang digunakan untuk
menyembunyikan embedded message, stegotext atau stego-object merupakan pesan
yang sudah berisi embedded message. Steganografi membutuhkan dua properti, yaitu
wadah penampung dan data rahasia yang akan disembunyikan. Steganografi digital
menggunakan media digital sebagai wadah penampung, misalnya citra, audio, teks
dan video, dan data yang disembunyikan juga dapat berupa citra, audio, teks, atau
video.
+ =
Gambar 2.1 Skema Proses Steganografi
2.1.1 Kriteria Steganografi yang Baik
Wadah Penampung
Penyembunyian data rahasia kedalam citra digital akan mengubah kualitas citra
tersebut. Hal ini tergantung pada ukuran file media penyimpan dan ukuran file pesan
yang disisipkan. Untuk itu ada beberapa hal atau kriteria yang harus diperhatikan
dalam penyembunyian data, yaitu :
1. Fidelity
Mutu citra penampung data tidak jauh berubah, setelah terjadi penambahan
pesan rahasia, stego-data masih terlihat dengan baik. Pengamat tidak
mengetahui kalau di dalam stego-data tersebut terdapat pesan rahasia.
2. Robustness
Pesan yang disembunyikan harus tahan (robust) terhadap berbagai operasi
manipulasi yang dilakukan pada stego-data, seperti pengubahan kontras,
penajaman, pemampatan, rotasi, perbesaran gambar, pemotongan
(cropping), enkripsi, dan sebagainya. Bila pada citra penampung dilakukan
operasi-operasi pengolahan citra tersebut, maka pesan yag disembunyikan
seharusnya tidak rusak (tetap valid jika diekstraksi kembali).
3. Recovery
Data yang disembunyikan harus dapat diungkapkan kembali (recovery).
Karena tujuan steganografi adalah penyembunyian informasi, maka
sewaktu-waktu pesan rahasia di dalam stego-data harus dapat diambil
kembali untuk digunakan lebih lanjut[16].
Steganography menyembunyikan pesan dalam data lain tanpa mengubah data
yang ditumpanginya tersebut sehingga data yang ditumpanginya sebelum dan setelah
proses penyembunyian hampir terlihat sama[2].
Ekstraksi
Hidden text Stegomedium * Stegoimage
Key Embedding Hidden text
Stegomedium
Gambar 2.2 Skema Embedding dan Ekstraksi
2.1.2 Steganografi Teknik End Of File (EOF)
Metode end of file (EOF) merupakan metode yang melakukan penyisipan
(penambahan) diakhir file. Untuk teknik ini dapat menambahkan data atau file yang
akan disembunyikan lebih dari ukuran file image. Data yang disembunyikan tersebut
akan disisipkan pada akhir file sehingga file image akan terlihat sedikit berbeda
dengan aslinya[1]. Karena metode EOF tidak mensyaratkan maksimal panjang pesan
yang dapat disisipkan. Hal ini akan menyebabkan ukuran citra menjadi semakin besar.
Agar tidak menimbulkan kecurigaan, tetap harus dipertimbangkan agar pesan yang
disisipkan tidak terlalu mengubah ukuran dan bentuk fisik citra pada saat
ditampilkan[5]. Dalam teknik EOF, data yang disisipkan pada akhir file diberi tanda
khusus sebagai pengenal awal dan pengenal akhir dari data tersebut[15].
Gambar 2.3.a Citra Asli Gambar 2.3.b Stego-image
Citra gambar 2.3.a diatas merupakan citra asli sebelum disisipi teks, dan citra
gambar 2.3.b stego-image adalah citra asli yang telah disisipi teks “ales sanro
sotardodo” dengan teknik end of file (EOF), perbedaan antara kedua foto sekilas tidak
tampak, tetapi jika lebih diamati lagi maka ada perbedaan antara kedua foto, yaitu
gambar 2.3.b ada sedikit goresan dibawah foto, dan dari segi ukuran juga akan ada
perbedaan, yaitu gambar 2.3.a berukuran 300x200 piksel dan gambar 2.3.b 301x200
piksel.
2.2 Kriptografi
Kriptografi adalah ilmu yang mempelajari bagaimana supaya pesan atau dokumen kita
aman, tidak bisa dibaca oleh pihak yang tidak berhak. Dalam perkembangannya,
kriptografi juga digunakan untuk identifikasi pengiriman pesan dengan tanda tangan
digital dan keaslian pesan dengan sidik jari digital (fingerprint). Kriptografi
mempunyai sejarah yang sangat panjang. Sejak jaman Romawi, Yulius Caesar telah
menggunakan teknik kriptografi yang sekarang dianggap kuno dan sangat mudah
dibobol untuk keperluan militernya.
Seni dan ilmu untuk menjaga keamanan pesan disebut sebagai kriptografi. Dan
ahlinya disebut sebagai cryptographer. Teknik untuk membuat menjadi tidak dapat
ciphertext. Proses yang merupakan kebalikan dari enkripsi disebut sebagai dekripsi,
dan pesan asli tersebut disebut plaintext. Jadi dekripsi akan membuat ciphertext
menjadi plaintext[6]. Pengirim (sender) adalah entitas yang mengirim pesan kepada
entitas lainnya, penerima (receiver) adalah entitas yang menerima pesan, entitas ini
dapat berupa orang, mesin (komputer), dan lain sebagainya. Kriptografi membentuk
sebuah sistem yang dinamakan sistem kriptografi. Sistem kriptografi (cryptosystem)
adalah kumpulan yang terdiri dari algoritma kriptografi, semua plainteks dan
cipherteks yang mungkin, dan kunci [SCH96]. Penyadap (eavesdropper) adalah orang
yang mencoba menangkap pesan selama ditransmisikan, tujuan penyadap adalah
untuk mendapatkan informasi sebanyak-banyaknya mengenai sistem kriptografi yang
digunakan untuk berkomunikasi dengan maksud untuk memecahkan cipherteks, nama
lain penyadap antara lain: enemy, adversary, intruder, interceptor, bad guy.
Kriptanalisis (cryptanalysis) adalah ilmu dan seni untuk memecahkan cipherteks
menjadi plainteks tanpa mengetahui kunci yang digunakan, dan pelakunya disebut
kriptanalis. Kriptologi (cryptology) adalah studi mengenai kriptografi dan
kriptanalisis, baik kriptografi maupun kriptanalis keduanya saling berkaitan[8].
2.2.1 Tujuan Kriptografi
Tujuan kriptografi adalah :
1. Kerahasiaan (confidentiality) adalah layanan yang ditujukan untuk menjaga
agar pesan tidak dapat dibaca oleh pihak-pihak yang tidak berhak. Di dalam
kriptografi, layanan ini direalisasikan dengan menyandikan pesan menjadi
cipherteks.
2. Integritas (integrity) adalah layanan yang menjamin bahwa pesan masih
asli/utuh atau belum pernah dimanipulasi selama pengiriman. Untuk menjaga
integritas data, sistem harus memiliki kemampuan untuk mendeteksi
manipulasi pesan oleh pihak-pihak yang tidak berhak, antara lain penyisipan,
pengahapusan, dan pensubtitusian data lain kedalam pesan yang sebenarnya.
3. Otentikasi (authentication), adalah layanan yang berhubungan dengan
identifikasi, baik mengidentifikasi kebenaran pihak-pihak yang berkomunikasi
berkomunikasi harus dapat mengotentikasi satu sama lain sehingga ia dapat
memastikan sumber pesan.
4. Nirpenyangkalan (Non-repidiation) adalah layanan untuk mencegah entitas
yang berkomunikasi melakukan penyangkalan, yaitu pengirim pesan
menyangkal melakukan pengiriman atau penerima pesan memberi otoritas
kepada penerima pesan untuk melakukan pembelian, namun kemudian ia
menyangkal telah melakukan pembelian.
2.2.2 Kriptografi Simetri dan Asimetri
Selain berdasarkan sejarah yang membagi kriptografi menjadi kriptografi klasik dan
kriptografi modern, maka berdasarkan kunci yang digunakan untuk enkripsi dan
dekripsi, kriprografi dapat dibedakan menjadi kriptografi kunci-simetri
(symmetric-key cryptography) dan kriptografi kunci-nirsimetri (asymmetric-(symmetric-key cryptography)[8].
2.2.2.1Kriptografi Simetri
Algoritma simetri disebut juga sebagai algoritma konvensional adalah algoritma yang
menggunakan kunci enkripsi yang sama dengan kunci dekripsinya[6]. Istilah lain
untuk kriptografi kunci-simetri adalah kriptografi kunci-privat (private-key
cryptography) atau kriptografi kunci rahasia (secret-key cryptography). Sistem
kriptografi kunci-simetri (disingkat menjadi “kriptografi simetri” saja),
mengasumsikan pengirim dan penerima pesan sudah berbagi pada kerahasiaan
kuncinya. Kriptografi simetri satu-satunya jenis kriptografi yang dikenal dalam
catatan sejarah hingga tahun 1976. Ada puluhan algoritma kriptografi modern yang
termasuk ke dalam sistem kriptografi simetri, diantaranya adalah DES (data
encryption standard), blowfish, twofish, triple-DES, IDEA, serpent, dan yang terbaru
adalah AES (advanced encryption standard).
Aplikasi kriptografi simetri yang utama adalah melindungi kerahasisaan data
yang dikirim melalui saluran yang tidak aman dan melindungi kerahasisaan data yang
disimpan pada media yang tidak aman. Kelemahan dari sistem ini adalah baik
pengirim pesan harus mencari cara yang aman untuk memberitahukan kunci kepada
penerima pesan[8].
Enkripsi EK (P) = C
Dekripsi DK (C) = P
Kunci privat, K Kunci privat, K
Cipher-object, C
Plain-object, P Plain-object, P
Gambar 2.4 Skema Kriptografi Simetri
Keterangan :
K : kunci privat
P : plaintext
C : ciphertext
EK(P) : rumus enkripsi
DK(C) : rumus dekripsi
2.2.2.2Kriptografi Asimetri
Algoritma asimetri (disebut juga algoritma kunci publik) didesain sedemikian
sehingga kunci yang digunakan untuk enkripsi berbeda dari kunci yang digunakan
untuk dekripsi[6]. Pada kriptografi jenis ini, setiap orang yag berkomunikasi
mempunyai sepasang kunci yaitu kunci privat dan kunci publik. Pengirim
mengenkripsi pesan dengan menggunakan kunci publik sipenerima pesan (receiver).
Hanya penerima pesan yang dapat mendekripsi pesan karna hanya dia yang
mengetahui kunci privatnya sendiri[8]. Penemuan sistem kriptografi kunci publik pada
akhir tahun 1970, dan membawa perubahan yang cepat pada penelitian kriptografi.
Solusi untuk masalah pendistribusian kunci telah ditemukan(disarankan) oleh Diffie
dan Hellman pada tahun 1976. Kriptografi asimetris dengan menggunakan dua kunci
telah disarankan, dimana salah satu kunci merupakan kunci publik dan salah satu
kunci merupakan kunci privat (rahasia) [11]. Contoh algoritma kriptogafi kunci-publik
Enkripsi EK1 (P) = C
Dekripsi DK2 (C) = P
Kunci publik, K1 Kunci privat, K2
Cipher-object, C
Plain-object, P Plain-object, P
Gambar 2.5 Skema Kriptografi Asimetri
Keterangan :
K1 : kunci publik
K2 : kunci privat
P : plaintext
C : ciphertext
EK1(P) : rumus enkripsi
DK2(C) : rumus dekripsi
Kunci enkripsi tidak sama dengan kunci dekripsi, kunci enkripsi bersifat publik
(tidak rahasia) dan dapat diketahui oleh orang lain, sedangkan kunci dekripsi bersifat
privat (rahasia) dan tidak dapat diketahui oleh orang lain yang tidak diinginkan.
2.2.3 Landasan Matematika
Teori bilangan (number theory) adalah teori yang mendasar dalam memahami
kriptografi, khususnya sistem kriptografi kunci-publik. Bilangan yang dimaksud disini
hanyalah bilangan bulat (integer).
2.2.3.1 Sifat Pembagian Pada Bilangan Bulat
Misalkan a dan b adalah dua buah bilangan bulat dengan syarat a ≠ 0. Kita menyatakan bahwa a habis dibagi b (a divides b) jika terdapat bilangan bulat c
2.2.3.2 Teorema Euclidian
Misalkan m dan n adalah dua buah bilangan bulat dengan syarat n>0. Jika m dibagi
dengan n maka terdapat dua buah bilangan bulat unik q (quotient) dan r (remainder),
sedemikian sehingga :
m = nq + r ... (2.1)
dengan 0 ≤ r ≤ n Contoh :
(i) 1987 dibagi dengan 97 memberikan hasil bagi 20 dan sisa 47, atau ditulis
sebagai : 1987 = 97 . 20 + 47
2.2.3.3 Bilangan Prima
Kriptografi kunci asimetri menggunakan bilangan prima yang besar. Sebuah bilangan
bulat positif adalah bilangan prima jika dan hanya jika bilangan tersebut hanya
mempunyai 2 buah bilangan yang dapat membagi bilangan tersebut[3].
Contoh :
(i) Apakah 2 bilangan prima?. Bilangan 2 dapat dibagi oleh bilangan 2 dan 1, maka
2 termasuk bilangan prima.
(ii) Apakah 4 bilangan prima?. Bilangan 4 dapat dibagi oleh bilangan 4, 2, dan 1,
maka 4 tidak termasuk bilangan prima.
(iii) Apakah 7 bilangan prima?. Bilangan 7 dapat dibagi oleh bilangan 7, dan 1,
maka 7 termasuk bilangan prima.
(iv) Apakah 9 bilangan prima?. Bilangan 9 dapat dibagi oleh bilangan 9, 3, dan 1,
maka bilangan 9 tidak termasuk bilangan prima.
2.2.3.4 Relatif Prima
Dua buah bilangan bulat a dan b dikatakan relatif prima jika PBB(a,b) = 1. Jika a dan
b relatif prima, maka terdapat bilangan bulat m dan n sedemikian sehingga
ma + nb = 1 ... (2.2)
(i) 20 dan 3 relatif prima sebab PBB(20,3) = 1. Begitu juga 7 dan 11 relatif prima
karena PBB(7,11) = 1. Tetapi 20 dan 5 tidak relative prima sebab PBB(20,5) = 5 ≠ 1
(ii) Bilangan 20 dan 3 adalah relatif prima karena PBB(20,3) = 1, atau dapat ditulis
2 . 20 + (-13).3 = 1
2.2.4 Kriptografi Algoritma ElGamal
Algoritma ElGamal pada mulanya digunakan untuk pengamanan tanda tangan digital,
dan keamanan dari skema ini terletak pada susahnya menghitung logaritma
diskrit[11]. Algoritma ElGamal dibuat oleh Taher ElGamal pada tahun 1984.
Algoritma ini pada mulanya digunakan untuk digital signature, kemudian
dimodifikasi sehingga juga bisa digunakan untuk enkripsi dan dekripsi. ElGamal
digunakan di dalam perangkat lunak sekuriti yang dikembangkan oleh GNU, program
PGP, dan pada system sekuriti lainnya.
Algoritma membangkitkan pasangan kunci
1. Pilih sembarang bilangan prima p ( p dapat di-share di antara kelompok )
2. Pilih dua buah bilangan acak, g dan x, dengan syarat g < p dan 1≤ x ≤ p-2 3. Hitung
y = gx mod p ... (2.3)
Hasil dari algoritma ini :
Kunci publik : tripel (y,g,p)
Kunci pivat : pasangan (x,p)
Catatan : g dan p tidak rahasia, sebab mereka diperlukan pada perhitungan
enkripsi/dekripsi[8].
Tanda tangan digital – ElGamal
Untuk menandai pesan, M, pilih bilangan acak, k, dimana k relatif prima dengan p-1.
Kemudian hitung
dan gunakan algoritma euclidian extended untuk mengatasi b dengan persamaan
berikut :
M = (xa+xb) mod (p-1) ... (2.5)
pasangan kunci tanda tangan : a dan b. nilai random, k, harus dirahasiakan.
Untuk membutikan tanda tangan, periksa bahwa
ya ab mod p= gM mod p ... (2.6)
setiap tanda tangan ElGamal atau enkripsi membutuhkan nilai baru (k), dan nilai harus
dipilih secara acak. Jika Eve menemukan nilai k yang pernah digunakan Alice, dia
dapat mengetahui kunci privat (x) Alice. Dan jika Eve memperoleh dua pesan yang
tertandatangan atau terenkripsi dengan kunci k yang sama, bahkan dia tidak
mengetahuinya, dia bisa menemukan nilai x [12].
Algoritma Enkripsi/Dekripsi
Enkripsi:
1. Susun plaintext menjadi blok-blok m1, m1, ..., sedemikian sehingga setiap blok
merepresentasikan nilai di dalam selang [0, p-1].
2. Pilih bilangan acak k, yang dalam hal ini 1≤ k ≤ p-2. 3. Setiap blok m di enkripsi dengan rumus
a = gk mod p
b = ykm mod p ... (2.7)
pasangan a dan b adalah cipherteks untuk blok pesan m. Jadi, ukuran cipherteks
dua kali ukuran plainteksnya.
Dekripsi
1. Gunakan kunci privat x untuk mendekripsi a dan b menjadi plainteks m dengan
persamaan :
m = b/ax mod p ... (2.8)
(ax)-1 = ap-1-x mod p ... (2.9) Keterangan :
p : bilangan prima
x : bilangan acak (x<p)
y : kunci publik
m : plainteks
a,b : cipherteks[8]
Contoh algoritma ElGamal dengan file citra grayscale 5x5 piksel
17 34 98 112 34
8 45 22 221 12
19 12 123 243 8
45 78 145 123 67
99 124 167 231 54
34 42 176 56 92
Matriks citra asli 5x5 piksel
• Membangkitkan Kunci
o Bangkitkan bilangan acak prima (p=257)
o Pilih dua buah bilangan acak g dan x, g < p (g=2) dan 1≤x≤p-2 ( x=35) o Hitung y=gx mod p ( y = 235 mod 257 = 8 )
o Kunci publik y=8, g=2, p=257
o Kunci privat x=35, p=257
• Enkripsi Citra
o Anggap setiap matriks citra telah disusun dengan sederetan m1, m2, ....
o Pilih bilangan acak 1≤k≤p-2 (k= 7)
o Hitung nilai a = gk mod p (a = 27 mod 257 = 128) o Hitung b = ykm mod p (sebanyak m)
30 60 52 243 60
256 155 190 133 127
94 127 81 66 256
155 183 14 81 88
84 113 204 196 186
60 59 235 250 117
Matriks cipher citra 5x5 piksel
o Yang akan di kirimkan adalah cipher a dan cipher-image
• Dekripsi
o Hitung nilai (ax)-1 ((ax)-1 = ap-1-x mod p = 128257-1-35 mod 257 = 249) o Hitung m = b/ax mod p (sebanyak cipher citra)
o Sehingga didapat plain citra
17 34 98 112 34
8 45 22 221 12
19 12 123 243 8
45 78 145 123 67
99 124 167 231 54
Matriks citra hasil 5x5 piksel
2.3 Citra
Citra adalah suatu representasi (gambaran), kemiripan, atau imitasi dari suatu objek.
Citra analog adalah citra yang bersifat kontinu, seperti pada gambar pada monitor
televisi, foto sinar-X, foto yang tercetak di kertas foto, lukisan, pemandangan alam,
hasil CT-Scan, gambar-gambar yang terekam pada pita kaset, dan lain sebagainya.
Citra analog tidak dapat dipresentasikan dalam komputer sehingga tidak bisa diproses
di komputer secara langsung. Oleh sebab itu, agar citra ini dapat diproses di komputer,
proses konversi analog ke digital harus dilakukan terlebih dahulu. Citra digital adalah
Namun yang disimpan dalam memori hanyalah angka-angka yang menunjukkan besar
intensitas pada masing-masing pixel tersebut[16]. Berikut contoh citra grayscale
200x300 piksel dengan skala keabuan 256, diambil sebagian dari sudut kiri bawah
sebesar 11x10 piksel
Gambar 2.6 Intensitas Citra
Pada gambar 2.6 terlihat angka-angka yang menunjukkan besar intensitas dari
potongan gambar, dan gambar tersebut mempunyai besar intensitas warna dengan
skala keabuan 8–bit.
2.3.1 Citra Bitmap (*.bmp)
Citra bitmap sering juga disebut sebagai citra raster. Citra yang menyimpan data kode
citra secara digital dan lengkap (cara penyimpanannya adalah per piksel). Citra bitmap
dipresentasikan dalam bentuk matriks atau dipetakan dengan menggunakan bilangan
biner atau sistem bilangan lain. Bitmap merupakan media elektronik yang paling tepat
untuk gambar-gambar dengan perpaduan gradiasi warna yang rumit, seperti foto dan
lukisan digital. Citra bitmap biasanya diperoleh dengan cara scanner, camera digital,
video capture, dan lain-lain. BMP merupakan format umum untuk menyimpan citra
bitmap dikembangkan oleh microsoft [16].
2.3.2 Citra JPEG (*.jpg)
Format joint photographers experts group (JPEG) suatu jenis format citra yang
atau layanan online yang lain. Format JPEG mendukung pewarnaan CMYK, RGB, dan
grayscale. JPEG menggunakan format 24-bit dan oleh sebab itu informasi semua
warna dalam gambar RGB dipertahankan tetapi kompresi ukuran dengan secara
selektif menghilangkan data awal warna persepsi manusia. Jika suatu kompresi
dilakukan dengan level tinggi, maka kualitas gambar akan kurang baik, sebaliknya
jika kompresi dilakukan dengan level rendah, maka kualitas gambar akan semakin
tinggi [10]. Suatu jenis kompresi gambar, yaitu JPEG, telah dikembangkan untuk
digunakan sebagai alat kompresi yang efisien dan fleksibel. Kompresi gambar JPEG
memiliki empat mode operasi yang dirancang untuk mendukung berbagai aplikasi
gambar diam dan kontinu. Kebanyakan aplikasi menggunakan baseline coder/decoder
sekuensial yang sangat efektif dan cukup untuk berbagai aplikasi.
2.4 Mean Squared Error (MSE)
Perbaikan citra pada dasarya merupakan proses yang bersifat subjektif sehingga
parameter keberhasilannya bersifat subjektif pula. Untuk itu perlu adanya alat ukur
kuantitatif yang bisa digunakan untuk mengukur kinerja prosedur perbaikan citra. Alat
ukur ini disebut mean squared error (MSE) yang dinyatakan dengan persamaan
sebagai berikut.
��� = ���1 ∑ ∑� (��(�,�)− ��(�,�))2 �=1
�
�=1 ... (2.10)
Keterangan :
M : panjang citra
N : lebar citra
��(�,�) : intensitas citra di titik (i,j) sebelum terkena noise (sebelum citra berubah) ��(�,�) : intensitas citra di titik (i,j) setelah noise dihilangkan.
Semakin kecil nilai MSE, semakin bagus prosedur perbaikan citra yang
digunakan. Artinya, kualitas citra setelah mengalami perbaikan noise hampir sama
BAB III
ANALISIS DAN PERANCANGAN SISTEM
3.1 Analisis Sistem
Dalam pembuatan sistem ini, sebelum melakukan pemrograman, terlebih dahulu
menganalisis permasalahan yang ada dan syarat-syarat yang diperlukan dalam
pembuatan sistem ini.
3.1.1 Analisis Masalah
Permasalahan yang akan diselesaikan dengan adanya sistem ini adalah pengamanan
file text dan file citra dari pihak-pihak yang tidak berkepentingan dari pengiriman
pesan yang dilakukan menggunakan media internet, supaya pesan yang dikirirm
tersebut tidak dapat dibaca dan supaya keamanan pesan tersebut juga bisa terjaga dari
penyadap. Sistem ini melakukan pengamanan pesan teks menggunakan steganografi
teknik end of file (EOF), dan citra asli atau citra hasil penyisipan akan diamankan
menggunakan kriptografi algoritma ElGamal. End of file (EOF) merupakan teknik
penyembunyian pesan yang dilakukan ke ujung file yang akan disisipi, karena end of
file menambahkan keujung file, maka media penampung tersebut akan bertambah
besar, dan pesan yang disisipi juga tidak terbatas. ElGamal merupakan kriptografi
asimetri, ElGamal menggunakan dua kunci yang berbeda, ada kunci publik dan kunci
privat. Kunci publik digunakan untuk enkripsi pesan, sedangkan kunci privat
digunakan untuk dekripsi pesan. Kunci publik dapat diketahui oleh orang lain,
sedangkan kunci privat harus dirahasiakan dan hanya dapat diketahui oleh pengirim
User
Meningkatkan keamanan file text
dan file citra Metode
Material Sistem
Pesan yang dikirim rahasia
Harus dilindungi dari orang lain
Pesan berupa citra dan teks
Cipher objek berupa citra Pertukaran kunci private dan publik
Ukuran citra yang besar
Membutuhkan biaya yang mahal untuk pendistribusian yang lebih aman
Media pendistribusian harus aman
Teks dan citra harus digabung ke dalam citra
Sistem masih ada yang manual
Banyak tingkat pengamanan rendah
Semakin banyak pengamanan, semakin banyak tingkat pembobolan
Gambar 3.1 Ishikawa Diagram untuk Analisis Permasalahan Sistem
Diagram ishikawa pada gambar 3.1 menunjukkan ada dua hal yang paling
utama, yaitu bagian permasalahan utama dan penyebabnya. Permasalahan yang
dihadapi adalah untuk meningkatkan keamanan file text dan file citra, sedangkan
penyebabnya ada 4 hal antara lain: teknologi yaitu : pertama metode yang digunakan
adalah kriptografi dan steganografi, kedua user yaitu pengirim dan penerima pesan,
ketiga material, dan yang ke empat dari segi sisi sistem yang sudah ada sebelumnya.
3.1.2 Analisis Persyaratan
Analisis persyaratan dilakukan untuk mengidentifikasi dan menyatakan persyaratan.
Dalam suatu sistem analisis persyaratan dibagi menjadi dua bagian yaitu persyaratan
fungsional (functional requirement) dan persyaratan nonfungsional (nonfunctional
requirement). Persyaratan fungsional adalah deskripsi mengenai aktivitas dan layanan
yang harus diberikan / disediakan oleh sebuah sistem, dan persyaratan nonfungsional
merupakan deskripsi mengenai fitur, karakteristik, dan batasan lainnya yang
menentukan apakah sistem memuaskan atau tidak.
3.1.2.1 Persyaratan Fungsional
Dalam pengaman file text dan file citra menggunakan steganografi teknik end of file
(EOF) dengan kombinasi kriptografi ElGamal ini mempunyai persyaratan fungsional
1. File text yang akan disisipkan adalah file text berformat *.txt atau input-an secara
langsung
2. File citra yang digunakan adalah file citra berformat *.bmp atau *.jpg
3. Untuk proses penyisipan, harus mempunyai file citra dan file text
4. Bilangan prima yang akan dibangkitkan dalam rentang 1024-bit (1-Mb) dengan
jumlah 1 – 309 digit, atau dapat dimasukkan secara langsung.
5. Bilangan-bilangan yang digunakan untuk pembangkitan kunci enkripsi ElGamal
adalah bilangan bulat positif, dan pembangkitan bilangan prima tidak seutuhnya
mengikuti algoritma Fermat’s untuk mempercepat proses pembangkitan bilangan
prima.
6. File citra yang sudah disisipi teks atau dienkripsi disimpan dalam format *.bmp
7. Untuk melakukan perhitungan mean squared error (MSE), memerlukan 2 buah
objek gambar yang mempunyai resolusi tinggi dan lebar yang sama
8. Kunci disimpan dalam bentuk *.txt.
9. Teks hasil pengamanan disimpan dalam bentuk *.txt
3.1.2.2 Persyaratan Nonfungsional
Persyaratan nonfungsional meliputi performa, mudah untuk dipelajari dan digunakan,
hemat biaya, dokumentasi, manajemen kualitas, dan kontrol.
1. Performa
Perangkat lunak yang akan dibangun harus dapat menunjukkan hasil dari proses
enkripsi dan dekripsi citra digital maupun kunci yang dilakukan oleh sistem.
2. Mudah dipelajari dan digunakan
Perangkat lunak yang akan dibangun harus sederhana agar mudah dipelajari oleh
pengguna (user).
3. Hemat biaya
Perangkat lunak yang dibangun tidak memerlukan perangkat tambahan ataupun
perangkat pendukung dalam proses eksekusinya.
4. Dokumentasi
Perangkat lunak yang akan dibangun dapat menyimpan citra digital dan teks yang
5. Manajemen kualitas
Perangkat lunak yang akan dibangun harus memiliki kualitas yang baik yaitu
proses enkripsi, penyisipan, dekripsi, dan ekstraksi dan kunci relatif cepat.
6. Kontrol
Perangkat lunak yang dibangun harus memilik message error (pesan kesalahan)
jika pengguna tidak lengkap memasukkan input-an dan input-an yang
dimasukkan salah.
3.1.3 Pemodelan Sistem
Sistem ini menggunakan dua metode untuk pengamanan file text dan file citra antara
lain adalah steganografi teknik end of file (EOF) dan kriptografi algoritma ElGamal.
Pesan teks yang akan disembunyikan, akan disisipkan terlebih dahulu kedalam citra
digital, setelah itu sistem bisa menyimpan citra hasil penyisipan maupun mengenkripsi
citra digital tersebut, sebelum proses enkripsi, terlebih dahulu dilakukan
pembangkitan kunci. Dan setelah pembangkitan kunci selesai, lakukan proses enkripsi
terhadap pesan tersebut. Setelah proses enkripsi pesan lakukan penyimpanan terhadap
data-data yang akan digunakan untuk proses dekripsi. Untuk proses pengungkapan
pesan, harus ada cipher-image atau stego-image, jika kita menggunakan cipher-image
maka terlebih dahulu lakukan dekripsi terhadap pesan tersebut, dan setelah proses
dekripsi, baru dilakukan proses ekstraksi, atau dapat menyimpan gambar secara
langsung. Jika pengungkapan menggunakan stego-image maka kita bisa langsung
melakukan ekstraksi. Setelah semuanya selesai, maka kita bisa melakukan
penyimpanan pesan tersebut, dimana penyimpanan pesan gambar dan teks dilakukan
secara bersamaan dengan nama yang sama, tetapi dalam format yang berbeda.
3.1.3.1 Perancangan Unified Modelling Language (UML)
Unified modeling language (UML) adalah keluarga notasi grafis yang didukung oleh
meta-model tunggal, yang membantu pendeskripsian dan desain sistem perangkat
lunak, khususnya sistem yang dibangun menggunakan pemrograman berorientasi
managament group (OMG), sebuah konsorsium terbuka yang terdiri dari banyak
perusahaan[4]. Perancangan UML yang akan dibahas untuk mendeskripsikan sistem
yang akan dibangun adalah use case diagram, activity diagram, sequence diagram,
dan class diagram.
3.1.3.1.1 Use Case Diagram
Use case adalah deskripsi fungsi dari sebuah sistem dari perspektif pengguna. Use
case bekerja dengan cara mendeskripsikan tipikal interaksi antara user (pengguna)
sebuah sistem dengan sistemnya sendiri melalui sebuah cerita bagaimana sebuah
sistem dipakai. Use case adalah alat bantu terbaik guna menstimulasi pengguna
potensial untuk mengatakan tentang suatu sistem dari sudut pandangnya. Diagram use
case menunjukkan 3 aspek dari sistem yaitu: actor, use case, dan system/sub system
boundary. Stereotype adalah sebuah model khusus yang terbatas untuk kondisi
tertentu. Untuk menunjukkan stereotype digunakan simbol “<<” diawalnya dan
ditutup “>>” diakhirnya. <<extends>> digunakan untuk menunjukkan bahwa satu
use case merupakan tambahan fungsional dari use case lain jika kondisi atau syarat
tertentu yang terpenuhi. Sedangkan <<include>> digunakan untuk menggambarkan
bahwa suatu use case seluruhnya merupakan fungsionalitas dari use case lainnya[4].
Berikut ini merupakan gambaran use case diagram untuk sistem yang akan dibangun :
User
Bangkitkan kunci Enkripsi Elgamal
«extends»
Kontrol Proses
Dekripsi Elgamal
Ekstrak EndOfFile Pengamanan
«uses»
Embed EndOfFile
Pengungkapan
Hitung MSE «uses»
«uses»
«uses»
«uses»
«uses»
«uses»
Gambar 3.2 menunjukkan use case diagram dari sistem yang akan dibangun,
dimana user mempunyai kontrol untuk melakukan beberapa fungsi yang diinginkan,
yaitu pengamanan, pengungkapan, dan hitung MSE. Pada pengamanan terlihat
beberapa fungsi yaitu embed dengan teknik end of file dan enkripsi dengan algoritma
ElGamal, dan pada saat enkripsi dibutuhkan pembangkitan kunci yang akan
digunakan untuk enkripsi, dan kunci dapat dibangkitkan secara langsung oleh sistem,
dan juga dapat dimasukkan secara manual oleh user. Pada fungsi pengungkapan
terdapat fungsi dekripsi dengan algoritma ElGamal dan fungsi untuk mengekstraksi
dengan teknik end of file, pada saat dekripsi dibutuhkan kunci yang akan dipakai
untuk dekripsi. Terdapat juga fungsi untuk menghitung nilai MSE.
3.1.3.1.2 Activity Diagram (Diagram Aktivitas)
Activity diagram adalah teknik untuk menggambarkan logika prosedural, proses
bisnis, dan jalur kerja. Dalam beberapa hal, diagram ini memainkan peran mirip
sebuah diagram alir, tetapi perbedaan prinsip antara diagram ini dan notasi diagram
alir adalah diagram ini mendukung behavior paralel[4]. Berikut ini merupakan
gambaran activity diagram untuk aplikasi yang akan dibangun :
Tabel. 3.1 Simbol Simbol yang Sering Dipakai Pada Activity Diagram[7]
Simbol Keterangan
Titik awal
Titik Akhir
Activity
Pilihan untuk pengambilan keputusan
Fork; digunakan untuk menunjukkan kegiatan yang
dilakukan secara paralel atau untuk menggabungkan dua
kegiatan paralel menjadi satu.
Tanda waktu
Tanda pengiriman
Tanda penerimaan
Aliran akhir (Flow final)
Berikut ini merupakan gambar activity diagram untuk pengamanan:
User menekan tombol buka gambar asli opendialog dan membaca gambar ke picturebox
Menginput teks(Manual)
User menekan tombol buka teks opendialog dan membaca teks ke richTextbox
User menekan tombol Periksa gambar dan Teks
Sistem memeriksa apakah kedua objek mengandung kunci
User menekan tombol Embed
Sistem menyisipkan teks ke citra (teknik End Of FIle Horizontal)
Pilih Besar Maksimum bilangan Prima
User menekan tombol-tombol generate kunci Sistem memberikan respon kunci
User menekan tombol Enkripsi
Sistem melakukan enkripsi dengan Algoritma ElGamal
User menekan tombol simpan data
Sistem menyimpan cipher dan kunci
User Sistem
Gambar 3.3 Activity Diagram Pengamanan
Gambar 3.3 menggambarkan aktivitas yang dilakukan pada saat pengamanan.
disediakan, atau user juga dapat menginputkan teks secara manual dengan menuliskan
langsung di dalam richTextBox yang telah disediakan, selanjutnya user akan menekan
tombol periksa teks dan citra kemudian sistem akan memeriksa citra dan teks tersebut
apakah mempunyai deretan byte yang sama dengan penanda, jika ada, maka sistem
akan menginformasikan bahwa data tersebut mengandung deretan kunci dan
selanjutnya dilakukan proses embedding. Selanjutnya user menekan tombol untuk
pembangkitan kunci, dan sistem akan membangkitkan kunci sesuai dengan proses
pengacakan yang akan diimplementasikan, atau user juga dapat memasukkan
kunci-kunci yang akan digunakan secara manual untuk enkripsi, selanjutnya dilakukan
proses enkripsi.
Berikut ini merupakan gambar activity diagram untuk membangkitkan kunci
User menekan tombol bangkitkan (Bil. Prima) Sistem membangkitkan bilangan acak
Sistem mengecek apakah bilangan prima
User menekan tombol Bangkitkan (Nilai g)
User Sistem
User menekan tombol bangkitkan x
Sistem membangkitkan bilangan acak < p-1
User menekan tombol hitung y
Sistem menghitung nilai y
Sistem membangkitkan bilangan acak < p
Sistem mengecek apakah relatif prima dengan bilangan prima Sistem membangkitkan bilangan acak < p-1
User menekan tombol Bangkitkan (Nilai k)
Gambar 3.4 Activity Diagram Pembangkitan Kunci
Gambar 3.4 merupakan gambar activity diagram untuk menunjukkan aktivitas
enkripsi, dalam activity diagram pada gambar 3.4 menunjukkan user akan menekan
tombol bangkitkan pada bilangan prima, kemudian sistem akan melakukan
pengacakan dan mengecek apakah bilangan tersebut bilangan prima, jika tidak maka
sistem akan kembali membangkitkan bilangan acak, kemudian jika bilangan acak
tersebut sudah merupakan bilangan prima, maka akan dilanjutkan untuk
membangkitkan bilangan acak untuk g, dan x, dimana nilai g dan x bilangan bulat
positif lebih kecil dari bilangan prima. Selanjutnya user akan menekan tombol untuk
menghitung nilai y, selanjutnya user akan menekan tombol untuk membangkitkan
nilai k, kemudian sistem mengacak bilangan dan mengecek apakah bilangan acak
tersebut lebih kecil dari bilangan prima (p-2) dan relatif prima dengan bilangan prima
tersebut.
Berikut ini merupakan digram activity untuk melakukan dekripsi dan ekstraksi :
User menekan tombol buka gambar cipher opendialog dan membaca gambar ke picturebox
User menekan tombol Dekripsi
Sistem melakukan dekripsi Algoritma ElGamal
Sistem mengecek apakah ada teks disisipi
Sistem melakukan ekstraksi
Sistem menampilkan citra asli dan teks asli
User Sistem
User menekan tombol buka kunci
opendialog dan menampilkan ke edittext
User menekan tombol Ekstrak
Kunci Salah
Sistem menampilkan hasil ke pictureBox Kunci benar
Ada teks Tidak ada teks
Gambar 3.5 menunjukkan proses yang dilakukan untuk proses pengungkapan
kembali citra dan teks. Pesan tersebut akan didekripsi dan di ekstraksi untuk
mengetahui gambar asli dan teks asli yang terdapat dalam cipher tersebut. Hal yang
akan dilakukan oleh user adalah menekan tombol untuk menginputkan cipher citra,
dan kemudian menekan tombol untuk membuka kunci dan cipher a yang akan
digunakan untuk dekripsi. Selanjutnya user akan menekan tombol dekripsi,
dilanjutkan dengan proses pada sistem untuk melakukan perhitungan, dan jika kunci
benar, maka akan ditampilkan gambar hasil dekripsi, jika tidak sesuai, maka sistem
akan memberikan respon bahwa kunci tidak sesuai. Setelah proses dekripsi, user akan
menekan tombol ekstraksi dan sistem akan melakukan pengecekan tanda, jika tanda
ada, maka sistem akan menampilkan teks asli dan gambar asli, tetapi jika tidak
menemukan tanda, maka sistem akan memberikan respon bahwa tidak ada teks yang
disisipi pada citra tersebut.
Berikut merupakan gambar activity diagram untuk melakukan proses
User menekan tombol buka gambar 1 opendialog dan membaca gambar ke picturebox
Sistem mengecek lebar dan tinggi kedua citra sama
Sistem menampilkan nilaiMSE
User Sistem
User menekan tombol buka gambar 2
opendialog dan membaca gambar ke picturebox
User menekan tombol Bandingkan
Sistem melakukan perhitungan MSE dan menampilkan MSE
Gambar 3.6 Activity Diagram Hitung MSE
Gambar 3.6 menunjukkan aktivitas pembandingan antara 2 buah gambar,
pertama user akan menginputkan gambar 1 dan gambar 2, dan user menekan tombol
bandingkan, kemudian sistem akan melakukan compare tinggi dan lebar gambar 1 dan
gambar 2, jika tinggi dan lebar sama, maka akan lanjut ke proses hitung MSE, jika
tidak akan diminta untuk menginputkan 2 buah gambar yang memiliki tinggi dan lebar
yang sama, setelah sistem selesai melakukan perhitungan MSE, maka sistem akan
menampilkan nilai MSE antara kedua gambar tersebut.
3.1.3.1.3 Sequence Diagram
Sequence diagram digunakan untuk menggambarkan perilaku pada sebuah skenario.
Diagram ini menunjukkan sejumlah contoh objek dan pesan yang diletakkan diantara
Pengamanan
User
Pengungkapan Hitung MSE
Embed
Stego-image Bangkitkan Kunci
Kunci-kunci Enkripsi
Cipher image
Input cipher dan kunci
Stego-image Enkripsi
Gambar asli dan teks asli Ekstrak
Input gambar 1 dan gambar 2
Bandingkan
Nilai MSE
Gambar 3.7 Sequence Diagram Sistem
Pada gambar 3.7 menunjukkan diagram sequence sistem. Pertama sistem akan
melakukan proses pengamanan. Pada proses pengamanan terdapat beberapa proses
yang harus dilakukan, yaitu proses embedding dan proses enkripsi. Setelah selesai
proses pengamanan, lanjut kedalam proses pengungkapan, dimana sistem akan
melakukan proses dekripsi kemudian proses ekstraksi. Untuk mengetahui apakah
pesan dapat dikembalikan kedalam bentuk semula, maka sistem akan melakukan
compare dengan gambar sebelum pengamanan dan sesudah pengamanan, kemudian
3.1.3.1.4 ClassDiagram
Class diagram sangat membantu dalam visualisasi struktur kelas dari suatu sistem.
Hal ini disebabkan karena class adalah deskripsi kelompok objek-objek dengan
properti, perilaku (operasi) dan relasi yang sama. Class diagram bisa memberikan
pandangan global atas sebuah sistem. Berikut ini gambaran class diagram untuk
aplikasi yang akan dibangun :
+Hitung() -Plain image : bitmap -Plain text : string -Stego image : bitmap
endOfFile
Gambar 3.8 Rancangan Class diagram Sistem
Gambaran diagram kelas pada gambar 3.8 menunjukkan fungsi-fungsi yang ada
dalam sistem dan memperlihatkan atribut dan operasi (method) yang digunakan dalam
setiap kelas. Kelas-kelas rancangan sistem menunjukkan hubungan yang bisa
Tabel 3.2 Kamus Data
Nama Tipe Data Keterangan
Plain-image File berformat *.bmp dan
*.jpg
Citra digital yang akan
dienkripsi
Cipher-image File berformat *.bmp Citra digital terenkripsi yang
akan didekripsi
Plain-text File berformat txt Teks yang akan disisipi kedalam
citra digital
Stego-image File berformat *.bmp Citra digital yang sudah disisipi
teks
Nilai p Integer Kunci privat
Nilai g Integer Kunci publik
Nilai x Integer Kunci privat
Nilai y Integer Nilai perhitungan logaritma
diskrit (kunci publik)
Nilai k Integer Kunci untuk enkripsi
a dan b Integer Cipher-object
3.1.4 Perancangan Flowchart
Flowchart merupakan gambar atau bagan yang memperlihatkan urutan dan hubungan
antar proses beserta pernyataannya. Gambaran ini dinyatakan dengan simbol. Dengan
demikian setiap simbol menggambarkan proses tertentu, dan antara proses
digambarkan dengan garis penghubung[18]. Aplikasi yang akan dibangun ini
mempunyai skema yang bisa digambarkan dengan flowchart. Pada bagian ini akan
dijelaskan urutan dan langkah-langkah pembuatan sistem yang dijelaskan pada
flowchart aplikasi kemudian akan dijelaskan dalam bagian-bagian flowchart algoritma
yang digunakan.
3.1.4.1 Flowchart Aplikasi
Flowchart gambaran umum, untuk proses pengamanan pertama masukkan citra dan
didapatkan stego-image dilanjutkan dengan proses enkripsi dengan algoritma
ElGamal, setelah itu dihasilkan cipher stego-image. Pada proses pengungkapan
pertama masukkan cipher stego-image, setelah itu dilakukan proses dekripsi dan
dilakukan proses ekstraksi dan setelah proses ekstraksi didapatkan plain-image dan
plain-text. Berikut ini digambarkan proses pengamanan dan pengungkapan :
Start
End Input citra
Cipher-Stego Image Proses Embedding
EOF
Proses enkripsi ElGamal Input teks
Start
End Input citra
Cipher
Plain citra, Plain Text Proses Dekripsi
El-Gamal
Proses ekstraksi Teknik EOF
Proses pengamanan data Proses pengungkapan kembali
Gambar 3.9 Flowchart aplikasi
Keterangan :
Embedding : proses penyisipan pesan ke media penampung
Enkripsi : proses pengacakan pesan
Cipher : pesan yang sudah di-enkripsi
Stego-image : gambar yang sudah disisipi pesan
Dekripsi : proses pengembalian pesan kebentuk semula
Ekstraksi : proses pemisahan pesan dengan media penampung
Plain-citra : gambar asli
3.1.4.2 Flowchart Proses EmbedEnd Of File
Flowchart pada gambar 3.10 menunjukkan gambaran embedding proses end of file.
Pertama dilakukan peng-input-an citra dan teks, setelah itu cari akhir dari citra
tersebut, setelah akhir dari citra didapatkan, diberikan tanda khusus pertama yang
menandakan bahwa teks akan dimulai setelah tanda khusus pertama. Setelah teks
selesai disisip ditutup dengan tanda khusus kedua yang menunjukkan ujung dari teks
tersebut, dan setelah selesai, maka akan didapatkan stego-image. Berikut ini adalah
gambaran dari proses tersebut :
Start Pc = Input Citra;
Pt = Input teks;
If( Penanda >= Panjang(Pt)) R1 = Pt[Penanda] ;
Penanda++ ;
R1 = 0; If( Penanda >= Panjang(Pt))
R1 = Pt[Penanda] ; Penanda++ ;
R1 = 0; If( Penanda >= Panjang(Pt))
R1 = Pt[Penanda] ; Penanda++ ;
Pc(k, (i+t) ) = (r1, g1, b1) If (Penanda >= Panjang(Pt) )
K++
If (Penanda >= Panjang(Pt) ) I++
Pc