Analisis dan Implementasi Algoritme Advanced Encryption Standard (AES) Secara Paralel

ANALISIS DAN IMPLEMENTASI
ALGORITME ADVANCED ENCRYPTION STANDARD (AES)
SECARA PARALEL

SAYED ZULFIKAR

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

ANALISIS DAN IMPLEMENTASI
ALGORITME ADVANCED ENCRYPTION STANDARD (AES)
SECARA PARALEL

SAYED ZULFIKAR

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
2012

ABSTRACT
SAYED ZULFIKAR. Analysis and Implementation of Advanced Encryption Standard (AES)
Parallel Algorithm supervised by HENDRA RAHMAWAN and ENDANG PURNAMA GIRI.
AES is an algorithm for symmetric key cryptography. AES is expected to replace Data
Encryption Standard (DES) as a recognized standard for various applications. The complexity of
AES encryption and decryption process is O(n), it has fast computation in both encryption and
decryption but its execution time will increase as the input data increase. In this research the AES
algorithm would be parallelized by dividing the data to each processor (domain decomposition)
and by dividing the constituent computing of AES to each processor (functional decomposition),
and their performance would be analyzed. Parallel implementation of AES algorithm uses
Message Passing Interface (MPI). The objectives of this research are to measure and analyze the
performance of parallel AES algorithm using performance metrics. The best result of the parallel
AES algorithm in this research is in the decryption process using domain decomposition method.
A file with 118.525 MB size has 127.227 seconds decryption execution time using sequential AES
algorithm, whereas using 16 processors, its decryption execution time is 34.896 seconds. The
speedup is 3.646 and the efficiency is 0.228. This result is not good enough because the speedup is
not equal to the number of processors used and the efficiency is below one. This is because the
AES decryption in this research has a fast computational process, yet it has a big overhead for data
communication. The worst result of the parallel AES algorithm is in the decryption process using
functional decomposition method. Using the same file and three processors, the decryption
execution time is 168.089 seconds. The speedup is 0.755 and the efficiency is 0.252. This is due to
the fact that computing process decomposition is not equally distributed among the processes and
the use of MPI blocking communication routine which cause a big overhead for data
communication. Both parallel algorithms used in this research are not cost-optimal.
Keywords: AES algorithm, Message Passing Interface (MPI), parallel, performance metrics,
pipeline.

Judul Skripsi : Analisis dan Implementasi Algoritme Advanced Encryption Standard (AES)
Secara Paralel
Nama
: Sayed Zulfikar
NIM
: G64070096

Menyetujui:

Pembimbing I

Pembimbing II

Hendra Rahmawan, S.Kom. M.T.
NIP. 198205012009121004

Endang Purnama Giri, S.Kom. M.Kom.
NIP. 198210102006041027

Mengetahui:
Ketua Departemen Ilmu Komputer

Dr. Ir. Agus Buono, M.Si. M.Kom.
NIP. 196607021993021001

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.
Selawat serta salam pada junjungan kita Nabi Muhammad shallallahu `alaihi wa sallam beserta
keluarga dan sahabatnya.
Penulis mengucapkan terima kasih kepada semua pihak yang telah membantu dalam
penyelesaian tugas akhir ini, yaitu :
1 Kedua orang tua tercinta (Said Basri Umar dan Cut Mardiani) yang telah memberikan
dukungan, bantuan, perhatian, dan doa sehingga penulis dapat menyelesaikan studi di
Departemen Ilmu Komputer IPB.
2 Bapak Hendra Rahmawan, S.Kom. M.T. dan Bapak Endang Purnama Giri, S.Kom. M.Kom.
selaku dosen pembimbing.
3 Ibu Ir. Sri Wahjuni, M.T. 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 di atas.
Penulis menyadari dalam tugas akhir ini masih banyak kekurangan. Oleh karena itu, penulis
mengharapkan kritik dan saran yang membangun. Semoga penelitian ini dapat bermanfaat bagi
semua pihak yang membutuhkan. Aamiin.

Bogor, Februari 2011

Sayed Zulfikar

RIWAYAT HIDUP

Penulis lahir di Jakarta pada tanggal 26 Juni 1989. Penulis merupakan anak ketiga dari tiga
bersaudara, pasangan Said Basri Umar dan Cut Mardiani.
Penulis lulus dari Sekolah Menengah Atas Negeri 28 Jakarta pada tahun 2007 dan pada tahun
yang sama diterima di Program Studi Ilmu Komputer, Fakultas Matematika dan Ilmu Pengetahuan
Alam, Institut Pertanian Bogor (IPB) melalui jalur SPMB. Selama mengikuti perkuliahan, penulis
aktif dalam berbagai kegiatan termasuk menjadi asisten praktikum Mata Kuliah Komunikasi Data
dan Jaringan Komputer pada tahun 2010-2011, Organisasi Komputer pada tahun 2010-2011, dan
Pemrosesan Paralel pada tahun 2011-2012. Penulis aktif di bidang non-akademis ditandai dengan
menjadi panitia Masa Perkenalan Departemen pada tahun 2009 sebagai anggota divisi Logistik
dan Tranportasi dan acara tahunan HIMALKOM, IT TODAY, pada tahun 2009 sebagai ketua.
Penulis pernah melakukan Praktik Kerja Lapangan di PT. Pertamina RU VI Balongan,
Indramayu Jawa Barat selama 35 hari kerja. Penulis membuat Sistem Informasi Online Attendance
System (OASYS) PT. Pertamina RU VI Balongan (Modul Harian) selama PKL di sana.

DAFTAR ISI
Halaman
DAFTAR GAMBAR ......................................................................................................................vii
DAFTAR LAMPIRAN ..................................................................................................................viii
PENDAHULUAN............................................................................................................................. 1
Latar Belakang .............................................................................................................................. 1
Tujuan Penelitian .......................................................................................................................... 1
Ruang Lingkup Penelitian ............................................................................................................. 1
Manfaat Penelitian ........................................................................................................................ 1
TINJAUAN PUSTAKA .................................................................................................................... 2
Kriptografi ..................................................................................................................................... 2
Kotak-S ......................................................................................................................................... 2
Inversi Kotak-S ............................................................................................................................. 2
Algoritme AES .............................................................................................................................. 2
Proses Enkripsi AES ..................................................................................................................... 2
Proses Dekripsi AES ..................................................................................................................... 4
Ekspansi Kunci.............................................................................................................................. 5
Pemrograman Paralel .................................................................................................................... 5
Metode Foster................................................................................................................................ 5
MPI (Message-Passing-Interface) ................................................................................................ 6
Performance Metrics ..................................................................................................................... 6
METODE PENELITIAN .................................................................................................................. 6
Studi Pustaka ................................................................................................................................. 7
Analisis Algoritme AES Sekuensial .............................................................................................. 7
Implementasi Algoritme AES Sekuensial ..................................................................................... 7
Penerapan Metode Foster ke Algoritme AES Domain Decomposition ......................................... 7
Analisis dan Implementasi Algoritme AES Paralel Domain Decomposition ................................ 7
Penerapan Metode Foster ke Algoritme AES Pipeline ................................................................. 7
Analisis dan Implementasi Algoritme AES Pipeline .................................................................... 7
Perancangan Percobaan ................................................................................................................. 7
Percobaan ...................................................................................................................................... 7
Analisis Kinerja ............................................................................................................................. 7
HASIL DAN PEMBAHASAN ......................................................................................................... 7
Analisis Algoritme AES Sekuensial .............................................................................................. 7
Implementasi Algoritme AES Sekuensial ..................................................................................... 8
Penerapan Metode Foster ke Algoritme AES Paralel Domain Decomposition ............................. 8
Analisis dan Implementasi Algoritme AES Paralel Domain Decomposition ................................ 9
Penerapan Metode Foster ke Algoritme AES Pipeline ............................................................... 10
Analisis dan Implementasi Algoritme AES Pipeline .................................................................. 11
Perancangan Percobaan ............................................................................................................... 13
Percobaan .................................................................................................................................... 13
Analisis Kinerja ........................................................................................................................... 14
Waktu Eksekusi Sekuensial .................................................................................................... 14
Waktu Eksekusi Paralel ........................................................................................................... 14
Speedup ................................................................................................................................... 15
Efisiensi ................................................................................................................................... 16
Cost ......................................................................................................................................... 17
Overhead ................................................................................................................................. 17
KESIMPULAN DAN SARAN ....................................................................................................... 18
Kesimpulan ................................................................................................................................. 18
Saran............................................................................................................................................ 18

v

Halaman
DAFTAR PUSTAKA ..................................................................................................................... 18
LAMPIRAN .................................................................................................................................... 21

vi

DAFTAR GAMBAR
Halaman
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40

Kotak-S. ...................................................................................................................................... 2
Inversi kotak-S. ........................................................................................................................... 2
Proses umum enkripsi dan dekripsi AES. ................................................................................... 3
Matriks input, state, dan output. .................................................................................................. 3
Ilustrasi proses SubBytes. ........................................................................................................... 3
Ilustrasi proses ShiftRows. .......................................................................................................... 4
Matriks polimat. .......................................................................................................................... 4
Ilustrasi proses AddRoundKey. ................................................................................................... 4
Matriks inversi polimat ............................................................................................................... 4
Proses ekspansi kunci AES. ........................................................................................................ 5
Ilustrasi metode Foster. ............................................................................................................... 5
Metode penelitian. ....................................................................................................................... 6
Algoritme enkripsi AES sekuensial. ........................................................................................... 8
Ilustrasi partisi algoritme AES paralel domain decomposition. .................................................. 8
Ilustrasi komunikasi algoritme AES paralel domain decomposition ........................................... 9
Ilustrasi aglomerasi algoritme AES paralel domain decomposition ............................................ 9
Algoritme enkripsi AES paralel domain decomposition ........................................................... 10
Ilustrasi partisi algoritme AES pipeline. ................................................................................... 10
Ilustrasi komunikasi algoritme AES pipeline. ........................................................................... 11
Ilustrasi aglomerasi algoritme AES pipeline. ............................................................................ 11
Algoritme implementasi AES pipeline...................................................................................... 12
Topologi jaringan star. .............................................................................................................. 13
Perbandingan waktu eksekusi enkripsi dan dekripsi AES sekuensial. ...................................... 14
Waktu eksekusi enkripsi AES paralel domain decomposition. ................................................. 14
Waktu eksekusi dekripsi AES paralel domain decomposition. ................................................. 14
Waktu eksekusi enkripsi AES pipeline. .................................................................................... 15
Waktu eksekusi dekripsi AES pipeline. .................................................................................... 15
Speedup enkripsi AES paralel domain decomposition. ............................................................. 15
Speedup dekripsi AES paralel domain decomposition. ............................................................. 15
Speedup enkripsi dan dekripsi AES paralel domain decomposition dengan jumlah proses 8
buah. .......................................................................................................................................... 15
Speedup enkripsi dan dekripsi AES pipeline............................................................................. 16
Efisiensi enkripsi AES paralel domain decomposition.............................................................. 16
Efisiensi dekripsi AES paralel domain decomposition.............................................................. 16
Efisiensi enkripsi dan dekripsi AES pipeline. ........................................................................... 16
Cost enkripsi paralel domain decomposition. ............................................................................ 17
Cost dekripsi paralel domain decomposition ............................................................................. 17
Cost enkripsi dan dekripsi AES pipeline. .................................................................................. 17
Overhead enkripsi AES paralel domain decomposition. ........................................................... 17
Overhead dekripsi AES paralel domain decomposition. ........................................................... 17
Overhead enkripsi dan dekripsi AES pipeline. ......................................................................... 18

vii

DAFTAR LAMPIRAN
Halaman
1
2
3
4
5
6
7
8
9
10
11

Variabel pendukung dan waktu eksekusi yang diharapkan ....................................................... 22
Implementasi AES sekuensial ................................................................................................... 23
Implementasi AES paralel domain decomposition .................................................................... 26
Implementasi AES pipeline ....................................................................................................... 31
Pengaturan dan instalasi MPICH2 ............................................................................................ 37
Data hasil percobaan algoritme enkripsi AES paralel domain decomposition perlakuan 1 ...... 39
Data hasil percobaan algoritme dekripsi AES paralel domain decomposition perlakuan 1 ...... 40
Data hasil percobaan algoritme enkripsi AES paralel domain decomposition perlakuan 2 ...... 41
Data hasil percobaan algoritme dekripsi AES paralel domain decomposition perlakuan 2 ...... 42
Data hasil percobaan algoritme enkripsi AES pipeline ............................................................. 43
Data hasil percobaan algoritme dekripsi AES pipeline ............................................................. 44

viii

1

PENDAHULUAN
Latar Belakang
Pesatnya perkembangan dunia komputer
dan interaksinya melalui jaringan publik telah
menjadikan keamanan data digital menjadi
suatu hal yang penting. Proses pengiriman
data melalui jaringan publik rawan untuk
dicuri, disadap, ataupun diubah oleh pihak
lain yang tidak bertanggung jawab. Untuk
menjamin integritas data yang dikirim, selain
bergantung kepada keamanan di dalam
jaringan, perlu juga dilakukan proteksi
terhadap data tersebut. Salah satu cara
memproteksi data adalah menggunakan teknik
kriptografi.
AES merupakan teknik atau algoritme
kriptografi yang telah digunakan pada
berbagai aplikasi di seluruh dunia saat ini.
AES diharapkan bisa menggantikan Data
Encryption Standard (DES) sebagai standar
yang diakui untuk keperluan berbagai aplikasi
(Stallings 2003).
AES memiliki proses enkripsi dan dekripsi
yang diketahui memiliki kompleksitas pada
lingkup O(n) (Giri 2004). Proses enkripsi dan
dekripsi AES tergolong cukup cepat secara
kompleksitas, namun waktu eksekusinya akan
meningkat seiring dengan besarnya data yang
digunakan.
Berbagai upaya dapat dilakukan untuk
mengurangi waktu eksekusi. Pemrosesan
paralel dikenal sebagai salah satu metode
untuk mengurangi waktu eksekusi, namun
tidak semua jenis algoritme baik untuk
diparalelkan
karena
terkadang
beban
komunikasi antar proses dapat memperburuk
kinerja algoritme tersebut.
Penelitian ini menerapkan pemrosesan
paralel terhadap proses enkripsi dan dekripsi
AES. Ada dua cara pemrosesan paralel yang
digunakan yaitu dengan membagi seluruh data
ke setiap proses dan dengan memecah
algoritme AES ke dalam beberapa tahap untuk
kemudian data diproses secara pipeline. Cara
pertama
dikenal
dengan
domain
decomposition, sedangkan cara kedua dikenal
dengan nama functional decomposition.
Tujuan Penelitian
Tujuan dari penelitian ini adalah :
1 Mengimplementasikan algoritme AES
secara paralel pada komputer dengan
menggunakan bahasa C dengan library
MPI.
2 Menganalisis kinerja algoritme AES secara
sekuensial dan paralel dengan menghitung

waktu eksekusi, speedup, efisiensi, cost,
dan overhead.
Ruang Lingkup Penelitian
Ruang lingkup dalam penelitian ini adalah:
1 Penelitian ini menggunakan sistem
operasi Windows XP Professional dan
library
MPICH2
pada
bahasa
pemrograman C.
2 Komputer yang digunakan memiliki
spesifikasi processor Intel Core i5 (4
CPU) @3,2 GHz, 1.7 GB memory dan
dihubungkan oleh Fast Ethernet dengan
kabel UTP standar.
3 Padding
dilakukan
dengan
cara
menambahkan nilai antara 1 dan 16
sampai panjang input genap 16. Nilai tiap
pad merupakan representasi dari jumlah
pad yang ditambahkan.
4 Algoritme paralel yang diterapkan ada
dua yaitu algoritme AES paralel domain
decomposition dan algoritme AES paralel
functional decomposition (pipeline).
5 Algoritme
AES
paralel
domain
decomposition diberikan dua perlakuan
yaitu:
a perlakuan 1 yang menggunakan
empat unit komputer dengan proses
yang dibangkitkan adalah 4, 8, 12,
16, 20, 24.
b perlakuan 2 yang membangkitkan 4,
8, 12, dan 16 proses dengan jumlah
komputer yang digunakan berturutturut sebanyak 1, 2, 3, 4 unit.
6 Jumlah proses yang dibangkitkan untuk
algoritme AES pipeline dibatasi hanya 2,
3 dan 5. Pembangkitan 2 atau 3 proses
hanya menggunakan 1 komputer,
sedangkan pembangkitan 5 proses akan
menggunakan 2 komputer,.
7 Analisis teori, analisis algoritme, analisis
uji perbandingan, dan implementasi
algoritme AES dibatasi untuk panjang
blok pesan 128 bit dengan panjang blok
kunci 128 bit.
8 Analisis performance metrics dibatasi
pada waktu eksekusi, speedup, efisiensi,
cost, dan overhead
Manfaat Penelitian
Manfaat yang dapat diperoleh dari
penelitian ini adalah dapat diketahui baik atau
tidaknya algoritme AES jika diparalelkan
dengan cara mengukur performance metrics.

2

TINJAUAN PUSTAKA
Kriptografi
Kriptografi didefinisikan sebagai studi
teknik matematis yang berkaitan dengan aspek
keamanan informasi seperti kerahasiaan,
integritas data, autentikasi entitas, dan
autentikasi asal data. Adapun orang yang
melakukannya disebut kriptografer (Menezes
et al. 1996).
Menurut Menezes et al. (1996), empat
tujuan utama kriptografi yaitu:
1 Kerahasiaan.
2 Integritas data (keutuhan data).
3 Autentikasi (identifikasi entitas dan data).
4 Non-repudiasi (terjaganya kesepakatan
transaksi).
Menurut Menezes et al. (1996), sistem
pengamanan data pada kriptografi secara
umum ada dua langkah, yaitu:
1 Proses enkripsi
Proses enkripsi adalah suatu proses yang
mengubah plaintext (kode sesungguhnya)
menjadi chipertext (kode rahasia). Pada
enkripsi, proses perubahan plaintext ke
chipertext dilakukan dengan cara
menyandikan pesan M dengan suatu
kunci K yang akan menghasilkan pesan
C.
2 Proses dekripsi
Proses dekripsi adalah suatu proses yang
mengubah chipertext menjadi plaintext,
dimana pesan yang sudah teracak
dikembalikan ke pesan semula. Pada
proses dekripsi, pesan C tersebut
diuraikan dengan menggunakan kunci K,
sehingga dihasilkan pesan M yang sama
seperti pesan sebelumnya.
Kotak-S
Kotak-S
merupakan
suatu
bentuk
pemetaan substitusi sederhana dari m-bit input
menjadi n-bit output. Suatu kotak-S dengan m
bit input dan n bit output dinamakan kotak-S
m*n bit (Stallings 2003).

Gambar 1 Kotak-S.

. Algoritme AES menggunakan desain
kotak-S yang memetakan 4*32 bit input
kepada 4*32 bit output sebagai hasilnya.
Desain kotak-S yang digunakan AES dapat
dilihat pada Gambar 1.
Inversi Kotak-S
Inversi Kotak-S merupakan bentuk
kebalikan dari kotak-S yang tiap sel
penyusunnya merupakan antilog (pemetaan
kebalikan) dari setiap sel bersesuaian pada
kotak-S. Desain inversi kotak-S yang
digunakan AES dapat dilihat pada Gambar 2.

Gambar 2 Inversi kotak-S.
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. Khusus untuk penelitian ini,
pengkajian akan dibatasi pada blok pesan 128
bit dengan ukuran blok kunci 128 bit.
Empat proses utama algoritme terdiri atas
satu proses permutasi (ShiftRows) dan tiga
proses substitusi (SubBytes, MixColumns,
dan AddRoundKey). Struktur algoritme secara
umum cukup sederhana, dengan proses baik
enkripsi maupun dekripsi diawali proses
AddRoundKey, diikuti sembilan round yang
masing-masing tersusun atas empat proses,
dan diakhiri round kesepuluh yang terdiri atas
tiga proses. Proses AddRoundKey saja yang
memanfaatkan kunci, karena itu penyandian
diawali dan diakhiri oleh sebuah proses
AddRoundKey (Stallings 2003).
Proses Enkripsi AES
Secara umum, proses enkripsi dan dekripsi
AES dapat digambarkan pada Gambar 3.
Masukan dari algoritme enkripsi dan dekripsi
AES adalah sebuah blok berukuran 128 bit.
Blok ini digambarkan sebagai sebuah matriks
4x4 dengan tiap elemen berukuran satu byte
dan direpresentasikan dalam dua karakter

3

heksadesimal, maka dihasilkan 16 buah input.
Input tersebut direpresentasikan ke dalam
matriks 4x4 yang disebut matriks input.

Gambar 4 Matriks input, state, dan output.
Proses enkripsi AES diawali proses
AddRoundKey diikuti sembilan round dengan
arsitektur yang tersusun atas empat proses dan
urutan identik yaitu SubBytes, ShiftRows,
MixColumns, dan AddRoundKey. Pada akhir
proses enkripsi, digunakan round kesepuluh
yang tersusun atas tiga proses terurut
SubBytes, ShiftRows, dan AddRoundKey
yang keseluruhan proses tersebut diiringi
proses penjadwalan key (oleh expand key)
bagi setiap round (Stallings 2003).
a

SubBytes
Operasi ini merupakan suatu operasi
substitusi tak linear yang beroperasi secara
mandiri pada setiap byte dengan
menggunakan kotak-S (Ariyus
2008).
Ilustrasi proses SubBytes diberikan pada
Gambar 5.

Gambar 3 Proses umum enkripsi dan dekripsi
AES.
Matriks input disalin kedalam matriks state
yang kemudian akan dimodifikasi pada setiap
tahap enkipsi atau dekripsi. Pada tahap akhir
penyandian, matriks state disalin ke dalam
matriks output (Stallings 2003). Ilustrasi
matriks input, state, dan output tersaji pada
Gambar 4.
Kunci juga digambarkan sebagai matriks
4x4 yang disebut matriks key. Tiap elemennya
berukuran satu byte dan direpresentasikan
dalam dua karakter heksadesimal (Stallings
2003).

Gambar 5 Ilustrasi proses SubBytes.
b ShiftRows
ShiftRows merupakan proses permutasi
sederhana dari 16 nilai matriks 4x4 kepada
16 nilai baru matriks 4x4. (Stallings
2003). Ilustrasi proses ShiftRows diberikan
pada Gambar 6.

4

Gambar 6 Ilustrasi proses ShiftRows.
c MixColumns
MixColumns
merupakan
operasi
terhadap setiap kolom secara terpisah.
Setiap byte dari suatu kolom dipetakan
terhadap suatu nilai baru dengan suatu
fungsi yang melibatkan seluruh nilai (4
byte) dari kolom yang bersangkutan.
Proses MixColumns mengalikan matriks
polimat dengan matriks state (Stallings
2003).

Proses
dekripsi
diawali
dengan
AddRoundKey lalu dilanjutkan dengan proses
sembilan
buah
round
identik
yang
menggunakan key hasil ekspansi bagi round
bersesuaian. Setiap round dekripsi (round
pertama sampai round kesembilan) tersusun
atas empat proses transformasi terurut, yaitu
InvShiftRows, InvSubBytes, AddRoundKey,
dan MixColumns. Proses dekripsi diakhiri
oleh round kesepuluh dengan tiga proses
penyusun secara berurut yaitu InvShiftRows,
InvSubBytes, dan AddRounKey (Stallings
2003).
a

InvShiftRows
InvShiftRows
merupakan
transformasi kebalikan dari proses
permutasi ShiftRows (Stallings 2003).
Untuk kasus blok pesan 128 bit dengan
128 bit blok kunci, InvShiftRows
memiliki aturan permutasi sebagai
berikut:
1 Baris pertama matriks tetap.
2 Baris kedua matriks bergeser secara
rotasi satu byte ke kanan.
3 Baris ketiga matriks bergeser secara
rotasi dua byte ke kanan.
4 Baris keempat matriks bergeser
secara rotasi tiga byte ke kanan.

b

InvSubBytes
InvSubBytes
memiliki
kaidah
pemetaan seperti proses SubBytes pada
enkripsi akan tetapi kamus pemetaannya
menggunakan inversi kotak-S (Stallings
2003).

c

AddRoundKey
AddRoundKey pada proses dekripsi
identik dengan AddRoundKey pada
proses enkripsi. Hal ini dikarenakan
operasi inversi dari XOR merupakan
operasi XOR itu sendiri (Stallings 2003).

d

InvMixColumns
InvMixColumns merupakan proses
inversi dari proses MixColumns pada
enkripsi
(Stallings
2003).
Proses
InvMixColumns dapat didefinisikan
sebagai proses perkalian dengan inversi
dari matriks polimat pada proses enkripsi
(Gambar 10).

02
03
01
01
01
02
03
01
01
01
02
03
03
01
01
02
Gambar 7 Matriks polimat.
d

AddRoundKey
Operasi ini merupakan suatu operasi
penambahan kunci dengan operasi XOR
dan setiap kunci putaran terdiri dari w[i].
Nilai w[i] merupakan kunci ekspansi yang
diturunkan dari kunci primer (Ariyus
2008). Ilustrasi proses AddRoundKey
diberikan pada Gambar 8.

Gambar 8 Ilustrasi proses AddRoundKey.
Proses Dekripsi AES
Struktur proses dekripsi AES sama dengan
proses enkripsi. Akan tetapi, proses dekripsi
AES memiliki urutan proses dan transformasi
penyusun tiap round yang berbeda. Selain itu,
transformasi yang digunakan pun merupakan
transformasi
kebalikan
dari
proses
transformasi penyusun setiap round pada
proses enkripsi (Stallings 2003).

0E
09
0D
0B

0B
0E
09
0D

0D
0B
0E
09

09
0D
0B
0E

Gambar 9 Matriks inversi polimat

5

Ekspansi Kunci
Ekspansi kunci adalah proses untuk
membangkitkan kunci bagi round pada setiap
iterasi. Algoritme ekspansi kunci AES
membutuhkan masukan sebuah kunci
berukuran empat word dan akan menghasilkan
sebuah 44 word (156 bytes) array yang linear
(Stallings 2003). Proses ekspansi kunci
digambarkan pada Gambar 10.

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 11.

Gambar 11 Ilustrasi metode Foster.
a

Partisi
Partisi
adalah
suatu
proses
pembagian komputasi dan data ke dalam
beberapa bagian. Ada dua cara untuk
melakukan
partisi,
yaitu
domain
decompotition
dan
functional
decompotition. Domain decompotition
adalah pendekatan model algoritme
paralel yang melakukan pembagian data
menjadi beberapa bagian terlebih dahulu,
kemudian
menentukan
bagaimana
mengasosiasikan komputasi dengan data
tersebut.
sedangkan
functional
decompotition 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

Gambar 10 Proses ekspansi kunci AES.
Pemrograman Paralel
Pemrograman paralel adalah pemrograman
dalam bahasa yang memungkinkan secara
eksplisit menunjukkan bagaimana bagian
yang berbeda dari komputasi dapat dieksekusi
secara bersamaan oleh prosesor yang berbeda
(Quinn 2004).
Algoritme paralel adalah sebuah urutan
yang memberi tahu kita bagaimana cara untuk
memecahkan suatu masalah menggunakan
beberapa prosesor. Algoritme ini mencakup
identifikasi bagian dari pekerjaan bersama ke
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 di berbagai tahapan
pelaksanaan program paralel (Grama et al.
2003).
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

6

program
maupun
menyederhanakan
program (Quinn 2004).
d

c

Pemetaan
Pemetaan adalah proses penugasan
task ke prosesor. Tujuan dari pemetaan
adalah memaksimalkan kemampuan
prosesor dan meminimalkan komunikasi
antar prosesor (Quinn 2004).

E=
d

MPI (Message-Passing-Interface)
MPI adalah sebuah standar library
pengenalan dasar pemrograman sistem paralel
(Quinn 2004). MPI dapat digunakan dengan
berbagai bahasa pemrograman seperti bahasa
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.

Performance Metrics
Performance metrics adalah salah satu
cara untuk menganalisis kinerja algoritme
paralel (Grama et al.). 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 adalah
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=

Efisiensi
Efisiensi (E) adalah rasio antara
speedup dengan banyaknya prosesor yang
digunakan (p). Suatu sistem paralel
dikatakan cost-optimal jika memiliki
efisiensi sebesar 1 (Grama et al. 2003).
Efisiensi dirumuskan pada Persamaan 2.

e

(2)

Cost
Cost (C) pada sistem paralel adalah
hasil perkalian waktu eksekusi paralel
dengan jumlah prosesor yang digunakan
(Grama et al.
2003). Fungsi cost
dirumuskan pada Persamaan 3.
C = pTp
(3)
Overhead
Overhead adalah kelebihan dari total
waktu yang dibutuhkan oleh semua
proses paralel dibandingkan proses
sekuensial pada masalah yang sama
(Grama et al. 2003). Fungsi overhead
dirumuskan pada Persamaan 4.
To = pTp - Ts

(4)

METODE PENELITIAN
Penelitian ini akan menggunakan metode
Foster dalam merancang sistem paralelnya.
Pembagian komputasi akan dilakukan secara
domain decomposition dan functional
decomposition. Penelitian ini akan dikerjakan
dalam beberapa tahap yang disesuaikan
dengan metode penelitian seperti terlihat pada
Gambar 12.

(1)
Gambar 12 Metode penelitian.

7

Studi Pustaka
Kegiatan yang dilakukan pada tahap ini
adalah mengumpulkan semua informasi atau
literatur yang terkait dengan penelitian.
Informasi tersebut didapat dari buku, internet,
dan artikel yang membahas tentang algoritme
AES dan pemrosesan paralel.
Analisis Algoritme AES Sekuensial
Analisis algoritme yang dilakukan pada
tahap ini adalah analisis kompleksitas waktu
asimptotik dan penghitungan waktu eksekusi
AES sekuensial yang diharapkan.
Implementasi Algoritme AES Sekuensial
Algoritme
AES
sekuensial
diimplementasikan dengan menggunakan
bahasa pemrograman C. Algoritme utama
AES dibagi menjadi tiga bagian yaitu
ekspansi kunci, enkripsi, dan dekripsi.
Penerapan Metode Foster ke Algoritme
AES Domain Decomposition
Metode
yang
digunakan
untuk
implementasi algoritme AES secara paralel
pada penelitian ini adalah metode Foster
dengan
tahapan
partisi,
komunikasi,
aglomerasi, dan pemetaan. Tahapan partisi
dilakukan secara domain decomposition.
Analisis dan Implementasi Algoritme AES
Paralel Domain Decomposition
Analisis algoritme yang dilakukan pada
tahap ini adalah analisis kompleksitas waktu
asimptotik dan penghitungan waktu eksekusi
AES paralel domain decomposition yang
diharapkan.
Implementasinya
akan
menggunakan prosedur komunikasi MPI
kolektif scatter/scatterv dan gather/gatherv
untuk pendistribusian data.
Penerapan Metode Foster ke Algoritme
AES Pipeline
Metode
yang
digunakan
untuk
implementasi algoritme AES secara paralel
pada penelitian ini adalah metode Foster
dengan
tahapan
partisi,
komunikasi,
aglomerasi dan pemetaan. Tahapan partisi
dilakukan secara functional decomposition.
Fungsi yang dipecah adalah komputasikomputasi penyusun enkripsi atau dekripsi
AES dan komputasi ekspansi kunci AES.
Analisis dan Implementasi Algoritme AES
Pipeline
Analisis algoritme yang dilakukan pada
tahap ini adalah analisis kompleksitas waktu
asimptotik dan penghitungan waktu eksekusi

AES
pipeline
yang
diharapkan.
Implementasinya akan menggunakan prosedur
komunikasi MPI point-to-point send-receive
untuk aliran proses penyandian.
Perancangan Percobaan
Parameter-parameter yang dibutuhkan
untuk percobaan ditentukan pada tahap ini.
Parameter-parameter tersebut antara lain:
1 Jenis algoritme.
2 Jenis perlakuan.
3 Ukuran file masukan.
4 Jumlah prosesor dan proses.
5 Performace metrics.
6 Perangkat keras dan perangkat lunak.
Percobaan
Waktu enkripsi dan dekripsi dari
implementasi AES secara sekuensial dan
paralel akan dicatat pada tahap ini.
Analisis Kinerja
Waktu eksekusi algoritme AES sekuensial
akan ditentukan pada tahap ini. Kedua
algoritme AES paralel akan ditentukan waktu
eksekusi, speedup, efisiensi, cost, dan
overhead. Waktu eksekusi kedua algoritme
AES paralel akan dibandingkan dengan waktu
eksekusi algoritme paralel yang diharapkan
dan waktu eksekusi algoritme sekuensial.
HASIL DAN PEMBAHASAN
Analisis Algoritme AES Sekuensial
Proses enkripsi dan dekripsi AES diketahui
memiliki kompleksitas pada lingkup O(n)
(Giri 2004). Proses enkripsi file pada AES
sekuensial diawali dengan membangkitkan
176 bytes kunci-kunci ekspansi melalui proses
ekspansi kunci. Selanjutnya file dibagi-bagi ke
dalam tiap blok berukuran 128 bit, kemudian
setiap blok dioperasikan dengan operasi
seperti pada Gambar 3. Proses ini akan terus
diulangi sampai semua blok file selesai
diproses. Proses dekripsi file pada AES
sekuensial memiliki pola yang hampir sama
dengan proses enkripsi. Perbedaannya terletak
pada jenis operasinya.
Waktu eksekusi enkripsi dan dekripsi AES
sekuensial
harapan
dirumuskan
pada
Persamaan 5 dan 6.
TSEH = x1 + x2 + A + n(B)

(5)

TSDH = x1 + x2 + A + n(C)

(6)

8

Keterangan :
TSEH : waktu eksekusi enkripsi sekuensial
harapan
TDEH : waktu eksekusi dekripsi sekuensial
harapan
x1 : waktu yang dibutuhkan untuk
membaca suatu data masukan
x2 : waktu yang dibutuhkan untuk menulis
data keluaran
n
: banyak blok
A
: waktu yang dibutuhkan untuk
melakukan ekspansi kunci
B
: waktu yang dibutuhkan untuk
melakukan enkripsi satu blok data
C
: waktu yang dibutuhkan untuk
melakukan dekripsi satu blok data
Variabel pendukung dan waktu eksekusi
harapan untuk enkripsi dan dekripsi algoritme
AES sekuensial disajikan dalam Lampiran 1.

Implementasi Algoritme AES Sekuensial
Proses enkripsi dan dekripsi pada
penelitian
ini
menggunakan
bahasa
pemrograman C, kompilator GCC, dan library
MPICH2 yang digunakan untuk memakai
fungsi perhitungan waktu eksekusi karena
implementasi AES paralel juga menggunakan
fungsi yang sama sehingga perbandingannya
akan sederajat. Algoritme enkripsi AES
sekuensial pada penelitian ini dijelaskan pada
Gambar 13.
Algoritme dekripsi AES sekuensial hampir
sama dengan enkripsi AES sekuensial.
Perbedaannya terletak pada jenis operasinya
dan proses unpadding dilakukan di akhir
sebelum hasil dekripsi disimpan ke file.
Implementasi algoritme AES sekunsial dapat
dilihat pada Lampiran 2.
Penerapan Metode Foster ke Algoritme
AES Paralel Domain Decomposition
Metode
yang
digunakan
untuk
implementasi algoritme AES secara paralel
adalah metode Foster. 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 akan
membutuhkan n proses. Ilustrasi partisi
algoritme
AES
paralel
domain
decomposition ditunjukkan pada Gambar
14.

Gambar 14 Ilustrasi partisi algoritme
AES paralel domain
decomposition.

Gambar 13 Algoritme enkripsi AES
sekuensial.

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. Ilustrasi komunikasi
algoritme
AES
paralel
domain

9

decomposition ditunjukkan pada Gambar
15.

Gambar 15 Ilustrasi komunikasi
algoritme AES paralel
domain decomposition
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.
Ilustrasi
aglomerasi algoritme AES paralel domain
decomposition ditunjukkan pada Gambar
16.

Analisis dan Implementasi Algoritme AES
Paralel Domain Decomposition
Algoritme ini membagi langsung semua
data masukan ke setiap proses. Setiap proses
akan membangkitkan kunci-kunci ekspansi
dan melakukan enkripsi atau dekripsi terhadap
data masukan yang telah dibagi-bagi tersebut.
Terakhir, data hasil enkripsi atau dekripsi
dikumpulkan di satu proses untuk kemudian
dicetak.
Broadcast
diketahui
memiliki
kompleksitas Ɵ (log p), sedangkan scatter dan
gather Ɵ (n + log p) (Quinn
2004).
Algoritme ini dalam proses komunikasinya
melakukan tiga kali broadcast, sekali scatter
dan sekali gather. Ekspansi kunci memiliki
kompleksitas waktu asimptotik O(1). Untuk
perhitungan enkripsi atau dekripsi tiap proses
akan melakukan iterasi sebanyak n/p kali. Jika
diasumsikan proses pembacaan data masukan
dan penulisan data keluaran diabaikan dalam
analisis perhitungan kompleksitas waktu
asimptotiknya, total kompleksitas waktunya
adalah:
Ɵ (n/p + 2n + 5log p)
Keterangan:
p : jumlah proses yang dibangkitkan
Jika λ adalah waktu yang dibutuhkan untuk
mengirim sebuah pesan dan β (bandwidth)
adalah jumlah data yang dapat dikirim dalam
satu waktu, maka waktu yang dibutuhkan
untuk melakukan suatu broadcast adalah
λ log p
Scatter atau gather data berukuran 16 byte
membutuhkan waktu
λ log p + 16n (p-1) / (βp)

Gambar 16 Ilustrasi aglomerasi
algoritme AES paralel
domain decomposition
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.

Waktu eksekusi harapan enkripsi dan
dekripsi yang diharapakan untuk algoritme
AES paralel domain decomposition ini dapat
dirumuskan melalui Persamaan 7 dan 8.
Tp1He = x1+x2+A+

B + 5λlog p + 32n
(7)

Tp1Hd = x1+x2+ A+

C+ 5λlog p + 32n
(8)

10

Keterangan :
Tp1He : Waktu eksekusi harapan enkripsi AES
paralel domain decomposition
Tp1Hd : Waktu eksekusi harapan dekripsi AES
paralel domain decomposition
Nilai λ diperoleh dari menghitung waktu
rata-rata
yang
dibutuhkan
untuk
menyelesaikan 1000 kali proses send-receive
data sebesar satu byte. Percobaan ini
menggunakan Fast Ethernet sehingga nilai β
adalah 12,5 x 106 byte/detik.

Variabel pendukung dan waktu eksekusi
harapan untuk enkripsi dan dekripsi algoritme
AES paralel domain decomposition disajikan
dalam Lampiran 1. Algoritme enkripsi AES
paralel domain decomposition pada penelitian
ini dijelaskan pada Gambar 17.
Algoritme dekripsi AES paralel hampir
sama dengan enkripsi AES paralel.
Perbedaannya terletak pada jenis operasinya
dan proses unpadding dilakukan di akhir
sebelum hasil dekripsi disimpan ke file.
Implementasi algoritme AES paralel domain
decomposition dapat dilihat di Lampiran 3.
Penerapan Metode Foster ke Algoritme
AES Pipeline
Tahapan metode Foster yang digunakan
dalam menyusun algoritme ini adalah:
1 Partisi
Jenis partisi yang dilakukan pada
algoritme
ini
adalah
functional
decomposition. Komputasi AES akan
dipecah menjadi komputasi-komputasi
penyusun dasarnya. Diketahui enkripsi
AES terdiri atas dua komputasi utama
yaitu ekspansi kunci dan enkripsi itu
sendiri.
Ekspansi kunci tersusun atas empat
buah
komputasi,
yaitu:
RotWord,
SubWord, dan dua buah proses bitwise
XOR. Secara lengkap ekspansi kunci
tersusun dari 10 RotWord, 10 SubWord,
dan 50 bitwise XOR. Terdapat 70
komputasi dalam ekspansi kunci.
Enkripsi utama AES tersusun atas
empat buah komputasi yaitu: SubBytes,
ShiftRows,
MixCol,
AddRoundKey.
Secara lengkap, enkripsi AES tersusun
atas: 11 AddRoundKey, 10 SubBytes, 10
ShiftRows, dan 9 MixColumns. Terdapat
40 komputasi dalam enkripsi AES. Tiap
komputasi akan ditangani satu proses
sehingga untuk n blok data dibutuhkan 40
proses untuk ekspansi kunci dan 40 proses
untuk enkripsi/dekripsi. Ilustrasi partisi
algoritme AES pipeline ditunjukkan pada
Gambar 18.

Gambar 17 Algoritme enkripsi AES paralel
domain decomposition

Gambar 18 Ilustrasi partisi algoritme
AES pipeline.

11

2 Komunikasi
Setiap proses akan mengolah blok
data masukan sesuai dengan komputasi
bagiannya. Jika suatu proses telah selesai
melakukan komputasi untuk suatu blok
data, blok data tersebut akan dikirim ke
proses selanjutnya dan proses tersebut
akan menerima masukan berikutnya. Jenis
komunikasi yang digunakan adalah
komunikasi point-to-point. Untuk n blok
data, dibutuhkan 110 proses dan
komunikasi sebanyak 39n kali untuk
enkripsi atau dekripsi, 69 kali untuk
ekspansi kunci, dan 40 kali untuk
pengiriman kunci ekspansi ke tiap proses
yang
menangani
komputasi
AddRoundKey.
Ilustrasi
komunikasi
algoritme AES pipeline ditunjukkan pada
Gambar 19.

Gambar 19 Ilustrasi komunikasi
algoritme AES pipeline.
3 Aglomerasi
Aglomerasi pada ekspansi kunci
dilakukan karena ekspansi kunci tidak
tergantung pada besarnya data masukan
dan memiliki waktu komputasi yang kecil,
sehingga komputasi ekspansi kunci tidak
akan dipecah.

Aglomerasi pada enkripsi utama AES
dilakukan tergantung pada jumlah proses
yang dibangkitkan. Pada dasarnya,
algoritme AES pipeline membagi enkripsi
AES ke dalam tiga kelompok komputasi
yang dijelaskan pada Gambar 20.
Jika proses yang dibangkitkan dua,
Komputasi 2 dan Komputasi 3 digabung.
Jika proses yang dibangkitkan tiga,
pengelompokkan komputasi tidak berubah.
Jika proses yang dibangkitkan lima,
Komputasi 2 akan dipecah menjadi tiga
pecahan yang akan melakukan tiga iterasi
yang tiap iterasinya terdiri atas empat buah
komputasi yang dilaksanakan secara
berturut-turut, yaitu: SubBytes, ShiftRows,
MixCol, dan AddRoundKey.
4 Pemetaan
Setiap proses akan melakukan
komputasi yang berbeda-beda. Komputasi
1 akan dilakukan oleh proses root,
Koputasi 3 akan dikerjakan oleh proses p1, sedangkan Komputasi 2 akan dikerjakan
sisa proses lainnya.
Analisis dan Implementasi Algoritme AES
Pipeline
Satu blok data membutuhkan p-1 pasang
komunikasi send-receive. Maka untuk
menyelesaikan seluruh komputasi bagi
seluruh data dibutuhkan n(p-1) pasang
komunikasi
send-receive.
Sepasang
komunikasi send-receive membutuhkan waktu
λ sehingga total kebutuhan waktu komunikasi
point-to-point adalah
λn(p-1)
Komunikasi global yang dilakukan ada dua
buah broadcast, sehingga total kebutuhan
waktu komunikasi global adalah
2λ (log p)
Total waktu komunikasi algoritme AES
pipeline
harapan
dirumuskan
dalam
Persamaan 9.
Tcpi = λn(p-1) + 2λ (log p)

(9)

Keterangan:
Tcpi : waktu komunikasi AES pipeline harapan

Gambar 20 Ilustrasi aglomerasi algoritme
AES pipeline.

Proses pengiriman data menggunakan
komunikasi blocking. Jadi, secara otomatis,
tiap proses akan saling menunggu sampai data
benar-benar terkirim. Sehingga waktu

12

komputasi terbesar di suatu proses akan
mempengaruhi waktu komputasi keseluruhan.
Jika p = 2, waktu komputasi total enkripsi
dan dekripsi AES pipeline harapannya
dirumuskan dalam Persamaan 10 dan 11.
Tp22He = x1 + x2 + A + d + n(9D + E) + Tcpi(10)
Tp22Hd = x1 + x2 + A + d + n(9F + G) + Tcpi (11)
Keterangan:
Tp22He : waktu enkripsi AES pipeline harapan
dengan 2 proses
Tp22Hd : waktu dekripsi AES pipeline harapan
dengan 2 proses
d
: waktu komputasi AddRoundKey
D
: waktu komputasi SubBytes +
ShiftRows+MixCol +AddRoundKey
E
: waktu komputasi SubBytes +
ShiftRows + AddRoundKey
F
: waktu komputasi InvSubBytes +
InvShiftRows + InvMixCol
+InvAddRoundKey
G
: waktu komputasi InvSubBytes +
InvShiftRows + InvAddRoundKey

bahasa pemrograman C dan library MPICH2
untuk pemrosesan paralel. Algoritme disusun
agar setiap proses bertanggung jawab terhadap
komputasi tertentu yang seluruh rangkaian
komputasi
tersebut
merupakan
suatu
komputasi AES utuh. Selanjutnya, setiap blok
data dialirkan ke rangkaian komputasi tersebut
untuk diolah secara bertahap. Kedatangan
suatu blok data akan memicu eksekusi
komputasi baru oleh suatu proses dalam
pipeline, pengecualian pada proses yang
menginisiasi pipeline.
Implementasi AES pipeline dalam
penelitian ini berbentuk
linear 1D.
Komunikasi antar proses untuk pengiriman
aliran data menggunakan komunik

22  176  36

26  178  2

9  137  3

133  572  18

126  579  21

63  441  20

102  405  24

0  50  2

3  92  24

2  65  2

2  68  12

6  61  65

26  739  16

13  209  43

6  148  23

1  115  24

11  163  23

8  204  14

7  201  50

4  122  17

4  202  30

9  234  23