Your SlideShare is downloading. ×
Endhy - Implementasi Algoritma Stream Cipher Rabbit Pada Protokol Secure Socket Layer (SSL)
Endhy - Implementasi Algoritma Stream Cipher Rabbit Pada Protokol Secure Socket Layer (SSL)
Endhy - Implementasi Algoritma Stream Cipher Rabbit Pada Protokol Secure Socket Layer (SSL)
Endhy - Implementasi Algoritma Stream Cipher Rabbit Pada Protokol Secure Socket Layer (SSL)
Endhy - Implementasi Algoritma Stream Cipher Rabbit Pada Protokol Secure Socket Layer (SSL)
Endhy - Implementasi Algoritma Stream Cipher Rabbit Pada Protokol Secure Socket Layer (SSL)
Endhy - Implementasi Algoritma Stream Cipher Rabbit Pada Protokol Secure Socket Layer (SSL)
Endhy - Implementasi Algoritma Stream Cipher Rabbit Pada Protokol Secure Socket Layer (SSL)
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Endhy - Implementasi Algoritma Stream Cipher Rabbit Pada Protokol Secure Socket Layer (SSL)

2,637

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,637
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
113
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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

×