LFSR / Stream Cipher

LAB / 01

Eksperimen keystream, XOR, dan keamanan seed dalam satu meja kerja.

Preset:
01 / PEMBANGKITREGISTER GESER

Keystream LFSR

Atur register, seed, dan tap untuk melihat bagaimana bit dihasilkan.

Konfigurasi Register LFSR

Jumlah sel flip-flop (contoh: 4, 5, 8 bit).

Panjang bit harus sesuai register size. Tidak boleh semua nol.

Indeks sel dipisahkan koma (contoh: 4, 3 untuk x^4 + x^3 + 1).

Arah Geser: Kanan (Right Shift)
Bit Output: LSB (Stage n)
Umpan Balik: XOR sel tap (s4 ⊕ s3)

Skematik Rangkaian Shift Register

1.2s
Keystream Terakumulasi:

Pembangkit Keystream N-Bit

Hasilkan deretan keystream dengan panjang bit tertentu secara langsung.

Tabel Transisi Kondisi Register per Detak Clock

Log lengkap pergeseran flip-flop
Clock # State Register Taps (XOR) Feedback Bit Output Bit Keystream
02 / OPERASI XORPESAN KELUAR

Enkripsi pesan

Ubah teks menjadi ciphertext dan ikuti perubahan setiap bit.

Enkripsi Stream Cipher

Karakter teks dikonversi ke biner ASCII 8-bit per karakter.

Operasi: Ciphertext[i] = Plaintext[i] ⊕ Keystream[i]
Keystream dibangkitkan sepanjang total bit pesan plaintext.
03 / OPERASI XORPESAN MASUK

Dekripsi pesan

Gunakan kembali seed dan tap yang sama untuk membuka ciphertext.

Dekripsi Stream Cipher

Masukkan byte heksadesimal dengan atau tanpa spasi pemisah.

Sifat Simetris Involusi: Plaintext[i] = Ciphertext[i] ⊕ Keystream[i]
Menggunakan konfigurasi seed dan taps identik untuk merekonstruksi keystream asal.

Tabel Verifikasi Dekripsi (Ciphertext ⊕ Keystream = Plaintext)

Urutan Ciphertext Hex Bit Ciphertext Bit Keystream (K) Bit Plaintext (C ⊕ K) Karakter Hasil
Jalankan dekripsi untuk melihat verifikasi bitwise.
04 / VERIFIKASIHASIL TERUKUR

Kasus uji

Bandingkan keluaran aplikasi dengan hasil yang sudah diketahui.

Suite Kasus Uji Otomatis (Automated Test Cases)

Evaluasi kepatuhan spesifikasi teknis: Pembangkitan Keystream, Enkripsi Teks, Dekripsi Teks, Periode Siklus Maksimal, dan Rekoveri Kunci.

05 / KEAMANANSIMULASI SERANGAN

Pencarian seed

Uji seberapa cepat seed kecil dapat ditemukan dari cuplikan keystream.

Demonstrasi Kerentanan Keamanan: Pencarian Seed (Brute Force) & Known-Plaintext Attack

LFSR 4-bit memiliki 2^4 = 16 kemungkinan seed, termasuk 0000 yang merupakan keadaan mati. Karena ruang kuncinya sangat terbatas, penyerang yang mencegat sedikit cuplikan keystream dapat melakukan pencarian menyeluruh (brute force) secara bertahap (step-by-step) untuk membongkar seed awal dan membaca seluruh pesan rahasia.

Simulator Pencarian Kunci Seed

Tantangan Sandi Preset:

Cuplikan keystream yang berhasil disadap penyerang.

450ms

Simulasi Known-Plaintext Attack (KPA):

Penyerang yang mengetahui awalan kata plaintext ("TO") dapat membongkar seluruh pesan rahasia.

ALUR DEMONSTRASICONTOH / 4 BIT

Dari cuplikan bit ke seed awal

Untuk register 4 bit ada 16 keadaan awal. Simulasi menguji semuanya, termasuk seed 0000 yang merupakan keadaan mati; 15 seed lain dapat menghasilkan aliran bit.

01Ambil cuplikanMasukkan keystream target yang ingin dicocokkan.
02Uji kandidatBangkitkan bit dari setiap seed dengan tap yang sama.
03BandingkanSeed yang menghasilkan urutan sama menjadi kandidat kunci.

Panjang cuplikan memengaruhi apakah hasilnya unik. Coba pendekkan bit target untuk melihat kemungkinan lebih dari satu seed cocok.

Jumlah keadaan awal menurut ukuran register

Ukuran Register Ruang Seed (2^n) Seed nonnol
4 bit 16 15
8 bit 256 255
16 bit 65.536 65.535
32 bit 4.294.967.296 4.294.967.295
128 bit (ilustrasi) ~ 3.4 × 10^38 2^128 - 1

Kelemahan Linieritas Aljabar & Algoritma Berlekamp-Massey

Selain serangan brute force seed, LFSR memiliki kelemahan mendasar: sifat linieritas aljabar dalam medan Galois GF(2).

Dengan Algoritma Berlekamp-Massey, penyerang bahkan tidak perlu mengetahui posisi tap sebelumnya. Cukup dengan menyadap 2n bit keystream yang berurutan (misalnya hanya 8 bit untuk LFSR 4-bit), penyerang dapat menyelesaikan sistem persamaan linier dan merekonstruksi seluruh konfigurasi polinomial umpan balik dan seed dalam kompleksitas waktu O(n^2).

Solusi Kriptografi Modern: Stream cipher dunia nyata (seperti A5/1 pada GSM seluler, E0 pada Bluetooth, atau Trivium dan Grain) menggabungkan beberapa register LFSR dengan fungsi boolean non-linier (NLFSR) untuk mematahkan kelemahan linieritas ini.