1
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
2
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
3
4
5
6
7
8
9
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
10
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.
11
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
12
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
npppP ,,, 21 (2)
Blok ciphertext (C) maka blok C adalah
ncccC ,,, 21 (3)
Kunci (K) maka kunci adalah
nkkkK ,,, 21 (4)
Sehingga proses enkripsi adalah
CPEk (5)
Proses dekripsi adalah
PCDk (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
13
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
𝑖=0 (8)
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
Dx=
(yb - ya )
(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.
14
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 (256-
bit); 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
Perancangan Algoritma
MAC
Pengujian Algoritma MAC
Pengumpulan Bahan
Analisis Masalah
Penulisan Laporan
15
dilakukan dengan menggunakan putaran sebanyak 20 kali, yang ditunjukkan dalam
Gambar 4 dan Gambar 5.
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.
Plaintext Kunci
P1 K1
P2 K2
P.. P..
P20 K20
Ciphertext
16
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.
Ciphertext Ciphertext
CP1 CK1
CP2 CK2
CP3 CK3
MAC
17
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.
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.
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
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
18
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.
Gambar 11 Proses Enkripsi Pemasukan Bit
Kunci Dalam Matriks
x1 x17 x33 x49 x65 x81 x97 x113 x129 x145 x161 x177 x193 x209 x225 x241
x180 x196 x212 x228 x244 x5 x21 x37 x53 x69 x85 x101 x117 x133 x149 x2
x164 x247 x8 x24 x40 x56 x72 x88 x104 x120 x136 x152 x168 x184 x165 x18
x148 x231 x186 x202 x218 x234 x250 x11 x27 x43 x59 x75 x91 x200 x181 x34
x132 x215 x170 x252 x13 x29 x45 x61 x77 x93 x109 x125 x107 x216 x197 x50
x116 x199 x154 x236 x190 x206 x222 x238 x254 x15 x31 x141 x123 x232 x213 x66
x100 x183 x138 x220 x174 x255 x16 x32 x48 x64 x47 x157 x139 x248 x229 x82
x84 x167 x122 x204 x158 x239 x192 x208 x224 x80 x63 x173 x155 x9 x245 x98
x68 x151 x106 x188 x142 x223 x176 x256 x240 x96 x79 x189 x171 x25 x6 x114
x52 x135 x90 x172 x126 x207 x160 x144 x128 x112 x95 x205 x187 x41 x22 x130
x36 x119 x74 x156 x110 x191 x175 x175 x143 x127 x111 x221 x203 x57 x38 x146
x20 x103 x58 x140 x94 x78 x62 x46 x30 x14 x254 x237 x219 x73 x54 x162
x4 x87 x42 x124 x108 x92 x76 x60 x44 x28 x12 x251 x235 x89 x70 x178
x243 x71 x27 x10 x249 x233 x217 x201 x185 x169 x153 x137 x121 x105 x86 x194
x227 x55 x39 x23 x7 x246 x230 x214 x198 x182 x166 x150 x134 x118 x102 x210
x211 x195 x179 x163 x147 x131 x115 x99 x83 x67 x51 x35 x19 x3 x242 x226
x241 x240 x209 x208 x177 x176 x145 x144 x113 x112 x81 x80 x49 x48 x17 x16
x242 x239 x210 x207 x178 x175 x146 x143 x114 x111 x82 x79 x50 x47 x18 x15
x243 x238 x211 x206 x179 x174 x147 x142 x115 x110 x83 x78 x51 x46 x19 x14
x244 x237 x212 x205 x180 x173 x148 x141 x116 x109 x84 x77 x52 x45 x20 x13
x245 x236 x213 x204 x181 x172 x149 x140 x117 x108 x85 x76 x53 x44 x21 x12
x246 x235 x214 x203 x182 x171 x150 x139 x118 x107 x86 x75 x54 x43 x22 x11
x247 x234 x215 x202 x183 x170 x151 x138 x119 x106 x87 x74 x55 x42 x23 x10
x248 x233 x216 x201 x184 x169 x152 x137 x120 x105 x88 x73 x56 x41 x24 x9
x249 x232 x217 x200 x185 x168 x153 x136 x121 x104 x89 x72 x57 x40 x25 x8
x250 x231 x218 x199 x186 x167 x154 x135 x122 x103 x90 x71 x58 x39 x26 x7
x251 x230 x219 x198 x187 x166 x155 x134 x123 x102 x91 x70 x59 x38 x27 x6
x252 x229 x220 x197 x188 x165 x156 x133 x124 x101 x92 x69 x60 x37 x28 x5
x253 x228 x221 x196 x189 x164 x157 x132 x125 x100 x93 x68 x61 x36 x29 x4
x254 x227 x222 x195 x190 x163 x158 x131 x126 x99 x94 x67 x62 x19 x30 x3
x255 x226 x223 x194 x191 x162 x159 x130 x127 x98 x95 x66 x63 x34 x31 x2
x256 x225 x224 x193 x192 x161 x160 x129 x128 x97 x96 x65 x64 x33 x32 x1
19
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.
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.
x16 x242 x239 x210 x207 x178 x175 x146 x143 x114 x111 x82 x79 x50 x47 x18
x17 x108 x85 x76 x53 x44 x21 x12 x246 x235 x214 x203 x182 x171 x150 x15
x48 x117 x73 x56 x41 x24 x9 x249 x232 x217 x200 x185 x168 x153 x139 x243
x49 x140 x88 x166 x155 x134 x123 x102 x91 x70 x59 x38 x27 x136 x118 x238
x80 x149 x105 x187 x132 x125 x100 x93 x68 x61 x36 x29 x6 x121 x107 x211
x81 x172 x120 x198 x157 x226 x223 x194 x191 x162 x159 x4 x252 x104 x86 x206
x112 x181 x137 x219 x164 x255 x193 x192 x161 x160 x130 x254 x229 x89 x75 x179
x113 x204 x152 x230 x189 x3 x224 x33 x32 x129 x127 x227 x220 x72 x54 x174
x144 x213 x169 x251 x196 x30 x225 x64 x1 x128 x98 x222 x197 x57 x43 x147
x145 x236 x184 x7 x221 x19 x256 x65 x96 x97 x95 x195 x188 x40 x22 x142
x176 x245 x201 x26 x228 x62 x2 x31 x34 x63 x66 x190 x165 x25 x11 x115
x177 x13 x216 x39 x253 x67 x94 x99 x126 x131 x158 x163 x156 x8 x247 x110
x208 x20 x233 x58 x5 x28 x37 x60 x69 x92 x101 x124 x133 x250 x234 x83
x209 x45 x248 x71 x90 x103 x122 x135 x154 x167 x186 x199 x218 x231 x215 x78
x240 x52 x10 x23 x42 x55 x74 x87 x106 x119 x138 x151 x170 x183 x202 x51
x241 x77 x84 x109 x116 x141 x148 x173 x180 x205 x212 x237 x244 x14 x19 x46
20
Gambar 13 Alur Proses Enkripsi
C1
C19
C1
C19
Ciphertext
P20 K20
Bit
P1 K1
P19 K19
Proses 1 (Put 1) Proses 1 (K 1)
Bit Masuk Bit Masuk
Proses Ambil Proses Ambil
Plaintext
ASCII
Bit
Kunci
ASCII
Bit MasukBit Masuk
ASCII
K19P19
Proses Ambil Proses Ambil
P1
KunciPlaintext
Bit Proses 2 (Put 1) Proses 2 (K 1) Bit
ASCII
K1
P20 K20
Ciphertext
C1
C19
C1
C19
Kunci
Bit Masuk Bit Masuk
Proses Ambil Proses Ambil
ASCII
Bit
Plaintext
ASCII
Bit Proses 3 (Put 1) Proses 3 (K 1)
Bit Proses 4 (Put 1) Proses 4 (K 1) Bit
P1 K1
P19 K19
P20 K20
Ciphertext
Plaintext Kunci
ASCII ASCII
Bit Masuk Bit Masuk
Proses Ambil Proses Ambil
P1 K1
P19 K19
P20 K20
Ciphertext
21
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 masing-
masing 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.
Gambar 14 Alur Proses Kompresi
Untuk membuktikan proses enkripsi pada pola papan dart sehingga
menghasilkan sebuah MAC, maka dilakukan perhitungan secara manual. Proses
C1
C2
C3
Ubah Nilai C3 Menjadi Hexa
Nilai C3 (Hex) = MAC
Masukan Dalam Matrix (16x8)
Masukan Dalam Matrix (8x8)
Masukan Dalam Matrix (8x4)
Masukan Dalam Matrix (16x8)
Masukan Dalam Matrix (8x8)
Masukan Dalam Matrix (8x4)
Bagi Bit C1 Jadi 2 Bagian (64-bit)
Bagian 1 Dijadikan Plaintext Bagian 2 Dijadikan Kunci
Bagian 1 Dijadikan Plaintext Bagian 2 Dijadikan Kunci
Bagi Bit C2 Jadi 2 Bagian (32-bit)
Proses 3
Bagian 1 Dijadikan Plaintext Bagian 2 Dijadikan Kunci
Bagi Bit (C) Jadi 2 Bagian (128-bit)
Proses 2
Bit Proses 1
Ciphertext (Hex)
22
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 :
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
Ciphertext
Nilai MAC
(Hexa)
1. Putaran 20 (P1) (0001000011001100,
1110011000011011, 1110010111111100,
1001011011001001, 0110100010011110, 0111001001100110, 0000101110110011,
1001110010100100, 1011000110101101,
1000101000101111, 1000001111100101, 1000110101010011, 1101001001011100,
0100000100101100, 0110000001100000,
0100001111001111)
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
D82CCA3E
2. Putaran 20 (P2) (0000110110100110,
0000100100010000, 0101100000010111, 0110110001000000, 0111110110101011,
0100101100110101, 1110100111011101,
0101010111010101, 1101110000110000, 0011001111010111, 1110010010010101,
0101101101101011, 1010010010010011,
1001001101001100, 1000100000101011, 1110000010111100)
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
3. Putaran 20 (P3) (1011010010011011, 1000111000110101, 0100110100000001,
1000111001110011, 0001110011100101,
1001111011101001, 1010001001010010, 0000100110111100, 0011101101110000,
0100010100010101, 1010111001010001,
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,
FA : 0 1 0 0 0 1 1 0 0 1 0 0 0 0 0 1 UN : 0 1 0 1 0 1 0 1 0 1 0 0 1 1 1 0
KU : 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 1 IV : 0 1 0 0 1 0 0 1 0 1 0 1 0 1 1 0
LT : 0 1 0 0 1 1 0 0 0 1 0 1 0 1 0 0 ER : 0 1 0 0 0 1 0 1 0 1 0 1 0 0 1 0
AS : 0 1 0 0 0 0 0 1 0 1 0 1 0 0 1 1 SI : 0 1 0 1 0 0 1 1 0 1 0 0 1 0 0 1
(_)T : 0 0 1 0 0 0 0 0 0 1 0 1 0 1 0 0 TA : 0 1 0 1 0 1 0 0 0 1 0 0 0 0 0 1
EK : 0 1 0 0 0 1 0 1 0 1 0 0 1 0 1 1 S(_) : 0 1 0 1 0 0 1 1 0 0 1 0 0 0 0 0
NO : 0 1 0 0 1 1 1 0 0 1 0 0 1 1 1 1 KR : 0 1 0 0 1 0 1 1 0 1 0 1 0 0 1 0
LO : 0 1 0 0 1 1 0 0 0 1 0 0 1 1 1 1 IS : 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 1
GI : 0 1 0 0 0 1 1 1 0 1 0 0 1 0 0 1 TE : 0 1 0 1 0 1 0 0 0 1 0 0 0 1 0 1
(_)I : 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 1 N(_) : 0 1 0 0 1 1 1 0 0 0 1 0 0 0 0 0
NF : 0 1 0 0 1 1 1 0 0 1 0 0 0 1 1 0 SA : 0 1 0 1 0 0 1 1 0 1 0 0 0 0 0 1
OR : 0 1 0 0 1 1 1 1 0 1 0 1 0 0 1 0 TY : 0 1 0 1 0 1 0 0 0 1 0 1 1 0 0 1
MA : 0 1 0 0 1 1 0 1 0 1 0 0 0 0 0 1 A(_) : 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0
SI : 0 1 0 1 0 0 1 1 0 1 0 0 1 0 0 1 WA : 0 1 0 1 0 1 1 1 0 1 0 0 0 0 0 1
(_)F : 0 0 1 0 0 0 0 0 0 1 0 0 0 1 1 0 CA : 0 1 0 0 0 0 1 1 0 1 0 0 0 0 0 1
TI : 0 1 0 1 0 1 0 0 0 1 0 0 1 0 0 1 NA : 0 1 0 0 1 1 1 0 0 1 0 0 0 0 0 1
23
1110100010001010, 1111011110001101,
1000011001011000, 0110111001011011, 0101010001001001)
134 88, 110 91,
84 73
4.
Putaran 20 (P4) (1110001010111000,
0100011001011010, 0101101000101111, 1100001100111010, 0101100101000111,
1100011000101010, 0110110011001100,
1100110011000000, 1001111010110001, 0001011100100101, 1111111101001100,
0000010010001101, 0110011000110110,
0000100000010010, 0110111111010110, 0101000010110000)
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.
24
Tabel 3 Hasil Pengujian Perbedaan Output
INPUT
OUTPUT
F 7F068E7C
FA 0716C478 FAK CD2D428D
FAKU E47D11B6
FAKUL BCE746F8 FAKULT 6B8367B2
FAKULTA 2D7532BB
FAKULTAS 71A7A086 FAKULTAS T FF42164D
FAKULTAS TE 59AFB26F
FAKULTAS TEK 58AC756A
FAKULTAS TEKN 352256FB
FAKULTAS TEKNO 2595265F FAKULTAS TEKNOL 62A60A35
FAKULTAS TEKNOLO 2C8B135C
FAKULTAS TEKNOLOG 2549F44C FAKULTAS TEKNOLOGI 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] Munir, R. (2006). Kriptografi. Bandung: Informatika.
[2] Adiprabowo, Y., 2006. Implementasi Algoritma MAC Berbasis Cipher Blok
Sebagai Program Add-in di Microsoft Word Untuk Otentikasi Dokumen.
Teknik Informatika ITB Bandung.
[3] Safrina, R., 2007. Pembangunan Algoritma MAC Berbasis Cipher Aliran.
Teknik Informatika ITB Bandung.
25
[4] Prima, P., 2011. Implementasi dan Analisis Perbandingan Algoritma MAC
Berbasis Fungsi Hash Satu Arah Dengan Algoritma MAC Berbasis Cipher
Block. Teknik Informatika ITB Bandung
[5] 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.
[6] http://en.wikipedia.org/wiki/Message_authentication_code, diakses pada 26
April 2011
[7] Menezes, A. J., van Oorschot, P. C., & Vanstone, S. A., 1997. Handbook of
Applied Cryptography, CRC Press.
[8] Stinson, D. R., (1995).Cryptography: Theory and Practice. CRC Press, Boca
Raton, London, Tokyo.
[9] Dafid, Oktober (2006), Kriptografi Kunci Simetris Dengan Menggunakan
Algoritma Crypton, STMIK MDP Palembang.