Anda di halaman 1dari 14

ADVANCED ENCRYPTION STANDARD (AES)

Yoki Ariyana PPPPTK IPA BANDUNG, http://www.p4tkipa.org p4tkipa@yahoo.com yokivox@yahoo.com

Abstract Pengaman sistem informasi memiliki beberapa dasar-dasar dan teoriteori yang digunakan. Kriptografi, Enkripsi, dan Dekripsi merupakan dasar dari pengamanan sisteminformasi, ada beberapa algoritma atau metoda dalam encripsi dan dekripsi. Sejak jaman dulu usaha untuk mengamankan informasi telah dilakukan, mulai dari penggunan steganografi pada jaman yunani kuno sampai dengan mesin enigma pada masa perang dunia dan saat ini yang berkembang adalah beberapa algoritma, seperti Data Encryption Standard (DES), International Data Encryption Algorithm (IDEA), Rivest-Shamir and Adleman (RSA), dan masih banyak lagi. Pada paper ni yang akan dititik beratkana dalah algoritma Advanced Encryption Standard (AES) yang merupakan perkembangan dari DES yang dirasakan telah habis dimakan masa (obsolet).

BAB I Pendahuluan

Informasi saat ini sudah menjadi sebuah komoditi yang sangat penting. Bahkan ada yang mengatakan bahwa kita sudah berada di sebuah information-based society. Kemampuan untuk mengakses dan

menyediakan informasi secara cepat dan akurat menjadi sangat esensial bagi sebuah organisasi, baik yang berupa organisasi komersial (perusahaan), perguruan tinggi, lembaga pemerintahan, maupun individual (pribadi). Hal ini dimungkinkan dengan perkembangan pesat di bidang teknologi komputer dan telekomunikasi. Dahulu, jumlah komputer sangat terbatas dan belum digunakan untuk menyimpan hal-hal yang sifatnya sensitif. Advanced Encryption Standard (AES) dikembangkan untuk

menggantkan DES. Algoritma DES yang menggukan 56 bit kunci dirasakan terlalu kecil. Walaupun pada masanya Triple DES telah menangani masalah kunci tersebut, DES banyak digunkan pada enkripsi hardware, kemudian secara berkelanjutan maka dikembangkan kearah enkripsi software. Advanced Encryption Standard (AES) merupakan algoritma

cryptographic yang dapat digunkan untuk mengamakan data [paper]. Algoritma AES adalah blok chipertext 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.

1.1.

Kriptografi Kriptografi (Crytography) berasal dari kata Crypto berarti secret

(rahasia) dan graphy berarti writing (tulisan)[budi] yang memiliki arti ilmu dan seni mempertahankan/mejaga informasi yang dikirim agar menjadi aman

dari orang yang tidak berekepentingan, sehingga informasi dapat dierima tanpa mengalami kerusakan ataupun data yang telah disadap[bose]. Para pelaku atau praktisi kriptografi disebut cryptographers. Sebuah algoritma kriptografik (cryptographic algorithm), disebut cipher, merupakan persamaan matematik yang digunakan untuk proses enkripsi dan dekripsi, kedua enkripsio maupun dekripsi memiliki kaiatan yang sangat erat. Cryptanalysis adalah seni dan ilmu untuk memecahkan ciphertext tanpa bantuan kunci. Cryptanalyst adalah pelaku atau praktisi yang mencari kelemahan dari cryptanalysis [bose]. Cryptology merupakan gabungan dari cryptography dan cryptanalysis.

1.2.

Enkripsi Proses yang dilakukan untuk mengamankan sebuah pesan (yang

disebut plaintext) menjadi pesan yang tersembunyi (disebut ciphertext) dengan menggunkan algoritma kriptografi adalah enkripsi (encryption). Ciphertext adalah pesan yang sudah tidak dapat dibaca dengan mudah. Proses sebaliknya, untuk mengubah ciphertext menjadi plaintext, disebut dekripsi (decryption). Kedua enkripsi dan dekripsi memiliki keterkaitan yang sanagat erat, jika enkripsi mengunakan sebuah metode, kita sebut saja metode A, maka secara otomatis dekripsinyapun harus menggunka metode A. keterkaitan ini penting karena jika metode enkripsi berbeda dengan metode dekripsi maka chipertext yang telah terjadi melalui proses enkripsi tidak dapat menjadi plaintext karena berbeda metode. Lebih lanjut perhatikan gambar berikut.

Gambar 1. proses enkripsi dan dekripsi [bose] Secara matematis proses enkripsi dapat dituliskan sebagai berikut :

E(M ) = C

Dimana, E M C
D (C ) = M

: Enkripsi : Pesan (plaintext) yang akan diamankan : Chipertext

Sedangkan proses dekripsi ditulis sebagai berikut :

Dimana , D C M : Dekripsi : Chipertext yang akan dirubah menjadi plaintext : Pesan (plaintext) yang telah dibuka

BAB II Advanced Encryption Standard

Advanced

Encryption

Standard

(AES)

merupakan

algoritma

cryptographic yang dapat digunkan untuk mengamakan data [paper]. Algoritma AES adalah blok chipertext 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.

2.1.

Sejarah Pada rahun 1997, National Institute of Standard and Technology

(NIST) of United states mengeluarkan Advanced Encryption Standard (AES) untuk menggantikan Data Encryption Standard (DES). AES dibangun dengan maksud untuk mengamankan pemerintahan diberbagi bidang. Algoritma AES di design menggunkan blok chiper minimal dari blok 128 bit input dan mendukung ukuran 3 kunci (3-key-sizes), yaitu kunci 128 bit, 192 bit, dan 256 bit. Pada agustus 1998, NIST mengumumkan bahwa ada 15 proposal AES yang telah diterima dan dievaluasi, setelah mengalami proses seleksi terhadap algoritma yang masuk, NIST menumumkan pada tahu 1999 bahwa hanya ada 5 algoritma yang diterima, algoritma tersebut adalah : 1. MARS 2. RC6 3. Rijndael 4. Serpent 5. Twofish

[06] Alagoritma-algoritma tersebut manjalani berbagai macam pengetesan. Pada bulan oktober 2000, NIST mengumumkan bahwa Rijndael sebagai lagoritma yang terpilih untuk standar AES yang baru. Baru pada februari 2001 NIST mengirimkan draff kepada Federal Information Processing Standards (FIPS) untuk standar AES. Kemudian pada 26 November 2001, NIST mengumumkan produk akhir dari Advanced Encryption Standard. [handout]

2.2.

Input dan Output Input dan output dari algoritma AES adalah berisikan sequence dari

128 bit (urutan bilngan 0 dan 1). Urutan tersebut berbentuk blok dan jumlah bit menjadi ukuran dari panjangnnya. Kunci chiper dari algoritma AES adalah urutan dari 128, 192, dan 256 bit, selain itu maka tidak termasuk kedalam standar AES. Ukuran dari AES akan selalu dimulai dengan 0 dan diakhiri sesuai dengan jumlah bloknnya, 128, 192, atau 256. misal kita menggukan variabel i sebagai index yang berada diantara blok 0 i 128, 0 i 192, dan 0 i 256,

2.3.

Byte bit,

Unit dasar dari algoritma AES adalah byte yang berisikan deretan 8

untuk input, output, atau chiper dirulis sebagai a, byte menghasilkan array yang dapat dbentuk dengan notasi an atau a[n], n sendiri merupakan : Key length = 128 bits, 0 n < 16; Block length = 128 bits, 0 n < 16;

Key length = 192 bits, 0 n < 24; Key length = 256 bits, 0 n < 32.

Block length = 128 bits, 0 n < 24; Block length = 128 bits, 0 n < 32;

Seluruh nilai dalam byte pada algoritma AES didukung oleh polynomial dari {b7, b6, b5, b4, b3, b2, b1, b0} sehingga dapat dibuat :

b7 x 7 + b6 x 6 + b5 x 5 + b4 x 4 + b3 x 3 + b2 x 2 + b1 x + b0 = bi x i
i =0

For example, {01100011} sehingga bisa kita dapat x6 + x5 + x + 1 , nilai ini juga dapat didapat dari hasil pemisahan 4 bit dan melihat tabel hexadesimal, sehingga dapat menghasilkan {63}, perhatikan gambar.

Gambar Representasi hexadesimal

2.4.

Array dari Byte

Array byte dapat dtuliskan sebagai : a1 a2 a3 a15 jika ye yang diinput berasal dari 128 bit ditliskan sebagai : input1 input2 input3 input126 input127 jika kita gabungkan maka akan berbentuk : a0 = {input0, input1, , input7 } a1 = {input8, input9, , input15 } a7 = {input120, input121, , input127 } sehingga secara umum : an = {input8n, input8n+1, , input8n+7}

Gambar bagaimana pemberian nomor bit.

2.5.

State

Secara internal, operasi algoritma AES dilakukan pada array 2D dari bytes yang disebut State. State terdiri dari empat baris bytes, masing-masing berisi Nb bytes, di mana Nb adalah panjangnya blok yang dibagi oleh 32. Di dalam Array State yang ditandai oleh lambang, masing-masing byte individu mempunyai dua indeks, dengan jumlah barisnya r didalam rentang 0 r< 4 dan jumlah kolom c didalam rentang 0 c< Nb. Ini mengijinkan byte State untuk dikenal sebagai sr,c maupun s[r,c]. Karena standard ini, Nb=4, yaitu, 0 c < 4. input the array of bytes in0, in1, in15 is dimasukan pada State array, lihat gambar. Cipher atau kebalikan dari operasi Cipher adalah memasukkan kedalam State array, kemudian langklah akhirnya adalah menyalin hasil pada output the array of bytes out0, out1, out15.

Gambar State array input and output.

Pada awal chiper Atau Kebalikan dari chiper, masukan array disalin kepada State Array menurut persamaan s[r, c] = in[r + 4c] untuk 0 r < 4 and 0 c < Nb, dan pada akhir chiper Dan Kebalikan dari chiper, State disalin kepada output array menurut persamaan: out[r + 4c] = s[r, c] untuk 0 r < 4 and 0 c < Nb.

BAB III Spesifikasi Algoritma AES

Algoritma AES mengenkripsi 128-bit blok palintext (M), menjadi 128-bit blok chipertext (C), menggunakan kunci chiper (chiper key K) yang panjangnya diantara 128-bit, 192-bit, atau 256-bit. Perbedaan dari panjang kunci mejadikan nama kunci AES-128, AES-192, dan AES-256. algoritma AES berjalan delam hitungan byte dan berdasarkan ukuran blok dari input, output dan kuncinya yang direpresentasikan dalam 32-bit words sama dengan 4 byte. Algoritma AES menggukanan pada Number of Rounds Nr pada saat eksekusinya tergantung pada ukuran daeru kunci yang digunakan, seperti terlihat pada tabel dibawah : AES Algorithm AES-128 AES-192 AES-256 (Input/Output size) Key Length Number Block Size Nb 4 Words 4 Words 4 Words Nk 4 Words 6 Words 8 Words rounds Nr 10 rounds 12 rounds 14 rounds of

Setiap rounds berisi 4 byte-oriented cryptographic transformation : 1. Byte subtitution 2. Shifting rows of the state array 3. data Mixing antara kolom dengan state array 4. round keyaddition pada state array jika kita lihat pada psudocode untuk chiper yang berisikan 4 trasnformation diatas :

Cipher(byte in[4*Nb], byte out[4*Nb], word w[Nb*(Nr+1)]) begin byte state[4,Nb] state = in AddRoundKey(state, w[0, Nb-1]) for round = 1 step 1 to Nr1 SubBytes(state) ShiftRows(state) MixColumns(state) AddRoundKey(state, w[round*Nb, (round+1)*Nb-1]) end for SubBytes(state) ShiftRows(state) AddRoundKey(state, w[Nr*Nb, (Nr+1)*Nb-1]) out = state end (sumber : AES Draff spesification : http://csrc.nist.gov/encryption/aes/.)

3.1.

SubBytes() Trasformation.

Tranformasi pertama pada AES adalah transformasi non-linier byte subtitution yang disebut sebagai tranformasi SubBytes().SubBytes()

beroperasi dengan bebas pada masing-masing byte State menggunakan tabel subtitusi (S-box). Dalam bentuk matriks, elemen S-Box dapat dinyatakan :

Gambar dibawah menggambarkan efek Subbytes() perubahan bentuk pada State.

S-Box digunakan pada transformasi Subbytes() diprlihatkan dalam bentuk hexadecimal, Sebagai contoh, jika s1,1= { 53}, kemudian nilai subtitusi akan ditentukan oleh persimpangan antara baris dengan index 5 dan kolom dengan index 3. Ini akan menghasilkan s1,1 ={ed}

3.2.

ShiftRows() Trasformation.

Pada tranformasi ShiftRows(), byte pada tiga baris terakhir digeser sebanyak ofsetnya, sedangkan byte pada baris pertama tidak mengamalai

penggerserran.

Sr`,c = Sr ,( c + shift ( r , Nb )) mod Nb

Untuk 0 < r < 4 dan 0 c < Nb

Pergeseran byte tergantung pada nilai pada barisnya r, (untuk Nb = 4):

Shift(0,4)=0; bergeser 0 langkah atau tidak bergeser Shift(1,4)=1; bergeser 1 langkah Shift(2,4)=2; bergeser 2 langkah Shift(3,4)=3; bergeser 3 langkah Pergeeseran dilakukan dari depan kebelankang, perhatikan ilustrasi

transformasi ShiftRows() dan gambar dibawah menujukan bagaimana ShiftRows() bergerser.

3.3.

MixColumns() Trasformation.

Tarnsformasi MixColumns() digunkan untuk mencampur kolom dari matrik State, Kolom direpresentasikan sebagai polinomial Galois Field GF(28). output dari tarnsformasi MixColumns() s`(x), seperti pada persamaan berikut : s`( x) = a( x) s ( x) mod( x 4 + 1) Dimana a(x) = 03x3 + 01x2 + 01x1 + 02, kemudian dapat digambarkan sebagaio matrik :

Untuk 0 c < Nb Hasil dari perkaliaan pada matrik tersebut dapat dilihat pada persamaanpersamaan dibawah :

Gambar tarnsformasi MixColumns() pada State Column-to-column

3.4.

AddRoundKey() Trasformation.

Kunci dari bit dihasilkan dari kunci chiper yang asli dengan menggunkan tarnsformasi key expansion yang dijumlahkan bit pada array dari state dengan operasi XOR yang sederhana. Nilai awal dari round key adalah w0, untuk round = 0, ditambahkan pertama kali para criptographic round. Kemudian setiap round untuk 1 round Nr, kemudian 32-bit yang berbeda pada round-key wi ditambahkan.

Untuk 0 c < Nb.

Gambar ilustrasi transformasi AddRoundKey()

Anda mungkin juga menyukai