デジタル署名検査 (CSNDDSV および CSNFDSV)
- デジタル署名検査呼び出し可能サービスでは、署名の生成に使用されたデジタル署名アルゴリズムに応じて、RSA 公開鍵または ECC 公開鍵を使用できます。
- デジタル署名検査呼び出し可能サービスではまた、トラステッド・ブロックに含まれる公開鍵を使用することもできます。 これは、RKX サービスで鍵を生成またはエクスポートする際に、その使用を管理する規則もブロックに含まれているかどうかにはかかわりません。 TPK-ONLY キーワードが rule_array で使用されている場合、PKA_public_key_identifier にトラステッド・ブロックが含まれていないと、エラーが発生します。
- ANSI X9.30 (ECC)
- ANSI X9.31 (RSA)
- ISO 9796 (RSA)
- RSA DSI PKCS 1.0 および 1.1 (RSA)
- 左側にゼロを埋め込む (RSA)
入力テキストは事前にハッシュされている必要があります。 片方向ハッシュ生成呼び出し可能サービスまたは MDC 生成呼び出し可能サービスのいずれかを使用できます。 公開鍵暗号化でのハッシュおよび鍵のフォーマット設定も参照してください。
AMODE(64) 呼び出しの呼び出し可能サービス名は CSNFDSV です。
形式
CALL CSNDDSV(
return_code,
reason_code,
exit_data_length,
exit_data,
rule_array_count,
rule_array,
PKA_public_key_identifier_length,
PKA_public_key_identifier,
hash_length,
hash,
signature_field_length,
signature_field)
パラメーター
- return_code
-
方向 タイプ 出力 整数 戻りコードは、呼び出し可能サービスの一般的な結果を示しています。 ICSF および暗号化コプロセッサーの戻りコードおよび理由コードに戻りコードがリストされています。
- reason_code
-
方向 タイプ 出力 整数 理由コードは、アプリケーション・プログラムに返される、呼び出し可能サービスの結果を示しています。 戻りコードにはそれぞれ、特定の処理問題を示すさまざまな理由コードが割り当てられています。 ICSF および暗号化コプロセッサーの戻りコードおよび理由コードに理由コードがリストされています。
- exit_data_length
-
方向 タイプ 入出力 整数 インストール・システム出口に渡されるデータの長さ。 データは exit_data パラメーターで識別されます。
- exit_data
-
方向 タイプ 入出力 ストリング インストール・システム出口に渡されるデータ。
- rule_array_count
-
方向 タイプ 入力 整数 rule_array パラメーターで指定するキーワード数。 値は 0、1、または 2 でなければなりません。
- rule_array
-
方向 タイプ 入力 ストリング 制御情報を呼び出し可能サービスに提供するキーワードの配列が含まれます。 1 つのキーワードは、RSA デジタル署名の検査に使用する方式を指定します。 もう 1 つのキーワードは、入力トークンがトラステッド・ブロックであることを指定します。 3 つめのキーワードは、署名の検証に使用するアルゴリズムを指定します。 表 1 にキーワードがリストされています。 キーワードはそれぞれ、8 バイト・フィールドで左寄せされ、右側にブランクが埋め込まれます。 キーワードはすべて、連続するストレージ内になければなりません。
表 1. デジタル署名検査制御情報のキーワード キーワード 意味 デジタル署名フォーマット設定方式 (オプション、RSA のみ) X9.31 ANSI X9.31 標準に従ってフォーマット設定します。 ISO-9796 ISO 9796-1 に従ってハッシュに対してデジタル署名を計算します。 どのハッシュ方式も使用できます。 これがデフォルトです。 PKCS-1.0 RSA Data Security, Inc. Public Key Cryptography Standards #1 V1.5 ブロック・タイプ 00 に従って、ハッシュを含むタイプ DigestInfo の BER エンコード ASN.1 値に対してデジタル署名を計算します。 テキストは、このサービスに入力する前にハッシュされていなければなりません。 注: ブロック・タイプ 00 の使用は、業界では実効的な評価が低下しています。 規則 PKCS-1.1 が推奨されています。 PKCS-1.1 RSA Data Security, Inc. Public Key Cryptography Standards #1 ブロック・タイプ 01 に従って、ハッシュを含むタイプ DigestInfo の BER エンコード ASN.1 値に対してデジタル署名を計算します。 テキストは、このサービスに入力する前にハッシュされていなければなりません。 ZERO-PAD PKA 鍵モジュラスの長さまで左側に 2 進ゼロを埋め込むことによって、ハッシュをフォーマット設定します。 サポートされているハッシュ機能はすべて使用できます。 PKA 公開鍵トークン・タイプ (オプションで 1 つのみ指定可能) TPK-ONLY PKA_public_key_identifier は、少なくとも 2 つのセクションを含むトラステッド・ブロックでなければなりません。 - すべてのトラステッド・ブロックに必要なトラステッド・ブロック情報セクション 0x14、および
- トラステッド公開鍵と、トラステッド公開鍵をデジタル署名操作で使用できるかどうかを示す使用規則を含む、トラステッド公開鍵セクション 0x11。
署名アルゴリズム (オプション、CEX3C 以降のコプロセッサーでサポート) RSA RSA 処理が行われます。 これがデフォルト値です。 ECDSA 楕円曲線デジタル署名アルゴリズムが使用されます。 指定した場合、これは規則配列で許可された唯一のキーワードです。 - PKA_public_key_identifier_length
-
方向 タイプ 入力 整数 公開鍵のトークンまたはラベルを含む PKA_public_key_identifier パラメーターの長さ。 最大サイズは 3500 バイトです。
- PKA_public_key_identifier
-
方向 タイプ 入力 ストリング RSA 公開鍵または ECC 公開鍵あるいは内部トラステッド・ブロックのトークンまたはラベル。 このパラメーターに内部トラステッド・ブロックのトークンまたはラベルが含まれている場合、rule_array パラメーターでは TPK-ONLY を指定しなければなりません。
- hash_length
-
方向 タイプ 入力 整数 hash パラメーターの長さ (バイト)。 署名されたテキストの正確な長さでなければなりません。 最大サイズは 512 バイトです。
- hash
-
方向 タイプ 入力 ストリング 指定された署名の生成対象となったアプリケーション提供テキスト。 テキストは事前にハッシュされている必要があり、PKCS フォーマット設定の場合は前述のとおり BER エンコードされている必要があります。
- signature_field_length
-
方向 タイプ 入力 整数 signature_field パラメーターの長さ (バイト)。 最大サイズは 512 バイトです。
- signature_field
-
方向 タイプ 入力 ストリング このフィールドには検査対象のデジタル署名が含まれます。 デジタル署名は、デジタル署名を収容可能な、その長さが最小バイト数であるストリングの下位ビット (右寄せ) にあります。 このストリングは、signature_field 内で左寄せされます。
制約事項
メッセージを署名から復旧する機能 (ISO-9796 で許可されていますが、必要ではありません) はサポートされていません。
RSA 公開鍵の指数は奇数でなければなりません。
ISO-9796 では入力ハッシュの長さを整数バイトにする必要はありませんが、このサービスでは hash_length をバイト単位で指定する必要があります。
X9.31 では、RSA トークンに 1024 以上のモジュラス・ビット長が必要であり、長さも 256 ビット (32 バイト) の倍数でなければなりません。
使用上の注意
呼び出し側がこの呼び出し可能サービス、鍵ラベル、または CKDS か PKDS に保管された内部セキュア鍵トークンの使用を許可されているかを検査するために、SAF が呼び出される場合があります。
アクセス制御点
「Digital Signature Verify」アクセス制御点によって、このサービスの機能が制御されます。
必須ハードウェア
下表に、各サーバー・タイプに必要な暗号化ハードウェアを示し、この呼び出し可能サービスの制約事項について説明します。
サーバー | 必須暗号化ハードウェア | 制約事項 |
---|---|---|
IBM eServer zSeries 990 |
PCI X 暗号化コプロセッサー Crypto Express2 コプロセッサー PCI 暗号アクセラレーター |
ECC はサポートされていません。 トラステッド鍵ブロックはサポートされていません。 TPK-ONLY キーワードはサポートされていません。 2048 ビット長より大きいモジュラスを持つ RSA 鍵はサポートされていません。 |
IBM System z9 EC |
Crypto Express2 コプロセッサー Crypto Express2 アクセラレーター |
ECC はサポートされていません。 2048 ビットから 4096 ビットの範囲内のモジュラスを持つ RSA 鍵サポートには 2007 年 11 月以降のライセンス内部コード (LIC) が必要です。 |
IBM System z10 EC |
Crypto Express2 コプロセッサー Crypto Express2 アクセラレーター |
ECC はサポートされていません。 2048 ビットから 4096 ビットの範囲内のモジュラスを持つ RSA 鍵サポートには、2007 年 11 月以降のライセンス内部コード (LIC) が必要です。 |
Crypto Express3 コプロセッサー Crypto Express3 アクセラレーター |
ECC サポートには、2010 年 9 月のライセンス内部コード (LIC) が必要です。 |
|
IBM zEnterprise 196 |
Crypto Express3 コプロセッサー Crypto Express3 アクセラレーター |
2048 ビットから 4096 ビットの範囲内のモジュラスを持つ RSA 非暗号化鍵サポートには、2011 年 9 月以降のライセンス内部コード (LIC) が必要です。 |
IBM zEnterprise EC12 |
Crypto Express3 コプロセッサー Crypto Express3 アクセラレーター Crypto Express4 CCA コプロセッサー Crypto Express4 アクセラレーター |
|
IBM z13 |
Crypto Express5 CCA コプロセッサー (CEX5C) Crypto Express5 CCA アクセラレーター (CEX5A) |