トラステッド・ブロック・セクション X'12'

トラステッド・ブロック・セクション X'12' には、規則を定義する情報が含まれます。 トラステッド・ブロックは、ゼロ以上の規則セクションを持つことができます。
  1. 規則セクションのないトラステッド・ブロックは、PKA 鍵トークン変更呼び出し可能サービスおよび PKA 鍵インポート呼び出し可能サービスにより使用できます。 規則セクションのないトラステッド・ブロックは、鍵用途フラグがデジタル署名操作を許可するように設定されている RSA 公開鍵セクションがあれば、デジタル署名検査呼び出し可能サービスによって使用できます。
  2. 以下を実行するためにリモート鍵エクスポート呼び出し可能サービスを使用する場合は、少なくとも 1 つの規則セクションが必要です。
    • RKX 鍵トークンの生成
    • RKX 鍵トークンのエクスポート
    • CCA DES 鍵トークンのエクスポート
    • 公開鍵により暗号化された鍵の生成またはエクスポート。 公開鍵はベンダー認証 (セクション X'11') に含まれ、ATM ベンダーのルート認証鍵です。 これは、個別の ATM 用の公開鍵認証に基づいて、デジタル署名を検証するために使用されます。
  3. トラステッド・ブロックに複数の規則セクションがある場合、各規則セクションには、固有の 8 文字の規則 ID が必要です。
セクション X'12' のみが、複数のセクションを持つことを許可されています。 セクション X'12' はオプションです。 複数のセクションが許可されます。
注: トラステッド・ブロックの全長は、最大サイズの 3500 バイトより長くすることはできません。

5 つのサブセクション (TLV オブジェクト) が定義されています。

このセクションの定義については、以下の表で示します。

表 1. トラステッド・ブロック規則セクション (X'12')
オフセット (バイト) 長さ (バイト) 説明
オフセット (バイト) 長さ (バイト) 説明
000 001 セクション ID:
X'12'
トラステッド・ブロックの規則
001 001 セクションのバージョン番号 (X'00').
002 002 セクション長 (バイト): (20+yyy)。
004 008 規則 ID (ASCII 形式)。

トラステッド・ブロック内の規則を一意的に識別する 8 バイトの文字ストリング。

有効な ASCII 文字は、A から Z、a から z、0 から 9、- (ハイフン)、および _ (下線) であり、左寄せされて右側にスペース文字が埋め込まれます。

012 004 フラグ (未定義のフラグ・ビットは予約済みであり、ゼロでなければなりません)。
X'00000000'
新規鍵の生成
X'00000001'
既存の鍵のエクスポート
016 001 生成対象鍵の長さ。

フラグ値 (オフセット 012) が新規鍵を生成するように設定されている場合の、生成される鍵の長さ (バイト)。そうでない場合、この値は無視されます。 有効な値は、8、16、または 24 です。無効である場合は、エラーを返します。

017 001 鍵検査アルゴリズム ID (他のすべては予約済みであり、使用してはなりません):
意味
X'00'
鍵検査値を計算しません。 CSNDRKX または CSNFRKX への呼び出しで、key_check_length 変数をゼロに設定します。
X'01'
8 バイト・ブロックの 2 進ゼロをこの鍵で暗号化します。 CSNDRKX または CSNFRKX の呼び出しでは、key_check_length 変数を 8 に設定します。
X'02'
鍵の MDC-2 ハッシュを計算します。 CSNDRKX または CSNFRKX の呼び出しでは、key_check_length 変数を 16 に設定します。
018 001 対称暗号化出力鍵フォーマット・フラグ (他のすべての値は予約済みであり、使用してはなりません)。

指示された対称鍵トークンを sym_encrypted_key_identifier パラメーターを使用して返します。

意味
X'00'
MAC 鍵のバリアントで暗号化された RKX 鍵トークンを返します。
注: これは、フラグ値 (オフセット 012) が新規鍵を生成するように設定されている場合の、許可される唯一の鍵フォーマットです。
X'01'
トランスポート鍵で暗号化された CCA DES 鍵トークンを返します。
注: これは、フラグ値 (オフセット 012) が既存の鍵をエクスポートするように設定されている場合の、許可される唯一の鍵フォーマットです。
019 001 非対称暗号化出力鍵フォーマット・フラグ (他のすべての値は予約済みであり、使用してはなりません)。

指示された非対称鍵トークンを asym_encrypted_key 変数で返します。

意味
X'00'
非対称鍵を返しません。 asym_encrypted_key_length 変数をゼロに設定します。
X'01'
PKCS1.2 フォーマットの出力です。
X'02'
RSAOAEP フォーマットの出力です。
020 yyy 規則セクションのサブセクション (tag-length-value オブジェクト)。 TLV フォーマットの連続する 0 から 5 個のオブジェクト。
注: トラステッド・ブロック内の数表現を参照してください。
セクション X'12' には、定義された 5 個の規則サブセクション (tag-length-value オブジェクト) があります。 これらのサブセクションについては、以下の表に要約しています。
表 2. トラステッド・ブロック規則サブセクションの要約
規則サブセクション・タグ TLV オブジェクト オプションまたは必須 注釈
X'0001' トランスポート鍵バリアント オプション 排他的論理和がとられて非暗号化テキスト・トランスポート鍵になるバリアントが入ります。
X'0002' トランスポート鍵の規則参照 オプション。RKX 鍵トークンをトランスポート鍵として使用するには必須です。 トランスポート鍵の作成に使用する必要があった規則の規則 ID が入ります。
X'0003' 共通エクスポート鍵のパラメーター 鍵生成のオプション。既存の鍵のエクスポートには必須です。 エクスポート鍵とソース鍵の最小長および最大長、出力鍵の可変長およびバリアント、CV 長、および鍵の使用を制御するために非暗号化テキスト・トランスポート鍵との排他的論理和がとられる CV が含まれます。
X'0004' ソース鍵参照 オプション。ソース鍵が RKX 鍵トークンである場合は必須です。 ソース鍵を作成するために使用する規則の規則 ID が含まれます。
注: トラステッド・ブロックの作成時に必要とされるすべての規則が含まれます。 トラステッド・ブロックの作成後に規則を追加することはできません。
X'0005' エクスポート鍵 CCA トークン・パラメーター オプション。CCA DES 鍵トークンのエクスポートにのみ使用されます。 マスク長、マスク、およびエクスポートされた鍵の使用を制限する CV テンプレートが含まれます。 さらに、テンプレート長と、ソース鍵ラベルの許可を定義するテンプレートも含まれます。

ソース鍵入力パラメーターの鍵タイプは、このサブセクション内のエクスポート鍵 CV 制限マスク (オフセット 005) および制限テンプレート (オフセット yyy) を使用して、「フィルター処理」できます。

注: トラステッド・ブロック内の数表現を参照してください。

トラステッド・ブロック・セクション X'12' のサブセクション X'0001': トラステッド・ブロック規則セクション (X'12') のサブセクション X'0001' は、トランスポート鍵バリアント TLV オブジェクトです。 このサブセクションはオプションです。 これには、排他的論理和がとられて非暗号化テキスト・トランスポート鍵になるバリアントが入ります。

このサブセクションの定義については、以下の表で示します。

表 3. トラステッド・ブロック規則セクション (X'12') のトランスポート鍵バリアントのサブセクション (X'0001')
オフセット (バイト) 長さ (バイト) 説明
000 002 サブセクション・タグ:
X'0001'
トランスポート鍵バリアント TLV オブジェクト
002 002 サブセクション長 (バイト): (8+nnn)。
004 001 サブセクションのバージョン番号 (X'00')。
005 002 予約済み、2 進ゼロでなければなりません。
007 001 可変フィールドの長さ (バイト): (nnn)。

この長さは、transport_key_identifier パラメーターにより識別されるトランスポート鍵の長さ以上でなければなりません。 バリアントが鍵よりも長い場合は、使用する前に、鍵の長さになるまで右側から切り捨てます。

008 nnn トランスポート鍵バリアント。
(1) バリアント・フィールド値 (オフセット 007) の長さがゼロでなく、(2) 対称暗号化出力鍵フォーマット・フラグ (セクション X'12' のオフセット 018) が X'01' である場合は、このバリアントの排他的論理和をとって、非暗号化テキスト・トランスポート鍵にします。
注: トランスポート鍵は、対称暗号化出力鍵が RKX トークン形式である場合は使用されません。
注: トラステッド・ブロック内の数表現を参照してください。

トラステッド・ブロック・セクション X'12' のサブセクション X'0002': トラステッド・ブロック規則セクション (X'12') のサブセクション X'0002' は、トランスポート鍵規則参照 TLV オブジェクトです。 このサブセクションはオプションです。 これにはトランスポート鍵の作成に使用する必要があった規則の規則 ID が入ります。 このサブセクションは、RKX 鍵トークンをトランスポート鍵として使用するには必須です。

このサブセクションの定義については、以下の表で示します。
表 4. トラステッド・ブロック規則セクション (X'12') のトランスポート鍵の規則参照サブセクション (X'0002')
オフセット (バイト) 長さ (バイト) 説明
000 002 サブセクション・タグ:
X'0002'
トランスポート鍵の規則参照 TLV オブジェクト
002 002 サブセクション長 (バイト): (14)。
004 001 サブセクションのバージョン番号 (X'00')。
005 001 予約済み、2 進ゼロでなければなりません。
006 008 規則 ID。

トランスポート鍵として使用される RKX 鍵トークンを作成するために使用する必要があった規則の規則 ID が入ります。

規則 ID は、ASCII 文字の 8 バイト・ストリングであり、左寄せで、右側にスペース文字が埋め込まれます。 許容文字は、A から Z、a から z、0 から 9、- (X'2D')、および _ (X'5F') です。 他のすべての文字は、将来の利用のために予約されています。

トラステッド・ブロック・セクション (X'12') のサブセクション X'0003': トラステッド・ブロック規則セクション (X'12') のサブセクション X'0003' は、共通エクスポート鍵パラメーター TLV オブジェクトです。 このサブセクションはオプションですが、RKX 鍵トークン・フォーマットまたは CCA DES 鍵トークン・フォーマットのいずれかである既存のソース鍵 (source_key_identifier パラメーターで識別される) の鍵エクスポートには必須です。 新規鍵の生成の場合、このサブセクションは、出力鍵バリアントを非暗号化テキスト生成鍵に適用します (そのようなオプションを希望する場合)。 これには、入力ソース鍵と出力エクスポート鍵の最小長および最大長、出力鍵の可変長およびバリアント、CV 長、および非暗号化テキスト・トランスポート鍵との排他的論理和がとられる CV が含まれます。

このサブセクションの定義については、以下の表で示します。
表 5. トラステッド・ブロック規則セクション (X'12') の共通エクスポート鍵パラメーター・サブセクション (X'0003')
オフセット (バイト) 長さ (バイト) 説明
000 002 サブセクション・タグ:
X'0003'
共通エクスポート鍵パラメーター TLV オブジェクト
002 002 サブセクション長 (バイト): (12+xxx+yyy)。
004 001 サブセクションのバージョン番号 (X'00')。
005 002 予約済み、2 進ゼロでなければなりません。
007 001 フラグ (2 進ゼロに設定する必要があります)。
008 001 エクスポート鍵の最小長 (バイト)。 この長さは、8、16、または 24 のいずれかでなければなりません。

これは、ソース鍵にも当てはまります。

009 001 エクスポート鍵の最大長 (バイト) (yyy)。 この長さは、8、16、または 24 のいずれかでなければなりません。

これは、ソース鍵にも当てはまります。

010 001 出力鍵の可変長 (バイト) (xxx)。
有効な値は 0 または 8 から 255 です。0 より大きい場合、少なくともこの規則を使用してエクスポートされた最長の鍵と同じ長さでなければなりません。 バリアントが鍵よりも長い場合は、使用する前に、鍵の長さになるまで右側から切り捨てます。
注: 出力鍵バリアント (オフセット 011) は、この長さがゼロの場合は使用されません。
011 xxx 出力鍵のバリアント。

バリアントは、任意の値にすることができます。 このバリアントの排他的論理和をとって、出力の非暗号化テキスト値にします。

011+xxx 001 CV の長さ (バイト) (yyy)。
  • 長さが 0、8、または 16 でない場合は、エラーを返します。
  • 長さが 0 であり、ソース鍵が CCA DES 鍵トークンである場合は、出力が CCA DES 鍵トークンの形式であれば、CV を対称暗号出力内に保持します。
  • 非ゼロの長さが、source_key_identifier パラメーターによって識別される鍵の長さよりも短い場合は、エラーが返されます。
  • 長さが 16 であり、CV (オフセット 012+xxx) の値が 16 バイトの X'00' である場合 (鍵パーツ・ビットを無視)、以下のようになります。
    1. すべての CV ビット定義を無視します。
    2. CCA DES 鍵トークン・フォーマットの場合、対称暗号化出力鍵のフラグ・バイトを CV 値が存在していることを示すように設定します。
    3. ソース鍵の長さが 8 バイトである場合は、鍵を 16 バイトに複製しないでください。
012+xxx yyy CV。
選択された対称暗号化出力鍵フォーマット (規則セクションのオフセット 018) が CCA DES 鍵トークンである場合、この CV を出力エクスポート鍵トークンに入れます。
  • 対称暗号化出力鍵フォーマット・フラグ (セクション X'12' のオフセット 018) が RKX 鍵トークン (X'00') を戻す場合、この CV は無視されます。 そうでない場合、この CV の排他的論理和がとられ、非暗号化テキスト・トランスポート鍵になります。
  • CV 長 (オフセット 011+xxx) が 0 に設定されている場合、ソース鍵の CV の排他的論理和をとって、非暗号化テキスト・トランスポート鍵になります。ソース鍵を暗号化するトランスポート鍵の左右の鍵値が等しい場合は、エラーを返します。 以下の条件が満たされる場合はいつでも、source_key_identifier パラメーターにより識別される鍵の鍵半分が複製されます。
    1. 鍵複製コマンド (オフセット X'00DB') がアクティブ役割で使用可能である
    2. CV 長 (オフセット 011+xxx) が 16 であり、CV の両方の半分が非ゼロである
    3. source_key_identifier パラメーター (CCA DES 鍵トークンまたは RKX 鍵トークンのいずれかに含まれる) が、8 バイト鍵を識別する
    4. この CV の鍵形式ビット (40 から 42) が単一長の鍵を示していない (ゼロに設定されていない)
    5. この CV の鍵形式ビット 40 は、鍵の半分が固有であると保証されていることを示しません (1 に設定されていません)。
注: トランスポート鍵は、対称暗号化出力鍵が RKX トークン形式である場合は使用されません。
注: トラステッド・ブロック内の数表現を参照してください。

トラステッド・ブロック・セクション X'12' のサブセクション X'0004': トラステッド・ブロック規則セクション (X'12') のサブセクション X'0004' は、ソース鍵規則参照 TLV オブジェクトです。 このサブセクションはオプションですが、RKX 鍵トークンをソース鍵 (source_key_identifier パラメーターで識別される) として使用する場合は必須です。 これには、エクスポート鍵を作成するために使用される規則の規則 ID が含まれます。 このサブセクションが存在しない場合、RKX 鍵トークン・フォーマットのソース鍵の使用は受け入れられません。

このサブセクションの定義については、以下の表で示します。
表 6. トラステッド・ブロック規則セクション (X'12') のソース鍵の規則参照サブセクション (X'0004')
オフセット (バイト) 長さ (バイト) 説明
000 002 サブセクション・タグ:
X'0004'
ソース鍵の規則参照 TLV オブジェクト
002 002 サブセクション長 (バイト): (14)。
004 001 サブセクションのバージョン番号 (X'00')。
005 001 予約済み、2 進ゼロでなければなりません。
006 008 規則 ID。

ソース鍵を作成するために使用する必要があった規則の規則 ID。

規則 ID は、ASCII 文字の 8 バイト・ストリングであり、左寄せで、右側にスペース文字が埋め込まれます。 許容文字は、A から Z、a から z、0 から 9、- (X'2D')、および _ (X'5F') です。 他のすべての文字は、将来の利用のために予約されています。

注: トラステッド・ブロック内の数表現を参照してください。

トラステッド・ブロック・セクション X'12' のサブセクション X'0005': トラステッド・ブロック規則セクション (X'12') のサブセクション X'0005' は、エクスポート鍵 CCA トークン・パラメーター TLV オブジェクトです。 このサブセクションはオプションです。 これには、マスク長、マスク、およびエクスポート鍵 CV 制限のテンプレートが含まれます。 さらにこれには、テンプレート長と、ソース鍵ラベルのテンプレートも含まれます。 CCA DES 鍵トークンをソース鍵入力パラメーターとして使用する場合、その鍵タイプは、このサブセクション内のエクスポート鍵 CV 制限マスク (オフセット 005) および制限テンプレート (オフセット yyy) を使用して、「フィルター処理」できます。

このサブセクションの定義については、以下の表で示します。
表 7. トラステッド・ブロック規則セクション (X'12') のエクスポート鍵 CCA トークン・パラメーター・サブセクション (X'0005')
オフセット (バイト) 長さ (バイト) 説明
000 002 サブセクション・タグ:
X'0005'
エクスポート鍵 CCA トークン・パラメーター TLV オブジェクト
002 002 サブセクション長 (バイト): (10+yyy+yyy+zzz)。
004 001 サブセクションのバージョン番号 (X'00')。
005 002 予約済み、2 進ゼロでなければなりません。
007 001 フラグ (2 進ゼロに設定する必要があります)。
008 001 エクスポート鍵 CV 制限マスク長 (バイト): (yyy)。
この CV 制限マスク長 (yyy) がゼロの場合、CV 制限は使用しないでください。 yyy が非ゼロの場合は、CV 制限を使用してください。この場合、yyy は以下のようになります。
  • 8 または 16 でなければなりません
  • エクスポート鍵の最小長より短くすることはできません (サブセクション X'0003' のオフセット 008)
  • 鍵の実際のソース鍵長と長さが等しくなければなりません

: エクスポート鍵の最小長が 16 で、エクスポート鍵 CV 制限マスク長が 8 である場合、エラーが返されます。

009 yyy エクスポート鍵 CV 制限マスク (yyy=0 の場合は存在しません)。

ソース鍵 CV 限度テンプレート (オフセット 009+yyy) に照らして検査する CV ビットを示します。

: マスク X'FF' は、バイト内のすべてのビットを検査することを意味します。 マスク X'FE' は、バイト内のパリティー・ビットを無視します。

009+yyy yyy エクスポート鍵 CV 制限テンプレート (yyy=0 の場合は存在しません)。

エクスポート鍵 CV 制限マスク (オフセット 009) に基づいて検査される CV ビットの必須値を指定します。

エクスポート鍵 CV 制限マスクおよびテンプレートは、同じ長さ yyy を持ちます。 これは、それら 2 つのバリアントが、エクスポートする CCA DES トークンの利用可能な CV を制限するために一緒に機能するからです。 検査は、以下のように実行されます。
  1. エクスポートする鍵の長さが yyy より短い場合、エラーを返します。
  2. エクスポート鍵 CV 制限マスクを使用して、エクスポートする鍵の CV に論理 AND 演算を実行します。
  3. 結果をエクスポート鍵 CV 制限テンプレートと比較します。
  4. 比較が等しくない場合、エラーを返します。
: CV バイト 1 のエクスポート鍵 CV 制限マスク X'FF' (鍵タイプ) と、バイト 1 のエクスポート鍵 CV 制限テンプレート X'3F' (鍵タイプ CVARENC) を一緒に使用すると、CVARENC 鍵を除くすべての鍵タイプがフィルターで除外されます。
注: 複数の鍵タイプを許可するマスクとテンプレートの使用は可能ですが、1 つの規則セクションで一貫して実現することはできません。 例えば、マスクとテンプレートでビット 10 を 1 に設定すると、PIN 処理鍵および暗号変数暗号鍵のみが許可されます。 ただし、PIN 処理鍵および鍵暗号鍵のみを許可するマスクは不可です。 この場合、一方は PIN 処理鍵、もう一方は鍵暗号鍵を許可する複数の規則セクションが必要です。
009+

yyy+
yyy

001 ソース鍵ラベル・テンプレート長 (バイト): (zzz)。

有効な値は 0 および 64 です。長さが 64 であり、ソース鍵ラベルが指定されていない場合、エラーが返されます。

010+

yyy+
yyy

zzz ソース鍵ラベル・テンプレート (zzz=0 の場合は存在しません)。
鍵ラベルが source_key_identifier パラメーターにより示される場合は、鍵ラベル名がこのテンプレートと一致することを確認します。 比較が失敗する場合は、エラーが返されます。 ソース鍵ラベル・テンプレートは、以下の規則に従っている必要があります。
  • 鍵ラベル・テンプレートは、長さが 64 バイトである必要があります。
  • 最初の文字は、X'00' から X'1F' の範囲内の文字にしたり、X'FF' にしたりすることはできません。
  • 最初の文字は、数字 (X'30' から X'39') にすることはできません。
  • 鍵ラベル名の終端は、右側はスペース文字 (X'20') にします。右側をスペース文字で埋め込む必要があります。
  • 使用が許可される特殊文字は、#、$、@、および * (X'23'X'24'X'40'、および X'2A') です。
  • ワイルドカード X'2A' (*) は、最初の文字、最後の文字、またはテンプレート内の唯一の文字としてのみ許可されます。
  • 英数字 (a...z、A...Z、0...9)、4 つの特殊文字 (X'23'X'24'X'40'X'2A')、およびスペース文字 (X'20') のみが許可されます。
注: トラステッド・ブロック内の数表現を参照してください。