IMPLEMENTASI S
(LSB) DENGA
Diajukan untuk meleng
DEP
FAKULTAS MATEM
UNIV
I STEGANOGRAFI LEAST SIGNIFICA
GAN MODIFIKASI VIGENERE CIPHE
PADA CITRA DIGITAL
SKRIPSI
ngkapi tugas dan memenuhi syarat untuk menc Sarjana Sains
HASINA TONI
110803029
EPARTEMEN MATEMATIKA
EMATIKA DAN ILMU PENGETAHUA
IVERSITAS SUMATERA UTARA
MEDAN
2015
ICANT BIT
HER
encapai gelar
DEP
FAKULTAS MATEM
UNIVE
PADA CITRA DIGITAL
SKRIPSI
HASINA TONI
110803029
EPARTEMEN MATEMATIKA
EMATIKA DAN ILMU PENGETAHUA
VERSITAS SUMATERA UTARA
MEDAN
2015
i
PERSETUJUAN
Judul : Implementasi Steganografi Least Significant Bit (LSB) Dengan Modifikasi Vigenere Cipher Pada Citra Digital
Kategori : Skripsi
Nama : Hasina Toni
Nomor Induk Mahasiswa : 110803029
Program Studi : Sarjana (S1) Matematika
Departemen : Matematika
Fakultas : Matematika Dan Ilmu Pengetahuan Alam
(FMIPA) Universitas Sumatera Utara
Disetujui di Medan, Juli 2015
Komisi Pembimbing:
Pembimbing 2, Pembimbing 1,
Dr. Suyanto, M.Kom Dr. Syahriol Sitorus, M.IT
NIP. 19590813 198601 1 002 NIP. 19710310 199703 1 004
Disetujui oleh
Departemen Matematika FMIPA USU Ketua,
Prof. Dr. Tulus, M.Si
ii
IMPLEMENTASI STEGANOGRAFI LEAST SIGNIFICANT BIT (LSB) DENGAN MODIFIKASI VIGENERE CIPHER
PADA CITRA DIGITAL
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, Juli 2015
iii
PENGHARGAAN
Assalamu’alaikum Wr. Wb.
Puji syukur penulis ucapkan kehadirat Allah SWT atas rahmat dan hidayah-Nya
sehingga penulis dapat menyelesaikan skripsi yang berjudul Implementasi
Steganografi Least Significant Bit (LSB) Dengan Modifikasi Vigenere cipher
Pada Citra Digital ini dalam waktu yang telah ditetapkan. Terimakasih penulis
sampaikan kepada:
1. Bapak Dr. Syahriol Sitorus, M.IT dan Bapak Dr. Suyanto, M.Kom selaku
dosen pembimbing yang berkenan dan rela mengorbankan waktu, tenaga dan
pikiran guna memberikan petunjuk dan bimbingannya dalam penulisan skripsi
ini.
2. Ibu Dra. Normalina Napitupulu, M.Sc dan Bapak Dr. Sawaluddin, M.IT
selaku dosen pembanding atas kritik dan saran yang membangun dalam
penyempurnaan skripsi ini.
3. Bapak Prof. Dr. Tulus, M.Si dan Ibu Dr. Mardiningsih, M.Si selaku Ketua dan
Sekretaris Departemen Matematika FMIPA USU beserta staf pegawai.
4. Bapak Dr. Sutarman, M.Sc selaku Dekan FMIPA USU beserta staf pegawai.
5. Terkhusus untuk Ayahanda Harian Toni, Ibunda Mas’ad Thalib Aziz, saudara
penulis Haifah Toni serta keluarga besar penulis yang telah memberikan
banyak bantuan baik materi, moral maupun spiritual.
6. Teman-teman penulis Muni, Amik, Donna, Joe, Alin, Mitra, Ridwan, Iman,
Ningsih, Eka, Rahmad, Ai, Fitri, Mala, Zahara dan teman-teman Matematika
2011 yang lainnya yang tidak dapat disebutkan satu per satu atas segala
bentuk dukungannya.
7. M. Budiman Khanafi Manurung yang selalu memberikan semangat dan
dukungannya.
8. Rekan – rekan Asisten Laboratorium S1 Matematika dan kepada semua pihak
iv
mengharapkan kritik dan saran yang membangun demi penyempurnaan skripsi ini
v
IMPLEMENTASI STEGANOGRAFI LEAST SIGNIFICANT BIT (LSB) DENGAN MODIFIKASI VIGENERE CIPHER
PADA CITRA DIGITAL
ABSTRAK
Steganografi merupakan teknik menyembunyikan pesan rahasia di dalam media digital agar orang lain tidak menyadari ada suatu pesan rahasia di dalam media tersebut. Agar pesan rahasia yang disembunyikan lebih aman, dapat menggunakan teknik kriptografi untuk menyandikan pesan rahasia ke dalam karakter yang tidak dapat dimengerti maknannya. Algortima yang digunakan dalam penelitian ini adalah algoritma Steganografi Least Significant Bit (LSB) dan algoritma modifikasi Vigenere Cipher. Hasil akhir dari penelitian ini adalah sebuah aplikasi steganografi pada citra digital dengan metode Least Significant Bit (LSB) dan modifikasi Vigenere Cipher yang dapat dijalankan pada komputer. Aplikasi ini dapat menyisipkan pesan teks pada citra serta dapat melakukan proses enkripsi dan deskripsi pada pesan yang ingin disisipkan.
vi ABSTRACT
Steganography is a teachnique to hide a secret message in digital media so that other people can’t realize that is a message in that media. To keep the message safer, writer use cryptograph technique to encode the secret message into understanding character. Algorithm that use in the research is Steganograph Least Significant Bit (LSB) and Vigenere Cipher algorithm. The result of the research is an steganograph application in digital media with Least Significant Bit (LSB) and Vigenere Cipher that can run in computer. This application can insert text message in image also can do encryption and decryption process in text that want to insert.
vii
DAFTAR LAMPIRAN xii
BAB 1 PENDAHULUAN 1
1.7 Metodologi Penelitian 4
BAB 2 LANDASAN TEORI 5
2.1 Kriptografi 5
2.1.1 Pengertian Kriptografi 5
2.1.2 Sejarah Kriptografi 5
2.1.3 Terminologi dan Konsep Dasar Kriptografi 7
2.1.4 Jenis Kriptografi 9
2.1.5 Algoritma Vigenere Cipher 10
2.1.6 Metode Kasiski 12
2.2 Steganografi 13
2.2.1 Pengertian Steganografi 13
2.2.2 Sejarah Steganografi 14
2.2.3 Terminologi dan Konsep Dasar Steganografi 14
2.2.4 Proses Steganografi 15
2.2.5 Least Significant Bit (LSB) 16
2.2.6 Ukuran Teks yang Disembunyikan 17
2.3 Teori Dasar Citra Digital 18
2.3.1 Pengertian Citra Digital 18
2.3.1.1 Citra Analog 18
2.3.1.2 Citra Digital 18
2.3.2 Jenis – Jenis Citra Digital 18
2.4 Penelitian Terdahulu 20
viii
BAB 4 IMPLEMENTASI 30
4.1 Kebutuhan Perangkat Lunak dan Perangkat Keras 30
4.2 Implementasi 30
4.2.1 Proses Enkripsi dan Encoding 31
4.2.2 Proses Decoding dan Deskripsi 35
4.3 Analisis dalam Aplikasi 38
4.4 Hasil Pengujian 43
4.4.1 Hasil Kriptografi 43
4.4.2 Hasil Steganografi 45
BAB 5 KESIMPULAN DAN SARAN 47
5.1 Kesimpulan 47
5.2 Saran 47
DAFTAR PUSTAKA 48
ix
DAFTAR TABEL
Nomor Judul Halaman Tabel
2.1 Persegi vigenere cipher 11
4.1 Kode ASCII pesan 38
4.2 Kode ASCII kunci 39
4.3 Proses enkripsi 40
4.4 Kode ASCII dan biner dari cipherteks 41
x
Nomor Judul Halaman Gambar
1.1 Diagram konsep proses penyembunyian pesan 4
2.1 (a) Sebuah scytale, (b) Pesan ditulis secara horizontal, baris
kriptografi simetri 9
2.6 (a) Skema enkripsi kriptografi asimetri, (b) Skema deskripsi
kriptografi asimetri 10
2.7 Proses penyembunyian pesan rahasia ke dalam media digital
dengan teknik steganografi 15
2.8 (a) Skema encoding, (b) Skema decoding 16
2.9 Contoh MSB dan LSB 16
2.10 (a) Citra biner, (b) Representasi citra biner 19
2.11 (a) Citra grayscale, (b) Citra warna 20
3.1 (a) Flowchart enkripsi dan encoding, (b) Flowchart decoding
dan deskripsi 22
3.2 Flowchart proses enkripsi 24
3.3 Flowchart proses deskripsi 25
3.4 Flowchart proses encoding 27
3.5 Flowchart proses decoding 28
4.1 Halaman utama 31
4.2 Pemandangan.PNG 32
4.3 Halaman enkripsi dan encoding 1 32
4.4 Halaman enkripsi dan encoding 2 33
4.5 Pop-up window pilih gambar 1 33
xi
4.7 Pop-up window simpan gambar 34
4.8 HASIL.PNG 35
4.9 Halaman decoding dan deskripsi 1 35
4.10 Pop-up window pilih gambar 2 36
4.11 Halaman decoding dan deskripsi 2 36
4.12 Halaman decoding dan deskripsi 3 37
4.13 Halaman decoding dan deskripsi 4 37
4.14 Pixel citra 42
4.15 Citra dalam bentuk biner 43
xii
Nomor Judul Halaman
1 Fungsi utama 50
2 Fungsi enkripsi dan encoding 51
3 Fungsi decoding dan deskripsi 56
4 Fungsi peringatan pesan 60
5 Fungsi peringatan kunci 61
6 Fungsi peringatan gambar 62
v
IMPLEMENTASI STEGANOGRAFI LEAST SIGNIFICANT BIT (LSB) DENGAN MODIFIKASI VIGENERE CIPHER
PADA CITRA DIGITAL
ABSTRAK
Steganografi merupakan teknik menyembunyikan pesan rahasia di dalam media digital agar orang lain tidak menyadari ada suatu pesan rahasia di dalam media tersebut. Agar pesan rahasia yang disembunyikan lebih aman, dapat menggunakan teknik kriptografi untuk menyandikan pesan rahasia ke dalam karakter yang tidak dapat dimengerti maknannya. Algortima yang digunakan dalam penelitian ini adalah algoritma Steganografi Least Significant Bit (LSB) dan algoritma modifikasi Vigenere Cipher. Hasil akhir dari penelitian ini adalah sebuah aplikasi steganografi pada citra digital dengan metode Least Significant Bit (LSB) dan modifikasi Vigenere Cipher yang dapat dijalankan pada komputer. Aplikasi ini dapat menyisipkan pesan teks pada citra serta dapat melakukan proses enkripsi dan deskripsi pada pesan yang ingin disisipkan.
vi ABSTRACT
Steganography is a teachnique to hide a secret message in digital media so that other people can’t realize that is a message in that media. To keep the message safer, writer use cryptograph technique to encode the secret message into understanding character. Algorithm that use in the research is Steganograph Least Significant Bit (LSB) and Vigenere Cipher algorithm. The result of the research is an steganograph application in digital media with Least Significant Bit (LSB) and Vigenere Cipher that can run in computer. This application can insert text message in image also can do encryption and decryption process in text that want to insert.
BAB 1
PENDAHULUAN
1.1Latar Belakang
Dewasa ini, perkembangan ilmu dan teknologi telah mempengaruhi segala aspek
kehidupan, tak terkecuali aspek komunikasi, seperti dalam pengiriman pesan
melalui jaringan internet. Keamanan dan kerahasiaan merupakan aspek penting
yang dibutuhkan dalam proses pengiriman pesan. Semakin berkembangnya
teknologi, pengiriman suatu pesan juga menjadi semakin kurang aman. Tidak
menutup kemungkinan saat proses pengiriman pesan ada pihak ketiga yang ingin
mengambil ataupun merubah isi dari pesan tersebut.
Salah satu cara untuk mempertahankan kerahasiaan dari pesan tersebut
adalah pesan yang akan dikirim disandikan terlebih dahulu menjadi kode – kode
yang tidak dipahami maksudnya, sehingga bila ada pihak ketiga yang ingin
mengambil ataupun merubahnya akan kesulitan dalam menterjemahkan isi pesan
yang sebenarnya. Teknik tersebut dikenal dengan kriptografi (Munir, 2006).
Vigenere cipher merupakan salah satu algoritma kriptografi klasik yang menggunakan substitusi abjad majemuk, dimana dengan menggunakan
bujursangkar vigenere tiap huruf pada plainteks akan disubstitusi menjadi huruf
lain berdasarkan kunci yang digunakan. Namun vigenere cipher telah berhasil
dipecahkan oleh Friedrich Kasiski pada tahun 1863 dengan menggunakan metode
kasiski. Oleh karena itu, dalam penelitian ini penulis melakukan sebuah
modifikasi, yaitu dengan menyisipkan huruf – huruf yang ada pada kunci ke
dalam plainteks. Dengan metode ini, diharapkan algoritma ini menjadi lebih kuat
Tindakan pengamanan menggunakan teknik kriptografi ini ternyata
dianggap belum cukup dalam mengamankan suatu pesan, karena cipherteks
mengandung karakter – karakter yang tidak wajar sehingga menimbulkan
kecurigaan. Untuk mengatasi hal tersebut dapat digunakan teknik lain yaitu
steganografi. Steganografi adalah ilmu dan seni untuk menyembunyikan pesan
rahasia di dalam media digital sedemikian rupa sehingga orang lain tidak
menyadari ada suatu pesan rahasia di dalam media tersebut (Sutoyo, 2009).
Implementasi steganografi saat ini telah menggunakan media digital
sebagai media untuk menyembunyikan pesan, salah satunya adalah media gambar
(citra digital). Steganografi menyisipkan atau menyembunyikan pesan di dalam
sebuah citra, agar pihak lain tidak menyadari keberadaan pesan yang ada di dalam
citra tersebut.
Salah satu metode steganografi citra digital adalah Least Significant Bit
(LSB), yaitu teknik penyembunyian pesan pada lokasi bit terendah dalam citra
digital. Pesan dikonversi ke dalam bentuk biner dan disembunyikan pada citra
digital dengan metode LSB. Dalam penelitian ini, penulis menggunakan citra
digital sebagai media penyembunyian pesan karena hasil keluaran dari
steganografi LSB ini memiliki perubahan yang tidak dapat dibedakan oleh mata
manusia.
Kombinasi modifikasi vigenere cipher dan steganografi LSB dapat lebih
meningkatkan keamanan pada pesan rahasia. Pesan rahasia terlebih dahulu
dienkripsi dengan menyisipkan huruf – huruf pada kunci ke dalam plainteks,
kemudian cipherteks hasil kriptografi tersebut disembunyikan didalam citra digital
dengan metode steganografi LSB.
1.2Perumusan Masalah
Permasalahan yang akan dibahas adalah bagaimana menyembunyikan pesan
3
menggunakan metode steganografi LSB dan modifikasi vigenere cipher pada citra
digital.
1.3Batasan Masalah
Adapun batasan masalah dalam penelitian ini adalah sebagai berikut:
a. Pesan rahasia adalah pesan teks.
b. Menggunakan citra RGB dengan format *PNG sebagai wadah penampung
pesan.
c. Format citra yang dihasilkan adalah *PNG.
d. Metode steganografi yang digunakan yaitu metode Least Significant Bit
(LSB).
e. Metode kriptografi yang digunakan yaitu metode penyisipan kunci pada
plainteks.
1.4Tujuan Penelitian
Tujuan penelitian ini adalah menerapkan modifikasi algoritma vigenere cipher
dengan menyisipkan huruf – huruf pada kunci ke dalam plainteks untuk
mendapatkan perlindungan yang lebih baik dalam menjaga keamanan dan
kerahasiaan pesan, serta tergabung dengan steganografi untuk menyembunyikan
pesan dalam sebuah citra guna melindungi keberadaan pesan rahasia.
1.5Manfaat Penelitian
Manfaat dari penelitian ini adalah sebagai berikut:
a. Dapat merahasiakan pesan tanpa diketahui keberadaan pesan tersebut.
b. Memberikan pengetahuan baru tentang modifikasi vigenere cipher dan
steganografi LSB untuk pengamanan pesan.
c. Dapat digunakan sebagai referensi bacaan untuk mahasiswa Matematika,
1.6Kerangka Pemikiran
Diagram konsep proses penyembunyian pesan pada citra dengan teknik
kriptografi dan steganografi.
Gambar 1.1 Diagram konsep proses penyembunyian pesan
1.7Metodologi Penelitian
Penelitian ini dilakukan dengan langkah – langkah sebagai berikut:
1. Melakukan studi literature mengenai steganografi LSB dan modifikasi
kriptografi vigenere cipher yang bersumber dari buku, jurnal, situs internet
dan berbagai sumber lainnya.
2. Menganalisa proses enkripsi, deskripsi, encoding, dan decoding pada metode
LSB dan modifikasi vigenere cipher.
3. Melakukan perancangan dan menerapkan LSB dan modifikasi vigenere cipher
pada citra dengan menggunakan software MATLAB. Input Pesan
Input Citra
Proses Kriptografi
Proses Steganografi
BAB 2
LANDASAN TEORI
2.1 Kriptografi
2.1.1 Pengertian Kriptografi
Kriptografi (cryptography) berasal dari Bahasa Yunani “cryptos” yang artinya
rahasia, sedangkan “graphein” artinya tulisan. Jadi, kriptografi berarti tulisan
rahasia. Secara umum, kriptografi adalah ilmu dan seni untuk menjaga
kerahasiaan pesan dengan cara menyandikannya ke dalam bentuk yang tidak
dapat dimengerti lagi maknanya (Munir, 2006).
2.1.2 Sejarah Kriptografi
Kriptografi mempunyai sejarah yang panjang. Informasi yang lengkap mengenai
sejarah kriptografi dapat ditemukan di dalam buku David Kahn yang berjudul The
Codebreakers. Buku yang tebalnya 1000 halaman ini menulis secara rinci sejarah kriptografi, mulai dari penggunaan kriptografi oleh Bangsa Mesir 4000 tahun
yang lalu hingga penggunaan kriptografi abad ke – 20.
Sejarah kriptografi sebagian besar merupakan sejarah kriptografi klasik,
yaitu metode enkripsi yang menggunakan kertas dan pensil atau menggunakan
alat bantu mekanik sederhana. Kriptografi klasik secara umum dikelompokkan
menjadi dua kategori, yaitu algoritma transposisi (transposition cipher) dan
algoritma substitusi (substitution cipher). Algoritma transposisi adalah algoritma
substitusi yaitu mengganti setiap huruf atau kelompok huruf dengan sebuah huruf
atau kelompok huruf yang lain.
Penggunaan algoritma transposisi yaitu oleh tentara Sparta di Yunani pada
permulaan tahun 400 SM. Mereka menggunakan alat yang namanya scytale.
Scytale terdiri dari sebuah kertas panjang dari daun papyrus yang dililitkan pada
sebuah silinder dengan diameter tertentu (diameter silinder merupakan kunci dari
penyandian). Pesan ditulis baris per baris dan secara horizontal. Apabila kertas
dilepas, maka setiap huruf akan tersusun secara acak membentuk pesan rahasia.
Agar pesan tersebut dapat dibaca, maka kertas harus kembali dililitkan ke silinder
yang diameternya sama dengan diameter silinder pengirim.
(a) (b)
Gambar 2.1 (a) Sebuah scytale; (b) Pesan ditulis secara horizontal, baris per baris.
Sedangkan algortima substitusi paling awal dan paling sederhana adalah
Caesar cipher, yaitu digunakan oleh raja Yunani kuno, Julius Caesar. Caranya adalah dengan mengganti setiap karakter di dalam alfabet dengan karakter yang
terletak pada tiga posisi berikutnya di dalam susunan alfabet. Pada perang dunia
ke II, Pemerintah Nazi Jerman membuat mesin enkripsi yang dinamakan dengan
Perkembangan
kriptografi modern. De
menghasilkan cipher ya
klasik yang mengenkrip
pada string biner. Cip
Encryption Standard) da dunia kriptografi (Munir
2.1.3 Terminologi dan K
Di dalam kriptografi ak
Berikut merupakan istila
(Munir, 2006).
a. Plainteks dan Ciph
Pesan merupakan data
maknanya. Nama lain un
(melalui kurir, saluran t
dalam media penyimpan
Agar pesan tidak
perlu disandikan ke ben
Gambar 2.2 Mesin enigma
peralatan komputer digital memicu ter
Dengan komputer digital, akan sangat mungk
yang lebih kompleks dan rumit. Tidak seperti k
ripsi karakter per karakter, kriptografi modern
ipher yang lebih kompleks seperti halnya D dan RSA adalah algoritma modern yang sangat
nir, 2006).
n Konsep Dasar Kriptografi
akan sering ditemukan beberapa istilah atau te
tilah penting untuk diketahui dalam memahami k
ipherteks
ata atau informasi yang dapat dibaca dan d
untuk pesan adalah plainteks. Pesan tersebut dap
n telekomunikasi, dan lain – lain) dan dapat juga
anan. Pesan dapat berupa teks, gambar, suara, atau
ak dapat dimengerti maknanya oleh pihak lain, m
telah tersandikan tersebut dinamakan dengan cipherteks. Cipherteks harus dapat
ditransformasikan kembali menjadi plainteks semula agar pesan yang diterima
bisa dibaca. Perbandingan antara plainteks dan cipherteks dapat dilihat pada
Gambar 2.3.
(a) (b)
Gambar 2.3 (a) Plainteks; (b) Cipherteks
b. Pengirim dan Penerima
Komunikasi data melibatkan pertukaran pesan antara dua entitas. Pengirim adalah
entitas yang mengirim pesan kepada entitas lainnya. Penerima adalah entitas yang
menerima pesan. Entitas disini dapat berupa orang, mesin (komputer), kartu
kredit, dan sebagainya.
c. Enkripsi dan Deskripsi
Proses penyandian pesan, dari plainteks ke cipherteks dinamakan dengan enkripsi
(encryption). Sedangkan proses mengembalikan pesan dari cipherteks ke plainteks
dinamakan dengan deskripsi (decryption). Proses enkripsi dan deskripsi
membutuhkan kunci sebagai parameter yang digunakan untuk transformasi.
(a) (b)
9
d. Kriptanalisis
Kriptografi berkembang sedemikian rupa sehingga melahirkan bidang yang
berlawanan yaitu kriptanalisis. Kriptanalisis (cryptanalysis) adalah ilmu dan seni
untuk memecahkan cipherteks menjadi plainteks tanpa mengetahui kunci yang
digunakan. Pelakunya disebut kriptanalis. Jika seorang kriptografer
(cryptographer) mentransformasikan plainteks menjadi cipherteks dengan suatu
algoritma dan kunci maka sebaliknya seorang kriptanalis berusaha untuk
memecahkan cipherteks tersebut untuk menemukan plainteks atau kunci.
2.1.4 Jenis Kriptografi
Berdasarkan kunci enkripsi dan deskripsinya algoritma kriptografi terbagi menjadi
dua bagian (Munir, 2006) yaitu:
1. Kriptografi simetri
Konsep dasar dari kriptografi kunci simetri adalah di mana kunci untuk enkripsi
sama dengan kunci untuk deskripsi. Istilah lain dari kriptografi simetri ini adalah
kriptografi kunci privat (privat-key cryptography), kriptografi kunci rahasia
(secret-key cryptography), atau kriptografi konvensional (conventional
cryptography). Dalam kriptografi kunci simetri dapat diasumsikan bahwa si penerima dan pengirim pesan telah terlebih dahulu berbagi kunci sebelum pesan
dikirimkan. Keamanan dari sistem ini terletak pada kerahasiaan kuncinya. Skema
kriptografi simetri dapat dilihat pada Gambar 2.5.
(a) (b)
Gambar 2.5 (a) Skema enkripsi kriptografi simetri; (b) Skema deskripsi
2. Kriptografi asimetri
Berbeda dengan kriptografi kunci simetri, kriptografi asimetri memiliki dua buah
kunci yang berbeda pada proses enkripsi dan deskripsinya. Nama lain dari kunci
asimetri ini adalah kriptografi kunci publik (public – key cryptography). Kunci
untuk enkripsi pada kriptografi asimetri ini tidak rahasia (diketahui oleh publik),
sedangkan kunci untuk deskripsi bersifat rahasia (kunci privat). Pengirim akan
mengenkripsi dengan menggunakan kunci publik, sedangkan penerima
mendeskripsi menggunakan kunci privat. Skema kriptografi asimetri dapat dilihat
pada Gambar 2.6.
(a) (b)
Gambar 2.6 (a) Skema enkripsi kriptografi asimetri; (b) Skema deskripsi
kriptografi asimetri
2.1.5 Algoritma Vigenere Cipher
Vigenere cipher berasal dari nama penemunya Blaise de Vigenere seorang kriptografer asal Prancis. Vigenere cipher merupakan pengembangan dari caesar
cipher. Pada caesar cipher, setiap huruf pada plainteks digantikan dengan huruf lain yang memiliki perbedaan tertentu pada urutan alfabet. Sedangkan pada
vigenere cipher, setiap karakter pesan pada plainteks berkorespondensi dengan lebih dari satu karakter pada cipherteks. Misalnya, huruf A pada plainteks dapat
menjadi huruf K atau M pada cipherteks yang berkaitan, tergantung pada kunci
yang digunakan.
Algoritma vigenere cipher menggunakan Persegi vigenere untuk
11
bagian atas persegi menyatakan plainteks, sedangkan deretan huruf menurun pada
bagian sebelah kiri persegi menyatakan kunci. Setiap baris di dalam persegi
menyatakan huruf - huruf cipherteks yang diperoleh dengan caesar cipher, yang
mana jumlah pergeseran huruf plainteks ditentukan nilai numerik huruf kunci
tersebut (yaitu A=0, B=1, C=2,…, Z=25). Jika panjang kunci yang digunakan
lebih pendek dari plainteks, maka kunci tersebut akan diulang secara periodik
sepanjang plainteks (Tjaru, 2012).
Tabel 2.1 Persegi Vigenere Cipher
Adapun langkah – langkah untuk proses enkripsi pada vigenere cipher sebagai
berikut:
a. Menghilangkan spasi dan tanda baca pada plainteks.
b. Menuliskan kunci secara periodik sepanjang karakter plainteks.
c. Mengenkripsikan setiap karakter plainteks dengan karakter kunci
menggunakan persegi vigenere cipher. Cipherteks diperoleh dari perpotongan
Untuk proses deskripsinya merupakan kebalikan dari proses enkripsi.
Plainteks diperoleh dari perpotongan baris karakter kunci dengan karakter
cipherteks yang dimaksud pada Persegi vigenere.
Sebagai contoh, untuk plainteks ‘MATEMATIKA’ dengan kunci ‘OKE’,
mengacu pada Tabel 2.1 akan menghasilkan cipherteks sebagai berikut:
Plainteks : MATEMATIKA
Kunci : OKEOKEOKEO
Cipherteks : AKXSWEHSOO
Secara matematis, misalkan adalah karakter ke – pada plainteks,
adalah karakter ke – pada cipherteks, dan adalah karakter ke – pada kunci,
maka enkripsi pada vigenere cipher dapat dinyatakan sebagai:
= + 26 (2.1)
sedangkan untuk deskripsi pada vigenere cipher dapat dinyatakan sebagai:
= − 26 (2.2)
Harus diperhatikan bahwa angka 26 pada persamaan (2.1) dan (2.2)
disebabkan karena banyak huruf yang dienkripsi hanya abjad biasa, yaitu 26
huruf. Apabila banyak karakter yang dienkripsi misalnya berupa karakter ASCII,
maka angka 26 diganti dengan 256.
2.1.6 Metode Kasiski
Metode kasiski pertama kali di temukan oleh Friedrich Kasiski pada tahun 1863
untuk memecahkan vigenere cipher. Metode kasiski membantu untuk menemukan
panjang kunci dari suatu plainteks memanfaatkan pengulangan pasangan 2 huruf
atau lebih. Pengulangan pada cipherteks ini terjadi oleh karena kunci yang sama
diterapkan pada karakter plainteks yang sama menghasilkan pengulangan pada
13
difaktorkan dan dapat mengindikasikan kunci berserta panjangnya yang
digunakan dalam proses enkripsi (Sidiq).
Berikut adalah langkah – langkah metode kasiski (Tjaru, 2012):
1. Temukan semua kriptogram yang berulang di dalam cipherteks (pesan yang
panjang biasanya mengandung kriptogram yang berulang).
2. Hitung jarak antara kriptogram yang berulang.
3. Hitung semua faktor pembagi dari jarak tersebut.
4. Tentukan irisan dari himpunan faktor pembagi tersebut. Nilai yang muncul di
dalam irisan menyatakan angka yang muncul pada semua faktor pembagi dari
jarak – jarak tersebut. Nilai tersebut mungkin adalah panjang kunci.
Setelah panjang kunci diketahui, maka langkah berikutnya adalah
menentukan kata kunci. Kunci dapat ditentukan dengan beberapa cara, antara lain:
1. Exhaustive key search, yakni dengan membangkitkan semua kemungkinan kunci. Jika panjang kunci adalah p, maka cara ini membutuhkan 26p kali
percobaan.
2. Mengelompokkan huruf – huruf pada cipherteks ke sejumlah p kelompok (p
= panjang kunci). Lalu, melakukan teknik analisis frekuensi pada tiap – tiap
kelompok tersebut.
2.2 Steganografi
2.2.1 Pengertian Steganografi
Steganografi (steganography) berasal dari Bahasa Yunani, yaitu “steganos” yang
artinya menyembunyikan dan “graphein” yang artinya tulisan. Jadi steganografi
berarti juga tulisan yang disembunyikan. Steganografi adalah ilmu dan seni untuk
menyembunyikan pesan rahasia di dalam media digital sedemikian rupa sehingga
orang lain tidak menyadari ada suatu pesan rahasia di dalam media tersebut
2.2.2 Sejarah Steganografi
Herodotus adalah seorang sejarawan Yunani pertama yang menulis tentang
steganografi, yaitu ketika seorang raja kejam Yunani bernama Histaeus dipenjara
oleh Raja Darius di Susa pada abad ke-5 sebelum Masehi. Histaeus harus
mengirim pesan rahasia kepada anak laki-lakinya, Aristagoras, di Militus.
Histaues menulis pesan dengan cara menato pesan pada kulit kepala seorang
budak. Ketika rambut budak itu mulai tumbuh, Histaues mengutus budak itu ke
Militus untuk mengirim pesan di kulit kepalanya tersebut kepada Aristagoras.
Cerita lain yang ditulis oleh Herodotus, yaitu Demeratus seorang Yunani
yang akan mengabarkan berita kepada Sparta bahwa Xerxes bermaksud menyerbu
Yunani. Agar tidak diketahui pihak Xerxes, Demartus menulis pesan dengan cara
mengisi tabung kayu dengan lilin dan menulis pesan dengan cara mengukirnya
pada bagian bahwah kayu. Papan kayu tersebut dimasukkan ke dalam tabung
kayu, kemudian tabung kayu ditutup kembali dengan lilin.
Teknik steganografi yang lain adalah tinta yang tak terlihat. Teknik ini
pertama digunakan pada zaman Romawi kuno, yaitu dengan menggunakan air
sari buah jeruk, urin, atau susu sebagai tinta untuk menulis pesan. Cara
membacanya adalah dengan dipanaskan di atas nyala lilin. Tinta yang sebelumnya
tidak terlihat, ketika terkena panas akan berangsur – angsur menjadi gelap
sehingga pesan dapat dibaca (Sutoyo, 2009).
2.2.3 Terminologi dan Konsep Dasar Steganografi
Ada beberapa istilah yang berkaitan dengan steganografi (Munir, 2006) yaitu:
1. Embedded Message
Pesan atau informasi yang disembunyikan. Contohnya dapat berupa teks,
15
2. Cover – object
Pesan yang digunakan untuk menyembunyikan embedded message.
Contohnya dapat berupa teks, gambar, suara, video, dll.
3. Stego – object
Pesan yang sudah berisi pesan embedded message.
Steganografi membutuhkan dua properti, yaitu wadah penampung dan
pesan rahasia yang akan disembunyikan. Steganografi digital menggunakan media
digital sebagai wadah penampung, misalnya gambar, suara, teks, dan video. Pesan
rahasia yang disembunyikan juga dapat berupa gambar, suara, teks, dan video
(Sutoyo, 2006). Gambar 2.7 adalah ilustrasi untuk menggambarkan proses
penyembunyian pesan ke dalam media digital dengan teknik steganografi.
Gambar 2.7 Proses penyembunyian pesan rahasia ke dalam media digital dengan
teknik steganografi
2.2.4 Proses Steganografi
Secara umum, terdapat dua proses didalam steganografi, yaitu proses encoding
untuk menyisipkan pesan ke dalam cover – object dan proses decoding untuk
ekstraksi pesan dari stego – object. Kedua proses ini mungkin memerlukan kunci
rahasia (stegokey) agar hanya pihak yang berhak saja yang dapat melakukan
(a) (b)
Gambar 2.8 (a) Skema encoding; (b) Skema decoding
2.2.5 Least Significant Bit (LSB)
Metode Least Significant Bit (LSB) merupakan metode steganografi yang paling
sederhana dan paling mudah diimplementasikan. Untuk menjelaskan metode LSB
ini kita menggunakan citra digital sebagai cover – object. Setiap pixel di dalam
citra berukuran 1 sampai 3 byte. Pada susunan bit di dalam sebuah byte (1 byte = 8
bit), ada bit yang paling berarti yaitu MSB (most significant bit) dan bit yang
paling kurang berarti yaitu LSB (least significant bit) (Munir, 2005).
Gambar 2.9 Contoh MSB dan LSB
Dari contoh byte pada Gambar 2.9, bit 1 yang pertama (digarisbawahi)
adalah MSB dan bit 0 yang terakhir (digarisbawahi) adalah LSB. Bit yang cocok
untuk diganti dengan bit pesan adalah LSB, karena modifikasi hanya
menggunakan nilai byte tersebut satu lebih tinggi atau satu lebih rendah dari nilai
sebelumnya. Misalnya byte tersebut di dalam citra memberikan persepsi warna
merah, maka perubahan satu bit LSB hanya mengubah persepsi warna merah
tidak terlalu berarti. Mata manusia tidak dapat membedakan perubahan sekecil ini.
Sebagai ilustrasi, misalkan segmen pixel - pixel citra sebelum disisipkan pesan
17
00110011 10100010 11100010 01101111
dan misalkan pesan rahasia (yang telah dikonversi ke biner) adalah 0110. Setiap
bit pesan menggantikan posisi LSB dari segmen pixel – pixel citra menjadi:
00110010 10100011 11100011 10010000
Kekurangan dari metode LSB ini adalah jika citra penampung
dimanipulasi (misalnya kompresi, mengubah kontras gambar, dan sebagainya),
maka bit – bit LSB dari stego – object menjadi rusak sehingga pesan tidak dapat
diungkap kembali.
2.2.6 Ukuran Teks Yang Disembunyikan
Ukuran maksimal teks yang dapat disembunyikan bergantung pada ukuran citra
penampung yang digunakan. Semakin besar citra yang digunakan maka akan
semakin banyak pula jumlah karakter yang dapat disembunyikan. Rumus untuk
menghitung jumlah maksimal karakter yang dapat disembunyikan pada citra
adalah
=
8
Misalnya citra yang digunakan sebagai wadah penampung berukuran 200
x 200, artinya citra ini mempunyai panjang 200 pixel dan lebar 200 pixel,
sehingga total pixel citra tersebut adalah 40.000 pixel, karena 1 karakter terdiri
dari 8 bit maka karakter disembunyikan pada setiap 8 pixel sehingga maksimal
karakter yang dapat disemunyikan adalah sebanyak 40.000 / 8 = 5.000 karakter.
Sedangkan untuk citra 24 bit yang berukuran 256 x 256, terdapat 65.536
piksel. Karena setiap pixel berukuran 3 byte (komponen RGB), berarti seluruhnya
ada 65.536 x 3 = 196.608 byte. Setiap byte hanya bisa menyembunyikan satu bit
maka maksimal karakter yang dapat disembunyikan adalah 196.608 / 8 = 24.576
2.3 Teori Dasar Citra Digital
2.3.1 Pengertian Citra Digital
Citra adalah suatu representasi (gambaran), kemiripan atau imitasi dari suatu
objek. Citra yang berupa keluaran dari suatu sistem perekaman data dapat bersifat
optik berupa foto, bersifat analog berupa sinyal – sinyal video seperti gambar pada
monitor televisi atau bersifat digital yang dapat langsung disimpan pada suatu
media penyimpanan (Sutoyo, 2009).
2.3.1.1 Citra Analog
Citra analog adalah citra yang bersifat kontinu, seperti gambar pada monitor
televisi, foto sinar-X, foto yang tercetak dikertas foto, dan lain sebagainya. Citra
analog tidak dapat direpresentasikan dalam komputer sehingga tidak bisa diproses
di komputer secara langsung. Agar citra ini dapat diproses di komputer, proses
konversi analog ke digital harus dilakukan terlebih dahulu (Sutoyo, 2009).
2.3.1.2 Citra Digital
Citra digital adalah citra yang bersifat diskrit yang dapat diolah oleh komputer
yang merupakan suatu array dari bilangan yang merepresentasikan intensitas
terang pada point yang bervariasi (pixel). Citra ini dapat dihasilkan melalui
kamera digital dan scanner ataupun citra yang telah mengalami proses digitalisasi.
Citra digital disimpan juga secara khusus di dalam file 24 bit atau 8 bit. Citra 24
bit menyediakan lebih banyak ruang untuk menyembunyikan informasi (Sutoyo,
2009).
2.3.2 Jenis - jenis Citra Digital
Berdasarkan warna – warna penyusunannyan, citra digital dapat dibagi menjadi
19
1. Citra Biner
Citra biner adalah citra yang hanya memiliki 2 warna, yaitu hitam dan putih. Oleh
karena itu, setiap pixel pada citra biner cukup direpresentasikan dengan 1 bit.
(a) (b)
Gambar 2.10 (a) Citra biner; (b) Representasi citra biner
Alasan penggunaan citra biner adalah karena citra biner memiliki sejumlah
keuntungan sebagai berikut:
a. Kebutuhan memori kecil karena nilai derajat keabuan hanya membutuhkan
representasi 1 bit.
b. Waktu pemrosesan lebih cepat di bandingkan dengan citra hitam – putih
ataupun warna.
2. Citra Grayscale
Citra grayscale adalah citra yang nilai pixel-nya merepresentasikan derajat
keabuan atau intensitas warna putih. Nilai intensitas paling rendah
merepresentasikan warna hitam dan nilai intensitas paling tinggi
merepresentasikan warna putih. Pada umumnya citra grayscale memiliki
kedalaman pixel 8 bit (256 derajat keabuan), tetapi ada juga citra grayscale yang
kedalaman pixel-nya bukan 8 bit, misalnya 16 bit untuk penggunaan yang
memerlukan ketelitian tinggi. Gambar 2.11 (a) adalah contoh citra grayscale.
3. Citra Warna
Citra warna adalah citra yang nilai pixel-nya merepresentasikan warna tertentu.
warna dasar RGB (red, green, blue). Setiap warna dasar menggunakan
penyimpanan 8 bit = 1 byte, yang berarti setiap warna mempunyai gradasi
sebanyak 255 warna. Berarti setiap pixel mempunyai kombinasi warna sebanyak
28.28.28 = 224 = 16 juta warna lebih. Itulah yang menjadikan alasan format ini
disebut dengan true color karena mempunyai jumlah warna yang cukup besar
sehingga bisa dikatakan hampir mencakup semua warna di alam. Gambar 2.11 (b)
adalah contoh citra warna.
(a) (b)
Gambar 2.11 (a) Citra grayscale; (b) Citra warna
2.4 Penelitian Terdahulu
Dalam melakukan penelitian, penulis membutuhkan beberapa bahan penelitian
yang sudah pernah dilakukan peneliti – peneliti lainnya mengenai masalah
implementasi steganografi LSB dan kriptografi vigenere cipher. Salah satunya
seperti yang pernah dilakukan Tri cahyadi (2012) dalam jurnalnya yang berjudul
“Implementasi Steganografi LSB dengan Enkripsi Vigenere Cipher pada Citra
JPEG” meneliti tentang enkripsi vigenere cipher dengan implementasi metode
steganografi LSB pesan pada citra digital. Pada proses penyisipan teks ke dalam
gambar, nilai pixel gambar yang telah dipilih akan di konversi ke biner. Setelah itu
memasukan file teks yang akan disisipkan dan dilanjutkan dengan proses enkripsi.
Setelah proses enkripsi pesan selesai maka pilih koefisien LSB, selanjutnya sistem
akan menghitung daya tampung maksimal citra, jika cipherteks melebihi kapasitas
21
meminta untuk mengurangi jumlah pesan. Jika cover – object mampu
menampung maka proses melanjutkan mengkonversi nilai cipherteks ke biner,
selanjutnya menyisipkan biner cipherteks tersebut ke LSB terpilih. Proses
selanjutnya transformasikan kembali nilai citra yang telah disisipkan pesan ke
nilai pixel dan kemudian simpan citra yang telah disisipkan pesan (stego – object).
Pada proses ekstrasi pesan yang terkandung di dalam stego – object dipilih
dan nilai pixel citra akan dikonversi ke biner, kemudian masukan stegokey dan
ambil nilai bit terakhir dari LSB terpilih. Konversikan nilai biner cipherteks ke
desimal. Proses selanjutnya adalah deskripsi pesan dan hasilnya merupakan pesan
PERANCANGAN APLIKASI
Secara garis besar penelitian ini terdiri dari dua proses, yaitu proses enkripsi dan
proses encoding. Dimana untuk proses enkripsi penulis akan menggunakan
algoritma modifikasi vigenere cipher. Sedangkan untuk proses encoding penulis
akan menggunakan metode steganografi Least Significant Bit (LSB). Di samping
kedua proses tersebut, penulis juga akan melengkapi penelitian ini dengan proses
decoding dan deskripsi. Hal ini bertujuan agar pesan yang telah dienkripsi dan disembunyikan dapat kembali menjadi pesan awal yang dapat dimanfaatkan oleh
orang yang berhak.
(a) (b)
Gambar 3.1 (a) Flowchart enkripsi dan encoding; (b) Flowchart decoding dan
deskripsi Mulai
Input plainteks, kunci, citra
Enkripsi
Encoding
Stego-object
Selesai
Mulai
Input kunci, stego-object
Decoding
Deskripsi
Plainteks
23
3.1 Analisis Algoritma Modifikasi Vigenere Cipher
Seperti yang telah dijelaskan sebelumnya, vigenere cipher dapat dengan mudah
dipecahkan dengan metode kasiski, yaitu dengan memanfaatkan pengulangan
yang mungkin terjadi untuk menentukan panjang kunci, yang kemudian
dilanjutkan dengan melakukan analisis frekuensi. Dari fakta – fakta tersebut,
bahwa apabila pengulangan dapat dikacaukan, serta frekuensi kemunculan huruf –
huruf dapat dimanipulasi, tingkat keamanan vigenere cipher akan menjadi lebih
kuat.
Untuk mengacaukan pengulangan serta memanipulasi kemunculan huruf –
huruf pesan, penulis memilih cara yaitu dengan melakukan penyisipan huruf –
huruf yang ada pada kunci ke dalam plainteks, kemudian dienkripsi seperti
vigenere cipher biasa.
Berikut adalah langkah – langkah dari proses enkripsi:
1. Masukan pesan (plainteks).
2. Masukan kunci.
3. Hitung panjang plainteks.
4. Ulang kunci sepanjang plainteks.
5. Sisipkan setiap huruf pada kunci diantara huruf – huruf plainteks, dan akan
didapat plainteks baru.
6. Hitung panjang plainteks baru.
7. Ulang kunci sepanjang plainteks baru.
8. Ubah huruf plainteks dan kunci menjadi kode ASCII.
9. Plainteks dan kunci dienkripsi dengan persamaan = + 256,
sehingga akan menghasilkan cipherteks.
Gambar 3.2 merupakan flowchart proses enkripsi dari suatu pesan dengan
Gambar 3.2 Flowchart proses enkripsi
Setelah diperoleh cipherteks, dengan begitu pesan tersebut tidak akan
dapat dibaca oleh pihak yang tidak berhak tanpa melalui proses deskripsi. Proses
deskripsi pada modifikasi vigenere cipher ini memerlukan kunci yang sama pada
saat proses enkripsi.
Langkah – langkah dari proses deskripsi adalah sebagai berikut:
1. Masukan cipherteks.
2. Masukan kunci.
3. Hitung panjang cipherteks.
4. Ulang kunci sepanjang cipherteks.
25
6. Cipherteks dan kunci dideskripsi dengan persamaan = − 256,
sehingga akan menghasilkan plainteks yang mengandung huruf – huruf kunci. 7. Hapus huruf – huruf kunci yang ada pada plainteks, sehingga diperoleh
plainteks yang asli.
Gambar 3.3 merupakan flowchart dari proses deskripsi pada modifikasi
vigenere cipher.
Gambar 3.3 Flowchart proses deskripsi
3.2 Analisis Algoritma Steganografi Least Significant Bit (LSB)
Strategi penyisipan pesan kedalam citra yang digunakan adalah dengan metode
Least Significant Bit (LSB). Dimana setiap bit pesan akan menggantikan bit paling rendah didalam citra. Pesan disini merupakan cipherteks hasil proses
menggantikan bit – bit citra baris per baris dimulai dari bit penanda warna hijau,
dilanjutkan ke bit penanda warna merah dan terakhir bit penanda warna biru.
Berikut adalah langkah – langkah dari proses encoding:
1. Masukan pesan (cipherteks).
2. Masukkan citra.
3. Jika ukuran teks lebih besar daripada ukuran citra, maka akan diminta untuk
memasukan kembali citra yang lebih besar. Jika tidak, proses akan berlanjut
ke langkah selanjutnya.
4. Ubah pesan menjadi kode ASCII.
5. Ubah kode ASCII pesan ke dalam biner.
6. Pilih lokasi pixel dari citra.
7. Ubah pixel citra ke dalam biner.
8. Ganti LSB citra dengan bit pesan.
9. Ubah biner citra yang telah mengandung bit pesan ke pixel.
10. Ubah pixel menjadi citra, maka akan diperoleh citra baru yang mengandung
pesan (stego-object).
27
ya
tidak
Gambar 3.4 Flowchart proses encoding Mulai
Input pesan
Pilih lokasi pixel dari citra
Stego-object
Selesai Ubah pesan
ASCII Input citra
Ukuran teks > Ukuran citra
Ubah pixel citra biner
Ganti LSB citra
dengan bit pesan
Ubah biner citra
pixel Ubah ASCII
Dari proses encoding akan dihasilkan citra baru yang telah mengandung
pesan. Jika diperhatikan dengan mata manusia, tidak terdapat perbedaan antara
citra tidak mengandung pesan dengan citra yang telah mengandung pesan. Hal
inilah yang menjadi kelebihan dari metode Least Significant Bit (LSB).
Untuk dapat mengambil kembali pesan yang terkandung dalam citra harus
dengan proses decoding. Adapun langkah – langkah dari proses decoding adalah
sebagai berikut:
1. Masukan citra yang mengandung pesan (stego-object).
2. Pilih lokasi pixel dari citra.
3. Ubah pixel citra ke dalam biner.
4. Ambil LSB citra sehingga menghasilkan biner pesan.
5. Ubah biner pesan ke dalam kode ASCII.
6. Ubah kode ASCII pesan menjadi karakter, sehingga menghasilkan pesan
(cipherteks).
Gambar 3.5 merupakan flowchart proses decoding
Mulai
Input Stego-object
Pilih lokasi pixel dari citra
Ubah pixel citra biner
29
Gambar 3.5 Flowchart proses decoding A
Ambi LSB citra
biner pesan
Ubah ASCII
pesan karakter
Ubah biner pesan
ASCII
Pesan (cipherteks)
IMPLEMENTASI
Pada bab ini akan diperlihatkan hasil dan pembahasan dari penelitian yang
diperoleh berdasarkan penjelasan – penjelasan yang telah dipaparkan pada bab –
bab sebelumnya. Hasil dan pembahasan dari penelitian ini adalah mengenai
implementasi Steganografi Least Significant Bit (LSB) dengan modifikasi
Vigenere Cipher pada citra digital.
4.1 Kebutuhan Perangkat Lunak dan Perangkat Keras
Penelitian ini menggunakan perangkat lunak berupa:
1. Sistem Operasi Windows 7
2. MATLAB R2009a
Spesifikasi perangkat keras yang digunakan berupa:
1. Processor Intel core i3 2.20 GHz
2. RAM 2 GB
3. Harddisk 500 GB
4. Monitor 14.0 inch
4.2 Implementasi
Pada implementasi sistem ini secara keseluruhan penulis membuat tiga buah
halaman antarmuka, yang terdiri dari halaman utama yang berisikan tentang
pilihan proses apa yang akan dilakukan. Bentuk antarmuka halaman utama dapat
31
Gambar 4.1 Halaman utama
Dari Gambar 4.1 dapat dilihat bahwa di dalam halaman utama terdapat
tiga buah tombol. Tombol tersebut yaitu tombol encoding, decoding dan keluar.
Tombol encoding digunakan untuk memulai proses enkripsi dan encoding, tombol
decoding digunakan untuk memulai proses decoding dan deskripsi, dan tombol keluar digunakan untuk keluar dari program.
4.2.1 Proses Enkripsi dan Encoding
Rio dan Ica adalah pegawai di suatu perusahaan. Rio ingin menyampaikan pesan
penting kepada Ica mengenai akan diadakannya pertemuan tertutup di kantor
pusat. Isi pesan penting tersebut adalah “Tolong besok hadir di kantor pusat jam
9. Akan diadakan pertemuan tertutup membahas tentang adanya perbedaan
laporan keuangan dari kantor cabang”. Karena pesan bersifat rahasia, maka pesan
tersebut dienkripsi dahulu oleh Rio dengan menggunakan kunci “penting”.
Namun Rio merasa hanya dengan dienkripsi pesan belum sepenuhnya aman.
Maka dari itu cipherteks hasil dari enkripsi akan disembunyikan dalam citra,
sehingga keberadaan pesan tidak diketahui. Gambar 4.2 merupakan citra yang
Untuk memulai p
halaman utama, maka a
Gambar 4.3.
Gamba
Selanjutnya yan
disembunyikan dan kun
terlebih dahulu akan
menghasilkan cipherteks
dalam citra. Pesan yang
pusat jam 9. Akan dia
perbedaan laporan keuan
Gambar 4.2 Pemandangan.PNG
i proses enkripsi dan encoding, tekan tombol enco
akan muncul halaman enkripsi dan encoding se
bar 4.3 Halaman enkripsi dan encoding 1
yang dilakukan adalah masukan pesan ya
kunci pada kolom yang disediakan. Pesan dan
n dienkripsi dengan modifikasi vigenere ciph
eks, yang mana cipherteks inilah yang akan disem
ang akan dienkripsi adalah “Tolong besok hadir
diadakan pertemuan tertutup membahas tentan
angan dari kantor cabang” dengan kunci “penting
33
Gambar 4.4 Halaman enkripsi dan encoding 2
Kemudian pilih citra yang akan dijadikan wadah penampung dengan cara
menekan tombol Pilih Gambar, maka akan muncul pop-up window untuk
mengakses lokasi citra disimpan.
Setelah citra dipilih akan ditampilkan pada halaman enkripsi dan encoding.
Gambar 4.6 Halaman enkripsi dan encoding 3
Langkah selanjutnya adalah memulai proses enkripsi dan encoding dengan
menekan tombol Proses. Jika proses enkripsi dan encoding selesai akan muncul
pop-up window untuk menyimpan citra yang telah mengandung pesan hasil proses enkripsi dan encoding.
35
Citra pada Gambar 4.8 merupakan citra yang telah mengandung pesan,
hasil proses enkripsi dan encoding.
Gambar 4.8 HASIL.PNG
4.2.2. Proses Decoding dan Deskripsi
Setelah Ica menerima citra yang telah dikirimkan oleh Rio, Ica harus melakukan
proses decoding dan deskripsi agar dapat membaca isi dari pesan tersebut.
Untuk proses decoding dan deskripsi dilakukan dengan menekan tombol
decoding pada halaman utama, maka akan muncul halaman decoding dan
deskripsi seperti pada Gambar 4.9.
Selanjutnya yang dilakukan adalah pilih citra yang mengandung pesan
dengan cara menekan tombol Pilih Gambar, maka akan muncul pop-up window
untuk mengakses lokasi citra disimpan.
Gambar 4.10 Pop-up window pilih gambar 2
Setelah citra dipilih akan ditampilkan pada halaman decoding dan deskripsi.
Gambar 4.11 Halaman decoding dan deskripsi 2
Langkah selanjutnya adalah masukan kunci pada kolom yang disediakan.
Kunci pada proses deskripsi dan decoding ini adalah sama dengan kunci yang
37
Gambar 4.12 Halaman decoding dan deskripsi 3
Setelah kunci dimasukan, tekan tombol Proses untuk memulai proses
decoding dan deskripsi. Jika proses ini selesai akan muncul pesan yang disembunyikan pada kolom yang disediakan. Pesan inilah yang merupakan pesan
penting yang ingin disampaikan Rio kepada Ica.
4.3 Analisis Dalam Aplikasi
Pada tahap ini akan dijelaskan bagaimana tahapan – tahapan sistem mengamankan
pesan. Gambar 4.2 akan dijadikan wadah penampung pesan. Citra ini
menggunakan format pewarnaan RGB, artinya tiap piksel dari citra ini
direpresentasikan dengan nilai sepanjang 24 bit. Pesan rahasia yang akan dicoba
untuk disembunyikan adalah “Tolong besok hadir jam 9” dengan kunci “penting”.
Sebelum pesan disembunyikan dalam citra, terlebih dahulu pesan dienkripsi
sehingga akan menghasilkan cipherteks.
Plainteks “Tolong besok hadir jam 9” memiliki panjang 24 karakter sehingga
kunci “penting” diulang sepanjang plainteks “pentingpentingpentingpen”.
Kemudian sisipkan huruf – huruf kunci diantar huruf – huruf plainteks, diperoleh
plainteks yang baru
“Tpoelnotnign gbpeesnotki nhgapdeinrt ijnagmp e9n”
plainteks yang baru memiliki panjang 48 karakter, maka kunci “penting” diulang
lagi sepanjang plainteks baru
“pentingpentingpentingpentingpentingpentingpentin”
plainteks baru dan kunci baru inilah yang akan dienkripsi.
Selanjutnya ubah plainteks dan kunci ke dalam kode ASCII.
Tabel 4.1. Kode ASCII pesan
39
Tabel 4.2. Kode ASCII kunci
Proses selanjutnya adalah mengenkripsi plainteks dan kunci dengan persamaan
= + 256
Proses enkripsi disajikan dalam Tabel 4.3.
Tabel 4.3. Proses Enkripsi
41
Cipherteks yang dihasilkan dari proses enkripsi adalah
“ÄÕÝÙÕÜÖäÓ×Û׎ÎÒÕÓÙÜÜÖäÐ×”×ÖÎÑÕÒÙÒÜÙä…×Þ×ÏÎÝՎ٢ܔ
Setelah proses enkripsi selesai, maka proses selanjutnya adalah proses
encoding. Pesan yang akan disispkan adalah cipherteks hasil dari proses enkripsi sebelumnya. Jika diubah ke dalam biner karakter cipherteks menjadi
Tabel 4.4. Kode ASCII dan biner dari cipherteks
Karakter ASCII Biner Karakter ASCII Biner
× 215 11010111 Þ 222 11011110
Ö 214 11010110 × 215 11010111
Î 206 11001110 Ï 207 11001111
Ñ 209 11010001 Î 206 11001110
Õ 213 11010101 Ý 221 11011101
Ò 210 11010010 Õ 213 11010101
Ù 217 11011001 Ž 142 10001110
Ò 210 11010010 Ù 217 11011001
Ü 220 11011100 ¢ 162 10100010
Ù 217 11011001 Ü 220 11011100
Selanjutnya konversi pixel citra Gambar 4.2 ke dalam biner.
Gambar 4.14 pixel citra
68 = (0x27) + (1x26) + (0x25) + (0x24) + (0x23) + (1x22) + (0x21) + (0x20)
68 = 01000100
56 = (0x27) + (0x26) + (1x25) + (1x24) + (1x23) + (0x22) + (0x21) + (0x20)
56 = 00111000
50 = (0x27) + (0x26) + (1x25) + (1x24) + (0x23) + (0x22) + (1x21) + (0x20)
50 = 00110010
57 = (0x27) + (0x26) + (1x25) + (1x24) + (1x23) + (0x22) + (0x21) + (1x20)
57 = 00111001
61 = (0x27) + (0x26) + (1x25) + (1x24) + (1x23) + (1x22) + (0x21) + (1x20)
61 = 00111101
64 = (0x27) + (1x26) + (0x25) + (0x24) + (0x23) + (0x22) + (0x21) + (0x20)
64 = 01000000
60 = (0x27) + (0x26) + (1x25) + (1x24) + (1x23) + (1x22) + (0x21) + (0x20)
60 = 00111100
55 = (0x27) + (0x26) + (1x25) + (1x24) + (0x23) + (1x22) + (1x21) + (1x20)
43
01000100 00111000 00110010 00111001 00111101 …
01000000 00111100 00111000 00110111 00111000 …
00110110 00111100 00111111 00111010 00110110 …
00101111 00111001 01000001 01000001 00111101 …
00110001 00110100 00111100 01000011 01000010 …
… … … …
Gambar 4.15 Citra dalam bentuk biner
Untuk selanjutnya, tiap bit pesan digunakan untuk menggantikan bit
terakhir dari biner citra. Proses penggantian dilakukan dengan memilih bit
penanda warna hijau pada setiap pixel, setelah semua bit penanda warna hijau
diganti maka dilanjutkan dengan memilih bit penanda warna merah dan terakhir
bit penanda warna biru. Gambar 4.16 adalah biner citra yang telah disisipkan
pesan.
01000101 00111001 00110010 00111000 00111100 …
01000001 00111100 00111000 00110111 00111001 …
00110110 00111101 00111110 00111011 00110110 …
00101111 00111001 01000001 01000000 00111101 …
00110001 00110101 00111100 01000011 01000011 …
… … … …
Gambar 4.16 Biner citra setelah disisip pesan
Citra dalam bentuk biner ini akan dipetakan kembali ke bentuk citra.
Ekstraksi pesan dapat dengan mudah dilakukan dengan mengambil bit terakhir
dari biner citra, kemudian pesan dideskripsi, maka akan menghasilkan pesan asli.
4.4 Hasil Pengujian
4.4.1 Hasil Kriptografi
Hasil dari proses kriptografi adalah cipherteks. Dalam penelitian ini, cipherteks
yang dihasilkan tidak ditampilkan. Penulis menggunakan metode modifikasi
vigenere cipher untuk melakukan proses enkripsi dengan tujuan agar cipherteks akan lebih sulit untuk dipecahkan. Cipherteks hasil enkripsi modifikasi vigenere
menggunakan metode vigenere cipher biasa, cipherteks yang dihasilkan hanya
sepanjang plainteks.
Berikut ini merupakan cipherteks hasil dari vigenere cipher biasa dan
modifikasi vigenere cipher.
Plainteks : Tolong besok hadir di kantor pusat jam 9. Akan diadakan pertemuan
tertutup membahas tentang adanya perbedaan laporan keuangan dari
kantor cabang
Kunci : penting
Cipherteks biasa :
ÄÔÚã×ÕÒÊáãÔÏÑÉ×æÒÐ ÐÏâÝÝÙ ÕãçÊâÚÆÛ¢±ÐÏâÒÐÑÉÏßÊÜ ÕÓæÝ
ÓÔåÆÜÝÓÙäÚâéÙÔÕÒÐÕÑÏÚ ÙÓâÝÏÕ×ÏØÊÜàÑÞÙÛÐÌÔÆÏâÚÈàÔàÕ×Ò
ÕÚÏâÐÏÕ ÉÏæÒÒÑÓâãÛÊÑÇÏâÐ
Cipherteks modifikasi :
ÄÕÝÙÕÜÖäÓ×Û×ÎÒÕÓÙÜÜÖäÐ××ÖÎÑÕÒÙÒÜÙä×Ø××Î ÕÙÙÊÜÕäÙ×ã×
àÎ ÕÞÙÞÜÚäÆ×è×ÎÚÕÏÙÖÜä×¢×αÕÙÙÊÜÕä×Ø××ÎÑÕÒÙÊÜÒäÆ×â×Î Õ
ÞÙÎÜÙäÙ×Ù×ÛÎåÕÏÙ×ÜäÙ×Ù×àÎäÕãÙÝÜÜäÕ××ÛÎÕÕÛÙËÜÈäÍ×Õ×áÎ Õâ
ÙÎÜÕäÙ×Õ×ÜÎ×ÕÙÊÜËäÆ×â×çÎÑÕÙÙÜÌä××Ö×ÓÎÔÕÏÙÊÜÕä×à×ÏÎàÕÝÙÛ
ÜÈäÓ××ÙÎÕÕãÙÊÜÕäÌ×Õ×ÜÎ ÕÒÙÊÜÙäÎ××ÙÎÑÕÜÙÝÜÖä×××ÑÎÑÕÐÙÊ
ÜÕäÌ×
Dari kedua versi cipherteks tersebut, cipherteks vigenere cipher biasa
dapat dipecahkan dengan mencoba kemungkinan kunci sebanyak 256145 kunci,
sedangkan cipherteks modifikasi vigenere cipher dapat dipecahkan dengan
mencoba kemungkinan kunci sebanyak 256290 kunci. Itu berarti akan lebih sulit
untuk memecahkan cipherteks hasil modifikasi vigenere cipher dibandingkan
45
4.4.2 Hasil Steganografi
Hasil dari proses steganografi berupa citra berformat *PNG yang telah disisipi
pesan dengan metode penyisipan pesan LSB. Citra hasil steganografi ini tidak
memperlihatkan perubahan yang signifikan walaupun LSB citra tersebut telah
berubah. Hal ini dikarenakan keterbatasan manusia untuk dapat melihat perubahan
warna yang sangat kecil. Gambar 4.2 merupakan citra sebelum disisip pesan dan
Gambar 4.8 merupakan citra yang telah disisip pesan.
Perubahan yang terjadi pada citra hasil steganografi ini dapat dilihat dari
nilai pixel-nya. Dengan membandingkan nilai pixel citra sebelum disisip pesan
dan citra setelah disisip pesan maka akan terlihat bahwa sesungguhnya terdapat
perbedaan dari kedua citra tersebut. Gambar 4.17 menampilkan nilai pixel dari
citra sebelum disisip pesan dan citra setelah disisip pesan.
(a)
(b)
Gambar 4.17 (a) Pixel citra sebelum disisip pesan; (b) Pixel citra setelah disisip
pesan
Setelah dilakukan beberapa kali pengujian menggunakan ukuran citra
penampung yang bervariasi, dapat diketahui maksimal plainteks yang dapat
disembunyikan berdasarkan ukuran citra penampungnya. Hasil pengujian
Tabel 4.5. Kapasitas maksimum citra
Ukuran Citra Maksimal Plainteks Yang Dapat Disembunyikan (karakter)
20 x 20 75
200 x 58 2.175
360 x 348 23.490
500 x 500 46.875
479 x 640 57.480
800 x 600 90.000
Dalam penelitian ini cipherteks hasil dari enkripsi memiliki panjang 2 kali
panjang plainteks dan menggunakan citra RGB yang memiliki 3 byte pada setiap
pixel-nya maka hasil pengujian pada Tabel 4.5 diperoleh dari perhitungan dengan persamaan
= 3
16
Hasil pengujian Tabel 4.5 diperoleh dari perhitungan dengan persamaan
= 3
16
Karena menggunakan citra RGB yang memiliki 3 byte pada setiap pixel-nya maka
panjang dan lebar citra dikalikan 3, dan karena cipherteks yang dihasilkan dari
BAB 5
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Setelah keseluruhan proses dilakukan, maka dapat diambil kesimpulan sebagai
berikut:
1. Pada penelitian ini pesan rahasia dienkripsi, kemudian hasil enkripsi yang
berupa cipherteks disembunyikan ke dalam citra, sehingga tidak
menimbulkan kecurigaan pihak lain serta keamanan dan kerahasiaan pesan
terjaga.
2. Pada proses ekstraksi, pesan yang disisipkan pada citra dapat diperoleh
kembali secara utuh dengan menggunakan kunci yang benar.
3. Algoritma vigenere cipher yang telah dimodifikasi lebih sulit dipecahkan
dibandingkan dengan algoritma vigenere cipher biasa.
4.2 Saran
Adapun saran – saran yang dapat penulis berikan untuk pengembangan dan
perbaikan penelitian ini adalah sebagai berikut:
1. Membangkitkan bilangan acak untuk memilih posisi byte citra yang akan
digunakan untuk penyisipan pesan.
2. Untuk menambah kerumitan dalam memecahkan cipherteks, dapat dilakukan
modifikasi tambahan pada vigenere cipher.
3. Penelitian ini agar dapat dikembangkan lebih lanjut dengan menggunakan
DAFTAR PUSTAKA
Andri, M. Y. 2009. Implementasi Algoritma Kriptografi DES, RSA Dan Algoritma Kompresi LZW Pada Berkas Digital. [Skripsi]. Medan: Universitas Sumatera Utara.
Asyad, A. A 2010. Implementasi Least Significant Bit Untuk Pengamanan Citra Digital Di Dalam Media Citra. [Skripsi]. Medan: Universitas Sumatera Utara.
Cahyadi, Tri. 2012. Implementasi Steganografi LSB Dengan Enkripsi Vigenere Cipher Pada Citra JPEG. Transient. Vol 1, No 4.
Handoyo, K.L. Modifikasi Vigenere Cipher Dengan Metode Penyisipan Kunci Pada Plainteks. Teknik Informatika ITB.
Hidayat, W. 2010. Perlindungan Pesan Rahasia Pada Citra Digital Menggunakan Metode Least Significat Bit Steganografi. [Skripsi]. Medan: Universitas Sumatera Utara.
Munir, Rinaldi. 2006. Kriptografi. Bandung: Informatika.
Munir, Rinaldi. 2005. Pengolahan Citra Digital. Bandung: Informatika.
Prasetyo, F.P. 2010. Steganografi Menggunakan Metode LSB Dengan Software Matlab. [Skripsi]. Jakarta: Universitas Islam Negri Syarif Hidayatullah.
Sianipar, R.H. 2013. Pemrograman Matlab Dalam Contoh Dan Penerapan. Bandung: Informatika.
Sidiq, A.Z. Vigenere Cipher Dengan Modifikasi Bujursangkar Vigenere Menggunakan Kode Morse. Teknik Informatika ITB.
Sutoyo, T., Mulyanto, E., Suhartono, V., Nurhayati, O.D. dan Wijanarto, M. T. 2009. Teori Pengolahan Citra Digital. Yogyakarta: Penerbit Andi.
49
Lampiran 1. Fungsi Utama
function varargout = UTAMA(varargin) gui_Singleton = 1; if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1}); end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:}); end
function UTAMA_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject; guidata(hObject, handles);
51
Lampiran 2. Fungsi Enkripsi Dan Encoding
function varargout = ENKRIPSI(varargin) gui_Singleton = 1; if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1}); end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:}); end
function varargout = ENKRIPSI_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
function pesan_Callback(hObject, eventdata, handles)
function pesan_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
function kunci_Callback(hObject, eventdata, handles)
function kunci_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
Lampiran 2. Lanjutan
function pilihGambar_Callback(hObject, eventdata, handles)
axes(handles.axes1); clear gca;
[FileName, PathName, FilterIndex] =
uigetfile('*.PNG','Pilih Citra','*.PNG');
function proses_Callback(hObject, eventdata, handles) % PROSES ENKRIPSI
if panjangPesanInput == 0 respon =
peringatanPesan('Title','formPeringatanPesan'); else