Você está na página 1de 18

STUDI DAN PERBANDINGAN ALGORITMA IDEA

DAN ALGORITMA BLOWFISH


Tri Andriyanto ( 51402021 ), Dra. D. L. Crispina Pardede, DEA *.

Fakultas Teknologi Industri

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.

2.1 Proses Enkripsi IDEA


Langkah awal dalam pemrosesan enkripsi dengan algoritma IDEA ini yaitu blok
pesan terbuka dengan lebar 64 bit (diperumpamakan dengan X), dibagi menjadi 4
subblok 16 bit, X , X , X , X , sehingga X = (X , X , X , X ). Keempat subblok 16 bit itu
1
2
3
4
1
2
3
4
ditransformasikan menjadi subblok 16 bit, Y , Y , Y , Y sebagai pesan rahasia 64 bit Y =
1
2
3
4,
(Y , Y , Y , Y ) yang berada di bawah kendali 52 subkunci 16 bit yang dibentuk dari blok
1
2 3
4
kunci 128 bit. Proses enkripsi IDEA dapat dilihat pada Gambar 1.

Gambar 1 Proses Enkripsi IDEA


Dari Gambar 1 dapat dilihat keempat subblok 16 bit, X , X , X , X , digunakan
1
2
3
4
sebagai masukan untuk iterasi pertama dari algoritma IDEA. Dalam setiap iterasi
16
16
dilakukan operasi XOR, penjumlahan modulasi 2 dan perkalian modulasi (2 + 1)
antara dua subblok 16 bit. Tahapan-tahapan yang dilakukan pada setiap iterasi yaitu :
1) Perkalian X dengan subkunci pertama (K1)
1
2) Penjumlahan X dengan subkunci kedua (K2)
2
3) Pejumlahan X dengan subkunci ketiga (K3)
3
4) Perkalian X dengan subkunci keempat (K4)
4
5) Operasi XOR hasil langkah 1) dan 3)
6) Operasi XOR hasil langkah 2) dan 4)
7) Perkalian hasil langkah 5) dengan subkunci kelima (K5)
8) Penjumlahan hasil langkah 6) dengan langkah 7)
9) Perkalian hasil langkah 8) dengan subkunci keenam (K6)
10) Penjumlahan hasil langah 7) dengan 9)
11) Operasi XOR hasil langkah 1) dan 9)
12) Operasi XOR hasil langkah 3) dan 9)
13) Operasi XOR hasil langkah 2) dan 10)
14) Operasi XOR hasil langkah 4) dan 10)
Keluaran setiap putaran adalah 4 subblok yang dihasilkan pada langkah 11), 12), 13),
dan 14) dan menjadi masukan putaran berikutnya. Sebelum masuk ke iterasi selanjutnya,

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

Transformasi keluaran akhir yang digunakan setelah iterasi 8 yaitu :


1) Perkalian X dengan K
1

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.

2.2 Proses Dekripsi IDEA


Proses dekripsi menggunakan algoritma yang sama dengan proses enkripsi.
Perbedaannya hanya pada 52 buah subkunci yang digunakan masing-masing
merupakan hasil turunan 52 buah subkunci enkripsi.

2.3 Pembentukan Subkunci IDEA


Sebanyak 52 subkunci 16 bit untuk proses enkripsi diperoleh dari sebuah kunci 128 bit.
Pembentukan subkunci untuk proses enkripsi dapat dilihat pada Gambar 2.

Gambar 2 Pembentukan Subkunci IDEA


Dari Gambar 2 dapat dilihat blok kunci 128 bit dipartisi menjadi 8 subkunci 16 bit
yang langsung dipakai sebagai 8 subkunci pertama, dimana 6 subkunci digunakan untuk
tahap pertama dan 2 subkunci berikutnya untuk iterasi ke-2. Jadi pada tahap ke-2 ini,
terdapat kekurangan 4 subkunci. Kemudian blok kunci 128 bit digeser kekiri 25 bit secara
memutar (rotasi) untuk dipartisi lagi menjadi 8 subkunci 16 bit berikutnya. Empat subkunci
pertama digunakan untuk iterasi ke-2, melengkapi kekurangan sebelumnya. Empat
subkunci berikutnya untuk iterasi ke-3. Kemudian kunci 128 bit dirotasi lagi ke kiri
sebanyak 25 bit untuk mendapatkan 8 subkunci berikutnya. Proses rotasi dan partisi itu
diulangi lagi sampai diperoleh 52 subkunci 16 bit. Subkunci yang digunakan untuk proses
enkripsi pada algoritma IDEA dapat dilihat pada Tabel 1.

Tabel 1 Subkunci Enkripsi IDEA

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

3.1 Proses Enkripsi Blowfish


Blowfish adalah sebuah jaringan Feistel yang mempunyai 16 round. Inputnya adalah
X elemen data 64 bit. Untuk mengenkripsi X yaitu :
Bagi X dalam dua bagian 32 bit menghasil XL dan XR .
Untuk i = 1 sampai 16 maka :
XL = XL

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 3 Proses Enkripsi Blowfish


Fungsi F adalah sebagai berikut :
Bagi XL dalam empat bagian 8-bit yaitu a, b, c dan d
F(XL) = ((S1,a + S2,b mod 232 )

S3,c ) + S4,d mod 232

Fungsi F dapat divisualisasikan pada Gambar 4.

Gambar 4 Fungsi F

3.2 Proses Dekripsi Blowfish


Proses dekripsi Blowfish sama persis dengan proses enkripsi Blowfish. Perbedaan
terletak pada urutan pengggunaan subkunci P1, P2,, P18 . Pada proses dekripsi

Blowfish urutan pengggunaan subkunci P1, P2,, P18 dibalik menjadi P18, P17,, P1.

3.3 Pembangkitan Subkunci


Subkunci dihitung menggunakan algoritma Blowfish, dengan langkah-langkah
sebagai berikut :
1) Pertama inisialisasi P-array dan kemudian empat S-box secara berurutan dengan
string tetap. String ini terdiri dari digit hexadesimal dari pi.
Dimana P-array terdiri dari 18 subkunci dengan ukuran 32 bit:
P1, P2, ..., P18
P1, P2, ..., P18
2) XOR P1 dengan 32 bit pertama kunci , XOR P2 dengan 32 bit kedua dari kunci dan
seterusnya untuk setiap bit dari kunci (sampai P18). Ulangi terhadap bit kunci sampai
seluruh P-array di XOR dengan bit kunci.
3) Enkripsikan semua string nol dengan algoritma Blowfish menggunakan subkunci
seperti yang dijelaskan pada langkah 1 dan langkah 2.
4) Gantikan P1 dan P2 dengan keluaran dari langkah 3.
5) Enkripsikan keluaran langkah 3 dengan algoritma Blowfish dengan subkunci yang
sudah termodifikasi.
6) Gantikan P3 dan P4 dengan keluaran dari langkah 5.
7) Teruskan proses tersebut, gantikan seluruh elemen dari P-array, dan kemudian
seluruh keempat S-box berurutan, dengan keluaran yang berubah secara kontinyu
dari algoritma Blowfish.
Secara keseluruhan diperlukan 521 iterasi untuk membangkitkan semua subkunci
yang dibutuhkan. Pembangkitan subkunci dapat dilihat pada Gambar 5.

Gambar 5 Pembangkitan Subkunci Blowfish

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.

Gambar 6 Blok Program Aplikasi Enkripsi Dekripsi IDEA dan Blowfish

4.2 Alur Program


Program enkripsi dan dekripsi IDEA dan Blowfish ini dimulai dengan penginputan
nama file yang akan dienkripsi atau didekripsi, kemudian memilih algoritma IDEA atau
Blowfish yang akan digunakan untuk proses enkripsi atau dekripsi. Setelah memilih
algoritma kemudian memilih proses enkripsi atau proses dekripsi yang ingin dilakukan.
Apabila memilih proses enkripsi, maka enkripsi file akan diproses. Namun apabila
memilih proses dekripsi, maka dekripsi file yang akan diproses. Pada program enkripsi
dan dekripsi IDEA dan Blowfish ini juga terdapat menu About untuk menampilkan
informasi pembuat program dan menu Petunjuk untuk menampilkan informasi petunjuk
penggunaan program. Apabila selesai menggunakan program, terdapat menu Keluar
untuk keluar dari program enkripsi dan dekripsi IDEA dan Blowfish. Alur program dari
program enkripsi dan dekripsi IDEA dan Blowfish dapat dilihat pada Gambar 7.

Gambar 7 Diagram Alur Program

4.3 Tampilan Program


Setelah program enkripsi dan dekripsi IDEA dan Blowfish dijalankan, maka akan
tampil jendela menu utama yang merupakan tampilan utama dari program ini (Gambar 8).
Pada tampilan utama ini terdapat beberapa menu diantaranya : menu Cari File untuk
pencarian file yang akan diinput, menu untuk memilih algoritma, menu Enkripsi untuk
melakukan proses enkripsi file, menu Dekripsi untuk melakukan proses dekripsi file,
menu About untuk menampilkan informasi pembuat program, menu Petunjuk untuk
menampilkan informasi petunjuk penggunaan program dan menu Keluar untuk keluar
dari program enkripsi dan dekripsi IDEA dan Blowfish.

Gambar 8 Tampilan Jendela Menu Utama


Apabila menginput nama file dengan menggunakan menu Cari File, maka akan
menghubungkan program enkripsi dan dekripsi IDEA dan Blowfish dengan Windows
Explorer untuk mencari file yang akan diinput, dimana tampilannya dapat dilihat pada
Gambar 9.

Gambar 9 Tampilan Jendela Dialog File Untuk Menu CariFile


Apabila saat menjalankan proses enkripsi atau proses dekripsi terjadi suatu
kesalahan, maka akan tampil kotak dialog error. Gambar 10 merupakan salah satu
tampilan kotak dialog error untuk kesalahan file yang dipilih tidak ditemukan.

Gambar 10 Tampilan Kotak Dialog Error


Apabila proses enkripsi atau dekripsi berhasil dilakukan, maka akan tampil kotak
dialog information untuk memberikan informasi bahwa proses enkripsi atau proses
dekripsi telah berhasil dilakukan. Gambar 11 merupakan tampilan kotak dialog
information untuk proses enkripsi file yang berhasil.

Gambar 11 Tampilan Kotak Dialog Information


Gambar 12 merupakan salah satu tampilan kotak dialog plain. Gambar 12
merupakan tampilan menu About untuk menampilkan informasi pembuat program.

Gambar 12 Tampilan Kotak Dialog Plain untuk menu About

4.4 Perancangan Input dan Output


4.4.1 Perancangan Input dan Output User
Tabel 3 Input Enkripsi User
Nama Input Nama Variabel Input Tipe data
Nama File
strEnc
string
Pada saat melakukan enkripsi, pengguna aplikasi menginput nama file yang akan
dienkripsi. Nama file yang diinput memiliki nama variabel strEnc dengan tipe data string
(Tabel 3).
Tabel 4 Output Enkripsi User
Nama Output
Nama Variabel Output Tipe Data
Nama File Terenkripsi
outFileEnc
string
Nama File Key
keyfileEnkrip
string
Hasil output yang didapatkan setelah proses enkripsi yaitu nama file yang sudah
terenkripsi dan nama file key. Nama file yang sudah terenkripsi memiliki nama variabel
outFileEnc dengan tipe data string, sedangkan nama file key memiliki nama variabel
keyfileEnkrip dengan tipe data string (Tabel 4).
Tabel 5 Input Dekripsi User
Nama Input
Nama Variabel Input Tipe Data
Nama File Terenkripsi
str
string
Nama File Key
kStr
string
Pada saat melakukan dekripsi file, pengguna menginput nama file terenkripsi
yang akan di dekripsi, serta secara tidak langsung juga menginput file key. Nama file
yang di input pada saat dekripsi memiliki nama variabel str dengan tipe data string,
sedangkan nama file key memiliki nama variabel kStr dengan tipe data string (Tabel 5).
Tabel 6 Output Dekripsi User
Nama Output Nama Variabel Output Tipe data
Nama File
strDec
string
Dari Tabel 6 dapat dilihat hasil output dari dekripsi file yaitu nama file dengan nama
variabel strDec yang memiliki tipe data string.

4.4.2 Perancangan Input dan Output Program


Tabel 7 Input Enkripsi 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
Dari Tabel 7 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.
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.

5. Uji Coba dan Analisa


5.1 Uji Coba
Untuk dapat mengetahui perbandingan kinerja algoritma IDEA dan Blowfish dalam
hal waktu proses dan pemakaian memori pada saat proses enkripsi dan dekripsi file
maka dilakukan pengujian terhadap file teks (.txt), dokumen (.doc), image (.jpg), audio
(.mp3) dan video (.avi) masing-masing digunakan lima sampel.
Pada proses pengujian, untuk pengukuran waktu proses dan pemakaian memori,
penulis menggunakan fasilitas Task Manager yang terdapat pada sistem operasi
Windows dengan satuan detik (seconds) untuk kecepatan proses dan satuan kilobytes
(KB) untuk pemakaian memori.
Langkah-langkah untuk melakukan uji coba, yaitu :
1) Menjalankan program enkripsi dan dekripsi IDEA dan Blowfish, serta menjalankan
Task Manager.
2) Menginput file yang akan dienkripsi atau didekripsi serta memilih algoritma yang akan
digunakan untuk enkripsi atau dekripsi file.

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

5.2 Hasil Uji Coba


Setelah program dijalankan dan dilakukan pengujian terhadap beberapa file sample,
maka didapatkan hasil-hasil uji coba yang dikelompokkan berdasarkan tipe file nya.
1) Kecepatan Proses
Pengukuran kecepatan proses berdasarkan pada waktu cpu (cpu time) pada Task
Manager.
Tabel 11 Hasil Uji Coba File Teks Untuk Kecepatan Proses

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.

Tabel 13 Hasil Uji Coba File Image Untuk Kecepatan Proses

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]

Abdul Kadir, Dasar Pemrograman Java 2, Andi, Yogyakarta, 2004.

[2]

Adhitya Randy, Studi dan Perbandingan Algoritma Blowfish dan Twofish,


http://informatika.org/~rinaldi/Kriptografi/2006-2007/Makalah1/Makalah1-038.pdf, 9
Maret 2008.

[3]

Ady Wicaksono, Dasar-dasar Pemrograman Java 2, PT Elex Media Komputindo,


Jakarta, 2002.

[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]

Deris Stiawan, Sistem Keamanan Komputer, PT Elex Media Komputindo Kelompok


Gramedia, Jakarta, 2005.

[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]

Indrajani, Pemrograman Berorientasi Objek dengan JAVA, PT Elex Media


Komputindo, Jakarta, 2004

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.

Você também pode gostar