Perancangan Algoritma Message Authentication Code (MAC) Dengan Pendekatan Kriptografi Block Cipher Berbasis 256 Bit Pada Pola Papan Dart
Artikel Ilmiah
Peneliti : Aldrien Wattimena (672011156) Magdalena A. Ineke Pakereng, M.Kom. Alz Danny Wowor, S.Si., M.Cs.
PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INFORMASI UNIVERSITAS KRISTEN SATYA WACANA SALATIGA JUNI 2016
1
Perancangan Algoritma Message Authentication Code (MAC) Dengan Pendekatan Kriptografi Block Cipher Berbasis 256 Bit Pada Pola Papan Dart
Artikel Ilmiah
Diajukan Kepada Fakultas Teknologi Informasi Untuk Memperoleh Gelar Sarjana Komputer
Peneliti : Aldrien Wattimena (672011156) Magdalena A. Ineke Pakereng, M.Kom. Alz Danny Wowor, S.Si., M.Cs.
PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INFORMASI UNIVERSITAS KRISTEN SATYA WACANA SALATIGA JUNI 2016
2
3
4
5
6
7
8
1.
Pendahuluan
Integritas data dan otentikasi merupakan dua aspek penting dalam berkomunikasi selain aspek keamanan data. Integritas digunakan sebagai sebuah analisis untuk melihat apakah sebuah data masih utuh atau telah dimanipulasi. Sedangkan otentikasi untuk melihat keaslian dari sebuah data. Komunikasi data melibatkan pertukaran pesan antara dua entitas, yaitu pengirim (sender) dan penerima (receiver). Dalam proses pertukaran data, data dapat saja diubah, disisipkan atau dihilangkan oleh pihak yang tidak bertanggung jawab. Algoritma yang sering digunakan menjaga integritas data dan otentikasi adalah Message Authentication Code (MAC) yang juga merupakan fungsi hash satu-arah yang menggunakan secret key dalam pembangkitan nilai hash dengan kata lain nilai hash adalah fungsi dari pesan dan kunci. MAC memiliki sifat yang sama seperti fungsi hash satu-arah, hanya saja ada tambahan komponen kunci di dalamnya yang digunakan oleh penerima (receiver) untuk verifikasi [1]. MAC dapat dirancang dengan dua pendekatan. Pendekatan pertama fungsi hash satu arah, sedangkan pendekatan kedua menggunakan kriptografi kunci simetri berbasis block cipher [1]. Pendekatan kedua mempunyai keunggulan dari sisi fleksibilitas karena kebebasan memilih kriptografi yang akan digabungkan, tetapi menjadi masalah dari sisi efisiensi karena menggabungkan dua algoritma. Penelitian ini merancang sebuah algoritma MAC dengan pendekatan block cipher yang berbasis 256 bit, dimana juga terdapat proses kompresi untuk mendapatkan sebuah kode untuk otentikasi. Pada algoritma block cipher yang dirancang menggunakan skema transposisi dengan pola papan dart dan juga dikombinasi dengan pola horizontal dan vertikal sebagai alur pemasukan dan pengambilan bit pada sebuah kotak transposisi. 2.
Tinjauan Pustaka
Penelitian sebelumnya yang pertama adalah ”Implementasi Algoritma MAC Berbasis Cipher Blok Sebagai Program Add-in di Microsoft Word untuk Otentikasi Dokumen”, membahas tentang membangun sebuah program add-in untuk aplikasi pengelola kata Microsoft Word yang mampu melakukan otentikasi dokumen dengan mengimplementasikan algoritma Cipher-based MAC (CMAC), yang merupakan salah satu pendekatan dari algoritma MAC berbasis cipher blok. Dalam penelitian ini Cipher-based MAC (CMAC) dipilih karena merupakan algoritma yang masih cukup aman dan cenderung baru, sehingga penerapannya belum banyak dilakukan. Selain itu, CMAC dirancang untuk mendeteksi modifikasi yang disengaja dan tidak sah dari data, serta modifikasi yang tidak sengaja. Penelitian kedua dengan judul “Pembangunan Algoritma MAC Berbasis Cipher Aliran”, menjelaskan tentang merancang suatu algoritma MAC berbasis cipher aliran dan algoritma cipher aliran yang digunakan adalah RC4 (MARC), karena unggul
9
dalam mencegah serangan. Untuk mendapatkan sifat unik dari MAC yang dihasilkan, bit yang akan diambil adalah bit yang berada di tengah saja. Dalam hal ini, MARC mengambil bit ke-4 (skala 0-7) untuk setiap byte dokumen. Jadi, panjang MAC yang akan didapat (dalam bit) adalah panjang plainteks (dalam bit) dibagi 8, atau dengan kata lain banyaknya byte dari plainteks tersebut. Jika hasil pembagiannya tidak genap (bersisa), maka kumpulan bit yang tidak mencapai 1 byte di-padding dengan 0 (false) hingga genap 1 byte. Penelitian ketiga berjudul “Implementasi dan Analisis Perbandingan Algoritma MAC Berbasis Fungsi Hash Satu Arah Dengan Algoritma MAC Berbasis Cipher Block”, dalam penelitian ini membahas tentang bagaimana mengimplementasikan dan membandingkan penggunaan algoritma MAC berbasis fungsi hash satu arah, dengan algoritma MAC berbasis cipher block dengan berpedoman pada kecepatan pembuatan nilai MAC menggunakan setiap algoritma tersebut. Berdasarkan hasil penelitian ini saat menggunakan pendekatan fungsi hash, terdapat 80 putaran dengan proses yang berbeda-beda di setiap 20 putaran. Jumlah putaran yang cukup banyak inilah yang menyebabkan waktu pembuatan nilai MAC dengan algoritma MAC berbasis fungsi hash satu arah menjadi relatif lebih lama. Untuk pembuatan nilai MAC terhadap file yang berukuran relatif besar, pendekatan fungsi hash satu arah ini akan memakan waktu yang cukup lama dan kurang efektif. Adapun pada pembuatan nilai MAC dengan pendekatan cipher block, jauh lebih sederhana, yaitu dengan menghitung panjang nilai XOR antara blok pesan (plaintext) dengan blok kunci. Algoritma block cipher yang sederhana inilah yang membuat pembuatan nilai MAC menjadi relatif lebih cepat. Namun demikian, algoritma ini dirasa terlalu sederhana dan kemungkinan akan lebih mudah terbongkar polanya, sehingga mungkin ditemukan nilai data yang sama. Berdasarkan penelitian-penelitian yang ada terkait algoritma kriptografi MAC berbasis fungsi hash satu arah maupun algoritma kriptografi MAC berbasis cipher block, maka dilakukan penelitian yang membahas tentang “Perancangan Algoritma Message Authentication Code (MAC) Dengan Pendekatan Kriptografi Block Cipher Berbasis 256 Bit Pada Pola Papan Dart”. Penelitian yang dilakukan ini membahas tentang perancangan algoritma MAC dengan pendekatan kriptografi block cipher berbasis 256 bit, dimana enkripsi pada plaintext dan ciphertext menggunakan pola papan dart sebagai pengacakan. Perbedaan perancangan algoritma kriptografi ini dengan algoritma kriptografi yang sebelum-sebelumnya terdapat pada teknik dan proses rancangan plaintext dan kunci yang menggunakan algoritma MAC dengan pendekatan algoritma kriptografi block cipher. Proses rancangan menggunakan sebanyak 20 putaran pada plaintext dan dimodulasi Exclutive-OR dengan kunci yang sudah diregenerasi sebanyak 20 putaran yang telah ditentukan sebelumnya. Selanjutnya akan dibahas dasar teori yang digunakan sebagai landasan untuk merancang algoritma kriptografi dalam penelitan ini. Kriptografi adalah ilmu yang mempelajari teknik-teknik yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan, integritas data dan otentikasi.
10
Dalam kriptografi, MAC merupakan informasi yang digunakan untuk menjaga integritas pesan serta melakukan otentikasi pengiriman pesan. Dalam algoritma MAC, masukan yang diterima adalah pesan yang akan diautentikasi serta kunci rahasia. Keluarannya adalah nilai MAC. Seperti halnya tanda tangan digital, MAC dilekatkan pada pesan dan digunakan untuk otentikasi tanpa perlu merahasiakan pesan. Namun demikian, MAC berbeda dengan tanda tangan digital. Nilai pada MAC dihasilkan dengan menggunakan kunci rahasia yang sama antara pengirim dan penerima pesan, atau sama dengan penggunaan enkripsi simetri. Secara matematis, MAC dinyatakan pada Persamaan 1. MAC = CK (M)
(1)
yang dalam hal ini, MAC = nilai hash C = fungsi hash (algoritma MAC) K = kunci rahasia M = pesan yang akan dikirim atau dihitung nilai MACnya Fungsi C memampatkan pesan M yang berukuran bebas dengan menggunakan kunci. Dalam fungsi ini bersifat many-to-one, yang berarti beberapa pesan yang berbeda-beda dapat memiliki nilai MAC yang sama. Tetapi dalam realisasinya, menemukan pesan-pesan seperti ini secara komputasi sangatlah sulit. Penggunaan MAC dalam pengiriman pesan dapat dilihat pada Gambar 1.
Gambar 1 Prosedur Message Authentication Code (MAC) [4]
Prosedur MAC pada Gambar 1, dijelaskan sebagai berikut. Pengirim pesan akan menghitung nilai MAC dari pesan yang akan dikirim dengan kunci rahasia tertentu. Dalam hal ini diasumsikan bahwa pengirim dan penerima sudah berbagi kunci rahasia. Kemudian nilai MAC yang didapat dilekatkan pada pesan, selanjutnya dikirim bersama-sama dengan nilai MAC ke penerima. Pihak penerima kemudian akan menggunakan kunci K yang sama dengan pengirim untuk menghitung dan membandingkan nilai MAC yang diterima. Jika kedua nilai MAC yang dihitung dan dibandingkan oleh penerima pesan sama dengan nilai MAC yang dilekatkan pada
11
pesan, maka dapat disimpulkan bahwa pesan yang diterima masih terjaga keasliannya dan tidak terjadi pengubahan isi pesan apapun selama transmisi. Pada block cipher, rangkaian bit-bit plaintext dibagi menjadi blok-blok bit dengan panjang sama, biasanya 64 bit (tapi adakalanya lebih). Proses enkripsi yang menghasilkan block ciphertext pada kebanyakan algoritma kriptografi block cipher berukuran sama dengan block plaintext. Pada algoritma kriptografi block cipher, proses dekripsi dilakukan kebalikan dari cara yang sama seperti enkripsi. Secara umum, skema proses enkripsi-dekripsi dapat ditunjukkan pada Gambar 2.
Gambar 2 Skema Proses Enkripsi-Dekripsi Pada Block Cipher [1]
Misalkan block plaintext (P) yang berukuran n bit
P p1 , p 2 , , p n
(2)
Blok ciphertext (C) maka blok C adalah
C c1 , c2 ,, cn
(3)
Kunci (K) maka kunci adalah
K k1 , k 2 ,, k n
(4)
Sehingga proses enkripsi adalah
E k P C
(5)
Proses dekripsi adalah Dk C P (C) = P
(6)
Sebuah kriptografi dapat dikatakan sebagai suatu teknik kriptografi, harus melalui uji kriptosistem terlebih dahulu yaitu diuji dengan metode Stinson. Definisi 1 : terdiri dari 5-tuple (Five tuple) (P, C, K, E, D) yang memenuhi kondisi : 1. P adalah himpunan berhingga dari plaintext, 2. C adalah himpunan berhingga dari ciphertext, 3. K merupakan ruang kunci (keyspace), adalah himpunan berhingga dari kunci, 4. Untuk setiap 𝑘 𝜖 𝑲, terdapat aturan enkripsi 𝑒𝑘 𝜖 𝑬 dan berkorespodensi dengan aturan dekripsi 𝑑𝑘 𝜖 𝑫. Setiap 𝑒𝑘 ∶ 𝑷 ⟶ 𝑪 dan 𝑑𝑘 ∶ 𝑪 ⟶ 𝑷 adalah 12
fungsi sedemikian hingga 𝑑𝑘 (𝑒𝑘 (𝑥)) = 𝑥 untuk setiap plaintext 𝑥 𝜖 𝑷. Definisi 1.1 : Untuk mengetahui besaran nilai algoritma kriptografi yang dirancang mampu mengacak plaintext yang diinputkan maka digunakan nilai keacakan yang diproleh dari Persamaan (7): 𝑌𝑖 =
𝑝𝑖 −𝑐𝑖
(7)
𝑝𝑖
Dimana nilai acak Yi untuk tiap karakter diperoleh dari perbandingan antara selisih plaintext pi dengan ciphertext ci terhadap plaintext pi. Berdasarkan Persamaan 2 maka untuk
mencari nilai keacakan menggunakan rumus pada Persamaan 8. ̅ =∑ 𝑌𝑖
𝑛=8
𝑌𝑖
(8)
𝑖=0 𝑛
Diferensiasi data adalah perbandingan selisih antar dua titik. Dalam kalkulus, metode ini sering disebut sebagai turunan atau kemiringan dari data. Jika diberikan kumpulan data ((x1,y1), (x2,y2), (x3,y3), …, (xn,yn)) dengan syarat bahwa xi < xi+1 dimana i = 1…n. Data-data tersebut dapat divisualisasikan ke dalam koordinat Cartesius untuk setiap x sebagai variabel bebas dan y atau kadang ditulis sebagai f(x) sebagai variabel tak bebas. Untuk menentukan diferensiasi data pada dua titik maka persamaan dapat dibentuk seperti Persamaan 9. Dy (yb - ya ) = Dx (xa - xb )
(9)
Dengan (xa, ya) sebagai titik pertama, dan titik berikutnya adalah (xb, yb). Apabila terdapat n data maka untuk menentukan rata-rata dari diferensiasi data dapat dicari untuk melihat tren dari setiap data Rataan diferensiasi (Rd) dengan Persamaan (10). (10) 3.
Metode dan Perancangan Algoritma
Pada perancangan algoritma kriptografi Message Authentication Code (MAC) dengan pendekatan kriptografi Block Cipher berbasis 256 bit pada pola papan dart dibutuhkan tahap-tahap dalam penelitian. Tahap-tahap yang dibutuhkan yaitu: (1) Pengumpulan Bahan, (2) Analisis Masalah, (3) Perancangan Algoritma MAC, (4) Uji Algoritma MAC, dan (5) Penulisan Laporan.
13
Pengumpulan Bahan Analisis Masalah Perancangan Algoritma MAC Pengujian Algoritma MAC Penulisan Laporan Gambar 3 Tahapan Penelitian
Tahapan penelitian pada Gambar 3, dapat dijelaskan sebagai berikut : Tahap pertama : Pengumpulan bahan yaitu mencari pola yang akan digunakan dalam proses perancangan algoritma kriptografi baru MAC dengan pendekatan kriptografi block cipher serta mengumpulkan referensi yang mendukung; Tahap kedua : Analisis masalah tentang keamanan algoritma MAC dengan pendekatan kriptografi block cipher kemudian dijadikan landasan perancangan algoritma baru MAC dengan pendekatan kriptografi block cipher. Rumusan masalah yang dibahas dalam rancangan algoritma MAC dengan pendekatan kriptografi block cipher berbasis 256 bit pada pola papan dart, yaitu: 1) Plaintext dan kunci dibatasi maksimal 32 karakter; 2) Block-block yang digunakan pada perancangan algoritma MAC dengan pendekatan kriptografi block cipher berbasis 256 bit pada pola papan dart menggunakan block 16x16 (256bit); 3) Pola yang digunakan pada rancangan adalah papan dart; Tahap ketiga : Perancangan algoritma : 1) Merancang algoritma MAC dengan pendekatan kriptografi block cipher menggunakan pola papan dart; 2) Membuat rancangan enkripsi yang diterapkan dalam block cipher dengan ukuran block 16x16 (256-bit), enkripsi pada kunci dibuat sesuai alur yang telah ditentukan pada kunci; Tahap keempat : Pengujian algoritma MAC dilakukan secara manual dari memasukkan plaintext, mengubah teks ke dalam bit dan melakukan proses enkripsi; Tahap kelima : Menulis laporan dari hasil penelitian yang sudah dilakukan dari tahap awal hingga tahap akhir. Batasan masalah dalam penelitian ini yaitu : 1) Proses enkripsi hanya dilakukan pada teks; 2) Jumlah plaintext dan kunci dibatasi yaitu menampung 32 karakter serta proses putaran terdiri dari 20 putaran; 3) Panjang block adalah 256-bit. Dalam perancangan algoritma MAC dengan pendekatan kriptografi block cipher berbasis 256 bit pada pola papan dart ini dilakukan dua (2) proses yaitu proses enkripsi dan proses kompresi. Proses enkripsi pada perancangan algoritma MAC dengan pendekatan kriptografi block cipher berbasis 256 bit pada pola papan dart
14
dilakukan dengan menggunakan putaran sebanyak 20 kali, yang ditunjukkan dalam Gambar 4 dan Gambar 5. Plaintext
Kunci
P1
K1
P2
K2
P..
P..
P20
K20
Ciphertext
Gambar 4 Rancangan Alur Proses Enkripsi
Gambar 4 menunjukkan rancangan alur proses enkripsi pada perancangan algoritma MAC dengan pendekatan kriptografi block cipher berbasis 256 bit pada pola papan dart. Tahap persiapan dan langkah-langkah proses enkripsi dijelaskan sebagai berikut: a) Menyiapkan plaintext; b) Mengubah plaintext menjadi biner sesuai dalam tabel ASCII; c) Dalam rancangan alur proses enkripsi mempunyai rumus untuk menghasilkan plaintext dan kunci: 1) Plaintext 1 (P1) melakukan pengaturan dengan melakukan pola papan dart kemudian di XOR dengan Kunci 1 (K1) menghasilkan Plaintext 2 (P2); 2) Plaintext 2 (P2) melakukan pengaturan dengan melakukan pola papan dart kemudian di XOR dengan Kunci 2 (K2) menghasilkan Plaintext 3 (P3); dan tahapan tersebut berlanjut terus secara berurut sampai menghasilkan Plaintext 20 (P20); 3) Plaintext 20 (P20) melakukan pengaturan dengan melakukan pola papan dart kemudian di XOR dengan Kunci 20 (K20) menghasilkan Ciphertext (C). Setelah proses enkripsi dilakukan sampai dengan 20 putaran plaintext, maka dilanjutkan dengan proses kompresi, yang ditunjukkan pada Gambar 5.
15
Ciphertext
Ciphertext
CP1
CK1
CP2
CK2
CP3
CK3
MAC
Gambar 5 Rancangan Alur Proses Kompresi
Gambar 5 menunjukkan rancangan alur proses kompresi dari proses enkripsi untuk menghasilkan MAC. Tahap persiapan dan langkah-langkah proses kompresi dijelaskan sebagai berikut: a) Menyiapkan Ciphertext; b) Mengubah Ciphertext menjadi biner sesuai dalam tabel ASCII; c) Membagi biner dari Ciphertext menjadi 128-bit; d) Dalam rancangan alur proses kompresi mempunyai rumus untuk menghasilkan sebuah MAC: 1) Biner dari Ciphertext (C) dipisahkan menjadi 2 block yang nantinya akan di XOR satu sama lain 4.
Hasil dan Pembahasan
Bagian ini akan membahas secara lebih rinci mengenai perancangan algoritma MAC berbasis 256 bit pada pola papan dart. Bagian ini juga akan membahas tentang proses enkripsi dan kompresi untuk menghasilkan sebuah MAC.
Gambar 6 Papan Dart
Gambar 6 merupakan papan dart yang dijadikan sebagai pola dalam perancangan algoritma MAC dengan pendekatan kriptografi block cipher berbasis 256 bit yang diterapkan dalam matriks plaintext.
16
x1 x17 x33 x49 x65 x81 x97 x113 x129 x145 x161 x177 x193 x209 x225 x241
x2 x18 x34 x50 x66 x82 x98 x114 x130 x146 x162 x178 x194 x210 x226 x242
x3 x19 x35 x51 x67 x83 x99 x115 x131 x147 x163 x179 x195 x211 x227 x243
x4 x20 x36 x52 x68 x84 x100 x116 x132 x148 x164 x180 x196 x212 x228 x244
x5 x21 x37 x53 x69 x85 x101 x117 x133 x149 x165 x181 x197 x213 x229 x245
x6 x22 x38 x54 x70 x86 x102 x118 x134 x150 x166 x182 x198 x214 x230 x246
x7 x23 x39 x55 x71 x87 x103 x119 x135 x151 x167 x183 x199 x215 x231 x247
x8 x24 x40 x56 x72 x88 x104 x120 x136 x152 x168 x184 x200 x216 x232 x248
x9 x25 x41 x57 x73 x89 x105 x121 x137 x153 x169 x185 x201 x217 x233 x249
x10 x26 x42 x58 x74 x90 x106 x122 x138 x154 x170 x186 x202 x218 x234 x250
x11 x27 x43 x59 x75 x91 x107 x123 x139 x155 x171 x187 x203 x219 x235 x251
x12 x28 x44 x60 x76 x92 x108 x124 x140 x156 x172 x188 x204 x220 x236 x252
x13 x29 x45 x61 x77 x93 x109 x125 x141 x157 x173 x189 x205 x221 x237 x253
x14 x30 x46 x62 x78 x94 x110 x126 x142 x158 x174 x190 x206 x222 x238 x254
x15 x31 x47 x63 x79 x95 x111 x127 x143 x159 x175 x191 x207 x223 x239 x255
x16 x32 x48 x64 x80 x96 x112 x128 x144 x160 x176 x192 x208 x224 x240 x256
Gambar 7 Proses Pemasukan Bit Plaintext Dalam Matriks
Gambar 7 menggambarkan proses pemasukan plaintext yang akan diubah menjadi biner dan dimasukkan ke dalam matriks 256-bit. Langkah pertama memasukkan bit secara horizontal dari kolom pertama adalah x1, x2, x3, …..x256. x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16
x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30 x31 x32
x33 x34 x35 x36 x37 x38 x39 x40 x41 x42 x43 x44 x45 x46 x47 x48
x49 x50 x51 x52 x53 x54 x55 x56 x57 x58 x59 x60 x61 x62 x63 x64
x65 x66 x67 x68 x69 x70 x71 x72 x73 x74 x75 x76 x77 x78 x79 x80
x81 x82 x83 x84 x85 x86 x87 x88 x89 x90 x91 x92 x93 x94 x95 x96
x97 x98 x99 x100 x101 x102 x103 x104 x105 x106 x107 x108 x109 x110 x111 x112
x113 x114 x115 x116 x117 x118 x119 x120 x121 x122 x123 x124 x125 x126 x127 x128
x129 x130 x131 x132 x133 x134 x135 x136 x137 x138 x139 x140 x141 x142 x143 x144
x145 x146 x147 x148 x149 x150 x151 x152 x153 x154 x155 x156 x157 x158 x159 x160
x161 x162 x163 x164 x165 x166 x167 x168 x169 x170 x171 x172 x173 x174 x175 x176
x177 x178 x179 x180 x181 x182 x183 x184 x185 x186 x187 x188 x189 x190 x191 x192
x193 x194 x195 x196 x197 x198 x199 x200 x201 x202 x203 x204 x205 x206 x207 x208
x209 x210 x211 x212 x213 x214 x215 x216 x217 x218 x219 x220 x221 x222 x223 x224
x225 x226 x227 x228 x229 x230 x231 x232 x233 x234 x235 x236 x237 x238 x239 x240
x241 x242 x243 x244 x245 x246 x247 x248 x249 x250 x251 x252 x253 x254 x255 x256
Gambar 8 Proses Enkripsi Pemasukan Bit Plaintext Putaran 20 Dalam Matriks
Gambar 8 merupakan proses ke-4 dari putaran ke-20 pemasukan bit secara vertikal. Hasil pengambilan bit proses ke-4 dari putaran ke-20 setelah pemasukan bit dapat dilihat pada Gambar 9. Pengambilan bit dimulai secara horizontal dari x1, x17, x33, …..x241 dan dimasukan ke dalam matriks sesuai pola papan dart, seperti terlihat pada Gambar 9.
17
x1 x180 x164 x148 x132 x116 x100 x84 x68 x52 x36 x20 x4 x243 x227 x211
x17 x196 x247 x231 x215 x199 x183 x167 x151 x135 x119 x103 x87 x71 x55 x195
x33 x212 x8 x186 x170 x154 x138 x122 x106 x90 x74 x58 x42 x27 x39 x179
x49 x228 x24 x202 x252 x236 x220 x204 x188 x172 x156 x140 x124 x10 x23 x163
x65 x244 x40 x218 x13 x190 x174 x158 x142 x126 x110 x94 x108 x249 x7 x147
x81 x5 x56 x234 x29 x206 x255 x239 x223 x207 x191 x78 x92 x233 x246 x131
x97 x21 x72 x250 x45 x222 x16 x192 x176 x160 x175 x62 x76 x217 x230 x115
x113 x37 x88 x11 x61 x238 x32 x208 x256 x144 x175 x46 x60 x201 x214 x99
x129 x53 x104 x27 x77 x254 x48 x224 x240 x128 x143 x30 x44 x185 x198 x83
x145 x69 x120 x43 x93 x15 x64 x80 x96 x112 x127 x14 x28 x169 x182 x67
x161 x85 x136 x59 x109 x31 x47 x63 x79 x95 x111 x254 x12 x153 x166 x51
x177 x101 x152 x75 x125 x141 x157 x173 x189 x205 x221 x237 x251 x137 x150 x35
x193 x117 x168 x91 x107 x123 x139 x155 x171 x187 x203 x219 x235 x121 x134 x19
x209 x133 x184 x200 x216 x232 x248 x9 x25 x41 x57 x73 x89 x105 x118 x3
x225 x149 x165 x181 x197 x213 x229 x245 x6 x22 x38 x54 x70 x86 x102 x242
x241 x2 x18 x34 x50 x66 x82 x98 x114 x130 x146 x162 x178 x194 x210 x226
Gambar 9 Hasil Proses Enkripsi Pengambilan Bit Plaintext Putaran 20 Pada Pola Papan Dart
Gambar 10 Rancangan Proses Pemasukan Bit Kunci Dalam Matriks
Gambar 10 merupakan proses pemasukan bit kunci ke dalam matriks. Langkah pertama memasukkan bit secara horizontal dari kolom pertama x1, x2, x3, …..x256. x241 x242 x243 x244 x245 x246 x247 x248 x249 x250 x251 x252 x253 x254 x255 x256
x240 x239 x238 x237 x236 x235 x234 x233 x232 x231 x230 x229 x228 x227 x226 x225
x209 x210 x211 x212 x213 x214 x215 x216 x217 x218 x219 x220 x221 x222 x223 x224
x208 x207 x206 x205 x204 x203 x202 x201 x200 x199 x198 x197 x196 x195 x194 x193
x177 x178 x179 x180 x181 x182 x183 x184 x185 x186 x187 x188 x189 x190 x191 x192
x176 x175 x174 x173 x172 x171 x170 x169 x168 x167 x166 x165 x164 x163 x162 x161
x145 x146 x147 x148 x149 x150 x151 x152 x153 x154 x155 x156 x157 x158 x159 x160
x144 x143 x142 x141 x140 x139 x138 x137 x136 x135 x134 x133 x132 x131 x130 x129
x113 x114 x115 x116 x117 x118 x119 x120 x121 x122 x123 x124 x125 x126 x127 x128
x112 x111 x110 x109 x108 x107 x106 x105 x104 x103 x102 x101 x100 x99 x98 x97
x81 x82 x83 x84 x85 x86 x87 x88 x89 x90 x91 x92 x93 x94 x95 x96
x80 x79 x78 x77 x76 x75 x74 x73 x72 x71 x70 x69 x68 x67 x66 x65
x49 x50 x51 x52 x53 x54 x55 x56 x57 x58 x59 x60 x61 x62 x63 x64
x48 x47 x46 x45 x44 x43 x42 x41 x40 x39 x38 x37 x36 x19 x34 x33
Gambar 11 Proses Enkripsi Pemasukan Bit Kunci Dalam Matriks
18
x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30 x31 x32
x16 x15 x14 x13 x12 x11 x10 x9 x8 x7 x6 x5 x4 x3 x2 x1
Gambar 11 merupakan proses enkripsi pemasukan kunci ke dalam matriks secara vertikal dari kolom terakhir x1, x2, x3, …..x256. Hasil pengambilan bit setelah proses enkripsi pemasukan bit dapat dilihat pada Gambar 12. x16 x17 x48 x49 x80 x81 x112 x113 x144 x145 x176 x177 x208 x209 x240 x241
x242 x108 x117 x140 x149 x172 x181 x204 x213 x236 x245 x13 x20 x45 x52 x77
x239 x85 x73 x88 x105 x120 x137 x152 x169 x184 x201 x216 x233 x248 x10 x84
x210 x76 x56 x166 x187 x198 x219 x230 x251 x7 x26 x39 x58 x71 x23 x109
x207 x53 x41 x155 x132 x157 x164 x189 x196 x221 x228 x253 x5 x90 x42 x116
x178 x44 x24 x134 x125 x226 x255 x3 x30 x19 x62 x67 x28 x103 x55 x141
x175 x21 x9 x123 x100 x223 x193 x224 x225 x256 x2 x94 x37 x122 x74 x148
x146 x12 x249 x102 x93 x194 x192 x33 x64 x65 x31 x99 x60 x135 x87 x173
x143 x246 x232 x91 x68 x191 x161 x32 x1 x96 x34 x126 x69 x154 x106 x180
x114 x235 x217 x70 x61 x162 x160 x129 x128 x97 x63 x131 x92 x167 x119 x205
x111 x214 x200 x59 x36 x159 x130 x127 x98 x95 x66 x158 x101 x186 x138 x212
x82 x203 x185 x38 x29 x4 x254 x227 x222 x195 x190 x163 x124 x199 x151 x237
x79 x182 x168 x27 x6 x252 x229 x220 x197 x188 x165 x156 x133 x218 x170 x244
x50 x171 x153 x136 x121 x104 x89 x72 x57 x40 x25 x8 x250 x231 x183 x14
x47 x150 x139 x118 x107 x86 x75 x54 x43 x22 x11 x247 x234 x215 x202 x19
x18 x15 x243 x238 x211 x206 x179 x174 x147 x142 x115 x110 x83 x78 x51 x46
Gambar 12 Hasil Pengambilan Bit Dari Proses Pemasukan Kunci
Gambar 12 merupakan hasil proses pengambilan bit pada kunci setelah proses enkripsi pemasukan bit kunci. Pengambilan kunci digunakan untuk menyamarkan pesan plaintext pada ciphertext. Pengambilan dalam bit kunci dilakukan secara horizontal dan dimasukkan dalam matriks sesuai pola papan dart. Bit pertama mulai diambil dari kolom pertama dari proses enkripsi pemasukan bit kunci dan dimasukkan dalam matriks sesuai dengan pola papan dart yang dimulai dari x241, x240, x209, …..x16, seperti yang terlihat pada Gambar 12. Alur proses enkripsi dan kompresi telah dijelaskan di pembahasan sebelumnya yaitu pada bagian metode dan perancangan algoritma. Proses yang lebih lengkap mengenai alur proses enkripsi dan proses kompresi akan dijabarkan pada Gambar 12 dan Gambar 13.
19
Plaintext
Kunci
ASCII Bit
ASCII Proses 1 (Put 1)
Proses 1 (K 1)
Bit Masuk
Bit Masuk
Proses Ambil
Proses Ambil
P1
Bit
K1 C1
P19
K19
C19
P20
K20 Ciphertext
Plaintext
Kunci
ASCII Bit
ASCII Proses 2 (Put 1)
Proses 2 (K 1)
Bit Masuk
Bit Masuk
Proses Ambil
Proses Ambil
P1
Bit
K1 C1
P19
K19
C19
P20
K20 Ciphertext
Plaintext
Kunci
ASCII
ASCII
Bit
Proses 3 (Put 1)
Proses 3 (K 1)
Bit Masuk
Bit Masuk
Proses Ambil
Proses Ambil
P1
Bit
K1 C1
P19
K19
C19
P20
K20 Ciphertext
Plaintext
Kunci
ASCII Bit
ASCII Proses 4 (Put 1)
Proses 4 (K 1)
Bit Masuk
Bit Masuk
Proses Ambil
Proses Ambil
P1
K1 C1
P19
C19
P20
K19 K20
Ciphertext
Gambar 13 Alur Proses Enkripsi
20
Bit
Gambar 13 menggambarkan proses enkripsi, secara keseluruhan ada empat proses enkripsi yang di dalam setiap prosesnya terdapat dua proses baru untuk pembentukan plaintext dan kunci, dimana dua proses tersebut mempunyai masingmasing 20 putaran plaintext dan kunci. Plaintext diubah ke dalam bentuk bit sesuai dengan tabel ASCII, dan rangkaian bit dimasukkan ke dalam matriks 16x16 secara horizontal maupun vertikal. Pengambilan bit menggunakan pola papan dart dan hasil pengambilan bit akan ditampung menjadi P1. Hal tersebut juga terjadi pada pembentukan kunci. Rangkaian bit pada P1 akan di XOR dengan rangkaian bit pada K1 sehingga menghasilkan C1. Rangkaian bit pada C1 akan digunakan sebagai plaintext ke-2 untuk pemasukan bit pada putaran ke-2. Sedangkan rangkaian bit pada K1 akan digunakan kembali untuk pemasukan bit kunci putaran ke-2. Proses enkripsi ke-2, ke-3, dan ke-4 pada putaran ke-1 sampai putaran ke-20 hampir sama dengan proses enkripsi ke-1 putaran ke-1 sampai putaran ke-20. Perbedaannya adalah pola yang digunakan masih sama yaitu papan dart tapi setiap pengambilan pada proses enkripsi ke-2, ke-3, dan ke-4 untuk masing-masing putaran ke-1 sampai dengan putaran ke-20 berbeda. Proses kompresi merupakan pemampatan dari masing-masing ciphertext pada proses enkripsi ke-1, ke-2, ke,3, dan ke-4 untuk menghasilkan sebuah MAC. Alur proses kompresi ditunjukkan pada Gambar 14. Ciphertext (Hex) Bit
Proses 1 Bagi Bit (C) Jadi 2 Bagian (128-bit) Bagian 2 Dijadikan Kunci
Bagian 1 Dijadikan Plaintext
Masukan Dalam Matrix (16x8)
Masukan Dalam Matrix (16x8) C1 Proses 2
Bagi Bit C1 Jadi 2 Bagian (64-bit) Bagian 2 Dijadikan Kunci
Bagian 1 Dijadikan Plaintext
Masukan Dalam Matrix (8x8)
Masukan Dalam Matrix (8x8) C2 Proses 3
Bagi Bit C2 Jadi 2 Bagian (32-bit) Bagian 2 Dijadikan Kunci
Bagian 1 Dijadikan Plaintext
Masukan Dalam Matrix (8x4)
Masukan Dalam Matrix (8x4) C3
Ubah Nilai C3 Menjadi Hexa Nilai C3 (Hex) = MAC
Gambar 14 Alur Proses Kompresi
Untuk membuktikan proses enkripsi pada pola papan dart sehingga menghasilkan sebuah MAC, maka dilakukan perhitungan secara manual. Proses 21
enkripsi pada pengujian algoritma MAC ini menggunakan kalimat “FAKULTAS TEKNOLOGI INFORMASI FTI” sebagai input plaintext dan “UNIVERSITAS KRISTEN SATYA WACANA” sebagai kunci. Proses yang dijelaskan dalam pembahasan ini adalah proses ke-4 pada putaran ke-1 Plaintext “FAKULTAS TEKNOLOGI INFORMASI FTI” dan kunci “UNIVERSITAS KRISTEN SATYA WACANA” diubah ke dalam biner menjadi : FA : KU : LT : AS : (_)T : EK : NO : LO : GI : (_)I : NF : OR : MA : SI : (_)F : TI :
0100011001000001 0100101101010101 0100110001010100 0100000101010011 0010000001010100 0100010101001011 0100111001001111 0100110001001111 0100011101001001 0010000001001001 0100111001000110 0100111101010010 0100110101000001 0101001101001001 0010000001000110 0101010001001001
UN : IV : ER : SI : TA : S(_) : KR : IS : TE : N(_) : SA : TY : A(_) : WA : CA : NA :
0101010101001110 0100100101010110 0100010101010010 0101001101001001 0101010001000001 0101001100100000 0100101101010010 0100100101010011 0101010001000101 0100111000100000 0101001101000001 0101010001011001 0100000100100000 0101011101000001 0100001101000001 0100111001000001
Proses pengambilan rangkaian bit pada matriks 16x16 untuk plaintext dan kunci telah ditunjukkan pada Gambar 8 dan Gambar 9. Tabel 1 Hasil Perubahan dari Plaintext Ke Ciphertext dan Menghasilkan Nilai Message Authentication Code (MAC) Dalam Hexa No
Plaintext
1.
Putaran 20 (P1) (0001000011001100, 1110011000011011, 1110010111111100, 1001011011001001, 0110100010011110, 0111001001100110, 0000101110110011, 1001110010100100, 1011000110101101, 1000101000101111, 1000001111100101, 1000110101010011, 1101001001011100, 0100000100101100, 0110000001100000, 0100001111001111)
2.
Putaran 20 (P2) (0000110110100110, 0000100100010000, 0101100000010111, 0110110001000000, 0111110110101011, 0100101100110101, 1110100111011101, 0101010111010101, 1101110000110000, 0011001111010111, 1110010010010101, 0101101101101011, 1010010010010011, 1001001101001100, 1000100000101011, 1110000010111100)
3.
Ciphertext 16 204, 230 27, 229 252, 150 201, 104 158, 114 102, 11 179, 156 164, 177 173, 138 47, 131 229, 141 83, 210 92, 65 44, 96 96, 67 207 13 166, 9 16, 88 23, 108 64, 125 171, 75 53, 233 221, 85 213, 220 48, 51 215, 228 149, 91 107, 164 147, 147 76, 136 43, 224 188 180 155, 142 53, 77 1, 142 115, 28 229, 158 233, 162 82, 9 188, 59 112, 69 21, 174 81, 232 138, 247 141,
Putaran 20 (P3) (1011010010011011, 1000111000110101, 0100110100000001, 1000111001110011, 0001110011100101, 1001111011101001, 1010001001010010, 0000100110111100, 0011101101110000, 0100010100010101, 1010111001010001,
22
Nilai MAC (Hexa)
D82CCA3E
4.
1110100010001010, 1111011110001101, 1000011001011000, 0110111001011011, 0101010001001001) Putaran 20 (P4) (1110001010111000, 0100011001011010, 0101101000101111, 1100001100111010, 0101100101000111, 1100011000101010, 0110110011001100, 1100110011000000, 1001111010110001, 0001011100100101, 1111111101001100, 0000010010001101, 0110011000110110, 0000100000010010, 0110111111010110, 0101000010110000)
134 88, 110 91, 84 73 226 184, 70 90, 90 47, 195 58, 89 71, 198 42, 108 204, 204 192, 158 177, 23 37, 255 76, 4 141, 102 54, 8 18, 111 214, 80 176
Tabel 1 menunjukkan hasil enkripsi putaran ke-20 dari proses ke-1 sampai proses ke-4, bit digunakan sebagai input ke dalam matriks 16x16 algoritma MAC berbasis block cipher yang hasil enkripsi (ciphertext) dikompres untuk mendapatkan sebuah nilai MAC dalam bentuk hexa. Berdasarkan pada Persamaan 7 yang merupakan persamaan untuk mengetahui nilai korelasi antara plaintext dan ciphertext, dalam nilai korelasi berkisar antara -1 sampai 1. Jika nilai korelasi mendekati 1 maka plaintext dan ciphertext mempunyai nilai yang sangat berhubungan, tetapi jika nilai korelasi yang didapat mendekati 0 (nol), maka dapat dikatakan plaintext dan ciphertext mempunyai nilai yang sama sekali tidak berhubungan. Tabel 2 Nilai Korelasi Tiap Proses Proses
Nilai Korelasi
Proses 1
0,072281949
Proses 2
0,085361062
Proses 3
0,212435072
Proses 4
0,030449953
Tabel 2 menunjukkan hasil pengujian korelasi dari setiap proses di dalam algoritma yang dirancang. Berdasarkan nilai-nilai hasil pengujian korelasi yang ditampilkan dalam Tabel 2, proses 1, proses 2, dan proses 4 berada dalam kisaran hubungan yang tidak berarti, sedangkan pada proses 3 hubungan korelasi sangat lemah. Sehingga dapat disimpulkan bahwa algoritma MAC berbasis block cipher yang dirancang dapat menyamarkan pesan plaintext. Pengujian perbedaan output jika salah satu karakter input ditambahkan atau dihapus dapat dilihat pada Tabel 3. 23
Tabel 3 Hasil Pengujian Perbedaan Output INPUT
OUTPUT
F FA FAK FAKU FAKUL FAKULT FAKULTA FAKULTAS FAKULTAS T FAKULTAS TE FAKULTAS TEK FAKULTAS TEKN FAKULTAS TEKNO FAKULTAS TEKNOL FAKULTAS TEKNOLO FAKULTAS TEKNOLOG FAKULTAS TEKNOLOGI
7F068E7C 0716C478 CD2D428D E47D11B6 BCE746F8 6B8367B2 2D7532BB 71A7A086 FF42164D 59AFB26F 58AC756A 352256FB 2595265F 62A60A35 2C8B135C 2549F44C 930ADCC8
Tabel 3 menunjukkan hasil pengujian algoritma MAC dimana jika di-Input-kan kalimat “FAKULTAS TEKNOLOGI” akan mempunyai hasil yang berbeda dengan input kalimat lain, jika input pada kalimat yang lain tersebut dihapus satu huruf maupun ditambahkan satu huruf. 5.
Simpulan
Berdasarkan penelitian dan pengujian terhadap rancangan algoritma MAC dengan pendekatan kriptografi block cipher berbasis 256 bit pada pola papan dart maka dapat disimpulkan: 1) Pola papan dart dapat digunakan sebagai rancangan algoritma MAC dengan proses kompresi dari ciphertext; 2) Perubahan pada input seperti pengurangan huruf, kata, atau kalimat menyebabkan hasil output (nilai MAC) mengalami perubahan dari hasil output sebelumnya; 3) Pengujian nilai korelasi pada setiap proses memiliki hubungan korelasi yang lemah sehingga dapat dikatakan bahwa rancangan algoritma MAC dengan pendekatan kriptografi block cipher berbasis 256 bit pada pola papan dart dapat menyamarkan plaintext dengan baik. 6.
Daftar Pustaka
[1] [2]
Munir, R. (2006). Kriptografi. Bandung: Informatika. Adiprabowo, Y., 2006. Implementasi Algoritma MAC Berbasis Cipher Blok Sebagai Program Add-in di Microsoft Word Untuk Otentikasi Dokumen. Teknik Informatika ITB Bandung. Safrina, R., 2007. Pembangunan Algoritma MAC Berbasis Cipher Aliran. Teknik Informatika ITB Bandung.
[3]
24
[4]
[5]
[6] [7] [8] [9]
Prima, P., 2011. Implementasi dan Analisis Perbandingan Algoritma MAC Berbasis Fungsi Hash Satu Arah Dengan Algoritma MAC Berbasis Cipher Block. Teknik Informatika ITB Bandung Dworkin, M., 2005. Recommendation for Block CipherModes of Operation : The CMAC Mode for Authentication. National Insitude of Standard and Technology Special Publication 800-3B. U.S. Department of Commerce. http://en.wikipedia.org/wiki/Message_authentication_code, diakses pada 26 April 2011 Menezes, A. J., van Oorschot, P. C., & Vanstone, S. A., 1997. Handbook of Applied Cryptography, CRC Press. Stinson, D. R., (1995).Cryptography: Theory and Practice. CRC Press, Boca Raton, London, Tokyo. Dafid, Oktober (2006), Kriptografi Kunci Simetris Dengan Menggunakan Algoritma Crypton, STMIK MDP Palembang.
25