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』を参照してください。

必須ハードウェア

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

表 2. PKA 暗号化解除必須ハードウェア
サーバー 必須暗号化ハードウェア 制約事項

IBM eServer zSeries 990
IBM eServer zSeries 890

PCI X 暗号化コプロセッサー

Crypto Express2 コプロセッサー

2048 ビット長より大きいモジュラスを持つ RSA 鍵はサポートされていません。

PCI 暗号アクセラレーター 非暗号化 RSA 秘密鍵のみがサポートされます。

2048 ビット長より大きいモジュラスを持つ RSA 鍵はサポートされていません。

IBM System z9 EC
IBM System z9 BC

Crypto Express2 コプロセッサー

2048 ビットから 4096 ビットの範囲内のモジュラスを持つ RSA 鍵サポートには 2007 年 11 月以降のライセンス内部コード (LIC) が必要です。

Crypto Express2 アクセラレーター

非暗号化 RSA 秘密鍵のみがサポートされます。

2048 ビット長より大きいモジュラスを持つ RSA 鍵はサポートされていません。

IBM System z10 EC
IBM System z10 BC

Crypto Express2 コプロセッサー

Crypto Express3 コプロセッサー

2048 ビットから 4096 ビットの範囲内のモジュラスを持つ RSA 鍵サポートには 2007 年 11 月以降のライセンス内部コード (LIC) が必要です。

Crypto Express2 アクセラレーター

Crypto Express3 アクセラレーター

非暗号化 RSA 秘密鍵のみがサポートされます。

2048 ビット長より大きいモジュラスを持つ RSA 鍵はサポートされていません。

IBM zEnterprise 196
IBM zEnterprise 114

Crypto Express3 コプロセッサー
Crypto Express3 アクセラレーター 非暗号化 RSA 秘密鍵のみがサポートされます。

2048 ビットから 4096 ビットまでの範囲内のモジュラスを含む RSA 非暗号化鍵サポートには、2011 年 9 月以降のライセンス内部コード (LIC) が必要です。

IBM zEnterprise EC12
IBM zEnterprise BC12

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 秘密鍵を使用する必要があります。