Anda di halaman 1dari 9

Modifikasi Cipher Block Chaining (CBC) MAC dengan

Penggunaan Vigenere Cipher, Pengubahan Mode Blok, dan


Pembangkitan Kunci Berbeda untuk tiap Blok
Fatardhi Rizky Andhika 13508092
Program Studi Teknik Informatika
Sekolah Teknik Elektro dan Informatika
Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132, Indonesia
if18092@students.if.itb.ac.id

AbstractMessage Authentication Code atau yang lebih


dikenal dengan singkatan MAC adalah suatu cara untuk
menguji keabsahan suatu pesan tanpa merahasiakan pesan
yang diautentikasi tersebut. Dengan kata lain, algoritma
MAC digunakan untuk melakukan autentikasi atau uji
keaslian terhadap pesan. Dalam proses melakukan
autentikasinya, algoritma MAC ini menerima sebuah kunci
privat dan sebuah pesan yang ingin diautentikasi,
melakukan komputasi terhadap pesan, lalu menghasilkan
nilai MAC. Nilai MAC yang diperoleh merupakan dasar
dalam melakukan autentikasi pesan. Dengan mekanisme
seperti ini, pesan tersebut dapat diketahui apakah masih asli
dan tidak diubah atau pesan tersebut sudah diubah oleh
pihak-pihak lain sebelumnya. Penghitungan nilai pesan
dengan algoritma MAC dapat dilakukan dengan dua cara.
Cara yang pertama yaitu penggunaan algoritma MAC
berbasis fungsi hash satu arah sedangkan cara yang kedua
yaitu penggunaan algoritma MAC berbasis cipher block.
Untuk yang berbasis fungsi hash, yang umum digunakan
adalah penggunaan fungsi seperti MD5 atau SHA.
Sedangkan untuk algoritma yang berbasis cipher block
dapat menggunakan berbagai algoritma termasuk algoritma
enkripsi simetri. Penggunaan konsep cipher block dalam
pembangkitan nilai autentikasi pesan ternyata memiliki
kelemahan. Kelemahan utama dari algoritma CBC MAC ini
adalah algoritma ini hanya cocok untuk pesan dengan
panjang yang tetap saja, tidak dapat mengautentikasi pesan
yang panjangnya tidak ditentukan. Kelemahan lain dari
algoritma ini adalah konsep bloknya yang sangat kaku
sehingga perubahan pada karakter tertentu pesan tidak
menghasilkan nilai MAC yang jauh beda. Namun, masih
dapat dilakukan modifikasi tertentu terhadap CBC MAC
sehingga lebih kuat dan tahan serangan. Dalam makalah ini
akan dibahas bentuk modifikasi yang dilakukan beserta
analisis kekuatan dari MAC yang telah dimodifikasi
tersebut.
Kata kunci Cipher Block Chaining(CBC),
Authentication Code (MAC), modifikasi, serangan

Message

I. PENDAHULUAN
Pada masa sekarang ini, informasi merupakan hal yang
sangat penting dan mendasar. Informasi merupakan hal

Makalah IF3058 Kriptografi Sem. II Tahun 2010/2011

yang dipertukarkan dalam berkomunikasi. Dan hal yang


paling penting adalah informasi itu mahal harganya
karena ketersampaian informasi dari satu pihak ke pihak
lain dapat sangat besar pengaruhnya bagi pihak-pihak
tertentu. Informasi menjadi barang yang harus dilindungi
dan dijaga dari pihak-pihak lain yang tidak berhak
memilikinya. Pada dasarnya, pertukaran informasi antara
beberapa pihak dapat melalui berbagai media. Media
paling tradisional yang pastinya dilakukan setiap orang
adalah berkomunikasi secara lisan. Untuk media
komunikasi seperti ini, keaslian dari pesan sangat
terjamin, karena pihak yang mendengarkan pastinya
mendengar
sekaligus
melihat
secara
langsung
tersampainya informasi tersebut kepadanya. Namun,
untuk informasi yang tertuang dalam media lain, terutama
media tulis yang tidak dapat dipastikan langsung
keasliannya membutuhkan metode dan cara lain untuk
pengujian keaslian dari informasi atau pesan tersebut.
Untuk pesan-pesan yang melalui media tulis seperti ini,
termasuk file dan dokumen yang terdapat di dalam media
elektronik, harus tersedia cara tertentu untuk memeriksa
integritas pesan yang ditransmisikan melalui semua jalur
komunikasi terutama yang tidak aman.
Salah satu cara yang disediakan oleh bidang kriptografi
untuk menunjukkan keaslian pesan adalah penggunaan
Message Authentication Code atau yang lebih sering
disingkat sebagai MAC. MAC merupakan salah satu
bagian ilmu dari kriptrografi yang melakukan
penghitungan pesan dengan kunci privat tertentu dan
menyisipkan nilainya ke dalam pesan (atau dapat juga
terpisah) sehingga pihak penerima dapat menguji keaslian
pesan. MAC biasanya digunakan oleh pihak yang saling
membagi kunci privat mereka untuk mengautentikasi
pesan antarmereka.
Penggunaan MAC sebagai cara mengautentikasi pesan
sangat penting untuk menjaga keamanan dan keaslian dari
informasi yang dikirimkan melalui media-media
komunikasi yang tidak aman. Makalah ini akan
membahas bentuk modifikasi terhadap salah satu
algoritma MAC yaitu CBC-MAC.

II. LANDASAN TEORI


A. MESSAGE AUTHENTICATION CODE (MAC)
KONSEP DASAR MESSAGE AUTHENTICATION CODE
Message Authentication Code (MAC) adalah potongan
informasi berupa kode yang digunakan untuk otentikasi
bagian informasi lain berupa pesan. MAC merupakan
sebuah fungsi satu arah yang menggunakan kunci privat
dalam penghitungan nilai MAC dari pesan tersebut.
Sistem MAC ini berbeda dengan fungsi hash semisal
SHA ataupun MD5 yang tidak menggunakan kunci privat
apapun untuk menghitung nilai hash dari pesan. Nilai
hash yang dihasilkan adalah selalu berukuran tetap
berapapun panjang dari pesan yang diotentikasi.
Selanjutny, MAC dilekatkan pada pesan (atau bisa juga
menggunakan file luar) yang nantinya akan digunakan
untuk otentikasi keaslian pesan. Perbedaan antara MAC
dan algoritma enkripsi adalah MAC digunakan tanpa
perlu merahasiakan isi pesan. MAC juga bukan tanda
tangan digital, MAC hanya menyediakan otentikasi
pengirim dan integritas pesan saja.
Algoritma MAC adalah algoritma yang melakukan
penghitungan nilai hash file dengan menerima masukan
pesan beserta kunci privat tertentu. Selanjutnya, MAC
akan menghasilkan tag file <MAC> pada pesan sebagi
penanda bahwa bagian itu adalah nilai hash dari pesan
tersebut. Apabila dituangkan secara matematis, bentuk
umum dari algoritma MAC adalah sebagai berikut :

MAC = CK(M)
dengan MAC menunjukkan nilai hash, C adalah

fungsi hash yang digunakna dalam penghitungan


MAC (atau algoritma MAC), dan K merupakan
kunci rahasia atau kunci privat yang digunakan.
Fungsi MAC ini tidak hanya menjaga integritas dari
data namun juga dapat mendeteksi setiap perubahan
yang terjadi pada isi pesan.

Gambar 2 Mekanisme Penggunaan Message Authentication


Code

Pada gambar di atas, pihak pengirim dan penerima


terlebih dahulu menentukan kunci privat yang akan
mereka gunakan dalam otentikasi pesan antarmereka.
Selanjutnya, pihak pengirim akan menggunakan
algoritma MAC dengan kunci privat tadi untuk
menghasilkan nilai MAC dari pesan yang akan
ditransmisikan. Pesan kemudian diembedkan dengan nilai
MAC yang telah ditemukan dan dikirimkan ke pihak
penerima. Pihak penerima kemudian mengotentikasi
keaslian pesan dengan menghitung kembali MAC yang
dari pesan tersebut lalu mencocokkannya dengan MAC
yang tertera pada pesan. Apabila ada ketidakcocokan,
dapat diambil kesimpulan langsung bahwa terjadi
perubahan pada isi pesan yang diterima. Artinya, pesan
tidak lagi asli.
ALGORITMA PEMBANGUN MAC
Perancangan algoritma MAC dapat dilakukan dengan
dua cara/pendekatan. Cara pertama yaitu dengan
menggunakan algoritma kriptografi simetri berbasis blok
cipher atau yang lebih dikenal dengan konsep Cipher
Block Chaining (CBC), sedangkan cara yang satu lagi
yaitu pembangunan MAC dengan menggunakan fungsi
hash satu arah. Contoh dari fungsi satu arah adalah fungsi
SHA dan MD5 yang melakukan pengihitungan nilai hash
file saja. Pada makalah ini akan dijelaskan tentang CBC
MAC dan modifikasi yang dilakukan terhadapnya.

B. CIPHER BLOCK CHAINING MAC


KONSEP DASAR CBC MAC

Gambar 1 Bentuk pesan yang telah disisipi MAC di akhir


pesan

Berikut ini merupakan bagan yang menunjukkan


contoh proses penggunaan MAC sebagai cara
mengotentikasi pesan antara dua pihak yang saling
memiliki kunci privat yang telah disepakati sebelumnya.

Makalah IF3058 Kriptografi Sem. II Tahun 2010/2011

Cipher Block Chaining (CBC) MAC adalah teknik


membangun message authentication code (MAC) dari
block cipher. Pesan dienkripsi dengan algoritma cipher
blok dalam model CBC untuk menciptakan rantai blok
yang mana setiap blok akan sangat bergantung dengan
enkripsi pada blok sebelumnya. Ketergantungan seperti
ini memastikan perubahan pada bit apapun pada plainteks
akan menyebabkan perubahan pada blok akhir hasil
enkripsinya. Pada CBC, hasil akhir dari enkripsi tidak
dapat diprediksi tanpa mengetahui kunci dari cipher blok
nya.

Pada konsep CBC ini, penghitungan nilai MAC


bergantung pada proses enkripsi pada tiap blok.
Mekanisme pencarian CBC MAC adalah dengan
membagi pesan ke dalam blok-blok pesan dengan panjang
tetap. Blok pertama pesan akan di XOR kan dengan IV
terdiri atas kumpulan bit 0. Blok pertama pesan kemudian
akan dienkripsi dengan fungsi enkripsi tertentu dengan
kunci K. Hasil dari enkripsi ini kemudian di XOR lagi
dengan blok pesan kedua. Hal ini diulangi berkali-kali
sampai blok pesan terakhir. Hasil enkripsi pada blok
pesan terakhir merupakan nilai MAC yang diperoleh
dengan algoritma ini.
Berikut merupakan gambaran operasi pada CBC MAC.

Gambar 4 Bentuk matematis kelemahan CBC MAC

Untuk menghadapi kelemahan CBC MAC terhadap


pesan dengan panjang tidak tetap tersebut, dapat
dilakukan modifikasi terutama pada konsep blok pesan
dan pembangkitan kuncinya. Bentuk modifikasi yang
akan dilakukan adalah mengubah teknis pembagian blok
dan menggunakan bantuan algoritma enkripsi simetri
Vigenere Cipher dan Caesar Cipher sebagai algoritma
enkripsi bloknya.

C. CAESAR CIPHER
KONSEP DASAR CAESAR CIPHER

Gambar 3 Mekanisme operasi pada CBC MAC

dengan m adalah pesan yang akan dicari nilai MAC-nya,


E adalah fungsi enkripsi berbasis blok, dan k adalah kunci
privat yang digunakan untuk melakukan enkripsi.
Pembagian blok pesan pada CBC MAC adalah pesan
dibagi ke dalam blok-blok pesan dengan panjang setiap
blok adalah panjang yang sudah ditetapkan, dalam hal ini
adalah panjang blok bersesuaian dengan spesifikasi fungsi
enkripsi yang dipakai.
Misalnya, DES digunakan sebagai cipher blok, maka
ukuran blok adalah 64 bit, dan kunci rahasia MAC adalah
kunci DES yang panjangnya 56 bit.
Dalam pembuatan MAC dengan konsep CBC ini, kunci
yang dilakukan untuk melakukan enkripsi untuk semua
blok adalah selalu sama. Begitu pula dengan fungsi
enkripsi yang digunakan. Yang berbeda untuk setiap blok
hanyalah masukan berupa potongan blok pesan yang
sudah di-XOR dengan hasil enkripsi pesan sebelumnya
.
KELEMAHAN CBC MAC
Konsep CBC dalam enkripsi pesan sudah diakui
kehebatannya dalam menahan serangan dari kriptanalis.
Keunggulan dari penggunaan CBC MAC ini adalah
algoritma ini cocok digunakan untuk pesan dengan
panjang pesan yang tetap. Namun, penggunaan CBC
sebagai algoritma penghitungan MAC masih memiliki
kelemahan untuk pesan dengan panjang yang tidak tetap
(arbitrary).
Seorang penyerang yang mengetahui tag MAC yang
benar dari sebuah pesan tertentu, misalnya pasangan (m,
t) dan (m', t') dapat mengenerate pesan ketiga m'' yang
mana hasil CBC MAC nya adalah be t' juga. Hal ini dapat
dilakukan dengan melakukan XOR blok pertama dari m'
dengan t dan melalakukan konkat m dengan m' yang telah
termodifikasi ini. Contoh matematisnya adalah seperti ini.

Makalah IF3058 Kriptografi Sem. II Tahun 2010/2011

Caesar Cipher merupakan salah satu algoritma cipher


tertua dan paling diketahui dalam perkembangan ilmu
kriptografi. Caesar cipher merupakan salah satu jenis
cipher substitusi yang membentuk cipher dengan cara
melakukan penukaran karakter pada plainteks menjadi
tepat satu karakter pada chiperteks. Teknik seperti ini
disebut juga sebagai chiper abjad tunggal.
Algoritma kriptografi Caesar Cipher sangat mudah
untuk digunakan. Inti dari algoritma kriptografi ini adalah
melakukan pergeseran terhadap semua karakter pada
plainteks dengan nilai pergeseran yang sama.
Adapun langkah-langkah yang dilakukan untuk
membentuk chiperteks dengan Caesar Cipher adalah :
1. Menentukan besarnya pergeseran karakter yang
digunakan dalam membentuk cipherteks ke
plainteks.
2. Menukarkan karakter pada plainteks menjadi
cipherteks dengan berdasarkan pada pergeseran
yang telah ditentukan sebelumnya.
Begitulah konsep dasar dari algoritma Caesar Cipher
yang bekerja pada mode karakter. Namun, Caesar Cipher
yang akan digunakan dalam salah satu bagian modifikasi
CBC MAC ini adalah berupa mode extended ASCII.
Karena total macam karakter dalam ASCII ada 256
karakter, maka, persamaan enkripsi dari Caesar Cipherny
menjadi sebagai berikut :

ci = E(pi) = (pi + K) mod 256


pi adalah karakter plainteks ke-i, dan
ci adalah karakter chiperteks ke-i
digunakan angka 256 disini karena teknik caesar cipher
akan diterapkan dalam mode ASCII. Caesar Cipher akan
digunakan pada tahapan pembentukan key pada
modifikasi CBC MAC.

D. VIGENERE CIPHER

III. RANCANGAN MODIFIKASI CBC MAC

KONSEP DASAR VIGENERE CIPHER


Vigenere cipher merupakan jenis cipher abjad
majemuk yang paling sederhana. Vigenere cipher
menerapkan metode substitusi poli alfabetik dan termasuk
ke dalam kategori kunci simetris dimana kunci yang
digunakan untuk proses enkripsi adalah sama dengan
kunci yang digunakan untuk proses dekripsi.Enkripsi
dengan menggunakan algoritma Vigenere cipher pada
dasarnya adalah menggunakan prinsip Caesar Cipher,
yaitu melakukan enkripsi karakter pada plainteks menjadi
karakter lain pada cipherteks. Perbedaan antara Caesar
Cipher dan Vigenere cipher adalah huruf yang sama pada
plainteks tidak selalu dienkripsi menjadi huruf yang sama
pada cipherteks. Hal ini terjadi karena pada Vigenere
cipher, pergeseran karakternya ditentukan oleh karakter
yang ada pada kata kunci dan kata ini selalu diulang.
Akibatnya, karakter yang sama pada plainteks bolehjadi
memiliki karakter yang berbeda pada cipherteksnya.
Karena hal ini lah, Vigenere cipher merupakan cipher
substitusi abjad-majemuk. Tujuan utama dari Vigenere
cipher ini adalah menyembunyikan keterhubungan antara
plainteks dan cipherteks dengan menggunakan kata kunci
sebagai penentu pergeseran karakternya.
Metode yang digunakan dalam enkripsi dengan
menggunakan Vigenere cipher adalah menyusun kunci
bersesuaian dengan plainteks yang ada di atasnya.
Apabila telah sampai di akhir kunci, ulangi kembali
penyusunan kunci sampai seluruh plainteks telah
memiliki karakter kunci masing-masing.
Langkah selanjutnya adalah melakukan Caesar Cipher
untuk tiap-tiap karakter tersebut dengan nilai pergeseran
karakter ditentukan oleh karakter kunci untuk tiap
karakternya. Dalam Vigenere cipher ini, karakter A
menyatakan pergeseran 0, B=1, C=2, D=3, ... , dan Z=25.
Rumus matematis dari enkripsi Vigenere cipher ini
adalah sebagai berikut :

Ci = Ek(Mi) = (Mi+Ki) mod 26


Dengan Ci = karakter chiperteks,
Ki = karakter kunci, dan
Mi = karakter plainteks
Untuk modifikasi CBC MAC ini, vigenere cipher yang
digunakan adalah sama mirip dengan Vigenere Cipher
karakter standar, namun tidak lagi menggunakan hanya
26 karakter saja melainkan 256 macam karakter ASCII
(mode extended). Maka, rumus matematis dari enkripsi
Vigenere cipher ini adalah sebagai berikut :

Ci = Ek(Mi) = (Mi+Ki) mod 256


Dengan Ci = karakter chiperteks,
Ki = karakter kunci, dan
Mi = karakter plainteks

Makalah IF3058 Kriptografi Sem. II Tahun 2010/2011

CBC MAC bukanlah algoritma yang tidak dapat


dipecahkan atau diakali oleh para kriptanalis. Seperti yang
telah disebutkan pada bagian penjelasan tentang CBC
MAC, konsep pembagian blok tersebut tidak dapat
diterapkan pada pesan dengan panjang pesan adalah acak.
Artinya, ini menjadi kelemahan utama karena inti dari
konsep blok sendiri adalah membagi pesan ke dalam
blok-blok dengan panjang tiap blok adalah sama. Dengan
kata lain, apabila ingin menggunakan CBC MAC,
panjang pesan harus kelipatan dari panjang blok.
Kelemahan dari CBC MAC yang lain adalah kurang
amannya MAC apabila kriptanalis menggunakan teknik
penciptaan pesan ketiga dengan menghasilkan MAC yang
valid hanya dengan berdasarkan dua pasangan pesan
beserta nilai MAC-nya. Seperti yang telah dijelaskan pada
bagian CBC MAC sebelumnya, hal ini dapat saja terjadi
karena konsep blok yang masih kaku dan tidak dinamis
sehingga menciptakan cara-cara umum yang dapat
diperkirakan dan dilakukan kriptanalis serta penyusup
pesan.
Kelemahan lainnya dari penggunaan CBC MAC adalah
ketergantungan secara penuh nilai MAC terhadap blok
terakhir dari pesan. Seperti yang telah dijelaskan pada
bagian sebelumnya, CBC MAC mendapatkan nilai MAC
hanya dari hasil XOR blok terakhir dengan hasil blok
sebelumnya, lalu dienkripsi. Artinya, pengubahan bit
yang berada pada bagian terakhir-terakhir dari blok pesan
terakhir tidak akan menimbulkan hasil MAC yang sangat
jauh berbeda, namun hanya di bagian akhirnya sajja. Hal
ini nantinya dapat membantu kriptanalis dalam
menganalisa fungsi enkripsi dan memecahkan fungsi
MAC yang digunakan.
Namun, kelemahan dari CBC MAC ini dapat dikurangi
dengan menerapkan konsep blok baru yang lebih dinamis
dan mencukupi untuk mengatasi permasalahan panjang
pesan tetap tersebut. Dengan penggunaan konsep blok
yang baru dan lebih baik, secara langsung akan
menghilangkan beberapa kelemahan dari CBC MAC
yang ada saat ini.
Hal lain yang dapat dilakukan adalah mengubah
kebutuhuhan kunci yang sebelumnya sama untuk tiap
blok menjadi berbeda untuk masing-masing blok yang
dienkripsi. Hal ini sebaiknya dilakukan untuk makin
memantapkan efek domino dan ketergantungan apabila
dilakukan perubahan pada isi pesan yang diotentikasi.
Semakin besarnya efek dari perubahan satu karakter pada
pesan, maka semakin besar pulalah perubahan yang akan
diperoleh di hasil akhir penghitungan MAC dari pesan
tersebut. Penggunaan kunci yang berubah antara tiap blok
juga akan menciptakan kesulitan yang lebih bagi para
kriptanalis untuk memperkirakan keterhubungan antara
pesan dan nilai MAC dari pesan.
Lebih jelasnya beberapa bentuk modifikasi yang
digunakan adalah 3 langkah sebagai berikut :

PERUBAHAN PEMBAGIAN BLOK

PEMBANGKITAN KUNCI BERBEDA UNTUK TIAP BLOK

Pada awalnya, CBC-MAC merupakan algoritma yang


membagi pesan ke dalam blok-blok yang panjang setiap
blok adalah bersesuaian dengan panjang blok yang diolah
oleh fungsi enkripsi. Artinya untuk setiap pencarian
MAC, panjang pesan harus merupakan kelipatan dari
blok. Untuk mengantisipasi kekurangan dari CBC-MAC
yang tidak dapat mengatasi kasus panjang pesan acak ini,
pada CBC MAC yang termodifikasi, panjang blok dibuat
tetap namun dengan konsep pembentukan blok yang
berbeda. Adapun panjang blok nya adalah 20 byte.
Apabila dibandingkan antara konsep pembuatan blok
yang lama dan yang hasil modifikasi adalah sebagai
berikut (untuk contoh panjang blok digunakan 5):
- Berikut adalah pesan yang digunakan dengan total
panjang pesan adalah 10 karakter

Teknik modifikasi berikutnya yang dapat dilakukan


adalah menggunakan kunci berbeda untuk masing-masing
blok pesan yang sudah didapat tadi. Langkah ini diambil
hanya sebagai antisipasi agar keterhubungan antara pesan
dan hasil enkripsinya akan makin acak (acak dengan
penggunaan fungsi tertentu). Dengan demikian,
penentuan keterhubungan antara pesan dan hasil MAC
akan semakin sulit dipecahkan oleh kriptanalis.
Pembangkitan kunci untuk masing-masing blok ini
menggunakan Caesar Cipher. Mekanismenya adalah
sebagai berikut :
- Pesan telah dibagi ke dalam blok-blok dengan
menggunakan metode pembagian blok seperti pada
penjelasan sebelumnya.
- Untuk blok pesan pertama, kunci yang digunakan
untuk enkripsi adalah kunci masukan pertama kali
- Untuk enkripsi blok-blok pesan selanjutnya, kunci
enkripsi adalah hasil caesar cipher kunci
sebelumnya dengan nilai pergeseran adalah total
nilai blok pesan mod 256

0
-

..

10

Apabila digunakan pembagian blok dengan konsep


lama, maka,
1

10

Ki= (Ki-1 + m) mod 256


m = Pi-1karakter-1 + Pi-1karakter-2
+ Pi-1karakter-3 + ...+ Pi-1karakter-n
dengan n = panjang kunci, Pi-1=pesan blok i-1

Blok 1(0-4)
Blok 2(5-9)
Dengan menggunakan konsep pembagian blok
yang baru, pembagian blok akan menjadi seperti
berikut :
0

..

10

Blok 1(0-4)
Blok 2(1-5)
Dalam sistem blok yang baru ini, blok dengan
panjang 5 akan dibentuk dengan memajukan
karakter satu-persatu. Untuk pesan dengan panjang
11 karakter dan panjang blok adalah 5 karakter,
banyak blok yang akan tercipta adalah 7 blok.
Dengan pembagian blok seperti ini, maka semua
kasus panjang pesan acak akan dapat teratasi.

Makalah IF3058 Kriptografi Sem. II Tahun 2010/2011

PENERAPAN VIGENERE CIPHER SEBAGAI FUNGSI


ENKRIPSI
Untuk melengkapi modifikasi ini, dipilihlah algoritma
enkripsi simetri yang digunakan sebagai cipher blok.
Dalam modifikasi ini, algoritma yang dipilih adalah
algoritma vigenere cipher yang dimodifikasi dengan
panjang tetap adalah sepanjang blok yang ditentukan
(20karakter/byte). Algoritma ini dipilih karena algoritma
ini cukup mudah untuk diimplementasikan dan memenuhi
syarat sebagai cipher blok dengan menerapkan modifikasi
tertentu. Untuk panjang kunci yang digunakan adalah
selalu 20 karakter, bersesuaian dengan panjang blok yang
sudah ditentukan di awal modifikasi ini.

Panjang Blok = Panjang Kunci = 20byte


Berikut merupakan bagan yang menunjukkan
mekanisme pembentukan MAC dengan tahap modifikasi
yang dirancang dalam makalah ini.

Blok pesan 1

Blok pesan n

Blok pesan 1
Nilai Pergeseran
Nilai pergeseran Blok n-1

Nilai pergeseran

Initialize Vector

XOR

XOR

XOR

Enkripsi Caesar
Cipher

Key 1

Enkripsi Caesar
Cipher

Key 2

...........

Key n-1

Enkripsi Caesar
Cipher

Key n

Hasil enkripsi Blok n-1


Kunci 0

Enkripsi Vigenere
CIpher

Enkripsi Vigenere
CIpher

Enkripsi Vigenere
CIpher

Result

Gambar 5 Bagan Mekanisme Pembentukan MAC Baru

Bagan di atas menunjukkan bagaimana mekanisme dari


modifikasi yang dilakukan terhadap CBC MAC. Pada
modifikasi ini, pesan akan dipecahkan ke dalam blok-blok
dengan konsep pembagian blok seperti yang telah
dijelaskan pada bagian sebelumnya. Setiap blok pesan
akan di XOR dengan hasil enkripsi blok sebelumnya
(kecuali blok pertama yang di XOR dengan Initialize
Vector 0). Metode XOR yang dilakukan adalah XOR
untuk tiap tiap karakter pada blok, XOR dilakukan dalam
keadaan perbyte. Pembentukan kunci blok berikutnya
diperoleh dengan cara men-Caesar Cipher kan kunci
dengan nilai pergeseran adalah total byte dari blok pesan
mod 256.

VI. ANALISIS DAN KEAMANAN ALGORITMA CBC


MAC BARU
Untuk melakukan uji terhadap CBC MAC
termodifikasi ini, penulis melakukan implementasi
algoritma CBC MAC di dalam program yang
dikembangankan dengan bahasa Java. Implementasi ini
ditujukan untuk mengetahui lebih jauh tentang hasil uji
dari segi keamanan dan ketahan algoritma ini terhadap
serangan yang mungkin dilakukan.

Gambar 6 Tampilan Utama Program

Program dibuat dengan dua fungsi utama, yaitu


melakukan penghitungan MAC terhadap pesan/berkas
dan melakukan uji verifikasi terhadap keaslian pesan.
Untuk pembuatan MAC-nya, penulis menyediakan dua
macam pembangkitan MAC, yaitu dapat menggunakan
CBC biasa menggunakan algoritma Vigenere Cipher
tanpa konsep blok baru, atau menggunakan CBC yang
termodifikasi konsep blok dan kuncinya.

Makalah IF3058 Kriptografi Sem. II Tahun 2010/2011

Pengujian pada CBC MAC Vigenere Cipher tanpa


Modifikasi
Algoritma CBC MAC yang tidak termodifikasi tidak
mengikuti konsep blok. Dengan demikian, algoritma ini
hanya dapat mencari MAC dengan masukan pesan yang
kelipatan dari panjang bloknya.
File uji yang digunakan adalah fileteks yang
panjangnya adalah kelipatan kunci dengan isi sebagai
berikut.
kalimat
ini
hanya
pengujian
MAC
termodifikasi macnya

digunakan
dengan

untuk
mode

Sedangkan kunci yang digunakan adalah (panjang


20byte)
fatardhirizkyandhika
Hasil dari penghitungan MAC nya adalah
15200641242d1066514412752b0f3318135b3d
44
Kelemahan CBC tanpa modifikasi konsep blok nya
adalah nilai MAC yang sangat bergantung pada blok
terakhir pesan saja. Pada CBC MAC, pemrosesan
dilakukan secara perblok dengan tiap blok yang diappend
akan menghasilkan pesan utuh. Apabila dilakukan
pengubahan pada bagian akhir blok terakhir saja,
perubahan nilai MAC tidak akan sangat signifikan.
Berikut adalah contoh pesan yang diubah di bagian
akhir
kalimat
ini
hanya digunakan
untuk
pengujian
MAC
dengan
mode
termodifikasi micnya

pada CBC MAC dengan fungsi enkripsi Vigenere Cipher


saja. Dari kesamaan pola-pola seperti ini, kriptanalis akan
dapat menemukan pola pencarian MAC yang digunakan.
Secara umum, pemilihan fungsi enkripsi yang tidak
melakukan confusion dan diffusion secara baik akan
selalu menghasilkan hal seperti ini. Memang, untuk
fungsi enkripsi sebaiknya menggunakan fungsi enkripsi
yang dapat menciptakan diffusion dan confusion seperti
algoritma AES atau DES. Namun, secara umum
permasalahan konsep blok tetap yang menjadi masalah
utama pada CBC MAC biasa dapat diatasi dengan
algoritma yang akan diuji berikutnya.
Pengujian pada CBC MAC Vigenere Cipher dengan
Modifikasi
Hal penting yang ditawarkan dari algoritma modifikasi
ini adalah penggunaan konsep blok yang berbeda dengan
pembagian blok biasa. Pada konsep blok ini, sebuah
karakter tidak hanya digunakan oleh satu blok, namun
bisa lebih karena himpunan isi bloknya dapat beririsan.
Hal semacam ini akan menciptakan ketergantungan yang
lebih antara setiap blok dengan perubahan setiap karakter
pada pesan yang asli.
Algoritma modifikasi ini juga mengatasi permasalah
pada algoritma CBC MAC biasa yang menggunakan
vigenere cipher saja. Dengan digunakannya konsep
pembangkitan kunci yang baru untuk setiap blok,
perubahan karakter pada pesan akan sangat
mempengaruhi nilai MAC secara keseluruhan.

Hasil yang didapatkan adalah


15200641242d1066514412752b0f3320135b3d
44
Dari hasil uji tersebut, diperoleh bahwa perubahan satu
karakter pada blok pesan terakhir hanya akan
mengakibatkan sedikit saja perubahan pada MAC nya.
Contoh uji lain adalah pengubahan isi pesan pada blok
awal pesan, yaitu di blok pesan awal.
kalimat
ini
hanba digunakan
untuk
pengujian
MAC
dengan
mode
termodifikasi macnya
Karakter yang diubah pada blok pertama dengan posisi
relatif terhadap blok nya adalah sama dengan pada
pengujian yang sebelumnya membuktikan bahwa
pengubahan blok manapun hanya akan mengubah posisi
tertentu saja seperti hasil di bawah ini.
15200641242d1066514412752b0f3313135b3d
44
Hal ini merupakan kelemahan yang sangat mendasar
Makalah IF3058 Kriptografi Sem. II Tahun 2010/2011

Gambar 7 Contoh Penggunaan Program

Pengujian ini dilakukan dengan menggunakan fileteks

yang sama dengan pengujian sebelumnya.


kalimat
ini
hanya digunakan
pengujian
MAC
dengan
termodifikasi macnya

untuk
mode

Dengan kunci yang sama


fatardhirizkyandhika

panjang yang tidak tetap.


Dengan ditambahkannya penggunaan kunci berbeda
untuk enkripsi setiap blok akan makin menyamarkan
keterhubungan antara pesan dan hasil MACnya. Hal ini
secara langsung dapat mempersulit para penyusup pesan
yang ingin melakukan serangan message forgery.

KEKURANGAN CBC MAC MODIFIKASI


Hasil dari penghitungan nilai MAC adalah
fa5dffc58a33d7088e57bd1ec9c3107145176a
31
Apabila dilakukan pengubahan satu karakter seperti
yang dilakukan pada pengujian sebelumnya yaitu kata
macnya menjadi micnya, maka didapat hasil MAC
seperti berikut ini
eaadef958a431728ce37ad1ed90310893d4f52
09
Perubahan satu karakter pada pesan sangat
mempengaruhi hasil akhir dari MAC yang diperoleh .
Begitu pula dengan pengujian apabila dilakukan
perubahan karakter pada blok-blok awal, seperti
perubahan karakter hanya menjadi hanba, didapat
hasil sebagai berikut
0a13bf83ea2dc3263c39235c1dabb235fc424f
00
Setiap perubahan satu karakter pada bagian manapun
pada pesan akan menciptakan perbedaan yang signifikan
antara MAC asli dan MAC hasil perubahan. Hal ini
terjadi karena penggunaan konsep blok yang setiap
anggota bloknya beririsan sehingga perubahan satu
bagian akan mempengaruhi proses pembuatan MAC
secara berulang-ulang. Hal ini juga dibantu dengan
penggunaan kunci yang berbeda untuk setiap blok dimana
setiap kunci juga sangat dipengaruhi oleh keaslian blok
pesan tersebut. Dengan adanya modifikasi semacam ini,
kelemahan pada CBC MAC Vigenere Cipher sebelumnya
dapat teratasi.
Penggunaan modifikasi-modifikasi seperti ini secara
pasti dapat mempersulit kriptanalis dalam memecahkan
pesan. Contoh serangan yang biasa dilakukan kriptanalis
terhadap CBC MAC adalah menentukan pola MAC dari
nilai MAC valid yang dimilikinya. Dengan penggunaan
modifikasi ini, pola enkripsi MAC akan sangat sulit
ditemukan oleh kriptanalis, akan lebih sulit dibandingkan
memecahkan MAC yang menggunakan CBC biasa.

KELEBIHAN CBC MAC MODIFIKASI


CBC MAC modifikasi ini memiliki keunggulan yang
jelas dibandingkan penggunaan CBC biasa, yaitu dapat
mengatasi pesan dengan panjang pesan yang tidak
tetap.Panjang pesan merupakan kelemahan dari algoritma
CBC biasa. Dengan penggunaan konsep blok yang baru
dan berbeda dengan pembagian blok pada CBC biasa,
CBC MAC yang baru akan dapat mengatasi pesan dengan

Makalah IF3058 Kriptografi Sem. II Tahun 2010/2011

Kekurangan dari CBC MAC secara umum adalah


ketergantungan hasil MAC kepada fungsi enkripsi yang
digunakan. Dalam kasus ini, penggunaan CBC biasa
dengan fungsi enkripsi Vigenere Cipher adalah sangat
lemah dan dapat dibaca pola perubahan pesannya. Hal ini
sangat rentan dengan serangan mereka yang ingin
melakukan forgery attack. Walaupun penggunaan konsep
blok yang baru yang sudah dapat mengatasi permasalahan
pesan dengan panjang tetap, pemilihan algoritma enkripsi
yang lebih baik dan lebih aman dibanding Vigenere
Cipher akan sangat membantu meningkatkan keamanan
dari CBC MAC yang dimodifikasi ini.

VII. KESIMPULAN
Dari analisis dan perancangan modifikasi CBC MAC
dengan penggunaan algoritma enkripsi simetri Vigenere
Cipher, pengubahan mode blok, dan pembangkitan kunci
berbeda untuk tiap blok ini diperoleh kesimpulan sebagai
berikut :
1. Message Authentication Code digunakan sebagai
salah satu cara melakukan otentikasi terhadap
pesan
2. Konsep Cipher Block Chaining (CBC) dapat
digunakan untuk membangun nilai MAC.
3. Algoritma enkripsi simetri Vigenere Cipher dapat
digunakan sebagai fungsi enkripsi berkonsep
cipher block
dengan dilakukan perubahan
seperlunya.
4. CBC MAC dapat diperbaik dengan penggunaan
konsep blok yang lebih baru yang dapat mengatasi
permasalahan panjang pesan tidak tetap.
5. Kekuatan dari CBC MAC selain bergantung pada
konsep blok yang digunakan juga sangat
bergantung pada algoritma enkripsi simetri apa
yang digunakan sebagai fungsi enkripsi cipher
blocknya. Penggunaan algoritma enkripsi simetri
yang makin kuat akan meningkatkan keamanan
CBC MAC.

REFERENCES
http://en.wikipedia.org/wiki/Message_authentication_code
http://en.wikipedia.org/wiki/CBC-MAC
http://scienceblogs.com/goodmath/2008/10/how_not_to_do_message_in
tegrit.php
http://en.wikipedia.org/wiki/Caesar_cipher
http://en.wikipedia.org/wiki/Vigen%C3%A8re_cipher.
http://id.wikipedia.org/wiki/Kriptografi
Rinaldi Munir. Diktat kuliah kriptografi

PERNYATAAN
Dengan ini saya menyatakan bahwa makalah yang saya
tulis ini adalah tulisan saya sendiri, bukan saduran, atau
terjemahan dari makalah orang lain, dan bukan plagiasi.
Bandung, 9 Mei 2011

Fatardhi Rizky Andhika


13508092

Makalah IF3058 Kriptografi Sem. II Tahun 2010/2011

Anda mungkin juga menyukai