Sugi
Sugi
*) 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.
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
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)
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)*
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.