rc4

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 (Authentica tion). 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.

Upload: guntari-fitriawaty-stewart

Post on 14-Oct-2015

8 views

Category:

Documents


0 download

TRANSCRIPT

Nama: Guntari FitriawatiKelas: 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 KriptografiBerdasarkan dari kunci yang digunakan algoritma kriptografi dibagi menjadi dua, yaitu Algoritma Simetri dan Algoritma Assimetri.

Algoritma SimetriAlgoritma 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 CodingSandi 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, semakinsulit 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 enkripsistream simetrik proprietaryyang dibuat olehRSA 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 jenisstream cipher, yaitu memproses unit atau input data, pesan atau informasi pada satu saat. Unit atau data pada umumnya sebuahbyteatau bahkan kadang kadang bit (bytedalam 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. Contohstream cipheradalah RC4, Seal, A5, Oryx, dan lain-lain. Tipe lainnya adalahblock cipheryang 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 dengancipherVernamkecuali bahwabitpseudorandomyang dihasilkan, bukanalirandisiapkan,yang digunakanUntuk menghasilkankeystream,ciphermenggunakan suatukeadaan internalrahasiayang terdiri dari duabagian:

1.Sebuahpermutasidari semua256 bytemungkin (dilambangkan S dibawah).2.Dua8-bitindeks-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 SCara 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 :

forifrom0to255S[i] := iendforj := 0forifrom0to255j := (j + S[i] + key[imodkeylength]) mod 256swap 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 := 0j := 0while 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 Kendwhile

nilai k inilah yang kemudian digunakan sebagai keystream.

3. Operasi XOR k dengan plaintextNilai 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.