• Tidak ada hasil yang ditemukan

T1 672011045 Full text

N/A
N/A
Protected

Academic year: 2017

Membagikan "T1 672011045 Full text"

Copied!
31
0
0

Teks penuh

(1)

Perancangan dan Implementasi Aplikasi Steganografi

dengan Algoritma

Fisher-Yates Shuffle

Artikel Ilmiah

Peneliti:

Bryan Mayers Talapessy (672011045) Magdalena A. Ineke Pakereng, M.Kom.

Evangs Mailoa, S.Kom. M.Cs.

Program Studi Teknik Informatika

Fakultas Teknologi Informasi

Universitas Kristen Satya Wacana

(2)

Perancangan dan Implementasi Aplikasi Steganografi

dengan Algoritma

Fisher-Yates Shuffle

Artikel Ilmiah

Diajukan kepada

Fakultas Teknologi Informasi

untuk memperoleh gelar Sarjana Komputer

Peneliti:

Bryan Mayers Talapessy (672011045) Magdalena A. Ineke Pakereng, M.Kom.

Evangs Mailoa, S.Kom. M.Cs.

Program Studi Teknik Informatika

Fakultas Teknologi Informasi

Universitas Kristen Satya Wacana

(3)
(4)
(5)
(6)
(7)
(8)
(9)

Perancangan dan Implementasi Aplikasi Steganografi dengan

Jl. Diponegoro 52-60, Salatiga 50711, Indonesia

Email: 1)672011045@student.uksw.edu, 2) inekep200472@yahoo.com, 3)

evangs.mailoa@staff.uksw.edu

Abstract

A method is needed to restrict access to information, in order to ensure the security of the exchange of information that is confidential or private. Restrictions can be done by encrypting information or to hide information in the public media. Concealment of information on other media is called steganography. The success of a steganography depend on whether or not striking changes in the cover and the ability of the algorithm used to hide. In this study proposes a method of steganography in digital imagery, which inserts random information. The aim is that even without the encryption process, the embedded information will be more secure than the LSB Steganography in general. The results show that by spreading the insertion point, can lower a person's level of suspicion against a stego image.

Keywords: Steganography, Fisher-Yates Shuffle, LSB

Abstrak

Untuk menjamin keamanan pertukaran informasi yang bersifat rahasia atau pribadi, diperlukan suatu metode yang membatasi akses ke informasi ini. Pembatasan dapat berupa penyandian informasi atau dengan menyembunyikan informasi pada media yang umum. Metode penyembunyian informasi pada media lain disebut dengan steganografi. Keberhasilan suatu steganografi bergantung pada mencolok atau tidaknya perubahan yang terjadi pada cover dan kemampuan algoritma yang digunakan untuk menyembunyikan. Pada penelitian ini diajukan suatu metode steganografi pada citra digital, yang menyisipkan informasi secara acak. Tujuannya adalah agar tanpa proses enkripsi sekalipun, informasi yang disisipkan akan lebih aman daripada steganografi LSB pada umumnya. Hasil pengujian menunjukkan bahwa dengan menyebar titik penyisipan, dapat menurunkan tingkat kecurigaan seseorang terhadap suatu stego image.

Kata Kunci: Steganografi, Fisher-YatesShuffle, LSB

1)

Mahasiswa Program Studi Teknik Informatika, Fakultas Teknologi Informasi, Universitas Kristen Satya Wacana

2,3)

(10)

1

1. Pendahuluan

Internet memberikan kemudahan untuk bertukar informasi. Informasi yang dilewatkan di Internet, berjalan dari satu komputer, ke komputer yang lain, hingga akhirnya sampai ke komputer tujuan. Proses tersebut berlangsung begitu cepat sekalipun melalui beberapa titik. Pada dasarnya, informasi melakukan perjalanan di internet dengan cara yang tidak aman. Ini berarti bahwa pesan dapat disadap atau dirusak pada setiap titik perangkat yang dilewati [1].

Untuk menjamin keamanan pertukaran informasi yang bersifat rahasia atau pribadi, diperlukan suatu metode yang membatasi akses ke informasi ini. Pembatasan dapat berupa penyandian informasi (kriptografi) [2], atau dengan menyembunyikan informasi pada media yang umum (steganografi) [3], sehingga tidak menyebabkan kewaspadaan (awareness) pihak lain yang mengakses informasi ini.

Metode penyembunyian informasi pada media lain disebut dengan steganografi. Steganografi membutuhkan media sebagai cover, yang merupakan wadah penyembunyian informasi. Cover dapat berupa file image, audio, video

ataupun jenis file yang lain. Informasi yang disembunyikan dapat berupa pesan singkat dalam bentuk kalimat, atau berupa file dokumen rahasia. Ukuran file

(dokumen) rahasia yang disembunyikan bergantung pada ukuran cover tempat data rahasia disembunyikan.

Keberhasilan suatu steganografi bergantung pada mencolok atau tidaknya perubahan yang terjadi pada cover dan kemampuan algoritma yang digunakan untuk menyembunyikan [4]. Untuk memperkecil perubahan, digunakan bit

terendah (LSB) pada tiap piksel citra digital, sebagai lokasi penyisipan informasi. Steganografi pada citra digital pada umumnya mengganti bit-bit LSB tersebut secara berurutan, dari ujung kiri atas gambar, atau mundur dari ujung kanan bawah gambar. Hal ini memberikan kelemahan yaitu bit-bit informasi ini dapat diekstrak dengan mudah oleh pihak lain. Enkripsi dapat ditambahkan sebelum proses penyisipan, namun hal ini akan memberikan tambahan waktu proses.

Pada penelitian ini diajukan suatu metode steganografi pada citra digital, yang menyisipkan informasi secara acak. Tujuannya adalah agar tanpa proses enkripsi sekalipun, informasi yang disisipkan akan lebih aman daripada steganografi LSB pada umumnya. Metode pengacakan yang digunakan adalah algoritma Fisher-Yates [5]. Data yang diacak adalah lokasi penyisipan.

2. Tinjauan Pustaka

(11)

2

penyisipan. Hal ini dilakukan dengan tujuan untuk meningkatkan keamanan pesan yang disisipkan.

Pada penelitian “Perancangan dan Implementasi Kriptografi Menggunakan Vigenere Cipher dan Fisher-Yates Shuffle Pada Data Citra Digital” [7], diimplementasikan algoritma Fisher-Yates shuffle untuk melakukan enkripsi dan dekripsi citra digital. Algoritma Fisher-Yates dimanfaatkan untuk melakukan pengacakan piksel pada citra digital, kemudian untuk meningkatkan keamanan ditambahkan proses enkripsi dengan algoritma Vigenere. Beda dengan penelitian tersebut, pada penelitian ini, Fisher-Yates digunakan bukan untuk mengacak informasi yang perlu diamankan, namun mengacak lokasi penyisipan, sehingga sukar ditebak.

Berdasarkan penelitian - penelitian yang telah dilakukan tentang steganografi pada citra digital dengan teknik LSB, dan implementasi Fisher-Yates

untuk pengamanan informasi, maka dilakukan penelitian yang bertujuan untuk merancang dan mengimplemetasikan aplikasi steganografi pada image PNG dengan algoritma Fisher-Yates Shuffle, sehingga diperoleh stego image. Pada penelitian ini digabungkan antara teknis steganografi LSB dengan Fisher-Yates shuffle. Steganografi LSB memiliki kelebihan dalam kecilnya perubahan yang tampak setelah proses penyisipan. Fisher-Yates shuffle berfungsi untuk meningkatkan keamanan, dengan cara mengacak posisi penyisipan bit. Proses pengacakan dilakukan sebelum proses penyisipan.

Batasan masalah dalam penelitian ini adalah sebagai berikut: (1) Pengamanan data dilakukan dengan cara menyembunyikan ke dalam citra digital; (2) Citra digital yang digunakan memiliki format PNG (24 bit warna); (3) Algoritma Fisher-Yates Shuffle digunakan untuk mengacak lokasi penyisipan, bukan untuk mengacak pesan yang akan disisipkan.

Steganografi adalah ilmu dan seni menyembunyikan pesan rahasia di dalam pesan lain sehingga keberadaan pesan rahasia tersebut tidak dapat diketahui. Steganografi berasal dari bahasa Yunani, yaitu “steganos” yang artinya “tulisan tersembunyi (covered writing)” [8]. Steganografi yang dibahas adalah penyembunyian data di dalam citra (image). Meskipun demikian, penyembunyian data dapat juga dilakukan pada media berupa suara digital, teks, ataupun video. Penyembunyian data rahasia ke dalam image akan mengubah kualitas image

(12)

3

Cara untuk mengaplikasikan steganografi pada file image terdiri dari beberapa cara yang lazim digunakan dan prinsip kerja atau algoritma yang digunakan sama seperti pada metode steganografi pada data audio. Berikut adalah beberapa teknik yang digunakan: 1) Least Significant Bit Insertion (LSB) adalah metode yang digunakan untuk menyembunyikan pesan pada media digital tersebut berbeda-beda. Contohnya, pada berkas audio, pesan dapat disembunyikan dengan menggunakan cara menyisipkannya pada bit rendah atau bit yang paling kanan (LSB) pada data piksel yang menyusun file tersebut; 2) Redundant Pattern Encryption adalah menggambar pesan kecil pada kebanyakan image. Keuntungan dari metode ini adalah dapat bertahan dari cropping (kegagalan). Kerugiannya yaitu tidak dapat menggambar pesan yang lebih besar; dan 3) Spread Spectrum

steganografi terpencar-pencar sebagai pesan yang diacak (encrypted) melalui

image (tidak seperti dalam LSB). Untuk membaca suatu pesan, penerima memerlukan algoritma yaitu crypto-key dan stego-key. Metode ini juga masih mudah diserang yaitu penghancuran atau pengrusakan dari kompresi dan proses

image (gambar) [9].

Cara paling mudah untuk menyembunyikan pesan adalah dengan memanfaatkan Least Significant Bit (LSB). Jika digunakan image 24 bitcolor

00111000 01010110 11000111 00110011 Jika ada pesan rahasia yang memiliki nilai 1101, maka dihasilkan:

00111001 01010111 11000110 00110011

Dapat dilihat bahwa bit-bit pesan rahasia mengubah bit-bit terakhir citra gambar. Perubahan pada LSB ini akan terlalu kecil untuk terdeteksi oleh mata manusia sehingga pesan dapat disembunyikan secara efektif. Akan lebih baik jika digunakan grayscale image karena perubahan warnanya akan lebih sulit dideteksi oleh mata manusia. Proses ekstraksi pesan dapat dengan mudah dilakukan, yaitu dengan mengekstrak LSB dari masing-masing piksel pada stego secara berurutan dan menuliskannya ke output file yang akan berisi pesan tersebut. Kekurangan dari metode modifikasi LSB ini adalah bahwa metode ini membutuhkan "tempat penyimpanan" yang relatif besar. Kekurangan lain adalah bahwa stego yang dihasilkan tidak dapat dikompres dengan format lossy compression [9].

Pada penelitian ini digunakan algoritma shuffle Fisher-Yates. Fisher-Yates shuffle (diambil dari nama Ronald Fisher dan Frank Yates) atau juga dikenal dengan nama Knuth shuffle (diambil dari nama Donald Knuth), adalah sebuah algoritma untuk menghasilkan suatu permutasi acak dari suatu himpunan terhingga, dengan kata lain untuk mengacak suatu himpunan tersebut [10]. Jika diimplementasikan dengan benar, maka hasil dari algoritma ini tidak akan berat sebelah, sehingga setiap permutasi memiliki kemungkinan yang sama. Metode dasar yang digunakan untuk menghasilkan suatu permutasi acak untuk angka 1 sampai N adalah sebagai berikut [5]:

(13)

4

2. Pilih sebuah angka acak K di antara 1 sampai dengan jumlah angka yang belum dicoret.

3. Dihitung dari bawah, coret angka K yang belum dicoret, dan tuliskan angka tersebut di lain tempat.

4. Ulangi langkah 2 dan langkah 3 sampai semuat angka sudah tercoret. 5. Urutan angka yang dituliskan pada langkah 3 adalah permutasi acak dari

angka awal.

Pada versi modern yang digunakan sekarang, angka yang terpilih tidak dicoret, tetapi posisinya ditukar dengan angka terakhir dari angka yang belum terpilih. Contoh pengerjaan dari versi modern ditunjukkan pada Tabel 1. Range

adalah jumlah angka yang belum terpilih, roll adalah angka acak yang terpilih,

scratch adalah daftar angka yang belum terpilih, dan result adalah hasil permutasi yang akan didapatkan.

Tabel1 Contoh Langkah Fisher-YatesShuffle

Range Roll Scratch Result

LSB embedding merupakan teknik steganografi yang menggunakan pendekatan tergolong sederhana dan langsung. Sesuai dengan namanya, teknik LSB embedding menyisipkan pesan ke dalam LSB (least significant bit). Hal ini hanya akan mempengaruhi nilai warna pada piksel sebesar + 1, maka secara umum diasumsikan bahwa degradasi warna yang terjadi dapat tidak dikenali oleh mata[11]. LSB embedding memiliki kelebihan dibandingkan dengan algoritma EOF steganography [3], dalam hal perubahan ukuran dokumen yang disisipi. LSB

embedding tidak menambahkan ukuran dokumen, karena proses yang terjadi adalah mengganti bit akhir tiap warna. EOF bekerja dengan menambahkan informasi pada akhir dokumen. Algoritma steganografi yang lain adalah algoritma DCT. Algoritma ini menggunakan frekuensi domain dari citra digital untuk menyisipkan informasi. Kelemahan dari algoritma DCT adalah mata manusia dapat mengenali perubahan yang terjadi pada frekuensi rendah [12]. Karena kelebihan - kelebihan dari algoritma LSB embedding, maka pada penelitian ini dipilih LSB embedding dalam proses penyisipan Digital signature dalam dokumen digital.

Pada penelitian ini, format file citra digital yang digunakan adalah PNG. PNG merupakan True Color image, yang berarti tiap piksel direpresentasikan dengan 3 byte, terbagi ke dalam red, green, dan blue masing-masing 1 byte. Hal ini sering disebut dengan warna RGB, atau TrueColor24bit. Selain 24 bit warna,

(14)

5

dengan perbedaan adalah adanya 1 byte tambahan yang disebut komponen alpha

[13][14].

Gambar1TrueColor24bit dan 32bit [14]

Microsoft .NET Framework merupakan sebuah perangkat lunak kerangka kerja yang berjalan pada sistem operasi Microsoft Windows. Saat ini .NET

Framework umumnya telah terintegrasi dalam distribusi standar Windows (mulai dari Windows Server 2003 dan versi-versi Windows yang lebih baru). Kerangka kerja ini menyediakan sejumlah besar pustaka pemrograman komputer dan mendukung beberapa bahasa pemrograman serta interoperabilitas yang baik sehingga memungkinkan bahasa-bahasa tersebut berfungsi satu dengan lain dalam pengembangan sistem. Berbeda halnya dengan tipikal aplikasi konvensional umumnya, program yang ditulis dengan memanfaatkan .NET Framework berjalan pada lingkungan perangkat lunak melalui Common Language Runtime, dan bukan perangkat keras secara langsung. Hal ini memungkinkan aplikasi yang dibuat di atas .NET secara teoritis dapat berjalan pada perangkat keras apapun yang didukung oleh .NET Framework. Perangkat lunak ini adalah kunci penawaran utama dari Microsoft, dan dimaksudkan untuk digunakan oleh sebagian besar aplikasi-aplikasi baru yang dibuat untuk platform Windows [15].

Pada penelitian ini, .NET Framework 4.5 digunakan untuk membangun aplikasi steganografi. Beberapa pustaka pemrograman yang digunakan adalah pustaka untuk membuat Graphical User Interface (GUI), pustaka pemrosesan gambar (Bitmap), dan pustaka pembangkitan bilangan acak (Random).

3. Metode dan Perancangan Sistem

Penelitian yang dilakukan, diselesaikan melalui tahapan penelitian yang terbagi dalam empat tahapan, yaitu: (1) Identifikasi masalah dan studi literatur, (2) Perancangan sistem, (3) Perancangan Prototype sistem, dan (4) Pengujian

(15)

6

Tahapan penelitian pada Gambar 2, dapat dijelaskan sebagai berikut.

Tahap pertama: identifikasi masalah, yaitu rentannya informasi yang dilewatkan di InterNet, dan diperlukan mekanisme untuk mengamankan informasi tersebut;

Tahap kedua: perancangan sistem yang meliputi perancangan proses penyisipan dan proses ekstrasi; Tahap ketiga: perancangan prototype sistem, yaitu membuat aplikasi sesuai perancangan proses pada tahap kedua; dan Tahap keempat:

pengujian sistem dan analisis hasil pengujian, yaitu dilakukan pengujian terhadap proses yang telah dirancang, dan melihat kesesuaian solusi terhadap masalah yang telah teridentifikasi sebelumnya.

Aplikasi dikembangkan melalui tahap pengembangan perangkat lunak

prototype model [16]. Pada proses implementasi dihasilkan beberapa prototype

yang dapat dijelaskan sebagai berikut. Tahap pertama: mengetahui kebutuhan sistem. Hal ini dapat dicapai dengan cara mendengarkan atau wawancara

customer/user; Tahap kedua; merancang program kemudian membuat perbaikan terhadap hasil yang diperoleh; Tahap ketiga: melakukan evaluasi ke customer atau

user dimana pada tahap ini proses akan kembali lagi ketahap pertama. Diagram

prototype model ditunjukkan pada Gambar 3.

Gambar 3 Prototype Model[16]

Proses penyisipan adalah proses menyembunyikan bit-bit informasi pesan ke dalam cover image. Gambar 5 menunjukkan langkah-langkah penyisipan dalam bentuk flowchart. Proses ini secara garis besar terdiri dari:

(16)

7

2. Memetakan koordinat warna pada cover image. Yaitu proses pemberian indeks pada tiap-tiap warna pada cover image. Pada 1 piksel terdapat 3 warna. Jika suatu gambar terdapat 10 piksel, maka terdapat 30 warna dengan indeks dari 0 sampai dengan 29.

3. Mengacak (shuffle) angka-angka indeks tersebut dengan algoritma Fisher-Yates. Fisher-Yates memerlukan algoritma random, dan .NET Framework

telah menyediakan kelas ini. Class random memerlukan seed sebagai nilai inisialisasi proses pembangkitan bilangan acak. Nilai seed diperoleh dengan cara menjumlahkan nilai ASCII tiap-tiap karakter pada kunci yang dimasukkan oleh user. Kemudian class random digunakan pada proses

shuffle, untuk membangkitkan indeks-indeks acak. Lebih jelasnya, ditunjukkan pada Kode Program 3.

4. Mengubah pesan ke dalam bentuk kode ASCII, kemudian dari nilai kode ASCII diubah ke dalam bentuk biner.

5. Lakukan sub proses berikut:

a. Inisialiasi variabel indeks I dengan nilai 0 (I=0).

b. Berdasarkan hasil pengacakan, ambil koordinat warna indeks ke-I. c. Ambil bit pesan pada indeks ke-I.

d. Sisipkan bit tersebut ke dalam warna pada koordinat indeks ke-I e. Lanjutkan proses penyisipan untuk bit indeks selanjutnya, pada

koordinat warna indeks selanjutnya (I=I+1). 6. Proses berhenti ketika semua bit pesan telah disisipkan.

(17)

8

Gambar 4 Proses Penyisipan Gambar 5 Proses Ekstraksi

Proses ekstraksi adalah proses mendapatkan kembali bit informasi pesan yang sebelumnya telah disisipkan ke dalam stego image. Gambar 4 menunjukkan langkah-langkah ekstraksi dalam bentuk flowchart. Proses ini secara garis besar terdiri dari:

1. Input dari proses ini adalah stegoimage, dan user key.

2. Memetakan koordinat warna cover image. Yaitu proses pemberian indeks pada tiap-tiap warna pada coverimage.

3. Mengacak (shuffle) angka-angka indeks tersebut dengan algoritma Fisher-Yates. Proses shuffle dilakukan dengan menggunakan user key, sebagai

(18)

9

shuffle yang sama. Sehingga proses ekstraksi dapat dilakukan dengan urutan yang sama dengan proses penyisipan.

4. Lakukan sub proses berikut:

a. Inisialiasi variabel indeks I dengan nilai 0 (I=0).

b. Berdasarkan hasil pengacakan, ambil koordinat warna indeks ke-I. c. Baca nilai LSB dari warna tersebut (ekstraksi bit pesan).

d. Lanjutkan proses ekstraksi pada warna selanjutnya (I=I+1).

5. Bit-bit pesan yang telah terkumpul, diubah ke dalam bentuk kode ASCII, kemudian diterjemahkan ke dalam karakter ASCII untuk tiap-tiap kode ASCII.

6. Output dari proses ini adalah pesan yang disisipkan.

Untuk menjelaskan proses embedding, diberikan contoh sebagai berikut. Jika diketahui potongan piksel pada suatu gambar adalah:

R G B R G B R G B R G B R G B R G 200 200 100 0 255 255 160 155 200 160 155 200 0 0 255 10 20

Kunci yang digunakan adalah “rahasia”. Maka proses penyisipan dilakukan dengan cara demikian:

1. Tentukan nilai seed dari kunci yang dimasukan. Seed diperoleh dengan cara melakukan menjumlahkan nilai ASCII tiap-tiap karakter. Hasil operasi ini adalah satu bilangan, yaitu 729.

Tabel 2 Mencari nilai Seed

r a h a s i a

114 97 104 97 115 105 97 =729

2. Nilai seed kemudian digunakan untuk melakukan shuffle.

Tabel 3 Hasil Shuffle Indeks Warna

3. Pesan yang disisipkan diubah ke bentuk binary. Jika pesan adalah huruf “F”, maka nilai ASCII nya adalah 70, dalam bentuk biner 01000110.

(19)

10

11001000. Baris kedua, nilai warna 0 (binernya: 00000000) disisipi dengan nilai

bit“1”, hasilnya adalah 1.

Untuk menjelaskan proses extracting, diberikan contoh sebagai berikut. Jika diketahui potongan piksel pada suatu gambar hasil penyisipan adalah:

R G B R G B R G B R G B R G B R G 200 200 100 1 255 255 160 154 200 160 155 200 1 1 255 10 20

Kunci yang digunakan adalah “rahasia”. Maka proses ekstraksi dilakukan dengan cara demikian:

5. Tentukan nilai seed dari kunci yang dimasukan. Seed diperoleh dengan cara melakukan menjumlahkan nilai ASCII tiap-tiap karakter. Hasil operasi ini adalah satu bilangan, yaitu 729.

Tabel 5 Mencari nilai Seed

r a h a s i a

114 97 104 97 115 105 97 =729

6. Nilai seed kemudian digunakan untuk melakukan shuffle.

Tabel 6 Hasil Shuffle Indeks Warna

7. Berdasarkan urutan indeks acak, baca bit LSB pada tiap warna.

(20)

11 4. Hasil dan Pembahasan

Pada bagian ini dijelaskan tentang hasil penelitian yang telah dilakukan. Sistem diimplementasikan dalam bentuk aplikasi desktop. Pengembangan aplikasi dilakukan dengan menggunakan Visual Studio 2012 Express for Desktop. Aplikasi terdiri dari dua bagian utama, yaitu bagian embedding dan bagian

extracting.

Gambar 6 FormEmbedding

Pada Gambar 6 ditunjukkan form embedding. Form tersebut menyediakan kontrol untuk memilih gambar cover, input pesan dan kunci. Hasil embedding ditampilkan setelah proses embed selesai.

Gambar 7FormExtracting

Pada Gambar 7, ditunjukkan form yang digunakan untuk proses ekstraksi.

Form ini memerlukan input berupa gambar stego dan kunci. Output dari proses ekstraksi adalah data teks, yaitu pesan yang disisipkan sebelumnya.

Kode Program 1 Perintah Untuk Input Gambar Kedalam Aplikasi

1. private void button1_Click(object sender, EventArgs e)

2. {

3. OpenFileDialog d = new OpenFileDialog();

(21)

12

5. if (d.ShowDialog(this) == DialogResult.OK)

6. {

7. this.pictureBox1.ImageLocation = d.FileName;

8. var b = new Bitmap(d.FileName);

9. AddLog("Ukuran Piksel " + b.Width + "x" + b.Height); 10.AddLog("Kapasistas Penyisipan " + GetKapasitas(b)); 11.}

12.}

13.private static int GetKapasitas(Bitmap b)

14.{

15.return (((b.Width * b.Height * 3) / 8) - 4);

16.}

17.Bitmap b = new Bitmap(this.pictureBox1.ImageLocation);

18. var kapasitas = GetKapasitas(b);

19. if (this.textBox2.Text.Length > kapasitas)

20. {

21. MessageBox.Show("Penyisipan tidak dapat dilakukan. Panjang Pesan

22. Melebihi Kapasitas");

23. return;

24. }

Kode Program 1 merupakan potongan perintah untuk proses input image

kedalam aplikasi. Format image yang digunakan adalah PNG (baris 4). Setelah gambar berhasil dimasukan maka akan tampil informasi mengenai gambar yang sudah dimasukan kedalam aplikasi yaitu informasi ukuran piksel dan kapasitas penyisipan (baris 9-10). Misalnya pada gambar berukuran 200x200 piksel, kapasitas penyisipan adalah (200 x 200 x 3 warna) / 8 bit = 15000 byte. Kemudian dikurangi 4 byte, untuk menyimpan 32 bitmetadata. Sehingga kapasitas akhirnya adalah 14996 byte(baris 15). Jika pesan yang disisipkan melebihi kapasitas penyisipan maka akan diatasi dengan penanganan error atau error handling

(baris19-24).

Kode Program 2 Perintah Untuk Input Pesan Dan User Key

1. If (textBox2.TextLength == 0)

7. if (shuffleCheckBox.Checked && textBox3.TextLength < 8)

8. {

(22)

13

Kode Program 3 Perintah Untuk Penjumlahan Kunci

1. public class ToolKey

2. {

3. public static int SumKey(byte[] key)

4. {

Kode program 3 merupakan perintah penjumlahan kunci menjadi angka

seed(baris 5-8). Angka seed dipakai untuk melakukan proses shuffle indeks. Penggunaan user key yang sama akan menghasilkan urutan shuffle yang sama pada saat akan melakukan proses ekstraksi.

Kode Program 4 Perintah Shuffle dengan Algoritma Fisher-Yates

1. public static T[] Shuffle<T>(T[] array, int seed)

2. {

3. T[] copy = new T[array.Length];

4. array.CopyTo(copy, 0); sekumpulan nilai data. Proses shuffle dilakukan dengan menggunakan algoritma

Fisher-Yates. Algoritma tersebut memanfaatkan fungsi acak. Pada .Net

Framework, disediakan class random yang dapat membangkitkan bilangan acak (baris 5). Angka acak diperoleh dengan memanggil fungsi next (baris 8).

Kode Program 5 Perintah Untuk Proses Penyisipan

1. int length = data.Length;

2. byte[] blength = BitConverter.GetBytes(length);

3. byte[] pixels = ExtractPixels(cover);

4. char[] biner;

5. int[] indeks = GenerateIndex(0, pixels.Length);

6. If (shuffle)

7. {

8. int seed = Toolkey.SumKey(key);

9. indeks = FisherYates.Shuffle<int>(indeks, seed);

10.}

11.int i;

12.int p = 0;

13.

14.#region . SISIPKAN METADATA .

15.biner = GetBitString(blength).ToCharArray();

16.for (i = 0; i < biner.Length; i++)

(23)

14

35.Bitmap resultImage = CombinePixels(cover, pixels, new byte[0]);

36.return resultImage

Kode Program 5 merupakan potongan perintah untuk proses penyisipan ke dalam gambar. Proses terdiri dari 3 tahap utama. Tahap pertama yaitu proses

shuffle indeks-indeks warna pada gambar. Proses ini dilakukan dengan algoritma

Fisher-Yates (baris 6-7), dengan menggunakan seed hasil penjumlahan kunci (baris 5). Tahap kedua adalah menyisipkan metadata. Metadata memiliki arti suatu data yang memberikan informasi tentang data yang lain. Pada kasus ini,

metadata berisi informasi: panjang byte data yang akan disisipkan. Tahap terakhir adalah menyisipkan data itu sendiri. Sebelum data disisipkan, data diubah kedalam bentuk biner(baris 25). Data berisi pesan yang dimasukkan oleh pengguna.

Kode Program 6 Perintah Untuk Proses Ekstraksi

1. byte[] pixels = ExtractPixels(stego);

2. int[] indeks = GenerateIndex(0, pixels.Length);

3. if (shuffled)

4. {

5. Int seed = Toolkey.SumKey(key)

6. indeks = FisherYates.Shuffle<int>(indeks, seed);

7. }

8. int i;

9. int p = 0;

10.

11.#region . EXTRACT METADATA .

12.char[] biner = new char[32];

19.byte[] blength = GetBytesArray(new string(biner));

20.int length = BitConverter.ToInt32(blength, 0);

(24)

15

33.return GetBytesArray(new string(biner.ToArray()));

Kode Program 6 merupakan potongan perintah untuk proses ekstraksi dari dalam gambar. Proses terdiri dari 3 tahap utama. Tahap pertama yaitu proses

shuffle indeks-indeks warna pada gambar. Proses ini dilakukan dengan algoritma

Fisher-Yates (baris 3-4), dengan menggunakan seed hasil penjumlahan kunci (baris 2). Tahap kedua adalah ekstraksi metadata. Metadata diekstrak terlebih dahulu, untuk mengetahui berapa banyak bit data yang akan diekstrak selanjutnya. Tahap terakhir adalah ekstraksi data itu sendiri atau membaca LSB pada warna yang disisipkan (baris 27).

Sistem yang dikembangkan pada penelitian ini didasarkan pada latar belakang masalah yaitu bagaimana menyisipkan informasi pada gambar secara acak. Berdasarkan hal tersebut, maka dilakukan beberapa pengujian. Pengujian pertama yaitu pengujian keberhasilan penyisipan pesan (uji integritas). Pengujian kedua adalah pengujian perbandingan perbedaan warna. Pengujian-pengujian tersebut dilakukan dengan menggunakan standart test images [17] yang biasa digunakan pada pengujian algoritma pengolahan gambar.

Pengujian pertama yaitu pengujian integritas pesan. Pengujian ini bertujuan untuk membuktikan bahwa proses penyisipan berhasil dilakukan, dan pesan yang diproses (embed dan extract), tidak mengalami perubahan.

Tabel 8 Hasil Pengujian Integritas pesan

(25)

16

(26)

17

metadata yang digunakan memiliki ukuran 32 bit, maka panjang maksimal pesan yang dapat disisipkan adalah 232 = 4.294.967.296 byte (4 milyar karakter). Selain dibatasi oleh metadata, ukuran gambar mempengaruhi panjang pesan yang dapat disisipkan.

Pengujian kedua adalah pengujian perbandingan perbedaan warna. Pengujian ini dilakukan dengan menyisipkan data pada 8 gambar berbeda. Kemudian dibandingkan perbedaan piksel yang diakibatkan oleh proses penyisipan. Proses penyisipan dilakukan antara steganografi dengan Fisher-Yates, dan steganografi tanpa Fisher-Yates. Kunci yang digunakan untuk Fisher-Yates

adalah “fti.uksw”, dan pesan yang disisipkan adalah:

“Satya Wacana, Satya Wacana, hiduplah garba ilmiah kita. Mengabdi Tuhan, gereja dan bangsa, proklamasikan Kerajaan Sorga.

Bela k’adilan, bela keb’naran, pantang mundur maju perkasa. Bina negara, hamba Allahnya, amalkan hikmat Pancasila.”

Tabel 9 Hasil Pengujian Perbandingan Perbedaan Warna

(27)

18

5. 989 992

6. 989 1004

7. 975 975

8. 960 993

9. 920 1046

Hasil pengujian perbandingan perbedaan piksel menunjukkan bahwa dengan menyisipkan secara acak, akan memberikan kemungkinan perubahan piksel yang lebih sedikit. Kemungkinan ini juga dipengaruhi oleh kunci yang digunakan, mengingat kunci digunakan untuk membuat nilai SEED, dan digunakan untuk membuat urutan penyisipan acak.

Pengujian ketiga, yaitu pengujian pengaruh kunci, dilakukan untuk membuktikan bahwa kunci dapat mempengaruhi perbedaan warna yang dihasilkan. Pada pengujian ini dilakukan pengisipan pesan yang sama, pada gambar yang sama, namun dengan kunci yang berbeda-beda.

Tabel 3 Hasil Pengujian Pengaruh Kunci No Kunci (8-12

karakter)

SEED Gambar Asli Stego dengan

Fisher-Yates

Perbedaan warna

(28)

19

2. FTI.uksw 731 989

3. satya.wacana 1211 970

4. satya.WACANA 1019 1010

5. @@##12bc 494 1000

6. 9987aXUy^*f5 907 982

7. 998799871234 652 1006

8. ABCDEFGHIJKL 846 1940

(29)

20

10. aaaabbbbcccc 1176 1888

11. xxxx1234xxxx 1162 1880

12. 777777777777 660 1905

13. HelloworlD 1020 1889

14. worldhello 1084 1885

15. 1234abcd 596 1920

Hasil pengujian pengaruh kunci, memberikan hasil yaitu kunci yang berbeda akan memberikan hasil penyisipan yang berbeda. Tidak ada aturan khusus dalam pemilihan kunci yang terbaik. Untuk meminimalkan perubahan warna, yang dapat dilakukan adalah dengan melakukan penyisipan beberapa kali dengan beberapa pilihan kunci, dan dipilih kunci yang akhirnya memberikan nilai perbedaan warna terkecil. Pada Tabel 3, kunci “fti.uksw” memberikan perubahan yang paling minimal pada stego image.

Analisis dari hasil pengembangan aplikasi dan pengujian adalah, dengan menggunakan .NET Framework, aplikasi steganografi lebih mudah dikembangkan, terutama dalam hal pengolahan piksel gambar, dan penggunakan

(30)

21

menyediakan fungsionalitas untuk membangkitkan bilangan acak, yang digunakan pada proses shuffle.

Penggunaan Fisher-Yates memberikan keuntungan yaitu pesan yang disisipkan, dilakukan dalam posisi yang acak, tersebar dalam piksel-piksel warna. Pesan yang disisipkan dengan cara demikian, memiliki potensi keamanan lebih tinggi daripada pesan yang disisipkan dengan berurutan. Kelemahan yang muncul yaitu adanya tambahan proses selain proses embedding dan extracting, yaitu proses shuffle. Karena proses shuffle bekerja dengan cara mengacak posisi indeks warna pada gambar, maka semakin banyak warna (semakin besar gambar), maka semakin lama pula proses shuffle yang dilalui.

5. Simpulan

Berdasarkan penelitian, pengujian dan analisis terhadap sistem, maka dapat diambil kesimpulan sebagai berikut: (1) Steganografi pada citra digital dapat diimplementasikan dengan menggabungkan metode penyisipan yang memanfaatkan LSB, dan posisi penyisipan yang acak dengan algoritma Fisher-Yates; (2) Penyisipan secara acak disebarkan pada seluruh gambar. Penyisipan non-acak disisipkan secara berurutan, sehingga merusak piksel mulai dari sisi kiri atas. Hal ini memiliki resiko ketika bit diekstrak secara berurutan, maka pesan yang disembunyikan akan dapat diperoleh; (3) Hasil pengujian menunjukkan bahwa dengan mengacak posisi penyisipan, dapat memberikan kemungkinan perubahan piksel yang lebih sedikit; (4) Kunci yang digunakan, akan mempengaruhi lokasi penyisipan, sehingga akan kunci yang berbeda untuk pesan dan gambar yang sama, akan menghasilkan stegoimage yang berbeda.

Saran yang dapat diberikan untuk penelitian dan pengembangan lebih lanjut adalah dalam hal pemanfaatan angka seed yang bervariasi. Seperti diketahui bahwa angka seed mempengaruhi hasil urutan lokasi penyisipan (hasil shuffle). Angka seed dapat dibangkitkan sebanyak beberapa angka. Untuk tiap angka, disimulasikan lokasi penyisipan, hasil penyisipan, dan berapa persen bit yang ganti (0 jadi 1 atau 1 jadi 0). Kemudian dipilih angka seed yang memberikan nilai perbedaan terkecil. Hal ini akan semakin menurunkan tingkat kerusakan pada citra digital, dan menurunkan kecurigaan.

6. Daftar Pustaka

[1]. FLOSS Manuals 2015. Understanding Basic InterNet Security. http://en.flossmanuals.Net/basic-interNet -security/ch003_understanding-basic-interNet-security/. Diakses pada 7 Juli 2015

[2]. Forouzan, B. A. 2007. Cryptography & Network Security. McGraw-Hill, Inc.

(31)

22

[4]. Potdar, V. M. & Chang, E. 2004. Grey level modification steganography for secret communication. In Industrial Informatics, 2004. INDIN’04. 2004

2nd IEEE International Conference on, pp. 223–228.

[5]. Black, P. E. 2005. Fisher-Yates shuffle. Dictionary of Algorithms and Data Structures 19.

[6]. Alatas, P. 2009. Implementasi Teknik Steganografi dengan Metode LSB pada Citra Digital. Universitas Gunadarma

[7]. Pada, R. L. & Pakereng, M. A. I. 2015. Perancangan dan Implementasi Kriptografi Menggunakan Vigenere Cipher dan Fisher-Yates Shuffle Pada Data Citra Digital. Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Kristen Satya Wacana

[8]. Munir, R. 2006. Kriptografi. Informatika, Bandung

[9]. Arusbusman, Y. R. 2007. Image Steganografi.

[10]. Ade-Ibijola, A. O. 2012. A Simulated Enhancement of Fisher-Yates Algorithm for Shuffling in Virtual Card Games using Domain-Specific Data Structures. International Journal of Computer Applications 54.

[11]. Chandramouli, R. & Memon, N. 2001. Analysis of LSB based image steganography techniques. In Image Processing, 2001. Proceedings. 2001 International Conference on, pp. 1019–1022.

[12]. Rafferty, C. 2005. Steganography & Steganalysis of Images. National University of Ireland, Galway

[13]. Willamette.edu In press. Image File Formats.

[14]. Randers-Pehrson, G., Boutell, T. & others 1999. PNG (Portable Network Graphics) Specification, Version 1.2. PNG Development Group 28.

[15]. Microsoft 2015. Overview of the .NET Framework. https://msdn.microsoft.com/id-id/library/zw4w595w(v=vs.110).aspx. Diakses pada 4 November 2015.

[16]. Pressman, R. S. & Jawadekar, W. S. 1987. Software engineering. New York 1992

Gambar

Gambar 3 Prototype Model[16]
Gambar 4 Proses Penyisipan
Tabel 2 Mencari nilai Seed
Tabel 5 Mencari nilai Seed
+5

Referensi

Dokumen terkait

Mangrove Sonneratia alba yang diambil di sekitar pantai Desa Nunuk Kecamatan Pinolosian, memiliki kandungan bioaktif alkaloid, flavonoid, fenolik, tanin, saponin,

Sedang bentuk plastis ialah bentuk benda yang terlihat dan terasa karena adanya unsur nilai (value) dari benda tersebut, contohnya lemari. Lemari hadir di dalam suatu ruangan

Setelah dilakukan uji laboratorik bilangan peroksida dengan menggunakan metode iodometri terhadap sampel minyak goreng jelantah, maka diperoleh hasil penelitian

Dengan demikian, Persib akan dapat secara perlahan keluar dari permasalahan klasik yang melanda nyaris seluruh klub sepakbola di Indonesia: tidak berprestasi dan

Dengan demikian kepuasan masyarakat pengguna layanan pengadilan, ruang lingkup maklumat pelayanan berada pada kategori sangat baik.. Adapun hasil jawaban kuesioner

Penelitian ini merupakan penelitian deskriptif yang bertujuan untuk mendeskripsikan pengelolaan pembelajaran oleh guru, aktivitas siswa, hasil belajar siswa, dan

 Bagi Penyedia Jasa atau Pemilik Kapal yang sedang menjalani pemeriksaan oleh instantsi yang terkait, antara lain pihak kepolisian, TNI, Bea Cukai, Perpajakan, atas

adalah vektor bobot yang menghubungkan setiap neuron pada lapisan input ke neuron pertama pada lapisan output, sedangkan adalah vektor bobot yang menghubungkan setiap neuron