Review Jurnal: “Improved Performance of Advance Encryption Standard using Parallel Computing”
Vishal Pachori, Gunjan Ansari, Neha Chaudhary
Rumusan Masalah
AES merupakan algoritma chipper pertama kali yang dapat diakses dan dibuka untuk umum yang disetujui oleh National Security Agency (NSA) untuk kerahasiaan informasi. Implementasi AES sangat luas, seperti kartu pintar dan ponsel, server WWW dan mesin teller otomatis, dan juga perekam video digital.
Sejumlah arsitektur telah diusulkan untuk implementasi perangkat keras dari algoritma AES dengan tujuan untuk mempercepat waktu eksekusi kinerja dari AES, dan hal tersebut menjadi permasalahan dilakukannya banyak penelitian untuk mempercepat waktu eksekusi kinerja AES. Sebagian besar penelitian untuk meningkatkan kinerja AES didasarkan pada implementasi perangkat keras. Penelitian ini menyajikan implementasi AES secara parallel menggunakan JPPF (Java Parallel Programming Framework) yang memberikan peningkatan fleksibilitas & kinerja dalam hal mempercepat waktu eksekusi.
Kontribusi Penulis
Pada penelitian ini, penulis menyajikan implementasi algoritma Advance Encription Standard (AES) menggunakan komputasi parallel. Sebagian besar penelitian untuk meningkatkan kinerja AES didasarkan pada implementasi perangkat keras. Makalah ini menyajikan implementasi paralel AES menggunakan JPPF (Java Parallel Programming Framework) yang memberikan peningkatan fleksibilitas & kinerja dalam hal percepatan. Dalam implementasi ini ada dua pendekatan yaitu Data Parallel dan Control Parallel.
Metode Yang Digunakan
Metode yang digunakan pada penelitian ini yaitu dengan cara memecah atau melakukan sistem kerja secara parallel pada proses enkripsi pada AES yang dibagi menjadi 2 Node, tiap 1 ronde proses dari enkripsi AES menggunakan framework JPFF (Java Parallel Programming Framework), metode yang digunakan yiatu Data Parallel dan Control Parallel, Data Parallel dilakukan untuk memecah data yang dienkripsi, lalu Control Parallel dilakukan untuk memecah operasi yang dilakukan, berikut ilutrasi sistem kerja AES pada Data Parallel yang dimodifikasi dengan parallel computing:
Gambar 1. Alur Data Parallel |
Alur Control Parallel:
Gambar 2. Alur Control Parallel |
Operasi 1 dan Operasi 2 merupakan satu ronde enkripsi AES, dimana Operasi 1 mengerjakan SubByte dan Shiftrow sedangkan Operation 2 mengerjakan Mixcoloumn dan Addround Key. Proses tersebut merupakan 1 ronde pada AES, dalam implementasinya AES memiliki banyak ronde dan setiap ronde diterapkan secara paralel dengan metode tersebut. Berikut detail metode yang digunakan.
Gambar 3. Alur kerja Enkripsi AES dengan Parallel Computing |
Hasil dan Pembahasan
Implementasi JPFF menggunakan tiga komponen yang saling berkomunikasi sebagai berikut:
- Client melakukan entry point dan enable developers untuk melakukan pekerjan melalui API Client.
- Servers menjadi komponen yang menerima pekerjaan dari client, lalu mengirim menuju node, menerima hasil dari node dan mengirim hasil tersebut kembali kepada client.
- Node melakukan eksekusi pekerjaan.
Untuk membangun komunikasi antara node, disini digunakan framework Hazelcast dimana hanya digunakan untuk membuat struktur data terdistribusi agar node 1 dan node 2 dapat berkomunikasi dengan meletakkan nilai yang dikomputasikan.
Hasil yang diperoleh :
Spesifikasi perangkat yang digunakan: Intel Core(TM)2Duo E7300@ 2.66 Ghz 3MB L2 cache memory, 2GB
Speed Up = (waktu eksekusi dengan serial) / (waktu eksekusi dengan paralel)
Speed up untuk eksekusi 256bit data secara data paralel:
1. 15/10 = 1.5
2. 14/7 = 2.0
3. 13/6 = 2.16
4. 13/7 = 1.85
Speed up untuk eksekusi 256 data secara control paralel:
1. 15/11 = 1.36
2. 14/7 = 2.0
3. 13/6 = 2.16
4. 13/6 = 2.16
Berikut hasil dari beberapa kali eksekusi:
Gambar 4. Tabel Eksekusi Enkripsi AES dengan Data Parallel dan Control Parallel |
Kesimpulan
Future Work
==========================================================================================================================================================================================
Implementasi : “Pemrograman Parallel Sederhana pada proses Enkripsi dan Dekripsi AES menggunakan JAVA”
Pemrograman paralel adalah teknik pemrograman komputer yang
memungkinkan eksekusi perintah/operasi secara bersamaan (komputasi paralel),
baik dalam komputer dengan satu (prosesor tunggal) ataupun banyak (prosesor
ganda dengan mesin paralel) CPU. Bila komputer yang digunakan secara
bersamaan tersebut dilakukan oleh komputer-komputer terpisah yang terhubung
dalam suatu jaringan komputer lebih sering istilah yang digunakan
adalah sistem terdistribusi (distributed computing).
Tujuan utama dari pemrograman paralel adalah untuk meningkatkan
performa komputasi. Semakin banyak hal yang bisa dilakukan secara
bersamaan (dalam waktu yang sama), semakin banyak pekerjaan yang bisa
diselesaikan. Analogi yang paling gampang adalah, bila anda dapat merebus air
sambil memotong-motong bawang saat anda akan memasak, waktu yang anda butuhkan
akan lebih sedikit dibandingkan bila anda mengerjakan hal tersebut secara
berurutan (serial). Atau waktu yg anda butuhkan memotong bawang akan lebih
sedikit jika anda kerjakan berdua.
Performa dalam pemrograman paralel diukur dari berapa banyak peningkatan
kecepatan (speed up) yang diperoleh dalam menggunakan tehnik paralel.
Secara informal, bila anda memotong bawang sendirian membutuhkan waktu 1 jam
dan dengan bantuan teman, berdua anda bisa melakukannya dalam 1/2 jam maka anda
memperoleh peningkatan kecepatan sebanyak 2 kali.
Berikut merupakan contoh implementasi pemrograman parallel sederhana pada studi kasus enkripsi AES menggunakan JAVA.
Download project:
https://github.com/aidakrr/AES-PARALLEL-PROGRAMMING.git atau https://drive.google.com/file/d/1DNjFFCqZB5lVmz2I_rktFO6xR83MF_82/view?usp=sharing
Download project:
https://github.com/aidakrr/AES-PARALLEL-PROGRAMMING.git atau https://drive.google.com/file/d/1DNjFFCqZB5lVmz2I_rktFO6xR83MF_82/view?usp=sharing
Initial Condition:
Plain Text (256bits) dengan key (128 bits)
Final Condition: hasil enkripsi dari plaintext dan dekripsi
dari hasil enkripsi
Source Code:
Gambar 5. Source Code program
|
Gambar 6. Source Code Program |
Hasil eksekusi program
Gambar 7. Hasil Eksekusi Program |
Analisis dan Kesimpulan:
Setelah dilakukan 4 kali eksekusi program implementasi pemrograman
parallel pada AES dalam mengenkripsi
256bits plaintext dengan 128bits key didapat hasil sebagai berikut:
Gambar 8. Tabel hasil eksekusi |
Dengan
memanfaatkan thread pada java untuk pemrosesan enkripsi dan dekripsi AES,
program dapat dipercepat rata-rata 4,175 untuk proses enkripsi dan 7,575 untuk
proses dekripsi
Oleh:
1. Aida Kartika Alit Rahmasari (16051204016)
2. Restian Hanifia (18051204080)
3. Mokhamad Aguk Nur Anggraini (18051204081)
S-1 Teknik Informatika Universitas Negeri Surabaya
Tidak ada komentar:
Posting Komentar