Chiffrement par flot Rabbit

Chiffrez du texte avec le chiffrement par flot Rabbit (RFC 4503, eSTREAM) via une phrase secrète au format CryptoJS ou une clé hex de 128 bits et un IV de 64 bits.

Rabbit est un chiffrement par flot peu répandu, sans protection d’intégrité et peu pris en charge par les bibliothèques. Préférez AES-GCM pour les nouvelles applications.

La sortie utilise le format OpenSSL « Salted__ » en Base64, avec clé et IV dérivés de la phrase secrète – le même format que CryptoJS.Rabbit.encrypt(text, passphrase). OpenSSL ne propose pas Rabbit.

S'exécute entièrement dans votre navigateur. Vos données ne sont jamais envoyées.

Qu'est-ce que Chiffrement Rabbit ?

Chiffre des données avec Rabbit, un chiffrement par flot rapide de 128 bits issu du portfolio eSTREAM (RFC 4503). On le rencontre surtout dans des projets JavaScript qui utilisent CryptoJS.Rabbit ; cet outil produit une sortie compatible.

Comment utiliser Chiffrement Rabbit

  1. Choisissez Phrase secrète (compatible OpenSSL) et saisissez une phrase secrète, ou Clé + IV bruts (hex) avec une clé de 16 octets et un IV facultatif de 8 octets.
  2. Saisissez ou collez le Texte en clair.
  3. Cliquez sur Chiffrer, choisissez la sortie Base64 ou Hex et copiez le résultat.

Exemple

Entrée
Clé brute 000102030405060708090a0b0c0d0e0f, IV 0001020304050607, texte en clair « Rabbit stream », sortie Hex
Sortie
a0e87bbfc85cd88a7e42510ffa

Même résultat que CryptoJS.Rabbit avec la même clé et le même IV.

Quand utiliser Chiffrement Rabbit

Utilisez-le pour interagir avec une application qui utilise CryptoJS Rabbit ou pour tester ce type de code. Pour toute nouvelle conception, choisissez AES-GCM ou ChaCha20-Poly1305, qui sont normalisés et authentifiés.

Comment fonctionne Chiffrement Rabbit

Rabbit conserve 513 bits d’état interne (huit mots d’état de 32 bits, huit compteurs et un bit de retenue) et produit 128 bits de flux de clé par itération, combinés aux données par XOR. La clé fait 128 bits ; un IV facultatif de 64 bits rend le flux de clé de chaque message unique. Le mode phrase secrète dérive la clé et l’IV de la phrase secrète et d’un sel aléatoire avec EVP_BytesToKey (MD5) ou PBKDF2-SHA256 et produit des données Salted__ en Base64 – identiques à CryptoJS.Rabbit.encrypt(text, passphrase) avec l’option MD5. Les clés hex brutes sont lues dans l’ordre du flux d’octets comme le fait CryptoJS ; la RFC 4503 présente ses vecteurs de test comme des nombres big-endian, c’est-à-dire chaque bloc de 16 octets inversé.

Cas d'utilisation courants

  • Reproduire la sortie de CryptoJS.Rabbit.encrypt pour le débogage
  • Créer des données de test pour une application JavaScript qui utilise Rabbit
  • Comparer le comportement des chiffrements par flot avec RC4
  • Vérifier les vecteurs de flux de clé de la RFC 4503

Note de Sécurité

Rabbit n’a pas de cassure pratique connue, mais il est rarement utilisé, n’a aucune protection d’intégrité intégrée et peu de bibliothèques le prennent en charge. Utilisez AES-GCM pour les nouveaux systèmes.

Questions Fréquentes

Est-ce compatible avec CryptoJS ?

Oui. Le mode phrase secrète avec EVP_BytesToKey (MD5) correspond à CryptoJS.Rabbit.encrypt(text, "passphrase"), et le mode brut correspond à CryptoJS avec des WordArrays de clé et d’IV explicites.

OpenSSL peut-il déchiffrer Rabbit ?

Non, OpenSSL n’implémente pas Rabbit. Seul le format de conteneur (Salted__ + sel) est le même.

Ai-je besoin d’un IV ?

Il est facultatif pour Rabbit, mais sans IV la même clé donne toujours le même flux de clé. Le mode phrase secrète dérive toujours un nouvel IV à partir du sel aléatoire.

Explorer d'autres catégories