Anda di halaman 1dari 5

Nama : Guntari Fitriawati

Kelas : TT - 4A
Matkul : Komunikasi Data


ALGORITMA RC4

Pengertian Kriptografi

Kriptografi adalah ilmu untuk mengacak pesan sedemikian rupa sehingga tidak bisa
dibaca oleh pihak ketiga atau yang tidak diberi otorisasi. Pesan sendiri dapat diartikan sebagai
informasi yang berharga, sehingga dibutuhkan proses untuk menjaga kerahasiaan informasi
tersebut. Tentu saja pesan yang diacak dalam bentuk kriptografis ini harus bisa dikembalikan ke
bentuk semula oleh pihak yang berwenang. Dasar dari kriptografis ini sendiri adalah untuk
menjaga kerahasiaan. Di dalam kriptografi pesan yang ingin diacak bisaanya disebut Plain Text.
Pesan diacak dengan menggunakan Kunci Enkripsi (Encryption Key) sementara proses
pengacakannya disebut Enkripsi (Encryption). Plain Text yang telah diacak disebut Cipher Text.
Setelah pesan dikirim, kemudian akan diproses untuk dikembalikan lagi menjadi plain teks.
Proses untuk mengembalikan Cipher Text ke Plain Text ini disebut Dekripsi (Decryption). Kunci
yang digunakan pada tahap Dekripsi disebut Kunci Dekripsi (Decryption Key).

Aspek-Aspek Keamanan Kriptografi

Dalam perkembangannya, teknik kriptografi tidak hanya digunakan semata-mata untuk
menjaga kerahasiaan saja. Aspek yang kemudian muncul seiring dengan semakin kompleksnya
masalah yang dihadapi ketika dilakukan pengiriman pesan adalah:

1. Autentikasi (Authentication).
Proses untuk menjamin keaslian suatu pesan, sehingga pihak yang menerima pesan dapat
memastikan keaslian pesan tersebut datang dari orang yang dimintai informasi. Dengan kata
lain informasi tersebut benar-benar datang dari orang yang dikehendaki.

2. Integritas (Integrity).
Proses untuk menjaga agar sebuah pesan tidak diubah-ubah sewaktu dikirim atau disimpan.
Perubahan pesan saat dilakukan pengiriman tentu membawa dampak yang tidak kecil,
terutama ketika pesan tersebut nantinya digunakan sebagai bahan pengambil keputusan. Oleh
karena itu, kriptografi juga harus membuat pesan asli tidak dapat diubah saat dikirim atau
disimpan.


3. Penghindaran Penolakan (Non-repuditation).
Proses untuk menjaga bukti-bukti bahwa suatu pesan berasal dari seseorang. Sehingga pihak
yang mengirim tidak bisa menyangkal bahwa pesan tersebut berasal dari pihak tersebut.

4. Kerahasiaan (Confidentiality).
Kerahasiaan adalah proses penyembunyian pesan dari orang-orang yang tidak punya otoritas
sehingga pesan penting hanya akan dibaca oleh orang yang dituju.


Macam-Macam Algoritma Kriptografi
Berdasarkan dari kunci yang digunakan algoritma kriptografi dibagi menjadi dua, yaitu
Algoritma Simetri dan Algoritma Assimetri.

Algoritma Simetri
Algoritma Simetri menggunakan satu kunci untuk proses enkripsi dan dekripsinya.
Keamanan dari pesan yang menggunakan altoritma ini tergantung pada kunci, jika kunci
tersebut diketahui orang lain maka orang tersebut dapat melakukan enkripsi dan dekripsi
terhadap pesan tersebut.
Algoritma kriptografi yang menggunakan kunci simetri adalah, DES (Data Encryption
Standard), RC2, RC4, RC5, RC6, IDEA (International Data Encryption Algorithm), AES (Advanced
Encryption Standard), OTP (One Time Pad), A5 dan lain sebagainya.

Algoritma Assimetri

Algoritma Assimetri menggunakan dua kunci berbeda untuk proses enkripsi dan
dekripsinya. Kunci umum (public key), kunci yang semua orang boleh tahu. Kunci umum
digunakan untuk proses enkripsi. Kunci pribadi (private key), kunci yang dirahasiakan, hanya
satu orang yang boleh tahu. Kunci pribadi digunakan untuk proses dekripsi. Kunci-kunci
tersebut saling berhubungan satu dengan yang lainnya. Algoritma assimetris lebih aman dari
algoritma simetris. Algoritma kriptografi yang menggunakan algoritma assimetris adalah, DSA
(Digital Signature Algorithm), RSA (Rivest-Shamir-Adleman), DH (Diffie-Hellman), ECC (Elliptic
Curve Cryptography) dan lain sebagainya

RSA Coding
Sandi RSA merupakan algoritma kriptografi kunci public (asimetris). Ditemukan pertama kali
pada tahun 1977 oleh Ron Rivest, Adi Shamir, dan Len Adleman. Nama RSA sendiri diambil dari
ketiga penemunya tersebut. Sebagai algoritma kunci publik, RSA mempunyai dua kunci, yaitu
kunci publik dan kunci rahasia. RSA mendasarkan proses enkripsi dan dekripsinya pada konsep
bilangan prima dan aritmetika modulo. Baik kunci enkripsi maupun dekripsi keduanya
merupakan bilangan bulat. Kunci enkripsi tidak dirahasiakan dan diberikan kepada umum
(sehingga disebut dengan kunci publik), namun kunci untuk dekripsi bersifat rahasia (kunci
privat). Untuk menemukan kunci dekripsi, dilakukan dengan memfaktorkan suatu bilangan
bulat menjadi faktor-faktor primanya. Kenyataannya, memfaktorkan bilangan bulat menjadi
faktor primanya bukanlah pekerjaan yang mudah. Karena belum ditemukan algoritma yang
efisien untuk melakukan pemfaktoran. Cara yang bisa digunakan dalam pemfaktoran adalah
dengan menggunakan pohon faktor. Jika semakin besar bilangan yang akan difaktorkan, maka
semakin lama waktu yang dibutuhkan. Jadi semakin besar bilangan yang difaktorkan, semakin
sulit pemfaktorannya, semakin kuat pula algoritma RSA.




Sejarah Algoritma RC4

Algoritma kriptografi Rivest Code 4 (RC4) merupakan salah satu algoritma kunci simetris
dibuat oleh RSA Data Security Inc (RSADSI) yang berbentuk stream chipper. Algoritma ini
ditemukan pada tahun 1987 oleh Ronald Rivest dan menjadi simbol keamanan RSA(merupakan
singkatan dari tiga nama penemu: Rivest Shamir Adleman).

RC4 merupakan enkripsi stream simetrik proprietary yang dibuat oleh RSA Data Security
Inc (RSADSI). Penyebarannya diawali dari sebuah source code yang diyakini sebagai RC4 dan
dipublikasikan secara 'anonymously' pada tahun 1994. Algoritma yang dipublikasikan ini sangat
identik dengan implementasi RC4 pada produk resmi. RC4 digunakan secara luas pada
beberapa aplikasi dan umumnya dinyatakan sangat aman. Sampai saat ini diketahui tidak ada
yang dapat memecahkan/membongkarnya, hanya saja versi ekspor 40 bitnya dapat dibongkar
dengan cara "brute force" (mencoba semua kunci yang mungkin). RC4 tidak dipatenkan oleh
RSADSI, hanya saja tidak diperdagangkan secara bebas (trade secret). RC4 adalah salah satu
bentuk stream cipher yang banyak digunakan pada protokol-protokol enkripsi, antara lain WEP,
WPA, dan SSL/TSL. RC4 merupakan salah satu jenis stream cipher, yaitu memproses unit atau
input data, pesan atau informasi pada satu saat. Unit atau data pada umumnya
sebuah byte atau bahkan kadang kadang bit (byte dalam hal RC4). Dengan cara ini enkripsi atau
dekripsi dapat dilaksanakan pada panjang yang variabel. Algoritma ini tidak harus menunggu
sejumlah input data, pesan atau informasi tertentu sebelum diproses, atau menambahkan byte
tambahan untuk mengenkrip. Contoh stream cipheradalah RC4, Seal, A5, Oryx, dan lain-lain.
Tipe lainnya adalah block cipher yang memproses sekaligus sejumlah tertentu data (biasanya 64
bit atau 128 bit blok), contohnya : Blowfish, DES, Gost, Idea, RC5, Safer, Square, Twofish, RC6,
Loki97, dan lain-lain.

Deskripsi Kerja Algoritma RC4

Algoritma RC4 menggunakan dua buah S-Box yaitu array sepanjang 256 yang berisi
permutasi dari bilangan 0 samapi 255, dan S-Box kedua yang berisi permutasi merupakan fungsi
dari kunci dengan panjang yang variable. RC4 membangkitkan aliran bit pseudorandom
(keystream). Seperti halnya stream cipher, RC4 dapat digunakan untuk enkripsi dengan
menggabungkan plain text menggunakan XOR, deskripsi dilakukan dengan cara yang sama
(karena eksklusif-atau adalah operasi simetris). Mirip dengan cipher Vernam kecuali
bahwa bit pseudorandom yang dihasilkan, bukan aliran disiapkan, yang digunakan Untuk
menghasilkan keystream, cipher menggunakan suatukeadaan internal rahasia yang terdiri dari
dua bagian:

1. Sebuah permutasi dari semua 256 byte mungkin (dilambangkan S dibawah).
2. Dua 8-bit indeks-pointer (dilambangkan "i" dan "j").

Permutasi diinisialisasi dengan kunci panjang variable biasanya antara 40 dan 256 bit
mnggunakan algoritma key-scheduling (KSA). Selanjutnya aliran bit yang dihasilkan dengan
menggunaan algoritma pseudo-acak generasi (PRGA).
Lebih spesifiknya, RC4 beroperasi dengan langkah-langkah sebagai berikut :
1. Melakukan inisialisasi nilai S
Cara kerja algoritma RC4 yaitu inisialisasi SBox pertama, S[0],S[1],...,S[255], dengan
bilangan 0 sampai 255. Pertama isi secara berurutan S[0] = 0, S[1] =1,...,S[255] = 255. Kemudian
inisialisasi array lain (S-Box lain), misal array K dengan panjang 256. Isi array K dengan kunci
yang diulangi sampai seluruh array K[0], K[1],...,K[255] terisi seluruhnya. Proses inisialisasi S-Box
(Array S) secara pseudocode, langkah ini dapat dituliskan sebagai berikut :

for i from 0 to 255
S[i] := i
endfor
j := 0
for i from 0 to 255
j := (j + S[i] + key[i modkeylength]) mod 256
swap values of S[i] and S[j]
endfor

2. Pencarian nilai keystream (k)
Pencarian nilai keystream dilakukan dengan melakukan pertukaran lagi antar elemen S,
tetapi salah satu nilai S kemudian disimpan pada k yang kemudian digunakan sebagai
keystream. Lebih jelasnya dapat dilihat pada pseudocode dibawah ini

i := 0
j := 0
while GeneratingOutput:
i := (i + 1) mod 256
j := (j + S[i]) mod 256
swap values of S[i] and S[j]
K := S[(S[i] + S[j]) mod 256]
output K
endwhile

nilai k inilah yang kemudian digunakan sebagai keystream.

3. Operasi XOR k dengan plaintext
Nilai k yang sudah didapatkan dari langkah di atas kemudian dimasukkan dalam operasi
XOR dengan plaintext yang ada, dengan sebelumnya pesan dipotong-potong terlebih dahulu
menjadi byte-byte. Setelah operasi ini dilakukan, langkah 1) kembali dilakukan untuk
mendapatkan indeks baru dari setiap elemen S.

Anda mungkin juga menyukai