EdDSA
RFC 8037 で定義された、曲線を固定しない多態的な EdDSA 識別子です。RFC 9864 で非推奨となり、Ed25519 と Ed448 に置き換えられました。
「EdDSA」では曲線が鍵から決まる(crv が Ed25519 または Ed448)ため、どの曲線に対応しているかを相手に示せません。RFC 9864 は完全指定の名前 Ed25519 と Ed448 を登録し、「EdDSA」を非推奨(Deprecated)としています。
67 件中 67 件を表示
JWS と JWE のアルゴリズム識別子(alg と enc)と、その実装要件です。
| 名称 | 説明 | 用途 | 参考文献 |
|---|---|---|---|
A128CBC | A128CBC は JOSE の JWK にのみ出現しうる WebCrypto 識別子です。方式:認証なしの AES-CBC。実装要件:禁止。 | JWK | W3C Web Cryptography API |
A128CBC-HS256 | A128CBC-HS256 は JOSE のコンテンツ暗号化アルゴリズム(JWE の enc)です。方式:HMAC 付きの AES-CBC(SHA-256)。実装要件:必須。 | enc | RFC 7518, Section 5.2.3 |
A128CTR | A128CTR は JOSE の JWK にのみ出現しうる WebCrypto 識別子です。方式:認証なしの AES-CTR。実装要件:禁止。 | JWK | W3C Web Cryptography API |
A128GCM | A128GCM は JOSE のコンテンツ暗号化アルゴリズム(JWE の enc)です。方式:AES-GCM。実装要件:推奨。 | enc | RFC 7518, Section 5.3 |
A128GCMKW | A128GCMKW は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:AES-GCM 鍵ラップ。実装要件:任意。 | alg | RFC 7518, Section 4.7 |
A128KW | A128KW は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:AES 鍵ラップ。実装要件:推奨。 | alg | RFC 7518, Section 4.4 |
A192CBC | A192CBC は JOSE の JWK にのみ出現しうる WebCrypto 識別子です。方式:認証なしの AES-CBC。実装要件:禁止。 | JWK | W3C Web Cryptography API |
A192CBC-HS384 | A192CBC-HS384 は JOSE のコンテンツ暗号化アルゴリズム(JWE の enc)です。方式:HMAC 付きの AES-CBC(SHA-384)。実装要件:任意。 | enc | RFC 7518, Section 5.2.4 |
A192CTR | A192CTR は JOSE の JWK にのみ出現しうる WebCrypto 識別子です。方式:認証なしの AES-CTR。実装要件:禁止。 | JWK | W3C Web Cryptography API |
A192GCM | A192GCM は JOSE のコンテンツ暗号化アルゴリズム(JWE の enc)です。方式:AES-GCM。実装要件:任意。 | enc | RFC 7518, Section 5.3 |
A192GCMKW | A192GCMKW は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:AES-GCM 鍵ラップ。実装要件:任意。 | alg | RFC 7518, Section 4.7 |
A192KW | A192KW は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:AES 鍵ラップ。実装要件:任意。 | alg | RFC 7518, Section 4.4 |
A256CBC | A256CBC は JOSE の JWK にのみ出現しうる WebCrypto 識別子です。方式:認証なしの AES-CBC。実装要件:禁止。 | JWK | W3C Web Cryptography API |
A256CBC-HS512 | A256CBC-HS512 は JOSE のコンテンツ暗号化アルゴリズム(JWE の enc)です。方式:HMAC 付きの AES-CBC(SHA-512)。実装要件:必須。 | enc | RFC 7518, Section 5.2.5 |
A256CTR | A256CTR は JOSE の JWK にのみ出現しうる WebCrypto 識別子です。方式:認証なしの AES-CTR。実装要件:禁止。 | JWK | W3C Web Cryptography API |
A256GCM | A256GCM は JOSE のコンテンツ暗号化アルゴリズム(JWE の enc)です。方式:AES-GCM。実装要件:推奨。 | enc | RFC 7518, Section 5.3 |
A256GCMKW | A256GCMKW は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:AES-GCM 鍵ラップ。実装要件:任意。 | alg | RFC 7518, Section 4.7 |
A256KW | A256KW は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:AES 鍵ラップ。実装要件:推奨。 | alg | RFC 7518, Section 4.4 |
dir | dir は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:共有された共通鍵の直接使用。実装要件:推奨。 | alg | RFC 7518, Section 4.5 |
ECDH-ES | ECDH-ES は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:一時鍵と静的鍵による ECDH(ephemeral-static)。実装要件:推奨(将来は必須になる見込み)。 | alg | RFC 7518, Section 4.6 |
ECDH-ES+A128KW | ECDH-ES+A128KW は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:一時鍵と静的鍵による ECDH と、それに続く AES 鍵ラップ。実装要件:推奨。 | alg | RFC 7518, Section 4.6 |
ECDH-ES+A192KW | ECDH-ES+A192KW は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:一時鍵と静的鍵による ECDH と、それに続く AES 鍵ラップ。実装要件:任意。 | alg | RFC 7518, Section 4.6 |
ECDH-ES+A256KW | ECDH-ES+A256KW は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:一時鍵と静的鍵による ECDH と、それに続く AES 鍵ラップ。実装要件:推奨。 | alg | RFC 7518, Section 4.6 |
Ed25519 | Ed25519 は JOSE の署名または MAC アルゴリズム(JWS の alg)です。方式:edwards25519 上の EdDSA。実装要件:任意。edwards25519 | alg | RFC 9864, Section 2.2 |
Ed448 | Ed448 は JOSE の署名または MAC アルゴリズム(JWS の alg)です。方式:edwards448 上の EdDSA。実装要件:任意。edwards448 | alg | RFC 9864, Section 2.2 |
EdDSA注記 | EdDSA は JOSE の署名または MAC アルゴリズム(JWS の alg)です。方式:EdDSA。実装要件:非推奨。 | alg | RFC 9864, Section 2.2 |
ES256注記 | ES256 は JOSE の署名または MAC アルゴリズム(JWS の alg)です。方式:P-256 上の ECDSA(SHA-256)。実装要件:推奨(将来は必須になる見込み)。P-256 | alg | RFC 7518, Section 3.4 |
ES256K | ES256K は JOSE の署名または MAC アルゴリズム(JWS の alg)です。方式:secp256k1 上の ECDSA(SHA-256)。実装要件:任意。secp256k1 | alg | RFC 8812, Section 3.2 |
ES384 | ES384 は JOSE の署名または MAC アルゴリズム(JWS の alg)です。方式:P-384 上の ECDSA(SHA-384)。実装要件:任意。P-384 | alg | RFC 7518, Section 3.4 |
ES512 | ES512 は JOSE の署名または MAC アルゴリズム(JWS の alg)です。方式:P-521 上の ECDSA(SHA-512)。実装要件:任意。P-521 | alg | RFC 7518, Section 3.4 |
HPKE-0 | HPKE-0 は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:P-256 上の ハイブリッド公開鍵暗号化(HPKE)。実装要件:任意。P-256 | alg | RFC-ietf-jose-hpke-encrypt-22, Section 5.1 |
HPKE-0-KE | HPKE-0-KE は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:P-256 上の ハイブリッド公開鍵暗号化(HPKE)。実装要件:任意。P-256 | alg | RFC-ietf-jose-hpke-encrypt-22, Section 6.2 |
HPKE-1 | HPKE-1 は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:P-384 上の ハイブリッド公開鍵暗号化(HPKE)。実装要件:任意。P-384 | alg | RFC-ietf-jose-hpke-encrypt-22, Section 5.1 |
HPKE-1-KE | HPKE-1-KE は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:P-384 上の ハイブリッド公開鍵暗号化(HPKE)。実装要件:任意。P-384 | alg | RFC-ietf-jose-hpke-encrypt-22, Section 6.2 |
HPKE-2 | HPKE-2 は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:P-521 上の ハイブリッド公開鍵暗号化(HPKE)。実装要件:任意。P-521 | alg | RFC-ietf-jose-hpke-encrypt-22, Section 5.1 |
HPKE-2-KE | HPKE-2-KE は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:P-521 上の ハイブリッド公開鍵暗号化(HPKE)。実装要件:任意。P-521 | alg | RFC-ietf-jose-hpke-encrypt-22, Section 6.2 |
HPKE-3 | HPKE-3 は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:curve25519 上の ハイブリッド公開鍵暗号化(HPKE)。実装要件:任意。curve25519 | alg | RFC-ietf-jose-hpke-encrypt-22, Section 5.1 |
HPKE-3-KE | HPKE-3-KE は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:curve25519 上の ハイブリッド公開鍵暗号化(HPKE)。実装要件:任意。curve25519 | alg | RFC-ietf-jose-hpke-encrypt-22, Section 6.2 |
HPKE-4 | HPKE-4 は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:curve25519 上の ハイブリッド公開鍵暗号化(HPKE)。実装要件:任意。curve25519 | alg | RFC-ietf-jose-hpke-encrypt-22, Section 5.1 |
HPKE-5 | HPKE-5 は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:curve448 上の ハイブリッド公開鍵暗号化(HPKE)。実装要件:任意。curve448 | alg | RFC-ietf-jose-hpke-encrypt-22, Section 5.1 |
HPKE-5-KE | HPKE-5-KE は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:curve448 上の ハイブリッド公開鍵暗号化(HPKE)。実装要件:任意。curve448 | alg | RFC-ietf-jose-hpke-encrypt-22, Section 6.2 |
HPKE-6 | HPKE-6 は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:curve448 上の ハイブリッド公開鍵暗号化(HPKE)。実装要件:任意。curve448 | alg | RFC-ietf-jose-hpke-encrypt-22, Section 5.1 |
HPKE-7 | HPKE-7 は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:P-256 上の ハイブリッド公開鍵暗号化(HPKE)。実装要件:任意。P-256 | alg | RFC-ietf-jose-hpke-encrypt-22, Section 5.1 |
HPKE-7-KE | HPKE-7-KE は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:P-256 上の ハイブリッド公開鍵暗号化(HPKE)。実装要件:任意。P-256 | alg | RFC-ietf-jose-hpke-encrypt-22, Section 6.2 |
HS1 | HS1 は JOSE の JWK にのみ出現しうる WebCrypto 識別子です。方式:HMAC(SHA-1)。実装要件:禁止。 | JWK | W3C Web Cryptography API |
HS256注記 | HS256 は JOSE の署名または MAC アルゴリズム(JWS の alg)です。方式:HMAC(SHA-256)。実装要件:必須。 | alg | RFC 7518, Section 3.2 |
HS384 | HS384 は JOSE の署名または MAC アルゴリズム(JWS の alg)です。方式:HMAC(SHA-384)。実装要件:任意。 | alg | RFC 7518, Section 3.2 |
HS512 | HS512 は JOSE の署名または MAC アルゴリズム(JWS の alg)です。方式:HMAC(SHA-512)。実装要件:任意。 | alg | RFC 7518, Section 3.2 |
ML-DSA-44 | ML-DSA-44 は JOSE の署名または MAC アルゴリズム(JWS の alg)です。方式:ML-DSA。実装要件:任意。 | alg | RFC 9964 |
ML-DSA-65注記 | ML-DSA-65 は JOSE の署名または MAC アルゴリズム(JWS の alg)です。方式:ML-DSA。実装要件:任意。 | alg | RFC 9964 |
ML-DSA-87 | ML-DSA-87 は JOSE の署名または MAC アルゴリズム(JWS の alg)です。方式:ML-DSA。実装要件:任意。 | alg | RFC 9964 |
none注記 | none は JOSE の署名または MAC アルゴリズム(JWS の alg)です。方式:署名も MAC も一切なし。実装要件:任意。 | alg | RFC 7518, Section 3.6 |
PBES2-HS256+A128KW | PBES2-HS256+A128KW は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:パスワードベースの暗号化(PBES2)(SHA-256)。実装要件:任意。 | alg | RFC 7518, Section 4.8 |
PBES2-HS384+A192KW | PBES2-HS384+A192KW は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:パスワードベースの暗号化(PBES2)(SHA-384)。実装要件:任意。 | alg | RFC 7518, Section 4.8 |
PBES2-HS512+A256KW | PBES2-HS512+A256KW は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:パスワードベースの暗号化(PBES2)(SHA-512)。実装要件:任意。 | alg | RFC 7518, Section 4.8 |
PS256 | PS256 は JOSE の署名または MAC アルゴリズム(JWS の alg)です。方式:RSASSA-PSS(SHA-256)。実装要件:任意。 | alg | RFC 7518, Section 3.5 |
PS384 | PS384 は JOSE の署名または MAC アルゴリズム(JWS の alg)です。方式:RSASSA-PSS(SHA-384)。実装要件:任意。 | alg | RFC 7518, Section 3.5 |
PS512 | PS512 は JOSE の署名または MAC アルゴリズム(JWS の alg)です。方式:RSASSA-PSS(SHA-512)。実装要件:任意。 | alg | RFC 7518, Section 3.5 |
RS1 | RS1 は JOSE の JWK にのみ出現しうる WebCrypto 識別子です。方式:RSASSA-PKCS1-v1_5(SHA-1)。実装要件:禁止。 | JWK | W3C Web Cryptography API |
RS256注記 | RS256 は JOSE の署名または MAC アルゴリズム(JWS の alg)です。方式:RSASSA-PKCS1-v1_5(SHA-256)。実装要件:推奨。 | alg | RFC 7518, Section 3.3 |
RS384 | RS384 は JOSE の署名または MAC アルゴリズム(JWS の alg)です。方式:RSASSA-PKCS1-v1_5(SHA-384)。実装要件:任意。 | alg | RFC 7518, Section 3.3 |
RS512 | RS512 は JOSE の署名または MAC アルゴリズム(JWS の alg)です。方式:RSASSA-PKCS1-v1_5(SHA-512)。実装要件:任意。 | alg | RFC 7518, Section 3.3 |
RSA-OAEP | RSA-OAEP は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:RSAES-OAEP 暗号化(SHA-1)。実装要件:推奨(将来は必須になる見込み)。 | alg | RFC 7518, Section 4.3 |
RSA-OAEP-256 | RSA-OAEP-256 は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:RSAES-OAEP 暗号化(SHA-256)。実装要件:任意。 | alg | RFC 7518, Section 4.3 |
RSA-OAEP-384 | RSA-OAEP-384 は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:RSAES-OAEP 暗号化(SHA-384)。実装要件:任意。 | alg | W3C Web Cryptography API |
RSA-OAEP-512 | RSA-OAEP-512 は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:RSAES-OAEP 暗号化(SHA-512)。実装要件:任意。 | alg | W3C Web Cryptography API |
RSA1_5注記 | RSA1_5 は JOSE の鍵管理アルゴリズム(JWE の alg)です。方式:RSAES-PKCS1-v1_5 暗号化。実装要件:推奨(将来は任意になる見込み)。 | alg | RFC 7518, Section 4.2 |
出典:JSON Object Signing and Encryption (JOSE)(IANA)、2026-10-20 に取得。データのライセンス:CC0-1.0。 JSON Web Signature and Encryption Algorithms
RFC 8037 で定義された、曲線を固定しない多態的な EdDSA 識別子です。RFC 9864 で非推奨となり、Ed25519 と Ed448 に置き換えられました。
「EdDSA」では曲線が鍵から決まる(crv が Ed25519 または Ed448)ため、どの曲線に対応しているかを相手に示せません。RFC 9864 は完全指定の名前 Ed25519 と Ed448 を登録し、「EdDSA」を非推奨(Deprecated)としています。
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 という名前がすでに曲線を固定しているため、影響を受けません。
SHA-256 を使う HMAC で、共通鍵方式の JWS アルゴリズムです。トークンを検証できる者は、トークンを偽造することもできます。
HS256 は、RFC 7518 が実装必須としている唯一のアルゴリズムです。同じシークレットで署名と検証を行うため、自身のトークンを発行して検証する単一のサービスに向いています。短いシークレットや推測可能なシークレットは、どのトークンからでもオフラインで総当たりにより割り出せます。RFC 7518 §3.2 は、ハッシュの出力以上の長さ(HS256 では 256 ビット)の鍵を求めており、その鍵はランダムでなければなりません。
JWS 用の ML-DSA-65(FIPS 204)で、新しい鍵の種類 AKP とともに RFC 9964 で登録されました。
ポスト量子の JWS 鍵には、鍵の種類 Algorithm Key Pair(アルゴリズム鍵ペア、kty「AKP」)を使います。この鍵の「pub」メンバーには生の ML-DSA 公開鍵が入り、「alg」がその鍵を 1 つのパラメーターセットに結び付けます。署名は 3,309 バイトあるため、トークンの長さは数キロバイトになります。
alg「none」は保護されていない JWS、つまり署名がまったくないトークンを表します。
RFC 7518 §3.6 は、完全性がほかの手段で確保される状況のために「none」を定義しています。トークン自身のヘッダーにアルゴリズムを選ばせるライブラリは、alg「none」の偽造トークンを受け入れてきました。これは最もよく知られた JWT の脆弱性です(RFC 8725 §2.1)。アプリケーションが保護されていないトークンを明示的に想定している場合を除き、検証者は「none」を拒否しなければなりません。
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 が求めるとおり、鍵ごとに想定するアルゴリズムを固定してください。
JWE 用の RSAES-PKCS1-v1_5 による鍵暗号化で、Bleichenbacher 型のパディングオラクル攻撃を受けるおそれがあります。
復号した RSA1_5 の鍵のパディングが正しかったかどうかを、エラーメッセージやタイミングなど何らかの形で明かしてしまうサーバーでは、攻撃者がクエリを 1 回ずつ重ねてコンテンツ暗号化鍵を復号できてしまいます。RFC 7518 は RSA1_5 を「Recommended-」(将来格下げされる見込み)としています。RSA-OAEP-256 か ECDH-ES を優先して使ってください。