• Tidak ada hasil yang ditemukan

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.

InversiKotak-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

heksadesimal, maka dihasilkan 16 buah input.

Input tersebut direpresentasikan ke dalam matriks 4x4 yang disebut matriks input.

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

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

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

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

0E 0B 0D 09 09 0E 0B 0D 0D 09 0E 0B 0B 0D 09 0E Gambar 9 Matriks inversi polimat

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 yanglinear (Stallings 2003). Proses ekspansi kunci digambarkan pada Gambar 10.

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

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

program maupun menyederhanakan program (Quinn 2004).

d Pemetaan

Pemetaan adalah proses penugasan

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

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 =

(1)

c 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)

d 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)

e 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)

Dokumen terkait