Zum Inhalt springen
ecdsa.com
JOSE, JWK und COSE

JOSE-Algorithmen: alg- und enc-Werte für JWS und JWE

Algorithmuskennungen für JWS und JWE aus dem IANA-JOSE-Register, von HS256 und ES256 bis ML-DSA und HPKE, mit ihren Implementierungsanforderungen und RFCs.

67 von 67 angezeigt

JOSE-Algorithmen · 67 Einträge

Algorithmuskennungen für JWS und JWE (alg und enc) mit ihren Implementierungsanforderungen.

NameBeschreibungVerwendungQuellen
A128CBCA128CBC ist eine WebCrypto-Kennung in JOSE, die nur in einem JWK vorkommen darf: AES-CBC ohne Authentifizierung. Implementierungsanforderung: verboten.JWKW3C Web Cryptography API
A128CBC-HS256A128CBC-HS256 ist ein JOSE-Algorithmus für die Inhaltsverschlüsselung (enc in einer JWE): AES-CBC mit HMAC mit SHA-256. Implementierungsanforderung: erforderlich.encRFC 7518, Section 5.2.3
A128CTRA128CTR ist eine WebCrypto-Kennung in JOSE, die nur in einem JWK vorkommen darf: AES-CTR ohne Authentifizierung. Implementierungsanforderung: verboten.JWKW3C Web Cryptography API
A128GCMA128GCM ist ein JOSE-Algorithmus für die Inhaltsverschlüsselung (enc in einer JWE): AES-GCM. Implementierungsanforderung: empfohlen.encRFC 7518, Section 5.3
A128GCMKWA128GCMKW ist ein JOSE-Algorithmus für das Schlüsselmanagement (alg in einer JWE): AES-GCM-Key-Wrap. Implementierungsanforderung: optional.algRFC 7518, Section 4.7
A128KWA128KW ist ein JOSE-Algorithmus für das Schlüsselmanagement (alg in einer JWE): AES-Key-Wrap. Implementierungsanforderung: empfohlen.algRFC 7518, Section 4.4
A192CBCA192CBC ist eine WebCrypto-Kennung in JOSE, die nur in einem JWK vorkommen darf: AES-CBC ohne Authentifizierung. Implementierungsanforderung: verboten.JWKW3C Web Cryptography API
A192CBC-HS384A192CBC-HS384 ist ein JOSE-Algorithmus für die Inhaltsverschlüsselung (enc in einer JWE): AES-CBC mit HMAC mit SHA-384. Implementierungsanforderung: optional.encRFC 7518, Section 5.2.4
A192CTRA192CTR ist eine WebCrypto-Kennung in JOSE, die nur in einem JWK vorkommen darf: AES-CTR ohne Authentifizierung. Implementierungsanforderung: verboten.JWKW3C Web Cryptography API
A192GCMA192GCM ist ein JOSE-Algorithmus für die Inhaltsverschlüsselung (enc in einer JWE): AES-GCM. Implementierungsanforderung: optional.encRFC 7518, Section 5.3
A192GCMKWA192GCMKW ist ein JOSE-Algorithmus für das Schlüsselmanagement (alg in einer JWE): AES-GCM-Key-Wrap. Implementierungsanforderung: optional.algRFC 7518, Section 4.7
A192KWA192KW ist ein JOSE-Algorithmus für das Schlüsselmanagement (alg in einer JWE): AES-Key-Wrap. Implementierungsanforderung: optional.algRFC 7518, Section 4.4
A256CBCA256CBC ist eine WebCrypto-Kennung in JOSE, die nur in einem JWK vorkommen darf: AES-CBC ohne Authentifizierung. Implementierungsanforderung: verboten.JWKW3C Web Cryptography API
A256CBC-HS512A256CBC-HS512 ist ein JOSE-Algorithmus für die Inhaltsverschlüsselung (enc in einer JWE): AES-CBC mit HMAC mit SHA-512. Implementierungsanforderung: erforderlich.encRFC 7518, Section 5.2.5
A256CTRA256CTR ist eine WebCrypto-Kennung in JOSE, die nur in einem JWK vorkommen darf: AES-CTR ohne Authentifizierung. Implementierungsanforderung: verboten.JWKW3C Web Cryptography API
A256GCMA256GCM ist ein JOSE-Algorithmus für die Inhaltsverschlüsselung (enc in einer JWE): AES-GCM. Implementierungsanforderung: empfohlen.encRFC 7518, Section 5.3
A256GCMKWA256GCMKW ist ein JOSE-Algorithmus für das Schlüsselmanagement (alg in einer JWE): AES-GCM-Key-Wrap. Implementierungsanforderung: optional.algRFC 7518, Section 4.7
A256KWA256KW ist ein JOSE-Algorithmus für das Schlüsselmanagement (alg in einer JWE): AES-Key-Wrap. Implementierungsanforderung: empfohlen.algRFC 7518, Section 4.4
dirdir ist ein JOSE-Algorithmus für das Schlüsselmanagement (alg in einer JWE): direkte Verwendung eines gemeinsamen symmetrischen Schlüssels. Implementierungsanforderung: empfohlen.algRFC 7518, Section 4.5
ECDH-ESECDH-ES ist ein JOSE-Algorithmus für das Schlüsselmanagement (alg in einer JWE): ephemer-statisches ECDH. Implementierungsanforderung: empfohlen, wird voraussichtlich erforderlich.algRFC 7518, Section 4.6
ECDH-ES+A128KWECDH-ES+A128KW ist ein JOSE-Algorithmus für das Schlüsselmanagement (alg in einer JWE): ephemer-statisches ECDH mit anschließendem AES-Key-Wrap. Implementierungsanforderung: empfohlen.algRFC 7518, Section 4.6
ECDH-ES+A192KWECDH-ES+A192KW ist ein JOSE-Algorithmus für das Schlüsselmanagement (alg in einer JWE): ephemer-statisches ECDH mit anschließendem AES-Key-Wrap. Implementierungsanforderung: optional.algRFC 7518, Section 4.6
ECDH-ES+A256KWECDH-ES+A256KW ist ein JOSE-Algorithmus für das Schlüsselmanagement (alg in einer JWE): ephemer-statisches ECDH mit anschließendem AES-Key-Wrap. Implementierungsanforderung: empfohlen.algRFC 7518, Section 4.6
Ed25519Ed25519 ist ein JOSE-Algorithmus für Signatur oder MAC (alg in einer JWS): EdDSA auf der Kurve edwards25519. Implementierungsanforderung: optional.edwards25519algRFC 9864, Section 2.2
Ed448Ed448 ist ein JOSE-Algorithmus für Signatur oder MAC (alg in einer JWS): EdDSA auf der Kurve edwards448. Implementierungsanforderung: optional.edwards448algRFC 9864, Section 2.2
EdDSAAnmerkungEdDSA ist ein JOSE-Algorithmus für Signatur oder MAC (alg in einer JWS): EdDSA. Implementierungsanforderung: veraltet.algRFC 9864, Section 2.2
ES256AnmerkungES256 ist ein JOSE-Algorithmus für Signatur oder MAC (alg in einer JWS): ECDSA auf der Kurve P-256 mit SHA-256. Implementierungsanforderung: empfohlen, wird voraussichtlich erforderlich.P-256algRFC 7518, Section 3.4
ES256KES256K ist ein JOSE-Algorithmus für Signatur oder MAC (alg in einer JWS): ECDSA auf der Kurve secp256k1 mit SHA-256. Implementierungsanforderung: optional.secp256k1algRFC 8812, Section 3.2
ES384ES384 ist ein JOSE-Algorithmus für Signatur oder MAC (alg in einer JWS): ECDSA auf der Kurve P-384 mit SHA-384. Implementierungsanforderung: optional.P-384algRFC 7518, Section 3.4
ES512ES512 ist ein JOSE-Algorithmus für Signatur oder MAC (alg in einer JWS): ECDSA auf der Kurve P-521 mit SHA-512. Implementierungsanforderung: optional.P-521algRFC 7518, Section 3.4
HPKE-0HPKE-0 ist ein JOSE-Algorithmus für das Schlüsselmanagement (alg in einer JWE): hybride Public-Key-Verschlüsselung (HPKE) auf der Kurve P-256. Implementierungsanforderung: optional.P-256algRFC-ietf-jose-hpke-encrypt-22, Section 5.1
HPKE-0-KEHPKE-0-KE ist ein JOSE-Algorithmus für das Schlüsselmanagement (alg in einer JWE): hybride Public-Key-Verschlüsselung (HPKE) auf der Kurve P-256. Implementierungsanforderung: optional.P-256algRFC-ietf-jose-hpke-encrypt-22, Section 6.2
HPKE-1HPKE-1 ist ein JOSE-Algorithmus für das Schlüsselmanagement (alg in einer JWE): hybride Public-Key-Verschlüsselung (HPKE) auf der Kurve P-384. Implementierungsanforderung: optional.P-384algRFC-ietf-jose-hpke-encrypt-22, Section 5.1
HPKE-1-KEHPKE-1-KE ist ein JOSE-Algorithmus für das Schlüsselmanagement (alg in einer JWE): hybride Public-Key-Verschlüsselung (HPKE) auf der Kurve P-384. Implementierungsanforderung: optional.P-384algRFC-ietf-jose-hpke-encrypt-22, Section 6.2
HPKE-2HPKE-2 ist ein JOSE-Algorithmus für das Schlüsselmanagement (alg in einer JWE): hybride Public-Key-Verschlüsselung (HPKE) auf der Kurve P-521. Implementierungsanforderung: optional.P-521algRFC-ietf-jose-hpke-encrypt-22, Section 5.1
HPKE-2-KEHPKE-2-KE ist ein JOSE-Algorithmus für das Schlüsselmanagement (alg in einer JWE): hybride Public-Key-Verschlüsselung (HPKE) auf der Kurve P-521. Implementierungsanforderung: optional.P-521algRFC-ietf-jose-hpke-encrypt-22, Section 6.2
HPKE-3HPKE-3 ist ein JOSE-Algorithmus für das Schlüsselmanagement (alg in einer JWE): hybride Public-Key-Verschlüsselung (HPKE) auf der Kurve curve25519. Implementierungsanforderung: optional.curve25519algRFC-ietf-jose-hpke-encrypt-22, Section 5.1
HPKE-3-KEHPKE-3-KE ist ein JOSE-Algorithmus für das Schlüsselmanagement (alg in einer JWE): hybride Public-Key-Verschlüsselung (HPKE) auf der Kurve curve25519. Implementierungsanforderung: optional.curve25519algRFC-ietf-jose-hpke-encrypt-22, Section 6.2
HPKE-4HPKE-4 ist ein JOSE-Algorithmus für das Schlüsselmanagement (alg in einer JWE): hybride Public-Key-Verschlüsselung (HPKE) auf der Kurve curve25519. Implementierungsanforderung: optional.curve25519algRFC-ietf-jose-hpke-encrypt-22, Section 5.1
HPKE-5HPKE-5 ist ein JOSE-Algorithmus für das Schlüsselmanagement (alg in einer JWE): hybride Public-Key-Verschlüsselung (HPKE) auf der Kurve curve448. Implementierungsanforderung: optional.curve448algRFC-ietf-jose-hpke-encrypt-22, Section 5.1
HPKE-5-KEHPKE-5-KE ist ein JOSE-Algorithmus für das Schlüsselmanagement (alg in einer JWE): hybride Public-Key-Verschlüsselung (HPKE) auf der Kurve curve448. Implementierungsanforderung: optional.curve448algRFC-ietf-jose-hpke-encrypt-22, Section 6.2
HPKE-6HPKE-6 ist ein JOSE-Algorithmus für das Schlüsselmanagement (alg in einer JWE): hybride Public-Key-Verschlüsselung (HPKE) auf der Kurve curve448. Implementierungsanforderung: optional.curve448algRFC-ietf-jose-hpke-encrypt-22, Section 5.1
HPKE-7HPKE-7 ist ein JOSE-Algorithmus für das Schlüsselmanagement (alg in einer JWE): hybride Public-Key-Verschlüsselung (HPKE) auf der Kurve P-256. Implementierungsanforderung: optional.P-256algRFC-ietf-jose-hpke-encrypt-22, Section 5.1
HPKE-7-KEHPKE-7-KE ist ein JOSE-Algorithmus für das Schlüsselmanagement (alg in einer JWE): hybride Public-Key-Verschlüsselung (HPKE) auf der Kurve P-256. Implementierungsanforderung: optional.P-256algRFC-ietf-jose-hpke-encrypt-22, Section 6.2
HS1HS1 ist eine WebCrypto-Kennung in JOSE, die nur in einem JWK vorkommen darf: HMAC mit SHA-1. Implementierungsanforderung: verboten.JWKW3C Web Cryptography API
HS256AnmerkungHS256 ist ein JOSE-Algorithmus für Signatur oder MAC (alg in einer JWS): HMAC mit SHA-256. Implementierungsanforderung: erforderlich.algRFC 7518, Section 3.2
HS384HS384 ist ein JOSE-Algorithmus für Signatur oder MAC (alg in einer JWS): HMAC mit SHA-384. Implementierungsanforderung: optional.algRFC 7518, Section 3.2
HS512HS512 ist ein JOSE-Algorithmus für Signatur oder MAC (alg in einer JWS): HMAC mit SHA-512. Implementierungsanforderung: optional.algRFC 7518, Section 3.2
ML-DSA-44ML-DSA-44 ist ein JOSE-Algorithmus für Signatur oder MAC (alg in einer JWS): ML-DSA. Implementierungsanforderung: optional.algRFC 9964
ML-DSA-65AnmerkungML-DSA-65 ist ein JOSE-Algorithmus für Signatur oder MAC (alg in einer JWS): ML-DSA. Implementierungsanforderung: optional.algRFC 9964
ML-DSA-87ML-DSA-87 ist ein JOSE-Algorithmus für Signatur oder MAC (alg in einer JWS): ML-DSA. Implementierungsanforderung: optional.algRFC 9964
noneAnmerkungnone ist ein JOSE-Algorithmus für Signatur oder MAC (alg in einer JWS): überhaupt keine Signatur und kein MAC. Implementierungsanforderung: optional.algRFC 7518, Section 3.6
PBES2-HS256+A128KWPBES2-HS256+A128KW ist ein JOSE-Algorithmus für das Schlüsselmanagement (alg in einer JWE): passwortbasierte Verschlüsselung (PBES2) mit SHA-256. Implementierungsanforderung: optional.algRFC 7518, Section 4.8
PBES2-HS384+A192KWPBES2-HS384+A192KW ist ein JOSE-Algorithmus für das Schlüsselmanagement (alg in einer JWE): passwortbasierte Verschlüsselung (PBES2) mit SHA-384. Implementierungsanforderung: optional.algRFC 7518, Section 4.8
PBES2-HS512+A256KWPBES2-HS512+A256KW ist ein JOSE-Algorithmus für das Schlüsselmanagement (alg in einer JWE): passwortbasierte Verschlüsselung (PBES2) mit SHA-512. Implementierungsanforderung: optional.algRFC 7518, Section 4.8
PS256PS256 ist ein JOSE-Algorithmus für Signatur oder MAC (alg in einer JWS): RSASSA-PSS mit SHA-256. Implementierungsanforderung: optional.algRFC 7518, Section 3.5
PS384PS384 ist ein JOSE-Algorithmus für Signatur oder MAC (alg in einer JWS): RSASSA-PSS mit SHA-384. Implementierungsanforderung: optional.algRFC 7518, Section 3.5
PS512PS512 ist ein JOSE-Algorithmus für Signatur oder MAC (alg in einer JWS): RSASSA-PSS mit SHA-512. Implementierungsanforderung: optional.algRFC 7518, Section 3.5
RS1RS1 ist eine WebCrypto-Kennung in JOSE, die nur in einem JWK vorkommen darf: RSASSA-PKCS1-v1_5 mit SHA-1. Implementierungsanforderung: verboten.JWKW3C Web Cryptography API
RS256AnmerkungRS256 ist ein JOSE-Algorithmus für Signatur oder MAC (alg in einer JWS): RSASSA-PKCS1-v1_5 mit SHA-256. Implementierungsanforderung: empfohlen.algRFC 7518, Section 3.3
RS384RS384 ist ein JOSE-Algorithmus für Signatur oder MAC (alg in einer JWS): RSASSA-PKCS1-v1_5 mit SHA-384. Implementierungsanforderung: optional.algRFC 7518, Section 3.3
RS512RS512 ist ein JOSE-Algorithmus für Signatur oder MAC (alg in einer JWS): RSASSA-PKCS1-v1_5 mit SHA-512. Implementierungsanforderung: optional.algRFC 7518, Section 3.3
RSA-OAEPRSA-OAEP ist ein JOSE-Algorithmus für das Schlüsselmanagement (alg in einer JWE): Verschlüsselung mit RSAES-OAEP mit SHA-1. Implementierungsanforderung: empfohlen, wird voraussichtlich erforderlich.algRFC 7518, Section 4.3
RSA-OAEP-256RSA-OAEP-256 ist ein JOSE-Algorithmus für das Schlüsselmanagement (alg in einer JWE): Verschlüsselung mit RSAES-OAEP mit SHA-256. Implementierungsanforderung: optional.algRFC 7518, Section 4.3
RSA-OAEP-384RSA-OAEP-384 ist ein JOSE-Algorithmus für das Schlüsselmanagement (alg in einer JWE): Verschlüsselung mit RSAES-OAEP mit SHA-384. Implementierungsanforderung: optional.algW3C Web Cryptography API
RSA-OAEP-512RSA-OAEP-512 ist ein JOSE-Algorithmus für das Schlüsselmanagement (alg in einer JWE): Verschlüsselung mit RSAES-OAEP mit SHA-512. Implementierungsanforderung: optional.algW3C Web Cryptography API
RSA1_5AnmerkungRSA1_5 ist ein JOSE-Algorithmus für das Schlüsselmanagement (alg in einer JWE): Verschlüsselung mit RSAES-PKCS1-v1_5. Implementierungsanforderung: empfohlen, wird voraussichtlich optional.algRFC 7518, Section 4.2

Quelle: JSON Object Signing and Encryption (JOSE) (IANA), abgerufen am 2026-10-20. Datenlizenz: CC0-1.0. JSON Web Signature and Encryption Algorithms

Anmerkungen zu wichtigen Einträgen

EdDSA

Die polymorphe EdDSA-Kennung aus RFC 8037, von RFC 9864 zugunsten von Ed25519 und Ed448 als veraltet markiert.

Bei „EdDSA“ ergibt sich die Kurve aus dem Schlüssel (crv: Ed25519 oder Ed448), sodass eine Partei nicht ankündigen kann, welche Kurve sie unterstützt. RFC 9864 registriert die vollständig spezifizierten Namen Ed25519 und Ed448 und kennzeichnet „EdDSA“ als „Deprecated“.

ES256

ECDSA auf P-256 mit SHA-256, der JWS-Algorithmus, der für signierte JWTs mit asymmetrischen Schlüsseln am häufigsten verwendet wird.

Eine JWS-Signatur mit ES256 ist die 64 Byte lange Verkettung von r und s, jeweils auf 32 Byte aufgefüllt (RFC 7518 §3.4), nicht die DER-Struktur, die OpenSSL und Java erzeugen; die Umwandlung zwischen beiden ist eine häufige Ursache von Fehlern wie „invalid signature“ – siehe den Konverter DER ⇄ Raw.

RFC 9864 markiert die polymorphe COSE-Kennung ES256 (−7) zugunsten des vollständig spezifizierten ESP256 (−9) als veraltet; in JOSE legt der Name ES256 die Kurve bereits fest, daher ist er nicht betroffen.

HS256

HMAC mit SHA-256, ein symmetrischer JWS-Algorithmus: Wer ein Token prüfen kann, kann auch eines fälschen.

HS256 ist der einzige Algorithmus, den RFC 7518 als verpflichtend festlegt. Weil dasselbe Secret signiert und prüft, eignet er sich für einen einzelnen Dienst, der seine eigenen Tokens ausstellt und prüft. Ein kurzes oder erratbares Secret lässt sich aus jedem beliebigen Token offline per Brute Force ermitteln; RFC 7518 §3.2 verlangt einen Schlüssel, der mindestens so lang ist wie die Ausgabe der Hashfunktion – 256 Bit für HS256 –, und er muss zufällig sein.

ML-DSA-65

ML-DSA-65 (FIPS 204) für JWS, registriert durch RFC 9964 zusammen mit dem neuen Schlüsseltyp AKP.

Post-Quanten-Schlüssel für JWS verwenden den Schlüsseltyp Algorithm Key Pair (kty „AKP“), dessen Parameter „pub“ den rohen öffentlichen Schlüssel von ML-DSA enthält und dessen „alg“ ihn an einen Parametersatz bindet. Signaturen sind 3.309 Byte groß, Tokens werden dadurch mehrere Kilobyte lang.

none

alg „none“ kennzeichnet ein ungesichertes JWS – ein Token ganz ohne Signatur.

RFC 7518 §3.6 definiert „none“ für Kontexte, in denen die Integrität auf anderem Weg gewährleistet ist. Bibliotheken, die den Header des Tokens selbst den Algorithmus wählen lassen, haben gefälschte Tokens mit alg „none“ akzeptiert – die bekannteste Schwachstelle von JWT (RFC 8725 §2.1); Verifizierer müssen den Wert ablehnen, sofern die Anwendung nicht ausdrücklich ungesicherte Tokens erwartet.

RS256

RSASSA-PKCS1-v1_5 mit SHA-256, der JWS-Algorithmus der meisten ID-Tokens von OpenID Connect.

OpenID Connect Core §15.1 verlangt, dass Provider das Signieren von ID-Tokens mit RS256 unterstützen; deshalb verwenden die meisten ID-Tokens und JWKS-Endpunkte RSA-Schlüssel. Die klassische Falle bei RS256 ist Algorithm Confusion: Ein Verifizierer, der HS256 für einen Schlüssel akzeptiert, der für RS256 gedacht ist, lässt sich dazu bringen, den öffentlichen Schlüssel als HMAC-Secret zu verwenden (RFC 8725 §2.1). Lege den erwarteten Algorithmus pro Schlüssel fest, wie es RFC 8725 §3.1 verlangt.

RSA1_5

Schlüsselverschlüsselung mit RSAES-PKCS1-v1_5 für JWE, anfällig für Padding-Oracle-Angriffe nach Bleichenbacher.

Ein Server, der auf irgendeine Weise – durch eine Fehlermeldung oder durch Antwortzeiten – verrät, ob das Padding eines entschlüsselten RSA1_5-Schlüssels gültig war, ermöglicht es einem Angreifer, Inhaltsschlüssel Anfrage für Anfrage zu entschlüsseln. RFC 7518 kennzeichnet RSA1_5 als „Recommended-“, also als Kandidaten für eine Herabstufung; verwende besser RSA-OAEP-256 oder ECDH-ES.

Alle Register