TR-31 エクスポート (CSNBT31X および CSNET31X)

TR-31 エクスポート呼び出し可能サービスは、CCA トークンを相手側にエクスポートするために TR-31 フォーマットに変換する場合に使用します。 TR-31 によって定義されている鍵属性と、CCA によって定義されている鍵属性は、必ずしも 1 対 1 のマッピングにはならないため、 呼び出し側は、規則配列によってエクスポート対象の鍵に付与する属性を指定しなければならない場合があります。

AMODE(64) の呼び出し可能サービス名は CSNET31X です。

形式

CALL CSNBT31X(
			return_code,	
			reason_code,	
			exit_data_length,			
			exit_data,			
			rule_array_count,
			rule_array,
			key_version_number,
			key_field_length,
			source_key_identifier_length,
			source_key_identifier,
			unwrap_kek_identifier_length,
			unwrap_kek_identifier,
			wrap_kek_identifier_length,
			wrap_kek_identifier,
			opt_blks_length,
			opt_blocks,
			tr31_key_block_length,	
			tr31_key_block)

パラメーター

return_code
方向 タイプ
出力 整数

戻りコードは、呼び出し可能サービスの一般的な結果を示しています。 ICSF および暗号化コプロセッサーの戻りコードおよび理由コードに、戻りコードがリストされています。

reason_code
方向 タイプ
入出力 整数

理由コードは、アプリケーション・プログラムに返される、呼び出し可能サービスの結果を示しています。 戻りコードにはそれぞれ、特定の処理問題を示すさまざまな理由コードが割り当てられています。 ICSF および暗号化コプロセッサーの戻りコードおよび理由コード に、理由コードがリストされています。

exit_data_length
方向 タイプ
出力 整数

インストール・システム出口に渡されるデータの長さ。 データは exit_data パラメーターで識別されます。

exit_data
方向 タイプ
入出力 ストリング

このデータはインストール出口に渡されます。

rule_array_count
方向 タイプ
入力 整数

rule_array パラメーターで指定するキーワード数。 rule_array_count パラメーターは 3、4、または 5 でなければなりません。

rule_array
方向 タイプ
入力 ストリング

rule_array には、制御情報をこの呼び出し可能サービスに提供するキーワードが含まれます。 このキーワードの長さは 8 バイトです。 このキーワードは左寄せにして、右側にスペース文字を埋め込む必要があります。 下表に、この呼び出し可能サービスの rule_array キーワードを示します。 用途とモードの有効な組み合わせについては、表 2 を参照してください。

表 1. TR-31 エクスポート規則配列制御情報のキーワード
キーワード 意味
TR-31 鍵ブロック保護方式 - いずれかが必須
VARXOR-A これは、TR-31 鍵ブロック・バージョン ID「A」(0x41) に対応する変種作成方式を使用します。
VARDRV-B これは、TR-31 鍵ブロック・バージョン ID「B」(0x42) に対応する鍵導出方式を使用します。
VARXOR-C これは、TR-31 鍵ブロック・バージョン ID「C」(0x43) に対応する変種作成方式を使用します。
出力鍵用の TR-31 鍵用途値 - いずれかが必須
注: 制御ベクトル・トランスポート・グループから ATTR-CV が指定される場合は、用途キーワードは指定してはなりません。 専有用途「10」が使用されます。
BDK ベース導出鍵 (BDK) - ( B0 )
CVK カード検証鍵 (CVK) - ( C0 )
ENC データ暗号鍵 - ( D0 )
EMVACMK EMV アプリケーション暗号文マスター鍵 - ( E0 )
EMVSCMK 機密性マスター鍵の EMV セキュア・メッセージング - ( E1 )
EMVSIMK 保全性マスター鍵の EMV セキュア・メッセージング - ( E2 )
EMVDAMK EMV データ認証コード鍵 - ( E3 )
EMVDNMK EMV 動的数マスター鍵 - ( E4 )
EMVCPMK EMV カード個別設定マスター鍵 - ( E5 )
KEK 鍵暗号鍵 - ( K0 )
KEK-WRAP TR-31 ブロックをラップするための鍵暗号鍵 (TR-31 鍵ブロック・バージョン ID「B」および「C」の場合のみ) - ( K1 )
ISOMAC0 TDES を使用する ISO 16609 MAC アルゴリズム 1 の鍵 - ( M0 )
ISOMAC1 ISO 9797-1 MAC アルゴリズム 1 の鍵 - ( M1 )
ISOMAC3 ISO 9797-1 MAC アルゴリズム 3 の鍵 - ( M3 )
PINENC PIN 暗号鍵 - ( P0 )
PINVO PIN 検査鍵、「その他」のアルゴリズム - ( V0 )
PINV3624 IBM 3624 アルゴリズムの PIN 検査鍵 - ( V1 )
VISAPVV PIN 検査鍵、VISA PVV アルゴリズム - ( V2 )
鍵用途の TR-31 モード - いずれかが必須
注: 制御ベクトル・トランスポート・グループから ATTR-CV が指定される場合は、モード・キーワードは指定してはなりません。 専有モード「1」が使用されます。
ENCDEC 暗号化および暗号化解除 - ( B )
DEC-ONLY 暗号化解除のみ - ( D )
ENC-ONLY 暗号化のみ - ( E )
GENVER MAC または PIN の生成および検査 - ( C )
  • MAC 鍵では生成ビットおよび検証ビットがオンになっていなければなりません
  • PIN 鍵では PINGEN ビットおよび EPINVER ビットがオンになっていなければなりません
GEN-ONLY MAC または PIN の生成のみ - ( G )
  • MAC 鍵では生成ビットのみがオンになっていなければなりません
  • PIN 鍵では PINGEN ビットがすべてオンになっていて EPINVER ビットがすべてオフになっていなければなりません
VER-ONLY MAC または PIN の検査のみ ( V )
  • MAC 鍵では検証ビットのみがオンになっていなければなりません
  • PIN 鍵では PINGEN ビットがすべてオフになっていて EPINVER ビットがすべてオンになっていなければなりません
DERIVE 鍵導出 (TR-31 鍵ブロック・バージョン ID「B」および「C」の場合のみ) - ( X )
ANY すべてのモードを許可 - ( N )
TR-31 鍵ブロック内のエクスポート・フィールドを設定するためのエクスポート制御 - オプション
EXP-ANY エクスポートで任意の鍵暗号鍵を使用できます。 これがデフォルトです。
EXP-TRST エクスポートで、TR-31 に定義されているように、トラステッド鍵暗号鍵を使用できます。
注: X9.24 準拠の CCA 鍵ブロックでラップされた CCA 鍵はトラステッド鍵とみなされます。
EXP-NONE エクスポートが禁止されます。
制御ベクトル・トランスポート制御 - オプション
注: このグループのキーワードが指定されない場合、source_key_identifier 内の CV は、 上記のグループから指定された「鍵用途」キーワードおよび「用途モード」キーワードに適合するように引き続き検証されます。
INCL-CV これは、CCA 制御ベクトルを TR-31 鍵ブロック・ヘッダーのオプション・フィールドに組み込みます。 TR-31 用途フィールドおよび用途モード・フィールドでは鍵属性が示されます。 その属性 (上記のグループから渡されたキーワードから導出) は、組み込まれた制御ベクトル内の属性と両立するように呼び出し可能サービスによって検証されます。
ATTR-CV これは、CCA 制御ベクトルを TR-31 鍵ブロック・ヘッダーのオプション・フィールドに組み込みます。 TR-31 用途は組み込まれた CV に用途情報が指定されていることを示す専有 ASCII 値「10」(‘3130’x) に設定されます。 用途モードは、同様に CV にモードが指定されていることを示す専有 ASCII 値「1」(‘ 31’x) に設定されます。
注: このキーワードが指定されている場合は、前のグループからの用途キーワードやモード・キーワードを指定してはなりません。 専有値が使用されます。
key_version_number
方向 タイプ
入力 ストリング
このパラメーターにある 2 つのバイトは、 出力 TR-31 鍵ブロックの「Key Version Number」フィールドにコピーされます。 鍵バージョン番号が不要な場合は、値を EBCDIC (「00」) にする必要があります。 パラメーター source_key_identifier に含まれる CCA 鍵が鍵パーツの 場合 (CV ビット 44 が 1 の場合)、TR-31 鍵ブロックに含まれる鍵バージョン番号は、TR-31 標準に従って「c0」(0x6330) に設定されます。 これは、TR-31 ブロックに鍵パーツが含まれることを示します。 この場合、key_version_number パラメーターで呼び出し可能サービスに渡される値は無視されます。
key_field_length
方向 タイプ
入力 整数
このパラメーターは、TR-31 ブロックにおいて暗号化される鍵フィールドの長さを指定します。 この長さは、8 (DES 暗号ブロックのサイズ) の倍数でなければなりません。 また、この長さは、パラメーター source_key_identifier で渡される非暗号化テキスト鍵の 長さに、TR-31 ブロックにおいてこの鍵の前にある 2 バイトの鍵の長さを加えたものと同じが、それより長くなければなりません。 例えば、ソース鍵が長さ 16 バイトの倍長 TDES 鍵の場合、鍵フィールドの長さは (16+2) バイトより長い 8 の倍数でなければなりません。 つまり、この場合、key_field_length の最小値は 24 です。 TR-31 では非暗号化テキスト鍵の後に任意の数のバイトを埋め込むことができるため、 呼び出し側は、8 の倍数のブロックを形成するために必要とされるだけの数のバイトで埋め込みを行うことを選択できます。 通常、これを行うのは、非暗号化テキスト鍵の長さを、その鍵を復号できない第三者から隠すためです。 多くの場合、暗号化ブロックを調べることで TR-31 ブロックで保持されている長さを判断することができないように、 すべての鍵 (単一長、倍長、3 倍長) に対して同じ長さに埋め込みが行われます。

このパラメーターでは、TR-31 の仕様に従って鍵フィールドに保管された暗号化データを ASCII でエンコードできるようにすることは 想定されていないことに注意してください。 例えば、ここで値 24 をユーザーが渡すと、上記の最小の例に従って、出力 TR-31 鍵ブロック内の鍵フィールドにおける 最終的な ASCII エンコード暗号化データの長さは 48 バイトになります。

source_key_identifier_length
方向 タイプ
入力 整数
このパラメーターは、source_key_identifier パラメーターの 長さ (バイト) を指定します。 現在、ソース鍵パラメーターに対してサポートされているのは CCA 鍵トークンのみであるため、 このパラメーターの値は 64 でなければなりません。
source_key_identifier
方向 タイプ
入出力 ストリング
このパラメーターには、 エクスポート対象の鍵のラベルまたは鍵トークンが含まれます。 その鍵は CCA 内部/外部トークンでなければなりません。 ソース鍵が内部トークンの場合、ソース鍵をラップする KEK の ID は unwrap_kek_identifier パラメーターで 渡されなければなりません。 サポートされる鍵は DES/TDES 鍵のみです。 古いマスター鍵でラップされた鍵トークンが渡されると、その鍵トークンは現行マスター鍵でラップされるように出力で更新されます。
unwrap_kek_identifier_length
方向 タイプ
入力 整数
このパラメーターは、unwrap_kek_identifier パラメーターの 長さ (バイト) を指定します。 source_key_identifier が外部 CCA トークンの場合、このパラメーターは 64 でなければなりません。 それ以外の場合、このパラメーターは 0 でなければなりません。
unwrap_kek_identifier
方向 タイプ
入出力 ストリング
source_key_identifier が 外部 CCA トークンの場合、このパラメーターには、現在の source_key_identifier のラップに 使用された KEK のラベルまたは鍵トークンが含まれます。 これはタイプ EXPORTER または OKEYXLAT の CCA 内部 DES KEK トークンでなければなりません。 source_key_identifier が外部 CCA トークンでない場合、このパラメーターは無視されます。 古いマスター鍵でラップされた鍵トークンが渡されると、その鍵トークンは現行マスター鍵でラップされるように出力で更新されます。
wrap_kek_identifier_length
方向 タイプ
入力 整数
このパラメーターは、wrap_kek_identifier パラメーターの 長さ (バイト) を指定します。 出力 TR-31 鍵ブロックをラップするために unwrap_kek_identifier も使用する場合は、 このパラメーターに対して 0 を指定します。 それ以外の場合、このパラメーターは 64 でなければなりません。
wrap_kek_identifier
方向 タイプ
入出力 ストリング
wrap_kek_identifier_length が 0 の場合、 このパラメーターは無視されて、出力 TR-31 鍵ブロックをラップするために unwrap_kek_identifier も使用されます。 それ以外の場合、このパラメーターには、出力 TR-31 鍵ブロックをラップするために KEK で使用されるラベルまたは鍵トークンが含まれます。 これは KEK EXPORTER/OKEYXLAT タイプの CCA 内部トークンでなければならず、unwrap_kek_identifier と同じ非暗号化鍵が必要です。 古いマスター鍵でラップされた鍵トークンが渡されると、その鍵トークンは現行マスター鍵でラップされるように出力で更新されます。
注: 「E」エクスポート可能性を持っているか、または持つことになる TR-31 バージョン「B」/「C」鍵ブロックを ラップ/ラップ解除するために、ECB モードでラップされた DES 鍵 (CCA レガシー・ラップ・モード) は使用できません。 これは、ECB モードが ANSI X9.24 Part 1 に準拠していないためです。
このパラメーターは KEK を分離できるようするために用意されています。 CCA 外部鍵をラップするための KEK を TR-31 外部鍵のラップに使用できないようにしたり、その逆を行ったりするために、KEK で ラップできる項目に関して KEK を制限できます。
opt_blks_length
方向 タイプ
入力 整数
このパラメーターは、 パラメーター opt_blocks の長さ (バイト) を指定します。 オプション・データを TR-31 鍵ブロックに含めない場合は、このパラメーターをゼロに設定する必要があります。
opt_blocks
方向 タイプ
入力 ストリング
このパラメーターには、出力 TR-31 鍵ブロックに組み込まれる オプション・ブロック・データが含まれます。 オプション・ブロック・データは、TR-31 オプション・データ作成呼び出し可能サービスを使用して作成されます。 また、オプション・ブロック・データは ASCII になっていなければなりません。 opt_blks_length がゼロの場合、このパラメーターは無視されます。
TR31_key_block_length
方向 タイプ
入出力 整数
このパラメーターは、TR31_key_block パラメーターの 長さ (バイト) を指定します。 入力では、このパラメーターには、出力 TR-31 鍵ブロックに使用できるバッファーのサイズを指定しなければなりません。 戻りでは、返される鍵ブロックの実際の長さを含むように、このパラメーターが更新されます。 指定されたバッファーが出力 TR-31 鍵ブロックに十分な大きさでない場合は、エラーが返されます。 出力 TR-31 鍵ブロックの最大サイズは 9992 バイトです。
TR31_key_block
方向 タイプ
出力 ストリング
この パラメーターは、wrap_kek_identifier パラメーターで指定されるエクスポート鍵でラップされたエクスポート TR-31 鍵ブロックの 位置を指定します。

制約事項

この呼び出し可能サービスでは、DES 鍵および TDES 鍵のみがエクスポートされます。

TR-31 ヘッダー・フィールドの専用値は、ヘッダー内のオプション・ブロックに制御ベクトルを指定する場合に IBM CCA で使用される専用値を除いて、 この呼び出し可能サービスではサポートされません。

使用上の注意

特にほかで注記されていない限り、TR-31 鍵ブロックとの間で読み書きが行われるストリング・パラメーターはすべて EBCDIC フォーマットになります。 入力パラメーターは TR-31 鍵ブロックに書き込まれる前に ASCII に変換され、 出力パラメーターは返される前に EBCDIC に変換されます (EBCDIC および ASCII のデフォルト変換テーブルを参照してください)。 TR-31 鍵ブロック自体は、ANSI TR-31 の仕様で要求されているとおり、必ず印刷可能な ASCII フォーマットになります。

キーワード INCL-CV または ATTR-CV が指定されている場合、このサービスでは、CCA 制御ベクトルがソース鍵から TR-31 ヘッダー内の オプション・データ・フィールドに挿入されます。 TR-31 インポート呼び出し可能サービスでは、この CV を抽出して、TR-31 ブロックのインポート時に作成される CCA 鍵の CV として使用できます。 これにより、CCA 鍵の移送に TR-31 を使用したり、送受信ノードで CCA 鍵が同じ制御ベクトルを持つようにしたりできるようになります。 INCL-CV と ATTR-CV の違いは、INCL-CV が通常の TR-31 エクスポートであるということです。 INCL-CV では、TR-31 鍵属性は、指定された規則配列キーワードに基づいて設定されますが、 詳細情報を追加するために CV も TR-31 ブロックに組み込まれます。 これに対して ATTR-CV では、このサービスによって、CV が組み込まれますが、TR-31 用途フィールドおよび用途モード・フィールドが、 用途およびモードの情報が TR-31 ヘッダーにではなく CV に指定されることを示す専有値に設定されます。 オプション INCL-CV の場合、エクスポート操作は、関連アクセス制御点の設定によって課せられる制限を引き続き受けます。 オプション ATTR CV の場合、そのアクセス制御点は検査されず、CV 内のエクスポート制御フィールドで許可される限り、 いずれの CCA 鍵もエクスポートできます。

呼び出し側がこの呼び出し可能サービス、鍵ラベル、または CKDS に保管された内部セキュア鍵トークンの使用を許可されているかを検査するために、SAF が呼び出される場合があります。

オプション・データがある場合、そのデータに埋め込みブロック (ID「PB」) があらかじめ組み込まれていてはなりません。 必要に応じて、適切なサイズの埋め込みブロックが TR-31 鍵ブロックの作成時に追加されます。 この呼び出し可能サービスでオプション・ブロック・データに埋め込みブロックが検出されると、エラーが発生します。

アクセス制御点

ドメイン役割において、このサービスの一般的な機能を制御するアクセス制御点には、以下のものがあります。
  • TR31 Export - Permit version A TR-31 key blocks
  • TR31 Export - Permit version B TR-31 key blocks
  • TR31 Export - Permit version C TR-31 key blocks
ラップ KEK ID が、エクスポートされる鍵よりも弱い鍵である場合は、以下のようになります。
  • 「Prohibit weak wrapping - Transport keys」アクセス制御点が有効になっている場合、サービスは失敗します。
  • 「Warn when weak wrap - Transport keys」アクセス制御点が有効になっている場合、サービスは正常に完了し、警告戻りコードが返されます。

次の表は、TR-31 鍵ブロックに CCA 鍵をエクスポートするための有効な属性変換を、その属性変換を管理するアクセス制御点とともにリストしたものです。 ここにリストされていない変換はすべてエラーになります。 ブランクになっている個別のセルは、値がすぐ上の値と同じであることを示しています。

注: CCA 鍵を TR-31 鍵ブロックにエクスポートするには、以下の変換固有の必須 ACP に加え、 適切な鍵ブロック・バージョンの ACP も有効にする必要があります。
表 2. CCA から TR-31 への有効なエクスポート変換、および必須アクセス制御点 (ACP)
エクスポート CCA タイプ (CSNBCVG キーワード) CSNBCVG キーワードでの CCA 用途 ここで CSNBT31X キーワードはすべて「使用」+「モード」。それ以外はエラー T31 用途 T31 鍵ブロック・バージョン T31 モード T31 アルゴリズム 「TR31 エクスポート」必須 ACP
任意のエクスポート可能鍵
これは、TR-31 鍵ブロックにオプション・ブロックとして CCA 制御ベクトル (CV) が 組み込まれる (呼び出し可能サービスで INCL-CV キーワードが提供された) 場合に、 任意の CCA 鍵を (この表に定義されているとおりの許容エクスポート・シナリオに関して) エクスポートできるようにします。

通常、TR-31 鍵ブロックに CCA 鍵をエクスポートする処理は、詳細に制御するために、変換または小規模の変換セットに固有の ACP によって制御されます。 この ACP では、CV が組み込まれる限りは、許可されるすべてのエクスポートを実行できるため、特定の ACP が指定変更されます。

注:
  1. 他のベンダーによって構築された一部のターゲット・システムでは、専有オプション CV ブロックを持つ TR-31 鍵ブロックは受け入れられません。
  2. ATTR-CV キーワードでは ACP は不要です。
DUKPT ベース導出鍵
KEYGENKY UKPT BDK + ANY B0 A N T KEYGENKY:UKPT を B0 に対して許可
KEYGENKY UKPT BDK + DERIVE B0 B,C X T
注: PIN パッドなどの個別の装置には、DUKPT 初期鍵の導出元の基本鍵があります。
カード検証鍵
MAC AMEX-CSC、生成ビット (20)=1 CVK + GEN-ONLY C0 A,B,C G D,T MAC/MACVER:AMEX-CSC を C0:G/C/V に対して許可
  AMEX-CSC、生成ビット (20)=0、検証ビット (21)=1 CVK + VER-ONLY   A,B,C V D,T
  AMEX-CSC、生成ビット (20)=1、検証ビット (21)=1 CVK + GENVER   A,B,C C D,T
  CVVKEY-A、生成ビット (20)=1 CVK + GEN-ONLY   A,B,C G T MAC/MACVER:CVV-KEYA を C0:G/C/V に対して許可
  CVVKEY-A、生成ビット (20)=0、検証ビット (21)=1 CVK + VER-ONLY   A,B,C V T
  CVVKEY-A、生成ビット (20)=1、検証ビット (21)=1 CVK + GENVER   A,B,C C T
  ANY-MAC、生成ビット (20)=1 CVK + GEN-ONLY   A,B,C G T MAC/MACVER:ANY-MAC を C0:G/C/V に対して許可
  ANY-MAC、生成ビット (20)=0、検証ビット (21)=1 CVK + VER-ONLY   A,B,C V T
  ANY-MAC、生成ビット (20)=1、検証ビット (21)=1 CVK + GENVER   A,B,C C T
DATA 生成ビット (20)=1 または zeroCV CVK + GEN-ONLY   A,B,C G T DATA を C0:G/C に対して許可
  生成ビット (20)=1、検証ビット (21)=1 または zeroCV CVK + GENVER   A,B,C C T
注:
  1. アルゴリズム CVV、CVC、CVC2 および CVV2 を使用してカード検証コードを (指定された値に対して) 計算したり検証したりするための鍵です。 CCA では、これは 2 つの異なる API で使用される鍵に対応します。
    • Visa CVV コードおよび MasterCard CVC コードは CVV_Generate で計算され、CVV_Verify で検証されます。 鍵は DATA であるか、あるいはサブタイプ (ビット 0 から 3 まで) に「ANY-MAC」、「CVVKEY-A」、または「CVVKEY-B」を持つ MAC でなければなりません。 GEN ビット (20) または VER ビット (21) は適切に設定されなければなりません。
    • American Express CSC コードは Transaction_Validate verb を使用して生成および検証されます。 鍵は、サブタイプに「ANY-MAC」または「AMEX-CSC」を持つ MAC 鍵または MACVER 鍵でなければなりません。 GEN ビット (20) または VER ビット (21) は適切に設定されなければなりません。
  2. CCA で表される CVV 鍵と、TR-31 で表される CVV 鍵とでは、互換性がありません。 CCA では「A」鍵と「B」鍵は 2 つの 8 B 鍵として表されます。 一方、TR-31 ではこれらの鍵は 1 つの 16 B 鍵として表されます。 現時点で、CVV の生成 verb および検証 verb は、左右のパーツを A および B として使用して 16 B CVV 鍵を受け入れます。 現行の Visa 標準ではこれが必要です。
  3. 8 B CVVKEY-A は任意のモードの TR-31 C0 用途鍵として無意味/無用であるため、8 B CVVKEY-A タイプや 8 B CVVKEY-B タイプを インポートしたりエクスポートしたりできるのは、専有 TR-31 の用途値とモード値を使用して、IBM CV をオプション・ブロックにカプセル化するように 指示する場合に限られます。
  4. TR 31 用途「C0」からの変換はインポート verb 上では規則配列キーワードによって制御されるため、CCA CVV 鍵を CSC 鍵に変換したり、 その逆の変換を行ったりすることができます。 このことは ACP を使用することで制限できますが、両方の変換タイプが必要な場合、ACP を使用不可にすることはできず、 制御はアプリケーション自体の開発、実装、および実行に左右されます。
データ暗号鍵
ENCIPHER (なし) ENC + ENC-ONLY D0 A,B,C E D, T ENCIPHER/DECIPHER/CIPHER を D0:E/D/B に対して許可
DECIPHER (なし) ENC + DEC-ONLY   A,B,C D D, T
CIPHER (なし) ENC + ENCDEC   A,B,C B D, T
DATA 暗号化ビット (18)=1、復号ビット (19)=1 または zeroCV ENC + ENCDEC   A,B,C B D, T DATA を D0:B に対して許可
注: TR-31 から CCA への変換および CCA から TR-31 への変換は非対称です。 CCA 鍵は、CCA タイプ ENCIPHER、DECIPHER、または CIPHER から、または適切な暗号化 CV ビットと復号 CV ビットがオンになった タイプ DATA から、TR-31「D0」鍵にエクスポートできます。 TR-31「D0」鍵は、CCA タイプ ENCIPHER、DECIPHER、または CIPHER にのみインポートできます。 それらよりセキュリティー強度が低い DATA 鍵タイプにはインポートできません。 このため、エクスポート/再インポートで、セキュリティー強度が低い DATA タイプへの変換は行われません。
鍵暗号鍵
EXPORTER または OKEYXLAT   KEK + ENC-ONLY K0 A,B,C E T EXPORTER/OKEYXLAT を K0:E に対して許可
IMPORTER または IKEYXLAT   KEK + DEC-ONLY K0 A,B,C D T IMPORTER/IKEYXLAT を K0:D に対して許可
EXPORTER または OKEYXLAT   KEK-WRAP + ENC-ONLY K1 B,C E T EXPORTER/OKEYXLAT を K1:E に対して許可
IMPORTER または IKEYXLAT   KEK-WRAP + DEC-ONLY K1 B,C D T IMPORTER/IKEYXLAT を K1:D に対して許可
注:
  1. KEK をエクスポートするには、CV において EXPORTER/IMPORTER ビットまたは XLAT ビットをオンになっていなければなりません。 鍵生成ビットのみがオンになっている KEK はエクスポートできません。
  2. CCA 内では「K1」鍵は「K0」鍵と区別されません。 「K1」鍵は、TR-31 鍵ブロックの「B」または「C」バージョン・ラップで使用される鍵を導出するための特殊な KEK です。 現在、CCA ではターゲットのプロトコル同士は区別されないため、差を表す良い方法はありません。 また、現在、多くのラップ・メカニズムが導出手順や鍵変種作成手順に関連することも注意してください。
  3. セキュリティー上の理由により、エクスポート用に CCA KEK を TR-31 K0-B に移行することはできません。 これは、CCA EXPORTER から IMPORTER に変換したり、その逆の変換を行ったりするための直接のパスが ACP 制御により提供されるとしても不可能です。

    NO-CV KEK はエクスポートできるようになります。 エクスポーター鍵は「E」モード標準 K0 鍵になり、インポーター鍵は「D」モード K0 鍵になります。 ユーザーは、フラグ・ビットを設定して TVV を再計算することにより任意の KEK を NO-CV KEK に変換できます。 フラグは、CV のように鍵にバインドされることはありません。

MAC 鍵
MAC gen bit(20)=1 ISOMAC0 + GEN-ONLY M0 A,B,C G T MAC/DATA/DATAM を M0:G/C に対して許可
DATA 生成ビット (20)=1 または zeroCV ISOMAC0 + GEN-ONLY   A,B,C G T
MAC 生成ビット (20)=1、検証ビット (21)=1 ISOMAC0 + GENVER   A,B,C C T
DATAM 生成ビット (20)=1、検証ビット (21)=1 ISOMAC0 + GENVER   A,B,C C T
DATA 生成ビット (20)=1、検証ビット (21)=1 または zeroCV ISOMAC0 + GENVER   A,B,C C T
MACVER 生成ビット (20)=0、検証ビット (21)=1 ISOMAC0 + VER-ONLY   A,B,C V T MACVER/DATAMV を M0:V に対して許可
DATAMV 生成ビット (20)=0、検証ビット (21)=1 ISOMAC0 + VER-ONLY   A,B,C V T
MAC gen bit(20)=1 ISOMAC1 + GEN-ONLY M1 A,B,C G D,T MAC/DATA/DATAM を M1:G/C に対して許可
DATA 生成ビット (20)=1 または zeroCV ISOMAC1 + GEN-ONLY   A,B,C G D,T
MAC 生成ビット (20)=1、検証ビット (21)=1 ISOMAC1 + GENVER   A,B,C C D,T
DATAM 生成ビット (20)=1、検証ビット (21)=1 ISOMAC1 + GENVER   A,B,C C D,T
DATA 生成ビット (20)=1、検証ビット (21)=1 または zeroCV ISOMAC1 + GENVER   A,B,C C D,T
MACVER 生成ビット (20)=0、検証ビット (21)=1 ISOMAC1 + VER-ONLY   A,B,C V D,T MACVER/DATAMV を M1:V に対して許可
DATAMV 生成ビット (20)=0、検証ビット (21)=1 ISOMAC1 + VER-ONLY   A,B,C V D,T
MAC gen bit(20)=1 ISOMAC3 + GEN-ONLY M3 A,B,C G D,T MAC/DATA/DATAM を M3:G/C に対して許可
DATA 生成ビット (20)=1 または zeroCV ISOMAC3 + GEN-ONLY   A,B,C G D,T
MAC 生成ビット (20)=1、検証ビット (21)=1 ISOMAC3 + GENVER   A,B,C C D,T
DATAM 生成ビット (20)=1、検証ビット (21)=1 ISOMAC3 + GENVER   A,B,C C D,T
DATA 生成ビット (20)=1、検証ビット (21)=1 または zeroCV ISOMAC3 + GENVER   A,B,C C D,T
MACVER 生成ビット (20)=0、検証ビット (21)=1 ISOMAC3 + VER-ONLY   A,B,C V D,T MACVER/DATAMV を M3:V に対して許可
DATAMV 生成ビット (20)=0、検証ビット (21)=1 ISOMAC3 + VER-ONLY   A,B,C V D,T
注:
  1. M0 および M1 は同じ (ISO 9797 ベースの ISO 16609) 標準 DES/TDES (CBC) MAC 計算です。 ただし、M1 では 8 バイトの鍵と 16 バイトの鍵を使用できるのに対し、M0 では 16 バイトの鍵のみを使用できます。 モード M3 は X9.19 スタイルの triple-DES MAC です。
  2. CCA は M2、M4、M5 をサポートしません。
  3. DATAM/DATAMV 鍵は TR-31 M0/M1/M3 鍵タイプにエクスポートできますが、DATAM/DATAMV CCA タイプが廃止された タイプであるため、DATAM/DATAMV CCA タイプへのインポートは許可されません。
PIN 鍵
OPINENC (なし) PINENC + ENC-ONLY P0 A,B,C E T OPINENC を P0:E に対して許可
IPINENC (なし) PINENC + DEC-ONLY   A,B,C D T IPINENC を P0:D に対して許可
(なし) (なし) (なし) (なし) A,B,C B T (なし)
PINVER NO-SPEC PINVO + ANY V0 A N T PINVER:NO-SPEC を V0 に対して許可、PINGEN/PINVER を V0/V1/V2:N に対して許可
  [CV において生成ビットがオンではない] PINVO + VER-ONLY   A,B,C V   PINVER:NO-SPEC を V0 に対して許可
PINGEN NO-SPEC PINVO + ANY   A N T PINGEN:NO-SPEC を V0 に対して許可、PINGEN/PINVER を V0/V1/V2:N に対して許可
  [CV において EPINVER ビットがオフ] PINVO + GEN-ONLY   A,B,C G   PINGEN:NO-SPEC を V0 に対して許可
  [CV において EPINVER ビットがオン] PINVO + GENVER   A,B,C C   PINGEN:NO-SPEC を V0 に対して許可
PINVER IBM または NO-SPEC PINV3624 + ANY V1 A N T PINVER:NO-SPEC/IBM-PIN/IBM-PINO を V1 に対して許可、PINGEN/PINVER を V0/V1/V2:N に対して許可
  [CV において生成ビットがオンではない] PINV3624 + VER-ONLY   A,B,C V   PINVER:NO-SPEC/IBM-PIN/IBM-PINO を V1 に対して許可
PINGEN IBM または NO-SPEC PINV3624 + ANY   A N T PINGEN:NO-SPEC/IBM-PIN/IBM-PINO を V1 に対して許可、PINGEN/PINVER を V0/V1/V2:N に対して許可
  [CV において EPINVER ビットがオフ] PINV3624 + GEN-ONLY   A,B,C G   PINGEN:NO-SPEC/IBM-PIN/IBM-PINO を V1 に対して許可
  [CV において EPINVER ビットがオン] PINV3624 + GENVER   A,B,C C   PINGEN:NO-SPEC/IBM-PIN/IBM-PINO を V1 に対して許可
PINVER VISAPVV または NO-SPEC VISAPVV + ANY V2 A N T PINVER:NO-SPEC/VISA-PVV を V2 に対して許可、PINGEN/PINVER を V0/V1/V2:N に対して許可
  [CV において生成ビットがオンではない] VISAPVV + VER-ONLY   A,B,C V   PINVER:NO-SPEC/VISA-PVV を V2 に対して許可
PINGEN VISAPVV または NO-SPEC VISAPVV + ANY   A N T PINGEN:NO-SPEC/VISA-PVV を V2 に対して許可、PINGEN/PINVER を V0/V1/V2:N に対して許可
  [CV において EPINVER ビットがオフ] VISAPVV + PINGEN   A,B,C G   PINGEN:NO-SPEC/VISA-PVV を V2 に対して許可
  [CV において EPINVER ビットがオン] VISAPVV + PINGEN   A,B,C C   PINGEN:NO-SPEC/VISA-PVV を V2 に対して許可
注: TR-31 V0 モードと CCA「NO-SPEC」サブタイプはわずかに異なります。 V0 モードでは 3224 方式または PVV 方式の鍵が禁止されます。 一方、CCA「NO-SPEC」では、すべての方式が許可されます。

PINVER を用途:モード V*:N にエクスポートする処理と、V*:N を PINGEN にインポートする処理を同時に制御する ACP を オンにすると、PINVER 鍵を PINGEN 鍵に変更できるようになります。 これは推奨されません。 これが可能になっているのは、レガシー (TR-31 2005 ベース) の実装で PINGEN 鍵に対しても PINVER 鍵に対しても同じモード「N」が使用されていたためです。

EMV チップ/発行者マスター鍵
DKYGENKY DKYL0 + DMAC EMVACMK + ANY E0 A N T DKYGENKY:DKYL0+DMAC を E0 に対して許可
    EMVACMK + DERIVE   B,C X T
  DKYL0 + DMV EMVACMK + ANY   A N T DKYGENKY:DKYL0+DMV を E0 0x019A に対して許可
    EMVACMK + DERIVE   B,C X T
  DKYL0 + DALL EMVACMK + ANY   A N T DKYGENKY:DKYL0+DALL を E0 0x019B に対して許可
    EMVACMK + DERIVE   B,C X T
  DKYL1 + DMAC EMVACMK + ANY   A N T DKYGENKY:DKYL1+DMAC を E0 に対して許可
    EMVACMK + DERIVE   B,C X T
  DKYL1 + DMV EMVACMK + ANY   A N T DKYGENKY:DKYL1+DMV を E0 に対して許可
    EMVACMK + DERIVE   B,C X T
  DKYL1 + DALL EMVACMK + ANY   A N T DKYGENKY:DKYL1+DALL を E0 に対して許可
    EMVACMK + DERIVE   B,C X T
DKYGENKY (DKYL0 + DDATA) EMVSCMK + ANY E1 A N T DKYGENKY:DKYL0+DDATA を E1 に対して許可
    EMVSCMK + DERIVE   B,C X T
  (DKYL0 + DMPIN) EMVSCMK + ANY   A N T DKYGENKY:DKYL0+DMPIN を E1 に対して許可
    EMVSCMK + DERIVE   B,C X T
  DKYL0 + DALL EMVACMK + ANY   A N T DKYGENKY:DKYL0+DALL を E1 に対して許可
    EMVACMK + DERIVE   B,C X T
  (DKYL1 + DDATA) EMVSCMK + ANY   A N   DKYGENKY:DKYL1+DDATA を E1 に対して許可
    EMVSCMK + DERIVE   B,C X  
  (DKYL1 + DMPIN) EMVSCMK + ANY   A N   DKYGENKY:DKYL1+DMPIN を E1 に対して許可
    EMVSCMK + DERIVE   B,C X  
  DKYL1 + DALL EMVACMK + ANY   A N T DKYGENKY:DKYL1+DALL を E1 に対して許可
    EMVACMK + DERIVE   B,C X T
DKYGENKY DKYL0 + DMAC EMVSIMK + ANY E2 A N T DKYGENKY:DKYL0+DMAC を E2 に対して許可
    EMVSIMK + DERIVE   B,C X T
  DKYL0 + DALL EMVACMK + ANY   A N T DKYGENKY:DKYL0+DALL を E2 に対して許可
    EMVACMK + DERIVE   B,C X T
  DKYL1 + DMAC EMVSIMK + ANY   A N T DKYGENKY:DKYL1+DMAC を E2 に対して許可
    EMVSIMK + DERIVE   B,C X T
  DKYL1 + DALL EMVACMK + ANY   A N T DKYGENKY:DKYL1+DALL を E2 に対して許可
    EMVACMK + DERIVE   B,C X T
DATA (なし) EMVDAMK + ANY E3 A N T DATA/MAC/CIPHER/ENCIPHER を E3 に対して許可
    EMVDAMK + DERIVE   B,C X  
MAC (MACVER ではない) (なし) EMVDAMK + ANY   A N  
    EMVDAMK + MACGEN   A G  
    EMVDAMK + DERIVE   B,C X  
CIPHER (なし) EMVDAMK + ANY   A N  
    EMVDAMK + DERIVE   B,C X  
ENCIPHER   EMVDAMK + ENC-ONLY   A E  
    EMVDAMK + DERIVE   B,C X  
DKYGENKY DKYL0 +DDATA EMVDNMK + ANY E4 A N T DKYGENKY:DKYL0+DDATA を E4 に対して許可
    EMVDNMK + DERIVE   B,C X  
  DKYL0 +DALL EMVDNMK + ANY   A N T DKYGENKY:DKYL0+DALL を E4 に対して許可
    EMVDNMK + DERIVE   B,C X  
DKYGENKY DKYL0 + DEXP EMVCPMK + ANY E5 A N T DKYGENKY:DKYL0+DEXP を E5 に対して許可
    EMVCPMK + DERIVE   B,C X  
  DKYL0 + DMAC EMVCPMK + ANY   A N   DKYGENKY:DKYL0+DMAC を E5 に対して許可
    EMVCPMK + DERIVE   B,C X  
  DKYL0 +DDATA EMVCPMK + ANY   A N   DKYGENKY:DKYL0+DDATA を E5 に対して許可
    EMVCPMK + DERIVE   B,C X  
  DKYL0 +DALL EMVDNMK + ANY   A N T DKYGENKY:DKYL0+DALL を E5 に対して許可
    EMVDNMK + DERIVE   B,C X  
注: EMV チップ・カード・マスター鍵は、暗号操作を実行するためにチップ・カードによって使用されます。 場合によっては、EMV チップ・カード・マスター鍵は、操作の実行に使用される鍵を導出するためにチップ・カードによって使用されます。 CCA では、EMV チップ・カード・マスター鍵は以下のいずれかの鍵です。
  • 操作可能鍵を導出できるようにするレベル DKYL0 または DKYL1 の鍵生成鍵
  • 操作可能鍵
CCA における EMV サポートは TR-31 とは著しく異なります。 CCA 鍵タイプは TR-31 タイプに一致しません。

必須ハードウェア

下表に、各サーバー・タイプに必要な暗号化ハードウェアを示し、この呼び出し可能サービスの制約事項について説明します。

表 3. TR-31 エクスポート必須ハードウェア
サーバー 必須暗号化ハードウェア 制約事項

IBM eServer zSeries 990
IBM eServer zSeries 890

  このサービスはサポートされていません。

IBM System z9 EC
IBM System z9 BC

  このサービスはサポートされていません。

IBM System z10 EC
IBM System z10 BC

  このサービスはサポートされていません。

IBM zEnterprise 196
IBM zEnterprise 114

Crypto Express3 コプロセッサー TR-31 鍵サポートには 2011 年 9 月以降の LIC が必要です。

IBM zEnterprise EC12
IBM zEnterprise BC12

Crypto Express3 コプロセッサー

Crypto Express4 CCA コプロセッサー

 

IBM z13

Crypto Express5 CCA コプロセッサー