-
Pemodelan Digital Signature Menggunakan RSA
untuk Menjaga Keutuhan Citra Digital
Artikel Ilmiah
Peneliti: Eko Prasetyo (672012090)
Wiwin Sulistyo, ST., M.Kom.
Program Studi Teknik Informatika
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
Salatiga
September 2016
-
1
1. Pendahuluan
Jaringan komputer dan internet mempermudah proses pertukaran
informasi.
Salah satu bentuk informasi yang sering dikirimkan lewat
jaringan internet adalah
file citra digital. File citra digital yang tersimpan di dalam
harddisk misalnya, dapat
dibaca kemudian dimanipulasi, sehingga mengubah informasi yang
dimaksudkan
oleh citra digital tersebut [1]. Sebagai contoh, gambar hasil
X-ray, dapat diubah
sehingga seolah-olah pasien menderita penyakit tertentu. Jika
gambar ini digunakan
sebagai acuan pengobatan, maka dapat menimbulkan kerugian bagi
pasien, maupun
dokter karena terjadi malpraktek [2].
Citra digital dimanipulasi dengan cara mengganti piksel-piksel
yang ada di
dalamnya. Proses ini dapat dilakukan dengan menggunakan aplikasi
image editor,
seperti Adobe Photoshop. Aplikasi tersebut menyediakan alat
untuk mengolah citra
digital, seperti bluring, cropping, penambahan teks, dan lain
sebagainya.
Suatu citra digital jika dimanipulasi dengan tujuan jahat akan
dapat
menimbulkan kerugian bagi pihak yang menggunakan informasi pada
citra digital
tersebut, sehingga diperlukan suatu cara supaya pihak pengguna
citra digital
tersebut, dapat mengetahui apakah citra digital yang digunakan,
sudah mengalami
kerusakan/perubahan/manipulasi atau tidak. Untuk mengetahui
apakah citra digital
tersebut masih utuh, dengan kondisi yang sama seperti yang
dikirimkan oleh
pengirim, dapat digunakan metode digital signature.
Digital-signature adalah suatu cara matematis untuk menunjukkan
keaslian
suatu dokumen [3]. Digital signature memiliki fungsi sebagai
penanda pada data
yang memastikan bahwa data tersebut adalah data yang sebenarnya
(tidak ada yang
berubah) [4]. Jika diimplementasikan pada citra digital, maka
digital signature
berfungsi untuk memastikan bahwa piksel-piksel di dalamnya tidak
mengalami
pergantian nilai akibat manipulasi atau kerusakan.
Pada penelitian ini diimplementasikan metode digital signature
dengan
kombinasi algoritma RSA, MD5, dan algoritma penyisipan LSB dan
EOF. Digital
signature diperoleh dengan cara meringkas data pada citra
digital sehingga
terbentuk hash, dengan algoritma MD5. Hash kemudian dienkripsi
dengan
algoritma RSA, hasilnya disisipkan pada citra digital. Proses
penyisipan dilakukan
dengan algoritma LSB atau EOF. Pada pengujian dibandingkan dan
dianalisis
kelebihan dan kekurangan dari proses penyisipan LSB dan EOF pada
tiga jenis
format gambar yang umum, yaitu PNG, JPG, dan BMP.
2. Tinjauan Pustaka
Pada penelitian yang berjudul "Elliptic Curve Digital signature
Algorithm
(ECDSA)" dibahas tentang perlunya suatu mekanisme untuk menjamin
keaslian
(otentikasi) dokumen elektronis dalam pertukaran dokumen (file)
[5]. Metode yang
digunakan untuk mengatasi permasalahan di atas adalah dengan
cara menambahkan
tanda tangan digital pada dokumen tersebut. Digital signature
pada penelitian
tersebut diimplementasikan dengan algoritma ECDSA.
Penelitian yang selanjutnya berjudul “Studi dan Implementasi
Algoritma
RSA untuk Pengamanan Data Transkrip Akademik Mahasiswa”.
Masalah
-
2
keamanan dan kerahasiaan data merupakan hal yang penting dalam
suatu
organisasi. Data yang bersifat rahasia tersebut perlu dibuatkan
sistem penyimpanan
dan pengirimannya agar tidak terbaca atau diubah oleh
orang-orang yang tidak
bertanggung jawab, baik saat data tersebut tersimpan sebagai
file di dalam
komputer maupun saat data tersebut dikirim melalui email.
Penelitian ini membuat
model sistem pengamanan dengan proses enkripsi dan dekripsi
menggunakan
algoritma RSA. Hasil penelitian ini menunjukkan bahwa algoritma
RSA berhasil
diimplementasikan untuk pengamanan data transkrip akademik
mahasiswa dengan
diperolehnya hasil komputasi algoritma RSA adalah sebesar 15625
mikrodetik,
sedangkan kompleksitas memori yang dibutuhkan algoritma RSA
sebesar 3908
bytes [6].
Pada penelitian berjudul "Aplikasi Metode Steganography Pada
Citra
Digital dengan Menggunakan Metode LSB (Least Significant Bit)",
dibahas
mengenai implementasi LSB embedding untuk menyembunyikan pesan
pada citra
digital [7]. Metode LSB embedding dipilih karena dengan
melakukan penggantian
pada bit belakang pada warna citra, maka perubahan tingkat
intensitas warna tidak
dapat terdeteksi oleh mata manusia.
Penelitian Patricia dan Aripin (2015) membahas mengenai keamanan
data
menggunakan kriptografi algoritma Vigenere cipher dan
steganografi dengan
metode end of file (EOF) [8]. Pada penelitian tersebut, file
pesan yang akan
disisipkan, dienkripsi terlebih dahulu dengan algoritma
Vigenere. Ciphertext yang
dihasilkan, kemudian disisipkan ke dalam file cover yang berupa
file gambar
dengan format BMP. Hasil dari penelitian tersebut yaitu
menghasilkan aplikasi
yang dapat menyembunyikan file dengan baik dan menutup
kecurigaan dari pihak
lain.
Berdasarkan penelitian-penelitan tentang digital signature, RSA,
metode
penyisipan LSB, dan metode penyisipan EOF, maka dilakukan
penelitian ini yang
mengimplementasikan digital signature dengan menggunakan
algoritma-algoritma
tersebut. Perbedaan penelitian yang dilakukan ini dengan
penelitian-penelitian
sebelumnya adalah, Pada penelitian ini diimplementasikan metode
digital signature
dengan kombinasi algoritma RSA, MD5, dan algoritma penyisipan
LSB dan EOF.
Digital signature diperoleh dengan cara meringkas data pada
citra digital sehingga
terbentuk hash, dengan algoritma MD5. Hash kemudian dienkripsi
dengan
algoritma RSA, hasilnya disisipkan pada citra digital. Proses
penyisipan dilakukan
dengan algoritma LSB atau EOF.
Teknik steganografi End of file (EOF) merupakan salah satu
teknik yang
digunakan dalam steganografi. Teknik ini digunakan dengan cara
menambahkan
data atau pesan rahasia pada akhir file. Teknik ini dapat
digunakan untuk
menambahkan data yang ukurannya sesuai dengan kebutuhan.
Perhitungan kasar
ukuran file yang telah disisipkan data sama dengan ukuran file
sebelum disisipkan
data ditambah ukuran data rahasia yang telah diubah menjadi
encoding file. EOF
adalah suatu kode yang ditempatkan oleh komputer pada akhir
suatu file, tepatnya
setelah byte informasi terakhir pada file tersebut [9] . Tanda
EOF sangat berguna
pada transmisi dan penyimpanan data. File disimpan pada
blok-blok, dan tanda
EOF membantu komputer untuk mengetahui apakah kapasitas
penyimpan tersedia
untuk menyimpan file tersebut [10].
-
3
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]. Jika digunakan image 24 bitcolor sebagai cover, sebuah bit
dari masing-
masing komponen Red, Green, dan Blue, dapat digunakan, sehingga
tiga bit dapat
disimpan pada setiap piksel. Sebuah image 800 x 600 piksel dapat
digunakan untuk
menyembunyikan 1.440.000 bit (180.000 bytes) data rahasia.
Misalkan terdapat
piksel-piksel dari image 24 bit color, dapat dilihat bahwa
bit-bit pesan rahasia
mengubah bit-bit terakhir citra gambar.
00111000 01010110 11000111 00110011
Jika ada pesan rahasia yang memiliki nilai 1101, maka
dihasilkan: 00111001 01010111 11000110 00110011
LSB embedding memiliki kelebihan dibandingkan dengan algoritma
EOF
steganography [12], 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 frequency domain dari citra digital untuk
menyisipkan informasi.
Kelemahan dari algoritma DCT adalah mata manusia dapat mengenali
perubahan
yang terjadi pada frekuensi rendah [13]. Karena
kelebihan-kelebihan dari algoritma
LSB embedding, maka pada penelitian ini dipilih LSB embedding
dalam proses
penyisipan Digital signature dalam dokumen digital.
Digital signature adalah salah satu teknologi yang digunakan
untuk
meningkatkan keamanan jaringan. Digital signature memiliki
fungsi sebagai
penanda pada data yang memastikan bahwa data tersebut adalah
data yang
sebenarnya (tidak ada yang berubah). Digital signature dapat
memenuhi setidaknya
dua syarat keamanan jaringan, yaitu authenticity dan
non-repudiation, dan juga
integrity (keutuhan data). Authenticity berarti bahwa dokumen
tersebut berasal dari
pemilik yang spesifik. Non-repudiation berarti bahwa berdasarkan
digital signature
di dalam suatu dokumen, pelaku/pengirim tidak dapat mengingkari
bahwa yang
bersangkutan melakukan pengiriman/manipulasi data. Integrity
berarti bahwa
keutuhan suatu dokumen dapat diketahui berdasarkan kondisi
digital signature
didalamnya [14].
Gambar 1 True Color 24 bit dan 32 bit [15]
Pada penelitian ini, format file citra digital yang digunakan
adalah PNG, BMP
dan JPG. PNG dan BMP merupakan True Color image. True Color
image berarti
tiap piksel direpresentasikan dengan 3 byte, terbagi ke dalam
red, green, dan blue
masing-masing 1 byte (Gambar 1). Hal ini sering disebut dengan
warna RGB, atau
-
4
True Color 24 bit. Selain 24 bit warna, file PNG juga mendukung
32 bit warna.
True Color 32 bit sama dengan 24 bit, dengan perbedaan adalah
adanya 1 byte
tambahan yang disebut komponen alpha [15][16].
Pada Gambar 2 ditunjukkan contoh potongan dari suatu gambar True
Color
Image. Potongan ini memiliki dimensi 6 x 6 piksel. Pada tiap
piksel terdapat tiga
bagian warna yaitu red, green dan blue. Pada lokasi piksel 1,1
terdapat warna red
bernilai 96, green bernilai 143, dan blue bernilai 179. Pada
lokasi piksel 1,2 terdapat
warna red 61, green 125, dan green 198.
Gambar 2 Komponen RGB pada File Gambar 24 Bit Warna.
JPG adalah standar format gambar de facto dan yang paling
populer
digunakan di web. JPG mendukung 16.7 juta warna dan format yang
lebih disukai
untuk menyimpan file foto [17]. File JPG juga lebih kecil
dibandingkan dengan
format gambar lainnya karena menggunakan kompresi 'lossy' untuk
mengurangi
ukuran file. Kompresi ‘lossy’ adalah kompresi yang menghilangkan
sebagian data
[18]. Hal ini mungkin tidak disadari oleh mata manusia, tapi
gambar JPG
mengorbankan beberapa informasi gambar untuk membuat ukuran file
menjadi
kecil. Setiap kali file JPG disimpan, beberapa data menjadi
hilang, dan data gambar
yang hilang tersebut tidak dapat dipulihkan.
Format PNG dirancang sebagai alternatif elegan untuk GIF.
Seperti GIF,
format PNG mendukung warna 8-bit, tetapi juga meluas ke 24-bit,
sehingga
memberikan lebih banyak jangkauan warna seperti dalam file JPEG.
PNG tidak
mendukung animasi. PNG menggunakan kompresi ‘lossless’ untuk
mempertahankan informasi warna ketika dikompresi, sehingga tidak
ada informasi
yang hilang seperti yang terjadi pada JPG. Gambar dengan warna
yang kompleks
akan menyebabkan ukuran file yang lebih besar [17].
BMP merupakan format file asli dari platform Windows, dan
merupakan
format pendahulu bagi format gambar JPG, dan PNG. Format BMP
umumnya tidak
memungkinkan untuk kompresi gambar kecuali disimpan dalam salah
satu format
-
5
yang dibahas tersebut. Gambar BMP memiliki kualitas yang tajam,
namun karena
tidak mendukung kompresi, maka gambar BMP memiliki ukuran yang
lebih besar
daripada format JPG maupun PNG [17].
3. Metode dan Perancangan Sistem
Penelitian yang dilakukan, diselesaikan melalui tahapan
pemodelan yang
terbagi dalam enam tahapan, yaitu: analisis kelayakan, desain
model, implementasi
komputer, evaluasi/pengujian model, optimasi/perbaikan model,
dan produk model
[19].
ANALISIS KELAYAKAN
DESAIN MODEL
IMPLEMENTASI KOMPUTER
EVALUASI/PENGUJIAN MODEL
OPTIMASI/PERBAIKAN MODEL
PRODUK MODEL
Gambar 3 Tahapan Penelitian
Tahapan penelitian pada Gambar 3, dijelaskan sebagai berikut:
Tahap
analisis kelayakan: mengidentifikasi masalah, mengidentifikasi
tujuan, dan
membatasi masalah. Masalah yang ditemukan adalah perlunya
pengamanan
dokumen digital dari perubahan dan pemalsuan, terutama pada
dokumen yang
ditransmisikan lewat jaringan Internet. Tujuan yang ditemukan
adalah untuk
mengamankan dokumen digital terhadap ancaman tersebut. Masalah
dibatasi pada
dokumen dengan bentuk citra digital. Tahap desain model,
merancang sistem yaitu
proses pembangkitan kunci publik dan privat, serta proses
pembangkitan digital
signature dan validasi digital signature. Tahap implementasi
komputer: yaitu
mengimplementasikan hasil perancangan model, membangun model
berdasarkan
rancangan pada tahap sebelumnya. Dokumen yang digunakan adalah
citra digital
dengan format PNG, BMP dan JPG. Tahap evaluasi/pengujian model:
adalah
-
6
melakukan pengujian model dan kemudian melakukan analisis
terhadap hasil
pengujian tersebut. Tahap optimasi model, adalah melaukan
perbaikan dan
optimasi pada model, sesuai dengan masalah atau kebutuhan baru
yang muncul
pada tahap evaluasi. Tahap produk model, pada tahap ini
dihasilkan model akhir
yang telah sesuai dengan kebutuhan.
Hitung Hash
Citra Digital dengan Digital
Signature
Hitung Hash
Dekripsi Digital Signature
Enkripsi Hash
Signing
Verification
Pivate Key
Citra Digital
Public Key
Sisipkan ke Citra Digital
Hash Awal
Ekstrak Digital
Signature
Hash Akhir Citra digital valid jika
Hash Awal sama
dengan Hash Akhir
Gambar 4 Arsitektur Sistem
Sistem yang dikembangkan, memiliki desain yang ditunjukkan
pada
Gambar 4. Sistem terdiri dari dua proses, yaitu proses signing
dan proses verifiying.
Proses signing dilakukan oleh signatory, dengan menanamkan
digital signature ke
dalam dokumen. Proses verifiying dilakukan oleh verifier, dengan
mengekstraksi
digital signature dari dalam dokumen.
MulaiInput
Private Key
Input Dokumen
Citra Digital
Enkripsi HASH sehingga menjadi Digital
SignatureEmbed Digital Signature
Output dokumen
Hitung nilai HASH citra digital dengan algoritma
MD5
Selesai
Gambar 5 Alur Proses Pemberian Digital Signature
Proses pemberian digital signature ditunjukkan pada Gambar 5.
Proses ini
memerlukan input dari pengguna yaitu kunci, dan dokumen citra
digital. Kunci
digunakan untuk menyandikan hash. Hash diperoleh dari proses
algoritma MD5.
Hash terenkripsi disisipkan ke dalam citra digital. Hasil akhir
adalah dokumen citra
digital yang telah diberi digital signature.
-
7
MulaiInput
Public Key
Input Dokumen
Citra Digital
Hitung nilai HASH Ekstrak Digital Signature
Dekripsi Digital Signature
HASH sama dengan hasil
Dekripsi
Ouput valid
Output tidak valid
Selesai
TIDAK
YA
Gambar 6 Alur Proses Verifikasi Digital Signature
Pada proses verifikasi (Gambar 6), hash yang telah disisipkan,
diekstrak
kemudian didekripsi. Hasil dekripsi dibandingkan dengan hash
citra digital
sekarang. Jika nilai hash ini berbeda, maka dapat dipastikan
bahwa citra digital
tersebut telah mengalami perubahan.
Proses pembuatan digital signature dijelaskan menggunakan
contoh
berikut. Jika terdapat suatu gambar berukuran 4 x 2 piksel, dan
tiap piksel terdiri
dari 3 warna (RGB). Tabel 1 Contoh Susunan Nilai Warna pada
Citra Digital
R G B R G B R G B R G B
200 200 100 45 55 10 90 120 90 255 0 0
80 70 0 255 255 255 90 90 10 178 190 240
Pada Tabel 1, piksel pertama memiliki komponen warna R =2 00, G
= 200,
B = 100, piksel kedua memiliki komponen warna R = 45, G = 55, B
= 10. Tiap
komponen warna ini kemudian dihitung nilai ringkasan (hash)
dengan
menggunakan algoritma MD5. MD5 menghasilkan output hash dengan
panjang 16
byte, dengan panjang input bebas. Sehingga input dengan panjang
1 byte akan tetap
menghasilkan 16 byte hash, input dengan panjang 100 byte akan
menghasilkan 16
byte hash juga. Tabel 2 Contoh Hasil Proses Tahap Pertama:
Pembuatan Ringkasan/Hash
Nilai warna Hash
200
diproses dengan algoritma
MD5
200
100
45
55 120
-
8
10 60
90 70
120 44
90 110
255 45
0 121
0 190
80 180
70 245
0 235
255 89
255 100
255 112
90 78
90 90
10
178
190
240
Tahap pertama menghasilkan nilai ringkasan (hash). Pada
penelitian ini
digunakan algoritma MD5 untuk membuat ringkasan, sehingga
berdasarkan
spesifikasi MD5, hash yang dihasilkan memilik panjang 16 byte.
Pada contoh di
Tabel 2, dihasilkan nilai hash: 120, 60, 70, 44, 110, 45, 121,
190, 180, 245, 235, 89,
100, 112, 78, 90.
Tahap kedua yaitu mengenkripsi nilai hash ini dengan algoritma
RSA.
Algoritma RSA bersifat asimetrik, sehingga kunci yang digunakan
untuk enkripsi
berbeda dengan kunci dekripsi. Pada penggunaan di digital
signature, kunci untuk
enkripsi dimiliki dan dirahasikan oleh pemilik citra digital.
Karena sifatnya ini,
maka kunci enkripsi disebut sebagai kunci private. Tabel 3
Contoh Hasil Proses Tahap Pertama: Pembuatan Ringkasan/Hash
Nilai warna Hash Hash
Terenkripsi
200
diproses dengan algoritma
MD5
200
100
45
55 120 244
10 60 245
90 70 105
120 44 198
90 110 123
255 45 162
0 121 234
0 190 90
-
9
80 180 67
70 245 45
0 235 68
255 89 11
255 100 84
255 112 25
90 78 47
90 90 135
10
178
190
240
Pada tahap kedua, dihasilkan hash terenkripsi: 244, 245, 105,
198, 123, 162,
234, 90, 67, 45, 68, 11, 84, 25, 47, 135. Hash terenkripsi
kemudian disisipkan ke
dalam citra digital dengan algoritma EOF atau LSB.
Kunci dekripsi hanya dapat digunakan untuk proses dekripsi,
sehingga tidak
dapat digunakan untuk menyandikan nilai ringkasan. Kunci
dekripsi dapat
diberikan oleh pengirim kepada pihak-pihak yang bermaksud untuk
menggunakan
informasi dari citra digital. Kunci dekripsi ini berguna untuk
proses validasi
keutuhan citra digital, dengan cara membandingkan hasil dekripsi
dengan nilai
ringkasan yang baru.
4. Hasil dan Pembahasan
Pada bagian ini dijelaskan tentang hasil penelitian yang telah
dilakukan.
Pembahasan terbagi pada pembahasan hasil penelitian dan
pembahasan aspek
keamanan.
Berdasarkan perancangan yang telah dibuat maka antarmuka sistem
yang
dihasilkan ditunjukkan pada Gambar 6 dan Gambar 7. Gambar 6
ditunjukkan hasil
dari proses digital signing. Gambar 7 menunjukkan hasil dari
proses verifikasi.
Gambar 7 Tampilan Proses Pemberian Digital Signature
-
10
Gambar 7 merupakan form yang digunakan untuk proses pemberian
digital
signature, ditampilkan perubahan nilai hash (signature) sebelum
dan sesudah
proses enkripsi. Signature dengan panjang 16 byte, kemudian
disisipkan ke dalam
citra digital yang hasil akhirnya ditampilkan pada sisi sebelah
kanan (signed
image).
Gambar 8 Tampilan Proses Verifikasi
Pada proses verifikasi ditampilkan hasil akhir berupa valid atau
tidak valid
(Gambar 8). Nilai digital signature yang telah disisipkan
sebelumnya dibandingkan
dengan nilai digital signature sekarang. Jika kunci yang
digunakan untuk proses
verifikasi berbeda dengan kunci pada proses pemberian digital
signature, maka
nilai digital signature akan memberikan hasil yang berbeda,
sekalipun citra digital
tidak mengalami perubahan (manipulasi). Sehingga hanya penerima
yang sah, yang
memiliki kunci yang tepat, yang dapat melakukan proses
verifikasi.
Kode Program 1 Perintah untuk Membaca Warna pada Dokumen
Gambar
1 public static byte[] ExtractColors(Bitmap img) 2 { 3 List list
= new List(); 4 Bitmap bitmap = img; 5 6 for (int y = 0; y <
img.Height; y++) 7 { 8 for (int x = 0; x < img.Width; x++) 9 {
10 Color c = bitmap.GetPixel(x, y); 11 list.Add(c.R); 12
list.Add(c.G); 13 list.Add(c.B); 14 } 15 } 16 return
list.ToArray(); 17 }
.Net Framework menyediakan library untuk mengolah dokumen
dengan
format PNG, yaitu dengan menggunakan class Bitmap. Melalui class
ini dapat
dilakukan proses manipulasi piksel yang ada di dalam suatu
dokumen gambar. Bit
-
11
digital signature disisipkan pada LSB tiap warna pada piksel.
Dalam satu piksel
terdapat 3 warna yaitu RED, GREEN dan BLUE (perintah pada baris
11-13), dengan
demikian dalam satu piksel dapat disisipi 3 bit data.
Kode Program 2 Perintah untuk Memanipulasi LSB
1 private static byte ReplaceLSB(byte current, char p)
2 {
3 string binary = Convert
4 .ToString(current, 2)
5 .PadLeft(8, '0');
6 char[] arrayBit = binary.ToCharArray();
7 arrayBit[7] = p;
8 binary = new string(arrayBit);
9 return Convert.ToByte(binary, 2);
10 }
Untuk mengubah LSB suatu byte warna, maka proses yang dilakukan
adalah
mengubah warna tersebut ke dalam format binary. Kemudian bit
paling kanan dari
warna tersebut diganti dengan bit pesan. Untuk mengubah byte
menjadi binary
digunakan library class Convert (perintah pada baris 3).
Kode Program 3 Perintah untuk Membaca Digital signature
1 public static byte[] GetLSB(byte[] data) 2 { 3 List bits = new
List(); 4 for (int i = 0; i < data.Length; i++) 5 { 6
bits.Add(RetrieveLSB(data[i])); 7 } 8 int x = bits.Count % 8; 9 if
(x != 0) 10 { 11 for (int i = 0; i < x; i++) 12 { 13
bits.Add('0'); 14 } 15 } 16 byte[] message = GetBytesArray( 17 new
string(bits.ToArray())); 18 return message; 19 }
Proses untuk membaca digital signature terdari dari proses
membaca warna
pada dokumen gambar. Dilanjutkan dengan proses membaca nilai LSB
dari tiap-
tiap warna, dan dikumpulkan pada suatu variabel penampung
(perintah pada baris
3).
Pengujian sistem dilakukan terhadap beberapa faktor yaitu
otentikasi,
integritas, dan pengaruh LSB dan EOF pada berbagai tipe file
gambar. [14].
Otentikasi memiliki makna yaitu dokumen tersebut asli dan
berasal dari sumber
yang dipercaya [20]. Pengujian otentikasi dilakukan dengan
menguji apakah
dengan pasangan kunci yang berbeda, proses verifikasi dapat
dilakukan. Tabel 4
menunjukkan hasil pengujian otentikasi, dan sistem dapat bekerja
dengan tepat
untuk mengetahui kunci yang digunakan benar atau tidak.
Tabel 4 Hasil Pengujian Otentikasi
Kunci
Signatory
Kunci
Verifier
Output proses
verifikasi
Kesimpulan Pengujian
-
12
1 PrivateA.priv PublicB.pub Tidak otentik Berhasil mendeteksi
pasangan
kunci yang salah.
2 PrivateB.priv PublicC.pub Tidak otentik Berhasil mendeteksi
pasangan
kunci yang salah.
3 PrivateC.priv PublicD.pub Tidak otentik Berhasil mendeteksi
pasangan
kunci yang salah.
4 PrivateD.priv PublicE.pub Tidak otentik Berhasil mendeteksi
pasangan
kunci yang salah.
5 PrivateE.priv PublicA.pub Tidak otentik Berhasil mendeteksi
pasangan
kunci yang salah.
6 PrivateA.priv PublicE.pub Tidak otentik Berhasil mendeteksi
pasangan
kunci yang salah.
7 PrivateB.priv PublicE.pub Tidak otentik Berhasil mendeteksi
pasangan
kunci yang salah.
8 PrivateC.priv PublicE.pub Tidak otentik Berhasil mendeteksi
pasangan
kunci yang salah.
9 PrivateD.priv PublicE.pub Tidak otentik Berhasil mendeteksi
pasangan
kunci yang salah.
10 PrivateE.priv PublicD.pub Tidak otentik Berhasil mendeteksi
pasangan
kunci yang salah.
11 PrivateA.priv PublicA.pub Otentik Berhasil melakukan
verifikasi
dengan pasangan kunci yang tepat.
12 PrivateB.priv PublicB.pub Otentik Berhasil melakukan
verifikasi
dengan pasangan kunci yang tepat.
13 PrivateC.priv PublicC.pub Otentik Berhasil melakukan
verifikasi
dengan pasangan kunci yang tepat.
14 PrivateD.priv PublicD.pub Otentik Berhasil melakukan
verifikasi
dengan pasangan kunci yang tepat.
15 PrivateE.priv PublicE.pub Otentik Berhasil melakukan
verifikasi
dengan pasangan kunci yang tepat.
Keutuhan (integrity) suatu dokumen diuji dengan cara
melakukan
perubahan (manipulasi) pada dokumen. Pengujian 2 bertujuan untuk
mengetahui
apakah aplikasi dapat mendeteksi perubahan pada dokumen yang
telah diberi
digital signature. Digital signature dapat disimpulkan berhasil
menjaga
keotentikan dokumen jika perubahan yang dilakukan pada dokumen
dapat
terdeteksi (hasil verifikasi "tidak valid").
Tabel 5 Hasil Pengujian Integritas
No Jenis
Perubahan
Digital
Signature
Awal
Digital
Signature
Akhir
Hasil
Verifikasi
Kesimpulan
Pengujian
1 Rotasi
Image
95689bad
a7500a4f
57e57102
26e8e971
a331487d
a5c91016
7bbacc42
d798c307
Tidak
valid
Berhasil
mendeteksi
manipulasi.
2 Mirror
Image
95689bad
a7500a4f
57e57102
26e8e971
2d1ddb3d
bd34bd9e
633fe6dd
ce817e1b
Tidak
valid
Berhasil
mendeteksi
manipulasi.
-
13
3 Crop
95689bad
a7500a4f
57e57102
26e8e971
47a7faa6
ecc55d14
2ea15593
edf90afa
Tidak
valid
Berhasil
mendeteksi
manipulasi.
4 Resize
Image
95689bad
a7500a4f
57e57102
26e8e971
8e46cbf6
4bc55eb9
1a0120a0
810bb220
Tidak
valid
Berhasil
mendeteksi
manipulasi.
5 Grayscale
95689bad
a7500a4f
57e57102
26e8e971
a3dcabc7
b0804282
4c575009
f4abe029
Tidak
valid
Berhasil
mendeteksi
manipulasi.
6 Manipulasi
20x20px
95689bad
a7500a4f
57e57102
26e8e971
bc24942c
e6c70546
f4136e36
cfdd8ffb
Tidak
valid
Berhasil
mendeteksi
manipulasi.
7 Manipulasi
10x10px
95689bad
a7500a4f
57e57102
26e8e971
c4934c60
21c09f38
75329cae
8a47de04
Tidak
valid
Berhasil
mendeteksi
manipulasi.
8 Manipulasi
2x2px
(ubah
warna 2
piksel)
95689bad
a7500a4f
57e57102
26e8e971
c37ad79a
3555ae82
dc2a28bb
a619d510
Tidak
valid
Berhasil
mendeteksi
manipulasi.
9 Gambar
utuh
95689bad
a7500a4f
57e57102
26e8e971
95689bad
a7500a4f
57e57102
26e8e971
Valid Verifikasi
berhasil,
karena
tidak ada
perubahan
yang
terjadi pada
citra digital
Berdasarkan hasil pengujian integritas, pada Tabel 5,
disimpulkan bahwa
segala bentuk perubahan yang dilakukan pada dokumen gambar yang
telah
diujikan, memberikan hasil verifikasi tidak valid. Hal ini
dikarenakan pada proses
manipulasi, nilai-nilai warna pada piksel yang dimanipulasi
menjadi berubah.
Sehingga ketika proses verifikasi, digital signature yang
disisipkan menjadi
berbeda dengan digital signature yang asli.
Pengujian ketiga adalah pengujian untuk melihat kelebihan dan
kekurangan
dari penyisipan digital signature dengan metode LSB maupun EOF.
Hasil
pengujian ditunjukkan pada Tabel 6. Tabel 6 Hasil Pengujian
Pengaruh Penyisipan Digital Signature dengan LSB
No Jenis Citra Digital Ukuran File Jumlah Perubahan
Piksel Sebelum Sesudah
1 PNG Baboon.png 38 KB 38 KB 6 piksel
-
14
2 PNG F16.png 37 KB 37 KB 6 piksel
3 PNG UKSW.png 15 KB 15 KB 6 piksel
4 PNG K2i.png 71 KB 71 KB 6 piksel
5 JPG Baboon.jpg 19 KB 19 KB Penyisipan tidak ada
error, namun ekstraksi
tidak dapat dilakukan.
6 JPG F16.jpg 14 KB 14 KB
7 JPG UKSW.jpg 23 KB 23 KB
8 JPG K2i.jpg 64 KB 64 KB
9 BMP Baboon.bmp 118 KB 118 KB 6 piksel
10 BMP F16.bmp 118 KB 118 KB 6 piksel
11 BMP UKSW.bmp 118 KB 118 KB 6 piksel
12 BMP K2i.bmp 1055 KB 1055 KB 6 piksel
Pada Tabel 3, file dengan format JPG bersifat kompresi ‘lossy’,
sehingga di
dalam 1 warna, belum tentu terdapat 8 bit, sehingga hal ini
tidak dapat diproses oleh
pustaka grafik pada pemrograman C#. Sehingga, hal ini
menyebabkan file format
JPG tidak dapat diproses dengan algoritma LSB. Pada library C#,
proses yang
terjadi adalah JPG diubah ke bentuk bitmap, kemudian penyisipan
dilakukan.
Setelah penyisipan, dilakukan penyimpanan ke bentuk JPG kembali,
namun karena
sifat JPG yang ‘lossy’, maka terdapat. warna-warna yang hilang,
sehingga digital
signature tidak diekstraksi.
File dengan format PNG dan BMP dapat disisipi pada pikselnya,
karena
kedua format gambar ini menggunakan True Color Image. Tiap 1
piksel memiliki
3 warna dan dalam 1 warna terdapat 8 bit informasi, seperti
ditunjukkan pada
Gambar 2.
Tabel 7 Hasil Pengujian Pengaruh Penyisipan Digital Signature
dengan EOF
No Jenis Citra Digital Ukuran File Jumlah Perubahan
Piksel
Sebelum
(byte)
Sesudah
(byte)
1 PNG Baboon.png 38496 38512 0 piksel
2 PNG F16.png 37029 37045 0 piksel
3 PNG UKSW.png 15272 15288 0 piksel
4 PNG K2i.png 72524 72540 0 piksel
5 JPG Baboon.jpg 19263 19279 0 piksel
6 JPG F16.jpg 13421 13437 0 piksel
7 JPG UKSW.jpg 23403 23419 0 piksel
8 JPG K2i.jpg 64876 64892 0 piksel
9 BMP Baboon.bmp 120054 120070 0 piksel
10 BMP F16.bmp 120054 120070 0 piksel
11 BMP UKSW.bmp 120054 120070 0 piksel
12 BMP K2i.bmp 1080054 1080070 0 piksel
Penyisipan pada EOF, tidak bekerja pada level warna (piksel),
namun
bekerja pada level informasi file. Sehingga hal ini tidak
dipengarui oleh jenis format
file gambar. Besar perubahan yang terjadi pada ukuran file
adalah 16 byte, karena
digital signature yang disisipkan memiliki panjang 16 byte.
-
15
Gambar 9 Isi file PNG Sebelum Penyisipan
Gambar 10 Isi File PNG Setelah Penyisipan Digital Signature,
ditunjukkan dengan Huruf Warna
Merah
Gambar 11 Perbandingan Ukuran File Sebelum dan Sesudah
Penyisipan
Pada Gambar 9 ditunjukkan isi file (bukan piksel), sebelum
proses
penyisipan. Penyisipan dilakukan dengan menempelkan digital
signature di bagian
akhir file. Gambar 10 menunjukkan isi file setelah proses
penyisipan. Untuk melihat
isi file dalam bentuk heksadesimal, digunakan aplikasi heksa
editor, HxD.
Perbandingan ukuran file ditunjukkan pada Gambar 11.
Berdasarkan hasil pengujian pada Tabel 3 dan Tabel 4 dapat
dilihat bahwa
metode penyisipan digital signature dengan algoritma LSB hanya
dapat dilakukan
pada file jenis PNG dan BMP. Kedua jenis file ini memiliki sifat
true color image,
yaitu pada 1 warna diwakili dengan 1 byte, dan di dalam 1 piksel
terdapat 3 warna.
Untuk memanipulasi 1 warna ini lebih mudah, karena 1 warna tepat
berukuran 1
byte (1 byte = 8bit). Manipulasi LSB terjadi pada nilai bit
paling rendah, oleh karena
itu disebut LSB. LSB merupakan proses mengganti bit, bukan
menambah bit.
Sehingga efek yang terjadi adalah ukuran file tidak berubah,
namun nilai piksel
warna berubah. Perubahan ini tidak signifikan, mengingat posisi
LSB yang juga
-
16
“least significant”. Nilai perubahannya adalah sebesar maksimal
1, minimal 0.
Sebagai contoh jika warna merah (255) diganti dengan bit 0, maka
akan menjadi
254 yang tetap merupakan warna merah.
Nilai desimal 255 (Gambar 12), dalam biner ditulis 11111111.
Jika bit
paling akhir (LSB) diubah menjadi 0 karena hasil penyisipan,
maka warna merah
tersebut menjadi 11111110, yang jika diubah kembali ke bentuk
desimal, bernilai
254 (Gambar 13).
Gambar 12 Warna Merah dengan Nilai 255
Gambar 13 Warna Merah dengan Nilai 254
Pada file jenis JPG, untuk memanipulasi piksel, perlu diubah ke
bentuk
Bitmap. Pustaka ini tersedia di .Net Framework. Setelah
penyisipan dilakukan,
maka harus tetap tersimpan dalam format Bitmap, dalam hal ini
pilihannya adalah
BMP atau PNG. Jika tetap disimpan dalam format JPG seperti
awalnya, maka
penyisipan yang dilakukan tadi akan menjadi rusak, karena dalam
JPG terdapat
proses kompresi.
Pada penyisipan EOF, berhasil dilakukan pada ketiga jenis file
gambar.
Proses EOF tidak memanipulasi informasi warna, namun menambahkan
byte
(bukan bit), pada bagian akhir file. Setiap file terdapat
penanda, yang menunjukkan
bahwa “akhir file” telah tercapai. Penyisipan EOF memanfaatkan
tanda ini, dengan
cara meletakkan digital signature setelah tanda “akhir file”.
Efek yang terjadi
adalah piksel tidak mengalami perubahan, namun ukuran file
bertambah sebesar
nilai digital signature.
-
17
5. Simpulan
Berdasarkan penelitian, pengujian dan analisis terhadap
aplikasi, maka
dapat diambil kesimpulan sebagai berikut: Digital signature
dapat
diimplementasikan dengan menggunakan algoritma RSA, MD5 dan
LSB/EOF
embedding, sehingga dapat berfungsi untuk menguji keutuhan dan
otentikasi suatu
dokumen digital. Pengujian membuktikan bahwa dapat dideteksi
perubahan
dokumen dari hasil manipulasi rotasi, mirror, crop, resize, dan
manipulasi piksel
Metode penyisipan digital signature dengan algoritma LSB hanya
dapat
dilakukan pada file jenis PNG dan BMP, yang merupakan true color
image.
Penyisipan dilakukan pada LSB tiap warna. Pada file jenis JPG,
untuk
memanipulasi piksel, perlu diubah ke bentuk Bitmap. Setelah
penyisipan, maka
dikembalikan kembali ke format JPG, sehingga menyebabkan hasil
penyisipan
yang dilakukan sebelumnya, menjadi rusak, karena dalam JPG
terdapat proses
kompresi. Metode LSB memiliki kelebihan yaitu tidak mengubah
ukuran file citra
digital. Kekurangannya adalah hanya dapat dilakukan pada file
format dengan
bentuk true color image seperti PNG dan BMP yang tidak
menggunakan kompresi
‘lossy’.
Pada penyisipan EOF, berhasil dilakukan pada ketiga jenis file
gambar.
Proses EOF memiliki kelebihan yaitu tidak memanipulasi informasi
warna, namun
menambahkan byte (bukan bit), pada bagian akhir file. Setiap
file terdapat penanda,
yang menunjukkan bahwa “akhir file” telah tercapai. Penyisipan
EOF
memanfaatkan tanda ini, dengan cara meletakkan digital signature
setelah tanda
“akhir file”. Kelebihan yang lain adalah metode EOF, dapat
dilakukan pada PNG,
BMP dan JPG. Kekurangan dari metode EOF, yaitu efek yang terjadi
adalah piksel
tidak mengalami perubahan, namun ukuran file bertambah sebesar
nilai digital
signature.
Saran yang dapat diberikan untuk penelitian lebih lanjut adalah
penelitian
dapat diarahkan untuk mendeteksi lokasi perubahan pada dokumen
gambar. Jika
deteksi dapat dilakukan, maka dapat dipisahkan antara piksel
asli, dengan piksel
termanipulasi. Sehingga pada bagian piksel yang asli, masih
dapat dimanfaatkan
informasi di dalamnya.
6. Daftar Pustaka
[1]. Kaufman, C., Perlman, R. & Speciner, M. 2002. Network
security: private
communication in a public world. Prentice Hall Press.
[2]. Ahmaddul, H. & Sediyono, E. 2012. Rancang Bangun Sistem
Pengamanan
Dokumen pada Sistem Informasi Akademik Menggunakan Digital
Signature
dengan Algoritma Kurva Eliptik. Program Pascasarjana
Universitas
Diponegoro Semarang
[3]. Goldwasser, S., Micali, S. & Rivest, R. L. 1988. A
digital signature scheme
secure against adaptive chosen-message attacks. SIAM Journal
on
Computing 17, 281–308.
[4]. Ford, W. & Baum, M. S. 2000. Secure electronic
commerce: building the
infrastructure for digital signatures and encryption. Prentice
Hall PTR.
-
18
[5]. Triwinarko, A. 2010. Elliptic Curve Digital Signature
Algorithm (ECDSA).
Laboratorium Ilmu dan Rekayasa Komputasi Departemen Teknik
Informatika, Institut Teknologi Bandung
[6]. Rahajoeningroem, T. & Aria, M. 2009. Studi dan
Implementasi Algoritma
RSA untuk Pengamanan Data Transkrip Akademik Mahasiswa.
Jurusan
Teknik Elektro Universitas Komputer Indonesia
[7]. Noertjahyana, A., Gunadi, K. & Agustinus Noertjahyana,
Samuel Hartono,
K. G. 2012. Aplikasi Metode Steganography pada Citra Digital
dengan
Menggunakan Metode LSB (Least Significant Bit). Universitas
Kristen
Petra.
[8]. Patricia, H. & Aripin 2015. Teknik Keamanan Data
Menggunakan
Kriptografi dengan Algoritma Vigenere Cipher dan Steganografi
dengan
Metode End of File (EoF). Program Studi Teknik Informatika
Fakultas Ilmu
Komputer Universitas Dian Nuswantoro
[9]. Wasino, Rahayu, T. P. & Setiawan 2012. Implementasi
Steganografi Teknik
End of File dengan Enkripsi Rijndael. Seminar Nasional
Teknologi
Informasi dan Komunikasi 2012 (SENTIKA 2012)
[10]. Computer Hope 2016. EOF.
http://www.computerhope.com/jargon/e/eof.htm. Diakses 13
Februari 2016.
[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]. Weiss, M. 2009. Principles of Steganography.
www.math.ucsd.edu/~crypto/Projects/MaxWeiss/steganography.pdf.
Diakses pada 13 Februari 2016.
[13]. Rafferty, C. 2005. Steganography & Steganalysis of
Images. National
University of Ireland, Galway
[14]. Shaw, S. 1999. Overview of Watermarks , Fingerprints , and
Digital
Signatures.
[15]. Willamette.edu 2004. Image File Formats.
www.willamette.edu/~gorr/classes/GeneralGraphics/imageFormats/.
Diakses pada 4 Desember 2015.
[16]. Boutell, T. 1997. PNG (Portable Network Graphics)
Specification Version
1.0.
[17]. Basu, S. 2014. GT Explains: What is the Difference Between
JPG, GIF,
PNG, BMP Image Formats?
http://www.guidingtech.com/7729/difference-
between-jpg-png-gif-bmp-image-formats/. Diakses 1 Agustus
2016.
[18]. Margaret Rouse 2015. Lossless and Lossy Compression.
http://whatis.techtarget.com/definition/lossless-and-lossy-compression.
Diakses pada 1 Agustus 2016.
[19]. Sulistyo, W. & Subanar 2013. Desain Metodologi
Penelitan untuk
Pemodelan dalam Bidang Ilmu Komputer. Seminar Nasional Sains
dan
Aplikasi Komputasi
[20]. Stallings, W. 2006. Cryptography and Network Security.
(doi:10.1007/11935070)
-
19