対称 MAC 生成 (CSNBSMG または CSNBSMG1 および CSNESMG または CSNESMG1)
対称 MAC 生成呼び出し可能サービスは、AES 鍵を使用して アプリケーション指定のテキスト・ストリングに対して 96 ビットまたは 128 ビットのメッセージ認証コード (MAC) を生成する場合に使用します。
AMODE(64) 呼び出しの呼び出し可能サービス名は CSNESMG および CSNESMG1 です。
CSNBSMG および CSNBSMG1 または CSNESMG および CSNESMG1 からの選択
- CSNBSMG および CSNESMG では、テキストは呼び出し側の 1 次アドレス・スペースに入っていなければなりません。 また、CSNBSMG を使用するプログラムは、IBM の「Common Cryptographic Architecture: Cryptographic Application Programming Interface」に従っていなければなりません。
- CSNBSMG1 および CSNESMG1 では、テキストは呼び出し側の 1 次アドレス・スペースに入れることも、 データ・スペースに入れることもできます。 これにより、1 回の呼び出しで、より多くのデータを復号できるようになります。 ただし、CSNBSMG1 および CSNESMG1 を使用するプログラムは、IBM の「CCA Cryptographic Architecture: Cryptographic Application Programming Interface」に従いません。 そのようなプログラムは、このプログラミング・インターフェースに従う他の暗号化製品で実行する前に変更しておかなければならない場合があります。
CSNBSMG1 および CSNESMG1 の場合、text_id_in は、問題のテキストが含まれる データ・スペースのアクセス・リスト項目トークン (ALET) パラメーターです。
形式
CALL CSNBSMG(
return_code,
reason_code,
exit_data_length,
exit_data,
key_identifier_length,
key_identifier,
text_length,
text,
rule_array_count,
rule_array,
chaining_vector_length,
chaining_vector,
reserved_data_length,
reserved_data,
mac_length,
mac)
CALL CSNBSMG1(
return_code,
reason_code,
exit_data_length,
exit_data,
key_identifier_length,
key_identifier,
text_length,
text,
rule_array_count,
rule_array,
chaining_vector_length,
chaining_vector,
reserved_data_length,
reserved_data,
mac_length,
mac,
text_id_in)
パラメーター
- return_code
-
方向 タイプ 出力 整数 戻りコードは、呼び出し可能サービスの一般的な結果を示しています。 ICSF および暗号化コプロセッサーの戻りコードおよび理由コードに、戻りコードがリストされています。
- reason_code
-
方向 タイプ 出力 整数 理由コードは、アプリケーション・プログラムに返される、呼び出し可能サービスの結果を示しています。 戻りコードにはそれぞれ、特定の処理問題を示すさまざまな理由コードがあります。 ICSF および暗号化コプロセッサーの戻りコードおよび理由コード に、理由コードがリストされています。
- exit_data_length
-
方向 タイプ 入力 整数 インストール・システム出口に渡されるデータの長さ。 データは exit_data パラメーターで識別されます。
- exit_data
- このデータはインストール出口に渡されます。
方向 タイプ 入出力 ストリング - key_identifier_length
-
方向 タイプ 入力 ストリング key_identifier パラメーターの長さ。 KEY-CLR キーワードの場合、長さはバイト単位であり、鍵の長さの値のみが含まれます。 鍵の長さの値は 16、24、または 32 です。 KEYIDENT キーワードの場合、長さは 64 でなければなりません。 KEY-DRV キーワードの場合、これは鍵素材の長さ (バイト) です。 この長さは 16 バイトから 32 バイトまでで指定できます。
- key_identifier
-
方向 タイプ 入力 ストリング KEY-CLR キーワードの場合、これは非暗号化 AES 鍵を指定します。 パラメーターは左寄せする必要があります。KEYIDENT キーワードの場合、これは CKDS 内の内部非暗号化 AES トークンを指定するか、または非暗号化 AES 鍵のラベル名を指定します。 標準の CKDS ラベル名構文を使用する必要があります。 KEY-DRV キーワードの場合、これは 128 ビット AES 鍵の導出元となる鍵素材を指定します。
- text_length
-
方向 タイプ 入力 整数 text パラメーターで指定されるテキストの長さ。 最大テキスト長は 2147483647 バイトです。 text_length が 8 バイトの倍数ではない 場合に、rule_array パラメーターの ONLY キーワードまたは LAST キーワードが呼び出されると、 指定の処理規則に従ってテキストに対して埋め込みが行われます。
- text
-
方向 タイプ 入力 ストリング MAC が生成されるときの対象となるアプリケーション指定のテキスト。
- rule_array_count
-
方向 タイプ 入力 整数 rule_array パラメーターで指定するキーワードの数。 値は 1、2、3 または 4 にすることができます。
- rule_array
-
方向 タイプ 入力 文字ストリング このキーワードは、呼び出し可能サービスに制御情報を提供します。キーワードは、8 バイトの連続するストレージ内になければならず、その 8 バイト位置で左寄せされ、右側にブランクが埋め込まれている必要があります。
MAC 処理規則を 1 つ指定し、セグメント化制御キーワードを 1 つ選択し、MAC 長キーワードを 1 つ選ぶことができます。表 1. 対称 MAC 生成制御情報のキーワード キーワード 意味 アルゴリズム (必須) AES これは、Advanced Encryption Standard (AES) アルゴリズムが使用されることを指定します。 MAC 処理規則 (オプション) CBC-MAC CBC MAC (すべての鍵の長さに対して埋め込みが行われる)。 これがデフォルト値です。 XCBC-MAC AES-XCBC-MAC-96 および AES-XCBC-PRF-128 MAC 生成 (128 ビット鍵に対して埋め込みが行われる)。 鍵規則 (オプション) KEY-CLR これは、鍵パラメーターに非暗号化鍵値が含まれることを指定します。 これがデフォルト値です。 KEYIDENT これは、CKDS 内の key_identifier フィールドが内部非暗号化トークンになるか、または非暗号化鍵のラベル名になることを指定します。 標準の CKDS ラベル名構文を使用する必要があります。 KEY-DRV これは、XCBC-MAC 操作に対して 128 ビット AES 鍵を導出するときの導出元となる 鍵素材が鍵パラメーターに 256 ビットまで含まれることを指定します。 これは XCBC-MAC と一緒の場合にのみ有効です。 セグメント化制御 (オプション) FIRST 最初の呼び出し。 これはアプリケーション・プログラムのデータの最初のセグメントです。 LAST 最後の呼び出し。 これは最後のデータ・セグメントです。 MIDDLE 中間呼び出し。 これは中間データ・セグメントです。 ONLY 呼び出しのみ。 アプリケーション・プログラムでセグメント化は使用されません。 これがデフォルト値です。 - chaining_vector_length
-
方向 タイプ 入出力 整数 chaining_vector パラメーターの長さ。 出力では、チェーニング・ベクトルの実際の長さがパラメーターに保管されます。
- chaining_vector
-
方向 タイプ 入出力 ストリング このフィールドは、 チェーニング・ベクトルのシステム作業域として使用されます。 ご使用のアプリケーション・プログラムで、このストリングに含まれるデータを変更してはなりません。 チェーニング・ベクトルには、呼び出し側の出力チェーニング・ベクトルが保持されます。
chaining_vector のマッピングは、指定されるアルゴリズムによって異なります。 AES の場合、chaining_vector フィールドの長さは少なくとも 36 バイトでなければなりません。
最初の呼び出しで、このパラメーターを 2 進ゼロとして初期化します。
- reserved_data_length
-
方向 タイプ 入力 整数 将来用に予約済み。 値はゼロでなければなりません。
- reserved_data
-
方向 タイプ 無視される ストリング 将来用に予約済み。
- mac_length
-
方向 タイプ 入力 整数 MAC フィールドにおいて返される MAC の長さ (バイト)。 許容値は 12 バイトと 16 バイトです。
- mac
-
方向 タイプ 出力 ストリング セグメント化規則が ONLY または LAST の場合に 呼び出し可能サービスが MAC 値を返す 12 バイトまたは 16 バイトのフィールド。
- text_id_in
-
方向 タイプ 入力 整数 CSNBSMG1 および CSNESMG1 に関してのみ、MAC が生成されるときの対象となるテキストの ALET。
使用上の注意
XCBC-MAC 処理規則に関しては、ONLY キーワードまたは LAST キーワードの指定時に text_length を 0 にすることができます。 ただし、最後の呼び出しを行う前に、最初の呼び出しや中間の呼び出しを行う必要があります。
必須ハードウェア
次の表は、サーバー・タイプごとの必須暗号化ハードウェアをリストしたものです。 この表では、この呼び出し可能サービスに対する制限について説明します。
サーバー | 必須暗号化ハードウェア | 制約事項 |
---|---|---|
IBM eServer zSeries 990 |
CP Assist for Cryptographic Functions | |
IBM System z9 EC |
CP Assist for Cryptographic Functions | |
IBM System z10 EC |
CP Assist for Cryptographic Functions | |
IBM zEnterprise 196 |
CP Assist for Cryptographic Functions | |
IBM zEnterprise EC12 |
CP Assist for Cryptographic Functions | |
IBM z13 |
CP Assist for Cryptographic Functions |