Anda di halaman 1dari 13

Tugas Makalah

IF2153 Matematika Diskrit, Sem. I Tahun 2006/2007

Tulislah sebuah makalah yang berkaitan dengan salah satu dari pokok bahasan Matematika
Diskrit:

1. Logika
2. Himpunan
3. Relasi dan Fungsi
4. Induksi Matematik
5. Teori Bilangan (Bulat)
6. Kombinatorial
7. Graf dan aplikasinya
8. Pohon dan aplikasinya
9. Kompleksitas algoritma

Makalah dapat berupa:


 Mengulas aplikasi dari salah satu pokok bahasan itu untuk menyelesaikan masalah.
 Mengulas kajian atau teori baru yang berkaitan dengan pokok bahasan yang dipilih
 Mengulas aspek-aspek yang terkait dengan perkembangan Matematika Diskrit
 Mengulas hubungan antara topik yang dipilih dengan cabang ilmu lain (baik di
Informatika maupun di luar Informarika)
 Dll

Contoh-contoh judul makalah:


1. Penerapan Induksi Matematik untuk Menguji Kebenaran Program
2. Aplikasi Graf Planar untuk rancangan Integrated Circuit
3. Penerapan isomorfisma graf untuk menentukan isomer senyawa kimia karbon
4. Penggunaan teori kombinatorial untuk mengukur keamanan sandi0lewat.
5.
6. dll

Makalah ditulis dengan ketentuan berikut:


1. Font = Times New Roman, Ukuran font = 10
2. Lebar spasi = 1
3. Format 2 kolom (lihat contoh terlampir)
4. Gambar yang besar (jika ada) tidak harus diletakkan dalam satu kolom tertentu), tetapi
boleh penuh (memakai 2 kolom).
5. Referensi harus ditulis lengkap dengan cara penulisan referensi seperti contoh. Referensi
dari internet harus mencantumkan URL dan tanggal/waktu akses.
6. Jumlah halaman minimal = 10 halaman

Makalah dikumpulkan pada saat Ujian Akhir Semester. Soft copy makalah dalam format pdf
dikirim via email ke rinaldi@informatika.org untuk dimuat di dalam website
www.informatika.org/~rinaldi. Berlaku untuk K1 dan K2.

Deskripsi tugas ini dapat dilihat di http://www.informatika.org/~rinaldi/Matdis/2006-


2007/bahankuliah2006.htm
STUDI DAN IMPLEMENTASI ADVANCED ENCRYPTION
STANDARD DENGAN EMPAT MODE OPERASI BLOCK CIPHER
Chan Lung – NIM : 13501039
Program Studi Teknik Informatika, Institut Teknologi Bandung
Jl. Ganesha 10, Bandung
E-mail : if11039@students.if.itb.ac.id

Abstrak

Makalah ini membahas tentang studi dan implementasi Advanced Encryption Standard (AES) untuk
menyandikan data yang disimpan dalam media penyimpanan. Advanced Encryption Standard (AES)
merupakan sebuah algoritma kriptografi simetri yang beroperasi dalam bentuk blok 128-bit. AES
mendukung panjang kunci 128-bit, 192-bit, dan 256-bit. Implementasi AES dalam makalah ini meliputi
empat mode operasi yaitu mode operasi electronic code book (ECB), cipher block chaining (CBC), cipher
feedback (CFB), dan output feedback (OFB).

Sebuah perangkat lunak bernama AESEncryptor dibangun untuk implementasi algoritma kriptografi AES
dengan mode operasi ECB, CBC, CFB, dan OFB. Perangkat lunak AESEncryptor dikembangkan dengan
menggunakan tool pengembangan Borland Delphi 7.0 dalam lingkungan pengembangan sistem operasi
Windows. Perangkat lunak AESEncryptor mendukung penyandian sembarang arsip berukuran sembarang.

Perangkat lunak AESEncryptor tersebut kemudian digunakan untuk membandingkan tingkat keamanan
data algoritma kriptografi AES dengan mode operasi ECB, CBC, CFB, dan OFB. Tingkat keamanan data
algoritma kriptografi AES dengan mode operasi ECB, CBC, CFB, dan OFB diuji dengan melakukan
beberapa proses manipulasi terhadap arsip hasil enkripsi seperti pengubahan satu bit atau lebih blok
cipherteks, penambahan blok cipherteks semu, dan penghilangan satu atau lebih blok cipherteks.
Kemudian, dilakukan proses dekripsi terhadap arsip hasil enkripsi AESEncryptor yang telah dimanipulasi
tersebut untuk dibandingkan plainteksnya dengan plainteks arsip asal. Hasil uji menunjukkan bahwa
algoritma AES merupakan salah satu solusi yang baik untuk mengatasi masalah keamanan dan kerahasiaan
data. AES juga dapat diimplementasikan secara efisien sebagai perangkat lunak dengan implementasi
menggunakan tabel. Selain itu, implementasi AES dengan mode operasi ECB, CBC, CFB, dan OFB
memiliki keuntungan dan kelemahannya masing-masing.

Kata kunci: Advanced Encryption Standard, electronic code book, cipher block chaining, cipher
feedback, output feedback, AESEncryptor, enkripsi, dekripsi.

1. Pendahuluan adalah data rahasia, sehingga data asli tidak


dapat diketahui oleh pihak yang tidak
Pengiriman data dan penyimpanan data melalui
berkepentingan. Data asli hanya dapat diketahui
media elektronik memerlukan suatu proses yang
oleh penerima dengan menggunakan kunci
dapat menjamin keamanan dan keutuhan dari
rahasia.
data yang dikirimkan tersebut. Data tersebut
harus tetap rahasia selama pengiriman dan harus
Algoritma penyandian data yang telah dijadikan
tetap utuh pada saat penerimaan di tujuan. Untuk
standard sejak tahun 1977 adalah Data
memenuhi hal tersebut, dilakukan proses
Encryption Standard (DES). Kekuatan DES ini
penyandian (enkripsi dan dekripsi) terhadap data
terletak pada panjang kuncinya yaitu 56-bit.
yang akan dikirimkan. Enkripsi dilakukan pada
Perkembangan kecepatan perangkat keras dan
saat pengiriman dengan cara mengubah data asli
meluasnya penggunaan jaringan komputer
menjadi data rahasia sedangkan dekripsi
terdistribusi mengakibatkan penggunaan DES,
dilakukan pada saat penerimaan dengan cara
dalam beberapa hal, terbukti sudah tidak aman
mengubah data rahasia menjadi data asli. Jadi
dan tidak mencukupi lagi terutama dalam hal
data yang dikirimkan selama proses pengiriman
yang pengiriman data melalui jaringan internet. Pada cipher blok, rangkaian bit-bit plainteks
Perangkat keras khusus yang bertujuan untuk dibagi menjadi blok-blok bit dengan panjang
menentukan kunci 56-bit DES hanya dalam sama [3]. Enkripsi dilakukan terhadap blok bit
waktu beberapa jam sudah dapat dibangun. plainteks menggunakan bit-bit kunci (yang
Beberapa pertimbangan tersebut telah ukurannya sama dengan blok plainteks).
manandakan bahwa diperlukan sebuah standard Algoritma enkripsi menghasilkan blok cipherteks
algoritma baru dan kunci yang lebih panjang. yang berukuran sama dengan blok plainteks.
Pada tahun 1997, the U.S. National Institue of Dekripsi dilakukan dengan cara yang serupa
Standards and Technology (NIST) seperti enkripsi.
mengumumkan bahwa sudah saatnya untuk Misalkan blok plainteks (P) yang berukuran m
pembuatan standard algoritma penyandian baru bit dinyatakan sebagai vektor
yang kelak diberi nama Advanced Encryption
Standard (AES). Algoritma AES ini dibuat P = (p1, p2, ..., pm)
dengan tujuan untuk menggantikan algoritma
DES yang telah lama digunakan dalam yang dalam hal ini pi adalah bit 0 atau bit 1 untuk
menyandikan data elektronik. Setelah melalui i = 1, 2, …, m, dan blok cipherteks (C) adalah
beberapa tahap seleksi, algoritma Rijndael
ditetapkan sebagai algoritma kriptografi AES C = (c1, c2, ..., cm)
pada tahun 2000. Algoritma AES merupakan
algoritma kriptografi simetrik yang beroperasi yang dalam hal ini ci adalah bit 0 atau bit 1 untuk
dalam mode penyandi blok (block cipher) yang i = 1, 2, …, m.
memproses blok data 128-bit dengan panjang
kunci 128-bit (AES-128), 192-bit (AES-192), Bila plainteks dibagi menjadi n buah blok,
atau 256-bit (AES-256). barisan blok-blok plainteks dinyatakan sebagai

Beberapa mode operasi yang dapat diterapkan (P1, P2, …, Pn)


pada algoritma kriptografi penyandi blok AES di
antaranya adalah Electronic Code Book (ECB), Untuk setiap blok plainteks Pi, bit-bit
Cipher Block Chaining (CBC), Cipher Feedback penyusunnya dapat dinyatakan sebagai vektor
(CFB), dan Output Feedback (OFB).
Implementasi AES dengan mode operasi ECB, Pi = (pi1, pi2, ..., pim)
CBC, CFB, dan OFB tentu saja memiliki
kelebihan dan kekurangan tertentu dalam aspek Enkripsi dengan kunci K dinyatakan dengan
tingkat keamanan data. persamaan

2. Tipe dan Mode Algoritma Simetri Ek(P) = C,


Algoritma kriptografi (cipher) simetri dapat
sedangkan dekripsi dengan kunci K dinyatakan
dikelompokkan menjadi dua kategori, yaitu:
dengan persamaan
1. Cipher aliran (ctream cipher)
Algoritma kriptografi beroperasi pada
Dk(C) = P
plainteks/cipherteks dalam bentuk bit
tunggal, yang dalam hal ini rangkaian
Skema enkripsi dan dekripsi dengan cipher blok
bit dienkripsikan/didekripsikan bit per
dapat dilihat pada Gambar 1.
bit.
2. Cipher blok (block cipher)
Algoritma kriptografi beroperasi pada
plainteks/cipherteks dalam bentuk blok
bit, yang dalam hal ini rangkaian bit
dibagi menjadi blok-blok bit yang
panjangnya sudah ditentukan
sebelumnya.

2.1 Cipher Blok


Enkripsi: Dekripsi:
Ada kemungkinan panjang plainteks tidak habis
Blok Plainteks P
P = (p1,p2, ..., pm)
Blok Cipherteks C
C = (c1,c2, ..., cm)
dibagi dengan panjang ukuran blok yang
ditetapkan. Hal ini mengakibatkan blok terakhir
berukuran lebih pendek daripada blok-blok
lainnya. Satu cara untuk mengatasi hal ini adalah
Kunci K
E
Kunci K
D dengan padding, yaitu menambahkan blok
terakhir dengan pola bit yang teratur agar
panjangnya sama dengan ukuran blok yang
ditetapkan.
Blok Cipherteks C Blok Plainteks P
C = (c1,c2, ..., cm) P = (p1,p2, ..., pm)
2.2.2 Cipher Block Chaining (CBC)
Gambar 1 Skema Enkripsi dan Dekripsi
dengan Cipher Blok Mode ini menerapkan mekanisme umpan balik
(feedback) pada sebuah blok, yang dalam hal ini
2.2 Mode Operasi Cipher Blok hasil enkripsi blok sebelumnya diumpanbalikkan
ke dalam enkripsi blok yang current. Caranya,
Plainteks dibagi menjadi beberapa blok dengan blok plainteks yang current di-XOR-kan terlebih
panjang tetap. Beberapa mode operasi dapat dahulu dengan blok cipherteks hasil enkripsi
diterapkan untuk melakukan enkripsi terhadap sebelumnya, selanjutnya hasil peng-XOR-an ini
keseluruhan blok plainteks. Empat mode operasi masuk ke dalam fungsi enkripsi. Dengan mode
yang lazim diterapkan pada sistem blok cipher CBC, setiap blok cipherteks bergantung tidak
adalah: hanya pada blok plainteksnya tetapi juga pada
1. Electronic Code Book (ECB) seluruh blok plainteks sebelumnya.
2. Cipher Block Chaining (CBC)
3. Cipher Feedback (CFB) Dekripsi dilakukan dengan memasukkan blok
4. Output Feedback (OFB) cipherteks yang current ke fungsi dekripsi,
kemudia meng-XOR-kan hasilnya dengan blok
2.2.1 Electronic Code Book (ECB) cipherteks sebelumnya. Dalam hal ini, blok
Pada mode ini, setiap blok plainteks Pi dienkripsi cipherteks sebelumnya berfungsi sebagai umpan
secara individual dan independen menjadi blok maju (feedforward) pada akhir proses dekripsi.
cipherteks Ci. Secara matematis, enkripsi dengan Skema enkripsi dan dekripsi dengan mode CBC
mode ECB dinyatakan sebagai dapat dilihat pada Gambar 3.

Pi-1 Pi Ci-1 Ci
Ci = Ek(Pi)
Ci-2 Å Å
dan dekripsi sebagai

Pi = Dk(Ci) Ek Ek Dk Dk

yang dalam hal ini, Pi dan Ci masing-masing


Ci-2 Å Å
blok plainteks dan cipherteks ke-i. Skema
enkripsi dan dekripsi dengan mode ECB dapat
dilihat pada Gambar 2. Ci-1 Ci Pi-1 Pi
Enkripsi Dekripsi
Blok Plainteks P1 Blok Cipherteks C1
Gambar 3 Enkripsi dan Dekripsi dengan
Mode CBC

Kunci K Kunci K
Secara matematis, enkripsi dengan mode CBC
E D
dinyatakan sebagai
Ci = Ek(P1 Ci)
dan dekripsi sebagai
Blok Cipherteks C1 Blok Plainteks P1
Pi = Dk(Ci)  Ci-1
Yang dalam hal ini, C0 = IV (initialization
Gambar 2 Skema Enkripsi dan Dekripsi
vector). IV dapat diberikan oleh pengguna atau
dengan Mode ECB
dibangkitkan secara acak oleh program. Jadi,
untuk menghasilkan blok cipherteks pertama
(C1), IV digunakan untuk menggantikan blok (menempati n posisi bit paling kanan
cipherteks sebelumnya, C0. Sebaliknya pada antrian), dan semua m-n lainnya di
dekripsi, blok plainteks diperoleh dengan cara dalam antrian digeser ke kiri
meng-XOR-kan IV dengan hasil dekripsi menggantikan n bit pertama yang sudah
terhadap blok cipherteks pertama. digunakan.
Pada mode CBC, blok plainteks yang sama 3. m-n bit cipherteks berikutnya
menghasilkan blok cipherteks yang berbeda dienkripsikan dengan cara yang sama
hanya jika blok-blok plainteks sebelumnya seperti pada langkah 2.
berbeda.
Antrian (shift register) m-bit Antrian (shift register) m-bit

2.2.3 Cipher-Feedback (CFB)


K K
E D
Pada mode CFB, data dienkripsikan dalam unit
yang lebih kecil daripada ukuran blok. Unit yang
dienkripsikan dapat berupa bit per bit, 2 bit, 3 bit, Left-most n-bit
ki Left-most n-bit
ki

dan seterusnya. Bila unit yang dienkripsikan satu pi Å ci ci Å pi

karakter setiap kalinya, maka mode CFB-nya Enciphering Deciphering


disebut CFB 8-bit. Secara umum CFB n-bit Catatan: Algoritma E = Algoritma D

mengenkripsi plainteks sebanyak n bit setiap Gambar 4 Mode CFB n-bit


kalinya, yang mana n ≤ m (m = ukuran blok).
Mode CFB membutuhkan sebuah antrian (queue) Baik enkripsi maupun dekripsi, algoritma E dan
yang berukuran sama dengan ukuran blok D yang digunakan sama. Mode CFB n-bit yang
masukan. bekerja pada blok berukuran m-bit dapat dilihat
Tinjau mode CFB n-bit yang bekerja pada blok pada Gambar 4.
berukuran m-bit. Algoritma enkripsi dengan
mode CFB adalah sebagai berikut: Secara formal, mode CFB n-bit dapat dinyatakan
1. Antrian diisi dengan IV (initialization sebagai:
vector).
2. Enkripsikan antrian dengan kunci K. n Proses Enkripsi:
bit paling kiri dari hasil enkripsi berlaku Ci = Pi  MSBm(Ek(Xi))
sebagai keystream (ki) yang kemudian Xi+1 = LSBm-n(Xi) || Ci
di-XOR-kan dengan n-bit dari plainteks
menjadi n-bit pertama dari cipherteks. Proses Dekripsi:
Salinan (copy) n-bit dari cipherteks ini Pi = Ci  MSBm(Dk(Xi))
dimasukkan ke dalam antrian Xi+1 = LSBm-n(Xi) || Ci
(menempati n posisi bit paling kanan
antrian), dan semua m-n bit lainnya di yang dalam hal ini:
dalam antrian digeser ke kiri Xi = isi antrian dengan Xi adalah IV
menggantikan n bit pertama yang sudah E = fungsi enkripsi dengan algoritma
digunakan. cipher blok
3. m-n bit plainteks berikutnya D = fungsi dekripsi dengan algoritma
dienkripsikan dengan cara yang sama cipher blok
seperti pada langkah 2. K = kunci
m = panjang blok enkripsi/dekripsi
Sedangkan, algoritma dekripsi dengan mode n = panjang unit enkripsi/dekripsi
CFB adalah sebagai berikut: || = operator penyambungan
1. Antrian diisi (concatenation)
dengan IV (initialization vector). MSB = Most Significant Byte
2. Dekripsikan LSB = Least Significant Byte
antrian dengan kunci K. n bit paling kiri
dari hasil dekripsi berlaku sebagai
keystream (ki) yang kemudian di-XOR-
kan dengan n-bit dari cipherteks
menjadi n-bit pertama dari plainteks.
Salinan (copy) n-bit dari cipherteks
dimasukkan ke dalam antrian
Pi-1 Pi Pi+1 mode OFB adalah sebagai berikut (lihat Gambar
6):
1. Antrian diisi dengan IV (initialization
Å Ek Å Ek Å vector).
2. Enkripsikan antrian dengan kunci K. n
bit paling kiri dari hasil enkripsi
dimasukkan ke dalam antrian
Ci-1 Ci Ci+1 (menempati n posisi bit paling kanan
Enkripsi CFB antrian), dan m-n bit lainnya di dalam
antrian digeser ke kiri menggantikan n
Ci-1 Ci Ci+1
bit pertama yang sudah digunakan. n bit
paling kiri dari hasil enkripsi juga
berlaku sebagai keystream (ki) yang
kemudian di-XOR-kan dengan n-bit dari
Å Dk Å Dk Å
plainteks menjadi n-bit pertama dari
cipherteks.
3. m-n bit plainteks berikutnya
Pi-1 Pi Pi+1
dienkripsikan dengan cara yang sama
Dekripsi CFB
seperti pada langkah 2.
Catatan: Algoritma E = Algoritma D

Gambar 5 Enkripsi dan Dekripsi Mode CFB Antrian (shift register) m-bit Antrian (shift register) m-bit

n-bit untuk blok n-bit


K K
E D
Jika m = n, maka mode CFB n-bit adalah seperti
pada Gambar 5. CFB menggunakan skema
umpan balik dengan mengaitkan blok plainteks Left-most n-bit
ki Left-most n-bit
ki

bersama-sama sedemikian sehingga cipherteks pi Å ci ci Å pi

bergantung pada semua blok plainteks Enciphering Deciphering

sebelumnya. Skema enkripsi dan dekripsi dengan Catatan: Algoritma E = Algoritma D

mode CFB dapat dilihat pada Gambar 5. Gambar 6 Mode OFB n-bit
Dari Gambar 5 dapat dilihat bahwa:
Sedangkan, algoritma dekripsi dengan mode
Ci = Pi  Ek(Ci-1) OFB adalah sebagai berikut (lihat Gambar 6):
Pi = Ci  Dk(Ci-1) 1. Antrian diisi
dengan IV (initialization vector).
IV pada CFB tidak perlu dirahasiakan. IV harus 2. Dekripsikan
unik untuk setiap pesan, sebab IV yang sama antrian dengan kunci K. n bit paling kiri
untuk setiap pesan yang berbeda akan dari hasil dekripsi dimasukkan ke dalam
menghasilkan keystream ki yang sama. antrian (menempati n posisi bit paling
kanan antrian), dan m-n bit lainnya di
2.2.4 Output-Feedback (OFB) dalam antrian digeser ke kiri
menggantikan n bit pertama yang sudah
Pada mode OFB, data dienkripsikan dalam unit digunakan. n bit paling kiri dari hasil
yang lebih kecil daripada ukuran blok. Unit yang dekripsi juga berlaku sebagai keystream
dienkripsikan dapat berupa bit per bit, 2 bit, 3 bit, (ki) yang kemudian di-XOR-kan dengan
dan seterusnya. Bila unit yang dienkripsikan satu n-bit dari cipherteks menjadi n-bit
karakter setiap kalinya, maka mode OFB-nya pertama dari plainteks.
disebut OFB 8-bit. Secara umum OFB n-bit 3. m-n bit
mengenkripsi plainteks sebanyak n bit setiap cipherteks berikutnya dienkripsikan
kalinya, yang mana n ≤ m (m = ukuran blok). dengan cara yang sama seperti pada
Mode OFB membutuhkan sebuah antrian langkah 2.
(queue) yang berukuran sama dengan ukuran
blok masukan. Baik enkripsi maupun dekripsi, algoritma E dan
Tinjau mode OFB n-bit yang bekerja pada blok D yang digunakan sama. Mode OFB n-bit yang
berukuran m-bit. Algoritma enkripsi dengan bekerja pada blok berukuran m-bit dapat dilihat
pada Gambar 6.
3. Advanced Encryption Standard (AES)
Pi-1 Pi Pi+1
3.1 Panjang Kunci dan Ukuran Blok Rijndael
Å Å Å
Ek Ek Rijndael mendukung panjang kunci 128 bit
sampai 256 bit dengan step 32 bit. Panjang kunci
dan ukuran blok dapat dipilih secara independen.
Karena AES menetapkan bahwa ukuran blok
Ci-1 Ci Ci+1
harus 128 bit, dan panjang kunci harus 128, 192,
Enkripsi OFB
dan 256 bit, maka dikenal AES-128, AES-192,
Ci-1 Ci Ci+1 AES-256. Setiap blok dienkripsi dalam sejumlah
putaran tertentu bergantung pada panjang
kuncinya.

Ek Ek Tabel 1 Jumlah Putaran Setiap Blok pada


Å Å Å AES

Pi-1 Pi Pi+1 Varian Panjang Ukuran Jumlah


Dekripsi OFB
AES Kunci Blok Putaran
Catatan: Algoritma E = Algoritma D
(Nk (Nb (Nr)
Gambar 7 Enkripsi dan Dekripsi OFB n-bit words) words)
untuk blok n-bit AES-128 4 4 10
AES-192 6 4 12
Secara formal, mode OFB n-bit dapat dinyatakan AES-256 8 4 14
sebagai:
Catatan: 1 word = 32 bit
Proses Enkripsi:
Secara de-fakto, hanya ada dua varian AES, yaitu
Ci = Pi  MSBm(Ek(Xi)) AES-128 dan AES-256, karena akan sangat
Xi+1 = LSBm-n(Xi) || LSBn(Ek(Xi)) jarang pengguna menggunakan kunci yang
panjangnya 192 bit.
Proses Dekripsi: Karena AES mempunyai panjang kunci paling
Pi = Ci  MSBm(Dk(Xi)) sedikit 128 bit, maka AES tahan terhadap
Xi+1 = LSBm-n(Xi) || LSBn(Ek(Xi)) serangan exhaustive key search dengan teknologi
saat ini. Dengan panjang kunci 128-bit, maka
yang dalam hal ini: terdapat 2128 ≈ 3,4 x 1038 kemungkinan kunci.
Xi = isi antrian dengan Xi adalah IV Jika digunakan sebuah mesin dengan semilyar
E = fungsi enkripsi dengan algoritma prosesor paralel, masing-masing dapat
cipher blok menghitung sebuah kunci setiap satu pico detik,
D = fungsi dekripsi dengan algoritma maka akan dibutuhkan waktu 10 10 tahun untuk
cipher blok mencoba seluruh kemungkinan kunci.
K = kunci
m = panjang blok enkripsi/dekripsi 3.2 Algoritma Rijndael
n = panjang unit enkripsi/dekripsi
|| = operator penyambungan Seperti pada DES, Rijndael menggunakan
(concatenation) substitusi dan permutasi, dan sejumlah putaran.
MSB = Most Significant Byte Untuk setiap putarannya, Rijndael menggunakan
LSB = Least Significant Byte kunci yang berbeda. Kunci setiap putaran disebut
round key. Tetapi tidak seperti DES yang
Jika m = n, maka mode OFB n-bit adalah seperti berorientasi bit, Rijndael beroperasi dalam
pada Gambar 6. OFB menggunakan skema orientasi byte sehingga memungkinkan untuk
umpan balik dengan mengaitkan blok plainteks implementasi algoritma yang efisien ke dalam
bersama-sama sedemikian sehingga cipherteks software dan hardware [1].
bergantung pada semua blok plainteks
sebelumnya. Skema enkripsi dan dekripsi dengan
mode OFB dapat dilihat pada Gambar 7.
Garis besar algoritma Rijndael yang beroperasi berukuran NROWS x NCOLS. Elemen array
blok 128-bit dengan kunci 128-bit adalah sebagai state diacu sebagai S[r,c], dengan 0 ≤ r < 4
berikut: dan 0 ≤ c < Nc (Nc adalah panjang blok dibagi
1. AddRoundKey: 32). Pada AES, Nc = 128/32 = 4.
melakukan XOR antara state awal
(plainteks) dengan cipher key. Tahap ini
Plain Text
disebut juga initial round.
2. Putaran sebanyak Nr –
1 kali. Proses yang dilakukan pada setiap
putaran adalah: Initial Round
AddRoundKey Å Cipher Key
a. ByteSub: substitusi byte dengan
menggunakan tabel substitusi (S-box).
Tabel substitusi dapat dilihat pada Standard Round
tabel 2, sedangkan ilustrasi ByteSub 1-ByteSub
Nr – 1
2-ShiftRow
dapat dilihat pada gambar 9. 3-MixColumn
Rounds

b. ShiftRow: pergeseran baris-baris 4-AddRoundKey Å Round Key Nn

array state secara wrapping. Ilustarsi


ShiftRow dapat dilihat pada gambar
10. Final Round
1-ByteSub
c. MixColumn: 2-ShiftRow
mengacak data di masing-masing 3-AddRoundKey Å Round Key Nr

kolom array state. Ilustarsi


MixColumn dapat dilihat pada gambar
11. Cipher Text n : putaran ke
d. AddRoundKey: melakukan XOR
antara state sekarang dengan round Gambar 8 Diagram Proses Enkripsi AES
key. Ilustarsi AddRoundKey dapat
dilihat pada gambar 12. Tabel 2 Tabel S-box yang digunakan dalam
3. Final round: proses transformasi ByteSub() AES
untuk putaran terakhir:
a. ByteSub.
b. ShiftRow.
c. AddRoundKey.

Diagram proses enkripsi AES dapat dilihat pada


Gambar 8.

Algoritma Rijndael mempunyai 3 parameter


sebagai berikut:
1. plainteks :
array yang berukuran 16 byte, yang berisi
data masukan.
2. cipherteks : array yang ByteSub
berukuran 16 byte, yang berisi hasil
enkripsi.
3. key : array yang Gambar 9 Ilustrasi Transformasi ByteSub()
berukuran 16 byte, yang berisi kunci AES
ciphering (disebut juga cipher key).
Dengan 16 byte, maka baik blok data dan kunci
yang berukuran 128-bit dapat disimpan di dalam
ketiga array tersebut (128 = 16 x 8).

Selama kalkulasi plainteks menjadi cipherteks, Gambar 10 Ilustrasi Transformasi ShiftRow()


status sekarang dari data disimpan di dalam AES
array of byte dua dimensi, state, yang
Tabel 3 Tabel S-box yang digunakan dalam
transformasi InvByteSub() AES

Gambar 11 Ilustrasi Transformasi


MixColumn() AES

Gambar 12 Ilustrasi Transformasi Diagram proses dekripsi AES dapat dilihat pada
AddRoundKey() AES Gambar 13.

3.3 Cipher Kebalikan (Inverse Cipher)


Cipher Text
Cipher kebalikan merupakan algoritma
kriptografi AES yang digunakan untuk
melakukan proses dekripsi cipherteks menjadi Initial Round
plainteksnya. Secara garis besar, cipher AddRoundKey Å Cipher Key
kebalikan yang beroperasi blok 128-bit dengan
kunci 128-bit adalah sebagai berikut:
1. AddRoundKey: melakukan XOR antara Standard Round
state awal (cipherteks) dengan cipher 1-InvShiftRow
Nr – 1
2-InvByteSub
key. Tahap ini disebut juga initial 3-AddRoundKey
Rounds
round. 4-InvMixColumn Å Round Key Nn
2. Putaran sebanyak Nr – 1 kali. Proses
yang dilakukan pada setiap putaran
adalah: Final Round
a. InvShiftRow: pergeseran baris- 1-InvShiftRow
baris array state secara 2-InvByteSub
3-AddRoundKey Å Round Key Nr
wrapping.
b. InvByteSub:
substitusi byte dengan
menggunakan tabel substitusi Plain Text n : putaran ke
kebalikan (inverse S-box).
Tabel substitusi dapat dilihat Gambar 13 Diagram Proses Dekripsi AES
pada tabel 3.
c. AddRoundKey:
melakukan XOR antara state
sekarang dengan round key.
d. InvMixColumn: mengacak data
di masing-masing kolom array
state.
4. Pengujian
3. Final round: proses untuk putaran
terakhir: 4.1 Perancangan Kasus Uji Pengujian
a. InvShiftRow. Perangkat Lunak AESEncryptor
b. InvByteSub. Berdasarkan tata ancang dan teknik pengujian
c. AddRoundKey. yang telah dijelaskan, maka dirancang kasus-
kasus uji sebagai berikut:
1. Kasus Uji 1
Kasus Uji 1 bertujuan untuk menguji
kebenaran proses enkripsi dan dekripsi
beserta lama waktu proses enkripsi dan
dekripsi dengan menggunakan OFB 8-bit terhadap pengubahan satu bit
algoritma kriptografi AES dengan mode atau lebih blok cipherteks, penambahan
operasi ECB untuk panjang kunci 128- blok cipherteks semu, dan penghilangan
bit, 192-bit, dan 256-bit. satu atau lebih blok cipherteks.
2. Kasus Uji 2
Kasus Uji 2 bertujuan untuk menguji 4.2 Evaluasi Hasil Pengujian Perangkat
kebenaran proses enkripsi dan dekripsi Lunak AESEncryptor
beserta lama waktu proses enkripsi dan
dekripsi dengan menggunakan Dari hasil pengujian Kasus Uji 1, 2, 3, dan 4,
algoritma kriptografi AES dengan mode diketahui bahwa perangkat lunak AESEncryptor
operasi CBC untuk panjang kunci 128- telah melakukan proses enkripsi dan dekripsi
bit, 192-bit, dan 256-bit. algoritma kriptografi AES dengan mode operasi
3. Kasus Uji 3 ECB, CBC, CFB 8-bit, dan OFB 8-bit untuk
Kasus Uji 3 bertujuan untuk menguji panjang kunci 128-bit, 192-bit, dan 256-bit
kebenaran proses enkripsi dan dekripsi dengan benar. Proses enkripsi dengan
beserta lama waktu proses enkripsi dan menggunakan kunci tertentu dengan panjang
dekripsi dengan menggunakan tertentu akan menyandikan isi arsip asal. Proses
algoritma kriptografi AES dengan mode dekripsi dengan menggunakan kunci yang sama
operasi CFB 8-bit untuk panjang kunci dengan kunci yang digunakan dalam proses
128-bit, 192-bit, dan 256-bit. enkripsi (kunci simetris) akan mengembalikan isi
4. Kasus Uji 4 arsip hasil dekripsi menjadi isi arsip asal.
Kasus Uji 4 bertujuan untuk menguji Sedangkan, kesalahan penggunaan kunci
kebenaran proses enkripsi dan dekripsi mengakibatkan isi arsip hasil dekripsi tidak sama
beserta lama waktu proses enkripsi dan dengan arsip asal. Kasus Uji 1, 2, 3, dan 4 juga
dekripsi dengan menggunakan menunjukkan bahwa:
algoritma kriptografi AES dengan mode 1. Lama waktu yang digunakan untuk
operasi OFB 8-bit untuk panjang kunci proses enkripsi dan dekripsi algoritma
128-bit, 192-bit, dan 256-bit. kriptografi AES dengan mode operasi
5. Kasus Uji 5 ECB dan CBC adalah relatif sama.
Kasus Uji 5 bertujuan untuk menguji 2. Lama waktu yang digunakan untuk
tingkat keamanan data algoritma proses enkripsi dan dekripsi algoritma
kriptografi AES dengan mode operasi kriptografi AES dengan mode operasi
ECB terhadap pengubahan satu bit atau CFB 8-bit dan OFB 8-bit adalah relatif
lebih blok cipherteks, penambahan blok sama.
cipherteks semu, dan penghilangan satu 3. Lama waktu yang digunakan untuk
atau lebih blok cipherteks. proses enkripsi dan dekripsi algoritma
6. Kasus Uji 6 kriptografi AES dengan mode operasi
Kasus Uji 6 bertujuan untuk menguji CFB 8-bit dan OFB 8-bit lebih besar
tingkat keamanan data algoritma dari pada lama waktu yang digunakan
kriptografi AES dengan mode operasi untuk proses enkripsi dan dekripsi
CBC terhadap pengubahan satu bit atau algoritma kriptografi AES dengan mode
lebih blok cipherteks, penambahan blok operasi ECB dan CBC.
cipherteks semu, dan penghilangan satu Dari hasil pengujian Kasus Uji 5, diketahui
atau lebih blok cipherteks. bahwa tingkat keamanan algoritma kriptografi
7. Kasus Uji 7 AES dengan mode operasi ECB terhadap
Kasus Uji 7 bertujuan untuk menguji manipulasi cipherteks adalah sebagai berikut:
tingkat keamanan data algoritma 1. Pengubahan satu bit atau lebih blok
kriptografi AES dengan mode operasi cipherteks akan mengakibatkan
CFB 8-bit terhadap pengubahan satu bit terjadinya perubahan terhadap sebuah
atau lebih blok cipherteks, penambahan blok plainteks pada arsip hasil dekripsi
blok cipherteks semu, dan penghilangan yang letaknya berkoresponden dengan
satu atau lebih blok cipherteks. sebuah blok cipherteks yang diubah.
8. Kasus Uji 8 2. Penambahan sebuah blok cipherteks
Kasus Uji 8 bertujuan untuk menguji semu akan mengakibatkan terjadinya
tingkat keamanan data algoritma penambahan sebuah blok plainteks pada
kriptografi AES dengan mode operasi arsip hasil dekripsi yang letaknya
berkoresponden dengan sebuah blok disertai dengan perubahan terhadap
cipherteks yang ditambahkan. sebuah blok plainteks berikutnya,
3. Penghilangan satu atau lebih blok sedangkan penghilangan satu atau lebih
cipherteks akan mengakibatkan blok cipherteks di akhir akan
terjadinya penghilangan satu atau lebih mengakibatkan terjadinya penghilangan
blok plainteks pada arsip hasil dekripsi satu atau lebih blok plainteks pada arsip
yang letaknya berkoresponden dengan hasil dekripsi yang letaknya di akhir
sebuah blok cipherteks yang arsip hasil dekripsi.
dihilangkan.
Hasil pengujian ini menunjukkan keuntungan
Hasil pengujian ini menunjukkan keuntungan sekaligus kelemahan mode operasi CBC. Dalam
sekaligus kelemahan mode operasi ECB. Dalam hal keuntungan, blok-blok plainteks yang sama
hal keuntungan, kesalahan atau perubahan satu tidak menghasilkan blok-blok cipherteks yang
atau lebih bit blok cipherteks hanya sama sehingga proses kriptanalisis menjadi lebih
mempengaruhi blok cipherteks yang sulit. Sedangkan kelemahan mode operasi CBC
bersangkutan pada waktu proses dekripsi. adalah kesalahan satu bit pada blok cipherteks
Sedangkan kelemahan mode operasi ECB adalah mempengaruhi blok plainteks yang
blok plainteks yang sama akan menghasilkan berkoresponden dan satu bit pada blok plainteks
blok cipherteks yang sama. berikutnya (pada posisi bit yang berkoresponden
berkoresponden dengan bit cipherteks yang
Dari hasil pengujian Kasus Uji 6, diketahui diubah).
bahwa tingkat keamanan algoritma kriptografi
AES dengan mode operasi CBC manipulasi Dari hasil pengujian Kasus Uji 7, diketahui
cipherteks adalah sebagai berikut: bahwa tingkat keamanan algoritma kriptografi
1. Pengubahan satu bit atau lebih blok AES dengan mode operasi CFB 8-bit manipulasi
cipherteks akan mengakibatkan cipherteks adalah sebagai berikut:
terjadinya perubahan terhadap sebuah 1. Pengubahan satu bit atau lebih blok
blok plainteks dan satu bit atau lebih cipherteks akan mengakibatkan
pada blok plainteks berikutnya (pada terjadinya perubahan terhadap blok
posisi bit yang berkoresponden dengan plainteks pada arsip hasil dekripsi yang
bit cipherteks yang diubah) pada arsip letaknya berkoresponden dengan blok
hasil dekripsi yang letaknya cipherteks yang diubah dan diikuti
berkoresponden dengan sebuah blok dengan perubahan terhadap seluruh blok
cipherteks yang diubah. plainteks berikutnya.
2. Penambahan sebuah blok cipherteks 2. Penambahan sebuah blok cipherteks
semu di awal atau tengah akan semu di awal atau tengah akan
mengakibatkan terjadinya penambahan mengakibatkan terjadinya penambahan
sebuah blok plainteks semu pada arsip sebuah blok plainteks semu pada arsip
hasil dekripsi yang letaknya hasil dekripsi yang letaknya
berkoresponden dengan sebuah blok berkoresponden dengan sebuah blok
cipherteks yang ditambahkan disertai cipherteks yang ditambahkan diikuti
dengan perubahan terhadap sebuah blok dengan perubahan terhadap seluruh blok
plainteks berikutnya, sedangkan plainteks berikutnya, sedangkan
penambahan sebuah blok cipherteks penambahan sebuah blok cipherteks
semu di akhir akan mengakibatkan semu di akhir akan mengakibatkan
terjadinya penambahan sebuah blok terjadinya penambahan sebuah blok
plainteks semu pada arsip hasil dekripsi plainteks semu pada arsip hasil dekripsi
yang letaknya di akhir arsip hasil yang letaknya di akhir arsip hasil
dekripsi. dekripsi.
3. Penghilangan satu atau lebih blok 3. Penghilangan satu atau lebih blok
cipherteks di awal atau tengah akan cipherteks di awal atau tengah akan
mengakibatkan terjadinya penghilangan mengakibatkan terjadinya penghilangan
satu atau lebih blok plainteks pada arsip satu atau lebih blok plainteks pada arsip
hasil dekripsi yang letaknya hasil dekripsi yang letaknya
berkoresponden dengan satu atau lebih berkoresponden dengan satu atau lebih
blok cipherteks yang dihilangkan blok cipherteks yang dihilangkan diikuti
dengan perubahan terhadap seluruh blok 1. Advanced Encryption Standard (AES)
plainteks berikutnya, sedangkan merupakan salah satu solusi yang baik
penghilangan satu atau lebih blok untuk mengatasi masalah keamanan dan
cipherteks di akhir akan mengakibatkan kerahasiaan data yang pada umumnya
terjadinya penghilangan satu atau lebih diterapkan dalam pengiriman dan
blok plainteks pada arsip hasil dekripsi penyimpanan data melalui media
yang letaknya di akhir arsip hasil elektronik.
dekripsi. 2. AES dapat diimplementasikan secara
efisien sebagai perangkat lunak dengan
Hasil pengujian ini menunjukkan keuntungan implementasi menggunakan tabel sebab
sekaligus kelemahan mode operasi CFB 8-bit. setiap langkah transformasi telah
Dalam hal keuntungan, blok-blok plainteks yang disimpan ke dalam tabel-tabel, sehingga
sama tidak menghasilkan blok-blok cipherteks komputer hanya perlu melakukan
yang sama sehingga proses kriptanalisis menjadi operasi melihat (look up) tabel-tabel
lebih sulit. Selain itu, pada mode operasi CFB, untuk melakukan sebuah langkah
data dapat dienkripsikan dalam ukuran yang transformasi dan serangkaian operasi
lebih kecil. Sedangkan kelemahan mode operasi XOR untuk melakukan proses enkripsi
CFB 8-bit adalah kesalahan satu bit pada blok AES atau proses dekripsi AES.
cipherteks mempengaruhi blok plainteks yang 3. Urutan lama waktu yang digunakan
berkoresponden dan seluruh blok plainteks untuk proses enkripsi dan dekripsi
berikutnya. algoritma kriptografi AES dengan mode
Dari hasil pengujian Kasus Uji 8, diketahui operasi ECB, CBC, CFB 8-bit, OFB 8-
bahwa tingkat keamanan algoritma kriptografi bit secara berturut-turut mulai dari yang
AES dengan mode operasi OFB 8-bit manipulasi tercepat adalah sebagai berikut:
cipherteks adalah sebagai berikut: ECB ≈ CBC, CFB 8-bit ≈ OFB 8-bit
1. Pengubahan satu bit atau lebih blok 4. Kesalahan 1-bit pada blok
cipherteks akan mengakibatkan plainteks/cipherteks AES dengan mode
terjadinya perubahan terhadap blok operasi CFB akan merambat pada blok-
plainteks yang berkoresponden dengan blok plainteks/cipherteks yang
blok cipherteks yang diubah. berkoresponden dan blok-blok
2. Penambahan sebuah blok cipherteks plainteks/cipherteks selanjutnya pada
semu akan mengakibatkan terjadinya proses enkripsi/dekripsi.
penambahan sebuah blok plainteks pada 5. Urutan tingkat keamanan data algoritma
arsip hasil dekripsi yang letaknya kriptografi AES dengan mode operasi
berkoresponden dengan sebuah blok ECB, CBC, CFB 8-bit, dan OFB 8-bit
cipherteks yang ditambahkan. terhadap pengubahan satu bit atau lebih
3. Penghilangan satu atau lebih blok blok cipherteks, penambahan blok
cipherteks akan mengakibatkan cipherteks semu, dan penghilangan satu
terjadinya penghilangan satu atau lebih atau lebih blok cipherteks secara
blok plainteks pada arsip hasil dekripsi berturut-turut mulai dari yang teraman
yang letaknya berkoresponden dengan adalah sebagai berikut:
sebuah blok cipherteks yang OFB 8-bit, CBC, ECB, CFB 8-bit
dihilangkan.
Hasil pengujian ini menunjukkan keuntungan DAFTAR PUSTAKA
mode operasi OFB 8-bit. Dalam hal keuntungan,
blok-blok plainteks yang sama tidak [1] Daemen, Joan, Vincent Rijmen. (2004). The
menghasilkan blok-blok cipherteks yang sama Rijndael Specification.
sehingga proses kriptanalisis menjadi lebih sulit. http://csrc.nist.gov/encryption/AES/Rijndae
Selain itu, pada mode operasi OFB, data dapat l/Rijndael.pdf. Tanggal akses: 4 Desember
dienkripsikan dalam ukuran yang lebih kecil. 2004 pukul 20:00.

5. Kesimpulan [2] Lidl & Niederreiter. (1986). Introduction to


Finite Fields and Their Applications.
Kesimpulan yang dapat dimbil dari studi dan Cambridge University Press.
implementasi AES dengan empat mode operasi
block cipher ini ini adalah:
[3] Munir, Rinaldi. (2004). Bahan Kuliah IF5054
Kriptografi. Departemen Teknik
Informatika, Institut Teknologi Bandung.

[4] NIST. (2004). National Institute of Standards


and Technology. http://www.nist.gov.
Tanggal akses: 4 Desember 2004 pukul
20:00.

[5] Schneier, Bruce. (1996). Applied


Cryptography 2nd. John Wiley & Sons.

[6] The Square Page. (2004),


http://www.esat.kuleuven.ac.be/~rijmen/squ
are. Tanggal akses: 4 Desember 2004 pukul
20:00.

[7] Tanenbaum, Andrew S. (2003). Computer


Networks Fourth Edition. Pearson
Education International.

[8] Trustcopy. (2004). Trustcopy - The premier


provider of Brand Protection and Secured
Trade Documentation Solutions.
http://www.trustcopy.com/. Tanggal akses:
4 Desember 2004 pukul 20:00.

Anda mungkin juga menyukai