Generador de hash cSHAKE256
Calcula cSHAKE256 con nombre de función N, cadena de personalización S y cualquier longitud de salida. Verificado con los ejemplos NIST SP 800-185, en tu navegador.
Un múltiplo de 8, de 8 a 16384 bits.
Normalmente se deja vacío. El NIST lo reserva para funciones construidas sobre cSHAKE.
Etiqueta opcional de separación de dominio, p. ej. el nombre de tu aplicación. Cadenas distintas producen salidas sin relación.
Se ejecuta completamente en tu navegador. Tus datos nunca se suben.
¿Qué es Generador de hash cSHAKE256?
cSHAKE256 es la versión personalizable de SHAKE256 definida en NIST SP 800-185. Añade un nombre de función N y una cadena de personalización S para que el mismo mensaje procesado con fines distintos dé salidas sin relación entre sí. Esta herramienta te permite fijar N, S y la longitud de salida.
Cómo usar Generador de hash cSHAKE256
- Escribe o pega la entrada en Texto para calcular el hash; el resumen se actualiza mientras escribes (con el cuadro vacío se muestra el hash de una entrada vacía).
- Elige la Codificación de entrada: Texto (UTF-8) calcula el hash de los caracteres en UTF-8, y Bytes en hexadecimal o Base64 calculan el de los bytes decodificados.
- Indica la Longitud de salida (bits) (por defecto 512).
- Opcionalmente rellena Nombre de función (N) (normalmente vacío) y Cadena de personalización (S), p. ej. el nombre de tu aplicación o protocolo.
- Selecciona el Formato de salida (hexadecimal en minúsculas, en mayúsculas o Base64) y haz clic en Copiar.
Ejemplo
Data 00010203 (Hex bytes), N empty, S = "Email Signature", 512 bits
d008828e2b80ac9d2218ffee1d070c48b8e4c87bff32c9699d5b6896eee0edd164020e2be0560858d9c00c037e34a96937c561a74c412bb4c746469527281c8c
Ejemplo n.º 3 de cSHAKE de NIST SP 800-185.
Cuándo usar Generador de hash cSHAKE256
Usa cSHAKE256 cuando necesites separación de dominio: varios hashes derivados de los mismos datos para fines distintos (etiquetas de derivación de claves, transcripciones de protocolo, hashes etiquetados). Usa SHAKE256 simple si no necesitas personalización, y KMAC256 si interviene una clave secreta. N está reservado para funciones definidas por el NIST; las aplicaciones normalmente solo deberían usar S.
Cómo funciona Generador de hash cSHAKE256
cSHAKE256 (NIST SP 800-185) es SHAKE256 con separación de dominio. Antes del mensaje absorbe bytepad(encode_string(N) || encode_string(S), 136) —el nombre de función N y la cadena de personalización S, cada uno precedido de su longitud en bits— y luego rellena con el sufijo 00 en lugar del 1111 de SHAKE. Si N y S están vacíos, cSHAKE256 se define como igual a SHAKE256. Valores distintos de N o S dan funciones independientes. N y S se introducen como texto y se codifican en UTF-8.
Casos de Uso Comunes
- Reproducir los vectores de prueba cSHAKE de NIST SP 800-185
- Derivar valores separados para distintos contextos a partir de una misma entrada
- Implementar o depurar KMAC, TupleHash o ParallelHash, que se basan en cSHAKE
- Calcular el hash de mensajes de protocolo con una etiqueta propia de la aplicación
Nota de Seguridad
cSHAKE256 ofrece 256 bits de seguridad, igual que SHAKE256. La cadena de personalización es pública, no una clave: usa KMAC256 para autenticación. El cálculo se hace localmente en tu navegador.
Preguntas Frecuentes
¿Qué pasa si N y S están vacíos?
Por definición, cSHAKE256 equivale entonces a SHAKE256; para abc con 512 bits obtienes 483366601360a877…, igual que con SHAKE256.
¿Qué diferencia hay entre N y S?
N (nombre de función) está reservado para funciones definidas por el NIST, como "KMAC" o "TupleHash". S es la cadena de personalización libre para las aplicaciones. En la práctica se fija S y se deja N vacío.
¿Cómo se codifican N y S?
Como bytes UTF-8 precedidos de su longitud en bits (left_encode) y después rellenados hasta la tasa, tal como especifica SP 800-185.