• Tidak ada hasil yang ditemukan

Implementasi Algoritma Rc4 Dan Metode Modified Lsb Untuk Pengamanan Text File

N/A
N/A
Protected

Academic year: 2017

Membagikan "Implementasi Algoritma Rc4 Dan Metode Modified Lsb Untuk Pengamanan Text File"

Copied!
90
0
0

Teks penuh

(1)

LISTING PROGRAM

void BtCariTeksClick(object sender, EventArgs e) { OpenFileDialog openfile = new OpenFileDialog(); openfile.Filter = "Text Files | *.txt";

if (openfile.ShowDialog() == DialogResult.OK) {

tbPesan1.Text = File.ReadAllText(openfile.FileName); }

}

void BtCariCoverClick(object sender, EventArgs e) { if (tbPesan1.Text == "" | tbKunci1.Text =="") {

MessageBox.Show("Silahkan masukkan pesan dan kunci terlebih dahulu !", "Peringatan",

MessageBoxButtons.OK,MessageBoxIcon.Warning); return;

}

OpenFileDialog openfile = new OpenFileDialog(); openfile.Filter = "Bitmap Files | *.bmp";

if (openfile.ShowDialog() == DialogResult.OK) {

bmp = (Bitmap)Image.FromFile(openfile.FileName); pesan."+ "Silahkan pilih gambar yang lain","Peringatan"); }

(2)

void BtSimpanStegoClick(object sender, EventArgs e) { SaveFileDialog savefile = new SaveFileDialog(); savefile.Filter = "Bitmap Files | *.bmp";

if (savefile.ShowDialog() == DialogResult.OK) { bmp.Save(savefile.FileName, ImageFormat.Bmp);

MessageBox.Show("Gambar stego telah berhasil disimpan."); clearAll();

} }

void BtProsesEnkripsiClick(object sender, EventArgs e) { if (pbCover.Image == null) {

MessageBox.Show("Silahkan, masukkan gambar cover terlebih dahulu !", "Peringatan",MessageBoxButtons.OK,MessageBoxIcon.Warning)

cipherteks = cipherteks + (char)rc4.PRGA((byte)plainteks[pos],i,j); i = rc4.getValue("i");

j = rc4.getValue("j"); }

bmp = (Bitmap)MLSB.embedText(cipherteks,bmp); tbCipherteks1.Text = cipherteks

pbStego1.Image = bmp;

MessageBox.Show("Informasi telah berhasil disembunyikan."); }

void BtCariStegoClick(object sender, EventArgs e) { OpenFileDialog openfile = new OpenFileDialog(); openfile.Filter = "Bitmap Files | *.bmp";

if (openfile.ShowDialog() == DialogResult.OK) {

pbStego2.Image = Image.FromFile(openfile.FileName); tbPStego.Text = pbStego2.Image.Height.ToString()+" px"; tbLStego.Text = pbStego2.Image.Width.ToString()+" px"; }

(3)

void BtSimpanPesanClick(object sender, EventArgs e) { SaveFileDialog savefile = new SaveFileDialog(); savefile.Filter = "Text Files | *.txt";

if (savefile.ShowDialog() == DialogResult.OK) {

File.WriteAllText(savefile.FileName, tbPesan2.Text); MessageBox.Show("Pesan telah berhasil disimpan."); }

}

void BtProsesEkstrakClick(object sender, EventArgs e) { if (pbStego2.Image == null) {

MessageBox.Show("Silahkan, masukkan gambar stego terlebih dahulu",

"Peringatan",MessageBoxButtons.OK,MessageBoxIcon.Warning); return;

}

elseif (tbKunci2.Text == "") {

MessageBox.Show("Silahkan, masukkan kunci terlebih dahulu", "Peringatan", MessageBoxButtons.OK,MessageBoxIcon.Warning);

cipherteks = MLSB.extractText(bmp);

if (cipherteks == "") {

MessageBox.Show("Maaf, gambar stego yang Anda masukkan tidakmengandung pesan","Peringatan",MessageBoxButtons.OK,MessageBoxIcon.

plainteks = plainteks + (char)rc4.PRGA((byte)cipherteks[pos],i,j); i = rc4.getValue("i");

j = rc4.getValue("j"); }

tbCipherteks2.Text = cipherteks; tbPesan2.Text = plainteks;

(4)
(5)

MLSB.cs

public static bool capacityCheck(string text, Bitmap bmp) { int cap=0;

public static int reverseBits(int n) { int result = 0;

(6)
(7)
(8)
(9)

Dokumen Pengujian

Kunci : wonderful

Cover Object :

Plainteks :

Asal mula nama Raja Ampat menurut mitos masyarakat setempat berasal dari seorang wanita yang menemukan tujuh telur. Empat butir di antaranya menetas menjadi empat orang pangeran yang berpisah dan masing-masing menjadi raja yang berkuasa di Waigeo, Salawati, Misool Timur dan Misool Barat. Sementara itu, tiga butir telur lainnya menjadi hantu, seorang wanita, dan sebuah batu.

Kepulauan Raja Ampat merupakan tempat yang sangat berpotensi untuk dijadikan sebagai objek wisata, terutama wisata penyelaman. Perairan Kepulauan Raja Ampat menurut berbagai sumber, merupakan salah satu dari 10 perairan terbaik untuk diving site di seluruh dunia. Bahkan, mungkin juga diakui sebagai nomor satu untuk kelengkapan flora dan fauna bawah air pada saat ini.

Tim ahli dari Conservation International, The Nature Conservancy, dan Lembaga Oseanografi Nasional (LON) Lembaga Ilmu Pengetahuan Indonesia (LIPI) pernah melakukan penilaian cepat pada 2001 dan 2002. Hasilnya, mereka mencatat di perairan ini terdapat lebih dari 540 jenis karang keras (75% dari total jenis di dunia), lebih dari 1.000 jenis ikan karang, 700 jenis moluska, dan catatan tertinggi bagi gonodactyloid stomatopod crustaceans. Ini menjadikan 75% spesies karang dunia berada di Raja Ampat. Tak satupun tempat dengan luas area yang sama memiliki jumlah spesies karang sebanyak ini.

(10)
(11)
(12)

DAFTAR RIWAYAT HIDUP

CURRICULUM VITAE

I. DATA PRIBADI / Personal Identification

Nama Lengkap : Febri Aro Gea

Tempat / Tgl. Lahir : Binjai / 6 Februari 1993 Jenis Kelamin : Laki-laki

Agama : Kristen Protestan

Kebangsaaan : Indonesia

Alamat : Jalan Citra Anggrek No 15 Tj Sari Medan

Telepon : +6283197889520

Tinggi / Berat : 178 cm / 65 kg

Email : febriarogea@gmail.com

II. KESEHATAN / Health

Tidak memiliki cacat fisik maupun mental dan tidak meiliki penyakit bawaan.

III. KEMAMPUAN / Capabilities

Bahasa Pemrograman : C++, Java, C#, VB

Database : MySQl

Lainnya : Adobe Flash, HTML, Photoshop

IV. PENDIDIKAN FORMAL / Formal Eduction

 [2011 – 2016]

S1 Ilmu Komputer, Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara

1. Juara II Kompetisi “Problem Solving” IMILKOM Contest [2012]

VI. PENGALAMAN KERJA / Working Experience

1. Asisten Laboratorium di Ilmu Komputer Laboratory Center Fasilkom-TI USU [2013-2016]

VII. SEMINARS / Seminars

(13)

DAFTAR PUSTAKA

Ambler, S. W. 2005. The Elements of UMLTM 2.0 Style. Cambridge University Press

: Cambridge.

Cole, E. 2003. Hiding in Plain Sight : Steganography and the art of covert

communication. Wiley Publishing, Inc : Indianapolis.

Fiansyah, E. 2008. Implementasi algoritma dasar RC4 stream cipher dan pengacakan

plaintext dengan teknik dynamic blocking pada aplikasi sistem informasi

kegiatan skripsi di departermen teknik elektro. Skripsi. Universitas Indonesia.

Kipper, G. 2004. Investigator’s Guide to Steganography. CRC Press : Boca Raton.

Kromodimoeljo, S. 2009. Teori dan Aplikasi Kriptografi. SPK IT Consulting : Jakarta.

Lubis, R.F.A., Analisis Kombinasi Algoritma Watermaking Modified Least

Significant Bit dengan Least Significant Bit +1. Tesis. Universitas Sumatera

Utara.

Menezes, J., Oorschot, P. & Vanstone, S. 1996. Handbook of Applied Cryptography.

CRC Press : Boca Raton.

Mollin, R.A. 2007. An Introduction to Cryptography. 2nd Edition. Chapman&Hall :

Boca Raton.

Munir, R. 2006. Kriptografi. Informatika : Bandung.

Sadikin, R. 2012. Kriptografi untuk Keamanan Jaringan. Andi : Yogyakarta.

Schneier, B. 1996. Applied Cryptography : Protocol, algorithms and source code in

C. 2nd Edition. Wiley and Sons, Inc : New York.

Simamora, H.I.T. 2013. Implementasi algoritma elgamal dengan pembangkit bilangan

prima lehmann dan algoritma least significant bit (LSB) dengan cover image

bitmap untuk keamanan data text. Skripsi. Universitas Sumatera Utara.

Stallings, W. 2005. Cryptography and Network Security Principles and Practices. 4th

Edition. Prentice Hall : Upper Saddle River.

Sutoyo, T., Mulyanto, E. & Wijanarto. 2009. Teori Pengolahan Citra Digital. Andi :

Semarang.

Suryani, K.N. 2009. Algoritma RC4 sebagai metode enkripsi. (Online)

http://informatika.stei.itb.ac.id/~rinaldi.munir/Matdis/2009-2010/Makalah0910

/MakalahStrukdis0910-058.pdf (diakses 20 Oktober 2015).

Whitten, J. L., Bentley L. D. 2007. Systems Analysis and Design Methods.

(14)

BAB 3

ANALISIS DAN PERANCANGAN

3.1 Analisis Sistem

Analisis sistem terdiri dari fase-fase berbeda yang mendeskripsikan pengembangan

sistem. Dalam tugas akhir ini ada dua fase analisis yaitu analisis masalah dan analisis

kebutuhan.

3.1.1. Analisis masalah

Analisis masalah yang dilakukan adalah memberikan perlindungan informasi dengan

cara mengenkripsi pesan dengan menggunakan algoritma RC4, kemudian pesan yang

telah dienkripsi tersebut disisipkan ke dalam suatu gambar dengan menggunakan

metode LSB yang telah di modifikasi. Gambaran masalah secara umum dalam

penelitian ini ditunjukkan pada gambar 3.1. menggunakan diagram Ishikawa.

Pengamanan file teks dengan RC4 dan Modified LSB mesin

Saluran komunikasi

tidak aman Ingin komunikasi aman Terbatas mendeteksi perubahan tdk signifikan

Citra yg berubah signifikan mengundang kecurigaan

Kriptografi menghasilkan kecurigaan Informasi dapat

diterima orang yg tdk berhak

(15)

3.1.2. Analisis kebutuhan

Analisis kebutuhan terbagi dua bagian, yaitu kebutuhan fungsional dan kebutuhan

nonfungsional. Kebutuhan fungsional mendeskripsikan aktivitas yang disediakan dan

harus dipenuhi suatu sistem, sedangkan kebutuhan nonfungsional mendeskripsikan

fitur, karakteristik dan batasan lainnya.

a. Kebutuhan fungsional

1. Fungsi enkripsi

Melakukan pengenkripsian terhadap pesan dengan kunci tertentu untuk

menghasilkan cipherteks. Pesan yang dienkripsi dapat di input langsung oleh

pengguna melalui keyboard atau dapat juga diinput melalui pembacaan file

teks.

2. Fungsi dekripsi

Melakukan pendekripsian terhadap cipherteks dengan kunci tertentu untuk

menghasilkan plainteks.

3. Fungsi penyisipan

Melakukan penyisipan pesan rahasia ke dalam citra berformat BMP yang

dipilih oleh pengguna.

4. Fungsi ekstrak

Melakukan pengekstrakan pesan rahasia dari citra berformat BMP yang

didalamnya terdapat pesan rahasia.

b. Kebutuhan nonfungsional

1. Performa

Perangkat lunak yang dibangun dapat melakukan fungsi-fungsi kebutuhan

dengan efektif dan efisien.

2. Mudah dipelajari dan digunakan

Perangkat lunak memiliki tampilan dan cara langkah kerja yang mudah untuk

dipelajari.

3. Dokumentasi

Perangkat lunak memiliki panduan penggunaan perangkat lunak.

4. Kontrol

Perangkat lunak memiliki kontrol untuk hal-hal yang di luar dari mekanisme

sistem, seperti input yang tidak sesuai, konfirmasi penyelesaian tugas dan

(16)

3.2 Perancangan Sistem

Perancangan sistem dilakukan untuk memberikan gambaran sistem yang akan

dibangun sehingga mempermudah dalam melakukan implementasi ataupun evaluasi.

Sistem dirancang dalam bentuk flowchart, use case diagram, activity diagram,

sequence diagram dan perancangan antarmuka (interface).

3.2.1. Perancangan algoritma RC4

Algoritma RC4 dibagi menjadi dua tahapan, yaitu inisiasi vector S dan stream

generation (pembangkitan aliran kunci). Flowchart kedua tahapan tersebut

digambarkan pada Gambar 3.2.

Mulai

i = 0

i < 256

S[i] = i

S[j] = kunci [i mod panjang kunci] kunci

(17)

3.2.2. Perancangan enkripsi RC4

Proses enkripsi dilakukan dengan terlebih dahulu melakukan inisiasi vector S untuk

mendapatkan vector S yang bersifat acak, kemudian dilakukan pembangkitan aliran

kunci untuk mendapatkan kunci enkripsi. Kemudian cipherteks didapatkan dari hasil

operasi XOR antara pesan dengan kunci. Flowchart proses enkripsi ditunjukkan pada

gambar 3.3.

Mulai

pos,i,j = 0 KSA (Kunci)

pesan, kunci

Selesai

pos < length(pesan)

cipherteks = PRGA(pesan,i,j) pos = pos + 1

cipherteks Ya

Tidak

Gambar 3.3 Flowchart enkripsi

3.2.3. Perancangan dekripsi RC4

Proses dekripsi memiliki langkah yang sama dengan proses enkripsi oleh karena pada

algoritma RC4 kunci yang digunakan untuk dekripsi sama dengan kunci yang

(18)

Mulai

pos,i,j = 0 KSA (Kunci) cipherteks, kunci

Selesai pos < length(cipherteks)

pesan = PRGA(cipherteks,i,j) pos = pos + 1

pesan Ya

Tidak

Gambar 3.4 Flowchart Dekripsi

3.2.4. Perancangan penyisipan modified LSB

Dalam penelitian ini dilakukan modifikasi mekanisme penyisipan pesan ke dalam

gambar, jika pada metode LSB setiap komponen warna pada tiap-tiap pixel disisipkan

pesan maka dalam penelitian ini penyisipan dilakukan dengan ketentuan berikut:

- komponen warna merah akan disisipi pesan jika nilainya lebih kecil dari 100

- komponen warna hijau akan disisipi pesan jika nilainya lebih kecil dari 122

- komponen warna biru akan disisipi pesan jika nilainya lebih kecil dari 114

(19)

R < 100 State = Hiding

charIndex >= length (teks) state = Filling_With_Zeros

(20)

3.2.5. Perancangan ekstraksi modified LSB

Sama seperti pada penyisipan, ekstraksi dilakukan dengan aturan sebagai berikut,

- komponen warna merah akan diekstrak jika nilainya lebih kecil dari 100

- komponen warna hijau akan diekstrak jika nilainya lebih kecil dari 122

- komponen warna biru akan diekstrak jika nilainya lebih kecil dari 114

Flowchart ekstrak pesan dari citra digambarkan pada Gambar 3.6.

(21)

3.2.6. Use-case diagram

Use-case diagram merupakan pemodelan yang mengidentifikasi dan menjelaskan

fungsi-fungsi yang terdapat dalam sistem (Whitten, 2007). Gambar 3.7. berikut adalah

use case diagram dari sistem yang akan dibangun.

Pengguna

Sembunyikan Pesan

Tampilkan Pesan

Enkripsi pesan

Embed cipherteks

Ekstraksi gambar

Dekripsi cipherteks «extends»

«extends»

«extends»

«extends»

Gambar 3.7. Use-case Diagram Sistem

Use-case narrative merupakan penjelasan dari setiap use-case yang ada dalam

diagram use-case. Tabel 3.1 sampai tabel 3.6 berikut ini adalah use-case narrative

dari diagram use-case diagram sistem yang dibangun.

Tabel 3.1. Use-case narrative Sembunyikan Pesan

Name Sembunyikan pesan

Actors User

Trigger User memilih menu sembunyikan pesan

Preconditions Pengguna menggunakan aplikasi sistem keamanan data

Post Conditions User dapat melihat dan menyimpan hasil penyisipan pesan

Succes Scenario

1. User memilih menu sembunyikan pesan.

2. Sistem menampilkan halaman sembunyikan pesan.

3. User melakukan inputan teks, kunci dan cover-image.

4. Sistem melakukan proses enkripsi dan embeding.

(22)

Tabel 3.2. Use-case narrative Enkripsi Pesan

Name Enkripsi pesan

Actors Pengguna

Trigger Pengguna menekan tombol sembunyikan pesan.

Preconditions Terdapat pesan dan kunci enkripsi dalam form.

Post Conditions Sistem menampilkan cipherteks.

Succes Scenario

1. Form pesan dan kunci telah diisi.

2. Pengguna menekan tombol sembunyikan pesan.

3. Sistem melakukan enkripsi pesan.

4. Sistem menampilkan cipherteks.

Tabel 3.3. Use-case narrative Embed Cipherteks

Name Embed cipherteks

Actors Pengguna

Trigger Pengguna menekan tombol sembunyikan pesan

Preconditions Terdapat cipherteks dan cover-image dalam form.

Post Conditions Sistem menampilkan stego-image.

Succes Scenario

1. Form cipherteks dan cover-image telah diisi.

2. Pengguna menekan tombol sembunyikan pesan.

3. Sistem melakukan penyisipan cipherteks ke dalam citra.

4. Sistem menampilkan stego-image.

Tabel 3.4. Use-case narrative Tampilkan Pesan

Name Tampilkan pesan

Actors Pengguna

Trigger Pengguna menekan tombol tampilkan pesan

Preconditions Pengguna menggunakan aplikasi sistem keamanan data

Post Conditions User dapat melihat dan menyimpan pesan hasil ekstrasi

stego-image.

Succes Scenario

1. User memilih menu tampilkan pesan.

2. Sistem menampilkan halaman Tampilkan pesan.

3. User melakukan inputan stego-image dan kunci enkripsi.

4. Sistem melakukan proses ekstraksi dan dekripsi.

(23)

Tabel 3.5. Use-case narrative Ekstraksi Pesan

Name Ekstraksi pesan

Actors Pengguna

Trigger Pengguna menekan tombol tampilkan pesan.

Preconditions Terdapat stego-image dan kunci enkripsi dalam form.

Post Conditions Sistem menampilkan cipherteks.

Succes Scenario

1. Form pesan dan kunci telah diisi.

2. Pengguna menekan tombol sembunyikan pesan.

3. Sistem melakukan enkripsi pesan.

4. Sistem menampilkan cipherteks.

Tabel 3.6. Use-case narrative Dekripsi Cipherteks

Name Dekripsi cipherteks

Actors Pengguna

Trigger Pengguna menekan tombol sembunyikan pesan

Preconditions Terdapat cipherteks dan kunci dalam form.

Post Conditions Sistem menampilkan pesan.

Succes Scenario

1. Form cipherteks dan kunci telah diisi.

2. Pengguna menekan tombol tampilkan pesan.

3. Sistem melakukan dekripsi cipherteks.

4. Sistem menampilkan pesan.

3.2.7. Activity diagram

Activity diagram menggambarkan urutan aktifitas dalam sebuah sistem. Dalam sistem

terdapat dua buah activity diagram, yaitu activity diagram sembunyikan pesan dan

activity diagram tampilkan pesan.

a. Activity diagram sembunyikan pesan

Proses penyembunyian pesan dimulai dengan menginputkan pesan, kunci dan

gambar cover. Kemudian sistem akan melakukan perhitungan untuk menentukan

apakah pesan dapat disisipkan atau tidak. Jika pesan dapat disisip maka sistem akan

melakukan enkripsi pesan kemudian menyisipkannya ke dalam gambar. Activity

(24)

User System

Gambar 3.8. Diagram Activity Sembunykan Pesan

b. Activity diagram tampilkan pesan

Proses penampilan pesan dimulai dengan menginputkan pesan dan gambar stego.

Sistem akan melakukan ekstrak terhadap citra sehingga dihasilkan cipherteks

kemudian cipherteks tersebut akan didekripsi sehingga didapatkan pesan yang

semula.

(25)

3.2.8. Sequence diagram

Sequence diagram merupakan diagram yang menampilkan interaksi-interaksi yang

ada pada sistem secara berurutan. Pada sistem terdapat dua buah sequence diagram

yaitu sequence diagram proses sembunyikan pesan yang ditunjukkan pada Gambar

3.10 dan sequence diagram proses tampilkan pesan yang ditunjukkan pada Gambar

3.11.

Pengguna Form Sembunyikan Pesan Enkripsi Embed

input(pesan, gambar, kunci)

Enkripsi (pesan, kunci)

Cipherteks

Embed (cipherteks,gambar)

stego image

stego image

Gambar 3.10. Sequence Diagram Proses Sembunyikan Pesan

Pengguna Form Tampilkan Pesan Ekstrak Dekripsi

input(gambar, kunci)

Ekstrak (gambar)

Cipherteks

Dekripsi (cipherteks,kunci)

plainteks plainteks

(26)

3.2.9. Perancangan antarmuka (Interface)

Antarmuka merupakan sarana interaksi antara pengguna dengan sistem. Antarmuka

dirancang sedemikian mungkin agar penguna dapat dengan mudah menggunakan

sistem yang dibangun.

1. Halaman utama

Halaman utama merupakan tampilan awal sistem ketika sistem dijalankan. Pada

halaman utama terdapat tiga buah pilihan menu yaitu menu sembunyikan pesan,

menu tampilkan pesan dan menu keluar aplikasi. Perancangan halaman utama

ditunjukkan pada gambar 3.12.

Gambar 3.12. Perancangan Antarmuka Halaman Utama

Berikut ini merupakan keterangan rancangan antarmuka halaman utama :

1. List Menu, merupakan kumpulan menu yang berisi fungsi-fungsi dari sistem.

2. Tombol sembunyikan pesan merupakan tombol yang akan mengarahkan

pengguna ke halaman sembunyikan pesan.

3. Tombol tampilkan pesan merupakan tombol yang akan mengarahkan pengguna

ke halaman sembunyikan pesan.

(27)

2. Halaman sembunyikan pesan

Perancangan antar muka halaman sembunyikan pesan ditunjukkan pada gambar

3.13.

Gambar 3.13. Perancangan Antarmuka Halaman Sembunyikan Pesan

Berikut ini merupakan keterangan rancangan antarmuka halaman

sembunyikan pesan :

1. Tombol cari teks merupakan tombol untuk mencari file teks yang sudah

tersimpan di komputer pengguna.

2. Kotak kunci merupakan tempat memasukkan kunci enkripsi.

3. Kotak pesan merupakan tempat memasukkan pesan yang akan disembunyikan.

4. Tombol cari cover merupakan tombol untuk mencari cover-image.

5. Kotak gambar merupakan tempat untuk menampilkan cover-image yang telah

dipilih pengguna.

6. Tombol proses merupakan tombol untuk melakukan proses penyembunyian

pesan.

7. Kotak cipherteks merupakan tempat untuk menampilkan cipherteks hasil

dekripsi pesan.

(28)

3. Halaman tampilkan pesan

Perancangan antarmuka halaman tampilkan pesan ditunjukkan pada gambar 3.14.

Gambar 3.14. Perancangan Antarmuka Halaman Tampilkan Pesan

Berikut ini merupakan keterangan rancangan antarmuka halaman tampilkan

pesan :

1. Tombol cari stego merupakan tombol untuk mencari stego-image yang sudah

tersimpan di komputer pengguna.

2. Kotak kunci merupakan tempat untuk memasukkan kunci dekripsi.

3. Kotak stego merupakan tempat untuk menampilkan stego-image yang di input

pengguna.

4. Tombol proses merupakan tombol untuk melakukan proses penampilan pesan.

5. Kotak cipherteks merupakan kotak untuk menampilkan cipherteks hasil

ekstraksi stego-image.

6. Kotak pesan merupakan kotak untuk menampilkan pesan hasil dekripsi

(29)

4. Halaman petunjuk penggunaan

Perancangan antarmuka penggunaan aplikasi ditunjukkan pada gambar 3.15.

Gambar 3.15. Perancangan Antarmuka Petunjuk Penggunaan Perangkat Lunak

5. Form Tentang Aplikasi

Perancangan antarmuka tentang aplikasi ditunjukkan pada gambar 3.16.

(30)

BAB 4

IMPLEMENTASI DAN PENGUJIAN

4.1. Implementasi

Implementasi sistem merupakan lanjutan dari tahap analisis dan perancangan sistem.

Pada tahap ini dilakukan implementasi dari segala yang dibahas dalam tahap analisis

dan perancangan. Bahasa pemrograman yang digunakan adalah bahasa C# dan

dibangun dengan menggunakan Integrated Development Environment (IDE)

SharpDevelop versi 4.3.1.

4.1.1. Implementasi antarmuka (Interface)

1. Halaman utama

Halaman utama merupakan halaman yang pertama sekali akan ditampilkan ketika

sistem dijalankan. Antarmuka halaman utama ditunjukkan pada Gambar 4.1.

(31)

2. Halaman sembunyikan pesan

Halaman sembunyikan pesan merupakan halaman untuk melakukan proses enkripsi

dan penyisipan. Tampilan halaman sembunyikan pesan ditunjukkan pada gambar 4.2.

Gambar 4.2. Antarmuka Halaman Sembunyikan Pesan

3. Halaman tampilkan pesan

Halaman tampilan pesan merupakan halaman untuk melakukan proses ekstraksi dan

proses dekripsi. Tampilan halaman tampilkan pesan ditunjukkan pada gambar 4.3.

(32)

4.1.4 Implementasi algoritma RC4

Implementasi inisiasi vector S dalam bahasa pemrograman ditunjukkan pada Gambar

4.4, sedangkan implementasi stream generation (pembangkitan aliran kunci)

ditunjukkan pada Gambar 4.5.

Gambar 4.4. Implementasi Inisiasi Vector S

Gambar 4.5. Implementasi Pembangkitan Aliran Kunci

4.1.5 Implementasi metode modified LSB

Implementasi penyisipan pesan dengan metode modified LSB dalam bahasa

pemrograman ditunjukkan pada gambar 4.6. sedangkan untuk ekstraksi stego-image

(33)

Gambar 4.6. Implementasi Penyisipan Pesan

(34)

4.2. Pengujian

Pengujian merupakan tahap yang dilakukan untuk memastikan bahwa sistem yang

telah dibangun dapat berjalan dengan baik dan sesuai dengan analisis dan perancangan

sistem yang telah dibuat sebelumnya.

Dalam penelitian ini pengujian dilakukan dengan membuat skenario

pengamanan suatu pesan teks. Skenario yang akan dibuat adalah sebagai berikut,

pengirim pesan melakukan pengamanan pesan teks dengan cara melakukan enkripsi

pesan kemudian menyisipkan hasil enkripsi ke dalam suatu citra sehingga dihasilkan

gambar stego. Kemudian penerima pesan akan melakukan ekstrasi terhadap gambar

stego yang akan menghasilakan cipherteks dan selanjutnya didekripsi untuk

mendapatkan pesan yang ingin disampaikan oleh pengirim.

4.2.1.Pengujian penyembunyian pesan

Penyembunyian pesan dilakukan dengan memasukkan pesan, kunci enkripsi dan

cover-image. Pesan dapat dimasukkan dengan mencari file teks dengan mengklik

tombol cari pesan atau dapat juga dimasukkan dengan mengklik kotak pesan

kemudian diinput dengan keyboard. Sedangkan cover-image diinputkan dengan

menekan tombol cari cover. Kemudian sistem akan menampilkan isi dari pesan dan

cover-image seperti yang ditunjukkan pada gambar 4.8.

(35)

Jika cover-image yang dimasukkan tidak dapat menampung teks maka sistem akan

menampilkan kotak pesan peringatan meminta user untuk memasukkan cover-image

yang lain seperti pada gambar 4.9.

Gambar 4.9. Kotak Pesan Peringatan Pesan Tidak Dapat Disisip

Langkah selanjutnya adalah menekan tombol sembunyikan, dan sistem akan

menampilkan hasil enkripsi pesan berupa cipherteks dan stego-image yang telah

mengandung cipherteks didalamnya seperti ditunjukkan pada gambar 4.10.

(36)

Cipherteks hasil enkripsi dapat ditampilkan berupa karakter seperti pada gambar 4.10,

dan dapat juga berupa angka ataupun berupa karakter sekaligus angka seperti pada

gambar 4.11.

Gambar 4.11. Pengaturan Kotak Cipherteks (A) Hanya Angka (B) Angka dan Huruf

Pengguna dapat menyimpan stego-image dengan cara mengklik tombol simpan stego

kemudian user akan menentukan tempat penyimpanan stego-image, sistem akan

memberikan konfirmasi penyimpanan jika stego-image berhasil disimpan seperti yang

ditunjukkan pada gambar 4.12.

Gambar 4.12. Kotak Pesan Pemberitahuan Penyimpanan Stego-Image

Dengan cara yang sama dilakukan pengujian penyembunyian pesan terhadap

beberapa pesan dan citra uji yang bervariasi sehingga didapatlah rangkuman hasil

(37)

Tabel 4.1. Pengujian Penyembunyian Pesan (I)

No Plainteks Cipherteks Cover-Image Stego-Image

(38)

Tabel 4.2. Pengujian Penyembunyian Pesan (II)

No Plainteks Cipherteks Cover-Image Stego-Image

4.

Berdasarkan hasil pengujian yang ditampilkan pada tabel 4.1 terlihat bahwa

stego-image yang dihasilkan sistem dengan cover-image secara kasat mata tidak

terlihat perbedaanya, bahkan dimensi pixel dari citra tidak berubah sama sekali

sehingga tidak dapat dilihat perbedaanya. Maka dapat dinyatakan bahwa metode

(39)

4.2.2.Pengujian pengungkapan pesan

Pengungkapan pesan dilakukan dengan memasukkan gambar stego dan kunci

dekripsi. Stego-image dimasukkan dengan cara mengklik tombol cari stego, kemudian

sistem akan menampilkan stego-image pada kotak gambar stego seperti pada gambar

4.13.

Gambar 4.13. Penginputan Stego-Image

Kemudian pengguna menekan tombol tampilkan, dan sistem akan menampilkan

cipherteks hasil ekstraksi stego-image dan plainteks hasil dekripsi cipherteks tersebut

(40)

Gambar 4.14. Tampilan Hasi Ekstraksi Stego-Image dan Dekripsi Cipherteks

Kemudian pesan dapat disimpan dengan mengklik tombol simpan pesan dan

sistem akan memberikan konfirmasi penyimpanan pesan seperti pada gambar 4.15.

Gambar 4.15. Kotak Pesan Pemberitahuan Penyimpanan Pesan

Dengan cara yang sama dilakukan pengujian pengungkapan pesan terhadap

stego-image yang dihasilkan melalui pengujian penyembunyian pesan sehingga didapatlah

rangkuman hasil pengujian pengungkapan pesan seperti yang ditunjukkan pada tabel

(41)

Tabel 4.3. Pengujian Pengungkapan Pesan

No. Stego-Image Cipherteks Plainteks

1. lebih dari 2 meter, dan jika mereka berhasil mereka

Berdasarkan hasil pengujian pada tabel 4.12 terlihat bahwa stego-image dapat

mengembalikan cipherteks sama seperti sebelum dilakukan penyisipan. Dengan

(42)

4.2.3.Pengujian proses enkripsi RC4

Pengujian hasil enkripsi dilaksanakan dengan cara melakukan perhitungan manual

algoritma enkripsi RC4 kemudian membandingkannya dengan hasil enkripsi yang

diberikan oleh sistem. Pesan dan kunci enkripsi yang digunakan sesuai yang telah

digunakan sebelumnya pada bagian implementasi yaitu pada Gambar 4.11.

pesan = “pengamananteks” kunci = “rahasia”

Untuk dapat melakukan operasi perhitungan pada proses enkripsi maka terlebih

dahulu pesan dan kunci yang kita gunakan kita ubah dalam bentuk bilangan dengan

menggunakan pengkodean karakter ASCII.

pesan (char) = p e n g a m a n a n _ t e k s

pesan (dec) = 112 101 110 103 97 109 97 110 97 110 32 116 101 107 115

kunci (char) = r a h a s i a

kunci (dec) = 114 97 104 97 115 105 97

1. Inisiasi vector S

Tiap-tiap elemen dari vector S diberi nilai awal secara berurut mulai dari 0 hingga

255, sedangkan untuk vector T tiap-tiap elemennya diberi nilai berdasarkan nilai dari

kunci. Inisiasi awal vector S dan vector T dijabarkan sebagai berikut.  Iterasi ke – 1

i = 0

S[i] = i S[0] = 0

T[i] = Kunci[i mod panjangKunci] T[0] = Kunci[0 mod 7]

= Kunci[0] = 114

 Iterasi ke – 2

i = 1

S[i] = i S[1] = 1

T[i] = Kunci[i mod panjangKunci] T[1] = Kunci[1 mod 7]

= Kunci[1] = 97

(43)

Maka didapatlah nilai awal vector S yang ditunjukkan pada tabel 4.4 dan untuk vector

T ditunjukkan pada tabel 4.5.

Tabel 4.4. Nilai Awal Vector S

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255

Array S [ ]

Tabel 4.5. Nilai Awal Vector T

114 97 104 97 115 105 97 114 97 104 97 115 105 97 114 97

(44)

Hasil permutasi iterasi pertama vector S ditunjukkan pada tabel 4.6.

Tabel 4.6. Hasil Permutasi Iterasi Pertama Vector S

114 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255

Vector S [ ]

Hasil permutasi iterasi kedua vector S ditunjukkan pada Tabel 4.7.

Tabel 4.7. Hasil Permutasi Iterasi Ke-2 Vector S

114 212 2 3 4 5 6 7 8 9 10 11 12 13 14 15 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 1 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255

(45)

Oleh karena permutasi vector S di pengaruhi oleh nilai dari i dan j maka akan ada

kemungkinan sebuah elemen dari vector S mengalami permutasi lebih dari satu kali

seperti pada iterasi ke 55 berikut ini.  iterasi ke – 55

i = 54, j = 97

j = (j + S[i] + T[i]) mod 256 j = (97 + S[54]+ T[54] mod 256 j = (97 + 54 + 105) mod 256 j = 256 mod 256

j = 0

swap (S[54], S[0])

Hasil permutasi iterasi ke-55 vector S ditunjukkan pada tabel 4.8.

Tabel 4.8. Hasil Permutasi Iterasi Ke-55 Vector S

54 212 62 162 25 135 238 103 208 65 172 42 159 13 141 253 35 231 108 232 93 228 91 218 83 202 77 201 87 213 22 219 110 248 37 117 51 123 169 67 1 94 46 7 251 137 31 194 24 246 45 149 185 97 114 55 56 57 58 59 60 61 2 63 64 9 66 39 68 69 70 71 72 73 74 75 76 26 78 79 80 81 82 48 84 85 86 28 88 89 90 30 92 20 41 95 96 53 98 99 100 101 102 43 104 105 106 107 18 109 32 111 112 113 0 115 116 16 118 119 120 121 122 34 124 125 126 127 128 129 130 131 132 133 134 5 136 50 138 139 140 14 142 143 144 145 146 147 148 36 150 151 152 153 154 155 156 157 158 12 160 161 3 163 164 165 166 167 168 38 170 171 10 173 174 175 176 177 178 179 180 181 182 183 184 52 186 187 188 189 190 191 192 193 47 195 196 197 198 199 200 27 4 203 204 205 206 207 8 209 210 211 40 29 214 215 216 217 23 11 220 221 222 223 224 225 226 227 21 229 230 17 19 233 234 235 236 237 6 239 240 241 242 243 244 245 49 247 33 249 250 44 252 15 254 255

Vector S [ ]

Pada Tabel 4.8 terlihat bahwa elemen vector S[0] yang telah mengalami permutasi

kembali ditukar nilainya dengan elemen vector S yang lain.

 dan seterusnya hingga iterasi ke-256.

(46)

Tabel 4.9. Hasil Akhir Inisiasi Vector S

Pembangkitan kunci dilakukan sebanyak panjang teks karena setiap karakter pesan

(47)

= (157 + 62) mod 256

Setelah aliran kunci dihasilkan maka untuk menghasilkan cipherteks dilakukan

operasi XOR antara plainteks dengan kunci sebagai berikut.  iterasi ke – 1

 dan seterusnya hingga iterasi ke-15.

Maka didapatkan cipherteks seperti pada tabel 4.10.

Tabel 4.10. Proses XOR Pesan dengan Kunci

pesan (char) p e n g a m a n a n _ t e k s

pesan (dec) 112 101 110 103 97 109 97 110 97 110 32 116 101 107 115 kunci 170 236 158 117 7 254 204 107 6 23 221 106 14 157 57 cipherteks 218 137 240 18 102 147 173 5 103 121 253 30 107 246 74

Dari tabel 4.10 terlihat bahwa hasil cipherteks dengan perhitungan manual sama

dengan cipherteks yang dihasilkan oleh sistem sehingga dapat dinyatakan sistem

(48)

4.2.4.Pengujian proses dekripsi RC4

Lalu kita akan mendekripsi cipherteks yang dihasilkan pada proses pengujian enkripsi.

Untuk dapat mendekripsi cipherteks tersebut kita harus menggunakan kunci yang

sama dengan kunci proses enkripsi.

cipherteks = “218 137 240 18 102 147 173 5 103 121 253 30 107 246 74” kunci = “rahasia”

Sama seperti proses enkripsi untuk dapat melakukan operasi perhitungan pada proses

dekripsi maka kunci terlebih dahulu diubah ke dalam bentuk bilangan dengan

menggunakan pengkodean karakter ASCII.

kunci (char) = r a h a s i a

kunci (dec) = 114 97 104 97 115 105 97

Kemudian dilakukan inisiasi vector S dan pembangkitan kunci seperti pada

proses enkripsi. Oleh karena kunci yang digunakan sama maka akan dihasilkan aliran

kunci yang sama pula dengan aliran kunci pada proses enkripsi.

Aliran kunci = 170 236 158 117 7 254 204 107 6 23 221 106 14 157 57

Setelah aliran kunci didapatkan, untuk menghasilkan pesan yang semula maka

dilakukan operasi XOR antara cipherteks dengan plainteks sebagai berikut.  iterasi ke 1

 dan seterusnya hingga iterasi ke-20.

Maka didapatlah plainteks seperti pada tabel 4.11.

Tabel 4.11. Proses XOR Cipherteks dengan Kunci

cipherteks 218 137 240 18 102 147 173 5 103 121 253 30 107 246 74

kunci 170 236 158 117 7 254 204 107 6 23 221 106 14 157 57

pesan (dec) 112 101 110 103 97 109 97 110 97 110 32 116 101 107 115

(49)

4.2.5.Pengujian proses penyisipan modified LSB

Misalkan kita ingin menyisipkan cipherteks hasil enkripsi pesan ke dalam sebuah

citra. Citra yang kita gunakan sebagai media penampung (cover-image) berjenis true

color dengan ukuran 5 x 20 pixel.

cipherteks = 218 137 240 18 102 147 173 5 103 121 253 30 107 246 74

cover-image =

Hal pertama yang dilakukan adalah mengambil nilai representasi biner dari

cover-image. Oleh karena citra yang digunakan berjenis true color maka setiap pixel dari

cover-image direpresentasikan oleh tiga buah nilai, yaitu warna merah (R), hijau (G),

dan biru (B). Representasi biner dari cover-image ditunjukkan pada tabel 4.12.

Tabel 4.12. Representasi Biner Cover-Image Sebelum Penyisipan

i

j R G B R G B R G B R G B R G B

0 137 2 23 105 2 28 74 2 34 46 2 38 23 5 42 1 141 2 22 109 2 27 79 2 32 52 2 37 31 3 41 2 150 2 20 120 2 25 92 2 30 69 2 34 53 2 37 3 164 2 18 137 2 23 113 2 27 93 2 30 79 2 33 4 181 2 15 158 2 19 138 2 23 121 2 25 109 2 27 5 200 2 11 181 2 16 163 2 18 149 2 20 140 2 22 6 218 2 8 203 2 11 189 2 13 178 2 15 172 2 17 7 235 2 5 224 2 7 213 2 10 205 2 11 200 2 12 8 247 2 3 240 2 4 234 2 6 228 2 7 223 2 7 9 250 8 2 250 2 2 247 2 2 244 2 3 242 2 4 10 250 26 2 250 17 2 250 11 2 250 8 2 250 5 2 11 249 47 2 250 38 2 250 31 2 250 26 2 250 23 2 12 240 73 2 244 63 2 246 54 2 248 50 2 249 46 2 13 227 101 2 232 90 2 235 83 2 238 77 2 239 74 2 14 213 131 2 218 121 2 221 113 2 224 108 2 226 105 2 15 197 160 4 202 151 3 206 145 2 209 140 2 211 136 2 16 183 189 5 187 181 5 191 175 4 192 171 4 194 167 4 17 168 215 6 172 208 5 175 203 5 177 199 4 178 197 5 18 157 237 6 160 231 6 162 227 7 163 224 6 165 222 6 19 150 252 7 151 249 7 152 246 7 154 244 7 154 243 6

(50)

Proses penyisipan dilakukan dengan cara mengambil satu demi satu karakter

cipherteks. Kemudian dari setiap karakter cipherteks tersebut diambil satu bit demi

satu bit kemudian ditukarkan dengan bit yang paling kecil dari setiap komponen

warna cover-image mengikuti aturan penyisipan yang ditentukan.

Berikut adalah penjabaran proses penyisipan modified LSB Penyisipan pada pixel ke-1

cipherteks = 218 (11011010)

- R = 137 (10001001)

R tidak lebih kecil dari 100 maka tidak dilakukan penyisipan.

- G = 2 (00000010)

G lebih kecil dari 122 maka ambil bit terakhir cipherteks (0) kemudian sisipkan ke dalam komponen warna G.

G = 2 (00000010) cipherteks = 109 (1101101 )

- B = 23 (00010101)

B lebih kecil dari 114 maka ambil bit terakhir cipherteks (1) kemudian sisipkan ke dalam komponen warna B.

B = 23 (00010101) cipherteks = 54 (110110 )

Maka nilai pixel ke-1 menjadi 137, 2, 23.

Penyisipan pada pixel ke-2 cipherteks = 54 (110110)

- R = 105 (01101001)

R tidak lebih kecil dari 100 maka tidak dilakukan penyisipan.

- G = 2 (00000010)

G lebih kecil dari 122 maka ambil bit terakhir cipherteks (0) kemudian sisipkan ke dalam komponen warna G.

G = 2 (00000010) cipherteks = 27 (11011 )

- B = 28 ( 00011100)

B lebih kecil dari 114 maka ambil bit terakhir cipherteks (1) kemudian sisipkan ke dalam komponen warna G.

B = 29 (00011101) cipherteks = 13 (1011 )

Maka nilai dari pixel ke-2 menjadi 105, 2, 29.

(51)

Maka didapatlah stego-image yang telah disisipkan cipherteks dengan nilai

representasi biner seperti yang ditunjukkan pada tabel 4.13.

Tabel 4.13. Representasi Biner Stego-Image Setelah Penyisipan

i

j R G B R G B R G B R G B R G B

0 137 2 23 105 2 29 75 2 35 47 3 38 22 5 42 1 141 2 22 109 3 26 78 2 32 53 3 37 31 2 41 2 150 2 20 120 3 24 92 2 30 69 3 34 52 3 37 3 164 2 19 137 3 22 113 2 27 92 2 31 79 2 33 4 181 3 14 158 3 18 138 3 23 121 2 25 109 2 26 5 200 2 10 181 2 17 163 3 19 149 2 20 140 3 23 6 218 2 9 203 2 10 189 3 13 178 3 15 172 2 17 7 235 2 5 224 3 7 213 3 11 205 3 10 200 3 13 8 247 3 3 240 2 4 234 2 7 228 3 6 223 3 6 9 250 9 3 250 2 2 247 3 3 244 2 3 242 3 5 10 250 27 2 250 17 2 250 11 2 250 8 3 250 4 2 11 249 47 2 250 38 2 250 31 2 250 26 2 250 23 2 12 240 73 2 244 63 2 246 54 2 248 50 2 249 46 2 13 227 101 2 232 90 2 235 83 2 238 77 2 239 74 2 14 213 131 2 218 121 2 221 113 2 224 108 2 226 105 2 15 197 160 4 202 151 3 206 145 2 209 140 2 211 136 2 16 183 189 5 187 181 5 191 175 4 192 171 4 194 167 4 17 168 215 6 172 208 5 175 203 5 177 199 4 178 197 5 18 157 237 6 160 231 6 162 227 7 163 224 6 165 222 6 19 150 252 7 151 249 7 152 246 7 154 244 7 154 243 6

0 1 2 3 4

Berdasarkan representasi warna pada tabel 4.13, stego-image dapat pula dinyatakan

dalam bentuk citra digital seperti pada gambar 4.16.

(52)

4.2.6.Pengujian proses ekstraksi modified LSB

Misalkan kita ingin mengekstrak sebuah stego-image,

stego-image =

Sama seperti proses penyisipan hal pertama yang dilakukan adalah mengambil nilai

representasi biner dari stego-image, ditunjukkan pada tabel 4.14.

Tabel 4.14. Representasi Biner Stego-Image

i

j R G B R G B R G B R G B R G B

0 137 2 23 105 2 29 75 2 35 47 3 38 22 5 42

1 141 2 22 109 3 26 78 2 32 53 3 37 31 2 41

2 150 2 20 120 3 24 92 2 30 69 3 34 52 3 37

3 164 2 19 137 3 22 113 2 27 92 2 31 79 2 33

4 181 3 14 158 3 18 138 3 23 121 2 25 109 2 26

5 200 2 10 181 2 17 163 3 19 149 2 20 140 3 23

6 218 2 9 203 2 10 189 3 13 178 3 15 172 2 17

7 235 2 5 224 3 7 213 3 11 205 3 10 200 3 13

8 247 3 3 240 2 4 234 2 7 228 3 6 223 3 6

9 250 9 3 250 2 2 247 3 3 244 2 3 242 3 5

10 250 27 2 250 17 2 250 11 2 250 8 3 250 4 2

11 249 47 2 250 38 2 250 31 2 250 26 2 250 23 2

12 240 73 2 244 63 2 246 54 2 248 50 2 249 46 2

13 227 101 2 232 90 2 235 83 2 238 77 2 239 74 2

14 213 131 2 218 121 2 221 113 2 224 108 2 226 105 2 15 197 160 4 202 151 3 206 145 2 209 140 2 211 136 2 16 183 189 5 187 181 5 191 175 4 192 171 4 194 167 4 17 168 215 6 172 208 5 175 203 5 177 199 4 178 197 5 18 157 237 6 160 231 6 162 227 7 163 224 6 165 222 6 19 150 252 7 151 249 7 152 246 7 154 244 7 154 243 6

0 1 2 3 4

Proses ekstraksi dilakukan dengan mengambil pixel demi pixel dari stego-image

kemudian memeriksa nilai dari tiap komponen warna dari pixel tersebut. Jika

memenuhi aturan ekstraksi maka diambil bit paling kecil dari warna tersebut lalu

ditambahkan ke dalam variabel penampung temp. Setiap kali variabel temp telah

menampung 8 bit data, maka bit-bit data dalam variabel temp dibalik urutannya dari

(53)

Berikut adalah penjabaran proses penyisipan modified LSB, Ekstraksi pada pixel ke-1

temp = -

- R = 137 (10001001)

R tidak lebih kecil dari 100 maka tidak dilakukan ekstraksi.

- G = 2 (00000010)

R tidak lebih kecil dari 100 maka tidak dilakukan ekstraksi.

(54)

Ekstraksi pada pixel ke-4 temp = 0101101

- R = 47 (00101111)

R lebih kecil dari 100 maka bit terakhir dari R yaitu 1 ditambahkan ke dalam variabel temp.

temp = 01011011

cipherteks = balikBit(temp) = 11011010

= 218

- G = 3 (00000011)

G lebih kecil dari 122 maka bit terakhir dari G yaitu 1 ditambahkan ke dalam variabel temp.

temp = 1

- B = 38 (00100110)

B lebih kecil dari 114 maka bit terakhir dari B yaitu 0 ditambahkan ke dalam variabel temp.

temp = 10

 dan seterusnya.

Maka didapatlah cipherteks sebagai berikut,

cipherteks = 218 137 240 18 102 147 173 5 103 121 253 30 107 246 74

Terlihat bahwa proses ekstraksi modified LSB menghasilkan cipherteks yang sama

(55)

BAB 5

KESIMPULAN DAN SARAN

5.1. Kesimpulan

Berdasarkan pembahasan dan hasil dari penelitian ini, maka dapat diperoleh

beberapa kesimpulan sebagai berikut,

1. Pengamanan teks dengan menggunakan algoritma RC4 dan metode modified

LSB berhasil meningkatkan keamanan pesan dengan memberikan perlindungan

ganda yaitu pesan disandikan ke dalam bentuk yang tidak dapat dimengerti

kemudian disisipkan lagi dalam citra.

2. Berdasarkan pengujian terhadap pesan yang panjangnya dari 15 karakter sampai

2000 karakter dan dengan citra yang berukuran 5x20 pixel sampai 1000x1000

pixel, metode modified LSB memenuhi aspek steganografi imperceptibility dan

recovery.

3. Modifikasi dalam metode modified LSB memberikan keamanan lebih baik

dibanding metode LSB standar dikarenakan penyisipan pesan dilakukan hanya

pada komponen warna tertentu, namun kekurangannya kapasitas pesan yang

dapat disisip menjadi berkurang.

5.2.Saran

Berikut ini adalah saran-saran yang dapat dijadikan pertimbangan dalam

mengembangkan penelitian ini :

1. Penyisipan pesan ke dalam pixel citra sebaiknya dilakukan tidak berurut

sehingga menambah kesulitan dalam menemukan pesan rahasia dalam citra.

2. Stego-image yang telah diberi manipulasi warna tidak dapat mengembalikan

pesan rahasia oleh karna pesan yang didalam citra ikut mengalami perubahan

nilai, oleh sebab itu perlu dicari teknik penyisipan lain yang tahan terhadap

(56)

BAB 2

LANDASAN TEORI

2.1 Kriptografi

Kriptografi berasal dari bahasa Yunani, yaitu “kryptos” yang berarti tersembunyi dan

graphein” yang berarti menulis. Kriptografi adalah bidang ilmu yang mempelajari

teknik pengiriman pesan dengan rahasia, yaitu dengan cara sebelum melakukan

pengiriman pesan, pesan tersebut disamarkan terlebih dahulu sehingga pesan tersebut

tidak dapat diketahui maknanya sebelum pesan yang telah disamarkan itu

dikembalikan ke bentuk pesan yang semula (Mollin, 2007).

Setiap orang yang terlibat dalam kriptografi disebut kriptografer sedangkan

sebaliknya orang-orang yang berusaha memecahkan metode kriptografi disebut

dengan kriptanalisis (Schneier, 1996).

Beberapa istilah yang berkaitan dengan kriptografi (Munir, 2006) diantaranya,

1. Pesan disebut juga dengan plainteks. Pesan merupakan data atau informasi yang

dapat dibaca dan dimengerti maknanya. Pesan dapat berupa data atau informasi

yang dikirim atau yang disimpan di dalam media perekaman. Pesan yang

tersimpan tidak hanya berupa teks, tetapi juga dapat berupa citra, suara, dan

video.

2. Cipherteks merupakan pesan yang telah disamarkan ke dalam bentuk lain

sehingga pesan tersebut tidak dapat dimengerti maknanya. Untuk dapat

mengetahui maknanya maka cipherteks harus ditransformasikan ke dalam bentuk

yang semula.

3. Enkripsi merupakan proses untuk menyamarkan plainteks menjadi cipherteks.

4. Dekripsi merupakan proses untuk mengembalikan cipherteks menjadi plainteks

dalam bentuk semula.

5. Kunci merupakan parameter masukan yang digunakan untuk melakukan proses

(57)

Skema kriptografi ditunjukkan pada gambar 2.1.

Gambar 2.1. Skema Enkripsi dan Dekripsi (Munir, 2006)

2.2 Tujuan Kriptografi

Sebagai penyedia layanan keamanan komunikasi, menurut Menejes (1996) kriptografi

memberikan layanan sebagai berikut

1. Kerahasiaan (Confidentiality) yaitu layanan yang memberikan perlindungan

terhadap pesan sehingga hanya orang berhak yang dapat memahami informasi

dari pesan yang di kirimkan. Dalam kriptografi layanan ini direalisasikan dengan

menyandikan pesan menjadi cipherteks. Pihak lain mungkin saja mendapatkan

cipherteks namun mereka tidak dapat mengetahui maksud dari pesan tersebut.

2. Integritas data (Data Integrity) yaitu layanan yang memberikan jaminan

keorisinalan dari pesan, bahwa pesan tersebut belum pernah dimanipulasi selama

pengiriman. Untuk menjaga integritas data, sistem harus memiliki kemampuan

untuk mendeteksi manipulasi pesan dari pihak-pihak yang tidak berhak, antara

lain penyisipan, penghapusan dan pensubsitusian data lain ke dalam data yang

sebenarnya.

3. Otentikasi (Authentication) yaitu layanan yang berhubungan identifikasi, baik

mengindentifikasi kebenaran pihak-pihak yang berkomunikasi maupun

mengidentifikasi kebenaran sumber pesan. Dua pihak yang saling berkomunikasi

harus dapat mengotentifikasi satu sama lain sehingga ia dapat memastikan sumber

pesan.

4. Nirpenyangkalan (Non-repudiation) yaitu layanan untuk mencegah entitas yang

berkomunikasi melakukan penyangkalan, yaitu pengirim pesan menyangkal

melakukan pengiriman pesan atau penerima pesan menyangkal telah menerima

(58)

2.3 Jenis Algoritma Kriptografi

2.3.1. Kriptografi kunci simetri

Algoritma kunci simetri adalah algoritma kriptografi yang mana kunci untuk

mengenkripsinya sama dengan kunci untuk mendekripsinya (Munir, 2006). Algoritma

ini juga disebut algoritma kunci privat dikarenakan pengirim dan penerima sebelum

dapat berkomunikasi harus mengetahui kunci yang digunakan. Kunci algoritma ini

harus tetap dijaga kerahasiaannya untuk dapat melakukan komunikasi dengan aman

(Schneier, 1996). Skema kriptografi kunci simetri ditunjukkan pada gambar 2.2.

Gambar 2.2 Skema Kriptografi Kunci Simetri (Schneier, 1996)

Terdapat tiga cara yang pada umumnya digunakan sebagai dasar dari algoritma

kriptografi kunci simetri (Cole, 2003) yaitu

1. Subsitusi, yaitu proses mengambil sebuah karakter kemudian menukarkannya

dengan karakter yang lain. Untuk itu dibutuhkan tabel pemetaan satu-satu

karakter. Contoh tabel pemetaan karakter ditunjukkan pada tabel 2.1.

Tabel 2.1. Contoh Tabel Pemetaan Karakter

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

H S N U W B J M T A V Y F Q L X D Z G P E R C O I K

Misalkan kita mempunyai pesan “SUBSITUSI” maka S digantikan dengan huruf G, U dengan huruf E dan seterusnya, sehingga “SUBSITUSI” menjadi

“GESGTPEGT”.

2. Permutasi, yaitu penukaran posisi huruf dalam pesan berdasarkan kunci tertentu.

Cara kerja permutasi berbanding terbalik dengan subtitusi, jika dalam teknik

subtitusi, posisi karakter tetap namun identitasnya diubah dengan karakter lain,

maka dalam permutasi identitas karakternya yang tetap, namun posisinya yang

(59)

blok karakter dengan ukuran yang tetap sesuai panjang kunci. Contoh tabel

permutasi karakter ditunjukkan pada tabel 2.2.

Tabel 2.2. Contoh Tabel Permutasi Karakter

2 3 1

P E R

M U T

A S I

Kunci

Pesan

Misalkan kita mempunyai pesan “PERMUTASI” dengan kunci 231. Maka huruf -huruf pada pesan disusun ulang sesuai dengan kunci. Huruf pertama pesan

menjadi huruf kedua, huruf kedua menjadi huruf ketiga dan seterusnya, sehingga

“PERMUTASI” menjadi “RPETMUIAS”.

3. XOR, merupakan operasi matematika yang beroperasi pada tingkat binary,

sehingga pesan harus terlebih dahulu diubah ke dalam bentuk binary-nya. XOR

memiliki ciri yang unik yaitu ketika sebuah pesan dikenakan XOR dengan sebuah

kunci, maka akan menghasilkan cipherteks dan jika cipherteks tersebut dikenakan

XOR dengan kunci yang sama maka akan mengembalikan pesan tersebut ke

dalam bentuk yang semula.

Misalkan kita mempunyai pesan rahasia “XOR” dan kunci “ABC”, maka terlebih

dahulu kita mengubah pesan dan kunci tersebut ke dalam bentuk binary-nya,

X = 01011000 A = 01000001

O = 01001111 B = 01000010

R = 01010010 C = 01000011

Kemudian kita melakukan operasi XOR antara pesan dengan kunci

Pesan = 01011000 01001111 01010010

Kunci = 01000001 01000010 01000011

Ciphertext = 00011001 00001101 00010001

Untuk mengembalikan pesan ke dalam bentuk semula, kita melakukan XOR

antara pesan dengan kunci yang sama, maka akan dihasilkan pesan semula.

Ciphertext = 00011001 01001101 01010001

Kunci = 01000001 01000010 01000011

(60)

Schneier (1996) membagi kriptografi kunci simetri dalam dua kategori yaitu

block cipher dan stream cipher. Block cipher beroperasi dalam satuan blok plainteks

dan cipherteks, biasanya blok tersebut berukuran 64 bit namun terkadang dapat lebih

besar. Sedangkan stream cipher beroperasi dalam satuan bit atau byte pada satu

waktu.

2.3.2. Kriptografi kunci asimetri

Kriptografi kunci simetri menggunakan dua buah kunci yaitu kunci publik dan kunci

privat. Apapun yang dienkripsi menggunakan satu kunci, maka hanya dapat didekripsi

oleh kunci yang lain. Cara kerja kriptografi kunci asimetri adalah sebagai berikut, kita

membebaskan setiap orang untuk mengetahui kunci publik kita, namun kita harus

menjaga kunci privat kita agar hanya kita yang mengetahuinya. Ketika seseorang

ingin mengirim pesan pada kita, maka ia harus mengenkripsinya dengan kunci publik

kita. Sehingga pesan tersebut hanya dapat diketahui oleh kita yang memiliki kunci

privat untuk mendekripsi pesan tersebut. Skema kriptografi kunci asimetri ditunjukkan

pada gambar 2.3.

Gambar 2.3. Skema Kriptografi Kunci Asimetri (Schneier, 1996)

Kriptografi kunci asimetri menjawab masalah pertukaran kunci dan masalah

nirpenyangkalan, walaupun cara kerjanya sangat lambat. Dalam kriptografi kunci

asimetri pendistribusian kunci tidak mengharuskan dikirim melalui saluran yang

aman, tetapi yang menjadi keharusan adalah saluran yang digunakan dapat dipercaya.

Saluran aman maksudnya bahwa tidak ada seorangpun yang dapat mengetahui isi

informasi selama proses pengiriman, sedangkan pada saluran terpercaya setiap orang

dapat mengetahui isi informasi tetapi kita mendapat jaminan bahwa informasi yang

dikirim berasal dari sumber yang terpercaya dengan kata lain tidak ada terjadi

perubahan informasi selama proses pengiriman. Hal ini dikarenakan setiap orang

dapat membuat satu pasangan kunci privat dan publik dan menyatakan bahwa kunci

publiknya tersebut sebagai milik orang lain. Dalam hal nirpenyangkalan, jika kita

(61)

mengenkripsi pesan dengan kunci privat kita, maka setiap orang dapat mengetahui

pesan kita dengan mendekripsinya dengan kunci publik kita, namun hanya kitalah

satu-satunya orang yang mungkin mengirim pesan karena kunci publik kita hanya

dapat digunakan pada pesan yang dienkripsikan dengan kunci privat kita. Algoritma

yang menggunakan kriptografi kunci asimetri diantaranya RSA dan Elgamal (Cole,

2003).

2.3.3. Hash

Algoritma Hash adalah transformasi satu arah pada pesan plainteks, artinya setelah

mengalami hash pesan tidak dapat dikembalikan ke bentuk semula. Hash menerima

plainteks dalam ukuran apapun dan menghasilkan keluaran dengan ukuran yang lebih

kecil dalam ukuran yang tetap. Hash sangat berguna dalam penyimpanan password

dan dalam tanda tangan dikarenakan tidak adanya kunci. Beberapa algoritma hash

diantaranya MD5, MD4, HMAC dan SHA (Cole, 2003).

2.4. RC4

RC4 adalah algoritma kriptografi berjenis stream cipher yang dibangun oleh Ron

Rivest untuk Laboratorium RSA Security. RC4 sendiri merupakan kepanjangan dari

Ron Code (Munir, 2006). Algoritma ini tidak pernah dipublikasikan oleh RSA

Security, namun pada September 1994 ada seseorang yang tak dikenal yang

mengirimkan source code yang diyakini sebagai algoritma RC4 ke milis Cyperpunks.

Kemudian algoritma ini tersebar dengan cepat melalui internet (Kromodimoeljo,

2009).

2.4.1. Algoritma RC4

Tahapan dalam RC4 dibagi menjadi dua bagian (Stalling, 2005) yaitu,

1. Inisiasi vector S

Langkah pertama adalah menginisilisasi vector S dengan nilai 0 sampai 255, sehingga

S[0]=0, S[1] = 1, ... , S[255] = 255. Sebuah vector sementara T, diisi dengan kunci

secara berulang hingga vector T terisi penuh. Kemudian dilakukan permutasi terhadap

nilai-nilai di dalam vector S. Langkah tersebut dituliskan sebagai berikut,

/* Inisialisasi */

(62)

S[i] = i;

T[i] = K[i mod keylen];

/* Permutasi vector S */

j = 0;

for i = 0 to 255 do

j = (j + S[i] + T[i]) mod 256;

Swap (S[i], S[j]);

2. Stream Generation (Pembangkitan aliran kunci)

Kemudian melakukan pembangkitan aliran kunci dengan aturan sebagai berikut,

/* Stream Generation */

i, j = 0;

while (true)

i = (i + 1) mod 256;

j = (j + S[i]) mod 256;

Swap (S[i], S[j]);

t = (S[i] + S[j]) mod 256;

k = S[t];

Untuk proses enkripsi dilakukan operasi XOR pada byte plainteks dengan k,

sedangkan untuk melakukan dekripsi dilakukan operasi XOR pada byte cipherteks

dengan k.

2.4.2. Contoh Enkripsi RC4

Untuk menunjukkan bagaimana cara kerja algoritma RC4 kita menggunakan vector

berukuran 4 byte. Hal ini dikarenakan akan sangat sulit menggambarkan proses RC4

secara manual dengan vector berukuran 256 byte (Suryani 2009). Misalkan kita akan

mengenkripsi kata “RC4” dengan kunci 2314. Maka pertama kita menginisialisasi

vector S dan vector T.

0 1 2 3

2 3 1 4

array S = array T =

Kemudian menginisiasi i dan j dengan 0 dan melakukan permutasi vector S.

- Iterasi 1 ( j = 0 ; i = 0)

(63)

= (0+ 0 + 2 ) mod 4

Setelah melakukan permutasi vector S, berikutnya dilakukan stream generation untuk

menghasilkan kunci. Pembangkitan kunci dilakukan sebanyak tiga kali sesuai dengan

panjang plainteks. Hal ini dikarenakan setiap karakter akan menggunakan satu buah

(64)

= 3

Setelah menemukan kunci untuk setiap karakter, maka dilakukan proses enkripsi

dengan melakukan operasi XOR antara karakter pada plainteks dengan kunci yang

dihasilkan. Tabel ASCII untuk tiap-tiap karakter pada plainteks ditunjukkan pada

tabel 2.3.

Tabel 2.3. ASCII untuk karakter yang digunakan

(65)

Proses XOR antara plainteks dengan kunci ditunjukkan pada tabel 2.4.

Tabel 2.4. Proses XOR plainteks dengan kunci

plainteks 01010010 01000000 00110111

kunci 00000001 00000011 00000011

cipherteks 01010011 01000000 00110111

Cipherteks tersebut menghasilkan kata “S@7”. Untuk mengembalikan cipherteks ke

dalam bentuk plainteks, maka dilakukan proses dekripsi dengan melakukan operasi

XOR antara cipherteks dengan kunci menggunakan kunci yang sama dengan kunci

ekripsi. Proses ini ditunjukkan pada tabel 2.5.

Tabel 2.5. Proses XOR cipherteks dengan kunci

cipherteks 01010011 01000000 00110111

kunci 00000001 00000011 00000011

plainteks 01010010 01000000 00110111

2.5.Citra Digital

Citra adalah suatu representasi (gambaran), kemiripan atau imitasi dari suatu objek.

Citra sebagai keluaran suatu sistem perekaman data dapat bersifat optik berupa foto,

bersifat analog berupa sinyal-sinyal video seperti gambar pada monitor televisi, atau

bersifat digital yang dapat langsung disimpan pada suatu media penyimpanan. Citra

digital adalah gambar dua dimensi yang dapat ditampilkan pada layar monitor

komputer sebagai himpunan berhingga (diskrit) nilai digital yang disebut pixel. Pixel

adalah elemen citra yang memiliki nilai yang menunjukkan intensitas citra (Sutoyo,

dkk. 2009).

2.5.1 Jenis-jenis citra digital

Berdasarkan warna-warna penyusunnya, citra digital dapat dibagi menjadi tiga jenis

(Sutoyo, dkk. 2009) yaitu

1. Citra biner, merupakan citra digital yang hanya memiliki dua kemungkinan nilai

pixel yaitu hitam dan putih. Citra biner juga disebut sebagai citra B&W (black and

white) atau citra monokrom. Hanya dibutuhkan 1 bit untuk mewakili nilai setiap

(66)

Gambar 2.4. Contoh citra biner

2. Citra grayscale, merupakan citra digital yang hanya dibentuk oleh satu nilai kanal

warna pada setiap pixel-nya. Nilai tersebut digunakan untuk menunjukkan tingkat

intensitas. Citra grayscale menghasilkan warna hitam, keabuan dan putih.

Tingkatan keabuan disini merupakan warna abu dengan berbagai tingkatan dari

hitam hingga mendekati putih.

Gambar 2.5. Contoh citra grayscale

3. Citra warna, merupakan citra yang nilai pixel-nya merepresentasikan warna

tertentu. Banyaknya warna yang mungkin digunakan bergantung kepada

kedalaman pixel dari citra tersebut. Citra berwarna direpresentasikan dalam

beberapa kanal yang menyatakan komponen-komponen warna penyusunnya.

Banyaknya kanal yang digunakan bergantung pada model warna yang digunakan

pada citra tersebut.

(67)

2.5.2 Format file citra digital

Berdasarkan format penyimpanan file digital, citra digital dapat dibagi menjadi dua

jenis (Sutoyo, dkk. 2009) yaitu

1. Citra Bitmap, menyimpan data kode citra secara digital dan lengkap tanpa

melakukan kompresi terhadap citra terlebih dahulu. Citra bitmap dipresentasikan

dalam bentuk matriks atau dipetakan dengan menggunakan bilangan biner atau

sistem bilangan lain. Citra bitmap memiliki kelebihan untuk memanipulasi warna,

tetapi untuk mengubah objek lebih sulit. Tampilan bitmap mampu menunjukkan

kehalusan gradasi bayangan dan warna dari sebuah gambar. Bila citra ini

diperbesar akan mengakibatkan penurunan kualitas citra.

2. Citra Vektor, dihasilkan dari perhitungan matematis dan tidak berdasarkan pixel,

yaitu data tersimpan dalam bentuk vektor posisi, dimana yang tersimpan hanya

informasi vektor posisi dengan sebuah fungsi. Pada file citra vektor, mengubah

warna lebih sulit dilakukan, tetapi membentuk objek dengan cara mengubah nilai

lebih mudah. Oleh karena itu, bila citra diperbesar atau diperkecil, kualitas citra

relatif tetap baik dan tidak berubah.

2.6 Steganografi

Steganografi adalah ilmu menyembunyikan pesan ke dalam media digital lain

sehingga keberadaan pesan tersebut tidak dapat diketahui oleh orang lain (Sadikin,

2012). Steganografi berasal dari bahasa Yunani, yaitu “steganos” yang berarti tertutup

dan “graphia” yang berarti menulis (Cole, 2003).

Beberapa istilah yang berkaitan dengan steganografi (Munir, 2006) diantaranya

1. Hiddentext atau embedded message, yaitu pesan rahasia yang akan disembunyikan.

2. Covertext atau cover-object, yaitu media yang digunakan sebagai tempat untuk

menyembunyikan pesan rahasia.

3. Stegotext atau stego-object, yaitu media yang didalamnya sudah disembunyikan

pesan rahasia.

Di dalam steganografi, hiddentext maupun covertext dapat berupa teks, citra,

audio, ataupun video. Penyisipan pesan ke dalam media covertext dinamakan

encoding, sedangkan ekstraksi pesan dinamakan decoding. Kedua proses ini

memungkinkan menggunakan kunci rahasia (Munir, 2006). Skema steganografi

Gambar

Gambar 4.1. Antarmuka Halaman Utama
Gambar 4.2. Antarmuka Halaman Sembunyikan Pesan
Gambar 4.5. Implementasi Pembangkitan Aliran Kunci
Gambar 4.6. Implementasi Penyisipan Pesan
+7

Referensi

Dokumen terkait

[r]

c Klaras merupakan bagian dari tanaman pisang yang keberadaanya belum diperhatikan padahal mengandung hemiselulosa tinggi sehingga dapat dijadikan media tanam jamur.

Every registration statement, short form registration statement, supplemental statement, exhibit, amendment, copy of informational materials or other document or information filed

20 Fitri Trisnanda Amalia SMP Ma'arif Miftahul Ulum 41. REKAPITULASI

[r]

(Supplement 2.2.1-1) With the start signal, the robot moves to LA and attaches ʻdiscsʼ or ʻmagazines loaded with discsʼ according to Rule 2.4.1, then the robot leaves LA and works

[r]

Sehubungan dengan itu, saya menyambut baik penyelenggaraan Kontes Robot ABU Indonesia (KRAI), karena dalam KRAI setiap peserta harus mengeksplorasi kemampuannya