本文へスキップ
ecdsa.com
JOSE、JWK、COSE

JOSE アルゴリズム|JWS と JWE の alg・enc の値

IANA の JOSE レジストリにある JWS・JWE のアルゴリズム識別子を、HS256 や ES256 から ML-DSA、HPKE まで、各アルゴリズムの実装要件と RFC 付きで掲載しています。

67 件中 67 件を表示

JOSE アルゴリズム · 67 件

JWS と JWE のアルゴリズム識別子(alg と enc)と、その実装要件です。

名称説明用途参考文献
A128CBCA128CBC は JOSE の JWK にのみ出現しうる WebCrypto 識別子です。方式:認証なしの AES-CBC。実装要件:禁止。JWKW3C Web Cryptography API
A128CBC-HS256A128CBC-HS256 は JOSE のコンテンツ暗号化アルゴリズム(JWE の enc)です。方式:HMAC 付きの AES-CBC(SHA-256)。実装要件:必須。encRFC 7518, Section 5.2.3
A128CTRA128CTR は JOSE の JWK にのみ出現しうる WebCrypto 識別子です。方式:認証なしの AES-CTR。実装要件:禁止。JWKW3C Web Cryptography API
A128GCMA128GCM は JOSE のコンテンツ暗号化アルゴリズム(JWE の enc)です。方式:AES-GCM。実装要件:推奨。encRFC 7518, Section 5.3
A128GCMKWA128GCMKW は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:AES-GCM 鍵ラップ。実装要件:任意。algRFC 7518, Section 4.7
A128KWA128KW は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:AES 鍵ラップ。実装要件:推奨。algRFC 7518, Section 4.4
A192CBCA192CBC は JOSE の JWK にのみ出現しうる WebCrypto 識別子です。方式:認証なしの AES-CBC。実装要件:禁止。JWKW3C Web Cryptography API
A192CBC-HS384A192CBC-HS384 は JOSE のコンテンツ暗号化アルゴリズム(JWE の enc)です。方式:HMAC 付きの AES-CBC(SHA-384)。実装要件:任意。encRFC 7518, Section 5.2.4
A192CTRA192CTR は JOSE の JWK にのみ出現しうる WebCrypto 識別子です。方式:認証なしの AES-CTR。実装要件:禁止。JWKW3C Web Cryptography API
A192GCMA192GCM は JOSE のコンテンツ暗号化アルゴリズム(JWE の enc)です。方式:AES-GCM。実装要件:任意。encRFC 7518, Section 5.3
A192GCMKWA192GCMKW は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:AES-GCM 鍵ラップ。実装要件:任意。algRFC 7518, Section 4.7
A192KWA192KW は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:AES 鍵ラップ。実装要件:任意。algRFC 7518, Section 4.4
A256CBCA256CBC は JOSE の JWK にのみ出現しうる WebCrypto 識別子です。方式:認証なしの AES-CBC。実装要件:禁止。JWKW3C Web Cryptography API
A256CBC-HS512A256CBC-HS512 は JOSE のコンテンツ暗号化アルゴリズム(JWE の enc)です。方式:HMAC 付きの AES-CBC(SHA-512)。実装要件:必須。encRFC 7518, Section 5.2.5
A256CTRA256CTR は JOSE の JWK にのみ出現しうる WebCrypto 識別子です。方式:認証なしの AES-CTR。実装要件:禁止。JWKW3C Web Cryptography API
A256GCMA256GCM は JOSE のコンテンツ暗号化アルゴリズム(JWE の enc)です。方式:AES-GCM。実装要件:推奨。encRFC 7518, Section 5.3
A256GCMKWA256GCMKW は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:AES-GCM 鍵ラップ。実装要件:任意。algRFC 7518, Section 4.7
A256KWA256KW は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:AES 鍵ラップ。実装要件:推奨。algRFC 7518, Section 4.4
dirdir は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:共有された共通鍵の直接使用。実装要件:推奨。algRFC 7518, Section 4.5
ECDH-ESECDH-ES は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:一時鍵と静的鍵による ECDH(ephemeral-static)。実装要件:推奨(将来は必須になる見込み)。algRFC 7518, Section 4.6
ECDH-ES+A128KWECDH-ES+A128KW は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:一時鍵と静的鍵による ECDH と、それに続く AES 鍵ラップ。実装要件:推奨。algRFC 7518, Section 4.6
ECDH-ES+A192KWECDH-ES+A192KW は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:一時鍵と静的鍵による ECDH と、それに続く AES 鍵ラップ。実装要件:任意。algRFC 7518, Section 4.6
ECDH-ES+A256KWECDH-ES+A256KW は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:一時鍵と静的鍵による ECDH と、それに続く AES 鍵ラップ。実装要件:推奨。algRFC 7518, Section 4.6
Ed25519Ed25519 は JOSE の署名または MAC アルゴリズム(JWS の alg)です。方式:edwards25519 上の EdDSA。実装要件:任意。edwards25519algRFC 9864, Section 2.2
Ed448Ed448 は JOSE の署名または MAC アルゴリズム(JWS の alg)です。方式:edwards448 上の EdDSA。実装要件:任意。edwards448algRFC 9864, Section 2.2
EdDSA注記EdDSA は JOSE の署名または MAC アルゴリズム(JWS の alg)です。方式:EdDSA。実装要件:非推奨。algRFC 9864, Section 2.2
ES256注記ES256 は JOSE の署名または MAC アルゴリズム(JWS の alg)です。方式:P-256 上の ECDSA(SHA-256)。実装要件:推奨(将来は必須になる見込み)。P-256algRFC 7518, Section 3.4
ES256KES256K は JOSE の署名または MAC アルゴリズム(JWS の alg)です。方式:secp256k1 上の ECDSA(SHA-256)。実装要件:任意。secp256k1algRFC 8812, Section 3.2
ES384ES384 は JOSE の署名または MAC アルゴリズム(JWS の alg)です。方式:P-384 上の ECDSA(SHA-384)。実装要件:任意。P-384algRFC 7518, Section 3.4
ES512ES512 は JOSE の署名または MAC アルゴリズム(JWS の alg)です。方式:P-521 上の ECDSA(SHA-512)。実装要件:任意。P-521algRFC 7518, Section 3.4
HPKE-0HPKE-0 は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:P-256 上の ハイブリッド公開鍵暗号化(HPKE)。実装要件:任意。P-256algRFC-ietf-jose-hpke-encrypt-22, Section 5.1
HPKE-0-KEHPKE-0-KE は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:P-256 上の ハイブリッド公開鍵暗号化(HPKE)。実装要件:任意。P-256algRFC-ietf-jose-hpke-encrypt-22, Section 6.2
HPKE-1HPKE-1 は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:P-384 上の ハイブリッド公開鍵暗号化(HPKE)。実装要件:任意。P-384algRFC-ietf-jose-hpke-encrypt-22, Section 5.1
HPKE-1-KEHPKE-1-KE は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:P-384 上の ハイブリッド公開鍵暗号化(HPKE)。実装要件:任意。P-384algRFC-ietf-jose-hpke-encrypt-22, Section 6.2
HPKE-2HPKE-2 は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:P-521 上の ハイブリッド公開鍵暗号化(HPKE)。実装要件:任意。P-521algRFC-ietf-jose-hpke-encrypt-22, Section 5.1
HPKE-2-KEHPKE-2-KE は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:P-521 上の ハイブリッド公開鍵暗号化(HPKE)。実装要件:任意。P-521algRFC-ietf-jose-hpke-encrypt-22, Section 6.2
HPKE-3HPKE-3 は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:curve25519 上の ハイブリッド公開鍵暗号化(HPKE)。実装要件:任意。curve25519algRFC-ietf-jose-hpke-encrypt-22, Section 5.1
HPKE-3-KEHPKE-3-KE は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:curve25519 上の ハイブリッド公開鍵暗号化(HPKE)。実装要件:任意。curve25519algRFC-ietf-jose-hpke-encrypt-22, Section 6.2
HPKE-4HPKE-4 は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:curve25519 上の ハイブリッド公開鍵暗号化(HPKE)。実装要件:任意。curve25519algRFC-ietf-jose-hpke-encrypt-22, Section 5.1
HPKE-5HPKE-5 は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:curve448 上の ハイブリッド公開鍵暗号化(HPKE)。実装要件:任意。curve448algRFC-ietf-jose-hpke-encrypt-22, Section 5.1
HPKE-5-KEHPKE-5-KE は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:curve448 上の ハイブリッド公開鍵暗号化(HPKE)。実装要件:任意。curve448algRFC-ietf-jose-hpke-encrypt-22, Section 6.2
HPKE-6HPKE-6 は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:curve448 上の ハイブリッド公開鍵暗号化(HPKE)。実装要件:任意。curve448algRFC-ietf-jose-hpke-encrypt-22, Section 5.1
HPKE-7HPKE-7 は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:P-256 上の ハイブリッド公開鍵暗号化(HPKE)。実装要件:任意。P-256algRFC-ietf-jose-hpke-encrypt-22, Section 5.1
HPKE-7-KEHPKE-7-KE は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:P-256 上の ハイブリッド公開鍵暗号化(HPKE)。実装要件:任意。P-256algRFC-ietf-jose-hpke-encrypt-22, Section 6.2
HS1HS1 は JOSE の JWK にのみ出現しうる WebCrypto 識別子です。方式:HMAC(SHA-1)。実装要件:禁止。JWKW3C Web Cryptography API
HS256注記HS256 は JOSE の署名または MAC アルゴリズム(JWS の alg)です。方式:HMAC(SHA-256)。実装要件:必須。algRFC 7518, Section 3.2
HS384HS384 は JOSE の署名または MAC アルゴリズム(JWS の alg)です。方式:HMAC(SHA-384)。実装要件:任意。algRFC 7518, Section 3.2
HS512HS512 は JOSE の署名または MAC アルゴリズム(JWS の alg)です。方式:HMAC(SHA-512)。実装要件:任意。algRFC 7518, Section 3.2
ML-DSA-44ML-DSA-44 は JOSE の署名または MAC アルゴリズム(JWS の alg)です。方式:ML-DSA。実装要件:任意。algRFC 9964
ML-DSA-65注記ML-DSA-65 は JOSE の署名または MAC アルゴリズム(JWS の alg)です。方式:ML-DSA。実装要件:任意。algRFC 9964
ML-DSA-87ML-DSA-87 は JOSE の署名または MAC アルゴリズム(JWS の alg)です。方式:ML-DSA。実装要件:任意。algRFC 9964
none注記none は JOSE の署名または MAC アルゴリズム(JWS の alg)です。方式:署名も MAC も一切なし。実装要件:任意。algRFC 7518, Section 3.6
PBES2-HS256+A128KWPBES2-HS256+A128KW は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:パスワードベースの暗号化(PBES2)(SHA-256)。実装要件:任意。algRFC 7518, Section 4.8
PBES2-HS384+A192KWPBES2-HS384+A192KW は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:パスワードベースの暗号化(PBES2)(SHA-384)。実装要件:任意。algRFC 7518, Section 4.8
PBES2-HS512+A256KWPBES2-HS512+A256KW は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:パスワードベースの暗号化(PBES2)(SHA-512)。実装要件:任意。algRFC 7518, Section 4.8
PS256PS256 は JOSE の署名または MAC アルゴリズム(JWS の alg)です。方式:RSASSA-PSS(SHA-256)。実装要件:任意。algRFC 7518, Section 3.5
PS384PS384 は JOSE の署名または MAC アルゴリズム(JWS の alg)です。方式:RSASSA-PSS(SHA-384)。実装要件:任意。algRFC 7518, Section 3.5
PS512PS512 は JOSE の署名または MAC アルゴリズム(JWS の alg)です。方式:RSASSA-PSS(SHA-512)。実装要件:任意。algRFC 7518, Section 3.5
RS1RS1 は JOSE の JWK にのみ出現しうる WebCrypto 識別子です。方式:RSASSA-PKCS1-v1_5(SHA-1)。実装要件:禁止。JWKW3C Web Cryptography API
RS256注記RS256 は JOSE の署名または MAC アルゴリズム(JWS の alg)です。方式:RSASSA-PKCS1-v1_5(SHA-256)。実装要件:推奨。algRFC 7518, Section 3.3
RS384RS384 は JOSE の署名または MAC アルゴリズム(JWS の alg)です。方式:RSASSA-PKCS1-v1_5(SHA-384)。実装要件:任意。algRFC 7518, Section 3.3
RS512RS512 は JOSE の署名または MAC アルゴリズム(JWS の alg)です。方式:RSASSA-PKCS1-v1_5(SHA-512)。実装要件:任意。algRFC 7518, Section 3.3
RSA-OAEPRSA-OAEP は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:RSAES-OAEP 暗号化(SHA-1)。実装要件:推奨(将来は必須になる見込み)。algRFC 7518, Section 4.3
RSA-OAEP-256RSA-OAEP-256 は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:RSAES-OAEP 暗号化(SHA-256)。実装要件:任意。algRFC 7518, Section 4.3
RSA-OAEP-384RSA-OAEP-384 は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:RSAES-OAEP 暗号化(SHA-384)。実装要件:任意。algW3C Web Cryptography API
RSA-OAEP-512RSA-OAEP-512 は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:RSAES-OAEP 暗号化(SHA-512)。実装要件:任意。algW3C Web Cryptography API
RSA1_5注記RSA1_5 は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:RSAES-PKCS1-v1_5 暗号化。実装要件:推奨(将来は任意になる見込み)。algRFC 7518, Section 4.2

出典:JSON Object Signing and Encryption (JOSE)(IANA)、2026-10-20 に取得。データのライセンス:CC0-1.0。 JSON Web Signature and Encryption Algorithms

注目すべき項目の注記

EdDSA

RFC 8037 で定義された、曲線を固定しない多態的な EdDSA 識別子です。RFC 9864 で非推奨となり、Ed25519 と Ed448 に置き換えられました。

「EdDSA」では曲線が鍵から決まる(crv が Ed25519 または Ed448)ため、どの曲線に対応しているかを相手に示せません。RFC 9864 は完全指定の名前 Ed25519 と Ed448 を登録し、「EdDSA」を非推奨(Deprecated)としています。

ES256

P-256 上で SHA-256 を使う ECDSA で、非対称鍵で署名する JWT に最もよく使われる JWS アルゴリズムです。

ES256 の JWS 署名は、それぞれ 32 バイトにパディングした r と s を連結した 64 バイトの値で(RFC 7518 §3.4)、OpenSSL や Java が生成する DER 構造ではありません。この 2 つの間の変換は「invalid signature」エラーのよくある原因です。DER ⇄ 生形式の変換ツールを参照してください。

RFC 9864 は、曲線を固定しない多態的な COSE 識別子 ES256(−7)を非推奨とし、完全指定の ESP256(−9)に置き換えました。JOSE では ES256 という名前がすでに曲線を固定しているため、影響を受けません。

HS256

SHA-256 を使う HMAC で、共通鍵方式の JWS アルゴリズムです。トークンを検証できる者は、トークンを偽造することもできます。

HS256 は、RFC 7518 が実装必須としている唯一のアルゴリズムです。同じシークレットで署名と検証を行うため、自身のトークンを発行して検証する単一のサービスに向いています。短いシークレットや推測可能なシークレットは、どのトークンからでもオフラインで総当たりにより割り出せます。RFC 7518 §3.2 は、ハッシュの出力以上の長さ(HS256 では 256 ビット)の鍵を求めており、その鍵はランダムでなければなりません。

ML-DSA-65

JWS 用の ML-DSA-65(FIPS 204)で、新しい鍵の種類 AKP とともに RFC 9964 で登録されました。

ポスト量子の JWS 鍵には、鍵の種類 Algorithm Key Pair(アルゴリズム鍵ペア、kty「AKP」)を使います。この鍵の「pub」メンバーには生の ML-DSA 公開鍵が入り、「alg」がその鍵を 1 つのパラメーターセットに結び付けます。署名は 3,309 バイトあるため、トークンの長さは数キロバイトになります。

none

alg「none」は保護されていない JWS、つまり署名がまったくないトークンを表します。

RFC 7518 §3.6 は、完全性がほかの手段で確保される状況のために「none」を定義しています。トークン自身のヘッダーにアルゴリズムを選ばせるライブラリは、alg「none」の偽造トークンを受け入れてきました。これは最もよく知られた JWT の脆弱性です(RFC 8725 §2.1)。アプリケーションが保護されていないトークンを明示的に想定している場合を除き、検証者は「none」を拒否しなければなりません。

RS256

SHA-256 を使う RSASSA-PKCS1-v1_5 で、ほとんどの OpenID Connect の ID トークンで使われる JWS アルゴリズムです。

OpenID Connect Core §15.1 は、OpenID プロバイダーに RS256 での ID トークンの署名をサポートするよう求めています。ほとんどの ID トークンと JWKS エンドポイントが RSA 鍵を使っているのはそのためです。典型的な落とし穴はアルゴリズム混同です。RS256 用の鍵に対して HS256 を受け付ける検証者は、公開鍵を HMAC シークレットとして使うようにだまされるおそれがあります(RFC 8725 §2.1)。RFC 8725 §3.1 が求めるとおり、鍵ごとに想定するアルゴリズムを固定してください。

RSA1_5

JWE 用の RSAES-PKCS1-v1_5 による鍵暗号化で、Bleichenbacher 型のパディングオラクル攻撃を受けるおそれがあります。

復号した RSA1_5 の鍵のパディングが正しかったかどうかを、エラーメッセージやタイミングなど何らかの形で明かしてしまうサーバーでは、攻撃者がクエリを 1 回ずつ重ねてコンテンツ暗号化鍵を復号できてしまいます。RFC 7518 は RSA1_5 を「Recommended-」(将来格下げされる見込み)としています。RSA-OAEP-256 か ECDH-ES を優先して使ってください。

すべてのレジストリ