perancangan dan implementasi kriptografi menggunakan
TRANSCRIPT
1
Perancangan dan Implementasi Kriptografi
Menggunakan Algoritma CryptMT Pada Data Citra
Artikel Ilmiah
Peneliti: Erik Wijaya(672011140)
Magdalena A. Ineke Pakereng, M.Kom.
Program Studi Teknik Informatika
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
Salatiga
Juli 2016
`2
Perancangan dan Implementasi Kriptografi
Menggunakan Algoritma CryptMT Pada Data Citra
Artikel Ilmiah
Diajukan kepada
Fakultas Teknologi Informasi
untuk memperoleh gelar Sarjana Komputer
Peneliti: Erik Wijaya(672011140)
Magdalena A. Ineke Pakereng, M.Kom.
Program Studi Teknik Informatika
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
Salatiga
Juli 2016
`3
`4
`5
`6
`7
1. Pendahuluan
Kemudahan berkomunikasi menimbulkan kebutuhan baru, yaitu
pengamanan informasi yang ditransmisikan pada jaringan komunikasi dari
pengirim ke penerima. Salah satu bentuk informasi yang dikirimkan adalah
gambar. Pengiriman sebuah data dalam bentuk gambar yang akan dikirim ke suatu
tujuan yang bersifat privasi, kemungkinan besar dapat terlihat oleh pihak lain. Hal
ini akan membuat orang tersebut mencari cara untuk menyembunyikannya
sehingga pihak lain tidak tahu. Sebagai contoh, ketika sebuah paket akan
dikirimkan kepada seseorang, maka paket tersebut dikemas sedemikian rupa agar
isi paket tersebut tidak terlihat oleh orang lain. Untuk menambah kerahasiaan dari
isi paket tersebut, ditambahkan sebuah mekanisme tertentu untuk membuka isi
paket tersebut.
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].
Kriptografi visual pada citra digital memiliki peran penting dalam proses
transfer gambar di jaringan komunikasi. Enkripsi citra digital bertujuan untuk
melindungi kerahasiaan gambar, menghindari perubahan isi gambar, mencegah
penambahan informasi palsu, atau menghapus sebagian dari isi gambar [2].
Algoritma kriptografi dalam proses enkripsi, terbagi ke dalam block cipher
dan stream cipher. Block Cipher adalah algoritma enkripsi yang akan membagi-
bagi plaintext yang akan diproses, ke dalam ukuran tertentu (disebut blok) dengan
panjang tertentu, dan setiap blok dienkripsi dengan menggunakan kunci yang
sama. Stream Cipher adalah algoritma enkripsi yang mengenkripsi data persatuan
data, seperti bit, byte, nible atau per 5 bit. Tiap proses enkripsi satu satuan data,
digunakan kunci yang merupakan hasil pembangkitan dari kunci sebelumnya.
CryptMT Versi 3 (CryptMT3) adalah stream cipher yang dikembangkan
oleh Makoto Matsumoto, Mutsuo Saito, Takuji Nishimura, dan Mariko Hagita.
CryptMT ver. 3 berdasarkan pada operasi 128 bit [3]. CryptMT dikembangkan
untuk CPU modern, yang bertujuan untuk memanfaatkan operasi SIMD (single
instruction multiple data) dengan efisien [4].
Berdasarkan latar belakang masalah tersebut, maka dilakukan penelitian
yang berjudul “Perancangan dan Implementasi Kriptografi Menggunakan
Algoritma CryptMT Pada Data Citra”.
2. Tinjauan Pustaka
Pada penelitian yang berjudul “Penyandian Citra Menggunakan Metode
Playfair Cipher”, dibahas mengenai pemanfaatan algoritma playfair untuk
enkripsi citra digital. Playfair Cipher merupakan salah satu metode yang
`8
digolongkan dalam kriptogafi klasik yang proses enkripsinya menggunakan
pemrosesan dalam bentuk blok-blok yang sangat besar. Metode ini merupakan
salah satu cara untuk mengatasi kelemahan metode kriptografi klasik lainnya yang
mudah tertebak karena terdapat korespondensi satu-satu antara plainteks dengan
cipherteks. Dari hasil pengujian didapatkan bahwa playfair merupakan metode
penyandian klasik yang cocok diterapkan untuk citra dengan kualitas yang baik
dan pada citra dengan kategori citra detil. Hal ini terlihat dari keacakan intensitas
warna pada citra yang telah tersandikan. Selain itu karena matrik kunci yang
digunakan ukurannya cukup besar mengakibatkan kriptanalisis akan
membutuhkan waktu yang cukup lama untuk menemukan matrik kuncinya,
karena terdapat 256!kemungkinan bentuk matrik kunci [5].
Pada penelitian Kurnia [6], dirancang aplikasi kriptografi dengan
menggunakan algoritma Caesar cipher dan PRNG. Pada penelitian tersebut,
dibahas tentang masalah keamanan citra digital, yang 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 Caesar cipher.
Caesar cipher merupakan algoritma kriptografi klasik yang bekerja dengan cara
menggeser karakter sebesar nilai angka tertentu. Untuk meningkatkan keamanan
Caesar cipher, angka yang digunakan untuk pergeseran dibuat bervariasi. Pada
penelitian tersebut dihasilkan aplikasi enkripsi dan dekripsi citra digital dengan
menggunakan Caesar cipher termodifikasi. Hasil penelitian menunjukkan bahwa
pengamanan citra digital dapat dilakukan dengan algoritma Caesar cipher, dengan
meningkatkan keamanan dengan cara menggunakan pergeseran yang semi acak.
Berdasarkan penelitian-penelitian yang telah dilakukan tentang kriptografi
pada citra digital, maka dilakukan penelitian yang mengimplementasikan
algoritma CryptMT stream cipher untuk kriptografi citra digital. Pada penelitian
ini dikembangkan aplikasi kriptografi citra digital dengan algoritma CryptMT.
Aplikasi dikembangkan pada sistem operasi Microsoft Windows. Batasan
masalah dalam penelitian ini adalah sebagai berikut: (1) Data yang dienkripsi
adalah data citra digital; (2) Algoritma yang dibandingkan adalah CryptMT
stream cipher; (3) Bahasa pemrograman yang digunakan untuk membuat aplikasi
adalah C# .net framework 4.5;
Kriptografi (cryptography) merupakan ilmu dan seni penyimpanan pesan,
data, atau informasi secara aman. Kriptografi (Cryptography) berasal dari bahasa
Yunani yaitu dari kata Crypto dan Graphia yang berarti penulisan rahasia [7].
Kriptografi merupakan bagian dari suatu cabang ilmu matematika yang disebut
Cryptology. Dalam mengenkripsi dan mendekripsi data, kriptografi membutuhkan
suatu algoritma (cipher) dan kunci (key). Cipher adalah fungsi matematika yang
digunakan untuk mengenkripsi dan mendekripsi. Sedangkan kunci merupakan
sederetan bit yang diperlukan untuk mengenkripsi dan mendekripsi data [8].
Secara umum proses kriptografi dibagi menjadi dua bagian yaitu enkripsi dan
dekripsi. Data yang telah dienkripsi disebut ciphertext karena data asli telah
mengalami proses di dalam sebuah algoritma kriptografi atau lebih dikenal
dengan nama cipher. Kebalikannya, proses mengubah pesan yang telah dienkripsi
(ciphertext) menjadi pesan asli (plaintext) disebut sebagai proses dekripsi.
`9
CryptMT ver. 3 adalah sebuah variasi baru yang dikembangkan oleh
Makoto Matsumoto, Mutsuo Saito, Takuji Nishimura, dan Mariko Hagita.
CryptMT ver. 3 berdasarkan pada operasi 128 bit. Pada CPU modern, sering
memiliki operasi single instruction multiple data (SIMD). Biasanya 4 kali lipat
dari register 32-bit dianggap sebagai 1 register 128-bit. CryptMT v3 terdiri dari
generator F2-linear dari kata, ukuran, dan bilangan bulat berurutan dengan suatu
keadaan ruang besar dan sebuah filter dengan satu kata, ukuran memori,
berdasarkan pada perkalian bilangan bulat akumulatif [3].
Pada penelitian ini, format file citra digital yang digunakan adalah PNG.
PNG merupakan True Coulor image. Suatu true colour image memiliki
komponen red, green dan blue yang terpisah untuk tiap pikselnya. Pada sebagian
besar true colour image, tiap komponen diwakilkan dengan satu byte yang terdiri
dari 8 bit, sehingga setiap piksel memiliki 24 bit informasi warna. Oleh karena itu,
mode ini sering disebut sebagai “24-bit warna”. Pada Gambar 1 ditunjukkan
contoh potongan dari file gambar. 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 [9].
Gambar 1 Komponen RGB pada File Gambar 24 Bit Warna [9]
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) Implementasi sistem yaitu Perancangan aplikasi/program,
dan (4) Pengujian sistem serta analisis hasil pengujian.
`10
Identifikasi Masalah dan Studi Literatur
Perancangan Sistem
Implementasi Sistem
Pengujian Sistem dan Analisis Hasil Pengujian
Gambar 2 Tahapan Penelitian
Tahapan penelitian pada Gambar 2, dapat dijelaskan sebagai berikut.
Tahap pertama: identifikasi masalah, yaitu keamanan citra digital. Studi literatur
dilakukan untuk mencari metode yang dapat diterapkan untuk menyelesaikan
masalah yang telah teridentifikasi. Tahap kedua: perancangan sistem yang
meliputi perancangan proses deteksi kemiripan citra digital; Tahap ketiga:
implementasi 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.
Plain Image EnkripsiCipher Image
Kunci
Cipher Image
Dekripsi Plain Image
Kunci
Gambar 3 Desain Sistem
Sistem yang dikembangkan, memiliki desain yang ditunjukkan pada
Gambar 3. CryptMT merupakan algoritma kritografi kunci simetris, sehingga
diperlukan kunci yang sama untuk proses enkripsi dan dekripsi.
`11
Mulai
Input gambar
Input kunci
Jika Semua Komponen
Warna telah dienkripsi
Baca Komponen Warna
Enkripsi Komponen Warna
Selesai
False
True
Gambar 4 Alur Proses Enkripsi Citra Digital
Mulai
Input gambar
Input kunci
Jika Semua Komponen
Warna telah didekripsi
Baca Komponen Warna
Dekripsi Komponen Warna
Selesai
False
True
Gambar 5 Alur Proses Dekripsi Citra Digital
Pada proses enkripsi (Gambar 4) dengan algoritma CryptMT, dilakukan
pada komponen-komponen warna, tanpa pembentukan blok. Hal ini
mengakibatkan tidak perlunya dilakukan proses padding. Proses dekripsi (Gambar
5) dilakukan dengan langkah yang sama dengan proses enkripsi. Komponen
warna (RGB) diperoleh dari proses membaca piksel. Pada 1 piksel terdapat 3
warna, tiap warna berkapasitas 1 byte. Sehingga dalam 1 piksel terdapat 3 byte.
Proses enkripsi dan dekripsi dilakukan byte per byte.
`12
mulai
selesai
Mother generator
Input key 128 bit
Input plaintext
Akumulasi bilangan acak
Baca tiap karakter
Output 8 most
significant 8 bit of accum
Gambar 6 Proses Enkripsi CryptMT [4]
mulai
selesai
Mother generator
Input key 128 bit
Input ciphertext
Akumulasi bilangan acak
Baca tiap karakter
Output most significant 8 bit of accum
Gambar 7 Proses Dekripsi CryptMT [4]
Langkah proses enkripsi dan dekripsi pada CryptMT memiliki urutan yang
sama. Input yang diperlukan adalah kunci 128 bit, dan deretan data yang akan
dienkripsi/dekripsi. Untuk tiap byte data, dilakukan proses “mother generator”,
yaitu membangkitkan deretan bilangan pseudorandom dengan algoritma
Mersenne Twister (MT). Hasil bilangan acak diakumulasikan, kemudian diambil
8 bit terdepat dari hasil akumulasi.
4. Hasil dan Pembahasan
Aplikasi pada penelitian ini, dibuat dalam bentuk aplikasi berbasis
desktop. Software yang digunakan adalah Visual Studio 2012 Express for
Windows Desktop.
`13
Gambar 8 Form Enkripsi
Form enkripsi (Gambar 8), memerlukan dua input, yaitu plainimage, dan
kunci. Output dari proses enkripsi adalah cipherimage yang merupakan hasil
enkripsi. Ukuran piksel selama proses enkripsi tidak mengalami perubahan.
`14
Gambar 9 Form Dekripsi
Form dekripsi (Gambar 9), memerlukan dua input, yaitu cipherimage hasil
enkripsi dan kunci. Jika kunci yang digunakan untuk proses dekripsi sama dengan
proses enkripsi, maka plainimage yang muncul adalah sesuai aslinya.
Pada aplikasi yang dikembangkan, dilakukan beberapa pengujian.
Pengujian pertama adalah pengujian kecepatan proses enkripsi dan dekripsi. Hasil
dari pengujian ini ditunjukkan pada Tabel 1.
Tabel 1 Perbandingan Kecepatan Enkripsi dan Dekripsi
No Ukuran Piksel Gambar
Kecepatan
Enkripsi
(detik)
Kecepatan
Dekripsi
(detik)
1 100x100 0.04 0.040
2 200x200 0.08 0.086
3 300x300 0.09 0.097
4 400x400 0.09 0.131
5 500x500 0.1 0.160
6 600x600 0.119 0.188
7 700x700 0.132 0.217
8 800x800 0.145 0.245
9 900x900 0.158 0.274
10 1000x1000 0.171 0.302
`15
Berdasarkan hasil pengujian pengaruh ukuran gambar pada Tabel 1, dapat
dibuktikan bahwa proses enkripsi dan dekripsi sangat dipengaruhi oleh ukuran
piksel gambar.
Pengujian kedua adalah pengujian pengaruh panjang kunci terhadap waktu
proses enkripsi dan dekripsi. Pengujian ini bertujuan untuk melihat apakah
perbedaan panjang kunci, memberikan efek pada waktu proses.
Tabel 2 Perbandingan Pengaruh Panjang Kunci terhadap Waktu
No Panjang kunci
(byte)
Kunci Enkripsi
(detik)
Dekripsi
(detik)
1 1 F 0.1008 0.1310
2 2 FT 0.1157 0.1459
3 3 FTI 0.1298 0.1582
4 4 UKSW 0.1361 0.1694
5 5 SATYA 0.1364 0.1609
6 6 WACANA 0.1387 0.1664
7 7 FTIUKSW 0.1648 0.1870
8 8 UKSWUKSW 0.1558 0.1854
9 9 SATYAUKSW 0.1605 0.1993
10 10 SATYASATYA 0.1966 0.2209
11 11 SATYAWACANA 0.1889 0.2088
12 12 SALATIGAUKSW 0.2170 0.2185
13 13 FTIFTIFTIFTIF 0.1741 0.2254
14 14 FTIUKSWFTIUKSW 0.2286 0.2353
15 15 SATYASATYASATYA 0.2265 0.2408
16 16 UKSWUKSWUKSWUKSW 0.2974 0.2739
Berdasarkan hasil pengujian pengaruh kunci pada Tabel 2, diketahui
bahwa panjang kunci memberikan pengaruh pada kecepatan proses enkripsi
maupun dekripsi. Semakin panjang kunci, semakin meningkat pula waktu yang
dibutuhkan untuk proses enkripsi dan dekripsi.
Pengujian ketiga adalah pengujian hubungan kunci dengan hasil
cipherimage. Pengujian dilakukan dengan cara melakukan enkripsi pada satu
gambar, dengan beberapa kunci yang berbeda. Cipherimage yang dihasilkan
dengan kunci yang satu dibandingkan dengan cipherimage yang dihasilkan
dengan kunci yang berbeda. Hasil pengujian ketiga ditunjukkan pada Tabel 3. Tabel 3 Hasil Pengujian Hubungan Kunci
No File Dimensi Panjang
Kunci
Kunci1 Kunci2 Jumlah
Piksel
Cipher 1
Dan 2
1 gambar1.png 300x250 128
abcdeabc
deabcde1
abcdeabc
deabcde2 74998
2 gambar1.png 300x250 128
abcdeabc
deabcde1
abcdeabc
deabcde3 74998
3 gambar1.png 300x250 128
abcdeabc
deabcde2
abcdeabc
deabcde2 74998
Berdasarkan hasil pengujian hubungan kunci, pada Tabel 3, disimpulkan
bahwa sekalipun kunci yang digunakan hanya berbeda 1 bit (abcdeabcdeabcde1
`16
dan abcdeabcdeabcde2 berbeda 1 bit terakhir), cipherimage yang dihasilkan
sangat berbeda, yaitu 74,998 piksel berbeda dari total keseluruhan 75,000 piksel.
Dengan kata lain, hanya 2 piksel yang sama (pada posisi yang sama memiliki nilai
piksel yang sama).
Pengujian keempat adalah pengujian kompleksitas cipher image.
Tabel 4 Perbandingan Pengaruh Panjang Kunci terhadap Kompleksitas Cipher Image
No Panjang kunci
(byte)
Kunci Perbedaan
Piksel
Cipher
Image
dengan Plain
Image
Persentase
Perbedaan
1 1 F 262142 99.998%
2 2 FT 262142 99.998%
3 3 FTI 262143 99.999%
4 4 UKSW 262143 99.999%
5 5 SATYA 262143 99.9996%
6 6 WACANA 262143 99.9996%
7 7 FTIUKSW 262144 100%
8 8 UKSWUKSW 262144 100%
9 9 SATYAUKSW 262144 100%
10 10 SATYASATYA 262144 100%
11 11 SATYAWACANA 262144 100%
12 12 SALATIGAUKSW 262144 100%
13 13 FTIFTIFTIFTIF 262144 100%
14 14 FTIUKSWFTIUKSW 262144 100%
15 15 SATYASATYASATYA 262144 100%
16 16 UKSWUKSWUKSWUKSW 262144 100%
Berdasarkan hasil pengujian pengaruh kunci pada Tabel 4, diketahui
bahwa sekalipun panjang kunci adalah 1 karakter, cipherimage yang dihasilkan
memiliki perbedaan yang sangat besar terhadap plainimage. Kunci dengan 1
karakter memberikan perbedaan sampai dengan 99%. Semakin panjang kunci,
maka semakin kompleks cipherimage yang dihasilkan.
5. Simpulan
Berdasarkan penelitian, pengujian dan analisis terhadap sistem, maka
dapat diambil kesimpulan yaitu:1) Berdasarkan hasil pengujian kecepatan enkripsi
dan dekripsi, waktu proses dipengaruhi oleh dua hal yaitu ukuran citra digital, dan
panjang kunci. Waktu enkripsi lebih cepat dari waktu dekripsi, dengan
perbandingan yang tidak signifikan (di bawah satu detik); 2) Keamanan hasil
enkripsi dapat dijamin, sekalipun kunci yang digunakan memiliki kemiripan 1
byte, seperti ditunjukkan pada hasil pengujian hubungan kunci; 3) Kompleksitas
kunci memberikan pengaruh pada kompleksitas cipherimage. Pedoman yang
dapat diambil adalah dengan semakin panjang kunci, maka semakin kompleks
(aman) cipherimage yang dihasilkan. Saran yang dapat diberikan untuk penelitian
`17
dan pengembangan selanjutnya adalahperlunya dilakukan analisis penggunaan
memory pada tiap proses, pada kedua algoritma.
6. Daftar Pustaka
[1]. Kaufman, C., Perlman, R., & Speciner, M., 2002, Network security: private
communication in a public world, Prentice Hall Press.
[2]. El Fishawy, N. F. & Zaid, O. M. A., 2007, Quality of Encryption
Measurement of Bitmap Images with RC6, MRC6, and Rijndael Block
Cipher Algorithms, IJ Network Security 5, 241–251.
[3]. Matsumoto, M., Saito, M., Nishimura, T., & Hagita, M., 2007, CryptMT
stream cipher version 3, eSTREAM, ECRYPT Stream Cipher Project,
Report 28, 2007.
[4]. Matsumoto, M., 2013, The Cryptographic Mersenne Twister,
http://www.math.sci.hiroshima-u.ac.jp/~m-
mat/MT/CRYPTMT/index.html. Diakses pada 2 Juni 2016.
[5]. Setyaningsih, E., 2009, Penyandian Citra Menggunakan Metode Playfair
Cipher, Jurnal Ilmiah Nasional Jurnal Teknologi 2, 213–217.
[6]. Kurnia, D. S., & Pakereng, M. A. I., 2015, Perancangan dan Implementasi
Image Kriptografi Menggunakan Caesar Cipher Termodifikasi, Program
Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Kristen
Satya Wacana Salatiga.
[7]. Forouzan, B. A., 2007, Cryptography & Network Security, McGraw-Hill,
Inc.
[8]. Munir, R., 2006, Kriptografi, Informatika, Bandung.
[9]. Parvez, M. T., & Gutub, A. A.-A. 2008, RGB Intensity Based Variable-Bits
Image Steganography, IEEE Asia-Pacific Services Computing Conference,
1322–1327.