Escolar Documentos
Profissional Documentos
Cultura Documentos
UNIVERSITAS GUNADARMA
E-mail : triandriyanto@gmail.com, pardede@staff.gunadarma.ac.id
ABSTRAKSI
Algoritma kriptografi saat ini sudah banyak berkembang, khususnya algoritma
kriptografi simetris dengan kategori block cipher. Algoritma kriptografi simetris block
cipher yang sudah dikenal saat ini diantaranya yaitu International Data Encryption
Algorithm (IDEA) dan Algoritma Blowfish. Kedua algoritma ini beroperasi dalam bentuk
blok bit, dengan ukuran blok sebesar 64 bit. Kedua algoritma ini juga dikenal sangat
tangguh dalam mengamankan informasi. Studi dan perbandingan antara algoritma IDEA
dan algoritma Blowfish dilakukan untuk membandingkan kinerja algoritma IDEA dan
Blowfish dalam hal kecepatan proses dan penggunaan memori pada saat proses enkripsi
dan dekripsi suatu file.
Untuk dapat membandingkan kinerja algoritma IDEA dan algoritma Blowfish,
maka penulis membuat program aplikasi enkripsi dan dekripsi file dengan menggunakan
bahasa pemrograman JAVA. Dari hasil uji coba program terhadap sampel file teks, file
dokumen, file image, file audio, dan file video, terlihat bahwa algoritma IDEA lebih cepat
dari algoritma Blowfish dan pemakaian memori kedua algoritma relatif sama.
Kata Kunci : Kriptografi, block cipher, IDEA, Blowfish
1. Pendahuluan
Perkembangan teknologi informasi yang sangat pesat turut memajukan media
komunikasi sebagai media penyampaian informasi dari suatu tempat ke tempat lainnya,
sehingga memudahkan orang dalam mengakses media komunikasi. Kemudahan
pengaksesan media komunikasi oleh semua orang, tentunya akan memberikan dampak
bagi keamanan informasi atau pesan yang menggunakan media komunikasi tersebut.
Informasi menjadi sangat rentan untuk diketahui, diambil dan dimanipulasi oleh pihakpihak yang tidak bertanggung jawab. Oleh sebab itu dibutuhkan suatu metode yang
dapat menjaga kerahasiaan informasi ini, yang salah satunya dikenal dengan sebutan
kriptografi.
Algoritma kriptografi dapat dibagi ke dalam kelompok algoritma simetris dan
algoritma asimetris. Algoritma simetris merupakan algoritma kriptografi yang
menggunakan kunci yang sama baik untuk proses enkripsi maupun dekripsi. Algoritma
simetris dapat dikelompokkan menjadi dua kategori, yaitu cipher aliran dan cipher blok.
Cipher aliran merupakan algoritma kriptografi yang beroperasi dalam bentuk bit tunggal.
Sedangkan algoritma kriptografi kategori cipher blok beroperasi dalam bentuk blok bit.
Saat ini sudah banyak berkembang algoritma kriptografi simetris baik untuk kategori
cipher aliran maupun cipher blok. Di dalam dunia informatika dikenal International Data
Encryption Algorithm (IDEA) dan Blowfish. Kedua algoritma ini beroperasi dalam bentuk
blok bit (cipher blok), dengan ukuran blok sebesar 64 bit. Kunci yang digunakan dalam
algoritma Blowfish sepanjang 32 sampai 488 bit. Sedangkan algoritma IDEA dapat
bekerja dengan menerima panjang kunci 128 bit. Kedua algoritma ini dikenal cukup
tangguh dalam mengamankan informasi karena sampai saat ini belum ada yang berhasil
menembus keamanan kedua algoritma ini (Andi, 2003). Oleh karena itu penulis tertarik
untuk mengimplementasikan algoritma IDEA dan Blowfish dalam suatu program aplikasi
enkripsi dan dekripsi dan kemudian membandingkan kinerja kedua algoritma pada
program aplikasi tersebut.
Pada makalah ini dibahas mengenai cara kerja algoritma IDEA dan algoritma
Blowfish dan penerapannya dalam suatu program aplikasi enkripsi dan dekripsi, di mana
panjang kunci yang digunakan masing-masing algoritma pada aplikasi ini berukuran 128
bit dan mode operasi enkripsi yang digunakan adalah Electronic Code Book (ECB).
Makalah ini bertujuan untuk membandingkan kinerja algoritma IDEA dan Blowfish
dalam hal kecepatan proses dan penggunaan memori pada saat proses enkripsi dan
dekripsi suatu file. Tahap-tahap yang dilakukan untuk dapat membandingkan kinerja
algoritma IDEA dan algoritma Blowfish antara lain : tahap pembangunan program enkripsi
dan dekripsi file dengan menggunakan algoritma IDEA dan Blowfish dengan panjang
kunci berukuran 128 bit. Tahap kedua yaitu tahap implementasi di mana penulis
melakukan pembuatan program dengan menggunakan bahasa pemrograman JAVA, di
mana komponen JAVA Swing digunakan untuk membuat tampilan berbasiskan Graphical
User Interface (GUI), dan Windows XP sebagai sistem operasi. Dalam pembuatan
program ini penulis juga menggunakan paket kriptografi dari provider cryptix. Paket
kriptografi ini bersumber dari http://cryptix.org/cryptix-jce-20050328-snap. Tahapan yang
terakhir yaitu uji coba program terhadap file teks (.txt), dokumen (.doc), image (.jpg),
audio (.mp3) dan video (.avi). Pada tahap uji coba ini digunakan fasilitas TASK
MANAGER yang disediakan sistem operasi windows untuk mengetahui kecepatan
proses dan penggunaan memori kedua algoritma pada saat proses enkripsi dan dekripsi
file.
2. Algoritma IDEA
IDEA (International Data Encryption Algorithm) merupakan algoritma simetris yang
beroperasi pada sebuah blok pesan terbuka dengan lebar 64 bit dan panjang kunci
berukuran 128 bit. Algoritma IDEA menggunakan algoritma yang sama untuk proses
enkripsi dan dekripsi. Dan pesan rahasia yang dihasilkan oleh algoritma ini berupa blok
pesan rahasia dengan lebar atau ukuran 64 bit.
Algoritma IDEA menggunakan operasi campuran dari tiga operasi aljabar yang
berbeda, yaitu :
- Operasi XOR, operasi ini disimbolkan dengan tanda
.
16
- Operasi penjumlahan modulo 2 , operasi ini disimbolkan dengan tanda
.
16
- Operasi perkalian modulo ( 2 + 1 ), disimbolkan dengan tanda .
Semua operasi ini dilakukan pada subblok 16 bit. Algoritma IDEA melakukan iterasi
sebanyak 8 iterasi dan terdapat transformasi keluaran setelah melakukan 8 iterasi.
dilakukan terlebih dahulu pertukaran subblok dalam yaitu subblok yang dihasilkan pada
langkah 12) dan 13), namun untuk iterasi kedelapan (iterasi terakhir) pertukaran subblok
dalam tidak dilakukan lagi. Setelah iterasi kedelapan akan dilakukan transformasi
keluaran yang dikendalikan oleh 4 subkunci 16 bit terakhir (K K K K ).
49 50 51 52
49
2) Penjumlahan X dengan K
2
50
3) Penjumlahan X dengan K
3
4) Perkalian X dengan K
4
51
52
Langkah terakhir dari proses enkripsi IDEA ini yaitu keempat subblok 16 bit yang
merupakan hasil operasi 1), 2), 3), dan 4) digabung kembali menjadi blok pesan rahasia
64 bit.
Untuk pembentukan kunci dekripsi didasarkan pada kunci enkripsi yang telah dibentuk
sebelumnya. Subkunci yang digunakan untuk dekripsi dapat dilihat pada Tabel 2.
Tabel 2 Subkunci Dekripsi IDEA
Keterangan :
-1
16
K merupakan invers perkalian modulo (2 +1) dari K :
-1
16
K * K mod (2 +1) = 1
16
-K merupakan invers penjumlahan modulo 2 dari K :
16
K + (-K) mod 2 = 0
Dari Tabel 2 dapat dilihat perbedaan subkunci yang digunakan untuk enkripsi dengan
subkunci untuk dekripsi. Perbedaan yang pertama, yaitu pada urutan penggunaan
subkunci. Perbedaan yang kedua, pembentukan subkunci dekripsi menggunakan operasi
invers perkalian modulo 216 + 1 pada subkunci K49, K52, K43, K46, K37, K40, K31, K34, K25,
K28, K19, K22, K13, K16, K7, K10, K1, K4 dan menggunakan operasi invers penjumlahan
modulo 216 untuk subkunci K50, K51, K45, K44, K39, K38, K33, K32, K27, K26, K21, K20, K15, K14,
K9, K8, K2, K3.
3. Algoritma Blowfish
Blowfish merupakan metoda enkripsi yang mirip dengan DES dan dikembangkan
untuk memenuhi kriteria desain sebagai berikut :
- Cepat, pada implementasi yang optimal Blowfish dapat mencapai kecepatan 26 clock
cycle per byte.
- Kompak, Blowfish dapat berjalan pada memori kurang dari 5 KB.
- Sederhana, Blowfish dirancang hanya menggunakan operasi-operasi sederhana.
- Keamanan yang variabel, panjang kunci Blowfish dapat bervariasi dari 32 bit hingga
mencapai 448 bit (56 byte).
Blowfish merupakan blok cipher 64 bit dengan panjang kunci variabel. Algoritma ini
terdiri dari dua bagian, yaitu : key expansion dan enkripsi data. Key expansion mengubah
kunci yang dapat mencapai 448 bit menjadi beberapa array subkunci (subkey) dengan
total 4168 byte.
Enkripsi data terdiri dari iterasi fungsi sederhana sebanyak 16 kali. Operasi-operasi
yang digunakan dalam Blowfish adalah :
- Operasi XOR, operasi ini disimbolkan dengan tanda
.
32
- Operasi penjumlahan modulo 2 , operasi ini disimbolkan dengan tanda
.
- Tablelookup terhadap array dengan empat indeks yang dilakukan setiap putaran,
yaitu penggunaan S-box. Empat 32 bit S-box masing-masing mempunyai 256 entri :
S1,0, S1,1, ..., S1,255
S2,0, S2,1, ..., S2,255
S3,0, S3,1, ..., S3,255
S4,0, S4,1, ..., S4,255
Pi
XR = F(XL) XR
Tukar XL dan XR
Tukar XL dan XR (batalkan penukaran terakhir)
XR = XR
P17
XL = XL P18
Gabungkan kembali XL dan XR
Algoritma Blowfish untuk proses enkripsi dapat divisualisasikan pada Gambar 3.
Gambar 4 Fungsi F
Blowfish urutan pengggunaan subkunci P1, P2,, P18 dibalik menjadi P18, P17,, P1.
4. Perancangan Program
4.1 Konsep Program
Program yang akan dibuat ini adalah aplikasi enkripsi dan dekripsi IDEA dan
Blowfish. Program ini digunakan untuk mengenkripsikan dan mendekripsikan sebuah file
untuk semua tipe file dengan menggunakan algoritma IDEA dan Blowfish.
Langkah awal untuk dapat melakukan enkripsi file, yaitu menginput nama file yang
akan dienkripsi pada kotak input yang telah tersedia. Setelah nama file diinput, pengguna
dapat memilih algoritma IDEA atau Blowfish yang akan digunakan untuk proses enkripsi.
Setelah proses enkripsi selesai dan berhasil, maka akan dihasilkan dua file baru, yaitu file
yang sudah terenkripsi dengan nama namafile.tipefile.enbl dan file kunci dengan nama
namafile.tipefile.enbl.key untuk algoritma Blowfish. Jika algoritma IDEA yang dipilih, file
baru yang dihasilkan diberi nama namafile.tipefile.enid dan file kuncinya diberi nama
namafile.tipefile.enid.key. File baru dan file kunci yang dihasilkan tersebut akan
disimpan didirektori yang sama dengan file aslinya.
Untuk melakukan dekripsi file proses yang dilakukan sama seperti ketika melakukan
enkripsi file, namun nama file yang dijadikan input adalah file yang sudah terenkripsi, dan
algoritma dekripsi yang dipilih harus sesuai dengan algoritma enkripsi yang digunakan
pada file terenkripsi tersebut. Setelah proses dekripsi file selesai, maka file terenkripsi
tersebut akan kembali menjadi file awal sebelum dienkripsi. Konsep program aplikasi
enkripsi dan dekripsi IDEA dan Blowfish dapat divisualisasikan pada Gambar 6.
Input key dideklarasikan pada class EnkripsiFile dengan nama variabel secretKey
dengan tipe class Key. Input prov dideklarasikan pada class EnkripsiFile dengan nama
variabel provider dengan tipe data string.
Tabel 8 Output Enkripsi Program
Nama Output
Nama Variabel output
ofe
outputFile
outputFile+"."+"key"
keyfileEnkrip
Tipe Data
string
string
Tabel 8 output ofe dideklarasikan pada class EnkripsiFile dengan nama variabel
outputFile dengan tipe data string. Nama output outputFile+"."+"key" dideklarasikan pada
class EnkripsiFile dengan nama variabel keyfileEnkrip.
Tabel 9 Input Dekripsi Program
Nama Input
Nama Variabel Input Tipe Data
filename
inputFile
string
algorithm
alg
string
amode
alg
string
padding
alg
string
key
secretKey
Key
prov
provider
string
inputFile+"."+"key"
keyfileDekrip
string
Dari Tabel 9 input filename dideklarasikan pada class EnkripsiFile dengan nama
variabel inputfile dengan tipe data string. Input algorithm, amode, dan padding
dideklarasikan pada class EnkripsiFile dengan nama variabel alg dengan tipe data string.
Input key dideklarasikan pada class EnkripsiFile dengan nama variabel secretKey
dengan tipe class Key. Input prov dideklarasikan pada class EnkripsiFile dengan nama
variabel provider dengan tipe data string. Nama input inputFile+"."+"key" dideklarasikan
pada class EnkripsiFile dengan nama variabel keyfileDekrip.
Tabel 10 Output Dekripsi Program
Nama Output
Nama Variabel
Tipe Data
output
ofe
outputFile
string
Tabel 10 output ofe dideklarasikan pada class EnkripsiFile dengan nama variabel
outputFile dengan tipe data string.
3) Jalankan proses enkripsi dan dekripsi file serta memperhatikan dan mencatat waktu
dan penggunaan memori yang terdapat pada Task Manager.
5.1.1 Spesifikasi Pengujian
Pengujian dilakukan pada komputer dengan spesifikasi berikut :
Spesifikasi Perangkat Keras :
- Processor Intel Pentium 4 CPU 2.40GHz
- 768 MB (pc 2700 DDRAM)
- VGA dan Soundcard onboard
- Harddisk Seagate Gb 7200rpm
- Mouse orient optical dan keyboard Logitech
- Monitor AOC 17 inch
Spesifikasi Perangkat Lunak :
- Sistem operasi Windows XP Services Pack 2
- Java 2 SDK 1.4.0
Dari Tabel 11, dapat dilihat waktu yang diperoleh untuk proses enkripsi dan dekripsi
pada file teks dengan menggunakan algoritma IDEA relatif sama dengan waktu proses
enkripsi dan dekripsi menggunakan algoritma Blowfish.
Tabel 12 Hasil Uji Coba File Dokumen Untuk Kecepatan Proses
Dari Tabel 12, waktu proses enkripsi dan dekripsi pada file dokumen dengan
algoritma IDEA dan Blowfish hanya terdapat sedikit perbedaan.
Waktu enkripsi dan dekripsi yang diperoleh pada file image dengan menggunakan
algoritma IDEA lebih lama 1 seconds dibanding dengan waktu enkripsi dan dekripsi
algoritma Blowfish. (Tabel 13).
Tabel 14 Hasil Uji Coba File Audio Untuk Kecepatan Proses
Dari Tabel 14, dapat dilihat waktu enkripsi dan dekripsi algoritma IDEA dan Blowfish
pada file audio lebih panjang dibanding waktu enkripsi dan dekripsi pada file teks,
dokumen dan image. Waktu enkripsi untuk algoritma IDEA sama dengan waktu enkripsi
untuk algoritma Blowfish. Sedangkan untuk waktu dekripsi, algoritma IDEA lebih lama 1
second dibandingkan dengan waktu dekripsi algoritma Blowfish.
Tabel 15 Hasil Uji Coba File Video Untuk Kecepatan Proses
Dari Tabel 15, dapat dilihat terdapat perbedaan yang cukup signifikan antara waktu
enkripsi dan dekripsi algoritma IDEA dengan waktu enkripsi dan dekripsi algoritma
Blowfish. Dari tabel 15 dapat dilihat juga perbedaan yang cukup besar antara waktu
enkripsi dan waktu dekripsi untuk masing-masing algoritma.
2) Pemakaian Memori
Pengukuran pemakaian memori berdasarkan pada memory usage pada Task
Manager. Kemudian dihitung persentase pemakaian memori yang telah diperoleh.
Persentase pemakaian memori = memory usage x 100 %
physical memory
Tabel 16 Hasil Uji Coba File Teks Untuk Pemakaian Memori
Dari Tabel 16, pemakaian memori untuk setiap file teks dengan menggunakan
algoritma IDEA relatif sama dengan algoritma Blowfish.
Tabel 17 Hasil Uji Coba File Dokumen Untuk Pemakaian Memori
Pada file dokumen, pemakaian memori untuk algoritma IDEA juga relatif sama
dengan algoritma Blowfish. (Tabel 17).
Tabel 18 Hasil Uji Coba File Image Untuk Pemakaian Memori
Dari Tabel 18, jumlah memori yang digunakan saat enkripsi dan dekripsi oleh
algoritma IDEA relatif sama dengan algoritma Blowfish.
Tabel 19 Hasil Uji Coba File Audio Untuk Pemakaian Memori
Pada file audio, pemakaian memori untuk algoritma IDEA juga relatif sama dengan
algoritma Blowfish. (Tabel 19).
Tabel 4.10 Hasil Uji Coba File Video Untuk Pemakaian Memori
Dari Tabel 4.10, pemakaian memori untuk setiap file video dengan menggunakan
algoritma IDEA juga relatif sama dengan algoritma Blowfish.
5.3 Analisa
Berdasarkan hasil-hasil pengujian pada kecepatan proses enkripsi dan dekripsi
secara keseluruhan, semakin besar ukuran file yang akan dienkripsi atau didekripsi maka
semakin lama waktu yang diperlukan untuk mengenkripsikan atau mendekripsikan file.
Untuk file dengan ukuran kecil kecepatan proses antara algoritma IDEA relatif sama
dengan algoritma Blowfish. Sedangkan untuk file yang berukuran besar, algoritma
Blowfish lebih cepat dibandingkan dengan algoritma IDEA. Dari hasil uji coba dalam hal
pemakaian memori, diperoleh hasil yang relatif sama antara algoritma IDEA dengan
algoritma Blowfish untuk semua tipe file dan semua ukuran file.
Tingkat keamanan suatu algoritma kunci simetris tipe cipher blok dapat diukur dari
tingkat kerumitan algoritma, panjang blok yang digunakan dan panjang kunci yang
digunakan. Semakin tinggi tingkat kerumitan suatu algoritma maka algoritma tersebut
semakin sulit dipecahkan. Semakin besar ukuran blok yang digunakan akan
mengakibatkan semakin jarangnya terdapat ciphertext berulang yang berasal dari
plaintext yang sama. Ukuran panjang suatu kunci juga berpengaruh pada kekuatan
algoritma. Biasanya semakin panjang dan acak suatu kunci akan mempersulit
penyerangan algoritma kriptografi.
Untuk kerumitan algoritma, algoritma IDEA sedikit lebih rumit dibandingkan dengan
algoritma Blowfish. Hal ini dikarenakan operasi-operasi yang dilakukan oleh algoritma
Blowfish untuk setiap iterasinya, yaitu penjumlahan mod 232, XOR, dan tablelookup lebih
sederhana dibandingkan dengan operasi-operasi yang dilakukan oleh algoritma IDEA
untuk setiap iterasi, yaitu penjumlahan mod 216, XOR, dan perkalian mod 216.
Dalam hal panjang blok yang digunakan, kedua algoritma menggunakan panjang
blok yang sama dan cukup panjang, yaitu 64 bit. Sedangkan dalam hal panjang kunci
yang digunakan, algoritma Blowfish menggunakan kunci dengan panjang 32 sampai 448
bit, sedangkan pada algoritma IDEA panjang kunci yang digunakan 128 bit.
Jadi, secara keseluruhan kedua algoritma memiliki keunggulan, di mana algoritma
IDEA lebih unggul dalam hal kerumitan algoritma, sedangkan algoritma Blowfish lebih
unggul dalam hal panjang kunci. Sehingga kedua algoritma memiliki tingkat keamanan
yang sama-sama tangguh dalam hal mengamankan data atau informasi.
6. Kesimpulan
Berdasarkan hasil studi dan percobaan dapat disimpulkan bahwa:
1) Algoritma IDEA dan Blowfish beroperasi pada panjang blok yang sama, yaitu 64 bit.
Namun panjang kunci yang digunakan algoritma IDEA hanya 128 bit, sedangkan
panjang kunci yang digunakan algoritma Blowfish 32 sampai 448 bit.
2) Pada pemrosesannya, algoritma IDEA melakukan iterasi sebanyak 8 iterasi dan
terdapat transformasi keluaran akhir setelah melakukan 8 iterasi. Sedangkan iterasi
yang dilakukan algoritma Blowfish sebanyak 16 iterasi. Dalam pengoperasiannya
algoritma IDEA menggunakan operasi campuran yang berbeda, yaitu : operasi XOR,
operasi penjumlahan modulo 216, dan operasi perkalian (216 +1). Sedangkan
Algoritma Blowfish dalam pengoperasiannya menggunakan operasi-operasi
penjumlahan mod 232, XOR, dan tablelookup.
3) Kecepatan proses algoritma Blowfish lebih cepat dibanding dengan algoritma IDEA
untuk ukuran file yang besar, sedangkan untuk file dengan ukuran yang kecil,
kecepatan proses algoritma Blowfish sama dengan algoritma IDEA. Sedangkan
dalam pemakaian memori, kedua algoritma memakai memori dengan kapasitas yang
relatif sama.
4) Dalam hal tingkat keamanan, kedua algoritma memiliki tingkat keamanan yang
sama-sama tangguh dalam hal mengamankan data atau informasi.
5) Program enkripsi dan dekripsi algoritma IDEA dan Blowfish ini dapat berjalan dengan
baik dan dapat digunakan untuk enkripsi dan dekripsi file dengan berbagai jenis
ekstensi, seperti .txt, .doc, .mp3, .bmp, .3gp, .exe, .html, .zip, dan lain-lain.
7. Daftar Pustaka
[1]
[2]
[3]
[4]
Anonim,
The
International
Data
Encryption
Algorithm,
http://en.wikipedia.org/wiki/International_Data_Encryption_Algorithm, 11 April 2006.
[5]
Anonim,
JavaTM
2
SDK,
Standard
Edition
http://java.sun.com/j2se/1.4.2/download.html, 9 Juli 2005.
[6]
[7]
Didik Dwi Prasetyo, Tip dan Trik Pemrograman Java 2, PT Elex Media Komputindo,
Jakarta, 2004.
[8]
Fauzan Mirza,
Howto: International
Data Encryption Algorithm,
http://www.ussrback.com/crypto/libraries/idea/idea_algorithm.txt, 11 April 2006.
[9]
Documentation,
[10] Rangsang Purnama, Tuntunan Pemrograman Java, Jilid 2, PT. Prestasi Pustaka
Publisher, Surabaya, 2003.
[11] Ratih, STUDI DAN IMPLEMENTASI ALGORITMA BLOWFISH UNTUK APLIKASI
ENKRIPSI DAN DEKRIPSI FILE, http://informatika.org/~rinaldi/Kriptografi/2006
2007/Makalah1/Makalah1-077.pdf, 9 Maret 2008.
[12] Rijalul Fikri, Pemrograman Java, Andi, Yogyakarta, 2005.
[13] Taufik
Hidayat,
Sistem
Kriptografi
IDEA,
http://budi.insan.co.id/courses/ec7010/dikmenjur/taufik-report.pdf, 13 Januari 2006.
[14] Wahana Komputer, Memahami Model Enkripsi & Security Data, Andi, Yogyakarta,
2003.
[15] Yusuf Kurniawan, Kriptografi Keamanan Internet dan Jaringan Telekomunikasi,
Informatika, Bandung, 2004.
[16] http://cryptix.org/cryptix-jce-20050328-snap, 11 April 2006.
[17] http://www.geocities.com/herong_yang/crypto/cipher_blowfish.html, 9 Maret 2008.
[18] http://www.us.design-reuse.com/articles/article5922.html, 9 Maret 2008.