Générateur de hachage cSHAKE128
Calculez cSHAKE128 avec nom de fonction N, chaîne de personnalisation S et longueur de sortie libre. Vérifié sur les exemples NIST SP 800-185, dans votre navigateur.
Un multiple de 8, de 8 à 16384 bits.
Généralement laissé vide. Réservé par le NIST aux fonctions construites sur cSHAKE.
Étiquette facultative de séparation de domaine, par ex. le nom de votre application. Des chaînes différentes donnent des sorties sans rapport.
S'exécute entièrement dans votre navigateur. Vos données ne sont jamais envoyées.
Qu'est-ce que Générateur de hachage cSHAKE128 ?
cSHAKE128 est la version personnalisable de SHAKE128 définie dans NIST SP 800-185. Elle ajoute un nom de fonction N et une chaîne de personnalisation S afin qu’un même message haché à des fins différentes donne des sorties sans rapport. Cet outil permet de régler N, S et la longueur de sortie.
Comment utiliser Générateur de hachage cSHAKE128
- Saisissez ou collez votre entrée dans Texte à hacher : l’empreinte se met à jour au fil de la frappe (un champ vide affiche le hachage d’une entrée vide).
- Choisissez l’Encodage de l’entrée : Texte (UTF-8) hache les caractères en UTF-8, Octets en hexadécimal ou Base64 hachent les octets bruts décodés.
- Réglez la Longueur de sortie (bits) (256 par défaut).
- Renseignez si besoin le Nom de fonction (N) (normalement vide) et la Chaîne de personnalisation (S), par ex. le nom de votre application ou protocole.
- Choisissez le Format de sortie (hex minuscules, hex majuscules ou Base64), puis cliquez sur Copier.
Exemple
Data 00010203 (Hex bytes), N empty, S = "Email Signature", 256 bits
c1c36925b6409a04f1b504fcbca9d82b4017277cb5ed2b2065fc1d3814d5aaf5
Exemple n° 1 de cSHAKE dans NIST SP 800-185.
Quand utiliser Générateur de hachage cSHAKE128
Utilisez cSHAKE128 lorsque vous avez besoin d’une séparation de domaine : plusieurs hachages dérivés des mêmes données à des fins différentes (étiquettes de dérivation de clés, transcriptions de protocole, hachages étiquetés). Utilisez SHAKE128 simple si aucune personnalisation n’est nécessaire, et KMAC128 si une clé secrète entre en jeu. N est réservé aux fonctions définies par le NIST ; les applications devraient normalement n’utiliser que S.
Comment fonctionne Générateur de hachage cSHAKE128
cSHAKE128 (NIST SP 800-185) est SHAKE128 avec séparation de domaine. Avant le message, il absorbe bytepad(encode_string(N) || encode_string(S), 168), c’est-à-dire le nom de fonction N et la chaîne de personnalisation S, chacun précédé de sa longueur en bits, puis applique le suffixe de bourrage 00 à la place du 1111 de SHAKE. Si N et S sont tous deux vides, cSHAKE128 est défini comme égal à SHAKE128. Des valeurs différentes de N ou S donnent des fonctions indépendantes. N et S sont saisis sous forme de texte et encodés en UTF-8.
Cas d'utilisation courants
- Reproduire les vecteurs de test cSHAKE du NIST SP 800-185
- Dériver des valeurs distinctes pour différents contextes à partir d’une même entrée
- Implémenter ou déboguer KMAC, TupleHash ou ParallelHash, construits sur cSHAKE
- Hacher des messages de protocole avec une étiquette propre à l’application
Note de Sécurité
cSHAKE128 offre une sécurité de 128 bits comme SHAKE128. La chaîne de personnalisation est publique, ce n’est pas une clé : utilisez KMAC128 pour l’authentification. Le calcul est local à votre navigateur.
Questions Fréquentes
Que se passe-t-il si N et S sont tous deux vides ?
Par définition, cSHAKE128 est alors égal à SHAKE128 ; pour abc sur 256 bits, vous obtenez 5881092dd818bf5c…, comme avec SHAKE128.
Quelle est la différence entre N et S ?
N (nom de fonction) est réservé aux fonctions définies par le NIST, comme « KMAC » ou « TupleHash ». S est la chaîne de personnalisation libre pour les applications. En pratique, on renseigne S et on laisse N vide.
Comment N et S sont-ils encodés ?
En octets UTF-8, précédés de leur longueur en bits (left_encode), puis complétés jusqu’au débit comme le précise SP 800-185.