Perancangan dan Implementasi
Image
Kriptografi
Menggunakan
Caesar
Cipher
Termodifikasi
Artikel Ilmiah
Peneliti:
Dwi Sandi Kurnia (672013713) Magdalena A. Ineke Pakereng, M.Kom.
Program Studi Teknik Informatika
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
Perancangan dan Implementasi
Image
Kriptografi
Menggunakan
Caesar
Cipher
Termodifikasi
Artikel Ilmiah
Diajukan kepada
Fakultas Teknologi Informasi
untuk memperoleh gelar Sarjana Komputer
Peneliti:
Dwi Sandi Kurnia (672013713) Magdalena A. Ineke Pakereng, M.Kom.
Program Studi Teknik Informatika
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
Perancangan dan Implementasi
Image
Kriptografi
Menggunakan
Caesar
Cipher
Termodifikasi
1)
Dwi Sandi Kurnia,2)
Magdalena A. Ineke Pakereng
Fakultas Teknologi Informasi Universitas Kristen Satya Wacana Jl. Diponegoro 52-60, Salatiga 50711, Indonesia
Email: 1)[email protected],2)[email protected]
Abstract
One way to maintain the security and confidentiality of the data and information is by using encryption and decryption. Digital image used in various fields, to store important information. Digital image stored in a computer and transmitted through a computer network and the Internet are at risk to be known, altered or destroyed by certain parties. Cryptographic techniques can be applied to protect digital images of these problems, one of them by using the Caesar cipher. Caesar cipher is a cryptographic algorithm classic works by shifting the character of a specific numerical value. To improve the security of Caesar cipher, the figures used for the shift is varied. In this study generated the application of digital image encryption and decryption using the Caesar cipher modified. The results showed that the security of digital image can be performed by a Caesar cipher algorithm, by increasing security by using a semi-random shift.
Keywords: Image Cryptography, Modified Caesar Cipher
Abstrak
Salah satu cara untuk menjaga keamanan dan kerahasiaan suatu data maupun informasi adalah dengan teknik enkripsi dan dekripsi. Citra digital digunakan dalam berbagai bidang, untuk menyimpan informasi penting. Citra digital yang tersimpan dalam komputer maupun dikirimkan lewat jaringan komputer dan internet memiliki resiko untuk diketahui, diubah dan dirusak oleh pihak tertentu. Teknik kriptografi dapat diterapkan untuk melindungi citra digital dari masalah-masalah tersebut, salah satunya dengan menggunakan Caesarcipher. Caesarcipher merupakan algoritma kriptografi klasik yang bekerja dengan cara menggeser karakter sebesar nilai angka tertentu. Untuk meningkatkan keamanan Caesarcipher, angka yang digunakan untuk pergeseran dibuat bervariasi. Pada penelitian ini dihasilkan aplikasi enkripsi dan dekripsi citra digital dengan menggunakan Caesarcipher termodifikasi. Hasil penelitian menunjukkan bahwa pengamanan citra digital dapat dilakukan dengan algoritma Caesar cipher, dengan meningkatkan keamanan dengan cara menggunakan pergeseran yang semi acak.
Kata Kunci: Kriptografi Citra Digital, CaesarCipher Termodifikasi
1)Mahasiswa Program Studi Teknik Informatika, Fakultas Teknologi Informasi, Universitas Kristen Satya Wacana
2)
1 1. Pendahuluan
Keamanan merupakan salah satu aspek penting dalam pengiriman data maupun komunikasi melalui jaringan. Salah satu cara untuk menjaga keamanan dan kerahasiaan suatu data maupun informasi adalah dengan teknik enkripsi dan dekripsi. Teknik ini berguna untuk membuat pesan, data, maupun informasi tidak dapat dibaca atau dimengerti oleh orang lain, kecuali untuk penerima yang berhak dan mengetahui teknik dekripsinya. Teknik enkripsi dan dekripsi dikenal dan dipelajari dalam bidang ilmu kriptografi [1].
Informasi berupa citra digital telah digunakan secara luas dalam berbagai macam bidang seperti pemerintahan, militer, badan keuangan, rumah sakit, perusahaan perdagangan, dan lain sebagainya. Citra digital digunakan untuk menyimpan informasi penting, misalnya hasil pemeriksaan pasien dalam bidang rumah sakit, area geografi dalam bidang penelitian, posisi musuh dalam bidang militer, produk baru dalam perusahaan, dan lain sebagainya.
Citra digital yang tersimpan dalam komputer maupun dikirimkan lewat jaringan komputer dan internet memiliki resiko untuk diketahui, diubah dan dirusak oleh pihak tertentu. Teknik kriptografi dapat diterapkan untuk melindungi citra digital dari masalah-masalah tersebut.
Caesar cipher merupakan algoritma kriptografi klasik. Algoritma tersebut
bekerja dengan cara menggeser karakter sebesar nilai angka tertentu. Nilai angka yang digunakan bersifat konstan, yaitu antara karakter satu dengan karakter yang lain digeser dengan menggunakan satu nilai yang sama. Untuk meningkatkan keamanan Caesar cipher, angka yang digunakan untuk pergeseran dibuat bervariasi. Proses variasi ini dilakukan dengan menggunakan nilai semi acak, yang dibangkitkan dengan nilai awal berdasarkan masukan password. Password
yang sama digunakan untuk membangkitkan nilai acak, untuk proses dekripsi. Berdasarkan latar belakang masalah tersebut, maka pada penelitian ini dirancang aplikasi kriptografi citra digital, dengan melakukan modifikasi pergeseran kunci pada Caesar cipher. Berdasarkan hasil perancangan, dilakukan implementasi dalam bentuk aplikasi berbasis Windows, yang dibuat dengan menggunakan teknologi .Net Framework.
2. Tinjauan Pustaka
Penelitian tentang Caesar cipher termodifikasi telah dilakukan sebelumnya. Susanto, Fridariyani dan Rahman [2] dalam penelitiannya melakukan improvisasi algoritma Caesar cipher untuk mengamankan data teks. Penelitian tersebut menjelaskan tentang masalah keamanan privasi data teks bagi kalangan masyarakat. Improvisasi dilakukan dengan penambahan kunci, sehingga terdapat dua kunci untuk melakukan enkripsi dan dekripsi yaitu kunci pergeseran dan kunci spasi. Hasil dari penelitian tersebut adalah sebuah aplikasi kriptografi untuk file teks.
Penelitian yang lain oleh Dey [3], yang melakukan modifikasi Caesar
cipher dengan menggunakan metode SD-AREE. Penelitian tersebut menekankan
2
Teknik yang diusulkan adalah modifikasi Caesar cipher dengan SD-AREE untuk menyandikan data penting tersebut. SD-AREE adalah teknik kriptografi yang tidak memasukkan karakter berulang pada pesan yang akan dienkripsi. Pada metode SD-AREE, bit atau karakter yang berulang dihilangkan, sehingga tidak terdapat jejak perulangan karakter pada pesan, untuk menghindari frequency analysis.
Perbedaan penelitian yang dilakukan ini dengan penelitian-penelitian sebelumnya adalah, pada penelitian ini, Caesar cipher dimodifikasi pada angka yang digunakan untuk proses pergeseran karakter. Nilai yang digunakan sebagai pergeseran adalah nilai semi acak (pseudo random). Nilai awal (seed) yang digunakan adalah hasil modulasi XOR dari masukan password/kunci. Caesar
cipher yang dimodifikasi ini digunakan untuk menyandikan citra digital.
Salah satu algoritma klasik yang dikenal adalah Caesar cipher. Caesar
cipher yang digunakan oleh kaisar Romawi, Julius Caesar (sehingga dinamakan
juga Caesar cipher). Pada Caesar cipher, tiap huruf disubstitusi dengan huruf ketiga berikutnya dari susunan alfabet yang sama. Dalam hal ini kuncinya adalah jumlah pergeseran huruf (yaitu 3). Sehingga, huruf A pada plaintext
disubstitusikan dengan D, huruf B disubstitusikan dengan E, demikian seterusnya [4].
Pada penelitian ini digunakan algoritma semi acak (pseudo random) untuk membangkitkan nilai pergeseran. Pembangkitan bilangan pseudo random adalah sebuah deretan bilangan dengan kemungkinan pengulangan yang sangat kecil atau periode pengulangan yang sangat besar. Pada pembuatan sistem ini, algoritma pembangkitan bilangan pseudo random yang digunakan adalah algoritma LCG
(Linear Congruential Generator) yang diciptakan oleh D.H Lehmer pada tahun
1951 [5]. Pada .Net Framework, telah terintegrasi class Random yang merupakan implementasi dari algoritma pseudo random tersebut.
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 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
[6][7].
Gambar 1 True Color 24 bit dan 32 bit [6]
3. Metode dan Perancangan Sistem
3
enkripsi. Hasil dari proses enkripsi adalah cipher image. Pada proses dekripsi, masukan yang diperlukan adalah cipherimage dan kunci dekripsi. Kunci enkripsi dan kunci dekripsi adalah sama.
Citra Digital +
Gambar 2 Desain Sistem
Penelitian yang dilakukan, diselesaikan melalui tahapan penelitian yang terbagi dalam empat tahapan, yaitu: (1) Identifikasi masalah dan studi literatur, (2) Perancangan sistem, (3) Implementasi sistem, dan (4) Pengujian sistem dan analisis hasil pengujian.
Gambar 3 Tahapan Penelitian
Tahapan penelitian pada Gambar 3, dijelaskan sebagai berikut: Tahap
pertama: mengidentifikasi masalah keamanan data terutama citra digital, dan
mempelajari solusi-solusi yang dapat diterapkan. Tahap kedua: berdasarkan solusi-solusi yang dipilih, dirancang suatu modifikasi dari algoritma yang sudah ada, untuk digunakan sebagai penyelesaian masalah. Tahap ketiga: mengimplementasikan hasil perancangan ke dalam bentuk aplikasi Windows dengan menggunakan teknologi .Net Framework. Tahap keempat: adalah melakukan pengujian sistem dan kemudian melakukan analisis terhadap hasil pengujian tersebut.
Identifikasi Masalah dan Studi Literatur
Perancangan Sistem
Implementasi Sistem
4
Mulai
Modulasi kunci menjadi angka
seed Input gambar
dan kunci
Jika semua warna selesai
diproses Baca warna
Bangkitkan nilai acak
Geser kanan warna sebesar nilai acak
Selesai
Output cipher image
True
False
Gambar 4 Proses Enkripsi dengan CaesarCipher Termodifikasi
Pada Gambar 4 ditunjukkan proses enkripsi citra digital dengan Caesar
cipher termodifikasi. Masukan yang diperlukan adalah citra digital dan kunci yang
panjangnya 6-12 karakter. Kunci yang digunakan kemudian dilakukan modulasi dengan XOR sehingga dihasilkan satu bilangan byte. Bilangan tersebut menjadi
5
Geser kiri warna sebesar nilai acak
Gambar 5 Proses Dekripsi dengan CaesarCipher Termodifikasi
Pada Gambar 5 ditunjukkan diagram proses dekripsi dengan Caesar cipher
termodifikasi. Seperti halnya pada proses enkripsi, pada proses dekripsi diperlukan masukan yaitu cipher image, dan kunci dekripsi. Kunci dekripsi digunakan untuk membangkitkan bilangan acak. Proses selanjutnya sama dengan proses enkripsi, yaitu menggeser nilai warna seusai dengan nilai hasil pembangkitan acak. Perbedaannya adalah proses geser yang dilakukan dengan arah yang sebaliknya dari proses enkripsi.
Pada proses modulasi kunci, karakter-karakter yang digunakan pada kunci diubah ke dalam nilai ASCII. Kemudian nilai-nilai ASCII tersebut dilakukan operasi XOR, sampai akhirnya diperoleh satu angka yang akan digunakan sebagai
seed untuk proses semi acak. Contoh proses modulasi kunci ditunjukkan pada Tabel 1.
Tabel 1 Contoh Proses Modulasi Kunci
Kunci f t i @ u k s w
6
Hasil Modulasi Kunci 33
Dengan menggunakan hasil modulasi 33, dibangkitkan bilangan semi acak. Pada proses enkripsi maupun dekripsi, digunakan nilai bilangan semi acak yang sama karena nilai seed diperoleh dari hasil modulasi kunci yang sama. Contoh proses enkripsi ditunjukkan pada Tabel 2.
Tabel 2 Contoh Proses Enkripsi
Warna 255 255 0 1 100 70 99 99 100
Nilai Semi Acak Dengan
Seed=33 246 127 212 153 26 101 176 254 15
Warna Hasil Enkripsi
Caesar 245 126 212 154 126 171 19 97 115
Contoh proses dekripsi dari hasil enkripsi pada Tabel 2, ditunjukkan pada Tabel 3.
Tabel 3 Contoh Proses Dekripsi
Warna 245 126 212 154 126 171 19 97 115
Nilai Semi Acak Dengan
Seed=33 246 127 212 153 26 101 176 254 15
Warna Hasil Dekripsi 255 255 0 1 100 70 99 99 100
4. Hasil dan Pembahasan
Berdasarkan hasil perancangan, maka dilakukan implementasi dalam bentuk aplikasi desktop berbasis Windows. Aplikasi dikembangkan dengan menggunakan bahasa pemrograman C#, dengan pustaka .Net Framework 4.5. Perangkat pengembangan yang digunakan adalah Visual StudioExpres 2012 for Windows Desktop.
Gambar 6Form untuk Proses Enkripsi Gambar 7Form untuk Proses Dekripsi
Gambar 6 merupakan form yang digunakan untuk melakukan proses enkripsi. Form tersebut menyediakan masukkan berupa citra digital yang akan dienkripsi, dan kunci enkripsi. Hasil enkripsi ditampilkan bersebelahan dengan citra digital semula. Gambar 7 merupakan form yang digunakan untuk proses dekripsi. Skema tampilan sama dengan form untuk proses enkripsi.
Kode Program 1 Perintah untuk Proses Modulasi Kunci
7 dengan yang lainnya (perintah pada baris 4-7). Variabel result (perintah pada baris 3) digunakan untuk menampung nilai akhir dari hasil operasi XOR.
Kode Program 2 Perintah untuk Proses Enkripsi Warna dengan Caesar Cipher
1. byte modulasi = XORModulasi.XOR(key);
2. PRNG random = new PRNG(modulasi);
11. Color c = bitmap.GetPixel(x, y);
12.
13. geser = random.Next();
14. byte A = (byte)((c.A + geser) % max);
Kode Program 2 merupakan perintah untuk proses enkripsi warna. Proses dimulai dengan melakukan modulasi kunci (perintah pada baris 1), kemudian membuat obyek dari class PRNG yang berfungsi sebagai pembangkit bilangan semi acak. Nilai pemicu (seed) untuk proses semi acak adalah nilai dari hasil modulasi (perintah pada baris 2). Nilai elemen warna dibaca berdasarkan koordinat panjang dan lebar menggunakan variabel x dan y (perintah pada baris 5-7). Kemudian proses enkripsi dilakukan dengan cara menggeser nilai warna tersebut sebesar nilai semi acak yang dihasilkan (perintah pada baris 13-14). Pergeseran dilakukan dengan menjumlahkan nilai warna dengan nilai semi acak. Jika hasil penjumlahkan lebih dari batas nilai byte (perintah pada baris 3) maka dilakukan operasi modulus untuk diperoleh nilai hasil baginya (perintah pada baris 14).
Kode Program 3 Perintah untuk Proses Dekripsi Warna dengan CaesarCipher
1. byte modulasi = XORModulasi.XOR(key);
2. PRNG random = new PRNG(modulasi);
10. Color c = bitmap.GetPixel(x, y);
11. geser = random.Next();
12. int gA = c.A - geser;
13. byte A = (byte)(gA < 0 ? max + gA : gA);
8
elemen warna dibaca berdasarkan koordinat panjang dan lebar menggunakan variabel x dan y (perintah pada baris 5-7). Kemudian proses dekripsi dilakukan dengan cara menggeser nilai warna tersebut sebesar nilai semi acak yang dihasilkan (perintah pada baris 13-14). Pergeseran dilakukan dengan mengurangkan nilai warna dengan nilai semi acak. Pergeseran dilakukan ke kiri, sehingga jika hasil pengurangan adalah nilai negatif, maka dilanjutkan ke nilai terbesar byte. Sebagai contoh jika pengurangan adalah -2, maka nilai perputaran ke kiri adalah 254. Jika -10, maka menjadi 146.
Pengujian aplikasi dilakukan untuk mengetahui apakah aplikasi telah memenuhi rancangan yang dibuat, dan memenuhi kebutuhan pembuatan aplikasi, serta mengetahui performa aplikasi. Pengujian dilakukan dengan melihat 3 faktor, yaitu kecepatan, keamanan, dan keutuhan data.
Pengujian kecepatan dilakukan dengan menguji beberapa ukuran citra digital, kemudian mencatat waktu proses yang dihasilkan.
Tabel 4 Hasil Pengujian Kecepatan
No Jumlah Piksel Enkripsi Dekripsi
1 90000 0.203114 0.203318
Gambar 8 Hasil Pengujian Kecepatan
Berdasarkan hasil pengujian kecepatan, dibuktikan bahwa ukuran citra yaitu panjang dan lebar mempengaruhi kecepatan proses enkripsi maupun dekripsi. Perbedaan waktu proses enkripsi dan dekripsi tidak signifikan, karena kedua proses melalui langkah-langkah yang sama. Tentu saja waktu proses ini sangat dipengaruhi oleh spesifikasi komputer yang digunakan.
9
Tabel 5 Hasil Pengujian Keamanan
No Kunci 1 Kunci 2 Perbedaan Kunci (byte) Perbedaan Piksel
1 1234abcd 1234abcX 1 89996
2 1234abcd 1234abXY 2 89995
3 1234abcd 1234aXYZ 3 89999
4 1234abcd 12XYZAcd 4 89997
5 1234abcd 1ABCDEFd 6 90000
Hasil pengujian pada Tabel 5, ditampilkan dalam bentuk grafik garis, ditunjukkan pada Gambar 9.
Gambar 9 Hasil Pengujian Keamanan
Berdasarkan hasil pengujian keamanan, diketahui bahwa aplikasi dapat menghasilkan cipherimage yang memiliki perbedaan besar, sekalipun kunci yang digunakan mirip. Angka perbedaan kunci berbanding secara signifikan dengan angka perbedaan piksel.
Pengujian Keutuhan dilakukan dengan cara membandingkan nilai piksel antara citra digital awal (sebelum proses enkripsi), dengan citra digital akhir (setelah proses dekripsi).
Tabel 6 Hasil Pengujian Keutuhan
No Gambar Awal Gambar Akhir Kunci
Perbedaan Piksel
10
2 satyawacana 0
3 salatiga 0
4 20150101 0
5 inekepakereng 0
Berdasarkan hasil pengujian keutuhan pada Tabel 6, diketahui bahwa aplikasi dapat menjaga keutuhan citra digital, terbukti dari tidak ada perbedaan nilai piksel antara citra digital awal (sebelum enkripsi) dengan citra digital akhir (setelah dekripsi).
5. Simpulan
11 6. Daftar Pustaka
[1]. Kaufman, C., Perlman, R. & Speciner, M. 2002. Network security: private
communication in a public world. Prentice Hall Press.
[2]. Susanto, A., Fridariyani, F. & Rahman, A. 2014. Enkripsi dan Dekripsi Teks Menggunakan Algoritma Improved Caesar Cipher. Jurusan Teknik Informatika STMIK MDP
[3]. Dey, S. 2012. SD-AREE: A New Modified Caesar Cipher Cryptographic Method Along with Bit-Manipulation to Exclude Repetition from a Message
to be Encrypted. arXiv preprint arXiv:1205.4279
[4]. Munir, R. 2006. Kriptografi. Informatika, Bandung
[5]. Susanto, A. 2006. Studi dan Implementasi Steganografi pada Berkas MIDI. [6]. Willamette.edu In press. Image File Formats.