<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> 
<dfn>JWE</dfn> (<dfn>JSON Web Encryption</dfn>)
は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">暗号化</anchor>したデータを交換できる
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON応用</anchor>です。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWS</anchor> 等で構成される <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JOSE</anchor> 規格シリーズの1つです。</p><section><h1>仕様書</h1><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li>
<anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <cite xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7516</anchor> - JSON Web Encryption (JWE)</cite>
(<time>2015-05-20 09:55:47 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://tools.ietf.org/html/rfc7516">https://tools.ietf.org/html/rfc7516</anchor-external><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> 移転確認 <time>2022-11-23T02:40:26.800Z</time></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> <cite xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7516</anchor> - JSON Web Encryption (JWE)</cite>, <time>2022-11-23T02:40:19.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://datatracker.ietf.org/doc/html/rfc7516">https://datatracker.ietf.org/doc/html/rfc7516</anchor-external><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> 
<cite xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7516</anchor> - JSON Web Encryption (JWE)</cite>, <time>2022-11-23T02:52:15.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://datatracker.ietf.org/doc/html/rfc7516#section-2">https://datatracker.ietf.org/doc/html/rfc7516#section-2</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[17]</anchor-end> 
<cite xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7516</anchor> - JSON Web Encryption (JWE)</cite>, <time>2022-11-23T05:48:17.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://datatracker.ietf.org/doc/html/rfc7516#section-3">https://datatracker.ietf.org/doc/html/rfc7516#section-3</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="33" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[33]</anchor-end> 
<cite xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7516</anchor> - JSON Web Encryption (JWE)</cite>, <time>2022-11-23T09:33:56.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://datatracker.ietf.org/doc/html/rfc7516#section-5">https://datatracker.ietf.org/doc/html/rfc7516#section-5</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="123" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[123]</anchor-end> 
<cite xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7516</anchor> - JSON Web Encryption (JWE)</cite>, <time>2022-11-23T13:27:42.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://datatracker.ietf.org/doc/html/rfc7516#section-7">https://datatracker.ietf.org/doc/html/rfc7516#section-7</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="140" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[140]</anchor-end> 
<cite xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7516</anchor> - JSON Web Encryption (JWE)</cite>, <time>2022-11-24T09:38:05.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://datatracker.ietf.org/doc/html/rfc7516#section-11.5">https://datatracker.ietf.org/doc/html/rfc7516#section-11.5</anchor-external></li></ul></li></ul></li></ul></refs></section><section><h1>暗号化</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[16]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWA</anchor> を使います。</p><figure class="short list"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">暗号化</anchor>用語</figcaption><ul><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">AEAD</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">AAD</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">認証タグ</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CEK</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE被暗号化鍵</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE初期化ベクトル</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE AAD</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE暗号文</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE認証タグ</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">鍵管理モード</anchor></li></ul></figure></section><section><h1>データモデル</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end> 
<dfn>JSON Web Encryption</dfn> (<dfn>JWE</dfn>)
は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">暗号化</anchor>され<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">一貫性保護</anchor>された<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メッセージ</anchor>を表現する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">データ構造</anchor>です。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;7</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="18" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[18]</anchor-end> 
1つの <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE</anchor> は、
次により構成されます。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;17</anchor-internal></src></p><figure class="list members"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="19" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[19]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE</anchor></figcaption><dl><dt><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JOSEヘッダー</anchor></dt><dd>
次の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">合同</anchor>です。<figure class="list members"><dl><dt><dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE被保護ヘッダー<rt xmlns="http://www.w3.org/1999/xhtml">JWE Protected Header</rt></rubyb></dfn></dt><dd>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">被認証暗号化</anchor>操作によって<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">一貫性保護</anchor>された<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヘッダー引数</anchor>群を含む
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONオブジェクト</anchor>です。
当該<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヘッダー引数</anchor>群は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE</anchor> のすべての<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">受信者</anchor>に適用されます。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE簡潔直列化</anchor>においては、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JOSEヘッダー</anchor>全体で構成されます。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE JSON直列化</anchor>においては、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JOSEヘッダー</anchor>の構成要素の1つです。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;7</anchor-internal></src></dd><dt><dfn><RUBYN xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">JWE被共有非被保護ヘッダー<title>JWE Shared Unprotected Header</title></RUBYN></dfn></dt><dd>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE</anchor> のすべての<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">受信者</anchor>に適用される<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヘッダー引数</anchor>群であって<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">一貫性保護</anchor>されないものを含む
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONオブジェクト</anchor>です。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE JSON直列化</anchor>にのみ出現できます。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;7</anchor-internal></src></dd><dt><dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE受信者毎非被保護ヘッダー<rt xmlns="http://www.w3.org/1999/xhtml">JWE Per-Recipient Unprotected Header</rt></rubyb></dfn></dt><dd>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE</anchor> の単独の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">受信者</anchor>に適用される<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヘッダー引数</anchor>群を含む
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONオブジェクト</anchor>です。
当該<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヘッダー引数</anchor>群は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">一貫性保護</anchor>されません。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE JSON直列化</anchor>にのみ出現できます。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;7</anchor-internal></src></dd></dl></figure></dd><dt><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE被暗号化鍵</anchor></dt><dd></dd><dt><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE初期化ベクトル</anchor></dt><dd></dd><dt><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE AAD</anchor></dt><dd></dd><dt><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE暗号文</anchor></dt><dd></dd><dt><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE認証タグ</anchor></dt><dd></dd></dl></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[10]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">平文</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">機密性</anchor>と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">一貫性</anchor>、
並びに<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE被保護ヘッダー</anchor>と <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE AAD</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">一貫性</anchor>を保証するため、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">被認証暗号化</anchor>を使います。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;17</anchor-internal></src></p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="145" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[145]</anchor-end> 
<dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">追加被認証データ<rt xmlns="http://www.w3.org/1999/xhtml">Additional Authenticated Data</rt></rubyb></dfn> (<dfn>AAD</dfn>)
は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">AEAD</anchor> 操作への入力であって、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">整合性保護</anchor>されるものの、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">暗号化</anchor>はされないものです。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;7</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="146" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[146]</anchor-end> 
<dfn>JWE AAD</dfn>
は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">被認証暗号化</anchor>操作で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">一貫性保護</anchor>される追加の値です。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE JSON直列化</anchor>でのみ出現し得ます。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;7</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="147" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[147]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE</anchor> には<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応用</anchor>データとして<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">平文</anchor>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">暗号化</anchor>した<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">暗号文</anchor>の他に、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">AAD</anchor> を含めることができます。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">平文</anchor>の方は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">暗号化</anchor>されているので傍受しても<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">解読</anchor>できませんが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">AAD</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">base64url</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化</anchor>されているだけなので、
傍受すると読まれてしまいます。
しかし<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">一貫性保護</anchor>の対称になっていますから、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">AAD</anchor> を改竄すると検知できます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="148" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[148]</anchor-end> 
従って漏洩しても構わない、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">解読</anchor>前でも確認したいような、
しかし改竄されるとまずいデータを入れる場所として使うことができます。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE被保護ヘッダー</anchor>も同条件ですが、
そちらは <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE</anchor> としての<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プロトコル要素</anchor>です。
対して <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">AAD</anchor> は完全に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応用</anchor>が好きに使える場所となっているようです。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="149" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[149]</anchor-end> というような説明がなぜか <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> で明確には行われていないのですが。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[143]</anchor-end> 
<cite xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7520</anchor> - Examples of Protecting Content Using JSON Object Signing and Encryption (JOSE)</cite>, <time>2022-11-24T13:20:26.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://datatracker.ietf.org/doc/html/rfc7520#section-5.10">https://datatracker.ietf.org/doc/html/rfc7520#section-5.10</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="144" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[144]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">AAD</anchor> として <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">vCard</anchor> を入れた例が示されています。
どういう利用形態を想定して <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">vCard</anchor> を使った事例なのかは書かれていません。</p></section><section><h1>直列化</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="124" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[124]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE</anchor> には3種類の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">直列化</anchor>があります。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応用</anchor>はそのいずれを使うか、
そのどの機能を使うかを指定する必要があります。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE</anchor>
の実装は、その対象とする<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応用</anchor>が必要とする機能のみ対応する必要があります。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="123" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;123</anchor-internal></src></p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="125" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[125]</anchor-end> つまり「<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE</anchor> を使う」というだけでは意味が通じません。
「<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE</anchor> を実装した」とするものが <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE</anchor> のすべての機能を使えるとも限りません。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="20" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[20]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE</anchor> は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7159</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> データや <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">base64url</anchor>
を使って記述されます。 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor> は、その定めるところにより、
値の前後に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空白</anchor>を挿入できます。 <sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>JSON</anchor> </sw-see>
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;17</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="139" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[139]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWS</anchor> との区別は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JOSE</anchor> 参照。</p><section><h1>JWE 簡潔直列化</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[14]</anchor-end> 
<dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE簡潔直列化<rt xmlns="http://www.w3.org/1999/xhtml">JWE Compact Serialization</rt></rubyb></dfn>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE</anchor>
の簡潔で <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL安全</anchor>な文字列としての表現です。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;7</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[13]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE簡潔直列化</anchor>は、 次のものを順に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">連結</anchor>したものです。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;17</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="123" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;123</anchor-internal></src></p><ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="21" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[21]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7515</anchor> <code>BASE64URL</code> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 3629</anchor> <code>UTF8</code> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE被保護ヘッダー</anchor>))</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="22" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[22]</anchor-end> <code>.<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">FULL STOP</title></code></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="23" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[23]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7515</anchor> <code>BASE64URL</code> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE被暗号化鍵</anchor>)</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="24" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[24]</anchor-end> <code>.<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">FULL STOP</title></code></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="25" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[25]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7515</anchor> <code>BASE64URL</code> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE初期化ベクトル</anchor>)</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="26" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[26]</anchor-end> <code>.<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">FULL STOP</title></code></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="27" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[27]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7515</anchor> <code>BASE64URL</code> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE暗号文</anchor>)</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="28" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[28]</anchor-end> <code>.<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">FULL STOP</title></code></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="29" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[29]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7515</anchor> <code>BASE64URL</code> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE認証タグ</anchor>)</li></ol><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE簡潔直列化</anchor>では、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE共有非被保護ヘッダー</anchor>や
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE受信者毎非被保護ヘッダー</anchor>は、
利用できません。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;7</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;17</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="123" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;123</anchor-internal></src></p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[12]</anchor-end> 従って<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JOSEヘッダー</anchor> = <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE被保護ヘッダー</anchor>です。
<src><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;17</anchor-internal></src></comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="126" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[126]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE簡潔直列化</anchor>では、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE AAD</anchor> は使えません。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="123" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;123</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="127" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[127]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE簡潔直列化</anchor>では、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">受信者</anchor>は常に1つです。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="123" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;123</anchor-internal></src></p></section><section><h1>JWE JSON 直列化</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[15]</anchor-end> 
<dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE JSON直列化<rt xmlns="http://www.w3.org/1999/xhtml">JWE JSON Serialization</rt></rubyb></dfn>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONオブジェクト</anchor>としての<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">直列化</anchor>です。 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE JSON直列化</anchor>では複数の<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">当事者<rt xmlns="http://www.w3.org/1999/xhtml">parties</rt></rubyb>に対して同じ内容を暗号化できます。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;7</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="30" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[30]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE JSON直列化</anchor>では、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE被保護ヘッダー</anchor>、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE共有非被保護ヘッダー</anchor>、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE受信者毎非被保護ヘッダー</anchor>のうち
1つ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">以上</anchor>は<MUST xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">必須</MUST>です。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;17</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="150" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[150]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヘッダー引数</anchor>と違って明言されていませんが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONオブジェクト</anchor>の重複<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メンバー</anchor>は
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヘッダー引数</anchor>の重複と同様に処理するべきと思われます。
<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>ヘッダー引数</anchor> </sw-see></p><section><h1>一般構文</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="128" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[128]</anchor-end> 
<dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">(完全)一般JWE JSON直列化構文<rt xmlns="http://www.w3.org/1999/xhtml">(fully) general JWE JSON serialization syntax</rt></rubyb></dfn>は、
次のような最上位の
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONオブジェクト</anchor>です。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="123" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;123</anchor-internal></src></p><figure class="list  members"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="129" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[129]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONオブジェクト</anchor></figcaption><dl><dt><dfn><code>protected</code></dfn></dt><dd>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE被保護ヘッダー</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空</anchor>でない場合、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7515</anchor> <code>BASE64URL</code> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 3629</anchor> <code>UTF8</code> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE被保護ヘッダー</anchor>))
でなければ<MUST xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なりません</MUST>。
すべての<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">受信者</anchor>に共有されます。
そうでない場合、
指定しては<MUST xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なりません</MUST>。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="123" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;123</anchor-internal></src></dd><dt><dfn><code>unprotected</code></dfn></dt><dd>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE共有非被保護ヘッダー</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空</anchor>でない場合、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE共有非被保護ヘッダー</anchor>でなければ<MUST xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なりません</MUST>。
すべての<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">受信者</anchor>に共有されます。
そうでない場合、
指定しては<MUST xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なりません</MUST>。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="123" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;123</anchor-internal></src></dd><dt><code>iv</code></dt><dd>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE初期化ベクトル</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空</anchor>でない場合、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7515</anchor> <code>BASE64URL</code> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE初期化ベクトル</anchor>)
でなければ<MUST xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なりません</MUST>。
そうでない場合、
指定しては<MUST xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なりません</MUST>。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="123" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;123</anchor-internal></src></dd><dt><code>aad</code></dt><dd>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE AAD</anchor> が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空</anchor>でない場合、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7515</anchor> <code>BASE64URL</code> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE AAD</anchor>)
でなければ<MUST xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なりません</MUST>。
そうでない場合、
指定しては<MUST xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なりません</MUST>。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="123" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;123</anchor-internal></src></dd><dt><code>ciphertext</code></dt><dd>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7515</anchor> <code>BASE64URL</code> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE暗号文</anchor>)
でなければ<MUST xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なりません</MUST>。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="123" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;123</anchor-internal></src></dd><dt><code>tag</code></dt><dd>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE認証タグ</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空</anchor>でない場合、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7515</anchor> <code>BASE64URL</code> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE認証タグ</anchor>)
でなければ<MUST xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なりません</MUST>。
そうでない場合、
指定しては<MUST xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なりません</MUST>。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="123" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;123</anchor-internal></src></dd><dt><code>recipients</code></dt><dd>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON配列</anchor>でなければ<MUST xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なりません</MUST>。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="123" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;123</anchor-internal></src><figure class="list members"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="130" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[130]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON配列</anchor></figcaption><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="131" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[131]</anchor-end> 
各<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONオブジェクト</anchor>は、
特定の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">受信者</anchor>に固有の情報を表します。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="123" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;123</anchor-internal></src></p><figure class="list members"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="132" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[132]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONオブジェクト</anchor></figcaption><dl><dt><code>header</code></dt><dd>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE受信者毎非被保護ヘッダー</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空</anchor>でない場合、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE受信者毎非被保護ヘッダー</anchor>でなければ<MUST xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なりません</MUST>。
そうでない場合、
指定しては<MUST xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なりません</MUST>。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="123" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;123</anchor-internal></src></dd><dt><code>encrypted_key</code></dt><dd>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE被暗号化鍵</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空</anchor>でない場合、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7515</anchor> <code>BASE64URL</code> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE被暗号化鍵</anchor>)
でなければ<MUST xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なりません</MUST>。
そうでない場合、
指定しては<MUST xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なりません</MUST>。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="123" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;123</anchor-internal></src></dd></dl></figure></figure></dd></dl></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="133" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[133]</anchor-end> 
各<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">受信者</anchor>に対して<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヘッダー引数</anchor>
<code>alg</code>
と
<code>enc</code>
が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">必須</anchor>であり、従って各<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">受信者</anchor>に対して
<code>header</code>,
<code>protected</code>,
<code>unprotected</code>
の最低でも1つは<MUST xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">必須</MUST>です。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="123" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;123</anchor-internal></src></p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="134" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[134]</anchor-end> <code xmlns="http://www.w3.org/1999/xhtml">protected</code> 以外は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">一貫性保護</anchor>されないことには注意。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="136" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[136]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">平文</anchor>値の取り扱いを指定するすべての<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヘッダー引数</anchor>は、
すべての<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">受信者</anchor>について同じでなければ<MUST xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なりません</MUST>。
主として <code>enc</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヘッダー引数</anchor>と、
その指定された<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">算法</anchor>に関する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヘッダー引数</anchor>が該当します。
これは<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE暗号文</anchor>等がすべての<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">受信者</anchor>に対して共通であることからの帰結とされます。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="123" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;123</anchor-internal></src></p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="137" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[137]</anchor-end> 
しかしそれを <code xmlns="http://www.w3.org/1999/xhtml">protected</code> に入れなければならないという制約はなく、
すべてを <code xmlns="http://www.w3.org/1999/xhtml">header</code> 内に入れても構わないようです。
しかし <code xmlns="http://www.w3.org/1999/xhtml">recipients</code> 内のオブジェクトすべてで同じ値でなければならないということです。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="135" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[135]</anchor-end> 
内側、外側のどちらの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONオブジェクト</anchor>にも、
これ以外の追加の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メンバー</anchor>を指定できます。
実装は、理解できない<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メンバー</anchor>を無視しなければ<MUST xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なりません</MUST>。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="123" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;123</anchor-internal></src></p></section><section><h1>平坦化構文</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="31" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[31]</anchor-end> 
<dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">平滑化JWE JSON直列化構文<rt xmlns="http://www.w3.org/1999/xhtml">flattened JWE JSON serialization syntax</rt></rubyb></dfn>は、
単一の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">受信者</anchor>の場合に最適化したもので、
次のような最上位
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONオブジェクト</anchor>です。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="123" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;123</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;17</anchor-internal></src></p><figure class="list  members"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="32" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[32]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONオブジェクト</anchor></figcaption><dl><dt><code>protected</code></dt><dd>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7515</anchor> <code>BASE64URL</code> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 3629</anchor> <code>UTF8</code> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE被保護ヘッダー</anchor>))</dd><dt><code>unprotected</code></dt><dd>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE共有非被保護ヘッダー</anchor></dd><dt><dfn><code>header</code></dfn></dt><dd>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE受信者毎非被保護ヘッダー</anchor></dd><dt><code>encrypted_key</code></dt><dd>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7515</anchor> <code>BASE64URL</code> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE被暗号化鍵</anchor>)</dd><dt><code>iv</code></dt><dd>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7515</anchor> <code>BASE64URL</code> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE初期化ベクトル</anchor>)</dd><dt><code>ciphertext</code></dt><dd>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7515</anchor> <code>BASE64URL</code> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE暗号文</anchor>)</dd><dt><code>tag</code></dt><dd>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7515</anchor> <code>BASE64URL</code> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE認証タグ</anchor>)</dd><dt><code>aad</code></dt><dd>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7515</anchor> <code>BASE64URL</code> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE AAD</anchor>)</dd></dl></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="138" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[138]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">平坦化JWE JSON直列化構文</anchor>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">一般JWE JSON直列化構文</anchor>の 
<code>recipients</code>
を展開したものという形で規定されています。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="123" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;123</anchor-internal></src>
明言されていませんが、
ここに規定されていない他の (<code>recipients</code> 以外の)
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メンバー</anchor>を指定することもまた認められると思われます。</p></section></section></section><section><h1>処理</h1><section><h1>暗号化</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="34" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[34]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メッセージ</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">暗号化</anchor>は、次のようにします。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="33" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;33</anchor-internal></src></p><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="60" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[60]</anchor-end> 
<var>平文</var>を、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">平文</anchor>とします。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="52" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[52]</anchor-end> 
<var>受信者リスト</var>は、
1つ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">以上</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メッセージ</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">受信者</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">リスト</anchor>とします。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE簡潔直列化</anchor>ではちょうど1つの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">受信者</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">リスト</anchor>でなければなりません。</li></ul><figure class="steps"><ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="53" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[53]</anchor-end> 
<var>受信者リスト</var>中の各<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">受信者</anchor><var>受信者</var>について、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">順に<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">for each</title></anchor>、<ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="35" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[35]</anchor-end> 
<var>算法</var>を、 <code>alg</code> で指定された<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">算法</anchor>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CEK</anchor> 値の決定に使う<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">算法</anchor>) に設定します。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="36" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[36]</anchor-end> 
<var>鍵管理モード</var>を、
<var>算法</var>により<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">鍵管理モード</anchor>を決定した結果に設定します。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="37" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[37]</anchor-end> 
<var>鍵管理モード</var>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">鍵包み</anchor>、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">鍵暗号化</anchor>、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">鍵包み付き鍵合意</anchor>の場合、<ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="38" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[38]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">無作為</anchor>に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CEK</anchor> 値を生成します。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">無作為</anchor>値の生成については <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 4086</anchor> を参照。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CEK</anchor> は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容暗号化算法</anchor>が要求する長さと等しくなければ<MUST xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なりません</MUST>。</li></ol></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="39" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[39]</anchor-end> 
<var>鍵管理モード</var>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">直接鍵合意</anchor>、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">鍵包み付き鍵合意</anchor>の場合、<ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="40" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[40]</anchor-end> 
<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">合意された鍵<rt xmlns="http://www.w3.org/1999/xhtml">agreed upon key</rt></rubyb>を計算すべく<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">鍵合意算法</anchor>を実行します。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="41" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[41]</anchor-end> 
<var>鍵管理モード</var>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">直接鍵合意</anchor>の場合、<ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="42" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[42]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CEK</anchor> を得られた値に設定します。</li></ol></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="43" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[43]</anchor-end> 
<var>鍵管理モード</var>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">鍵包み付き鍵合意</anchor>の場合、<ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="44" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[44]</anchor-end> 
得られた値は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CEK</anchor> を包むのに使われます。</li></ol></li></ol></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="45" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[45]</anchor-end> 
<var>鍵管理モード</var>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">鍵包み</anchor>、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">鍵暗号化</anchor>、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">鍵包み付き鍵合意</anchor>の場合、<ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="46" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[46]</anchor-end> 
<var><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE被暗号化鍵</anchor></var>を、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CEK</anchor> を<var>受信者</var>に対して<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">暗号化</anchor>した結果に設定します。</li></ol></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="47" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[47]</anchor-end> 
<var>鍵管理モード</var>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">直接鍵合意</anchor>,
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">直接暗号化</anchor>の場合、<ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="48" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[48]</anchor-end> 
<var><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE被暗号化鍵</anchor></var>を、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空オクテット列</anchor>に設定します。</li></ol></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="49" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[49]</anchor-end> 
<var>鍵管理モード</var>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">直接暗号化</anchor>の場合、<ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="50" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[50]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CEK</anchor> を共有<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">対称鍵</anchor>に設定します。</li></ol></li></ol></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="54" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[54]</anchor-end> 
<var><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE初期化ベクトル</anchor></var>を、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空オクテット列</anchor>に設定します。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="55" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[55]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容暗号化算法</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">初期化ベクトル</anchor>を必要とする場合、<ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="56" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[56]</anchor-end> 
<var><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE初期化ベクトル</anchor></var>を、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容暗号化算法</anchor>で適切な大きさの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">無作為</anchor>の
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE初期化ベクトル</anchor>を生成した結果に設定します。</li></ol></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="58" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[58]</anchor-end> 
<code>zip</code> が指定されている場合、<ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[59]</anchor-end> <var>M</var>を、<var>平文</var>を <code>zip</code> 
で指定された<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">算法</anchor>で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">圧縮</anchor>した結果に設定します。</li></ol></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="62" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[62]</anchor-end> 
それ以外の場合、<ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="63" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[63]</anchor-end> 
<var>M</var> を、<var>平文</var>に設定します。</li></ol></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="61" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[61]</anchor-end> 
必要な場合、<ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="69" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[69]</anchor-end> 
<var><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE被保護ヘッダー</anchor></var>を、
適切な<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヘッダー引数</anchor>を含んだ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JOSEヘッダー</anchor>に設定します。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="64" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[64]</anchor-end> 
<var>符号化被保護ヘッダー</var>の値を、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7515</anchor> <code>BASE64URL</code> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 3629</anchor> <code>UTF8</code> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE被保護ヘッダー</anchor>))
を計算した結果に設定します。</li></ol></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="70" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[70]</anchor-end> 
それ以外の場合、<ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="71" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[71]</anchor-end> 
<var>符号化被保護ヘッダー</var>の値を、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空文字列</anchor>に設定します。</li></ol></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="65" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[65]</anchor-end> 
必要な場合、<ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="67" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[67]</anchor-end> 
<var><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE被共有非被保護ヘッダー</anchor></var>を、
適切な<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヘッダー引数</anchor>を含んだ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JOSEヘッダー</anchor>に設定します。</li></ol></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="66" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[66]</anchor-end> 
必要な場合、<ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="68" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[68]</anchor-end> 
<var><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE受信者毎非被保護ヘッダー</anchor></var>を、
適切な<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヘッダー引数</anchor>を含んだ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JOSEヘッダー</anchor>に設定します。</li></ol></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="72" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[72]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE AAD</anchor> がある場合、<ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="75" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[75]</anchor-end> 
<var>値</var>を、
次の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列を順に連結<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">文字列連結</title></anchor>した結果に設定します。<ul><li><var>符号化被保護ヘッダー</var></li><li><code>.<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">FULL STOP</title></code></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7515</anchor> <code>BASE64URL</code> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE AAD</anchor>)</li></ul></li></ol></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="76" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[76]</anchor-end> 
それ以外の場合、<ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="77" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[77]</anchor-end> 
<var>値</var>を、
<var>符号化被保護ヘッダー</var>に設定します。</li></ol></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="73" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[73]</anchor-end> 
<var><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">AAD</anchor>暗号化引数</var>を、
<var>値</var>を
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 20</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ASCII</anchor>
で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化</anchor>した結果に設定します。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="74" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[74]</anchor-end> 
<var><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE暗号文</anchor></var>と<var><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE認証タグ</anchor></var>を、
<var>M</var>,
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CEK</anchor>,
<var><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWK初期化ベクトル</anchor></var>,
<var><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">AAD</anchor>暗号化引数</var>について、
指定された<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容暗号化算法</anchor>で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">暗号化</anchor>した結果に設定します。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="82" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[82]</anchor-end> 
ここまでで得られた値を使って<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">直列化</anchor>します。</li></ol></figure><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="83" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[83]</anchor-end> 
仕様書には簡単な<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アルゴリズム</anchor>の形で求められる挙動が書かれていますが、
現代的な <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web標準</anchor>の仕様書などで使われている記述方式に比べると曖昧で行間を読まなければならない前近代的なものです。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="122" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[122]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JOSE鍵識別</anchor>も参照。</p></section><section><h1>解読</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="51" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[51]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メッセージ</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">解読</anchor>は、次のようにします。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="33" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;33</anchor-internal></src></p><figure class="steps"><ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="79" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[79]</anchor-end> 
直列化された
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE</anchor>
を構文解析します。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="80" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[80]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE被保護ヘッダー</anchor>,
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE被暗号化鍵</anchor>,
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE初期化ベクトル</anchor>,
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE暗号文</anchor>,
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE認証タグ</anchor>,
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE AAD</anchor>
を
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">base64url</anchor>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">改行</anchor>・<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空白</anchor>・その他追加文字なしで<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">復号</anchor>します。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="81" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[81]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE被保護ヘッダー</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">妥当</anchor>な 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7159</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONオブジェクト</anchor>を
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化</anchor>したものであることを検証します。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="107" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[107]</anchor-end> 
直列化された表現に含まれる各<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">受信者</anchor>について、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">順に<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">for each</title></anchor>、<ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="84" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[84]</anchor-end> 
直列化が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE簡潔直列化</anchor>の場合、<ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="85" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[85]</anchor-end> 
<var><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JOSEヘッダー</anchor></var>を、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE被保護ヘッダー</anchor>に設定します。</li></ol></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="86" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[86]</anchor-end> 
それ以外の場合、<ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="87" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[87]</anchor-end> 
<var><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JOSEヘッダー</anchor></var>を、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE被保護ヘッダー</anchor>,
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE被共有非被保護ヘッダー</anchor>,
<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">対応する<rt xmlns="http://www.w3.org/1999/xhtml">corresponding</rt></rubyb><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE受信者毎非被保護ヘッダー</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">合同</anchor>とします。
このとき、<ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="88" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[88]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE被保護ヘッダー</anchor>,
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE被共有非被保護ヘッダー</anchor>,
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE受信者毎非被保護ヘッダー</anchor>はそれぞれ
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">妥当</anchor>な<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSONオブジェクト</anchor>でなければなりません。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="89" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[89]</anchor-end> 
重複する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヘッダー引数</anchor>が含まれないか検証します。</li></ul></li></ol></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="90" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[90]</anchor-end> 
仕様書、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">算法</anchor>、 <code>crit</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヘッダー引数</anchor>が要求するすべての欄を実装が理解、
処理できること、並びにそれら<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヘッダー引数</anchor>の値が理解でき対応できることを検証します。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="91" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[91]</anchor-end> 
<var>鍵管理モード</var>を、
<code>alg</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヘッダー引数</anchor>に指定された<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">算法</anchor>により決定した<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">鍵管理モード</anchor>に設定します。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="92" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[92]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE</anchor> が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">受信者</anchor>の知っている<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">鍵</anchor>を使っていることを検証します。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="93" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[93]</anchor-end> 
<var>鍵管理モード</var>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">直接鍵合意</anchor>、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">鍵包み付き鍵合意</anchor>の場合、<ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="94" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[94]</anchor-end> 
<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">合意された鍵<rt xmlns="http://www.w3.org/1999/xhtml">agreed upon key</rt></rubyb>を計算すべく<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">鍵合意算法</anchor>を実行します。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="95" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[95]</anchor-end> 
<var>鍵管理モード</var>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">直接鍵合意</anchor>の場合、<ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="96" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[96]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CEK</anchor> を得られた値に設定します。</li></ol></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="97" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[97]</anchor-end> 
<var>鍵管理モード</var>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">鍵包み付き鍵合意</anchor>の場合、<ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="98" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[98]</anchor-end> 
得られた値は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE被暗号化鍵</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">解読</anchor>に使われます。</li></ol></li></ol></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="99" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[99]</anchor-end> 
<var>鍵管理モード</var>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">鍵包み</anchor>、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">鍵暗号化</anchor>、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">鍵包み付き鍵合意</anchor>の場合、<ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="100" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[100]</anchor-end> 
<var><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CEK</anchor></var>
を、
<var><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE被暗号化鍵</anchor></var>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">解読</anchor>した結果に設定します。
<var>CEK</var> は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容暗号化算法</anchor>において必要な長さと等しくなければなりません。</li></ol></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="101" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[101]</anchor-end> 
<var>鍵管理モード</var>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">直接鍵合意</anchor>,
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">直接暗号化</anchor>の場合、<ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="102" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[102]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE被暗号化鍵</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空オクテット列</anchor>か検証します。</li></ol></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="103" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[103]</anchor-end> 
<var>鍵管理モード</var>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">直接暗号化</anchor>の場合、<ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="104" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[104]</anchor-end> 
<var>CEK</var> を、共有された<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">対称鍵</anchor>に設定します。</li></ol></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="105" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[105]</anchor-end> 
<var>CEK</var> がこの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">受信者</anchor>に対して決定成功したかを記録します。</li></ol></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="108" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[108]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE非被保護ヘッダー</anchor>がない場合、<ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="109" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[109]</anchor-end> 
<var>符号化被保護ヘッダー</var>の値を、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空文字列</anchor>に設定します。</li></ol></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="110" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[110]</anchor-end> 
それ以外の場合、<ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="106" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[106]</anchor-end> 
<var>符号化被保護ヘッダー</var>の値を、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7515</anchor> <code>BASE64URL</code> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 3629</anchor> <code>UTF8</code> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE被保護ヘッダー</anchor>))
を計算した結果に設定します。</li></ol></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="111" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[111]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE AAD</anchor> がある場合、<ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="112" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[112]</anchor-end>  
<var>値</var>を、
次の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列を順に連結<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">文字列連結</title></anchor>した結果に設定します。<ul><li><var>符号化被保護ヘッダー</var></li><li><code>.<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">FULL STOP</title></code></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7515</anchor> <code>BASE64URL</code> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE AAD</anchor>)</li></ul></li></ol></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="113" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[113]</anchor-end>  
それ以外の場合、<ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="114" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[114]</anchor-end>  
<var>値</var>を、
<var>符号化被保護ヘッダー</var>に設定します。</li></ol></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="115" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[115]</anchor-end>  
<var><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">AAD</anchor>暗号化引数</var>を、
<var>値</var>を
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 20</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ASCII</anchor>
で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化</anchor>した結果に設定します。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="116" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[116]</anchor-end> 
<var>平文</var>を、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE暗号文</anchor>を 
<var>CEK</var>,
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWK初期化ベクトル</anchor>,
<var><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">AAD</anchor>暗号化引数</var>,
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE認証タグ</anchor>について<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容暗号化算法</anchor>を適用した結果に設定します。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容暗号化算法</anchor>に基づき<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE認証タグ</anchor>を妥当性検証し、
不正確なら<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">解読</anchor>結果を返さずに拒絶します。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="117" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[117]</anchor-end> 
<code>zip</code>
が指定された場合、<ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="118" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[118]</anchor-end> 
<var>平文</var>を、<var>平文</var>を指定された<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">圧縮</anchor>算法で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">解読</anchor>した結果に設定します。</li></ol></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="119" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[119]</anchor-end> 
<var>平文</var>とどの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">受信者</anchor>であるかを返します。</li></ol></figure><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="120" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[120]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">仕様書</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アルゴリズム</anchor>の形で記述していますが、
エラー処理をどうするべきかや複数の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">受信者</anchor>をどう扱うのかをあまり明確には描き出していません。
常識的に行間を読むと、処理に失敗したらその<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">受信者</anchor>については解読失敗として次の受信者の処理に移る
(受信者の決定以前の失敗なら全体を失敗とする) ということのようです。</comment-p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="142" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[142]</anchor-end> 
なお <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="141" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;141</anchor-internal> のような重要な規定が仕様書本文中の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アルゴリズム</anchor>には組み込まれていなかったりします。
他の各段階も既知の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">セキュリティー</anchor>問題に十分な配慮が必要です。
「本体」とセキュリティーを分けて考える <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> の悪習です。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> を読みながら実装するときは要注意。</comment-p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="57" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[57]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">受信者</anchor>が複数の場合、
すべての<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">受信者</anchor>に対して<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">検証</anchor>に成功しなければならないとしようが、
いずれか1つの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">受信者</anchor>に対して<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">検証</anchor>に成功すれば良いとしようが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応用</anchor>の裁量で決められます。
どうするにせよ、
少なくても1つの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">受信者</anchor>に対しては<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">検証</anchor>に成功していなければ<MUST xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なりません</MUST>。
そうでなければ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">非妥当</anchor>としなければ<MUST xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なりません</MUST>。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="33" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;33</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="78" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[78]</anchor-end> 
特定の場面でどの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">算法</anchor>を使うかは、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応用</anchor>の裁量によります。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">解読</anchor>に成功したとしても、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応用</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">受理</anchor>できる<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">算法</anchor>でなければ、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">非妥当</anchor>とする<SHOULD xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">べきです</SHOULD>。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="33" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;33</anchor-internal></src></p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="121" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[121]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JOSE鍵識別</anchor>も参照。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="141" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[141]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 3218</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">timing attack</anchor>
の対策のため、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">被暗号化鍵</anchor>の
<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">形式<rt xmlns="http://www.w3.org/1999/xhtml">format</rt></rubyb>エラー, 
<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">詰め<rt xmlns="http://www.w3.org/1999/xhtml">padding</rt></rubyb>エラー, 
<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">長さ<rt xmlns="http://www.w3.org/1999/xhtml">length</rt></rubyb>エラーを区別しては<MUST xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なりません</MUST>。
<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">形式が不適切<rt xmlns="http://www.w3.org/1999/xhtml">improperly formatted</rt></rubyb>な鍵を受信した際は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">timing attack</anchor>
対策のため、
無作為に生成した <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CEK</anchor> に置き換えて次段階に進むことが<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">強く推奨<rt xmlns="http://www.w3.org/1999/xhtml">strongly recommended</rt></rubyb>されます。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="140" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;140</anchor-internal></src></p></section></section><section><h1>MIME 型</h1><p><sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>JOSE</anchor> </sw-see></p></section><section><h1>応用</h1><figure class="short list"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="151" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[151]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JWE</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応用</anchor></figcaption><ul><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">暗号化JWK</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">暗号化JWK集合</anchor></li></ul></figure></section><section><h1>歴史</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> 
<dfn>RFC 7516</dfn>
は、
<time>西暦2015年5月<attrvalue xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">2015-05</attrvalue></time>に
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</anchor>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">標準化過程RFC</anchor> 
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">提案標準</anchor>)
として出版されました。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src></p></section><section><h1>メモ</h1></section></body></html>