Jumat, 29 Maret 2019

REVIEW JURNAL : Implementasi Komputasi Paralel Untuk Enkripsi Citra Berbasis AES Menggunakan JPPF

Ditulis oleh : Mohammad Zarkasi, Waskitho Wibisono, dan FX. Arunanto


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.

PEMBAHASAN

Artikel ini membahas tentang implementasi komputasi paralel untuk mengenkripsi berkas citra menggunakan AES dengan menggunakan JPPF.




A. Advanced Encryption Standard

Advanced Encryption Standard (AES) merupakan algoritma enkripsi yang berdasarkan pada kombinasi dan permutasi dari operasi shift dan exclusive-OR (XOR). 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. 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 seperti di bawah ini.


Enkripsi AES
AES ini merupakan algoritma block cipher dengan menggunakan sistem permutasi dan substitusi (P-Box dan S-Box) bukan dengan jaringan Feistel sebagaiman block cipher pada umumnya. Jenis AES terbagi 3, yaitu :
1. AES-128
2. AES-192
3. AES-256


Pengelompokkan jenis AES ini adalah berdasarkan panjang kunci yang digunakan. Angka-angka di belakang kata AES menggambarkan panjang kunci yang digunakan pada tipa-tiap AES. Selain itu, hal yang membedakan dari masing-masing AES ini adalah banyaknya round yang dipakai. AES-128 menggunakan 10 round, AES-192 sebanyak 12 round, dan AES-256 sebanyak 14 round. AES memiliki ukuran block yang tetap sepanjang 128 bit dan ukuran kunci sepanjang 128, 192, atau 256 bit. Tidak seperti Rijndael yang block dan kuncinya dapat berukuran kelipatan 32 bit dengan ukuran minimum 128 bit dan maksimum 256 bit. 

Berdasarkan ukuran block yang tetap, AES bekerja pada matriks berukuran 4x4 di mana tiap-tiap sel matriks terdiri atas 1 byte (8 bit). Sedangkan Rijndael sendiri dapat mempunyai ukuran matriks yang lebih dari itu dengan menambahkan kolom sebanyak yang diperlukan. Blok chiper tersebut dalam pembahasan ini akan diasumsikan sebagai sebuah kotak. Setiap plainteks akan dikonversikan terlebih dahulu ke dalam blok-blok tersebut dalam bentuk heksadesimal. 



Diagram AES 

ADD ROUND KEY
Add Round Key pada dasarnya adalah mengkombinasikan chiper teks yang sudah ada dengan chiper key yang chiper key dengan hubungan XOR.

SUB BYTES
Prinsip dari Sub Bytes adalah menukar isi matriks/tabel yang ada dengan matriks/tabel lain yang disebut dengan Rijndael S-Box. Di bawah ini adalah contoh Sub Bytes dan Rijndael S-Box.

SHIFT ROWS
Shift Rows seperti namanya adalah sebuah proses yang melakukan shift atau pergeseran pada setiap elemen blok/tabel yang dilakukan per barisnya. Yaitu baris pertama tidak dilakukan pergeseran, baris kedua dilakukan pergeseran 1 byte, baris ketiga dilakukan pergeseran 2 byte, dan baris keempat dilakukan pergeseran 3 byte. Pergeseran tersebut terlihat dalam sebuah blok adalah sebuah pergeseran tiap elemen ke kiri tergantung berapa byte tergesernya, tiap pergeseran 1 byte berarti bergeser ke kiri sebanyak satu kali. 

MIX COLUMNS
Yang terjadi saat Mix Column adalah mengalikan tiap elemen dari blok chiper dengan matriks. Pengalian dilakukan seperti perkalian matriks biasa yaitu menggunakan dot product lalu perkalian keduanya dimasukkan ke dalam sebuah blok chiper baru. 

B. JPPF (Java Parallel Processing Framework)

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.


TAHAP UJI COBA

Spesifikasi komputer yang digunakan untuk uji coba

Daftar citra yang digunakan untuk uji coba

Speedup komputasi paralel terhadap waktu eksekusi pada PC1

Speedup komputasi paralel terhadap waktu eksekusi pada PC2

Grafik perbandingan speedup komputasi paralel terhadap PC1 dan PC2

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.

Oleh kelompok :
- Sylvia Rahma 16051204007
- Dyah Hediyati 16051204013

Tidak ada komentar:

Posting Komentar