Eksperimen keystream, XOR, dan keamanan seed dalam satu meja kerja.
Atur register, seed, dan tap untuk melihat bagaimana bit dihasilkan.
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).
Hasilkan deretan keystream dengan panjang bit tertentu secara langsung.
| Clock # | State Register | Taps (XOR) | Feedback Bit | Output Bit | Keystream |
|---|
Ubah teks menjadi ciphertext dan ikuti perubahan setiap bit.
Karakter teks dikonversi ke biner ASCII 8-bit per karakter.
Gunakan kembali seed dan tap yang sama untuk membuka ciphertext.
Masukkan byte heksadesimal dengan atau tanpa spasi pemisah.
| Urutan | Ciphertext Hex | Bit Ciphertext | Bit Keystream (K) | Bit Plaintext (C ⊕ K) | Karakter Hasil |
|---|---|---|---|---|---|
| Jalankan dekripsi untuk melihat verifikasi bitwise. | |||||
Bandingkan keluaran aplikasi dengan hasil yang sudah diketahui.
Evaluasi kepatuhan spesifikasi teknis: Pembangkitan Keystream, Enkripsi Teks, Dekripsi Teks, Periode Siklus Maksimal, dan Rekoveri Kunci.
Uji seberapa cepat seed kecil dapat ditemukan dari cuplikan keystream.
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.
Cuplikan keystream yang berhasil disadap penyerang.
Penyerang yang mengetahui awalan kata plaintext ("TO") dapat membongkar seluruh pesan rahasia.
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.
Panjang cuplikan memengaruhi apakah hasilnya unik. Coba pendekkan bit target untuk melihat kemungkinan lebih dari satu seed cocok.
| 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 |
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).