SKRIPSI
Mega Kartika Sari 071402058
PROGRAM STUDI S1 TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Teknologi Informasi
MEGA KARTIKA SARI 071402058
PROGRAM STUDI TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
Judul : MODIFIKASI LEAST SIGNIFICANT BIT(LSB) MENGGUNAKAN PERSAMAAN KUADRAT PADA KUNCI STEGANOGRAFI
Kategori : SKRIPSI
Nama : MEGA KARTIKA SARI
Nomor Induk Mahasiswa : 071402058
Program Studi : SARJANA (S-1) TEKNOLOGI INFORMASI
Departemen : TEKNOLOGI INFORMASI
Fakultas : ILMU KOMPUTER DAN TEKNOLOGI
INFORMASI
Diluluskan di
Medan, 7 Februari 2014
KomisiPembimbin :
Pembimbing 2 Pembimbing 1
Syahriol Sitorus, S.Si, M.Si M. Anggia Muchtar, ST.MM.IT NIP : 197103101997031004 NIP : 198001102008011010
Diketahui/Disetujuioleh
Program Studi S1 TeknologiInformasi Ketua,
MODIFIKASI LEAST SIGNIFICANT BIT(LSB) MENGGUNAKAN
PERSAMAAN KUADRAT PADA KUNCI STEGANOGRAFI
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, 7 Februari 2014
Puji dan syukur penulis panjatkan kepada Allah SWT Yang Maha Pengasih dan Maha Penyayang, dengan segala rahmat dan karunia-Nya penulis dapat menyelesaikan tugas akhir ini dalam waktu yang telah ditetapkan.
Dalam penyelesaian tugas akhir ini, tidak terlepas dari bantuan dan kerja sama serta doa dan dukungan dari berbagai pihak, untuk itu penulis sampaikan ucapan terima kasih sedalam-dalamnya dan penghargaan kepada :
1. Dekan dan Pembantu Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara
2. Ketua dan Sekretaris Departemen Bapak Prof. Dr. Opim Salim Sitompul, M.Sc dan Bapak Drs. Sawaluddin, M.Sc yang telah memberikan dukungan, arahan dan bantuannya dalam menyelesaikan tugas akhir ini.
3. Seluruh dosen Departemen Teknologi Informasi dan Ilmu Komputer USU yang telah mengajarkan dan memberikan dukungan serta bantuannya dalam menyelesaikan tugas akhir ini.
4. Kepada Bapak Syahriol Sitorus,S.Si.,M.Si dan Bapak M.Anggia Muchtar, ST.MM.IT selaku pembimbing yang selalu memberikan arahan, bimbingan, keluangan waktu serta dukungan dalam menyelesaikan tugas akhir ini beserta Bapak Dr.Syahril Efendi,S.Si.,M.I.T dan Bapak Sajadin Sembiring, S.Si. M.Comp.Sc yang bersedia menguji seminar hasil dan sidang sarjana penulis.
5. Kepada kedua orang tua, Ibu Siti Marlia dan Ayah Napsirul yang selalu memberi doa, dorongan serta motivasi untuk menyelesaikan tugas akhir ini dan juga membantu dalam pembiayaan selama perkuliahan.
6. Untuk kakak penulis Tuti Armayanti,Amd,Abang M.Yusuf Abioso,Amd dan adik – adik penulis Yeni Marlina yang telah memberikan bantuan doa dan dorongan dalam menyelesaikan tugas akhir ini.
7. Sahabat penulis, Ana,Dini,Septi,Yayuk,Rozi,M.Ridwan anak-anak TA, abang-kakak senior, adik-adik junior, dan seluruh teman-teman seperjuangan yang tidak dapat disebutkan namanya.
DAFTAR ISI
ABSTRAK ... i
ABSTRACT ... ii
DAFTAR ISI ... iii
BAB 1 PENDAHULUAN ... 1
1.1. Latar Belakang ... 2
1.2. Rumusan Masalah ... 2
1.3. Batasan Masalah... 3
1.4. Tujuan Penelitian ... 3
1.5. Manfaat Penelitian... 4
1.6. Metode Penelitian ... 4
BAB 2 TINJAUAN PUSTAKA... 5
2.1 Steganografi 5
2.2 Media Penampung(cover objec) 7
2.3 Pengertian Citra Digital 8
2.3.1 Format File Citra Digital 10
2.3.1.1 Format Data Bitmap 11
2.4 ModeWarna 11
2.5 MenghitungNilaiRGB 12
2.6 LeastSignificantBit(L 13
2.7 LeastSignificant Bit(LSB) Dengan Persamaan Kuadrat 14
2.8 PerhitunganFidelity 16
BAB 3 ANALISIS DAN PERANCANGAN ... 17
3.1. Analisis Masalah ... 17
3.2. Analisis Sistem 18
3.2.1 Analisis Persyaratan Fungsional ... 18
3.2.2 Analisis Persyaratan Non-Fungsional ... 18
3.3.1. Use Case Diagram ... 19
3.3.2. Activity Diagram Untuk Use Case Insertion ... 21
3.3.3. Activity Diagram Untuk Use Case Extraction ... 22
3.3.4. Activity Diagram Untuk Use Case Fidelity 23
3.4 Diagram Alir ( flow chat) ... 24
3.5 Perancangan ... 27
3.5.1. Rancangan Menu Utama ... 27
3.5.2. Rancangan Insertion ... 28
3.5.3. Rancangan Extraction ... 29
BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM... 30
4.1. Pembahasan Algoritma ... 30
4.1.1. Pembahasan Algoritma Least Significant Bit(LSB) ... 30
4.1.1.1. Baca Nilai Piksel 30
4.1.1.2 Hitung Nilai Red Green Blue ... 31
4.1.1.3 HitungNilaiBinerSetiapKarakter 33
4.1.2 Least Significant Bit(LSB) Menurut Persamaan Kuadrat 35
4.1.3.1 Perhitungan Nilai Mean Squed Error (MSE) 39
4.2. Pengujian Sistem ... 40
4.2.1 Proses Penyisipan Pesan ... 41
4.2.2 Proses Ekstaksi Pesan 42
BAB 5 KESIMPULAN DAN SARAN ... 43
5.1. Kesimpulan ... 43
5.2. Saran ... 44
DAFTAR PUSTAKA ... 45
DAFTAR TABEL
Hal
Tabel 3.1 Spesifikasi Use Case Insertion 21
Tabel 3.2 Spesifikasi Use Case Extraction 22
DAFTAR GAMBAR
Hal
Gambar 2.1 Proses Steganografi 6
Gambar 2.2 Kordinat pada Citra 8
Gambar 2.3 Kombinasi Warna GRB 11
Gambar 2.4 Contoh Grafik Fungsi Kuadrat 13
Gambar 2.5 Persamaan Kuadrat dengan nilai a>0 14
Gambar 2.5 Persamaan Kuadrat dengan nilai a<0 14
Gambar 3.1 Use Case Sistem 19
Gambar 3.2 Insertion Activity Diagram 20
Gambar 3.3 Activity Diagram Extraction 22
Gambar 3.4Activity Diagram Perhitungan Fidelity 23
Gambar 3.5 Flowchart Penyisipan LSB Persamaan Kuadrat 24
Gambar 3.6 Flowchart Ekstraksi
Gambar 3.7 Flowchart Menghitung MSE
25
26
Gambar 3.8 Rancangan Menu Utama 27
Gambar 3.9 Rancangan Insertion 28
Gambar 3.10 Rancangan Extraction 29
Gambar 4.1 Citra Cover ( 512x236 piksel ) 30
Gambar 4.2 Sample Citra Cover ( 5x5 piksel ) 31
Gambar 4.3 Nilai Piksel pada Data Bitmap 31
Gambar 4.4 Matriks RGB Citra Cover 32
Gambar 4.5 Bit MSB dan LSB dibarisan Bit didalam Byte 34
Gambar 4.6 Citra Cover 5x5 piksel dalam bentuk biner 34
Gambar 4.7Citra Stego 11x18 piksel dalam bentuk biner 36
Gambar 4.8 Matriks Citra Cover dan Citra Stego 39
Gambar 4.9 Tampilan Menu Utama Sistem 40
Gambar 4.10 Form Penyisipan LSB Menurut Persamaan Kuadrat 41
BAB I PENDAHULUAN
1.1 Latar Belang
Kerahasiaan dan keamanan saat melakukan pertukaran data adalah hal yang sangat
penting dalam komunikasi data, baik untuk tujuan keamanan bersama, maupun untuk
privasi individu. Mereka yang menginginkan agar datanya tidak diketahui oleh
pihak-pihak yang tidak berkepentingan selalu berusaha menyiasati cara mengamankan
informasi yang akan dikomunikasikannya.
Seringkali seseorang yang ingin mengirimkan pesan kepada orang lain, tidak
ingin pesan tersebut diketahui oleh orang lain. Hal ini menyebabkan orang yang ingin
mengirimkan pesan tersebut semakin lama atau jenuh untuk melakukannya dan
menginginkan sesuatu yang lebih mudah dan aman untuk mengirim pesan tersebut.
Salah satu hal yang dapat digunakan untuk mengatasi permasalahan ini adalah dengan
mengembangkan aplikasi yang mampu menyamarkan pesan tersebut pada suatu media
yang dapat diakses oleh semua orang. Teknik ini disebut dengan Steganografi, dimana
semua orang bisa menampilkan atau membuka File tersebut, namun tidak menyadari
bahwa media tersebut telah disisipi pesan oleh pengirim.
Salah satu metode umum yang biasa digunakan adalah dengan metode Least Significant Bit (LSB). Metode ini adalah bagian dari barisan data biner yang mempunyai nilai paling kecil. Teknik penyisipan pesan dengan metode LSB ialah
dengan meyisipkan pesan rahasia yang sudah diubah kedalam bentuk biner kedalam
barisan paling kanan dari barisan bit file penampung.
Seiring berkembangnya dunia multimedia pada saat sekarang ini, teknik LSB
sudah diketahui oleh orang banyak sehingga perlu pengembangan untuk menambah
efektifitas penyisipan pesan, oleh karena itu penulis akan mengembangkan metode
LSB dengan menambahkan Persamaan Linear variable tunggal sebagai kunci dalam
Penggunaan suatu metode dalam penyembunyian pesan rahasia terkadang dapat
merusak citra penampungnya. Oleh karena itu dibutuhkan parameter untuk melihat
bagus atau tidaknya motode penyisipan yang dipakai, seperti keacakan penyisipan file
dan ketahanan file penampung setelah mengalami perubahan (scaling).
1.2 Rumusan Masalah
Berdasarkan latar belakang, maka yang menjadi rumusan masalah pada penelitian ini
adalah bagaimana teknik penyisipan pesan yang menggunakan metode Least Significant Bit (LSB) dengan menambahkan kunci penyisipan menggunakan persamaan kuadrat.
1.3Batasan Masalah
Batasan masalah yang menjadi acuan dalam pengerjaan skripsi ini adalah:
1. Penelitian ini membahas pengembangan steganografi yang mampu
menyembunyikan pesan data *.txt kedalam file Citra *.BMP.
2. Media penampung yang digunakan adalah file Citra dengan Format *.BMP. 3. Pengamanan data dilakukan dengan Memodifikasi Algoritma LSB.
4. Parameter penelitian ini adalah keacakan penyisipan file pesan dan daya tahan file image dengan menghitung nilai Mean Squared Error (MSE).
1.4Tujuan Penelitian
Penelitian ini bertujuan untuk:
1. Mengetahui hasil penyisipan modifikasi Least Significant Bit (LSB) dengan
menambahkan Persamaan kuadrat pada kunci penyisipannya.
1.5Manfaat Penelitian
Dari penelitian ini diharapkan:
1. Menambah Literatur pengamanan pesan dengan teknik Steganografi
menggunakan Persamaan kuadrat pada metode LSB (Least Significant Bit) dan menambah pengetahuan tentang teknik steganografi.
2. Memperoleh aplikasi yang dapat menganalisis dan membandingkan teknik
steganografi menggunakan metode LSB dan MLSB menggunakan Persamaan
kuadrat.
1.6Metode Penelitian
Tahapan yang dilakukan dalam penelitian ini adalah:
1. Studi Literatur
Penulisan tugas akhir ini di awali dengan melakukan pembelajaran literatur pada
sejumlah buku, artikel, paper, jurnal, makalah, maupun situs internet mengenai steganografi.
2. Analisis dan Perancangan Sistem
Pada tahap ini akan dilaksanakan perancangan antarmuka dan perancangan sistem
dengan menerapkan Persamaan kuadrat pada metode Least Significant Bit (LSB). 3. Implementasi Sistem
Pada tahap ini akan dilaksanakan pengkodean ( coding ). 4. Pengujian Sistem
Dalam tahap ini dilakukan pengujian terhadap sistem yang telah dibangun, seperti
malakukan ujicoba Program.
5. Dokumentasi
Dalam tahapan ini dilakukan penyusunan laporan dari hasil perancangan sistem
1.7Metode Penelitian
Skripsi ini terdiri dari lima bab, dengan sitematika sebagai berikut:
BAB 1 PENDAHULUAN
Menjelaskan mengenai latar belakang pemilihan judul skripsi, perumusan
masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metodologi,
dan sistematika penulisan.
BAB 2 LANDASAN TEORI
Membahas teori yang berkaitan dengan Algoritma LSB dan Persamaan
kuadrat, proses.
BAB 3 ANALISIS DAN PERANCANGAN SISTEM
Menjelaskan tentang analisis kebutuhan perangkat lunak serta perancangan
aplikasi penyisipan dan ekstraksi suatu pesan pada citra cover.
BAB 4 IMPLEMENTASI PROGRAM
Membahas tentang implementasi dari perangkat lunak dan mengulas analisis
hasil pengujian yang telah dilakukan terhadap aplikasi.
BAB 5 PENUTUP
Memuat kesimpulan skripsi yang merupakan jawaban dari rumusan masalah
dan saran yang berguna untuk melengkapi dan menyempurnakan skripsi ini
BAB 2
LANDASAN TEORI
2.1 Steganografi
Kata steganografi berasal dari bahasa yunani yang terdiri dari steganos (tersembunyi) graphen (menulis), sehingga bisa diartikan sebagai tulisan yang tersembunyi. Steganografi adalah ilmu yang mempelajari teknik penyembunyian pesan rahasia
dalam pesan yang lainnya, sehingga orang tidak akan tahu bahwa terdapat pesan yang
rahasia di dalam pesan yang mereka baca.
Hampir semua jenis berkas dapat digunakan untuk steganografi, tetapi format
berkas yang cocok untuk steganografi ini adalah yang memiliki Redudancy yang tinggi. Redudancy adalah jumlah bit berlebih dari sebuah objek yang menghasilkan akurasi jauh lebih besar dari yang kita butuhkan untuk penggunaan menampilkan
objek.
Watermaking merupakan suatu bentuk dari steganografi. Yang membedakan steganografi dengan watermaking, watermaking merupakan cara penyembunyian
pesan ke dalam wadah penampung dan wadah penampung mampu menghadapi proses
pengolahan sinyal digital namun tidak merusak wadah penampung sehingga
seolah-olah tidak ada perbedaan antara wadah penampung sebelum dan sesudah proses
penyembunyian. Sedangkan steganografi memiliki prinsip dasar lebih
mengkonsentrasikan pada kerahasian pesannya bukan pada keutuhan wadahnya.
Ada dua proses utama dalam steganografi digital yaitu penyisipan
Embedding merupakan proses menyisipkan embed ke dalam berkas yang masih asli yang belum dimodifikasi, yang disebut media cover (cover object). Kemudian media cover dan embed yang ditempelkan membuat media stego (stego object). Extraction adalah proses menguraikan pesan yang tersembunyi dalam media stego. Ringkasnya, steganografi adalah teknik menanamkan embed message pada suatu cover object, dimana hasilnya berupa stego object.
Gambar 2.1 Proses Steganografi
Pihak yang terkait dengan steganografi antara lain embeddor, extractor, dan
stegoanalyst. Embeddor adalah pelaku yang melakukan penyisipan
(embedding),extractor adalah pelaku yang melakukan ekstraksipadastego object, danstegoanalyst adalah pelaku yang melakukan steganalisis. Steganalisis merupakan ilmu dan seni untuk mendeteksi embed yang tersembunyi dalam steganografi.
Penilaian sebuah metode steganografi yang baik dapat dinilai dari beberapa faktor
yaituimperceptibility, fidelity, recovery, dan robustness. Karakteristik metode steganografi yang baik adalah memiliki imperceptibility tinggi, fidelity tinggi, recovery maksimum dan robustness tinggi.
1. Imperceptibility
Keberadaan embed dalam media penampung tidak dapat dideteksi. 2. Fidelity
Mutu media penampung setelah ditambahkan embed tidak jauh berbeda dengan mutu media penampung sebelum ditambahkan embed.
embed yang telah disisipkan dalam media penampung harus dapat diungkap kembali. Hal ini merupakan syarat mutlak dalam sebuah metode steganografi,
karena ada banyak cara penyisipan embed yang tidak terdeteksi namun sulit dalam pembacaan kembali.
4. Robustness
Embed yang disembunyikan harus tahan terhadap berbagai operasi manipulasi yang dilakukan pada media penampung. Bila pada media penampung dilakukan
operasi-operasi manipulasi, maka embed yang disembunyikan seharusnya tidak rusak (embed masih utuh, tetap bisa diekstrak kembali).
2.2 Media Penampung (Cover Object)
Cover object merupakan media untuk menampung embed pada steganografi. Suatu embed dapat mempunyai hubungan atau bahkan tidak mempunyai hubungan sama sekali dengan media penampung (untuk kasus komunikasi rahasia) atau embedjuga dapat berupa menyediakan info penting tentang media, seperti informasi autentifikasi,
judul, tanggal dan waktu pembuatan, hak cipta, nomor seri kamera digital yang
digunakan untuk mengambil gambar, informasi mengenai isi dan akses terhadap citra
dan lain sebagainya.
Steganografi digital menggunakan media digital sebagai media penampung,
seperti teks, citra, audio dan video. Semua berkas yang ada dalam komputer dapat
digunakan sebagai media penampung, asalkan berkas tersebut mempunyai bit-bit data
redudan yang dapat dimodifikasi. Hal ini juga berlaku untuk media penyisip (embed). Adapun jenis-jenis media penampung adalah:
1. Citra
Format citra sangat sering digunakan di dalam teknik steganografi, karena citra
merupakan format berkas yang sangat sering digunakan pada proses pertukaran
data. Format citra bitmap true color atau BMP adalah salah satu jenis file citra
yang sangat baik jika digunakan di dalam teknik steganografi, karena citra BMP
merupakan citra asli yang belum mengalami perubahan (convert), sehingga citra BMP sangat kokoh jika dilakukan penyisipan pesan dan memiliki kapasitas yang
2. Teks
Dalam metode steganografi yang menggunakan teks sebagai media penampung,
teks yang telah disisipi embed tidak boleh mencurigakan untuk orang yang melihatnya. Contoh berkas yang berupa teks adalah file dengan format .txt, .doc,
.docx , dan sebagainya.
3. Audio
Format audio atau suarajuga sering dipilih karena berkas dengan format audio
berukuran relatif besar sehingga dapat menampung embeddalam jumlah yang besar pula.
4. Video
Format video memiliki ukuran berkas yang relatif sangat besar namun jarang
digunakan karena ukurannya yang terlalu besar sehingga mengurangi
kepraktisannya dan juga kurangnya algoritma yang mendukung format ini.
2.3 Pengertian Citra Digital
Citra digital adalah gambar dua dimensi yang dapat ditampilkan pada layar monitor
komputer sebagai himpunan berhingga (diskrit) nilai digital yang disebut pixel (picture elemen). Citra digital tersusun dalam bentuk raster (grid atau kisi). Setiap kotak yang terbentuk disebut pixel (picture element) dan memiliki koordinat (x,y). Pixel merupakan suatu elemen citra yang memiliki nilai yang menujukkan intensitas warna. Citra digital dapat didefenisikan sebagai Fungsi dua variabel f(x,y), dimana x dan y adalah koordinat spasial dan nilai f(x,y) merupakan intensitas citra suatu titik. Piksel(0,0) terletak pada sudut kiri atas pada citra, indeks x begerak ke kanan dan indeks y bergerak ke bawah. Konvensi ini dipakai merujuk pada cara penulisan larik yang digunakan dalam pemrograman komputer.
Suatu citra digital diperoleh dari penangkapan kekuatan sinar yang dipantulkan
oleh objek. Citra digital tersusun atas sejumlah berhingga elemen, masing-masing
memiliki lokasi dan nilai/intensitas tertentu. Elemen-elemen ini disebut elemen
gambar, elemen citra, pels, dan juga piksel yang dinyatakan dalam bilangan bulat.
Tingkat ketajaman atau resolusi warna pada citra digital tergantung pada jumlah bit
yang digunakan oleh komputer untuk merepresentasikan setiap pikseltersebut. Tipe
yang sering digunakan untuk merepresentasikan citra digital adalah 8-bit citra (256
colors (0 untuk hitam - 255 untuk putih)), tetapi dengan kemajuan teknologi perangkat keras grafik, kemampuan tampilan citra digital di komputer hingga 32 bit (232 warna).
Selain citra digital, juga terdapat jenis citra yang lain yakni citra analog. Citra
analog adalah citra yang terdiri dari sinyal – sinyal frekuensi elektromagnetis yang belum dibedakan sehingga pada umumnya tidak dapat ditentukan ukurannya. Analog
berhubungan dengan hal yang kontinu dalam satu dimensi, contohnya adalah bunyi
diwakili dalam bentuk analog, yaitu suatu getaran gelombang udara yang kontinu
dimana kekuatannya diwakili sebagai jarak gelombang. Hampir semua kejadian alam
boleh diwakili sebagai perwakilan analog seperti bunyi, cahaya, air, elektrik, angin
dan sebagainya.
Citra digital dapat dibagi menjadi 3 macam berdasarkan warna-warna
penyusunnya :
1. Citra biner (monochrome), atau disebut juga binary image, yaitu citra yang setiap pikselnya hanya memiliki kemungkinan dua warna, yaitu berwarna hitam (0) atau
berwarna putih (1). Oleh karena itu, setiap piksel pada citra biner hanya
membutuhkan media penyimpanan sebesar 1bit.
2. Citra grayscale (citra keabuan), citra ini terdiri atas warna abu-abu. Setiap piksel citra greyscale merepresentasikan derajat keabuan atau intensitas warna putih.
Untuk pengubahan warna image menjadi greyscale dapat dilakukan dengan
memberikan bobot untuk masing-masing warna dasar red green blue atau dengan membuat nilai rata-rata dari ketiga warna dasar tersebut.
3. Citra berwarna (true color), yaitu citra yang nilai pikselnya merepresentasikan
warna tertentu. Setiap piksel pada citra berwarna memiliki warna yang
255 (8-bit). Hal ini menyebabkansetiap pixel pada citra RGB membutuhkan media penyimpanan 3 byte. Jumlahkemungkinan kombinasi warna citra RGB adalah = lebih dari 16 juta warna.
2.3.1 Format File Citra Digital
Citra digital dapat disimpan dalam berbagai format. Format citra digital yang akan
digunakan akan mempengaruhi kualitas dari gambar dan kompatibilitas dengan
berbagai aplikasi. Misalnya format citra GIF, format ini hanya mendukung sejumlah
warna sebanyak 256 (8 bit) saja, oleh sebab itu sangat tidak cocok untuk citra
fotografi karena biasanya citra fotografi kaya akan warna. Saat ini tersedia banyak
format grafik dan format baru tersebut yang sudah dikembangkan, diantaranya yang
terkenal adalah BMP dan JPEG.
2.3.1.1Format Data Bitmap
Pada format bitmap, citra disimpan sebagai suatu matriks dimana masing-masing
elemennya digunakan untuk menyimpan informasi warna untuk setiap piksel. Jumlah
warna yang dapat disimpan ditentukan dengan satuan bit-per-piksel. Semakin besar ukuran bit-per-piksel dari suatu bitmap, semakin banyak pula jumlah warna yang
dapat disimpan. Format bitmap ini sangat cocok digunakan untuk menyimpa citra
seperti foto, lukisan, dan frame video karena memiliki banyak variasi dalam bentuk
dan warna.
Pada citra bitmap jumlah warna yang dapat disimpan ditentukan oleh
banyaknya bit yang digunakan untuk menyimpan setiap titik dari bitmap yang
menggunakan satuan bpp (bit per piksel). Dalam Windows dikenal bitmap dengan 1, 8, 16, dan 24 bit per piksel. Jumlah warna maksimum yang dapat disimpan dalam
suatu bitmap adalah sebanyak 2n, dimana n adalah banyaknya bit yang digunakan
untuk menyimpan satu titik dari bitmap.
Citra bitmap memiliki kelebihan untuk memanipulasiwarna, tetapi untuk
mengubah objek lebih sulit. Tampilan bitmap mampumenunjukkan kehalusan gradiasi
elektronik yang paling tepat untuk gambar –gambar dengan perpaduan gradiasi warna yang rumit,seperti foto, Kamera Digital,video capture, dan lain-lain.
2.4 Mode Warna
Mode warna RGB menghasilkan warna menggunakan kombinasi dari tiga warna
primer red (merah), green (hijau), blue (biru). RGB dimulai dengan warna hitam (ketiadaan semua warna) dan menambahkan merah, hijau, biru terang untuk membuat
putih. Kuning diproduksi dengan mencampurkan merah, hijau. warna cyan dengan mencampurkan hijau dan biru. warna magenta dari kombinasi merah dan biru.
Kombinasi warna RGB dapat dilihat pada Gambar 2.3
Gambar 2.3 Kombinasi Warna RGB
Warna campuran (selain dari putih) dihasilkan dengan menambahkan warna
komponen RGB individual dengan berbagai tingkat saturasi, dengan tingkatan mulai
dari 0.0 hingga 1.0 (0 berarti tidak menggunakan warna tersebut; 1 berarti
menggunakan warna tersebut pada saturasi penuh).
Warna didefenisikan dengan memasukkan intensitas untuk setiap komponen
dalam matriks. Tiap komponen memiliki matriksnya sendiri-sendiri dan matriks
tersebut bisa dijumlahkan. Sebagai contoh, untuk menghasilkan merah saturasi
sempurna, masukan (1,0,0) : 100% merah 0% hijau dan 0% biru. Pada saat ketiga
komponen warna tersebut dikombinasikan dalam 100% saturasi (1,1,1) hasilnya
adalah putih (seperti diperlihatkan berikut):
2.5 Menghitung Nilai RGB
Menghitung nilai RGB citra cover adalah sama dengan menghitung RGB citra embed, dimana setiap pikselnya mengandung 24-bit kandungan warna atau 8-bit untuk
masing-masing warna dasar (R, G, dan B), dengan kisaran nilai kandungan antara 0
(00000000) sampai 255 (11111111) untuk tiap warna yang dapat ditulis sebagai
berikut.
Red: RGB (255, 0, 0)……….………….…………..………... (2.1)
Green: RGB (0, 255, 0)... .………..……….... (2.2)
Blue: RGB (0, 0, 255)…..……….………... (2.3)
Dari nilai triplet RGB persamaan (2.1) sampai (2.3) di atas dapat dikonversikan ke
dalam nilai desimal seperti dibawah ini:
Red: 255*2560 + 0*2561 + 0*2562 = 255 + 0 + 0 = 255 ………..…... (2.4) Green: 0*2560 + 255*2561 + 0*2562= 0 + 65,280 + 0 = 65,280 ………... (2.5) Blue: 0*2560 + 0*2561 + 255*2562 = 0 + 0 + 16,711,680 = 16,711,680... (2.6) Rumus dasar mencari nilai RGB citra adalah:
R = COLOR AndRGB(255, 0, 0)….……….…... (2.7)
G = (COLOR AndRGB(0, 255, 0)) / 256...……..……….…... (2.8) B = ((COLOR AndRGB(0, 0, 255)) / 256) / 256 ….……….… (2.9)
Dari persamaan (2.4) sampai (2.6) diatas, rumus RGB pada persamaan (2.7) sampai
(2.9) menjadi:
Nilai R = c and 255………... (2.10) Nilai G = (c and65,280)/256 ..………...………..…... (2.11) Nilai B = ((c and16,711,680)/256)/256 ………...………... (2.12)
2.6 Least Significant Bit (LSB)
Metode yang digunakan dalam merancang perangkat lunak ini adalah modifikasi dari
setiap nilai piksel dengan bit-bit pesan rahasia (embed). Sebelum melakukan penyisipan embed ke dalam citra penampung, terlebih dahulu nilai piksel dari citra penampung dan embed harus diubah ke dalam biner.
2.7 Least Significant Bit (LSB) dengan Persamaan kuadrat.
Penyisipan pesan dengan Metode LSB dengan Persamaan kuadrat dilakukan dengan
menyisipkan 1 bit embed ke dalam 1 byte LSB citra penampung (citra cover). Namun sebelum data embed disisipkan, terlebih dahulu dilakukan modifikasi dengan menambahkan kunci pada proses penyisipannya yaitu Persamaan kuadrat. Bentuk
umum dari Persamaan kuadrat adalah:
f(x) = ax2 + bx + c
Jika suatu fungsi f pada himpunan bilangan real ditentukan oleh f(x)= dengan
a,b,c Є R dan a ≠ 0, maka fungsi tersebut dinamakan persamaan kuadrat. Grafik persamaan kuadrat berupa parabola.
Gambar 2.4 Contoh Grafik FungsiKuadrat
Sifat-sifat yang dikembangkan oleh persamaan kuadrat f(x) = ax2 + bx + c adalah sebagai berikut:
1. Sumbu simetri dan titik puncak atau sering disebut dengan titik ekstrim.
3. Jika a>0 maka kurva akan terbuka keatas
a. X1 ≠ X2 b. X1 = X2 c. Imajiner
Gambar 2.5 Persamaan kuadrat dengan Nilai a>0
4. Jika a<0 maka kurva akan terbuka kebawah
a. X1 ≠ X2 b. X1 = X2 c. Imajiner
Gambar 2.5 Persamaan kuadrat dengan Nilai a<0
Ket:
Jika D = b2 – 4ac adalah deskriminan (pembeda) akar akar persamaan, maka persamaan kuadrat dapat dibedakan menjadi:
a. D > 0 Persamaan kuadrat mempunyai dua akar real berbeda (X1 ≠ X2)
c. D < 0 Persamaan kuadrat mempunyai dua akar yang tidak real ( imajiner)
5. Didalam proses perhitungan grafik persamaan kuadrat setiap titik potong
disebut dengan dominan. Titik pootng sumbu x diperoleh jika f(x)= 0,
sehingga ada atau tidaknya titik potong terhadap sumbu x, tergantung pada
besarnya diskriminan (D= b2- 4ac)
Metode LSB menggunakan Persamaan kuadrat dapat disebut juga dengan
kombinasi antara Kriptografi dan Steganografi, karena menggunakan private key pada proses penyisipannya. Setiap aspek yang memiliki nilai Confidensiality dapat disebut dengan kriptografi. Confidensiality adalah setiap objek yang tidak untuk diumbar atau dibocorkan kepada subjek yang seharusnya tidak berhak untuk mengetahuinya.
2.8 Perhitungan Fidelity
Salah satu kriteria metode steganografi yang baik adalah dengan terpenuhinya fidelity. Pengukuran fidelitydapat diketahui dengan menghitung nilai Mean Squared Error (MSE) merupakan nilai rata-rata kuadrat dari error citra.
Nilai MSE menunjukkan perbandingan piksel yang rusak dengan piksel
aslinya. Semakin besar nilai MSE, maka semakin besar kerusakan citra hasil
pengolahan dan sebaliknya, semakin kecil nilai MSE maka nilai piksel hasil
BAB 3
ANALISIS DAN PERANCANGAN SISTEM
3.1 Analisis Masalah
Masalah dalam sistem ini adalah bagaimana agar sistem ini dapat membantu
pengguna sistem untuk melakukan pengamanan data (data security). Dalam sistem ini terdapat dua pengguna yaitu ekstraktor dan embeddor dimana keduanya memiliki
peran sesuai kebutuhan.
Yang menjadi masalah utama penelitian ini adalah bagaimana kinerja
algoritman LSB menggunakan persamaan kuadrat sebagai kunci. Metode ini akan
diteliti dan ditentukan apakah memenuhi kriteria steganografi yang baik.
1. User1 (embeddor) : Adalah seseorang yang melakukan proses penyisipan, penguraian, dan perhitungan Fidelity. Dengan kedua parameter fidelity maka User1 dapat menentukan kelayakan stego Image dapat disampaikan atau tidak kepada User2 (extractor).
2. User2 (extractor) : adalah seseorang yang melakuakan proseses ekstraksi atau penguraian, yaitu penguraian kembali pesan rahasia yang sudah disisipkan.
3. Proses : Sistem ini akan berjalan dengan meneliti penggunaan persamaan kuadrat
pada proses steganografi dengan Least Significant Bit (LSB) dapat dilakukan atau tidak.
4. Sistem : sistem ini akan menunjukkan hasil yang dapat dikatakan baik atau tidak
3.2 Analisis Sistem
Sebelum dilakukan tahap perancangan sebuah sistem, perlu dilakukan analisis sistem
yang akan dibangun. Tahapan analisis sistem bertujuan untuk melihat kebutuhan yang
dibutuhkan oleh sistem yang akan dibuat serta menentukan kegiatan yang harus
dilakukan oleh sistem sehingga menghasilkan output seperti yang diharapkan oleh
user.
3.2.1 Analisis persyaratan fungsional
persyaratan fungsional adalah aktifitas dan layanan yang harus diberikan atau
disediakan oleh sebuah sistem. Persyaratan fungsional yang harus disediakan oleh
sistem adalah sebagai berikut:
1. Data yang digunakan adalah citra dengan format *.BMP sebagai citra cover dan file embed dengan format *.txt sebagai pesan rahasia.
2. Sistem dapat menentukan maksimal karakter yang dapat disisipkan kedalam citra
cover dan menghitung koordinat penyisipan pesan kedalam citra cover.
3. sistem dapat menghitung nilai fidelity dari stego image yang ditetapkan sebagai parameter perbandingan antara kedua algoritma yang digunakan yaitu LSB dengan
persamaan kuadrat pada kunci.
3.2.2 Analisis persyaratan non-fungsional
persyaratan nonfungsional berkaitan dengan fitur, karakterisitik, dan batasan lainnya
yang menetukan apakah sistem memuaskan atau tidak. Persyaratan non-fungsional
terhadap sistem ini adalah:
1. Performa:
Sistem harus dapat melakukan proses steganografi sesuai dengan kedua algoritma
yaitu LSB serta dapat menunjukkan algoritma dapat berjalan atau tidak.
2. Mudah Digunakan:
Sistem harus dibuat sesederhana mungkin agar tidak menyulitkan penggunanya.
Sistem tidak membutuhkan perangkat keras lainnya sebagai bantuan
4. Dokumentasi:
Sistem dapat menyimpan stego image 5. Manajemen Kualitas:
Sistem dapat menghasilkan tampilan yang baik dan proses yang relative cepat.
3.3 Pemodelan Prangkat lunak
Perancangan perangkat lunak dibuat menggunakan bahasa pemrograman Matlab 2009
dengan proses membuat tampilan GUI. Perancangan aplikasi yang dibuat pada
dasarnya mengikuti metode algoritma LSB yang disajikan oleh penulis. Program yang
dibuat berdasarkan langkah demi langkah untuk menyelesaikan teknik Hiding File atau steganografi.
Tiga proses yang dominan di dalam sistem ini adalah Insertion , Extraction dan Perhitungan Fidelity. Insertion adalah proses awal dari sistem yaitu inputan citra penampung. Setelah itu inputan data txt yang menjadi pesan rahasia kemudian setelah
data berhasil disisipkan citra akan dihitung nilai ketahanannya dengan perhitungan
MSE yang menjadi parameter kelayakan penelitian. Proses yang terakhir adalah
ekstraksi, yaitu menguraikan kembali Plaintext atau pesan rahasia dari stego image.
3.3.1 Use Case diagram
Berikut adalah gambar dari rancangan Use Case diagram.
Gambar 3.1 Use Case sistem
Use Case diagram yang ditunjukkan pada Gambar 3.2 tedapat tiga aktor yaitu User1 sebagai embeddor dan User2 sebagai extractor. User1 memiliki peranan dalam melakukan penyisipan dan penguraian serta mengukur ketahanan file ketika akan
melakukan pertukaran data kepada User2 yaitu citra yang sudah disisipi pesan (stego image) . User2 hanya memiliki satu peranan yaitu melakukan penguraian untuk mendapatkan pesan rahasia yang ada sudah disisipkan. Untuk lebih jelas kegiatan
sistem dapat dilihat pada keterangan activity diagram berikut ini.
3.3.2 Activity Diagram untuk Use Case Insertion
Gambar 3.2 Insertion activity diagram
Tabel 3.1 Spesifikasi Use Case Insertion Name Insertion
Actors User1
Description Use Case ini mendeksripsikan proses Insertion Preconditions User menggunakan aplikasi steganografi
Post
Conditions
User dapat melihat hasil Insertion
Kegiatan User Respon sistem
Success
Scenario
1. User memilih menu Insertion .
2. User memilih Citra cover, memilih file
embed dan
mengeksekusi tombol
Proses.
3. User dapat melihat Citra stego.
1. Sistem menampilkan
halaman Insertion
2. Sistem melakukan random
kunci.
3. Sistem melakukan proses
3.3.3 Activity Diagram untuk Use Case Extraction
[image:31.595.169.467.130.311.2]Activity diagram untuk Use Case extraction dapat dilihat seperti pada Gambar 3.3
Gambar 3.3 activity diagram extraction
Spesifikasi Use Case Extraction dapat dilihat sebagai berikut:
Tabel 3.2 Spesifikasi Use Case Extraction
Name Extraction
Actors User1 dan User2
Description Use Case ini mendeksripsikan proses mendeteksi citra embed dari dalam citra stego
Preconditions User menggunakan aplikasi steganografi Post Conditions User dapat melihat hasil Extraction
Kegiatan User Respon sistem
Success Scenario
1. User memilih menu Extraction.
2. User memilih citra
stego, menggunakan
kunci dan mengeksekusi
tombol Extract.
3. User dapat melihat citra embed hasil ekstraksi.
1. Sistem menampilkan
halaman Extraction. 2. Sistem melakukan proses
ekstraksi dan
menampilkan hasil
[image:31.595.109.512.427.765.2]3.3.4 Activity Diagram untuk Use Case Fidelity
[image:32.595.176.458.128.308.2]Activity diagram untuk Use Case extraction dapat dilihat seperti pada Gambar 3.4
Gambar 3.4 Activity Diagram Perhitungan Fidelity
Spesifikasi Use Case Hitung fidelity dapat dilihat pada Tabel 3.3
Tabel 3.3 Spesifikasi Use Case Hitung fidelity
Name Hitung MSE
Actors User1
Description Use Case ini mendeksripsikan proses perhitungan MSE Preconditions User sudah melakukan proses Insertion
Post Conditions User dapat mengetahui nilai MSE
Kegiatan User Respon sistem
Success Scenario
1. User memilih menu Hitung MSE/BER.
2. User memilih citra coverdan memilih citra stego,kemudian
mengeksekusi tombol Hitung.
3. User dapat melihat hasil perhitungan nilai MSE
1. Sistem menampilkan halaman Hitung MSE 2. Sistem melakukan proses
[image:32.595.110.541.448.740.2]3.4 Diagram Alir (Flow Chart)
Flowchart proses penyisipan dengan metode LSB persamaan kuadrat dapat dilihat
[image:33.595.162.401.166.730.2]pada gambar 3.8.
Gambar 3.5 Flowchart Penyisipan LSB Persamaan kuadrat Ya
Bangkitkan kunci dengan F(x) = ax2 + bx + c
Mulai
Input citra cover
Input karakter txt
Gantikan 1bit LSB citra cover dengan 1bit karakter pesan
Konversikan setiap piksel citra ke nilai Biner
Masih ada data embed?
Selesai Tidak Tampilkan citra Stego Konversikan data embed ke
Nilai Biner Hitung Jumlah Piksel
citra cover (n)
Flowchart proses ekstraksi embed dengan metode LSB menurut Persamaan kuadrat
Gambar 3.6 Flow Chart Ekstraksi Mulai
Input Stego image
Hitung nilai Piksel citra Stego
Ambil 1bit LSB
Masih ada Plaintext
Selesai
Tidak
Konversikan ke dalam nilai biner setiap Piksel citra Stego
Tampilkan Plaintext
Flowchart menghitung nilai MSE dapat dilihat seperti pada gambar berikut.
Gambar 3.7 Flow Chart Menghitung MSE Mulai
Input citra Cover dan Stego
MSE =
Nilai MSE
Hitung jumlah kuadrat selisih Nilai Grayscale , dimana
S= I (x,y) – I’(xy) Hitung Nilai Piksel
Hitung Nilai RGB Piksel Hitung Dimensi (X,Y)
3.5 Perancangan
Rancangan antar muka adalah rancangan tampilan sistem yang akan dibentuk oleh
penulis pada penelitian ini, berikut adalah rancangan sistem:
3.5.1 Rancangan Menu Utama
Rancangan Menu Utama merupakan tampilan yang pertama kali muncul saat program
dijalankan. Pada rancangan ini terdapat menu embed, ekstrak dan keluar. Button Embed berfungsi untuk masuk ke dalam halaman Insertion dan perhitungan fidelity, button ekstrak befungsi untuk masuk ke dalam halaman ekstraksi
[image:36.595.119.516.314.506.2]
Gambar 3.8 Rancangan Menu Utama
3.5.2 Rancangan Insertion
Rancangan button pilih gambar, berfungsi untuk mengunjungi directory penyimpanan citra (browse files) yang diperlukan sistem. Rancangan button cek berfungsi untuk menghitung kapasistas citra cover dan menghitung maksimal karakter yang dapat
disisipkan kedalam citra cover. Rancangan button pilih txt, berfungsi untuk mengunjungi directory penyimpanan file txt yang akan disisipkan. Rancangan button Proses berfungsi untuk melakukan proses penyisipan. Rancangan button MSE berfungsi untuk melakukan perhitungan nilai MSE setelah penyisipan selesai.
menu embed ekstrak keluar
Modifikasi Least Significant BIT (LSB) Menggunakan Persamaan Kuadrat Pada Kunci
Steganografi
Rancangan button keluar berfungsi untuk keluar dari laman User dan berpindah kelaman Menu. Tampilan Edit Text “a” berfungsi untuk menampilkan nilai konstanta a (kunci). Tampilan Edit Text “b” berfungsi untuk menampilkan nilai konstanta b (kunci). Tampilan Edit Text “c” berfungsi untuk menampilkan nilai konstanta c (kunci).
Gambar 3.9 Rancangan Insertion
3.5.3 Rancangan Extraction
Rancangan button Extract berfungsi melakukan pengeluaran Insertion pesan txt dari dalam citra stego citra. Rancangan button Browse Stego adalah tombol untuk melakukan pemangilan file citra stego dari memori komputer dan menampilkannya pada picture box, rancangan button SaveEmbed adalah untuk menyimpan file embed hasil ekstraksi, tombol Bersih adalah untuk melakukan pembersihan tampilan dan
tombol Keluar untuk menutup tampilan dan mengembalikan kelaman Menu.
Tampilan Citra cover
waktu xxxxx xxxxx
Tampilan Citra stego
Proses Bersih
Pilih txt
Keluar MSE
cek
Ukuran xxxxx save Pilih gambar
Kembali Tampilan karakter txt
a
b
xxx
xxx
Gambar 3.10 Rancangan Extraction
Tampilan Citra Stego
alamat File xxxxxxxxxxxxx x
Browse Stego
Tampilan karakter Plaintext
Nama File xxxxxxxxxxxxx Extract
Save Embed
Bersih
BAB 4
IMPLEMENTASI DAN PENGUJIAN SISTEM
4.1 Pembahasan Algoritma
Tahap ini akan membahas bagaimana kerja teknik algoritma pada sistem yang
dibangun. Berikut adalah pembahasan teknik algoritma yang digunakan
4.1.1 Pembahasan Algoritma Least Significant Bit (LSB)
Sistem ini melakuan penyisipan dengan modifikasi Least Significant Bit (LSB)
Persamaan kuadrat. Sebelum melakukan penyisipan dengan algoritma ini terlebih
dahulu akan dilakukan proses – proses pendukung sebagai berikut
4.1.1.1 Baca Nilai Piksel
Sebelum melakukan Penyisipan, terlebih dahulu dilakukan pembacaan dan
[image:39.595.144.432.566.705.2]penghitungan nilai biner dari masing-masing piksel pada citra cover. Sebagai contoh diberikan citra warna berdimensi 512 x 365 piksel seperti pada Gambar 4.1
Citra pada Gambar 4.1 di atas dilakukan pembacaan nilai piksel dari
masing-masing komponen warna RGB-nya. Sebagai contoh diberikan cuplikan citra 5 x 5
[image:40.595.255.377.170.294.2]piksel yang berasal dari citra cover yang dapat dilihat seperti pada Gambar 4.2
Gambar 4.2 Sample Citra cover (5 x 5 piksel)
Citra pada Gambar 4.2 di atas dilakukan pembacaan nilai piksel pada data
bitmap Citra cover (5 x 5 piksel) seperti pada Gambar 4.3
Gambar 4.3 Nilai Piksel pada Data Bitmap
4.1.1.2 Hitung Nilai Red Green Blue
Untuk mencari masing-masing nilai R, G dan B dilakukan dengan rumus sebagai
berikut:
Nilai R = C(i,j) and255………...………...…… (4.1) NilaiG= (C(i,j) and 65280) / 256.………...……...…... (4.2) Nilai B = (C(i,j) and16711680) / 256/256..….………...…... (4.3)
Piksel (0,0) Piksel (0,1) Piksel (0,2) Piksel (i,j) 0001011100100000001 00101010110010100000101000001 101010101010100010100111 ...
Piksel (1,0) Piksel (1,1) Piksel (1,2) Piksel (i,j) 0010001100100011001 00000010110100100110001001100 100111101001110110100100 ...
Piksel (2,0) Piksel (2,1) Piksel (2,2) Piksel (i,j) 0101001001011010010 01100010100110100100101000101 101010111010001110100011 ...
Piksel (3,0) Piksel (3,1) Piksel (3,2) Piksel(i,j) 01100110011100000 10111110111001001100010010 10110 101101101010110010011101 Piksel (4,0) Piksel (4,1) Piksel (4,2) Piksel (i,j)
(0,1) (0,2) (0,3) (0,4)
(1,0) (1,1) (1,2) (1,3) (1,4) (0,0)
(2,0) (2,1) (2,2) (2,3) (2,4)
(3,0) (3,1) (3,2) (3,3) (3,4)
[image:40.595.115.539.425.533.2]Dimana C(i,j) adalah nilai piksel citra pada kordinat (i,j) dalam biner. Maka dilakukan perhitungan nilai R, G, B pada Gambar 4.2 di atas:
1. Nilai piksel (0,0)=000101110010000000100101.
Nilai R = 000101110010000000100101and 11111111 =00100101 = 37 (dec) Nilai G = (000101110010000000100101and 1111111100000000)/100000000 = 00100000= 32(dec).
Nilai B= (000101110010000000100101and111111110000000000000000)/ 100000000/100000000 = 00010111= 23(dec).
2. Nilai piksel (0,1)=010110010100000101000001.
Nilai R = 010110010100000101000001and 11111111 =01000001 = 65 (dec)
Nilai G = (010110010100000101000001and 1111111100000000)/100000000 = 01000001= 65(dec).
Nilai B = (010110010100000101000001and 111111110000000000000000)/ 100000000/100000000 = 01011001= 89(dec).
[image:41.595.205.428.418.732.2]R=37 G=32 B=23 R=65 G=65 B=89 R=167 G=168 B=170 R=171 G=147 B=153 R=160 G=130 B=141 R=32 G=35 B=35 R=76 G=76 B=90 R=164 G=157 B=158 R=181 G=170 B=179 R=204 G=203 B=199 R=76 G=90 B=82 R=69 G=73 B=83 R=163 G=163 B=171 R=186 G=190 B=189 R=177 G=184 B=162 R=95 G=112 B=102 R=86 G=98 B=114 R=157 G=172 B=182 R=167 G=182 B=184 R=174 G=186 B=187 R=74 G=84 B=93 R=121 G=134 B=152 R=173 G=187 B=194 R=184 G=196 B=207 R=202 G=214 B=227
Pencarian nilai piksel terus dilanjutkan sampai dengan piksel (4,4) dihitung dengan
cara yang sama seperti diatas. Dari hasil perhitungan nilai RGB citra di atas
dimasukkan pada matriks citra cover RGB seperti pada Gambar 4.3
4.1.1.3 Hitung Nilai BinerSetiap Karakter
File yang digunakan sebagai pesan yang akan disisipkan berformat *.txt. Misalkan
karakter pesan yang akan disisipkan adalah “RAHASIA”. Setiap karakter dari pesan
akan dilakukan perhitungan nilai binernya. Untuk mempermudah proses perhitungan
kita dapat menggunakan tabel ASCII sebagai bantuan untuk menentukan nilai biner
dari masing-masin karakter pesan “H”. Dengan demikian, nilai biner masing masing karakter dapat kita liha pada table 4.1
Tabel 4.1 Tabel Nilai Biner Pesan
Karakter Pesan Nilai Biner Berdasarkan Table ASCII
“H” 0100 1000
Dari tabel 4.1 dapat kita ketahui jumlah total dari bit pesan yang akan disisipkan
adalah 56 bit. Dengan demikian dibutuhkan 56 piksel atau lebih agar seluruh pesan
dapat disisipkan kedalam citra penampungnya, karena dengan teknik LSB dan LSB
menurut Persamaan kuadrat setiap 1 piksel citra hanya dapat menampung 1 bit pesan
yang akan disisipkan.
Penyembunyian data dilakukan dengan mengganti bit-bit data yang tidak terlalu
berpengaruh didalam segmen citra dengan bit-bit data rahasia atau pesan rahasia pada
susunan bit didalam sebuah byte (1 byte = 8 bit).
Urutan bit didalam sebuah byte terdapat satu buah bit yang sangat berarti yaitu
Gambar 4.5 Bit MSB dan LSB dibarisan bit didalam byte
Langkah – langkahpenyisipanalgoritma LSB adalahsebagaiberikut; 1. Input cover citra
2. Baca nilai Piksel citra, kemudian ubah kedalam bentuk biner
3. Hitung maksimal pesan yang dapat disisipkan
4. Input teks dan ubah kebentuk biner
5. Gantikan 1 bit LSB dari piksel cover image dengan 1 bit embed. 6. Petakan menjadi citra baru (stego image).
Dengan Algoritma LSB setiap byte dari citra penampung dapat disisipkan 1bit pesan secara berurutan sampai karakter pesan selesai disisipkan. Berikuta dalah citra
[image:43.595.144.478.491.602.2]dalam bentuk biner dengan dengan kapasitas 5x5 piksel yang belum disisipi pesan.
Gambar 4.6 Citra Cover 5x5 Piksel dalam Bentuk Biner
karakter yang akan disisipkan adalah karakter “H” dengan nilai biner “0100
1000”, dengan demikian ada 8 piksel yang akan disisipi pesan. Berikut adalah proses
Gambar 4.7 Citra Stego 5x5 Piksel dalam Bentuk Biner
Teknik penyisipan dilakukan pada bit-bit terakhir atau paling kanan disetiap
barisan bit didalam byte pada citra penampungnya. Metode LSB sudah banyak dilakukan didalam teknik steganografi, sehingga membutuhkan pengembangan atau
modifikasi, untuk pengembangannya dapat berupa penambahan kunci maupun
merubah teknik penyisipannya.
4.1.2Least Significant Bit (LSB) Menurut Persamaan kuadrat
Teknik penyisipan menggunakan algoritma LSB menurut Persamaan kuadrat
bertujuan untuk menentukan letak penyisipan suatu teks kedalam sebuah citra cover.
Penyisipan pesan menggunakan metode LSB menurut Persamaan kuadrat dilakukan
dengan menyisipkan 1 bit embed kedalam 1 byte cover citra dengan menggatikan 1 bit LSB dengan 1 bit pesan. Proses penyisipan dimulai dengan menghitung letak
koordinat penyisipannya dengan fungsi kudrat f(x) = ax2 + bx + c. Nilai konstanta a,b,
dan c dibangkitkan sistem dengan nilai yang teteap.
Langkah – langkah yang dilakukan dalam proses Penyisipan menggunakan metode LSB menurut Persamaan kuadrat adalah sebagai berikut:
1. Input cover citra
2. Baca nilai Piksel citra, kemudian ubah kedalam bentuk biner
3. Bangkitkan kunci (a=1, b=1, dan c=1)
4. Input teks dan ubah kebentuk biner
5. Tentukan letak koordinat penyisipan dengan menggunakan Persamaan
6. Gantikan 1 bit LSB dari piksel cover image dengan 1 bit embed. 7. Petakan menjadi citra baru (stego image).
Berikut adalah citra cover 11x18 piksel yang disiapkan untuk menyisipkan
karakter “H” dengan nilai biner “0100 1000”, dengan demikian ada 8 piksel yang akan disisipi pesan. Berikut adalah proses Insertion LSB. Maka hasil penyisipannya sebagai
berikut.
Gambar 4.8 Citra Cover 11x18 Piksel dalam Bentuk Biner
Setelah itu dilakukan proses pembangkitan kunci (a, b, dan c) secara otomatis
oleh sistem. Kemudian dilakukan perhitungan letak penyisipan kedalam citra cover
dengan menghitung nilai xmax berdasarkan persamaan persamaan kuadrat.
Maka pesan yang dapat disisipkan pada citra cover 10x18 piksel adalah sebanyak 8 bit . Input karakter yang akan disisipkan kedalam cover citra pada gambar 3.5 diatas. Kita asumsikan karakter yang akan disisipkan adalah karakter “A” dengan nilai biner “0100 0001”, dengan demikian ada 8 piksel yang akan disisipi pesan.
Penyelesaiannya sebagai berikut, sistem membangkitkan konstanta yang bernilai
a=1, b=1 dan c=1 (private key), penyelesaian:
1. Dimulai penyisipan 1 bit pertama yaitu x = 0, maka :
f(x) = ax2 + bx+c
f(x) = 1(0) + 1(0)+1
f(x) = 1
letak koordinat penyisipan bit pertama adalah {0,1}
2. Penyisipan 1 bit kedua yaitu x = 1
f(x) = ax2 + bx+c
f(x) = 1(1)2 + 1(1)+1
f(x) = 3
Letak koordinat penyisipan 1 bit kedua adalah {1,3}
3. Penyisipan 1 bit ketiga yaitu x = 2
f(x) = ax2 + bx+c
f(x) = 1(2)2 + 1(2)+1
f(x) = 7
Letak koordinat penyisipan 1 bit ketiga adalah {2,7}
4. Penyisipan 1 bit keempat yaitu x = 3
f(x) = ax2 + bx+1
f(x) = 1(3)2 + 1(3)+1
f(x) = 13
Letak koordinat penyisipan bit pertama adalah {3,13}.
5. Dimulai penyisipan 1 bit kelima yaitu x = 4, maka :
f(x) = ax2 + bx+c
f(x) = 1(4)2 + 1(4)+1
f(x) = 21
letak koordinat penyisipan bit kelima adalah {4,21}
6. Penyisipan 1 bit keenam yaitu x = 5
f(x) = ax2 + bx+1
f(x) = 1(5)2 + 1(5)+1
f(x) = 31
7. Penyisipan 1 bit ketujuh yaitu x = 6
f(x) = ax2 + bx+1
f(x) = 1(6)2 + 1(6)+1
f(x) = 43
Letak koordinat penyisipan 1 bit ketujuh adalah {6,43}
8. Penyisipan 1 bit kedelapan yaitu x = 7
f(x) = ax2 + bx+1
f(x) = 1(7)2 + 1(7)+1
f(x) = 57
Letak koordinat penyisipan bit kedelapan adalah {7,57}.
Setelah semua koordinat penyisipan selesai dihitung, kemudian gantikan 1 bit
LSB dengan 1 bit pesan sesuai dengan koordinat peletakannya masing – masing. Dari
hasil perhitungan koordinat diatas dapat kita ketahui bahwa pesan “0100 0001” dapat
disisipkan pada koordinat piksel cover citra urutan {(0,1), (1,3), (2,7), (3,13), (4,21), (5,31), (6,43) dan (7,57)}.
4.1.3 Perhitungan Fidelity
Salah satu parameter yang digunakan adalah ketahan file (fidelity) metode yang digunakan untuk melihat ketahanan cover adala perhitungan MSE dan BER, sebagai
berikut.
4.1.3.1 Perhitungan Nilai Mean Squed Error(MSE)
Untuk mengukur ketahanan metode LSB adalah dengan melakukan perhitungan MSE
citra stego dengan menggunakan persamaanberikutini:
MSE=
...(4.5)
30 73 168 157 143 30 65 167 137 157
34 80 159 176 202 33 71 137 189 193
82 75 165 188 183 69 64 189 161 160
103 99 170 177 182 97 125 167 162 191
[image:48.595.176.474.103.217.2]83 135 184 195 214 83 135 184 195 214
Gambar 4. 8 Matriks Citra Cover dan Citra Stego
MSE =
MSE =
MSE =
0+64+1+400+196+1+81+484+169+81+169+121 +576+729+529+36+676+9+225+81+0+0+0+0+0
MSE =
4627 MSE = 0,18508
4.2 Pengujian Sistem
Pengujian dilakukan pada citra *.BMP sebagai citra penampung yang akan disisipi file
teks yang berformat *.txt dengan panjang karakter sesuai dengan citra yang dipilih
oleh User. Parameter yang digunakan untuk membandingkan kedua metode ini juga
akan dihitung setelah proses insertion selesai.
4.2.1 Tampilan menu utama
Pada sistem yang dibangun terdapat dua fungsi menu utama yaitu fungsi embed dan
kedalam sebuah citra cover, sedangkan menu ekstrak berfungsi mengekstrak kembali
[image:49.595.167.467.140.407.2]teks yang telah disisipi pada citra cover.
Gambar 4.9 Tampilan Menu Utama Sistem
4.2.1 Proses penyisipan pesan
Padatahap insertion langkah yang pertama sekali dilakukan adalah mengimputkan citra
penampung. Kemudian dilakukan pengecekan terhadap banyak karakter yang dapat
disisipkan kedalam citra tersebut. Setelah itu diinputkan file teks yang telah berisi
pesan rahasia yang banyak karakternya sesuai dengan kapasitas citra. Selanjutnya
dilakukan proses insertion yang akan menghasilkan citra yang sudah disisipkan pesan
Gambar4.10 Form Penyisipan LSB menurut Persamaan Kuadrat
4.2.2 Proses Ekstraksi Pesan
Pada tahap ekstraksi langkah pertama yang dilakukan adalah menginputkan stego
image yang telah disimpan di dalam direktori penyimpanan, kemudian lakukan
proses penguraian pesan yang terdapat pada stego image tersebut. Kemudian
system akan menampilkan file teks yang tersisip pada citra. Proses ekstraksi dapat
BAB 5
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Berdasarkan keseluruhan proses yang telah dilakukan secara teori maupun pengujian
sistem, maka kesimpulan yang dapat diambil adalah
1. Steganografi file teks kedalam citra dapat dilakukan dengan metode LSB
menurut Persamaan kuadrat dengan terlebih dahulu mengolah karakter dan
matriks citra.
2. Penyisipan file teks kedalam citra menggunakan algoritma LSB membutuhkan
daya penampung yang sangat besar, hal ini dikarenakan letak koordinat
penyisipan bit-bit pesan terlebih dahulu dihitung menggunakan rumus
Persamaan kuadrat sebelum dilakukan penyisipan.
3. Dari pengujian Fidelity metode LSB menurut Persamaan kuadrat sangat baikdari segi ketahanan dengan nilai Fidelity MSE = 0,00163333
4. Steganografi menggunakan metode LSB menurut persamaan kuadrat telah
memenuhi kriteria steganografi yang baik, hal ini dikarenakan hasil penyisipan
kedua metode tersebut tidak dapat dilihat dengan kasat mata (imperceptibility) mutu citra dapat dikatakan tidak berubah (fidelity) dan dapat dilakukan penguraian dengan akurat (ekstraksi)
5.2 Saran
Berikut adalah beberapa saran penulis yang dapat digunakan sebagai pertimbangan
1. Objek penampung pada penelitian ini adalah citra dengan format *.BMP, untuk
pengembangan selanjutnya dapat dilakukan perubahan dengan menggunakan file
citra dengan format yang lain bahkan dapat juga digunakan menggunakan file
digital yang lainnya seperti Audio dan Video.
2. Kinerja sistem pada Penelitian ini membutuhkan banyak waktu pada proses
penyisipannya, untuk pengembangannya dapat dilakukan penelitian untuk
mempercepat proses penyisipan.
3. Algoritma LSB menurut Persamaan kuadrat tidak optimal jika digunakan untuk
menyembunyikan file *.txt dengan jumlah karakter yang banyak, karena
membutuhkan kapasitas penampung yang sangat besar dan waktu pemrosesan
yang sangat lama, untuk pengembangannya dapat dilakukan penetapan kunci atau
nilai konstanta a, b, dan c guna memperbanyak karakter yang dapat disisipkan
kedalam sebuah cover image.
4. Perlu penelitian lanjutan karena hasil dari bentuk garis yang ditarik dari setiap
DAFTAR PUSTAKA
Dony Ariyus. 2008. Pengantar Ilmu Kriptografi. Jogjakarta,Indonesia: Penerbit Andi. Esti Suryani. 2008. Kombinasi Kriptografi dengan Hillcipher dan Steganografi dengan
LSB Untuk Keamanan Data Teks. Jurnal. Magelang, Indonesia : Universitas Muhammadyah Magelang
Henny Hariani Lubis. 2012. Analisis dan Perancangan Pengujian Nilai MSE (Mean Squared Error) pada Proses Penyisipan Label Citra dengan Algoritma Modified Least Significant Bit (LSB) terhadap Modifikasi Nilai Brightness. Medan , Indonesia : Universitas Sumatera Utara
Henry Setyawan. 2009. Implementasi Steganografi Dengan Metode Least Significant Bit. Jurnal. Banda Aceh, Indonesia : Universitas Syiah Kuala.
M. Anggrie Setyawan. 2012. Implementasi Steganografi Pada Citra Digital BMP Menggunakan Java. Skripsi. Bandung, Indonesia : Politeknik Telkom Bandung.
Marghny Mohamed. 2010. Data Hiding by LSB Substitution Using Genetic Optimal Key_Permutation. Journal. Assiut, Egypt : Assiut University
Mark Ryan. 2010. Calculus Essentials for Dummies. Wiley Publishing, Inc.
Mollin, Richard A. 2005. The Guide to Secrecy form ancient to Modern Times. Boca Raton, USA : Taylor & Francis group, LLC.
Mollin, Richard A. 2007. An Introduction to Cryptography, Second Edition. Boca Raton, USA : Taylor & Francis group, LLC.
Listing Program Menu
function varargout = menu(varargin)
% Begin initialization code - DO NOT EDIT gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @menu_OpeningFcn, ... 'gui_OutputFcn', @menu_OutputFcn, ... 'gui_LayoutFcn', [] , ...
'gui_Callback', []); 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
% End initialization code - DO NOT EDIT
% --- Executes just before menu is made visible.
function menu_OpeningFcn(hObject, eventdata, handles, varargin) guidata(hObject, handles);
axes(handles.axes1); imshow('usu.png');
handles.output = hObject; guidata(hObject, handles);
% --- Outputs from this function are returned to the command line. function varargout = menu_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output;
% --- function Menu_Callback(hObject, eventdata, handles)
% --- function Embed_Callback(hObject, eventdata, handles)
Insertion close(gcbf)
% --- function Ekstrak_Callback(hObject, eventdata, handles)
extractfgsi close(gcbf)
% --- function Keluar_Callback(hObject, eventdata, handles)
Listing ProgramPenyisipan function varargout = Insertion(varargin)
% Begin initialization code - DO NOT EDIT gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @Insertion_OpeningFcn, ... 'gui_OutputFcn', @Insertion_OutputFcn, ... 'gui_LayoutFcn', [] , ...
'gui_Callback', []); 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
% End initialization code - DO NOT EDIT
% --- Executes just before Insertion is made visible.
function Insertion_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject;
% Update handles structure guidata(hObject, handles);
% --- Outputs from this function are returned to the command line. function varargout = Insertion_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output;
function inputtext_Callback(hObject, eventdata, handles)
% --- Executes during object creation, after setting all properties. function inputtext_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white'); end
% --- Executes on button press in mse.
function mse_Callback(hObject, eventdata, handles) R1_s = handles.citra(:,:,:);
R2_s = handles.formasi(:,:,:);
dR_s = abs(double(R1_s) - double(R2_s)); mse_s=(dR_s(:).^2);
p=length(mse_s);
set(handles.MSEhsl,'String',mse2);
% --- Executes on button press in browse.
function browse_Callback(hObject, eventdata, handles)
[nama_file,nama_path] = uigetfile({'*.bmp';},'Buka Citra'); if ~isequal(nama_file,0) awal=(fullfile(nama_path,nama_file)); handles.citra=imread(awal); guidata(hObject,handles); axes(handles.cover); imshow(handles.citra); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% end
% --- Executes on button press in browsetext.
function browsetext_Callback(hObject, eventdata, handles) [nama_file,nama_path] = uigetfile({'*.txt';},'Buka Citra'); if ~isequal(nama_file,0) awal=(fullfile(nama_path,nama_file)); handles.tulis=fileread(awal); l=double(handles.tulis); j=dec2bin(l); [apa ini]=size(j) if apa > handles.kar
errordlg('text melampaui kapaitas ','Error'); return end guidata(hObject,handles); set(handles.inputtext,'String',handles.tulis); end
% --- Executes on button press in cek.
function cek_Callback(hObject, eventdata, handles) handles.m=1; set(handles.A,'String',handles.m); handles.b=1; set(handles.B,'String',handles.b); handles.c=1; set(handles.C,'String',handles.c); [bbb kk zz]=size(handles.citra); jum=bbb*kk*zz; lipat=bbb*3; bar=reshape(handles.citra,jum,1); p=dec2bin(bar); %nilai konstanta x1=1; y1=1;
%misahin per kolom a=1;
semua=lipat*kk*8; skalar=8*kk; %tentuin y
for yuyu=1:lipat
rumus=(handles.m*(yuyu*yuyu))+(handles.b*yuyu)+handles.c;%ax^2+bx+c if rumus <= kk
barisasli(a)=kk*yuyu+rumus; a=a+1; end end [ko l]=size(barisasli); ss1=1; barisasli; %proses biasa for tt=1:lipat*kk for uu=1:8
if ss1<=l && barisasli(ss1)==tt && uu==8 ss1=ss1+1; end end end bit=ss1-1; % set(handles.text5,'String',bit); handles.kar=floor(bit/7); guidata(hObject,handles); set(handles.size,'String',handles.kar);
% --- Executes on button press in save.
function save_Callback(hObject, eventdata, handles) [file,path]=uiputfile('*.bmp','save');
Name=fullfile(path,file); imwrite(handles.formasi,Name);
% --- Executes on button press in proses.
function proses_Callback(hObject, eventdata, handles) tic
[bbb kk zz]=size(handles.citra); jum=bbb*kk*zz; lipat=bbb*3; bar=reshape(handles.citra,jum,1); p=dec2bin(bar); handles.p=p; handles.tulis=(get(handles.inputtext,'String')); l=double(handles.tulis); j=dec2bin(l);
savefile = 'varfungsikuadratfile.mat'; [rr cc]=size(j) %nilai konstanta x1=1; y1=1; m=handles.m; b=handles.b;
%misahin per kolom a=1;
%tentuin y
%koor y tanpa baris for yuyu=1:lipat
rumus=(handles.m*(yuyu*yuyu))+(handles.b*yuyu)+handles.c;%ax^2+bx+c if rumus <= kk
barisasli(a)=kk*yuyu+rumus; a=a+1; end end [ko l]=size(barisasli); ss2=1; barisasli; %proses biasa for tt=1:lipat*kk for uu=1:8 gambarbaru(tt,uu)=p(tt,uu);
if ss2<=l && barisasli(ss2)==tt && uu==8 && x1<=rr gambarbaru(tt,8)=j(x1,y1); y1=y1+1; ss2=ss2+1; if y1>cc x1=x1+1; y1=1; end end end end p; j; gambarbaru; handles.gambarbaru=gambarbaru; [be le lu]=size(handles.citra); [jj1 kk1]=size(gambarbaru); g=bin2dec(gambarbaru); kok=toc; handles.g=g; handles.formasi=uint8(reshape(g,be,le,lu)); axes(handles.stego); imshow(handles.formasi); guidata(hObject,handles); set(handles.waktu,'String',kok); m=handles.m; b=handles.b; c=handles.c;
save(savefile, 'rr', 'cc','m','b','c');
% --- Executes on button press in kembali.
function kembali_Callback(hObject, eventdata, handles) close(gcbf)
menu
% --- Executes on button press in bersih.
set(han