Saltar al contenido
ecdsa.com
JOSE, JWK y COSE

Algoritmos JOSE: valores alg y enc para JWS y JWE

Identificadores de algoritmos JWS y JWE del registro JOSE de la IANA, de HS256 y ES256 a ML-DSA y HPKE, con sus requisitos de implementación y sus RFC.

Visibles: 67 de 67

Algoritmos JOSE · 67 entradas

Identificadores de algoritmos JWS y JWE (alg y enc) con sus requisitos de implementación.

NombreDescripciónUsoReferencias
A128CBCA128CBC es un identificador JOSE de WebCrypto que solo puede aparecer en una JWK: AES-CBC sin autenticación. Requisito de implementación: prohibido.JWKW3C Web Cryptography API
A128CBC-HS256A128CBC-HS256 es un algoritmo JOSE de cifrado de contenido (enc en un JWE): AES-CBC con HMAC con SHA-256. Requisito de implementación: obligatorio.encRFC 7518, Section 5.2.3
A128CTRA128CTR es un identificador JOSE de WebCrypto que solo puede aparecer en una JWK: AES-CTR sin autenticación. Requisito de implementación: prohibido.JWKW3C Web Cryptography API
A128GCMA128GCM es un algoritmo JOSE de cifrado de contenido (enc en un JWE): AES-GCM. Requisito de implementación: recomendado.encRFC 7518, Section 5.3
A128GCMKWA128GCMKW es un algoritmo JOSE de gestión de claves (alg en un JWE): envoltura de claves AES-GCM. Requisito de implementación: opcional.algRFC 7518, Section 4.7
A128KWA128KW es un algoritmo JOSE de gestión de claves (alg en un JWE): envoltura de claves AES (key wrap). Requisito de implementación: recomendado.algRFC 7518, Section 4.4
A192CBCA192CBC es un identificador JOSE de WebCrypto que solo puede aparecer en una JWK: AES-CBC sin autenticación. Requisito de implementación: prohibido.JWKW3C Web Cryptography API
A192CBC-HS384A192CBC-HS384 es un algoritmo JOSE de cifrado de contenido (enc en un JWE): AES-CBC con HMAC con SHA-384. Requisito de implementación: opcional.encRFC 7518, Section 5.2.4
A192CTRA192CTR es un identificador JOSE de WebCrypto que solo puede aparecer en una JWK: AES-CTR sin autenticación. Requisito de implementación: prohibido.JWKW3C Web Cryptography API
A192GCMA192GCM es un algoritmo JOSE de cifrado de contenido (enc en un JWE): AES-GCM. Requisito de implementación: opcional.encRFC 7518, Section 5.3
A192GCMKWA192GCMKW es un algoritmo JOSE de gestión de claves (alg en un JWE): envoltura de claves AES-GCM. Requisito de implementación: opcional.algRFC 7518, Section 4.7
A192KWA192KW es un algoritmo JOSE de gestión de claves (alg en un JWE): envoltura de claves AES (key wrap). Requisito de implementación: opcional.algRFC 7518, Section 4.4
A256CBCA256CBC es un identificador JOSE de WebCrypto que solo puede aparecer en una JWK: AES-CBC sin autenticación. Requisito de implementación: prohibido.JWKW3C Web Cryptography API
A256CBC-HS512A256CBC-HS512 es un algoritmo JOSE de cifrado de contenido (enc en un JWE): AES-CBC con HMAC con SHA-512. Requisito de implementación: obligatorio.encRFC 7518, Section 5.2.5
A256CTRA256CTR es un identificador JOSE de WebCrypto que solo puede aparecer en una JWK: AES-CTR sin autenticación. Requisito de implementación: prohibido.JWKW3C Web Cryptography API
A256GCMA256GCM es un algoritmo JOSE de cifrado de contenido (enc en un JWE): AES-GCM. Requisito de implementación: recomendado.encRFC 7518, Section 5.3
A256GCMKWA256GCMKW es un algoritmo JOSE de gestión de claves (alg en un JWE): envoltura de claves AES-GCM. Requisito de implementación: opcional.algRFC 7518, Section 4.7
A256KWA256KW es un algoritmo JOSE de gestión de claves (alg en un JWE): envoltura de claves AES (key wrap). Requisito de implementación: recomendado.algRFC 7518, Section 4.4
dirdir es un algoritmo JOSE de gestión de claves (alg en un JWE): uso directo de una clave simétrica compartida. Requisito de implementación: recomendado.algRFC 7518, Section 4.5
ECDH-ESECDH-ES es un algoritmo JOSE de gestión de claves (alg en un JWE): ECDH efímero-estático. Requisito de implementación: recomendado, probablemente pasará a ser obligatorio.algRFC 7518, Section 4.6
ECDH-ES+A128KWECDH-ES+A128KW es un algoritmo JOSE de gestión de claves (alg en un JWE): ECDH efímero-estático seguido de envoltura de claves AES. Requisito de implementación: recomendado.algRFC 7518, Section 4.6
ECDH-ES+A192KWECDH-ES+A192KW es un algoritmo JOSE de gestión de claves (alg en un JWE): ECDH efímero-estático seguido de envoltura de claves AES. Requisito de implementación: opcional.algRFC 7518, Section 4.6
ECDH-ES+A256KWECDH-ES+A256KW es un algoritmo JOSE de gestión de claves (alg en un JWE): ECDH efímero-estático seguido de envoltura de claves AES. Requisito de implementación: recomendado.algRFC 7518, Section 4.6
Ed25519Ed25519 es un algoritmo JOSE de firma o MAC (alg en un JWS): EdDSA sobre edwards25519. Requisito de implementación: opcional.edwards25519algRFC 9864, Section 2.2
Ed448Ed448 es un algoritmo JOSE de firma o MAC (alg en un JWS): EdDSA sobre edwards448. Requisito de implementación: opcional.edwards448algRFC 9864, Section 2.2
EdDSANotaEdDSA es un algoritmo JOSE de firma o MAC (alg en un JWS): EdDSA. Requisito de implementación: en desuso.algRFC 9864, Section 2.2
ES256NotaES256 es un algoritmo JOSE de firma o MAC (alg en un JWS): ECDSA sobre P-256 con SHA-256. Requisito de implementación: recomendado, probablemente pasará a ser obligatorio.P-256algRFC 7518, Section 3.4
ES256KES256K es un algoritmo JOSE de firma o MAC (alg en un JWS): ECDSA sobre secp256k1 con SHA-256. Requisito de implementación: opcional.secp256k1algRFC 8812, Section 3.2
ES384ES384 es un algoritmo JOSE de firma o MAC (alg en un JWS): ECDSA sobre P-384 con SHA-384. Requisito de implementación: opcional.P-384algRFC 7518, Section 3.4
ES512ES512 es un algoritmo JOSE de firma o MAC (alg en un JWS): ECDSA sobre P-521 con SHA-512. Requisito de implementación: opcional.P-521algRFC 7518, Section 3.4
HPKE-0HPKE-0 es un algoritmo JOSE de gestión de claves (alg en un JWE): cifrado híbrido de clave pública (HPKE) sobre P-256. Requisito de implementación: opcional.P-256algRFC-ietf-jose-hpke-encrypt-22, Section 5.1
HPKE-0-KEHPKE-0-KE es un algoritmo JOSE de gestión de claves (alg en un JWE): cifrado híbrido de clave pública (HPKE) sobre P-256. Requisito de implementación: opcional.P-256algRFC-ietf-jose-hpke-encrypt-22, Section 6.2
HPKE-1HPKE-1 es un algoritmo JOSE de gestión de claves (alg en un JWE): cifrado híbrido de clave pública (HPKE) sobre P-384. Requisito de implementación: opcional.P-384algRFC-ietf-jose-hpke-encrypt-22, Section 5.1
HPKE-1-KEHPKE-1-KE es un algoritmo JOSE de gestión de claves (alg en un JWE): cifrado híbrido de clave pública (HPKE) sobre P-384. Requisito de implementación: opcional.P-384algRFC-ietf-jose-hpke-encrypt-22, Section 6.2
HPKE-2HPKE-2 es un algoritmo JOSE de gestión de claves (alg en un JWE): cifrado híbrido de clave pública (HPKE) sobre P-521. Requisito de implementación: opcional.P-521algRFC-ietf-jose-hpke-encrypt-22, Section 5.1
HPKE-2-KEHPKE-2-KE es un algoritmo JOSE de gestión de claves (alg en un JWE): cifrado híbrido de clave pública (HPKE) sobre P-521. Requisito de implementación: opcional.P-521algRFC-ietf-jose-hpke-encrypt-22, Section 6.2
HPKE-3HPKE-3 es un algoritmo JOSE de gestión de claves (alg en un JWE): cifrado híbrido de clave pública (HPKE) sobre curve25519. Requisito de implementación: opcional.curve25519algRFC-ietf-jose-hpke-encrypt-22, Section 5.1
HPKE-3-KEHPKE-3-KE es un algoritmo JOSE de gestión de claves (alg en un JWE): cifrado híbrido de clave pública (HPKE) sobre curve25519. Requisito de implementación: opcional.curve25519algRFC-ietf-jose-hpke-encrypt-22, Section 6.2
HPKE-4HPKE-4 es un algoritmo JOSE de gestión de claves (alg en un JWE): cifrado híbrido de clave pública (HPKE) sobre curve25519. Requisito de implementación: opcional.curve25519algRFC-ietf-jose-hpke-encrypt-22, Section 5.1
HPKE-5HPKE-5 es un algoritmo JOSE de gestión de claves (alg en un JWE): cifrado híbrido de clave pública (HPKE) sobre curve448. Requisito de implementación: opcional.curve448algRFC-ietf-jose-hpke-encrypt-22, Section 5.1
HPKE-5-KEHPKE-5-KE es un algoritmo JOSE de gestión de claves (alg en un JWE): cifrado híbrido de clave pública (HPKE) sobre curve448. Requisito de implementación: opcional.curve448algRFC-ietf-jose-hpke-encrypt-22, Section 6.2
HPKE-6HPKE-6 es un algoritmo JOSE de gestión de claves (alg en un JWE): cifrado híbrido de clave pública (HPKE) sobre curve448. Requisito de implementación: opcional.curve448algRFC-ietf-jose-hpke-encrypt-22, Section 5.1
HPKE-7HPKE-7 es un algoritmo JOSE de gestión de claves (alg en un JWE): cifrado híbrido de clave pública (HPKE) sobre P-256. Requisito de implementación: opcional.P-256algRFC-ietf-jose-hpke-encrypt-22, Section 5.1
HPKE-7-KEHPKE-7-KE es un algoritmo JOSE de gestión de claves (alg en un JWE): cifrado híbrido de clave pública (HPKE) sobre P-256. Requisito de implementación: opcional.P-256algRFC-ietf-jose-hpke-encrypt-22, Section 6.2
HS1HS1 es un identificador JOSE de WebCrypto que solo puede aparecer en una JWK: HMAC con SHA-1. Requisito de implementación: prohibido.JWKW3C Web Cryptography API
HS256NotaHS256 es un algoritmo JOSE de firma o MAC (alg en un JWS): HMAC con SHA-256. Requisito de implementación: obligatorio.algRFC 7518, Section 3.2
HS384HS384 es un algoritmo JOSE de firma o MAC (alg en un JWS): HMAC con SHA-384. Requisito de implementación: opcional.algRFC 7518, Section 3.2
HS512HS512 es un algoritmo JOSE de firma o MAC (alg en un JWS): HMAC con SHA-512. Requisito de implementación: opcional.algRFC 7518, Section 3.2
ML-DSA-44ML-DSA-44 es un algoritmo JOSE de firma o MAC (alg en un JWS): ML-DSA. Requisito de implementación: opcional.algRFC 9964
ML-DSA-65NotaML-DSA-65 es un algoritmo JOSE de firma o MAC (alg en un JWS): ML-DSA. Requisito de implementación: opcional.algRFC 9964
ML-DSA-87ML-DSA-87 es un algoritmo JOSE de firma o MAC (alg en un JWS): ML-DSA. Requisito de implementación: opcional.algRFC 9964
noneNotanone es un algoritmo JOSE de firma o MAC (alg en un JWS): sin firma ni MAC de ningún tipo. Requisito de implementación: opcional.algRFC 7518, Section 3.6
PBES2-HS256+A128KWPBES2-HS256+A128KW es un algoritmo JOSE de gestión de claves (alg en un JWE): cifrado basado en contraseña (PBES2) con SHA-256. Requisito de implementación: opcional.algRFC 7518, Section 4.8
PBES2-HS384+A192KWPBES2-HS384+A192KW es un algoritmo JOSE de gestión de claves (alg en un JWE): cifrado basado en contraseña (PBES2) con SHA-384. Requisito de implementación: opcional.algRFC 7518, Section 4.8
PBES2-HS512+A256KWPBES2-HS512+A256KW es un algoritmo JOSE de gestión de claves (alg en un JWE): cifrado basado en contraseña (PBES2) con SHA-512. Requisito de implementación: opcional.algRFC 7518, Section 4.8
PS256PS256 es un algoritmo JOSE de firma o MAC (alg en un JWS): RSASSA-PSS con SHA-256. Requisito de implementación: opcional.algRFC 7518, Section 3.5
PS384PS384 es un algoritmo JOSE de firma o MAC (alg en un JWS): RSASSA-PSS con SHA-384. Requisito de implementación: opcional.algRFC 7518, Section 3.5
PS512PS512 es un algoritmo JOSE de firma o MAC (alg en un JWS): RSASSA-PSS con SHA-512. Requisito de implementación: opcional.algRFC 7518, Section 3.5
RS1RS1 es un identificador JOSE de WebCrypto que solo puede aparecer en una JWK: RSASSA-PKCS1-v1_5 con SHA-1. Requisito de implementación: prohibido.JWKW3C Web Cryptography API
RS256NotaRS256 es un algoritmo JOSE de firma o MAC (alg en un JWS): RSASSA-PKCS1-v1_5 con SHA-256. Requisito de implementación: recomendado.algRFC 7518, Section 3.3
RS384RS384 es un algoritmo JOSE de firma o MAC (alg en un JWS): RSASSA-PKCS1-v1_5 con SHA-384. Requisito de implementación: opcional.algRFC 7518, Section 3.3
RS512RS512 es un algoritmo JOSE de firma o MAC (alg en un JWS): RSASSA-PKCS1-v1_5 con SHA-512. Requisito de implementación: opcional.algRFC 7518, Section 3.3
RSA-OAEPRSA-OAEP es un algoritmo JOSE de gestión de claves (alg en un JWE): cifrado RSAES-OAEP con SHA-1. Requisito de implementación: recomendado, probablemente pasará a ser obligatorio.algRFC 7518, Section 4.3
RSA-OAEP-256RSA-OAEP-256 es un algoritmo JOSE de gestión de claves (alg en un JWE): cifrado RSAES-OAEP con SHA-256. Requisito de implementación: opcional.algRFC 7518, Section 4.3
RSA-OAEP-384RSA-OAEP-384 es un algoritmo JOSE de gestión de claves (alg en un JWE): cifrado RSAES-OAEP con SHA-384. Requisito de implementación: opcional.algW3C Web Cryptography API
RSA-OAEP-512RSA-OAEP-512 es un algoritmo JOSE de gestión de claves (alg en un JWE): cifrado RSAES-OAEP con SHA-512. Requisito de implementación: opcional.algW3C Web Cryptography API
RSA1_5NotaRSA1_5 es un algoritmo JOSE de gestión de claves (alg en un JWE): cifrado RSAES-PKCS1-v1_5. Requisito de implementación: recomendado, probablemente pasará a ser opcional.algRFC 7518, Section 4.2

Fuente: JSON Object Signing and Encryption (JOSE) (IANA), consultada el 2026-10-20. Licencia de los datos: CC0-1.0. JSON Web Signature and Encryption Algorithms

Notas sobre entradas destacadas

EdDSA

El identificador polimórfico EdDSA del RFC 8037, declarado obsoleto por el RFC 9864 en favor de Ed25519 y Ed448.

Con «EdDSA», la curva sale de la clave (crv: Ed25519 o Ed448), así que una parte no puede anunciar qué curva admite. El RFC 9864 registra los nombres totalmente especificados Ed25519 y Ed448 y marca «EdDSA» como obsoleto (Deprecated).

ES256

ECDSA en P-256 con SHA-256, el algoritmo JWS más usado en los JWT firmados con claves asimétricas.

Una firma JWS con ES256 es la concatenación de 64 bytes de r y s, cada uno rellenado hasta 32 bytes (RFC 7518 §3.4), y no la estructura DER que producen OpenSSL y Java; la conversión entre ambas es una fuente habitual de errores «invalid signature»: consulta el conversor DER ⇄ en bruto.

El RFC 9864 declara obsoleto el identificador COSE polimórfico ES256 (−7) en favor de ESP256 (−9), totalmente especificado; en JOSE, el nombre ES256 ya fija la curva, así que no le afecta.

HS256

HMAC con SHA-256, un algoritmo JWS simétrico: quien puede verificar un token también puede falsificarlo.

HS256 es el único algoritmo que el RFC 7518 hace obligatorio. Como el mismo secreto firma y verifica, es adecuado para un único servicio que emite y comprueba sus propios tokens. Un secreto corto o fácil de adivinar se puede obtener por fuerza bruta sin conexión a partir de cualquier token; el RFC 7518 §3.2 exige una clave al menos tan larga como la salida del hash —256 bits para HS256—, y debe ser aleatoria.

ML-DSA-65

ML-DSA-65 (FIPS 204) para JWS, registrado por el RFC 9964 junto con el nuevo tipo de clave AKP.

Las claves JWS poscuánticas usan el tipo de clave Algorithm Key Pair («par de claves de algoritmo», kty «AKP»), cuyo miembro «pub» contiene la clave pública ML-DSA en bruto y cuyo «alg» la vincula a un único conjunto de parámetros. Las firmas ocupan 3309 bytes, así que los tokens llegan a medir varios kilobytes.

none

alg «none» marca un JWS sin protección, es decir, un token sin ninguna firma.

El RFC 7518 §3.6 define «none» para contextos en los que la integridad se garantiza por otros medios. Las bibliotecas que dejan que el propio encabezado del token elija el algoritmo han aceptado tokens falsificados con alg «none», la vulnerabilidad de JWT más conocida (RFC 8725 §2.1); los verificadores deben rechazarlo salvo que la aplicación espere explícitamente tokens sin protección.

RS256

RSASSA-PKCS1-v1_5 con SHA-256, el algoritmo JWS de la mayoría de los tokens de ID de OpenID Connect.

OpenID Connect Core §15.1 exige que los proveedores admitan la firma de tokens de ID con RS256, y por eso la mayoría de los tokens de ID y de los endpoints JWKS usan claves RSA. Su error clásico es la confusión de algoritmos: a un verificador que acepta HS256 para una clave destinada a RS256 se le puede engañar para que use la clave pública como secreto HMAC (RFC 8725 §2.1). Fija el algoritmo esperado para cada clave, como exige el RFC 8725 §3.1.

RSA1_5

Cifrado de claves RSAES-PKCS1-v1_5 para JWE, expuesto a ataques de oráculo de relleno del tipo Bleichenbacher.

Un servidor que revela de cualquier forma —un mensaje de error, el tiempo de respuesta— si el relleno de una clave RSA1_5 descifrada era válido permite a un atacante descifrar las claves de contenido consulta a consulta. El RFC 7518 marca RSA1_5 como «Recommended-», es decir, que probablemente bajará de categoría; usa en su lugar RSA-OAEP-256 o ECDH-ES.

Todos los registros