TR-31 インポート (CSNBT31I および CSNET31I)

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

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

形式

CALL CSNBT31I(
         return_code,
         reason_code,
         exit_data_length,
         exit_data,
         rule_array_count,
         rule_array,
         TR31_key_block_length,
         TR31_key_block,
         unwrap_kek_identifier_length,
         unwrap_kek_identifier,
         wrap_kek_identifier_length,
         wrap_kek_identifier,
         output_key_identifier_length,
         output_key_identifier,
         num_opt_blks,
         cv_source,
         protection_method)	

パラメーター

return_code
方向 タイプ
出力 整数

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

reason_code
方向 タイプ
出力 整数

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

exit_data_length
方向 タイプ
入出力 整数

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

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

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

rule_array_count
方向 タイプ
入力 整数

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

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

rule_array には、制御情報をこの呼び出し可能サービスに提供するキーワードが含まれます。 このキーワードの長さは 8 バイトです。 このキーワードは左寄せにして、右側にスペース文字を埋め込む必要があります。 下表に、この呼び出し可能サービスの rule_array キーワードを示します。 CV がオプション・ブロックとして TR-31 鍵ブロックに組み込まれている場合を除き、 以下の表に示されているいずれかの CCA 出力鍵用途サブグループに含まれるいずれかのキーワードが TR-31 入力鍵用途に基づいて必要となります。 CV がオプション・ブロックとして TR-31 鍵ブロックに組み込まれている場合、 組み込まれている CV は、TR-31 ヘッダー・データと競合しない限り出力鍵ブロックで使用されます。

用途とモードの有効な組み合わせについては、表 3 を参照してください。

表 1. TR-31 インポート規則配列制御情報のキーワード
キーワード 意味
鍵ラップ方式 (いずれかが必須)
INTERNAL 必要な output_key_identifier は、カード・マスター鍵でラップされた CCA 内部鍵トークンです。
EXTERNAL 必要な output_key_identifier は、unwrap_kek_identifier によって 表される鍵でラップされた CCA 外部鍵トークンです。
CCA 出力鍵用途サブグループ (CV がオプション・ブロックとして TR-31 鍵ブロックに組み込まれている場合を除き、 以下の表に示されているいずれかの CCA 出力鍵用途サブグループに含まれるいずれかのキーワードが TR-31 入力鍵用途に基づいて必要となります。 CV がオプション・ブロックとして TR-31 鍵ブロックに組み込まれている場合、 組み込まれている CV は、TR-31 ヘッダー・データと競合しない限り出力鍵ブロックで使用されます。)
C0 サブグループ (この TR-31 鍵用途には、いずれかが必須)
CVK-CVV これは、TR-31 CVK を CVV/CVC で使用するために CCA 鍵に変換します。 この CCA 鍵はサブタイプ CVVKEY-A を持つ MAC 鍵になります。
CVK-CSC これは、TR-31 CVK を CSC で使用するために CCA 鍵に変換します。 この CCA 鍵はサブタイプ AMEX CSC を持つ MAC 鍵になります。
K0 サブグループ (この TR-31 鍵用途には、いずれかが必須)
EXPORTER TR-31 K0-E または K0-B の用途およびモードの鍵用。 これは、TR-31 KEK を CCA ラップ鍵に変換します。 鍵は CCA EXPORTER 鍵に変換されます。 K0-B 鍵インポートでは ACP は固有であることに注意してください。
OKEYXLAT TR-31 K0-E または K0-B の用途およびモードの鍵用。 これは、TR-31 KEK を CCA ラップ鍵に変換します。 鍵は CCA OKEYXLAT 鍵に変換されます。 K0-B 鍵インポートでは ACP は固有であることに注意してください。
IMPORTER TR-31 K0-D または K0-B の用途およびモードの鍵用。 これは、TR-31 KEK を CCA アンラップ鍵に変換します。 鍵は CCA IMPORTER 鍵に変換されます。 K0-B 鍵インポートでは ACP は固有であることに注意してください。
IKEYXLAT TR-31 K0-D または K0-B の用途およびモードの鍵用。 これは、TR-31 KEK を CCA アンラップ鍵に変換します。 鍵は CCA IKEYXLAT 鍵に変換されます。 K0-B 鍵インポートでは ACP は固有であることに注意してください。
V0/V1/V2 サブグループ (これらの TR-31 鍵用途には、いずれかが必須)
PINGEN これは、TR-31 PIN 検査鍵を CCA PINGEN 鍵に変換します。
PINVER これは、TR-31 PIN 検査鍵を CCA PINVER 鍵に変換します。
E0/E2、F0/F2 サブグループ (これらの TR-31 鍵用途には、いずれかが必須)
DMAC これは、保全性を目的としたアプリケーション暗号文またはセキュア・メッセージング用の TR-31 EMV マスター鍵 (チップ・カード または発行者) を CCA DKYGENKY タイプ DMAC に変換します。
DMV これは、保全性を目的としたアプリケーション暗号文またはセキュア・メッセージング用の TR-31 EMV マスター鍵 (チップ・カード または発行者) を CCA DKYGENKY タイプ DMV に変換します。
E1、F1 サブグループ (これらの TR-31 鍵用途には、いずれかが必須)
DMPIN これは、機密性を目的としたセキュア・メッセージング用の TR-31 EMV マスター鍵 (チップ・カード または発行者) を CCA DKYGENKY タイプ DMPIN に変換します。
DDATA これは、機密性を目的としたセキュア・メッセージング用の TR-31 EMV マスター鍵 (チップ・カード または発行者) を CCA DKYGENKY タイプ DDATA に変換します。
E5 サブグループ (この TR-31 鍵用途には、いずれかが必須)
DMAC これは、カード個別設定用の TR-31 EMV マスター鍵 (発行者) を CCA DKYGENKY タイプ DMAC に変換します。
DMV これは、カード個別設定用の TR-31 EMV マスター鍵 (発行者) を CCA DKYGENKY タイプ DMV に変換します。
DEXP これは、カード個別設定用の TR-31 EMV マスター鍵 (発行者) を CCA DKYGENKY タイプ DEXP に変換します。
鍵導出レベル (CV がオプション・ブロックとして TR-31 鍵ブロックに組み込まれている場合を 除き、鍵用途 E0、E1、E2 でいずれかが必要です。 CV が TR-31 鍵ブロックに組み込まれている場合、 組み込まれている CV は、TR-31 ヘッダー・データと競合しない限り出力鍵ブロックで使用されます。)
DKYL0 これは、TR-31 EMV マスター鍵 (チップ・カードまたは発行者) を導出レベル DKYL0 で CCA DKYGENKY に変換します。
DKYL1 これは、TR-31 EMV マスター鍵 (チップ・カードまたは発行者) を導出レベル DKYL1 で CCA DKYGENKY に変換します。
鍵タイプ修飾子 (オプション)
NOOFFSET これは、V0/V1 TR-31 鍵用途値に対してのみ有効です。 これは、オフセットまたは Visa PVV 処理が要求された場合に PIN の生成や検証に関与できない鍵トークンに PINGEN 鍵または PINVER 鍵をインポートします。
鍵ラップ方式 (オプション)
注: 使用されるラップ・キーワードと、TR-31 トークンのオプション・データ・ブロックで渡される CV との間で 矛盾があると、エラーが返されます。 この方式の主な例としては、ユーザー・デフォルトまたは構成済みデフォルトで鍵ラップに対して ECB が指定されるときに ビット 56 で「拡張のみ」を示す CV があります。
USECONFG デフォルト・ラップ方式の構成設定を鍵のラップに使用することを指定します。 これはデフォルトです。
WRAP-ENH 新しい拡張ラップ方式を鍵のラップに使用することを指定します。
WRAP-ECB 元のラップ方式を使用することを指定します。
変換制御 (オプション)
ENH-ONLY このキーワードは、拡張方式でいったんラップされた鍵を元の方式でラップできないように指示する場合に指定します。 これにより、元の方式への変換が制限されます。 このキーワードを指定しない場合、元の方式への変換は許可されます。 このキーワードにより、制御ベクトル内のビット 56 がオンになります。 このキーワードは、ゼロ CV データ鍵を処理する場合は無効です。
注:
  1. TR-31 ブロックにおいて、ビット 56 がオンになっていないオプション・データ・ブロックに CV が含まれている場合、 ビット 56 は出力トークンでオンになります。 これは、このキーワードでは、ユーザーがこの動作を求められるためです。 これに対する例外として、すべて 0x00 バイトの CV の場合があります。 この場合、エラーは発生しませんが、CV はすべて 0x00 バイトのままです。
  2. 使用されるラップ・キーワードと、TR-31 トークンのオプション・データ・ブロックで渡される CV との間で 矛盾があると、エラーが返されます。 この方式の主な例としては、ユーザー・デフォルトまたは構成済みデフォルトで鍵ラップに対して ECB が指定されるときに ビット 56 で「拡張のみ」を示す CV があります。 デフォルト・ラップ方式が ECB モードであっても、拡張モードおよび ENH-ONLY 制約事項が特定の鍵トークンに必要な場合は、ENH-ONLY キーワードと WRAP-ENH キーワードを結合します。
TR31_key_block_length
方向 タイプ
入力 整数
このパラメーターは、TR31_key_block パラメーターの長さ (バイト) を指定します。 TR-31 ブロック内の長さフィールドは 4 桁の 10 進数であるため、最大許容長は 9992 バイトです。
TR31_key_block
方向 タイプ
入力 ストリング
このパラメーターには、インポート対象の TR-31 鍵ブロックが含まれます。 この鍵ブロックは、パラメーター unwrap_kek_identifier で渡される鍵によって保護されます。
unwrap_kek_identifier_length
方向 タイプ
入力 整数
このパラメーターは、unwrap_kek_identifier パラメーターの 長さ (バイト) を指定します。 現在、unwrap_kek_identifier パラメーターに対してサポートされているのは CCA 内部鍵トークンのみであるため、 このパラメーターの値は 64 でなければなりません。
unwrap_kek_identifier
方向 タイプ
入出力 ストリング
このパラメーターには、TR31_key_block パラメーターで渡される インポート対象鍵をアンラップして保全性を検査するために使用される鍵のラベルまたは鍵トークンが含まれます。 この鍵は KEK IMPORTER/IKEYXLAT タイプの CCA 内部トークンでなければなりません。 古いマスター鍵でラップされた鍵トークンが渡されると、その鍵トークンは現行マスター鍵でラップされるように出力で更新されます。
注: 「E」エクスポート可能性を持っているか、または持つことになる TR-31 バージョン「B」/「C」鍵ブロックを ラップ/ラップ解除するために、ECB モードでラップされた DES 鍵 (CCA レガシー・ラップ・モード) は使用できません。 これは、ECB モードが ANSI X9.24 Part 1 に準拠していないためです。
wrap_kek_identifier_length
方向 タイプ
入力 整数
このパラメーターは、wrap_kek_identifier パラメーターの 長さ (バイト) を指定します。 出力 CCA トークンをラップするために unwrap_kek_identifier も使用する場合は、このパラメーターに対して 0 を指定します。 それ以外の場合、このパラメーターは 64 でなければなりません。
wrap_kek_identifier
方向 タイプ
入出力 ストリング
wrap_kek_identifier_length が 0 の場合、 このパラメーターは無視されて、出力 CCA トークンをラップするために unwrap_kek_identifier も使用されます。 それ以外の場合、このパラメーターには、出力 CCA トークンをラップするために KEK で使用されるラベルまたは鍵トークンが含まれます。 これは KEK EXPORTER/OKEYXLAT タイプの CCA 内部トークンでなければならず、unwrap_kek_identifier と同じ非暗号化鍵が必要です。 古いマスター鍵でラップされた鍵トークンが渡されると、その鍵トークンは現行マスター鍵でラップされるように出力で更新されます。
注: 「E」エクスポート可能性を持っているか、または持つことになる TR-31 バージョン「B」/「C」鍵ブロックを ラップ/ラップ解除するために、ECB モードでラップされた DES 鍵 (CCA レガシー・ラップ・モード) は使用できません。 これは、ECB モードが ANSI X9.24 Part 1 に準拠していないためです。
output_key_identifier_length
方向 タイプ
入出力 整数
このパラメーターは、output_key_identifier パラメーターの 長さ (バイト) を指定します。 入力では、これは、output_key_identifier パラメーターで表されるバッファーの長さを指定し、 その長さは 64 バイト以上でなければなりません。 出力では、output_key_identifier パラメーターで返されるトークンの長さが含まれます。
output_key_identifier
方向 タイプ
出力 ストリング
このパラメーターには、インポートされた鍵を受け取る予定の 鍵トークンが含まれています。 出力トークンは、TR-31 鍵ブロックで受け取られた鍵を含む CCA 内部/外部鍵トークンになります。
num_opt_blocks
方向 タイプ
出力 整数
このパラメーターには、TR-31 鍵ブロックに存在するオプション・ブロックの数が 含まれます。
cv_source
方向 タイプ
出力 整数
このパラメーターには、出力鍵トークンにおける 制御ベクトルがどのように作成されたのかに関する情報が含まれます。 以下の 3 つの値のいずれかが含まれる可能性があります。
X'00000000'
オプション・ブロックに CV が存在せず、出力 CV は、入力パラメーターに基づいて、 および TR-31 鍵ブロック・ヘッダー内の属性に基づいて呼び出し可能サービスによって作成されました。
X'00000001'
CV は TR-31 鍵ブロック内のオプション・ブロックから取得され、鍵用途および用途モードも TR-31 ヘッダーに指定されました。 この呼び出し可能サービスでは、ヘッダー値と CV との互換性が検証され、その後でその CV が出力鍵トークンで使用されました。
X'00000002'
CV は TR-31 鍵ブロック内のオプション・ブロックから取得され、TR-31 ヘッダー内の鍵用途および用途モードには、 組み込まれた CV から鍵用途およびモードを取得する必要があることを示す専用値が保持されました。 TR-31 トークンからの CV は出力鍵トークン用の CV として使用されました。
これら以外の値はすべて、将来の使用のために予約済みであり、現在は無効です。
protection_method
方向 タイプ
出力 整数
このパラメーターには、入力 TR-31 鍵ブロックを保護するために使用された方式に関する 情報が含まれます。 以下のいずれかの値が含まれる可能性があります。
X'00000000'
TR-31 鍵ブロックは、鍵ブロック・バージョン ID 値「A」(0x41) によって識別されるバリアント方式を使用して保護されました。
X'00000001'
TR-31 鍵ブロックは、鍵ブロック・バージョン ID 値「B」(0x42) によって識別される導出鍵方式を使用して保護されました。
X'00000002'
TR-31 鍵ブロックは、鍵ブロック・バージョン ID 値「C」(0x43) によって識別されるバリアント方式を使用して保護されました。 この方式は機能的には「A」と同じですが、整合性を維持するために、ここでは「C」という異なる値が返されます。
これら以外の値はすべて、将来の使用のために予約済みであり、現在は無効です。

制約事項

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

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

使用上の注意

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

TR-31 鍵ブロックが鍵コンポーネントとしてマークされている場合、 結果の CCA 鍵では制御ベクトル内の鍵パーツ・ビット (ビット 44) が 1 に設定されます。

インポートされた CCA トークンのエクスポート可能性属性は、以下の表で説明されているように TR-31 鍵ブロック内の属性に基づいて設定されます。

表 2. インポートされた CCA トークンのエクスポート属性
TR-31 エクスポート属性値 インポート時の CCA アクション
エクスポート不能 (「N」) CCA で鍵が内部 CCA 鍵トークンにインポートされます。 CV ビット 17 (エクスポート) はゼロ (鍵はエクスポートできないことを示す) に設定されます。 CV ビット 57 (TR-31 エクスポート) は 1 (鍵は TR-31 にエクスポートできないことを示す) に設定されます。
トラステッド鍵でエクスポート可能 (「E」) TR-31 トークンが古い ECB フォーマットで CCA KEK によりラップされている場合、その KEK はトラステッド鍵ではないため、 要求はリジェクトされます。 CCA KEK がより新しい X9.24 準拠の CCA 鍵ブロックにある場合は、 任意の鍵でエクスポート可能になっている鍵について以下で説明されているまったく同じ方法で TR-31 鍵は CCA にインポートされます。
任意の鍵でエクスポート可能 (「S」) CCA で鍵が内部 CCA 鍵トークンにインポートされます。 CV ビット 17 (エクスポート) は 1 (鍵はエクスポート可能であることを示す) に設定されます。 CV ビット 57 (TR-31 エクスポート) はゼロ (鍵は TR-31 にもエクスポートできることを示す) に設定されます。

必要に応じて、エクスポート禁止呼び出し可能サービス、エクスポート禁止拡張呼び出し可能サービス、または鍵属性の制限呼び出し可能サービスを使用して、 インポート後に CCA トークンのエクスポート属性を変更します。

TR-31 鍵ブロックに、CCA CV「00007D00030000000000000000000000」(単一長の鍵の 場合) または CCA CV「00007D0003410000000000000000000000007D00032100000000000000000000」(倍長の鍵の場合) を 持つオプション・ブロックが含まれる場合、結果の CCA トークンはゼロ CV DATA トークンになります。

TR-31 鍵ブロックはヘッダー内のオプション・データ・フィールドに CCA 制御ベクトルを含むことができます。 CV がある場合、このサービスでは、その CV が鍵に対して有効であることを確認するために TR-31 鍵属性と互換性についてその CV が検査され、 問題がなければ、その CV が、そのサービスで出力される CCA 鍵トークンにおいて使用されます。 CV が受信される場合、インポート操作は、特定の鍵タイプのインポートを制御するいずれの ACP の制御も受けません。 CV は、ブロック作成時に使用されたオプションに応じて、2 つの異なる方法で TR-31 鍵ブロックに存在することがあります。
  • TR-31 エクスポート呼び出し可能サービスがオプション INCL-CV で呼び出された場合は、TR-31 鍵ブロックに制御ベクトルが 組み込まれ、TR-31 鍵用途フィールドおよび用途モード・フィールドには、TR-31 標準に定義されているセットからの属性が含まれます。 TR-31 インポート呼び出し可能サービスでは、ブロックに含まれている CV とその TR-31 属性に互換性があることが検査されます。 また、TR-31 ブロックに含まれている CV と競合する規則配列キーワードが存在しないことが検証されます。
  • TR-31 エクスポート呼び出し可能サービスがオプション ATTR-CV で呼び出された場合は、TR-31 鍵ブロックに制御ベクトルが 組み込まれ、TR-31 鍵用途フィールドおよび用途モード・フィールドには、組み込まれた制御ベクトルに用途とモードの情報が含まれることを示す 専有値 (それぞれ、ASCII の「10」と「1」) が含まれます。 この場合、TR-31 インポート・サービスでは、組み込まれた CV が、そのサービスで作成される CCA 鍵トークンの制御ベクトルとして使用されます。 また、渡された規則配列キーワードと CV が矛盾していないことが検証されます。

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

アクセス制御点

ドメイン役割において、このサービスの一般的な機能を制御するアクセス制御点には、以下のものがあります。
  • TR31 Import - Permit version A TR-31 key blocks
  • TR31 Import - Permit version B TR-31 key blocks
  • TR31 Import - Permit version C TR-31 key blocks

WRAP-ECB キーワードまたは WRAP-ENH キーワードが指定されているときに、 デフォルト鍵ラップ方式の設定がキーワードに適合しない場合は、「TR31 Import - Permit override of default wrapping method」アクセス制御点を 有効にする必要があります。

「Disallow 24-byte DATA wrapped with 16-byte Key」アクセス制御点が有効になっているときに、 ソース鍵が 3 倍長の DATA 鍵であり DES マスター鍵が 16 バイトの鍵であると、このサービスは失敗します。

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

注: TR-31 鍵ブロックを CCA 鍵にインポートするには、以下の変換固有の必須 ACP に加え、 適切な鍵ブロック・バージョンの ACP も有効にする必要があります。
表 3. TR-31 から CCA への有効なインポート変換、および必須アクセス制御点 (ACP)
インポート T31 用途 T31 鍵ブロック・バージョン T31 モード T31 アルゴリズム キーワード 出力 CCA タイプ (CSNBCVG キーワード) 出力 CCA 用途 (CSNBCVG キーワード) 必須 TR31 インポート ACP
DUKPT ベース導出鍵
B0 A N T (なし) KEYGENKY UKPT (なし)
B0 B,C X T (なし) KEYGENKY UKPT
B1 B,C (なし) (なし) (なし) (なし) (なし)
注: PIN パッドなどの個別の装置には、DUKPT 初期鍵の導出元の基本鍵があります。
カード検証鍵
C0 A,B,C G, C D CVK-CSC MAC AMEX-CSC C0 を MAC/MACVER:AMEX-CSC に対して許可
  A,B,C   T CVK-CSC MAC AMEX-CSC
  A,B,C V D CVK-CSC MACVER AMEX-CSC
  A,B,C   T CVK-CSC MACVER AMEX-CSC
  A,B,C G, C T CVK-CVV MAC CVVKEY-A C0 を MAC/MACVER:CVVKEY-A に対して許可
  A,B,C V T CVK-CVV MACVER CVVKEY-A

カード検証鍵は、 アルゴリズム CVV、CVC、CVC2 および CVV2 を使用してカード検証コードを (指定された値に対して) 計算したり検証したりするための鍵です。

注:
  1. 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. 用途 C0 の TR-31 鍵は CCA 鍵タイプ「ANY-MAC」にインポートできませんが、ANY-MAC 鍵はカードを検証するために使用できます。
  5. TR 31 用途「C0」からの変換はインポート verb 上では規則配列キーワードによって制御されるため、CCA CVV 鍵を CSC 鍵に変換したり、 その逆の変換を行ったりすることができます。 このことは ACP を使用することで制限できますが、両方の変換タイプが必要な場合、ACP を使用不可にすることはできず、 制御はアプリケーション自体の開発、実装、および実行に左右されます。

    CCA には「MAC GEN ONLY」鍵タイプがないため、TR-31 用途 G は完全な MAC 鍵に変換されます。

データ暗号鍵
D0 A,B,C E D, T (なし) ENCIPHER (なし) (なし)
  A,B,C D D, T (なし) DECIPHER (なし)
  A,B,C B D, T (なし) CIPHER (なし)
注:
  1. 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 タイプへの変換は行われません。
  2. TR-31 鍵の制御の目的は解釈されず、CCA 制御に直接変換が行われるだけなので、インポートを制御する ACP は存在しません。
鍵暗号鍵
K0 A,B,C E T OKEYXLAT OKEYXLAT (なし) K0:E を EXPORTER/OKEYXLAT に対して許可
  A,B,C     EXPORTER EXPORTER (なし)
  A,B,C D T IKEYXLAT IKEYXLAT (なし) K0:D を IMPORTER/IKEYXLAT に対して許可
  A,B,C     IMPORTER IMPORTER (なし)
  A,B,C B T OKEYXLAT OKEYXLAT (なし) K0:B を EXPORTER/OKEYXLAT に対して許可
  A,B,C     EXPORTER EXPORTER (なし)
  A,B,C     IKEYXLAT IKEYXLAT (なし) K0:B を IMPORTER/IKEYXLAT に対して許可
  A,B,C     IMPORTER IMPORTER (なし)
K1 B,C E T OKEYXLAT OKEYXLAT (なし) K1:E を EXPORTER/OKEYXLAT に対して許可
  B,C     EXPORTER EXPORTER (なし)
  B,C D T IKEYXLAT IKEYXLAT (なし) K1:D を IMPORTER/IKEYXLAT に対して許可
  B,C     IMPORTER IMPORTER (なし)
  B,C B T OKEYXLAT OKEYXLAT (なし) K1:B を EXPORTER/OKEYXLAT に対して許可
  B,C     EXPORTER EXPORTER (なし)
  B,C     IKEYXLAT IKEYXLAT (なし) K1:B を IMPORTER/IKEYXLAT に対して許可
  B,C     IMPORTER IMPORTER (なし)
注:
  1. CCA 内では「K1」鍵は「K0」鍵と区別されません。 「K1」鍵は、TR-31 鍵ブロックの「B」または「C」バージョン・ラップで使用される鍵を導出するための特殊な KEK です。 現在、CCA ではターゲットのプロトコル同士は区別されないため、差を表す良い方法はありません。 また、現在、多くのラップ・メカニズムが導出手順や鍵変種作成手順に関連することも注意してください。
  2. CCA EXPORTER 鍵を OKEYXLAT に変換したり、エクスポート/再インポートにより IMPORTER を IKEYXLAT に変換したりすることが可能です。 このことは ACP を使用することで制限できますが、両方の変換が必要な場合、ACP を使用不可にすることはできず、 制御はアプリケーション自体の開発、実装、および実行に左右されます。
  3. TR-31 トークン・タイプへのエクスポート/インポートによって CCA EXPORTER を CCA IMPORTER に 変換することを不可能にするために、CCA 鍵を TR-31 タイプ K0-B にエクスポートすることはできません。 TR-31 鍵ブロックにオプション・ブロックとして CV が組み込まれていない場合は、出力トークンを作成するためにデフォルト CV が使用されます。 IMPORTER/EXPORTER 鍵の場合、これは KEK で鍵生成ビットがオンになることも意味します。
MAC 鍵
M0 A,B,C G,C T (なし) MAC ANY-MAC M0/M1/M3 を MAC/MACVER:ANY-MAC に対して許可
  A,B,C V T (なし) MACVER ANY-MAC
M1 A,B,C G,C D, T (なし) MAC ANY-MAC
  A,B,C V D, T (なし) MACVER ANY-MAC
M3 A,B,C G,C D, T (なし) MAC ANY-MAC
  A,B,C V D, T (なし) MACVER ANY-MAC
注:
  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 鍵
P0 A,B,C E T (なし) OPINENC (なし) P0:E を OPINENC に対して許可
  A,B,C D   (なし) IPINENC (なし) P0:D を IPINENC に対して許可
  A,B,C B - サポート対象外   (なし) (なし) (なし) (なし)
V0 A N T PINGEN [NOOFFSET] PINGEN NO-SPEC [+NOOFFSET] V0 を PINGEN:NO-SPEC に対して許可、V0/V1/V2:N を PINGEN/PINVER に対して許可
  A,B,C G,C   [NOOFFSET] PINGEN NO-SPEC [+NOOFFSET] V0 を PINGEN:NO-SPEC に対して許可
  A N   PINVER [NOOFFSET] PINVER NO-SPEC [+NOOFFSET] V0 を PINVER:NO-SPEC に対して許可、V0/V1/V2:N を PINGEN/PINVER に対して許可
  A,B,C V   [NOOFFSET] PINVER NO-SPEC [+NOOFFSET] V0 を PINVER:NO-SPEC に対して許可
V1 A N T PINGEN [NOOFFSET] PINGEN IBM-PIN /IBM-PINO V1 を PINGEN:IBM-PIN/IBM-PINO に対して許可、V0/V1/V2:N を PINGEN/PINVER に対して許可
  A,B,C G,C   [NOOFFSET] PINGEN IBM-PIN /IBM-PINO V1 を PINGEN:IBM-PIN/IBM-PINO に対して許可
  A N   PINVER [NOOFFSET] PINVER IBM-PIN /IBM-PINO V1 を PINVER:IBM-PIN/IBM-PINO に対して許可、V0/V1/V2:N を PINGEN/PINVER に対して許可
  A,B,C V   [NOOFFSET] PINVER IBM-PIN /IBM-PINO V1 を PINVER:IBM-PIN/IBM-PINO に対して許可
V2 A N T PINGEN PINGEN VISA-PVV V2 を PINGEN:VISA-PVV に対して許可、V0/V1/V2:N を PINGEN/PINVER に対して許可
  A,B,C G,C     PINGEN VISA-PVV V2 を PINGEN:VISA-PVV に対して許可
  A N   PINVER PINVER VISA-PVV V2 を PINVER:VISA-PVV に対して許可、V0/V1/V2:N を PINGEN/PINVER に対して許可
  A,B,C V     PINVER VISA-PVV V2 を PINVER:VISA-PVV に対して許可
注:
  1. NOOFFSET キーワードは、CV で NOOFFSET ビット (ビット 37) がオンになるように結果の CCA 鍵を指定するために渡すことができます。 ただし、CV が組み込まれていて NOOFFSET ビットが設定されている場合、これは自動的に行われます。
  2. NOOFFSET キーワードは、VISA-PVV アルゴリズムでその概念がサポートされていないため V2 用途に対してサポートされません。
  3. TR-31 V0 モードと CCA「NO-SPEC」サブタイプはわずかに異なります。 V0 モードでは 3224 方式または PVV 方式の鍵が禁止されます。 一方、CCA「NO-SPEC」では、すべての方式が許可されます。
  4. PINVER を用途:モード V*:N にエクスポートする処理と、V*:N を PINGEN にインポートする処理を同時に制御する ACP を オンにすると、PINVER 鍵を PINGEN 鍵に変更できるようになります。 これは推奨されません。 これが可能になっているのは、レガシー (TR-31 2005 ベース) の実装で PINGEN 鍵に対しても PINVER 鍵に対しても同じモード「N」が使用されていたためです。
EMV チップ/発行者マスター鍵
E0 A N T DKYL0 +DMAC DKYGENKY DKYL0 +DMAC E0 を DKYGENKY:DKYL0+DMAC に対して許可
  B,C X   DKYL0 +DMAC   DKYL0 +DMAC
  A N   DKYL0 +DMV   DKYL0 +DMV E0 を DKYGENKY:DKYL0+DMV に対して許可
  B,C X   DKYL0 +DMV   DKYL0 +DMV
  A N   DKYL1 +DMAC   DKYL1 +DMAC E0 を DKYGENKY:DKYL1+DMAC に対して許可
  B,C X   DKYL1 +DMAC   DKYL1 +DMAC
  A N   DKYL1 +DMV   DKYL1 +DMV E0 を DKYGENKY:DKYL1+DMV に対して許可
  B,C X   DKYL1 +DMV   DKYL1 +DMV
E1 A N, E, D, B T DKYL0 +DMPIN DKYGENKY DKYL0 +DMPIN E1 を DKYGENKY:DKYL0+DMPIN に対して許可
  B,C X   DKYL0 +DMPIN   DKYL0 +DMPIN
  A N, E, D, B   DKYL0 +DDATA   DKYL0 +DDATA E1 を DKYGENKY:DKYL0+DDATA に対して許可
  B,C X   DKYL0 +DDATA   DKYL0 +DDATA
  A N, E, D, B   DKYL1 +DMPIN   DKYL1 +DMPIN E1 を DKYGENKY:DKYL1+DMPIN に対して許可
  B,C X   DKYL1 +DMPIN   DKYL1 +DMPIN
  A N, E, D, B   DKYL1 +DDATA   DKYL1 +DDATA E1 を DKYGENKY:DKYL1+DDATA に対して許可
  B,C X   DKYL1 +DDATA   DKYL1 +DDATA
E2 A N T DKYL0 +DMAC DKYGENKY DKYL0 +DMAC E2 を DKYGENKY:DKYL0+DMAC に対して許可
  B,C X   DKYL0 +DMAC   DKYL0 +DMAC
  A N   DKYL1 +DMAC   DKYL1 +DMAC E2 を DKYGENKY:DKYL1+DMAC に対して許可
  B,C X   DKYL1 +DMAC   DKYL1 +DMAC
E3 A N, E, D, B, G T (なし) ENCIPHER (なし) E3 を ENCIPHER に対して許可
  B,C X   (なし)   (なし)
E4 A N, B T (なし) DKYGENKY DKYL0 +DDATA E4 を DKYGENKY:DKYL0+DDATA に対して許可
  B,C X   (なし)   DKYL0 +DDATA
E5 A G, C, V, E, D, B, N T DKYL0 +DMAC DKYGENKY DKYL0 +DMAC E5 を DKYGENKY:DKYL0+DMAC に対して許可
  B,C X   DKYL0 +DMAC   DKYL0 +DMAC
  A G, C, V, E, D, B, N   DKYL0 +DDATA   DKYL0 +DDATA E5 を DKYGENKY:DKYL0+DDATA に対して許可
  B,C X   DKYL0 +DDATA   DKYL0 +DDATA
  A G, C, V, E, D, B, N   DKYL0 +DEXP   DKYL0 +DEXP E5 を DKYGENKY:DKYL0+DEXP に対して許可
  B,C X   DKYL0 +DEXP   DKYL0 +DEXP
注: EMV チップ・カード・マスター鍵は、暗号操作を実行するためにチップ・カードによって使用されます。 場合によっては、EMV チップ・カード・マスター鍵は、操作の実行に使用される鍵を導出するためにチップ・カードによって使用されます。 CCA では、EMV チップ・カード・マスター鍵は以下のいずれかの鍵です。
  • 操作可能鍵を導出できるようにするレベル DKYL0 または DKYL1 の鍵生成鍵
  • 操作可能鍵
CCA における EMV サポートは著しく異なります。 CCA 鍵タイプは TR-31 タイプに一致しません。

必須ハードウェア

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

表 4. 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 コプロセッサー