固有鍵導出 (CSNBUKD および CSNEUKD)
固有鍵導出 (CSNBUKD および CSNEUKD) では、ANSI X9.24 Part 1 の定義に従って鍵導出処理が実行されます。
- ベース導出鍵は、他の鍵が導出されるときの元となる鍵です。 これは、制御ベクトルにおいて UKPT ビット (ビット 18) が 1 に設定されている KEYGENKY でなければなりません。
- 導出データは、導出された鍵を、特定装置、およびその装置からの特定トランザクションに固有のものにするために使用されます。 導出データ (現行鍵シリアル番号 (CKSN) と呼ばれる) は、装置の 59 ビット初期鍵シリアル番号値と、 新規トランザクションごとに装置で増やされる現行暗号カウンターの 21 ビット値を連結した 80 ビットのデータです。
初期 PIN 暗号鍵 (IPEK) はベース導出鍵と初期導出データから導出されます。 IPEK を返すように K3IPEK 規則配列キーワードを指定してください。
規則配列キーワードは、特定の呼び出しで導出される鍵のタイプと数を決定するものです。 詳しくは、規則配列パラメーターの説明を参照してください。
出力鍵は、デフォルト・ラップ・モードとして構成されている モード (拡張ラップ・モード (WRAP-ENH) または元の ECB ラップ・モード (WRAP-ECB)) を使用してラップされます。
形式
CALL CSNBUKD(
return_code,
reason_code,
exit_data_length,
exit_data,
rule_array_count,
rule_array,
base_derivation_key_identifier_length,
base_derivation_key_identifier,
derivation_data_length,
derivation_data,
generated_key_identifier1_length,
generated_key_identifier1,
generated_key_identifier2_length,
generated_key_identifier2,
generated_key_identifier3_length,
generated_key_identifier3,
transport_key_identifier_length,
transport_key_identifier,
reserved2_length,
reserved2,
reserved3_length,
reserved3,
reserved4_length,
reserved4,
reserved5_length,
reserved5,
reserved6_length,
reserved6)
パラメーター
- return_code
-
方向 タイプ 出力 整数 戻りコードは、呼び出し可能サービスの一般的な結果を示しています。 ICSF および暗号化コプロセッサーの戻りコードおよび理由コードに、戻りコードがリストされています。
- reason_code
-
方向 タイプ 出力 整数 理由コードは、アプリケーション・プログラムに返される、呼び出し可能サービスの結果を示しています。 戻りコードにはそれぞれ、特定の処理問題を示すさまざまな理由コードがあります。 ICSF および暗号化コプロセッサーの戻りコードおよび理由コード に、理由コードがリストされています。
- exit_data_length
-
方向 タイプ 入出力 整数 インストール・システム出口に渡されるデータの長さ。 データは exit_data パラメーターで識別されます。
- exit_data
-
方向 タイプ 入出力 ストリング このデータはインストール出口に渡されます。
- rule_array_count
- rule_array パラメーターで指定したキーワードの数。 値は 1 から 5 までです。
方向 タイプ 入力 整数 - rule_array
- rule_array パラメーターはキーワードの配列です。 キーワードは、8 バイトの連続するストレージ内になければならず、その 8 バイト位置で左寄せされ、右側にブランクが埋め込まれている必要があります。 rule_array キーワードは以下のとおりです。
方向 タイプ 入力 ストリング 表 1. 固有鍵導出のキーワード キーワード 意味 アルゴリズム (オプション。デフォルトは DES) DES これは、生成される鍵が DES (Triple DES) 鍵であることを指定します。 すべての入力スケルトン・トークンは DES トークンでなければなりません。 また、生成された出力トークンはすべて DES トークンになります。 トークン出力タイプ (1 つのみ指定可能。K3IPEK の場合は必須) TDES-TOK これは、出力 IPEK を TDES トランスポート鍵でラップして外部 TDES トークンに入れて返す必要があることを指定します。 TR31-TOK これは、出力 IPEK を TDES トランスポート鍵でラップして TR-31 鍵ブロックに入れて返す必要があることを指定します。 鍵ラップ方式 (オプションで 1 つのみ指定可能。デフォルトは USECONFG)。 以下のキーワードを指定するには、アクセス制御点「Unique Key Derive - Override Default Wrapping Method」が有効になっていなければなりません。 USECONFG これは、デフォルト・ラップ方式の構成設定を使用して鍵をラップすることを指定します。 WRAP-ECB これは、元のラップ方式を使用して鍵をラップすることを指定します。 WRAP-ENH これは、拡張ラップ方式を使用して鍵をラップすることを指定します。 出力鍵選択キーワード (いずれかが必須。3 つまで指定可能)。 PIN-DATA キーワードも K3IPEK キーワードも他の出力鍵選択キーワードと一緒には指定できません。 他のキーワード (K1DATA、K2MAC、および K3PIN) を任意に組み合わせて指定できます。 これにより、プログラムは 1 回の呼び出しで最大 3 つの異なる出力鍵を生成できるようになります。 PIN-DATA このキーワードに対して返される鍵タイプは PIN 鍵です。 PIN 鍵は DATA 鍵トークンに入れて返されます。 これは、generated_key_identifier3_length パラメーター および generated_key_identifier3 パラメーターの出力鍵選択キーワードです。 出力値 generated_key_identifier3 が作成され、DATA 鍵になります。 入力で対象のパラメーターに指定されるスケルトン・トークンは、この呼び出し可能サービスに対して許可される 「規則キーワード PIN-DATA を持つ PIN 鍵」鍵タイプの 1 つでなければなりません。 有効な値については、表 2を参照してください。
このオプションを使用するには、 次のようにします。- 制御ベクトルのビット 61 (非 CCA) を 1 に設定します。
- アクセス制御点「Unique Key Derive - Allow PIN-DATA processing」を有効にする必要があります。
K1DATA このキーワードに対して返される鍵タイプは DATA ENCRYPTION 鍵です。 これは、generated_key_identifier1_length パラメーター および generated_key_identifier1 パラメーターの出力鍵選択キーワードです。 出力値 generated_key_identifier1 が作成され、データ暗号鍵になります。 入力で対象のパラメーターに指定されるスケルトン・トークンは、この呼び出し可能サービスに対して許可される 「データ暗号鍵」タイプの 1 つでなければなりません。 有効な値については、表 2を参照してください。
K2MAC このキーワードに対して返される鍵タイプは MAC 鍵です。 これは、generated_key_identifier2_length パラメーター および generated_key_identifier2 パラメーターの出力鍵選択キーワードです。 出力値 generated_key_identifier2 が作成され、MAC 鍵になります。 入力で対象のパラメーターに指定されるスケルトン・トークンは、この呼び出し可能サービスに対して許可される MAC 鍵タイプの 1 つでなければなりません。 有効な値については、表 2を参照してください。
K3PIN このキーワードに対して返される鍵タイプは PIN 鍵です。 これは、generated_key_identifier3_length パラメーター および generated_key_identifier3 パラメーターの出力鍵選択キーワードです。 出力値 generated_key_identifier3 が作成され、PIN 鍵になります。 入力で対象のパラメーターに指定されるスケルトン・トークンは、この呼び出し可能サービスに対して許可される PIN 鍵タイプの 1 つでなければなりません。 有効な値については、表 2を参照してください。
K3IPEK このキーワードに対して返される鍵は IPEK です。 これは、generated_key_identifier3_length パラメーター および generated_key_identifier3 パラメーターの出力鍵選択キーワードです。 出力値 generated_key_identifier3 が作成され、初期の PIN 暗号鍵になります。 この鍵は、TDES トランスポート鍵でラップされ、トークン出力タイプ・キーワードに示されている外部対称トークンまたは TR-31 鍵ブロックに入れて返されます。 入力で対象のパラメーターに指定されるスケルトン・トークンは、この呼び出し可能サービスに対して許可される PIN 鍵タイプの 1 つでなければなりません。 有効な値については、表 2を参照してください。
この キーワードを他の出力鍵選択キーワードと組み合わせることはできません。
- base_derivation_key_identifier_length
- base_derivation_key パラメーターの長さ。 この値は 64 でなければなりません。
方向 タイプ 入力 整数 - base_derivation_key_identifier
- ベース導出鍵は、ANSI X9.24 Part 1 で定義されている DUKPT アルゴリズムを 使用して操作可能鍵を導出するときの元となる鍵です。 ベース導出鍵は、制御ベクトルにおいて UKPT ビット (ビット 18) が 1 に設定されている倍長の KEYGENKY 鍵を含む 内部鍵トークンまたは内部鍵トークンのラベルでなければなりません。
方向 タイプ 入出力 ストリング - derivation_data_length
- derivation_data パラメーターの長さ。 この値は 10 でなければなりません。
方向 タイプ 入力 整数 - derivation_data
- 導出データは、 現行暗号カウンターの 21 ビット値と連結された装置の現行鍵シリアル番号 (CKSN) を含む 80 ビット (10 バイト) のストリングです。 その値は、この装置で新規トランザクションごとに増やされます。
方向 タイプ 入力 ストリング - generated_key_identifier1_length
- generated_key_identifier1 パラメーターの長さ。 値は 0 および 64 です。
方向 タイプ 入出力 整数 - generated_key_identifier1
- 入力では、 これは DES データ暗号鍵トークンであるか、または 表 2 に示されている データ暗号化制御ベクトルの 1 つを持つ DES データ暗号鍵のスケルトン・トークンでなければなりません。
方向 タイプ 入出力 ストリング 出力では、generated_key_identifier1 には、導出されたデータ暗号鍵を持つデータ暗号化トークンが含まれます。
- generated_key_identifier2_length
- generated_key_identifier2 パラメーターの長さ。 値は 0 および 64 です。
方向 タイプ 入出力 整数 - generated_key_identifier2
- 入力では、 これは DES MAC 鍵トークンであるか、または 表 2 に 示されている MAC 制御ベクトルの 1 つを持つ DES MAC 鍵のスケルトン・トークンでなければなりません。 出力では、generated_key_identifier2 には、導出された MAC 鍵を持つ MAC トークンが含まれます。
方向 タイプ 入出力 ストリング - generated_key_identifier3_length
- generated_key_identifier3 パラメーターの長さ。 規則配列キーワードが K3IPEK の場合、この長さは少なくとも 64 バイトでなければなりません。 それ以外の場合、値は 0 と 64 です。
方向 タイプ 入出力 整数 - generation_key_identifier3
- このパラメーターの 入力値と出力値は、rule_array パラメーターに指定されたキーワードに依存します。 generation_key_identifier3 パラメーターの rule_array キーワードは、PIN-DATA または K3PIN に することができます。
方向 タイプ 入出力 ストリング - 規則配列キーワードが PIN-DATA の場合、入力はデータ鍵トークンであるか、 または 表 2 に示されている「規則キーワード PIN-DATA を持つ PIN 鍵」制御ベクトルの 1 つを持つ データ鍵のスケルトン・トークンでなければなりません。 出力では、このパラメーターには、導出された PIN 鍵を持つデータ・トークンが含まれます。
- 規則配列キーワードが K3PIN の場合、入力は DES PIN 鍵トークンであるか、 または 表 2 に示されている PIN 制御ベクトルの 1 つを持つ DES PIN 鍵の スケルトン・トークンでなければなりません。 出力では、このパラメーターには、導出された PIN 鍵を持つ PIN トークンが含まれます。
- 規則配列キーワードが K3IPEK の場合、入力は DES PIN 鍵トークンであるか、 または 表 2 に示されている PIN 制御ベクトルの 1 つを持つ、 フィールド内で左寄せされた、DES PIN 鍵のスケルトン・トークンでなければなりません。 出力では、このパラメーターには、外部対称鍵トークンまたは TR-31 鍵ブロックにおいて TDES でラップされた IPEK 鍵が含まれます。
- transport_key_identifier_length
- transport_key_identifier パラメーターの長さ。 トランスポート鍵 ID が使用されない場合、この長さは 0 でなければなりません。 それ以外の場合、この長さは 64 でなければなりません。
方向 タイプ 入力 整数 - transport_key_identifier
- K3IPEK キーワードが指定されている 場合、transport_key_identifier には、IPEK をラップするために使用される鍵暗号鍵のラベルまたは鍵トークンが含まれます。 トランスポート鍵は DES EXPORTER KEK でなければなりません。 それ以外の場合、このフィールドは無視されます。
方向 タイプ 入出力 ストリング - reserved2_length
- このパラメーターはゼロでなければなりません。
方向 タイプ 入力 整数 - reserved2
- このパラメーターは無視されます。
方向 タイプ 無視される ストリング - reserved3_length
- このパラメーターはゼロでなければなりません。
方向 タイプ 入力 整数 - reserved3
- このパラメーターは無視されます。
方向 タイプ 無視される ストリング - reserved4_length
- このパラメーターはゼロでなければなりません。
方向 タイプ 入力 整数 - reserved4
- このパラメーターは無視されます。
方向 タイプ 無視される ストリング - reserved5_length
- このパラメーターはゼロでなければなりません。
方向 タイプ 入力 整数 - reserved5
- このパラメーターは無視されます。
方向 タイプ 無視される ストリング - reserved6_length
- このパラメーターはゼロでなければなりません。
方向 タイプ 入力 整数 - reserved6
- このパラメーターは無視されます。
方向 タイプ 無視される ストリング
制約事項
次の表は、導出される鍵タイプに依存する有効なスケルトン・トークンを示したものです。
導出される鍵 | スケルトン・トークンでサポートされる鍵タイプ | ||
---|---|---|---|
データ暗号鍵 | CIPHER |
00 03 71 00 03 41 00 00 | 00 03 71 00 03 21 00 00 |
ENCIPHER | 00 03 60 00 03 41 00 00 | 00 03 60 00 03 21 00 00 | |
DECIPHER | 00 03 50 00 03 41 00 00 | 00 03 50 00 03 21 00 00 | |
メッセージ認証コード (MAC) 鍵 | MAC |
00 05 4D 00 03 41 00 00 | 00 05 4D 00 03 21 00 00 |
MACVER | 00 05 44 00 03 41 00 00 | 00 05 44 00 03 21 00 00 | |
PIN 鍵 | IPINENC | 00 21 5F 00 03 41 00 00 | 00 21 5F 00 03 21 00 00 |
OPINENC | 00 24 77 00 03 41 00 00 | 00 24 77 00 03 21 00 00 | |
規則キーワード PIN-DATA を持つ PIN 鍵 | DATA PIN | 00 00 7D 00 03 41 00 00 | 00 00 7D 00 03 21 00 00 |
- ビット 17 - エクスポート制御
- ビット 56 - 拡張ラップ制御
- ビット 57 - TR-31 エクスポート制御
- ビット 4 および 5 - UDX
- ビット 61 - 非 CCA
使用上の注意
呼び出し側がこの呼び出し可能サービス、鍵ラベル、または CKDS に保管されている内部鍵トークンの使用を許可されているかを検査するために、SAF が呼び出される場合があります。
次の表は、導出される出力鍵タイプごとに使用されるバリアントを示したものです。
鍵タイプ | DUKPT 導出バリアント | DUKPT 鍵用途の説明 |
---|---|---|
IPINENC OPINENC PIN 鍵 (PIN-DATA 規則配列キーワードを使用) | 00000000000000FF 00000000000000FF | PIN 暗号化 |
MAC | 000000000000FF00 000000000000FF00 | MAC、要求または両方向 |
MACVER | 00000000FF000000 00000000FF000000 | MAC、応答のみ |
CIPHER ENCIPHER |
0000000000FF0000 0000000000FF0000 | データ暗号化、要求または両方向 |
DECIPHER | 000000FF00000000 000000FF00000000 | データ暗号化、応答のみ |
アクセス制御点
「Unique Key Derive」アクセス制御点では、このサービスの機能が制御されます。 規則配列内で「鍵ラップ方式」を指定するには、 アクティブな役割で「Unique Key Derive - Override Default Wrapping Method」アクセス制御点を有効にしておく必要があります。
PIN-DATA 規則配列キーワードを指定するには、 アクティブな役割で「Unique Key Derive - Allow PIN-DATA」アクセス制御点を有効にしておく必要があります。
K3IPEK 規則配列キーワードを指定するには、 アクティブな役割で「Unique Key Derive - K3IPEK」アクセス制御点を有効にしておく必要があります。
必須ハードウェア
下表に、各サーバー・タイプに必要な暗号化ハードウェアを示し、この呼び出し可能サービスの制約事項について説明します。
サーバー | 必須暗号化ハードウェア | 制約事項 |
---|---|---|
IBM eServer zSeries 990 |
この呼び出し可能サービスはサポートされていません。 | |
IBM System z9 EC |
この呼び出し可能サービスはサポートされていません。 | |
IBM System z10 EC |
この呼び出し可能サービスはサポートされていません。 | |
IBM zEnterprise 196 |
この呼び出し可能サービスはサポートされていません。 | |
IBM zEnterprise EC12 |
Crypto Express3 コプロセッサー Crypto Express4 CCA コプロセッサー |
キーワード K3IPEK、TDES-TOK、および TR31-TOK には、2013 年 9 月以降のライセンス内部コード (LIC) が必要です。 |
IBM z13 |
Crypto Express5 CCA コプロセッサー |