Institutional Repository | Satya Wacana Christian University: Perancangan dan Implementasi Aplikasi Steganography untuk Pengamanan Pesan menggunakan Vigenere Cipher, PRNG, dan LSB Embedding

Perancangan dan Implementasi Aplikasi Steganography
untuk Pengamanan Pesan menggunakan Vigenere
Cipher, PRNG, dan LSB Embedding

Artikel Ilmiah

Peneliti:
Kukuh Setyo Nugroho (672008054)
Magdalena A. Ineke Pakereng, M.Kom.

Program Studi Teknik Informatika
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
Salatiga
Mei 2015

Perancangan dan Implementasi Aplikasi Steganography
untuk Pengamanan Pesan menggunakan Vigenere
Cipher, PRNG, dan LSB Embedding

Artikel Ilmiah


Diajukan kepada
Fakultas Teknologi Informasi
Untuk Memperoleh Gelar Sarjana Komputer

Peneliti:
Kukuh Setyo Nugroho (672008054)
Magdalena A. Ineke Pakereng, M.Kom.

Program Studi Teknik Informasi
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
Salatiga
Mei 2015
i

ii

iii


iv

v

vi

vii

Perancangan dan Implementasi Aplikasi Steganography
untuk Pengamanan Pesan menggunakan Vigenere
Cipher, PRNG, dan LSB Embedding
Kukuh Setyo Nugroho 1, Magdalena A. Ineke Pakereng 2
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
Jl. Diponegoro 52-60, Salatiga 50711, Indonesia
Email: ntyo95@gmail.com1, ineke.pakereng@staff.uksw.edu2
Abstract
Computer networks and the Internet facilitate the process of information exchange.
When a confidential information is transmitted over a computer network / internet, it is
necessary to guarantee that such information can only be accessed by certain people.

Steganography techniques can be used as a solution to the problem. Steganography is a
technique of hiding information in other media. Hiding techniques provide the advantage
that the transmitted message is not suspicious, because the message is in the form of
common media, such as image files, audio, or video. In this study, a Vigenere Cipher, and
PRNG steganography method is implemented. Hiding process is done in a particular color
component LSB. The result is an application of steganography, which uses a Vigenere
Cipher, PRNG, and LSB embedding steganography method. The test result shows that cover
image and stego image does not have any significant difference visually. Message integrity
test shows that inserted message does not change so sent message is the same as the received
message.
Keywords: Steganography, Vigenere Cipher, PRNG, LSB Embedding
Abstrak
Jaringan komputer dan internet mempermudah proses pertukaran informasi. Ketika
suatu informasi bersifat rahasia ditransmisikan lewat jaringan komputer/internet, maka
diperlukan jaminan bahwa informasi tersebut hanya dapat diakses oleh pihak yang
berkepentingan. Teknik steganografi dapat digunakan sebagai solusi untuk masalah tersebut.
Steganografi merupakan teknik menyembunyikan informasi pada suatu media lain. Teknik
penyembunyian memberikan keuntungan yaitu pesan yang ditransmisikan tidak
menimbulkan kecurigaan, karena pesan berada dalam bentuk media yang umum, seperti file
image, audio, atau video. Pada penelitian ini diimplementasikan metode steganografi

menggunakan algoritma Vigenere Chiper dan PRNG, dimana penyisipan dilakukan pada
LSB komponen warna tertentu. Penelitian menghasilkan suatu aplikasi steganografi, yang
menggunakan metode steganografi Vigenere Cipher, PRNG, dan LSB Embbeding. Hasil
Pengujian menunjukkan cover image dan stego image secara visual tidak menampakkan
perbedaan yang signifikan. Uji integritas pesan menunjukkan pesan yang disisipkan tidak
mengalami perubahan, sehingga pesan yang dikirimkan sama dengan pesan yang diterima.
Kata Kunci: Steganografi, Vigenere Cipher, PRNG, LSB Embedding
1

2

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

viii

1.

Pendahuluan


Jaringan komputer dan internet mempermudah proses pertukaran
informasi. Masalah yang muncul adalah informasi yang dilewatkan pada jaringan
komputer adalah data plaintext. Hal ini beresiko ketika ada pihak lain yang
berhasil menyadap informasi ini, dapat dengan mudah membaca isi informasi
tersebut.
Dalam bidang keamanan komputer, ada dua teknik yang digunakan untuk
menyembunyikan data atau pesan rahasia sehingga data atau pesan rahasia tetap
tidak terlihat, yaitu teknik kriptografi dan steganografi. Pada teknik kriptografi
sebelum data atau pesan rahasia dikirim, data dienkripsi dengan algoritma
tertentu, sehingga pesan yang dikirim tidak dapat dibaca atau diketahui orang
lain. Namun karena pesan tersebut merupakan pesan acak dan berbeda dengan
data aslinya, maka akan menimbulkan kecurigaan pada orang lain. Kecurigaan ini
akan mengarah ke usaha pembobolan informasi.
Steganografi merupakan teknik pengamanan pesan dengan cara
menyembunyikan pesan ke dalam media lain. Media ini pada umumnya disebut
cover, dan dapat berupa file audio, video, gambar, atau format yang lain. Pesan
tersembunyi ke dalam media lain yang dapat dipahami oleh orang lain (tidak
dalam bentuk informasi acak), maka hal ini memberikan kelebihan yaitu tidak
menimbulkan kecurigaan orang lain. Salah satu teknik steganogarfi adalah Least

Signigicant Bit (LSB). Teknik steganografi dengan metode LSB, melakukan satu
penyisipan pesan ke bit terendah (LSB) tiap pixel yang terdapat pada cover, pada
satu pasangan komponen byte tertentu.
Steganografi dengan menggunakan gambar sebagai media penyimpanan
memiliki kelebihan daripada media lain seperti audio dan video, yaitu ukuran file
gambar yang relatif lebih kecil dan meminimalisasi perubahan dari cover. File
gambar inipun merupakan salah satu format file yang sering dipertukarkan dalam
dunia internet. Alasan lainnya adalah banyaknya tersedia algoritma Steganografi
untuk media penampung yang berupa citra. Hal mengenai ukuran file ini penting
ketika stego image (file gambar yang telah disisipi pesan) harus dikirimkan
melalui jaringan komputer.
Penerapan Steganografi citra digital pada penelitian ini menggunakan
cover image dengan format PNG karena file PNG menggunakan kompresi yang
tidak menghilangkan data (lossless compression). Hal ini dikarenakan metode ini
menggunakan bit-bit setiap piksel pada image. Pesan yang berada dalam citra
stego akan tetap aman dan dapat dimunculkan kembali jika proses pengunggahan
pada media (Twitter, Wordpress, Blogger) menggunakan citra berformat PNG [1].
Berdasarkan latar belakang tersebut, maka dilakukan penelitian yang
membahas tentang Perancagan dan Implementasi Aplikasi Steganography untuk
Pengamanan Pesan menggunakan Vigenere Cipher, PRNG, dan LSB Embedding.

2.

Tinjauan Pustaka

Penelitian yang membahas sistem steganografi pernah dilakukan.
Penelitian dengan topik “Efficient Method of Audio Steganography by Modified

1

LSB Algorithm and Strong Encryption Key With Enhanced Security”, yaitu
penelitian yang mengajukan metode baru untuk penyisipan pesan dalam audio,
dengan memodifikasi metode Least Significant Bit (LSB), dan menggunakan
kekuatan kunci enkripsi untuk meningkatkan keamanan pesan yang disisipkan.
Enkripsi yang digunakan adalah teknik enkripsi yang ditentukan sendiri dengan
aturan yang sederhana. Proses enkripsi diterapkan pada pesan, sebelum pesan
tersebut disisipkan ke dalam audio [2]. Berbeda dengan penelitian tersebut, pada
penelitian yang dilakukan ini, digunakan file gambar sebagai cover.
Pada penelitian yang berjudul “Implementasi Teknik Steganografi dengan
Metode LSB pada Citra Digital”, disebutkan tentang perlunya pengamanan
pengiriman pesan melalui jaringan Internet. Pada penelitian tersebut digunakan

media gambar sebagai cover. Hasil penelitian tersebut adalah sebuah aplikasi
steganografi dengan algoritma LSB Embedding, yang dapat menyembunyikan
pesan, sehingga orang lain tidak menyadari keberadaan pesan di dalam media [3].
Berbeda dengan penelitian ini adalah, pada penelitian ini pesan yang disisipkan,
sebelumnya dilakukan proses enkripsi. Hal ini dilakukan dengan tujuan untuk
meningkatkan keamanan pesan yang disisipkan.
Pada penelitian yang berjudul “Penerapan Metode Vigenere Cipher pada
Aplikasi Chat Messenger Sederhana”, disebutkan bahwa pada aplikasi chat perlu
dilakukan penyandian pesan, karena pesan yang dikirimkan dapat berupa data
penting, rahasia, atau pribadi. Pada penelitian tersebut digunakan algoritma
vigenere untuk proses penyandian pesan [4]. Beda dengan penelitian ini adalah
algoritma vigenere digunakan untuk menyandikan pesan sebelum pesan disisipkan
dalam suatu gambar.
Batasan masalah dalam penelitian ini adalah : 1) Format cover image yang
digunakan yaitu *.png, 2) Metode yang digunakan untuk mengamankan pesan
adalah dengan menggunakan algoritma Vigenere Ciphe,r 3) PRNG (Pseudo
Number Random Generator) digunakan untuk membangkitkan kunci pada proses
enkripsi pesan, 4) Penyisipan informasi ke dalam sebuah gambar menggunakan
teknik Least Significant Bit (LSB).
Berdasarkan penelitian-penelitian sebelumnya yang telah dilakukan

tentang steganografi, LSB Embedding, dan algoritma Vigenere, maka pada
penelitian ini dirancang dan diimplementasikan suatu aplikasi steganografi pada
citra digital, dengan menyisipkan pesan yang terenkripsi. Aplikasi yang dibangun
menggunakan bahasa pemrograman C# .net framework 4.5 yang berfungsi untuk
menyisipkan pesan berupa file teks pada citra digital yag bertujuan utnuk
memproteksi pesan tersebut melalui media citra digital. Teknik yag digunakan
dalam implementasi adalah Vigenere Cipher, PRNG, dan LSB Embedding,
dimana pesan rahasia berupa teks disisipkan ke dalam media citra digital sehingga
keberadaan pesan tidak diketahui oleh penglihatan manusia dengan mudah.
Penelitian yang dilakukan membahas tentang steganografi LSB Embedding.
Steganografi adalah ilmu dan seni 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)” [5]. Steganografi yang dibahas
adalah penyembunyian data di dalam citra (image). Meskipun demikian,

2

penyembunyian data dapat juga dilakukan pada wadah berupa suara digital, teks,
ataupun video. Cara untuk mengaplikasikan steganografi pada file image terdiri

dari beberapa cara yang biasa digunakan dan prinsip kerja atau algoritma yang
digunakan sama seperti pada metode steganografi pada data audio [6].
Dalam penyembunyian informasi ada beberapa kriteria yang harus
diperhatikan, yaitu : 1) Imperectibility keberadaan pesan rahasia dalam media
penampung tidak dapat dideteksi oleh inderawi. Misalnya, jika cover berupa
image, maka penyisisipan pesan membuat stego-image sukar dibedakan oleh
mata, 2) Fidelity : setelah melakukan penyisipan data rahasia, kualitas gambar
cover-image tidak jauh berubah. Hal ini menyebabkan tidak ada yang tahu bahwa
dalam gambar tersebut terdapat rahasia, 3) Recovery : data yang disembunyikan
harus dapat diungkapkan kembali. Karena tujuan dari setganografi adalah datahiding, maka data rahasia dalam cover-image harus dapat kembali untuk
digunakan lebih lanjut [3].
LSB (Least significant bit) adalah bagian dari barisan data biner (basis
dua) yang mempunyai nilai paling kecil. Letaknya adalah paling kanan dari
barisan bit. Sedangkan most significant bit adalah sebaliknya, yaitu angka yang
paling besar dan letaknya di sebelah paling kiri [7].

Gambar 1 Least Significant Bit (LSB) [7]

Pada Gambar 1 terlihat jelas bit-bit LSB pada 1 piksel warna, penanaman
informasi dapat dilakukan pada bit-bit tersebut.

Contoh:
Data awal, tiga piksel dari gambar 24-bit
(00100111 11101001 11001000)
(00100111 11001000 11101001)
(11001000 00100111 11101001)
Nilai biner dari karakter „A‟ adalah 10000011
Data setelah penanaman karakter „A‟
(00100111 11101000 11001000) → 100
(00100110 11001000 11101000) → 000
(11001001 00100111 11101001) → 11,
Hanya bit-bit yang digarisbawahi yang mengalami perubahan.

3

Model warna RGB merupakan gambar yang tiap pikselnya
direpresentasikan oleh kombinasi intensitas tiga buah komponen warna, yaitu Red
(R), Green (G), Blue (B). Masing-masing komponen tersebut terdiri atas 8 bit.
Sebuah warna dalam piksel gambar RGB dapat direpresentasikan dalam tiga byte
atau 24-bit. Kombinasi ketiga intensitas warna tersebut dapat menghasilkan 16
juta (
) variasi warna [8].
Vigenere cipher menggunakan suatu kunci yang memiliki panjang
tertentu. Panjang kunci tersebut dapat lebih pendek ataupun sama dengan panjang
plaintext.
Untuk memudahkan dalam proses pengenkripsianya, maka dapat
digunakan alat bantu berupa bujur sangkar Vigenere yang dikenal juga dengan
nama tabula recta.

Gambar 2 Tabula Recta [4]

Baris pada gambar tabula recta menyatakan huruf plainteks yang akan
dienkripsi, dan kolom menyatakan huruf kunci enkripsi. Dan perpotongan antara
baris dan kolom menyatakan huruf yang sudah terenkripsi atau diistilahkan
dengan ciphertext.
Jika panjang kunci kurang dari panjang plaintext, maka kunci tersebut
akan diulang secara periodik hingga panjang kunci tersebut sama dengan panjang
plainteksnya.
Algoritma enkripsi vigenere cipher :
Ci = (Pi + Ki) mod 26
Algoritma dekripsi vigenere cipher :
Pi = (Ci – Ki) mod 26
Dimana :
Ci = nilai desimal karakter ciphertext ke-i
Pi = nilai desimal karakter plaintext ke-i
Ki = nilai desimal karakter kunci ke-i

4

Contoh 1
- Plainteks
- Kunci
Plainteks
Kunci
Cipherteks

: TEKNOLOGI
: FTI
T
E
K
F
T
I
Y
X
S

N
F
S

O
T
H

L
I
T

O
F
T

G
T
O

I
I
Q

Pada Contoh 1 kata kunci FTI diulang sedemikian rupa hingga panjang
kunci sama dengan panjang plainteksnya. Kemudian setelah panjang kunci sama
dengan panjang plainteks, proses enkripsi dilakukan dengan melakukan
menggeser setiap huruf pada plainteks sesuai dengan huruf kunci bersesuaian
dengan huruf plainteks tersebut.
Vigenere Cipher yang akan dipakai dalam pada aplikasi ini adalah
vigenere cipher extended dimana pengenkripsian tidak hanya untuk huruf
alphabet tetapi termasuk juga karakter – karakter ASCII. Jadi pengenkripsian
tidak tebatas untuk 26 karakter tetapi mencapai 256 karakter.
Pseudo Random Number Generator (PRNG) adalah algoritma yang
membangkitkan deretan bilangan yang tidak benar-benar acak. Bilangan acak
dihasilkan dengan rumus-rumus matematika dan dapat berulang kembali secara
periodik. Bilangan acak banyak digunakan dalam kriptografi, misalnya untk
pembangkitan elemen kunci, pembangkitan initialization vector (IV),
pembangkitan parameter kunci di dalam sistem kriptografi kunci public, dan
sebagainya. Beberapa algoritma PRNG yang sering digunakan di antaranya
Linear Congruential Generator (LCG), Lagged Fibonacci Generator, Linier
Feedback Shift Register (LSFR), Blum Blum Shub, Fortuna, dan Mesenne
Twister [5]. Pembangkitan bilangan pseudorandom (semi acak) adalah deretan
bilangan dengan kemungkinan pengulangan yang sangat kecil atau periode
pengulangan yang sangat besar [9].
Linier Congruential Generator (LCG) adalah salah satu pembangkit
bilangan acak tertua dan sangat terkenal. Algoritma ini diciptakan oleh D.H.
Lehmer pada tahun 1951. LCG didefinisikan dalam bentuk:
yang dalam hal ini,
= bilangan acak ke-n
= bilangan acak sebelumnya
= bilangan pengali
b
= bilangan penambah
m
= modulus
X0
= nilai awal berupa bilangan bulat tak negatif
(a,b dan m semuanya konstanta)
Untuk memulai pembangkitan bilangan acak ini dibutuhkan semua
bilangan bulat X0, yang dijadikan sebagai seed awal (bibit pembangkitan).
Bilangan acak pertama yang dihasilkan selanjutnya menjadi bibit pembangkitan
bulat acak selanjutnya. Jumlah bilangan acak yang tidak sama satu sama lain

5

(unik) adalah m. semakin besar nilai m, semakin kecil kemungkinan akan
dihasilkan nilai sama [9].
PNG merupakan standar terbuka format imageraster yang didukung oleh
W3C dan IETF. Pada dasarnya, format PNG bukan merupakan format baru
karena telah dikembangkan pada tahun 1995 untuk mengganti format GIF. Format
ini tidak digunakan lagi secara luas oleh browser dan perangkat lunak aplikasi
pengolah gambar, sehingga dukungan terhadap format tidak begitu besar hingga
tahun 2003, di mana format PNG semakin dikenal dan dipergunakan untuk
aplikasi manipulasi gambar. PNG (Portable Network Graphics) adalah salah satu
format penyimpanan citra yang menggunakan metode pemadatan yang tidak
menghilangkan bagian dari citra tersebut (lossless compression). Format PNG
diperkenalkan untuk menggantikan format penyimpanan citra GIF. Citra dengan
format PNG mempunyai faktor kompresi yang lebih baik dibandingkan citra
dengan format GIF.
Satu fasilitas dari GIF yang tidak terdapat pada format PNG adalah
dukungan terhadap penyimpanan multi-citra untuk keperluan animasi. Untuk
keperluan pengolahan citra, format PNG dapat dijadikan alternatif selama proses
pengolahan citra, karena format ini selain tidak menghilangkan bagian dari citra
yang sedang diolah, sehingga penyimpanan berulang ulang dari citra tidak akan
menurunkan kualitas citra, juga PNG diciptakan untuk menggantikan keberadaan
GIF karena masalah lisensi. Format PNG dibuat sebagai alternatif lain dari format
GIF, dan digunakan untuk menyimpan berkas dengan kedalaman 24 bit serta
memiliki kemampuan untuk menghasilkan background transparan dengan
pinggiran yang halus. Format PNG menggunakan metode kompresi lossless untuk
menampilkan gambar 24 bit atau warna-warna. Format ini mendukung
transparansi di dalam alpha channel. Format PNG sangat baik digunakan pada
dokumen online, dan mempunyai dukungan warna yang lebih baik saat dicetak
[10].
Citra digital dengan format 24 bit warna (true color image), sebagai
contohnya PNG, memiliki susunan 3 warna dalam 1 pixel. Ketiga warna tersebut
adalah red, green, dan blue. Tiap warna berukuran 1 byte (8 bit) oleh karena itu
disebut 24 bit warna. Kapasitas maksimal pesan yang dapat disisipkan ke dalam
gambar menggunakan metode LSB dapat dihitung menggunakan rumus seperti
persamaan 1 [3].
(1)
Dalam hal ini :
K
: Kapasitas bit maksimal pesan yang dapat disisipkan dalam gambar.
P
: Panjang gambar dalam pixel.
L
: Lebar gambar dalam pixel.
3
: Konstanta yang menunjukkan jumlah warna dalam 1 pixel. 1 pixel
terdapat 3 warna.
8
: Konstanta yang menunjukkan jumlah bit dalam 1 byte.

6

Contoh penyisipan pesan pada gambar dengan panjang 400px dan lebar 255px
menggunakan persamaan 1, sebagai berikut.
K = (P x L) x 3 bit
K = 400 x 255 x 3 bit
K = 90000 x 3 bit
K = 270000 bit
Untuk mendapatkan nilai dalam satuan byte, maka 270000/8 = 33750 byte.
Bedasarkan perhitungan tersebut menunjukkan jumlah maksimal kapasitas
pesan yang dpaat disisipka dalam gambar berukuran 400px x 255px adalah
sebanyak 270.000 bit atau dalam satuan byte adalah 33.750 byte.
3.

Metode dan Perancangan Sistem

Penelitian yang dilakukan, diselesaikan melalui tahapann penelitian yang
terbagi dalam empat tahapan, yaitu: (1) Analisis kebutuhan dan studi literatur, (2)
Perancangan sistem, (3) Implementasi sistem dan pengujian sistem serta analisa
hasil pengujian, (4) Penulisan laporan hasil penelitian.

Gambar 3 Tahapan Penelitian

Tahapan penelitian pada Gambar 3 dapat dijelaskan sebagai berikut.
Tahap pertama: analisis kebutuhan dan studi literatur. Analisis kebutuhan adalah
menganalisis kebutuhan pengguna yang muncul disebabkan karena permasalahan
yang ada yaitu kebutuhan pengguna dalam mengamankan data file dan literatur
yang terkait dengan proses embedding dan extracting tehadap data file pada cover
image, menggunakan metode vigenere, pseudorandom, dan LSB Embedding ;
Tahap kedua: perancangan sistem yang meliputi perancangan proses embedding
dan exctracting pada sistem steganografi yang dibangun; Tahap ketiga:
implementasi sistem, yaitu mengimplementasikan tahapan penelitian pertama dan
kedua ke dalam sebuah program, dengan membuat aplikasi/program sesuai
kebutuhan sistem berdasarkan perancangan sistem yang telah dilakukan. Misalnya

7

aplikasi dapat menyembunyikan pesan rahasia yang disisipkan pada citra dengan
menggunakan metode vigenere, pseudorandom, dan LSB; dan Tahap keempat :
Pengujian sistem dan analisis hasil pengujian, yaitu dilakukan pengujian terhadap
aplikasi steganografi yang dibangun, dengan tujuan untuk mengetahui pengaruh
encoding dan decoding pada proses yang berjalan di sistem.
Pada tahap ini, dilakukan perancangan proses sistem embedding dan
extracting pada data file yang menerapkan teknik LSB Embedding untuk
digunakan didalam aplikasi. Sistem terdiri dari dua proses, yaitu proses enkripsi
dan proses dekripsi menggunakan algoritma Vigenere Cipher. Perancangan
program yang digunakan dapat dilihat di flowchart pada Gambar 4 sebagai
berikut.

Gambar 4 Proses Perancangan Aplikasi yang Digunakan

Proses dimulai dari input pesan, kemudian pesan dienkripsi dengan
menggunakan vigenere cipher. Untuk selanjutnya kunci (password) dimasukkan,
kunci diproses untuk dibangkitkan menggunakan Pseudorandom. Pesan yang
telah dienkripsi dan kunci yang diacak akan melalui proses Exclusive-OR dan
merubah dari ASCII ke biner. Pada embedding proses penyisipan dilakukan
dengan cara menyisipkan tiap bit pesan kedalam tiap pixel dalam gambar. Hasil
dari proses embedding adalah stego image (gambar yang telah disisipi dengan
pesan). Untuk proses selnajutnya adalah proses extracting. Dimana pada proses
ini terjadi proses pembangkitan kunci dengan pseudorandom dan proses dekripsi
dengan menggunakan vigenere cipher, setelah melalui kedua proses tersebut maka
pesan yang sebelumnya disisipkan dalam gambar bisa diambil dengan melalui
proses exracting. Dan hasil dari proses extracting adalah pesan utuh sama halnya
dengan pesan yang belum disisipkan dalam gambar.
Proses penyembunyian pesan ke dalam file gambar (.PNG) dalam sistem
pada Gambar 5, dijelaskan sebagai berikut :
1.
Input gambar, password, dan pesan yang akan dienkripsi

8

2.
3.
4.
5.
6.

7.

Proses enkripsi pesan dengan menggunakan algoritma Vigenere Cipher.
Pesan dienkripsi dengan cara mengubah file dari ASCII ke biner.
Generate password dengan mengunakan metode Pseudo Random Number
Generator.
Sisipkan setiap bit pesan yang telah dienkripsi kemudian disisipkan ke
dalam gambar (.PNG) dengan menggunakan metode LSB Embedding.
Memutuskan jika semua pixel gambar telah disisipi maka akan lanjut ke
proses selanjutnya, tetapi jika penyisipan belum penuh maka akan kembali
ke proses sebelumnya yaitu penyisipan pesan.
Menghasilkan Stego Image.

Gambar 5 Proses Embedding Data
Data dalam Sistem

Gambar 6 Proses Extracting Data
Data dalam Sistem

Proses pengambilan pesan data dari dalam file gambar (.PNG) secara
umum pada Gambar 6 dijelaskan sebagai berikut :
1.
Input Stego Image (.PNG) dan password.
2.
Generate password dengan menggunakan metode Pseudo Random
Number Generator.
9

3.

7.

Proses Extracting dengan cara mengambil Stego image dan membaca tiap
bit pesan di LSB dari tiap komponen warna dari gambar yang digunakan
untuk menyisipkan pesan.
Memutuskan jika bit pesan terbaca semua maka akan lanjut ke proses
selanjutnya tetapi jika tidak maka akan kembali ke proses sebelumnya
sehingga bit pesan dapat terbaca semua.
Mengubah pesan yang telah dienkripsi menjadi biner dan dikembalikan ke
ASCII.
Proses dekripsi pesan menggunakan algoritma Vigenere Cipher untuk
mendekripsikan pesan yang disisipkan dalam gambar.
Menghasilkan pesan yang sama dengan aslinya.

4.

Hasil dan Pembahasan

4.

5.
6.

Aplikasi yang dibangun adalah aplikasi steganografi yang dapat
menyamarkan file text (.txt) dalam file image (.png), yang terdiri atas dua proses
yaitu, proses embedding dan proses extracting. Hasil implementasi sistem
bedasarkan perancangan yang telah dilakukan, dijelaskan sebagai berikut.
Aplikasi yang dihasilkan dalam penelitian ini, dibangun menggunakan .Net
Framework. .Net Framework library digunakan untuk memanipulasi citra digital.
.Net Framework memiliki sebuah namespace System.Drawing, yang di
dalamnya berisi kumpulan class yang digunakan untuk melakukan manipulasi
gambar. Class Bitmap dapat digunakan untuk membuat, membaca, dan
memanipulasi gambar warna 24 bit, sebagai contoh adalah file gambar dengan
format PNG, dengan cara mengakses data piksel yang ada didalamnya.
Penggunaan class Bitmap ini memberikan keuntungan yaitu kompatibiltas
program dengan sistem operasi Windows. Program yang ditulis dengan
menggunakan .Net Framework, berjalan pada software environment (bukan
hardware environment), yang dikenal dengan Common Language Runtime (CLR),
yang disebut dengan application virtual machine. CLR menyediakan layanan
seperti keamanan, pengaturan alokasi memori, dan exception handling.

Gambar 7 Antarmuka Proses Embedding

10

Gambar 7 menunjukkan tampilan antarmuka aplikasi untuk proses
embedding. Ada lima langkah yang harus dilakukan user dalam proses
embedding: 1) memilih cover image, dengan memilih button cover file, user dapat
memilih file image berformat .png; 2) memilih file/pesan yang ingin dirahasiakan
berupa file text, dengan memilih button message file; 3) user memasukkan
password pada field key; 4) proses selanjutnya yaitu, user memilih tombol hide
message untuk melakukan proses embedding; 5) setelah melakukan proses
embedding, maka user tinggal memilih button save stego image untuk menyimpan
hasil dari proses embedding, user memilih direktori tempat penyimpanan image
yang telah disisipkan file/pesan, hingga ditampilkan message box save, kemudian
pilih button ok untuk menutup message box, dan proses embedding selesai.
Kode Program 1 Perintah Enkripsi Vigenere Cipher Extended
1
2
3
4
5
6
7
8
9
10
11

public static byte[] Encrypt(byte[] data, byte[] key)
{
key = ExpandKey(key, data.Length);
List result = new List();
int keyIndex = 0;
foreach (byte M in data)
{
byte C = (byte)((M + key[keyIndex]) % 256);
result.Add(C);
keyIndex++;
}

Kode program 1 merupakan perintah yang digunakan untuk melakukan
proses enkripsi citra digital. Algoritma enkripsi yang digunakan adalah Vigenere
Cipher Extended. Penggunaan mod 256 adalah kode ASCII, karena untuk
memenuhi karakter lowercase, uppercase, tanda baca & simbol (perintah pada
baris 8).
Kode Program 2 Perintah Untuk Membangkitkan Kunci Pada Proses Enkripsi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

private byte Xn, a, c, m;
public LCG(byte seed)
{
Xn = seed;
a = 12;
c = 19;
m = byte.MaxValue;
}
public byte Next()
{
Xn = (byte)(((a * Xn) + c) % m);
return Xn;
}

Kode program 2 merupakan perintah yang digunakan membangkitkan
kunci pada waktu proses enkripsi pesan. Tiap bilangan merupakan hasil proses
pseudorandom dengan menggunakan rumus Linear Congruential Generator
(perintah pada baris 13-14). Rumus ini menggunakan tiga konstanta, yaitu a=12,
c=19, dan m =255 (perintah pada baris 6-8), dan nilai awal yang digunakan
disimpan dalam variabel Xn (perintah pada baris 5).

11

Kode Program 3 Perintah Untuk Proses PRNG
1
2
3
4
5

byte seed = XORModulasi.XOR(initialKey);
byte[] keySequence1 = LCG.GenerateSequence(seed, fileName.Length);
var cipherFileName = Vigenere.Encrypt(fileName, keySequence1);
byte[] keySequence2 = LCG.GenerateSequence(seed, fileContent.Length);
var cipherContent = Vigenere.Encrypt(fileContent, keySequence2);

Kode Program 3 merupakan perintah untuk proses terjadinya
pseudorandom. Langkah yang dilakukan dengan perintah pada baris 1 adalah
melakukan proses Exclusive-OR modulasi antara class LCG dengan class
Vigenere (perintah pada baris 2-5) setelah melalui proses Exclusive-OR maka ke
proses selanjutnya yaitu proses Embedding.
Kode Program 4 Perintah Untuk Proses Embedding
1
2
3
4

string binary = Convert.ToString(current, 2).PadLeft(8, '0');
char[] arrayBit = binary.ToCharArray();
arrayBit[7] = p;
binary = new string(arrayBit);

Kode program 4 merupakan perintah untuk menyisipkan bit pesan ke
dalam byte image. Langkah yang dilakukan dengan perintah pada baris 1 adalah
mengubah nilai byte ke dalam bentuk binary. Sebagai contoh, untuk byte dengan
nilai 5 akan menjadi “00000101”. Kemudian perintah pada baris 2 digunakan
untuk mengubah string binary ke dalam bentuk array karakter. Perintah pada
baris 3 digunakan untuk mengganti array indeks ke 7 (bit indeks LSB) dengan bit
pesan pada variabel p. Perintah pada baris ke 4 digunakan untuk mengembalikan
array yang telah “disisipi” ke dalam bentuk string binary, untuk kemudian
disimpan kembali dalam cover.

Gambar 8 Antarmuka Proses Extracting

Pada Gambar 8 menunjukkan tampilan antarmuka proses extracting. Ada
lima langkah yang harus dilakukan user dalam proses extract: 1) memilih cover
image yang telah di-embbed dengan memilih button cover; 2) memasukkan
password pada field key; 3) selanjutnya pilih button extract message untuk proses
extracting, setelah melalui proses extracting, data yang telah disisipkan
sebelumnya ditampilkan kembali pada bagian data grid view; 4) selanjutnya user
dapat memilih lokasi dimana ingin menyimpan file hasil ektraksi dengan memilih

12

button save message file. Message box image saved ditampilkan kemudian pilih
button done untuk menutup message box, dan proses extract selesai. Ketika proses
ekstraksi selesai dijalankan, maka akan ditampilkan lama waktu yang digunakan
untuk proses extracting.
Kode Program 5 Perintah Untuk Proses Extracting
1
2

string binary = Convert.ToString(b, 2);
return binary[7];

Kode Program 5 menjelaskan proses ektraksi nilai LSB dari byte warna.
Perintah pada baris 1 digunakan untuk menyimpan byte warna pada variabel b.
Variabel b diubah dalam bentuk string binary. Kemudian perintah pada baris 2
digunakan untuk membaca nilai paling akhir (LSB), yaitu pada indeks ke 7.
Kode Program 6 Perintah Dekripsi Vigenere Cipher Extended
1
2
3
4
5
6
7
8
9
10
11
12
13
14

public static byte[] Decrypt(byte[] data, byte[] key)
{
key = ExpandKey(key, data.Length);
List result = new List();
int keyIndex = 0;
foreach (byte M in data)
{
byte K = key[keyIndex];
if (K