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
[email protected]
Abstract—Message 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.
1
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.
2
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.
3
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 :
4
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 -
0
1
2
3
4
5
6
..
9
10
Apabila digunakan pembagian blok dengan konsep lama, maka, 1
2
3
4
5
6
7
8
9
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
1
2
3
4
5
..
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.
5
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
6
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
7
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
8
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
9