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.
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
- 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.
- Saisissez ou collez le Texte en clair.
- Cliquez sur Chiffrer, choisissez la sortie Base64 ou Hex et copiez le résultat.
Exemple
Clé brute 000102030405060708090a0b0c0d0e0f, IV 0001020304050607, texte en clair « Rabbit stream », sortie Hex
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.encryptpour 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.