STUDI DAN PERBANDINGAN ALGORITMA IDEA DAN ALGORITMA BLOWFISH

dokumen-dokumen yang mirip
PERANGKAT LUNAK UNTUK PROSES ENKRIPSI DESKRIPSI MESSAGE DENGAN ALGORITMA BLOWFISH. Ary Fathany Kristiawan 1) Rudy Setiawan 2)

APLIKASI KRIPTOGRAFI ENKRIPSI DEKRIPSI FILE TEKS MENGGUNAKAN METODE MCRYPT BLOWFISH

Implementasi Sistem Keamanan File Menggunakan Algoritma Blowfish pada Jaringan LAN

Analisis Performansi Algoritma AES dan Blowfish Pada Aplikasi Kriptografi

APLIKASI ENKRIPSI PENGIRIMAN FILE SUARA MENGGUNAKAN ALGORITMA BLOWFISH

BAB III ANALISA MASALAH DAN SISTEM

APLIKASI PENGAMANAN DOKUMEN OFFICE DENGAN ALGORITMA KRIPTOGRAFI BLOWFISH

PERANCANGAN APLIKASI ENKRIPSI MENGGUNAKAN ALGORITMA IDEA (INTERNATIONAL DATA ENCRYPTION ALGORITHM)

SISTEM PENGAMANAN PESAN SMS MENGGUNAKAN INTERNASIONAL DATA ENCRYPTION ALGORITHM

Bab 1 PENDAHULUAN Latar Belakang

METODE PENELITIAN HASIL DAN PEMBAHASAN

BAB III ANALISA DAN DESAIN SISTEM

STUDI PERBANDINGAN CIPHER BLOK ALGORITMA BLOWFISH DAN ALGORITMA CAMELLIA

BAB III ANALISIS DAN PERANCANGAN SISTEM. permasalahan-permasalahan dan kebutuhan-kebutuhan yang diharapkan sehingga dapat

STUDI PERBANDINGAN ALGORITMA SIMETRI BLOWFISH DAN ADVANCED ENCRYPTION STANDARD

ANALISIS PERBANDINGAN KINERJA ALGORITMA BLOWFISH DAN ALGORITMA TWOFISH PADA PROSES ENKRIPSI DAN DEKRIPSI

Algoritma Rubik Cipher

BAB I PENDAHULUAN. 1.1 Latar Belakang. Seiring dengan perkembangan peradaban manusia dan kemajuan pesat di

BAB III ANALISIS DAN PERANCANGAN

PERBANDINGAN ALGORITMA KRIPTOGRAFI DES DENGAN ICE

BAB III ANALISIS DAN DESAIN SISTEM

BAB III ANALISA MASALAH DAN PERANCANGAN

RANCANG BANGUN APLIKASI ENKRIPSI DATABASE MYSQL DENGAN ALGORITMA BLOWFISH

RANCANGAN,IMPLEMENTASI DAN PENGUJIAN ZENARC SUPER CIPHER SEBAGAI IMPLEMENTASI ALGORITMA KUNCI SIMETRI

BAB III ANALISIS DAN PERANCANGAN

STUDI PERBANDINGAN ENKRIPSI MENGGUNAKAN ALGORITMA IDEA DAN MMB

PERANCANGAN PROGRAM APLIKASI KRIPTOGRAFI MENGGUNAKAN ALGORITMA MARS DENGAN MODUS ECB

STUDI PERBANDINGAN ENKRIPSI MENGGUNAKAN ALGORITMA IDEA DAN MMB

BAB IV HASIL DAN UJI COBA

BAB I PENDAHULUAN. dokumen dan berkomunikasi dengan orang lain di lokasi yang berjauhan. tersebut untuk melakukan berbagai macam tindakan kriminal.

IMPLEMENTASI ALGORITMA BLOWFISH UNTUK ENKRPSI DAN DEKRIPSI BERBASIS JAVA SWING

BAB III ANALISIS DAN PERANCANGAN

BAB III ANALISIS DAN PERANCANGAN


(S.2) KRIPTOGRAFI METODA MODULAR MULTIPLICATON-BASED BLOCK CIPHER PADA FILE TEXT

OPTIMASI METODE BLOWFISH UNTUK MENGAMANKAN PASSWORD PADA KRIPTOGRAFI

APLIKASI STEGANOGRAFI UNTUK MENJAGA KERAHASIAAN INFORMASI MENGGUNAKAN BAHASA PEMROGRAMAN JAVA

ANALISA PROSES ENKRIPSI DAN DESKRIPSI DENGAN METODE DES

BEA A New Block Cipher Algorithm

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM

BAB I PENDAHULUAN 1.1 Latar Belakang

IMPLEMENTASI METODE KRIPTOGRAFI IDEA DENGAN FUNGSI HASH DALAM PENGAMANAN INFORMASI

BAB III ANALISA DAN PERANCANGAN. 3.1 Analisa Berikut tahap-tahap awal dalam pembuatan:

BAB III ANALISIS DAN DESAIN SISTEM

PENGEMBANGAN APLIKASI KRIPTOGRAFI FILE DOKUMEN, AUDIO DAN GAMBAR DENGAN ALGORITMA DES

Studi Perbandingan Cipher Block Algoritma Blowfish dan Algoritma Twofish

BAB III ANALISA DAN DESAIN SISTEM

Algoritma SAFER K-64 dan Keamanannya

IMPLEMENTASI ALGORITMA ADVANCED ENCRYPTION STANDARD (AES) UNTUK ENKRIPSI DAN DEKRIPSI PADA DOKUMEN TEKS ABSTRAK

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM. telah dijelaskan pada bab sebelumnya. Analisis yang dilakukan bertujuan untuk

BAB 1 PENDAHULUAN Latar Belakang

BAB 4 IMPLEMENTASI DAN EVALUASI. dan sistem operasi dengan spesifikasi sebagai berikut: 1. Processor: Intel Pentium, Core Duo, 1.

Penggabungan Algoritma Kriptografi Simetris dan Kriptografi Asimetris untuk Pengamanan Pesan

Perancangan Perangkat Lunak Bantu Bantu Pemahaman Kritografi Menggunakan Metode MMB (MODULAR MULTIPLICATION-BASED BLOCK CIPHER)

BAB IV HASIL DAN UJI COBA

APLIKASI JAVA KRIPTOGRAFI MENGGUNAKAN ALGORITMA VIGENERE. Abstract

Data Encryption Standard (DES)

Algoritma Kriptografi Modern (Bagian 2)

Ada 4 mode operasi cipher blok: 1. Electronic Code Book (ECB) 2. Cipher Block Chaining (CBC) 3. Cipher Feedback (CFB) 4. Output Feedback (OFB)

BAB III ANALISA MASALAH DAN RANCANGAN PROGRAM. Analisa yang dilakukan bertujuan untuk menentukan solusi dari

BAB I PENDAHULUAN. sering digunakan dalam kehidupan sehari-hari, seperti internet, e-commerce,

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB IV HASIL DAN UJI COBA

BAB III ANALISIS KEBUTUHAN DAN PERANCANGAN SISTEM. KriptoSMS akan mengenkripsi pesan yang akan dikirim menjadi ciphertext dan

BAB IV IMPLEMENTASI DAN PENGUJIAN. dilanjutkan dengan pengujian terhadap aplikasi. Kebutuhan perangkat pendukung dalam sistem ini terdiri dari :

BAB I PENDAHULUAN. Perangkat lunak aplikasi (software application) adalah suatu subkelas perangkat lunak

KEAMANAN DATA DENGAN MENGGUNAKAN ALGORITMA RIVEST CODE 4 (RC4) DAN STEGANOGRAFI PADA CITRA DIGITAL

BAB I PENDAHULUAN. dan rahasia telah menjadi suatu hal yang sangat berharga. Data atau informasi

PENGAMANAN DATA DENGAN MENGGUNAKAN ALGORITMA STREAM CIPHER SEAL

BAB III ANALISIS DAN PERANCANGAN

STUDI MENGENAI JARINGAN FEISTEL TAK SEIMBANG DAN CONTOH IMPLEMENTASINYA PADA SKIPJACK CIPHER

BAB 1 PENDAHULUAN Pengantar

PERANCANGAN APLIKASI KEAMANAN DATA MENGGUNAKAN ALGORITMA ENKRIPSI RC6 BERBASIS ANDROID

ANALISIS APLIKASI KRIPTOGRAFI UNTUK SISTEM KEAMANAN PENYIMPANAN DATA ATAU INFORMASI HASIL-HASIL PENELITIAN YANG BERSIFAT RAHASIA

BAB I PENDAHULUAN. dibutuhkan oleh banyak instansi dan perusahaan-perusahaan milik Negara

BAB II TINJAUAN PUSTAKA

BAB 4 IMPLEMENTASI DAN HASIL PERANCANGAN

Algoritma MAC Berbasis Jaringan Syaraf Tiruan

Analisis Penerapan Algoritma MD5 Untuk Pengamanan Password

BAB III ANALISIS DAN PERANCANGAN SISTEM

Analisis Algoritma Blowfish Pada Proses Enkripsi Dan Dekripsi File

Kriptografi Modern Part -1

IMPLEMENTASI ALGORITMA BLOWFISH UNTUK ENKRPSI DAN DEKRIPSI BERBASIS WEB

Modul Praktikum Keamanan Sistem

BAB I PENDAHULUAN. melalui ringkasan pemahaman penyusun terhadap persoalan yang dibahas. Hal-hal

PENGAMANAN SQLITE DATABASE MENGGUNAKAN KRIPTOGRAFI ELGAMAL

BAB III ANALISIS DAN DESAIN SISTEM

BAB III ANALISIS DAN PERANCANGAN. yang ada pada sistem dimana aplikasi dibangun, meliputi perangkat

APLIKASI ENKRIPSI DAN DEKRIPSI MENGGUNAKAN VISUAL BASIC 2012 DENGAN ALGORITMA TRIPLE DES

BAB IV HASIL DAN UJI COBA

STUDI ALGORITMA CIPHER BLOK KUNCI SIMETRI BLOWFISH CIPHER

BAB I PENDAHULUAN. dengan munculnya berbagai sistem operasi yang lengkap layaknya komputer,

Analisis Keamanan Sistem Informasi Dengan Metode Enkripsi Menggunakan Algoritma Blowfish. Jurusan Teknik Informatika, FT, Jl. Dipatiukur Bandung

BAB IV HASIL DAN UJI COBA

PENGAMANAN DATA MENGGUNAKAN METODA ENKRIPSI SIMETRI DENGAN ALGORITMA FEAL

PERANCANGAN APLIKASI ENKRIPSI DATA MENGGUNAKAN METODE ADVANCED ENCRYPTION STANDARD

Pengembangan Aplikasi Steganografi pada Citra dengan Metode Blowfish dan Sequential Colour Cycle

PROGRAM ENKRIPSI DAN DEKRIPSI DENGAN MENGGUNAKAN METODE DES DAN METODE GOST. Oleh : Dosen Teknik Informatika, FTIK UNIKOM, Jl. Dipati Ukur Bandung

BAB IV HASIL DAN PEMBAHASAN

Penerapan Algoritma Blowfish untuk Membuat Sebuah Model Kriptosistem dan Menganalisis Kinerja Algoritma Blowfish dengan Simulasi Data Terbatas

Transkripsi:

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. - Operasi penjumlahan modulo 2 16, operasi ini disimbolkan dengan tanda. - Operasi perkalian modulo ( 2 16 + 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 1, X 2, X 3, X 4, sehingga X = (X 1, X 2, X 3, X 4 ). Keempat subblok 16 bit itu ditransformasikan menjadi subblok 16 bit, Y 1, Y 2, Y 3, Y 4, sebagai pesan rahasia 64 bit Y = (Y 1, Y 2, Y 3, Y 4 ) yang berada di bawah kendali 52 subkunci 16 bit yang dibentuk dari blok 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 1, X 2, X 3, X 4, digunakan sebagai masukan untuk iterasi pertama dari algoritma IDEA. Dalam setiap iterasi dilakukan operasi XOR, penjumlahan modulasi 2 16 dan perkalian modulasi (2 16 + 1) antara dua subblok 16 bit. Tahapan-tahapan yang dilakukan pada setiap iterasi yaitu : 1) Perkalian X 1 dengan subkunci pertama (K 1 ) 2) Penjumlahan X 2 dengan subkunci kedua (K 2 ) 3) Pejumlahan X 3 dengan subkunci ketiga (K 3 ) 4) Perkalian X 4 dengan subkunci keempat (K 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 (K 5 ) 8) Penjumlahan hasil langkah 6) dengan langkah 7) 9) Perkalian hasil langkah 8) dengan subkunci keenam (K 6 ) 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 Transformasi keluaran akhir yang digunakan setelah iterasi 8 yaitu : 1) Perkalian X 1 dengan K 49 2) Penjumlahan X 2 dengan K 50 3) Penjumlahan X 3 dengan K 51 4) Perkalian X 4 dengan K 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. 49 K 50 K 51 K 52 ). 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 : K -1 merupakan invers perkalian modulo (2 16 +1) dari K : K * K -1 mod (2 16 +1) = 1 -K merupakan invers penjumlahan modulo 2 16 dari K : K + (-K) mod 2 16 = 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 2 16 + 1 pada subkunci K 49, K 52, K 43, K 46, K 37, K 40, K 31, K 34, K 25, K 28, K 19, K 22, K 13, K 16, K 7, K 10, K 1, K 4 dan menggunakan operasi invers penjumlahan modulo 2 16 untuk subkunci K 50, K 51, K 45, K 44, K 39, K 38, K 33, K 32, K 27, K 26, K 21, K 20, K 15, K 14, K 9, K 8, K 2, K 3. 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. - Operasi penjumlahan modulo 2 32, 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 : S 1,0, S 1,1,..., S 1,255 S 2,0, S 2,1,..., S 2,255 S 3,0, S 3,1,..., S3,255 S 4,0, S 4,1,..., S 4,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 X L dan X R. Untuk i = 1 sampai 16 maka : X L = X L X R = F(X L ) P i X R Tukar X L dan X R Tukar X L dan X R (batalkan penukaran terakhir) X R = X R P 17 X L = X L P 18 Gabungkan kembali X L dan X R Algoritma Blowfish untuk proses enkripsi dapat divisualisasikan pada Gambar 3.

Gambar 3 Proses Enkripsi Blowfish Fungsi F adalah sebagai berikut : Bagi X L dalam empat bagian 8-bit yaitu a, b, c dan d F(X L ) = ((S 1,a + S 2,b mod 2 32 ) S 3,c ) + S 4,d mod 2 32 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 P 1, P 2,, P 18. Pada proses dekripsi

Blowfish urutan pengggunaan subkunci P 1, P 2,, P 18 dibalik menjadi P 18, P 17,, P 1. 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: P 1, P 2,..., P 18 P 1, P 2,..., P 18 2) XOR P 1 dengan 32 bit pertama kunci, XOR P 2 dengan 32 bit kedua dari kunci dan seterusnya untuk setiap bit dari kunci (sampai P 18 ). 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 Tipe Data ofe outputfile string outputfile+"."+"key" keyfileenkrip 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 output Tipe Data 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 2 32, XOR, dan tablelookup lebih sederhana dibandingkan dengan operasi-operasi yang dilakukan oleh algoritma IDEA untuk setiap iterasi, yaitu penjumlahan mod 2 16, XOR, dan perkalian mod 2 16. 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 2 16, dan operasi perkalian (2 16 +1). Sedangkan Algoritma Blowfish dalam pengoperasiannya menggunakan operasi-operasi penjumlahan mod 2 32, 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 Documentation, 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 [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.