Steganografi Teks Menggunakan Pangram Dan Medium Citra Pada Enhanced Least Significant Bit
STEGANOGRAFI TEKS MENGGUNAKAN PANGRAM
DAN MEDIUM CITRA PADA ENHANCED
LEAST SIGNIFICANT BIT
TESIS
LEGITO
127038046
PROGRAM STUDI MAGISTER (S2) TEKNIK INFORMATIKA
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
(2)
STEGANOGRAFI TEKS MENGGUNAKAN PANGRAM
DAN MEDIUM CITRA PADA ENHANCED
LEAST SIGNIFICANT BIT
TESIS
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Magister Teknik Informatika
LEGITO
127038046
PROGRAM STUDI MAGISTER (S2) TEKNIK INFORMATIKA
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
(3)
PERSETUJUAN
Judul Tesis : STEGANOGRAFI TEKS MENGGUNAKAN PANGRAM DAN MEDIUM CITRA PADA
ENHANCED LEAST SIGNIFICANT BIT
Kategori : TESIS
Nama Mahasiswa : LEGITO Nomor Induk Mahasiswa : 127038046
Program Studi : Magister (S2) Teknik Informatika
Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA Komisi Pembimbing :
Pembimbing 2, Pembimbing 1,
Prof. Dr. Herman Mawengkang Prof. Dr. Muhammad Zarlis
Diketahui / Disetujui Oleh,
Program Studi Magister (S2) Teknik Informatika, Ketua,
Prof. Dr. Muhammad Zarlis NIP. 19570701 198601 1 003
(4)
PERNYATAAN
STEGANOGRAFI TEKS MENGGUNAKAN PANGRAM
DAN MEDIUM CITRA PADA ENHANCED
LEAST SIGNIFICANT BIT
TESIS
Saya mengakui bahwa tesis ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.
Medan, 15 Juli 2014
Legito 127038046
(5)
PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN
AKADEMIS
Sebagai sivitas akademika Universitas Sumatera Utara, saya yang bertanda tangan di bawah ini:
Nama : Legito
NIM : 127038046
Program Studi : Teknik Informatika Jenis Karya Ilmiah : Tesis
Dengan pengembangan ilmu pengetahuan, menyetujui untuk memberikan kepada Universitas Sumatera Utara Hak bebas Royalti Non-Eksklusif (non-Exlusive Royalty Free Right) atas tesis saya yang berjudul:
STEGANOGRAFI TEKS MENGGUNAKAN PANGRAM
DAN MEDIUM CITRA PADA ENHANCED
LEAST SIGNIFICANT BIT
Beserta perangkat yang ada (jika diperlukan). Dengan Hak Bebas Royalti Non-Eksklusif ini, Universitas Sumatera Utara berhak menyimpan, mengalih media, memformat, mengelola dalam bentuk data-base, merawat dan mempublikasikan Tesis saya tanpa minta izin dari saya selama tetap mencantumkan nama saya sebagai penulis dan sebagai pemegang dan atau sebagai pemilik hak cipta.
Dengan pernyataan ini dibuat dengan sebenarnya.
Medan, 15 Juli 2014
NIM 127038046 Legito
(6)
Telah diuji pada Tanggal : 17 Juli 2014
PANITIA PENGUJI TESIS
Ketua : Prof. Dr. Tulus, Vor. Dipl. Math, M.Si Anggota : 1. Dr. Erna Budhiarti Nababan, M.IT
2. Dr. Rahmat W Sembiring, M.Sc.IT 3. Prof. Dr. Muhammad Zarlis
(7)
RIWAYAT HIDUP
DATA PRIBADI
Nama Lengkap (berikut gelar) : Legito, S.T, M.Kom
Tempat dan Tanggal Lahir : Medan, 29 September 1974
Alamat Rumah : Jl. Marelan Raya Ling.35 Psr.5 Marelan
Gg.Pendidikan No.83 Medan 20255
Telepon/Faks/HP : 0812 6017 991
Instansi Tempat Bekerja : STT Sinar Husni Helvetia - Deliserdang Alamat Kantor : Jl. Veteran Gg. Utama Helvetia 202373
DATA PENDIDIKAN
SD : SD Negeri 064009 Medan TAMAT : 1987
SLTP : SMP Negeri 18 Medan TAMAT : 1990 SLTA : SMEA PAB 1 Helvetia Medan TAMAT : 1993 S1 : S1 Teknik Informatika STT Sinar Husni TAMAT : 2008 S2 : S2 Teknik Informatika USU TAMAT : 2014
(8)
KATA PENGANTAR
Puji Syukur penulis panjatkan kehadirat Tuhan Yang Maha Esa, yang berkat rahmat dan hidayah-Nya, sehingga Tesis ini dapat diselesaikan tepat pada waktunya. Penulis mengucapkan ribuan terima kasih kepada:
1. Rektor Universitas Sumatera Utara, Bapak Prof. Dr. dr. Syahril Pasaribu DTM&H, M.Sc (CTM), Sp. A(K) atas kesempatan yang telah diberikan kepada penulis untuk dapat mengikuti dan menyelesaikan pendidikan Program Magister.
2. Dekan Fakultas Ilmu Komputer dan Teknologi Informasi sekaligus Ketua Program Studi Magister Teknik Informatika, Bapak Prof. Dr. Muhammad Zarlis. Sekretaris Program Studi Teknik Informatika, Bapak M. Andri Budiman, ST, M.Comp. Sc, MEM. Beserta seluruh Staf Pengajar Program Studi Magister Teknik Informatika Program Pascasarjana Fakultas Ilmu Komputer Universitas Sumatera Utara.
3. Terima kasih tak terhingga dan penghargaan yang setinggi-tingginya atas bimbingan, pengarahan dan dorongan yang telah diberikan selama penyusunan tesis ini kepada Bapak Prof. Dr. Muhammad Zarlis selaku Pembimbing Utama, demikian juga kepada Bapak Prof. Dr. Herman Mawengkang, selaku Pembimbing Kedua yang dengan penuh kesabaran menuntun dan membimbing penulis hingga selesainya tesis ini dengan baik.
4. Terima kasih yang tak terhingga serta penghargaan setinggi-tingginya juga penulis ucapkan kepada Bapak Prof. Dr. Tulus, Vor. Dipl. Math, M.Si, Ibu Dr. Erna Budhiarti Nababan,MIT dan Bapak Dr. Rahmat W. Sembiring, M.Sc.IT sebagai pembanding yang telah memberikan saran dan masukan serta arahan yang baik demi penyelesaian tesis ini.
5. Terima kasih yang tak terhingga juga penulis ucapkan kepada kedua orangtua serta keluarga besar, saudara-saudara dan teman-teman yang dengan senantiasa mendoakan serta memberikan dukungan penuh hingga tiada mampu penulis untuk membalasnya.
(9)
6. Staff Pegawai Pasca Sarjana S2 Teknik Informatika serta rekan mahasiswa/i seangkatan (2012) yang telah mendukung penulis dalam penyusunan karya ilmiah ini.
Dengan penuh kesadaran dan rendah hati, penulis menyadari bahwa penelitian ini masih jauh dari kesempurnaan, hal ini karena keterbatasan, kemampuan, dan pengetahuan penulis. Harapan penulis semoga penelitian ini bermanfaat bagi penulis khususnya dan pembaca pada umumnya. Sekali lagi penulis mengucapkan terima kasih. Semoga kiranya Tuhan Yang Maha Esa membalas kebaikan yang telah diberikan.
Medan, 15 Juli 2014 Penulis,
Legito
(10)
ABSTRAK
Metode penyisipan LSB (Least Significant Bit) adalah algoritma steganografi sederhana yang mengambil least significant bit sebanyak beberapa bit dari media sampul (cover medium) and menggantikannya dengan sebuah deretan bit yang berisi data rahasia untuk menyembunyikan informasi pada media sampul. Namun, kemampuan penyimpanan dan sifat tidak kelihatannya relatif rendah, karena data rahasia dapat dengan mudah diekstraksi keluar. Metode ini menggunakan dua medium yang didefinisikan oleh user untuk meng-encode dan men-decode data rahasia. Medium pertama adalah kalimat pangram berisikan semua karakter alfabet, sedangkan, medium kedua adalah sebuah file citra yang tidak terkompresi. Metode yang diperkenalkan ini menggunakan algoritma yang dapat dirincikan sebagai berikut, setiap karakter pada pesan rahasia yang di-input akan di-encode dengan menggunakan dua buah indeks, yaitu sebuah indeks seed yang menunjuk ke sebuah karakter acak pada kalimat pangram dan sebuah indeks offset yang melambangkan jarak antara indeks seed dan kemunculan pertama dari karakter yang di-encode pada kalimat pangram. Panjang maksimum dari kalimat pangram yang diperbolehkan adalah 512 karakter, sehingga hanya 9 bit yang diperlukan untuk merepresentasikan indeks seed dan offset. Kedua indeks akan ditempelkan pada 3 buah LSB dari channel warna dari medium citra. Kedua medium, yaitu pangram dan citra dikirimkan kepada penerima. Keuntungan dari metode yang diperkenalkan ini adalah metode ini menggunakan dua medium, yang saling melengkapi satu sama lain untuk mengirimkan data rahasia, sehingga membuat data terkonversi menjadi tangguh terhadap stego-attack.
(11)
STEGANOGRAPHY TEXT USING PANGRAM
AND MEDIUM IMAGE ON ENHANCED
LEAST SIGNIFICANT BIT
ABSTRACT
Insertion method LSB (Least Significant Bit) is a simple steganographic algorithm that takes the least significant bit as much as a few bits of media cover (the cover medium) and replacing it with a bit stream that contains confidential data to hide information in a cover media. However, the storage capability and not nature seems relatively low, because of confidential data can be easily extracted out. This method uses two mediums are defined by the user to encode and decode the data confidential. The first medium is a pangram sentence containing all the characters of the alphabet, whereas, the second medium is an uncompressed image file. The method is introduced using algorithms that can be detailed as follows, each character in the secret message in the input will be encoded by using two indices, namely a seed index pointing to a random character on pangram sentence and an index offset that symbolizes distance between seed index and the first appearance of the character encoded in pangram sentence. The maximum length of a pangram sentence allowed is 512 characters, so only 9 bits are required to represent a seed index and offset. Both indexes will be placed on the 3 pieces LSB of the color channels of the image medium. Both medium, and image pangram sent to the recipient. The advantage of this method is introduced this method uses two mediums, which complement each other to transmit confidential data, thus making the data converted into stego-resilient against attack.
(12)
DAFTAR ISI
Halaman
HALAMAN JUDUL i
PENGESAHAN ii
PERNYATAAN ORISINALITAS iii
PERSETUJUAN PUBLIKASI iv
PANITIA PENGUJI v
RIWAYAT HIDUP vi
KATA PENGANTAR vii
ABSTRAK ix
ABSTRACT x
DAFTAR ISI xi
DAFTAR GAMBAR xiii
DAFTAR TABEL xiv
BAB I PENDAHULUAN
1.1 Latar Belakang 1
1.2 Rumusan Masalah 3
1.3 Batasan Masalah 3
1.4 Tujuan Penelitian 4
1.5 Manfaat Penelitian 4
BAB II TINJAUAN PUSTAKA
2.1 Pengenalan Citra 5
2.1.1 Citra Analog 5
2.1.2 Citra Digital 6
2.1.3 Representasi Citra Digital 8
2.2 Format Citra 10
2.3 Steganografi 11
2.3.1 Metode Steganografi LSB 13
2.3.2 Metode Steganografi MSB 14
(13)
2.4 Metode Steganografi Enhanced LSB 15
2.4.1 Fungsi Hash SHA-1 15
2.4.2 Steganografi Teks Menggunakan Pangram 19
2.4.3 Medium Pertama Kalimat Pangram 20
2.4.4 Medium KeduaCitra Pembawa 21
2.5 Pembangkit Bilangan Acak Semu 21
2.6 Linier Congruential Generator (LCG) 23
2.7 Analisa Orientasi Objek 24
2.8 Riset-riset terkait 25
2.9 Persamaan dengan Riset Lain 26
BAB III METODOLOGI PENELITIAN
3.1 Pendahuluan 27
3.2 Lingkungan Penelitian 27
3.3 Teknik Pengembangan 28
3.3.1 Alur Proses Penempelan Pesan 30
3.3.2 Alur Proses EktrasiPesan 30
3.3.3 Alur Proses Metode Enhanced LSB 31 BAB IV HASIL DAN PEMBAHASAN
4.1 Pendahuluan 36
4.2 Analisis Hasil 36
4.2.1 Hasil Proses Penempan Pesam 37
4.2.2 Hasil Proses Ektraksi Pesan 43
4.2.3 Hasil Pengujian 48
4.3 Pembahasan 52
BAB V KESIMPULAN DAN SARAN
5.1 Kesimpulan 56
5.2 Saran 56
DAFTAR PUSTAKA 58
LAMPIRAN 1 DAFTAR PUBLIKASI ILMIAH PENULIS (TESIS) 61
(14)
DAFTAR GAMBAR
Halaman
Gambar 2.1 Citra Digital berebntuk Grayscale 6
Gambar 2.2 Pembentukan Citra Digital dari Citra Analog 7
Gambar 3.1 Model Usulan 28
Gambar 3.2 Alur Proses Penempelan Pesan 29
Gambar 3.3 Alur Proses Ektraksi Pesan 30
Gambar 3.4 Alur Proses Metode Enhanced LSB 31
Gambar 4.1 Input Citra Logo Fasilkom USU.png 47
Gambar 4.2 Citra hasil terhadap input 48
Gambar 4.3 Proses perbandingan Citra 48
(15)
DAFTAR TABEL
Halaman
Tabel 2.1 Kode warna 9
(16)
ABSTRAK
Metode penyisipan LSB (Least Significant Bit) adalah algoritma steganografi sederhana yang mengambil least significant bit sebanyak beberapa bit dari media sampul (cover medium) and menggantikannya dengan sebuah deretan bit yang berisi data rahasia untuk menyembunyikan informasi pada media sampul. Namun, kemampuan penyimpanan dan sifat tidak kelihatannya relatif rendah, karena data rahasia dapat dengan mudah diekstraksi keluar. Metode ini menggunakan dua medium yang didefinisikan oleh user untuk meng-encode dan men-decode data rahasia. Medium pertama adalah kalimat pangram berisikan semua karakter alfabet, sedangkan, medium kedua adalah sebuah file citra yang tidak terkompresi. Metode yang diperkenalkan ini menggunakan algoritma yang dapat dirincikan sebagai berikut, setiap karakter pada pesan rahasia yang di-input akan di-encode dengan menggunakan dua buah indeks, yaitu sebuah indeks seed yang menunjuk ke sebuah karakter acak pada kalimat pangram dan sebuah indeks offset yang melambangkan jarak antara indeks seed dan kemunculan pertama dari karakter yang di-encode pada kalimat pangram. Panjang maksimum dari kalimat pangram yang diperbolehkan adalah 512 karakter, sehingga hanya 9 bit yang diperlukan untuk merepresentasikan indeks seed dan offset. Kedua indeks akan ditempelkan pada 3 buah LSB dari channel warna dari medium citra. Kedua medium, yaitu pangram dan citra dikirimkan kepada penerima. Keuntungan dari metode yang diperkenalkan ini adalah metode ini menggunakan dua medium, yang saling melengkapi satu sama lain untuk mengirimkan data rahasia, sehingga membuat data terkonversi menjadi tangguh terhadap stego-attack.
(17)
STEGANOGRAPHY TEXT USING PANGRAM
AND MEDIUM IMAGE ON ENHANCED
LEAST SIGNIFICANT BIT
ABSTRACT
Insertion method LSB (Least Significant Bit) is a simple steganographic algorithm that takes the least significant bit as much as a few bits of media cover (the cover medium) and replacing it with a bit stream that contains confidential data to hide information in a cover media. However, the storage capability and not nature seems relatively low, because of confidential data can be easily extracted out. This method uses two mediums are defined by the user to encode and decode the data confidential. The first medium is a pangram sentence containing all the characters of the alphabet, whereas, the second medium is an uncompressed image file. The method is introduced using algorithms that can be detailed as follows, each character in the secret message in the input will be encoded by using two indices, namely a seed index pointing to a random character on pangram sentence and an index offset that symbolizes distance between seed index and the first appearance of the character encoded in pangram sentence. The maximum length of a pangram sentence allowed is 512 characters, so only 9 bits are required to represent a seed index and offset. Both indexes will be placed on the 3 pieces LSB of the color channels of the image medium. Both medium, and image pangram sent to the recipient. The advantage of this method is introduced this method uses two mediums, which complement each other to transmit confidential data, thus making the data converted into stego-resilient against attack.
(18)
BAB 1
PENDAHULUAN
1.1. Latar Belakang Masalah
Dengan pesatnya perkembangan teknologi Internet seperti sekarang ini, jumlah informasi yang dikirim dan diterima secara elektronik juga meningkat. Begitu juga dengan masalah keamanannya yang sudah banyak dibicarakan secara luas. Mengirim pesan terenkripsi sering akan menarik perhatian pihak ketiga, yaitu
cracker dan hacker, sehingga akan terjadi upaya untuk memecahkan dan mengungkapkan pesan aslinya. Dalam dunia digital, steganografi diperkenalkan untuk menyembunyikan keberadaan komunikasi digital dengan menyembunyikan pesan rahasia di dalam pesan lain yang tidak dicurigai. Seiring dengan semakin berkembangnya teknologi pada aktivitas setiap hari, mengamankan data sensitif menjadi sebuah persoalan penting. (William Stallings, 2011)
Kriptografi mengambil peranan penting dalam industri teknik informatika ketika pertama kali diterapkan untuk mengamankan lalu lintas internet Salah satu protokol enkripsi yang umum digunakan untuk internet adalah SSL (Secure Socket Layer) yang mengenkripsi lalu lintas jaringan pada layer aplikasi menggunakan kriptografi asimetris. SSL memungkinkan transmisi data aman antara browser dan aplikasi online. Secara mendasar, kriptografi menyediakan pengamanan data dengan mengacak isi data dan mengubahnya menjadi bentuk baru yang tidak berguna bagi pihak yang tidak berkepentingan (Peter Wayner, 2009). Walaupun penyadap tidak dapat mengetahui isi pesan, namun mereka mengetahui telah terjadi komunikasi rahasia.
Sebagai solusinya, steganografi mulai menarik perhatian dari peneliti komputer dan pemakai. Kenyataannya, sasaran dari steganografi adalah untuk menyembunyikan keberadaan dari komunikasi data dengan menempelkan data rahasia yang akan ditransmisikan pada sebuah file digital yang disebut sebagai
(19)
merupakan satu-satunya objek yang kelihatan sedang dikomunikasikan antara pengirim dan penerima. Karena data rahasia tidak kelihatan dan dikonversikan menjadi carrier file, tidak ada pihak lain, kecuali pihak yang sedang berkomunikasi mengetahui bahwa telah terjadi komunikasi rahasia (Fabien A.P. Petitcolas, 1999).
Kekuatan dari steganografi tergantung pada tingkat kesulitan dari data terkonversi dapat dideteksi dan diperoleh kembali oleh pihak yang tidak memiliki hak. Steganalyst adalah spesialis yang disewa untuk mengidentifikasi file yang dicurigai memiliki data rahasia dan jika memungkinkan memperoleh kembali data tersebut. Walaupun demikian, steganalyst umumnya mengasumsikan bahwa data rahasia disembunyikan pada sebuah carrier file tunggal dan bukan pada beberapa
file yang saling melengkapi satu sama lainnya (Jessica Fridrich, 2009).
Steganografi teks ini menggunakan dua medium yang didefinisikan oleh
user untuk meng-encode dan men-decode data rahasia. Medium pertama adalah kalimat pangram yang dibentuk oleh kata bahasa Inggris, sedangkan, medium kedua adalah sebuah file citra yang tidak terkompresi. Metode yang diperkenalkan ini menggunakan algoritma yang dapat dirincikan sebagai berikut, setiap karakter pada pesan rahasia yang di-input akan di-encode dengan menggunakan dua buah indeks, yaitu sebuah indeks seed yang menunjuk ke sebuah karakter acak pada kalimat pangram dan sebuah indeks offset yang melambangkan jarak antara indeks seed dan kemunculan pertama dari karakter yang di-encode pada kalimat pangram. Panjang maksimum dari kalimat pangram yang diperbolehkan adalah 512 karakter, sehingga hanya 9 bit yang diperlukan untuk merepresentasikan indeks seed dan offset. Kedua indeks akan ditempelkan pada 3 buah LSB (Least Significant Bit) dari channel warna dari medium citra. Kedua medium, yaitu pangram dan citra dikirimkan kepada penerima. Keuntungan dari metode yang diperkenalkan ini adalah metode ini menggunakan dua medium, yang saling melengkapi satu sama lain untuk mengirimkan data rahasia, sehingga membuat data terkonversi menjadi tangguh terhadap stego-attack.
(20)
1.2. Perumusan Masalah
Berdasaran uraian latar belakang masalah, maka permasalahannya adalah Steganografi mempunyai kelebihan dalam aspek penyembunyian pesan di mana pesan yang disembunyikan tidak terlihat kasat mata berupa kode tertentu seperti kriptografi, dikarenakan dalam steganografi pesan dititipkan pada suatu cover image. Bagaimana agar pesan tersebut dapat dititipkan pada cover image tanpa terlihat berkurangnya kualitas dari cover image , dan metode apa yang tepat agar pesan yang dititipkan tidak mengurangi kualitas cover image ?
1.3. Batasan Masalah
Batasan masalah di atas , dibatasi dengan beberapa hal sebagai berikut :
1. Input program adalah citra dalam format JPG, BMP dan PNG. Format citra hasil output sesuai dengan format citra input.
2. Ukuran citra yang dapat diproses dengan batasan minimal 100 x 100 piksel dan maksimal 1000 x 1000 piksel.
3. Data yang disisipkan berupa pesan bertipe data string
4. Panjang pangram dibatasi maksimal 512 karakter.. 5. Output file pangram berekstensi *.pgm.
6. Output file pesan rahasia berekstensi *.txt.
7. Fungsi hash yang digunakan untuk menghasilkan message digest adalah fungsi SHA-1.
8. Panjang password dibatasi minimal 6 karakter dan maksimal 10 karakter. 9. Nilai indeks seed akan diacak secara otomatis oleh aplikasi.
1.4. Tujuan Penelitian
Tujuan dari penelitian ini adalah menyembunyikan pesan teks dalam medium citra dengan metode steganografi teks menggunakan pangram dan medium citra.
(21)
1.5 Manfaat Penelitian
Manfaat yang diharapkan dari hasil penelitian ini adalah sebagai berikut:
1. Dapat mengetahui teknik penyembunyian pesan pada medium citra, menerapkan steganografi teks menggunakan pangram dan medium citra. 2. Dapat digunakan sebagai alternatif untuk menghasilkan steganografi teks.
(22)
BAB 2
LANDASAN TEORI
2.1 Pengenalan Citra
Citra adalah representasi (gambaran), kemiripan, atau imitasi dari sebuah objek. Citra merupakan kumpulan dari titik-titik yang mempunyai intensitas tertentu membentuk satu kesatuan perpaduan yang mempunyai arti baik secara artistik maupun intristik (Sutoyoso, 2009).
Citra yang baik adalah citra yang dapat menampilkan gambar yang dimaksud dengan seutuhnya, yang meliputi keindahan gambar, kejelasan gambar untuk penganalisaan dan maksud-maksud lainnya. Dengan kata lain, citra yang baik adalah citra yang dapat menampilkan nilai artistik dan intristik gambar tersebut dengan baik. Citra yang dihasilkan dapat digolongkan menjadi citra analog dan citra digital.
2.1.1 Citra Analog
Analog berhubungan dengan hal yang berterusan (continue) dalam satu dimensi. Contohnya adalah bunyi. Bunyi diwakili dalam bentuk analog yaitu suatu gelombang udara yang berterusan di mana kekuatannya diwakili sebagai jarak gelombang. Hampir semua kejadian alam boleh diwakili sebagai perwakilan analog seperti bunyi, cahaya, air, elektrik, angin dan sebagainya. Data gambar yang digunakan dalam bentuk rekaman hard-copy dinamakan foto (citra analog). Foto direkam dalam dua dimensi pada photosensitive emulsions. Citra analog terdiri dari sinyal-sinyal frekuensi elektromagnetis yang belum dibedakan sehingga pada umumnya tidak dapat ditentukan ukurannya (Sutoyoso, 2009).
(23)
2.1.2 Citra Digital
Citra digital adalah citra yang terdiri dari sinyal–sinyal frekuensi elektromagnetis yang sudah di-sampling sehingga dapat ditentukan ukuran titik gambar tersebut yang pada umumnya disebut piksel. Untuk menyatakan citra (image) secara matematis, dapat didefinisikan fungsi f(x,y) di mana x dan y menyatakan suatu posisi dalam koordinat dua dimensi dan nilai f pada titik (x,y) adalah nilai yang menunjukkan warna citra pada titik tersebut. Contoh indeks baris dan kolom (x,y) dari sebuah piksel dinyatakan dalam bilangan bulat. Piksel (0,0) terletak pada sudut kiri atas pada citra, indeks x bergerak ke kanan dan indeks y bergerak ke bawah (Sutoyono, 2009).
Citra digital sebagai fungsi dua variabel f (x,y), dimana x dan y adalah koordinat spasial dan nilai f (x,y) adalah intensitas citra pada koordinat tersebut, hal tersebut dapat dilihat pada gambar 2.1 berikut.
Gambar 2.1 Citra Digital Berbentuk Grayscale 150 x 150 Piksel
Secara matematis fungsi intensitas cahaya pada bidang dua dimensi dapat dinyatakan dengan f(x,y), dimana :
(24)
f(x,y) : intensitas cahaya (brightness) pada titik (x,y)
Sistem koordinat yang digunakan adalah sistem koordinat kartesius, dimana sumbu horizontal dinyatakan sebagai sumbu-X dan sumbu vertikal dinyatakan sebagai sumbu-Y. Dengan anggapan bahwa, cahaya merupakan energi, maka intensitas cahaya memiliki nilai pada interval 0 sampai tak terhingga, atau dituliskan sebagai:
∞ < ≤ ( , ) 0 f x y
Sedangkan nilai dari f(x,y) sebenarnya diperoleh dari hasil kali antara i(x,y)
dan r(x,y), dimana:
1. i(x,y) adalah jumlah cahaya yang berasal dari sumbernya (illumination), nilainya dari 0 (nol) sampai tak terhingga
2. r(x,y) adalah derajat kemampuan objek memantulkan cahaya (reflection), dimana nilainya dari 0 sampai 1.
Citra digital terdiri dari sinyal-sinyal frekuensi elektromagnetis yang sudah di sampling, dan ukuran piksel dari citra tersebut sudah dapat ditentukan.
Sampling merupakan proses pembentukan citra digital dari citra analog. Suatu citra yang dicetak diatas kertas disebut denga citra analog, jika citra analog tersebut di-scan dengan alat scanner maka akan menjadi citra digital. Dengan demikian, scanner merupakan alat sampling. Proses pembentukan citra digital dari citra analog diperlihatkan pada gambar 2.2.
Citra Analog Citra Digital
Proses digitasi
scanning, sampling
Gambar 2.2 Pembentukan citra digital dari citra analog
Citra sebagai keluaran 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
(25)
pita magnetik. Menurut presisi yang digunakan untuk menyatakan titik-titik koodinat pada domain spasial atau bidang dan untuk menyatakan nilai keabuan atau warna suatu citra, maka secara teoritis citra dapat dikelompokkan ke dalam empat kelas citra yaitu citra kontinu-kontinu, kontinu-diskrit, diskrit-kontinu, dan diskrit-diskrit.
Label pertama menyatakan presisi dari titik-titik koordinat pada bidang citra dan label kedua menyatakan presisi nilai keabuan atau warna. Kontinu dinyatakan dengan presisi angka tak terhingga sedangkan diskrit dinyatakan dengan presisi angka terhingga. Komputer digital bekerja dengan angka-angka presisi terhingga, dengan demikian hanya citra dari kelas dikrit-diskrit yang dapat diolah dengan komputer. Citra dari kelas tersebut lebih dikenal dengan citra digital.
2.1.3 Representasi Citra Digital
Semua citra dalam sistem komputer perlu dikodekan menggunakan sistem simbol diskrit. Sebuah citra digital a(x,y) yang diuraikan dalam sebuah ruang diskrit dua dimensi diperoleh dari sebuah citra analog dalam sebuah ruang kontinu melalui proses sampling ataupun digitasi. Sebuah citra digital dapat dianggap suatu matriks di mana baris dan kolomnya menunjukkan sebuah titik pada citra dan nilai elemen matriks menunjukkan warna pada titik tersebut. Elemen dari array digital tersebut disebut piksel atau picture elements (pixels).
Citra analog dibagi dalam N baris dan M kolom sehingga diperoleh citra digital a(x,y) dengan memberikan nilai diskrit bagi setiap titik. Pada umumnya, citra digital yang direpresentasikan dengan a(x,y) merupakan sebuah fungsi dari banyak variabel yang mencakup kedalaman / depth (z), warna / color (λ), dan waktu / time (t) atau dengan kata lain, representasi citra digital yang sebenarnya dilambangkan dengan a(x,y,z,λ,t).
(26)
Untuk mengubah citra yang bersifat kontinu menjadi citra digital diperlukan proses sampling yaitu proses pembentukan titik-titik gambar digital dari citra analog secara horizontal dan vertikal, sehingga diperoleh gambar dalam bentuk array dua dimensi. Gambar analog yang discan dengan alat scanner
disebut dengan gambar digital. Scanner itu sendiri adalah merupakan alat
sampling.
Pembagian suatu gambar menjadi sejumlah piksel dengan ukuran tertentu ini akan menentukan resolusi spasial yang diperoleh. Semakin tinggi resolusi yang diperoleh, yang berarti semakin kecil ukuran pikselnya, maka semakin halus gambar yang diperoleh, karena informasi yang hilang akibat pengelompokan, tingkat keabuan pada proses pembuatan kisi-kisi akan semakin kecil.
Proses yang diperlukan selanjutnya dalam konversi tersebut diatas adalah proses kuantisasi. Dalam proses ini tingkat keabuan setiap piksel dinyatakan dengan suatu harga integer. Batas-batas harga integer atau besarnya daerah tingkat keabuan yang digunakan untuk menyatakan tingkat keabuan piksel akan menentukan resolusi kecerahan dari gambar yang diperoleh. Kalau digunakan tiga bit untuk menyimpan harga integer tersebut, maka akan diperoleh sebanyak delapan tingkat keabuan. Makin besar jumlah tingkat keabuan yang digunakan makin baik gambar yang diperoleh, karena tingkat kontinuitas dari tingkat keabuan akan semakin tinggi sehingga mendekati citra aslinya.
Seluruh tahapan proses konversi diatas dikenal sebagai konversi analog ke digital, yang biasanya akan menyimpan hasil prosesnya pada memori citra. Sebaliknya sebagai hasil suatu proses pengolahan citra digital, kadang-kadang perlu mengeluarkan gambar dari memori citra ke bentuk peragaan pada monitor, televisi, atau ke bentuk cetak foto. Proses konversi kebalikan ini dikenal sebagai konversi digital ke analog. Resolusi gambar dikatakan sebagai bilangan piksel yang terkandung dalam suatu citra digital. Pada resolusi tinggi, keterperincian data lebih nyata dan tajam. Pada citra dengan resolusi rendah, piksel-piksel individu akan jelas kelihatan.
(27)
Citra hitam putih adalah citra yang menggunakan 1 bit bagi perwakilan hitam putih di mana 0 bagi hitam dan 1 bagi putih bagi satu piksel dikenali sebagai binary image. Suatu citra hitam putih yang diwakili dengan beberapa nilai kekuatan cahaya berlainan dari hitam hingga putih dikenali sebagai grayscale image.
Salah satu sistem yang digunakan untuk mewakili gambar yaitu sistem warna RGB (Red, Green, Blue). Sistem RGB adalah sistem yang menggabungkan warna primer gabungan (additive primary colours) untuk memperoleh gabungan-gabungan warna. Berikut ini adalah tabel warna yang merupakan gabungan-gabungan warna primer.
Tabel 2.1 Kode Warna
Warna Red Green Blue
Black 0 0 0
Blue 0 0 255
Green 0 255 0
Red 255 0 0
Cyan (Green + Blue) 0 255 255
Magenta (Red + Blue) 255 0 255
Yellow (Red + Green) 255 255 0
White (Red + Green + Blue) 255 255 255
2.2 Format Citra
Untuk menyimpan foto dan citra digunakan format citra layar kuadratis (berbentuk kotak) yang terdiri atas titik-titik citra kecil yang disebut dengan piksel (pixel). Piksel disebut juga dengan dot. Piksel berbentuk bujur sangkar dengan ukuran relatif kecil. Banyaknya piksel tiap satuan luas tergantung pada resolusi yang digunakan. Keanekaragaman warna piksel tergantung pada bit depth yang
(28)
dipakai. Semakin banyak jumlah piksel tiap satu satuan luas, semakin baik kualitas citra yang dihasilkan dan tentu akan semakin besar ukuran filenya.
Resolusi adalah jumlah piksel per satuan luas yang ada suatu citra. Satuan piksel yang sering dipakai adalah dpi (dot per inch) atau ppi (piksel per inch). Satuan dpi menentukan jumlah piksel yang ada setiap satu satuan luas. Dalam hal ini adalah satu inch kuadrat. Resolusi sangat berpengaruh pada detil dan perhitungan citranya. Jika suatu citra dengan luas 1 inch kuadrat dan jumlah dot adalah 60 x 60 (yang berarti mempunyai resolusi 3600 dpi) diperbesar menjadi 10
inch maka jumlah piksel tetap 3600 dpi, tetapi resolusinya berubah menjadi 3600:10 = 360 dpi. Hal ini mengakibatkan citra menjadi kabur dan kasar.
Bit Depth (kedalaman warna) sering disebut dengan pixel depth atau color depth. Bit Depth menentukan berapa banyak informasi warna yang tersedia untuk ditampilkan/dicetak dalam setiap piksel. Semakin besar nilainya semakin bagus kualitas citra yang dihasilkan. Tentu ukurannya juga semakin besar. Misalkan suatu citra mempunyai bit depth = 1. Ini berarti hanya ada 2 kemungkinan warna (21=2) yang ada pada citra tersebut yaitu hitam dan putih. Bit depth = 24 berarti mempunyai kemungkinan warna 224=16 juta warna.
Bersama ukuran citra dan kedalaman warna, resolusi menentukan besarnya ukuran file grafik. Sebuah format grafik harus mampu menyatukan kualitas citra, ukuran file dan kompatibilitas dengan berbagai aplikasi. Saat ini tersedia ratusan format grafik dan format baru terus dikembangkan. Setiap program pengolah citrapun biasanya memiliki format citra sendiri.
2.3 Steganografi
Steganografi adalah merupakan salah satu cara untuk menyembunyikan suatu pesan / data rahasia di dalam data atau pesan lain yang tampak tidak mengandung apa-apa, kecuali bagi orang yang mengerti kuncinya. Dalam bidang keamanan komputer, steganografi digunakan untuk menyembunyikan data rahasia saat enkripsi tidak dapat dilakukan atau bersamaan dengan enkripsi. Jadi, walaupun enkripsi berhasil dipecahkan (decipher) pesan / data rahasia tetap tidak terlihat.
(29)
Selain itu, pada kriptografi pesan disembunyikan dengan “diacak” sehingga pada kasus-kasus tertentu dapat dengan mudah mengundang kecurigaan, sedangkan pada steganografi pesan “disamarkan” dalam bentuk yang relatif “aman” sehingga tidak terjadi kecurigaan itu. Steganografi dapat digunakan pada berbagai macam bentuk data, yaitu image, audio, dan video (Munir, 2004).
Pada umumnya, pesan steganografi muncul dengan rupa lain seperti gambar, artikel, daftar belanjaan, atau pesan-pesan lainnya. Pesan yang tertulis ini merupakan tulisan yang menyelubungi atau menutupi. Contohnya, suatu pesan bisa disembunyikan dengan menggunakan tinta yang tidak terlihat di antara garis-garis yang kelihatan. Teknik steganografi meliputi banyak sekali metode komunikasi untuk menyembunyikan pesan rahasia (teks atau gambar) di dalam berkas-berkas lain yang mengandung teks, image, bahkan audio tanpa menunjukkan ciri-ciri perubahan yang nyata atau terlihat dalam kualitas dan struktur dari berkas semula. Metode ini termasuk tinta yang tidak tampak, microdots, pengaturan kata, tanda tangan digital, jalur tersembunyi dan komunikasi spektrum lebar.
Tujuan dari steganografi adalah merahasiakan atau menyembunyikan keberadaan dari sebuah pesan tersembunyi atau sebuah informasi. Dalam prakteknya, kebanyakan pesan disembunyikan dengan membuat perubahan tipis terhadap data digital lain yang isinya tidak akan menarik perhatian dari penyerang potensial, sebagai contoh sebuah gambar yang terlihat tidak berbahaya. Perubahan ini bergantung pada kunci (sama pada kriptografi) dan pesan untuk disembunyikan. Orang yang menerima gambar kemudian dapat menyimpulkan informasi terselubung dengan cara mengganti kunci yang benar ke dalam algoritma yang digunakan.
Pada metode steganografi cara ini sangat berguna jika digunakan pada cara steganografi komputer karena banyak format berkas digital yang dapat dijadikan media untuk menyembunyikan pesan. Format yang biasa digunakan di antaranya: 1. Format image : bitmap (bmp), gif, pcx, jpeg.
2. Format audio : wav, voc, mp3. 3. Format lain : teks file, html, pdf.
(30)
Kelebihan steganografi jika dibandingkan dengan kriptografi adalah pesan-pesannya tidak menarik perhatian orang lain. Pesan-pesan berkode dalam kriptografi yang tidak disembunyikan, walaupun tidak dapat dipecahkan, akan menimbulkan kecurigaan. Seringkali, steganografi dan kriptografi digunakan secara bersamaan untuk menjamin keamanan pesan rahasianya.
Sebuah pesan steganografi (plaintext), biasanya pertama-tama dienkripsikan dengan beberapa arti tradisional, yang menghasilkan ciphertext. Kemudian, covertext dimodifikasi dalam beberapa cara sehingga berisi ciphertext, yang menghasilkan stegotext. Contohnya, ukuran huruf, ukuran spasi, jenis huruf, atau karakteristik covertext lainnya dapat dimanipulasi untuk membawa pesan tersembunyi; hanya penerima (yang harus mengetahui teknik yang digunakan) dapat membuka pesan dan mendekripsikannya.
2.3.1 Metode Steganografi Least Significant Bit (LSB)
Untuk menjelaskan metode ini, digunakan citra digital sebagai cover-object. Pada setiap byte terdapat bit yang paling kurang berarti (Least Significant Bit atau LSB). Misalnya pada byte 00011001, maka bit LSB-nya adalah 1. Untuk melakukan penyisipan pesan, bit yang paling cocok untuk diganti dengan bit pesan adalah bit
LSB, sebab pengubahan bit tersebut hanya akan mengubah nilai byte-nya menjadi satu lebih tinggi atau satu lebih rendah. Sebagai contoh, urutan bit berikut ini menggambarkan 3 pixel pada cover-image 24-bit.
(00100111 11101001 11001000) (00100111 11001000 11101001) (11001000 00100111 11101001)
Pesan yang akan disisipkan adalah karakter “A”, yang nilai biner-nya adalah 01000001, maka akan dihasilkan stego image dengan urutan bit sebagai berikut: (00100111 11101000 11001000)
(00100110 11001000 11101000) (11001000 00100111 11101001)
(31)
Ada dua jenis teknik yang dapat digunakan pada metode LSB, yaitu penyisipan pesan secara sekuensial dan secara acak. Sekuensial berarti pesan rahasia disisipkan secara berurutan dari data titik pertama yang ditemukan pada file gambar, yaitu titik pada sudut kanan bawah gambar. Sedangkan acak berarti penyisipan pesan rahasia dilakukan secara acak pada gambar, dengan masukan kata kunci (Sinaga, Y.A, 2008).
2.3.2 Metode Steganografi Most Significant Bit (MSB)
Proses penyisipan pesan ke dalam citra digital dengan menggunakan metode Most Significant Bit (MSB) juga sama metode LSB , bedanya ada pada tempat penyisipan pesan. Jika pada metode LSB pesan disisipkan pada bit LSB bit ke-8 sedangkan pada metode MSB pesan disisipkan pada bit ke-1 . Sebagai contoh misalkan tiga piksel yang berdekatan (sembilan bytes) dengan kode RGB sebagai berikut :
(00100111 11101001 11001000) (00100111 11001000 11101001) (11001000 00100111 11101001)
Pesan yang akan disisipkan adalah karakter “A”, yang nilai biner-nya adalah 01000001, maka akan dihasilkan stego image dengan urutan bit sebagai berikut: (00100111 11101000 11001000)
(00100110 11001000 11101000) (11001000 00100111 11101001)
2.3.3 Steganalisis dan Stegosystem
Seperti Kriptografi dan Kriptanalisis, Steganalisis didefinisikan sebagai suatu seni dan ilmu dalam mendeteksi informasi tersembunyi. Sebagai tujuan dari steganografi adalah untuk merahasiakan keberadaan dari sebuah pesan rahasia,
(32)
satu keberhasilan penyerangan pada sebuah sistem steganografi terdiri dari pendeteksian bahwa sebuah berkas yang diyakini berisikan data terselubung. Seperti dalam Kriptanalisis, diasumsikan bahwa sistem steganografi telah diketahui oleh si penyerang. Maka dari itu, keamanan dari sistem steganografi bergantung hanya pada fakta bahwa kunci rahasia tidak diketahui oleh si penyerang.
Stegosystem di sini berisi tentang penyerangan-penyerangan yang dilakukan terhadap suatu sistem steganografi, sebuah perbedaan penting harus dibuat di antara penyerangan-penyerangan pasif di mana penyerang hanya dapat memotong data, dan penyerangan-penyerangan aktif di mana penyerang juga dapat memanipulasi data.
Penyerangan-penyerangan berikut memungkinkan dalam model dari stegosistem ini:
1. Stego-Only-Attack (Penyerangan hanya Stego). Penyerang telah menghalangi
stego data dan dapat menganalisisnya.
2. Stego-Attack (Penyerangan Stego). Pengirim telah menggunakan cover yang sama berulangkali untuk data terselubung. Penyerang memiliki berkas stego yang berasal dari cover file yang sama. Dalam setiap berkas stego tersebut, sebuah pesan berbeda disembunyikan.
3. Cover-Stego-Attack (Penyerangan selubung Stego). Penyerang telah menghalangi berkas stego dan mengetahui cover file mana yang digunakan untuk menghasilkan berkas stego ini. Ini menyediakan sebuah keuntungan melalui penyerangan stego-only untuk si penyerang.
4. Manipulating the stego data (Memanipulasi data stego). Penyerang memiliki kemampuan untuk memanipulasi data stego. Jika penyerang hanya ingin menentukan sebuah pesan disembunyikan dalam berkas stego ini, biasanya ini tidak memberikan sebuah keuntungan, tapi memiliki kemampuan dalam memanipulasi data stego yang berarti bahwa si penyerang mampu memindahkan pesan rahasia dalam data stego (jika ada).
5. Manipulating the cover data (Memanipulasi data terselubung). Penyerang dapat memanipulasi data terselubung dan menghalangi hasil data stego. Ini
(33)
dapat membuat tugas dalam menentukan apakah data stego berisikan sebuah pesan rahasia lebih mudah bagi si penyerang.
2.4 Metode Steganografi Enhanced LSB
Proses utama dari metode enhanced LSB akan dijelaskan bahwa setiap pixel
memiliki tiga buah komponen yaitu red, green, blue. Setiap komponen direpresentasikan oleh satu byte, setiap byte memiliki sebuah bit LSB. Apabila bit
LSB tersebut adalah 1, maka semua bit pada byte tersebut diganti dengan bit 1 sehingga nilai byte tersebut adalah 11111111 (biner) atau 255 (desimal). Sedangkan, apabila bit LSB tersebut adalah 0, maka semua bit pada byte tersebut diganti dengan bit 0 sehingga nilai byte tersebut adalah 00000000 (biner) atau 0 (desimal).
Misalnya terdapat sebuah pixel dengan komposisi byte sebagai berikut :
BLUE GREEN RED
10100101 10011100 11100111
Maka setelah mengalami enhanced LSB byte-byte di atas akan menjadi :
BLUE GREEN RED
11111111 00000000 11111111
Setelah melalui proses penyaringan, maka citra pada bagian gambar yang tidak disisipi pesan akan mendekati bagian gambar semula. Sedangkan bagian gambar yang mengandung pesan rahasia akan menjadi ”rusak” setelah disaring. Dengan demikian, dari gambar yang dihasilkan setelah penyaringan, mata manusia dapat dengan mudah membedakan apakah pada gambar tersebut terdapat pesan rahasia.
(34)
2.4.1 Fungsi Hash SHA-1
Secure Hash Algorithm, SHA-1 ini dikembangkan oleh NIST (National Institute of Standard and Technology). SHA-1 dapat diterapkan dalam penggunaan Digital Signature Algorithm (DSA) yang dispesifikasikan dalam Digital Signature Standard (DSS) dan SHA tersebut dapat diterapkan untuk aplikasi federal.
Untuk suatu pesan yang panjangnya < 2 ^ 64, SHA-1 akan menghasilkan keluaran sebanyak 160 bit dari pesan tersebut dan pesan keluaran itu disebut
message digest. Panjang jarak message digest dapat berkisar antara 160 sampai 512 bit tergantung algoritmanya. Berdasarkan cirinya SHA-1 dapat digunakan dengan algoritma kriptografi lainnya seperti Digital Signature Algorithms atau dalam generasi angka yang acak (bits).
SHA-1 dikatakan aman karena proses SHA-1 dihitung secara infisibel untuk mencari pesan yang sesuai untuk menghasilkan message digest atau dapat juga digunakan untuk mencari dua pesan yang berbeda yang akan menghasilkan
message digest yang sama.
Untuk SHA-1 ukuran blok pesan -m bit- dapat ditentukan tergantung dari algoritmanya. Pada SHA-1 masing-masing blok pesan mempunyai 512 bit dimana dapat dilakukan dengan 16 urutan sebesar 32 bit.
SHA-1 digunakan untuk menghitung message digest pada pesan atau file
data yang diberikan sebagai input. Tujuan pengisian pesan adalah untuk menghasilkan total dari pesan yang diisi menjadi perkalian dari 512 bits. Beberapa hal yang dilakukan dalam pengisian pesan :
1. Panjang dari pesan,M adalah k bits dimana panjang k < 264. Tambahkan bit “1” pada akhir pesan. Misalkan pesan yang asli adalah “01010000” maka setelah diisi menjadi “010100001”.
2. Tambahkan bit “0”, angka bit “0” tergantung dari panjang pesan. Misalnya Pesan asli yang merupakan bit string : abcde
01100001 01100010 01100011 01100100 01100101. Setelah langkah (a) dilakukan
(35)
Panjang k = 40 dan angka bit di atas adalah 41dan 407 ditambah bit “0” (448 – (40+1) = 407). Kemudian diubah dalam hex:
61626364 65800000 00000000 00000000
00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000
00000000 00000000
3. Untuk memperoleh 2 kata dari k,angka bit dalam pesan asli yaitu jika k < 232 maka kata pertama adalah semua bit ”0”. Maka gambaran dari 2 kata dari k = 40 dalam hex adalah 00000000 00000028.
61626364 65800000 00000000 00000000
00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000028
SHA-1 menggunakan urutan fungsi logika yang dilambangkan dengan f0, f1,…,
f79. Untuk masing-masing ft, dimana 0 ≤ t < 79 akan menghasilkan output
sebanyak 32 bit.
Fungsinya adalah sebagai berikut:
(B ∧ C) ∨ (¬ B ∧ D) 0 ≤ t ≤ 19 B ⊕ C ⊕ D 20 ≤ t ≤ 39 (B ∧ C) ∨ (B ∧ D) ∨ (C ∧ D) 40 ≤ t ≤ 59 B ⊕ C ⊕ D 60 ≤ t ≤ 79 ft (B, C, D) =
Konstanta kata yang digunakan pada SHA-1 yang disimbolkan secara berurutan dari K(0), K(1),…, K(79) dalam bentuk hex adalah sebagai berikut :
5A827999 0 ≤ t ≤ 19 6ED9EBA1 20 ≤ t ≤ 39 8F1BBCDC 40 ≤ t ≤ 59 CA62C1D6 60 ≤ t ≤ 79 Kt =
(36)
Algoritma SHA-1 dapat diringkas sebagai berikut:
1. Penghitungan menggunakan dua buffer dimana masing-masing buffer terdiri dari lima sebesar 32 bit kata dan urutan 80 juga sebesar 32 bit kata. Lima kata pertama pada buffer kata diberi nama A, B, C, D, E sedangkan lima kata kedua diberi nama H0, H1, H2, H3, dan H4. Kemudian pada 80 kata yang
berurutan diberi nama W0, W1, …, W79 dan pada penghitungan ini juga
memakai TEMP.
2. Lakukan pengisian pesan, M dan kemudian parsingkan pesan tersebut ke dalam N 512 bit blok pesan, M(1), M(2), …, M(n). Caranya : 32 bit pertama dari blok pesan ditunjukkan ke M0(i), lalu 32 bit berikutnya adalah M1(i) dan
selanjutnya berlaku hingga M15(i).
3. Inisialisasi Nilai Hash (dalam bentuk hex) :
H0 = 67452301 H3 = 10325476
H1 = EFCDAB89 H4 = C3D2E1F0
H2 = 98BADCFE
4. Lakukan proses M1, M2, …, Mn dengan cara membagi Mi ke dalam 16 kata
W0, W1, …, W15 dimana W0 merupakan left most.
5. Hitung : For t = 16 to 79
Wt = S1(Wt-3 ⊕ Wt-8 ⊕ Wt-14 ⊕ Wt-16)
6. Inisialisasi 5 variabel A, B, C, D, dan E dengan nilai Hash : A = H0 ; B = H1; C = H2; D = H3; E = H4.
7. Hitung : For t = 0 to 79
TEMP = S5(A) + ft(B,C,D) + E + Wt + Kt
E = D; D = C; C = S30(B); B = A; A = TEMP. 8. Hitung Nilai Hash :
H0 = H0 + A ; H1 = H1 + B ;
H2 = H2 + C ; H3 = H3 + D ;
H4 = H4 + E.
Hasil dari message digest sebesar 160 bit dari pesan, M adalah : H0 H1 H2 H3
(37)
2.4.2. Steganografi Teks Menggunakan Pangram dan Medium Citra
Metode ini menggunakan dua medium untuk mentransmisikan data teks rahasia dari pengirim kepada penerima. Medium pertama adalah sebuah kalimat teks bahasa Inggris pangram yang ditentukan oleh user yang terdiri dari maksimal 512 karakter yang mencakup huruf, digit angka dan karakter khusus. Medium kedua adalah sebuah citra digital tidak terkompresi, umumnya digunakan file citra bertipe BMP. Proses kerja dari algoritma adalah sebagai berikut:
Setiap karakter pada pesan rahasia di-encode menggunakan dua indeks, yaitu: 1. Indeks seed yang menunjuk ke sebuah karakter acak pada kalimat pangram
(medium pertama).
2. Indeks offset yang berarti jarak antara indeks seed dan karakter pada kalimat pangram yang sesuai dengan karakter yang di-encode. Karena pangram hanya memiliki panjang maksimum 512 (= 29) karakter, maka hanya terdapat 9 bit yang diperlukan untuk menghasilkan indeks. Kedua indeks akan ditempelkan pada citra pembawa (medium kedua) seperti indeks seed pada piksel tertentu dan indeks offset pada piksel berikutnya. Pembagian bit (indeks seed dan
offset) yang disimpan pada ketiga LSB dari channel warna pada citra pembawa adalah 3 bit pada channel Red, 3 bit pada channel Green dan 3 bit pada channel Blue. Terakhir, kedua medium, pangram dan citra dikirimkan kepada penerima (Youssef Bassil, 2012).
2.4.3. Medium Pertama : Kalimat Pangram
Metode ini menggunakan medium pertama untuk mengirimkan data rahasia, sebuah kalimat bahasa Inggris pangram yang distrukturisasi secara benar dan dibentuk oleh sekumpulan kata dalam bahasa Inggris. pangram, yang berarti setiap huruf dalam bahasa Yunani, adalah sebuah kalimat yang tersusun dari setiap huruf dari alfabet minimal sekali. Pangram digunakan untuk menguji perangkat telekomunikasi seperti telegraf, untuk menampilkan contoh font seperti
(38)
Salah satu pangram bahasa Inggris yang paling terkenal adalah “The quick brown fox jumps over the lazy dog”, yang mencakup semua huruf dalam alfabet bahasa Inggris. Metode steganografi yang dibahas ini tidak hanya memerlukan semua huruf bahasa Inggris, tetapi juga digit dan karakter spesial sehingga dapat cocok dengan semua kemungkinan karakter dari pesan rahasia untuk disembunyikan.
Secara formal, setiap karakter s pada pangram memiliki sebuah indeks yang disimbolkan dengan i yang secara unik menunjuk ke sebuah karakter tertentu pada pangram. Pangram akan direpresentasikan sebagai PAN = {Si=0, Si=1, Si=2,
Si=3, ..., Si=511}. (Youssef Bassil, 2012)
2.4.4. Medium Kedua : Citra Pembawa
Medium kedua adalah sebuah file citra digital yang tidak terkompresi dari tipe BMP, yang berupa citra berwarna 24 bit, dimana pikselnya tersusun dari tiga buah
channel warna, yaitu channel Red, Green dan Blue (RGB). Medium ini akan bertindak sebagai file pembawa untuk menempelkan indeks SEED dan OFFSET
yang dihasilkan dari medium pertama yaitu kalimat pangram. SEED akan ditempelkan pada piksel khusus, sedangkan OFFSET akan ditempelkan pada piksel selanjutnya. Lokasi bit sebagai tempat penyimpanan indeks ini adalah tiga buah LSB (Least Significant Bit) dari channel warna yang membentuk piksel dari citra pembawa. (Youssef Bassil, 2012)
2.5. Pembangkit Bilangan Acak Semu
Pembangkit Bilangan Acak-Semu atau yang biasa dikenal dengan singkatan PRNG (Pseudo-Random Number Generator) adalah sebuah algoritma untuk menghasilkan suatu urutan bilangan yang terlihat acak, namun sebenarnya urutan tersebut tidak benar-benar acak karena urutan tersebut ditentukan oleh suatu nilai awal. Urutan bilangan yang terlihat acak ini sangat penting karena bisa
(39)
dimanfaatkan untuk suatu parameter bagi percobaan atau simulasi dan juga menjadi pusat pake praktik kriptografi.
Sebuah pembangkit bilangan acak-semu bisa dimulai dengan memberikan nilai umpan. Pembangkit bilangan acak-semu ini akan selalu memberikan urutan bilangan yang sama jika diberikan nilai umpan yang sama, dengan jumlah bilangan yang dihasilkan bergantung kepada besar nilai umpan yang diukur dengan satuan bit.
Keuntungan dari penggunaan pembangkit bilangan acak-semu ini adalah efisien, algoritma ini mampu menghasilkan banyak angka dalam waktu singkat, dan tertentu, urutan yang digunakan bisa dimunculkan kembali dengan mudah jika nilai awalnya diketahui. Efisien adalah karakteristik yang sangat baik jika aplikasi kita membutuhkan banyak angka.
Kesemua contoh di atas menggunakan suatu nilai acak dengan ukuran tertentu. Acak disini dalan artian acak secara probabilitas. Selain acak, biasanya juga menggunakan ukuran yang cukup besar, misalnya 512 bit. Ukuran yang besar dan keacakan ini membuat kriptanalis tidak akan berfikir untuk melakukan brute-force. Karena, akan memakan waktu yang sangat lama, bisa mencapai ratusan atau ribuan tahun bahkan dengan super komputer paling hebat.
Berikut ini beberapa contoh PRNG pembangkit bilangan acak semu : 1. Linear Congruential Generators (LCG)
2. Blum Blum Shub
3. Lagged Fibonacci generators
4. Linear feedback shift registers
5. Generalised feedback shift registers
6. Mersenne twister
(40)
2.6. Linier Congruential Generator (LCG)
Untuk memudahkan proses pemilihan secara selektif dari bit citra, digunakan
standard minimal Linear Congruential Number Generator (LCG). Message digest
dari sebuah password yang diberikan oleh user akan digunakan sebagai nilai awal pada LCG dan untuk mengekstrak data dari media sampul.
Metode standard minimal Linear Congruential Generator (LCG) yang dipublikasikan oleh Park dan Miller pada tahun 1988 digunakan untuk menghasilkan pseudo random number yang digunakan untuk memilih bit spesifik pada citra sampul sebagai tempat penyembunyian data rahasia. Metode ini merupakan salah satu random number generator yang paling sukses.
Rumusan yang digunakan adalah:
Xn+1 = (aXn + c) mod m
dimana:
X0 adalah nilai awal; 0 ≤ X0 < m
a adalah bilangan perkalian (multiplier); a ≥ 0 c adalah bilangan penjumlahan (increment); c ≥ 0 m adalah bilangan modulus; m > X0, m > a, m > c
Deretan bilangan acak <Xn> diperoleh dengan men-set:
Xn+1 = (aXn + c) mod m, n ≥ 0
Nilai Xn yang diperoleh berada pada range nilai [0, m – 1], n ≥ 0.
Kedua pihak yang berkomunikasi memiliki sebuah kunci share (k) yang diperoleh dari message digest dari password yang disediakan oleh user.
Sebuah deretan kongruen linier yang didefinisikan oleh m, a, c dan X0 memiliki
tingkat sekuritas yang bagus, jika dan hanya jika tiga kondisi berikut terpenuhi: 1. Bilangan integer positif yang dapat membagi m dan c adalah nilai 1.
2. Jika q adalah sebuah bilangan prima yang dapat membagi m (m / q), maka q dapat membagi a – 1 (a – 1/q).
(41)
Sebagai tambahan, nilai m harus relatif besar karena nilai yang diperoleh tidak dapat lebih dari m buah elemen. Gabriel dan partner menyarankan agar m = 248 = 281,474,976,710,656.
Nilai awal X0 diperoleh dari hasil message digest dari password. Proses ini
dapat dilakukan dengan menggunakan sebuah fungsi one way hash, yang memungkinkan pengisian data input pesan dengan panjang yang berbeda, namun selalu menghasilkan output nilai hash (message digest) dengan panjang yang sama.
Sementara itu, untuk nilai a dan c, Gabriel dan partner menyarankan untuk mengunakan nilai:
a (multiplier) = 25214903917 c (increment) = 11
2.7. Analisis Berorientasi Objek (Object Oriented Analysis)
OOA didasarkan di dalam lima prinsip dasar untuk membangun model analisis, yaitu:
1. Domain informasi dimodelkan. 2. Fungsi modul digambarkan.
3. Tingkah laku model direpresentasikan.
4. Model dipartisi untuk mengekspos detail yang lebih besar.
5. Model awal merepresentasikan inti masalah sementara model selanjutnya memberikan detail implementasi.
Tujuan OOA adalah menentukan semua kelas (dan hubungan serta tingkah laku yang berkaitan dengannya) yang relevan dengan masalah yang akan dipecahkan. Untuk melakukannya, sejumlah tugas harus dilakukan:
1. Persyaratan pemakai dasar harus dikomunikasikan di antara pelanggan dan perekayasa perangkat lunak.
2. Kelas-kelas harus diidentifikasi (misalnya atribut dan metode yang ditentukan).
(42)
3. Hirarki kelas harus dispesifikasikan.
4. Hubungan objek-ke-objek (koneksi objek) harus direpresentasikan. 5. Tingkah laku objek dimodelkan.
6. Tugas 1 sampai 5 diaplikasikan lagi secara iteratif sampai model selesai.
Sasaran OOA adalah mengembangkan sederetan model yang menggambarkan perangkat lunak komputer pada saat perangkat itu bekerja untuk memenuhi serangkaian persyaratan yang ditentukan oleh pelanggan. Metode Coad dan Yourdon sering dianggap sebagai salah satu dari metode OOA yang paling mudah untuk dipelajari. Notasi pemodelan relatif sederhana dan pedoman untuk mengembangkan model analisis tersebut adalah jelas. Outline singkat mengenai proses OOA Coad dan Yourdon adalah sebagai berikut:
1. Identifikasi objek dengan menggunakan kriteria “apa yang dicari”. 2. Tentukan struktur generalisasi-spesifikasi.
3. Tentukan struktur keseluruhan-bagian.
4. Identifikasi subjek (representasi dari komponen subsistem). 5. Tentukan atribut.
6. Tentukan pelayanan.
2.8. Riset-Riset Terkait
Terdapat beberapa riset yang telah dilakukan oleh banyak peneliti berkaitan dengan seperti yang akan dijelaskan di bawah ini :
Dickman, (2007) dalam risetnya menjelaskan mengenai suatu pemahaman dasar perlunya penggunaan steganografi dalam pengamanan data.
Kumar dan Luthra (2010) menyampaikan hasil risetnya mengenai penerapan steganografi dalam JPEG dengan teknik enkripsi.
Al-Ataby dan Al-Naima (2010) juga menjelaskan tentang modifikasi kapasitas image menggunakan teknik steganografi berbasis transformasi wavelet.
Abdul dan Gutub, (2010) dalam risetnya menjelaskan mengenai konsep steganografi menggunakan teknik indikator pembagian pixel untuk basis image
(43)
Ali Bani dan Jantan (2008) juga dalam risetnya menjelaskan tentang pendekatan steganografi dalam merubah image menggunakan embed system LSB (Least Significant Bit).
Kumar dan Pooja, (2010) menjelaskan dalam risetnya teknik menyembunyikan data menggunakan konsep pengamanan data steganografi.
(44)
BAB 3
METODOLOGI PENELITIAN
3.1. Pendahuluan
Pengumpulan data yang digunakan dalam penelitian ini menggunakan studi literatur dan tinjauan pustaka, bahan yang dikumpulkan dari berbagai sumber kepustakaan sebagai pendukung penelitian , selain itu penulis juga berkonsultasi dengan pembimbing.
3.2. Lingkungan Penelitian
Dalam penelitian ini penulis mengusulkan sebuah metode steganografi untuk teks tersembunyi dengan menggunakan dua media untuk mengirim data teks rahasia dari pengirim ke penerima.Media pertama user defined pangram teks terdiri dari maksimal 512 karakter termasuk huruf,angka . Media kedua adalah file gambar terkompresi digital terutama tipe BMP.
Untuk mendukung penelitian ini, diperlukan beberapa faktor pendukung sebagai berikut :
1. Kebutuhan Perangkat Keras (Hardware) a. Intel Core 2 Duo Processor T6600. b. RAM 1 GB
c. Harddisk 320 GB d. Monitor 14,0 HD LED
2. Kebutuhan Perangkat Lunak (Software)
Adapun perangkat lunak untuk menjalankan program ini adalah: a. Sistem operasi Windows XP/Win7/Win8.
(45)
3.3. Teknik Pengembangan
Algoritma yang diusulkan melibatkan beberapa langkah yang harus diselesaikan dalam rangka menyembunyikan pesan teks, input menggunakan dua media yang ditetapkan pengguna, kalimat pangram dilambangkan Pan dan file gambar dilambangkan IMG. Langkah-langkah eksekusi dilakukan beberapa tahapan antara lain:
1. Sebuah input pesan teks rahasia dinotasikan dengan M= {m0, m1, m2,....mn-1 } dimana adalah M karakter tunggal dan n adalah jumlah karakter dalam M diumpankan ke algoritma.
2. Sebuah nomor acak dipilih disebut sebagai indeks benih dilambangkan dengan SEED seperti SEED< 512. Tujuannya untuk menunjukkan karakter acak dalam pangram yang dilambangkan oleh PAN.
3. Mulai dari indeks SEED, PAN dicari linear untuk kejadian pertama karakter m tertentu dari masukan pesan rahasia M, setelah itu ditemukan indeks dilambangkan dengan OFFSET dihitung sebagai jarak dari indeks SEED ke Indeks m PAN seperti OFFSET = indeks seperti 512 karakter maksimum panjang pangram, 9 bit untuk mewakili indeks SEED dan OFFSET.
4. Indeks SEED dan OFFSET diubah menjadi biner sampai 9 bit untuk masing-masing seperti SEED = { e0, e1, e2, e3, e4, e5, e6, e7, e8} dimana e adalah bit tunggal dalam SEED dan OFFSET = {k0, k1, k2, k3, k4, k5, k6, k7, k8} dimana k adalah bit tunggal dalam OFFSET.
5. Bekerja dengan medium kedua yaitu citra carrier, itu dilambangkan dengan IMG = {p0 [ R0, G0, B0, p1 [R1, G1, B1], pn- 1[Rn-1, Gn-1, Bn-1]} diman pi adalah pixel dalam gambar pembawa IMG.
6. Indeks SEED acak disimpan dalam tiga LSB dari tiga jalur warna dari pixel sedangkan indeks OFFSET disimpan dalam tiga LSB dari tiga jalur warna pixel pt + 1.
7. Langkah 2-6 diulang sampai semua karakter di M telah habis. Kemudian pangram dan IMG dikirim ke penerima.
(46)
Dalam rangka memulihkan pesan rahasia M ketika kedua media yang diterima oleh penerima, tiga LSB setiap pixel dalam medium kedua harus diekstrak sedemikian rupa bahwa setiap ekstaksi dua pasang 9 bit dikelompokkan bersama karena mewakili SEED dan indeks OFFSET. Setelah itu media kedua kalimat pangram digunakan untuk menemukan karakter rahasia indeks of M = SEED + OFFSET.
Gambar 3.1. Model Usulan
Usulan Metode ini menggunakan dua medium untuk mentransmisikan data teks rahasia dari pengirim kepada penerima. Medium pertama adalah sebuah kalimat teks bahasa Inggris pangram yang ditentukan oleh user yang terdiri dari maksimal 512 karakter yang mencakup huruf, digit angka dan karakter khusus. Medium kedua adalah sebuah citra digital tidak terkompresi, umumnya digunakan file citra bertipe BMP. Proses kerja dari algoritma adalah sebagai berikut:
Setiap karakter pada pesan rahasia di-encode menggunakan dua indeks, yaitu: 3. Indeks seed yang menunjuk ke sebuah karakter acak pada kalimat pangram
(47)
4. Indeks offset yang berarti jarak antara indeks seed dan karakter pada kalimat pangram yang sesuai dengan karakter yang di-encode. Karena pangram hanya memiliki panjang maksimum 512 (= 29) karakter, maka hanya terdapat 9 bit yang diperlukan untuk menghasilkan indeks. Kedua indeks akan ditempelkan pada citra pembawa (medium kedua) seperti indeks seed pada piksel tertentu dan indeks offset pada piksel berikutnya. Pembagian bit (indeks seed dan
offset) yang disimpan pada ketiga LSB dari channel warna pada citra pembawa adalah 3 bit pada channel Red, 3 bit pada channel Green dan 3 bit pada channel Blue. Terakhir, kedua medium, pangram dan citra dikirimkan kepada penerima.
3.3.1. Alur Proses Penempelan Pesan
Pada proses Penempelan Pesan, Agar dapat lebih memahami prosedur kerja dari proses penempelan pesan, maka diberikan sebuah contoh sederhana berikut ini: Misalkan akan dirahasiakan sebuah pesan rahasia = ‘pangram’ dengan password = ‘orang3d’ dan menggunakan citra input berukuran 50 x 50 piksel (total = 2500 buah piksel). Kalimat pangram yang digunakan = ‘abcdefghijklmnopqrstuvwxyz’ (total panjang pangram = 26 karakter).
(48)
Encode dengan menggunakan dua buah indeks
Tempelkan kedua indeks pada 3 buah LSB channel medium citra dengan menggunakan algoritma Enhanced LSB
Input Citra, Pesan, Kata Kunci dan pilih kalimat pangram
Output file pangram dan citra stego
Gambar 3.2 Alur Proses Penempelan Pesan
3.3.2. Alur Proses Ektraksi Pesan
(49)
Ambil 3 buah LSB channel medium citra dengan menggunakan algoritma Enhanced LSB
Decode dengan menggunakan dua buah indeks Input Pangram, Citra Stego dan Kata Kunci
Output pesan semula
Gambar 3.3 Alur Proses Ektraksi Pesan
3.3.2. Alur Proses metode Enhanced LSB
Untuk menempelkan kumpulan nilai indeks ke dalam citra sampul, akan digunakan metode enhanced LSB yang memiliki proses kerja seperti terlihat pada gambar activity diagram berikut:
(50)
Hitung nilai X0 = SHA1(Password)
Set nilai a, c dan m
Hitung Xn+1 = (aXn + c) mod m
Ada indeks yang belum disisipkan ? Ya
Tidak
Deretan nilai Xi
Input Kata Kunci
Gambar 3.3 Alur Prose metode Enhanced LSB
Untuk suatu pesan yang panjangnya < 2 ^ 64, SHA-1 akan menghasilkan keluaran sebanyak 160 bit dari pesan tersebut dan pesan keluaran itu disebut
message digest. Panjang jarak message digest dapat berkisar antara 160 sampai 512 bit tergantung algoritmanya. Berdasarkan cirinya SHA-1 dapat digunakan dengan algoritma kriptografi lainnya seperti Digital Signature Algorithms atau dalam generasi angka yang acak (bits).
SHA-1 dikatakan aman karena proses SHA-1 dihitung secara infisibel untuk mencari pesan yang sesuai untuk menghasilkan message digest atau dapat juga digunakan untuk mencari dua pesan yang berbeda yang akan menghasilkan
(51)
Untuk SHA-1 ukuran blok pesan -m bit- dapat ditentukan tergantung dari algoritmanya. Pada SHA-1 masing-masing blok pesan mempunyai 512 bit dimana dapat dilakukan dengan 16 urutan sebesar 32 bit. SHA-1 digunakan untuk menghitung message digest pada pesan atau file data yang diberikan sebagai
input. Tujuan pengisian pesan adalah untuk menghasilkan total dari pesan yang diisi menjadi perkalian dari 512 bits. Beberapa hal yang dilakukan dalam pengisian pesan :
4. Panjang dari pesan,M adalah k bits dimana panjang k < 264. Tambahkan bit “1” pada akhir pesan. Misalkan pesan yang asli adalah “01010000” maka setelah diisi menjadi “010100001”.
5. Tambahkan bit “0”, angka bit “0” tergantung dari panjang pesan. Misalnya :Pesan asli yang merupakan bit string : abcde
01100001 01100010 01100011 01100100 01100101. Setelah langkah (a) dilakukan
01100001 01100010 01100011 01100100 0110010 1.
Panjang k = 40 dan angka bit di atas adalah 41dan 407 ditambah bit “0” (448 – (40+1) = 407). Kemudian diubah dalam hex:
61626364 65800000 00000000 00000000
00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000
00000000 00000000
6. Untuk memperoleh 2 kata dari k,angka bit dalam pesan asli yaitu jika k < 232 maka kata pertama adalah semua bit ”0”. Maka gambaran dari 2 kata dari k = 40 dalam hex adalah 00000000 00000028.
61626364 65800000 00000000 00000000
00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000028
SHA-1 menggunakan urutan fungsi logika yang dilambangkan dengan f0,
f1,…, f79. Untuk masing-masing ft, dimana 0 ≤ t < 79 akan menghasilkan output
(52)
Fungsinya adalah sebagai berikut:
(B ∧ C) ∨ (¬ B ∧ D) 0 ≤ t ≤ 19 B ⊕ C ⊕ D 20 ≤ t ≤ 39 (B ∧ C) ∨ (B ∧ D) ∨ (C ∧ D) 40 ≤ t ≤ 59 B ⊕ C ⊕ D 60 ≤ t ≤ 79 ft (B, C, D) =
Konstanta kata yang digunakan pada SHA-1 yang disimbolkan secara berurutan dari K(0), K(1),…, K(79) dalam bentuk hex adalah sebagai berikut :
5A827999 0 ≤ t ≤ 19 6ED9EBA1 20 ≤ t ≤ 39 8F1BBCDC 40 ≤ t ≤ 59 CA62C1D6 60 ≤ t ≤ 79 Kt =
Algoritma SHA-1 dapat diringkas sebagai berikut:
9. Penghitungan menggunakan dua buffer dimana masing-masing buffer terdiri dari lima sebesar 32 bit kata dan urutan 80 juga sebesar 32 bit kata. Lima kata pertama pada buffer kata diberi nama A, B, C, D, E sedangkan lima kata kedua diberi nama H0, H1, H2, H3, dan H4. Kemudian pada 80 kata yang
berurutan diberi nama W0, W1, …, W79 dan pada penghitungan ini juga
memakai TEMP.
10.Lakukan pengisian pesan, M dan kemudian parsingkan pesan tersebut ke dalam N 512 bit blok pesan, M(1), M(2), …, M(n). Caranya : 32 bit pertama dari blok pesan ditunjukkan ke M0(i), lalu 32 bit berikutnya adalah M1(i) dan
selanjutnya berlaku hingga M15(i).
11.Inisialisasi Nilai Hash (dalam bentuk hex) :
H0 = 67452301 H3 = 10325476
H1 = EFCDAB89 H4 = C3D2E1F0
H2 = 98BADCFE
12.Lakukan proses M1, M2, …, Mn dengan cara membagi Mi ke dalam 16 kata
(53)
13.Hitung : For t = 16 to 79
Wt = S1(Wt-3 ⊕ Wt-8 ⊕ Wt-14 ⊕ Wt-16)
14.Inisialisasi 5 variabel A, B, C, D, dan E dengan nilai Hash : A = H0 ; B = H1; C = H2; D = H3; E = H4.
15.Hitung : For t = 0 to 79
TEMP = S5(A) + ft(B,C,D) + E + Wt + Kt
E = D; D = C; C = S30(B); B = A; A = TEMP. 16.Hitung Nilai Hash :
H0 = H0 + A ; H1 = H1 + B ;
H2 = H2 + C ; H3 = H3 + D ;
H4 = H4 + E.
Hasil dari message digest sebesar 160 bit dari pesan, M adalah : H0 H1 H2 H3
(54)
BAB 4
HASIL DAN PEMBAHASAN
4.1. Pengantar
Pada bab ini menyajikan hasil penelitian terhadap pesan teks , pangram dan medium citra. Dari hasil penelitian ini nantinya dapat diambil suatu kesimpulan menyembunyikan pesan teks dalam medium citra dengan metode steganografi teks menggunakan pangram dan medium citra pada enhanced LSB.
Penelitian ini Steganografi teks ini menggunakan dua medium yang didefinisikan oleh user untuk meng-encode dan men-decode data rahasia. Medium pertama adalah kalimat pangram yang dibentuk oleh kata, sedangkan, medium kedua adalah sebuah file citra yang tidak terkompresi. Metode yang diperkenalkan ini menggunakan algoritma yang dapat dirincikan sebagai berikut, setiap karakter pada pesan rahasia yang di-input akan di-encode dengan menggunakan dua buah indeks, yaitu sebuah indeks seed yang menunjuk ke sebuah karakter acak pada kalimat pangram dan sebuah indeks offset yang melambangkan jarak antara indeks seed dan kemunculan pertama dari karakter yang di-encode pada kalimat pangram. Panjang maksimum dari kalimat pangram yang diperbolehkan adalah 512 karakter, sehingga hanya 9 bit yang diperlukan untuk merepresentasikan indeks seed dan offset. Kedua indeks akan ditempelkan pada 3 buah LSB (Least Significant Bit) dari channel warna dari medium citra. Kedua medium, yaitu pangram dan citra dikirimkan kepada penerima. Untuk implementasi penerapannya maka dilakukan analisis dan uji coba sistem.
4.2. Analisis Hasil
Dalam uji coba sistem ini penulis melakukan transformasi formula ke dalam bahasa pemrograman dengan mengambil data sebagai bahan percobaan.
(55)
4.2.1. Hasil Proses Penempelan Pesan
Dalam pengujian ini , data atau file yang akan diuji adalah pesan rahasia = ‘uji coba pangram’ dengan password = ‘legito’ dan menggunakan citra input berukuran 640 x 635 piksel (total = 406400 piksel). Kalimat pangram yang digunakan = ‘the quick brown fox jumps over the lazy dog’ (total panjang pangram = 43 karakter). Proses penempelan pesan yang dilakukan dapat dirincikan sebagai berikut:
Karakter ke-1: (huruf 'u') SEED(1) = 39
OFFSET(1) = ([ Posisi kemunculan pertama dari karakter] - SEED(1)) OFFSET(1) = (6 - 39) + 43
OFFSET(1) = 10
Karakter ke-2: (huruf 'j') SEED(2) = 35
OFFSET(2) = ([ Posisi kemunculan pertama dari karakter] - SEED(2)) OFFSET(2) = (21 - 35) + 43
OFFSET(2) = 29
Karakter ke-3: (huruf 'i') SEED(3) = 26
OFFSET(3) = ([ Posisi kemunculan pertama dari karakter] - SEED(3)) OFFSET(3) = (7 - 26) + 43
OFFSET(3) = 24
Karakter ke-4: (huruf ' ') SEED(4) = 43
OFFSET(4) = ([ Posisi kemunculan pertama dari karakter] - SEED(4)) OFFSET(4) = (4 - 43) + 43
(56)
Karakter ke-5: (huruf 'c') SEED(5) = 35
OFFSET(5) = ([ Posisi kemunculan pertama dari karakter] - SEED(5)) OFFSET(5) = (8 - 35) + 43
OFFSET(5) = 16
Karakter ke-6: (huruf 'o') SEED(6) = 27
OFFSET(6) = ([ Posisi kemunculan pertama dari karakter] - SEED(6)) OFFSET(6) = (13 - 27) + 43
OFFSET(6) = 29
Karakter ke-7: (huruf 'b') SEED(7) = 38
OFFSET(7) = ([ Posisi kemunculan pertama dari karakter] - SEED(7)) OFFSET(7) = (11 - 38) + 43
OFFSET(7) = 16
Karakter ke-8: (huruf 'a') SEED(8) = 4
OFFSET(8) = ([ Posisi kemunculan pertama dari karakter] - SEED(8)) OFFSET(8) = (37 - 4)
OFFSET(8) = 33
Karakter ke-9: (huruf ' ') SEED(9) = 33
OFFSET(9) = ([ Posisi kemunculan pertama dari karakter] - SEED(9)) OFFSET(9) = (4 - 33) + 43
OFFSET(9) = 14
Karakter ke-10: (huruf 'p') SEED(10) = 32
OFFSET(10) = ([ Posisi kemunculan pertama dari karakter] - SEED(10)) OFFSET(10) = (24 - 32) + 43
(57)
Karakter ke-11: (huruf 'a') SEED(11) = 22
OFFSET(11) = ([ Posisi kemunculan pertama dari karakter] - SEED(11)) OFFSET(11) = (37 - 22)
OFFSET(11) = 15
Karakter ke-12: (huruf 'n') SEED(12) = 11
OFFSET(12) = ([ Posisi kemunculan pertama dari karakter] - SEED(12)) OFFSET(12) = (15 - 11)
OFFSET(12) = 4
Karakter ke-13: (huruf 'g') SEED(13) = 33
OFFSET(13) = ([ Posisi kemunculan pertama dari karakter] - SEED(13)) OFFSET(13) = (43 - 33)
OFFSET(13) = 10
Karakter ke-14: (huruf 'r') SEED(14) = 9
OFFSET(14) = ([ Posisi kemunculan pertama dari karakter] - SEED(14)) OFFSET(14) = (12 - 9)
OFFSET(14) = 3
Karakter ke-15: (huruf 'a') SEED(15) = 19
OFFSET(15) = ([ Posisi kemunculan pertama dari karakter] - SEED(15)) OFFSET(15) = (37 - 19)
OFFSET(15) = 18
Karakter ke-16: (huruf 'm') SEED(16) = 31
OFFSET(16) = ([ Posisi kemunculan pertama dari karakter] - SEED(16)) OFFSET(16) = (23 - 31) + 43
(58)
OFFSET(16) = 35
X(0) = 564242585
X(1) = 25214903917 * X(0) + 11 mod 406400 X(1) = 25214903917 * 564242585 + 11 mod 406400 X(1) = 385664
X(2) = 25214903917 * X(1) + 11 mod 406400 X(2) = 25214903917 * 385664 + 11 mod 406400 X(2) = 236300
X(3) = 25214903917 * X(2) + 11 mod 406400 X(3) = 25214903917 * 236300 + 11 mod 406400 X(3) = 211111
X(4) = 25214903917 * X(3) + 11 mod 406400 X(4) = 25214903917 * 211111 + 11 mod 406400 X(4) = 53798
X(5) = 25214903917 * X(4) + 11 mod 406400 X(5) = 25214903917 * 53798 + 11 mod 406400 X(5) = 264377
X(6) = 25214903917 * X(5) + 11 mod 406400 X(6) = 25214903917 * 264377 + 11 mod 406400 X(6) = 307920
X(7) = 25214903917 * X(6) + 11 mod 406400 X(7) = 25214903917 * 307920 + 11 mod 406400 X(7) = 209051
X(8) = 25214903917 * X(7) + 11 mod 406400 X(8) = 25214903917 * 209051 + 11 mod 406400 X(8) = 93578
(59)
X(9) = 25214903917 * X(8) + 11 mod 406400 X(9) = 25214903917 * 93578 + 11 mod 406400 X(9) = 364237
X(10) = 25214903917 * X(9) + 11 mod 406400 X(10) = 25214903917 * 364237 + 11 mod 406400 X(10) = 64340
X(11) = 25214903917 * X(10) + 11 mod 406400 X(11) = 25214903917 * 64340 + 11 mod 406400 X(11) = 221391
X(12) = 25214903917 * X(11) + 11 mod 406400 X(12) = 25214903917 * 221391 + 11 mod 406400 X(12) = 285358
X(13) = 25214903917 * X(12) + 11 mod 406400 X(13) = 25214903917 * 285358 + 11 mod 406400 X(13) = 81697
X(14) = 25214903917 * X(13) + 11 mod 406400 X(14) = 25214903917 * 81697 + 11 mod 406400 X(14) = 209560
X(15) = 25214903917 * X(14) + 11 mod 406400 X(15) = 25214903917 * 209560 + 11 mod 406400 X(15) = 273731
X(16) = 25214903917 * X(15) + 11 mod 406400 X(16) = 25214903917 * 273731 + 11 mod 406400 X(16) = 312338
X(17) = 25214903917 * X(16) + 11 mod 406400 X(17) = 25214903917 * 312338 + 11 mod 406400 X(17) = 136757
(60)
X(18) = 25214903917 * X(17) + 11 mod 406400 X(18) = 25214903917 * 136757 + 11 mod 406400 X(18) = 215580
X(19) = 25214903917 * X(18) + 11 mod 406400 X(19) = 25214903917 * 215580 + 11 mod 406400 X(19) = 346871
X(20) = 25214903917 * X(19) + 11 mod 406400 X(20) = 25214903917 * 346871 + 11 mod 406400 X(20) = 107318
X(21) = 25214903917 * X(20) + 11 mod 406400 X(21) = 25214903917 * 107318 + 11 mod 406400 X(21) = 91017
X(22) = 25214903917 * X(21) + 11 mod 406400 X(22) = 25214903917 * 91017 + 11 mod 406400 X(22) = 376800
X(23) = 25214903917 * X(22) + 11 mod 406400 X(23) = 25214903917 * 376800 + 11 mod 406400 X(23) = 252012
X(24) = 25214903917 * X(23) + 11 mod 406400 X(24) = 25214903917 * 252012 + 11 mod 406400 X(24) = 247815
X(25) = 25214903917 * X(24) + 11 mod 406400 X(25) = 25214903917 * 247815 + 11 mod 406400 X(25) = 277766
X(26) = 25214903917 * X(25) + 11 mod 406400 X(26) = 25214903917 * 277766 + 11 mod 406400
(61)
X(26) = 30233
X(27) = 25214903917 * X(26) + 11 mod 406400 X(27) = 25214903917 * 30233 + 11 mod 406400 X(27) = 266672
X(28) = 25214903917 * X(27) + 11 mod 406400 X(28) = 25214903917 * 266672 + 11 mod 406400 X(28) = 87035
X(29) = 25214903917 * X(28) + 11 mod 406400 X(29) = 25214903917 * 87035 + 11 mod 406400 X(29) = 249706
X(30) = 25214903917 * X(29) + 11 mod 406400 X(30) = 25214903917 * 249706 + 11 mod 406400 X(30) = 55213
X(31) = 25214903917 * X(30) + 11 mod 406400 X(31) = 25214903917 * 55213 + 11 mod 406400 X(31) = 289332
X(32) = 25214903917 * X(31) + 11 mod 406400 X(32) = 25214903917 * 289332 + 11 mod 406400 X(32) = 55855
4.2.2. Hasil Proses Ektraksi Pesan
Hasil proses ektraksi pesannya maka diambil contoh dari hasil proses penempelan di atas. Proses ektraksi pesan yang dilakukan dapat dirincikan sebagai berikut:
X(0) = 564242585
X(1) = 25214903917 * X(0) + 11 mod 406400 X(1) = 25214903917 * 564242585 + 11 mod 406400 X(1) = 385664
(1)
While nHasilBagi <> 0
nSisaBagi = FMod(nHasilBagi, 2)
cBiner1 = cBiner1 & Format(nSisaBagi) 'format = CStr nHasilBagi = FDiv(nHasilBagi, 2) 'div = \ End While
If cBiner1 = "" Then cBiner1 = "0" 'Ambil Terbalik
cBiner2 = ""
For nLoop = Len(cBiner1) To 1 Step -1
cBiner2 = cBiner2 & Mid(cBiner1, nLoop, 1) Next nLoop
If pnLength = -1 Then 'Angka Biner
FDec2Biner = cBiner2 Else
If Len(cBiner2) <= pnLength Then 'Angka Biner Kurang dari pnLength
FDec2Biner = FString(pnLength - Len(cBiner2), "0") & cBiner2
Else
'Angka Biner Melebihi pnLength FDec2Biner = Left(cBiner2, pnLength) End If
End If End Function
'Operasi modulo untuk bilangan besar
Public Function FMod(ByVal pnA1 As Double, ByVal pnA2 As Double) As Double
Dim nMod As Double nMod = pnA1 / pnA2
FMod = pnA1 - (pnA2 * Int(nMod)) End Function
'Operasi div untuk bilangan besar
Public Function FDiv(ByVal pnA1 As Double, ByVal pnA2 As Double) As Double
Dim nDiv As Double nDiv = pnA1 / pnA2 FDiv = Int(nDiv) End Function
Public Function FString(ByVal pnValue As Double, ByVal pcChar As String) As String
Dim nI As Double Dim cTemp As String cTemp = ""
For nI = 1 To pnValue cTemp = cTemp & pcChar Next
(2)
FString = cTemp End Function
Public Function IsAlfabet(ByVal pcText As String) As Boolean Dim i As Integer
Dim cKar As String = "" Dim nPos As Integer
For i = 1 To pcText.Length
cKar = LCase(Mid(pcText, i, 1)) nPos = InStr(strAlfabet, cKar) If nPos = 0 Then
'Bukan alfabet tuh ... Return False
End If Next
Return True End Function
Public Function IsAlfaNumerik(ByVal pcText As String) As Boolean Dim i As Integer
Dim cKar As String = "" Dim nPos As Integer
For i = 1 To pcText.Length
cKar = LCase(Mid(pcText, i, 1)) nPos = InStr(strNumerik, cKar) If nPos > 0 Then
'Numerik tuh ... Return True End If
Next
Return False End Function End Module
Module Module2
Public Structure word Dim b0 As Byte Dim b1 As Byte Dim b2 As Byte Dim b3 As Byte End Structure
Public Function AndW(ByVal w1 As word, ByVal w2 As word) As word AndW.b0 = w1.b0 And w2.b0
AndW.b1 = w1.b1 And w2.b1 AndW.b2 = w1.b2 And w2.b2 AndW.b3 = w1.b3 And w2.b3 End Function
(3)
Public Function OrW(ByVal w1 As word, ByVal w2 As word) As word OrW.b0 = w1.b0 Or w2.b0
OrW.b1 = w1.b1 Or w2.b1 OrW.b2 = w1.b2 Or w2.b2 OrW.b3 = w1.b3 Or w2.b3 End Function
Public Function XorW(ByVal w1 As word, ByVal w2 As word) As word XorW.b0 = w1.b0 Xor w2.b0
XorW.b1 = w1.b1 Xor w2.b1 XorW.b2 = w1.b2 Xor w2.b2 XorW.b3 = w1.b3 Xor w2.b3 End Function
Public Function NotW(ByVal w As word) As word NotW.b0 = Not w.b0
NotW.b1 = Not w.b1 NotW.b2 = Not w.b2 NotW.b3 = Not w.b3 End Function
Public Function AddW(ByVal w1 As word, ByVal w2 As word) As word Dim I As Integer, w As word
I = CInt(w1.b3) + w2.b3 w.b3 = I Mod 256
I = CInt(w1.b2) + w2.b2 + (I \ 256) w.b2 = I Mod 256
I = CInt(w1.b1) + w2.b1 + (I \ 256) w.b1 = I Mod 256
I = CInt(w1.b0) + w2.b0 + (I \ 256) w.b0 = I Mod 256
AddW = w End Function
Public Function CircShiftLeftW(ByVal w As word, ByVal n As Integer) As word
Dim d1 As Double, d2 As Double d1 = WordToDouble(w)
d2 = d1
d1 = d1 * (2 ^ n)
d2 = d2 / (2 ^ (32 - n))
CircShiftLeftW = OrW(DoubleToWord(d1), DoubleToWord(d2)) End Function
Public Function HexToWord(ByVal H As String) As word HexToWord = DoubleToWord(Val("&H" & H & "#")) End Function
Public Function DoubleToWord(ByVal n As Double) As word DoubleToWord.b0 = Int(DMod(n, 2 ^ 32) / (2 ^ 24)) DoubleToWord.b1 = Int(DMod(n, 2 ^ 24) / (2 ^ 16)) DoubleToWord.b2 = Int(DMod(n, 2 ^ 16) / (2 ^ 8)) DoubleToWord.b3 = Int(DMod(n, 2 ^ 8))
(4)
Public Function WordToDouble(ByVal w As word) As Double
WordToDouble = (w.b0 * (2 ^ 24)) + (w.b1 * (2 ^ 16)) + (w.b2 * (2 ^ 8)) + w.b3
End Function
Public Function DMod(ByVal value As Double, ByVal divisor As Double) As Double
DMod = value - (Int(value / divisor) * divisor) If DMod < 0 Then DMod = DMod + divisor
End Function
Public Function F(ByVal t As Integer, ByVal B As word, ByVal C As word, ByVal D As word) As word
Select Case t Case Is <= 19
F = OrW(AndW(B, C), AndW(NotW(B), D)) Case Is <= 39
F = XorW(XorW(B, C), D) Case Is <= 59
F = OrW(OrW(AndW(B, C), AndW(B, D)), AndW(C, D)) Case Else
F = XorW(XorW(B, C), D) End Select
End Function
Public Function WordToHex(ByVal w As word) As String
WordToHex = Hex(w.b0).PadLeft(2, "0") & Hex(w.b1).PadLeft(2, "0") & Hex(w.b2).PadLeft(2, "0") & Hex(w.b3).PadLeft(2, "0")
End Function
Public Function SHA(ByVal Msg As String) As String Dim w(79) As word
Dim WordText, hasil As String Dim k(3) As word
Dim h0, h1, h2, h3, h4, inLenW As word Dim a, b, c, d, e, temp As word
Dim PadMsg, BlockText As String Dim inLen, NumBlocks, t, i As Integer inLen = Msg.Length
inLenW = DoubleToWord(CDbl(inLen) * 8) k(0) = HexToWord("5A827999")
k(1) = HexToWord("6ED9EBA1") k(2) = HexToWord("8F1BBCDC") k(3) = HexToWord("CA62C1D6") h0 = HexToWord("67452301") h1 = HexToWord("EFCDAB89") h2 = HexToWord("98BADCFE") h3 = HexToWord("10325476") h4 = HexToWord("C3D2E1F0") a = h0
b = h1 c = h2 d = h3 e = h4
(5)
PadMsg = Msg PadMsg &= Chr(128)
PadMsg &= StrDup((128 - (inLen Mod 64) - 9) Mod 64, Chr(0)) PadMsg &= StrDup(4, Chr(0))
PadMsg &= Chr(inLenW.b0) PadMsg &= Chr(inLenW.b1) PadMsg &= Chr(inLenW.b2) PadMsg &= Chr(inLenW.b3) NumBlocks = Len(PadMsg) / 64 For i = 0 To NumBlocks - 1
BlockText = Mid$(PadMsg, (i * 64) + 1, 64) For t = 0 To 15
WordText = Mid$(BlockText, (t * 4) + 1, 4) w(t).b0 = Asc(Mid$(WordText, 1, 1))
w(t).b1 = Asc(Mid$(WordText, 2, 1)) w(t).b2 = Asc(Mid$(WordText, 3, 1)) w(t).b3 = Asc(Mid$(WordText, 4, 1)) Next t
For t = 16 To 79
w(t) = CircShiftLeftW(XorW(XorW(XorW(w(t - 3), w(t - 8)), w(t - 14)), w(t - 16)), 1)
Next t a = h0 b = h1 c = h2 d = h3 e = h4
For t = 0 To 79
temp = AddW(AddW(AddW(AddW(CircShiftLeftW(a, 5), F(t, b, c, d)), e), w(t)), k(t \ 20))
e = d d = c
c = CircShiftLeftW(b, 30) b = a
a = temp Next t
h0 = AddW(h0, a) h1 = AddW(h1, b) h2 = AddW(h2, c) h3 = AddW(h3, d) h4 = AddW(h4, e) Next i
hasil = Left(WordToHex(h0) & WordToHex(h1) & WordToHex(h2) & WordToHex(h3) & WordToHex(h4), 8)
Return hasil End Function 'Heksa ke desimal
Public Function FHex2Dec(ByVal pcText As String) As Double Dim i As Integer
(6)
For i = 1 To Len(pcText)
Select Case Mid(pcText, i, 1)
Case "1" To "9" : FHex2Dec = FHex2Dec + CDec(Mid(pcText, i, 1)) * 16 ^ (Len(pcText) - i)
Case "A", "a" : FHex2Dec = FHex2Dec + 10 * 16 ^ (Len(pcText) - i)
Case "B", "b" : FHex2Dec = FHex2Dec + 11 * 16 ^ (Len(pcText) - i)
Case "C", "c" : FHex2Dec = FHex2Dec + 12 * 16 ^ (Len(pcText) - i)
Case "D", "d" : FHex2Dec = FHex2Dec + 13 * 16 ^ (Len(pcText) - i)
Case "E", "e" : FHex2Dec = FHex2Dec + 14 * 16 ^ (Len(pcText) - i)
Case "F", "f" : FHex2Dec = FHex2Dec + 15 * 16 ^ (Len(pcText) - i)
End Select Next i
End Function
Public Function Kiri(ByVal pcText As String, ByVal pnValue As Integer) As String
Return Left(pcText, pnValue) End Function
Public Function Kanan(ByVal pcText As String, ByVal pnValue As Integer) As String
Return Right(pcText, pnValue) End Function
End Module
Module Module3
'Variabel database 'Koneksi ADO
Public oConn As New ADODB.Connection 'SQL Expression dalam bentuk String Public strSQL As String