Generador de hash cSHAKE128
Calcula cSHAKE128 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 cSHAKE128?
cSHAKE128 es la versión personalizable de SHAKE128 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 cSHAKE128
- 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 256).
- 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", 256 bits
c1c36925b6409a04f1b504fcbca9d82b4017277cb5ed2b2065fc1d3814d5aaf5
Ejemplo n.º 1 de cSHAKE de NIST SP 800-185.
Cuándo usar Generador de hash cSHAKE128
Usa cSHAKE128 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 SHAKE128 simple si no necesitas personalización, y KMAC128 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 cSHAKE128
cSHAKE128 (NIST SP 800-185) es SHAKE128 con separación de dominio. Antes del mensaje absorbe bytepad(encode_string(N) || encode_string(S), 168) —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, cSHAKE128 se define como igual a SHAKE128. 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
cSHAKE128 ofrece 128 bits de seguridad, igual que SHAKE128. La cadena de personalización es pública, no una clave: usa KMAC128 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, cSHAKE128 equivale entonces a SHAKE128; para abc con 256 bits obtienes 5881092dd818bf5c…, igual que con SHAKE128.
¿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.