PKA 暗号化解除 (CSNDPKD および CSNFPKD)
このサービスは、フォーマット済みの鍵値を暗号化解除 (アンラップ) する場合に使用します。 このサービスでは、鍵がアンラップされ、フォーマット解除され、そのフォーマット解除された値が非暗号化状態でアプリケーションに返されます。 PKCS 1.2 および ZERO-PAD フォーマットがサポートされます。 PKCS 1.2 の場合、暗号化解除されたデータは、RSA DSI PKCS #1 ブロック・タイプ 2 フォーマット仕様を満たすことを保証するために検査されます。
PKA 秘密鍵の場合、このサービスでは非暗号化/暗号化 RSA 秘密鍵を使用できます。 外部非暗号化鍵トークンが使用されている場合は、 マスター鍵を暗号化コプロセッサーにインストールする必要はなく、PKA 呼び出し可能サービスを有効にする必要もありません。 非暗号化鍵トークンの使用時に、暗号アクセラレーターが使用可能であれば、要求は暗号アクセラレーターに経路指定されます。 ZERO-PAD は、外部 RSA 非暗号化秘密鍵に対してのみサポートされます。
このサービスはセキュア PKCS #11 秘密鍵の使用もサポートしますが、それにはアクティブなエンタープライズ PKCS #11 コプロセッサーが必要です。 PKCS 1.2 フォーマットがサポートされます。
AMODE(64) 呼び出しの呼び出し可能サービス名は CSNFPKD です。
形式
CALL CSNDPKD(
return_code,
reason_code,
exit_data_length,
exit_data,
rule_array_count,
rule_array,
PKA_enciphered_keyvalue_length,
PKA_enciphered_keyvalue,
data_structure_length,
data_structure,
key_identifier_length,
key_identifier,
target_keyvalue_length,
target_keyvalue)
パラメーター
- return_code
-
方向 タイプ 出力 整数 戻りコードは、呼び出し可能サービスの一般的な結果を示しています。 ICSF および暗号化コプロセッサーの戻りコードおよび理由コードに、戻りコードがリストされています。
- reason_code
-
方向 タイプ 出力 整数 理由コードは、アプリケーション・プログラムに返される、呼び出し可能サービスの結果を示しています。 戻りコードにはそれぞれ、特定の処理問題を示すさまざまな理由コードが割り当てられています。 ICSF および暗号化コプロセッサーの戻りコードおよび理由コード に、理由コードがリストされています。
- exit_data_length
-
方向 タイプ 入出力 整数 インストール・システム出口に渡されるデータの長さ。 データは exit_data パラメーターで識別されます。
- exit_data
-
方向 タイプ 入出力 ストリング このデータはインストール出口に渡されます。
- rule_array_count
-
方向 タイプ 入力 整数 rule_array パラメーターで指定するキーワードの数。 この値は 1 でなければなりません。
- rule_array
-
方向 タイプ 入力 ストリング 制御情報を呼び出し可能サービスに提供するキーワード。 キーワードは、8 バイト・フィールドで左寄せされ、右側にブランクが埋め込まれます。
表 1. PKA 暗号化解除のキーワード キーワード 意味 リカバリー方式 (必須)。 これは、鍵値のリカバリーに使用される方式を指定します。 PKCS-1.2 RSA PKCS #1 V1.5 ブロック・タイプ 02 が鍵値のリカバリーに使用されます。 ZERO-PAD 入力 PKA_enciphered_keyvalue が RSA 秘密鍵で暗号化解除されます。 結果全体 (先行ゼロを含む) が target_keyvalue フィールドに返されます。 PKA 鍵の場合、key_identifier は外部 RSA トークンであるか、または外部トークンのラベル名でなければなりません。 セキュア PKCS #11 秘密鍵が使用される場合、このキーワードは無効です。
- PKA_enciphered_keyvalue_length
-
方向 タイプ 入力 整数 PKA_enciphered_keyvalue パラメーターの長さ (バイト)。 指定できる最大サイズは 512 バイトです。 この長さは、key_identifier のモジュラス長と同じでなければなりません。
- PKA_enciphered_keyvalue
-
方向 タイプ 入力 ストリング このフィールドには、RSA 公開鍵で保護されている鍵値が含まれます。 このバイト長ストリングは PKA_enciphered_keyvalue パラメーター内で左寄せにされます。
- data_structure_length
-
方向 タイプ 入力 整数 値は 0 でなければなりません。
- data_structure
-
方向 タイプ 入力 ストリング このフィールドは現在では無視されます。
- key_identifier_length
-
方向 タイプ 入力 整数 key_identifier パラメーターの長さ。 key_identifier が鍵ラベルの場合、このフィールドはラベルの長さを指定します。 指定できる最大サイズは 3500 バイトです。
- key_identifier
-
方向 タイプ 入力 ストリング PKA 鍵の場合、これは モジュラス指数または中国剰余定理フォーマットの非暗号化 RSA 秘密鍵を含む内部 RSA 秘密鍵トークン、 内部 RSA 秘密鍵トークンのラベル、または外部 RSA 秘密鍵トークン。
セキュア PKCS #11 鍵の場合、これは秘密鍵の 44 バイト・ハンドルです。 EBCDIC 等号文字 (「=」または x'7E') の接頭部が付き、合計長 64 バイトにわたって右側にスペースが埋め込まれます。
対応する公開鍵は、鍵値をラップするために使用されたものです。
- target_keyvalue_length
-
方向 タイプ 入出力 整数 target_keyvalue パラメーターの長さ。 指定できる最大サイズは 512 バイトです。 戻り時に、このフィールドは、target_keyvalue の実際の長さで更新されます。
ZERO-PAD が指定されている場合、この長さは RSA モジュラスのバイト長と同じになります。
- target_keyvalue
-
方向 タイプ 出力 ストリング このフィールドには、 暗号化解除およびフォーマット解除された鍵の値が含まれます。 ZERO-PAD が指定されている場合、暗号化解除された鍵の値 (先行ゼロを含む) が返されます。
制約事項
RSA 公開鍵の指数は奇数でなければなりません。
許可
共通オブジェクトであるセキュア PKCS #11 秘密鍵でこのサービスを使用するには、呼び出し側に、その鍵を含んでいる PKCS #11 トークンに対する SO (READ) 権限または USER (READ) 権限 (任意のアクセス) が必要です。
専用オブジェクトであるセキュア PKCS #11 秘密鍵でこのサービスを使用するには、呼び出し側に、その鍵を含んでいる PKCS #11 トークンに対する USER (READ) 権限 (ユーザー・アクセス) が必要です。
SO およびユーザー PKCS #11 の役割について 詳しくは、「z/OS Cryptographic Services ICSF Writing PKCS #11 Applicationsz/OS Cryptographic Services ICSF Writing PKCS #11 Applicationsz/OS Cryptographic Services ICSF Writing PKCS #11 Applications」を 参照してください。
使用上の注意
呼び出し側がこの呼び出し可能サービス、鍵ラベル、または CKDS、PKDS、TKDS のいずれかに保管された内部セキュア鍵トークンの使用を許可されているかを検査するために、SAF が呼び出される場合があります。
鍵管理機能に対して PKA RSA 秘密鍵が有効になっていなければなりません。 暗号化解除に対してセキュア PKCS #11 秘密鍵が有効になっていなければなりません。
PKA 鍵の場合、ハードウェア構成によって鍵管理用の鍵のモジュラス・サイズに制限が設定されるため、RSA 鍵モジュラスのビット長が この制限を超えると、このサービスは失敗します。
アクセス制御点
PKA 鍵の場合、「PKA Decrypt」アクセス制御点で、このサービスの機能が制御されます。
セキュア PKCS #11 秘密鍵の場合、エンタープライズ PKCS #11 コプロセッサーのアクセス制御点について 詳しくは、「z/OS ICSF Writing PKCS #11 Applications」の『PKCS #11 Access Control Points』を参照してください。
必須ハードウェア
下表に、各サーバー・タイプに必要な暗号化ハードウェアを示し、この呼び出し可能サービスの制約事項について説明します。
サーバー | 必須暗号化ハードウェア | 制約事項 |
---|---|---|
IBM eServer zSeries 990 |
PCI X 暗号化コプロセッサー Crypto Express2 コプロセッサー |
2048 ビット長より大きいモジュラスを持つ RSA 鍵はサポートされていません。 |
PCI 暗号アクセラレーター | 非暗号化 RSA 秘密鍵のみがサポートされます。
2048 ビット長より大きいモジュラスを持つ RSA 鍵はサポートされていません。 |
|
IBM System z9 EC |
Crypto Express2 コプロセッサー | 2048 ビットから 4096 ビットの範囲内のモジュラスを持つ RSA 鍵サポートには 2007 年 11 月以降のライセンス内部コード (LIC) が必要です。 |
Crypto Express2 アクセラレーター | 非暗号化 RSA 秘密鍵のみがサポートされます。 2048 ビット長より大きいモジュラスを持つ RSA 鍵はサポートされていません。 |
|
IBM System z10 EC |
Crypto Express2 コプロセッサー Crypto Express3 コプロセッサー |
2048 ビットから 4096 ビットの範囲内のモジュラスを持つ RSA 鍵サポートには 2007 年 11 月以降のライセンス内部コード (LIC) が必要です。 |
Crypto Express2 アクセラレーター Crypto Express3 アクセラレーター |
非暗号化 RSA 秘密鍵のみがサポートされます。 2048 ビット長より大きいモジュラスを持つ RSA 鍵はサポートされていません。 |
|
IBM zEnterprise 196 |
Crypto Express3 コプロセッサー | |
Crypto Express3 アクセラレーター | 非暗号化 RSA 秘密鍵のみがサポートされます。
2048 ビットから 4096 ビットまでの範囲内のモジュラスを含む RSA 非暗号化鍵サポートには、2011 年 9 月以降のライセンス内部コード (LIC) が必要です。 |
|
IBM zEnterprise EC12 |
Crypto Express3 コプロセッサー Crypto Express4 CCA コプロセッサー (CEX4C) |
|
Crypto Express3 アクセラレーター Crypto Express4 アクセラレーター (CEX4A) |
非暗号化 RSA 秘密鍵のみがサポートされます。 | |
Crypto Express4 エンタープライズ PKCS #11 コプロセッサー (CEX4P) | セキュア PKCS #11 秘密鍵を使用する必要があります。 | |
IBM z13 | Crypto Express5 CCA コプロセッサー (CEX5C) | |
Crypto Express5 CCA アクセラレーター (CEX5A) | 非暗号化 RSA 秘密鍵のみがサポートされます。 | |
Crypto Express5 エンタープライズ PKCS #11 コプロセッサー (CEX5P) | セキュア PKCS #11 秘密鍵を使用する必要があります。 |