1. Implementasi Algoritma Stream Cipher Rabbit Pada
Protokol Secure Socket Layer (SSL)
Mohamad Endhy Aziz1, Yan Adikusuma2
1
Fakultas Ilmu Komputer, Universitas Indonesia, mohamad.endhy@ui.ac.id, Telp.+62856 92020442
2
Sekolah Tinggi Sandi Negara, yan_adikusuma@lemsaneg.go.id, Telp.+62813 15502332
Abstrak. Secure Socket Layer (SSL) merupakan salah informasi yang bersifat rahasia. Enkripsi merupakan
satu protokol kriptografi yang paling banyak suatu teknik menyamarkan atau mengaburkan suatu
digunakan saat ini. Akan tetapi, dalam penggunaannya pesan sedemikian rupa sehingga isi pesan tersebut
SSL memiliki beberapa permasalahan, salah satunya dapat disembunyikan [13]. Enkripsi dapat diterapkan
dalam hal performa. Walaupun saat ini SSL telah dalam suatu protokol kriptografi yang dikemas dalam
mendukung AES sebagai standar enkripsi, pada suatu aplikasi sehingga kedua belah pihak yang saling
kenyataannya masih banyak kalangan pengembang berhubungan dapat melakukan komunikasi secara
maupun pengguna yang masih menggunakan RC4 aman.
untuk algoritma penyandian datanya (bulk Protokol-protokol jaringan yang digunakan saat ini
encryption). Hal ini dilakukan untuk mengurangi hanya memberikan perlindungan yang terbatas dalam
dampak dari lambatnya performa pada SSL. Namun, hal pengamanan data yang ditransmisikan, bahkan
dari hasil beberapa penelitian yang telah dilakukan, terdapat beberapa protokol jaringan yang mengirimkan
RC4 terbukti memiliki beberapa kelemahan data secara plain. Dalam perkembangan serta
kriptografis. Pada penelitian ini penulis pemanfaatan internet yang sangat signifikan seperti
mengimplementasikan algoritma stream cipher Rabbit saat ini, seperti untuk transaksi elektronik, perbankan,
sebagai alternatif algoritma penyandian data baru bahkan pemerintahan, maka sangat mutlak diperlukan
pada SSL. Algoritma Rabbit tidak hanya memiliki suatu mekanisme perlindungan tambahan untuk
kekuatan kriptografis yang baik namun juga memiliki menjaga kerahasiaan serta integritas data yang
performa yang relatif cukup tinggi. Hasil pengujian ditransmisikan.
menunjukkan bahwa proses transfer data melalui SSL Salah satu protokol kriptografi yang banyak
menggunakan algoritma Rabbit sedikit lebih lambat digunakan saat ini adalah Secure Socket Layer. SSL
dibandingkan dengan RC4 (sekitar 5 % pada file yang merupakan protokol yang dirancang untuk
berukuran 5 MB dan 3,5% pada file berukuran 10 mengamankan komunikasi melalui jaringan TCP/IP.
MB). Akan tetapi, dibandingkan dengan AES-128, Tujuan utama dibuatnya protokol ini adalah untuk
algoritma ini menunjukkan peningkatan kecepatan menghindari akses yang tidak sah atau modifikasi pada
transfer yang cukup signifikan (sekitar 4 % pada file data yang ditransmisikan antara dua endpoint. Pada
berukuran 5 MB dan 20% pada file berukuran 10 MB). awalnya, SSL dikembangkan oleh Netscape Corp.
dengan tujuan untuk mengamankan komunikasi pada
1. Pendahuluan web (melalui web browser). Namun, seiring
perkembangan zaman, berbagai aplikasi lain, seperti
Perkembangan ilmu pengetahuan dan teknologi email, aplikasi transfer data, dsb juga memanfaatkan
yang demikian pesat telah memberikan banyak protokol ini sebagai jalur komunikasi yang dipercaya.
kemudahan bagi manusia dalam melakukan segala Saat ini SSL telah digunakan untuk mengamankan
kegiatannya, termasuk dalam melakukan pertukaran berbagai jenis aplikasi, mulai dari transaksi elektronik,
informasi. Akan tetapi, terdapat pihak-pihak tertentu kesehatan, sampai finansial.
dengan berbagai kepentingan berusaha mengungkap Akan tetapi, SSL memiliki beberapa permasalahan,
pertukaran informasi yang dilakukan oleh pihak salah satunya dalam hal performa [9]. Penelitian
lainnya. Tentu hal ini menimbulkan suatu kerugian menunjukkan web server yang berjalan di atas SSL
apabila informasi yang dipertukarkan merupakan (HTTPS) lebih lambat 3,4 sampai 9 kali dibandingkan
informasi yang bersifat rahasia, misalnya informasi dengan web server reguler [3]. Hal ini tentu berakibat
mengenai account pribadi pada suatu bank. pada berkurangnya produktivitas web server tersebut
Enkripsi dapat digunakan sebagai salah satu teknik dalam melayani penggunanya. Permasalahan ini
dalam mengamankan pertukaran informasi, khususnya terutama disebabkan oleh perhitungan kriptografis
1
2. yang dilakukan pada protokol SSL. Proses perhitungan akses yang tidak sah terhadap data yang
yang paling banyak memakan sumber daya adalah pada ditransmisikan. Protokol SSL saat ini telah memiliki
perhitungan public key. Beberapa penelitian telah beberapa versi. SSL versi 3 (SSLv3) didesain dengan
dilakukan untuk mengatasi permasalahan ini dengan memperhatikan masukan dari kalangan publik serta
menggunakan beberapa metode [6]. Proses perhitungan industri, dan telah dipublikasikan sebagai Internet
lainnya yang cukup memakan sumber daya adalah Draft. Versi SSL terbaru, yaitu Transport Layer
proses enkripsi data (bulk encryption). Walaupun saat Security (TLS) merupakan versi protokol SSL yang
ini SSL telah mendukung AES sebagai standar telah distandarisasi oleh IETF melalui RFC 2246.
enkripsi, namun pada kenyataannya masih banyak Protokol SSL bekerja di bawah lapisan aplikasi
kalangan pengembang maupun pengguna yang masih (application layer) pada protokol TCP/IP. SSL pada
menggunakan RC4 sebagai algoritma penyandian dasarnya merupakan protokol berlapis (layered
datanya. Hal ini dilakukan untuk mengurangi efek dari protocol). SSL Record Protocol, yang merupakan
lambatnya performa SSL. Dilihat dari karakteristiknya, lapisan (layer) paling bawah, berjalan di atas protokol
RC4 yang merupakan satu-satunya algoritma stream transport yang dapat diandalkan (reliable transport
cipher yang diimplementasikan pada SSL (standar protocol) seperti TCP. SSL Record Protocol juga
IETF), memang merupakan algoritma yang memiliki berfungsi mengkapsulasi berbagai protokol pada
performa paling baik dibandingkan dengan algoritma lapisan yang lebih tinggi (higher-level protocol),
lain pada SSL, misalnya AES, DES, 3DES, dll. seperti HyperText Transfer Protocol (HTTP) yang
Namun, dari hasil beberapa penelitian seperti yang menyediakan layanan transfer pada Web. Tiga protokol
terdapat pada [12], RC4 terbukti memiliki beberapa pada lapisan yang lebih tinggi adalah Handshake
kelemahan. Walaupun kelemahan-kelemahan tersebut Protocol, Change Cipher Spec Protocol, dan Alert
hanya bersifat teoretis, namun tetap perlu kita Protocol. Tiga protokol pada lapisan atas ini berfungsi
antisipasi agar tidak terjadi kebocoran dalam mengatur pertukaran informasi yang dilakukan pada
pengiriman informasi rahasia. SSL (SSL exchange). Gambar 1 adalah ilustrasi dari
Oleh karena itu, pada penelitian ini penulis lapisan protokol pada SSL.
berusaha mengimplementasikan suatu algoritma yang
tidak hanya memiliki kekuatan kriptografis yang baik SSL SSL Change Application
SSL
namun juga memiliki performa yang secara umum Handshake Cipher Spec
Alert Protocol
Lay er
Protocol Protocol Protocol
lebih baik dibanding algoritma lainnya [1][2].
Algoritma yang diimplementasikan adalah algoritma SSL Record Protocol
stream cipher Rabbit. Rabbit didesain sebagai
algoritma yang efisien dalam implementasi pada
software. Algoritma Rabbit didesain dan telah TCP
dipelajari secara ekstensif oleh para pakar kriptografi
dari Cryptico A/S dengan memperhatikan berbagai IP
jenis metode kriptanalisa [11]. Algoritma ini juga telah
distandarisasi oleh IETF melalui RFC 4503. Dari hasil Sumber : Rhee, M.Y. 2003. Internet Security: Cryptographic Principles,
Algorithms and Protocols.
pengujian serta analisa yang dilakukan, algoritma
Gambar 1. Ilustrasi lapisan protokol SSL.
Rabbit terbukti kuat secara kriptografis dan resistan
terhadap metode-metode kriptanalisa yang ada [2].
Berdasarkan karakteristik yang dimiliki oleh algoritma SSL Record Protocol menyediakan layanan
Rabbit, maka diharapkan implementasi algoritma ini keamanan dasar bagi protokol-protokol pada lapisan
dapat tetap menjaga performa pada SSL seperti yang yang lebih tinggi, yaitu Handshake Protocol, Change
dimiliki oleh RC4 dengan tidak mengorbankan aspek Cipher Spec Protocol, dan Alert Protocol. SSL Record
keamanan yang tentunya harus lebih diutamakan. Protocol menerima data dari suatu aplikasi, kemudian
menjalankan beberapa tahapan, diantaranya :
fragmentasi data ke dalam beberapa blok, kompresi
2. Protokol Secure Socket Layer (SSL) data (opsional), penambahan MAC, enkripsi data,
Secure Socket Layer (SSL) merupakan salah satu penambahan header, kemudian mengirimkan hasilnya
protokol kriptografi yang paling banyak digunakan saat ke TCP. Sebaliknya, data yang diterima akan
ini. Protokol ini berfungsi menyediakan jalur yang didekripsi, deverifikasi, didekompres, disatukan
aman serta mengotentikasi kedua belah pihak/entitas (reassambled), kemudian hasilnya dikirim kepada
yang berkomunikasi untuk mencegah modifikasi atau aplikasi pada lapisan yang lebih tinggi. Ilustrasi
2
3. operasi pada SSL Record Protocol secara keseluruhan algoritma pada umumnya, algoritma Rabbit tidak
ditunjukkan pada Gambar 2. menggunakan linear feedback shift register ataupun S-
box. Desain ini memiliki beberapa konsekuensi
penting.
Sumber : Boesgard, M. et al. 2003. The Stream Cipher Rabbit.
Sumber : Rhee, M.Y. 2003. Internet Security: Cryptographic Principles,
Algorithms and Protocols.
Gambar 3. Skema Next-state Function pada Rabbit.
Gambar 2. Ilustrasi operasi pada SSL Record Protocol.
Desain algoritma Rabbit sangat kompak. Seluruh
operasi aritmatika yang digunakan pada algoritma ini
3. Stream Cipher Rabbit didukung oleh prosesor modern, sehingga algoritma ini
Algoritma Rabbit dipublikasikan pertama kali pada memiliki kecepatan pemrosesan yang sangat tinggi
Fast Software Encryption Workshop 2003. Algoritma pada berbagai platform. Berbeda dengan desain
ini merupakan algoritma stream cipher yang algoritma stream cipher pada umumnya, algoritma ini
menggunakan kunci (secret key) dengan panjang 128- juga memiliki kecepatan IV serta key setup yang tinggi.
bit dan 64-bit IV sebagai input. Hasil kombinasi Algoritma Rabbit tidak menggunakan S-box atau
internal state-nya menghasilkan output berupa operasi pada GF (2n). Oleh karena itu tidak dibutuhkan
rangkaian bit semi acak (pseudorandom bit) dengan look up table, sehingga ruang memori yang dibutuhkan
panjang 128-bit per blok. Proses enkripsi/dekripsi baik dalam implementasi pada hardware maupun
dilakukan dengan men-XOR-kan rangkaian bit semi software sangat kecil. Tabel 1 merupakan performa
acak tersebut dengan plaintext/ciphertext. Internal (dalam clock cycles atau clock cycles per byte), ukuran
state-nya berjumlah 513 bit dibagi ke dalam delapan kode (code size) dan jumlah memori (dalam byte) yang
32-bit variabel state, delapan 32-bit counter dan satu dibutuhkan masing-masing untuk proses enkripsi, key
counter carry bit. Kedelapan variabel state di-update setup dan IV setup pada prosesor Intel Pentium
oleh fungsi non-linear masing-masing pasangan berdasarkan [1].
variabel state tersebut. Algoritma Rabbit didesain agar
efisien dalam implementasi pada software serta Tabel 1. Performa, ukuran kode dan jumlah memori
mengimbangi ukuran kunci sepanjang 128 bit untuk yang dibutuhkan oleh Rabbit pada prosesor Pentium.
mengenkripsi sampai dengan 264 blok plaintext. Ini
Prosesor Performa Ukuran Kode Memori
berarti bahwa untuk melakukan attack tanpa
mengetahui rangkaian kunci, maka pihak penyerang Pentium III 3,7/278/253 440/617/720 40/36/44
harus menentukan sampai dengan 264 blok output Pentium 4 5,1/480/749 698/516/762 16/36/28
ciphertext atau melakukan exhaustive key search
sebanyak 2128 kombinasi kunci.
Algoritma Rabbit merupakan stream cipher dengan Selain itu, yang perlu dijadikan catatan, pada
desain baru. Desain algoritma ini menggunakan proses prosesor modern jumlah inner state-nya tidak melebihi
pencampuran (mixing) inner state secara non-linear ruang pada register prosesor tersebut, sehingga tidak
antara dua iterasinya. Berbeda dengan desain-desain membutuhkan akses ke memori utama yang kurang
3
4. efisien secara komputasi (membutuhkan waktu dan dimana kombinasi kedua protokol ini membentuk suatu
perhitungan tambahan). protokol yakni HTTPS (HTTP over SSL). Pada
Algoritma Rabbit telah dievaluasi secara ekstensif protokol SSL, ketiga algoritma tersebut digunakan
terhadap seluruh kemungkinan attack yang dapat sebagai bulk encryption algorithm (algoritma
dilakukan, baik stream maupun block cipher penyandian data) dalam SSL Record Protocol. Pada
kriptanalisis. Desain Rabbit yang berbeda membuat SSL Record Protocol inilah seluruh data dari lapisan
jenis attack umum yang dapat dilakukan terhadap aplikasi (application layer) diproses, mulai dari
stream cipher menjadi tidak aplikatif. Baik algebraic pemecahan data menjadi beberapa fragmen,
attack maupun correlation attack tidak dapat penghitungan nilai MAC, enkripsi, sampai dengan
diaplikasikan terhadap Rabbit. Time-Memory-Data pengiriman.
tradeoff juga tidak dapat diaplikasikan terhadap Rabbit Selain itu, pada pengujian ini perlu dilakukan
karena jumlah internal state yang cukup besar, yakni pemisahan antara Record Protocol dengan tahapan
513 bit. Para pendesain algoritma ini yakin bahwa protokol lainnya pada SSL. Penulis menggunakan
untuk melakukan serangan terhadap Rabbit harus program Wireshark Network Analyzer1 untuk melihat
dilakukan berdasarkan suatu metode attack yang sama dan memisahkan tahapan-tahapan protokol tersebut.
sekali baru. Dari hasil pengujian serta analisa, Penulis menggunakan Wireshark Network Analyzer
disimpulkan bahwa algoritma Rabbit resistan terhadap versi 0.99.4, dimana pada versi ini sudah terdapat
metode kriptanalisa yang ada saat ini. dukungan untuk melakukan analisis terhadap paket-
paket jaringan yang dikirimkan menggunakan protokol
4. Metode Pengujian SSL.
Pada bagian ini akan dijabarkan mengenai metode 4.a.Metrik Pengujian
pengujian yang digunakan untuk mengevaluasi hasil
implementasi algoritma Rabbit pada protokol SSL. Penulis membandingkan performa ketiga
Secara umum, pengujian yang dilakukan dititik algoritma (Rabbit, RC4 dan AES-128) dengan
beratkan pada performa algoritma Rabbit dalam menggunakan :
implementasinya pada SSL. 3 ciphersuites yang berbeda, masing-masing
Proses pengujian dilakukan dengan melakukan mewakili algoritma yang diuji, yaitu
perbandingan (benchmarking) antara algoritma Rabbit TLS_RSA_WITH_RABBIT_SHA, TLS_RSA_
dengan algoritma simetrik lain yang terdapat pada WITH_RC4_128_SHA dan TLS_RSA_WITH_
protokol SSL, yakni AES-128 dan RC4. Sebagai AES128_SHA. Pemilihan ciphersuites ini
catatan, penggunaan algoritma AES banyak berdasarkan dukungan ciphersuites pada OpenSSL
direkomendasikan bagi pengguna yang menitik serta untuk kesetaraan dalam pengujian (OpenSSL
beratkan pada faktor keamanan, sedangkan RC4 tidak mendukung ciphersuites RC4 dengan
direkomendasikan bagi mereka yang menitik beratkan algoritma ephemeral DH/DHE sebagai algoritma
pada faktor performa. otentikasinya, sedangkan ciphersuites AES dan
Sebagai acuan awal, penulis melakukan Rabbit tidak mendukung penggunaan algoritma
perbandingan performa ketiga algoritma tersebut secara digest selain SHA).
independen (sebelum/tanpa implementasi pada 5 file dengan ukuran yang berbeda, masing-masing
protokol SSL). Untuk melakukan perbandingan ini, 500 KB, 1 MB, 2 MB, 5 MB dan 10 MB.
penulis menggunakan tool OpenSSL. OpenSSL Perbedaan ukuran file ini untuk melihat sejauh
menyediakan suatu benchmarking suite yang dapat mana performa setiap algoritma berdampak pada
digunakan untuk menguji performa setiap algoritma lamanya waktu transfer tiap-tiap file.
yang terdapat pada OpenSSL. Cara kerja dari
benchmarking suite ini adalah mengukur berapa Setiap file dengan menggunakan setiap algoritma
banyak operasi yang dapat dilakukan oleh setiap diambil sampel sebanyak 30 kali. Pengambilan sampel
algoritma untuk mengenkripsi data dalam jumlah dan sebanyak ini diharapkan sudah mewakili populasi
waktu yang telah ditentukan (3 detik). untuk setiap proses transfer setiap file menggunakan
Untuk menguji performa ketiga algoritma di atas ketiga algoritma yang diuji. Pengujian ini dilakukan
dalam implementasinya pada protokol SSL, penulis pada jaringan ethernet (LAN) dengan kapasitas 100
melakukan serangkaian tahapan pengujian. Protokol MBps dalam kondisi lalu lintas (traffic) jaringan yang
pada lapisan aplikasi (application layer) yang tidak terlalu sibuk, sehingga diasumsikan bahwa
memanfaatkan SSL pada pengujian ini adalah HTTP, 1
Dapat diakses di http://www.wireshark.org
4
5. kondisi jaringan tidak terlalu berpengaruh pada proses
transfer data.
4.b.Platform Pengujian
Untuk perangkat server, penulis menggunakan
Apache Server 1.3 dengan mod_ssl2 yang telah
dikonfigurasi sehingga mendukung penggunaan
algoritma Rabbit. Sedangkan untuk aplikasi client,
penulis menggunakan cURL3. cURL merupakan suatu
aplikasi transfer data yang mendukung penggunaan
beberapa jenis protokol, antara lain HTTP, HTTPS,
FTP, LDAP, dll.
Spesifikasi komputer yang digunakan pada server Gambar 4. Perbandingan performa antara algoritma
adalah PC dengan spesifikasi yang sama dengan Rabbit, RC4 dan AES-128 pada platform Windows.
pengujian kedua, menggunakan sistem operasi Fedora
Core Linux 6. Sedangkan di sisi client, penulis
menggunakan komputer notebook dengan spesifikasi
prosesor Intel Celeron 1,5 GHz dan memori 1 GB.
Sistem operasi yang digunakan adalah OpenSUSE
Linux 10.2. Pada komputer client ini sudah terinstalasi
aplikasi cURL dan Wireshark Network Analyzer yang
digunakan untuk menginisialisasi koneksi dengan
server dan menganalisa (memisahkan) tahapan-tahapan
dalam protokol SSL.
5. Hasil Pengujian dan Analisis
Dari hasil pengujian dan analisis ini akan
didapatkan suatu evaluasi hasil implementasi dan juga Gambar 5. Perbandingan performa antara algoritma
perbandingan antara algoritma yang diimplementasikan Rabbit, RC4 dan AES-128 pada platform Linux (Fedora
Core Linux 6).
(Rabbit) dengan beberapa algoritma lain yang terdapat
pada protokol SSL dilihat dari sudut pandang performa
dan juga keamanannya. Berdasarkan pengujian tersebut, terdapat
perbedaan performa pada kedua lingkungan pengujian.
Sebagai catatan, penulis menggunakan Microsoft
5.a. Performa Algoritma Rabbit dalam Visual C++ 8.0 untuk melakukan kompilasi OpenSSL
Implementasinya pada SSL pada lingkungan Windows, sedangkan pada Linux
Gambar 4 dan 5 merupakan hasil dari pengujian (Fedora Core Linux 6) penulis menggunakan gcc versi
awal untuk mengetahui performa ketiga algoritma yang 4.1.1. Hal ini menunjukkan bahwa penentuan
diuji sebelum/tanpa implementasi di SSL pada dua lingkungan pengujian/platform juga akan berdampak
lingkungan pengujian yang berbeda (Windows dan pada performa yang dihasilkan.
Linux). Kode sumber OpenSSL pada kedua platform Gambar 6 merupakan hasil perbandingan performa
tersebut dikompilasi dengan optimasi untuk prosesor ketiga algoritma (Rabbit, RC4 dan AES-128) dalam
Pentium (x86). implementasinya pada protokol SSL. Berdasarkan
pengujian tersebut, perbedaan waktu transfer yang
cukup signifikan mulai terlihat pada proses transfer file
yang berukuran 10 MB. Sedangkan waktu transfer
untuk file yang berukuran lebih kecil (500 KB, 1 MB,
2 MB dan 5 MB) perbedaannya tidak terlalu signifikan
(hanya berselisih sekitar beberapa milidetik).
2
Dapat diakses di http://www.modssl.org
3
Dapat diakses di http://www.curl.haxx.de
5
6. 1,5 operasi-operasi sederhana (swap dan
054
addition/penambahan). Proses enkripsi hanya
77
1,2
6
063
dilakukan dengan men-XOR rangkaian kunci yang
3 1,
1,25
dihasilkan dengan plaintext.
26
1,0
Lain halnya dengan AES-128, dimana plaintext
1
yang menjadi input pada algoritma ini diproses melalui
beberapa round (putaran), dan tiap-tiap round tersebut
Waktu (detik)
0,75 RC4 terdiri dari beberapa operasi, yaitu substitusi S-Box,
2
8
27
78
0,5 4
Rabbit pergeseran, multiplikasi dan operasi XOR.
06
0,4
0,5
0,5
AES-128 Keseluruhan proses ini tentunya berdampak pada
performa algoritma ini sehingga relatif lebih lambat
9
0,2 6
32
0,2 2
19
dibandingkan dengan algoritma lainnya.
96
3
0,1
0,1 1
0,1 4
15
0,25
08
5
0,0 9
Proses enkripsi pada algoritma Rabbit sedikit lebih
99
61
52
56
0,0
0,0
0,0
rumit dan membutuhkan sumber daya (resource)
0 dibandingkan dengan RC4. Rabbit menggunakan suatu
500 KB 1 MB 2 MB 5 MB 10 MB
fungsi yang bernama g-function (fungsi non-linear),
Jumlah Data
dimana pada fungsi inilah letak kekuatan kriptografis
Gambar 6. Hasil perbandingan performa tiap-tiap utama dari keseluruhan algoritma. g-function ini
algoritma dengan mengukur lama waktu proses transfer
merupakan operasi pemangkatan 32-bit (32-bit
file.
squaring). Walaupun operasi ini relatif cepat dan
Hasil pengujian tersebut menunjukkan bahwa efisien dalam implementasinya pada prosesor modern,
kecepatan proses transfer file dengan algoritma Rabbit operasi inilah yang paling membutuhkan sumber daya
mengalami sedikit penurunan dibandingkan dengan dibandingkan operasi-operasi yang digunakan pada
menggunakan RC4 (sekitar 2,5% pada file yang algoritma lainnya (RC4 dan AES tidak menggunakan
berukuran 10 MB). Akan tetapi, dibandingkan dengan operasi ini, walaupun pada AES terdapat operasi
AES-128, kecepatan proses transfer file menggunakan multiplikasi). Sebagai catatan, fungsi ini digunakan
algoritma Rabbit menunjukkan peningkatan yang dalam setiap proses pada algoritma Rabbit (key setup,
cukup signifikan, khususnya pada file berukuran 10 IV setup dan next-state function). Faktor ini yang
MB. menyebabkan performa yang dimiliki algoritma Rabbit
Salah satu aspek yang paling diperhatikan pada tidak sebaik yang dimiliki RC4.
pemilihan algoritma dalam implementasinya pada Dalam implementasinya pada protokol SSL, dalam
suatu sistem adalah performa (kecepatan) algoritma hal ini untuk mengamankan komunikasi (transfer data)
tersebut dalam melakukan proses enkripsi. Algoritma pada HTTP, algoritma Rabbit juga menunjukkan
Rabbit, yang merupakan jenis algoritma stream cipher, performa yang relatif lebih baik jika dibandingkan
didesain sebagai algoritma yang memiliki performa dengan AES-128. Berdasarkan pengujian, dalam
tinggi, terutama dalam implementasinya pada software. implementasinya, RC4 tetap merupakan algoritma
Hasil pengujian menggunakan benchmarking suite yang memiliki performa paling baik, disusul oleh
OpenSSL yang diilustrasikan pada Gambar 5 dan 6 Rabbit dan terakhir AES-128. Pada proses transfer data
memberikan gambaran mengenai performa algoritma yang berukuran 500 KB, 1 MB, 2 MB dan 5 MB,
Rabbit secara umum. Walaupun terdapat perbedaan perbedaan performa antara ketiga algoritma belum
hasil antara kedua lingkungan pengujian, akan tetapi terlalu terlihat. Perbedaan performa ini cukup terlihat
secara umum hasil pengujian tersebut menunjukkan pada proses transfer file yang berukuran 10 MB. Pada
bahwa algoritma Rabbit memiliki performa yang relatif file dengan ukuran ini, proses transfer menggunakan
lebih baik dibandingkan dengan AES-128 (mencapai Rabbit lebih cepat mencapai 20% dibandingkan dengan
59% pada lingkungan Windows dan 43% pada Linux). AES-128, walaupun lebih lambat sekitar 3,5%
Berdasarkan pengujian yang sama, RC4 dibandingkan dengan RC4.
merupakan algoritma yang memiliki performa paling Berdasarkan hasil tersebut, penggunaan algoritma
baik, dengan throughput mencapai 237,606 MB/s. Hal Rabbit akan lebih optimal untuk proses transfer data
ini dikarenakan proses enkripsi RC4 secara yang berjumlah cukup besar (≥10 MB). Sedangkan
keseluruhan merupakan yang paling sederhana untuk proses transfer data yang jumlahnya relatif kecil,
dibandingkan dengan Rabbit dan AES-128. Dalam halaman web misalnya, pemilihan algoritma simetrik
menghasilkan rangkaian kunci (keystream), RC4 hanya tidak memiliki pengaruh yang signifikan terhadap
membutuhkan beberapa langkah dengan menggunakan kecepatan proses transfer data (berdasarkan pengujian,
6
7. transfer data pada file berukuran 500 KB tidak dibandingkan dengan tingkat keamanan/kekuatan
menunjukkan perbedaan yang signifikan antara tiap- kriptografis yang dimiliki oleh Rabbit.
tiap algoritma yang digunakan).
Selain itu, berdasarkan pengujian awal (lihat 6. Kesimpulan
gambar 5 dan 6), hasil yang berbeda dalam
implementasinya pada kedua platform yang berbeda Walaupun proses transfer data melalui SSL
menunjukkan bahwa performa setiap algoritma, menggunakan algoritma Rabbit menunjukkan hasil
termasuk Rabbit, juga bergantung pada platform yang yang lebih lambat dibandingkan dengan RC4 (sekitar
menjalankannya. Berkaitan dengan hal ini, diperlukan 3,5% pada file berukuran 10 MB), algoritma ini
suatu penelitian lebih lanjut mengenai pengaruh suatu menunjukkan peningkatan kecepatan transfer yang
platform terhadap proses/operasi pada algoritma cukup signifikan dibandingkan dengan AES-128
enkripsi. Akan tetapi, yang perlu digaris bawahi adalah (sekitar 20% pada file berukuran 10 MB). Hal ini
bahwa penentuan suatu platform juga akan berdampak memperlihatkan bahwa perbedaan performa antara
pada performa hasil implementasi suatu algoritma. Rabbit dengan RC4 pada SSL tidak terlalu signifikan
dibandingkan dengan tingkat keamanan/kekuatan
5.b.Analisis Penggunaan Algoritma Rabbit kriptografis yang dimiliki oleh Rabbit.
pada SSL Ditinjau dari Faktor Keamanan
Referensi
Faktor keamanan adalah hal paling utama dalam
pemilihan suatu algoritma dalam implementasinya [1] Boesgard, M., Vesterager M., Christensen T. &
pada suatu sistem. Algoritma Rabbit tidak hanya Zenner, E. 2003. The Stream Cipher Rabbit,
memiliki performa yang tinggi dalam implementasinya http://www.ecrypt.eu.org/stream/p3ciphers/
pada software, namun juga memiliki kekuatan rabbit/rabbit_p3.pdf.
kriptografis yang sangat baik dan telah melalui [2] Boesgard, M., Pedersen, T., Vesterager M., &
berbagai metode kriptanalisa. Zenner E. 2004. Proc. SASC 2004 : The Rabbit
Salah satu nilai tambah yang dimiliki oleh Rabbit Stream Cipher - Design and Security Analysis,
adalah skema IV (IV scheme) yang digunakan pada
http://www.cryptico.com/DWSDownload.asp?
proses enkripsi. Dalam setiap proses enkripsi, selain
File=Files/Filer/ SASC_Rabbit.pdf.
menggunakan kunci sepanjang 128 bit sebagai input,
Rabbit juga menggunakan IV dengan panjang 64 bit. [4] Coarfa, C., Druschel, P. & Wallach, D.S. 2002.
Penggunaan IV akan menghasilkan sampai dengan 264 Performance Analysis of TLS Web Servers,
rangkaian kunci yang berbeda walaupun menggunakan http://www.isoc.org/isoc/conferences/ndss/02/
kunci yang sama. Selain itu, penggunaan IV juga akan proceedings/papers/coarfa.pdf.
menambah kompleksitas dalam kriptanalisa karena [5] Doroshenko, B. & Ryabko, B. The Experimental
adanya mekanisme re-keying, sehingga akan Distinguishing Attack On RC4.
mempersulit rekonstruksi kunci input yang digunakan.
http://eprint.iacr.org/2006/070.pdf.
Hal inilah yang menjadi nilai tambah Rabbit
dibandingkan dengan RC4 sebagai sesama jenis [6] Jensen, Jens G. 2006. Enhancing SSL
algoritma stream cipher. Sebagai catatan, nilai IV yang Performance, http://www.gridpp.ac.uk/papers/
dihasilkan dari proses pertukaran kunci pada fase SSL chep06_jensen.pdf.
Handshake Protocol tidak dapat dimanfaatkan oleh [7] Gupta, V., Stebila, D., Fung, S., Shantz, S.C.,
algoritma RC4 karena algoritma ini tidak mendukung Gura, N. & Eberle, H. 2004. Speeding Up
penggunaan IV, sehingga nilai kerahasiaan dari setiap Secure Web Transaction Using Elliptic Curve
pembangkitan rangkaian kunci hanya bergantung pada
Cryptography, http://research.sun.com/projects/
kunci input yang digunakan. Walaupun saat ini belum
crypto/ecc-ssl-ndss2004.pdf.
terdapat penelitian yang menunjukkan kelemahan
terhadap penggunaan RC4 pada SSL, akan tetapi [8] Hare, Chris. 2004. Dalam Tipton, H.F. &
sebagai insan sandi kita tetap perlu mewaspadai Krause, Micki (Eds.), Information Security
terhadap segala kemungkinan bentuk kelemahan Management Handbook - 5th Edition (hlm.
ataupun serangan yang mungkin terjadi. Berdasarkan 203-215). Auerbach Publications.
pengujian, perbedaan performa antara algoritma Rabbit [9] Rescorla, E. 2001. SSL and TLS: Building and
dengan RC4 dalam implementasinya pada SSL Design Secure Systems. New Jersey: Addison
menunjukkan hasil yang tidak terlalu signifikan
Wesley.
7
8. [10]Rhee, M.Y. 2003. Internet Security:
Cryptographic Principles, Algorithms and
Protocols. West Sussex: John Wiley & Sons
Ltd.
[11]Rijmen, V. 2003. Analysis of Rabbit,
http://www.cryptico.com/DWSDownload.asp?
File=Files/filer/ security_report.pdf.
[12]Ross, A. 1995. A Class of Weak Keys in
RC4 Stream Cipher,
http://marcel.wanda.ch/Archive/WeakKeys-
report.pdf
[13]Schneier, B. 1996. Applied Cryptography:
Protocols, Algorithms, and Source Code in C -
2nd Edition. New York: John Wiley & Sons, Inc.
[14]Viega, J., Meisser, M. & Chandra, P. 2002.
Network Security with OpenSSL. California:
O’Reilly & Associates, Inc.
[15]http://www.openssl.org.
Mohamad Endhy Aziz adalah seorang penggiat
keamanan informasi. Saat ini ia sedang menempuh
kembali pendidikan sarjana di Fakultas Ilmu Komputer
Indonesia setelah sebelumnya menamatkan gelar yang
sama di Sekolah Tinggi Sandi Negara. Saat ini ia bekerja
di salah satu lembaga pemerintah yang bergerak di bidang
keamanan informasi.
Yan Adikusuma adalah adalah seorang penggiat
keamanan informasi. Ia merupakan salah satu staf
pengajar di Sekolah Tinggi Sandi Negara. Setelah
menamatkan pendidikan sarjana di Universitas Budi
Luhur, ia melanjutkan studi dan memperoleh gelar Master
of Engineering dari Nara Institute of Science and
Technology (NAIST), Jepang.
8