Skip to content

RC4

  • Stream Cipher
  • Digunakan :
    • SSL
    • WEP
    • WPA
  • RC4 memproses data dalam ukuran byte
  • RC4 terdiri dari 2 sub-proses :
    • Key-Scheduling Algorithm (KSA)
    • Pseudo-random Generation Algorithm (PRGA)

KSA

  1. Inisiasi larik \(S\): \(S_0\) = 0, \(S_1\) = 1, ..., \(S_{255}\) = 255

  2. Pengacakan berdasarkan kunci eksternal K

j = 0
for i in {0..255}
    j = (j + S[i] + K[i % len(k)]) % 256
    swap(S[i], S[j])

PRGA

  • PRGA membangkitkan keystream dengan cara mengambil nilai \(S[i]\) dan \(S[j]\), mempertukarkannya, lalu menjumlahkan keduanya dalam modulus 256
  • Keystream tersebut kemudian di-XOR-kan dengan sebuah karakter plainteks
i = 0
j = 0
for idx in {0..len(P)-1}
    i = (i+1) % 256
    j = (j+S[1]) % 256
    swap(S[i], S[j])
    t = (S[i] + S[j]) % 256
    u = S[t]
    c = u (+) P[idx]

Keamanan RC4

  • RC4 adalah stream cipher, maka ia tidak kuat terhadap serangan seperti flip-bit attack maupun serangan stream attack lainnya

Aplikasi

  • Cocok untuk enkripsi berkas citra (derajat keabuan 0-255)
  • Cocok untuk enkripsi record atau field basis data