Implementasi Komputasi Paralel untuk Enkripsi Citra berbasis AES menggunakan JPPF Mohammad Zarkasi 5109100155 Dosen Pembimbing: Waskitho Wibisono, S.Kom., M.Eng., Ph.D. Ir. FX. Arunanto, M.Sc 1
Latar Belakang (1) Banyak pertukaran informasi yang terjadi melalui jaringan 2
Latar Belakang (2) Citra merupakan salah satu informasi yang perlu diamankan Citra rahasia butuh perlindungan dari pihak luar, sehingga digunakan enkripsi 3
Latar Belakang (3) Jumlah transaksi yang meningkat membutuhkan proses pengamanan yang lebih cepat Proses pengamanan dapat dipercepat dengan mempergunakan resource yang tersedia secara bersamasama (paralel) 4
Tujuan Merancang dan membangun aplikasi yang dapat: Menerapkan komputasi paralel untuk mengurangi waktu pemrosesan Mengenkripsi citra agar tidak mudah dibaca oleh pihak tidak berwenang 5
Rumusan Masalah Bagaimana menerapkan algoritma AES untuk mengenkripsi citra? Bagaimana menerapkan komputasi paralel pada algoritma AES? Bagaimana cara membagi citra untuk diproses secara paralel? Bagaimana menggabungkan hasil proses dari komputasi paralel? 6
Batasan Masalah Aplikasi dibangung menggunakan bantuan JPPF Aplikasi mampu mengenkripsi citra BMP dan PNG Aplikasi menggunakan 8 komputer dengan sistem operasi Windows atau Linux Ubuntu Aplikasi dibangun di atas bahasa Java Aplikasi dapat mengenkripsi citra secara paralel dan secara single 7
Tinjauan Pustaka Java Parallel Programming Framework (JPPF) JPPF adalah sebuah framework pemrosesan paralel yang berdasarkan pada arsitektur master/slave JPPF dibangun dari 3 komponen yang saling berkomunikasi Client : melakukan submit pekerjaan ke grid Slave : mengekseskusi pekerjaan Master : menerima pekerjaan dari client dan mendistribusikannya ke slave 8 Jppf.org
Tinjauan Pustaka JPPF - fitur Kemampuan menggunakan kembali objek yang ada tanpa modifikasi Berjalan pada OS yang mendukung Java Automatic server discovery automated node reconnection with failover strategy automated client reconnection with failover strategy ability to run a node in the same JVM as the server Jppf.org 9
Tinjauan Pustaka JPPF load balancing Manual : membagi task kepada slave dalam jumlah yang tetap Nodethreads : membagi task kepada slave berdasarkan jumlah thread pemroses rl (reinforcement learning) : membagi task berdasarkan pembelajaran hasil dari interaksi dengan lingkungan 10
Tinjauan Pustaka Advanced Encryption Standard (AES) AES merupakan algoritma enkripsi yang berdasarkan pada kombinasi dan permutasi dari operasi shift dan XOR Addroundkey SubBytes ShiftRow MixColumn AES merupakan algoritma enkripsi yang menggantikan Data Encryption Standard (DES) Key yang digunakan AES = 128, 192, dan 256 bit Key yang digunakan DES = 56 bit Input AES = 128 bit Blok dalam AES disebut state 11
Tinjauan Pustaka AES 12 Vishal pachori dkk
Tinjauan Pustaka AES - Addroundkey Operasi XOR antara state dengan round key Cryptography and network security 13
Tinjauan Pustaka AES - Subbytes Operasi substitusi state dengan S-Box Cryptography and network security 14
Tinjauan Pustaka AES - Shiftrow Menggeser dan memutar byte-byte pada state Cryptography and network security 15
Tinjauan Pustaka AES - MixColumn Perkalian state dengan suatu matrix Cryptography and network security 16
Tinjauan Pustaka modus operasi AES - CTR 17
Tinjauan Pustaka modus operasi AES - ECB 18
Perancangan 19
Perancangan Diagram Alir Data Pengolahan pada Client 20
Perancangan Diagram Alir Data Pengolahan Pada Master 21
Perancangan Diagram alir data pemrosesan pada slave 22
Implementasi topologi slave Client, master, slave 23
Implementasi linkungan implementasi No Komputer Keterangan 1 PC1 Intel core 2 Duo E7200 @2.53 GHz, RAM 2 GB, Ubuntu 12.04 x86 2 PC2 Intel core 2 Duo CPU E7200 @2.53 GHz x 2, RAM 2 GB, Ubuntu 12.04 3 PC3 Intel core i3, RAM 4GB DDR3, Windows 7 Ultimate x86 4 PC4 Pentium Dual-Core CPU E5700 @3.00 GHz x 2, RAM 2 GB, Ubuntu 12.04 5 PC5 Intel Core 2 Duo E7400 @2.80 GHz, RAM 2 GB, Ubuntu 10.04 6 PC6 Intel Core 2 Duo E7400 @2.80 GHz, RAM 1 GB, Ubuntu 12.04 7 PC7 Intel Core 2 Duo E7400 @2.80 GHz, RAM 2 GB, Ubuntu 12.04 8 PC8 Intel core i3 3.30 GHz, RAM 4GB DDR3, Windows 7 Ultimate x86 24
Implementasi pemotongan citra (1) Citra dipotong sejumlah n bagian n merupakan jumlah potongan yang dimasukkan oleh user 25
Implementasi pemotongan citra (2) potongan Job Master Slave 26
Implementasi pemrosesan (1) α R G B 27
Implementasi pemrosesan (2) PNG α α α α R R R R G G G G B B B B BMP R G B R G B R G B R G B R G B R 28
Implementasi antarmuka 29
Uji coba fungsionalitas (1) Citra lenna 30
Uji coba fungsionalitas (2) Citra lenna 31
Uji coba speedup dengan strategi distribusi manual PC1 (10.151.32.155) PC2 (10.151.32.191) Citra Waktu paralel (milidetik) Jumlah slave (unit) Waktu PC1 (milidetik) Speedup 1 107 8 38 0.35 3 382 8 562 1.4 5 1041 8 2389 2.29 6 2384 8 5090 2.13 7 4209 8 10175 2.41 8 9608 8 21143 2.2 Citra Waktu paralel (milidetik) Jumlah slave (unit) Waktu PC2 (milidetik) Speedup 1 107 8 24 0.22 3 382 8 282 0.73 5 1041 8 1120 1.07 6 2384 8 2577 1.08 7 4209 8 5053 1.20 8 9608 8 10751 1.11 3 2.5 speedup 2 1.5 1 0.5 paralel vs PC1 paralel vs PC2 32 0 citra1 citra2 citra3 citra4 citra5 citra6
Uji coba speedup dengan strategi distribusi rl PC1 (10.151.32.155) PC2 (10.151.32.191) Citra Waktu paralel Jumlah Waktu PC1 Speedup (milidetik) slave (unit) (milidetik) 1 118 8 38 0.32 2 194 8 213 1.09 3 512 8 562 1.09 4 1193 4 1557 1.3 5 1337 4 2389 1.78 6 3669 8 5090 1.38 7 5801 4 10175 1.75 8 10565 2 21143 2 2.5 Citra Waktu paralel Jumlah Waktu PC2 Speedup (milidetik) slave (unit) (milidetik) 1 118 8 24 0.20 2 194 8 109 0.56 3 512 8 282 0.55 4 1193 4 726 0.60 5 1337 4 1120 0.83 6 3669 8 2577 0.70 7 5801 4 5053 0.87 8 10565 2 10751 1.01 2 speedup 1.5 1 0.5 paralel vs PC1 paralel vs PC2 33 0 citra1 citra2 citra3 citra4 citra5 citra6 citra7 citra8
Uji coba performa strategi distribusi nodethreads PC1 (10.151.32.155) Citra Waktu paralel Jumlah Waktu PC1 Speedup (milidetik) slave (unit) (milidetik) 1 429 4 38 0.08 2 215 4 213 0.99 3 567 2 562 0.99 4 1046 8 1557 1.48 5 1641 8 2389 1.45 6 2638 4 5090 1.92 7 3992 8 10175 2.54 8 10875 8 21143 1.94 PC2 (10.151.32.191) Citra Waktu paralel Jumlah Waktu PC2 Speedup (milidetik) slave (unit) (milidetik) 1 429 4 24 0.05 2 215 4 109 0.50 3 567 2 282 0.49 4 1046 8 726 0.69 5 1641 8 1120 0.68 6 2638 4 2577 0.97 7 3992 8 5053 1.26 8 10875 8 10751 0.98 speedup 3 2.5 2 1.5 1 0.5 paralel vs PC1 paralel vs PC2 34 0 citra1 citra2 citra3 citra4 citra5 citra6 citra7 citra8
Kesimpulan (1) Aplikasi yang dibangun dalam Tuga Akhir telah berhasil mengimplementasikan enkripsi citra yang berbasis AES menggunakan JPPF secara paralel serta mampu memecah citra untuk diproses secara paralel dan menggabungkannya kembali menjadi citra yang utuh dan pixel-pixel citra tersamarkan sehingga sulit dibaca. Pada percobaan enkripsi dengan strategi manual, rata-rata speedup yang diperoleh pada AES modus CTR di PC1 adalah sebesar 1.79 dan pada AES modus ECB di PC1 adalah sebesar 2.72. Sedangkan rata-rata speedup yang diperoleh pada AES modus CTR di PC2 adalah sebesar 0.9 dan pada AES modus ECB di PC2 adalah sebesar 1.16. 35
Kesimpulan (2) Pada percobaan enkripsi dengan strategi rl, rata-rata speedup yang diperoleh pada AES modus CTR di PC1 adalah sebesar 1.33 dan pada AES modus ECB di PC1 adalah sebesar 2.11. Sedangkan rata-rata speedup yang diperoleh pada AES modus CTR di PC2 adalah sebesar 0.66 dan pada AES modus ECB di PC2 adalah sebesar 0.88. Pada percobaan enkripsi dengan strategi nodethreads, rata-rata speedup yang diperoleh pada AES modus CTR di PC1 adalah sebesar 1.42 dan pada AES modus ECB di PC1 adalah sebesar 1.75. Sedangkan rata-rata speedup yang diperoleh pada AES modus CTR di PC2 adalah sebesar 0.70 dan pada AES modus ECB di PC2 adalah sebesar 0.76. 36
Saran Jenis citra yang dapat diolah dapat ditambah, misalkan untuk citra JPG dan GIF. Aplikasi tidak hanya dapat melakukan enkripsi pada citra saja, tetapi pada banyak tipe berkas. Aplikasi bisa diintegrasikan dengan program-program yang dibangun selain dari bahasa Java. 37