[RFC Home] [TEXT|PDF|HTML] [Tracker] [IPR] [Errata] [Info page]

PROPOSED STANDARD
Errata Exist
Internet Engineering Task Force (IETF)                          M. Jones
Request for Comments: 7517                                     Microsoft
Category: Standards Track                                       May 2015
ISSN: 2070-1721


                           JSON Web Key (JWK)

Abstract

   JSON Web Key (JWK) は JavaScript Object Notation (JSON) のデータ
   構造で、暗号鍵を表現します。 この仕様はまた、JWK の集合を表す
   JWK Set JSON データ構造も定義します。 本仕様で使用する暗号
   アルゴリズムおよび識別子は、別個の JSON Web Algorithms (JWA)
   仕様およびその仕様によって設立された IANA レジストリに記載されています。

Status of This Memo

   本メモはインターネット標準トラック文書です。

   本文書は Internet Engineering Task Force (IETF) の成果物です。
   それは IETF コミュニティのコンセンサスを表します。 公開レビューを受け、
   Internet Engineering Steering Group (IESG) によって出版が承認されています。
   インターネット標準に関する追加情報は Section 2 of RFC 5741 で入手できます。

   本文書の現状、すべての errata、およびフィードバックの提供方法に関する情報は
   次の場所で入手できます:
   http://www.rfc-editor.org/info/rfc7517

Copyright Notice

   Copyright (c) 2015 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.






Jones                        Standards Track                    [Page 1]


RFC 7517                   JSON Web Key (JWK)                   May 2015


Table of Contents

   1.  導入  . . . . . . . . . . . . . . . . . . . . . . . . . .   3
     1.1.  表記慣例  . . . . . . . . . . . . . . . . . . . . . . . .   3
   2.  用語 . . . . . . . . . . . . . . . . . . . . . . . . . . .   4
   3.  JWKの例 . . . . . . . . . . . . . . . . . . . . . . . . .   5
   4.  JSON Web Key (JWK) 形式 . . . . . . . . . . . . . . . . .   5
     4.1.  "kty" (キー種別) パラメータ  . . . . . . . . . . . . . .   6
     4.2.  "use" (公開鍵用途) パラメータ  . . . . . . . . . . . . . . .   6
     4.3.  "key_ops" (キー操作) パラメータ  . . . . . . . . . . . .   7
     4.4.  "alg" (アルゴリズム) パラメータ . . . . . . . . . . . . . . .   8
     4.5.  "kid" (キーID) パラメータ  . . . . . . . . . . . . . . . . .   8
     4.6.  "x5u" (X.509 URL) パラメータ . . . . . . . . . . . . . . . . .   8
     4.7.  "x5c" (X.509 証明書チェーン) パラメータ . . . . . . . .   9
     4.8.  "x5t" (X.509 証明書 SHA-1 サムプリント) パラメータ  . .   9
     4.9.  "x5t#S256" (X.509 証明書 SHA-256 サムプリント)
           パラメータ . . . . . . . . . . . . . . . . . . . . . . . .  10
   5.  JWK セット形式  . . . . . . . . . . . . . . . . . . . . .  10
     5.1.  "keys" パラメータ  . . . . . . . . . . . . . . . . . . .  10
   6.  文字列比較規則 . . . . . . . . . . . . . . . . . . . . . . .  11
   7.  暗号化 JWK および暗号化された JWK セット形式 . . . . . . .  11
   8.  IANA 考慮事項 . . . . . . . . . . . . . . . . . . . . . . .  11
     8.1.  JSON Web Key パラメータ登録  . . . . . . . . . . . . . .  12
       8.1.1.  登録テンプレート . . . . . . . . . . . . . . . . . . .  12
       8.1.2.  初期レジストリ内容 . . . . . . . . . . . . . . . . . .  13
     8.2.  JSON Web Key 用途レジストリ . . . . . . . . . . . . . . .  15
       8.2.1.  登録テンプレート . . . . . . . . . . . . . . . . . . .  15
       8.2.2.  初期レジストリ内容 . . . . . . . . . . . . . . . . . .  15
     8.3.  JSON Web Key 操作レジストリ  . . . . . . . . . . . . .  16
       8.3.1.  登録テンプレート . . . . . . . . . . . . . . . . . . .  16
       8.3.2.  初期レジストリ内容 . . . . . . . . . . . . . . . . . .  16
     8.4.  JSON Web Key セットパラメータレジストリ  . . . . . . .  17
       8.4.1.  登録テンプレート . . . . . . . . . . . . . . . . . . .  17
       8.4.2.  初期レジストリ内容 . . . . . . . . . . . . . . . . . .  18
     8.5.  メディアタイプ登録 . . . . . . . . . . . . . . . . . . . .  18
       8.5.1.  レジストリ内容 . . . . . . . . . . . . . . . . . . . .  18
   9.  セキュリティに関する考慮事項 . . . . . . . . . . . . . . . . .  19
     9.1.  鍵の由来と信頼  . . . . . . . . . . . . . . . . . . . . . . .  20
     9.2.  非公開鍵情報の漏洩防止  . . . . . . . . . . . . . . . . . .  20
     9.3.  RSA 秘密鍵表現とブラインディング  . . . . . . . . . . .  21
     9.4.  鍵のエントロピーと乱数値 . . . . . . . . . . . . . . . . .  21
   10. 参考文献  . . . . . . . . . . . . . . . . . . . . . . . . .  21
     10.1.  規範的参照 . . . . . . . . . . . . . . . . . . . . . . . .  21
     10.2.  参考資料 . . . . . . . . . . . . . . . . . . . . . . . .  23
   付録 A.  JSON Web Key セットの例  . . . . . . . . . . . . .  25
     A.1.  公開鍵の例 . . . . . . . . . . . . . . . . . . . . . . .  25
     A.2.  秘密鍵の例  . . . . . . . . . . . . . . . . . . . . . . . .  25
     A.3.  対称鍵の例  . . . . . . . . . . . . . . . . . . . . . . .  27



Jones                        Standards Track                    [Page 2]


RFC 7517                   JSON Web Key (JWK)                   May 2015


   付録 B.  "x5c" (X.509 証明書チェーン) パラメータの使用例
                . . . . . . . . . . . . . . . . . . . . . . . .  28
   付録 C.  暗号化された RSA 秘密鍵の例  . . . . . . . . . . . . .  28
     C.1.  平文の RSA 秘密鍵 . . . . . . . . . . . . . . . . . . .  29
     C.2.  JOSE ヘッダ . . . . . . . . . . . . . . . . . . . . . .  32
     C.3.  コンテンツ暗号化キー (CEK)  . . . . . . . . . . . . . .  32
     C.4.  鍵導出  . . . . . . . . . . . . . . . . . . . . . . . . .  33
     C.5.  鍵暗号化  . . . . . . . . . . . . . . . . . . . . . . . .  33
     C.6.  初期化ベクトル . . . . . . . . . . . . . . . . . . . . .  33
     C.7.  追加認証付データ . . . . . . . . . . . . . . . . . . .  34
     C.8.  コンテンツ暗号化 . . . . . . . . . . . . . . . . . . . . .  34
     C.9.  完全な表現 . . . . . . . . . . . . . . . . . . . . . . .  38
   謝辞  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  40
   著者連絡先  . . . . . . . . . . . . . . . . . . . . . . . . . . .  40

1.  導入

   JSON Web Key (JWK) は、暗号鍵を表現する JavaScript Object Notation (JSON) [RFC7159] のデータ構造です。
   本仕様はまた、複数の JWK を表す JWK セット JSON データ構造を定義します。  本仕様で使用する暗号アルゴリズムと識別子は、別の仕様である JSON
   Web Algorithms (JWA) [JWA] にて説明され、当該仕様によって設立された IANA レジストリに格納されます。

   本仕様の目的には、新しい種類の証明書チェーンを表現すること、新しい種類の認証済み鍵を表現すること、または X.509 証明書を置き換えることは含まれません。

   JWK および JWK セットは、JSON Web Signature [JWS] および JSON
   Web Encryption [JWE] の仕様で使用されます。

   本仕様で定義される名前は短いものになっています。これは、生成される表現をコンパクトにすることが主要な目的の一つであるためです。

1.1.  表記慣例

   本ドキュメント中のキーワード "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", および
   "OPTIONAL" は、「RFC における要件レベルを示すためのキーワード」[RFC2119] に記載されているとおりに解釈されます。
   これらの解釈は、用語がすべて大文字で現れる場合にのみ適用されるべきです。

   BASE64URL(OCTETS) は、[JWS] のセクション2に従った、OCTETS の base64url エンコーディングを示します。





Jones                        Standards Track                    [Page 3]


RFC 7517                   JSON Web Key (JWK)                   May 2015


   UTF8(STRING) は、STRING の UTF-8 [RFC3629] 表現のオクテットを示します。ここで STRING はゼロ個以上の Unicode
   [UNICODE] 文字の並びです。

   ASCII(STRING) は、STRING の ASCII [RFC20] 表現のオクテットを示します。ここで STRING はゼロ個以上の ASCII 文字の並びです。

   2 つの値 A と B の連結は A || B と表記します。

2.  用語

   「JSON Web Signature (JWS)」、「Base64url Encoding」、「Collision-Resistant Name」、「Header Parameter」、および「JOSE Header」は
   JWS 仕様 [JWS] により定義されます。

   「JSON Web Encryption (JWE)」、「Additional Authenticated Data
   (AAD)」、「JWE Authentication Tag」、「JWE Ciphertext」、「JWE Compact
   Serialization」、「JWE Encrypted Key」、「JWE Initialization Vector」、および
   「JWE Protected Header」は JWE 仕様 [JWE] により定義されます。

   「Ciphertext」、「Digital Signature」、「Message Authentication
   Code (MAC)」、および「Plaintext」は「Internet Security
   Glossary, Version 2」[RFC4949] により定義されます。

   以下の用語は本仕様により定義されます:

   JSON Web Key (JWK)
      暗号鍵を表現する JSON オブジェクト。オブジェクトのメンバは鍵の値を含む鍵の属性を表します。

   JWK Set
      複数の JWK を表現する JSON オブジェクト。JSON オブジェクトは "keys" メンバを必ず持ち、それは JWK の配列でなければなりません。

















Jones                        Standards Track                    [Page 4]


RFC 7517                   JSON Web Key (JWK)                   May 2015


3.  JWKの例

   本節では JWK の例を示します。以下の例の JWK は、この鍵が楕円曲線 [DSS] 鍵であり、P-256 楕円曲線で使用され、x および y 座標が示される base64url エンコードされた値であることを宣言しています。鍵識別子も鍵に対して提供されています。

     {"kty":"EC",
      "crv":"P-256",
      "x":"f83OJ3D2xF1Bg8vub9tLe1gHMzV76e8Tus9uPHvRVEU",
      "y":"x_FEzRu9m36HLN_tue659LNpXW6pCyStikYjKIWI5a0",
      "kid":"Public key used in JWS spec Appendix A.3 example"
     }

   追加の JWK 例は 付録 A にあります。

4.  JSON Web Key (JWK) 形式

   JWK は暗号鍵を表現する JSON オブジェクトです。オブジェクトのメンバは鍵の値を含む鍵の属性を表します。 この JSON オブジェクトは、RFC 7159 のセクション2 に従い、任意の JSON 値や構造文字の前後に空白や改行を含めることができます。 本書は、アルゴリズムに依存しない共通のキー・パラメータを定義します。

   共通パラメータに加え、各 JWK はキー種別固有のメンバを持ちます。これらのメンバは鍵のパラメータを表します。 セクション6 の JSON Web Algorithms (JWA) [JWA] 仕様は、複数種類の暗号鍵とそれに対応するメンバを定義しています。

   JWK 内のメンバ名は重複してはならず;JWK パーサは重複するメンバ名を持つ JWK を拒否するか、ECMAScript 5.1 の セクション15.12(JSON オブジェクト)の仕様に従い、字面的に最後に現れる重複メンバ名のみを返す JSON パーサを使用しなければなりません。

   追加のメンバが JWK に存在してもかまいません;それらが実装で理解されない場合、遭遇した実装はそれらを無視しなければなりません。異なるキー種別で使用されるメンバ名は必ずしも異なる必要はありません。新しいメンバ名は、セクション8.1 により設立される IANA「JSON Web Key Parameters」レジストリに登録するか、Collision-Resistant Name を含む値であるべきです。




Jones                        Standards Track                    [Page 5]


RFC 7517                   JSON Web Key (JWK)                   May 2015


4.1.  "kty" (キー種別) パラメータ

   "kty"(キー種別)パラメータは、その鍵で使用される暗号アルゴリズムのファミリを識別します(例:"RSA" や "EC")。"kty" の値は、[JWA] により設立される IANA「JSON Web Key Types」レジストリに登録されるか、Collision-Resistant Name を含む値であるべきです。 "kty" の値は大文字小文字を区別する文字列です。 このメンバは JWK に必ず存在しなければなりません。

   定義済みの "kty" 値の一覧は、[JWA] により設立される IANA「JSON Web Key Types」レジストリにあります;このレジストリの初期内容は [JWA] のセクション6.1 に定義された値です。

   鍵種別の定義には、当該鍵種別で使用されるメンバの仕様が含まれます。特定の "kty" 値で使用されるメンバは、セクション8.1 により設立される IANA「JSON Web Key Parameters」レジストリで見つけることができます。

4.2.  "use" (公開鍵用途) パラメータ

   "use"(公開鍵用途)パラメータは公開鍵の用途(意図された用途)を識別します。"use" パラメータは、公開鍵がデータの暗号化に使用されるのか、データの署名検証に使用されるのかを示すために用いられます。

   本仕様で定義される値は次の通りです:

   o  "sig"(署名)
   o  "enc"(暗号化)

   他の値も使用してかまいません。"use" の値は大文字小文字を区別する文字列です。"use" メンバの使用はアプリケーションがその存在を要求しない限り OPTIONAL です。

   鍵が別の鍵をラップするために使用され、最初の鍵に対して公開鍵用途の指定が望まれる場合、鍵ラップは暗号化の一種であるため "enc"(暗号化)用途が使用されます。 "enc" 値は鍵合意操作に使用される公開鍵にも使用されます。

   追加の "use"(公開鍵用途)値は、セクション8.2 により設立される IANA「JSON Web Key Use」レジストリに登録することができます。
   オープン環境(複数の組織が拡張の共通理解を必要とする場合)で本仕様を使用する場合、使用される拡張値を登録することが強く推奨されます。しかし、生成側と消費側が常に同一組織であるクローズド環境では、未登録の拡張値を使用してもかまいません。


Jones                        Standards Track                    [Page 6]


RFC 7517                   JSON Web Key (JWK)                   May 2015


4.3.  "key_ops" (キー操作) パラメータ

   "key_ops" (キー操作) パラメータは、キーが使用される操作を識別します。
   "key_ops" パラメータは、公開鍵、秘密鍵、または対称鍵が存在する場合に使用されます。

   その値は、キー操作値の配列です。この仕様で定義された値は以下の通りです:

   o  "sign" (デジタル署名またはMACの計算)
   o  "verify" (デジタル署名またはMACの検証)
   o  "encrypt" (コンテンツの暗号化)
   o  "decrypt" (コンテンツの復号および復号検証)
   o  "wrapKey" (キーの暗号化)
   o  "unwrapKey" (キーの復号および復号検証)
   o  "deriveKey" (キーの導出)
   o  "deriveBits" (キーとして使用しないビットの導出)

   ("key_ops" の値は、Web Cryptography API
   [W3C.CR-WebCryptoAPI-20141211] 仕様で定義された
   "KeyUsage" 値と意図的に一致しています。)

   他の値も使用可能です。キー操作値は大文字小文字を区別する文字列です。
   配列内に重複するキー操作値を含めてはなりません。"key_ops" メンバーの使用はオプションであり、
   アプリケーションが必要な場合のみ使用します。

   異なるアルゴリズムで同じキーを使用することに伴う潜在的な脆弱性のため、複数の無関係なキー操作を
   同じキーに指定すべきではありません。"sign" と "verify"、"encrypt" と "decrypt"、"wrapKey" と
   "unwrapKey" の組み合わせは許可されますが、他の組み合わせは使用すべきではありません。

   追加の "key_ops" (キー操作) 値は、IANA "JSON Web Key Operations" レジストリに登録できます。
   拡張値の登録に関する考慮事項は "use" メンバーに適用されるのと同様です。

   "use" と "key_ops" JWK メンバーは一緒に使用しないべきですが、両方を使用する場合、それらが伝える
   情報は一貫していなければなりません。アプリケーションは、どちらを使用するかを明確に指定するべきです。









Jones                        Standards Track                    [Page 7]


RFC 7517                   JSON Web Key (JWK)                   May 2015


4.4.  "alg" (アルゴリズム) パラメータ

   "alg" (アルゴリズム) パラメータは、キーと一緒に使用する予定のアルゴリズムを識別します。
   使用する値は、IANAの "JSON Web Signature and Encryption Algorithms" レジストリに登録されているか、
   衝突耐性のある名前を含む値である必要があります。"alg" の値は大文字小文字を区別するASCII文字列です。
   このメンバーの使用はオプションです。

4.5.  "kid" (キーID) パラメータ

   "kid" (キーID) パラメータは、特定のキーを一致させるために使用されます。たとえば、キーのロールオーバー中に
   JWKセット内でキーを選択するために使用されます。"kid" 値の構造は指定されていません。
   JWKセット内で "kid" 値が使用される場合、JWKセット内の異なるキーは異なる "kid" 値を使用するべきです。
   (異なるキーが同じ "kid" 値を使用する場合の一例として、異なる "kty" (キータイプ) 値を持つキーがあり、
   アプリケーションでそれらが等価な代替品と見なされる場合があります。)
   "kid" 値は大文字小文字を区別する文字列です。このメンバーの使用はオプションです。
   JWSやJWEと一緒に使用する場合、"kid" 値はJWSまたはJWEの "kid" ヘッダーパラメータ値と一致します。

4.6.  "x5u" (X.509 URL) パラメータ

   "x5u" (X.509 URL) パラメータは、X.509 公開鍵証明書または証明書チェーン [RFC5280] のリソースを指すURIです。
   指定されたリソースは、RFC 5280 に準拠した証明書または証明書チェーンの表現を提供する必要があります。
   その証明書はPEM形式でエンコードされ、各証明書は RFC 4945 の規定に従って区切られている必要があります。
   最初の証明書のキーは、JWKの他のメンバーによって表される公開鍵と一致する必要があります。
   リソースを取得するプロトコルは、整合性保護を提供する必要があります。証明書を取得するHTTP GETリクエストは、TLSを使用する必要があります
   [RFC2818] [RFC5246]。
   このメンバーの使用はオプションです。

   "x5u" メンバーが使用される場合、その他のJWKメンバーが提供するキー使用、アルゴリズム、または他の情報は必須ではありませんが、それが存在する場合、
   PKIX証明書を扱わないアプリケーションのために相互運用性を向上させる可能性があります。その他のメンバーが存在する場合、それらの内容は最初の証明書の関連フィールドと
   一貫している必要があります。例えば、"use" メンバーが存在する場合、それは証明書で指定された使用方法に一致しなければなりません。

Jones                        Standards Track                    [Page 8]


RFC 7517                   JSON Web Key (JWK)                   May 2015


   この情報を含む場合、"alg" メンバーが存在すれば、それは証明書で指定されたアルゴリズムに一致しなければなりません。

4.7.  "x5c" (X.509 証明書チェーン) パラメータ

   "x5c" (X.509 証明書チェーン) パラメータは、1つ以上のPKIX証明書 [RFC5280] を含んでいます。
   証明書チェーンは、証明書値文字列のJSON配列として表現されます。配列内の各文字列はbase64エンコードされたDER [ITU.X690.1994] PKIX証明書値です。
   キーを含むPKIX証明書は最初の証明書でなければなりません。この後、追加の証明書が続き、各証明書は前の証明書を認証するために使用されます。
   最初の証明書のキーは、JWKの他のメンバーによって表される公開鍵と一致する必要があります。
   このメンバーの使用はオプションです。

   "x5u" メンバーと同様に、キー使用、アルゴリズム、または他の情報を提供するオプションのJWKメンバーも、"x5c" メンバーが使用される場合に存在することができます。
   他のメンバーが存在する場合、それらの内容は最初の証明書の関連フィールドと一貫している必要があります。これについては セクション 4.6 の最後の段落を参照してください。

4.8.  "x5t" (X.509 証明書 SHA-1 サムプリント) パラメータ

   "x5t" (X.509 証明書 SHA-1 サムプリント) パラメータは、X.509 証明書のDERエンコードのSHA-1サムプリント(別名ダイジェスト)をbase64urlエンコードしたものです
   [RFC5280]。
   証明書サムプリントは、証明書フィンガープリントとしても知られることがあります。
   証明書のキーは、JWKの他のメンバーによって表される公開鍵と一致する必要があります。
   このメンバーの使用はオプションです。

   "x5u" メンバーと同様に、キー使用、アルゴリズム、または他の情報を提供するオプションのJWKメンバーも、"x5t" メンバーが使用される場合に存在することができます。
   他のメンバーが存在する場合、それらの内容は参照される証明書の関連フィールドと一貫している必要があります。
   これについては セクション 4.6 の最後の段落を参照してください。











Jones                        Standards Track                    [Page 9]


RFC 7517                   JSON Web Key (JWK)                   May 2015


4.9.  "x5t#S256" (X.509 証明書 SHA-256 サムプリント) パラメータ

   "x5t#S256" (X.509 証明書 SHA-256 サムプリント) パラメータは、X.509 証明書のDERエンコードのSHA-256サムプリント(別名ダイジェスト)をbase64urlエンコードしたものです
   [RFC5280]。
   証明書サムプリントは、証明書フィンガープリントとしても知られることがあります。
   証明書のキーは、JWKの他のメンバーによって表される公開鍵と一致する必要があります。
   このメンバーの使用はオプションです。

   "x5u" メンバーと同様に、キー使用、アルゴリズム、または他の情報を提供するオプションのJWKメンバーも、"x5t#S256" メンバーが使用される場合に存在することができます。
   他のメンバーが存在する場合、それらの内容は参照される証明書の関連フィールドと一貫している必要があります。
   これについては セクション 4.6 の最後の段落を参照してください。

5.  JWK セット形式

   JWKセットはJWKのセットを表すJSONオブジェクトです。このJSONオブジェクトは必ず "keys" メンバーを持ち、その値はJWKの配列である必要があります。
   このJSONオブジェクトは空白や改行を含む場合があります。

   JWKセット内のメンバー名は一意でなければなりません。JWKセットパーサーは、重複したメンバー名があるJWKセットを拒否するか、または
   ECMAScript 5.1 の セクション 15.12 ("The JSON Object") に指定された通り、最後の重複メンバー名のみを返すJSONパーサーを使用しなければなりません。

   JWKセットには追加のメンバーが含まれる場合があります。実装がそれらを理解できない場合、それらは無視されなければなりません。
   JWKセットの追加プロパティを表現するためのパラメータは、IANAの "JSON Web Key Set Parameters" レジストリに登録されているか、
   衝突耐性のある名前を含む値であるべきです。

   実装は、"kty" (キータイプ) 値が理解できないJWK、必要なメンバーが欠落しているJWK、またはサポートされていない範囲の値を持つJWKを
   JWKセット内で無視するべきです。

5.1.  "keys" パラメータ

   "keys" パラメータの値はJWK値の配列です。デフォルトでは、配列内のJWK値の順序はそれらの優先順位を意味しませんが、
   JWKセットのアプリケーションは、必要に応じて順序に意味を割り当てることができます。





Jones                        Standards Track                   [Page 10]


RFC 7517                   JSON Web Key (JWK)                   May 2015


6.  文字列の比較規則

   この仕様の文字列比較規則は、
   [JWS] のセクション 5.3 に定義されているものと同じです。

7.  暗号化された JWK および暗号化された JWK セット形式

   非公開鍵情報を含む JWK への、非公開情報に対する正当なアクセス権を持たない当事者による
   アクセスは防止されなければなりません。 
   これは、当該当事者により潜在的に観測され得る場合に JWK を暗号化すること
   で達成でき、秘密鍵または
   対称鍵の値の開示を防止します。 
   この目的のためには Encrypted JWK(平文値が JWK の UTF-8 エンコーディングである JWE)を
   使用することが推奨されます。 
   Encrypted JWK の処理は
   他の JWE の処理と同一です。  "cty"(コンテンツタイプ)
   ヘッダパラメータ値として "jwk+json" を使用して
   JWE の内容が JWK であることを示さなければなりません。ただし、アプリケーションが
   暗号化された内容が別の手段や慣習によって JWK であると判っている場合には、
   通常 "cty" 値は省略されます。

   JWK セットが非公開鍵情報を含む場合にも同様に暗号化が必要となります。 
   この目的のためには Encrypted JWK Set(平文値が JWK セットの UTF-8 エンコーディングである JWE)を
   使用することが推奨されます。  Encrypted JWK Set の処理は他の JWE の処理と同一です。  "cty"
   ヘッダパラメータ値として "jwk-set+json" を使用して
   JWE の内容が JWK セットであることを示さなければなりません。ただし、アプリケーションが
   暗号化された内容が別の手段や慣習によって JWK セットであると判っている場合には、
   通常 "cty" 値は省略されます。

   例として暗号化された JWK は 付録 C を参照してください。

8.  IANA に関する考慮事項

   本仕様によって確立されるすべてのレジストリに対して、以下の登録手続きが使用されます。

   値の登録手続きは、3 週間の jose-reg-review@ietf.org メーリングリストでのレビュー期間の後に、
   1 人以上の指定エキスパートの助言に基づき Specification Required
   [RFC5226] として行われます。 しかし、公開前に値の割り当てを可能にするために、
   指定エキスパートはそのような仕様が公開されると確信した場合に登録を承認することができます。

   レビューのためにメーリングリストに送られる登録要求は、適切な件名(例: "Request to register JWK parameter:
   example")を使用するべきです。



Jones                        Standards Track                   [Page 11]


RFC 7517                   JSON Web Key (JWK)                   May 2015


   レビュー期間内に、指定エキスパートは登録要求を承認するか拒否するかを決定し、その決定を
   レビューメーリングリストおよび IANA に伝えます。  拒否には説明を含めるべきであり、該当する場合には
   要求を成功させるための提案を含めるべきです。  21 日以上決定が保留されている登録要求は、
   解決のために IESG(iesg@ietf.org メーリングリスト)に付託することができます。

   指定エキスパートが適用すべき基準には、提案された登録が既存の機能を重複していないか、
   一般的な適用性があり得るか、単一のアプリケーションにのみ有用かどうか、登録の説明が明確かどうか、
   などが含まれます。

   IANA は指定エキスパートからのレジストリ更新のみを受け付けるべきであり、すべての登録要求を
   レビューメーリングリストに送るよう指示するべきです。

   異なるアプリケーションの観点を代表できる複数の指定エキスパートが任命されることが推奨されます。
   これは登録決定の幅広い情報に基づくレビューを可能にするためです。  ある登録決定が特定の
   エキスパートにとって利害衝突を生じさせると見なされ得る場合、そのエキスパートは他のエキスパートの
   判断に従うべきです。

8.1.  JSON Web Key パラメータ・レジストリ

   本節は JWK パラメータ名のための IANA "JSON Web Key Parameters" レジストリを設立します。
   レジストリはパラメータ名、パラメータが使用される鍵タイプ、およびそれを定義する仕様への参照を記録します。
   また、パラメータが公開情報か非公開情報かも記録します。  本節は セクション 4 で定義された
   パラメータ名を登録します。  同じ JWK パラメータ名は複数回登録され得ますが、重複する登録は
   鍵タイプ特有の JWK パラメータに限られること、そしてこの場合重複するパラメータ名の意味は
   それを含む JWK の "kty" 値によって区別されることが条件です。

8.1.1.  登録テンプレート

   Parameter Name:
      要求される名前(例: "kid")。本仕様の主要な目的の一つは生成される表現を簡潔にすることにあるため、
      理由がない限り名前は短く(8 文字を超えない)することが推奨されます。  この名前は大文字小文字を区別します。
      名前は、指定エキスパートが例外を認めない限り、大文字小文字を区別しない方法で他の登録済みの名前と
      一致してはなりません。  ただし、伴う "kty" 値の集合が互いに素である場合には一致する名前を登録することが
      できます。 "kty" 値の比較においては "*" はすべての値にマッチします。

   Parameter Description:
      パラメータの簡潔な説明(例: "Key ID")。

   Used with "kty" Value(s):
      当該パラメータ名が使用される鍵タイプの "kty" 値、またはすべての鍵タイプで使用される場合は "*"。
      値は、登録済みのパラメータ名が同じである場合に大文字小文字を区別しない方法で他の登録済みの "kty" 値と
      一致してはなりません(指定エキスパートが例外を認める場合を除く)。

   Parameter Information Class:
      パラメータが公開情報か非公開情報かを登録します。値は Public または Private のいずれかです。

   Change Controller:
      Standards Track RFC の場合は "IESG" を記載します。それ以外の場合は責任ある当事者の名前を記載します。
      その他の詳細(郵便住所、メールアドレス、ホームページ URI 等)も含め得ます。

   Specification Document(s):
      パラメータを指定する文書への参照、できれば文書のコピーを取得するための URI を含めてください。
      関連セクションの表示も含め得ますが必須ではありません。

8.1.2.  初期レジストリ内容

   o  Parameter Name: "kty"
   o  Parameter Description: Key Type
   o  Used with "kty" Value(s): *
   o  Parameter Information Class: Public
   o  Change Controller: IESG
   o  Specification Document(s): Section 4.1 of RFC 7517

   o  Parameter Name: "use"
   o  Parameter Description: Public Key Use
   o  Used with "kty" Value(s): *
   o  Parameter Information Class: Public
   o  Change Controller: IESG
   o  Specification Document(s): Section 4.2 of RFC 7517



Jones                        Standards Track                   [Page 12]


RFC 7517                   JSON Web Key (JWK)                   May 2015


   o  Parameter Name: "key_ops"
   o  Parameter Description: Key Operations
   o  Used with "kty" Value(s): *
   o  Parameter Information Class: Public
   o  Change Controller: IESG
   o  Specification Document(s): Section 4.3 of RFC 7517

   o  Parameter Name: "alg"
   o  Parameter Description: Algorithm
   o  Used with "kty" Value(s): *
   o  Parameter Information Class: Public
   o  Change Controller: IESG
   o  Specification Document(s): Section 4.4 of RFC 7517

   o  Parameter Name: "kid"
   o  Parameter Description: Key ID
   o  Used with "kty" Value(s): *
   o  Parameter Information Class: Public
   o  Change Controller: IESG
   o  Specification Document(s): Section 4.5 of RFC 7517

   o  Parameter Name: "x5u"
   o  Parameter Description: X.509 URL
   o  Used with "kty" Value(s): *
   o  Parameter Information Class: Public
   o  Change Controller: IESG
   o  Specification Document(s): Section 4.6 of RFC 7517

   o  Parameter Name: "x5c"
   o  Parameter Description: X.509 Certificate Chain
   o  Used with "kty" Value(s): *
   o  Parameter Information Class: Public
   o  Change Controller: IESG
   o  Specification Document(s): Section 4.7 of RFC 7517

   o  Parameter Name: "x5t"
   o  Parameter Description: X.509 Certificate SHA-1 Thumbprint
   o  Used with "kty" Value(s): *
   o  Parameter Information Class: Public
   o  Change Controller: IESG
   o  Specification Document(s): Section 4.8 of RFC 7517

   o  Parameter Name: "x5t#S256"
   o  Parameter Description: X.509 Certificate SHA-256 Thumbprint
   o  Used with "kty" Value(s): *
   o  Parameter Information Class: Public
   o  Change Controller: IESG
   o  Specification Document(s): Section 4.9 of RFC 7517



Jones                        Standards Track                   [Page 13]


RFC 7517                   JSON Web Key (JWK)                   May 2015


8.2.  JSON Web Key Use レジストリ

   本節は JWK の "use"(公開鍵使用)メンバ値のための IANA "JSON Web Key Use" レジストリを設立します。
   レジストリは公開鍵使用値とそれを定義する仕様への参照を記録します。  本節は セクション 4.2
   で定義されたメンバ値を登録します。

8.2.1.  登録テンプレート

   Use Member Value:
      要求される名前(例: "sig")。本仕様の主要な目的の一つは表現を簡潔にすることにあるため、
      理由がない限り名前は短く(8 文字を超えない)することが推奨されます。  この名前は大文字小文字を区別します。
      名前は、指定エキスパートが例外を認めない限り、大文字小文字を区別しない方法で他の登録済みの名前と
      一致してはなりません。

   Use Description:
      使用の簡潔な説明(例: "Digital Signature or MAC")。

   Change Controller:
      Standards Track RFC の場合は "IESG" を記載します。それ以外の場合は責任ある当事者の名前を記載します。
      その他の詳細(郵便住所、メールアドレス、ホームページ URI 等)も含め得ます。

   Specification Document(s):
      パラメータを指定する文書への参照、できれば文書のコピーを取得するための URI を含めてください。
      関連セクションの表示も含め得ますが必須ではありません。

8.2.2.  初期レジストリ内容

   o  Use Member Value: "sig"
   o  Use Description: Digital Signature or MAC
   o  Change Controller: IESG
   o  Specification Document(s): Section 4.2 of RFC 7517

   o  Use Member Value: "enc"
   o  Use Description: Encryption
   o  Change Controller: IESG
   o  Specification Document(s): Section 4.2 of RFC 7517







Jones                        Standards Track                   [Page 15]


RFC 7517                   JSON Web Key (JWK)                   May 2015


8.3.  JSON Web Key Operations Registry

   このセクションでは、JWKの "key_ops" 配列要素の値のために
   IANA「JSON Web Key Operations」レジストリを設立する。
   レジストリにはキー操作値と、それを定義する仕様への参照が記録される。
   このセクションではセクション 4.3で定義されたパラメータ名を登録する。

8.3.1.  Registration Template

   Key Operation Value:
      要求される名前(例:「sign」)。この仕様の重要な目的のひとつは
      生じる表現が簡潔であることなので、名前は短くすることを推奨する ―
      充分な理由がない限り8文字を超えないこと。この名前は
      大文字小文字を区別する。他に登録されている名前と
      ケースインセンシティブ(一致すること)で一致してはいけないが、
      指定専門家が例外を認める十分な理由がある場合はこの限りでない。

   Key Operation Description:
      キー操作の簡単な説明(例:「デジタル署名またはMACを計算する」)。

   Change Controller:
      Standards Track RFCの場合は「IESG」と記載する。他の場合は
      責任者の名前を記載する。追加で(例:郵便住所、メールアドレス、
      ホームページURI)も含めてもよい。

   Specification Document(s):
      パラメータを定義する文書への参照。可能であれば文書のコピーを取得できる
      URIも記載する。関連するセクション表示も可能だが必須ではない。

8.3.2.  Initial Registry Contents

   o  Key Operation Value: "sign"
   o  Key Operation Description: デジタル署名またはMACを計算する
   o  Change Controller: IESG
   o  Specification Document(s): RFC 7517セクション4.3

   o  Key Operation Value: "verify"
   o  Key Operation Description: デジタル署名またはMACを検証する
   o  Change Controller: IESG
   o  Specification Document(s): RFC 7517セクション4.3






Jones                        Standards Track                   [Page 16]


RFC 7517                   JSON Web Key (JWK)                   May 2015


   o  Key Operation Value: "encrypt"
   o  Key Operation Description: コンテンツを暗号化する
   o  Change Controller: IESG
   o  Specification Document(s): RFC 7517セクション4.3

   o  Key Operation Value: "decrypt"
   o  Key Operation Description: コンテンツを復号し、可能な場合は
      復号の妥当性を検証する
   o  Change Controller: IESG
   o  Specification Document(s): RFC 7517セクション4.3

   o  Key Operation Value: "wrapKey"
   o  Key Operation Description: 鍵を暗号化する
   o  Change Controller: IESG
   o  Specification Document(s): RFC 7517セクション4.3

   o  Key Operation Value: "unwrapKey"
   o  Key Operation Description: 鍵を復号し、可能な場合は
      復号の妥当性を検証する
   o  Change Controller: IESG
   o  Specification Document(s): RFC 7517セクション4.3

   o  Key Operation Value: "deriveKey"
   o  Key Operation Description: 鍵を導出する
   o  Change Controller: IESG
   o  Specification Document(s): RFC 7517セクション4.3
   o  Key Operation Value: "deriveBits"
   o  Key Operation Description: 鍵として使わないビットを導出する
   o  Change Controller: IESG
   o  Specification Document(s): RFC 7517セクション4.3

8.4.  JSON Web Key Set Parameters Registry

   このセクションでは、JWK Setパラメータ名のための
   IANA「JSON Web Key Set Parameters」レジストリを設立する。
   レジストリにはパラメータ名と、それを定義する仕様への参照を記録する。
   このセクションではセクション5で定義されたパラメータ名を登録する。

8.4.1.  Registration Template

   Parameter Name:
      要求される名前(例:「keys」)。この仕様の重要な目的のひとつは
      生じる表現が簡潔であることなので、名前は短くすることを推奨する ―
      充分な理由がない限り8文字を超えないこと。この名前は
      大文字小文字を区別する。他に登録されている名前と
      ケースインセンシティブ(一致すること)で一致してはいけないが、
      指定専門家が例外を認める十分な理由がある場合はこの限りでない。



Jones                        Standards Track                   [Page 17]


RFC 7517                   JSON Web Key (JWK)                   May 2015


   Parameter Description:
      パラメータの簡単な説明(例:「JWK値の配列」)。

   Change Controller:
      Standards Track RFCの場合は「IESG」と記載する。他の場合は
      責任者の名前を記載する。追加で(例:郵便住所、メールアドレス、
      ホームページURI)も含めてもよい。

   Specification Document(s):
      パラメータを定義する文書への参照。可能であれば文書のコピーを取得できる
      URIも記載する。関連するセクション表示も可能だが必須ではない。

8.4.2.  Initial Registry Contents

   o  Parameter Name: "keys"
   o  Parameter Description: JWK値の配列
   o  Change Controller: IESG
   o  Specification Document(s): RFC 7517セクション5.1

8.5.  Media Type Registration

8.5.1.  Registry Contents

   このセクションは「application/jwk+json」と「application/
   jwk-set+json」メディアタイプ [RFC2046] を
   「Media Types」レジストリ [IANA.MediaTypes] に
   RFC 6838 [RFC6838]
   の記述方法で登録し、それぞれのコンテンツがJWKまたはJWK Set
   であることを示すために利用できる。

   o  Type Name: application
   o  Subtype Name: jwk+json
   o  Required Parameters: n/a
   o  Optional Parameters: n/a
   o  Encoding considerations: 8bit; application/jwk+json値は
      JSONオブジェクトとして表現される; JSONオブジェクトには
      UTF-8エンコーディングの利用が推奨される
   o  Security Considerations: RFC 7517の
      セキュリティに関する考慮事項参照
   o  Interoperability Considerations: n/a
   o  Published Specification: RFC 7517
   o  Applications that use this media type: OpenID Connect、Salesforce、
      Google、Android、Windows Azure、W3C WebCrypto API、その他多数
   o  Fragment identifier considerations: n/a






Jones                        Standards Track                   [Page 18]


RFC 7517                   JSON Web Key (JWK)                   May 2015


   o  Additional Information:

         Magic number(s): n/a
         File extension(s): n/a
         Macintosh file type code(s): n/a

   o  Person & email address to contact for further information:
      Michael B.  Jones, mbj@microsoft.com
   o  Intended Usage: COMMON
   o  Restrictions on Usage: なし
   o  Author: Michael B.  Jones, mbj@microsoft.com
   o  Change Controller: IESG
   o  Provisional registration? いいえ

   o  Type Name: application
   o  Subtype Name: jwk-set+json
   o  Required Parameters: n/a
   o  Optional Parameters: n/a
   o  Encoding considerations: 8bit; application/jwk-set+json値は
      JSONオブジェクトとして表現される; JSONオブジェクトには
      UTF-8エンコーディングの利用が推奨される
   o  Security Considerations: RFC 7517の
      セキュリティに関する考慮事項参照
   o  Interoperability Considerations: n/a
   o  Published Specification: RFC 7517
   o  Applications that use this media type: OpenID Connect、Salesforce、
      Google、Android、Windows Azure、W3C WebCrypto API、その他多数
   o  Fragment identifier considerations: n/a
   o  Additional Information:

         Magic number(s): n/a
         File extension(s): n/a
         Macintosh file type code(s): n/a

   o  Person & email address to contact for further information:
      Michael B.  Jones, mbj@microsoft.com
   o  Intended Usage: COMMON
   o  Restrictions on Usage: なし
   o  Author: Michael B.  Jones, mbj@microsoft.com
   o  Change Controller: IESG
   o  Provisional registration? いいえ

9.  Security Considerations

   すべての暗号化アプリケーションに関係するセキュリティ問題は
   JWS/JWE/JWKエージェントによって対処されなければならない。
   これらの問題には、利用者の非対称秘密鍵と対称秘密鍵の保護、
   様々な攻撃への対抗策の採用等が含まれる。



Jones                        Standards Track                   [Page 19]


RFC 7517                   JSON Web Key (JWK)                   May 2015


9.1.  Key Provenance and Trust

   鍵によって暗号的に保護されたデータをどれだけ信頼するかは、
   その鍵がどのように取得されたのか・鍵との関連性を主張する主体の
   信頼性に左右される。信頼できない方法で取得された鍵に関連するデータは
   懐疑的に見るべきである。[JWS]のセクション10.3も
   鍵の出所認証に関するセキュリティ考慮事項を参照のこと。

   ほとんどの場合、アプリケーションは鍵そのものではなく、
   鍵に付与された名前、役割、鍵の由来などの属性に基づいて、
   当該鍵を信頼するかどうかを判断します。アプリケーションが
   鍵の信頼性を決める際には、JWK に属性を結び付ける
   いくつかの方法があります。例として、PKIX
   [RFC5280] と JSON Web Token (JWT)
   [JWT] があります。

   例えば、JWKの作成者はJWKの「x5c」メンバーにPKIX証明書を
   含めることができる。アプリケーションが証明書を検証し、JWKが証明書の
   サブジェクト公開鍵に一致することを確かめられれば、JWKは証明書上の
   属性(サブジェクト名、代替名、拡張使用法、署名チェーン等)と関連付けられる。

   別の例として、JWTでJWKをクレームとして参照することで
   JWKに属性を関連付けることもできる。JWK自体をクレーム値と
   して含めてもよいし、JWTにTLS保護されたURIを含めて
   そこからJWK値を取得させてもよい。どちらの場合でも、
   JWTクレーム経由でJWKを受け取るアプリケーションは、
   JWTの暗号的性質や追加クレームを使って鍵の信頼可否判断を行える。

   XML DSIG 2.0のセクション12.3の「セキュリティチェーンの全リンクが
   強度決定に影響する」といったセキュリティ考慮事項も本仕様に適用される。

   [JWS]のセクション8のTLS要件も本仕様に適用されるが、
   この仕様でTLSを用いる機能定義は「x5u」JWKメンバーのみである。

9.2.  Preventing Disclosure of Non-public Key Information

   秘密鍵と共通鍵は、意図しない相手に開示されないよう
   保護しなければならない。推奨される方法の一つは、JWKやそれを含む
   JWK SetをJWEの平文として暗号化することにより保護すること。
   もちろんこれには、その非公開鍵情報を暗号化するために使う鍵を
   正当な相手に安全に渡す方法および、その相手が復号鍵を
   安全に取得できる方法が必要である。





   RFC 3447 [RFC3447] およびRFC 6030
   [RFC6030] の秘密鍵と共通鍵の保護、鍵利用や
   情報漏えいに関するセキュリティ考慮事項は本仕様にも
   適用されます。

9.3.  RSA秘密鍵表現とブラインディング

   RSA鍵のブラインディング操作 [Kocher] (タイミング攻撃への
   防御策)は、RSA鍵値 "n", "e", "d" のすべてを必要とします。
   しかし、いくつかのRSA秘密鍵表現は公開指数 "e" を含まず、
   モジュラス "n" と秘密指数 "d" のみを含みます。例えば
   JavaのRSAPrivateKeySpec APIは公開指数 "e" を
   パラメータとして含みません。RSA鍵のブラインディングを
   有効化するためにも、そのような表現は避けるべきです。
   Javaの場合はRSAPrivateCrtKeySpec APIを利用できます。
   「Handbook of Applied Cryptography」[HAC]
   の セクション8.2.2(i) では、必要に応じて "n", "e", "d"
   のみを用いてRSA秘密鍵パラメータを計算する方法について
   議論しています。

9.4.  鍵エントロピーと乱数値

   鍵エントロピーと乱数値のセキュリティ考慮事項については
   [JWS] のセクション10.1を参照してください。

10.  参考文献

10.1.  標準的参考文献

   [ECMAScript]
              Ecma International, 「ECMAScript Language Specification,
              5.1 Edition」, ECMA Standard 262, 2011年6月,
              <http://www.ecma-international.org/ecma-262/5.1/
              ECMA-262.pdf>.

   [IANA.MediaTypes]
              Internet Assigned Numbers Authority (IANA), 「Media Types」,
              <http://www.iana.org/assignments/media-types>.

   [ITU.X690.1994]
              International Telecommunications Union, 「Information
              Technology - ASN.1 encoding rules: Specification of Basic
              Encoding Rules (BER), Canonical Encoding Rules (CER) and
              Distinguished Encoding Rules (DER)」, ITU-T Recommendation
              X.690, 1994年.



   [JWA]      Jones, M., 「JSON Web Algorithms (JWA)」, RFC 7518,
              DOI 10.17487/RFC7518, 2015年5月,
              <http://www.rfc-editor.org/info/rfc7518>.

   [JWE]      Jones, M. and J. Hildebrand, 「JSON Web Encryption (JWE)」,
              RFC 7516, DOI 10.17487/RFC7516, 2015年5月,
              <http://www.rfc-editor.org/info/rfc7516>.

   [JWS]      Jones, M., Bradley, J., and N. Sakimura, 「JSON Web
              Signature (JWS)」, RFC 7515, DOI 10.17487/RFC7515, 2015年
              5月, <http://www.rfc-editor.org/info/rfc7515>.

   [RFC20]    Cerf, V., 「ASCII format for Network Interchange」, STD 80,
              RFC 20, DOI 10.17487/RFC0020, 1969年10月,
              <http://www.rfc-editor.org/info/rfc20>.

   [RFC2046]  Freed, N. and N. Borenstein, 「Multipurpose Internet Mail
              Extensions (MIME) Part Two: Media Types」, RFC 2046,
              DOI 10.17487/RFC2046, 1996年11月,
              <http://www.rfc-editor.org/info/rfc2046>.

   [RFC2119]  Bradner, S., 「Key words for use in RFCs to Indicate
              Requirement Levels」, BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, 1997年3月,
              <http://www.rfc-editor.org/info/rfc2119>.

   [RFC2818]  Rescorla, E., 「HTTP Over TLS」, RFC 2818,
              DOI 10.17487/RFC2818, 2000年5月,
              <http://www.rfc-editor.org/info/rfc2818>.

   [RFC3629]  Yergeau, F., 「UTF-8, a transformation format of ISO
              10646」, STD 63, RFC 3629, DOI 10.17487/RFC3629, 2003年
              11月, <http://www.rfc-editor.org/info/rfc3629>.

   [RFC3986]  Berners-Lee, T., Fielding, R., and L. Masinter, 「Uniform
              Resource Identifier (URI): Generic Syntax」, STD 66,
              RFC 3986, DOI 10.17487/RFC3986, 2005年1月,
              <http://www.rfc-editor.org/info/rfc3986>.

   [RFC4648]  Josefsson, S., 「The Base16, Base32, and Base64 Data
              Encodings」, RFC 4648, DOI 10.17487/RFC4648, 2006年10月,
              <http://www.rfc-editor.org/info/rfc4648>.

   [RFC4945]  Korver, B., 「The Internet IP Security PKI Profile of
              IKEv1/ISAKMP, IKEv2, and PKIX」, RFC 4945,
              DOI 10.17487/RFC4945, 2007年8月,
              <http://www.rfc-editor.org/info/rfc4945>.




   [RFC4949]  Shirey, R., 「Internet Security Glossary, Version 2」,
              FYI 36, RFC 4949, DOI 10.17487/RFC4949, 2007年8月,
              <http://www.rfc-editor.org/info/rfc4949>.

   [RFC5246]  Dierks, T. and E. Rescorla, 「The Transport Layer Security
              (TLS) Protocol Version 1.2」, RFC 5246,
              DOI 10.17487/RFC5246, 2008年8月,
              <http://www.rfc-editor.org/info/rfc5246>.

   [RFC5280]  Cooper, D., Santesson, S., Farrell, S., Boeyen, S.,
              Housley, R., and W. Polk, 「Internet X.509 Public Key
              Infrastructure Certificate and Certificate Revocation List
              (CRL) Profile」, RFC 5280, DOI 10.17487/RFC5280, 2008年5月,
              <http://www.rfc-editor.org/info/rfc5280>.

   [RFC6125]  Saint-Andre, P. and J. Hodges, 「Representation and
              Verification of Domain-Based Application Service Identity
              within Internet Public Key Infrastructure Using X.509
              (PKIX) Certificates in the Context of Transport Layer
              Security (TLS)」, RFC 6125, DOI 10.17487/RFC6125, 2011年3月
              , <http://www.rfc-editor.org/info/rfc6125>.

   [RFC7159]  Bray, T., Ed., 「The JavaScript Object Notation (JSON) Data
              Interchange Format」, RFC 7159, DOI 10.17487/RFC7159, 2014年3月
              , <http://www.rfc-editor.org/info/rfc7159>.

   [UNICODE]  The Unicode Consortium, 「The Unicode Standard」,
              <http://www.unicode.org/versions/latest/>.

10.2.  参考情報

   [DSS]      National Institute of Standards and Technology (NIST),
              「Digital Signature Standard (DSS)」, FIPS PUB 186-4, 2013年
              7月, <http://nvlpubs.nist.gov/nistpubs/FIPS/
              NIST.FIPS.186-4.pdf>.

   [HAC]      Menezes, A., van Oorschot, P., and S. Vanstone, 「Handbook
              of Applied Cryptography」, CRC Press, 1996年10月,
              <http://cacr.uwaterloo.ca/hac/>.

   [JWT]      Jones, M., Bradley, J., and N. Sakimura, 「JSON Web Token
              (JWT)」, RFC 7519, DOI 10.17487/RFC7519, 2015年5月,
              <http://www.rfc-editor.org/info/rfc7519>.








   [Kocher]   Kocher, P., 「Timing Attacks on Implementations of
              Diffe-Hellman, RSA, DSS, and Other Systems」, In
              Proceedings of the 16th Annual International Cryptology
              Conference Advances in Cryptology, Springer-Verlag, pp.
              104-113, 1996年.

   [MagicSignatures]
              Panzer, J., Ed., Laurie, B., and D. Balfanz, 「Magic
              Signatures」, 2011年1月,
              <http://salmon-protocol.googlecode.com/svn/trunk/
              draft-panzer-magicsig-01.html>.

   [RFC3447]  Jonsson, J. and B. Kaliski, 「Public-Key Cryptography
              Standards (PKCS) #1: RSA Cryptography Specifications
              Version 2.1」, RFC 3447, DOI 10.17487/RFC3447, 2003年2月
              , <http://www.rfc-editor.org/info/rfc3447>.

   [RFC5226]  Narten, T. and H. Alvestrand, 「Guidelines for Writing an
              IANA Considerations Section in RFCs」, BCP 26, RFC 5226,
              DOI 10.17487/RFC5226, 2008年5月,
              <http://www.rfc-editor.org/info/rfc5226>.

   [RFC6030]  Hoyer, P., Pei, M., and S. Machani, 「Portable Symmetric
              Key Container (PSKC)」, RFC 6030, DOI 10.17487/RFC6030,
              2010年10月, <http://www.rfc-editor.org/info/rfc6030>.

   [RFC6838]  Freed, N., Klensin, J., and T. Hansen, 「Media Type
              Specifications and Registration Procedures」, BCP 13,
              RFC 6838, DOI 10.17487/RFC6838, 2013年1月,
              <http://www.rfc-editor.org/info/rfc6838>.

   [W3C.CR-WebCryptoAPI-20141211]
              Sleevi, R. and M. Watson, 「Web Cryptography API」, World
              Wide Web Consortium Candidate Recommendation
              CR-WebCryptoAPI-20141211, 2014年12月,
              <http://www.w3.org/TR/2014/CR-WebCryptoAPI-20141211/>.

   [W3C.NOTE-xmldsig-core2-20130411]
              Eastlake, D., Reagle, J., Solo, D., Hirsch, F., Roessler,
              T., Yiu, K., Datta, P., and S. Cantor, 「XML Signature
              Syntax and Processing Version 2.0」, World Wide Web
              Consortium Note NOTE-xmldsig-core2-20130411, 2013年4月,
              <http://www.w3.org/TR/2013/NOTE-xmldsig-core2-20130411/>.



付録A.  JSON Web Keyセット例

A.1.  公開鍵の例

   次のJWKセット例は、楕円曲線アルゴリズムを使った
   1つの公開鍵と、RSAアルゴリズムを使った2つ目の
   公開鍵をJWKとして表現しています。1つ目は暗号化用であると
   指定しています。2つ目は「RS256」アルゴリズム用であると指定しています。
   両方ともキー照合(マッチング)用途のためキーIDを持っています。
   どちらの場合も整数値はビッグエンディアン表現を
   base64urlで符号化しています。(値内の改行は表示目的のみ)

     {"keys":
       [
         {"kty":"EC",
          "crv":"P-256",
          "x":"MKBCTNIcKUSDii11ySs3526iDZ8AiTo7Tu6KPAqv7D4",
          "y":"4Etl6SRW2YiLUrN5vfvVHuhp7x8PxltmWWlbbM4IFyM",
          "use":"enc",
          "kid":"1"},

         {"kty":"RSA",
          "n": "0vx7agoebGcQSuuPiLJXZptN9nndrQmbXEps2aiAFbWhM78LhWx
     4cbbfAAtVT86zwu1RK7aPFFxuhDR1L6tSoc_BJECPebWKRXjBZCiFV4n3oknjhMs
     tn64tZ_2W-5JsGY4Hc5n9yBXArwl93lqt7_RN5w6Cf0h4QyQ5v-65YGjQR0_FDW2
     QvzqY368QQMicAtaSqzs8KJZgnYb9c7d0zgdAZHzu6qMQvRL5hajrn1n91CbOpbI
     SD08qNLyrdkt-bFTWhAI4vMQFh6WeZu0fM4lFd2NcRwr3XPksINHaQ-G_xBniIqb
     w0Ls1jF44-csFCur-kEgU8awapJzKnqDKgw",
          "e":"AQAB",
          "alg":"RS256",
          "kid":"2011-04-29"}
       ]
     }

A.2.  秘密鍵の例

   次のJWKセット例は、公開鍵と秘密鍵値の両方を含む
   2つの鍵をJWKとして表現しています。1つは
   楕円曲線アルゴリズム、もう1つはRSAアルゴリズムです。
   この例は前節の例に秘密鍵値を追加したものです。
   (値内の改行は表示目的のみ)








Jones                        Standards Track                   [Page 25]


RFC 7517                   JSON Web Key (JWK)                   May 2015


     {"keys":
       [
         {"kty":"EC",
          "crv":"P-256",
          "x":"MKBCTNIcKUSDii11ySs3526iDZ8AiTo7Tu6KPAqv7D4",
          "y":"4Etl6SRW2YiLUrN5vfvVHuhp7x8PxltmWWlbbM4IFyM",
          "d":"870MB6gfuTJ4HtUnUvYMyJpr5eUZNP4Bk43bVdj3eAE",
          "use":"enc",
          "kid":"1"},

         {"kty":"RSA",
          "n":"0vx7agoebGcQSuuPiLJXZptN9nndrQmbXEps2aiAFbWhM78LhWx4
     cbbfAAtVT86zwu1RK7aPFFxuhDR1L6tSoc_BJECPebWKRXjBZCiFV4n3oknjhMst
     n64tZ_2W-5JsGY4Hc5n9yBXArwl93lqt7_RN5w6Cf0h4QyQ5v-65YGjQR0_FDW2Q
     vzqY368QQMicAtaSqzs8KJZgnYb9c7d0zgdAZHzu6qMQvRL5hajrn1n91CbOpbIS
     D08qNLyrdkt-bFTWhAI4vMQFh6WeZu0fM4lFd2NcRwr3XPksINHaQ-G_xBniIqbw
     0Ls1jF44-csFCur-kEgU8awapJzKnqDKgw",
          "e":"AQAB",
          "d":"X4cTteJY_gn4FYPsXB8rdXix5vwsg1FLN5E3EaG6RJoVH-HLLKD9
     M7dx5oo7GURknchnrRweUkC7hT5fJLM0WbFAKNLWY2vv7B6NqXSzUvxT0_YSfqij
     wp3RTzlBaCxWp4doFk5N2o8Gy_nHNKroADIkJ46pRUohsXywbReAdYaMwFs9tv8d
     _cPVY3i07a3t8MN6TNwm0dSawm9v47UiCl3Sk5ZiG7xojPLu4sbg1U2jx4IBTNBz
     nbJSzFHK66jT8bgkuqsk0GjskDJk19Z4qwjwbsnn4j2WBii3RL-Us2lGVkY8fkFz
     me1z0HbIkfz0Y6mqnOYtqc0X4jfcKoAC8Q",
          "p":"83i-7IvMGXoMXCskv73TKr8637FiO7Z27zv8oj6pbWUQyLPQBQxtPV
     nwD20R-60eTDmD2ujnMt5PoqMrm8RfmNhVWDtjjMmCMjOpSXicFHj7XOuVIYQyqV
     WlWEh6dN36GVZYk93N8Bc9vY41xy8B9RzzOGVQzXvNEvn7O0nVbfs",
          "q":"3dfOR9cuYq-0S-mkFLzgItgMEfFzB2q3hWehMuG0oCuqnb3vobLyum
     qjVZQO1dIrdwgTnCdpYzBcOfW5r370AFXjiWft_NGEiovonizhKpo9VVS78TzFgx
     kIdrecRezsZ-1kYd_s1qDbxtkDEgfAITAG9LUnADun4vIcb6yelxk",
          "dp":"G4sPXkc6Ya9y8oJW9_ILj4xuppu0lzi_H7VTkS8xj5SdX3coE0oim
     YwxIi2emTAue0UOa5dpgFGyBJ4c8tQ2VF402XRugKDTP8akYhFo5tAA77Qe_Nmtu
     YZc3C3m3I24G2GvR5sSDxUyAN2zq8Lfn9EUms6rY3Ob8YeiKkTiBj0",
          "dq":"s9lAH9fggBsoFR8Oac2R_E2gw282rT2kGOAhvIllETE1efrA6huUU
     vMfBcMpn8lqeW6vzznYY5SSQF7pMdC_agI3nG8Ibp1BUb0JUiraRNqUfLhcQb_d9
     GF4Dh7e74WbRsobRonujTYN1xCaP6TO61jvWrX-L18txXw494Q_cgk",
          "qi":"GyM_p6JrXySiz1toFgKbWV-JdI3jQ4ypu9rbMWx3rQJBfmt0FoYzg
     UIZEVFEcOqwemRN81zoDAaa-Bk0KWNGDjJHZDdDmFhW3AN7lI-puxk_mHZGJ11rx
     yR8O55XLSe3SPmRfKwZI6yU24ZxvQKFYItdldUKGzO6Ia6zTKhAVRU",
          "alg":"RS256",
          "kid":"2011-04-29"}
       ]
     }








Jones                        Standards Track                   [Page 26]


RFC 7517                   JSON Web Key (JWK)                   May 2015


A.3.  対称鍵の例

   次のJWKセット例は、2つの対称鍵をJWKとして表現したものです:1つは
   AES鍵ラップアルゴリズム用に指定された鍵、もう1つはHMAC鍵です。
   (値内の改行は表示目的のみです。)

     {"keys":
       [
         {"kty":"oct",
          "alg":"A128KW",
          "k":"GawgguFyGrWKav7AX4VKUg"},

         {"kty":"oct",
          "k":"AyM1SysPpbyDfgZld3umj1qzKObwVMkoqQ-EstJQLr_T-1qS0gZH75
     aKtMN3Yj0iPS4hcgUuTwjAzZr1Z9CAow",
          "kid":"HMAC key used in JWS spec Appendix A.1 example"}
       ]
     }
































Jones                        Standards Track                   [Page 27]


RFC 7517                   JSON Web Key (JWK)                   May 2015


付録 B.  "x5c" (X.509 証明書チェーン) パラメータの使用例

   次は、RSA署名鍵をRSA公開鍵としてだけでなく、"x5c" パラメータを使用して
   X.509 証明書としても表現したJWKの例です(値内の改行は表示目的のみ):

     {"kty":"RSA",
      "use":"sig",
      "kid":"1b94c",
      "n":"vrjOfz9Ccdgx5nQudyhdoR17V-IubWMeOZCwX_jj0hgAsz2J_pqYW08
      PLbK_PdiVGKPrqzmDIsLI7sA25VEnHU1uCLNwBuUiCO11_-7dYbsr4iJmG0Q
      u2j8DsVyT1azpJC_NG84Ty5KKthuCaPod7iI7w0LK9orSMhBEwwZDCxTWq4a
      YWAchc8t-emd9qOvWtVMDC2BXksRngh6X5bUYLy6AyHKvj-nUy1wgzjYQDwH
      MTplCoLtU-o-8SNnZ1tmRoGE9uJkBLdh5gFENabWnU5m1ZqZPdwS-qo-meMv
      VfJb6jJVWRpl2SUtCnYG2C32qvbWbjZ_jBPD5eunqsIo1vQ",
      "e":"AQAB",
      "x5c":
       ["MIIDQjCCAiqgAwIBAgIGATz/FuLiMA0GCSqGSIb3DQEBBQUAMGIxCzAJB
       gNVBAYTAlVTMQswCQYDVQQIEwJDTzEPMA0GA1UEBxMGRGVudmVyMRwwGgYD
       VQQKExNQaW5nIElkZW50aXR5IENvcnAuMRcwFQYDVQQDEw5CcmlhbiBDYW1
       wYmVsbDAeFw0xMzAyMjEyMzI5MTVaFw0xODA4MTQyMjI5MTVaMGIxCzAJBg
       NVBAYTAlVTMQswCQYDVQQIEwJDTzEPMA0GA1UEBxMGRGVudmVyMRwwGgYDV
       QQKExNQaW5nIElkZW50aXR5IENvcnAuMRcwFQYDVQQDEw5CcmlhbiBDYW1w
       YmVsbDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL64zn8/QnH
       YMeZ0LncoXaEde1fiLm1jHjmQsF/449IYALM9if6amFtPDy2yvz3YlRij66
       s5gyLCyO7ANuVRJx1NbgizcAblIgjtdf/u3WG7K+IiZhtELto/A7Fck9Ws6
       SQvzRvOE8uSirYbgmj6He4iO8NCyvaK0jIQRMMGQwsU1quGmFgHIXPLfnpn
       fajr1rVTAwtgV5LEZ4Iel+W1GC8ugMhyr4/p1MtcIM42EA8BzE6ZQqC7VPq
       PvEjZ2dbZkaBhPbiZAS3YeYBRDWm1p1OZtWamT3cEvqqPpnjL1XyW+oyVVk
       aZdklLQp2Btgt9qr21m42f4wTw+Xrp6rCKNb0CAwEAATANBgkqhkiG9w0BA
       QUFAAOCAQEAh8zGlfSlcI0o3rYDPBB07aXNswb4ECNIKG0CETTUxmXl9KUL
       +9gGlqCz5iWLOgWsnrcKcY0vXPG9J1r9AqBNTqNgHq2G03X09266X5CpOe1
       zFo+Owb1zxtp3PehFdfQJ610CDLEaS9V9Rqp17hCyybEpOGVwe8fnk+fbEL
       2Bo3UPGrpsHzUoaGpDftmWssZkhpBJKVMJyf/RuP2SmmaIzmnw9JiSlYhzo
       4tpzd5rFXhjRbg4zW9C+2qok+2+qDM1iJ684gPHMIY8aLWrdgQTxkumGmTq
       gawR+N5MDtdPTEQ0XfIBc2cJEUyMTY5MPvACWpkA6SdS4xSvdXK3IVfOWA=="]
     }

付録 C.  暗号化された RSA 秘密鍵の例

   この例では、受信者に対して RSA 秘密鍵を暗号化します。鍵暗号化には
   "PBES2-HS256+A128KW"、コンテンツ暗号化には "A128CBC+HS256" を使用します。

   注:特に断りがない限り、すべての改行は可読性のためにのみ含まれています。




Jones                        Standards Track                   [Page 28]


RFC 7517                   JSON Web Key (JWK)                   May 2015


C.1.  平文の RSA 秘密鍵

   次のRSA鍵は認証付き暗号化操作のための平文であり、JWKとして
   フォーマットされています(値内の改行は表示目的のみ):

     {
      "kty":"RSA",
      "kid":"juliet@capulet.lit",
      "use":"enc",
      "n":"t6Q8PWSi1dkJj9hTP8hNYFlvadM7DflW9mWepOJhJ66w7nyoK1gPNqFMSQRy
           O125Gp-TEkodhWr0iujjHVx7BcV0llS4w5ACGgPrcAd6ZcSR0-Iqom-QFcNP
           8Sjg086MwoqQU_LYywlAGZ21WSdS_PERyGFiNnj3QQlO8Yns5jCtLCRwLHL0
           Pb1fEv45AuRIuUfVcPySBWYnDyGxvjYGDSM-AqWS9zIQ2ZilgT-GqUmipg0X
           OC0Cc20rgLe2ymLHjpHciCKVAbY5-L32-lSeZO-Os6U15_aXrk9Gw8cPUaX1
           _I8sLGuSiVdt3C_Fn2PZ3Z8i744FPFGGcG1qs2Wz-Q",
      "e":"AQAB",
      "d":"GRtbIQmhOZtyszfgKdg4u_N-R_mZGU_9k7JQ_jn1DnfTuMdSNprTeaSTyWfS
           NkuaAwnOEbIQVy1IQbWVV25NY3ybc_IhUJtfri7bAXYEReWaCl3hdlPKXy9U
           vqPYGR0kIXTQRqns-dVJ7jahlI7LyckrpTmrM8dWBo4_PMaenNnPiQgO0xnu
           ToxutRZJfJvG4Ox4ka3GORQd9CsCZ2vsUDmsXOfUENOyMqADC6p1M3h33tsu
           rY15k9qMSpG9OX_IJAXmxzAh_tWiZOwk2K4yxH9tS3Lq1yX8C1EWmeRDkK2a
           hecG85-oLKQt5VEpWHKmjOi_gJSdSgqcN96X52esAQ",
      "p":"2rnSOV4hKSN8sS4CgcQHFbs08XboFDqKum3sc4h3GRxrTmQdl1ZK9uw-PIHf
           QP0FkxXVrx-WE-ZEbrqivH_2iCLUS7wAl6XvARt1KkIaUxPPSYB9yk31s0Q8
           UK96E3_OrADAYtAJs-M3JxCLfNgqh56HDnETTQhH3rCT5T3yJws",
      "q":"1u_RiFDP7LBYh3N4GXLT9OpSKYP0uQZyiaZwBtOCBNJgQxaj10RWjsZu0c6I
           edis4S7B_coSKB0Kj9PaPaBzg-IySRvvcQuPamQu66riMhjVtG6TlV8CLCYK
           rYl52ziqK0E_ym2QnkwsUX7eYTB7LbAHRK9GqocDE5B0f808I4s",
      "dp":"KkMTWqBUefVwZ2_Dbj1pPQqyHSHjj90L5x_MOzqYAJMcLMZtbUtwKqvVDq3
           tbEo3ZIcohbDtt6SbfmWzggabpQxNxuBpoOOf_a_HgMXK_lhqigI4y_kqS1w
           Y52IwjUn5rgRrJ-yYo1h41KR-vz2pYhEAeYrhttWtxVqLCRViD6c",
      "dq":"AvfS0-gRxvn0bwJoMSnFxYcK1WnuEjQFluMGfwGitQBWtfZ1Er7t1xDkbN9
           GQTB9yqpDoYaN06H7CFtrkxhJIBQaj6nkF5KKS3TQtQ5qCzkOkmxIe3KRbBy
           mXxkb5qwUpX5ELD5xFc6FeiafWYY63TmmEAu_lRFCOJ3xDea-ots",
      "qi":"lSQi-w9CpyUReMErP1RsBLk7wNtOvs5EQpPqmuMvqW57NBUczScEoPwmUqq
           abu9V0-Py4dQ57_bapoKRu1R90bvuFnU63SHWEFglZQvJDMeAvmj4sm-Fp0o
           Yu_neotgQ0hzbI5gry7ajdYy9-2lNx_76aBZoOUu9HCJ-UsfSOI8"
     }

   この例で平文を表すオクテット列(JSON配列表記)は次の通りです:

   [123, 34, 107, 116, 121, 34, 58, 34, 82, 83, 65, 34, 44, 34, 107,
   105, 100, 34, 58, 34, 106, 117, 108, 105, 101, 116, 64, 99, 97, 112,
   117, 108, 101, 116, 46, 108, 105, 116, 34, 44, 34, 117, 115, 101, 34,
   58, 34, 101, 110, 99, 34, 44, 34, 110, 34, 58, 34, 116, 54, 81, 56,
   80, 87, 83, 105, 49, 100, 107, 74, 106, 57, 104, 84, 80, 56, 104, 78,



Jones                        Standards Track                   [Page 29]


RFC 7517                   JSON Web Key (JWK)                   May 2015


   89, 70, 108, 118, 97, 100, 77, 55, 68, 102, 108, 87, 57, 109, 87,
   101, 112, 79, 74, 104, 74, 54, 54, 119, 55, 110, 121, 111, 75, 49,
   103, 80, 78, 113, 70, 77, 83, 81, 82, 121, 79, 49, 50, 53, 71, 112,
   45, 84, 69, 107, 111, 100, 104, 87, 114, 48, 105, 117, 106, 106, 72,
   86, 120, 55, 66, 99, 86, 48, 108, 108, 83, 52, 119, 53, 65, 67, 71,
   103, 80, 114, 99, 65, 100, 54, 90, 99, 83, 82, 48, 45, 73, 113, 111,
   109, 45, 81, 70, 99, 78, 80, 56, 83, 106, 103, 48, 56, 54, 77, 119,
   111, 113, 81, 85, 95, 76, 89, 121, 119, 108, 65, 71, 90, 50, 49, 87,
   83, 100, 83, 95, 80, 69, 82, 121, 71, 70, 105, 78, 110, 106, 51, 81,
   81, 108, 79, 56, 89, 110, 115, 53, 106, 67, 116, 76, 67, 82, 119, 76,
   72, 76, 48, 80, 98, 49, 102, 69, 118, 52, 53, 65, 117, 82, 73, 117,
   85, 102, 86, 99, 80, 121, 83, 66, 87, 89, 110, 68, 121, 71, 120, 118,
   106, 89, 71, 68, 83, 77, 45, 65, 113, 87, 83, 57, 122, 73, 81, 50,
   90, 105, 108, 103, 84, 45, 71, 113, 85, 109, 105, 112, 103, 48, 88,
   79, 67, 48, 67, 99, 50, 48, 114, 103, 76, 101, 50, 121, 109, 76, 72,
   106, 112, 72, 99, 105, 67, 75, 86, 65, 98, 89, 53, 45, 76, 51, 50,
   45, 108, 83, 101, 90, 79, 45, 79, 115, 54, 85, 49, 53, 95, 97, 88,
   114, 107, 57, 71, 119, 56, 99, 80, 85, 97, 88, 49, 95, 73, 56, 115,
   76, 71, 117, 83, 105, 86, 100, 116, 51, 67, 95, 70, 110, 50, 80, 90,
   51, 90, 56, 105, 55, 52, 52, 70, 80, 70, 71, 71, 99, 71, 49, 113,
   115, 50, 87, 122, 45, 81, 34, 44, 34, 101, 34, 58, 34, 65, 81, 65,
   66, 34, 44, 34, 100, 34, 58, 34, 71, 82, 116, 98, 73, 81, 109, 104,
   79, 90, 116, 121, 115, 122, 102, 103, 75, 100, 103, 52, 117, 95, 78,
   45, 82, 95, 109, 90, 71, 85, 95, 57, 107, 55, 74, 81, 95, 106, 110,
   49, 68, 110, 102, 84, 117, 77, 100, 83, 78, 112, 114, 84, 101, 97,
   83, 84, 121, 87, 102, 83, 78, 107, 117, 97, 65, 119, 110, 79, 69, 98,
   73, 81, 86, 121, 49, 73, 81, 98, 87, 86, 86, 50, 53, 78, 89, 51, 121,
   98, 99, 95, 73, 104, 85, 74, 116, 102, 114, 105, 55, 98, 65, 88, 89,
   69, 82, 101, 87, 97, 67, 108, 51, 104, 100, 108, 80, 75, 88, 121, 57,
   85, 118, 113, 80, 89, 71, 82, 48, 107, 73, 88, 84, 81, 82, 113, 110,
   115, 45, 100, 86, 74, 55, 106, 97, 104, 108, 73, 55, 76, 121, 99,
   107, 114, 112, 84, 109, 114, 77, 56, 100, 87, 66, 111, 52, 95, 80,
   77, 97, 101, 110, 78, 110, 80, 105, 81, 103, 79, 48, 120, 110, 117,
   84, 111, 120, 117, 116, 82, 90, 74, 102, 74, 118, 71, 52, 79, 120,
   52, 107, 97, 51, 71, 79, 82, 81, 100, 57, 67, 115, 67, 90, 50, 118,
   115, 85, 68, 109, 115, 88, 79, 102, 85, 69, 78, 79, 121, 77, 113, 65,
   68, 67, 54, 112, 49, 77, 51, 104, 51, 51, 116, 115, 117, 114, 89, 49,
   53, 107, 57, 113, 77, 83, 112, 71, 57, 79, 88, 95, 73, 74, 65, 88,
   109, 120, 122, 65, 104, 95, 116, 87, 105, 90, 79, 119, 107, 50, 75,
   52, 121, 120, 72, 57, 116, 83, 51, 76, 113, 49, 121, 88, 56, 67, 49,
   69, 87, 109, 101, 82, 68, 107, 75, 50, 97, 104, 101, 99, 71, 56, 53,
   45, 111, 76, 75, 81, 116, 53, 86, 69, 112, 87, 72, 75, 109, 106, 79,
   105, 95, 103, 74, 83, 100, 83, 103, 113, 99, 78, 57, 54, 88, 53, 50,
   101, 115, 65, 81, 34, 44, 34, 112, 34, 58, 34, 50, 114, 110, 83, 79,
   86, 52, 104, 75, 83, 78, 56, 115, 83, 52, 67, 103, 99, 81, 72, 70,
   98, 115, 48, 56, 88, 98, 111, 70, 68, 113, 75, 117, 109, 51, 115, 99,
   52, 104, 51, 71, 82, 120, 114, 84, 109, 81, 100, 108, 49, 90, 75, 57,
   117, 119, 45, 80, 73, 72, 102, 81, 80, 48, 70, 107, 120, 88, 86, 114,



Jones                        Standards Track                   [Page 30]


RFC 7517                   JSON Web Key (JWK)                   May 2015


   120, 45, 87, 69, 45, 90, 69, 98, 114, 113, 105, 118, 72, 95, 50, 105,
   67, 76, 85, 83, 55, 119, 65, 108, 54, 88, 118, 65, 82, 116, 49, 75,
   107, 73, 97, 85, 120, 80, 80, 83, 89, 66, 57, 121, 107, 51, 49, 115,
   48, 81, 56, 85, 75, 57, 54, 69, 51, 95, 79, 114, 65, 68, 65, 89, 116,
   65, 74, 115, 45, 77, 51, 74, 120, 67, 76, 102, 78, 103, 113, 104, 53,
   54, 72, 68, 110, 69, 84, 84, 81, 104, 72, 51, 114, 67, 84, 53, 84,
   51, 121, 74, 119, 115, 34, 44, 34, 113, 34, 58, 34, 49, 117, 95, 82,
   105, 70, 68, 80, 55, 76, 66, 89, 104, 51, 78, 52, 71, 88, 76, 84, 57,
   79, 112, 83, 75, 89, 80, 48, 117, 81, 90, 121, 105, 97, 90, 119, 66,
   116, 79, 67, 66, 78, 74, 103, 81, 120, 97, 106, 49, 48, 82, 87, 106,
   115, 90, 117, 48, 99, 54, 73, 101, 100, 105, 115, 52, 83, 55, 66, 95,
   99, 111, 83, 75, 66, 48, 75, 106, 57, 80, 97, 80, 97, 66, 122, 103,
   45, 73, 121, 83, 82, 118, 118, 99, 81, 117, 80, 97, 109, 81, 117, 54,
   54, 114, 105, 77, 104, 106, 86, 116, 71, 54, 84, 108, 86, 56, 67, 76,
   67, 89, 75, 114, 89, 108, 53, 50, 122, 105, 113, 75, 48, 69, 95, 121,
   109, 50, 81, 110, 107, 119, 115, 85, 88, 55, 101, 89, 84, 66, 55, 76,
   98, 65, 72, 82, 75, 57, 71, 113, 111, 99, 68, 69, 53, 66, 48, 102,
   56, 48, 56, 73, 52, 115, 34, 44, 34, 100, 112, 34, 58, 34, 75, 107,
   77, 84, 87, 113, 66, 85, 101, 102, 86, 119, 90, 50, 95, 68, 98, 106,
   49, 112, 80, 81, 113, 121, 72, 83, 72, 106, 106, 57, 48, 76, 53, 120,
   95, 77, 79, 122, 113, 89, 65, 74, 77, 99, 76, 77, 90, 116, 98, 85,
   116, 119, 75, 113, 118, 86, 68, 113, 51, 116, 98, 69, 111, 51, 90,
   73, 99, 111, 104, 98, 68, 116, 116, 54, 83, 98, 102, 109, 87, 122,
   103, 103, 97, 98, 112, 81, 120, 78, 120, 117, 66, 112, 111, 79, 79,
   102, 95, 97, 95, 72, 103, 77, 88, 75, 95, 108, 104, 113, 105, 103,
   73, 52, 121, 95, 107, 113, 83, 49, 119, 89, 53, 50, 73, 119, 106, 85,
   110, 53, 114, 103, 82, 114, 74, 45, 121, 89, 111, 49, 104, 52, 49,
   75, 82, 45, 118, 122, 50, 112, 89, 104, 69, 65, 101, 89, 114, 104,
   116, 116, 87, 116, 120, 86, 113, 76, 67, 82, 86, 105, 68, 54, 99, 34,
   44, 34, 100, 113, 34, 58, 34, 65, 118, 102, 83, 48, 45, 103, 82, 120,
   118, 110, 48, 98, 119, 74, 111, 77, 83, 110, 70, 120, 89, 99, 75, 49,
   87, 110, 117, 69, 106, 81, 70, 108, 117, 77, 71, 102, 119, 71, 105,
   116, 81, 66, 87, 116, 102, 90, 49, 69, 114, 55, 116, 49, 120, 68,
   107, 98, 78, 57, 71, 81, 84, 66, 57, 121, 113, 112, 68, 111, 89, 97,
   78, 48, 54, 72, 55, 67, 70, 116, 114, 107, 120, 104, 74, 73, 66, 81,
   97, 106, 54, 110, 107, 70, 53, 75, 75, 83, 51, 84, 81, 116, 81, 53,
   113, 67, 122, 107, 79, 107, 109, 120, 73, 101, 51, 75, 82, 98, 66,
   121, 109, 88, 120, 107, 98, 53, 113, 119, 85, 112, 88, 53, 69, 76,
   68, 53, 120, 70, 99, 54, 70, 101, 105, 97, 102, 87, 89, 89, 54, 51,
   84, 109, 109, 69, 65, 117, 95, 108, 82, 70, 67, 79, 74, 51, 120, 68,
   101, 97, 45, 111, 116, 115, 34, 44, 34, 113, 105, 34, 58, 34, 108,
   83, 81, 105, 45, 119, 57, 67, 112, 121, 85, 82, 101, 77, 69, 114, 80,
   49, 82, 115, 66, 76, 107, 55, 119, 78, 116, 79, 118, 115, 53, 69, 81,
   112, 80, 113, 109, 117, 77, 118, 113, 87, 53, 55, 78, 66, 85, 99,
   122, 83, 99, 69, 111, 80, 119, 109, 85, 113, 113, 97, 98, 117, 57,
   86, 48, 45, 80, 121, 52, 100, 81, 53, 55, 95, 98, 97, 112, 111, 75,
   82, 117, 49, 82, 57, 48, 98, 118, 117, 70, 110, 85, 54, 51, 83, 72,
   87, 69, 70, 103, 108, 90, 81, 118, 74, 68, 77, 101, 65, 118, 109,



Jones                        Standards Track                   [Page 31]


RFC 7517                   JSON Web Key (JWK)                   May 2015


   106, 52, 115, 109, 45, 70, 112, 48, 111, 89, 117, 95, 110, 101, 111,
   116, 103, 81, 48, 104, 122, 98, 73, 53, 103, 114, 121, 55, 97, 106,
   100, 89, 121, 57, 45, 50, 108, 78, 120, 95, 55, 54, 97, 66, 90, 111,
   79, 85, 117, 57, 72, 67, 74, 45, 85, 115, 102, 83, 79, 73, 56, 34,
   125]

C.2.  JOSE ヘッダ

   次のJWE保護ヘッダの例は以下を宣言します:

   o  コンテンツ暗号化キーは PSE2-HS256+A128KW アルゴリズムを用いて受信者に暗号化され、
      JWE Encrypted Key を生成すること、

   o  Salt Input ("p2s") の値は [217, 96, 147, 112, 150, 117, 70,
      247, 127, 8, 155, 137, 174, 42, 80, 215] であること、

   o  Iteration Count ("p2c") の値は 4096 であること、

   o  平文に対して認証付き暗号化が AES_128_CBC_HMAC_SHA_256 アルゴリズムで実行され、
      暗号文と認証タグが生成されること、及び

   o  コンテントタイプが application/jwk+json であること。

     {
      "alg":"PBES2-HS256+A128KW",
      "p2s":"2WCTcJZ1Rvd_CJuJripQ1w",
      "p2c":4096,
      "enc":"A128CBC-HS256",
      "cty":"jwk+json"
     }

   このJWE保護ヘッダを BASE64URL(UTF8(JWE Protected Header)) として
   エンコードすると次の値になります(表示のための改行あり):

     eyJhbGciOiJQQkVTMi1IUzI1NitBMTI4S1ciLCJwMnMiOiIyV0NUY0paMVJ2ZF9DSn
     VKcmlwUTF3IiwicDJjIjo0MDk2LCJlbmMiOiJBMTI4Q0JDLUhTMjU2IiwiY3R5Ijoi
     andrK2pzb24ifQ

C.3.  コンテンツ暗号化キー (CEK)

   256ビットのランダムなコンテンツ暗号化キー(CEK)を生成します。
   この例では、値(JSON配列表記)は次の通りです:

   [111, 27, 25, 52, 66, 29, 20, 78, 92, 176, 56, 240, 65, 208, 82, 112,
   161, 131, 36, 55, 202, 236, 185, 172, 129, 23, 153, 194, 195, 48,
   253, 182]



Jones                        Standards Track                   [Page 32]


RFC 7517                   JSON Web Key (JWK)                   May 2015


C.4.  鍵導出

   PBKDF2アルゴリズム(HMAC SHA-256)を使用し、指定されたSaltとIteration Countの値と、
   128ビットの出力鍵長を用いて、共有パスフレーズから鍵を導出して
   PBKDF2派生鍵を生成します。この例で使用するパスフレーズは次の通りです:

     Thus from my lips, by yours, my sin is purged.

   パスフレーズを表すオクテット列は次の通りです:

   [84, 104, 117, 115, 32, 102, 114, 111, 109, 32, 109, 121, 32, 108,
   105, 112, 115, 44, 32, 98, 121, 32, 121, 111, 117, 114, 115, 44, 32,
   109, 121, 32, 115, 105, 110, 32, 105, 115, 32, 112, 117, 114, 103,
   101, 100, 46]

   Salt 値 (UTF8(Alg) || 0x00 || Salt Input) は次の通りです:

   [80, 66, 69, 83, 50, 45, 72, 83, 50, 53, 54, 43, 65, 49, 50, 56, 75,
   87, 0, 217, 96, 147, 112, 150, 117, 70, 247, 127, 8, 155, 137, 174,
   42, 80, 215].

   結果として得られる PBKDF2 派生鍵の値は次の通りです:

   [110, 171, 169, 92, 129, 92, 109, 117, 233, 242, 116, 233, 170, 14,
   24, 75]

C.5.  鍵暗号化

   PBKDF2派生鍵を使用して "A128KW" アルゴリズムで CEK を暗号化します。
   結果の JWE Encrypted Key 値は次の通りです:

   [78, 186, 151, 59, 11, 141, 81, 240, 213, 245, 83, 211, 53, 188, 134,
   188, 66, 125, 36, 200, 222, 124, 5, 103, 249, 52, 117, 184, 140, 81,
   246, 158, 161, 177, 20, 33, 245, 57, 59, 4]

   この JWE Encrypted Key を BASE64URL(JWE Encrypted Key) として
   エンコードすると次の値になります:

     TrqXOwuNUfDV9VPTNbyGvEJ9JMjefAVn-TR1uIxR9p6hsRQh9Tk7BA

C.6.  初期化ベクトル

   128ビットのランダムな JWE 初期化ベクトルを生成します。
   この例での値は次の通りです:

   [97, 239, 99, 214, 171, 54, 216, 57, 145, 72, 7, 93, 34, 31, 149,
   156]



Jones                        Standards Track                   [Page 33]


RFC 7517                   JSON Web Key (JWK)                   May 2015


   この JWE 初期化ベクトルを BASE64URL(JWE Initialization Vector)
   としてエンコードすると次の値になります:

     Ye9j1qs22DmRSAddIh-VnA

C.7.  追加認証データ

   追加認証データ (Additional Authenticated Data) 暗号化パラメータを
   ASCII(BASE64URL(UTF8(JWE Protected Header))) とします。
   この値は次の通りです:

   [123, 34, 97, 108, 103, 34, 58, 34, 80, 66, 69, 83, 50, 45, 72, 83,
   50, 53, 54, 43, 65, 49, 50, 56, 75, 87, 34, 44, 34, 112, 50, 115, 34,
   58, 34, 50, 87, 67, 84, 99, 74, 90, 49, 82, 118, 100, 95, 67, 74,
   117, 74, 114, 105, 112, 81, 49, 119, 34, 44, 34, 112, 50, 99, 34, 58,
   52, 48, 57, 54, 44, 34, 101, 110, 99, 34, 58, 34, 65, 49, 50, 56, 67,
   66, 67, 45, 72, 83, 50, 53, 54, 34, 44, 34, 99, 116, 121, 34, 58, 34,
   106, 119, 107, 43, 106, 115, 111, 110, 34, 125]

C.8.  コンテンツ暗号化

   CEK を暗号鍵として、JWE 初期化ベクトルと上記の追加認証データを用い、
   AES_128_CBC_HMAC_SHA_256 アルゴリズムで平文に対して認証付き暗号化を実行します。
   結果として得られる暗号文は次の通りです:

   [3, 8, 65, 242, 92, 107, 148, 168, 197, 159, 77, 139, 25, 97, 42,
   131, 110, 199, 225, 56, 61, 127, 38, 64, 108, 91, 247, 167, 150, 98,
   112, 122, 99, 235, 132, 50, 28, 46, 56, 170, 169, 89, 220, 145, 38,
   157, 148, 224, 66, 140, 8, 169, 146, 117, 222, 54, 242, 28, 31, 11,
   129, 227, 226, 169, 66, 117, 133, 254, 140, 216, 115, 203, 131, 60,
   60, 47, 233, 132, 121, 13, 35, 188, 53, 19, 172, 77, 59, 54, 211,
   158, 172, 25, 60, 111, 0, 80, 201, 158, 160, 210, 68, 55, 12, 67,
   136, 130, 87, 216, 197, 95, 62, 20, 155, 205, 5, 140, 27, 168, 221,
   65, 114, 78, 157, 254, 46, 206, 182, 52, 135, 87, 239, 3, 34, 186,
   126, 220, 151, 17, 33, 237, 57, 96, 172, 183, 58, 45, 248, 103, 241,
   142, 136, 7, 53, 16, 173, 181, 7, 93, 92, 252, 1, 53, 212, 242, 8,
   255, 11, 239, 181, 24, 148, 136, 111, 24, 161, 244, 23, 106, 69, 157,
   215, 243, 189, 240, 166, 169, 249, 72, 38, 201, 99, 223, 173, 229, 9,
   222, 82, 79, 157, 176, 248, 85, 239, 121, 163, 1, 31, 48, 98, 206,
   61, 249, 104, 216, 201, 227, 105, 48, 194, 193, 10, 36, 160, 159,
   241, 166, 84, 54, 188, 211, 243, 242, 40, 46, 45, 193, 193, 160, 169,
   101, 201, 1, 73, 47, 105, 142, 88, 28, 42, 132, 26, 61, 58, 63, 142,
   243, 77, 26, 179, 153, 166, 46, 203, 208, 49, 55, 229, 34, 178, 4,
   109, 180, 204, 204, 115, 1, 103, 193, 5, 91, 215, 214, 195, 1, 110,
   208, 53, 144, 36, 105, 12, 54, 25, 129, 101, 15, 183, 150, 250, 147,
   115, 227, 58, 250, 5, 128, 232, 63, 15, 14, 19, 141, 124, 253, 142,
   137, 189, 135, 26, 44, 240, 27, 88, 132, 105, 127, 6, 71, 37, 41,
   124, 187, 165, 140, 34, 200, 123, 80, 228, 24, 231, 176, 132, 171,



Jones                        Standards Track                   [Page 34]


RFC 7517                   JSON Web Key (JWK)                   May 2015


   138, 145, 152, 116, 224, 50, 141, 51, 147, 91, 186, 7, 246, 106, 217,
   148, 244, 227, 244, 45, 220, 121, 165, 224, 148, 181, 17, 181, 128,
   197, 101, 237, 11, 169, 229, 149, 199, 78, 56, 15, 14, 190, 91, 216,
   222, 247, 213, 74, 40, 8, 96, 20, 168, 119, 96, 26, 24, 52, 37, 82,
   127, 57, 176, 147, 118, 59, 7, 224, 33, 117, 72, 155, 29, 82, 26,
   215, 189, 140, 119, 28, 152, 118, 93, 222, 194, 192, 148, 115, 83,
   253, 216, 212, 108, 88, 83, 175, 172, 220, 97, 79, 110, 42, 223, 170,
   161, 34, 164, 144, 193, 76, 122, 92, 160, 41, 178, 175, 6, 35, 96,
   113, 96, 158, 90, 129, 101, 26, 45, 70, 180, 189, 230, 15, 5, 247,
   150, 209, 94, 171, 26, 13, 142, 212, 129, 1, 176, 5, 0, 112, 203,
   174, 185, 119, 76, 233, 189, 54, 172, 189, 245, 223, 253, 205, 12,
   88, 9, 126, 157, 225, 90, 40, 229, 191, 63, 30, 160, 224, 69, 3, 140,
   109, 70, 89, 37, 213, 245, 194, 210, 180, 188, 63, 210, 139, 221, 2,
   144, 200, 20, 177, 216, 29, 227, 242, 106, 12, 135, 142, 139, 144,
   82, 225, 162, 171, 176, 108, 99, 6, 43, 193, 161, 116, 234, 216, 1,
   242, 21, 124, 162, 98, 205, 124, 193, 38, 12, 242, 90, 101, 76, 204,
   184, 124, 58, 180, 16, 240, 26, 76, 195, 250, 212, 191, 185, 191, 97,
   198, 186, 73, 225, 75, 14, 90, 123, 121, 172, 101, 50, 160, 221, 141,
   253, 205, 126, 77, 9, 87, 198, 110, 104, 182, 141, 120, 51, 25, 232,
   3, 32, 80, 6, 156, 8, 18, 4, 135, 221, 142, 25, 135, 2, 129, 132,
   115, 227, 74, 141, 28, 119, 11, 141, 117, 134, 198, 62, 150, 254, 97,
   75, 197, 251, 99, 89, 204, 224, 226, 67, 83, 175, 89, 0, 81, 29, 38,
   207, 89, 140, 255, 197, 177, 164, 128, 62, 116, 224, 180, 109, 169,
   28, 2, 59, 176, 130, 252, 44, 178, 81, 24, 181, 176, 75, 44, 61, 91,
   12, 37, 21, 255, 83, 130, 197, 16, 231, 60, 217, 56, 131, 118, 168,
   202, 58, 52, 84, 124, 162, 185, 174, 162, 226, 242, 112, 68, 246,
   202, 16, 208, 52, 154, 58, 129, 80, 102, 33, 171, 6, 186, 177, 14,
   195, 88, 136, 6, 0, 155, 28, 100, 162, 207, 162, 222, 117, 248, 170,
   208, 114, 87, 31, 57, 176, 33, 57, 83, 253, 12, 168, 110, 194, 59,
   22, 86, 48, 227, 196, 22, 176, 218, 122, 149, 21, 249, 195, 178, 174,
   250, 20, 34, 120, 60, 139, 201, 99, 40, 18, 177, 17, 54, 54, 6, 3,
   222, 128, 160, 88, 11, 27, 0, 81, 192, 36, 41, 169, 146, 8, 47, 64,
   136, 28, 64, 209, 67, 135, 202, 20, 234, 182, 91, 204, 146, 195, 187,
   0, 72, 77, 11, 111, 152, 204, 252, 177, 212, 89, 33, 50, 132, 184,
   44, 183, 186, 19, 250, 69, 176, 201, 102, 140, 14, 143, 212, 212,
   160, 123, 208, 185, 27, 155, 68, 77, 133, 198, 2, 126, 155, 215, 22,
   91, 30, 217, 176, 172, 244, 156, 174, 143, 75, 90, 21, 102, 1, 160,
   59, 253, 188, 88, 57, 185, 197, 83, 24, 22, 180, 174, 47, 207, 52, 1,
   141, 146, 119, 233, 68, 228, 224, 228, 193, 248, 155, 202, 90, 7,
   213, 88, 33, 108, 107, 14, 86, 8, 120, 250, 58, 142, 35, 164, 238,
   221, 219, 35, 123, 88, 199, 192, 143, 104, 83, 17, 166, 243, 247, 11,
   166, 67, 68, 204, 132, 23, 110, 103, 228, 14, 55, 122, 88, 57, 180,
   178, 237, 52, 130, 214, 245, 102, 123, 67, 73, 175, 1, 127, 112, 148,
   94, 132, 164, 197, 153, 217, 87, 25, 89, 93, 63, 22, 66, 166, 90,
   251, 101, 10, 145, 66, 17, 124, 36, 255, 165, 226, 97, 16, 86, 112,
   154, 88, 105, 253, 56, 209, 229, 122, 103, 51, 24, 228, 190, 3, 236,
   48, 182, 121, 176, 140, 128, 117, 87, 251, 224, 37, 23, 248, 21, 218,
   85, 251, 136, 84, 147, 143, 144, 46, 155, 183, 251, 89, 86, 23, 26,



Jones                        Standards Track                   [Page 35]


RFC 7517                   JSON Web Key (JWK)                   May 2015


   237, 100, 167, 32, 130, 173, 237, 89, 55, 110, 70, 142, 127, 65, 230,
   208, 109, 69, 19, 253, 84, 130, 130, 193, 92, 58, 108, 150, 42, 136,
   249, 234, 86, 241, 182, 19, 117, 246, 26, 181, 92, 101, 155, 44, 103,
   235, 173, 30, 140, 90, 29, 183, 190, 77, 53, 206, 127, 5, 87, 8, 187,
   184, 92, 4, 157, 22, 18, 105, 251, 39, 88, 182, 181, 103, 148, 233,
   6, 63, 70, 188, 7, 101, 216, 127, 77, 31, 12, 233, 7, 147, 106, 30,
   150, 77, 145, 13, 205, 48, 56, 245, 220, 89, 252, 127, 51, 180, 36,
   31, 55, 18, 214, 230, 254, 217, 197, 65, 247, 27, 215, 117, 247, 108,
   157, 121, 11, 63, 150, 195, 83, 6, 134, 242, 41, 24, 105, 204, 5, 63,
   192, 14, 159, 113, 72, 140, 128, 51, 215, 80, 215, 39, 149, 94, 79,
   128, 34, 5, 129, 82, 83, 121, 187, 37, 146, 27, 32, 177, 167, 71, 9,
   195, 30, 199, 196, 205, 252, 207, 69, 8, 120, 27, 190, 51, 43, 75,
   249, 234, 167, 116, 206, 203, 199, 43, 108, 87, 48, 155, 140, 228,
   210, 85, 25, 161, 96, 67, 8, 205, 64, 39, 75, 88, 44, 238, 227, 16,
   0, 100, 93, 129, 18, 4, 149, 50, 68, 72, 99, 35, 111, 254, 27, 102,
   175, 108, 233, 87, 181, 44, 169, 18, 139, 79, 208, 14, 202, 192, 5,
   162, 222, 231, 149, 24, 211, 49, 120, 101, 39, 206, 87, 147, 204,
   200, 251, 104, 115, 5, 127, 117, 195, 79, 151, 18, 224, 52, 0, 245,
   4, 85, 255, 103, 217, 0, 116, 198, 80, 91, 167, 192, 154, 199, 197,
   149, 237, 51, 2, 131, 30, 226, 95, 105, 48, 68, 135, 208, 144, 120,
   176, 145, 157, 8, 171, 80, 94, 61, 92, 92, 220, 157, 13, 138, 51, 23,
   185, 124, 31, 77, 1, 87, 241, 43, 239, 55, 122, 86, 210, 48, 208,
   204, 112, 144, 80, 147, 106, 219, 47, 253, 31, 134, 176, 16, 135,
   219, 95, 17, 129, 83, 236, 125, 136, 112, 86, 228, 252, 71, 129, 218,
   174, 156, 236, 12, 27, 159, 11, 138, 252, 253, 207, 31, 115, 214,
   118, 239, 203, 16, 211, 205, 99, 22, 51, 163, 107, 162, 246, 199, 67,
   127, 34, 108, 197, 53, 117, 58, 199, 3, 190, 74, 70, 190, 65, 235,
   175, 97, 157, 215, 252, 189, 245, 100, 229, 248, 46, 90, 126, 237, 4,
   159, 128, 58, 7, 156, 236, 69, 191, 85, 240, 179, 224, 249, 152, 49,
   195, 223, 60, 78, 186, 157, 155, 217, 58, 105, 116, 164, 217, 111,
   215, 150, 218, 252, 84, 86, 248, 140, 240, 226, 61, 106, 208, 95, 60,
   163, 6, 0, 235, 253, 162, 96, 62, 234, 251, 249, 35, 21, 7, 211, 233,
   86, 50, 33, 203, 67, 248, 60, 190, 123, 48, 167, 226, 90, 191, 71,
   56, 183, 165, 17, 85, 76, 238, 140, 211, 168, 53, 223, 194, 4, 97,
   149, 156, 120, 137, 76, 33, 229, 243, 194, 208, 198, 202, 139, 28,
   114, 46, 224, 92, 254, 83, 100, 134, 158, 92, 70, 78, 61, 62, 138,
   24, 173, 216, 66, 198, 70, 254, 47, 59, 193, 53, 6, 139, 19, 153,
   253, 28, 199, 122, 160, 27, 67, 234, 209, 227, 139, 4, 50, 7, 178,
   183, 89, 252, 32, 128, 137, 55, 52, 29, 89, 12, 111, 42, 181, 51,
   170, 132, 132, 207, 170, 228, 254, 178, 213, 0, 136, 175, 8]

   結果として得られる認証タグ値は次の通りです:

   [208, 113, 102, 132, 236, 236, 67, 223, 39, 53, 98, 99, 32, 121, 17,
   236]






Jones                        Standards Track                   [Page 36]


RFC 7517                   JSON Web Key (JWK)                   May 2015


   この JWE 暗号文を BASE64URL(JWE Ciphertext) としてエンコードすると、
   次の値になります(表示のための改行あり):

     AwhB8lxrlKjFn02LGWEqg27H4Tg9fyZAbFv3p5ZicHpj64QyHC44qqlZ3JEmnZTgQo
     wIqZJ13jbyHB8LgePiqUJ1hf6M2HPLgzw8L-mEeQ0jvDUTrE07NtOerBk8bwBQyZ6g
     0kQ3DEOIglfYxV8-FJvNBYwbqN1Bck6d_i7OtjSHV-8DIrp-3JcRIe05YKy3Oi34Z_
     GOiAc1EK21B11c_AE11PII_wvvtRiUiG8YofQXakWd1_O98Kap-UgmyWPfreUJ3lJP
     nbD4Ve95owEfMGLOPflo2MnjaTDCwQokoJ_xplQ2vNPz8iguLcHBoKllyQFJL2mOWB
     wqhBo9Oj-O800as5mmLsvQMTflIrIEbbTMzHMBZ8EFW9fWwwFu0DWQJGkMNhmBZQ-3
     lvqTc-M6-gWA6D8PDhONfP2Oib2HGizwG1iEaX8GRyUpfLuljCLIe1DkGOewhKuKkZ
     h04DKNM5Nbugf2atmU9OP0Ldx5peCUtRG1gMVl7Qup5ZXHTjgPDr5b2N731UooCGAU
     qHdgGhg0JVJ_ObCTdjsH4CF1SJsdUhrXvYx3HJh2Xd7CwJRzU_3Y1GxYU6-s3GFPbi
     rfqqEipJDBTHpcoCmyrwYjYHFgnlqBZRotRrS95g8F95bRXqsaDY7UgQGwBQBwy665
     d0zpvTasvfXf_c0MWAl-neFaKOW_Px6g4EUDjG1GWSXV9cLStLw_0ovdApDIFLHYHe
     PyagyHjouQUuGiq7BsYwYrwaF06tgB8hV8omLNfMEmDPJaZUzMuHw6tBDwGkzD-tS_
     ub9hxrpJ4UsOWnt5rGUyoN2N_c1-TQlXxm5oto14MxnoAyBQBpwIEgSH3Y4ZhwKBhH
     PjSo0cdwuNdYbGPpb-YUvF-2NZzODiQ1OvWQBRHSbPWYz_xbGkgD504LRtqRwCO7CC
     _CyyURi1sEssPVsMJRX_U4LFEOc82TiDdqjKOjRUfKK5rqLi8nBE9soQ0DSaOoFQZi
     GrBrqxDsNYiAYAmxxkos-i3nX4qtByVx85sCE5U_0MqG7COxZWMOPEFrDaepUV-cOy
     rvoUIng8i8ljKBKxETY2BgPegKBYCxsAUcAkKamSCC9AiBxA0UOHyhTqtlvMksO7AE
     hNC2-YzPyx1FkhMoS4LLe6E_pFsMlmjA6P1NSge9C5G5tETYXGAn6b1xZbHtmwrPSc
     ro9LWhVmAaA7_bxYObnFUxgWtK4vzzQBjZJ36UTk4OTB-JvKWgfVWCFsaw5WCHj6Oo
     4jpO7d2yN7WMfAj2hTEabz9wumQ0TMhBduZ-QON3pYObSy7TSC1vVme0NJrwF_cJRe
     hKTFmdlXGVldPxZCplr7ZQqRQhF8JP-l4mEQVnCaWGn9ONHlemczGOS-A-wwtnmwjI
     B1V_vgJRf4FdpV-4hUk4-QLpu3-1lWFxrtZKcggq3tWTduRo5_QebQbUUT_VSCgsFc
     OmyWKoj56lbxthN19hq1XGWbLGfrrR6MWh23vk01zn8FVwi7uFwEnRYSafsnWLa1Z5
     TpBj9GvAdl2H9NHwzpB5NqHpZNkQ3NMDj13Fn8fzO0JB83Etbm_tnFQfcb13X3bJ15
     Cz-Ww1MGhvIpGGnMBT_ADp9xSIyAM9dQ1yeVXk-AIgWBUlN5uyWSGyCxp0cJwx7HxM
     38z0UIeBu-MytL-eqndM7LxytsVzCbjOTSVRmhYEMIzUAnS1gs7uMQAGRdgRIElTJE
     SGMjb_4bZq9s6Ve1LKkSi0_QDsrABaLe55UY0zF4ZSfOV5PMyPtocwV_dcNPlxLgNA
     D1BFX_Z9kAdMZQW6fAmsfFle0zAoMe4l9pMESH0JB4sJGdCKtQXj1cXNydDYozF7l8
     H00BV_Er7zd6VtIw0MxwkFCTatsv_R-GsBCH218RgVPsfYhwVuT8R4HarpzsDBufC4
     r8_c8fc9Z278sQ081jFjOja6L2x0N_ImzFNXU6xwO-Ska-QeuvYZ3X_L31ZOX4Llp-
     7QSfgDoHnOxFv1Xws-D5mDHD3zxOup2b2TppdKTZb9eW2vxUVviM8OI9atBfPKMGAO
     v9omA-6vv5IxUH0-lWMiHLQ_g8vnswp-Jav0c4t6URVUzujNOoNd_CBGGVnHiJTCHl
     88LQxsqLHHIu4Fz-U2SGnlxGTj0-ihit2ELGRv4vO8E1BosTmf0cx3qgG0Pq0eOLBD
     IHsrdZ_CCAiTc0HVkMbyq1M6qEhM-q5P6y1QCIrwg

   この JWE 認証タグを BASE64URL(JWE Authentication Tag) としてエンコードすると、
   次の値になります:

     0HFmhOzsQ98nNWJjIHkR7A









Jones                        Standards Track                   [Page 37]


RFC 7517                   JSON Web Key (JWK)                   May 2015


C.9.  完全な表現

   最終表現を組み立てます:本結果の JWE Compact Serialization は
   [JWE] のセクション 7.1 で定義されるように、
   次の文字列です:
   BASE64URL(UTF8(JWE Protected Header)) || '.' || BASE64URL(JWE
   Encrypted Key) || '.' || BASE64URL(JWE Initialization Vector) || '.'
   || BASE64URL(JWE Ciphertext) || '.' || BASE64URL(JWE Authentication
   Tag).











































Jones                        Standards Track                   [Page 38]


RFC 7517                   JSON Web Key (JWK)                   May 2015


   この例での最終結果(表示目的での改行あり)は次の通りです:

     eyJhbGciOiJQQkVTMi1IUzI1NitBMTI4S1ciLCJwMnMiOiIyV0NUY0paMVJ2ZF9DSn
     VKcmlwUTF3IiwicDJjIjo0MDk2LCJlbmMiOiJBMTI4Q0JDLUhTMjU2IiwiY3R5Ijoi
     andrK2pzb24ifQ.
     TrqXOwuNUfDV9VPTNbyGvEJ9JMjefAVn-TR1uIxR9p6hsRQh9Tk7BA.
     Ye9j1qs22DmRSAddIh-VnA.
     AwhB8lxrlKjFn02LGWEqg27H4Tg9fyZAbFv3p5ZicHpj64QyHC44qqlZ3JEmnZTgQo
     wIqZJ13jbyHB8LgePiqUJ1hf6M2HPLgzw8L-mEeQ0jvDUTrE07NtOerBk8bwBQyZ6g
     0kQ3DEOIglfYxV8-FJvNBYwbqN1Bck6d_i7OtjSHV-8DIrp-3JcRIe05YKy3Oi34Z_
     GOiAc1EK21B11c_AE11PII_wvvtRiUiG8YofQXakWd1_O98Kap-UgmyWPfreUJ3lJP
     nbD4Ve95owEfMGLOPflo2MnjaTDCwQokoJ_xplQ2vNPz8iguLcHBoKllyQFJL2mOWB
     wqhBo9Oj-O800as5mmLsvQMTflIrIEbbTMzHMBZ8EFW9fWwwFu0DWQJGkMNhmBZQ-3
     lvqTc-M6-gWA6D8PDhONfP2Oib2HGizwG1iEaX8GRyUpfLuljCLIe1DkGOewhKuKkZ
     h04DKNM5Nbugf2atmU9OP0Ldx5peCUtRG1gMVl7Qup5ZXHTjgPDr5b2N731UooCGAU
     qHdgGhg0JVJ_ObCTdjsH4CF1SJsdUhrXvYx3HJh2Xd7CwJRzU_3Y1GxYU6-s3GFPbi
     rfqqEipJDBTHpcoCmyrwYjYHFgnlqBZRotRrS95g8F95bRXqsaDY7UgQGwBQBwy665
     d0zpvTasvfXf_c0MWAl-neFaKOW_Px6g4EUDjG1GWSXV9cLStLw_0ovdApDIFLHYHe
     PyagyHjouQUuGiq7BsYwYrwaF06tgB8hV8omLNfMEmDPJaZUzMuHw6tBDwGkzD-tS_
     ub9hxrpJ4UsOWnt5rGUyoN2N_c1-TQlXxm5oto14MxnoAyBQBpwIEgSH3Y4ZhwKBhH
     PjSo0cdwuNdYbGPpb-YUvF-2NZzODiQ1OvWQBRHSbPWYz_xbGkgD504LRtqRwCO7CC
     _CyyURi1sEssPVsMJRX_U4LFEOc82TiDdqjKOjRUfKK5rqLi8nBE9soQ0DSaOoFQZi
     GrBrqxDsNYiAYAmxxkos-i3nX4qtByVx85sCE5U_0MqG7COxZWMOPEFrDaepUV-cOy
     rvoUIng8i8ljKBKxETY2BgPegKBYCxsAUcAkKamSCC9AiBxA0UOHyhTqtlvMksO7AE
     hNC2-YzPyx1FkhMoS4LLe6E_pFsMlmjA6P1NSge9C5G5tETYXGAn6b1xZbHtmwrPSc
     ro9LWhVmAaA7_bxYObnFUxgWtK4vzzQBjZJ36UTk4OTB-JvKWgfVWCFsaw5WCHj6Oo
     4jpO7d2yN7WMfAj2hTEabz9wumQ0TMhBduZ-QON3pYObSy7TSC1vVme0NJrwF_cJRe
     hKTFmdlXGVldPxZCplr7ZQqRQhF8JP-l4mEQVnCaWGn9ONHlemczGOS-A-wwtnmwjI
     B1V_vgJRf4FdpV-4hUk4-QLpu3-1lWFxrtZKcggq3tWTduRo5_QebQbUUT_VSCgsFc
     OmyWKoj56lbxthN19hq1XGWbLGfrrR6MWh23vk01zn8FVwi7uFwEnRYSafsnWLa1Z5
     TpBj9GvAdl2H9NHwzpB5NqHpZNkQ3NMDj13Fn8fzO0JB83Etbm_tnFQfcb13X3bJ15
     Cz-Ww1MGhvIpGGnMBT_ADp9xSIyAM9dQ1yeVXk-AIgWBUlN5uyWSGyCxp0cJwx7HxM
     38z0UIeBu-MytL-eqndM7LxytsVzCbjOTSVRmhYEMIzUAnS1gs7uMQAGRdgRIElTJE
     SGMjb_4bZq9s6Ve1LKkSi0_QDsrABaLe55UY0zF4ZSfOV5PMyPtocwV_dcNPlxLgNA
     D1BFX_Z9kAdMZQW6fAmsfFle0zAoMe4l9pMESH0JB4sJGdCKtQXj1cXNydDYozF7l8
     H00BV_Er7zd6VtIw0MxwkFCTatsv_R-GsBCH218RgVPsfYhwVuT8R4HarpzsDBufC4
     r8_c8fc9Z278sQ081jFjOja6L2x0N_ImzFNXU6xwO-Ska-QeuvYZ3X_L31ZOX4Llp-
     7QSfgDoHnOxFv1Xws-D5mDHD3zxOup2b2TppdKTZb9eW2vxUVviM8OI9atBfPKMGAO
     v9omA-6vv5IxUH0-lWMiHLQ_g8vnswp-Jav0c4t6URVUzujNOoNd_CBGGVnHiJTCHl
     88LQxsqLHHIu4Fz-U2SGnlxGTj0-ihit2ELGRv4vO8E1BosTmf0cx3qgG0Pq0eOLBD
     IHsrdZ_CCAiTc0HVkMbyq1M6qEhM-q5P6y1QCIrwg.
     0HFmhOzsQ98nNWJjIHkR7A








Jones                        Standards Track                   [Page 39]


RFC 7517                   JSON Web Key (JWK)                   May 2015


Acknowledgements

   A JSON representation for RSA public keys was previously introduced
   by John Panzer, Ben Laurie, and Dirk Balfanz in Magic Signatures
   [MagicSignatures].

   Thanks to Matt Miller for creating the encrypted key example and to
   Edmund Jay and Brian Campbell for validating the example.

   This specification is the work of the JOSE working group, which
   includes dozens of active and dedicated participants.  In particular,
   the following individuals contributed ideas, feedback, and wording
   that influenced this specification:

   Dirk Balfanz, Richard Barnes, John Bradley, Brian Campbell, Breno de
   Medeiros, Stephen Farrell, Joe Hildebrand, Edmund Jay, Stephen Kent,
   Ben Laurie, James Manger, Matt Miller, Kathleen Moriarty, Chuck
   Mortimore, Tony Nadalin, Axel Nennker, John Panzer, Eric Rescorla,
   Pete Resnick, Nat Sakimura, Jim Schaad, Ryan Sleevi, Paul Tarjan,
   Hannes Tschofenig, and Sean Turner.

   Jim Schaad and Karen O'Donoghue chaired the JOSE working group and
   Sean Turner, Stephen Farrell, and Kathleen Moriarty served as
   Security Area Directors during the creation of this specification.

Author's Address

   Michael B. Jones
   Microsoft

   EMail: mbj@microsoft.com
   URI:   http://self-issued.info/



















Jones                        Standards Track                   [Page 40]