Algoritma Stream Cipher: Sebuah Gambaran Umum

Stream cipher, atau dikenal juga sebagai cipher urutan, adalah salah satu sistem kriptografi simetris yang penting. Berbeda dengan block cipher, stream cipher bekerja dengan mengenkripsi atau mendekripsi pesan secara bit demi bit.

Pada implementasi perangkat keras, stream cipher menggunakan rangkaian shift register untuk menghasilkan key stream (aliran kunci). Prinsip dasarnya adalah menggunakan kunci k untuk menghasilkan key stream z = z0z1z2…, kemudian mengenkripsi teks asli (plaintext) x = x0x1x2… menjadi ciphertext y = y0y1y2… sesuai dengan aturan berikut:

yi=Ezi(xi)y_i = E_{z_i}(x_i)

Artinya, setiap bit dari plaintext dienkripsi dengan bit yang sesuai dari key stream.

Key stream ini dihasilkan oleh generator key stream yang mengikuti rumus berikut:

zi=f(k,σi)z_i = f(k, \sigma_i)

Di mana:

  • σi adalah keadaan elemen memori pada waktu i dalam proses enkripsi.
  • f adalah fungsi yang dihasilkan oleh kunci k dan keadaan memori σi.

Perbedaan Stream Cipher dan Block Cipher

Perbedaan utama antara stream cipher dan block cipher terletak pada penggunaan memori. Pada stream cipher, kunci yang dihasilkan pada setiap langkah z0 = f(k, σ0) sepenuhnya ditentukan oleh fungsi f, kunci k, dan keadaan awal σ0.

Selain itu, karena teks asli yang dimasukkan ke dalam enkripsi dapat mempengaruhi keadaan memori internal, maka keadaan memori σi (untuk i > 0) bisa bergantung pada kunci k, keadaan awal σ0, serta bit-bit plaintext sebelumnya x0, x1, …, xi-1.

Dengan pendekatan ini, stream cipher lebih cocok untuk aplikasi yang membutuhkan enkripsi data secara real-time, seperti komunikasi suara dan video, karena prosesnya lebih ringan dibandingkan block cipher yang mengenkripsi dalam blok-blok data yang lebih besar.

Klasifikasi Stream Cipher

Stream cipher dapat diklasifikasikan menjadi dua jenis berdasarkan apakah status penyimpanan (σi) dalam enkripsi bergantung pada karakter plaintext yang dimasukkan:

  1. Synchronous Stream Cipher – Jika σi tidak bergantung pada karakter plaintext, maka disebut synchronous stream cipher.
  2. Self-Synchronous Stream Cipher – Jika σi bergantung pada karakter plaintext, maka disebut self-synchronous stream cipher.

Karena self-synchronous stream cipher menghasilkan key stream berdasarkan plaintext, analisis teoritisnya menjadi lebih sulit. Oleh karena itu, sebagian besar penelitian saat ini lebih berfokus pada synchronous stream cipher.

Prinsip Kerja Synchronous Stream Cipher

Pada synchronous stream cipher, key stream dihasilkan secara independen dari plaintext. Dengan kata lain, karena zi = f(k, σi) tidak bergantung pada plaintext, maka ciphertext yang dihasilkan yi = Ezi(xi) juga tidak dipengaruhi oleh karakter plaintext sebelumnya.

Dengan sifat ini, enkripsi pada synchronous stream cipher dapat dibagi menjadi dua bagian utama:

  1. Key Stream Generator – Bertugas menghasilkan aliran kunci (key stream) yang akan digunakan dalam enkripsi.
  2. Encryption Converter – Bertugas melakukan proses enkripsi menggunakan key stream yang dihasilkan.

Karena keunggulannya dalam kestabilan dan keamanan, synchronous stream cipher lebih banyak digunakan dalam berbagai sistem komunikasi yang membutuhkan enkripsi data secara real-time.

Selama transformasi bersifat dapat dibalik (invertible), ada banyak opsi yang dapat digunakan untuk transformasi kriptografi Ezi dalam synchronous stream cipher.

Dalam sistem keamanan digital, kebanyakan sistem menggunakan bilangan biner. Oleh karena itu, binary additive stream cipher dalam GF(2) (field hingga) adalah jenis stream cipher yang paling umum digunakan saat ini (Gambar 3).

Proses enkripsi dalam binary additive stream cipher dapat dirumuskan sebagai:

yi=zi⊕xiy_i = z_i \oplus x_i

Dimana:

  • yi = ciphertext yang dihasilkan
  • zi = key stream
  • xi = plaintext
  • = operasi XOR (exclusive OR)

Metode ini digunakan dalam banyak aplikasi keamanan karena kesederhanaannya dan efisiensinya dalam sistem digital.

Generator Key Stream dalam Stream Cipher

Generator key stream umumnya dapat dianggap sebagai finite-state automaton dengan parameter k, yang terdiri dari:

  • Z → himpunan simbol keluaran
  • → himpunan status
  • φ (fungsi transisi state) → menentukan perubahan dari σi ke σi+1
  • ψ (fungsi output) → mengubah state σi menjadi elemen zi dalam himpunan simbol keluaran
  • σ0 → state awal

Pada Gambar 4, fungsi transisi φ mengubah status dari σi ke σi+1, sementara fungsi output ψ mengubah status σi menjadi elemen dalam key stream (zi).

Desain Generator Key Stream

Kunci dalam desain generator key stream adalah menemukan fungsi transisi (φ) dan fungsi output (ψ) yang sesuai, sehingga:

  1. Menghasilkan key stream yang aman
  2. Efisien dalam implementasi perangkat keras
  3. Tidak mudah diprediksi oleh penyerang

Untuk mencapai tujuan ini, fungsi non-linear harus digunakan agar hasilnya lebih kompleks dan sulit ditebak.

Implementasi Generator Key Stream

Generator key stream yang paling populer dan praktis saat ini (Gambar 5) umumnya menggunakan satu atau lebih linear feedback shift register (LFSR). LFSR adalah rangkaian yang sering digunakan dalam kriptografi karena sederhana, cepat, dan dapat menghasilkan key stream dengan periode panjang.

Shift Register dalam Stream Cipher

Shift register adalah komponen utama dalam generator key stream pada stream cipher. Linear Feedback Shift Register (LFSR) adalah jenis shift register yang paling sering digunakan dalam sistem ini.

Struktur LFSR

Pada bidang GF(2), LFSR berorde-n terdiri dari:

  • n register biner (menyimpan bit-bit data)
  • Fungsi umpan balik linear f(a₁, a₂, …, a) (Gambar 6)

Setiap register memiliki level memori yang menyimpan nilai 0 atau 1. Saat beroperasi, isi register ini berubah seiring waktu membentuk state register, yang dapat direpresentasikan sebagai vektor berdimensi n dengan 2ⁿ kemungkinan state.

 

Cara Kerja Shift Register

  1. State awal ditentukan oleh pengguna.
  2. Saat pulse clock ke-i datang, setiap memori a akan menggeser isinya ke level berikutnya (a).
  3. Berdasarkan state register saat itu (a₁, a₂, …, a), fungsi umpan balik f(a₁, a₂, …, a) dihitung untuk menghasilkan bit baru (a).
  4. Proses ini terus berulang, membentuk key stream yang digunakan dalam enkripsi.

Fungsi Umpan Balik (Feedback Function)

Fungsi umpan balik f(a₁, a₂, …, a) adalah fungsi Boolean dari n variabel, dengan operasi:

  • AND (logika dan)
  • OR (logika atau)
  • NOT (komplemen/logika inversi)

Hasil akhir dari fungsi ini selalu 0 atau 1, yang kemudian digunakan sebagai input untuk tahap berikutnya dalam shift register.

Dengan desain yang tepat, LFSR dapat menghasilkan key stream yang panjang, kompleks, dan sulit ditebak, sehingga membuat enkripsi lebih aman.

 

Keunggulan Stream Cipher dan Aplikasinya

Stream cipher memiliki beberapa keunggulan, yaitu:
Sederhana dan mudah diimplementasikan pada perangkat keras.
Proses enkripsi dan dekripsi sangat cepat.
Minim atau tidak ada propagasi kesalahan, sehingga jika terjadi gangguan pada satu bit data, tidak akan merusak seluruh pesan.

Karena keunggulan ini, stream cipher sering digunakan dalam aplikasi nyata, terutama dalam organisasi khusus atau rahasia.

 

Bidang Aplikasi Stream Cipher

Komunikasi nirkabel (wireless communication) – Digunakan untuk enkripsi data dalam jaringan seluler dan Wi-Fi.
Komunikasi diplomatik – Digunakan untuk menjaga kerahasiaan pesan antar pemerintahan atau organisasi rahasia.

Contoh Algoritma Stream Cipher yang Populer

SNOW 3G → Digunakan di Eropa untuk keamanan jaringan seluler.
ZUC → Dikembangkan di China untuk sistem komunikasi aman.
RC4 → Algoritma terkenal dari Amerika Serikat, sering digunakan dalam enkripsi internet dan komunikasi.

Dengan kemampuannya yang cepat dan efisien, stream cipher tetap menjadi pilihan utama dalam berbagai aplikasi keamanan digital.

Apabila anda tertarik dengan Solusi dahua dan ingin di presentasikan lebih detail mengenai dahua bisa langsung hubungi Dahua Indonesia