Implementasi Sistem Keamanan Data Menggunakan Algoritma RSA Dan Modified LSB
FAKULT
IMPLEM
ME
PROG
DE
TAS MAT
UN
MENTAS
ENGGUN
DAN
D
SIS
GRAM S
EPARTE
TEMATI
NIVERSI
SI SISTEM
NAKAN A
N MODIF
DRAFT S
SKA ANG
081401
TUDI S1
EMEN ILM
KA DAN
TAS SUM
MED
201
M KEAM
ALGORIT
FIED LSB
KRIPSI
GGRAINI
1040
ILMU K
MU KOM
N ILMU P
MATERA
AN
2
MANAN D
TMA RSA
B
I
KOMPUTE
MPUTER
PENGETA
A UTARA
DATA
A
ER
R
AHUAN A
A
ALAM
(2)
Diaj FA IMP ajukan untuk P KULTAS M LEMENTA MENGGU DA k melengkap S ROGRAM DEPART MATEMAT UNIVERS ASI SISTEM UNAKAN A AN MODIF DRAFT SK
api tugas dan Sarjana Ko SISKA ANG 081401 STUDI S1 TEMEN ILM TIKA DAN SITAS SUM MEDA 201 M KEAMAN ALGORITM FIED LSB KRIPSI n memenuh omputer GGRAINI 1040 ILMU KOM MU KOMP ILMU PEN MATERA U AN 2 NAN DATA MA RSA
hi syarat men
MPUTER UTER NGETAHU UTARA A ncapai gela UAN ALAM ar M
(3)
PERSETUJUAN
Judul : IMPLEMENTASI SISTEM KEAMANAN DATA
MENGGUNAKAN ALGORITMA RSA DAN MODIFIED LSB
Kategori : SKRIPSI
Nama : SISKA ANGGRAINI
Nomor Induk Mahasiswa : 081401040
Program Studi : SARJANA (S1) ILMU KOMPUTER
Departemen : ILMU KOMPUTER
Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN
ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA
Diluluskan di
Medan, 22 Mei 2012 Komisi Pembimbing :
Pembimbing 2 Pembimbing 1
Maya Silvi Lydia, B.Sc., M.Sc. M. Andri Budiman, ST, M.CompSc, MEM NIP 197401272002122001 NIP 197510082008011001
Diketahui/Disetujui oleh
Departemen Ilmu Komputer FMIPA USU Ketua,
Dr. Poltak Sihombing, M.Kom NIP 196203171991031001
(4)
PERNYATAAN
IMPLEMENTASI SISTEM KEAMANAN DATA MENGGUNAKAN ALGORITMA RSA DAN MODIFIED LSB
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, 22 Mei 2012
SISKA ANGGRAINI 081401040
(5)
PENGHARGAAN
Puji dan syukur penulis panjatkan kehadirat Allah SWT, yang telah melimpahkan rahmat dan karunia-Nya, sehingga skripsi ini berhasil diselesaikan dalam waktu yang telah ditetapkan sebagai syarat untuk mencapai gelar Sarjana Komputer, serta shalawat beriring salam penulis persembahkan kepada Nabi Besar Muhammad SAW.
Pada kesempatan ini penulis juga ingin memberikan ucapan terima kasih kepada semua pihak yang telah membantu penulis selama pengerjaan skripsi ini, antara lain kepada:
1. Bapak M. Andri Budiman, S.T., M.comp.Sc., MEM selaku dosen pembimbing I dan Ibu Maya Silvi Lydia B.Sc., M.Sc. selaku Sekretaris Departemen dan dosen pembimbing II yang telah memberikan bimbingan, saran, dan masukan kepada penulis dalam menyempurnakan skripsi ini.
2. Ibu Dian Rachmawati, S.Si., M.Kom dan Bapak Amer Sharif, S.Si., M.Kom selaku dosen penguji yang telah memberikan saran dan kritik yang membangun kepada penulis.
3. Ketua Departemen Ilmu Komputer, Bapak Dr. Poltak Sihombing, M.Kom.
4. Dekan dan Pembantu Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara.
5. Seluruh dosen dan pegawai di Program Studi S1 Ilmu Komputer Departemen Ilmu Komputer FMIPA USU.
6. Kedua orang tua tercinta, Ayahanda Junaedi S.T. dan Ibunda Heru Sunarni, atas semua doa, dukungan, dan motivasi yang tak ternilai harganya.
7. Adik-adik tersayang, Aditya Anggara Putra dan M.Rafif Akhmal, serta spesial untuk Chairil Affandi Nst yang tak henti-hentinya memberikan semangat dan motivasi selama pengerjaan skripsi ini.
8. Keluarga besar S1 Ilmu Komputer, khususnya angkatan 2008 yang telah banyak memberikan dukungan, masukan, dan kerja sama yang baik selama ini.
9. Sahabat-sahabat terbaik saya, Nuzul Sakinah, Bilqis, Yeni Susanti, dan Santri Wandana yang banyak memberikan dukungan, motivasi, dan masukan,
10.Teman, kerabat, dan sahabat yang tidak dapat disebutkan satu persatu, terima kasih atas ide, saran, dan kerja samanya selama ini.
(6)
11.Semua pihak yang terlibat langsung ataupun tidak langsung dalam membantu penyelesaian skripsi ini dan tidak dapat penulis ucapkan satu persatu
Penulis menyadari bahwa skripsi ini jauh dari kesempurnaan, untuk itu, penulis sangat mengharapkan kritik dan saran yang bersifat membangun demi penyempurnaan di masa mendatang. Penulis berharap semoga skripsi ini dapat bermanfaat dan menjadi berkah bagi penulis dan pembaca.
Medan, 22 Mei 2012
Penulis
(7)
ABSTRAK
Keamanan dan kerahasiaan merupakan dua aspek penting dalam komunikasi data. Dalam menjaga keamanan dan kerahasiaan suatu pesan penting yang akan dikirimkan, pesan terlebih dahulu dienkripsi dan disembunyikan ke dalam suatu media. Media yang digunakan dalam penelitian ini adalah citra digital berformat bitmap (.bmp) dengan kedalaman warna 24 bit. Penelitian ini bertujuan untuk membangun suatu sistem yang dapat digunakan dalam meningkatkan keamanan data yang berupa pesan-pesan penting dan rahasia. Algoritma kriptografi yang digunakan untuk melakukan enkripsi adalah algoritma RSA dan steganografi dengan memodifikasi metode Least Significant Bit (LSB) digunakan untuk menyimpan pesan ke dalam citra. Modified LSB yang digunakan dalam penelitian ini menyisipkan bit-bit cipherteks ke dalam diagonal matriks pixel komponen warna merah pada citra. Sistem ini dikembangkan dengan menggunakan bahasa pemrograman Matlab R2007b. Pengujian yang dilakukan pada penelitian ini melihat aspek imperceptibility dan aspek recovery pada metode Modified LSB dan melihat kesesuaian algoritma RSA yang digunakan dalam proses enkripsi dan dekripsi. Penelitian ini menegaskan bahwa kombinasi dari algoritma RSA dan Modified LSB dapat digunakan dalam meningkatkan keamanan data.
Kata Kunci : Keamanan Data, Kriptografi, Steganografi, RSA, Modified LSB, a Imperceptibility, Recovery, Enkripsi, Dekripsi
(8)
IMPLEMENTATION OF DATA SECURITY SYSTEM USING RSA ALGORITHM AND MODIFIED LSB
ABSTRACT
Security and confidentiality are two important aspect of data communication. In maintaining security and confidentiality of important messages to be sent, previously message is firstly encrypted and hidden into the media. Media that is used in this study is a digital image format bitmap (.bmp) with 24 bit color depth. This study aims to build a system that can be used to improve data security that is important confidential messages. Cryptography algorithms used to encrypt is the RSA algorithm and steganography by modifying Least Significant Bit (LSB) method is used to hide a message into the image. Modified LSB is used in this study to hide bits of the ciphertext into a diagonal matrix of pixels from the red components of image. This system was developed using the programming language Matlab R2007b. Tests are performed in this study in order to observe aspect of imperceptibility and recovery on Modified LSB method and suitability of RSA algorithm used in encryption and decryption process. This study is explaining that combination of RSA algorithm and Modified LSB can used to improve data security.
Keyword : Data Security, Cryptography, Steganography, Modified LSB, a Imperceptibility, Recovery, Encryption, Decryption
(9)
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.1 Latar Belakang 1
1.2 Rumusan Masalah 2
1.3 Batasan Masalah 3
1.4 Tujuan Penelitian 4
1.5 Manfaat Penelitian 4
1.6 Metode Penelitian 4
1.7 Sistematika Penulisan 5
Bab 2 Tinjauan Pustaka 7
2.1 Kriptografi 7
2.1.1 Pengertian Kriptografi 7
2.1.2 Tujuan Kriptografi 9
2.1.3 Jenis Kriptografi 10
2.1.4 Algoritma RSA 11
2.1.4.1 Algoritma Membangkitkan Pasangan Kunci 12
2.1.4.2 Keamanan RSA 14
2.2 Steganografi 14
2.2.1 Pengertian Steganografi 15
2.2.2 Kriteria Steganografi Yang Baik 15
2.2.3 Teknik Steganografi 16
2.2.4 Metode LSB 19
2.2.5 Modified LSB 20
2.3 Citra Digital 21
2.3.1 Citra Bitmap 22
Bab 3 Analisis dan Perancangan Sistem 24
3.1 Analisis Sistem 24
3.2 Tahapan Algoritma RSA 26
3.2.1 Tahapan Proses Enkripsi Algoritma RSA 26 3.2.2 Tahapan Proses Dekripsi Algoritma RSA 29 3.3 Tahapan Proses Penyisipan dan Pengekstrakan 30
(10)
3.4 Perancangan Sistem 36
3.4.1 Flowchart 36
3.4.1.1 Flowchart Gambaran Umum Sistem 36
3.4.1.2 Flowchart Proses Enkripsi 38
3.4.1.3 Flowchart Proses Dekripsi 39
3.4.1.4 Flowchart Proses Embedding 41
3.4.1.5 Flowchart Proses Extracting 43
3.4.2 Use Case Diagram 44
3.4.2.1 Use Case Embed 45
3.4.2.2 Use Case Random p & q 45
3.4.2.3 Use Case Input Plaintext 46
3.4.2.4 Use Case Encrypt 46
3.4.2.5 Use Case Select Image (Menu Embed) 47
3.4.2.6 Use Case Embedding 48
3.4.2.7 Use Case Extract 48
3.4.2.8 Use Case Select Image (Menu Extract) 49
3.4.2.9 Use Case Extracting 50
3.4.2.10 Use Case Input Private Key 50
3.4.2.11 Use Case Decrypt 51
3.4.3 Pseudocode 51
3.4.3.1 Pseudocode Proses Enkripsi 51
3.4.3.2 Pseudocode Proses Dekripsi 52
3.4.3.3 Pseudocode Proses Embedding 53
3.4.3.4 Pseudocode Proses Extracting 53 3.4.4 Perancangan Antarmuka (Interface) 54
3.4.4.1 Halaman Home 54
3.4.4.2 Halaman Embed 56
3.4.4.3 Halaman Extract 58
3.4.4.4 Halaman Help 59
Bab 4 Implementasi dan Pengujian 61
4.1 Implementasi Sistem 61
4.1.1 Tampilan Antarmuka Aplikasi 61
4.1.1.1 Tampilan Halaman Home 61
4.1.1.2 Tampilan Halaman Embed 63
4.1.1.3 Tampilan Halaman Extract 72
4.1.1.4 Tampilan Halaman Help 79
4.2 Pengujian Sistem 79
4.2.1 Pengujian Metode Modified LSB 80
4.2.1.1 Aspek Imperceptibility 80
4.2.1.2 Aspek Recovery 87
4.2.2 Pengujian Algoritma RSA 92
4.2.2.1 Algoritma Enkripsi 92
4.2.2.2 Algoritma Dekripsi 94
Bab 5 Kesimpulan dan Saran 97
5.1 Kesimpulan 97
(11)
Daftar Pustaka 99
(12)
DAFTAR TABEL
No. Tabel
Judul Halaman
3.1 Spesifikasi Use Case Embed 45
3.2 Spesifikasi Use Case Random p & q 46
3.3 Spesifikasi Use Case Input Plaintext 46
3.4 Spesifikasi Use Case Encrypt 47
3.5 Spesifikasi Use Case Select Image (Menu Embed) 47
3.6 Spesifikasi Use Case Embedding 48
3.7 Spesifikasi Use Case Extract 48
3.8 Spesifikasi Use Case Select Image (Menu Extract) 49
3.9 Spesifikasi Use Case Extracting 50
3.10 Spesifikasi Use Case Input Private Key 50
3.11 Spesifikasi Use Case Decrypt 51
4.1 Hasil Pengujian pada Beberapa Cover Image 83
4.2 Hasil Pengujian pada Beberapa Stego Image 87
4.3 Blok-Blok Plainteks 93
4.4 Blok-Blok Cipherteks Hasil Enkripsi 93
4.5 Blok-Blok Plainteks Hasil Dekripsi 95
(13)
DAFTAR GAMBAR
No. Gambar
Judul Halaman
2.1 Skema Umum Kriptografi 8
2.2 Skema Penyisipan dan Ekstraksi Pesan Steganografi 15
2.3 Penyisipan Pesan ke dalam Covertext 18
2.4 Stego Image Sebelum dan Setelah Proses Ekstraksi Pesan 18
3.1 Skema Encryption-Embedding 25
3.2 Skema Extracting-Decryption 26
3.3 Contoh Matriks Pixel Citra Warna Merah 33
3.4 Contoh Matriks Pixel Citra Warna Hijau 34
3.5 Contoh Matriks Pixel Citra Warna Biru 34
3.6 Contoh Matriks Pixel Citra Warna Merah 35
3.7 Contoh Matriks Pixel Citra Warna Merah yang Telah Disisipkan Bit-Bit Cipherteks
35
3.8 Flowchart Gambaran Umum Sistem 37
3.9 Flowchart Proses Enkripsi 39
3.10 Flowchart Proses Dekripsi 40
3.11 Flowchart Proses Embedding 42
3.12 Flowchart Proses Extracting 43
3.13 Use Case Sistem 44
3.14 Pseudocode Proses Enkripsi 52
3.15 Pseudocode Proses Dekripsi 52
3.16 Pseudocode Proses Embedding 53
3.17 Pseudocode Proses Extracting 54
3.18 Perancangan Antarmuka Halaman Home 55
3.19 Perancangan Antarmuka Halaman Embed 56
3.20 Perancangan Antarmuka Halaman Ectract 58
3.21 Perancangan Antarmuka Halaman Help 60
4.1 Tampilan Halaman Home 62
4.2 Tampilan Halaman Embed 63
4.3 Hasil Pembangkitan Nilai p dan q 64
4.4 Hasil Perhitungan Kunci Publik dan Privat 65
4.5 Plainteks yang Akan Dienkripsi 66
4.6 Tampilan Peringatan Tidak Ada Plainteks 66
4.7 Cipherteks Hasil Enkripsi dan Dimensi Minimal Cover Image 67
4.8 Pop-up Window Pilih Cover Image 68
4.9 Tampilan Peringatan Saat Pemilihan Cover Image yang Tidak Sesuai
68 4.10 Tampilan Peringatan Saat Pemilihan Cover Image yang Tidak
Sesuai
69 4.11 Cover Image yang Akan Disisipi Cipherteks 69 4.12 Stego Image Setelah Disisipi Cipherteks 70 4.13 Tampilan Halaman Detail Perubahan Cover Object dan Stego
Object
(14)
4.14 Pop-up Window Simpan Stego Image 72
4.15 Tampilan Halaman Extract 73
4.16 Pop-up Window Pilih Stego Image 74
4.17 Stego Image yang Akan Diekstraksi 75
4.18 Cipherteks Hasil Ekstraksi 76
4.19 Kunci Privat 77
4.20 Plainteks Hasil Dekripsi 78
4.21 Tampilan Peringatan Pemilihan Stego Image 78
4.22 Tampilan Halaman Help 79
4.23 Proses Enkripsi dan Embedding pada Halaman Embed 81
4.24 Painting.bmp 82
4.25 HasilPainting.bmp 82
(15)
ABSTRAK
Keamanan dan kerahasiaan merupakan dua aspek penting dalam komunikasi data. Dalam menjaga keamanan dan kerahasiaan suatu pesan penting yang akan dikirimkan, pesan terlebih dahulu dienkripsi dan disembunyikan ke dalam suatu media. Media yang digunakan dalam penelitian ini adalah citra digital berformat bitmap (.bmp) dengan kedalaman warna 24 bit. Penelitian ini bertujuan untuk membangun suatu sistem yang dapat digunakan dalam meningkatkan keamanan data yang berupa pesan-pesan penting dan rahasia. Algoritma kriptografi yang digunakan untuk melakukan enkripsi adalah algoritma RSA dan steganografi dengan memodifikasi metode Least Significant Bit (LSB) digunakan untuk menyimpan pesan ke dalam citra. Modified LSB yang digunakan dalam penelitian ini menyisipkan bit-bit cipherteks ke dalam diagonal matriks pixel komponen warna merah pada citra. Sistem ini dikembangkan dengan menggunakan bahasa pemrograman Matlab R2007b. Pengujian yang dilakukan pada penelitian ini melihat aspek imperceptibility dan aspek recovery pada metode Modified LSB dan melihat kesesuaian algoritma RSA yang digunakan dalam proses enkripsi dan dekripsi. Penelitian ini menegaskan bahwa kombinasi dari algoritma RSA dan Modified LSB dapat digunakan dalam meningkatkan keamanan data.
Kata Kunci : Keamanan Data, Kriptografi, Steganografi, RSA, Modified LSB, a Imperceptibility, Recovery, Enkripsi, Dekripsi
(16)
IMPLEMENTATION OF DATA SECURITY SYSTEM USING RSA ALGORITHM AND MODIFIED LSB
ABSTRACT
Security and confidentiality are two important aspect of data communication. In maintaining security and confidentiality of important messages to be sent, previously message is firstly encrypted and hidden into the media. Media that is used in this study is a digital image format bitmap (.bmp) with 24 bit color depth. This study aims to build a system that can be used to improve data security that is important confidential messages. Cryptography algorithms used to encrypt is the RSA algorithm and steganography by modifying Least Significant Bit (LSB) method is used to hide a message into the image. Modified LSB is used in this study to hide bits of the ciphertext into a diagonal matrix of pixels from the red components of image. This system was developed using the programming language Matlab R2007b. Tests are performed in this study in order to observe aspect of imperceptibility and recovery on Modified LSB method and suitability of RSA algorithm used in encryption and decryption process. This study is explaining that combination of RSA algorithm and Modified LSB can used to improve data security.
Keyword : Data Security, Cryptography, Steganography, Modified LSB, a Imperceptibility, Recovery, Encryption, Decryption
(17)
BAB 1
PENDAHULUAN
1.1Latar Belakang
Perkembangan teknologi informasi semakin memudahkan penggunanya dalam berkomunikasi melalui bermacam-macam media. Komunikasi yang melibatkan pengiriman dan penerimaan pesan dengan memanfaatkan kemajuan teknologi informasi rentan terhadap pelaku kejahatan komputer yang memanfatkan celah keamanan untuk mendeteksi dan memanipulasi pesan.
Keamanan dan kerahasiaan menjadi aspek yang sangat penting bagi pengguna teknologi informasi. Untuk menghindari pesan yang dikirimkan jatuh pada pihak-pihak yang tidak berkepentingan dan terjadi penyalahgunaan terhadap pesan, maka dilakukan enkripsi terhadap pesan asli dan penyisipan pesan ke dalam suatu media dengan menerapkan ilmu kriptografi dan steganografi.
Untuk meningkatkan keamanan digunakan kombinasi antara kriptografi dan steganografi, dimana pesan rahasia dienkripsi terlebih dahulu, kemudian ciphertext
disembunyikan di dalam media lain sehingga pihak-pihak yang tidak berkepentingan tidak menyadari keberadaan pesan.
Kriptografi berdasarkan kunci yang digunakan untuk enkripsi dan dekripsi dibedakan menjadi kriptografi simetri dan asimetri. Keunggulan kriptografi asimetri adalah penggunaan dua buah kunci yang berbeda untuk enkripsi dan dekripsi, agar pihak yang tidak bertanggung jawab tidak mudah untuk mendapatkan plaintext hasil enkripsi.
(18)
Salah satu algoritma kriptografi yang menggunakan kunci asimetri adalah algoritma RSA (Rivest, Shamir, Adleman). RSA merupakan algoritma kriptografi yang tingkat keamanannya dianggap sangat tinggi, hal ini didukung dari beberapa penelitian terdahulu. [1] dan [7] menyimpulkan bahwa RSA merupakan algoritma kunci publik yang cukup aman saat ini, dimana keamanan algoritma ini terletak pada sulitnya memfaktorkan bilangan besar menjadi faktor-faktor prima.
Algoritma steganografi yang menggunakan teknik substitusi dan mengganti nilai bit-bit terendah pada tiap byte dalam cover-object dengan pesan yang ingin disembunyikan adalah algoritma LSB (Least Significant Bit). Algoritma LSB mengganti nilai bit yang perubahannya tidak signifikan sehingga menghasilkan stego-object yang secara kasat mata terlihat sama dengan cover-object. Beberapa penelitian telah dilakukan untuk mendukung pernyataan tersebut diantaranya [8], [10], dan [12].
Perubahan bit pada byte-byte yang berurutan dapat menimbulkan kecurigaan pada pihak lawan. Untuk membuat pesan yang disembunyikan tidak mudah dilacak, penulis memodifikasi algoritma LSB, sehingga perubahan bit tidak terjadi pada byte-byte yang berurutan tetapi terhadap diagonal dari matriks byte-byte-byte-byte cover-object.
Dengan alasan tersebut maka penulis menggabungkan metode enkripsi algoritma RSA (Rivest, Shamir, Adleman) dengan metode steganografi LSB (Least Significant Bit) yang dimodifikasi.
1.2Rumusan Masalah
Berdasarkan latar belakang masalah, maka rumusan yang akan dibahas pada tugas akhir ini adalah sebagai berikut:
1. Bagaimana melakukan proses embedding dan extracting dengan metode Modified LSB terhadap pesan yang telah terenkripsi dengan algoritma RSA.
2. Bagaimana meningkatkan keamanan data menggunakan algoritma kriptografi kunci publik RSA dan metode steganografi Modified LSB.
(19)
3. Apakah metode Modified LSB dapat memenuhi aspek imperceptibility dan
recovery yang menjadi kriteria sebagai metode steganografi yang baik.
1.3Batasan Masalah
Untuk memfokuskan pengerjaan tugas akhir ini, penulis akan membatasi masalah, yaitu sebagai berikut:
1. Pesan yang dienkripsi berupa inputan teks yang berupa 256 karakter ASCII.
2. Pesan yang disembunyikan ke dalam citra adalah cipherteks yang berupa bilangan integer hasil perhitungan dari algoritma RSA.
3. Media untuk menyimpan pesan adalah citra digital format bitmap (.bmp) 24 bit. 4. Panjang pesan yang disisipkan harus lebih kecil atau sama dengan panjang segmen
data induk citra.
5. Aplikasi yang dibangun hanya akan memproses penyembunyian pesan terenkripsi ke dalam media citra digital dan mengekstraksi kembali pesan yang disembunyikan.
6. Teknik steganografi yang digunakan merupakan salah satu metode substitusi yaitu metode LSB yang telah dimodifikasi.
7. Pesan disisipkan ke dalam citra digital secara diagonal, dari diagonal kiri atas ke kanan bawah.
8. Untuk menghindari proses yang berulang dan redundant dalam penyembunyian bit cipherteks, pada penelitian ini komponen citra yang digunakan untuk menyembunyikan pesan adalah komponen warna merah.
(20)
1.4Tujuan Penelitian
Adapun tujuan dari tugas akhir ini adalah:
1. Merancang sebuah aplikasi yang dapat mengenkripsi dan mendekripsi teks menggunakan algoritma kriptografi RSA.
2. Merancang sebuah aplikasi yang dapat menyisipkan dan mengekstrak cipherteks berupa blok-blok integer dalam media berupa citra digital dengan format bitmap (.bmp) menggunakan algoritma LSB yang telah dimodifikasi.
1.5Manfaat Penelitan
Penelitian ini diharapkan akan mampu meningkatkan tingkat keamanan data dengan menggabungkan algoritma dari kriptografi dan steganografi sehingga aspek keamanan dan kerahasiaan dalam pengiriman pesan dapat dicapai.
1.6Metode Penelitian
Metodologi penelitian yang akan digunakan adalah:
1. Studi Literatur
Mempelajari literatur tentang teori dasar mengenai kriptografi, jenis-jenis kriptografi, keunggulan kriptografi asimetris dibandingkan kriptografi simetris, memahami tentang algoritma RSA dan metode steganografi LSB, dan semua teori yang berkaitan baik dari beberapa buku, jurnal, maupun penelitian terdahulu.
2. Analisis Data
Pada tahap ini dilakukan analisis kebutuhan terhadap sistem beserta batasan-batasan yang diperlukan. Menganalisis algoritma kriptografi RSA, teknik enkripsi dan dekripsi pada RSA, serta menganalisis algoritma steganografi LSB, teknik penyisipan dan ekstraksi pesan pada LSB.
(21)
3. Perancangan Sistem
Melakukan perancangan desain dalam bentuk flowchart, diagram use case, dan antar muka sistem untuk memudahkan proses implementasi pada tahap selanjutnya.
4. Implementasi Sistem
Pada tahap ini dilakukan pembuatan sistem sesuai dengan analisis dan perancangan yang sudah didefinisikan sebelumnya. Implementasi sistem dilakukan dengan menggunakan bahasa pemrograman Matlab R2007b.
5. Pengujian Sistem
Pengujian dilakukan terhadap keberhasilan proses kriptografi dan steganografi pada sistem, mencakup apakah implementasi telah sesuai dengan teori, apakah pesan yang diekstrak sesuai dengan pesan sebelum disisipi, apakah pesan hasil dekripsi sesuai dengan plainteks semula, serta apakah metode Modified LSB yang digunakan memenuhi aspek imperceptibility dan recovery.
6. Dokumentasi Sistem
Melakukan pembuatan dokumentasi sistem mulai dari tahap awal hingga pengujian sistem, untuk selanjutnya dibuat dalam bentuk laporan penelitian (skripsi).
1.7Sistematika Penulisan
Sistematika penulisan laporan penelitian ini dibagi menjadi 5 bab, yaitu sebagai berikut:
BAB 1 PENDAHULUAN
Berisikan penjelasan tentang konsep dasar penyusunan tugas akhir, yaitu mengenai latar belakang pemilihan judul, rumusan
(22)
masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metode penelitian, dan sistematika penulisan.
BAB 2 TINJAUAN TEORETIS
Bab ini akan membahas dasar teori yang menunjang penulisan tugas akhir, berkaitan mengenai kriptografi, steganografi, proses enkripsi dan dekripsi dengan algoritma RSA, serta proses penyisipan dan ekstraksi pesan dengan menggunakan metode Modified LSB.
BAB 3 ANALISIS DAN PERANCANGAN SISTEM
Bab ini membahas tentang analisis dan perancangan sistem dengan menggunakan metode RSA dan Modified LSB.
BAB 4 IMPLEMENTASI DAN PENGUJIAN
Pada bab ini akan menjelaskan implementasi metode RSA dan
Modified LSB yang digunakan, serta pengujian akan keberhasilan terhadap sistem yang telah dibangun.
BAB 5 KESIMPULAN DAN SARAN
Bab ini akan memuat kesimpulan isi dari keseluruhan uraian bab-bab sebelumnya dan saran-saran dari hasil yang diperoleh yang diharapkan dapat bermanfaat untuk pengembangan selanjutnya.
(23)
BAB 2
TINJAUAN PUSTAKA
2.1Kriptografi
Kriptografi merupakan salah satu ilmu pengkodean pesan yang digunakan untuk meningkatkan keamanan dalam pengiriman pesan atau komunikasi data. Kriptografi saat ini telah menjadi salah satu syarat penting dalam keamanan teknologi informasi dalam pengiriman pesan penting dan rahasia. Pengiriman pesan penting dan rahasia sangat rentan terhadap serangan yang dilakukan oleh pihak ketiga, seperti penyadapan, pemutusan komunikasi, pengubahan pesan yang dikirim, dan hal-hal yang merugikan lainnya.
2.1.1 Pengertian Kriptografi
Kriptografi berasal dari dua kata dalam bahasa Yunani, yaitu crypto dan graphia. Crypto berarti secret (rahasia) dan graphia yang berarti writing (tulisan). Menurut terminologinya, kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan ketika pesan dikirim dari suatu tempat ke tempat lain [2].
Secara umum, istilah yang sering digunakan di dalam kriptografi adalah:
1. Pesan
Pesan adalah data atau informasi yang dapat dibaca dan dimengerti maknanya. Pesan sering juga disebut plainteks (plaintext) atau pesan jelas (cleartext).
Plainteks merupakan suatu pesan bermakna yang akan diproses menggunakan algoritma kriptografi.
(24)
2. Cipherteks
Cipherteks (ciphertext) atau disebut juga kriptogram (cryptogram) merupakan pesan yang telah tersandi. Pesan dalam bentuk cipherteks tidak dapat dibaca karena berisi karakter-karakter yang tidak memiliki makna setelah melalui proses enkripsi.
3. Enkripsi
Enkripsi merupakan proses yang dilakukan untuk menyandikan plainteks menjadi cipherteks atau disebut sebagai enchipering. Enkripsi dilakukan dengan tujuan agar plainteks tersebut tidak dapat dibaca oleh pihak yang tidak berwenang.
4. Dekripsi
Dekripsi merupakan proses mengembalikan cipherteks menjadi plainteks semula atau disebut deciphering. Dekripsi dilakukan ketika pesan telah sampai kepada pihak yang dituju.
5. Kunci
Kunci adalah parameter yang digunakan untuk transformasi enkripsi dan dekripsi. Kunci biasanya berupa string atau deretan bilangan. Keamanan suatu algoritma kriptografi biasanya bergantung kepada kerahasiaan penyebaran kunci.
Berikut adalah skema umum dari proses enkripsi dan dekripsi pada kriptografi:
Gambar 2.1 Skema Umum Kriptografi Dekripsi Enkripsi
Plainteks
Kunci Kunci
Cipherteks
(25)
2.1.2 Tujuan Kriptografi
[9] menyatakan bahwa tujuan kriptografi dalam memberi layanan keamanan adalah sebagai berikut:
1. Confidentiality
Confidentiality merupakan tujuan sistem kriptografi dalam memberikan kerahasiaan pesan dan menyimpan data dengan menyembunyikan informasi lewat teknik-teknik enkripsi.
2. Data Integrity
Data integrity merupakan tujuan sistem kriptografi dalam memberikan jaminan bahwa pesan tidak akan mengalami perubahan selama proses pengiriman. Integritas data merupakan layanan yang bertujuan untuk mencegah terjadinya pengubahan informasi oleh pihak-pihak yang tidak berwenang.
3. Non-repudiation
Non-repudiation merupakan tujuan sistem kriptografi dalam memberikan cara untuk membuktikan bahwa suatu dokumen datang dari seseorang apabila ia mencoba menyangkal memiliki dokumen tersebut. Non-repudiation adalah layanan yang berfungsi untuk mencegah terjadinya penyangkalan terhadap suatu aksi yang dilakukan oleh pelaku sistem informasi.
4. Authentication
Authentication merupakan tujuan sistem kriptografi dalam mengidentifikasikan keaslian suatu pesan dan memberikan jaminan keotentikannya, dan menguji identitas seseorang apabila ia akan memasuki sebuah sistem. Penerima pesan dapat memastikan keaslian pengirimnya.
(26)
2.1.3 Jenis Kriptografi
Menurut [6] terdapat dua jenis algoritma kriptografi berdasarkan jenis kunci yang digunakan, yaitu :
1. Algoritma Kriptografi Simetri (Konvensional) 2. Algoritma Kriptografi Asimetri (Kunci Publik)
1. Kriptografi Simetri
Konsep dasar dari kriptografi kunci simetri adalah kunci yang digunakan untuk enkripsi merupakan kunci yang sama dengan kunci untuk dekripsi. Istilah lain untuk kriptografi kunci simetri adalah kriptografi kunci privat (private-key cryptography), kriptografi kunci rahasia (secret-key cryptography), atau kriptografi konvensional (conventional cryptography).
Kelebihan kriptografi simetri adalah:
a. Proses enkripsi dan dekripsi kriptografi simetri membutuhkan waktu yang singkat.
b. Ukuran kunci simetri relatif pendek.
c. Otentikasi pengiriman pesan langsung diketahui dari cipherteks yang diterima, karena kunci hanya diketahui oleh penerima dan pengirim saja.
Kekurangan kriptografi simetri adalah:
a. Kunci simetri harus dikirim melalui saluran komunikasi yang aman dan kedua entitas yang berkomunikasi harus menjaga kerahasiaan kunci.
b. Kunci harus sering diubah, setiap kali melaksanakan komunikasi.
2. Kriptografi Asimetri
Berbeda dengan kriptografi kunci simetri, kriptografi kunci publik memiliki dua buah kunci yang berbeda pada proses enkripsi dan dekripsinya. Nama lain dari kunci asimetri ini adalah kriptografi kunci publik (public-key cryptography).
(27)
Pengirim akan mengenkripsi pesan dengan menggunakan kunci publik, sedangkan penerima mendekripsikan pesan menggunakan kunci privat.
Kelebihan kriptografi asimetri adalah:
a. Hanya kunci privat yang perlu dijaga kerahasiaannya oleh setiap entitas yang berkomunikasi.
b. Pasangan kunci privat dan kunci publik tidak perlu diubah dalam jangka waktu yang sangat lama.
c. Dapat digunakan dalam pengamanan pengiriman kunci simetri.
d. Beberapa algoritma kunci publik dapat digunakan untuk memberi tanda tangan digital pada pesan.
Kelemahan kriptografi asimetri adalah:
a. Proses enkripsi dan dekripsi umumnya lebih lambat dari algoritma simetri, karena menggunakan bilangan yang besar dan operasi bilangan yang besar. b. Ukuran cipherteks lebih besar dari pada plainteks.
c. Ukuran kunci relatif lebih besar dari pada ukuran kunci simetri.
2.1.4 Algoritma RSA
Algoritma RSA dibuat oleh 3 orang peneliti dari MIT (Massachussets Institute of Technology) pada tahun 1976, yaitu Ron (R)ivest, Adi (S)hamir, dan Leonard (A)dleman. RSA adalah algoritma kriptografi modern yang menggunakan sistem kriptografi asimetri (kunci publik). Algoritma RSA yang dibuat oleh para ilmuwan pada tahun 1976 ini, melakukan pemfaktoran bilangan yang sangat besar untuk mendapatkan kunci privat.
Secara umum, besaran yang digunakan dalam algoritma RSA adalah:
(28)
2. . (tidak rahasia)
3. (rahasia)
4. (kunci enkripsi) (tidak rahasia) 5. (kunci dekripsi) (rahasia)
6. (plainteks) (rahasia)
7. (cipherteks) (tidak rahasia)
Enkripsi pada algoritma RSA dapat dilakukan dengan persamaan:
Sedangkan untuk dekripsi digunakan persamaan sebagai berikut:
2.1.4.1Algoritma Membangkitkan Pasangan Kunci
Berikut adalah langkah-langkah dalam membangkitkan pasangan kunci publik dan kunci privat dengan algoritma RSA:
1. Pilih dua buah bilangan prima sembarang, dan .
2. Hitung . (sebaiknya , sebab jika maka sehingga dapat diperoleh dengan menarik akar pangkat dua dari ).
3. Hitung .
4. Pilih kunci publik, , yang relatif prima terhadap .
5. Bangkitkan kunci privat dengan menggunakan persamaan: , yang merupakan turunan dari persamaan . ≡ .
Hasil dari algoritma di atas adalah:
a. Kunci publik adalah pasangan , b. Kunci privat adalah pasangan , )
(29)
Implementasi algoritma tersebut dapat dicontohkan sebagai berikut: misalkan Alice ingin mengirimkan pesan kepada Bob dengan nilai p=19 dan q=13. Sehingga nilai n=247, dan didapat . Lalu dipilih nilai e, misal e=77 (relatif prima terhadap ). Kunci publik = (247,77).
Untuk plainteks : “S” dengan kode ASCII 83, cipherteksnya menjadi
= 239
Dimana pada tabel ASCII nilai desimal 239 mewakili karakter "ï ". Karakter
"ï " yang akan dikirimkan kepada Bob sebagai cipherteks. Untuk mengetahui plainteks dari cipherteks yang diterimanya Bob harus melakukan dekripsi dengan mencari nilai
d dari persamaan (dengan nilai , , , … ).
Untuk .
, Untuk k = 2
. ,
Untuk k = 3
. ,
…
Untuk k = 36
.
Dalam perhitungan persamaan tersebut, didapat nilai bulat dari kunci privat d
pada iterasi k=36, yaitu d=101. Setelah nilai d diketahui, dapat dicari plainteks dari cipherteks tersebut.
(30)
= 83
Hasil konversi dengan tabel ASCII untuk nilai desimal 83 akan diperoleh karakter “ S “. Karakter “ S ” inilah yang merupakan plainteks hasil dekripsi.
Plainteks hasil dekripsi yang didapat, merupakan plainteks yang sama dengan pesan yang dikirimkan sebelum proses enkripsi.
2.1.4.2Keamanan RSA
Pada dasarnya keamanan algoritma RSA ini yaitu terletak pada sulitnya memfaktorkan bilangan besar menjadi faktor-faktor prima. Pada RSA masalah pemfaktoran berbunyi: faktorkan menjadi dua faktor prima, dan , sedemikian hingga . . sekali dapat difaktorkan menjadi dan , maka
dapat dihitung. Selanjutnya kunci privat dapat dihitung.
2.2Steganografi
Steganografi merupakan seni komunikasi rahasia dengan menyembunyikan pesan pada objek yang tampaknya tidak berbahaya. Keberadaan pesan steganografi adalah rahasia. Istilah Yunani ini berasal dari kata Steganos, yang berarti tertutup dan
Graphia, yang berarti menulis [5].
Steganografi berbeda dengan kriptografi, pada steganografi pesan disembunyikan dalam suatu media sehingga pihak ketiga tidak menyadari keberadaan pesan. Sedangkan kriptografi menyandikan pesan agar pesan tidak dapat dimengerti maknanya oleh pihak ketiga. Dalam kriptografi cipherteks yang berupa kode-kode dapat menimbulkan kecurigaan pihak lain, untuk meningkatkan keamanan dilakukan penyisipan pesan ke dalam media dengan menggunakan steganografi.
(31)
2.2.1 Pengertian Steganografi
Steganografi berasal dari Bahasa Yunani, yaitu steganos (penyamaran atau penyembunyian) dan gráphein (tulisan atau gambar). Jadi, steganografi bisa diartikan sebagai seni menyamarkan/menyembunyikan pesan tertulis ke dalam pesan lainnya [3].
Secara umum, istilah yang berkaitan dengan steganografi adalah:
1. Hiddentext atau embedded message, yaitu pesan yang disembunyikan.
2. Covertext atau cover-object, yaitu media yang digunakan untuk menyembunyikan
embedded message.
3. Stegotext atau stego-object, yaitu pesan yang sudah berisi embedded message.
Di dalam steganografi digital, baik hiddentext maupun covertext dapat berupa teks, citra, audio maupun video.
Berikut adalah skema proses penyisipan dan ekstraksi pesan pada steganografi:
Gambar 2.2 Skema Penyisipan dan Ekstraksi Pesan Steganografi
2.2.2 Kriteria Steganografi Yang Baik
Menurut [9] ada beberapa kriteria yang harus diperhatikan dalam steganografi agar menjadi metode steganografi yang baik, yaitu:
Extraction
Embedding
hiddentext
Covertext Covertext
Stegotext
hiddentext
(32)
1. Imperceptibility
Keberadaan pesan rahasia tidak dapat dipersepsi oleh inderawi. Misalnya, jika
covertext berupa citra, maka penyisipan pesan citra stegotext sukar dibedakan oleh mata dengan citra covertext-nya. Jika covertext berupa audio (misalnya berkas mp3, wav, midi, dan sebagainya), maka indera telinga tidak dapat mendeteksi perubahan pada audio stegotext-nya.
2. Fidelity
Mutu media penampung tidak berubah banyak akibat penyisipan. Perubahan tersebut tidak dapat dipersepsi oleh inderawi. Misalnya, jika covertext berupa citra, maka penyisipan pesan membuat citra stegotext sukar dibedakan oleh mata dengan citra covertext-nya. Jika covertext berupa audio (misalnya berkas mp3, wav, midi dan sebagainya), maka audio stegotext tidak rusak dan indera telinga tidak dapat mendeteksi perubahan tersebut.
3. Recovery
Pesan yang disembunyikan harus dapat diungkapkan kembali (reveal). Karena tujuan steganografi adalah data hiding, maka sewaktu-waktu pesan rahasia di dalam stegotext harus dapat diambil kembali untuk digunakan lebih lanjut.
2.2.3 Teknik Steganografi
[3] menyatakan bahwa terdapat tujuh teknik yang digunakan dalam steganografi, yaitu:
1. Infection, merupakan suatu teknik menanamkan pesan rahasia secara langsung ke suatu media. Salah satu masalah dari teknik ini adalah ukuran media yang diinjeksi menjadi lebih besar dari ukuran normalnya sehingga mudah dideteksi.
2. Substitusi, data normal digantikan dengan data rahasia. Biasanya, hasil teknik ini tidak terlalu mengubah ukuran data asli, tetapi tergantung pada file media dan data
(33)
yang akan disembunyikan. Teknik substitusi bisa menurunkan kualitas media yang ditumpangi.
3. Transform Domain, menyembunyikan data pada transform space. Akan sangat lebih efektif teknik ini diterapkan pada file gambar format JPEG (.Jpeg).
4. Spread spectrum, teknik pengtransmisian menggunakan pseudo-noise code, yang independen terhadap data informasi sebagai modulator bentuk gelombang untuk menyebarkan energi sinyal dalam sebuah jalur komunikasi (bandwidth) yang lebih besar daripada sinyal jalur komunikasi informasi. Oleh penerima, sinyal dikumpulkan kembali menggunakan replika pseudo-noise code tersinkronisasi.
5. Statistical Method, menanamkan satu bit informasi pada media tumpangan dan mengubah statistik walaupun hanya 1 bit. Perubahan statistik ditunjukkan dengan indikasi 1 dan jika tidak ada perubahan, terlihat indikasi 0. Sistem ini bekerja berdasarkan kemampuan penerima dalam membedakan antara informasi yang dimodifikasi dan yang belum.
6. Distortion, metode ini menciptakan perubahan atas benda yang ditumpangi oleh data rahasia.
7. Cover Generation, metode ini lebih unik daripada metode lainnya karena cover-object dipilih untuk menyembunyikan pesan. Contoh dari metode ini adalah Spam Mimic.
Proses penyisipan pesan pada steganografi, dapat digambarkan dengan ilustrasi seperti pada Gambar 2.3 berikut:
(34)
Istilah keilm terasa memb persepsi pad sebenarnya. segera terbe istilah tesreb eprtumbuha ilmu membe rumpun, yan bahwa nuan organisasi/k yang mewad Hidden Unt
object) dila dikarenakan
covertext h semula seb Gam muan serump berikan disto da maksud Persepsi yan entuk dengan but adalah an dari akar-a
entuk suatu ng berarti nsa historis kelompok/un dahinya. ntext Gamb tuk mengeta akukan ekst n proses ek hasil ekstrak
elum disisip
mbar 2.4 Ste un orsi ng n akar it
bar 2.3 Pen (Su
ahui pesan traksi untuk kstraksi dap ksi akan men
pi pesan, se
ego Image S (Su Coverte nyisipan Pe umber: Mu tersembuny k memisahk pat merusak ngalami ker eperti pada c
Sebelum da umber: Sin
ext
esan ke dala unir, 2006)
yi yang terd kan hiddent
k segmen d rusakan dan contoh berik
an Setelah naga, 2008)
am Coverte
dapat dalam
text dengan
data citra da n tidak akan kut:
Proses Eks
Steg
ext
m stegotetex
n covertext. ari covertex
n kembali k
straksi Pesa gotext
xt
(stego-Namun,
xt, maka
e bentuk
(35)
2.2.4 Metode LSB
Metode LSB (Least Significant Bit) merupakan salah satu teknik substitusi pada steganografi. Dimana tiap bit terendah pada byte-byte media citra akan digantikan dengan bit-bit pesan yang akan disisipkan. Pada file citra 24 bit setiap pixel pada citra terdiri dari susunan tiga warna, yaitu merah, hijau dan biru (RGB) yang masing-masing disusun oleh bilangan 8 bit (1 byte) dari 0 sampai 255 atau dengan format biner 00000000 sampai 11111111. Informasi dari warna biru berada pada bit 1sampai bit 8, dan informasi warna hijau berada pada bit 9 sampai dengan bit 16, sedangkan informasi warna merah berada pada bit 17 sampai dengan bit 24.
Metode LSB hanya mengubah nilai byte satu lebih tinggi atau satu lebih rendah dari nilai sebelumnya, sehingga perubahan yang terjadi tidak begitu berarti. Lagi pula, mata manusia tidak dapat membedakan perubahan kecil yang terjadi tersebut.
Misalkan segmen data citra sebelum perubahan:
00110011 10100010 11100010 00100110 10010110 11111001 10001000 10100011
Segmen data citra setelah pesan “10010111” disembunyikan menjadi:
00110011 10100010 11100010 00100111 10010110 11111001 10001001 10100011
Dari contoh penyembunyian pesan tersebut terlihat hanya dua bit rendah yang berubah (bit dengan tulisan bercetak miring dan bergaris bawah), untuk mata manusia, maka tidak akan tampak perbedaan yang mencolok antara cover-object dengan stego-object.
(36)
Kelebihan algoritma LSB yang disimpulkan dari beberapa penelitian:
1. Stego-object hasil algoritma LSB secara kasat mata tidak terdapat perbedaan dengan cover-object.
2. Pesan yang disembunyikan dengan algoritma LSB dapat diekstraksi dengan tepat, selama tidak terjadi manipulasi terhadap stego-object.
Adapun kelemahan yang dapat disimpulkan dari algoritma LSB adalah:
1. Ketidakmampuan dalam menyimpan data dengan ukuran yang besar.
2. Proses manipulasi terhadap stego-object akan merusak bit-bit LSB sehingga pesan yang telah disisipi tidak dapat diekstraksi kembali.
3. Penggantian bit LSB pada byte-byte yang berurutan dapat dengan mudah dilacak oleh pihak yang curiga terhadap stego-object.
2.2.5 Modified LSB
Untuk menghindari kecurigaan dari pola teratur yang dihasilkan oleh penggantian bit LSB pada byte-byte yang berurutan, algoritma LSB dapat digunakan dengan memilih susunan byte secara acak atau memodifikasinya dengan mengganti bit LSB pada byte-byte yang telah ditentukan, seperti byte-byte-byte-byte pada diagonal matriks dari cover-object.
Dalam penelitian ini, penulis melakukan penyisipan pesan ke dalam cover-object
dengan mengganti bit-bit LSB pada diagonal-diagonal matriks citra mulai dari byte kiri atas ke kanan bawah. Hal ini diharapkan agar perubahan bit-bit tersebut tidak menimbulkan kecurigaan dan pesan dalam stego-object tidak mudah dilacak.
Misalkan data citra sebelum perubahan:
00110010 10100010 11100010 01101001 10101011 00100110 10010110 00110010 11001001 11111001 10001000 10100110 10110110 01011011 10100110 10111001
(37)
Jadi bit yang disisipi oleh pesan adalah bit yang berada pada diagonal matriks, yaitu pada , , , , , , dan , . Sehingga untuk pesan dengan biner ‘1100’ menghasilkan perubahan sebagai berikut:
00110011 10100010 11100010 01101001 10101011 00100111 10010110 00110010 11001001 11111001 10001000 10100110 10110110 01011011 10100110 10111000
Dikarenakan perubahan bit LSB tidak terjadi pada byte-byte yang berurutan, diharapkan pihak yang mencurigai terdapatnya pesan dalam stego-object dan mencoba untuk melakukan ekstraksi terhadap stego-object tidak menyadari adanya pesan tersebut.
2.3Citra Digital
Semua citra digital yang ditampilkan di layar komputer adalah sederetan atau sekumpulan pixel (picture element). Citra tersebut dikatakan sebagai citra digital karena bentuk representasinya yang berupa bilangan. Oleh komputer akan dikenal dalam urutan ‘0’ dan ‘1’.
Ada beberapa format citra digital, antara lain: BMP, PNG, JPG, GIF, PXC, dan sebagainya. Masing-masing format mempunyai perbedaan satu dengan yang lain terutama pada header file-nya. Namun ada beberapa yang memiliki kesamaan yaitu penggunaan pallete untuk penentuan warna pixel.
Representasi citra digital dalam sebuah file dapat dianalogikan seperti halnya ketika kita ingin melukis, maka kita harus mempunyai palet dan kanvas. Di mana palet adalah kumpulan warna yang dapat membentuk citra, seperti palet warna yang berisi berbagai warna cat. Lalu setiap warna yang berbeda di dalam palet tersebut diberi nomor. Kemudian kita dapat melukiskan warna-warna tersebut di atas sebuah
(38)
kanvas. Kanvas tersebut berupa matriks yang setiap elemen matriksnya dapat diisi dengan sebuah warna yang berasal dari palet warna. Kumpulan angka (mewakili warna) dalam bentuk matriks inilah yang disebut dengan citra. Sementara informasi mengenai palet (korespondensi antara warna dengan angka) disimpan di dalam komputer melalui aplikasi untuk membuka citra seperti, Photoshop dan Paint.
2.3.1 Citra Bitmap
Format Bitmap atau .bmp adalah format citra digital yang paling umum dan merupakan format citra digital standar Windows. Ukuran file bitmap ini bisa sangat besar hingga Megabytes. File bitmap merupakan format citra digital yang belum terkompresi dan menggunakan warna RGB (Red, Green, Blue), sehingga setiap elemen pixel-nya merupakan hasil komposisi 3 komponen warna (merah, hijau, dan biru).
File bitmap sering digunakan untuk menyembunyikan pesan dengan metode steganografi, dikarenakan jenis file bitmap pada umumnya mempunyai ukuran file
yang besar sehingga mampu menyembunyikan pesan rahasia yang lebih banyak. Jadi semakin besar ukuran file yang ada maka informasi rahasia yang dapat disembunyikan akan semakin banyak.
Format file .bmp 24 bit menggunakan model warna RGB. Pada model warna RGB, warna yang ditampilkan di layar monitor disusun oleh tiga buah warna primer, yaitu Red (merah), Green (hijau), dan Blue (biru). Dimana 1 warna sama dengan 1 byte sehingga 1 pixel pada RGB akan terdiri dari 3 jenis warna, maka 1 pixel akan sama dengan 24 bit atau 3 byte.
Pada umumnya citra bitmap terdiri dari 4 blok data, yaitu:
1. BMP header
BMP header berisi informasi umum dari citra bitmap. Blok ini berada pada bagian awal file citra dan digunakan untuk mengidentifikasi citra. Beberapa aplikasi
(39)
pengolah citra akan membaca blok ini untuk memastikan bahwa citra tersebut berformat bitmap dan tidak dalam kondisi rusak.
2. Bit Information (DIB header)
Bit Information berisi informasi detail dari citra bitmap, yang akan digunakan untuk menampilkan citra pada layar.
3. Color Pallete
Color pallete berisi informasi warna yang digunakan untuk indeks warna bitmap.
4. Bitmap Data
(40)
BAB 3
ANALISIS DAN PERANCANGAN SISTEM
3.1Analisis Sistem
Dalam perancangan sebuah sistem diperlukan analisis untuk menentukan kebutuhan sistem. Dengan adanya analisis sistem, sistem yang dirancang diharapkan akan lebih baik dan memudahkan dalam pengembangan sistem selanjutnya. Tujuan dari analisis sistem ini sendiri adalah agar sistem yang dirancang menjadi tepat guna dan ketahanan dari sistem tersebut akan lebih terjaga.
Dalam sistem keamanan data menggunakan algoritma RSA dan modified LSB
ini terdapat empat proses yang saling berkaitan. Keempat proses tersebut dapat diurutkan sebagai berikut:
1. Encryption
Pada encryption terjadi penyandian plainteks yang berupa pesan asli ke dalam cipherteks dalam bentuk bilangan-bilangan integer dengan menggunakan algoritma RSA. Terlebih dahulu plainteks dikonversi menjadi nilai-nilai desimal dalam pengkodean ASCII, nilai-nilai desimal tersebut yang selanjutnya akan diproses menggunakan algoritma RSA.
2. Embedding
Pada embedding terjadi proses penyisipan pesan yang berupa cipherteks ke dalam gambar (cover image) berformat .bmp yang kemudian akan menghasilkan stego image. Stego image merupakan gambar dalam format .bmp yang telah berisi cipherteks dengan proses penyisipan pesan menggunakan metode Modified LSB.
(41)
3. Extracting
Pada extracting terjadi proses pengekstrakan cipherteks tersembunyi dari stego image. File bitmap (.bmp) yang berisi cipherteks diekstraksi untuk memisahkan cipherteks dengan cover image-nya agar selanjutnya dapat dilakukan proses dekripsi untuk mengetahui plainteksnya.
4. Decryption
Pada decryption terjadi proses menerjemahkan cipherteks yang didapat dari hasil
extracting. Cipherteks yang berupa bilangan-bilangan integer yang terlebih dahulu telah diketahui kunci privatnya diproses dengan menggunakan algoritma RSA untuk mendapatkan pesan asli (plainteks).
Keempat proses tersebut berlangsung dalam dua tahap, seperti digambarkan pada skema berikut:
Gambar 3.1 Skema Encryption-Embedding
Pada skema Encryption-Embedding digambarkan bahwa untuk proses
Encryption dibutuhkan kunci publik RSA yang akan mengubah plainteks menjadi cipherteks. Selanjutnya cipherteks akan disembunyikan ke dalam cover image dengan menggunakan metode Modified LSB.
Plainteks
Kunci Publik RSA
Stego Image Cover Image Embedding Modified LSB Cipherteks
(42)
Gambar 3.2 Skema Extracting-Decryption
Proses Extracting yang digambarkan pada skema di atas, menjelaskan bahwa proses Extracting dengan metode Modified LSB akan mengekstrak cipherteks dari
stego image, kemudian Decryption dapat dilakukan dengan menggunakan kunci privat yang tepat untuk menghasilkan plainteks.
3.2Tahapan Algoritma RSA
3.2.1 Tahapan Proses Enkripsi Algoritma RSA
Dua besaran utama yang diperlukan dalam melakukan proses enkripsi dengan algoritma RSA adalah nilai p dan q. Dimana p dan q adalah merupakan dua buah bilangan prima sembarang (sebaiknya ). Dalam sebuah sistem nilai p dan q, dapat dimasukkan oleh user atau dibangkitkan oleh sistem. Untuk memudahkan user
dalam menentukan nilai p dan q, sistem ini menyediakan fasilitas membangkitkan pasangan nilai p dan q tersebut.
Setelah nilai p dan q ditentukan, akan dilakukan penghitungan oleh sistem untuk mendapatkan nilai-nilai berikut: n, , e, dan d. Nilai untuk tiap besaran tersebut didapat dari perhitungan sebagai berikut:
1. .
2.
3. merupakan bilangan acak, yang relatif prima terhadap atau ( gcd ( e, ) = 1).
Stego Image
Plainteks Kunci Privat
Decryption Cipherteks
Extracting Modified
(43)
4. . ≡ yang ekivalen dengan .
Dari perhitungan tersebut akan didapatkan pasangan kunci publik , dan pasangan kunci privat , . Pasangan kunci publik merupakan nilai-nilai yang nantinya akan digunakan dalam mengenkripsi plainteks menjadi cipherteks. Selanjutnya, agar cipherteks dapat dikembalikan menjadi plainteks harus dilakukan proses dekripsi yang membutuhkan pasangan kunci privat.
Agar penerima pesan dapat melakukan dekripsi, pengirim pesan harus mendistribusikan kunci privat yang telah terbentuk kepada penerima pesan yang dituju. Untuk mencegah adanya pihak lain yang mampu membaca pesan yang dikirimkan tersebut kunci privat haruslah bersifat rahasia, karena salah satu kunci keamanan suatu algoritma tergantung dari kerahasiaan kunci privatnya. Dalam pendistribusian kunci privat harus dipastikan bahwa kerahasiaan kunci privat dapat terjaga. Pengirim dan penerima pesan harus memastikan bahwa media komunikasi yang digunakan cukuplah aman. Salah satu alternatif yang dapat digunakan dalam pendistribusian cipherteks atau stego image dan kunci privat adalah dengan mengirimkan kunci privat melalui media yang berbeda dengan yang digunakan untuk mengirimkan cipherteks atau stego image.
Selanjutnya, penggunaan kunci publik , dalam proses enkripsi digunakan dalam persamaan:
,
dimana m adalah plainteks dan c adalah cipherteks hasil enkripsi. Misalkan saja, dari hasil pembangkitan nilai p dan q didapat nilai p=787 dan q=853. Dari dua besaran utama tersebut akan didapat nilai-nilai berikut:
(44)
Nilai n dan d merupakan kunci privat yang dikirimkan kepada penerima pesan yang akan melakukan dekripsi.
Untuk pesan : “test”. Selanjutnya akan diterjemahkan dalam bentuk desimal dalam pengkodean ASCII. Sehingga plainteks dalam bentuk desimalnya menjadi:
“116 101 115 116” “116101115116”
Untuk melakukan perhitungan mendapatkan cipherteks, sistem akan membagi plainteks menjadi blok-blok yang lebih kecil, sistem yang akan dirancang pada penelitian ini membagi plainteks yang telah dikonversi dalam pengkodean ASCII untuk tiap enam digit ke dalam satu blok atau dengan kata lain sistem melakukan perhitungan untuk tiap dua karakter plainteks. Sehingga blok-blok plainteks untuk contoh di atas menjadi:
Selanjutnya akan diperoleh nilai cipherteks dari perhitungan masing-masing blok plainteks:
Cipherteks yang diperoleh: 545709 176892
Dikarenakan sistem akan menghitung dua karakter plainteks menjadi 1 blok cipherteks. Proses tersebut hanya akan berlaku untuk plainteks dengan panjang karakter pesan genap. Sedangkan untuk panjang karakter pesan ganjil maka agar proses tersebut tetap dapat dilakukan, sistem akan menambahkan satu karakter khusus (“.”) di akhir plainteks dengan panjang karakter ganjil. Dengan demikian sistem akan membaca plainteks sebagai penggabungan antara plainteks awal dengan karakter yang
(45)
ditambahkan sehingga proses enkripsi tetap dapat dilakukan untuk perhitungan tiap dua karakter plainteks. Cipherteks akan berupa blok-blok integer yang selanjutnya akan disembunyikan dalam cover image dengan metode Modified LSB untuk dikirimkan kepada pihak yang dituju.
3.2.2 Tahapan Proses Dekripsi Algoritma RSA
Dekripsi dilakukan setelah cipherteks berhasil diekstraksi dari stego image, dengan mengubah nilai blok-blok cipherteks menjadi pesan yang dapat dibaca dan dimengerti oleh penerima pesan. Untuk mendekripsikan cipherteks penerima pesan harus memiliki kunci privat yang sebelumnya telah diberikan oleh pengirim pesan. Kunci privat itu berupa nilai dari besaran d dan n, yang bersifat rahasia dan hanya diketahui oleh pengirim dan penerima pesan.
Untuk contoh sebelumnya, akan diterima cipherteks “545709 176892” dengan kuci privat n = 671311 dan d = 176857. Dapat dilakukan dekripsi dengan persamaan:
untuk masing-masing blok cipherteks sebagai berikut:
Setelah didapat hasil perhitungan berupa nilai desimal “116101 115116”
selanjutnya akan dapat diketahui pesan yang dikirimkan oleh pengirim dengan menerjemahkannya menggunakan pengkodean ASCII. Untuk setiap 3 digit akan dikonversikan ke dalam pengkodean ASCII kembali, sehingga nilai dari tiap 3 digit plainteks yang didapat menjadi:
116 101 115 116 t e s t
Dari hasil dekripsi penerima pesan dapat mengetahui makna pesan yang terenkripsi yang dikirimkan oleh pengirim pesan, yaitu: “test”. Plainteks akan berhasil
(46)
didekripsikan dengan tepat apabila kunci privat yang digunakan sesuai dengan kunci privat yang diberikan oleh pengirim pesan. Meskipun terdapat pihak-pihak yang dapat menyadap cipherteks, plainteks tidak akan dapat didekripsikan dengan tepat bila kunci privatnya tetap terjaga.
3.3Tahapan Proses Penyisipan dan Pengekstrakan
Proses penyisipan atau penyembunyian pesan rahasia pada penelitian ini dilakukan dengan menggantikan bit-bit data segmen citra dengan bit-bit data cipherteks, dimana bit-bit segmen citra yang digunakan adalah bit-bit yang kurang berarti (least significant bit) sebab perubahan tersebut hanya mengubah nilai byte satu lebih tinggi atau satu lebih rendah dari nilai sebelumnya. Perubahan bit yang terjadi pada metode LSB tidak mengubah warna cover image secara berarti sehingga cover image dengan
stego image tidak akan terlihat berbeda di mata manusia.
Seperti yang telah dijelaskan pada bab sebelumnya file bitmap sering digunakan sebagai media untuk menyembunyikan pesan, dikarenakan jenis file bitmap pada umumnya mempunyai ukuran file yang besar sehingga mampu menyembunyikan pesan rahasia yang lebih banyak. Citra digital yang digunakan pada penelitian ini adalah file bitmap format .bmp 24 bit yang menggunakan model warna RGB, dimana 1 warna sama dengan 1 byte sehingga 1 pixel pada RGB akan terdiri dari 3 jenis warna, maka 1 pixel akan sama dengan 24 bit atau 3 byte.
Dalam LSB pesan dapat disisipkan pada bit-bit terakhir pada tiap-tiap byte segmen citra, atau pada byte khusus yang diinginkan seperti hanya pada byte pertama atau warna merah (Red), hanya pada byte kedua atau warna hijau (Green), atau dapat merupakan kombinasi seperti penyisipan bit pesan pada byte pertama dan byte terakhir (pada byte warna merah dan biru). Namun pada penelitian ini byte yang akan digunakan untuk menyembunyikan pesan terenkripsi hanya bit terakhir pada byte pertama pada tiap pixel-nya, yaitu segmen warna merah (Red). Perubahan tidak terjadi secara sekuensial tetapi terhadap diagonal segmen warna merah (Red). Pada penelitian
(47)
ini metode LSB yang digunakan dimodifikasi, dengan tujuan untuk menghindari pesan mampu dibaca oleh pihak lain yang curiga akan keberadaan pesan.
3.3.1 Tahapan Algoritma Modified LSB
Penggantian bit-bit segmen citra dengan menggunakan metode LSB pada byte-byte yang berurutan dapat dengan mudah dilacak oleh pihak yang curiga terhadap stego image, hal ini menyebabkan pesan dapat dibaca setelah pihak lain mampu melakukan ekstraksi dengan metode LSB. Untuk menghindari kecurigaan dari pola teratur yang dihasilkan oleh penggantian bit LSB pada byte-byte yang berurutan, metode LSB pada penelitian ini tidak mengubah byte-byte segmen citra secara berurutan melainkan terhadap diagonal segmen citra.
Penyisipan pesan ke dalam cover image dilakukan dengan mengganti bit-bit LSB pada diagonal-diagonal byte warna merah (Red) mulai dari byte kiri atas ke kanan bawah. Hal ini diharapkan agar perubahan bit-bit tersebut tidak menimbulkan kecurigaan dan pesan dalam stego image tidak mudah dilacak.
Pesan yang disisipkan berupa cipherteks hasil enkripsi algoritma RSA. Sebelum melakukan penyisipan cipherteks ke dalam cover image, harus diketahui terlebih dahulu panjang cipherteks dalam bentuk biner untuk menentukan besar resolusi atau dimensi minimal dari cover image yang dapat digunakan.
Untuk mendapatkan nilai biner dari cipherteks, sistem akan mengubah blok-blok cipherteks dalam bentuk desimal ke bentuk binernya. Cipherteks hasil enkripsi diubah ke dalam bentuk biner 20 bit untuk masing-masing blok cipherteks. Bit-bit ini nantinya yang akan disisipkan ke dalam cover image. Untuk menandai batas akhir dari penyisipan tersebut cipherteks ditambahi karakter khusus, sebagai penanda, yaitu “/”.
Dikarenakan byte yang digunakan untuk menyembunyikan cipherteks hanya byte yang terletak pada diagonal segmen citra. Maka untuk mengetahui dimensi minimal atau besar resolusi yang dapat digunakan hanya perlu mengetahui jumlah
(48)
keseluruhan bit pesan yang akan disisipkan ke dalam citra. Jadi dimensi minimal dari
cover image yang dapat digunakan untuk menyimpan cipherteks tersebut ke dalam segmen warna merah (Red) dengan menggunakan metode Modified LSB adalah:
Dimensi Minimal = jumlah bit cipherteks + 20 bit untuk karakter penanda = (jumlah blok cipherteks x 20) + 20 bit karakter penanda = (jumlah karakter plainteks x 10) + 20 bit karakter penanda
Jadi untuk dua blok cipherteks “545709 176892” akan membutuhkan resolusi minimal cover image sebesar:
Dimensi minimal = (jumlah blok cipherteks x 20) + 20 bit karakter penanda = (2 x 20) + 20
= 40 + 20
= 60
Ini berarti bahwa resolusi atau dimensi minimal yang dibutuhkan untuk menyimpan cipherteks tersebut dengan menggunakan metode Modified LSB adalah sebesar 60 x 60 pixel.
Untuk penyisipan bit cipherteks hanya pada komponen warna merah dengan menggunakan metode LSB pada umumnya, citra sebesar 60 x 60 pixel akan mampu menampung cipherteks sebanyak 3600 bit, dimana jumlah tersebut sama dengan 179 blok cipherteks + 20 bit karakter penanda, yang berarti karakter plainteks maksimal yang dapat ditampung citra tersebut adalah sebanyak 358 karakter.
Setelah memilih cover image yang sesuai untuk menampung cipherteks, penyisipan dapat dilakukan dengan menggunakan metode Modified LSB, yaitu mengganti bit-bit terakhir pada byte komponen warna merah pada citra dengan bit-bit cipherteks. Untuk blok cipherteks “545709 176892” akan dilakukan konversi sebelum disembunyikan ke dalam cover image, dimana untuk tiap blok cipherteks tersebut akan diubah ke dalam biner 20 bit sebagai berikut:
(49)
“545709 176892” = 10000101001110101101 00101011001011111100
Data biner ini akan ditambah 20 bit untuk karakter penanda “/” yaitu,
00000000000000101111. Sehingga data yang akan disembunyikan ke dalam cover image menjadi:
1000010100111010110100101011001011111100 00000000000000101111
Bit-bit cipherteks inilah yang nanti akan disembunyikan ke dalam cover image
dengan menggunakan metode Modified LSB.
Penyembunyian bit-bit cipherteks dilakukan hanya pada byte komponen warna merah dari suatu citra yang digunakan sebagai cover image, sehingga sistem akan memisahkan citra ke dalam 3 komponen warna terlebih dahulu dan hanya akan menggunakan data pada komponen warna merah saja. Misalkan terdapat potongan
pixel komponen data citra sebagai berikut:
Segmen warna merah (Red):
Gambar 3.3 Contoh Matriks Pixel Citra Warna Merah … 63 237 115 54 237 237 107
193 145 85 121 97 107 167 163 137 85 54 89 76 101 101 43 70 154 213 69 189 63 237 115 54 237 237 107 163 37 171 98 121 171 76 29 50 64 163 37 171 203 …
(50)
Segmen warna hijau (Green):
Gambar 3.4 Contoh Matriks Pixel Citra Warna Hijau
Segmen warna biru (Blue):
Gambar 3.5 Contoh Matriks Pixel Citra Warna Biru
Penyisipan pesan dengan menggunakan metode Modified LSB hanya akan dilakukan pada segmen warna merah (Red). Sistem hanya akan mengambil segmen warna merah dan akan menyisipkan cipherteks secara diagonal dari byte kiri atas ke kanan bawah. Untuk potongan segmen warna merah di atas, bit-bit cipherteks akan disembunyikan pada diagonalnya dengan ilustrasi sebagai berikut:
… 0 72 10 15 101 20 15 100 0 10 15 20 27 49 68 101 95 74 19 6 101 59 30 70 100 0 29 98 101 7 28 54 51 47 87 35 0 0 8 32 14 50 101 50 101 101 70 90 100 …
… 10 10 10 0 29 37 59 15 10 0 56 87 99 101 10 13 16 76 88 65 101 5 24 37 51 74 80 96 12 29 39 58 74 81 101 15 43 53 65 77 81 109 10 27 46 72 84 91 98 …
(51)
Gambar 3.6 Contoh Matriks Pixel Citra Warna Merah
Bilangan dengan tulisan miring bercetak tebal pada potongan segmen warna merah di atas adalah byte-byte yang akan diganti dengan bit-bit cipherteks. Dikarenakan penyisipan pesan hanya akan mengganti bit-bit terakhir pada diagonal segmen warna merah satu lebih tingi atau satu lebih rendah, hal ini tidak akan mengubah citra khususnya warna merah dengan mencolok. Begitu juga untuk ukuran file stego image tidak akan mengalami perubahan dari cover image sebelum disisipi cipherteks.
Gambar 3.7 Contoh Matriks Pixel Citra Warna Merah yang Telah Disisipkan Bit-Bit Cipherteks
Setelah cipherteks disembunyikan ke dalam cover image, akan dihasilkan
stego image sebagai hasil dari proses embedding tersebut. Stego image ini yang akan … 63 237 115 54 237 237 107
193 145 85 121 97 107 167
163 137 85 54 89 76 101
101 43 70 154 213 69 189
63 237 115 54 237 237 107
163 37 171 98 121 171 76
29 50 64 163 37 171 203 …
… 62 237 115 54 237 237 107
193 145 85 121 97 107 167
163 137 84 54 89 76 101
101 43 70 155 213 69 189
63 237 115 54 237 237 107
163 37 171 98 121 170 76
(52)
dikirimkan kepada penerima pesan untuk selanjutnya akan diekstraksi, yaitu dengan mengambil data komponen warna merah, kemudian memilih nilai bit-bit terakhir dari byte yang terletak hanya pada diagonal segmen warna merah tersebut. Setelah didapat bit-bit tersebut, sistem akan menerjemahkan tiap 20 bit ke dalam bentuk desimal, dan proses ini akan berhenti sampai di dapat biner dari karakter penanda yang digunakan sebagai penanda akhir dari cipherteks yang disisipi oleh pengirim pesan.
3.4Perancangan Sistem
Perancangan sistem dilakukan agar memudahkan implementasi dalam pengembangan sistem. Perancangan sistem dapat berupa perancangan dalam bentuk flowchart, use case diagram, pseudocode maupun perancangan antarmuka (interface). Perancangan ini nantinya yang akan menjadi patokan dalam pengembangan sistem selanjutnya.
3.4.1 Flowchart
Flowchart merupakan gambaran yang berupa bagan atau grafik dari langkah-langkah dan urutan-urutan prosedur dari suatu program. Untuk memahami proses pada sistem keamanan data ini, berikut adalah beberapa flowchart untuk menjelaskan proses kerja dari sistem yang dirancang:
3.4.1.1Flowchart Gambaran Umum Sistem
Flowchart gambaran umum sistem ini menggambarkan keseluruhan proses yang terjadi pada sistem secara umum. Pada flowchart ini akan terlihat gambaran umum proses yang terjadi pada sistem, mulai dari proses embed, extract, encryption, dan
(53)
Gambar 3.8 Flowchart Gambaran Umum Sistem
Halaman
Home
tidak
Ya Mulai
Exit Extract Embed
Pilih Stego
Image
tidak tidak
Ya
Cipherteks
Input Kunci Privat
Plainteks
Ya
Random Kunci
Input Plainteks
Cipherteks
Pilih Cover
Image
Stego
Selesai Help tidak
Ya
Ekstraksi
Enkripsi
Embedding Dekripsi
Halaman Extract
Halaman
Embed Halaman
(54)
3.4.1.2Flowchart Proses Enkripsi
Proses enkripsi dengan Algoritma RSA pada sistem ini dapat digambarkan dengan
flowchart berikut:
Tidak
Tidak Mulai
Ya
Random
p dan q prima?
.
Random
≡
Gcd
,
Ya
Kunci Publik, Kunci Privat
(55)
Gambar 3.9 Flowchart Proses Enkripsi
3.4.1.3Flowchart Proses Dekripsi
Proses dekripsi untuk mendapatkan plainteks dari cipherteks dengan Algoritma RSA pada sistem ini dapat digambarkan dengan flowchart pada Gambar 3.10.
A
Input Plainteks
Ubah plainteks menjadi 3 angka desimal ASCII
Ubah tiap 6 digit angka desimal menjadi 1 blok
Blok‐blok Cipherteks
Selesai Panjang plainteks ==
ganjil
Tidak
Plainteks + “.” Ya
(56)
Gambar 3.10 Flowchart Proses Dekripsi Mulai
Blok cipherteks
Input Kunci Privat d & n
Blok plainteks
Konversi tiap 3 digit angka desimal ke ASCII
Plainteks
Selesai
Pjg =genap & endchar
= “.”
Plainteks = plainteks Plainteks =
plainteks – “. “
Plainteks
Ya
(57)
3.4.1.4Flowchart Proses Embedding
Untuk menyisipkan cipherteks ke dalam cover image penyembunyian pesan dilakukan dengan menggunakan metode Modified LSB yang mengganti diagonal-diagonal byte komponen warna merah pada citra. Proses penyembunyian pesan tersebut dapat digambarkan dengan flowchart berikut:
Tidak Tampilkan pesan Error
A
Tambahkan cipher dgn karakter ‘/’ sbg penanda akhir
dr pesan
Mulai
Blok‐blok cipherteks
Dimensi minimal = (Jlh blok cipher * 20) +20
Pilih cover image .bmp
Cover image
dimensi minimal
Ya
Ambil segmen warna merah
Ubah cipher ke dalam biner 20 bit
(58)
Gambar 3.11 Flowchart Proses Embedding Transpose matriks
pesan/cipher
A
Bentuk matriks .
Letakkan pesan ke diagonal‐ diagonal matriks buatan (Zeros+2)
Ganti bit‐bit terakhir diagonal byte merah dengan bit diagonal matriks
buatan
Stego image
Simpan
Nama file baru = Nama file yg
telah ada
Ya
Konfirmasi
File baru.bmp
Selesai
(59)
3.4.1.5Flowchart Proses Extracting
Ekstraksi dilakukan untuk memisahkan cipherteks yang tersembunyi dari stego image. Flowchart untuk proses ekstraksi diperlihatkan pada Gambar 3.12.
Gambar 3.12 Flowchart Proses Extracting Mulai
Pilih stego image .bmp
Ambil komponen warna merah
Ambil bit‐bit terakhir dari diagonal byte merah
Pesan error: “Tidak ada pesan tersembunyi”
Konversi e dalam bentuk desimal
/′
Blok‐blok cipherteks
Selesai Ya
e == (eof) Tidak
Tidak
e = [cipherteks]
Cipherteks = [e]
Cipherteks = [ ] Ya
(60)
3.4.2 Use Case Diagram
Fungsionalitas sistem digambarkan dalam bentuk use case diagram. Dimana sebuah
use case merepresentasikan sebuah interaksi antara aktor dengan sistem. Gambar 3.13 berikut adalah use case diagram dari sistem keamanan data.
Gambar 3.13 Use Case Sistem
SISTEM
Embed
Extract
Input Plaintext
Decrypt Input Private Key
Extracting Select Image
Embedding
Select Image Encrypt Random p & q
(61)
Spesifikasi untuk masing-masing use case adalah sebagai berikut:
3.4.2.1 Use Case Embed
Spesifikasi use case Embed diperlihatkan pada tabel berikut:
Tabel 3.1 Spesifikasi Use Case Embed
Name Embed
Actors User
Trigger User memilih menu Embed
Preconditions User menggunakan sistem keamanan data
Post Conditions User dapat melihat hasil embedding
Success Scenario 1. User memilih menu Embed.
2. Sistem menampilkan halaman Embed.
3. User mengeksekusi tombol random dan sistem membangkitkan pasangan kunci publik dan privat.
4. User menuliskan pesan yang akan
dienkripsi/disembunyikan kemudian mengeksekusi tombol Encrypt.
5. Sistem melakukan proses Enkripsi.
6. User memilih image sebagai cover image dan mengeksekusi tombol Embed.
7. Sistem melakukan proses Embedding dan menampilkan hasil embedding.
8. User dapat melihat hasil embedding.
Alternative Flows -
3.4.2.2 Use Case Random p & q
(62)
Tabel 3.2 Spesifikasi Use Case Random p & q Name Random p & q
Actors User
Trigger User memilih menu Embed
Preconditions User mengakses menu Embed
Post Conditions User dapat melihat nilai p,q, kunci publik dan kunci privat
Success Scenario 1. User memilih menu Embed.
2. Sistem menampilkan halaman Embed. 3. User mengeksekusi tombol random.
4. Sistem membangkitkan p, q, pasangan kunci publik dan privat kemudian menampilkannya.
5. User dapat melihat nilai p, q, kunci publik dan kunci privat.
Alternative Flows -
3.4.2.3 Use Case Input Plaintext
Spesifikasi use case Input Plaintext dapat dilihat pada tabel berikut:
Tabel 3.3 Spesifikasi Use Case Input Plaintext Name Input Plaintext
Actors User
Trigger User telah mendapatkan kunci publik dan kunci privat
Preconditions User mengakses menu Embed
Post Conditions User dapat melihat pesan yang akan dienkripsi
Success Scenario User telah mendapatkan kunci publik dan kunci privat selanjutnya menginputkan plainteks yang akan dienkripsi
Alternative Flows -
3.4.2.4 Use Case Encrypt
(63)
Tabel 3.4 Spesifikasi Use Case Encrypt
Name Encrypt
Actors User
Trigger User telah menginputkan plainteks yang akan dienkripsi
Preconditions User mengakses menu Embed
Post Conditions User dapat melihat cipherteks hasil proses enkripsi
Success Scenario 1. User telah menginputkan plainteks yang akan dienkripsi. 2. User mengakses tombol Encrypt.
3. Sistem akan melakukan proses enkripsi terhadap plainteks yang diinputkan dan menampilkan cipherteksnya.
4. User dapat melihat cipherteks hasil proses enkripsi.
Alternative Flows -
3.4.2.5 Use Case Select Image (Menu Embed)
Spesifikasi use case Select Image (menu Embed) dapat dilihat pada tabel berikut:
Tabel 3.5 Spesifikasi Use Case Select Image (Menu Embed)
Name Select Image
Actors User
Trigger User telah mendapatkan cipherteks hasil enkripsi
Preconditions User mengakses menu Embed
Post Conditions Sistem menampilkan gambar yang dipilih oleh user sebagai cover image
Success Scenario 1. User telah mendapatkan cipherteks yang akan disembunyikan dalam image.
2. User mengeksekusi tombol select image.
3. Sistem menampilkan pop-up window untuk mengakses lokasi penyimpanan gambar.
4. User memilih image bmp (24 bit) yang diinginkan. 5. Sistem menampilkan gambar yang dipilih oleh user.
(1)
cipherteks = [];
for j=1:20:numel(bitciph) %untuk tiap 20 bit diperiksa
cipher = bitciph(j:j+19); cipher = (num2str(cipher)); cipher(cipher == ' ')=[]; cipher = bin2dec(cipher);
if cipher == end_char %apakah 20 bit tersebut mrpkn end_char
break;
elseif j == (b-19) %apakah hingga bit terakhir tidak ditemukan end_char
errordlg({'There is no hidden message','Select another image'},'Error','modal');
guidata(hObject,handles); cipherteks = [];
set(handles.dekripsi_btn,'Enable','off'); break;
else cipherteks = [cipherteks cipher];
set(handles.dekripsi_btn,'Enable','on'); end
end
set(handles.cipherteks_ed,'String',cipherteks);
function cipherteks_ed_Callback(hObject, eventdata, handles)
function cipherteks_ed_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function d_ed_Callback(hObject, eventdata, handles)
function d_ed_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function n_ed_Callback(hObject, eventdata, handles)
function n_ed_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function dekripsi_btn_Callback(hObject, eventdata, handles) d = str2num(get(handles.d_ed,'String'));
n = str2num(get(handles.n_ed,'String'));
if d >= 1 & n >= 1
(2)
l = length(cipherteks); blokplain = [];
for i = 1:l %dekripsi tiap 1 blok cipher
z = 1; %p=c^d mod n
for j = 1:d %---
z = mod ((cipherteks(i)*z),n); %modulo exponensial
end %---
A = [z];
blokplain = [blokplain A]; end
[s1 s2] = size(blokplain);
for i = 1:s1 temp = [];
for j = 1:s2
temp1 = blokplain(j); temp2 = num2str(temp1); temp2(temp2 == ' ') = [];
if length(temp2) == 5 temp2 = ['0' temp2]; elseif length(temp2) == 4 temp2 = ['0' '0' temp2]; end
temp = [temp temp2]; end
end
l = length(temp); plainteks = [];
if mod(l,6) ~= 0 plainteks = ' ';
else for k=1:3:l
plain = temp(k:k+2); plain = str2num(plain); plain = char(plain);
plainteks = [plainteks plain]; end
ld = length(plainteks); ldgenap = mod(ld,2); endchar = plainteks(ld);
if endchar == '.' && ldgenap == 0 plainteks(ld) = [];
end
end
(3)
set(handles.plainteks_ed,'String',plainteks); set(handles.reset2_btn,'Enable','on');
else
errordlg({'Private key must a numeric value','and can not be empty'},'Error','modal');
guidata(hObject,handles);
end
function reset_btn_Callback(hObject, eventdata, handles) set(handles.cipherteks_ed,'String','');
cla(handles.stego_axes,'reset'); set(handles.stego_axes,'Box','on'); set(handles.stego_axes,'XTick',[]); set(handles.stego_axes,'YTick',[]); set(handles.stego_axes,'LineWidth',2);
set(handles.extract_btn,'Enable','off'); set(handles.reset_btn,'Enable','off'); set(handles.dekripsi_btn,'Enable','off'); set(handles.reset2_btn,'Enable','off');
set(handles.d_ed,'String',''); set(handles.n_ed,'String','');
set(handles.plainteks_ed,'String','');
function reset2_btn_Callback(hObject, eventdata, handles) set(handles.d_ed,'String','');
set(handles.n_ed,'String','');
set(handles.plainteks_ed,'String','');
set(handles.reset2_btn,'Enable','off');
function plainteks_ed_Callback(hObject, eventdata, handles)
function plainteks_ed_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
4.
Halaman Detail (Detail.m)
function varargout = detail(varargin) gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @detail_OpeningFcn, ...
'gui_OutputFcn', @detail_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
(4)
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
function detail_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject;
guidata(hObject, handles);
function varargout = detail_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output;
function detail_ed_Callback(hObject, eventdata, handles)
function detail_ed_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
5.
Fungsi Details (Details.m)
function details(M,I,S)
[s1 s2] = size(M); s = (s1*s2);
A=[];B=[];C=[];D=[];E=[]; X=[];Y=[];
for i=1:s numb = i; A=[A ; numb]; end
A = num2str(A);
for j=1:s
KR = ' x ';
Kr = ' | '; kr = ' | '; B = [B ; KR];
C = [C ; Kr]; E = [E ; kr]; end
for k=1:s2
cipher = M(:,k); D = [D ; cipher]; end
for l=1:s
Cover = I(l,l); X = [X ; Cover]; end
X = num2str(X);
(5)
for m=1:s
Stego = S(m,m); Y = [Y ;Stego]; end
Y = num2str(Y);
set(findobj(detail,'Tag','detail_ed'),'String',[A B A E D C X C Y C]);
end
6.
Fungsi Help (Help.m)
function varargout = Help(varargin) gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @Help_OpeningFcn, ...
'gui_OutputFcn', @Help_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
function Help_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject;
guidata(hObject, handles);
function varargout = Help_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output;
function edit1_Callback(hObject, eventdata, handles)
function edit1_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function edit2_Callback(hObject, eventdata, handles)
function edit2_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function edit6_Callback(hObject, eventdata, handles)
(6)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function edit4_Callback(hObject, eventdata, handles)
function edit4_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
7.
Fungsi Exit (Exit.m)
function Exit close all