PKA 暗号化解除 (CSNDPKD および CSNFPKD)
このサービスは、フォーマット済みの鍵値を暗号化解除 (アンラップ) する場合に使用します。 このサービスでは、鍵がアンラップされて解析され、解析値が非暗号化状態でアプリケーションに返されます。 PKCS 1.2 フォーマット、RSAES-OAEP フォーマット、および 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 が鍵値のリカバリーに使用されます。 PKCSOAEP これは、RSA PKCS #1 v2.0 標準で定義されている RSAES-OAEP エンコード・スキームを使用してフォーマットされたデータをリカバリーすることを指定します。 セキュア PKCS #11 秘密鍵が使用される場合、このキーワードは無効です。
ZERO-PAD 入力 PKA_enciphered_keyvalue が RSA 秘密鍵で暗号化解除されます。 結果全体 (先行ゼロを含む) が target_keyvalue フィールドに返されます。 PKA 鍵の場合、key_identifier は外部 RSA トークンであるか、または外部トークンのラベル名でなければなりません。 セキュア PKCS #11 秘密鍵が使用される場合、このキーワードは無効です。
ハッシュ方式 (PKCSOAEP が指定されている場合は必須で 1 つのみ指定可能。それ以外の場合は使用不可) SHA-1 これは、OAEP メッセージ・ダイジェストを計算するために SHA-1 方式を使用することを指定します。 SHA-256 これは、OAEP メッセージ・ダイジェストを計算するために SHA-256 方式を使用することを指定します。 - 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 公開鍵の指数は奇数でなければなりません。
Crypto Express アクセラレーターは非暗号化鍵 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」アクセス制御点で、このサービスの機能が制御されます。
| アクセス制御点 | 規則配列キーワード |
|---|---|
| PKA Decrypt – Disallow PKCS-1.2 | PKCS-1.2 |
| PKA Decrypt – Disallow PKCSOAEP | PKCSOAEP |
| PKA Decrypt – Disallow ZEROPAD | ZEROPAD |
セキュア PKCS #11 秘密鍵の場合、エンタープライズ PKCS #11 コプロセッサーのアクセス制御点について 詳しくは、「z/OS ICSF Writing PKCS #11 Applications」の『PKCS #11 Access Control Points』を参照してください。
必須ハードウェア
下表に、各サーバー・タイプに必要な暗号化ハードウェアを示し、この呼び出し可能サービスの制約事項について説明します。
| サーバー | 必須暗号化ハードウェア | 制約事項 |
|---|---|---|
IBM System z9 EC |
Crypto Express2 コプロセッサー | 2048 ビットから 4096 ビットの範囲内のモジュラスを持つ RSA 鍵サポートには、2007 年 11 月以降のライセンス内部コード (LIC) が必要です。 キーワード PKCSOAEP、SHA-1、および SHA-256 はサポートされていません。 |
| Crypto Express2 アクセラレーター | 2048 ビット長より大きいモジュラスを持つ RSA 鍵はサポートされていません。 |
|
IBM System z10 EC |
Crypto Express2 コプロセッサー Crypto Express3 コプロセッサー |
2048 ビットから 4096 ビットの範囲内のモジュラスを持つ RSA 鍵サポートには、2007 年 11 月以降のライセンス内部コード (LIC) が必要です。 キーワード PKCSOAEP、SHA-1、および SHA-256 はサポートされていません。 |
| Crypto Express2 アクセラレーター Crypto Express3 アクセラレーター |
2048 ビット長より大きいモジュラスを持つ RSA 鍵はサポートされていません。 |
|
IBM zEnterprise 196 |
Crypto Express3 コプロセッサー | キーワード PKCSOAEP、SHA-1、および SHA-256 はサポートされていません。 |
| Crypto Express3 アクセラレーター | 2048 ビットから 4096 ビットまでの範囲内のモジュラスを含む RSA 非暗号化鍵サポートには、2011 年 9 月以降のライセンス内部コード (LIC) が必要です。 |
|
IBM zEnterprise EC12 |
Crypto Express3 コプロセッサー Crypto Express4 CCA コプロセッサー |
キーワード PKCSOAEP、SHA-1、および SHA-256 には 2015 年 6 月以降のライセンス内部コード (LIC) が必要です。 |
| Crypto Express3 アクセラレーター Crypto Express4 アクセラレーター |
||
| Crypto Express4 Enterprise PKCS #11 コプロセッサー | セキュア PKCS #11 秘密鍵を使用する必要があります。 キーワード ZEROPAD、PKCSOAEP、SHA-1、SHA-256 はサポートされていません。 |
|
IBM z13 |
Crypto Express5 CCA コプロセッサー | キーワード PKCSOAEP、SHA-1、および SHA-256 には 2015 年 7 月以降のライセンス内部コード (LIC) が必要です。 |
| Crypto Express5 アクセラレーター | ||
| Crypto Express5 Enterprise PKCS #11 コプロセッサー | セキュア PKCS #11 秘密鍵を使用する必要があります。 キーワード ZEROPAD、PKCSOAEP、SHA-1、SHA-256 はサポートされていません。 |