FPE 変換 (CSNBFPET および CSNEFPET)

FPE 変換呼び出し可能サービスは、支払いデータを、ある鍵による暗号化から、フォーマットが異なると思われる別の鍵による暗号化に変換する場合に使用します。 非暗号化テキストの支払いデータを環境内に置くことは避けなければなりません。 変換は、標準暗号化オプションを使用して暗号化されたデータ、または VFPE オプションを使用して暗号化されたデータに対して実行できます。 ただし、ターゲット変換では、倍長静的 TDES 鍵および標準暗号化オプションが使用されます。

このサービスを使用すると、1 次アカウント番号 (PAN)、カード名義人氏名、トラック 1 任意データ、またはトラック 2 任意データのいずれかまたはすべてのフィールドを変換することができます。

以下の変換オプションがサポートされています。
  1. CBC モードの TDES 鍵および DUKPT 鍵による変換標準オプション。
  2. VFPE モードの TDES 鍵および DUKPT 鍵による変換 VFPE オプション。
  3. CBC モードの TDES 鍵および静的 TDES 鍵による変換標準オプション。
このサービスを使用するには、以下を指定する必要があります。
  • 処理方式。 Visa Data Secure Platform (Visa DSP) に限定されています。
  • 鍵管理方式。 STATIC または DUKPT のいずれか。
  • アルゴリズム。 TDES に限定されています。
  • モード。 インバウンド・データの場合、CBC または Visa フォーマット保持暗号化 (Format Preserving Encryption、VFPE) のいずれか。
  • 変換する暗号化テキスト。
  • 規則配列キーワードを使用して変換する各フィールドの文字セット。
  • DUKPT 鍵管理を使用する場合は基本導出鍵および鍵シリアル番号、または非暗号化テキストをリカバリーするために標準鍵管理を使用する場合は倍長 TDES 鍵。
  • データの再暗号化に使用する倍長静的 TDES 鍵。
  • VFPE が指定された場合、チェック・ディジット準拠標識 (オプション)。
サービスは、変換されたフィールドを返します。 また、オプションで、DUKPT 鍵管理が選択され、PINKEY 規則が指定されている場合は DUKPT PIN 暗号鍵を返します。

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

形式

CALL CSNBFPET(
             return_code,
             reason_code,
             exit_data_length,
             exit_data,
             rule_array_count,
             rule_array,
             input_PAN_length,
             input_PAN,
             input_CH_name_length,
             input_CH_name,
             input_dtrack1_data_length,
             input_dtrack1_data,
             input_dtrack2_data_length,
             input_dtrack2_data,
             input_key_identifier_length,
             input_key_identifier,
             output_key_identifier_length,
             output_key_identifier,
             derivation_data_length,
             derivation_data,
             output_PAN_length,
             output_PAN,
             output_CH_name_length,
             output_CH_name,
             output_dtrack1_data_length,
             output_dtrack1_data,
             output_dtrack2_data_length,
             output_dtrack2_data,
             DUKPT_PIN_key_identifier_length,
             DUKPT_PIN_key_identifier,
             reserved1_length,
             reserved1,
             reserved2_length,
             reserved2)

パラメーター

return_code
方向 タイプ
出力 整数

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

reason_code
方向 タイプ
出力 整数

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

exit_data_length
方向 タイプ
入出力 整数

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

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

インストール・システム出口に渡されるデータ。

rule_array_count
方向 タイプ
入力 整数

rule_array パラメーターで指定するキーワードの数。 最小値は 4、最大値は 10 です。

rule_array
方向 タイプ
入力 ストリング
制御情報を呼び出し可能サービスに提供するキーワード。 キーワードは、連続するストレージ内になければならず、各キーワードはその 8 バイト位置で左寄せされ、右側にブランクが埋め込まれている必要があります。
注: 少なくとも 1 つの文字セット・キーワードが必要です。
表 1. FPE 変換の規則配列キーワード
キーワード 意味
処理方式 (必須)
VMDS Visa DSP 方式 (正式には Visa Merchant Data Secure 方式と呼ばれます) を処理に使用することを指定します。
鍵管理方式 (いずれかが必須)
STATIC 倍長 (2-key) Triple-DES 対称鍵の使用を指定します。 これは非 DUKPT 鍵です。
DUKPT DUKPT プロセスによって生成されたトランザクション固有の汎用データ暗号鍵を、データ暗号化のためのサービスの時点で使用することを指定します。 VFPE モードが指定されている場合は必須です。 そうでない場合はオプションです。
アルゴリズム (必須)
TDES CBC モード Triple-DES 暗号化の使用を指定します。
モード (いずれかが必須)
CBC CBC モードの使用を指定します。 これは標準暗号化オプションのモードです。
VFPE Visa フォーマット保持暗号化の使用を指定します。
PAN 入出力文字セット (clear_PAN_length 変数が 0 より大きい場合はいずれかが必須、そうでない場合は使用不可)
PAN8BITA PAN データ文字セットが、バイナリー形式で表される ASCII であることを指定します。 VFPE モードでのみ有効です。
PAN4BITX PAN データ文字セットが 4 ビット 16 進であることを指定します。 バイトあたり 2 桁です。 VFPE モードでのみ有効です。
PAN-EBLK PAN データが CBC 暗号化ブロック内にあることを指定します。 CBC モードでのみ有効です。
カード名義人氏名入出力文字セット (clear_CH_name_length 変数が 0 より大きい場合は必須)
CN8BITA カード名義人氏名文字セットが、バイナリー形式で表される ASCII であることを指定します。 1 バイトあたり 1 文字です。 有効な文字については、表 3 を参照してください。 VFPE モードでのみ有効です。
CN-EBLK カード名義人氏名データが CBC 暗号化ブロック内にあることを指定します。
Track_1 入力文字セット (clear_dtrack1_data_length 変数が 0 より大きい場合は必須、そうでない場合は使用不可)
TK18BITA トラック 1 任意データ文字セットが、バイナリー形式で表される ASCII であることを指定します。 1 バイトあたり 1 文字です。 有効な文字については、表 3 を参照してください。
TK1-EBLK トラック 1 任意データが CBC 暗号化ブロック内にあることを指定します。 CBC モードでのみ有効です。
Track_2 入出力文字セット (clear_dtrack2_data_length 変数が 0 より大きい場合は必須、そうでない場合は使用不可)
TK28BITA トラック 2 任意データ文字セットが、バイナリー形式で表される ASCII であることを指定します。 VFPE モードでのみ有効です。
TK2-EBLK トラック 2 任意データが CBC 暗号化ブロック内にあることを指定します。 CBC モードでのみ有効です。
PIN 暗号鍵出力選択 (DUKPT が指定されている場合はオプションで 1 つのみ指定可能、そうでない場合は無効)
NOPINKEY DUKPT PIN 暗号鍵を返しません。 これがデフォルトです。
PINKEY DUKPT PIN 暗号鍵を返します。
PAN チェック・ディジット準拠性 (モード VFPE および PAN 入力文字セット・キーワードがある場合はいずれかが必須、そうでない場合は使用不可)
CMPCKDGT PAN の最終桁には ISO/IEC 7812-1 による準拠チェック・ディジットが含まれます。
NONCKDGT PAN の最終桁には ISO/IEC 7812-1 による準拠チェック・ディジットが含まれません。
input_PAN_length
方向 タイプ
入力 整数

モードが CBC の場合は input_PAN パラメーターでデータのバイト数を指定し、モードが VFPE の場合は PAN の桁数を指定します。 変換用の PAN データが提供されなかった場合、値は 0 です。 その他の場合、この値は VFPE では 15 から 19 です。 CBC モードが選択されている場合、この値は 16 です。

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

変換する暗号化 1 次アカウント番号 (PAN)。 VFPE モードの場合、PAN に奇数個の 4 ビット数字が含まれていると、データは PAN 変数内で左寄せされ、右端の 4 ビットは無視されます。

input_CH_name_length
方向 タイプ
入力 整数

input_CH_name パラメーターの長さ (バイト) を指定します。 変換するカード名義人氏名データがない場合、この値は 0 でなければなりません。 その他の場合、この値は VFPE では 2 から 32 です。 CBC モードの場合、入力値は 16、24、32、または 40 です。

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

変換する暗号化カード名義人氏名。 表 3 にある文字のみが有効です。

input_dtrack1_data_length
方向 タイプ
入力 整数

input_dtrack1_data パラメーターの長さ (バイト) を指定します。 変換するトラック 1 任意データがない場合、この値は 0 でなければなりません。 その他の場合、この値は VFPE では 1 から 56 です。 CBC モードの場合、入力値は 16、24、32、40、48、56、または 64 です。

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

変換する暗号化トラック 1 データ。 表 3 にある文字のみが有効です。

input_dtrack2_data_length
方向 タイプ
入力 整数

input_dtrack2_data パラメーターの長さ (バイト) を指定します。 変換するトラック 2 任意データがない場合、この値は 0 でなければなりません。 その他の場合、この値は VFPE では 1 から 19 です。 CBC モードの場合、入力値は 8 または 16 です。

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

変換する暗号化トラック 2 データ。

input_key_identifier_length
方向 タイプ
入力 整数

input_key_identifier パラメーターの長さ (バイト) を指定します。 固定長 DES トークンのみが鍵 ID としてサポートされるため、この値は 64 でなければなりません。

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

入力カード・データの暗号化解除 (鍵管理 STATIC) または DUKPT_PIN_key_identifer の導出 (鍵管理 DUKPT) に使用する鍵の ID。 この鍵 ID は、操作可能トークンであるか、または鍵ストレージ内の操作可能トークンの鍵ラベルです。

鍵管理 DUKPT の場合、鍵タイプは KEYGENKY でなければなりません。 また、B'1' (UKPT) に相当するビット 18 を持つ制御ベクトルが含まれていることも必要です。 基本導出鍵は、ANS X9.24 パート 1 で定義された DUKPT アルゴリズムを使用して操作可能鍵が導出される元となる鍵です。 鍵管理 STATIC (Visa DSP 仕様でのゾーン暗号鍵) の場合、鍵タイプは CIPHER または DECIPHER のいずれかでなければなりません。 実動用の場合、鍵の左半分と右半分を同一にしないことをお勧めします。
注: データ鍵はサポートされていません。

指定されたトークンが旧マスター鍵で暗号化されていた場合、このトークンは現行マスター鍵で暗号化されて返されます。

output_key_identifier_length
方向 タイプ
入力 整数

output_key_identifier パラメーターの長さ (バイト) を指定します。 固定長 DES トークンのみが鍵 ID としてサポートされるため、この値は 64 でなければなりません。

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

出力カード・データの暗号化解除に使用する鍵の ID。 この鍵 ID は、操作可能トークンであるか、または鍵ストレージ内の操作可能トークンの鍵ラベルです。

鍵タイプは CIPHER または ENCIPHER のいずれかでなければなりません。 実動用の場合、鍵の左半分と右半分を同一にしないことをお勧めします。
注: データ鍵はサポートされていません。

指定されたトークンが旧マスター鍵で暗号化されていた場合、このトークンは現行マスター鍵で暗号化されて返されます。

derivation_data_length
方向 タイプ
入力 整数

derivation_data パラメーターの長さ (バイト) を指定します。 DUKPT 鍵が key_identifier パラメーターで指定されている場合、値は 10 でなければなりません。 データ暗号鍵が key_identifier パラメーターで指定されている場合、この値はゼロに設定しなければなりません。

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

DUKPT 導出プロセスへの入力として使用する、80 ビット (10 バイト) の導出データが含まれます。 導出データには、現行鍵シリアル番号 (CKSN) が含まれます。 この番号は、21 ビットの現行暗号化カウンター値に連結された 59 ビットの初期鍵シリアル番号値で構成され、新規トランザクションごとにデバイスによって加増されます。 このフィールドはバイナリー形式です。

output_PAN_length
方向 タイプ
入出力 整数

output_PAN パラメーター内のデータのバイト数を指定します。 この値は、出力時には 0 または 16 です。

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

PIN が関連付けられた変換済み 1 次アカウント番号が返されるフィールド。 チェック・ディジットを含むアカウント番号全体が変換されます。 このパラメーターのデータはバイナリー形式で TDES 暗号化データとして返されます。 このフィールドでは、16 バイト出力は左寄せされます。

output_CH_name_length
方向 タイプ
入出力 整数

output_CH_name パラメーターの長さ (バイト) を指定します。 この出力値は、出力時には 0 または 16、24、32、または 40 バイトです。 この変数は、入力時には大きくすることができます。 ただし、出力時には、このフィールドはカードから返される実際のバイト数を示すように更新されます。

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

変換されたカード名義人の氏名が返されるフィールド。 このパラメーターのデータはバイナリー形式で TDES 暗号化データとして返されます。

output_dtrack1_data_length
方向 タイプ
入出力 整数

output_dtrack1_data パラメーターの長さ (バイト) を指定します。 出力値は 0、または 16 バイト、24 バイト、32 バイト、40 バイト、48 バイト、56 バイト、64 バイトのいずれかです。 この値は、入力時には大きくすることができます。 ただし、出力時には、このフィールドはサービスから返される実際のバイト数を示すように更新されます。

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

変換された任意トラック 1 データが返されるフィールド。 これは、磁気ストライプ・カードのトラック 1 からの任意データです。 このパラメーターのデータはバイナリー形式で TDES 暗号化データとして返されます。

output_dtrack2_data_length
方向 タイプ
入出力 整数

output_dtrack2_data パラメーターの長さ (バイト) を指定します。 出力値は 0、8、16 のいずれかです。 この値は、入力時には大きくすることができます。 ただし、出力時には、このフィールドはサービスから返される実際のバイト数を示すように更新されます。

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

変換された任意トラック 2 データが返されるフィールド。 これは、磁気ストライプ・カードのトラック 2 からの任意データです。 このパラメーターのデータはバイナリー形式で TDES 暗号化データとして返されます。

DUKPT_PIN_key_identifier_length
方向 タイプ
入出力 整数

DUKPT_PIN_key_identifier パラメーターの長さ (バイト) を指定します。 PINKEY 規則配列キーワードが指定されている場合は、この値を 64 に設定します。 それ以外の場合は、この値を 0 に設定します。 出力の場合、この変数は、DUKPT_PIN_key_identifier 変数で返されるデータの長さで更新されます。

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

入力時には、DES OPINENC スケルトン・トークンまたは IPINENC スケルトン・トークンが含まれている必要があります。 出力時に、DUKPT_PIN_key_identifier には、導出された DES OPINENC 鍵または IPINENC 鍵を持つ DES トークンが含まれます。

reserved1_length
方向 タイプ
入力 整数

reserved1 パラメーターの長さ (バイト)。 値は 0 でなければなりません。

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

このフィールドは無視されます。

reserved2_length
方向 タイプ
入力 整数

reserved2 パラメーターの長さ (バイト)。 値は 0 でなければなりません。

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

このフィールドは無視されます。

使用上の注意

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

アクセス制御点

ドメイン役割内の「FPE translate」アクセス制御点によって、このサービスの機能が制御されます。

必須ハードウェア

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

表 2. FPE 変換必須ハードウェア
サーバー 必須暗号化ハードウェア 制約事項

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

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

IBM zEnterprise EC12
IBM zEnterprise BC12

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

IBM z13

Crypto Express5 CCA コプロセッサー