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
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
Oleh kelompok :
- Sylvia Rahma 16051204007
- Dyah Hediyati 16051204013
Tidak ada komentar:
Posting Komentar