2. Block cipher
Sistem block cipher mengkodekan data dengan cara membagi plaintext menjadi per blok dengan ukuran yang sama dan tetap. Kemudian setiap bloknya dienkripsi
atau didekripsi sekaligus Zain, 2012. Contoh algoritma ini adalah RC5, DES, AES, IDEA, dan Blowfish.
2.3 Algoritma Kriptografi Kunci Asimetris
Penyandian dengan kunci asimetris atau sering juga disebut dengan penyandian kunci publik adalah penyandian dengan kunci enkripsi dan dekripsi yang berbeda nilai.
Kunci yang digunakan untuk enkripsi disebut dengan kunci publik public key dan kunci yang digunakan untuk dekripsi disebut kunci rahasia private key Sadikin,
2012. Kunci asimetris adalah pasangan kunci kriptografi yang salah satunya
digunakan untuk proses enkripsi dan yang satu lagi untuk proses dekripsi. Semua orang yang mendapatkan kunci publik dapat menggunakannya untuk mengenkripsi
suatu pesan, sedangkan hanya satu orang saja yang memiliki kunci rahasia yang dapat melakukan pembongkaran terhadap sandi yang dikirim untuknya Ariyus, 2006.
Contoh, Alice ingin mengirim pesan kepada Bob, maka hal yang harus dilakukan adalah :
1. Bob memberitahukan kunci publiknya ke Alice.
2. Alice mengenkripsi pesan dengan menggunakan kunci publik Bob.
3. Bob mendekripsi pesan dari Alice dengan kunci rahasianya.
4. Begitu juga sebaliknya jika Bob ingin mengirim pesan kepada Alice.
Contoh algoritma yang menggunakan kunci asimetris adalah RSA, DSA, Diffie- Hellman DH, dan lain-lain Ariyus, 2008.
2.4 Algoritma RC4 RC4 adalah stream cipher yang dirancang di RSA Security oleh Ron Rivest tahun
1987. Pada mulanya cara kerja RC4 dirahasiakan oleh RSA Security, akan tetapi ini dibocorkan di internet tahun 1994 di milis Cypherpunks. RSA Security tidak pernah
Universitas Sumatera Utara
merilis RC4 secara resmi, akibatnya banyak yang menyebutnya sebagai ARC4 alleged RC4 atau tersangka RC4 untuk menghindari masalah trademark
Kromodimoeljo, 2010. RC4 merupakan salah satu jenis stream cipher, yaitu memproses unit atau
input data pada satu saat. Unit atau data pada umumnya merupakan sebuah byte. Dengan cara ini enkripsi atau dekripsi dapat dilaksanakan pada panjang yang variabel.
Algoritma ini tidak harus menunggu sejumlah input data tertentu sebelum diproses, atau menambahkan byte tambahan untuk mengenkrip Sukmawan, 1998.
Algoritma RC4 terdiri atas 2 bagian yaitu Key Scheduling Algorithm KSA dan Pseudo-Random Generation Algorithm PRGA.
1. Key Scheduling Algorithm KSA
Dalam proses KSA terdapat 2 state array yang harus diinisialisasi yakni S dan K. Array S sepanjang 256 diinisialisasi dengan bilangan 0 sampai 255,
S[0] = 0, S[1] = 1, ... , S[255] = 255. Sedangkan array K dengan panjang 256 diinisialisasi dengan kunci yang diulangi sampai seluruh array K[0],
K[1], ... , K[255] terisi penuh Ariyanto, 2009. Berikut adalah algoritma KSA, dimana simbol l menyatakan panjang
kunci dalam byte.
for i from 0 to 255 S[i] := i
endfor j := 0
for i from 0 to 255 j := j + S[i] + K[i mod l] mod 256
swap values of S[i] and S[j] endfor
Universitas Sumatera Utara
2. Pseudo-Random Generation Algorithm PRGA
State array S hasil dari proses KSA digunakan lagi dalam proses PRGA ini untuk menghasilkan keystream yang akan di XOR kan dengan plaintext
untuk menghasilkan ciphertext Mooduto Albar, 2004. Berikut adalah algoritma PRGA :
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]
output := S[S[i] + S[j] mod 256] endwhile
2.5 Algoritma RC4A