Implementasi Sistem Keamanan Data Menggunakan Algoritma RSA Dan Modified LSB

(1)

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 

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 

 

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 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