Enkripsi Stream Cipher Rabbit

Enkripsi teks dengan stream cipher Rabbit (RFC 4503, eSTREAM) memakai frasa sandi berformat CryptoJS atau kunci hex 128 bit dan IV 64 bit. Berjalan secara lokal.

Rabbit adalah stream cipher yang jarang dipakai, tanpa perlindungan integritas dan dukungan pustakanya minim. Untuk aplikasi baru, pilih AES-GCM.

Output memakai format OpenSSL "Salted__" dalam Base64 dengan kunci dan IV yang diturunkan dari frasa sandi – format yang sama dengan CryptoJS.Rabbit.encrypt(text, passphrase). OpenSSL sendiri tidak punya cipher Rabbit.

Berjalan sepenuhnya di browser Anda. Data Anda tidak pernah diunggah.

Apa itu Enkripsi Rabbit?

Mengenkripsi data dengan Rabbit, stream cipher 128 bit yang cepat dari portofolio eSTREAM (RFC 4503). Cipher ini terutama dijumpai di proyek JavaScript yang memakai CryptoJS.Rabbit, dan alat ini menghasilkan output yang kompatibel dengannya.

Cara menggunakan Enkripsi Rabbit

  1. Pilih Frasa sandi (kompatibel OpenSSL) lalu ketik frasa sandi, atau Kunci mentah + IV (hex) dengan kunci 16 byte dan IV 8 byte opsional.
  2. Ketik atau tempel Plaintext.
  3. Klik Enkripsi, pilih output Base64 atau Hex, lalu salin hasilnya.

Contoh

Masukan
Raw key 000102030405060708090a0b0c0d0e0f, IV 0001020304050607, plaintext "Rabbit stream", Hex output
Keluaran
a0e87bbfc85cd88a7e42510ffa

Hasil yang sama dengan CryptoJS.Rabbit dengan kunci dan IV yang sama.

Kapan menggunakan Enkripsi Rabbit

Gunakan untuk berinteroperasi dengan aplikasi yang memakai CryptoJS Rabbit atau untuk menguji kode semacam itu. Untuk desain baru, pilih AES-GCM atau ChaCha20-Poly1305, yang sudah distandarkan dan terautentikasi.

Cara kerja Enkripsi Rabbit

Rabbit menyimpan 513 bit state internal (delapan word state 32 bit, delapan counter, dan satu bit carry) dan menghasilkan 128 bit keystream per iterasi, yang di-XOR dengan data. Kuncinya 128 bit; IV 64 bit opsional membuat keystream setiap pesan unik. Mode frasa sandi menurunkan kunci dan IV dari frasa sandi dan salt acak dengan EVP_BytesToKey (MD5) atau PBKDF2-SHA256 dan menghasilkan data Base64 Salted__ – identik dengan CryptoJS.Rabbit.encrypt(text, passphrase) dengan opsi MD5. Kunci hex mentah dibaca dalam urutan aliran byte seperti CryptoJS; RFC 4503 mencetak test vector-nya sebagai bilangan big-endian, artinya setiap blok 16 byte dibalik.

Kasus Penggunaan Umum

  • Mereproduksi output CryptoJS.Rabbit.encrypt untuk debugging
  • Membuat data uji untuk aplikasi JavaScript yang memakai Rabbit
  • Membandingkan perilaku stream cipher dengan RC4
  • Memeriksa vector keystream RFC 4503

Catatan Keamanan

Belum ada pembobolan praktis yang diketahui terhadap Rabbit, tetapi cipher ini jarang dipakai, tidak memiliki perlindungan integritas bawaan, dan sedikit library yang mendukungnya. Gunakan AES-GCM untuk sistem baru.

Pertanyaan Umum

Apakah ini kompatibel dengan CryptoJS?

Ya. Mode frasa sandi dengan EVP_BytesToKey (MD5) cocok dengan CryptoJS.Rabbit.encrypt(text, "passphrase"), dan mode mentah cocok dengan CryptoJS yang memakai WordArray kunci dan IV eksplisit.

Bisakah OpenSSL mendekripsi Rabbit?

Tidak, OpenSSL tidak mengimplementasikan Rabbit. Hanya format kontainernya (Salted__ + salt) yang sama.

Apakah saya butuh IV?

IV bersifat opsional untuk Rabbit, tetapi tanpa IV kunci yang sama selalu menghasilkan keystream yang sama. Mode frasa sandi selalu menurunkan IV baru dari salt acak.

Jelajahi kategori lainnya