対称 MAC 検査 (CSNBSMV または CSNBSMV1 および CSNESMV または CSNESMV1)
対称 MAC 検査呼び出し可能サービスは、AES 鍵を使用してアプリケーション指定のテキスト・ストリングに対して 96 ビット または 128 ビットのメッセージ認証コード (MAC) を検証する場合に使用します。
AMODE(64) 呼び出しの呼び出し可能サービス名は CSNESMV および CSNESMV1 です。
CSNBSMV および CSNBSMV1 から、または CSNESMV および CSNESMV1 からの選択
- CSNBSMV および CSNESMV では、テキストは呼び出し側の 1 次アドレス・スペースに入っていなければなりません。 また、CSNBSMV を使用するプログラムは、IBM の「Common Cryptographic Architecture: Cryptographic Application Programming Interface」に従っていなければなりません。
- CSNBSMV1 および CSNESMV1 では、テキストは呼び出し側の 1 次アドレス・スペースに入れることも、 データ・スペースに入れることもできます。 これにより、1 回の呼び出しで、より多くのデータを復号できるようになります。 ただし、CSNBSMV1 および CSNESMV1 を使用するプログラムは、IBM の「CCA Cryptographic Architecture: Cryptographic Application Programming Interface」に従いません。 そのようなプログラムは、このプログラミング・インターフェースに従う他の暗号化製品で実行する前に変更しておかなければならない場合があります。
CSNBSMV1 および CSNESMV1 の場合、text_id_in は、問題のテキストが含まれる データ・スペースのアクセス・リスト項目トークン (ALET) パラメーターです。
形式
CALL CSNBSMV(
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)
パラメーター
- 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 バイト位置で左寄せされ、右側にブランクが埋め込まれている必要があります。
rule_array キーワードの順序は固定されていません。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
-
方向 タイプ 入力 ストリング 検証する MAC 値が含まれる 12 バイトまたは 16 バイトのフィールド。 値は左寄せにして、ゼロを埋め込む必要があります。
- text_id_in
-
方向 タイプ 入力 整数 CSNBSMV1 および CSNESMV1 に関してのみ、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 |