Wednesday, 22 June 2016

Implementasi Komputasi Paralel Untuk Enkripsi Citra Berbasis AES Menggunakan JPPF

Implementasi Komputasi Paralel Untuk Enkripsi Citra Berbasis AES Menggunakan JPPF
Mohammad Zarkasi, Waskitho Wibisono, dan FX. Arunanto
Jurusan Teknik Informatika, Fakultas Teknologi Informasi, Institut Teknologi Sepuluh Nopember (ITS)
Jl. Arief Rahman Hakim, Surabaya 60111 Indonesia
E-mail: waswib@if.its.ac.id

Abstrak
Semakin pesat perkembangan teknologi informasi, proses tukar-menukar citra menjadi semakin tinggi dan mudah. Kebutuhan terhadap kerahasiaan dan hak cipta citra menjadi aspek yang harus dipenuhi. Salah satu cara untuk menjaga kerahasiaan citra adalah dengan menerapkan enkripsi. Advanced Encryption Standard (AES) merupakan algoritma enkripsi simetris dengan key yang panjang yang paling banyak digunakan saat ini. Untuk mempercepat waktu enkripsi diterapkan komputasi paralel. Karena AES bersifat sekuensial maka data yang berupa citra yang diparalelkan. Untuk implementasi komputasi paralel digunakan Java Parallel Programming Framework (JPPF) yang berarsitektur master/slave. JPPF menyediakan beberapa strategi distribusi untuk mengoptimalkan performa dengan menyesuaikan pembagian task. Tiap task berisi potongan citra untuk diproses oleh slave. Uji coba dilakukan pada beberapa citra dengan resolusi yang berbeda dan pada 8 komputer yang memiliki spesifikasi berbeda. Berdasarkan hasil uji coba, pada komputer dengan spesifikasi frekuensi prosesor 2,53 GHz core tunggal diperoleh speedup dengan rata-rata 1,65.
Kata Kunci—AES, JPPF, paralel, potongan, speedup.
I.                    PENDAHULUAN
ENKRIPSI merupakan teknik yang umum digunakan untuk meningkatkan keamanan suatu data [1]. Tidak terkecuali untuk citra. Sebagai tambahan dalam level keamanan, kecepatan eksekusi suatu algoritma enkripsi menjadi bagian yang paling penting. Salah satu algoritma enkripsi yang cukup luas diterapkan adalah Advanced Encryption Standards (AES). AES menggunakan key yang lebih panjang daripada algoritma Data Encryption Standard (DES). Pada level keamanan yang sama, perbedaan kecepatan algoritma dapat menyebabkan algoritma yang lebih cepat cenderung dipilih daripada algoritma yang lebih lambat [2]. Sebagai contoh, algoritma DES yang merupakan standar NIST, kini banyak ditinggalkan karena kecepatan eksekusi yang relatif lambat dan mahal untuk diimplementasikan pada hardware maupun software. Dengan key yang panjang, yaitu 128 bit, 192 bit, dan 256 bit, AES memberikan hasil enkripsi yang lebih susah dipecahkan dengan DES. Komputasi paralel diterapkan untuk mempercepat proses enkripsi dengan membagi citra menjadi potongan-potongan untuk diproses secara independen. Komputasi paralel dilakukan dengan menggunakan komputer- komputer yang saling terhubung dalam satu jaringan. Java Parallel Programming Framework (JPPF) merupakan framework untuk pemrosesan paralel yang menggunakan bahasa pemrograman Java. Pada JPPF tersedia beberapa strategi pendistribusian job untuk mengoptimalkan performa dengan menyesuaikan jumlah task yang dikirim ke setiap slave. JPPF juga memiliki mekanisme untuk menanggulangi masalah apabila terjadi kegagalan komunikasi dengan master [3]. Artikel ini membahas tentang implementasi komputasi paralel untuk mengenkripsi berkas citra menggunakan AES dengan menggunakan JPPF.
II. URAIAN PENELITIAN
A.      Advanced Encryption
Standard Advanced Encryption Standard (AES) merupakan algoritma enkripsi yang berdasarkan pada kombinasi dan permutasi dari operasi shift dan exclusive-OR (XOR) [4]. AES menggantikan Data Encryption Standard (DES) yang sebelumnya merupakan algoritma yang utama dalam mengenkripsi data elektronik. AES merupakan varian algoritma Rijndael yang dikembangkan oleh dua orang kriptografer asal Belgia, John Daemen dan Vincent Rijmen.
AES menggunakan ukuran blok yang tetap, yaitu 128 bit [4]. Ukuran key yang digunakan adalah 128, 192, atau 256 bit. AES beroperasi pada matriks berukuran 4×4 yang disebut dengan state. Ukuran key yang berbeda digunakan untuk menentukan jumlah ronde transformasi untuk mengubah plaintext menjadi ciphertext. Jumlah ronde transformasi untuk key dengan panjang 128 bit, 192 bit, dan 256 bit adalah masing-masing sebanyakn 10, 12, dan 14 ronde. Transformasi yang digunakan dalam algoritma AES diilustrasikan pada Gambar 1.
Ada beberapa modus operasi AES yang tersedia untuk digunakan memproses data yang besar. Namun, hanya ada dua modus yang dapat diparalelkan karena tidak ada dependensi terhadap blok sebelumnya, yaitu Counter (CTR) dan Electronic Code Book (ECB) [5]. ECB merupakan modus yang paling sederhana, yaitu dengan menerapkan algoritma AES pada tiap blok data. Sedangkan pada CTR, digunakan sebuah counter yang unik pada setiap blok data, sehingga apabila ada dua blok data (plaintext) yang sama, akan dihasilkan ciphertext yang berbeda.
B.      Komputasi Paralel
Komputasi paralel adalah suatu teknik untuk mengerjakan suatu perhitungan yang besar dan memerlukan waktu yang lama dengan memecah menjadi beberapa bagian dan Implementasi Komputasi Paralel Untuk Enkripsi Citra Berbasis AES Menggunakan JPPF Mohammad Zarkasi, Waskitho Wibisono, dan FX.
https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcQh76_WKJnfwztjsFQC98DRwryZEgOWQpAosT8PIHU2AZslFg766Q
Gambar.1 Proses Enkripsi Aes
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCD8G5A_gFdz56Rto0E0EMwj_0Qj4bsT-WOX4NWV_crDOqj87_YPJa1XWRUdA4xaD1iSdnzNXnd3kiUiKwsTVCMHo3gfGiBci7FuQkmFfOZ1Hd-pReE63xY18BEuGyMUpFFFFOgQjamb4/s1600/untitled.jpghttps://catatankriptografi.files.wordpress.com/2012/05/hasil4.jpg


Gambar.2 Citra Plaint text yang dienkripsi dan histogram
 mengerjakannya secara independen di prosesor yang berbeda [2]. Terdapat beberapa style pemrograman paralel, antara lain: • SPMD (Single Program, Multiple Data), yaitu data dan program didistribusikan ke tiap prosesor, eksekusi dilakukan sesuai jadwal yang telah ditentukan. Tiap prosesor mengeksekusi program yang sama tetapi data yang diproses berbeda.
• Master/slave, yaitu satu prosesor bertindak sebagai master, dan ada beberapa prosesor yang menjadi slave kepada master tersebut.
• MPMD (Multiple Program, Multiple Data), yaitu program dan data didistribusikan ke tiap-tiap prosesor, tiap prosesor mengeksekusi program yang berbeda dan data yang berbeda. Tujuan utama dari komputasi paralel adalah untuk mendapatkan speedup [2].
Speedup diperoleh dengan menghitung perbandingan antara waktu yang diperlukan untuk komputasi secara sekuensial dengan waktu yang diperlukan untuk komputasi secara paralel. Speedup dihitung menggunakan (1). = (1)
C.      JPPF
JPPF adalah adalah suatu framework yang dibangun dengan bahasa Java. JPPF memungkinkan aplikasi dengan kebutuhan komputasi yang tinggi agar dapat berjalan pada sejumlah komputer, dalam rangka untuk mengurangi waktu pemrosesan. Hal ini dilakukan dengan membagi aplikasi menjadi bagian-bagian yang lebih kecil yang dapat dieksekusi secara bersama-sama di mesin yang berbeda. Keunggulan JPPF terhadap framework lain adalah JPPF menyediakan beberapa strategi pendistribusian job untuk mengoptimalkan performa dengan menyesuaikan jumlah task yang dikirim ke setiap slave. Tiap strategi distribusi job memiliki keunggulan terhadap suatu jenis permasalahan yang akan diselesaikan secara paralel. Selain itu, JPPF memiliki fitur mekanisme untuk menangani kegagalan komunikasi. Secara otomatis JPPF client dan slave akan mencari master yang aktif apabila pada suatu saat terjadi gangguan dalam komunikasi.


III.HASIL DAN DISKUSI
A.      Pengaburan isi citra
Uji coba fungsionalitas ini menjelaskan pengaburan isi citra yang dihasilkan dari enkripsi. Citra plaintext yang digunakan sebagai masukan uji coba adalah citra Lenna dengan penggunaan RGB dominan pada area tententu. Pada citra ciphertext hasil enkripsi, penggunaan RGB cukup merata, dan juga tidak terlihat adanya dominasi warna seperti pada citra plaintext. Citra ciphertext dihasilkan oleh enkripsi dengan algoritma AES menggunakan modus ECB dan CTR. Citra plaintext ditunjukkan pada Gambar 2, citra ciphertext dengan modus CTR ditunjukkan pada Gambar 3 dan citra ciphertext dengan modus ECB ditunjukkan pada Gambar 4.
B.      Speedup
Uji coba enkripsi citra menggunakan komputasi paralel dilakukan menggunakan 8 komputer yang berperan sebagai slave. Salah satu dari 8 komputer tersebut juga berperan sebagai master sekaligus client, yaitu PC1. Spesifikasi komputer yang digunakan ditunjukkan pada Tabel 1. Pada uji coba ini digunakan beberapa citra dengan ukuran resolusi yang berbeda dan strategi distribusi manual dengan ukuran task per slave adalah satu. Daftar citra yang digunakan untuk uji coba ditunjukkan pada Tabel 2. Dari hasil uji coba, speedup yang diperoleh ditampilkan pada Tabel 3, Tabel 4 dan Gambar 5. Pada uji coba dengan membandingkan waktu komputasi paralel dengan waktu eksekusi single pada PC1, diperoleh rata-rata speedup sebesar 1,65. Sedangkan pada uji coba dengan membandingkan waktu komputasi paralel dengan waktu eksekusi single pada PC2, diperoleh rata-rata speedup sebesar 0,82.

IV. KESIMPULAN/RINGKASAN
 Dari penelitian ini, dapat diperoleh beberapa kesimpulan sebagai berikut.
1. Penggunaan warna pada citra hasil enkripsi menunjukkan pengaburan dengan persebaran RGB yang merata. Hal ini menyebabkan pola-pola pada citra menjadi sulit untuk dikenali secara langsung.
2. Implementasi komputasi paralel berhasil memberikan waktu komputasi yang lebih cepat. Speedup yang diperoleh dengan membandingkan waktu komputasi paralel terhadap waktu komputasi pada komputer dengan spesifikasi frekuensi prosesor 2,53 GHz satu core adalah rata-rata sebesar 1,65. Sedangkan speedup yang diperoleh dengan membandingkan waktu komputasi paralel terhadap waktu komputasi pada komputer dengan spesifikasi yang lebih tinggi adalah rata-rata kurang dari 1.
DAFTAR PUSTAKA
 [1] M Zeghid, M Machout, A Baganne, and R Tourki, "A Modified AES Based Algorithm for Image Encryption," International Journal of Computer Science and Engineering, pp. 70-75, 2007.
[2] Vishal Pachori, Gunjan Ansari, and Neha Chaudhary, "Improved Performance of Advance Encryption Standard using Parallel Computing," International Journal of Engineering Research and Applications (IJERA), vol. 2, no. 1, pp. 967-971, Feb. 2012.
[3] Laurent Cohen. (2013, Mei) JPPF. [Online]. http://www.jppf.org
[4] William Stallings, Cryptography and Network Security, 5th ed. New York: Prentice Hall, 2011.
[5] Morris Dworkin, Recommendation for Block Cipher Modes of Operation, 1st ed. Washington: NIST, 2001.

1 comment: