IMPLEMENTASI KEAMANAN TEKS PADA CITRA BITMAP DENGAN KOMBINASI ALGORITMA KNAPSACK DAN ALGORITMA LEAST
SIGNIFICANT BIT (LSB) TERHADAP MODIFIKASI NILAI BRIGHTNESS
SKRIPSI
DIRA FAHRENDY SEMBIRING 081401100
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
IMPLEMENTASI KEAMANAN TEKS PADA CITRA BITMAP DENGAN
KOMBINASI ALGORITMA KNAPSACK DAN ALGORITMA LEAST
SIGNIFICANT BIT (LSB) TERHADAP MODIFIKASI
NILAI BRIGHTNESS
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar
sarjana komputer
DIRA FAHRENDY SEMBIRING
081401100
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
PERSETUJUAN
Judul : IMPLEMENTASI KEAMANAN TEKS PADA
CITRA BITMAP DENGAN KOMBINASI
ALGORITMA KNAPSACK DAN ALGORITMA
LEAST SIGNIFICANT BIT (LSB) TERHADAP
MODIFIKASI NILAI BRIGHTNESS
Kategori : SKRIPSI
Nama : DIRA FAHRENDY SEMBIRING
Nomor Induk Mahasiswa : 081401100
Program Studi : SARJANA (S1) ILMU KOMPUTER
Departemen : ILMU KOMPUTER
Fakultas : ILMU KOMPUTER DAN TEKNOLOGI
INFORMASI (FASILKOM-TI) UNIVERSITAS
SUMATERA UTARA
Diluluskan di
Medan, 27 Agustus 2013
Komisi Pembimbing :
Pembimbing II Pembimbing I
M. Andri B, ST,M.Comp.Sc, MEM Dr. Poltak Sihombing, M. Kom
NIP. 197510082008011011 NIP. 196203171991031001
Diketahui/Disetujui oleh
Program Studi S1 Ilmu Komputer
Ketua,
Dr. Poltak Sihombing, M.Kom
PERNYATAAN
IMPLEMENTASI KEAMANAN TEKS PADA CITRA BITMAP DENGAN
KOMBINASI ALGORITMA KNAPSACK DAN ALGORITMA LEAST
SIGNIFICANT BIT (LSB) TERHADAP MODIFIKASI
NILAI BRIGHTNESS
SKRIPSI
Saya menyatakan bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa
kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, Agustus 2013
Dira Fahrendy Sembiring
PENGHARGAAN
Alhamdulillahirrabbil’alamin. Puji dan syukur penulis ucapkan kepada Allah SWT
atas limpahan rahmat, rezeki dan karunia-Nya sehingga penulis dapat menyelesaikan
skripsi ini sebagai syarat untuk memperoleh gelar Sarjana Komputer, Program Studi
Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas
Sumatera Utara, dan tidak lupa Shalawat dan salam kepada Rasulullah Muhammad
SAW.
Pada pengerjaan skripsi dengan judul Implementasi keamanan teks pada citra
bitmap dengan kombinasi algoritma knapsack dan algoritma least significant bit
(LSB) terhadap modifikasi nilai brightness, penulis menyadari bahwa banyak
memperoleh bantuan dari berbagai pihak yang turut membantu dan memotivasi dalam
pengerjaannya. Dalam kesempatan ini, penulis mengucapkan terima kasih kepada:
1. Bapak Prof. Dr. dr. Syahril Pasaribu, DTM&H, MSc(CTM). Sp.A(K) selaku
rektor Universitas Sumatera Utara periode 2010 – 2015.
2. Bapak Prof. DR. Muhammad Zarlis M.Scselaku Dekan Fakultas Ilmu Komputer
dan Teknologi Informasi.
3. Bapak Dr. Poltak Sihombing, M.Kom selaku ketua program studi S-1 Ilmu
Komputer dan selaku dosen pembimbing I.
4. Ibu Maya Silvi Lydia, B.Sc, M.Sc selaku Sekretaris Program Studi Ilmu Komputer
5. Bapak M. Andri Budiman, ST, M.Comp.Sc, MEM selaku dosen pembimbing II
yang banyak memberikan motivasi nasehat dan arahan yang baik khususnya pada
teknik penulisan tugas akhir ini.
6. Bapak Ade Candra, ST, M.Kom dan bapak Handrizal, S.Si, M.Comp.Sc selaku
dosen Pembanding I dan II, atas kritik dan saran beliau maka penulisan tugas akhir
ini dapat diselesaikan dengan baik.
7. Teristimewa penulis ucapkan terima kasih sebesar-besarnya kepada kedua orang
Br Ginting Abangda tersayang Dira Ervandy Sembiring, SE adinda tersayang Dira
tri Armanda, dan Dira Aprilia Timanta yang selalu mendo’akan dan memberi
motivasi dan perhatian yang diberikan sehingga penulis dapat menyelesaikan
skripsi ini.
8. Teman teristimewa Namira Listya Utami Tanjung, S.Kom yang selalu menemani
dan tak henti-hentinya memberi motivasi, dukungan dan doa.
9. Teman-teman seperjuangan mahasiswa S1-Ilmu Komputer stambuk 2008 secara
khusus dan seluruh perkumpulan parkir rangers crew ( Octi Fadhilla, S.Kom,
Nanang Tri Bhuana, S.Kom, Khairunnisa Lubis, S.Kom Nurul Faradhilla, S.Kom,
Rahmad parmohonan, S.Kom, Gustaf Prameswara, S.Kom, Yassin R Fadhilah
Harahap, S.kom, Nasan Martua Siregar, S.Kom, Andika Diapari S.Kom, Setyo
Muhammad, S.Kom, Marthin Febrianto) yang telah memberikan semangat,
motivasi dan dukungan moril yang tiada hentinya serta setia mendampingi penulis
sampai penulisan skripsi ini selesai.
10.Semua pihak yang terlibat langsung ataupun tidak langsung yang tidak dapat
penulis ucapkan satu per satu yang telah membantu penyelesaian skripsi ini.
Penulis menyadari bahwa skripsi ini masih jauh dari kesempurnaan, oleh
karena itu penulis menerima kritik dan saran yang bersifat membangun demi
kesempurnaan skripsi ini. Sehingga dapat bermanfaat bagi kita semuanya.
Medan, Agustus 2013
ABSTRAK
Algoritma Knapsack merupakan bagian dari kriptografi asimetri yang mana kunci
enkripsinya berbeda dengan kunci dekripsinya. Steganografi adalah teknik
menyembunyikan data ke dalam data lain dengan cara menumpanginya tanpa
mengubah data yang ditumpanginya tersebut sehingga tampilan data tetap terlihat
sama. Dalam penelitian ini kriptografi dan steganografi akan digabungkan dan
diimplementasikan kedalam sebuah program kombinasi. Algoritma yang digunakan
adalah knapsack untuk kriptografi dan LSB (Least Bit Significant) untuk
Steganografi. Dimana plainteks terlebih dahulu dienkripsi menggunakan Knapsack
kemudian disisipkan ke file citra (citra penampung) menggunakan algoritma LSB.
Plainteks dalam bentuk file *.txt dan citra penampung berformat *.bmp. Selain kedua
kombinasi tersebut maka dilakukan juga modifikasi nilai brightness pada citra
penampung yang telah disisipkan untuk memperketat keamanan data teks. Hasil
pengujian pada sebuah sampel yang memiliki panjang 4 karakter dan waktu yang
dibutuhkan untuk enkripsi adalah 0.860558 detik. Cipherteks juga memiliki panjang 4
karakter, waktu untuk penyisipan kedalam citra berukuran 100 × 137 piksel adalah
9.31643 detik dengan penambahan nilai brightness sebesar 30. Untuk pengembalian
cipherteks menjadi plainteks dilakukan ekstraksi terlebih dahulu kemudian dekripsi.
Pada penelitian ini semakin besar ukuran citra penampungnya maka semakin lama
waktu proses penyisipan cipherteks ke dalam citra penampung tersebut. Namun
semakin besar citra penampungnya semakin besar pula kapasitas pesan yang dapat
disembunyikan.
.
IMPLEMENTATION OF TEXT SECURITY ON BITMAP IMAGE WITH COMBINATION OF KNAPSACK AND LEAST SIGNIFICANT BIT
(LSB) ALGORITHM FOR THE BRIGHTNESS VALUE MODIFICATION
ABSTRACT
Knapsack algorithm is part of the asymmetric cryptography which encryption key is
different from the decryption key. Steganography is a technique for hiding the main
data inside the other one by riding without changing the data host so the display of
data still look the same. In this study, cryptography and steganography will be
colaboraated and implemented into a combination of program. We will use knapsack
algorithm for cryptography and LSB (Least Significant Bit) for Steganography. Where
the plaintext will be encrypted using the Knapsack then pasted into the image file
(image cover) using LSB algorithm. Plaintext in a file *.txt format. and the image
container format *.Bmp. Except the combination of the two algorithm, we also
modified brightness values in the cover image that has been inserted for text data
security tightened. The test results on a sample that has a length of 4 characters and
the time required for encryption is 0.860558 seconds. Ciphertext also has a length of 4
characters, the time for insertion into the image size is 100 × 137 pixels 9.31643
seconds with addition of brightness value is 30. For returns the ciphertext into
plaintext, we do the extraction first and then the decryption. In this study, the larger
image size the longer embedding ciphertext into the cover image. However, the larger
cover image, the larger capacity of the message that can be hidden.
DAFTAR ISI
Halaman
Persetujuan ii
Pernyataan iii
Penghargaan iv
Abstrak vi
Abstract vii
Daftar Isi viii
Daftar Tabel xi
Daftar Gambar xii
Bab 1 Pendahuluan
1.1 Latar Belakang Masalah 1
1.2 Rumusan Masalah 3
1.3 Batasan Masalah 3
1.4 Tujuan Penelitian 4
1.5 Manfaat Penelitian 4
1.6 Metodologi Penelitian 4
1.7 Sistematika Penulisan 5
Bab 2 Landasan Teori
2.1 Kriptografi 6
2.1.1 Algoritma Simetris 7
2.2 Algoritma Knapsack 9
2.2.1 Knapsack Problem 9
2.2.2 Enkripsi Dan Dekripsi 11
2.3 Steganografi 13
2.4 Citra Digital 14
2.4.1 Format Citra Digital 15
2.4.2 Format Citra Bitmap 16
2.5 Algoritma LSB 18
2.5.1 Algoritma LSB Terhadap Modifikasi Nilai Brightness 19
Bab 3 Analisis Dan Perancangan Sistem
3.1 Analisis Sistem 21
3.1.1 Analisis Masalah 21
3.2 Analisis Persyaratan 22
3.2.1. Persyaratan Fungsional 23
3.2.2. Persyaratan Non-Fungsional 23
3.3 Pemodelan Sistem 24
3.3.1 Use case Diagram 24
3.3.1.1 Activity Diagram untuk Use case Bangkit kunci 25
3.3.1.2 Activity Diagram untuk Use case Enkripsi 26
3.3.1.3 Activity Diagram untuk Use case Penyisipan 27
3.3.1.4 Activity Diagram untuk Use case Ekstraksi 29
3.3.1.5 Activity Diagram untuk Use case Dekripsi 30
3.3.2 Sequence Diagram 32
3.3.3 Flowchart Sistem 34
3.4 Perancangan Antar Muka 39
3.4.1 Rancangan Menu Utama 40
3.4.2 Rancangan Pembangkit Kunci Dan Enkripsi 41
3.4.3 Rancangan Penyisipan 42
3.4.4 Rancangan Ekstraksi 43
3.4.5 Rancangan Bantuan 44
Bab 4 Implementasi dan Pengujian Sistem
4.1. Pemrosesan Keamanan Pesan 45
4.1.1 Tahapan algoritma Knapsack dan LSB 45
4.1.1.1 Proses Enkripsi menggunakan algoritma Knapsack 45
4.1.1.2 Proses Penyisipan menggunakan algoritma LSB 47
4.1.1.3 Proses Dekripsi menggunakan algoritma Knapsack 51
4.2. Implementasi Sistem 52
4.2.1 Form Menu Utama 52
4.2.2 Form Enkripsi 53
4.2.3 Form Penyisipan 54
4.2.4 Form Ekstraksi dan Dekripsi 55
4.3. Pengujian Sistem 56
4.3.1 Proses Enkripsi 56
4.3.2 Proses Penyisipan 61
4.3.3 Proses Ekstraksi 64
4.3.4 Proses Dekripsi 66
Bab 5 Penutup
5.1. Kesimpulan 70
5.2. Saran 71
Daftar Pustaka 72
Lampiran A
DAFTAR TABEL
Halaman
2.1 BMP File Header 17
3.1 Spesifikasi Use CaseBangkit Kunci 25
3.2 Spesifikasi Use CaseEnkripsi 27
3.3 Spesifikasi Use CasePenyisipan 28
3.4 Spesifikasi Use case Ekstraksi 30
3.5 Spesifikasi Use case Dekripsi 31
DAFTAR GAMBAR
Halaman
2.1 Proses Enkripsi Dan Dekripsi 6
2.2 Diagram Proses Enkripsi Dan Dekripsi Algoritma Simetris 8
2.3 Diagram Proses Enkripsi Dan Dekripsi Algoritma Asimetris 8
2.4 Format Citra 8-bit (256 Warna) 16
2.5 Format Citra 24-bit (16 Juta Warna) 17
3.1 Diagram Ishikawa Untuk Analisis Permasalahan Sistem 22
3.2 Use Case Diagram 24
3.3 Activity Diagram Bangkit Kunci 25
3.4 Activity Diagram Enkripsi 26
3.5 Activity DiagramPenyisipan 28
3.6 Activity Diagram Ekstraksi 28
3.7 Activity Diagram Dekripsi 31
3.8 Sequence Diagram Enkripsi 32
3.9 Sequence Diagram Penyisipan 33
3.10 Sequence Diagram Bangkit Kunci 34
3.11 Flowchart Bangkit Kunci 35
3.12 Flowchart Sistem Enkripsi 36
3.13 Flowchart Enkripsi 36
3.14 Flowchart Penyisipan 37
3.15 Flowchart Ekstraksi 38
3.16 Flowchart Sistem Dekripsi 38
3.17 Flowchart Dekripsi 39
3.18 Rancangan Menu Utama 40
3.19 Rancangan Bangkit Kunci Dan Enkripsi 41
3.20 Rancangan Penyisipan 42
3.22 Rancangan Bantuan 44
3.23 Rancangan Tentang 45
4.1 Citra Cover (100 × 137 Piksel) 48
4.2 Citra Dalam Bentuk Biner 48
4.3 Proses Penyisipan 49
4.4 Sebelum Termodifikasi 50
4.5 Sesudah Termodifikasi 50
4.6 Form Menu Utama 53
4.7 Form Enkripsi 54
4.8 Form Penyisipan 55
4.9 Form Ekstraksi dan Dekripsi 56
4.10 Input Parameter 57
4.11 Buka File Teks 58
4.12 Proses Enkripsi 59
4.13 Simpan Kunci Rahasia 60
4.14 Simpan Cipherteks 60
4.15 Memasukkan Citra Cover 61
4.16 Pilih Teks 62
4.17 Stego Image Termodifikasi 63
4.18 Simpan Stego Image Termodifikasi 64
4.19 Buka File Citra 65
4.20 Ekstraksi 66
4.21 Load Kunci 67
ABSTRAK
Algoritma Knapsack merupakan bagian dari kriptografi asimetri yang mana kunci
enkripsinya berbeda dengan kunci dekripsinya. Steganografi adalah teknik
menyembunyikan data ke dalam data lain dengan cara menumpanginya tanpa
mengubah data yang ditumpanginya tersebut sehingga tampilan data tetap terlihat
sama. Dalam penelitian ini kriptografi dan steganografi akan digabungkan dan
diimplementasikan kedalam sebuah program kombinasi. Algoritma yang digunakan
adalah knapsack untuk kriptografi dan LSB (Least Bit Significant) untuk
Steganografi. Dimana plainteks terlebih dahulu dienkripsi menggunakan Knapsack
kemudian disisipkan ke file citra (citra penampung) menggunakan algoritma LSB.
Plainteks dalam bentuk file *.txt dan citra penampung berformat *.bmp. Selain kedua
kombinasi tersebut maka dilakukan juga modifikasi nilai brightness pada citra
penampung yang telah disisipkan untuk memperketat keamanan data teks. Hasil
pengujian pada sebuah sampel yang memiliki panjang 4 karakter dan waktu yang
dibutuhkan untuk enkripsi adalah 0.860558 detik. Cipherteks juga memiliki panjang 4
karakter, waktu untuk penyisipan kedalam citra berukuran 100 × 137 piksel adalah
9.31643 detik dengan penambahan nilai brightness sebesar 30. Untuk pengembalian
cipherteks menjadi plainteks dilakukan ekstraksi terlebih dahulu kemudian dekripsi.
Pada penelitian ini semakin besar ukuran citra penampungnya maka semakin lama
waktu proses penyisipan cipherteks ke dalam citra penampung tersebut. Namun
semakin besar citra penampungnya semakin besar pula kapasitas pesan yang dapat
disembunyikan.
.
IMPLEMENTATION OF TEXT SECURITY ON BITMAP IMAGE WITH COMBINATION OF KNAPSACK AND LEAST SIGNIFICANT BIT
(LSB) ALGORITHM FOR THE BRIGHTNESS VALUE MODIFICATION
ABSTRACT
Knapsack algorithm is part of the asymmetric cryptography which encryption key is
different from the decryption key. Steganography is a technique for hiding the main
data inside the other one by riding without changing the data host so the display of
data still look the same. In this study, cryptography and steganography will be
colaboraated and implemented into a combination of program. We will use knapsack
algorithm for cryptography and LSB (Least Significant Bit) for Steganography. Where
the plaintext will be encrypted using the Knapsack then pasted into the image file
(image cover) using LSB algorithm. Plaintext in a file *.txt format. and the image
container format *.Bmp. Except the combination of the two algorithm, we also
modified brightness values in the cover image that has been inserted for text data
security tightened. The test results on a sample that has a length of 4 characters and
the time required for encryption is 0.860558 seconds. Ciphertext also has a length of 4
characters, the time for insertion into the image size is 100 × 137 pixels 9.31643
seconds with addition of brightness value is 30. For returns the ciphertext into
plaintext, we do the extraction first and then the decryption. In this study, the larger
image size the longer embedding ciphertext into the cover image. However, the larger
cover image, the larger capacity of the message that can be hidden.
BAB 1 PENDAHULUAN 1.1 Latar Belakang Masalah
Dewasa ini perkembangan teknologi semakin pesat, ketergantungan antara
komputer dan telekomunikasi semakin besar sehingga memudahkan kita untuk
saling bertukar informasi secara jarak jauh, baik antar kota antar wilayah antar
Negara bahkan antar benua tanpa membutuhkan waktu yang lama lagi dan bukan
merupakan suatu kendala lagi dalam melakukan komunikasi dan pertukaran data.
Teknik dan metode penyampaian pesan pun semakin beragam. Namun, teknik dan
metode penyampaian pesan tersebut tidak menjamin keamanan pesan tersebut
sampai ke tujuan. Apalagi jika pesan yang ingin disampaikan tersebut bersifat
penting dan rahasia. Oleh karena itu perlu digunakan berbagai cara untuk
mengamankan pesan tersebut agar dapat sampai ke tujuan secara utuh. Seperti
halnya pesan teks, pengamanan pesan dapat dilakukan dengan berbagai teknik,
Salah satu cara untuk mengamankan data adalah dengan menggunakan kombinasi
dua teknik yaitu kriptografi dan steganografi.
Pada penilitian ini akan dilakukan enkripsi dan dekripsi pesan berupa teks
dengan menggunakan metode kriptografi yaitu Algoritma Knapsack. Dan
dikombinasikan dengan metode steganografi yaitu menyamarkan keberadaan
informasi (data teks) ke dalam media penyamar, misalnya media yang berbentuk
berkas multimedia menggunakan algoritma least significant bit (LSB). Metode
LSB ini memodifikasi bit-bit terakhir dari setiap piksel citra dari semua
komponen warna sesuai dengan bit-bit data yang akan disisipi ke dalam citra
penampung [9]. Untuk pengamanan yang lebih baik lagi, penulis menambahkan
Penelitian ini merujuk pada skripsi yang berjudul “PERLINDUNGAN
PESAN RAHASIA PADA CITRA DIGITAL MENGGUNAKAN METODE LEAST
SIGNIFICANT BIT STEGANOGRAFI”yang ditulis oleh Hidayat. Pada Skripsi ini,
digunakan suatu metode steganografi berbasiskan Least significant bit (LSB)
untuk diimplementasikan pada aplikasi steganografi ini. Dimana nantinya akan
berguna untuk mengirimkan data rahasia secara aman tanpa sepengetahuan orang
lain. Metode LSB ini dapat membantu dalam mengirimkan pesan rahasia secara
aman karena pesan yang dikirim tidak dapat dipaksa di buka atau diganggu oleh
orang lain karena akan hancur dengan sendirinya demi keamanan pesan itu sendiri
[3].
Penelitian skripsi berikut mengenai “IMPLEMENTASI STEGANOGRAFI
DAN KRIPROGRAFI UNTUK KEAMANAN DATA DENGAN METODE RC2 DAN
LSB PADA CITRA BITMAP” yang ditulis oleh Naufal. penelitian ini adalah
membuat suatu aplikasi keamanan data dengan menggabungkan teknik steganografi
dan kriptografi. Metode yang akan digunakan dalam steganografi yaitu metode Least
Significant Bit (LSB) sedangkan pada kriptografi yang akan digunakan adalah metode
RC2. Proses yang dilakukan adalah dengan mengenkripsi data yang dirahasiakan
terlebih dahulu, lalu menyembunyikannya ke dalam media lain dalam bentuk gambar
yaitu berupa citra bitmap. Hasil dari penelitian ini adalah aplikasi yang dirancang
mampu memenuhi kebutuhan keamanan informasi, baik perlindungan terhadap
kerahasiaan informasi maupun perlindungan terhadap pemalsuan dan pengubahan
informasi yang tidak diinginkan [7].
Menimbang begitu pentingnya arti keamanan dalam komunikasi
pertukaran data, maka penulis ingin melakukan suatu penelitian yang berjudul
“Implementasi keamanan teks pada citra bitmap dengan Kombinasi Algoritma
knapsack dan Algoritma least significant bit (LSB) terhadap Modifikasi Nilai
1.2 Rumusan Masalah
Berdasarkan hal-hal yang telah diungkapkan pada latar belakang, maka yang menjadi
rumusan masalah dalam penelitan ini apakah “Kombinasi algoritma Knapsack dan
LSB terhadap modifikasi nilai brightness tepat untuk digunakan dalam mengamankan
data”.
1.3 Batasan Masalah
Beberapa batasan masalah yang menjadi acuan dalam pengerjaan skripsi ini adalah
sebagai berikut:
1. Penelitian ini hanya membahas tentang kombinasi dua teknik pengamanan data
yaitu menggunakan algoritma Knapsack dan LSB terhadap modifikasi nilai
brightness.
2. Pesan yang menjadi objek dalam implementasi ini adalah file teks dengan
format *.txt.
3. Citra penampung dalam implementasi ini adalah berformat *.BMP.
4. Citra penampung yang digunakan mempunyai nilai warna R,G,B lebih besar dari
30 dan lebih kecil dari 210
1.4 Tujuan Penelitian
1. Membangun aplikasi yang dapat merahasiakan pesan ke dalam citra dengan menggunakan dua teknik yaitu enkripsi dan dekripsi menggunakan algoritma
Knapsack serta teknik steganografi menggunakan LSB terhadap modifikasi
nilai brightness.
2. Mengetahui hasil kombinasi antara dua proses pengamanan data
3. Membuktikan tepat atau tidaknya metode enkripsi dekripsi pesan menggunakan
algortima Knapsack dikombinasikan dengan metode penyembunyian pesan
menggunakan algoritma LSB terhadap modifikasi nilai brightness untuk
1.5 Manfaat Penelitian
1. Diharapkan penilitian ini akan menambah literatur dan rujukan dalam bidang ilmu enkripsi dekripsi mengenai pengamanan data menggunakan algoritma
Knapsack serta ilmu steganografi menggunakan algoritma LSB pada citra.
2. Bagi masyarakat diharapkan aplikasi ini dapat berguna untuk memberikan rasa aman dengan pengamanan data secara ganda untuk melakukan pertukaran
informasi melalui jaringan komunikasi.
1.6 Metode Penelitian
Tahapan yang dilakukan dalam penelitian ini:
1. Studi Literatur
Penulisan tugas akhir ini di awali dengan melakukan pembelajaran literatur pada
sejumlah buku, artikel, paper, jurnal, makalah, maupun situs internet mengenai
kriptografi dengan algoritma knapsack dan steganografi dengan algoritma LSB
terhadap modifikasi Nilai Brightness .
2. Analisis dan Perancangan Sistem
Pada tahap ini akan dilaksanakan perancangan antarmuka dan perancangan sistem
Keamanan teks pada citra bitmap dengan menggunakan algoritma knapsack dan
algoritma LSB terhadap modifikasi Nilai Brightness.
3. Implementasi Sistem
Pada tahap ini akan dilaksanakan pengkodean ( coding ).
4. Pengujian Sistem
Dalam tahap ini dilakukan pengujian terhadap sistem yang telah dibangun, seperti
melakukan ujicoba proses enkripsi dan dekripsi serta penyisipan dan ekstraksi.
5. Dokumentasi
Dalam tahapan ini dilakukan penyusunan laporan dari hasil analisis dan
1.7 Sistematika Penulisan
Dalam penulisan skripsi ini penulis membuat sistematika sebagai berikut:
BAB 1 PENDAHULUAN membahas Latar Belakang, Perumusan Masalah, Batasan
Masalah, Tujuan penelitian, Manfaat Penelitian, Metode Penelitian yang
dilakukan serta Sistematika penulisan.
BAB 2 LANDASAN TEORI membahas tentang landasan teori kriptografi
menggunakan algoritma knapsack dan steganografi menggunakan algoritma
Least Significant Bit (LSB) terhadap modifikasi nilai brightness.
BAB 3 ANALISIS DAN PERANCANGAN membahas mengenai penyisipan pesan
teks ke dalam citra, flow chart sistem serta perancangan antar muka
pengguna.
BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM membahas tentang
implementasi dan pengujian sistem.
BAB 5 PENUTUP merupakan kesimpulan dari semua pembahasan yang ada dengan
BAB 2
LANDASAN TEORI
2.1 Kriptografi
Kriptografi merupakan metode untuk mengirimkan pesan rahasia sehingga hanya
penerima pesan yang dimaksud dapat menghapus, menyamarkan atau membaca
pesan tersebut. Kriptografi berasal dari bahasa Yunani yaitu kryptos yang berarti
tersembunyi dan grapein yang berarti menulis. Pesan asli disebut plaintext dan
pesan yang telah disandikan disebut ciphertext. Pesan yang telah dienkapsulasi
dan dikirim disebut kriptogram. Proses mengubah plaintext menjadi ciphertext
disebut enkripsi. Membalikkan proses ciphertext menjadi plaintext disebut
dekripsi. Siapapun yang terlibat dalam kriptografi disebut kriptografer. Pada sisi
lain, studi tentang teknik matematika karena berusaha untuk mengalahkan metode
kriptografi disebut pembacaan sandi. Cryptanalysts adalah orang-orang berlatih
pembacaan sandi [5]. Proses enkripsi dan dekripsi seperti pada gambar 2.1:
Gambar 2.1 Proses Enchiphering dan Deciphering [4]
Konsep kriptografi sendiri telah lama digunakan oleh manusia misalnya
pada peradaban Mesir dan Romawi walau masih sangat sederhana. Prinsip-prinsip
yang mendasari kriptografi yakni:
1. Confidentiality (kerahasiaan) merupakan usaha untuk menjaga kerahasiaan pesan agar tidak dapat di akses oleh orang-orang yang tidak berhak.
Enciphering Plaintext
Ciphertext
Key Key Deciphering
Umumnya hal ini dilakukan dengan cara membuat suatu algoritma
matematis yang mampu mengubah data hingga menjadi sulit untuk dibaca
dan dipahami.
2. Data integrity (keutuhan data) yaitu layanan untuk menjaga keutuhan
data, dalam artian data tersebut tidak mengalami perubahan selama proses
pengiriman atau tidak mengalami modifikasi oleh pihak-pihak yang tidak
berhak.
3. Authentication (keontetikan) yaitu layanan yang berhubungan dengan
identifikasi apakah pesan tersebut berasal dari sumber yang diharapkan.
Dengan kata lain informasi itu datang dari orang yang di hendaki.
4. Non-repudiation (anti-penyangkalan) yaitu layanan yang dapat mencegah suatu pihak untuk menyangkal aksi yang dilakukan sebelumnya
(menyangkal bahwa pesan tersebut berasal dirinya)
Kriptografi modern merupakan suatu perbaikan yang mengacu pada kriptografi klasik.
Pada kriptografi modern terdapat berbagai macam algoritma yang dimaksudkan untuk
mengamankan informasi yang dikirim melalui jaringan komputer. Algoritma
kriptografi modern terdiri dari dua bagian:
2.1.1 Algoritma Simetris
Algoritma simetri sering disebut dengan algoritma klasik, karena memakai kunci
yang sama untuk proses enkripsi dan dekripsi. Algoritma ini sudah ada sejak 4000
tahun yang lalu. Karena kunci yang digunakan untuk proses enkripsi dan dekripsi
sama, sehingga sering disebut juga one key/ private key/ single key, seperti
Twofish, One Time Pad [5]. Proses enkripsi dan dekripsi algoritma simetris dapat
dilihat pada gambar 2.2:
Plainteks Cipherteks Plainteks
dekripsi enkripsi
Gambar 2.2 Diagram proses enkripsi dan dekripsi algoritma simetris
2.1.2 algoritma Asimetris
Algoritma Asimetri sering juga disebut dengan kunci publik. Dimana kunci yang
digunakan untuk enkripsi berbeda dengan kunci yang digunakan untuk dekripsi,
seperti algoritma RSA, ElGamal, dll. Kunci-kunci tersebut berhubungan satu sama
lain. Proses enkripsi dan dekripsi algoritma asimetris dapat dilihat pada gambar
2.3:
Gambar 2.3 Diagram proses enkripsi dan dekripsi algoritma asimetris.
Salah satu contoh algoritma kriptografi simetris adalah algoritma
knapsack. Algoritma knapsack adalah algoritma kriptografi kunci-publik yang
keamanannya terletak pada sulitnya memecahkan persoalan knapsack (knapsack
problem). Knapsack artinya karung/kantung. Karung mempunyai kapasitas muat
terbatas. Barang-barang dimasukkan ke dalam karung hanya sampai batas
kapasitas maksimum karung saja.
2.2 Algoritma Knapsack
Permasalahan Knapsack adalah permasalahan optimisasi kombinatorial. Diberikan
kumpulan benda, masing-masing memiliki berat dan nilai, tentukan benda mana
saja yang akan diambil sehingga total beratnya sama dengan suatu batas nilai
(biasanya kapasitas tas) dan nilai yang sebesar-besarnya. Nama dari problem ini Cipherteks
enkripsi dekripsi
Plainteks Plainteks
diperoleh dari masalah yang dihadapi seseorang saat berhadapan dengan tas yang
ukurannya terbatas namun harus diisi dengan benda yang paling berharga atau
berguna. Algoritma knapsack diciptakan untuk menyelesaikan problem knapsack.
Dimana harus mencari solusi terbaik dari banyak kemungkinan yang dihasilkan.
2.2.1 Knapsack Problem
Diberikan bobot knapsack adalah M. Diketahui n buah objek yang masing-masing
bobotnya adalah w1, w2, … wn.Tentukan nilai bi sedemikian sehingga
M = b1w1 + b2w2 + … + bnwn …...………...(8.1)
yang dalam hal ini, bi bernilai 0 atau 1. Jika bi = 1, berarti objek i dimasukkan ke
dalam knapsack, sebaliknya jika bi = 0, objek i tidak dimasukkan.
Di dalam teori algoritma, persoalan knapsack termasuk ke dalam kelompok
NP-complete. Persoalan yang termasuk NP-complete tidak dapat dipecahkan dalam
orde waktu polynomial [6].
Ada dua macam bentuk atau tipe Knapsack yaitu:
1) Algoritma knapsack sederhana (General Knapsack)
2) Superincreasing knapsack
Algoritma superincreasing knapsack adalah algoritma yang lemah, karena cipherteks
dapat didekripsi menjadi plainteksnya secara mudah dalam waktu lanjar. Algoritma
non-superincreasing knapsack atau normal knapsack adalah kelompok algoritma
knapsack yang sulit (dari segi komputasi) karena membutuhkan waktu dalam orde
eksponensial untuk memecahkannya. Namun, superincreasing knapsack dapat
dimodifikasi menjadi non-superincreasing knapsack dengan menggunakan kunci
publik (untuk enkripsi) dan kunci rahasia (untuk dekripsi). Kunci publik merupakan
barisan non-superincreasing sedangkan kunci rahasia tetap merupakan barisan
superincreasing. Modifikasi ini ditemukan oleh Martin Hellman dan Ralph Merkle.
1. Tentukan barisan superincreasing.
2. Kalikan setiap elemen di dalam barisan tersebut dengan n modulo m. Modulus m seharusnya angka yang lebih besar daripada jumlah semua
elemen di dalam barisan, sedangkan pengali n seharusnya tidak
mempunyai faktor persekutuan dengan m.
3. Hasil perkalian akan menjadi kunci publik sedangkan barisan
superincreasing semula menjadi kunci rahasia.
Contoh 1:
Misalkan barisan superincreasing adalah {1,2,5,11,23,47,95), m = 230, dan n = 3.
Barisan non-superincreasing (atau normal) knapsack dihitung sbb:
1 . 3 mod 230 = 3
2 . 3 mod 230 = 6
5 . 3 mod 230 = 15
11 . 3 mod 230 = 33
23 . 3 mod 230 = 69
47 . 3 mod 230 = 141
95 . 3 mod 230 = 55
Jadi, kunci publik adalah {3,6,15,33,69,141,55}, sedangkan kunci rahasia
adalah {1,2,5,11,23,47,95}.
2.2.2 Enkripsi dan Dekripsi
Proses menyandikan plainteks menjadi chiperteks disebut enkripsi (encryption)
atau enciphering (standard nama menurut ISO 7498-2). Sedangkan proses
mengembalikan cipherteks menjadi plainteks semula dinamakan dekripsi
(decryption) atau deciphering (standard nama menurut ISO 7498-2). Enkripsi dan
dekripsi dapat diterapkan baik pada pesan yang dikirim maupun pada pesan
tersimpan. Istilah encryption of data in motion mengacu pada enkripsi pesan yang
at-rest mengacu pada enkripsi dokumen yang disimpan didalam storage. Contoh
encryption of data in motion adalah pengiriman nomor PIN dari mesin ATM ke
computer server dikantor bank pusat. Contoh encryption of data at-rest enkripsi
file basis data didalam hard disk.
a. Enkripsi
Enkripsi dilakukan dengan cara yang sama seperti algoritma knapsack sebelumnya.
Mula-mula plainteks dipecah menjadi blok bit yang panjangnya sama dengan
kardinalitas barisan kunci publik. Kalikan setiap bit di dalam blok dengan elemen
yang berkoresponden di dalam kunci publik.
Contoh 2:
Misalkan Plainteks: 1000010101010110010111010101
dan kunci publik yang digunakan seperti pada Contoh 1.
Plainteks dibagi menjadi blok yang panjangnya 7, kemudian setiap bit di dalam blok
dikalikan dengan elemenyang berkorepsonden di dalam kunci publik:
Blok plainteks ke-1 : 1000010
Kunci publik : 3,6,15,33,69,141,55
Kriptogram : (1 × 3) + (1 × 141) = 144
Blok plainteks ke-2 : 1010101
Kunci publik : 3,6,15,33,69,141,55
Kriptogram : (1 × 3) + (1 × 15) + (1 × 69) + (1 × 55) = 142
Blok plainteks ke-3 : 1001011
Kunci publik : 3,6,15,33,69,141,55
Kriptogram : (1 × 3) + (1 × 33) + (1 × 141) + (1 × 55) = 232
Kunci publik : 3,6,15,33,69,141,55
Kriptogram : (1 × 3) + (1 × 15) + (1 × 69) + (1 × 55) = 142
Jadi, cipherteks yang dihasilkan : 144,142,232,142
b. Dekripsi
Dekripsi dilakukan dengan menggunakan kunci rahasia. Mula-mula penerima pesan
menghitung n–1 , yaitu balikan n modulo m, sedemikian sehingga n ⋅n–1 ≡ 1 (mod m). Kekongruenan ini dapat dihitung dengan cara yang sederhana sebagai berikut
(disamping dengan cara yang sudah pernah diberikan pada Teori Bilangan Bulat):
n⋅n–1 ≡ 1 (mod m)
Kalikan setiap kriptogram dengan n–1 mod m, lalu nyatakan hasil kalinya sebagai penjumlahan elemen-elemen kunci rahasia untuk memperoleh plainteks dengan
menggunakan algoritma pencarian solusi superincreasing knapsack.
Contoh 3:
Kita akan mendekripsikan cipherteks dari Contoh 2. Dengan menggunakan kunci
rahasia {1,2,5,11,23,47,95}. Di sini, n = 3 dan m = 230. Nilai n–1 diperoleh sebagai berikut:
3 . n–1 = 1 (mod 230)
n–1 3 ⋅ n–1 mod 230
1 3
2 6
3 9
. .
. .
77 1
Dengan mencoba n–1= 0, 1, 2, …,77 hingga hasil dari 3⋅ n–1 mod 230 = 1, diperoleh
n–1 = 1 (mod 230)/3 77 = 1 (mod 230)/3
Cipherteks dari Contoh 2. Adalah 144 142 232 142. Plainteks yang berkoresponden
diperoleh kembali sebagai berikut:
144 . 77 mod 230 = 48 = 1 + 47 berkoresponden dengan 1000010
142 . 77 mod 230 = 124 = 1 + 5 + 23 + 95 berkoresponden dengan 1010101
232 . 77 mod 230 = 154 = 1 + 11 + 47 + 95 berkoresponden dengan 1001011
142 . 77 mod 230 = 124 = 1 + 5 + 23 + 95 berkoresponden dengan 1010101
Jadi, plainteks yang dihasilkan kembali adalah:
1000010 1010101 1001011 1010101
2.3 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 didalam pesan yang mereka baca [3].
Steganografi biasanya sering disamakan dengan kriptografi karena
keduanya sama-sama bertujuan untuk melindungi informasi yang berharga dan
rahasia. Perbedaan yang mendasar antara keduanya terletak pada proses
merahasiakan data dan hasil akhir dari proses tersebut. Kriptografi melakukan
proses pengacakan data asli sehingga dihasilkan data terenkripsi yang benar-benar
acak dan berbeda dengan aslinya. Sementara itu, steganografi menyembunyikan
data ke dalam data lain dengan cara menumpanginya tanpa mengubah data yang
ditumpanginya tersebut sehingga tampilan data tetap terlihat sama [1].
Steganografi menggunakan sebuah berkas yang disebut dengan cover atau
dirahasiakan. Banyak format carrier yang dapat dijadikan media untuk
menyembunyikan pesan, diantaranya:
1. Format image (Format gambar): Bitmap (.bmp), Graphics Interchange Format
(.gif), Paintbrush Bitmap Graphic (.pcx), Joint Photographic Expert Group
(.jpeg).
2. Format audio (Format suara): Wideband Angular Vibration Experiment (.wav),
Motion Picture Expert Group Audio Stream Layer III (.mp3), Musical
Instrument Digital Interface (.midi).
3. Format lain: teks file, Hyper Text Markup Language (.html), Portable
Document Format (.pdf), video.
Pada dasarnya setiap media digital dapat digunakan sebagai media pembawa pada
proses Steganografi. Penerapan Steganografi pada media digital menggunakan metode
tertentu dan tergantung dari media yang dipilih sebagai carriernya [11].
2.4 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 elements). Pixel adalah elemen citra yang memiliki nilai yang menunjukkan
intensitas warna.
Berdasarkan cara penyimpanan atau pembentukannya, citra digital dapat
dibagi menjadi dua jenis. Jenis pertama adalah citra digital yang dibentuk oleh
kumpulan pixel dalam array dua dimensi. Citra jenis ini disebut citra bitmap (bitmap
image)atau citra raster (raster image). Jenis citra yang kedua adalah citra yang
dibentuk oleh fungsi-fungsi geometri dan matematika. Jenis citra ini disebut grafik
vector (vector graphics). Dalam pembahasan skripsi ini, yang dimaksud citra digital
adalah citra bitmap.
Citra digital (diskrit) dihasilkan dari citra analog (kontinu) melalui digitalisasi.
Digitalisasi citra analog terdiri atas penerokan (sampling) dan kuantisasi
(quantization) Penerokan adalah pembagian citra ke dalam elemen-elemen diskrit
dengan nilai yang berupa bilangan bulat. Banyaknya nilai yang dapat digunakan
dalam kuantisasi citra bergantung kepada kedalaman pixel, yaitu banyaknya bit yang
digunakan untuk merepresentasikan intensitas warna pixel. Kedalaman pixel sering
disebut juga kedalaman warna. Citra digital yang memiliki kedalaman pixel n bit
disebut juga citra n-bit [3].
2.4.1 Format Citra Digital
Citra digital dapat disimpan dalam berbagai macam format. Beberapa format citra
digital dapat memanfaatkan metode kompresi dalam penyimpanan data citra.
Kompresi yang dilakukan dapat bersifat lossy maupun lossless, bergantung kepada
jenis format yang digunakan. Kompresi yang bersifat lossy menyebabkan penurunan
kualitas citra, meskipun dalam beberapa kasus penurunan kualitas tersebut tidak dapat
dikenali oleh mata manusia. Beberapa format citra digital yang banyak ditemui adalah
BMP, JPEG, GIF, PNG, dan lain-lain [3].
2.4.2 Format Citra Bitmap
File format BMP bisa disebut juga bitmap atau format file DIB (untuk perangkat
independen bitmap), adalah sebuah file gambar format yang digunakan untuk
menyimpan gambar digital bitmap, terutama pada sistem operasi Microsoft Windows
dan OS/2. Format ini mendukung mode warna dari Bitmap Mode hingga RGB Mode.
File citra bitmap terdiri atas bagian header, palet RGB, dan data bitmap. Pada citra
8-bit, setiap elemen data bitmap menyatakan indeks dari peta warnanya di palet RGB.
Header adalah merupakan informasi dari struktur dari pada sebuah file citra. Header
biasanya memberikan informasi tentang nama file, ukuran, dimensi, resolusi
(horizontal atau vertikal), format yang digunakan, teknik kompresi yang digunakan,
dan lain-lain [2]. Format citra 8-bit (256 warna) dapat dilihat pada gambar 2.4.
<header>
R G B
1 20 45 24
2 14 13 16
3 12 17 15
…
256 46 78 25
<data bitmap>
2 2 1 1 1 3 5 …
Gambar 2.4 Format citra 8-bit (256 warna) [2]
Pada citra 24-bit, tidak terdapat palet RGB, karena nilai RGB langsung
diuraikan dalam data bitmap. Setiap elemen data bitmap panjangnya 3 byte,
masing-masing byte menyatakan komponen R, G, dan B. format citra 24-bit (16 juta warna)
dapat dilihat pada gambar 2.5.
<header>
<data bitmap>
[image:32.595.219.374.82.246.2]2 2 1 1 1 3 5 …
Gambar 2.5. Format citra 24-bit (16 juta warna) [2]
Pada contoh format citra 24-bit di atas, pixel pertama mempunyai R = 2, G = 2, B = 1.
BMP mudah dibuka dan disimpan, tetapi ada beberapa aturan khusus yang
harus dicermati, diantaranya:
1. Format file ini menyimpan datanya secara terbalik, yaitu dari bawah ke atas
2. Citra dengan resolusi warna 8-bit, lebar citra harus merupakan kelipatan dari 4,
bila tidak maka pada saat penyimpanan akan ditambahkan beberapa byte pada data
hingga merupakan kelipatan dari 4.
3. Citra dengan resolusi warna 24-bit, urutan penyimpanan tiga warna dasar adalah
blue, green, red (B, G, R). Lebar citra dikalikan dengan 3 harus merupakan
kelipatan dari 4, bila tidak maka pada saat penyimpanan akan ditambahkan
Struktur file .BMP seperti pada tabel 2.1:
Tabel 2.1 BMP File Header
Offset Size Name Description
0 2 bfType ASCII"BM"
2 4 bfSize Size of file(in Byte)
6 2 bfReserved I Zero
8 2 bfReserved I Zero
10 4 bgOffBits
Byte offset in file where image
begins
14 4 biSize Size of this header (40 Bytes)
18 4 biWidth Image width in pixels
22 4 biHeight Image height in pixels
26 2 Biplanes Number of image planes, must be I
28 2 biBitCount Bits per pixel : 1,4,8 or 24
30 4 biCompression Compression type
Keterangan:
1. Offset : byte ke (yang dimulai dari angka 0).
2. Size : ukuran dari panjang byte.
a. byte ke-0 ukuran panjang 2 byte dispesifikasikan dengan nama tipe file yang
diindikasikan berupa kode ASCII “BM”.
b. byte ke-2 dengan ukuran panjang 4 byte, nama spesifikasinya bitmap file size
yang berupa ukuran dari file dalam bentuk bytes.
c. byte ke – 6 dan 8 yang ukurannya 2 byte berupa field cadangan di set 0.
d. byte ke – 10 ukurannya 4 byte yang merupakan spesifikasi dari struktur bitmap
file header ke bit bitmap, dimana file gambar dimulai pada tahap ini.
e. byte ke – 14, panjangnya 4 byte dengan spesifikasi nama bitmap size yang
f. byte ke – 18 dengan panjang 4 bytes merupakan lebar gambar dalam satuan
pixel.
g. byte ke 22 dengan panjang 4 bytes merupakan tinggi gambar dalam satuan
pixel.
h. byte ke-26 dengan panjang 2 bytes merupakan bitmap planes dengan sejumlah
planes (umumnya 1).
i. byte ke-28 dengan panjang 2 byte merupakan jumlah bit per pixel : 1, 4, 8, atau
24.
j. byte ke-30 dengan panjang 4 byte yang merupakan tipe kompresi.
2.5 Algoritma LSB
Penyembunyian data dilakukan dengan mengganti bit-bit data yang tidak terlalu
berpengaruh di dalam segmen citra dengan bit-bit data rahasia. Pada susunan
bit di dalam sebuah byte (1 byte = 8 bit), ada bit yang paling berarti (most
significant bit atau MSB) dan bit yang paling kurang berarti (least significant bit
atau LSB). Berikut contoh sebuah susunan bit pada sebuah byte:
11010010
MSB = Most Siginificant Bit LSB = Least Significant Bit
Bit yang cocok untuk diganti adalah bit LSB, sebab perubahan tersebut hanya
mengubah nilai byte satu lebih tinggi atau satu lebih rendah dari nilai
sebelumnya. Misalkan byte tersebut menyatakan warna merah, maka perubahan
satu bit LSB tidak mengubah warna merah tersebut secara berarti. Lagi pula, mata
manusia tidak dapat membedakan perubahan yang kecil [3].
Misalkan segmen data citra sebelum perubahan:
10010110 11001001 11111001 10001000 10100011
Segmen data citra setelah pesan ‘1110010111‘ disembunyikan:
00110011 10100011 11100011 10101010 00100110
10010111 11001000 11111001 10001001 10100011
2.5.1 Algoritma LSB terhadap modifikasi nilai Brightness
Di dalam ruangan, seringkali kita perlu mengatur intensitas lampu agar ruangan
menjadi lebih terang atau lebih gelap. Dalam dunia pengolahan citra, hal itu
disebut pengaturan brightness, dimana dapat dilakukan dengan cara
meningkatkan atau menurunkan nilai piksel dari seluruh bagian dalam citra
tersebut.
Pengaturan kontras dengan menambahkan konstanta C ke masing-masing
lokasi piksel untuk meningkatkan nilainya, yang artinya meningkatkan tingkat
kecerahan. Mencampurkan gambar yang telah ditambahkan menghasilkan paduan
gambar dari kedua gambar masukan. Teknik tersebut dapat digunakan untuk
menghasilkan blending effect [10].
Untuk melakukan hal ini digunakan formula seperti terdapat di bawah ini.
Ko= Ki+ C ……….………..……….……….….(1)
Dimana:
Ko = nilai piksel output
Ki = nilai piksel input
C = konstanta yang bernilai positif
Pada penelitian ini, LSB yang akan digunakan tertuju pada nilai brightness
citra yang menjadi objek tersebut. Untuk citra berwarna yang mempunyai format
warna RGB (red, green, blue), modifikasi brightness dilakukan terhadap setiap
BAB 3
ANALISIS DAN PERANCANGAN SISTEM
3.1 Analisis Sistem
Sebelum dilakukan tahap perancangan sebuah sistem, analisis sistem yang akan
dibangun perlu dilakukan. Fase-fase awal pengembangan system dijabarkan
secara kolektif melalui analisis sitem. Analisis sistem pada dasarnya merupakan
tahapan yang ditujukan untuk menciptakan pemahaman yang menyeluruh
terhadap sistem sehingga diperoleh gambaran tentang kebutuhan, cara kerja, dan
alur data yang akan dikerjakan sistem. Hal ini akan membantu mempermudah
dalam proses implementasi sistem.
3.1.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
file teks akan dienkripsi menggunakan algoritma Knapsack. Selanjutnya teks yang
sudah terenkripsi disisipkan kedalam citra Bitmap menggunakan algoritma LSB dan
meningkatkan nilai brightness. Sehingga diharapkan file teks ini terjaga kemanannya.
Setelah dipilah dan dibagi dalam beberapa kategori, dapat diuraikan sebagai berikut:
1. User adalah seorang yang melakukan proses bangkit kunci, enkripsi, penyisipan,
dan ekstraksi.
2. Proses : Sistem ini akan berjalan mengkombinasikan kedua algoritma Knapsack
dan LSB terhadap modifikasi nilai brightness yaitu proses Enkripsi pada file teks
kemudian penyisipan cipherteks kedalam citra .BMP.
3. Sistem : Sistem menunjukkan pengamanan data yang baik menggunakan dua
Selanjutnya masalah diuraikan kedalam bentuk diagram tulang ikan (ishikawa
Diagram) dapat dilihat pada gambar 3.1
IMPLEMENTASI KEAMANAN TEKS PADA CITRA BITMAP
DENGAN KOMBINASI ALGORITMA KNAPSACK DAN ALGORITMA LEAST SIGNIFICANT BIT (LSB) TERHADAP MODIFIKASI
NILAI BRIGHTNESS
Data Kebijakan
User Proses
Mendapati
manipulasi data Tidak Efisien melakukan proses secara terpisah Pencurian data tidak terlalu mendapat prioritas Data tidak aman
Citra yang digunakan tidak sesuai
Gambar 3.1 Diagram Ishikawa untuk Analisis Permasalan Sistem
3.2 Analisis Persyaratan
Analisis ini ditujukan untuk menganalisis persyaratan yang akan dibutuhkan oleh
sistem ini agar dapat berjalan sesuai dengan apa yang rencanakan. Analisis
persyaratan terbagi menjadi dua yaitu persyaratan fungsional (functional
requirement) dan persyaratan nonfungsional (nonfunctional requirement). Dimana
persyaratan fungsional adalah aktifitas dan layanan yang harus diberikan atau
disediakan oleh sebuah sistem, dan persyaratan nonfungsional berkaitan denga fitur,
karakterisitik, dan batasan lainnya yang menetukan apakah sistem memuaskan atau
tidak.
3.2.1 Persyaratan Fungsional
1. File teks sebagai pesan rahasia yang akan dienkripsi memiliki format *.txt dan
yang menjadi citra cover berformat *.BMP.
2. Modifikasi nilai brightness dilakukan setelah pesan teks yang terenkripsi
disisipkan kedalam citra cover.
3. Hasil enkripsi dan dekripsi disimpan dalam format *.txt.
4. Hasil penyisipan dan ekstraksi disimpan dalam format *.BMP.
3.2.2 Persyaratan Non-Fungsional
Persyaratan non-fungsional terhadap sistem ini adalah:
1. Performa:
Sistem harus dapat melakukan proses kriptografi menggunakan algoritma
knapsack dan steganografi menggunakan algoritma LSB serta modifikasi nilai
brightness.
2. Mudah Digunakan:
Sistem harus dibuat sesederhana mungkin agar tidak menyulitkan
penggunanya.
3. Hemat Biaya:
Sistem tidak membutuhkan perangkat keras lainnya sebagai bantuan
4. Dokumentasi:
Sistem dapat menyimpan file teks yang terenkripsi, terdekripsi dan stego
image.
5. Manajemen Kualitas:
Sistem dapat menghasilkan tampilan yang baik dan proses yang relative cepat.
3.3 Pemodelan Sistem
Pemodelan sistem yang dibuat pada dasarnya mengikuti metode algoritma knapsack
dan LSB terhadap modifikasi nilai brightness yang disajikan oleh penulis. Program
yang dibuat berdasarkan langkah demi langkah untuk menyelesaikan teknik
3.3.1 Use case Diagram
Use case diagram menggambarkan semua kegiatan di dalam sebuah sistem yang
berjalan, selain itu Use case diagram dibuat berdasarkan keperluan aktor dan juga
aktor yang melakukan aktifitas di dalam sistem. Berikut adalah gambar dari rancangan
Use case diagram seperti pada gambar 3.2
Enkripsi Plainteks (Knapsack)
Penyisipan (LSB)
Ekstraksi (LSB)
Dekripsi (Knapsack)
Sender Receiver
Sistem
[image:39.595.120.470.249.488.2]Bangkit Kunci
Gambar 3.2 Use case diagram
Use case diagram yang ditunjukkan pada Gambar 3.1 tedapat dua aktor yaitu sender
dan receiver. User1 sebagai Sender dan User2 sebagai receiver. Sender sebagai
pengirim pesan yang telah disisipkan pada gambar dan Receiver sebagai orang yang
menerima pesan dan mengekstraksinya. User1 memiliki peranan dalam melakukan
membangkitkan kunci, penyembunyian, penyisipan, dan penguraian pesan (stego
image). User2 hanya memiliki dua peranan yaitu melakukan penguraian untuk
mendapatkan pesan rahasia yang ada sudah disisipkan dan kemudian
mendekripsikannya. Untuk lebih jelas kegiatan sistem dapat dilihat pada keterangan
3.3.1.1 Activity Diagram untuk Use case Bangkit kunci
Activity diagram untuk Use case Bangkit kunci dapat dilihat seperti pada Gambar 3.3
User memilih menu Enkripsi
User mengeksekusi tombol bangkit.
User menginput nilai n dan mengeksekusi tombol Kunci Publik
User menginputparameter kunci dan mengeksekusi tombol kunci rahasia.
Sistem menampilkan form Enkripsi.
Sistem melakukan proses kunci rahasia dan menampilkan kunci rahasia.
Sistem menampilkan nilai m secara acak dan nilai n.
System menampilkan kunci publik.
[image:40.595.104.528.534.767.2]User Sistem
Gambar 3.3 activity diagram Bangkit kunci
Berikut spesifikasi Use case bangkit kunci seperti pada tabel 3.1
Tabel 3.1 Spesifikasi Use case bangkit kunci
Name Bangkit kunci
Actors User1
Description Use case ini mendeksripsikan proses Bangkit kunci
Preconditions User menggunakan aplikasi kriptografi
Post Conditions User dapat melihat hasil kunci rahasia dan kunci publik
Kegiatan User Respon sistem
Success Scenario
1. User memilih menu Enkripsi.
2. User menginputparameter
kunci dan mengeksekusi tombol
kunci rahasia.
3. User mengeksekusi tombol
bangkit.
1. Sistem menampilkan form
Enkripsi.
2. Sistem melakukan proses kunci
rahasia dan menapilkan kunci
rahasia.
3.3.1.2 Activity Diagram untuk Use case Enkripsi
Activity diagram untuk Use case Enkripsi dapat dilihat seperti pada Gambar 3.4
User memilih menu Enkripsi
User mengeksekusi tombol Enkripsi.
User dapat melihat cipherteks
User memilih plainteks dengan mengeksekusi tombol Pilih Teks
Sistem menampilkan form Enkripsi.
Sistem menampilkan plainteks pada box teks.
Sistem melakukan proses Enkripsi dan menampilkan cipherteks
User Sistem
Gambar 3.4 activity diagram Enkripsi
Berikut spesifikasi Use case Enkripsi seperti pada tabel 3.2
Tabel 3.2 Spesifikasi Use case Enkripsi 4. User menginput nilai n dan
mengeksekusi tombol Kunci
publik.
secara acak dan nilai n.
4. System menampilkan kunci
publik.
Name Enkripsi
Actors User1
3.3.1.3 Activity Diagram untuk Use case Penyisipan
Activity diagram untuk Use case Penyisipan dapat dilihat seperti pada Gambar 3.5
User memilih menu Penyisipan.
User dapat melihat Citra stego
User memodifikasi nilai brightness User memilih Citra cover, memilih fileembed dan
mengeksekusi tombol Sisip
Sistem menampilkan form Penyisipan.
Sistem melakukan proses penyisipan dan menampilkan hasil Penyisipan (Citra stego).
Sistem menampilkan hasil citra stego yang termodifikasi
User Sistem
Gambar 3.5 activity diagram Penyisipan
Preconditions User menggunakan aplikasi Kriptografi
Post Conditions User dapat melihat hasil Enkripsi
Kegiatan User Respon sistem
Success Scenario
1. User memilih menu Enkripsi.
2. User memilih plainteks dengan
mengeksekusi tombol Pilih
Teks
3. User mengeksekusi tombol
Enkripsi
4. User mengeksekusi tombol
Enkripsi.
5. User dapat melihat cipherteks.
1. Sistem menampilkan form
Enkripsi
2. Sistem menampilkan plainteks
pada box teks.
3. Menampilkan Kunci Publik
4. Sistem melakukan proses
Enkripsi dan menampilkan
Berikut spesifikasi Use case penyisipan seperti pada tabel 3.3
Tabel 3.3 Spesifikasi Use case Penyisipan
3.3.1.4 Activity Diagram untuk Use case Ekstraksi
Activity diagram untuk Use case Ekstraksi dapat dilihat seperti pada Gambar 3.6
Name Penyisipan
Actors User1
Description Use case ini mendeksripsikan proses Penyisipan
Preconditions User menggunakan aplikasi steganografi
Post Conditions User dapat melihat hasil Penyisipan
Kegiatan User Respon sistem
Success Scenario
1. User memilih menu Penyisipan.
2. User memilih Citra cover,
memilih fileembed dan
mengeksekusi tombol sisip.
3. User dapat melihat Citra stego.
4. User memodifikasi nilai
brightness.
1. Sistem menampilkan form
Penyisipan.
2. Sistem melakukan proses
penyisipan dan menampilkan
hasil penyisipan (Citra Stego).
3. Sistem menampilkan hasil citra
User memilih menu Ekstraksi
User dapat melihat citra embed dan cipherteks
User memilih citra stego, memasukkan nilai brightness, dan mengeksekusi tombol Ekstraksi.
Sistem menampilkan form Ekstraksi.
Sistem melakukan proses pengembalian nilai brightness, proses ekstraksi dan menampilkan
hasil ekstraksi (Citra embed ) dan cipherteks
User Sistem
Gambar 3.6 activity diagram Ekstraksi
Berikut spesifikasi Use case Ekstraksi dapat dilihat pada tabel 3.4
Tabel 3.4 Spesifikasi Use case Ekstraksi
Name Ekstraksi
Actors User2
Description Use case ini mendeksripsikan proses mendeteksi file embed dari dalam
citra stego
Preconditions User menggunakan aplikasi steganografi
Post Conditions User dapat melihat hasil Ekstraksi
Kegiatan User Respon sistem
Success Scenario
1. User memilih menu Ekstraksi.
2. User memilih citra stego,
memasukkan nilai brightness,
dan mengeksekusi tombol
Ekstraksi.
3. User dapat melihat citra embed
dan cipherteks .
1. Sistem menampilkan form
Ekstraksi.
2. Sistem melakukan proses
pengembalian nilai brightness,
proses ekstraksi dan
menampilkan hasil ekstraksi
3.3.1.5 Activity Diagram untuk Use case Dekripsi
Activity diagram untuk Use case Dekripsi dapat dilihat seperti pada Gambar 3.7
User memilih menu Ekstraksi
User dapat melihat hasil dekripsi (plainteks).
User mengeksekusi tombol Dekripsi.
Sistem menampilkan form Ekstraksi.
Sistem melakukan proses dekripsi dan menampilkan hasil dekripsi.
User Sistem
Gambar 3.7 activity diagram dekripsi
Berikut spesifikasi Use case dekripsi dapat dilihat pada Tabel 3.5
Tabel 3.5 Spesifikasi Use case Dekripsi
Name Dekripsi
Actors User2
Description Use case ini melakukan proses dekripsi
Preconditions User menggunakan aplikasi kriptografi
Post Conditions User dapat melihat hasil dekripsi
Kegiatan User Respon sistem
Success Scenario
1. User memilih menu Ekstraksi
2. User mengeksekusi tombol
Dekripsi.
3. User dapat melihat hasil
dekripsi (plainteks).
1. Sistem menampilkan form
Ekstraksi.
2. Sistem melakukan proses
dekripsi dan menampilkan
3.3.2 Sequence Diagram
Proses enkripsi plainteks menggunakan algoritma Knapsack yang dilakukan oleh
sistem membangkitkan kunci terlebih dahulu kemudian dapat mengenkripsi plainteks.
Kemudian sistem akan mengecek kebutuhan data dan proses yang akan dilakukan
selanjutnya. Sequence Diagram untuk proses Enkripsi dapat dilihat pada gambar 3.8
User Sistem
Input / Browse Plainteks
Hitung panjang karakter
Input & bangkitkan kunci
tampilkan kunci
enkripsi
[image:46.595.200.439.229.510.2]Cipherteks
Gambar 3.8 Sequence Diagram Enkripsi
Setelah proses enkripsi menghasilkan cipherteks maka langkash selanjutnya adalah penyisipan cipherteks kedalam citra bmp. Sequence diagram untuk proses
User Sistem
Sisip
Modifikasi nilai Brightness Input Citra dan Cipherteks
Citra Stego hasil Penyisipan
Gambar 3.9 Sequence Diagram Penyisipan
Untuk mengembalikan plainteks yang telah menjadi cipherteks dan yang telah
disisipkan maka perlu dilakukan proses ektraksi dan dekripsi.
Untuk membangkitkan kunci yang digunakan pada algoritma Knapsack
diperlukan parameter yang dimasukkan oleh user. Kemudian sistem akan melakukan
pembangkitan kunci berdasarkan parameter tersebut. Sequence diagram untuk proses
User Sistem Masukkan parameter kunci
Bangkitkan kunci
Kunci
Gambar 3.10 Sequence Diagram Bangkit Kunci
3.3.3 Flowchart sistem
Flowchart proses Bangkit kunci dengan metode Algoritma Knapsack dapat dilihat
start
Memasukkan parameter
Kunci rahasia
Barisan kunci rahasia
Bangkit kunci
Tampil nilai m dan n
Masukkan nilai n
Proses kunci publik
Barisan kunci publik
end
Gambar 3.11 flowchart bangkit kunci
Flowchart proses sistem Enkripsi dengan metode Algoritma Knapsack dapat dilihat
start
Masukkan Plainteks
Load Kunci Publik
Enkripsi
Ciperteks
end
Gambar 3.12 Flowchart sistem Enkripsi
Flowchart proses Enkripsi dengan metode Algoritma Knapsack dapat dilihat seperti
pada Gambar 3.13
Start
Masukkan Plainteks
Plainteks dirubah bentuk biner
Plainteks dipecah menjadi blok bit yang panjangnya sama dengan kunci
publik
Setiap bit dikalikan dengan elemen didalam kunci publik
Mendapat hasil perkalian menjadi
cipherteks
End
Flowchart proses penyisipan embed dengan metode LSB terhadap memodifikasi nilai
brightness seperti pada Gambar 3.14
start
Input pesan terenkripsi
Input citra cover
Penyisipan
Citra stego
Modifikasi nilai brightness
Citra stego termodifikasi
end
Gambar 3.14 Flowchart Penyisipan
Flowchart proses ekstraksi embed dengan metode LSB terhadap modifikasi nilai
start
Input citra stego termodifikasi
Mengembalikan nilai brightness
Proses ekstraksi
Menampilkan embed (cipherteks)
end
Gambar 3.15 Flowchart Ekstraksi
Flowchart proses sistem dekripsi dengan metode Algoritma Knapsack dapat dilihat
seperti pada Gambar 3.16
start
Masukkan cipherteks
Dekripsi
Plainteks
end
Flowchart proses dekripsi dengan metode Algoritma Knapsack dapat dilihat seperti
pada Gambar 3.17
Start
Masukkan Cipherteks
Setiap karakter dari cipherteks
dikalikan dengan n–1 dan mod m
End
Hasil perkalian harus berkoresponden dengan kunci rahasia
Mendapat hasil plaintes
Gambar 3.17 Flowchart Dekripsi
3.4 Perancangan antar muka
Rancangan antar muka adalah rancangan tampilan sistem yang akan dibentuk oleh
penulis pada penelitian ini, berikut adalah rancangan sistem:
3.4.1 Rancangan Menu Utama
IMPLEMENTASI KEAMANAN TEKS PADA CITRA BITMAP DENGAN KOMBINASI ALGORITMA
KNAPSACK DAN ALGORITMA LEAST SIGNIFICANT BIT (LSB) TERHADAP MODIFIKASI
NILAI BRIGHTNESS
Logo universitas sumatera utara
Dira Fahrendy sembiring lanjutkan
Gambar 3.18 Rancangan Menu Utama
Rancangan Menu Utama merupakan tampilan yang pertama kali muncul saat program
dijalankan. Pada rancangan ini terdapat tombol lanjutkan yang berfungsi untuk
melanjutkan ke form berikutnya. Adapun rancangan antar muka selanjutnya untuk
membangkitkan kunci publik dan mengenkripsikan pesan txt dengan algoritma
knapsack adalah sebagai berikut.
3.4.2 Rancangan Pembangkit kunci dan Enkripsi
Adapun Form Menu berfungsi untuk menampilkan beberapa form lainnya seperti
form Enkripsi, form Penyisipan, dan form Ekstraksi. Berikut rancangan bangkit
Enkripsi
Beranda Menu Bantuan Tentang
Input parameter W0 = W1 = Jarak = Kunci Rahasia Kunci Rahasia Bangkit m = n = n = Kunci Publik Kunci Publik Enkripsi Hapus Buka File Lanjut Simpan Plainteks Cipherteks
Enkripsi = detik
Plainteks =
Cipherteks = Waktu
[image:55.595.114.522.84.423.2]Panjang
Gambar 3.19 Rancangan Bangkit kunci dan Enkripsi
Keterangan:
1. Button Kunci Rahasia, berfungsi menampilkan barisan Kunci rahasia pada kotak
disebelahnya setelah memasukkan parameter yang diminta
2. Button Bangkit, berfungsi menampilkan nilai m secara acak dan nilai n secara list
3. Button Kunci Publik, berfungsi menampilkan barisan kunci public pada kotak
sebelahnya.
4. Button Buka File, berfungsi untuk mengunjungi directory penyimpanan file teks
(browse files) yang diperlukan user dan sistem
5. Button Enkripsi, berfungsi untuk mengeksekusi plainteks menjadi pesan rahasia
yang sudah terenkripsi (Cipherteks).
6. Button Simpan, berfungsi menyimpan hasil enkripsi yaitu cipherteks, kunci
Rahasia dan Kunci Publik
3.4.3 Rancangan Penyisipan
Berikut rancangan penyisipan dapat dilihat pada Gambar 3.20
Penyisipan
Beranda Menu Bantuan Tentang
Citra Cover Citra stego
Pilih Teks
Lanjut Pilih Gambar
Sisip
Simpan
Cipherteks
Brightness
Waktu
[image:56.595.106.517.210.523.2]Penyisipan = detik Hapus
Gambar 3.20 Rancangan Penyisipan
Keterangan:
1. Button Pilih Gambar, berfungsi untuk mengunjungi directory penyimpanan file
gambar (browse files) yang diperlukan user dan sistem
2. Button Pilih Teks, berfungsi untuk mengunjungi directory penyimpanan file teks
(browse files) yang diperlukan user dan sistem
3. Button Sisip, berfungsi menampilkan citra stego
4. Button Simpan,berfungsi menyimpan citra stego
3.4.4 Rancangan Ekstraksi
Berikut rancangan Ekstraksi dapat dilihat pada Gambar 3.21
Ekstraksi dan Dekripsi
Beranda Menu Bantuan Tentang
Citra Stego m = n = Ekstraksi Hapus Buka File Simpan Ekstraksi Plainteks Load Kunci Dekripsi
Kunci Publik
Ok Input Nilai Brightness
Waktu
Ekstraksi = detik
[image:57.595.110.519.186.506.2]Dekripsi = detik
Gambar 3.21 Rancangan Ekstraksi
Keterangan:
1. Button Buka file, berfungsi untuk mengunjungi directory penyimpanan file citra
stego (browse files) yang diperlukan user dan sistem
2. Button Ekstraksi, berfungsi menampilkan dan melakukan pengeluaran Penyisipan
pesan txt yang terenkripsi dari dalam citra stego.
3. Button Ok, berfungsi menginputkan nilai brightness
4. Button Load Kunci, berfungsi menampilkan kuci publik, nilai m dan nilai n
5. Button Dekripsi, berfungsi menampilkan dan mendekripsikan chiperteks(file
embed)
7. Button Hapus, berfungsi menghapus semua data pada halaman Ekstraksi dan
Dekripsi.
3.4.5 Rancangan Bantuan
Berikut rancangan bantuan dapat dilihat pada Gambar 3.22
Bantuan
[image:58.595.107.519.247.568.2]Beranda Menu Bantaun Tentang
Gambar 3.22 Rancangan Bantuan
Rancangan Bantuan adalah tampilan sederhana yang berguna untuk menampilkan
informasi tentang cara penggunaan aplikasi tahap demi tahap.