Mukhlisulfatih Latief, Studi Perbandingan Enkripsi Menggunakan Algoritma IDEA dan MMB
STUDI PERBANDINGAN ENKRIPSI MENGGUNAKAN ALGORITMA IDEA DAN MMB Mukhlisulfatih Latief Jurusan Teknik Informatika Fakultas Teknik Universitas Negeri Gorontalo
Abstrak Metode enkripsi dapat digunakan untuk mengamankan data ada bermacam-macam. Setiap metode memiliki kelebihan dan kekurangannya masing-masing. Namun, masalah utamanya adalah bagaimana mengetahui dan memahami cara kerja atau algoritma dari metoda enkripsi tersebut. Enkripsi dengan algoritma MMB menggunakan plaintext 128 bit dan algoritma iteratif yang terdiri dari langkah-langkah linier serta aplikasi paralel dari empat substitusi non linier besar yang dapat dibalik. Substitusi ini ditentukan oleh sebuah operasi perkalian modulo 232 – 1 dengan faktor konstan, yang memiliki tingkat sekuritas lebih tinggi bila dibandingkan dengan metode IDEA yang hanya menggunakan operasi perkalian modulo 216 + 1. MMB menggunakan 32 bit subblock text (x0, x1, x2, x3) dan 32 bit subblock kunci (k0, k1, k2, k3). Hal ini membuat algoritma tersebut sangat cocok diimplementasikan pada prosesor 32 bit. Kata kunci : Enkripsi, Algoritma IDEA dan MMB
Terdapat dua proses penting di dalam kriptografi yang berperan dalam merahasiakan suatu informasi yakni enkripsi (encryption) dan dekripsi (decryption). Enkripsi adalah transformasi data (plaintext) ke dalam bentuk yang hampir tidak dapat dibaca (ciphertext) tanpa pengetahuan yang cukup. Tujuan dari enkripsi adalah untuk menjamin kerahasiaan dengan menjaga informasi tersembunyi dari siapapun yang bukan pemilik atau yang berkepentingan dengan informasi tersebut, bahkan bagi orang yang memiliki akses terhadap data yang telah dienkripsi. Sedangkan dekripsi adalah kebalikan dari enkripsi, yakni transformasi dari data yang telah dienkripsi (ciphertext) kembali ke bentuk semula (plaintext). Proses enkripsi dan dekripsi pada umumnya membutuhkan penggunaan sejumlah informasi yang rahasia, yang sering disebut kunci (key). Berdasarkan pemakaian kunci maka sistem kriptografi (cryptosystems) dapat digolongkan atas 2 jenis sistem yakni sistem kriptografi kunci publik (public key cryptography) dan sistem kriptografi kunci rahasia (secret key cryptography). Dalam sistem kriptografi kunci rahasia yang dikenal juga dengan symmetric cryptosystems, pihak pengirim dan penerima bersama-sama menyepakati sebuah kunci rahasia yang akan digunakan dalam proses enkripsi dan dekripsi tanpa diketahui oleh pihak lain.
Gambar 1. Model sederhana dari secret key cryptosystem Sedangkan dalam sistem kriptografi kunci publik atau dikenal dengan assymmetric cryptosystem, pihak pengirim maupun pihak penerima mendapatkan sepasang kunci yakni kunci publik (public key) dan kunci rahasia (private key) dimana kunci publik dipublikasikan dan kunci rahasia tetap dirahasiakan. Enkripsi dilakukan dengan menggunakan kunci publik sedangkan dekripsi dilakukan dengan menggunakan kunci rahasia.
Gambar 2. Model sederhana dari public key cryptography
MEDIA ELEKTRIK, Volume 4 Nomor 2, Desember 2009
Pembahasan Proses enkripsi dan dekripsi dapat dilakukan dengan beberapa metode. Setiap metode memiliki algoritma tersendiri dalam melakukan proses enkripsi dan dekripsi. Algoritma IDEA dan MMB banyak digunakan dalam proses tersebut. Adapun Perbandingan metode enkripsi dengan algoritma IDEA dan MMB adalah sebagai berikut : 1. Metode enkripsi menggunakan algoritma IDEA IDEA merupakan block cipher (cipher blok), yang beroperasi pada blok plaintext 64 bit. Panjang kuncinya 128 bit. Algoritma yang sama digunakan untuk proses enkripsi dan dekripsi. Sebagaimana algoritma enkripsi yang lain, IDEA menggunakan confusion dan diffusion, berbeda dengan DES yang menggunakan permutasi dan substitusi untuk confusion dan diffusion, IDEA menggunakan operasi aljabar yang tidak kompatibel sebagai berikut, a. XOR. b. Penambahan modulo 216. c. Perkalian modulo 216 + 1 (operasi ini menggantikan kotak-S atau S-Box). Algoritma IDEA menggunakan perkalian modulo 216 + 1 dengan pertimbangan berikut ini : Perkalian dengan nol selalu menghasilkan nol dan tidak memiliki inversi. Perkalian modulo n juga tidak memiliki inversi jika angka yang dikalikan tidak relatif prima terhadap n. Sementara algoritma kriptografi memerlukan operasi yang memiliki inversi. Angka 65537 (216 + 1) adalah sebuah bilangan prima. Oleh karena itu, operasi perkalian modulo (216 + 1) pada algoritma IDEA memiliki inversi. Jika kita membentuk suatu tabel perkalian untuk bilanganbilangan mulai dari 1 sampai 65536, maka setiap baris dan kolom hanya berisi setiap bilangan satu kali saja. Dalam IDEA, untuk operasi perkalian, bilangan 16 bit yang terdiri dari nol semua dianggap sebagai bilangan 65536, sedangkan bilangan lainnya tetap sesuai dengan bilangan tak bertanda yang diwakilinya. Algoritma IDEA ini dapat dibagi menjadi tiga bagian besar, yaitu algoritma pembentukan kunci, enkripsi dan dekripsi. a. Pembentukan Kunci Proses pembentukan kunci dapat dilihat pada gambar 3 di bawah ini :
Gambar 3. Proses Pembentukan Kunci untuk IDEA b. Enkripsi Proses enkripsi algoritma IDEA adalah sebagai berikut : Pertama–tama, plaintext 64 bit dibagi menjadi 4 buah sub blok dengan panjang 16 bit, yaitu X1, X2, X3, X4. Empat sub blok ini menjadi masukan bagi iterasi tahap pertama algoritma. Total terdapat 8 iterasi. Pada setiap iterasi, 4 sub blok di-XOR-kan, ditambahkan, dikalikan dengan yang lain dan dengan 6 buah subkey 16 bit. Diantara iterasi sub blok kedua dan ketiga saling dipertukarkan. Akhirnya 4 buah sub blok dikombinasikan dengan 4 subkey dalam transformasi output. Pada setiap tahapan, urutan berikut ini dikerjakan : 1) Kalikan X1 dengan K1 mod (216 + 1). 2) Tambahkan X2 dengan K2 mod 216. 3) Tambahkan X3 dengan K3 mod 216. 4) Kalikan X4 dengan K4 mod (216 + 1). 5) XOR hasil dari step 1 dan 3. 6) XOR hasil dari step 2 dan 4.
Mukhlisulfatih Latief, Studi Perbandingan Enkripsi Menggunakan Algoritma IDEA dan MMB
1. Kalikan hasil dari step 5 dengan K5 mod (216 + 1). 2. Tambahkan hasil dari step 6 dan 7 mod 216. 3. Kalikan hasil dari step 8 dengan K6 mod (216 + 1). 4. Tambahkan hasil dari step 7 dan 9. 5. XOR hasil dari step 1 dan 9. 6. XOR hasil dari step 3 dan 9. 7. XOR hasil dari step 2 dan 10. 8. XOR hasil dari step 4 dan 10. Output dari setiap round adalah empat sub blok yang dihasilkan pada langkah 11, 12, 13 dan 14. Sub blok 12 dan 13 di-swap (kecuali untuk putaran terakhir) sehingga input dari putaran berikutnya adalah hasil kombinasi dari langkah 11 12 13 14. Setelah 8 putaran, akan dilakukan tranformasi output berikut, 1. Kalikan X1 dengan subkey K1 mod (216 + 1). 2. Tambahkan X2 dengan subkey K2 mod 216. 3. Tambahkan X3 dengan subkey K3 mod 216. 4. Kalikan X4 dengan subkey K4 mod (216 + 1). Proses enkripsi algoritma IDEA dapat dilihat pada gambar 4. Tabel 1. Subkey enkripsi dan dekripsi algoritma IDEA Gambar 4. Proses enkripsi algoritma IDEA Round 1 2 3 4 5 6 7 8 Transformasi output
Subkey Enkripsi K1(1) K2(1) K3(1) K4(1) K5(1) K6(1) K1(2) K2(2) K3(2) K4(2) K5(2) K6(2) K1(3) K2(3) K3(3) K4(3) K5(3) K6(3) K1(4) K2(4) K3(4) K4(4) K5(4) K6(4) K1(5) K2(5) K3(5) K4(5) K5(5) K6(5) K1(6) K2(6) K3(6) K4(6) K5(6) K6(6) K1(7) K2(7) K3(7) K4(7) K5(7) K6(7) K1(8) K2(8) K3(8) K4(8) K5(8) K6(8)
Subkey Dekripsi K1(9)-1 -K2(9) -K3(9) K4(9)-1 K5(8) K6(8) K1(8)-1 -K3(8) -K2(8) K4(8)-1 K5(7) K6(7) K1(7)-1 -K3(7) -K2(7) K4(7)-1 K5(6) K6(6) K1(6)-1 -K3(6) -K2(6) K4(6)-1 K5(5) K6(5) K1(5)-1 -K3(5) -K2(5) K4(5)-1 K5(4) K6(4) K1(4)-1 -K3(4) -K2(4) K4(4)-1 K5(3) K6(3) K1(3)-1 -K3(3) -K2(3) K4(3)-1 K5(2) K6(2) K1(2)-1 -K3(2) -K2(2) K4(2)-1 K5(1) K6(1)
K1(9) K2(9) K3(9) K4(9)
K1(1)-1 -K2(1) -K3(1) K4(1)-1
c. Dekripsi Proses dekripsi sama persis dengan proses enkripsi. Perbedaannya hanya terletak pada aturan dari subkey-nya. Urutan subkey terbalik dengan proses enkripsi dan subkey-nya di-inverse-kan. Subkey pada langkah transformasi output pada proses enkripsi di-inverse-kan dan digunakan sebagai subkey pada putaran 1 pada proses dekripsi. Subkey pada putaran 8 di-inverse-kan dan digunakan sebagai subkey pada putaran 1 dan 2 pada proses dekripsi. Demikian seterusnya seperti pada tabel 1.
2. Metode enkripsi menggunakan algoritma MMB Kelemahan metode IDEA yang menggunakan plaintext 64 bit dan operasi perkalian modulo 216 + 1, diperbaiki oleh Joan Daemen dalam sebuah algoritma yang dinamakan MMB (Modular Multiplication-based Block cipher). Dengan menggunakan plaintext 64 bit (4 buah 16 bit subblock text), metode IDEA hanya dapat diimplementasikan pada prosesor 16 bit, sehingga dinilai tidak dapat mengikuti perkembangan teknologi pada saat ini yang kebanyakan telah menggunakan prosesor 32 bit. Kriptografi metode MMB menggunakan plaintext
MEDIA ELEKTRIK, Volume 4 Nomor 2, Desember 2009
128 bit dan algoritma iteratif yang terdiri dari langkah-langkah linier (seperti XOR dan aplikasi kunci) serta aplikasi paralel dari empat substitusi non linier besar yang dapat dibalik. Substitusi ini ditentukan oleh sebuah operasi perkalian modulo 232 – 1 dengan faktor konstan, yang memiliki tingkat sekuritas lebih tinggi bila dibandingkan dengan metode IDEA yang hanya menggunakan operasi perkalian modulo 216 + 1. MMB menggunakan 32 bit subblock text (x0, x1, x2, x3) dan 32 bit subblock kunci (k0, k1, k2, k3). Hal ini membuat algoritma tersebut sangat cocok diimplementasikan pada prosesor 32 bit. Sebuah fungsi non linier, f, diterapkan enam kali bersama dengan fungsi XOR.
-
for i = 0 to 3 xi = xi-1 XOR xi XOR xi+1 next i
a. Pembentukan Kunci Metode MMB menggunakan kunci sepanjang 128 bit. Proses pembentukan kunci pada metode MMB ini sangat sederhana. Kunci yang di-input hanya dibagi menjadi 4 buah subblock kunci dengan panjang masing-masing 32 bit. Proses pembentukan kunci pada metode MMB ini dapat dilihat pada bagan berikut ini :
k0 k1 k2 … k 127
k0 k1 … k31
k32 k 33 … k 63
k64 k65 … k95
k96 k97 … k 127
Gambar 5. Proses Pembentukan Kunci pada Metode MMB b. Enkripsi Metode MMB menggunakan plaintext dan kunci dengan panjang 128 bit. Inti proses enkripsi dari metode MMB adalah sebagai berikut : 1. Plaintext dibagi menjadi 4 subblock yang sama besar (x0, x1, x2, x3). 2. Lakukan proses berikut ini sebanyak 2 kali : (Index dilakukan operasi modulo 4) Proses enkripsi tersebut dapat ditunjukkan dalam bentuk bagan pada Gambar 6. Fungsi f yang digunakan memiliki 3 langkah yaitu : - for i = 0 to 3 xi = ci * xi next i - Jika LSB (Least Significant Bit) dari x0 = 1, maka x0 = x0 XOR C. Jika LSB dari x3 = 0, maka x3 = x3 XOR C.
Gambar 6. Proses Enkripsi pada Metode MMB Fungsi f diatas dapat digambarkan dalam bentuk bagan pada gambar 7. Operasi perkalian yang digunakan merupakan operasi perkalian modulo 232 – 1. Sedangkan konstanta yang digunakan dapat dirincikan sebagai berikut : – C = (2AAAAAAA)16 – c0 = (025F1CDB)16 – c1 = 2 * c0 – c2 = 23 * c0 – c3 = 27 * c0
Mukhlisulfatih Latief, Studi Perbandingan Enkripsi Menggunakan Algoritma IDEA dan MMB
Proses dekripsi tersebut dapat ditunjukkan dalam bentuk bagan seperti berikut ini :
Gambar 7. Fungsi f pada Proses Enkripsi Metode MMB c. Dekripsi Algoritma yang digunakan pada proses dekripsi agak sedikit berbeda dengan proses enkripsi. Inti proses dekripsi dari metode MMB dapat dijabarkan seperti berikut : 1. Ciphertext dibagi menjadi 4 subblock yang sama besar (x0, x1, x2, x3). 2. Lakukan proses berikut ini sebanyak 2 kali : (Index dilakukan operasi modulo 4) f(x0,x1,x2,x3) for i = 0 to 3 xi = xi XOR ki+2 next i f(x0,x1,x2,x3) for i = 0 to 3 xi = xi XOR ki+1 next i f(x0,x1,x2,x3) for i = 0 to 3 xi = xi XOR ki next i
Gambar 8. Proses Dekripsi pada Metode MMB Fungsi f yang digunakan juga berbeda dan dapat dijabarkan seperti berikut : - for i = 3 to 0 step -1 xi = xi-1 XOR xi XOR xi+1 next i - Jika LSB (Least Significant Bit) dari x0 = 1, maka x0 = x0 XOR C. Jika LSB dari x3 = 0, maka x3 = x3 XOR C. - for i = 0 to 3 xi = ci * xi next i Fungsi f di atas dapat digambarkan dalam bentuk bagan pada gambar 9. Operasi perkalian yang digunakan merupakan operasi perkalian modulo 232 – 1. Sedangkan konstanta yang digunakan dapat dirincikan sebagai berikut : – C = (2AAAAAAA)16 – c0-1 = (0DAD4694)16 – c1-1 = 2-1 * c0-1
MEDIA ELEKTRIK, Volume 4 Nomor 2, Desember 2009
– –
c2-1 = 2-3 * c0-1 c3-1 = 2-7 * c0-1
1 sehingga tingkat sekuritas lebih tinggi. Sedangkan IDEA, Proses enkripsi dan dekripsi menggunakan operasi perkalian modulo 216 + 1. 4. Pada MMB, Proses enkripsi dan dekripsi jauh lebih cepat daripada IDEA yaitu hanya terdiri dari 2 putaran saja. Sedangkan IDEA, Proses enkripsi dan dekripsi lebih panjang yaitu terdiri dari 8 putaran sehingga lebih memakan waktu. Berdasarkan simpulan di atas, maka dapat disarankan: 1. Algoritma IDEA dan MMB dapat dimodifikasi seperti mengganti operasi-operasi logika dengan metode rancangan sendiri untuk mempertangguh keamanan dari algoritma tersebut. 2. Algoritma IDEA dan MMB dapat dikembangkan menjadi Perangkat lunak pembelajaran terhadap metode kriptografi yang lain dengan menampilkan langkahlangkah penyelesaian algoritma untuk proses pembentukan kunci, enkripsi dan dekripsi secara tahap demi tahap sehingga mempermudah pemahaman.
DAFTAR PUSTAKA Ariyus, Dony. 2008, Pengantar Ilmu Kriptografi Teori, Analisis dan Implementasi, Andi offset, Yogyakarta. Gambar 9. Fungsi f pada Proses Dekripsi Metode MMB
SIMPULAN DAN SARAN Berdasarkan pembahasan di atas, maka dapat disimpulkan: 1. Pada MMB, algoritma pada proses enkripsi berbeda dengan algoritma pada proses dekripsi. Algoritma proses dekripsi merupakan proses kebalikan dari proses enkripsi. Sedangkan pada IDEA, algoritma proses enkripsi sama dengan dekripsi. 2. Pada MMB, Kunci yang digunakan pada proses enkripsi dan dekripsi sama. Sedangkan pada IDEA Kunci yang digunakan pada proses enkripsi dan dekripsi tidak sama. Kunci dekripsi merupakan operasi kebalikan dari kunci enkripsi 3. Pada MMB, Proses enkripsi dan dekripsi menggunakan operasi perkalian modulo 232 –
Baigneres, Thomas. Dkk. 2006. A Classical Introduction to Cryptography: Exercise Book, Springer. Henck C.A. 2002, Fundamental of Cryptology: A Professional Reference and Interactive Tutorial, Kluwer Academic Publisher. Jusuf, K. Ir, M.T. 2004, Kriptografi, Keamanan Internet dan Jaringan Komunikasi, Informatika, Bandung. Kromodimoeljo, Sentot. 2009, Teori dan aplikasi kriptografi, Andi offset, Yogyakarta. Langie A., 1922, Cryptography - A Study of Secret Writings, Constable & Co. Munir, rinaldi. 2008, Kriptografi, informatika, Bandung. National Institute Of Standards and Technology, 1994. Data Encryption Standard (DES), FIPS Publication. Rothe, Jorg. 2005, Complexity Theory and
Mukhlisulfatih Latief, Studi Perbandingan Enkripsi Menggunakan Algoritma IDEA dan MMB
Cryptology: An Introduction Cryptocomplexity, Springer.
to
Schneier B. 1996, Applied Crytography, Second Edition, John Wiley & Sons, Inc. Sun
Microsystems, Java Cryptography Architecture, API specification & Reference,http://java.sun.com/j2se/1.4.1/do cs/guide/security/CryptoSpec.html. diakses tanggal 20 Agustus 2009.
Stallings. W, 1999. Cryptography And Network Security, Principles and Practice, Prentice Hall, Upper Saddle River, New Jersey. http://www.cix.co.uk/~klockstone/wake.htm, diakses tanggal 11 Juli 2009.