Anda di halaman 1dari 11

Algoritma BlowBsh untuk Penyandian Pesan

Sugi ~uritman,*Meuthia ~achmaniah,.Dian Mardiana **

*) Staf Jurusan Ilmu Komputer, Fakultas Matematika dun Ilmu Pengetahuan Alum
**) Mahasiswa Jurusan Ilmu Komputer, Fakultas Matematika dun Ilmu Pengetahuan Alum

Abstrak

Meningkatnya penggunaan internet untuk melakukan pengiriman pesan menyebabkan metode pengamanan
terhadap pesan menjadi amat penting. Metode pengamanan pesan yang digunakan saat ini adalah metode
kriptogmfi. Secara umum, knptografi digunakan untuk melakukan penyandian pesan dun autentikasi pesan. Pada
penelitian ini teknik yang digunakan adalah teknik kriptografipenyandian pesan menggunakan algoritme Blowfuh.
Berdasarkan kunci pengaman yang digunakannya, teknik kriptografi penyandian pesan dibedakan menjadi dua
yaitu simetrik dun asimetrik Blowfish merupakan algoritma knptografi penyandian pesan yang menggunakan teknik
simetrik; artinya kunci yang digunakan pada proses enknpsi sama dengan kunci yang digunakan pada proses
dekripsi. Tulisan ini bertujuan untuk mempelajari, ntengimplementasikan, dun menganalisis algoritma Blowfish,
sehingga dapat diketahui kinejanya dalam melakukan penyandian serta menjaga kerahasiaan pesan yang
disandikannya. Implementasi algoritma ini menggunakan dua modus operasi yaitu Electronic Code-Book (ECB) dan
Cipher-Block Chaining (CBC). Sedangkan analisis yang dilakukan meliputi analisis teori, analisis algoritma, analisis
keamanan, dun analisis hasil implementasi.
Analisis teori menunjukkan bahwa Blowjiih merupakan algoritma kriptogrnfi yang menggunakan kunci simetrik
dengan panjang bervariasi asalkan tidak lebih dari 448-bit. Blowjuh juga mengkombinasikan fingsi f tak-membalik,
keydependent S-Box, dun jaringan Feistel. Pmses enkripsi-dekripsi menggunakan ECB dun operasi CBC memiliki
kasus terburuk yang sama yaitu q n ) . Meskpun notasi-0 pada keduanya sama, pengukuran kecepatan pada hasil
implementasi menunjukkan bahwa kecepatan Blowfuh dengan ECB lebih baik dibandingkan Blowfish dengan CBC.
Namun ditinjau dari segi keamanan, Blowfsh menggunakan operasi CBC lebih baik dibandingkan Blowfsh
menggunakan operasi ECB. Hingga saat ini belum ada attack yang mampu membongkar keamanan Blowfish 16-
round. Dengan menggunakan exhaustive key search, kunci rahasia Blowfish dapat ditemukan melalui 7,27xldM
operasi dekripsi (hsus terburuk). Penelitian Vaudenay tahun 1995 berhasil menganalisis weak key pada algoritma
ini, yaitu disebabkan oleh adanya dua entries identik pada suatu S-Box-nya, tetapi penelitian ini belum mampu
menunjukkan nilai dari weak key tersebut.

Untuk mencegah terjadinya kedua bentuk


PENDAHULUAN ancaman tersebut telah dikembangkan suatu
metode pengamanan pesan yang dapat menjaga
A. Latar Belakang kerahasiaan dan keutuhan isi pesan yang dikirim
Kemajuan teknologi khususnya dalam bidang melalui internet. Metode ini dikenal dengan nama
telekomunikasi dan komputer telah memungkinkan teknik kriptografi. Pada awal perkembangannya,
seseorang melakukan pengiriman pesan kepada teknik kriptografi hanya digunakan untuk tujuan
orang lain melalui internet. Kegiatan mengirim militer dan diplomatik. Akan tetapi mulai tahun
pesan melalui internet ini sangat beresiko, apalagi 1970-an teknik ini telah digunakan untuk keperluan
untuk pesan yang sifatnya rahasia dan berharga, bisnis dan perorangan (Heriyanto, 1999).
karena internet merupakan media umum yang Secara umum, teknik kriptografi digunakan
rentan akan terjadinya penyusupan oleh pihak yang untuk melakukan penyandian pesan dan autentikasi
tidak berhak.(unauthorizedperson). pesan (Prasetya, 2001). Teknik kriptografi
Bentuk ancaman yang dilakukan oleh penyusup penyandian pesan menekankan pada pencegahan
dapat berupa ancaman pasif (pussive attack) atau terhadap terjadinya ancaman pasif. Sedangkan
pun ancaman aktif (active attack). Ancaman pasif teknik kriptografi autentikasi pesan menekankan
terjadi jika seorang penyusup secara sengaja pada pencegahan terjadinya ancaman aktif. Dalam
mengambil, membaca, dan menampilkan isi dari penelitian ini teknik yang digunakan adalah teknik
pesan. Sedangkan ancaman aktif terjadi jika kriptografi penyandian pesan.
seorang penyusup tidak hanya menampilkan isi Teknik kriptografi penyandian pesan dibagi
pesan, tetapi juga memodifikasi atau bahkan menjadi dua yaitu simetrik dan asimetrik.
memalsukan isi pesan dengan pesan yang baru. Keduanya menggunakan suatu kunci rahasia
- -
Majslah llmiah lknu Komputer, Vd. 1. No. 1, September 2003 :0 19

tertentu untuk menyandikan sekaligus 3. Transaksi tidak bisa disangkal (non-


mengamankan isi suatu pesan. B l o w h merupakan repudiation).
algoritma kriptografi penyandian pesan yang Pada penelitian ini teknik yang digunakan adalah
menggunakan telcnik simetrik. Algoritma ini teknik kriptografi penyandian pesan yang hanya
dikembangkan oleh Bruce Schneier pada tahun menekankan pada aspek kerahasiaan
1993. Pa& penelitian ini dilakukan implementasi (confidentialitu).
dan analisis terhadap algoritma Blowfish untuk Pesan asli yang belum disandikan disebut
mengetahui kinerjanya &lam melakukan plaintext disimbolkan dengan P. Plaintext &pat
penyandian dan mengamankan pesan yang berupa berkas teks, rangkaian bit, gambar video
disandikannya. digital, atau pun gelombang suara digital. Dalam
penelitian ini plaintext yang digunakan adalah
B. Tujuan berkas teks. Sedangkan pesan yang sudah disan-
Tujuan dari penelitian ini adalah : dikan disebut ciplrerrtxt, disirnbolkan dengan C.
1. Mempelajari dan mernahami teknik kriptografi
penyandian pesan dengan menggunakan B. Enkripsi dun Dekripsi
algoritma Blowfish. Schneier (1994a) mendefinisikan enkripsi,
2. Mengimplementasikan algoritma tersebut ke disimbolkan dengan E, sebagai proses untuk
dalam suatu program komputer dengan mengubah suatu plaintext menjadi ciphertext.
menggunakan bahasa pemrograman Visual Fungsi enkripsi (E) terhadap plaintext (P) akan
Basic 6.0. menghasilkan ciphertext (C) yang secara
3. Melakukan analisis terhadap algoritma matematis dapat dinyatakan sebagai berikut :
tersebut.
E(P) = C
C. Ruang Lingkup Sedangkan dekripsi, disimbolkan dengan D,
Implementasi algoritma Blowfsh pa& sebagai kebalikan dari enkripsi yaitu proses
penelitian ini ditujukan untuk melakukan rnengembalikan ciphertext menjadi plaintext.
penyandian pa& pesan dalam bentukfile teks (at). Fungsi dekripsi (D) terhadap ciphertext (C) akan
Implementasi ini rnenggunakan dua modus operasi menghasilkan plaintext (P) yang secara matematis
yaitu Electronic CodeBook (ECB) dan Cipher- dapat dinyatakan sebagai berikut :
Block Chaining (CBC). Untuk memperrnudah D(C) = P
penelitian, rnanajemen penentuan nilai kunci dan Proses enkripsi yang dikuti dengan proses
Initialization Vector (IV) diasurnsikan telah dekripsi merupakan proses untuk mengembalikan
terjamin keamanannya. Sedangkan analisis yang pesan ke plaintext yang asli, sehingga berlaku
dilakukan meliputi beberapa faktor yaitu analisis identitas :
teori, analisis algoritma, analisis keamanan clan D(E(P)) = D(C) = P
analisis hasil implementasi (kecepatan).

TINJAUAN PUSTAKA C. Algoritma Kriptografi


Algoritma kriptografi atau cipher adalah
rangkaian fungsi matematika yang digunakan
A. Kriptografi &lam proses enkripsi dan dekripsi (Schneier,
Kriptografi berasal dari bahasa Yunani yaitu
1994a). Proses enlaipsi menggunakan algoritma
kryptds yang artinya rahasia dan grdrphein yang
artinya menulis. Sedangkan Schneier (1994a) enkripsi sedangkan proses dekripsi menggudan
algoritma dekripsi.
mendefinisikan kriptografi sebagai ilmu yang
Untuk keamanannya, semua algoritma
rnempelajari teknik-teknik untuk menjaga
kriptografi tergantung pada kerahasiaan kunci
keamanan pesan. Orang yang melakukannya
disebut kriptografer. (disimbolkan dengan k). Nilai dari kunci ini akan
mernpengaruhi fungsi enkripsi dan delaipsi,
Menurut Menezes et al. (1997) kriptografi
sehingga menjadi :
&pat memenuhi kebutuhan umum suatu transaksi
yang rneliputi : Ek(P) = C
1. Kerahasiaan (confidentiality) Dk(C) = P
2. Keutuhan (integrity)
Aigoritma Blowffsh Untuk Penyandian Pesan

D. Algoritma Simetrik dengan c adalah jumlah karakter pada blok terakhir


Algoritma kriptografi yang digunakan dalam dan ~d adalah jumkthkode untuk karakter
penelitian ini adalah algoritma telrnik simetrik. padding.
Algoritma merupakan algoritma kriptografi yang Sebagai contoh, rnisalkan untuk blok plaintext
menggunakan kunci enkripsi dan kunci dekripsi yang berukuran 24-bit (3-kurakter), padding
yang sama. dilakukan dengan cara menambah 5-karakter baru
Schneier (1994a) menyatalcan proses enlaipsi yang memiliki kode ASCII 5 pa& blok tersebut.
dan dekripsi pa& algoritma simetrik dengan W s i Dengan pola ini maka pa& proses dekripsi,
sebagai bedcut : program dapat melakukan proses unpadding yaitu
Ek(p) = c menghilangkan 5-karakter terakhir pa& blok
D&=P tersebut.
Dk(E&(P)) = DdC) = P
Algoritma simetrik dibedakan menjadi dua G. Modus Operasi Algoritma Blok
yaitu algoritma stream (stream cipher) dan Modus operasi pada algoritma blok digunakan
algoritma blok (block cipher). Algoritma stream untuk meningkatkan keamanan algoritma tersebut.
adalah algoritma simetrik yang mengoperasikan Terdapat beberapa modus operasi untuk algoritma
plaintext satu bit per satuan waktu. Sedangkan blok, diantaranya adalah Electronic CodeBook
algoritma blok mengoperasikan plaintext &lam (ECB), Cipher-Block Chaining (CBC), Cipher
sekumpulan bit (block) per satuan waktu. Blowfish FeedBack (CFB) dan Output FeedBack (OFB).
merupakan algoritma simetrik yang masuk ke Implementasi algoritma Blowfish &lam penelitian
dalam kategori algoritma blok. Ukuran blohya ini hanya menggunakan modus operasi ECB dan
adalah 64-bit. CBC.

E. Round G.1. Electronic Codebook (ECB)


Proses enkripsi dan dekripsi pada algoritma Modus ECB selalu mengenkripsi setiap
blok dilakukan dengan menjalankan suatu proses blok plaintext ke suatu blok ciphertext yang sama.
yang terdiri dari beberapa iterasi (pengulangan). Demikian pula sebaliknya untuk proses dekripsi.
Iterasi ini dikenal dengan sebutan round (Schneier, Secara maternatis modus ECB ini dapat dituliskan
1994a). sebagai berikut :
Jumlah round yang digunakan tergantung C = Ek(P) ;untuk enkripsi
kepada tingkat keamanan yang diinginkan. Dalam P = Dk(C) ;untuk dekripsi
banyak kasus, peningkatan jumlah round akan
rnemperbaiki tingkat keamanan suatu algoritma 6.2. Cipher-Block Chaining (CBC)
blok. Modus CBC menggunakan mekanisme
umpan balik, yaitu hasil enkripsi pa& blok
F. Padding dun Unpadding sebelunmya digunakan untuk memodifikasi
Input plaintext yang akan dienkripsi oleh enkripsi blok berikutnya. Setiap blok ciphertext
algoritma blok akan dibagi menjadi blok-blok yang yang dihasilkan tidak hanya tergantung pada blok
masing-masing panjangnya n-bit, dengan n sebagai plaintext yang mernbangkitkannya, tetapi juga
ukuran blok. Jika blok yang digunakan bendcuran tergantung pada semua blokplaintext sebelunmya.
64-bit, maka pembagian ini akan mengakibatkan Dalam modus CBC, sebelum dienlcripsi
blok terakhir akan memiliki ukuran lebih kecil atau plaintext akan di-XOR terlebih dahulu dengan blok
sama dengan 64-bit. Untuk mengatasi ha1 tersebut ciphertext hasil enhipsi dari blok plaintext
dilakukan proses padding yaitu penambahan bit-bit sebelumnya. Secara maternatis modus CBC ini
isian pada blok terakhir input plaintext yang akan &pat dituliskan sebagai berikut :
dienkripsi. Ci= El,(Pi XOR Ci-1) ;untuk enkripsi,
Padding pada penelitian ini dilakukan dengan i = l,2, .......,t
cara menambabkan karakter baru yang memiliki Pi = Ci., XOR Dk(Ci) ;untuk dekripsi,
kode ASCII 1-8 (Ireland, 2002), dan aturannya i = l,2, ......, t
adalah sebagai berikut :
-
Setelah satu blok plaintext dienkripsi, blok
ciphertext yang dihasilkan disalin ke sebuah
register feedback. Sebelum blok plaintext
- -
Majalah llmiah llmu Komputer, Vd. 1. No. 1, September 2003 :9 19

berikutnya dienkripsi, blok plaintext ini di-XOR algoritma sudah rnarnpu menangani kedua proses
terlebih dahulu dengan blok ciphertext pada tersebut.
register feedback dan menjadi input bagi proses
enkripsi berikutnya. Blok ciphertext selanjutnya I. Data Encryption Standard (DES)
disalin ke register feedback, untuk kemudian di- Data Encryption Standard (DES) merupakan
XOR dengan blok plaintext berikutnya. Begitu. standar enkripsi data yang ditetapkan oleh National
seterusnya hingga akhir pesan. Bureau of Standards (NBS) Amerika Serikat pada
Dekripsi merupakan proses kebalikannya. tahun 1977. Pada perkembangan selanjutnya DES
Blok ciphertext didekripsi secara normal. Setelah semakin banyak digunakan dan telah menjadi
blok berikutnya didekripsi, blok plaintext hasil standar enkripsi data dunia (Schneier, 1994a).
dari dekripsi sebelumuya di-XOR dengan blok Algoritma DES merupakan algoritma blok 16-
ciphertext pada register forward. Lalu blok round yang mengenkripsi data yang panjang
ciphertext selanjutnya disalin ke register forward, bloknya 64-bit dengan menggunakan kunci rahasia
begitu seterusnya hingga akhir pesan. 56-bit. DES memiliki delapan buah 6*4-bit S-Box
Untuk menginisialisasi CBC, register feedback statis serta merupakan algoritma kriptografi
dan register forward perlu diberi suatu nilai awal modern yang menerapkan konstruksi jaringan
yang disebut Initialitation Vector (IV). IV Feistel.
merupakan suatu nilai yang ukurannya sama
dengan ukuran blok yang digmakan. Nilai IV ini J. Kriptoanalisis
sebaiknya merupakan nilai yang diarnbil secara Kriptoanalisis (ctyptanalysis) adalah ilmu
acak, dan untuk keamanannya nilai IV ini harus untuk mendapatkan pesan asli dari pesan yang
selalu berbeda untuk setiap pesan. sudah disandikan tanpa memiliki kunci untuk
Karena Blowfih merupakan algoritma blok membuka pesan tersebut. Orang yang
64-bit, maka nilai IV untuk algoritma ini adalah melakukannya disebut hiptoanalis. Sedangkan
nilai yang berukuran 64-bit, yang jika usaha untuk melakukan kriptoanalisis disebut
direpresentasikan dalam karakter ASCII terdiri atas serangan (attack).
8-karakter. Untuk mendapatkan plaintext yang J e ~ sattack yang paling sering menyerang
benar rnaka nilai IV pa& proses dekripsi hams algoritma blok adalah :
sama dengan nilai IV pa& proses enkripsi. 1. Ciphertext-only attack. Dalam penyerangan ini
kriptoanalis memiliki ciphertext dari sejumlah
H. Jaringun Feistel pesan yang seluruhnya telah dienkripsi
Harnpir semua algoritma blok menggunakan menggunakan algoritma yang sama.
konstruksi jaringan Feistel (Feistel Network) yang 2. Known-plaintext attack. Dalam penyerangan ini,
dikernbangkan pada tahun 1970-an oleh Horst kriptoanalis memiliki akses tidak hanya ke
Feistel. Jaringan Feistel bekerja pada blok yang ciphertext sejumlah pesan, namun ia juga
panjangnya n-bit. Lalu membaginya menjadi dua memiliki plaintext pesan-pesan tersebut
bagian yaitu sisi kiri (L) dan sisi kanan (R) yang 3. Chosen-plaintext attack. Pada penyerangan ini,
masing-masing panjangnya 1112 bit. kriptoanalis tidak hanya memiliki akses atas
Dalam jaringan Feistel, output pa& round ke-i ciphertext dan plaintext untuk beberapa pesan,
ditentukan oleh ouput round sebelumnya. Secara tetapi ia juga dapat memilih plaintext yang akan
matematis dapat ditulis sebagai berikut : dienkripsi
Li = Ri-,
R,= Lb, XOR f(Ri.1, K$ K. Exhaustive Key Search
Dengan Ki merupakan subkunci yang digunakan Exhaustive key search atau Brute-force search
pada round ke-i dan f adalah h g s i yang adalah suatu teknik dasar yang digunakan
digunakan berulang &lam setiap round. kriptoanalis untuk mencoba setiap kunci yang
Hal utama dari konstruksi ini adalah sifatnya mungkin sampai ditemukan kunci yang
yang dapat dikembalikan (reversible), sehingga sebenarnya. Untuk suatu algoritma blok n-bit
samua algoritma blok jaringan Feistel tidak perlu dengan kunci k-bit dibutuhkan f(k+4)/n 7pasangan
mengimplementasikan dua buah algoritma berbeda plaintext-ciphertext yang dienkripsi menggunakan
untuk melakukan proses enkripsi dan proses kunci rahasia k. Pada kasus terburuk, exhaustive
delaipsi. Dengan konstruksi ini satu buah key search dapat menemukan kunci K tersebut
Algorltrna Blowflsh Untuk Penyandian Pesan

dengan melakukan operasi dekripsi sebanyak 2"'. yang dienkripsi dengan m~lggunakan kunci
Sebagai contoh, misalkan ukuran kunci yang tersebut.
digunakan adalah 56-bit maka untuk menemukan
nilai dari kunci tersebut dibutuhkan satu pasang 0. Analisis Algoritma
plaintext-ciphertext dan 2" proses dekripsi. Dalam penelitian ini, algoritma Blowfish
dievaluasi berdasarkan keadaan kompleksitas
L. Kriptoanalisis Dinerensial waktu untuk waktu terburuk, dinotasikan dengan
Kriptoanalisis differensial (dzferential 0 (big 0).Kasus terburuk untuk algoritma ini
cryptanalysis) merupakan metode serangan yang didefinisikan sebagai waktu maksirnurn yang
diperkenalkan oleh Eli Biham dan Adi Shamir diperlukan algoritma tersebut untuk menyelesaikan
(Biham & Shamir, 1990). Ide dasar dari attack ini suatu pekerjaan, yaitu waktu yang berlangsung
adalah menganalisis efek yang ditimbulkan oleh sejak dimulainya algoritma hingga selesai.
perbedaan pa& suatu pasangan plaintext terhadap
perbedaan yang terjadi pada resultan pasangan DESKRIPSI AL GORITMA BLO WFISH
ciphertext yang dihasilkan.
Perbedaan-perbedaan ini digunakan untuk Blowfish merupakan algoritma kriptografi
menentukan peluang kunci-kunci yang mungkm, yang didesain untuk beroperasi pada blok pesan
dan selanjutnya digunakan untuk menentukan 64-bit dan menggunakan kunci yang panjangnya
kunci enkripsi yang sebenamya. Pada algoritma dapat mencapai 448-bit (56-byte). Algoritma ini
blok, struktur perbedaan ini dipilih sebagai hasil terdiri dari dua bagian utama yaitu ekspansi kunci
XOR yang tetap dari dua buahplaintext. (key expansion) dan proses enkripsi. Sedangkan
proses dekripsi menggunakan proses yang sarna
M. Desain S-Box persis dengan proses enkripsi, hanya berbeda
S-Box merupakan suatu bentuk substitusi dalam urutan subkunci yang digunakannya.
sederhana, yaitu pemetaan &ri m-bit input menjadi Ekspansi kunci mengubah kunci yang &pat
n-bit output. Suatu S-Box dengan m-bit input mencapai 448-bit menjadi beberapa array subkunci
dan n-bit output dinarnakan m*n-bit S-Box. Secara dengan total 4 168-byte. Sedangkan proses enkxipsi
mum, S-Box merupakan bagian yang menjadi dan dekripsi terdiri dari iterasi h g s i sederhana
pengaman bagi algoritma blok. Semakin besar sebanyak 16-round. Operasi yang digunakan
ukuran yang digunakan maka desain S-Box tersebut adalah operasi penambahan dan operasi XOR pada
akan semakin tahan terhadap serangan variabel 32-bit. Tambahan operasi lainnya adalah
kriptoanalisis differensial. empat penelusuran tabel (tabel lookup) array
Selain ukuran yang besar, untuk membuat berindeks untuk setiap round.
desain S-Box sernakin tahan terhadap kriptoanalisis Blowfish menggunakan subkunci yang besar.
differensial maka sebaiknya nilai S-Box ini Subkunci ini harus dihitung sebelum proses
merupakan nilai yang digabungkan dengan nilai enkripsi atau dekripsi dilakukan. BlowBh memiliki
kunci yang digunakan (key-dependent S-Box). subkunci P-array yang terdiri dari delapan beias
Penggabungan ini menyebabkan nilai S-Box tidak 32-bit subkunci :
diketahui (tersembunyi), sehingga menyulitkan PI, p2, p3, ..., p18
kriptoanalis yang ingin mencoba mengetahui
s-ya. dan empat buah 8*32-bit S-Box yang masing-
Algoritma Blowfish menggunakan empat buah masing terdiri atas 256 entries :
8*32-bit key-dependent S-Box. Masing-masing S-
Box tersebut terdiri atas 256 entries.

N. Weak Key
Weak key adalah suatu kunci rahasia pa&
algoritma blok dengan suatu nilai tertentu yang
dapat memperlihatkan suatu keteraturan yang A. Ekspansi Kunci
terjadi pa& proses enkripsi. Keteraturan ini akan Ekspansi kunci adalah proses untuk
mempermudah kerja seorang kriptoanalis yang mernbangkitkan subkunci yang langkabnya adalah
mencoba untuk melakukan attack terhadap pesan sebagai berikut :
- -
Majalah llmiah llmu Komputer, Vd. 1. No. I,September 2003 :9 19

1. Inisialisasi delapan belas P-array dan XR=XRXOR P17


kemudian empat buah S-Box secara berurutan XL=XLXOR P18
dengan string yang tetap. String ini terdiri atas Kombinasikan kembali XLdan XR
digit heksadesimal bilangan pi (x), contoh : Sedangkan fungsi f ditentukan sebagai
berikut:
P1 = Ox243f6a88 Bagi XL,menjadi empat bagian 8-bit :
P2 = Ox85a308d3 a, b, c dan d
P3 = Ox13198a2e AXL) = ((SlSo+ S2.6 mod 232)XOR S3,,) +
P4 = Ox3707344 SdSd
mod 232
Digit heksadesimal bilangan pi merupakan
deret bilangan pi dalam bentuk heksadesimal
(n = 3,243Sa8885a308d313198a2e03707344 C. Proses Dekripsi
A4093822 ... ) yang dapat dibanglatkan oleh Proses dekripsi sama persis dengan proses yang
formula Bailey-Borwein-Plouffe (Finch, dilakukan pada proses enkripsi, tetapi PI, P2, P3,.
1995). ..., P18 digunakan pada urutan yang berbalik.
2. XORPl dengan 32-bit pertama dari kunci,
XOR P2 dengan 32-bit kedua dari kunci dan
seterusnya untuk setiap bit dari kunci
(mungkin sampai PIS. Ulangi terhadap bit HASIL DAN PEMBAHASAN
kunci sampai seluruh P-array di-XOR dengan
bit kunci. A. Analisis Teori
3. Enkripsi semua string no1 dengan algoritma Analisis teori dilakukan untuk mengetahui
Blowfish dengan menggunakan subkunci teori kriptografi apa saja yang mendukung
seperti dijelaskan pada langkah (I) dan (2). Blowfish, serta menganalisis efek dari teori tersebut
4. Ganti P1 dan P2dengan keluaran dari langkah terhadap algoritma ini. Dari analisis ini diketahui
(3) bahwa Blowfish merupakan algoritma blok 64-bit
5. Enkripsi keluaran dari langkah (3) dengan yang mengkombinasikan fungsi f talc-memballk,
algoritma Blowfish dengan subkunci yang key-dependent S-Box (S-Box yang digabungkan
sudah dimodifikasi. dengan kunci), dan jarhgan Feistel
6. Ganti P3 dan P4 dengan keluaran dari langkah (KremlinEncrypt, 2000).
(5). Penggunaan fungsi f talc-membalik merupakan
7. Lanjutkan proses tersebut, ganti seluruh bagian yang paling menarik. Fungsi ini
elemen dari P-array, &n kemudian keempat menggunakan aritmetika modular (operasi sisa-
S-Box secara berurutan, dengan keluaran yang bagi) untuk mernbangkitkan entries-entries ke
berubah secara kontinu dari algoritma dalam S-Box. Sifat tak-membalik ini dapat
Blowfish. dijelaskan pa& Tabel 1. dengan menggunakan
Total iterasi yang diperlukan untuk fungsif(x) = x2 mod 7 (KremlinEncrypt, 2000).
menghasilkan subkunci Blowfish ini adalah :
Tabel 1. Fungsif(x) = x2 mod 7
((4 x 256 )+ 18)
= 52 1 iterasi
2

B. Proses Enkrivsi
Input proses k r i p s i merupakan plaintext 64- Berdasarkan output yang dihasilkan pada
bit, X. Untuk mengenkripsi X dilakukan langkah- Tabel I., tidak ada fungsi yang dapat
langkah sebagai berikut : membangkitkan input spesifik bagi f(x). Sebagai
Bagi Xmenjadi dua 32-bit: XL,XR contoh, jika diketahui bahwa fungsi tersebut
Untuk i = 1 sampai 16 memiliki output bernilai 4 di beberapa nilai x,
XL= XLXOR Pi maka tidak ada cara untuk mengetahui apakah nilai
XR=f(x,)x o R xR x tersebut adalah 2, 5, atau nilai lain yang memiliki
Tukar XLdan XR fungsif(x) = 4.
Tukar XL dan XR (batalkan penukaran Blowfish menggunakan mod 232(atau sekitar 4
terakhir) milyar) pa& fungsi f-nya. Penggunaan fungsi f ini
Algoritma Blowfish Untuk Penyandian Pesan

akan mernpersulit kerja seorang kriptoanalis untuk Secara keseluruhan waktu eksekusi enkripsi
menhpatkan pesan asli saat mencoba melakukan dengan modus operasi ECB adalah Eln + al,
penyerangan jenis ciphertext-only attack. dengan E 1 dan a1 adalah suatu konstanta dan n
adalah jumlah blok input. Jadi notasi-0 untuk
Tidak seperti DES yang menggunakan S-Box kasus terburuk proses enkripsi modus ECB
yang statis, Blowfish menggunakan S-Box dinamis a&lah :
yang dibangkitkan melalui pengulangan aplikasi Em) = e,n + a1 E O(n)
algoritma Blowfish itu sendiri terhadap kunci (key- Langkah untuk melakukan enlcripsi modus
dependent S-Box) saat proses ekspansi kunci CBC adalah :
dilakukan. Penggabungan S-Box dengan kunci ini a. Inisialisasi nilai untuk initialization vector
menyebabkan nilai &ri S-Box Blowfsh tidak (ZV), dan simpan di registerfeedback
diketahui sehingga akan mempersulit kerja b. ekspansi kunci
kriptoanalis yang mencoba melakukan attack jenis c. padding
kriptoanalisis differensial. d. proses enkripsi
Elemen penting lainnya dari Blowfsh adalah d.1 XOR input blok plaintext 64-bit
konstruksi jaringan Feistel. Dengan konstruksi ini, dengan blok ciphertext 64-bit pa&
algoritma Blowfsh memiliki dua sifat unik yaitu registerfeedback
proses enlaipsi dan dekripsi menggunakan fungsi f d.2 enkripsi blok plaintext 64-bit hasil
yang sama serta memiliki kemampuan untuk langkah [dl1
mengunakan fungsi f berulang kali (multiple-time). d.3 salin blok ciphertext 64-bit hasil
Pa& Blowfish h g s i f ini diulang sebanyak 16 langkah Ed.23 ke registerfeedback
kali (I 6-round). Pengulangan sebanyak 16 kali e. output
dipilih karena 16 merupakan ukuran yang sangat
sesuai dengan ukuran P-array yang digunakan Waktu eksekusi a, b, c dan e a&lah konstan
pada proses ekspansi kunci, serta mendukung karena tidak dipengaruhi oleh ukuran
penggunaan kunci Blowfish yang panjangnya inputnya, misalkan a2.Sedangkan langkah d
mencapai 448-bit (Schneier, 1994). dipengaruhi oleh jurnlah blok input plaintext
64-bit, jadi untuk input berukuran n blok
diperlukan waktu eksekusi sebesar EP.
B. Analisis Algoritma Secara keseluruhan waktu eksekusi enkripsi
Analisis algoritma dilakukan dengan asumsi dengan modus operasi ECB a&lah ~p+ at
bahwa mesin yang digunakan adalah model dengan EZ dan a2adalah suatu konstanta dan n
Random-Access Machine (RAM), berprosesor adalah jumlah blok input. Jadi notasi-0 untuk
tunggal. Pa& mesin jenis ini, instruksi-instrubi kasus terburuk proses enlaipsi modus CBC
program dieksekusi baris perbaris secara berturut- adalah :
turut (Connen et al., 1990). E(CBC)= E2n + a 2 E O(n)

B.1. Analisis Algoritma Enkripsi


Algoritma enkripsi Blowfrsh diimplementasikan B.2. Analisis Algoritma Dekripsi
dalam dua modus operasi yaitu ECB dan CBC. Sama halnya seperti pa& algoritma enkripsi,
algoritma dekripsi Blowfish juga
1. Langkah untuk melakukan enkripsi modus
diirnplementasikan &lam modus operasi ECB dan
ECB a&lah :
CBC.
a. ekspansi kunci
1. Langkah untuk melakukan dekripsi modus
b. padding
ECB adalah :
c. enkripsi blokplaintext 64-bit
d. output a. ekspansi kunci
b. dekripsi blok ciphertext @-bit
Waktu eksekusi pada langkah a, b, dan d c. unpadding
adalah konstan karena ti&k dipengaruhi oleh d. output
ukuran inputnya, misalkan al. Sedangkan Waktu eksekusi pa& langkah a, c, dan d
langkah c dipengaruhi oleh jumlah blok input adalah konstan karena tidak dipengaruhi oleh
plaintext 64-bit, jadi untuk input berukuran n ukuran inputnya, rnisalkan PI. Sedangkan
blok diperlukan waktu eksekusi sebesar Eln. langkah b dipengaruhi oleh jumlah blok input
- -
Majalah llmiah llmu Komputer, Vd. 1. No. 1,I September 2003 :9 19

ciphertext @-bit, jadi untuk input berukuran n 448


blok d i p e r l u b w b eksekusi sebesar &n. search adalah sebanyak C 2'-l atau sekitv
Secara keseluruhan waktu eksekusi dekripsi k l
dengan modus operasi ECB aln -t PI, 7,27x10'~~
proses dekripsi (untuk kasus tehuruk)
dengan S1dan PI suatu konstanta dan n adalah
jumlah blok input. Jadi notasi-0 untuk kasus Tahun 1995 Serge Vaudenay melakukan
terburuk proses dekripsi modus ECB : ~ a e l i t i a nuntuk menganalisis weak key pa&
D@cB)=61n+ pl O(n) algoritma ini dengan menggunakan jenis attack
kriptoanalisis differensial (Vaudenay, 1996). Dari
penelitian ini diketahui bahwa penyebab terjadinya
2. ~ ~ ~ g k a h melakukan dekripsi modus weak key pada Blowfish adalah adanya collision,
CBC adalah : yaitu munculnya dua entries identik pa& suatu S-
a, Inisialisasi nilai un& initialization vector Box. Secara acak ~eluangmuncUlnYa collision
(ZV), dan simpan di registerforward pa& empat S-Box Blowfish adalah 2'".
b. ekspansi kunci Kesimpulan yang didapat dari penelitian
c. proses dekripsi Vaudenay (1996) adalah sebagai berikut :
c.1 salin blok ciphertext 64-bit ke a. Dengan men- S-Box yang dikedui
register value dan bukan merupakan key-dependent,
c.2 dekripsi blok ciphertext 64-bit kriptoanalisis differensial mernbutuhkan 248
c.3 XOR blok plaintext 64-bit hasil chosen-plaintext untuk menemukan s e w
langkah [c.2] dengan blok ciphertext nilai subkunci P-array pada varian BlowfZsh 8-
64-bit pada registerforward round.
em4 salin blok c@herterr w b i f pada b. Dengan suah weak key te(enh ymg
register value flangkah [c.l]) ke menyebabkan munculnya collision pada S-
registerforward Box, attack ini membutuhkan 223 chosen-
d. unpadding plaintext pa& Blowfish &round dan 3x2"
e. output chosen-plaintext pa& Blowfish 16-round (S-
Waktu eksekusi a, b, d dan e adalah konstan Box-nya juga diasumsikan telah diketahui dan
karena tidak dipengaruhi oleh ukuran bukan key-dependent).
inputn~a,mistilkan b2- sedangkan langkah c. Dengan suatu S-Box yan tidak diketahi,
dipengaruhi oleh jumlah blok input ciphertext attack ini membutuhkan 22 ! chosen-plaintext
@-bit, jadi untuk input berukuran n blok untuk mendeteksi bahwa kunci yang sedang
diperlukan waktu eksekusi sebesar 62n. digunakan merupakan weak key. Tetapi attack
Secara keseluruhan waktu eksekusi dekripsi ini belurn mampu menentukan nilai dari S-
dengan modus operasi ECB adalah 6*n + Pz, Box, P-array, ataupun nilai dari weak key
dengan 62 dan P2 adalah suatu konstanta dan n tersebut, juga hanya dapat dilakukan pa&
adalah jumlah blok input. Jadi notasi-0 untuk varian Blowfsh 8-round.
kasus terburuk proses dekripsi modus CBC Kearnanan suatu algoritma kriptografi
adalah : tergantung pa& kunci rahasia yang digunakannya.
D(CBC) = 8211+ PZ E O(n) Algoritma kriptografi dikatakan aman apabila
usaha untuk membongkar kunci rahasia tersebut
memerlukan waktu yang sangat lama, sehingga
usaha pembongkaran tersebut baru akan berhasil
C. Analisis Keamanan setelah pesan sudah tidak berlaku lagi (Prasetya,
Dalam melakukan proses enkripsi-dekripsi, 2001).
Blowfish men- suatu kunci rahasia yang Tabel 2. menyajikan perbandingan usaha yang
panjangnya bervariasi asalkan tidak lebih dari 448- dilakukan untuk membongkar kunci rahasia
bit. Variasi panjang bit kunci ini akan memperluas algoritma DES 56-bit dan Blowfish dengan
mang kunci algoritma ini, sehingga mempersulit menggunakan kriptoanalisis differensial dan
kerja seorang kriptoanalis yang mencoba exhaustive key search. Kriptoanalisis differensial
melakukan penyerangan jenis exhaustive key pada DES 56-bit merupakan hasil penelitian Biham
search. Usaha yang dilakukan untuk menemukan dan Sharnir (1992) dan pa& Blowfish rnerupakan
kunci rahasia Blowfish dengan exhaustive key hasil penelitian Vaudenay (1996).
Algoritma BEawfish Untuk Penyandian Pssan

Tabel 2. Perbandingan usaha untuk membongkar Tabel 3. Hasil pengukuran kecepatan proses

I,,/
sFY
kunci rahasia algoritma DES 56-bit dun enkripsi
Blon@h

F * I p . r m I Kriptoanalisis
Oi~cnnsial
Exhmutive
Key Search

(~yte) I
ECB
I
CBC ECB
I
8-round 2" chosen-plaintext
(0,016&t)*
2J5operpsi
11 4 1 8 1 18 1 18 1 0 . 4 4 10.44
56bit (* 1142 thn)'*
,6-round 2" chosen-plaintext
(4.46thn)*

* Asumsi ;menggunakan mesin yang mampu menganalisis


1$ chosen-plaintext per detik.
** Asumsi :menggunakan mesin yang mampu mencoba 10d
kunciper detik.

1 Ukuran file sebelum p a d d i n g


1+ U h r a nfile setelah padding
Dari Tabel 2. ini terlihat bahwa waktu untuk
membongkar Blowfish lebih lama dibandingkan
waktu untuk membongkar DES 56-bit, sehingga
dapat disimpulkan bahwa tingkat keamanan
Blowfish lebih baik dibandingkan dengan DES 56-
bit. Hingga saat ini selain exhaustive key search,
belum a& attack lain yang berhasil membongkar Tabel 3. menunjukkan bahwa kecepatan enkripsi
keamanan kunci pa& Blowfish 16-round. Blowfish dengan modus ECB lebih baik
dibandingkan dengan kecepatan enkripsi Blowfish
dengan modus CBC. Hal ini disebabkan oleh
adanya operasi XOR antara input blok plaintext
D. Analisis Hasil Implementasi dengan blok ciphertext pada register feedback,
Irnplementasi algoritma Blowfish ini sehingga waktu penyelesaian CBC lebih lama dari
menggunakan spesifikasi perangkat keras dan pada ECB.
perangkat lunak sebagai berikut : Namun dernikian, operasi XOR ini membuat
pengamanan CBC terhadap pesan lebih baik
Peranakat Keras dibandingkan dengan ECB, karena operasi XOR
1. Prosesor Pentium I1 300 MHz tersebut menimbulkan ketergantungan setiap blok
2. RAM64MB ciphertext dengan blok plaintext-nya dan semua
3. Harddisk 4,3 GB blok plaintext sebelunmya. Blok ciphertext yang
dihasilkan tidak mengimplikasikan secara identik
Perandat Lunak ke blok plaintext-nya, sehingga dapat mernpersulit
1. Sistem operasi Win 98 SE kerja seorang kriptoanalis yang mencoba
2. Bahasa pernrograman Visual Basic 6.0 memetakan suatu ciphertext ke plaintext-nya.
Sedangkan pa& ECB, setiap blok ciphertext yang
dihasilkan mengimplikasikan secara identik ke
Dari hasil implementasi ini dilakukan blok plaintext-nya. Dengan alasan ini, ECB tidak
pengukuran kecepatan proses enkripsi dan dekripsi. baik untuk mengenkripsi pesan yang jumlah
Pengukuran .ini dilakukan sebanyak 10 kali bloknya lebih dari satu atau pun untuk suatu
percobaan dengan menggunakan ukuran input aplikasi yang kuncinya digunakan berulang-ulang
bervariasi. Hasil pengukuran ini disajikan pa& untuk mengenkripsi lebih dari satu pesan berblok-
Tabel 3. dan Tabel 4. tunggal.
-
Majalah llrniah - Ilmu Komputer,Vd. 1. No. 1, September 2003 : 9 19

Tabel 4. Hasil pengukuran kecepatan proses lebih aman dibandingkan Blowfsh dengan
dekripsi modus ECB.
v. BlowJish memiliki tingkat keamanan yang
Ukuran Ukuran waktu (ms) Kecepntan Rata2
File Input * Output ** (Bytdms) lebih baik dibandingkan DES 56-bit. Hingga
(Byte) (Byte) I
ECB CBC ECB 1
CBC saat ini belum a& attack yang mampu
1 8 4 18 1 18 0.44 1 0 . 4 4 mernbongkar keamanan Blowfish yang
lengkap menggunakan 16-round.
vi. Pada kasus terburuk, dengan menggunakan
exhaustive key search kunci Blowfsh dapat
ditemukan dengan melakukan 7,27x10"~
proses dekripsi.
vii. Weak key pada Blowfish disebabkan oleh
adanya collision (Vaudenay, 1996), yaitu
munculnya dua entries identik pa& suatu S-
Box-nya.

B. Saran
* Ukuran file sebelum unpadding
** Ukuran filer setelah unpadding Untuk penelitian selanjutnya, disarankan
hal-ha1 sebagi berikut :
Tabel 4. menunjukkan bahwa kecepatan 1. ~ e n ~ ~ & a kmodus
a n operasi lainnya seperti
dekripsi Blowfish dengan modus ECB lebih baik Cipher FeedBack (CFB) dan Output FeedBack
dibandingkan dengan kecepatan dekripsi Blowfsh (OFB), serta dengan memperhitungkan
dengan modus CBC. Hal ini terjadi karena untuk masalah perambatan yang terjadi pa& modus-
mendapatkan plaintext yang benar, setiap blok rnodus tersebut.
plaintext yang dihasilkan hams di-XOR terlebih 2. Dikombinasikan dengan teknik laiptografi
dahulu dengan blok ciphertext pada register autentikasi pesan.
forward. Dengan demikian untuk melakukan 3. Pemahaman mengenai key space, h g s i f tak-
proses delaipsi yang benar, selain dibutuhkan membalk key-dependent S-Box, jaringan
kunci yang benar, CBC juga membutuhkan blok Feistel, dan jenis-jenis attack yang dapat
ciphertext awal (Initialization Vector, IV) yang membongkar kearnanan algoritma blok sangat
benar juga. diperlukan, sehingga &pat menemukan
kelemahan-kelernahan Blowfish &lam
mengamankan pesan yang disandikannya.
KESIMPULAN DAN SARAN

A. Kesimpulan
Kesimpulan yang didapatkan dari
penelitian ini adalah sebagai berikut : DAFTAR PUSTAKA
i. Blowfish merupakan algoritma blok 64-bit
yang menggunakan kunci dengan panjang Biham, E. & A. Shamir. 1990. Dtferential
bewariasi asalkan tidak lebih dari 448-bit (56- Cryptanalysis of DES-like Cryptosystem, hlm.
byte). 2-21. Di dalam Advances in Cryptology -
ii. Algoritma Blowfish mengkombinasikan fungsi CRYPT0 '90 Proceedings. Springer-Verlag.
f tak-membalik, key-dependent S-Box, dan
jaringan Feistel. Biham, E. & A. Shamir. 1992. Dlferential
iii. Proses enkripsi-dekripsi dengan modus ECB Cryptanalysis of the Full 16-round DES,
dan dengan modus CBC memiliki kasus hlm.487-496. Di &lam Advances in Cryptology
terburuk yang sarna yaitu qn). - CR YPTO'92 Proceedings. Springer-Verlag.
iv. Kecepatan Blowfish dengan modus ECB lebih
baik dibandingkan kecepatan Blowfish dengan Cormen, T.H., C.E. Leiserson & R.L. Rivest.
modus CBC, namun jika ditinjau dari segi 1990. Introduction to Algorithms. The MIT
keamanannya, Blowfish dengan modus CBC Press, Massachusetts-London
Al(pritma Blowfish Untuk Penyandian Pesan

Finch, S. 1995. The Miraculous Bailey-Bonvein- Prasetya, M. 2001.Message Digest 5 (MD5) clan
Ploufe Pi'Algorithm. Mathsoft Engeering & Secure Hash Algorithm I (SHAI) untuk
Education, Inc. Autentikasi Pesan. Skipsi. Jurusan Ilrnu
httD://uauillac.inria.fr/aleo/bsolve/constant~~i~pl Komputer FMIPA IPB, Bogor.
ouffe/ulouffe.html.(25 September 20021.
Schneier, B. 1994a. Applied Cryptography -
Heriyanto, T. 1999. Pengenalan Kriptografi. Protocol, Algorithm, and Source Code in C.
httD:Nwww,tedi-h.com/pa~ers/~ krioto.html. John Willey & Sons, Inc., New York.
[I April 20021.
Schneier, B. 1994b. Description of a New
Ireland, D. 2002. Blowfish : a Visual Basic Variable-Length Key, 64-Bits Block Cipher,
Version. DI Management Services. Sydney- hlm. 191-204. Di dalam Fast Software
Australia. Encryption. Cambridge Security Workshop
h~://www.di.m~.com.au/crvpto.html. Proceedings, Springer-verlag.
[24 Juli 20021
Schneier, B. 1996. Applied Cryptography -
KremlinEncrypt. 2000. Concepts of Protocol, Algorithm, and Source Code in C.
CVP~O~~~P~Y second edition. John Willey & Sons. Inc., New
http:Nwww.kremlinencrypt.comfcrypto.html. York.
[24 Juli 20021.
Vaudenay, S. 1996.On The Weak Key of Blowfish,
Menezes, A. P. van Oorschot. & S. Vanstone. hlm. 27-35. Di &lam Fast Software
1997. Handbook of Applied Cryptography. Encryption, Third International Workshop
CRC Press, New York. (LNCS 1039) Proceedings. Springer-Verlag.
httD:Nwww.lasec.eufl.cW-vaudena~/~ub.html.
(22 Juli 20021.

Anda mungkin juga menyukai