1. Introduction (はじめに)
JSON Web Key (JWK) は、暗号鍵 (Cryptographic Key) を表現する JavaScript Object Notation (JSON) [RFC7159] データ構造です。本仕様は、JWK のセットを表現する JWK Set JSON データ構造も定義します。本仕様で使用される暗号アルゴリズム (Cryptographic Algorithms) と識別子は、別途の JSON Web Algorithms (JWA) [JWA] 仕様およびその仕様によって確立された IANA レジストリで説明されています。
本仕様の目標には、新しい種類の証明書チェーン (Certificate Chains) の表現、新しい種類の認証済み鍵 (Certified Keys) の表現、または X.509 証明書の置き換えは含まれません。
JWK と JWK Set は、JSON Web Signature [JWS] および JSON Web Encryption [JWE] 仕様で使用されます。
本仕様で定義される名前は短く設定されています。これは、結果として得られる表現を可能な限りコンパクト (Compact) にすることが中核的な目標であるためです。
1.1. Notational Conventions (表記規則)
本文書のキーワード「しなければならない (MUST)」、「してはならない (MUST NOT)」、「必須である (REQUIRED)」、「しなければならない (SHALL)」、「してはならない (SHALL NOT)」、「すべきである (SHOULD)」、「すべきでない (SHOULD NOT)」、「推奨される (RECOMMENDED)」、「推奨されない (NOT RECOMMENDED)」、「してもよい (MAY)」、および「任意である (OPTIONAL)」は、「RFC で要件レベルを示すために使用するキーワード」[RFC2119] で説明されているように解釈されます。この解釈は、これらの用語がすべて大文字で表記されている場合にのみ適用されます。
BASE64URL(OCTETS) は、[JWS] のセクション 2 に従った OCTETS の base64url エンコーディングを示します。
UTF8(STRING) は、STRING の UTF-8 [RFC3629] 表現のオクテット (Octets) を示します。ここで、STRING はゼロ個以上の Unicode [UNICODE] 文字のシーケンスです。
ASCII(STRING) は、STRING の ASCII [RFC20] 表現のオクテットを示します。ここで、STRING はゼロ個以上の ASCII 文字のシーケンスです。
2 つの値 A と B の連結は、A || B として表記されます。