VISUAL STUDIO ALGORITMA RC4 CHIPPER
Abstrak
Sistem kriptografi yaitu suatu fasilitas untuk mengkonversikan plaintext ke ciphertext atau
menkonversikan chiperteks ke plainteks. Secara umum dalam proses enkripsi dan dekripsi dikenal dua macam cipher berdasarkan cara kerja penyandiannya, yaitu Stream Cipher dan block chiper. Stream cipher adalah suatu sistem dimana proses enkripsi dan dekripsinya dengan cara bit per bit. Sedangkan Sistem block cipher mengkodekan data dengan cara memebagi plaintext menjadi per blok dengan ukuran yang sama dan tetap. Salah satu jenis stream chiper adalah RC4. RC4 stream cipher yang merupakan salah satu jenis stream cipher kriptografi yang didesain oleh Ron Rivest di laboratorium RSA ( RSA Data Security inc ) pada tahun 1987. RC4 sendiri merupakan ini merupakan teknik enkripsi yang dapat dijalankan dengan panjang kunci yang variabel dan beroperasi dengan orientasi byte.
Kemanan dan kerahasian merupakan aspek penting dari suatu pesan, data maupun informasi baik berupa data teks, gambar maupun video. Salah satu cara untuk melindungi data citra digital tersebut dengan cara dekripsi dan enkripsi. RC4 merupakan salah satu algoritma kriptografi yang terkenal dengan kecepatannya dan sederhana sehingga dapat diimplementasikan baik pada perangkat keras maupun perangkat lunak dan digunakan sebagai standar protokol keamanan pengiriman data. Berdasarkan latarbelakang tersebut maka pada penelitian ini dilakukan pengujian untuk mengetahui kemampuan maksimal dari algoritma RC4 yang ditinjau dari waktu pemrosesan baik pada enkripsi maupun dekripsi citra. Hasil pengujian meunjukkan waktu tercepat diperoleh dari citra berformat JPEG baik pada enkripsi maupun dekripsi citra untuk citra berukuran 256x256 pixel maupun 512x512 pixel
Visual Studio merupakan bahasa peprograman yang umum digunakan untuk membuat aplikasi-aplikasi kasir ataupun keuangan. Tetapi tidak menutup kemungkinan Visual Studio digunakan untuk membuat aplikasi lain seperti permainan hingga untuk
membuat virus.
Kriptografi
Kriptografi pada awalnya dijabarkan sebagai ilmu yang mempelajari bagaimana menyembunyikan pesan. Namun pada pengertian modern kriptografi adalah ilmu yang berdasarkan pada teknik matematika untuk berurusan dengan keamanan informasi seperti kerahasiaan, keutuhan data dan
otentikasi entitas. Jadi pengertian kriptografi modern adalah tidak saja berurusan hanya dengan menyembunyikan namun lebih pada sekumpulan teknik yang menyediakan keamanan informasi
Berikut ini adalah rangkuman beberapa mekanisme yang berkembang peda kriptografi modern:
1. Fungsi Hash
Fungsi hash adalah fungsi yang melakukan pemetaan pesan dengan panjang sembarang ke sebuah teks khusus yang disebut massage digest dengan panjang tetap. Fungsi 4 Jurnal ilmiah Penerapan Algoritma RC4 Untuk Keamanan Data, hash umumnya dipakai sebagai nilai uji (check value) pada mekanisme keutuhan data.
2. Penyadian dengan kunci simetrik
(symmetric key encipherment). Penyandian dengan kunci simetrik adalah penyandian yang kunci enkripsi dan kunci deskripsi bernilai sama. Kunci pada penyandian simetrik yang di asumsikan bersifat rahasia hanya pihak yang melalukan enkripsi dan dekripsi yang mengetahui nilainya. Oleh karena itu penyandian dengan kunci simetrik disebut juga penyandin dengan kunci rahasia secret key encipherment.
3. Penyandian dengan kunci asimetrik
(Asymmetric key encipherment). Penyandian dengan kunci asimetrik atau sering juga disebut dengan penyandian kunci publik (publik key) adalah penyandian dengan kunci enkripsi dan dekripsi berbeda nilai. Kunci enkripsi yang juga disebut dengan kunci publik(publik key) bersifat terbuka. Sedangkan, kunci dekripsi yang juga disebut kunci privat (private key) bersifat tertutup atau rahasia.Kriptografi adalah ilmu yang berguna untuk mengacak data sedemikian rupa, sehingga tidak bisa di baca oleh pihak ketiga. Tentu saja data yang diacak harus bisa dikembalikan kebentuk oleh pihak yang berwenang. Data diacak biasanya disebut teks asli (Plain teks). Data diacak menggunakan kunci enkripsi (Encription key). Proses pengacakan di sebut enkripsi (Encryption). Plainteks yang diacak disebut cipher tekt. Kemudian proses untuk mengembalikan chiper tekt ke plain tekt deisebut dekripsi (Decryption). Kunci yang digunakan pada deskripsi disebut kunci dekripsi (Decryption key). Pada praktiknya, selain pihak yang berwenang ada pihak ketiga yang selalu berusaha unuk mengembalikan cipher text ke plain text atau memecahkan kunci deskripsi. Usaha dari pihak ketiga ini disebut kriptonalisis (cryptanalysis).
Cryptography adalah
suatu ilmu atau pun seni mengamankan pesan, dan dilakukan oleh cryptographer. Sedagkan Cryptanalysis adalah suatu ilmu dan seni membuka (breaking) chipertex dan dan orang
melakukan disebut Cryptanalyst.
Enkripsi dan Dekripsi RC4
Salah satu hal yang sangat penting dalam komunikasi menggunakan komputer untuk menjamin kerahasiaan data adalah dengan enkripsi. Enkripsi adalah sebuah proses yang melakukan perubahan sebuah kode dari yang bisa dimengerti menjadi sebuah kode yang tidak bisa dimengerti (tidak terbaca) Enkripsi dapat diartikan sebagai kode atau cipher. Sebuah sistem pengkodean menggunakan suatu tabel atau kamus yang telah didefinisikan untuk mengganti kata dari informasi atau yang merupakan bagian dari informasi yang dikirim. Sebuah cipher menggunakan suatu algoritma
yang dapat mengkodekan semua aliran data (stream) bit dari sebuah pesan menjadi cryptogram yang tidak dimengerti(unnitelligible). Dekripsi merupakan algoritma atau cara yang dapat digunakan untuk membaca informasi yang telah dienkripsi untuk kembali dapat dibaca. Dengan kata lain dekripsi merupakan proses membalikkan hasil yang diberikan dari proses enkripsi ke dalam bentuk
awal sebelum dienkrip. Ada beberapa elemen dari enkripsi yang akandijabarkan di bawah ini:
a. Algoritma dari Enkripsi dan Dekripsi
Algoritma dari enkripsi adalah fungsi-fungsi yang digunakan untuk melakukan fungsi enkripsi dan dekripsi. Algoritma yang digunakan menentukan keakuratan dari enkripsi, dan ini biasanya dibuktikan dengan basis matematika. Berdasarkan cara memproses teks (plaintext), cipher dapat dikategorikan menjadi dua jenis : block cipher dan stream cipher. Block cipher bekerja dengan memproses data secara blok, dimana beberapa karakter digabungkan menjadi satu blok. Setiap proses satu blok menghasilkan keluaran satu blok juga. Sementara itu stream cipher bekerja memproses masukan (karakter atau data) secara terus menerus dan menghasilkan data pada saat yang bersamaan.
b. Kunci yang digunakan dan panjang kunci
Kekuatan dari penyandian bergantung kepada kunci yang digunakan. Untuk itu, kunci yang lemah tersebut tidak boleh digunakan. Selain itu, panjangnya kunci yang biasanya dalam ukuran bit, juga menentukan kekuatan dari enkripsi. Kunci yang lebih panjang biasanya lebih aman dari kunci yang pendek. Jadienkripsi dengan menggunakan kunci 128-bit lebih sukar dipecahkan dengan algoritma
enkripsi yang sama tetapi dengan kunci 56-bit.Semakin panjang sebuah kunci, semakin besar
keyspace yang harus dijalani untuk mencari kunci dengan cara brute force attack (cobacoba) karena keyspace yang harus dilihat merupakan pangkat dari bilangan 2. Jadi kunci128 bit memiliki keyspace 2128, sedangkan kunci 56-bit memiliki keyspace 256, artinya semakin lama kunci baru bisa diketahui. Model-model Enkripsi beserta algoritma yang akan dipakai untuk setiap enkripsi ada 2 hal yang penting yang akan dijabarkan, yaitu enkripsi dengan kunci pribadi dan enkripsi dengan kunci publik
a. Enkripsi dengan kunci pribadi
Enkripsi dapat dilalukan jika sipengirim dan si penerima telah sepakat untuk menggunakan metode
enkripsi atau kunci enkripsi tertentu. Metode enkripsi kunci yang harus dijaga kete supaya tidak ada pihak luar yang mengetahuinya.
b. Enkripsi dengan kunci publik
Enkripsi ini mempunyai banyak kelebihan, salah satunya adalah tiap orang hanya perlu memiliki satu setkunci, tanpa peduli berapa banyak orang yang akan diajak berkomunikasi.
Permasalahan RC4 Stream Chiper
Permasalahan metode RC4 Stream Cipher ini adalah sebagai berikut:
a. Terlalu tingginya kemungkinan
terjadi S-Box yang sama karena nilai pseudorandom yang sama seringkali dibangkitkan berulang, hal ini terjadi karena kunci user diulang-ulang untuk mengisi 256 bytes array. Meskipun metode ini memungkinkan penggunaan variabel yang panjangnya dapat mencapai 256 karakter/byte namun pada kenyataannya jarang sekali ada yang menggunakan kunci sepanjang itu, selain karena sulit mencari kombinasinya juga sulit untuk mengingatnya. Sehingga jika kunci yang digunakan sebanyak 8 byte misalnya, maka kunci ini akan diulang sebanyak 32 kali untuk mengisi key byte array sampai
penuh.
b. Enkripsi RC4 adalah XOR antara
data bytes dan pseudorandom byte stream yang dihasilkan dari kunci, maka penyerang akan mungkin untuk menentukan beberapa byte pesan orisinal dengan meng-XOR dua set cipher byte, bila beberapa byte plaintext diketahui (atau mudah ditebak). Diasumsikan A berhasil menyadap dua buah message berbeda yang dienkripsi menggunakan algoritma stream cipher dengan menggunakan kunci yang sama. A kemudian meng-XOR-kan kedua ciphertext yang berhasil disadapnya untuk menghilangkan pengaruh rangkaian kunci. Jika A berhasil mengetahui plaintext dari salah satu message terenkripsi tersebut maka A akan dengan mudah menemukan plaintext message yang lain tanpa mengetahui rangkaian kuncinya.
Pemecahan Masalah
Untuk mengatasi permasalahan di atas yang terdapat pada stream chipper RC4 maka ada beberapa yang dapat dilakukan yaitu:
RC4 Stream Cipher
a. Gunakanlah kunci yang panjang
(minimal panjang kunci • 3 karakter dan maksimal • 255 karakter) agar kemungkinan kunci dimasukkan berulang dalam key byte array semakin kecil dan gunakan kombinasi yang berlainan.
b. Usahakan untuk tidak menggunakan
kunci yang sama untuk mengenkripsi file yang berbeda.
c. Jika kita akan menggunakan kunci
yang sama untuk setiap kali mengenkripsi file, maka diperlukan Initialization Vector ( IV ) pada secret key. Jika IV yang digunakan untuk setiap kali proses enkripsi dijalankan tidak pernah sama maka akan dihasilkan ciphertext yang berbeda meskipun dienkrip plaintext yang sama.
d. Mengacak (mengubah susunan)
plaintext sebelum diubah ke dalam cipher, sehingga jika seorang pengganggu memperoleh 1 byte data dari plaintext maka ia tidak dapat memperoleh data yang lainnya dengan cara meng- XOR-kan dua buah ciphertext dan byte data yang ia ketahui.
e. Mengubah metode pengisian key ke
dalam key array. Caranya adalah key cukup diisikan sekali dalam array kemudian sisa variabel array key yang lainnya akan diisi dengan nilai yang dibangkitkan secara.
Pengembangan RC4 Stream Cipher
Pengembangan algoritma dari RC4 Stream cipher di sini akan dilakukan dengan cara membangkitkan nilai random untuk pengisian key byte array sehingga pengisian key ke dalam array tidak berulang dan dalam penerapannya akan dipadukan dengan teknik dasar enkripsi blocking untuk mengacak
susunan plainteks sebelum diubah ke dalam ciphertext.
Proses enkripsi terdiri atas tahapan, antara lain :
1) Random Number Generator
Akan diambil sebuah nilai yang akan dijadikan “seed”. Kemudian dibangkitkan nilai random berdasarkan nilai “seed” ini.
Algoritmanya adalah sebagai berikut :
a) Kerjakan fungsi Rnd -1
b) Kerjakan fungsi Randomize dengan nilai seed yang diambil.
2) Inisialisasi S-Box
Pada tahapan ini, S-Box akan diisi dengan nilai sesuai indeksnya untuk mendapatkan S- RC4 Stream CipherBox awal. Algoritmanya adalah sebagai berikut :
a) Untuk i = 0 sampai i = 255 lakukan
b) Isikan S ke i dengan nilai i
c) Tambahkan i dengan 1 , kembali ke 1.
RC4 stream cipher yang merupakan salah satu jenis teknik stream cipher kriptografi yang dapat dijalankan dengan panjang kunci yang variabel dan beroperasi dengan orientasi byte. Seperti halnya teknik-teknik yang lain, RC4 mempunyai beberapa kelemahan yaitu Terlalu tingginya kemungkinan terjadi S-Box yang sama karena nilai pseudorandom yang sama seringkali dibangkitkan berulang. Untuk mengatasi permasalahan dengan menggunakan kunci yang panjang, Usahakan untuk tidak menggunakan kunci yang sama untuk mengenkripsi file yang berbeda Mengacak (mengubah susunan) plaintext sebelum diubah ke dalam cipher, dan lainlain. Selain itu juga dilakukan Pengembangan algoritma dari RC4 Stream cipher dengan cara membangkitkan nilai random untuk
pengisian key byte array.
Post a Comment for "VISUAL STUDIO ALGORITMA RC4 CHIPPER"