Você está na página 1de 24

Bab I

Pendahuluan

1.1. Definisi
Data merupakan salah satu aset penting dalam kelangsungan hidup perusahaan manapun,
intansi pemerintahan, maupun institusi-institusi pendidikan. Penyimpanan data memerlukan
berbagai macam pertimbangan, terutama dari segi keamanannya dan kerahasiaannya.
Dalam menjaga keamanan data terdapat sebuah metode pengaman data yang dikenal
dengan nama kriptografi. Kriptografi merupakan salah satu metode pengamanan data yang
dapat digunakan untuk menjaga kerahasiaan data, keaslian data serta keaslian pengirim.
Kriptografi adalah ilmu yang berguna untuk mengacak (kata yang lebih tepat adalah
masking) data sedemikian rupa sehingga tidak bisa dibaca oleh pihak ketiga. Tentu saja data
yang diacak bisa dikembalikan ke bentuk semula oleh pihak yang berwenang.
Selain pengertian, tersebut terdapat pula pengertian ilmu yang mempelajari teknik-teknik
matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan data,
keabsahan data, integritas data serta autentika data.
Data ingin diacak biasanya disebut Plainteks. Data diacak dengan menggunakan Kunci
Enkripsi. Proses pengacakan itu sendiri disebut Enkripsi. Plainteks yang telah diacak disebut
Cipherteks. Kemudian proses untuk mengembalikan Cipherteks ke Plainteks disebut
Dekripsi. Kunci yang digunakan pada tahap Dekripsi disebut Kunci Dekripsi.
Dua tipe dasar dari teknologi kriptografi adalah symmetric key cryptography dan
asymmetric cryptography. Pada symmetric key cryptography , baik pengirim maupun
penerima memiliki kunci rahasia yang umum. Pada asymmetric cryptography, pengirim dan
penerima masing-masing berbagi kunci publik.
Algoritma kriptografi yang baik akan memerulkan waktu yang lama untuk memecahkan
data yang telah disandikan. Seiring dengan perkembangan teknologi komputer, dunia
teknologi informasi membutuhkan algoritma kriptografi yang lebih kuat dan aman.

Algoritma kriptografi bernama Rijndael yang didesain oleh Vincent Rijmen dan John
Daemen asal Belgia sebagai pemenang kontes algoritma kriptografi pengganti DES yang
diadakan oleh NIST (National Institutes of Standart an d Technology) milik Amerika Serikat
pada 26 November 2001. Algoritma Rijndael inilah yang kemudian dikenal dengan Advanced
Encryption Standart (AES). Setelah mengalami beberapa proses standarisasi oleh NIST,
Rijndael kemudian diadopsi menjadi standart algoritma kriptografi secara resmi pada 22 Mei
2002.Advanced Encryption Standard (AES) merupakan algoritma cryptographic yang dapat
digunkan untuk mengamakan data. Algoritma AES adalah blokchipertext simetrik yang dapat
mengenkripsi (encipher) dan dekripsi (decipher) infoermasi. Enkripsi merubah data yang
tidak dapat lagi dibaca disebut ciphertext; sebaliknya dekripsi adalah merubah ciphertext data
menjadi bentuk semula yang kita kenal sebagai plaintext. Algoritma AES is mengunkan kunci
kriptografi 128, 192, dan 256 bits untuk mengenkrip dan dekrip data pada blok 128 bits
Kelemahan SPN pada umumnya (termasuk pada Rijndael) adalah berbedanya struktur
enkripsi dan dekripsi sehingga diperlukan dua algoritma yang berbeda untuk enkripsi dan 21
dekripsi.Dan tentu pula tingkat keamanan enkripsi dan dekripsinya menjadi berbeda. AES
memiliki blok masukan dan keluaran serta kunci 128 bit. Untuk tingkat keamanan yang lebih
tinggi, AES dapat menggunakan kunci 192 dan 256 bit. Setiap masukan 128 bit plaintext
dimasukkan ke dalam state yang berbentuk bujursangkar berukuran 44 byte.
AES (Advanced Encryption Standard) adalah lanjutan dari algoritma enkripsi standar
DES (Data Encryption Standard) yang masa berlakunya dianggap telah usai karena faktor
keamanan. Kecepatan komputer yang sangat pesat dianggap sangat membahayakan DES,
sehingga pada tanggal 2 Maret tahun 2001 ditetapkanlah algoritma baru Rijndael sebagai
AES.
Kriteria pemilihan AES didasarkan pada 3 kriteria utama yaitu : keamanan, harga, dan
karakteristik algoritma beserta implementasinya. Keamanan merupakan faktor terpenting
dalam evaluasi (minimal seamana triple DES), yang meliputi ketahanan terhadap semua
analisis sandi yang telah diketahui dan diharapkan dapat menghadapi analisis sandi yang
belum diketahui. Di samping itu, AES juga harus dapat digunakan secara bebas tanpa harus
membayar royalti, dan juga murah untuk diimplementasikan pada smart card yang memiliki
ukuran memori kecil. AES juga harus efisien dan cepat (minimal secepat Triple DES)
dijalankan dalam berbagai mesin 8 bit hingga 64 bit, dan berbagai perangkat lunak.

DES menggunakan stuktur Feistel yang memiliki kelebihan bahwa struktur enkripsi dan
dekripsinya sama, meskipun menggunakan fungsi F yang tidak invertibel. Kelemahan Feistel
yang utama adalah bahwa pada setiap ronde, hanya setengah data yang diolah. Sedangkan
AES menggunakan struktur SPN (Substitution Permutation Network) yang memiliki derajat
paralelisme yang lebih besar sehingga diharapkan lebih cepat dari pada Feistel. Kelemahan
SPN pada umumnya (termasuk pada Rijndael) adalah berbedanya struktur enkripsi dan
dekripsi sehingga diperlukan dua algoritma yang berbeda untuk enkripsi dan dekripsi. Dan
tentu pula tingkat keamanan enkripsi dan dekripsinya menjadi berbeda.
AESError: Reference source not found memiliki blok masukan dan keluaran serta kunci
128 bit. Untuk tingkat keamanan yang lebih tinggi, AES dapat menggunakan kunci 192 dan
256 bit. Setiap masukan 128 bit plaintext dimasukkan ke dalam state

yang berbentuk

bujursangkar berukuran 4x4 byte. State ini di-XOR dengan key dan selanjutnya diolah 10 kali
dengan subtitusi-transformasi linear-Addkey. Dan di akhir diperoleh ciphertext.
Berikut ini adalah operasi Rijndael (AES) yang menggunakan 128 bit kunci:
Ekspansi kunci utama (dari 128 bit menjadi 1408 bit)
Pencampuran subkey.
Ulang dari i=1 sampai i=10 Transformasi : ByteSub (subtitusi per byte) ShiftRow
(Pergeseren byte perbaris) MixColumn (Operasi perkalian GF(2) per kolom)
Pencampuran subkey (dengan XOR)
Transformasi : ByteSub dan ShiftRow
Pencampuran subkey Kesimpulan yang didapat adalah :
AES terbukti kebal menghadapi serangan konvensional (linear dan diferensial attack)
yang menggunakan statistik untuk memecahkan sandi.
Kesederhanaan AES memberikan keuntungan berupa kepercayaan bahwa AES tidak
ditanami trapdoor.
Namun, kesederhanaan struktur AES juga membuka kesempatan untuk mendapatkan
persamaan aljabar AES yang selanjutnya akan diteliti apakah persamaan tersebut dapat
dipecahkan
Bila persamaan AES dapat dipecahkan dengan sedikit pasangan plaintext/ciphertext,
maka riwayat AES akan berakhir.
AES didesain dengan sangat hati-hati dan baik sehingga setiap komponennya memiliki
tugas yang jelas 22

AES memiliki sifat cipher yang diharapkan yaitu : tahan menghadapi analisis sandi
yang diketahui, fleksibel digunakan dalam berbagai perangkat keras dan lunak, baik
digunakan untuk fungsi hash karena tidak memiliki weak(semi weak) key, cocok untuk
perangkat yang membutuhkan key agility yang cepat, dan cocok untuk stream cipher.
1.2. Manfaat / Fungsi
Manfaat dari AES atau Algoritma Rijndael :
1. Kerahasiaan , layanan yang ditujukan untuk menjaga agar pesan tidak dapat dibaca
oleh pihak-pihak yang tidak berhak. Di dalam kriptografi, layanan ini direalisasikan
dengan menyandikan pesan menjadi cipherteks.
2. Integritas data, layanan yang menjamin bahwa pesan masih asli atau belum
dimanipulasi selama pengiriman.
3. Penggunaan AES pun bukan hanya digunakan dalam hal yang sederhana melainkan
perannya sangatlah krusial dalam sebuah perangkat lunak ataupun dalam hal lain
dimana AES tersebut digunakan.
4. Algoritma AES memiliki kelebihan pada panjang blok dan struktur round yang sangat
rumit.
5. Rijndael mempunyai suatu security margin yang cukup, tetapi kritik yang datang pada
Rijndael cukup banyak, karena struktur matematikanya yang sederhana bisa
memberikan peluang suatu saat untuk diserang. Dengan kata lain, struktur yang
sederhana memberikan Rijndael untuk dikembangkan dalam waktu dekat.
6. Rijndael tidak memakan banyak sumber daya komputasi. Kecepatan antara dekripsi
lebih lama dibandingkan dengan enkripsinya.
7. AES:Rijndael mendukung perhitungan sub kunci untuk enkripsi
8. AES:Rijndael memerlukan satu waktu dalam eksekusi untuk key schedule dari semua
sub kunci dekripsi dengan menggunakan kunci khusus.
1.3. Konsep
Algoritma kriptografi bernama Rijndael yang didesain oleh oleh Vincent Rijmen
dan John Daemen asal Belgia keluar sebagai pemenang kontes algoritma kriptografi
pengganti DES yang diadakan oleh NIST (National Institutes of Standards and
Technology) milik pemerintah Amerika Serikat pada 26 November 2001. Algoritma
Rijndael inilah yang kemudian dikenal dengan Advanced Encryption Standard (AES).
Setelah mengalami beberapa proses standardisasi oleh NIST, Rijndael kemudian
diadopsi menjadi standard algoritma kriptografi secara resmi pada 22 Mei 2002. Pada
2006, AES merupakan salah satu algoritma terpopuler yang digunakan dalam kriptografi
kunci simetrik.

AES ini merupakan algoritma block cipher dengan menggunakan sistem permutasi dan
substitusi (P-Box dan S-Box) bukan dengan jaringan Feistel sebagaiman block cipher pada
umumnya. Jenis AES terbagi 3, yaitu :
1.AES-128
2.AES-192
3.AES-256
Pengelompokkan jenis AES ini adalah berdasarkan panjang kunci yang digunakan.
Angka-angka di belakang kata AES menggambarkan panjang kunci yang digunakan pada
tipa-tiap AES. Selain itu, hal yang membedakan dari masing-masing AES ini adalah
banyaknya round yang dipakai. AES-128 menggunakan 10 round, AES-192 sebanyak 12
round, dan AES-256 sebanyak 14 round.
AES memiliki ukuran block yang tetap sepanjang 128 bit dan ukuran kunci sepanjang
128, 192, atau 256 bit. Tidak seperti Rijndael yang block dan kuncinya dapat berukuran
kelipatan 32 bit dengan ukuran minimum 128 bit dan maksimum 256 bit. Berdasarkan ukuran
block yang tetap, AES bekerja pada matriks berukuran 4x4 di mana tiap-tiap sel matriks
terdiri atas 1 byte (8 bit). Sedangkan Rijndael sendiri dapat mempunyai ukuran matriks yang
lebih dari itu dengan menambahkan kolom sebanyak yang diperlukan. Blok chiper tersebut
dalam pembahasan ini akan diasumsikan sebagai sebuah kotak. Setiap plainteks akan
dikonversikan terlebih dahulu ke dalam blok-blok tersebut dalam bentuk heksadesimal.
Barulah kemudian blok itu akan diproses dengan metode yang akan dijelaskan. Secara umum
metode yang digunakan dalam pemrosesan enkripsi dalam algoritma ini dapat dilihat melalui
Gambar 2.1.

Gambar 2.1

Gambar 2.1 Diagram AES


Terlihat dari Gambar 2.1 terdapat beberapa istilah asing yang perlu dijelaskan agar
membuat semuanya lebih terjelaskan. Istilah-istilah tersebut adalah Add Round Key, Sub
Bytes, Shift Rows, dan Mix Columns.

Key Schedule
Proses key schedule diperlukan untuk mendapatkan subkey-subkey dari kunci utama
agar cukup untuk melakukan enkripsi dan dekripsi. Proses ini terdiri dari beberapa
operasi, yaitu:
Operasi Rotate, yaitu operasi perputaran 8 bit pada 32 bit dari kunci.
Operasi SubBytes, pada operasi ini 8 bit dari subkey disubstitusikan dengan nilai dari SBox.
Operasi Rcon, operasi ini dapat diterjemahkan sebagai operasi pangkat 2 nilai tertentu
dari user. Operasi ini menggunakan nilai-nilai dalam Galois field. Nilai-nilai dari Rcon
kemudian akan di-XOR dengan hasil operasi SubBytes.
Operasi XOR dengan w[i-Nk] yaitu word yang berada pada Nk sebelumnya.
A. ADD ROUND KEY

Add Round Key pada dasarnya adalah mengkombinasikan chiper teks yang sudah ada
dengan chiper key yang chiper key dengan hubungan XOR. Bagannya bisa dilihat pada
gambar 2.1.1.

Gambar 2.1.1 Add Round Key


Pada gambar tersebut di sebelah kiri adalah chiper teks dan sebelah kanan adalah round
key nya. XOR dilakukan per kolom yaitu kolom-1 chiper teks di XOR dengan kolom-1
round key dan seterusnya.
B. SUB BYTES
Prinsip dari Sub Bytes adalah menukar isi matriks/tabel yang ada dengan matriks/tabel
lain yang disebut dengan Rijndael S-Box. Di bawah ini adalah contoh Sub Bytes dan
Rijndael S-Box.

Gambar 2.2.1 adalah contoh dari Rijndael S-Box

Gambar 2.2.2 Ilustrasi Sub Bytes


Gambar 2.2.1 adalah contoh dari Rijndael S-Box, di sana terdapat nomor kolom dan
nomor baris. Seperti yang telah disebutkan sebelumnya, tiap isi kotak dari blok chiper
berisi informasi dalam bentuk heksadesimal yang terdiri dari dua digit, bisa angka-angka,
angka-huruf, ataupun huruf-angka yang semuanya tercantum dalam Rijndael S-Box.
Langkahnya adalah mengambil salah satu isi kotak matriks, mencocokkannya dengan
digit kiri sebagai baris dan digit kanan sebagai kolom. Kemudian dengan mengetahui
kolom dan baris, kita dapat mengambil sebuah isi tabel dari Rijndael S-Box. Langkah
terakhir adalah mengubah keseluruhan blok chiper menjadi blok yang baru yang isinya
adalah hasil penukaran semua isi blok dengan isi langkah yang disebutkan sebelumnya.
C. SHIFT ROWS
Shift Rows seperti namanya adalah sebuah proses yang melakukan shift atau pergeseran
pada setiap elemen blok/tabel yang dilakukan per barisnya. Yaitu baris pertama tidak
dilakukan pergeseran, baris kedua dilakukan pergeseran 1 byte, baris ketiga dilakukan
pergeseran 2 byte, dan baris keempat dilakukan pergeseran 3 byte. Pergeseran tersebut
terlihat dalam sebuah blok adalah sebuah pergeseran tiap elemen ke kiri tergantung
berapa byte tergesernya, tiap pergeseran 1 byte berarti bergeser ke kiri sebanyak satu kali.
Ilustrasi dari Tahap ini diperlihatkan oleh gambar di bawah ini.

Gambar 2.3.1 Ilustrasi dari Shift Row


Seperti yang terlihat pada Gambar 2.3.1, tahap shift row sama sekali tidaklah rumit,
karena ini adalah proses standar yang hanya berupa pergeseran. Langkah terakhir adalah
Mix Column.
D. MIX COLUMNS
Yang terjadi saat Mix Column adalah mengalikan tiap elemen dari blok chiper dengan
matriks yang ditunjukkan oleh Gambar 2.4.1. Tabel sudah ditentukan dan siap pakai.
Pengalian dilakukan seperti perkalian matriks biasa yaitu menggunakan dot product lalu
perkalian keduanya dimasukkan ke dalam sebuah blok chiper baru. Ilustrasi 2.4.2 akan
menjelaskan mengenai bagaimana perkalian ini seharusnya dilakukan. Dengan begitu
seluruh rangkaian proses yang terjadi pada AES telah dijelaskan dan selanjutnya adalah
menerangkan mengenai penggunaan tiap-tiap proses tersebut.
02

01

01

03

03

02

01

01

01

03

02

01

01

01

02

03

Gambar 2.4.1 Tabel untuk Mix Columns

Gambar 2.4.2 Ilustrasi Mix Columns


E. DIAGRAM ALIR AES
Kembali melihat diagram yang ditunjukkan oleh Gambar 2.1. Seperti yang terlihat semua
proses yang telah dijelaskan sebelumnya terdapat pada diagram tersebut. Yang artinya adalah
mulai dari ronde kedua, dilakukan pengulangan terus menerus dengan rangkaian proses Sub
Bytes, Shift Rows, Mix Columns, dan Add Round Key, setelah itu hasil dari ronde tersebut
akan digunakan pada ronde berikutnya dengan metode yang sama. Namun pada ronde
kesepuluh, Proses Mix Columns tidak dilakukan, dengan kata lain urutan proses yang
dilakukan adalah Sub Bytes, Shift Rows, dan Add Round Key, hasil dari Add Round Key
inilah yang dijadikan sebagai chiperteks dari AES. Lebih jelasnya bisa dilihat dengan Gambar
2.5.1 dan 2.5.2 yang akan menerangkan mengenai kasus tersebut.

Dengan mengetahui semua proses yang ada pada AES, maka kita dapat menggunakannya
dalam berbagai contoh kasus yang muncul di kehidupan sehari-hari.

F. Final Round
Pada round ini, dilakukan operasi yang sama seperti pada Round, namun tanpa MixColumns.
Untuk melakukan dekripsi algoritma AES, dilakukan langkah invers dari langkah yang telah
dilakukan pada proses enkripsi. Round dari deskripsi adalah sebagai berikut:
1. Inverse ShiftRows
2. Inverse SubBytes
3. AddRoundKey
4. Inverse MixColumn

Gambar 7: Enkripsi dan Dekripsi

Bab II
Penerapan / Penggunaan

2.1.

Deskripsi Singkat Mengenai Advanced Encryption Standard


Input dan output dari algoritma AES terdiri dari urutan data sebesar 128 bit. Urutan

data yang sudah terbentuk dalam satu kelompok 128 bit tersebut disebut juga sebagai blok
data atau plaintext yang nantinya akan dienkripsi menjadi ciphertext. Cipher key dari AES
terdiri dari key dengan panjang 128 bit, 192 bit, atau 256 bit. Perbedaan panjang kunci akan
mempengaruhi jumlah round yang akan diimplementasikan pada algoritma AES ini. Berikut

ini adalah Tabel 1 yang memperlihatkan jumlah round / putaran ( Nr ) yang harus
diimplementasikan pada masing-masing panjang kunci.
Tabel 1 Perbandingan Jumlah Round dan Key
Dikutip dari: Kriptografi, 2006, halaman 158

Pada dasarnya, operasi AES dilakukan terhadap array of byte dua dimensi yang
disebut dengan state. State mempunyai ukuran NROWS X NCOLS. Pada awal enkripsi, data
masukan yang berupa in0, in2, in3, in4, in5, in6, in7, in8, in9, in10, in11, in12, in13, in14,
in15 disalin ke dalam array state. State inilah yang nantinya dilakukan operasi enkripsi /
dekripsi. Kemudian keluarannya akan ditampung ke dalam array out. Gambar 1
mengilustrasikan proses penyalinan dari input bytes, state array, dan output bytes :

Gambar 1 Proses Input Bytes, State Array, dan Output Bytes


Dikutip dari: Kriptografi, 2006, halaman 161
AES beroperasi berdasarka prinsip desain yang diketahui sebagai jaringan substitusipermutasi. Dengan desain ini, AES dapat diimplementasikan dengan efektif baik pada
hardware maupun software. Algoritma AES dispesifikasikan sebagai jumlah perulangan

dari transformasi loop yang mengkonversi plaintext menjadi ciphertext. Masing-masing


loop terdiri atas beberapa proses, termasuk satu langkah yang bergantung pada kunci
enkripsinya. Untuk mendekripsi, dilakukan langkah- langkah invers dari langkah
enkripsi.

Gambar 2: Gambaran Enkripsi


Berikut adalah deskripsi dari algoritma AES.
1. Ekspansi Kunci kunci diturunkan dari cipher dengan menggunakan Rijndael's key
schedule. Pertama, kunci dibagi menjadi 8, masing-masing 32 bit. Kemudian, masingmasing sub-kunci diubah ke dalam heksadesimal, kemudian dirotasi. Contoh:
Kunci awal : 5F 6D 1B 2E.
Hasil rotasi : 6D 1B 2E 5F.
Lalu, dilakukan prosedur Rcon. Setelah itu, dilakukan pembuatan S-box. Setelah itu,
dilakukan penjadwalan kunci.
2. Initial Round
Pada AES-256, langkah-langkah berikut diulang sebanyak 14 kali.

2.2.

Algoritma

The code samples (below) have been developed by the author. The following Java-code
module creates
the Inverse S-box from the original S-box. Both boxes store the values of integers.
public void createInverseSBox()
{

for(int i=0; i<16; i++)


{
for(int j=0; j<16; j++)
{
inverseSBox[i][j] = findInverseLocation(i*16 + j);
}
}
}
This program finds the inverse location for creating the inverse S-box:
public int findInverseLocation(int num)
{
int spotI = -1;
int spotJ = -1;
for(int i=0; i<16; i++)
{
for(int j=0; j<16; j++)
{
if(sBox[i][j] == num)
{
spotI = i;
spotJ = j;
}
}
}
return spotI * 16 + spotJ;
}
This program generates the MixColumn table:
public void createMixColumn()
{
for(int i=0; i<16; i++)
{
for(int j=0; j<16; j++)

{
mixColumn[i][j][0] = (i*16 + j)*2;
if(mixColumn[i][j][0] >= 128)
{
mixColumn[i][j][0] = (mixColumn[i][j][0] ^ 27)
% 256;
}

mixColumn[i][j][1] = i*16 + j;
mixColumn[i][j][2] = i*16 + j;
mixColumn[i][j][3] = (mixColumn[i][j][0] ^ mixColumn[i][j]
[1]);
}
}
}

This module performs the S-box substitution with a byte represented as an


integer:
public int sboxSubstitution(int plainText)
{
int tableSpotI = getIValue(plainText);
int tableSpotJ = plainText % 16;
return sBox[tableSpotI][tableSpotJ];
}

This program creates the blocks out of the plain text represented as a
character array:
public int[][][] createStates(char[] textArray, int numStates)
{
int states[][][] = new int[numStates][4][4];
int z = 0;

//state,row,column
for(int i=0; i<numStates; i++)
{
for(int j=0; j<4; j++)
{
for(int k=0; k<4; k++)
{
states[i][k][j] = (int)textArray[z];
z++;
}
}
}
return states;
}

This module performs a Rijndael round, but it is not completely finished


yet:
public int[][][] round(int sNum, int roundNum, int states[][][],
/*expanded key*/)
{
for(int i=0; i<4; i++)
{
for(int j=0; j<4; j++)
{
states[sNum][i][j] = sboxSubstitution(states[sNum][i]
[j]);
}
}
for(int i=1; i<4; i++)
{
for(int j=0; j<i; j++)
{
int temp = states[sNum][i][0];
states[sNum][i][0] = states[sNum][i][1];
states[sNum][i][1] = states[sNum][i][2];

states[sNum][i][2] = states[sNum][i][3];
states[sNum][i][3] = temp;
}
}
if(roundNum != 10)
{
//mix column
}
//add expanded key
return states;
}

2.3.

Analisis
AES didesain

pendesain

berdasarkan wide trail strategy yang dicetuskan

Rijndael,

mengusulkan

agar

Daemen,
cipher

dalam

terdiri

disertasinya.

dari

tiga

Strategi

komponen

ini

utama

pencampuran kunci, transformasi tidak linear dan transformasi linear.


Pencampuran kunci bertujuan agar keamanan algoritma tidak terletak
pada dirahasiakannya algoritma, melainkan pada kerahasiaan kunci.
Transformasi nonlinear bertujuan agar bila diketahui keluaran, maka
tidak dapat diketahui masukannya. Hal ini dapat dilakukan dengan
kotak-S.

Transformasi

linear

bertujuan

agar

sebanyak

mungkin

transfomasi nonlinear yang aktif. Dengan memisahkan transformasi


linear

dengan

transformasi

non

linear,

nonlinear

diharapkan

terbebas

dari

kita

dapat

transformasi

mendesain
linear

dan

sebaliknya. Daemen menekankan betapa perlunya desain transformasi


linear yang baik. Analisis sandi pada DES menunjukkan betapa
buruknya transformasi linear pada DES (permutasi) sehingga tidak
dapat menahan analisis sandi linear dan diferensial.
Pada awal dan akhir cipher, diberikan operasi Pre-whitening dan
post-whitening, yang berupa XOR plaintext/ciphertext dengan subkey.
Operasi ini bertujuan meningkatkan keamanan seperti halnya pada
DES-X. Sedangkan pada awal dan akhir DES hanya terdapat permutasi
yang tidak meningkatkan keamanan.

Bab III
PERBANDINGAN DAN PEMBAHASAN
Algoritma RC6 dengan Rijndael pada AES

Secara umum, RC6 adalah algoritma dengan deskripsi yang mudah diingat. Dan dengan
adanya fungsi tambahan f(x) = x(2x + 1) membuat serangan cryptanalitic attack pada RC5
menjadi tidak berarti. Ditambah lagi dengan kemampuan rotasi RC6 yang bersifat datadependent sehingga menyebabkan keamanannya semakin meningkat. Sementara Rinjdael
memiliki elemen algoritma yang dapat dideskripsikan sebagai perhitungan matematika
sederhana termasuk S-box, bukan sebuah elemen yang menggunakan operasi acak. Serangan
yang mungkin terjadi pada Rinjdael adalah square attack. Pada makalah ini, perbandingan
akan dilakukan pada tiga sektor yang menjadi kriteria standar pada AES. Untuk performansi
akan dilakukan perbandingan pada komputer 32 bit dan smart card.
3.1. Flexibilitas
Untuk urusan bahasa pemrograman, Rijndael maupun RC6 dapat diimplementasikan
baik pada bahasa Assembly, C maupun Java tanpa mengalami perbedaan performansi yang
berarti. Implementasi pada ketiga bahasa ini, paling jauh, hanya mengalami perubahan
performansi hingga 2:1. Namun kebanyakan hanya hingga 1:1 meskipun pada akhirnya ada
begitu banyak varian kode yang dimunculkan. Selain itu, kedua algoritma ini juga dapat
diimplementasikan untuk keamanan smart card.
3.1.1. Fleksibilitas Rijndael
Sebagai varian dari Square Cipher, Rijndael memiliki kemampuan untuk bekerja
sangat baik pada platform apapun. Ditambah dengan operasi yang menggunakan table lookup
dan operasi XOR membuat prosesnya menjadi tidak terlalu rumit. Walaupun proses enkripsi
dan dekripsinya tidak terlalu identik, namun struktur umum dan performanya tidak dapat
secara langsung dibedakan. Rijndael, memiliki keuntungan yang tinggi dalam smart card
dikarenakan penggunaan ROM yang cukup kecil. Namun untuk penggunaan smart card,

proses dekripsi malah membuat ukuran kodenya menjadi bertambah dan kecepatan dekripsi
lebih lambat dari pada kecepatan enkripsi, mencapai 2 kali lipat.
3.1.2. Fleksibilitas RC6
Kode RC6 yang sangat pendek merupakan sebuah kemampuan tersendiri dari
algoritma ini, dan membuat algoritma ini sangat sepadan bila diimplementasikan ke dalam
lingkungan smart card. Ditambah lagi karena RC6 tidak melakukan proses pembuat sub key
atau yang kita sebut key scheduling pada saat proses enkripsi. Namun untuk platform yang
lain, RC6 tidak terlalu banyak memberikan hasil yang sebaik platform pentium. Bahkan, RC6
berjalan lebih lambat hingga 3 kali lipat pada platform pentium pro.
3.2. Performansi
Secara umum, performansi dilihat dengan menghitung lama pembuatan key serta
proses enkripsinya. Perbandingan dilakukan dengan menggunakan panjang kunci yang sama
yaitu 128 bit pada prosesor pentium.
Tabel 1. Performansi Rijndael dan RC6
Cipher

Rijndael
2100

RC6
1700

Pentium Pro C (clock)


Encrypt

440

260

Pentium Pro C (clock)


Encrypt

320

250

Pentium Pro ASM (clock)


Encrypt

320

700

Key setup

Pentium ASM (clock)

3.2.1. Pada Kunci Enkripsi


Algoritma RC6 tidak tergantung pada panjang kunci. Sehingga, waktu yang
dibutuhkan untuk membangun sebuah kunci adalah sama, meskipun panjang kuncinya adalah
128, 192, atau 256 bit. Sehingga proses enkripsi dan dekripsi tetap konstan. Sedangkan
untuk Rijndael, melakukan enkripsi dan dekripsi lebih lama untuk kunci yang lebih panjang,
dan membutuhkan waktu yang lama untuk membangun kunci. Sehingga, bila panjang kunci

128 bit membutuhkan 10 putaran, untuk kunci 192 bit akan membutuhkan waktu lebih lama
20%, dan kunci 256 bit membutuhkan waktu lebih lama 40%.
Tabel 2. Clock Cycles per Bytes to Key and Encrypt
Different Text Sizes on Pentium in Assembly
Text Size
(Bytes)
16
32
64
128
265
512
1024
2048

Clock Cycles
Rijndael

RC6

115
68
44
32
26
23
21
21

146
95
69
57
50
47
45
45

Pengukuran 16 byte adalah kecepatan algoritma bila dijadikan sebagai fungsi hash. Dari tabel
1 dapat dilihat bahwa Rijndael sangat baik untuk enkripsi data dengan blok yang kecil.
Namun algoritma ini lebih cepat kembali ke kecepatan asalnya pada peningkatan selanjutnya.

3.2.2. Minimal Secure Variant


Minimal secure variant, sebuah konsep yang diperkenalkan oleh Biham, adalah cara
perbandingan dengan melihat jumlah putaran minimal yang masih aman terhadap serangan,
kemudian ditambahkan lagi dua putaran.
Tabel 3. Kecepatan enkripsi untuk MSV pada Assembly
Clock Cycles
Pentium
Pentium PRO

3.3. Keamanan

Rijndael
256
256

RC6
700
250

Keamanan adalah salah satu faktor penting dalam dunia enkripsi. Melihat RC6
sebagai

algoritma

yang

sedikit

lebih

sederhana

dibandingkan

dengan

Rijndael,

mengakibatkan keduanya membutuhkan proses kriptanalisis yang sangat cermat. Namun


NIST mengatakan bahwa keduanya memiliki batas keamanan yang sangat cukup.

3.3.1. Keamanan Rijndael


Untuk Rijndael, tipe serangan square attacks cukup menjadi dikenal sebagai serangan
terbaik terhadap Rijndael. Square attacks adalah serangan yang memanfaatkan struktur
orientasi byte. Algoritma ini bekerja dengan baik pada square cipher yang bekerja dalam 6
putaran. Untuk Rijndael dengan kunci sepanjang 128 bit, maka serangan ini lebih cepat dari
pada exhaustive search hingga 6 kali iterasi Rijndael. Namun untuk AES, jelas bahwa
serangan ini tidak mungkin dipraktekkan karena jumlah putaran pada Rijndael,
mengakibatkan batas keamanan untuk algoritma ini menjadi lebih besar.

3.3.2. Keamanan RC6


Serangan paling sederhana dan dapat menghasilkan pada RC6 diperkirakan adalah
exhaustive search untuk kunci RC6. Serangan ini dapat digunakan pada block cipher apapun.
Dengan RC6, operasi yang dibutuhkan untuk mencari key atau expanded key array adalah
antara 28 hingga 21408 operasi. Namun dapat digunakan meet in the middle attack sehingga
dibutuhkan 2704 komputasi. Untuk ukuran panjang kunci yang bersesuaian dengan AES,
serangan ini jelas tidak mungkin.

4. KESIMPULAN
Dari hasil seluruh pembahasan di atas, dapat ditarik kesimpulan sebagai berikut.
1. Kedua algoritma Rijndael dan RC6 termasuk algoritma block cipher.
2. RC6 dikembangkan dari RC5 dengan menambahkan 4 buah register.
3. Rijndael bekerja dalam ukuran byte dan tergolong dalam square cipher.

4. Rijndael memiliki fleksibilitas yang tinggi karena dapat diterapkan pada platform yang
beragam sementara RC6 kurang memiliki kebebasan ini.
5. Kode untuk RC6 lebih sederhana dibandingkan dengan Rijndael, dan juga RC6 tidak
menghabiskan penggunaan memori yang banyak bila diterapkan ke dalam smart card.
6. Secara umum, performa Rijndael pada smart card masih melebihi performa RC6.
7. Penggunaan lookup table pada Rijndael cukup menjadi kelemahan dalam ukuran kode.
8. RC6 memiliki kelebihan dalam bidang data dependent dalam enkripsinya dibandingkan
Rijndael.
9. Dalam proses enkripsi, keduanya menggunakan key yang berbeda untuk setiap putaran,
namun Rijndael membangkitkan key bersamaan dengan proses enkripsi, sementara RC6 tidak
melakukan pembangkitan key.
10. Untuk lingkungan implementasi 8 bit dan hardware, Rijndael jauh lebih unggul
dibandingkan RC6 pada performansinya. Namun tidak berarti RC6 tidak mampu
mengeluarkan performa yang baik.
11. Untuk implementasi pada bahasa C maupun assembly, secara umum RC6 menggungguli
Rijndael. Namun perbedaan performansi dipengaruhi oleh banyak faktor juga. Sebagai
contoh, RC6 tidak memiliki performa sebaik Rijndael pada prosesor pentium 32 bit.
12. Untuk urusan keamanan, kedua algoritma ini masih bekerja dalam performa yang sangat
baik, terlebih karena jumlah putaran semakin mempersulit proses kriptanalisis.
13. Melihat kelebihan, kekurangan, dan kemiripan RC6 dibandingkan dengan Rijndael, maka
dapat ditarik kesimpulan bahwa RC6 juga layak untuk dipertimbangkan bila ingin melakukan
enkripsi pada platform tertentu.

Bab IV

Penutup

4.1. Kesimpulan
Dirancang untuk menggantikan DES (launching akhir 2001), menggunakan variable
length block chipper, key length : 128-bit, 192-bit, 256-bit, dapat diterapkan untuk smart
card. Algoritma Rijndael yang ditetapkan sebagai AES memiliki karakteristik yang istimewa
yang menjadikannya mendapat status tersebut. Dalam hal ini pula maka algoritma ini perlu
lah untuk dipelajari karena penggunaannya di kehidupan sehari-hari sudah sangatlah banyak
31 dan hal ini akan berguna dalam pengembangan dari teknologi kriptografi agar dapat
menemukan terobosan-terobosan baru. Tujuan utama dari kriptografi adalah melindungi
sebuah informasi, begitu pula dengan AES yang dengan serangkaian tahap atau ronde yang
dilakukan dengan menggunakan kunci simetris. Penggunaan AES pun bukan hanya
digunakan dalam hal yang sederhana melainkan perannya sangatlah krusial dalam sebuah
perangkat lunak ataupun dalam hal lain dimana AES tersebut digunakan.
Algoritma Rijndael yang ditetapkan sebagai AES memiliki karakteristik yang
istimewa yang menjadikannya mendapat status tersebut. Dalam hal ini pula maka algoritma
ini perlu lah untuk dipelajari karena penggunaannya di kehidupan sehari-hari sudah sangatlah
banyak dan hal ini akan berguna dalam pengembangan dari teknologi kriptografi agar dapat
menemukan terobosan-terobosan baru. Tujuan utama dari kriptografi adalah melindungi
sebuah informasi, begitu pula dengan AES yang dengan serangkaian tahap atau ronde yang
dilakukan dengan menggunakan kunci simetris. Penggunaan AES pun bukan hanya
digunakan dalam hal yang sederhana melainkan perannya sangatlah krusial dalam sebuah
perangkat lunak ataupun dalam hal lain dimana AES tersebut digunakan.

Você também pode gostar