informasi kontak saya
Surat[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Sebelum memperkenalkan stream cipher, mari kita pahami terlebih dahulu pengetahuan prasyarat dasar operasi titik-XOR.
Aturan operasi: Sama seperti 0, berbeda dengan 1
Fitur: Satu bit di-XOR dua kali dan dapat dikembalikan ke bit aslinya.
Teks biasa: 1100
Kunci: 0101 (terenkripsi)
Teks sandi: 1001
Kunci: 0101 (dekripsi)
Teks biasa: 1100
keuntungan:Reversibilitas ini memungkinkan operasi XOR digunakan untuk transformasi enkripsi dan dekripsi.
kekurangan:Jika penyerang dapat menebak atau menangkap kuncinya, kunci tersebut dapat dengan mudah didekripsi melalui XOR.
Alasan mengapa operasi XOR dapat digunakan untuk enkripsi dan dekripsi pada saat yang sama terletak pada reversibilitasnya, namun ini juga kelemahannya. Keamanan sepenuhnya bergantung pada penyembunyian kunci.
One-Time Pad (OTP) adalah algoritma stream cipher. Ini dianggap sebagai salah satu metode enkripsi paling aman secara teori, asalkan penerapannya secara ketat mengikuti beberapa prinsip utama:
1. Kuncinya harus sepanjang teks biasa: Artinya setiap enkripsi menggunakan kunci yang panjangnya sama persis dengan pesan yang dienkripsi.
2. Kuncinya harus benar-benar acak: Setiap bit kunci harus dihasilkan secara acak, tanpa pola atau prediktabilitas apa pun.
3. Kunci hanya boleh digunakan sekali: Kunci yang sama tidak boleh digunakan untuk mengenkripsi banyak pesan, jika tidak, korelasi antara ciphertext dapat digunakan untuk menyimpulkan isi pesan.
4. Kunci harus dirahasiakan: Distribusi dan penyimpanan kunci harus sangat aman untuk mencegah akses oleh pihak ketiga.
keuntungan:
kekurangan:
Ketika orang mempelajari algoritma enkripsi one-time pad, mereka mencoba memecahkan masalah manajemen dan panjang kunci. Jika ada cara untuk menghasilkan semua kunci untuk mengenkripsi teks biasa dengan hanya menyediakan sebagian kecil kunci, maka stream cipher dikembangkan berdasarkan ide ini.
Dalam stream cipher, kunci kecil (sering disebut seed atau vektor inisialisasi) digunakan melalui generator nomor pseudorandom (PRNG) untuk menghasilkan aliran kunci pseudorandom dengan panjang yang sama dengan teks biasa. Keystream ini kemudian di-XOR dengan plaintext untuk menghasilkan ciphertext. Demikian pula, proses dekripsi adalah dengan meng-XOR teks sandi dengan aliran kunci yang sama untuk memulihkan teks biasa.
kuncimenghasilkan aliran kunci
Dan gunakan aturan berikut untuk membandingkan string teks biasa
Untuk mengenkripsi:
![]()
Register geser umpan balik linier umumnya digunakan untuk menghasilkan kunci pseudo-acak. Prinsipnya tidak akan dibahas di sini.
Proses enkripsi dan dekripsi dapat digambarkan sebagai berikut:
Prinsip desain stream cipher sangat fokus pada pembuatan generator keystream yang dapat menghasilkan keystream dengan properti keamanan tertentu. Urutan aliran kunci harus memiliki properti berikut:
siklus besar : Periode aliran kunci harus cukup lama untuk mencegah penggunaan kembali segmen aliran kunci yang sama, yang akan mengekspos pola dalam data terenkripsi dan memungkinkan kriptanalis melakukan serangan dengan membandingkan persamaan dan perbedaan pesan yang berbeda. Secara teoritis, untuk ruang kunci n-bit, panjang siklus ideal adalah 2n-1. Dalam praktiknya, periode yang lebih lama berarti aliran kunci lebih jarang diulang, sehingga meningkatkan keamanan sistem kripto.
sifat statistik yang baik : Aliran kunci harus terlihat seperti urutan bit yang benar-benar acak, artinya harus memenuhi berbagai uji statistik seperti distribusi 0 dan 1 yang sama, independensi antara dua atau lebih bit yang berurutan, dan tidak ada pola atau periodisitas yang dapat diprediksi. Properti statistik yang baik membantu memastikan ketidakpastian aliran kunci, yang merupakan komponen penting dari keamanan sandi aliran.
Ketahanan terhadap analisis linier : Sebuah stream cipher harus tahan terhadap analisis linier, di mana kriptanalis berupaya memulihkan kunci atau teks biasa dengan menemukan korelasi linier antara aliran kunci dan teks biasa atau teks sandi. Hal ini biasanya mengharuskan keluaran generator keystream bersifat nonlinier, atau setidaknya berisi komponen nonlinier yang cukup untuk mencegah metode penyelesaian sistem linier sederhana menyimpulkan keystream atau kunci itu sendiri.