対称鍵生成 (CSNDSYG および CSNFSYG)

対称鍵生成呼び出し可能サービスは、AES/DES DATA 鍵を生成して 2 つの形式 (マスター鍵で暗号化された形式、および RSA 公開鍵で暗号化された形式) で返す場合に使用します。

RSA 公開鍵で暗号化された形式は、受信側ノードで対称鍵インポート・サービスを使用することによってインポートできます。

また、対称鍵生成呼び出し可能サービスは、PKA92 フォーマット構造に従って RSA 公開鍵で暗号化された 任意の DES インポーター/エクスポーター鍵暗号鍵の生成する場合にも使用します。 PKA92 フォーマットについて詳しくは、PKA92 鍵フォーマットおよび暗号化プロセスを参照してください。

AMODE(64) 呼び出しの呼び出し可能サービス名は CSNFSYG です。

形式

CALL CSNDSYG(
             return_code,
             reason_code,
             exit_data_length,
             exit_data,
             rule_array_count,
             rule_array,
             key_encrypting_key_identifier,
             RSA_public_key_identifier_length,
             RSA_public_key_identifier,
             local_enciphered_key_token_length,
             local_enciphered_key_token,
             RSA_enciphered_key_length,
             RSA_enciphered_key)

パラメーター

return_code
方向 タイプ
出力 整数

戻りコードは、呼び出し可能サービスの一般的な結果を示しています。 ICSF および暗号化コプロセッサーの戻りコードおよび理由コードに、戻りコードがリストされています。

reason_code
方向 タイプ
出力 整数

理由コードは、アプリケーション・プログラムに返される、呼び出し可能サービスの結果を示しています。 戻りコードにはそれぞれ、特定の処理問題を示すさまざまな理由コードが割り当てられています。 ICSF および暗号化コプロセッサーの戻りコードおよび理由コード に、理由コードがリストされています。

exit_data_length
方向 タイプ
入出力 整数

インストール・システム出口に渡されるデータの長さ。 データは exit_data パラメーターで識別されます。

exit_data
方向 タイプ
入出力 ストリング

このデータはインストール出口に渡されます。

rule_array_count
方向 タイプ
入力 整数

rule_array パラメーターで指定するキーワードの数。 値は 1、2、3、4、5、6、または 7 でなければなりません。

rule_array
方向 タイプ
入力 ストリング

制御情報を呼び出し可能サービスに提供するキーワード。 表 1 に、キーワードがリストされています。キーワードは、8 バイトの連続するストレージ内になければならず、その 8 バイト位置で左寄せされ、右側にブランクが埋め込まれている必要があります。

表 1. 対称鍵生成制御情報のキーワード
キーワード 説明 アルゴリズム
アルゴリズム (オプションでキーワードを 1 つのみ指定できる)
AES 生成される鍵はセキュア AES 鍵です。 AES
DES 生成される鍵は DES 鍵です。 これがデフォルトです。 DES
鍵フォーマット方式 (いずれかのキーワードが必須)
PKA92 これは、鍵暗号鍵が PKA92 フォーマット構造に従って PKA96 RSA 公開鍵で暗号化されることを指定します。 DES
PKCSOAEP これは、RSA DSI PKCS #1V2 OAEP にある方式を使用することを指定します。 デフォルト・ハッシュ方式は SHA-1 です。 SHA-256 ハッシュ方式には、SHA-256 キーワードを使用してください。 AES または DES
PKCS-1.2 これは、RSA DSI PKCS #1 ブロック・タイプ 02 にある方式を指定します。 AES または DES
ZERO-PAD 非暗号化鍵は指定のフィールド内で右寄せにされ、 フィールドの左側に RSA 暗号化ブロックのサイズ (モジュラスの長さ) までゼロが埋め込まれます。 AES または DES
鍵の長さ (オプション - PKA92 で使用する場合)
SINGLE-R 鍵暗号鍵の場合、これは、生成対象鍵の左半分と右半分が同じ値を持つことを指定します。 これにより、その鍵は同じ値を持つ単一長の鍵と同一に機能します。 このキーワードが指定されない場合、鍵暗号鍵の左半分と右半分はそれぞれが独立してランダムに生成されます。 DES
鍵の長さ (オプション - PKCSOAEP、PKCS-1.2、または ZERO-PAD で使用する場合)
SINGLE、 KEYLN8 これは、生成対象鍵の長さを 8 バイトにする必要があることを指定します。 DES
DOUBLE これは、生成対象鍵の長さを 16 バイトにする必要があることを指定します。 DES
KEYLN16 これは、生成対象鍵の長さを 16 バイトにする必要があることを指定します。 AES または DES
KEYLN24 これは、生成対象鍵の長さを 24 バイトにする必要があることを指定します。 AES または DES
KEYLN32 これは、生成対象鍵の長さを 32 バイトにする必要があることを指定します。 AES
鍵のローカル暗号化コピーの暗号化方式 (オプション - PKCSOAEP、PKCS-1.2、または ZERO-PAD で使用する場合)
OP これは、マスター鍵で鍵を暗号化します。 DES マスター鍵は DES 鍵と一緒に使用され、AES マスター鍵は AES 鍵と一緒に使用されます。 AES または DES
EX これは、key_encrypting_key_identifier パラメーターで 指定される EXPORTER 鍵で鍵を暗号化します。 DES
IM これは、key_encrypting_key_identifier パラメーターで 指定される IMPORTER 鍵暗号鍵で鍵を暗号化します。 DES
鍵ラップ方式 (オプション)
USECONFG これは、システム・デフォルト構成を使用してラップ方式を決定することを指定します。 これがデフォルト・キーワードです。

システム・デフォルト鍵ラップ方式は、インストール・オプション・データ・セットで DEFAULTWRAP パラメーターを使用して指定できます。 z/OS Cryptographic Services ICSF System Programmer's Guidez/OS Cryptographic Services ICSF System Programmer's Guidez/OS Cryptographic Services ICSF System Programmer's Guideを 参照してください。

AES および DES
WRAP-ENH これは、ANSI X9.24 標準に準拠した拡張鍵ラップ方式を使用します。 DES
WRAP-ECB これは、元の鍵ラップ方式 (DES 鍵トークンには ECB ラップが使用され、AES 鍵トークンには CBC ラップが使用される) を使用します。 AES または DES
変換制御 (オプション)
ENH-ONLY これは、target_key_identifier トークンの再ラップを禁止します。 拡張方式でラップされたトークンは元の方式で再ラップできません。 DES
ハッシュ方式 (オプション - PKCSOAEP と一緒の場合にのみ有効)
SHA-1 これは、OAEP メッセージ・ハッシュを計算するために SHA-1 ハッシュ方式を使用することを指定します。 これがデフォルトです。 AES または DES
SHA-256 これは、OAEP メッセージ・ハッシュを計算するために SHA-256 ハッシュ方式を使用することを指定します。 AES または DES
key_encrypting_key_identifier
方向 タイプ
入出力 ストリング

鍵暗号鍵のラベルまたは内部トークン。 rule_array で IM が指定される場合、 この DES 鍵は IMPORTER でなければなりません。 rule_array で EX が指定される場合、 この DES 鍵は EXPORTER でなければなりません。 そうでない場合、パラメーターは無視されます。

RSA_public_key_identifier_length
方向 タイプ
入力 整数

RSA_public_key_identifier パラメーターの長さ。 RSA_public_key_identifier パラメーターがラベルの場合、このパラメーターはラベルの長さを指定します。 最大サイズは 3500 バイトです。

RSA_public_key_identifier
方向 タイプ
入力 ストリング

生成された対称鍵を保護するために使用される RSA 公開鍵の トークンまたはラベル。

local_enciphered_key_token_length (元は DES_enciphered_key_token_length)
方向 タイプ
入出力 整数

local_enciphered_key_token の長さ (バイト)。 このフィールドは、生成されるトークンの実際の長さで更新されます。 最小長は 64 バイトです。 最大長は 128 バイトです。

local_enciphered_key_token (元は DES_enciphered_key_token)
方向 タイプ
入出力 ストリング

このパラメーターには、生成された DATA 鍵が、rule_array に指定された値に従って内部トークンまたは外部トークンの形式で含まれます。 PKA92 を指定する場合は、入力でインポーター鍵またはエクスポーター鍵の内部 (操作可能) 鍵トークンを指定してください。

RSA_enciphered_key_length
方向 タイプ
入出力 整数

RSA_enciphered_key パラメーターの長さ。 このサービスでは、このフィールドは、生成される RSA_enciphered_key の実際の長さで更新されます。 最大サイズは 512 バイトです。

RSA_enciphered_key
方向 タイプ
入出力 ストリング

このフィールドには RSA 暗号化鍵が含まれます。 その鍵は、RSA_public_key_identifier フィールドで指定される公開鍵で保護されます。

使用上の注意

呼び出し側がこの呼び出し可能サービス、鍵ラベル、または CKDS か PKDS に保管された内部セキュア鍵トークンの使用を許可されているかを検査するために、SAF が呼び出される場合があります。

ハードウェア構成によって鍵管理用の鍵のモジュラス・サイズに制限が設定されるため、RSA 鍵モジュラスのビット長が この制限を超えると、このサービスは失敗します。

入力 NOCV 鍵暗号鍵トークンを使用して PKA92 を指定することはサポートされません。

鍵暗号鍵を生成するには、PKA92 鍵フォーマット方式を使用します。 このサービスでは、IBM Transaction Security System (TSS) 4753、4755、および AS/400 暗号化製品の PKA92 実装環境で使用される 鍵暗号化技法を使用して 1 つの鍵コピーが暗号化されます (PKA92 鍵フォーマットおよび暗号化プロセスを参照してください)。 この鍵の RSA 暗号化コピーの制御ベクトルは、入力時に RSA_enciphered_key 変数内に存在するはずの 内部 (操作可能) DES 鍵トークンから取得されます。 鍵生成サービスで OPEX ケースの規則に準拠する鍵暗号鍵のみが許可されます。 ローカル鍵の制御ベクトルは、入力時に local_enciphered_key_token 変数内に存在するはずの DES 鍵トークンから取得されます。 一方の鍵コピーの制御ベクトルは EXPORTER クラスから取得され、もう一方の鍵コピーの制御ベクトルは IMPORTER クラスから取得されることになっています。

アクセス制御点

下表に、このサービスの機能を制御するドメイン役割内のアクセス制御点を示します。

表 2. 対称鍵生成に必要なアクセス制御点
鍵アルゴリズム 鍵フォーマット規則 アクセス制御点
DES PKCS-1.2 Symmetric Key Generate - DES, PKCS-1.2
DES ZERO-PAD Symmetric Key Generate - DES, ZERO-PAD
DES PKA92 Symmetric Key Generate - DES, PKA92
AES PKCSOAEP、PKCS-1.2 Symmetric Key Generate - AES, PKCSOAEP, PKCS-1.2
AES ZERO-PAD Symmetric Key Generate - AES, ZERO-PAD

WRAP-ECB キーワードまたは WRAP-ENH キーワードが指定されているときに、 デフォルト鍵ラップ方式の設定がキーワードに適合しない場合は、「Symmetric Key Generate - Allow wrapping override keywords」アクセス制御点を有効にする必要があります。

RSA 鍵 ID が、生成される鍵より弱い鍵である場合は、以下のようになります。
  • 「Prohibit weak wrapping - Transport keys」アクセス制御点が有効になっている場合、サービスは失敗します。
  • 「Warn when weak wrap - Transport keys」アクセス制御点が有効になっている場合、サービスは正常に完了し、警告戻りコードが返されます。

「Disallow 24-byte DATA wrapped with 16-byte Key」アクセス制御点が有効になっているときに、 ソース鍵が 3 倍長の DATA 鍵であり DES マスター鍵が 16 バイトの鍵であると、このサービスは失敗します。

必須ハードウェア

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

表 3. 対称鍵生成必須ハードウェア
サーバー 必須暗号化ハードウェア 制約事項

IBM eServer zSeries 990
IBM eServer zSeries 890

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

Crypto Express2 コプロセッサー

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

セキュア AES 鍵はサポートされません。

キーワード ENH-ONLY、USECONFG、WRAP-ENH、WRAP-ECB、および SHA-256 はサポートされません。

SHA-256 ハッシュ方式が使用される PKCSOAEP はサポートされません。

IBM System z9 EC
IBM System z9 BC

Crypto Express2 コプロセッサー

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

セキュア AES 鍵サポートには、2008 年 11 月以降のライセンス内部コード (LIC) が必要です。

ENH-ONLY、USECONFG、WRAP-ENH、WRAP-ECB、および SHA-256 はサポートされません。

SHA-256 ハッシュ方式が使用される PKCSOAEP はサポートされません。

IBM System z10 EC
IBM System z10 BC

Crypto Express2 コプロセッサー

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

セキュア AES 鍵サポートには、2008 年 11 月以降のライセンス内部コード (LIC) が必要です。

ENH-ONLY、USECONFG、WRAP-ENH、WRAP-ECB、および SHA-256 はサポートされません。

SHA-256 ハッシュ方式が使用される PKCSOAEP はサポートされません。

Crypto Express3 コプロセッサー

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

セキュア AES 鍵サポートには、2008 年 11 月以降のライセンス内部コード (LIC) が必要です。

SHA-256 キーワードはサポートされていません。

SHA-256 ハッシュ方式が使用される PKCSOAEP はサポートされません。

IBM zEnterprise 196
IBM zEnterprise 114

Crypto Express3 コプロセッサー

SHA-256 ハッシュ方式が使用される PKCSOAEP には 2011 年 9 月以降のライセンス内部コード (LIC) が必要です。

IBM zEnterprise EC12
IBM zEnterprise BC12

Crypto Express3 コプロセッサー

Crypto Express4 CCA コプロセッサー

 
IBM z13 Crypto Express5 CCA コプロセッサー