Analisis dan Implementasi I/O Paralel Pada Algoritme Enkripsi Advanced Encryption Standard (AES)

ANALISIS DAN IMPLEMENTASI I/O PARALEL
PADA ALGORITME ENKRIPSI ADVANCED
ENCRYPTION STANDARD (AES)

MUHAMMAD ZULFIKAR HANDANA

DEPARTEMEN ILMU KOMPUTER
FAKLTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2013

PERNYATAAN MENGENAI SKRIPSI DAN
SUMBER INFORMASI SERTA PELIMPAHAN HAK CIPTA
Dengan ini saya menyatakan bahwa skripsi berjudul Analisis dan
Implementasi I/O Paralel pada Algoritme Enkripsi Advanced Encryption Standard
adalah benar karya saya dengan arahan dari komisi pembimbing dan belum
diajukan dalam bentuk apa pun kepada perguruan tinggi mana pun. Sumber
informasi yang berasal atau dikutip dari karya yang diterbitkan maupun tidak
diterbitkan dari penulis lain telah disebutkan dalam teks dan dicantumkan dalam
Daftar Pustaka di bagian akhir disertasi ini.

Dengan ini saya melimpahkan hak cipta dari karya tulis saya kepada Institut
Pertanian Bogor.
Bogor, April 2013
Muhammad Zulfikar Handana
NIM G64070121

ABSTRAK
MUHAMMAD ZULFIKAR HANDANA. Analisis dan Implementasi I/O Paralel
pada Algoritme Enkripsi Advanced Encryption Standard (AES) . Dibimbing oleh
HENDRA RAHMAWAN
AES (Advanced Encryption Standard) memiliki proses enkripsi yang
kompleksitasnya pada lingkup O(n). Pada penelitian sebelumnya telah dilakukan
komputasi paralel pada AES untuk mengurangi waktu eksekusi algoritme
tersebut, namun algoritme tersebut tidak cost-optimal karena memiliki rata-rata
nilai efisiensi dibawah 0.7. Pada penelitian kali ini, dilakukan komputasi paralel
pada proses I/O untuk meningkatkan speedup dan efisiensidibandingkan dengan
algoritme AES paralel yang menggunakan I/O sekuensial. Pada penelitian kali ini
menggunakan dua komputer dengan spesifikasi, Intel Dual Core (2 CPU) @ 2.3
GHz, AMD 16-3400M APU @ 1.4 GHz (4 CPU). Masing-masing komputer
memiliki memory 2 GB. Efisiensi terbesar pada algoritme AES paralel yang

menggunakan I/O paralel adalah 0.95, nilai tersebut terjadi pada saat
membangkitkan tiga proses dengan menggunakan dua komputer. Nilai efisiensi
terbesar algoritme AES paralel yang menggunakan I/O sekuensial sebesar 0.8,
nilai tersebut terjadi pada saat membangkitan dua proses dengan menggunakan
dua komputer.
Kata kunci: AES, I/O paralel, MPI I/O, MPI2

ABSTRACT
MUHAMMAD ZULFIKAR HANDANA. Analysis and Implementation Parallel
I/O at Encryption Advanced Encryption Standard (AES) Algorithm. Supervised
by HENDRA RAHMAWAN
Complexity of AES encryption process is O(n). In previous research,
parallel computation has been conducted on AES to decrease execution time,
however it was not cost-optimal because the average efficiency value was below
0.7. In this research, parallel I/O computing was conducted in order to improve
the speedup and the efficiency compared with AES algorithm that using
sequential I/O. In this research, two computers are used with the specification:
Intel Dual Core (2 CPUs) @ 2.3 GHz, AMD 16-3400M APU @ 1.4 GHz (4
CPUs), each computer has 2 GB of memory. The highest efficiency is achieved by
using parallel I/O is 0.95, that occured when three processes are generated using

two computers, The highest efficiency is achieved by using sequential I/O is 0.8,
that occured when two processes are generated using two computers.
Keywords: AES, MPI I/O, MPI2, Parallel I/O

ANALISIS DAN IMPLEMENTASI I/O PARALEL
PADA ALGORITME ENKRIPSI ADVANCED
ENCRYPTION STANDARD (AES)

MUHAMMAD ZULFIKAR HANDANA

Skripsi
sebagai salah satu syarat untuk memperoleh gelar
Sarjana Komputer
pada
Departemen Ilmu Komputer

DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR

2013

Judul Skripsi : Analisis dan Implementasi I/O Paralel Pada Algoritme Enkripsi
Advanced Encryption Standard (AES)
Nama
: Muhammad Zulfikar Handana
NIM
: G64070121

Disetujui oleh

Hendra Rahmawan, SKom, MT
Pembimbing

Diketahui oleh

Dr Ir Agus Buono, MSi, MKom
Ketua Departemen

Tanggal Lulus:


PRAKATA
Puji dan syukur penulis panjatkan ke hadirat Allah subhanahu wa-ta’ala
yang telah memberikan rahmat dan hidayah-Nya sehingga penulis dapat
menyelesaikan tugas akhir ini. Shalawat serta salam pada junjungan kita Nabi
besar Muhammad shallallahu ‘alaihi wa sallam beserta keluarga dan sahabatnya.
Penulis mengucapkan terima kasih kepada semua pihak yang telah
membantu dalam penyelasaian tugas akhir ini, yaitu:
1.
Kedua orang tua tercinta (Eka Yudha Prya, SE dan Latifah, SSos) yang
telah memberikan dukungan, bantuan, perhatian, dan doa sehingga penulis
dapat menyelesaik studi di Departemen Ilmu Komputer IPB
2.
Bapak Hendra Rahmawan, SKom, MT selaku dosen pembimbing
3.
Bapak Endang Purnama Giri, SKom, MKom dan Bapak DrEng Heru
Sukoco, SSi, MT selaku dosen penguji
4.
Seluruh dosen pengajar dan civitas akademika Departemen Ilmu Komputer
FMIPA IPB

5.
Keluarga besar Ilkomerz 44
6.
Semua pihak yang telah membantu pelaksanaan tugas akhir ini baik secara
langsung maupun tidak langsung yang belum disebutkan diatas
Penulis menyadari dalam tugas akhir ini masi banyak kekurangan. Oleh
karena itu, penulis mengharapkan kritik dan saran yang membangun. Semoga
penelitian ini dapat bermanfaat bagi semua pihak yang membutuhkan. Aamiin.

Bogor, April 2013
Muhammad Zulfikar Handana

DAFTAR ISI
DAFTAR GAMBAR

x

DAFTAR LAMPIRAN

xi


PENDAHULUAN

1

Latar Belakang

1

Perumusan Masalah

1

Tujuan Penelitian

2

Manfaat Penelitian

2


Ruang Lingkup Penelitian

2

TINJAUAN PUSTAKA

2

Algoritme AES

2

Pemrograman Paralel

5

MPI (Message Passing Interface)

5


I/O Sekuensial

5

I/O paralel

6

Fungsi-fungsi I/O paralel

6

Metode Foster

8

Domain Decomposition

9


Functional Decomposition

9

Performance Metric

9

METODE

10

Analisis Struktur I/O

10

Implementasi

13


Perancangan percobaan

14

Percobaan

16

HASIL DAN PEMBAHASAN
Hasil
SIMPULAN DAN SARAN

16
16
25

Simpulan

25

Saran

26

DAFTAR PUSTAKA

26

LAMPIRAN

27

RIWAYAT HIDUP

37

DAFTAR GAMBAR
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

Proses umum algoritme AES
(http://www.iis.ee.ethz.ch/~kgf/acacia/c3.html)
S-Box (http://developer.amd.com/resources/documentationarticles/articles-whitepapers/bulk-encryption-on-gpus/)
Ilustrasi proses SubBytes
(http://en.wikipedia.org/wiki/Advanced_Encryption_Standard)
Ilustrasi proses ShiftRows (Surian 2006)
Matriks polimat
(http://en.wikipedia.org/wiki/Rijndael_mix_columns)
Ilustrasi proses AddRoundKey (Surian 2006)
Proses I/O sekuensial pada algoritme paralel (Gropp et al. 1999)
Proses I/O paralel untuk sebuah file (Gropp et al. 1999)
Ilustrasi metode Foster
(http://tirtasucahya.blogspot.com/2010/12/metode-foster.html)
Metode penelitian
Ilustrasi partisi algoritme AES domain decomposition (Zulfikar
2012)
Ilustrasi komunikasi algoritme AES domain decomposition (Zulfikar
2012)
Ilustrasi aglomerasi algoritme AES domain decomposition
(Zulfikar 2012)
Algoritme enkripsi AES secara paralel domain decomposition
menggunakan I/O sekuensial (Zulfikar 2012)
Algoritme enkripsi AES secara paralel domain decomposition
menggunakan I/O paralel
Hasil nilai checksums enkripsi AES sekuensial dengan AES secara
paralel yang menggunakan I/O sekuensial
Hasil nilai checksums enkripsi AES sekuensial dengan AES secara
paralel yang menggunakan I/O paralel
Hasil nilai checksums dekripsi AES
sekuensial dengan file awal
Hasil nilai checksums dekripsi AES secara paralel dengan
menggunakan I/O sekuensial dengan file awal
Hasil nilai checksums dekripsi AES secara paralel dengan
menggunakan I/O paralel dengan file awal
Waktu eksekusi enkripsi AES secara sekuensial.
Perbandingan waktu eksekusi enkripsi AES secara paralel, I/O
sekuensial dengan I/O paralel ukuran file kecil satu komputer
Perbandingan waktu eksekusi enkripsi AES secara paralel, I/O
sekuensial dengan I/O paralel ukuran file besar satu komputer
Perbandingan waktu eksekusi enkripsi AES secara paralel, I/O
sekuensial dengan I/O paralel ukuran file kecil dua komputer
Perbandingan waktu eksekusi enkripsi AES secara paralel, I/O
sekuensial dengan I/O paralel ukuran file kecil dua komputer
Perbandingan speedup enkripsi AES secara paralel, I/O sekuensial
dan I/O paralel pada satu komputer

3
3
4
4
4
5
6
6
8
10
11
11
11
12
15
17
17
18
18
19
19
20
20
21
21
22

27 Perbandingan speedup enkripsi AES secara paralel, I/O sekuensial
dan I/O paralel pada dua komputer
28 Perbandingan efisiensi enkripsi AES secara paralel, I/O sekuensial
dan I/O paralel pada satu komputer
29 Perbandingan efisiensi enkripsi AES secara paralel, I/O sekuensial
dan I/O paralel pada dua komputer
30 Perbandingan waktu proses input dan output I/O sekuensial vs I/O
paralel

22
23
24
25

DAFTAR LAMPIRAN
1
2
3
4
5
6
7
8
9

Pengaturan dan instalasi MPICH2
Waktu eksekusi AES secara paralel menggunakan I/O sekuensial
(file kecil pohon.jpg (4.5 MB) pada satu komputer)
Waktu eksekusi AES paralel menggunakan I/O sekuensial (file
Waktu eksekusi AES paralel menggunakan I/O paralel (file kecil
pohon.jpg (4.5 MB) pada satu komputer)
Waktu eksekusi AES paralel menggunakan I/O paralel (file besar
video.mp4 (115 MB) pada satu komputer)
Waktu eksekusi AES paralel menggunakan I/O sekuensial (file kecil
pohon.jpg ( 4.5 MB) pada dua komputer)
Waktu eksekusi AES paralel menggunakan I/O sekuensial (file besar
video.mp4 (115 MB) pada dua komputer)
Waktu eksekusi AES paralel menggunakan I/O paralel (file kecil
pohon.jpg (115 MB) pada dua komputer)
Waktu eksekusi AES paralel menggunakan I/O paralel (file besar
video.mp4 (115 MB) pada dua komputer)

27
29
30
31
32
33
34
35
36

PENDAHULUAN
AES (Advanced Encryption Standard) memiliki proses enkripsi dan dekripsi
yang diketahui memiliki ruang lingkup O(n) (Giri 2004). Pada penelitian yang
dilakukan Zulfikar (2012), telah dilakukan komputasi paralel untuk mengurangi
waktu eksekusi algoritme AES tersebut. Pada penelitian tersebut telah mampu
mengurangi waktu eksekusi enkripsi dengan menggunakan algoritme paralel,
namun algoritme paralel tersebut tidak cost-optimal karena nilai efisiensinya ratarata kurang dari 0.7.
Pada penelitian yang dilakukan oleh Zulfikar (2012), proses input dan
output masih menggunakan proses sekuensial, sehingga pada percobaan kali ini
akan dicoba meningkatkan speedup dan efisiensi menggunakan proses input dan
output secara paralel.
Tujuan dari penilitian ini adalah, meningkatkan kinerja dari implementasi
AES secara paralel dengan menggunakan I/O paralel. Kinerja yang diukur
berdasarkan performance metrics.
Latar Belakang
AES (Advanced Encryption Standard) memiliki proses enkripsi dan dekripsi
yang diketahui memiliki kompleksitas pada lingkup O(n) (Giri 2004). Proses
enkripsi AES tergolong cukup cepat secara kompleksitas, namun waktu
eksekusinya akan meningkat seiring dengan besarnya data yang digunakan. Pada
penelitian yang dilakukan oleh Zulfikar (2012), telah dilakukan komputasi paralel
untuk mengurangi waktu eksekusi enkripsi dan dekripsi algoritme AES.
Pada penelitian tersebut telah mampu mengurangi waktu eksekusi enkripsi
dengan menggunakan algoritme paralel, namun demikian algoritme paralel
tersebut tidak cost-optimal karena nilai efisiensinya kurang dari 0.7. Algoritme
AES tersebut melakukan enkripsi pada sebuah file, hal tersebut merupakan proses
pada input dan output. Pada penelitian yang dilakukan oleh Zulfikar (2012),
proses input dan output masih menggunakan proses sekuensial, sehingga pada
penelitian kali ini akan dicoba untuk meningkatkan speedup dan efisiensi
menggunakan proses input dan output secara paralel.
Perumusan Masalah
1.
2.

Perumusan masalah pada penelitian ini adalah:
Dengan menggunakan algoritme I/O paralel, apakah dapat mengurangi
waktu eksekusi dari proses enkripsi.
Seberapa besar perbedaan speedup dan efisiensi antara algoritme AES
secara paralel menggunakan I/O sekuensial dan algoritme AES secara
paralel menggunakan I/O paralel.

2
Tujuan Penelitian
Tujuan dari penelitian ini adalah meningkatkan kinerja dari implementasi
AES secara paralel dengan menggunakan I/O paralel. Kinerja yang diukur
berdasarkan performance metrics.
Manfaat Penelitian
Manfaat yang dapat diperoleh dari penelitian ini adalah kinerja dari
algoritme AES secara paralel dapat ditingkatkan dengan menggunakan I/O paralel.
Ruang Lingkup Penelitian
1
2

3
4
5

Ruang lingkup dalam penelitian ini adalah:
Implementasi MPI (Message Passing Interface) yang digunakan adalah
library MPICH2 pada bahasa pemrograman C.
Komputer yang digunakan memiliki spesifikasi :
 Prosesor Intel Dual Core @ 2.3 GHz (2 CPU), 2 GB memory.
 Prosesor AMD 16-3400M APU @ 1.4 GHz (4 CPU), 2 GB memory
Input yang digunakan terdiri atas dua jenis, masing-masing sebesar 4.5 MB
dan 115 MB
Algoritme AES secara paralel yang digunakan berbasiskan domain
decomposition.
Analisis performance metrics dibatasi pada waktu eksekusi, speedup, dan
efisiensi.

TINJAUAN PUSTAKA
Algoritme AES
AES merupakan algoritme kriptografi yang didesain untuk beroperasi pada
blok pesan 128 bit dan menggunakan tiga variasi blok kunci dengan panjang 128
bit, 192 bit, atau 256 bit (Stallings 2003). Khusus untuk penelitian ini, pengkajian
akan dibatasi pada blok pesan 128 bit dengan ukuran blok kunci 128 bit. Adapun
proses umum Algoritme AES diilustrasikan pada Gambar 1.

3

Gambar 1 Proses umum algoritme AES
(http://www.iis.ee.ethz.ch/~kgf/acacia/c3.html)
a SubBytes
Proses SubBytes adalah proses yang melakukan substitusi non linear,
dengan cara mengganti setiap byte state dengan byte pada sebuah tabel yang
dinamakan tabel S-Box. Sebuah tabel S-Box terdiri dari 16 × 16 baris dan kolom
dengan masing-masing berukuran 1 byte (Surian 2006). Tabel S-Box disajikan
oleh Gambar 2, dan proses SubBytes diilustrasikan oleh Gambar 3.

Gambar 2 S-Box
(http://developer.amd.com/resources/document
ation-articles/articles-whitepapers/bulkencryption-on-gpus/)

4

Gambar 3 Ilustrasi proses SubBytes
(http://en.wikipedia.org/wiki/Advanced_Encry
ption_Standard)
b ShiftRows
Proses ShiftRows beroperasi pada tiap baris dari tabel state. Proses ini akan
bekerja dengan cara memutar byte pada tiga baris terakhir (baris satu, dua, dan
tiga) dengan jumlah perputaran yang berbeda-beda. Baris 1 akan diputar sebanyak
satu kali, baris 2 akan diputar sebanyak dua kali, dan baris 3 akan diputar
sebanyak tiga kali. Sedangkan baris 0 tidak akan diputar (Surian 2006).

Gambar 4 Ilustrasi proses ShiftRows (Surian 2006)
c MixColumns
Proses MixColumns beroperasi pada tiap kolom dari tabel state. Operasi ini
menggabungkan 4 bytes dari setiap kolom tabel state dan menggunakan
transformasi linier. Proses MixColumns mengalikan matriks polimat dengan
matrik state (Surian 2006).

Gambar 5 Matriks polimat
(http://en.wikipedia.org/wiki/Rijndael_mix_co
lumns)
d AddRoundKey
Forward add round key atau AddRoundKey merupakan proses XOR
sederhana antara matriks state 4×4 dengan matriks 4x4 yang merupakan key dari
round bersesuaian hasil ekspansi kunci (Giri 2004). Ilustrasi dari proses
AddRoundKey dapat dilihat pada Gambar 6.

5

Gambar 6 Ilustrasi proses AddRoundKey (Surian 2006)
Pemrograman Paralel
Pemrograman paralel adalah pemrograman yang memungkinkan secara
eksplisit menunjukkan bagaimana bagian yang berbeda dari komputasi sehingga
dapat dieksekusi secara bersamaan oleh prosesor yang berbeda (Quinn 2004).
Algoritme paralel adalah sebuah algoritme yang dapat memecahkan suatu
masalah menggunakan beberapa prosesor secara bersamaan. Algoritme ini
mencakup identifikasi bagian dari pekerjaan bersama dalam proses yang berjalan
secara paralel, pengaturan akses data yang dibagi ke beberapa prosesor,
pendistribusian input, output, dan data yang terkait dengan program serta
koordinasi proses diberbagai tahapan pelaksanaan program paralel (Grama et al.
2003).
MPI (Message Passing Interface)
MPI adalah sebuah library standar pengenalan dasar pemrograman sistem
paralel (Quinn 2004). MPI dapat digunakan dengan berbagai bahasa
pemrograman seperti bahasa C, C++, dan Fortran. Operasi utama yang dilakukan
oleh standar MPI yaitu:
a. Point-to-point Communication
MPI point-to-point communication adalah komunikasi antar dua proses.
Satu proses bertugas mengirim data atau operasi dan proses lainnya bertugas
menerima data atau operasi tersebut.
b. Collective Communication
MPI collective communication adalah komunikasi yang melibatkan
sekumpulan proses yang dipanggil oleh semua proses dalam communicator.
I/O Sekuensial
Proses sekuensial adalah proses I/O yang hanya dikerjakan oleh satu proses
(Gropp et al. 1999). Semua prosesor akan mengirimkan data ke prosesor 0, dan
prosesor 0 akan menulis data tersebut ke sebuah file. Proses tersebut diilustrasikan
pada Gambar 7.

6

Gambar 7 Proses I/O sekuensial pada algoritme paralel
(Gropp et al. 1999)
I/O paralel
I/O paralel bagian dari MPI-2 yang biasa dikenal dengan sebutan MPI I/O
dibuat sebagai upaya IBM untuk mengeksplorasi analogi antara input / output dan
pengiriman pesan. Setelah itu, menulis ke sebuah file dapat dianalogikan seperti
mengirim pesan kepada sistem file dan membaca file seperti menerima pesan dari
sistem (Gropp et al. 1999).
Secara umum, I/O pada MPI-2 dapat dianggap sebagai proses I/O pada
umumnya, namun memiliki beberapa fungsi tambahan. Tujuan I/O paralel adalah
untuk mencapai kinerja yang jauh lebih tinggi sehingga daripada proses I/O
sequential sehingga diharapkan dapat mengurangi waktu eksekusi sebuah
program tersebut. Proses pada I/O paralel diilustrasikan pada Gambar 8.

Gambar 8 Proses I/O paralel untuk sebuah file (Gropp et
al. 1999)
Fungsi-fungsi I/O paralel
I/O paralel memiliki beberapa fungsi untuk memproses sebuah file, baik file
tersebut sebagai input maupun sebagai output. Beberapa fungsi yang digunakan
untuk membaca maupun menulis pada sebuah file:
a. MPI_File_open
MPI_File_open adalah sebuah fungsi untuk membuka file. Pada bahasa C,
fungsi tersebut dapat ditulis sebagai berikut:
int MPI_File_open (MPI_Comm comm, char *filename, int amode,
MPI_Info info, MPI_File *fh) (Gropp et al. 1999).

7
Argumen pertama pada fungsi tersebut yaitu komunikasi. Argumen kedua
diisi oleh file yang akan dibaca atau ditulis. Argumen ketiga adalah sebuah mode
yang akan kita lakukan terhadap sebuah file. Contoh dari isi argumen tersebut
adalah MPI_MODE_RDONLY untuk membaca saja, MPI_MODE_WRONLY
untuk menulis saja
MPI_MODE_RDWR untuk membaca dan menulis
MPI_MODE_CREATE untuk membuat sebuah file jika file tersebut belum ada.
Argumen keempat adalah info dari sebuah objek, argumen kelima adalah file
tujuan yang akan dieksekusi (file handler).
b. MPI_File_write
MPI_File_write adalah sebuah fungsi untuk menulis pada sebuah file. Pada
bahasa C, fungsi tersebut dapat ditulis sebagai berikut:
int MPI_File_write (MPI_File fh, void *buf, int count,
MPI_Datatype datatype, MPI_status *status) (Gropp et al. 1999).

Argumen pertama pada fungsi tersebut yaitu file yang akan ditulis (file
handler). Argumen kedua yaitu berisi inisial alamat pada penyangga (buffer).
Argumen ketiga yaitu jumlah elemen pada penyanggan (buffer). Argumen
keempat yaitu berisi tipe data yang akan ditulis ke dalam file tersebut. Argumen
kelima yaitu berisi status pada objek.
c. MPI_File_read
MPI_File_read adalah sebuah fungsi untuk membaca sebuah file. Pada
bahasa C, fungsi tersebut dapat ditulis sebagai berikut :
int MPI_File_read
MPI_Datatype datatype,

(MPI_File fh, void
MPI_status *status)

*buf,

int

count,

(Gropp et al. 1999).
Argumen yang digunakan pada fungsi tersebut sama persis dengan fungsi
MPI_File_write.

d. MPI_File_set_view
MPI_File_set_view adalah sebuah fungsi yang memberikan sebuah proses
untuk mengakses bagian file tertentu. Pada bahasa C, fungsi tersebut dapat ditulis
sebagai berikut :
int
MPI_File_set_view(MPI_File
fh,
MPI_Offset
disp,
MPI_Datatype etype, MPI_Datatype filetype, char *datarep, MPI_Info
info).

Argumen pertama sebagai identifikasi file. Argumen kedua adalah
perpindahan (bytes) dalam sebuah file. Argumen selanjutnya biasa disebut etype,
spesifik data pada sebuah file yang akan dibaca atau ditulis. Argument keempat
tipe file yang akan ditulis atau dibaca, argumen ketiga dan argumen keempat dapat
berupa tipe data yang diturunkan oleh MPI. Argumen kelima yaitu karakter string
yang menunjukkan representasi dari data yang akan digunakan dalam file. Nilai
string yang merepresentasikan data ada tiga yaitu “native”, “internal32”, dan
“external32”. “native” merupakan representasi data yang digunakan agar file yang
dibaca sama seperti pada memori. “internal32” dan “external32” merupakan
representasi data agar file memiliki beberapa derajat portabilitas. Argumen yang
keenam adalah info objek seperti pada fungsi MPI_File_open.

8
Metode Foster
Ian Foster mengemukakan empat langkah metode desain sistem paralel
yang dimulai dari pembagian data ke dalam beberapa bagian, menentukan
komunikasi antar bagian, mengelompokkan bagian yang memiliki komunikasi
intensif dengan bagian lain, dan memetakan kelompok tersebut ke sejumlah
prosesor yang ada. Empat tahapan desain tersebut adalah partisi, komunikasi,
aglomerasi, dan pemetaan (Quinn 2004). Ilustrasi metode Foster dapat dilihat
pada Gambar 9.

Gambar 9 Ilustrasi metode Foster
(http://tirtasucahya.blogspot.com/2010/12/met
ode-foster.html)

a

Partisi
Partisi adalah suatu proses pembagian komputasi dan data ke dalam
beberapa bagian. Ada dua cara untuk melakukan partisi, yaitu domain
decomposition dan functional decomposition. Domain decomposition adalah
pendekatan model algoritme paralel yang melakukan pembagian data menjadi
beberapa bagian terlebih dahulu, kemudian menentukan bagaimana
mengasosiasikan komputasi dengan data tersebut, sedangkan functional
decomposition melakukan pembagian komputasi terlebih dahulu lalu menentukan
bagaimana menghubungkan data dengan komputasi-komputasi tersebut (Quinn
2004).
b Komunikasi
Skema komunikasi antar bagian hasil partisi dibuat setelah melakukan
partisi. Ada dua jenis komunikasi yang digunakan yaitu local communication dan
global communication. Local communication adalah membuat saluran antar task
ketika ada task yang membutuhkan nilai dari task lainnya. Global communication
terjadi ketika ada primitive task dengan jumlah yang signifikan menyumbangkan
data untuk menunjukkan proses komputasi (Quinn 2004).
c

Aglomerasi
Aglomerasi adalah proses pengelompokkan task ke dalam task yang lebih
besar guna meningkatkan kinerja program maupun menyederhanakan program
(Quinn 2004).

9

d Pemetaan
Pemetaan adalah proses penugasan task ke prosesor. Tujuan dari pemetaan
adalah memaksimalkan kemampuan prosesor dan meminimalkan komunikasi
antar prosesor (Quinn 2004).
Domain Decomposition
Salah satu jenis teknik pemrosesan secara paralel, yang membagikan data ke
setiap proses. Setiap proses melakukan eksekusi dengan tugas yang sama dengan
proses lainnya (Quinn 2004).
Functional Decomposition
Salah satu jenis teknik pemrosesan secara paralel, yang membagikan tugas
yang berbeda ke setiap proses (Quinn 2004).
Performance Metric
Performance metrics adalah salah satu cara untuk menganalisis kinerja
algoritme paralel (Grama et al. 2003). Beberapa persamaan performance metric
yaitu:
a. Waktu Eksekusi
Waktu eksekusi adalah waktu yang dihitung dari awal sampai akhir
eksekusi. Waktu eksekusi sekuensial dilambangkan dengan Ts. Waktu eksekusi
paralel dilambangkan dengan Tp (Grama et al. 2003).
b. Speedup
Speedup (S) adalah rasio dari waktu yang digunakan untuk menyelesaikan
masalah dalam program sekuensial (Ts) terhadap waktu yang diperlukan untuk
menyelesaikan masalah yang sama dengan program paralel (Tp) (Grama et al.
2003). Speedup dirumuskan pada Persamaaan 1.
S=

s

(1)

p

c. Efisiensi
Efisiensi (E) adalah rasio antara speedup dengan banyaknya prosesor yang
digunakan (p) (Grama et al. 2003). Efisiensi dirumuskan pada Persamaan 2.
E=

s
p

(2)

10

METODE
Penelitian ini akan dikerjakan dalam beberapa tahap yang dapat dilihat pada
Gambar 10.

Gambar 10 Metode penelitian
Analisis Struktur I/O
Analisis yang dilakukan pada tahap ini adalah melihat dan menentukan
bagian mana saja yang menjadi tahapan proses I/O dari program AES secara
paralel yang menggunakan I/O sekuensial.
Pada penelitian yang dilakukan oleh Zulfikar (2012) diterapkan metode
Foster untuk mendesain algoritme AES secara paralel. Tahapan dari metode
Foster yaitu:
1

Partisi
Jenis partisi yang dilakukan pada algoritme ini adalah domain
decomposition. File plaintext akan dipecah menjadi blok-blok data berukuran 16
byte. Setiap blok data akan ditangani oleh satu proses, sehingga untuk n blok data

11
akan membutuhkan n proses (Zulfikar 2012). Ilustrasi partisi algoritme AES
secara paralel domain decomposition ditunjukkan pada Gambar 11.

Gambar 11 Ilustrasi partisi algoritme AES domain
decomposition (Zulfikar 2012)
2

Komunikasi
Proses master (root) akan mengirim blok-blok data kepada setiap proses
untuk dienkripsi dengan menggunakan komunikasi kolektif (scatter). Hasil
enkripsi tiap proses akan dikumpulkan kembali ke root juga dengan menggunakan
koleksi komunikatif (gather), n blok data akan membutuhkan 2 kali komunikasi
dan n buah proses (Zulfikar 2012). Ilustrasi komunikasi algoritme AES secara
paralel domain decomposition ditunjukkan pada Gambar 12.

Gambar 12 Ilustrasi komunikasi algoritme AES domain
decomposition (Zulfikar 2012)
3

Aglomerasi
Aglomerasi dilakukan untuk mengurangi komunikasi dan kebutuhan proses
agar menjadi lebih efisien. Tiap proses (p) akan menangani n/p blok data.
Komunikasi kolektif digunakan untuk meminimalkan komunikasi sehingga hanya
membutuhkan sekali scatter untuk pendistribusian data dan sekali gather untuk
pengumpulan data (Zulfikar 2012). Ilustrasi aglomerasi algoritme AES secara
paralel domain decomposition ditunjukkan pada Gambar 13.

Gambar 13 Ilustrasi aglomerasi algoritme AES domain
decomposition (Zulfikar 2012)

12

4 Pemetaan
Setiap proses akan mengerjakan tugas yang sama namun dengan data
masukan yang berbeda-beda. Jika n mod p ≠ 0, jumlah blok data yang dikerjakan
oleh tiap proses ada yang sebesar dan ada juga yang sebesar
. Jika s = n mod
p,
blok data akan dipetakan ke s proses pertama sedangkan sisa proses
lainnya akan dipetakan
. blok data (Zulfikar 2012).
Adapun algoritme AES secara paralel yang digunakan pada penelitian kali
ini diilustrasikan pada Gambar 14.

Gambar 14 Algoritme enkripsi AES secara paralel domain
decomposition menggunakan I/O sekuensial
(Zulfikar 2012)

13

Implementasi
Implementasi I/O paralel pada penelitian ini menggunakan bahasa C, dan
library MPICH2 yang digunakan untuk memakai fungsi paralel pada I/O.
Panduan lengkap pemasangan MPICH2 dapat dilihat pada Lampiran 1. Pada
tahap implementasi ini menggunakan source code dari penelitian yang dilakukan
oleh Zulfikar (2012), perubahan-perubahan yang terjadi pada bentuk struktur I/O
meliputi:
a. Deklarasi file
MPICH2 membuat struktur tersendiri untuk mendeklarasikan variabel
sebuah file yang akan digunakan untuk membuat sebuah program menggunakan
MPI I/O. Jika pada library standar bahasa C menggunakan char File *fh, maka
untuk menggunakan library MPI I/O deklarasi file menjadi char MPI_File fh.
b. Membuka file
Struktur pada tahap pembukaan file juga mengalami perubahan. Jika pada
library standar bahasa C kode yang digunakan FILE *fopen(const char
*filename, const char *mode), maka kode yang digunakan pada library
MPICH2 int MPI_File_open (MPI_Comm comm, char *filename, int
amode, MPI_Info info,MPI_File *fh).
c. Membaca file
Struktur pada tahap membaca file juga mengalami perubahan. Jika pada
library standar bahasa C kode yang digunakan size_t fread(void *ptr,
size_t size of elements, size_t number of element, FILE *a_file),
maka kode yang digunakan pada library MPICH2 int MPI_File_read
(MPI_File fh, void
MPI_status *status).

*buf,

int

count,

MPI_Datatype

datatype,

d. Menulis file
Struktur pada tahap membaca file juga mengalami perubahan. Jika pada
library standar bahasa C kode yang digunakan int fputc( int c, FILE *fp
), maka kode yang digunakan pada library MPICH2 int MPI_File_write
(MPI_File fh, void
MPI_status *status).

*buf,

int

count,

MPI_Datatype

datatype,

e. Mempartisi file
Tahap partisi file untuk menentukan pembagian beban kerja sebuah proses.
Tahap partisi ini fungsi yang digunakan int MPI_File_set_view(MPI_File
fh, MPI_Offset disp, MPI_Datatype etype, MPI_Datatype filetype,
char *datarep, MPI_Info info). Jika sebuah file dipartisi hingga n kali, maka

dibutuhkan proses sebanyak p(n-1). Ilustrasi tersebut dapat dilihat pada Gambar 8.
Pada saat membuka file, semua proses berpartisipasi dalam pembukaan file
tersebut. Pada penelitian yang dilakukan oleh Zulfikar (2012) terdapat tiga kali

14
pembukaan file, yaitu pada saat membuka file kunci, membuka file yang akan
dienkripsi, dan pada saat membuka file hasil enkripsi.
Setelah melakukan pembukaan pada file, dilakukan partisi terhadap file yang
akan dienkripsi dan file hasil enkripsi. Partisi file dilakukan dengan mengambil
ukuran data yang dibagi dengan jumlah proses yang dibangkitkan. Proses partisi
file memiliki parameter string representasi data, pada penelitian kali ini digunakan
string “native” agar pembacaan file sama seperti yang terdapat pada memori.
Setelah melakukan partisi terhadap file barulah dilakukan proses pembacaan
atau penulisan file. Setiap proses akan membaca atau menulis sebuah file dengan
mengacu pada proses partisi file, sehingga setiap proses hanya akan membaca atau
menulis file pada bagian yang telah ditentukan pada saat melakukan tahap partisi
file. Perbedaan dari algoritme AES secara paralel yang menggunakan I/O paralel
dan algoritme AES secara paralel yang menggunakan I/O sekuensial terletak pada
proses pembacaan input dan penulisan output. Jika pada algoritme AES secara
paralel yang menggunakan I/O sekuensial hanya root yang melakukan proses I/O
pada algoritme AES yang menggunakan I/O paralel semua proses terlibat pada
proses I/O tersebut. Desain lengkap algoritme AES secara paralel yang
menggunakan I/O paralel dapat dilihat pada Gambar 15.
Perancangan percobaan
Pada tahap ini dilakukan perancangan sehingga mendapatkan beberapa
parameter yang akan digunakan. Parameter-parameter yang digunakan dalam
percobaan ini adalah:
1 Jenis algoritme
Percobaan kali ini akan diuji tiga buah algoritme yaitu algoritme AES
sekuensial, algoritme AES secara paralel dengan menggunakan I/O sekuensial,
dan algoritme AES secara paralel dengan menggunakan I/O paralel. Tiap
algoritme dihitung waktu proses enkripsi.
2 Proses dan prosesor
Jumlah komputer yang digunakan pada penelitian ini berbeda-beda, baik
pada algoritme AES secara paralel dengan I/O sekuensial maupun algoritme AES
secara paralel dengan I/O paralel dibangkitkan dua, tiga, dan empat proses yang
masing-masing menggunakan satu komputer dan dua komputer.
3 Ukuran file
Ukuran file yang digunakan ada dua kategori yaitu kecil, dan besar. Detil
ukuran file disaikan pada Tabel 1.
Tabel 1 Nama file beserta ukurannya
Nama file
Kategori
Ukuran
Pohon.jpg
Kecil
4.5 MB
Video.mp4
Besar
115 MB

15

Gambar 15 Algoritme enkripsi AES secara paralel
domain decomposition menggunakan I/O paralel

16
4

Ulangan
Untuk ulangan yang dilakukan oleh dua komputer dilakukan eksekusi
sebanyak lima kali, sedangkan ulangan yang dilakukan oleh satu komputer
dilakukan eksekusi sebanyak sepuluh kali.
5 Performance metrics
Performance metrics yang dianalisis adalah waktu eksekusi, speedup, dan
efisiensi
6 Lingkungan penelitian
a
dua komputer, komputer pertama dual core dan komputer kedua
quad core
b
satu kabel UTP standar
c
sistem operasi Windows 7 dan program MPICH2-1.4.1pl 32 bit.
Percobaan
Percobaan ini dibagi ke dalam lima bagian yaitu:
Eksekusi enkripsi algoritme AES secara paralel dengan I/O sekuensial
menggunakan satu komputer yang membangkitkan dua, tiga, dan empat
proses dengan sepuluh kali pegulangan, 2 file × 3 proses × 10 ulangan =
60 kali.
2 Eksekusi enkripsi algoritme AES secara paralel dengan I/O sekuensial
yang menggunakan dua komputer yang membangkitkan dua, tiga, dan
empat proses 2 file × 3 proses × 10 ulangan = 60 kali.
3 Eksekusi enkripsi AES secara paralel dengan I/O paralel yang
menggunakan satu komputer dengan membangkitkan dua, tiga, dan empat
proses 2 file × 3 proses × 5 ulangan = 30 kali.
4 Eksekusi enkripsi algoritme AES secara paralel dengan menggunakan I/O
paralel yang menggunakan dua komputer dengan membangkitkan dua,
tiga, dan empat proses 2 file × 3 proses × 5 ulangan = 30 kali.
5 Eksekusi enkripsi algoritme AES sekuensial 2 file × 10 ulangan = 20 kali.
Percobaan ini diawali dengan melakukan pengaturan jaringan dan komputer
agar bisa bekerja secara paralel. Langkah selanjutnya adalah dengan menjalankan
batch file yang berisi perintah eksekusi untuk satu komputer dan melakukan
secara manual untuk dua komputer.
1

HASIL DAN PEMBAHASAN
Hasil
Hasil analisis kinerja implementasi algoritme AES sekuensial, paralel
dengan I/O sekuensial, dan paralel dengan I/O paralel diawali dengan menghitung
waktu eksekusi untuk tiap jenis perlakuan dan data yang berbeda. Setelah
diketahui waktu eksekusinya, performance metrics yang lain dapat dihitung.

17
Pengujian Validitas
Pengujian validitas dilakukan untuk mengetahui bahwa file yang dienkripsi
oleh algoritme AES secara sekuensial, algoritme AES secara paralel dengan
menggunakan I/O sekuensial, dan algoritme AES secara paralel dengan
menggunakan I/O paralel memiliki nilai checksums yang sama, yang artinya
ketiga algoritme tersebut memiliki keluaran yang sama. Pengujian validitas
menggunakan software MD5Check version 3.0. Hasil nilai checksums disajikan
pada Gambar 16, 17, 18, 19, dan 20.

Gambar 16 Hasil nilai checksums enkripsi AES
sekuensial dengan AES secara paralel yang
menggunakan I/O sekuensial

Gambar 17 Hasil nilai checksums enkripsi AES
sekuensial dengan AES secara paralel yang
menggunakan I/O paralel

18

Gambar 18 Hasil nilai checksums dekripsi AES
sekuensial dengan file awal

Gambar 19 Hasil nilai checksums dekripsi AES secara
paralel dengan menggunakan I/O sekuensial
dengan file awal

19

Gambar 20 Hasil nilai checksums dekripsi AES secara
paralel dengan menggunakan I/O paralel
dengan file awal
Pada Gambar 16 dan 17 dapat dilihat bahwa keluaran yang dihasilkan oleh
ketiga algoritme sama, dan pada Gambar 18, 19, dan 20 dapat dilihat bahwa hasil
dekripsi ketiga algoritme memiliki nilai yang sama dengan file awal. Dengan
demikian dapat diketahui bahwa ketiga algoritme tersebut bekerja dengan benar.
Waktu Eksekusi Sekuensial
Waktu eksekusi enkripsi AES secara sekuensial untuk tiap file disajikan
pada Gambar 21.

Gambar 21 Waktu eksekusi enkripsi AES secara sekuensial

20
Gambar 21 menunjukkan waktu eksekusi enkripsi AES akan lebih lama
berdasarkan ukuran file yang akan di eksekusi.Hal tersebut terjadi karena semakin
besar ukuran file jumlah blok yang akan di baca maupun di tulis menjadi semakin
lebih banyak.
Waktu Eksekusi Paralel
Perbandingan waktu Eksekusi enkripsi AES secara paralel yang
menggunakan I/O sekuensial dan AES secara paralel yang menggunakan I/O
paralel untuk setiap file disajikan pada Gambar 22, 23, 24, dan 25.

Gambar 22 Perbandingan waktu eksekusi enkripsi AES
secara paralel, I/O sekuensial dengan I/O
paralel ukuran file kecil satu komputer

Gambar 23 Perbandingan waktu eksekusi enkripsi AES
secara paralel, I/O sekuensial dengan I/O
paralel ukuran file besar satu komputer

21

Gambar 24 Perbandingan waktu eksekusi enkripsi AES
secara paralel, I/O sekuensial dengan I/O
paralel ukuran file kecil dua komputer

Gambar 25 Perbandingan waktu eksekusi enkripsi AES
secara paralel, I/O sekuensial dengan I/O
paralel ukuran file kecil dua komputer
Waktu eksekusi algoritme AES secara paralel dengan menggunakan I/O
paralel jauh lebih cepat dibanding waktu eksekusi AES secara paralel yang
menggunakan I/O sekuensial untuk semua kasus. Namun demikian penambahan
jumlah prosesor tidak selalu mengurangi waktu eksekusi hal itu terjadi pada saat
membangkitkan empat proses menggunakan dua komputer. Waktu eksekusi
meningkat pada saat membangkitkan empat proses pada saat menggunakan file
kecil baik algoritme AES secara paralel menggunakan I/O sekuensial maupun
yang menggunakan I/O paralel. Hal itu dapat terjadi akibat dari beberapa faktor,
yaitu latensi jaringan yang tidak konstan, kerja prosesor yang tidak stabil ataupun
pengaruh dari cache memori.
Waktu eksekusi pada saat menggunakan satu komputer mengurang di setiap
penambahan jumlah proses baik pada algoritme AES secara paralel yang
menggunakan I/O sekuensial maupun yang menggunakan I/O paralel. Hal itu
terjadi karena eksekusi tersebut dilakukan dalam satu ruang lingkup yang sama
sehingga tidak terlalu memakan waktu untuk komunikasi. Waktu tercepat untuk

22
I/O paralel adalah 2.172 detik untuk file kecil dan 63.795 detik untuk file besar
yang menggunakan dua komputer. Waktu tercepat untuk I/O sekuensial adalah
2.802 detik untuk file kecil dan 70.550 detik untuk file besar yang menggunakan
dua komputer. Waktu tercepat file kecil yang menggunakan satu komputer untuk
I/O paralel adalah 2.289 detik dan 57.894 detik untuk file besar. Waktu tercepat
file kecil untuk I/O sekuensial yang menggunakan satu komputer adalah 3.054
detik sedangkan untuk file besar adalah 75.537 detik.
Speedup
Nilai perbandingan speedup enkripsi AES secara paralel yang menggunakan
I/O sekuensial dan I/O paraleldisajikan pada Gambar 26 dan Gambar 27.

Gambar 26 Perbandingan speedup enkripsi AES secara
paralel, I/O sekuensial dan I/O paralel pada
satu komputer

Gambar 27 Perbandingan speedup enkripsi AES secara
paralel, I/O sekuensial dan I/O paralel pada
dua komputer

23
Berdasarkan Gambar 26, nilai speedup cenderung naik seiring
meningkatnya jumlah proses. Fenomena ini hanya berlaku jika jumlah proses
kurang dari atau sama dengan jumlah prosesor. Jika jumlah proses lebih besar dari
jumlah prosesor, maka speedup akan konstan dan bahkan dapat menurun.
Pada Gambar 27 menunjukkan ada penurunan pada speedup pada saat
menggunakan empat proses. Hal ini terjadi karena waktu eksekusi file kecil
menggunakan dua komputer meningkat di saat menggunakan empat proses
sehingga hal itu berdampak juga pada nilai speedup.
Dari data yang ditunjukkan Gambar 20 dan 21 nilai speedup menunjukkan
selalu melebihi satu, hal itu menunjukkan adanya penurunan waktu eksekusi
dibandingkan dengan algoritme AES sekuensial, selain itu nilai speedup pada
gambar tersebut juga menyatakan bahwa algoritme AES secara paralel yang
menggunakan I/O paralel selalu lebih baik dibandingkan dengan AES secara
paralel yang menggunakan I/O sekuensial.
Efisiensi
Nilai perbandingan efisiensi enkripsi AES secara paralel yang menggunakan
I/O sekuensial dan I/O paralel disajikan pada Gambar 28 dan 29.

Gambar 28 Perbandingan efisiensi enkripsi AES secara
paralel, I/O sekuensial dan I/O paralel pada
satu komputer
Berdasarkan Gambar 28 menunjukkan semakin banyak jumlah proses yang
digunakan, nilai efisiensi yang diperoleh semakin menurun. Hal ini menunjukkan
pemanfaatan prosesor yang rendah. Penambahan jumlah prosesor tidak dapat
menurunkan waktu secara proporsional, untuk semua jenis file. Saat menggunakan
dua proses, algoritme AES secara paralel yang menggunakan I/O paralel
menyentuh efisiensi hingga 0.903 untuk file kecil dan 0.943 untuk file besar. Hal
tersebut menunjukkan algoritme tersebut cukup bagus saat menggunakan dua
proses pada satu komputer hal tersebut bisa dikatakan mendekati cost-optimal
karena nilai efisiensinya mendekati 1. Efisiensi terbesar untuk algoritme AES

24
secara paralel yang menggunakan sekuensial I/O file kecil (4.5 MB) sebesar 0.8
dan 0.77 untuk file besar.

Gambar 29 Perbandingan efisiensi enkripsi AES secara
paralel, I/O sekuensial dan I/O paralel pada
dua komputer
Gambar 29 menunjukkan bahwa adanya peningkatan efisiensi pada
algoritme AES secara paralel yang menggunakan I/O paralel pada saat
menggunakan tiga proses nilai efisien meningkat hingga 0.95 untuk ukuran file
kecil namun pada ukuran file besar untuk algoritme I/O paralel cenderung turun.
Hal itu berbanding terbalik dengan algoritme AES secara I/O paralel sekuensial
pada saat mengunakan file kecil nilai efisiensi algoritme tersebut cenderung turun
namun pada saat menggunakan file besar adanya peningkatan pada saat
menggunakan tiga proses. Namun tingkat efisiensi algoritme AES secara paralel
yang menggunakan I/O paralel lebih tinggi dibandingkan dengan yang
menggunakan I/O sekuensial.
Hasil lengkap pada penelitian kali ini dapat dilihat pada Lampiran 2, 3, 4, 5,
6, 7, 8, dan 9.
Perbandingan Waktu Proses Input dan Output
Perbandingan waktu proses input dan output antara algoritme AES secara
paralel yang menggunakan I/O sekuensial dan algoritme AES secara paralel yang
menggunakan I/O paralel disajikan pada Gambar 30.

25
detik 16
14
12
10
8

I/O paralel

6

I/O sekuensial

4
2
0
baca file

tulis file

Gambar 30 Perbandingan waktu proses input dan output I/O sekuensial vs I/O
paralel
Pada Gambar 30 dapat dilihat bahwa pembacaan file dan kunci tidak
berkurang secara signifikan karena pada saat setelah melakukan pembacaan file,
informasi file yang telah dibaca dikembalikan lagi kepada root untuk memecah
file input menggunakan fungsi scatter. Untuk penulisan output waktu eksekusi
berkurang sangat signifikan karena pada penulisan output tersebut, semua proses
langsung melakukan penulisan output.

SIMPULAN DAN SARAN
Simpulan
1

2

3

4

5

Simpulan dari hasil penelitian ini adalah:
Waktu eksekusi algoritme AES secara sekuensial akan semakin meningkat
seiring dengan meningkatnya ukuran file yang digunakan. Waktu eksekusi
enkripsi secara sekuensial untuk file 1 (4.54 MB) adalah 6.306 detik dan
file 2 (115 MB) adalah 167.382 detik.
Algoritme AES secara paralel yang menggunakan I/O paralel dapat
mengurangi waktu eksekusi lebih baik dibandingkan dengan yang
menggunakan I/O sekuensial.
Nilai efisiensi terbesar algoritme AES secara paralel yang menggunakan I/O
paralel sebesar 0.95, sedangkan algoritme AES secara paralel yang
menggunakan I/O sekuensial sebesar 0.8.
Nilai efisiensi terendah algoritme AES secara paralel yang menggunakan
I/O paralel sebesar 0.64, sedangkan algoritme AES secara paralel yang
menggunakan sebesar 0.5.
Nilai speedup algoritme AES secara paralel yang menggunakan I/O paralel
selalu lebih baik dibandingkan dengan yang menggunakan I/O sekuensial.

26
6

Nilai efisiensi algoritme AES secara paralel yang menggunakan I/O paralel
selalu lebih baik dibandingkan dengan yang menggunakan I/O sekuensial.
Saran

Pada penelitian selanjutnya dapat digunakan sistem hybrid seperti Open MP
atau gabungan dari library MPI dan Open-MP atau dapat menggunakan fitur
MPI2 lainnya seperti one-sided-communication atau remote memory access.

DAFTAR PUSTAKA
Giri EP. 2004. Analisis algoritme dan waktu enkripsi versus dekripsi pada
Advanced Encryption Standard (AES) [skripsi]. Bogor (ID): Fakultas
Matematika dan Ilmu Pengetahuan Alam. Institut Pertanian Bogor.
Grama A, Gupta A, Karypis G, Kumar Vipin. 2003. Introduction to Parallel
Computing. Boston (US): Addison-Wesley.
Gropp W, Lusk E, Thakur R. 1999. Advanced Feutures of the Message-Passing
Interface. London (UK): The MIT Press.
Quinn MJ. 2004. Parallel Programming in C with MPI and OpenMP. San
Francisco (US): McGraw Hill.
Stallings W. 2003, Crypthography and Network Security Principles and Practice.
London (UK): Prentice Hall.
Surian D. 2006. Algoritme kriptografi AES Rijndael, Jurnal Teknik Elektro
TESLA, 8(2):97-101.
Zulfikar S. 2012. Analisis dan implementasi algoritme Advanced Encryption
Standard secara paralel [skripsi]. Bogor (ID): Fakultas Matematika dan Ilmu
Pengetahuan Alam. Institut Pertanian Bogor.

27
Lampiran 1 Pengaturan dan instalasi MPICH2
Langkah-langkah dalam pengaturan dan istalasi MPICH2 dalam penelitian
ini yaitu:
1 Hubungkan tiap komputer menggunakan kabel UTP.
2 Ping ke setiap komputer yang hendak digunakan, pastikan semua komputer
saling terhubung agar lebih mudah buat IP menjadi statis dan matikan firewall.
3 Instal mpich2-1.4.1p1-win-ia32.msi di setiap komputer dengan menggunakan
administrator priviledge.
4 Tentukan passphrase yang akan digunakan dan pastikan setiap komputer
memiliki passphrase yang sama dan Pilih “Everyone” pada salah satu menu
instalasi agar MPICH2 bisa digunakan untuk semua pengguna komputer.

5

Tambahkan path MPICH2 (C:\Program Files\MPICH2\bin) pada system
variabel tiap komputer.

Buat user baru dengan nama yang seragam dan password-nya sesuai dengan
passphrase di tiap komputer.
7 Daftar user baru di tiap komputer dengan menjalankan perintah “mpiexec –
register –user 1” pada jendela command prompt, masukkan nama dan
passphrase sesuai dengan poin nomor 7.
8 Jalankan contoh program C:\Program Files\MPICH2\examples\cpi.exe secara
paralel dengan menggunakan user yang sudah daftarkan. Jika contoh program
dapat berjalan dengan baik, cluster komputer telah siap digunakan.

6

28
Lampiran 1 Lanjutan
Beberapa kesalahan umum yang sering terjadi:
1 Pesan eror “Mpiexec is not recognize as internal or external command,
operable program or batch file” ketika hendak menjalankan program paralel.
Penyebab : instalasi MPICH2 atau penambahan path MPICH2 yang
tidak sempurna.
Solusi
: instalasi ulang MPICH2 dan pastikan sesuai langkah di
atas.
2 Pesan eror “SMPD version missmatch” ketika hendak menjalankan program
paralel.
Penyebab : ada program lain yang menggunakan smpd dengan versi yang
berbeda dari MPICH2 yang digunakan
Solusi : instalasi ulang MPICH2 dan pastikan installer-nya sama, hapus
path smpd program lain jika ada.

29
Lampiran 2 Waktu eksekusi AES secara paralel menggunakan I/O sekuensial
(file kecil pohon.jpg (4.5 MB) pada satu komputer)
Ulangan

2 proses

3 proses

4 proses

1

4.799

3.517

3.280

2

4.777

3.451

3.098

3

4.742

3.483

3.093

4

4.717

3.523

3.072

5

4.799

3.476

3.111

6

4.723

3.554

3.153

7

4.727

3.464

3.054

8

4.729

3.492

3.073

9

4.732

3.482

3.061

10

4.715

3.487

3.089

Waktu rata - rata

4.745

3.493

3.109

Speedup

1.328

1.805

2.028

Efisiensi

0.664

0.601

0.507

30
Lampiran 3 Waktu eksekusi AES paralel menggunakan I/O sekuensial (file
besar video.mp4 (115 MB) pada satu komputer )
Ulangan

2 proses

3 proses

4 proses

1

107.942

85.898

75.630

2

106.312

85.405

75.860

3

106.070

85.156

76.066

4

105.009

85.443

75.782

5

105.319

85.221

75.783

6

06.109

85.333

76.298

7

105.454

85.356

76.159

8

105.366

85.309

76.239

9

104.276

85.196

75.537

10

105.426

85.222

75.809

Waktu rata rata

105.728

85.354

75.916

Speedup

1.583

1.961

2.204

Efisiensi

0.791

0.653

0.551

31
Lampiran 4 Waktu eksekusi AES paralel menggunakan I/O paralel (file kecil
pohon.jpg (4.5 MB) pada satu komputer)
Ulangan

2 proses

3 proses

4 proses

1

3.472

2.725

2.292

2

3.481

2.727

2.308

3

3.479

2.686

2.309

4

3.547

2.854

2.307

5

3.500

2.676

2.296

6

3.466

2.665

2.295

7

3.469

2.665

2.316

8

3.517

2.662

2.330

9

3.466

2.659

2.314

10

3.482

2.656

2.289

Waktu rata - rata

3.488

2.698

2.306

Speedup

1.807

2.337

2.734

Efisiensi

0.903

0.779

0.683

32
Lampiran 5 Waktu eksekusi AES paralel menggunakan I/O paralel (file besar
video.mp4 (115 MB) pada satu komputer)
Ulangan

2 proses

3 proses

4 proses

1

92.124

72.037

66.820

2

90.371

69.876

58.863

3

97.539

69.922

57.894

4

87.248

70.074

58.488

5

86.766

70.042

58.387

6

86.511

69.941

58.209

7

86.518

70.341

58.389

8

86.830

70.149

58.265

9

86.386

69.708

58.298

10

86.707

70.113

58.298

Waktu rata - rata

88.700

70.220

59.191

Speedup

1.887

2.383

2.827

Efisiensi

0.943

0.794

0.706

33
Lampiran 6 Waktu eksekusi AES paralel menggunakan I/O sekuensial (file kecil
pohon.jpg ( 4.5 MB) pada dua komputer)
Ulangan

2 proses

3 proses

4 proses

1

3.962

2.805

3.133

2

3.816

2.823

3.099

3

4.159

3.039

3.179

4

3.941

2.995

3.006

5

3.793

2.742

2.983

Waktu rata – rata

3.934

2.881

3.080

Speedup

1.602

2.188

2.047

efisiensi

0.801

0.729

0.511

34
Lampiran 7 Waktu eksekusi AES paralel menggunakan I/O sekuensial (file besar
video.mp4 (115 MB) pada dua komputer)
Ulangan

2 proses

3 proses

4 proses

1

107.987

71.460

70.550

2

96.654

69.488

72.205

3

95.361

72.539

70.111

4

96.492

77.400

72.194

5

106.139

79.338

72.245

Waktu rata – rata 100.527

74.045

71.461

Speedup

1.550

2.342

2.372

Efisiensi

0.775

0.780

0.593

35
Lampiran 8 Waktu eksekusi AES paralel menggunakan I/O paralel (file kecil
pohon.jpg (115 MB) pada dua komputer)
Ulangan

2 proses

3 proses

4 proses

1

3.204

2.297

2.525

2

3.615

2.167

2.342

3

3.607

2.160

2.413

4

3.637

2.172

2.518

5

3.559

2.251

2.345

Waktu rata – rata

3.524

2.209

2.429

Speedup

1.789

2.853

2.596

Efisiensi

0.894

0.951

0.649

36
Lampiran 9 Waktu eksekusi AES paralel menggunakan I/O paralel (file besar
video.mp4 (115 MB) pada dua komputer)
Ulangan

2 proses

3 proses

4 proses

1

96.132

64.258

64.920

2

93.249

63.795

66.539

3

98.480

71.390

65.166

4

96.085

63.919

65.207

5

100.387

64.101

64.602

65.493

65.287

Waktu rata – rata 96.867
Speedup

1.741

2.604

2.578

Efisiensi

0.870

0.868

0.644

37
RIWAYAT HIDUP

Penulis lahir di Bogor pada tanggal 12 Oktober 1989. Penulis merupakan
anak pertama dari dua bersaudara, pasangan Eka Yudha Prya, SE dan Latifah,
SSos.
Penulis lulus dari Sekolah Menengah Atas Neger 8 Bogor pada tahun 2007
dan pada tahun yang sama di terima di Program Studi Ilmu Komputer, Fakultas
Matematika dan Ilmu Pengetahuan Alam, Institut Pertanian Bogor (IPB) melalu
jalur SPMB. Selama mengikuti perkuliahan, penulis aktif dalam berbagai kegiatan
non akademis seperti panitia Masa Perkenalan Departemen pada tahun 2009,
sebagai anggota divisi keaman acara tahunan HIMALKOM, IT TODAY, pada
tahun 2008, dan wakil ketua divisi sponsorship pada acara yang sama pada tahun
2009.
Penulis pernah melakukan Praktik Kerja Lapangan di BPDAS Cimanuk –
Citanduy, Bandung Jawa Barat selama 35 hari kerja. Penulis membuat sistem
Dokumentasi Foto Berkoordinat BPDAS Cimanuk – Citanduy pada Google Map
Menggunakan JetPhoto Studio selama PKL di sana.