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
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
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,
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
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,
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
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.
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.
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.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
Daftar Pustaka 99
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
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
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
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.
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.
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.
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.
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.
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
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
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 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).
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
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
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
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:
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:
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.
= 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].
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.
[image:31.595.117.520.485.619.2]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
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.
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.
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
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
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:
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.
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
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
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
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).
[image:41.595.146.494.422.509.2]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
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
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:
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
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
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.
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 “/”.
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.
“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:
[image:49.595.205.428.475.643.2]Segmen warna merah (Red):
Gambar 3.3 Contoh Matriks Pixel Citra Warna Merah
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 …
[image:50.595.206.428.398.560.2]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 …
[image:51.595.203.428.479.647.2]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
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
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
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
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
[image:56.595.195.446.97.675.2]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
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
[image:58.595.236.396.92.687.2]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 = [ ]
[image:59.595.173.456.187.733.2]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
[image:60.595.111.531.205.722.2]Spesifikasi untuk masing-masing use case adalah sebagai berikut:
3.4.2.1 Use Case Embed
[image:61.595.107.528.249.649.2]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
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
[image:62.595.106.527.96.358.2]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
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 meliha