復号 (CSNBDEC または CSNBDEC1 および CSNEDEC または CSNEDEC1)

復号呼び出し可能サービスは、暗号化ブロック・チェーン・モードを使用してアドレス・スペースまたはデータ・スペースのデータを復号するために使用します。ICSF は、データを復号するための以下の処理規則をサポートしています。復号呼び出し可能サービスがブロック・チェーンに対して使用すべき処理規則のタイプを選択します。
処理規則
目的
ANSI X9.23
暗号化ブロック・チェーン用。暗号化テキストは、8 バイトの正確な倍数でなければなりませんが、非暗号化テキストは暗号化テキストより 1 バイトから 8 バイト短くなります。非暗号化テキストの元の長さを示すための text_length も短縮されます。
CBC
暗号化ブロック・チェーン用。暗号化テキストは、8 バイトの正確な倍数でなければならず、非暗号化テキストは同じ長さになります。
CUSP
暗号化ブロック・チェーン用ですが、暗号化テキストは任意の長さにすることができます。 非暗号化テキストは暗号化テキストと同じ長さになります。
IBM 4700
暗号化ブロック・チェーン用。暗号化テキストは、8 バイトの正確な倍数でなければなりませんが、非暗号化テキストは暗号化テキストより 1 バイトから 8 バイト短くなります。非暗号化テキストの元の長さを示すための text_length も短縮されます。
IPS
暗号化ブロック・チェーン用ですが、暗号化テキストは任意の長さにすることができます。 非暗号化テキストは暗号化テキストと同じ長さになります。

暗号化ブロック・チェーン (CBC) モードでは、処理を行う際に初期チェーン値 (ICV) を使用します。暗号化テキストの最初の 8 バイトが復号され、次に、ICV がこの結果の 8 バイトのデータと排他的論理和演算され、最初の 8 バイト・ブロックの非暗号化テキストが形成されます。その後、8 バイト・ブロックの暗号化テキストが復号され、すべての暗号化テキストが復号されるまで、直前の 8 バイト・ブロックの暗号化テキストと排他的論理和演算されます。

Single-DES 暗号化解除モードと Triple-DES 暗号化解除モードのどちらを選択するかは、key_identifier パラメーターに指定されている鍵の長さによって決まります。単一長の鍵が指定されている場合、Single-DES 暗号化解除が実行されます。倍長の鍵または 3 倍長の鍵が指定されている場合は、Triple-DES 暗号化解除が実行されます。

呼び出しごとに異なる ICV を復号呼び出し可能サービスに渡すことができます。ただし、対応する暗号化呼び出し可能サービスで使用されたものと同じ ICV を渡す必要があります。

短ブロックは 1 バイトから 7 バイトの長さのテキストです。短ブロックは唯一のブロックにすることができます。末尾の短ブロックは、8 バイトの正確な倍数のテキストに続く 1 バイトから 7 バイトのブロックです。例えば、テキストの長さが 21 の場合、8 バイトのブロックが 2 つと、5 バイトの末尾の短ブロックが 1 つ存在します。DES は、8 バイトの正確な倍数のテキストのみ処理するため、このような短ブロックを復号するために、ある特別な処理が必要になります。短ブロックと、1 バイトから 7 バイト・データの末尾の短ブロックは、Cryptographic Unit Support Program (CUSP) 規則に従って処理されるか、IPS/CMS 製品の Information Protection System (IPS) により考案され使用されているレコード・チェーン・スキームによって処理されます。

短ブロックおよび末尾の短ブロックを処理するこれらの方法では、暗号化テキストの長さが非暗号化テキストの長さより長くなることはありません。暗号化中に非暗号化テキストの埋め込み が行われた場合、暗号化テキストの長さは必ず 8 バイトの正確な倍数になります。

ICSF は以下の埋め込みスキームをサポートしています。
  • ANSI X9.23
  • 4700-PAD

CSNBDEC および CSNBDEC1 からの選択

CSNBDEC と CSNBDEC1 は同じ機能を提供します。使用するサービスを選択するときは、以下を考慮してください。
  • CSNBDEC では、暗号化テキストと非暗号化テキストを呼び出し側の 1 次アドレス・スペースに置く必要があります。 また、CSNBDEC を使用するプログラムは IBM Common Cryptographic Architecture: Cryptographic Application Programming Interface に準拠しています。

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

  • CSNBDEC1 では、暗号化テキストと非暗号化テキストを呼び出し側の 1 次アドレス・スペース、またはデータ・スペースのいずれかに置くことができます。これにより、1 回の呼び出しで、より多くのデータを復号できるようになります。 ただし、CSNBDEC1 を使用するプログラムは IBM Common Cryptographic Architecture: Cryptographic Application Programming Interface に準拠していないため、このプログラミング・インターフェースに準拠する他の暗号化製品で当該プログラムを実行する前に、プログラムの変更が必要になる場合があります。

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

    CSNBDEC1 および CSNEDEC1 では、cipher_text_id および clear_text_id が、暗号化テキストおよび非暗号化テキストを含む、データ・スペースのアクセス・リスト項目トークン (ALET) のパラメーターです。

形式

CALL CSNBDEC(
             return_code,
             reason_code,
             exit_data_length,
             exit_data,
             key_identifier,
             text_length,
             cipher_text,
             initialization_vector,
             rule_array_count,
             rule_array,
             chaining_vector,
             clear_text) 
CALL CSNBDEC1(
             return_code,
             reason_code,
             exit_data_length,
             exit_data,
             key_identifier,
             text_length,
             cipher_text,
             initialization_vector,
             rule_array_count,
             rule_array,
             chaining_vector,
             clear_text,
             cipher_text_id,
             clear_text_id)

パラメーター

return_code
方向 タイプ
出力 整数

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

reason_code
方向 タイプ
出力 整数

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

exit_data_length
方向 タイプ
入出力 整数

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

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

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

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

データの復号に使用される 64 バイト・ストリング。これは、データ暗号化鍵を含む内部鍵トークン、またはデータ暗号化鍵を含む CKDS レコードのラベルです。鍵トークンまたは鍵ラベルに単一長の鍵が含まれている場合、Single-DES 暗号化解除が実行されます。鍵トークンまたは鍵ラベルに倍長の鍵または 3 倍長の鍵が含まれている場合、Triple-DES 暗号化解除が実行されます。

単一長および倍長の CIPHER 鍵および DECIPHER 鍵もサポートされています。

text_length
方向 タイプ
入出力 整数
入力では、暗号化テキストの長さを指定します。最大テキスト長は 214783647 バイトです。 text_length パラメーターではゼロの値は無効です。返された復号テキスト (clear_text パラメーター) が、埋め込みバイトの除去により異なる長さになっている場合は、値は非暗号化テキストの長さに更新されます。
注: MAXLEN 値は引き続きオプション・データ・セットに指定できますが、最大値制限のみが適用されます。

アプリケーション・プログラムは暗号化テキストの長さを呼び出し可能サービスに渡します。 呼び出し可能サービスは、非暗号化テキストの長さをアプリケーション・プログラムに返します。

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

復号するテキスト。

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

暗号化ブロック・チェーン用に提供された 8 バイトのストリング。非暗号化テキストの最初のブロックを取得するために、暗号化テキストの最初のブロックが復号され、初期チェーニング・ベクトル (ICV) と排他的論理和演算されます。入力ブロックは次の ICV です。データを復号するには、データを暗号化したときに使用したものと同じ ICV を使用する必要があります。

rule_array_count
方向 タイプ
入力 整数

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

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

処理制御情報を提供する 8 バイトのキーワードの配列。この配列は定位置です。表 1 のキーワードを参照してください。配列内の最初のキーワードは処理規則です。呼び出し可能サービスでデータを復号化する際に使用する処理規則を選択します。2 番目のキーワードは ICV 選択キーワードです。3 番目のキーワード (ICV 選択キーワードをデフォルト設定できる場合は、2 番目のキーワード) は、使用する暗号化アルゴリズムです。

表 1. 復号規則配列制御情報のキーワード
キーワード 意味
処理規則 (必須)

規則 CUSP、IPS、X9.23、および 4700-PAD は、要求が 1 つの場合か、またはチェーニングされた一連の要求の最後の要求にのみ指定する必要があります。

CBC NIST SP 800-38A に記載されている暗号化ブロック・チェーンを実行します。このデータは 8 バイトの倍数でなければなりません。OCV が生成され、chaining_vector パラメーターに入れられます。ICV 選択キーワード CONTINUE が指定されている場合、直前の呼び出しからの CBC OCV がこの呼び出しの ICV として使用されます。
CUSP IBM の CUSP 製品および PCF 製品と互換性のある復号を実行します。データは任意の長さにすることができ、8 バイトの倍数である必要はありません。暗号化テキストは非暗号化テキストと同じ長さになります。CUSP/PCF OCV が chaining_vector パラメーターに入れられます。ICV 選択キーワード CONTINUE が指定されている場合、直前の呼び出しからの CUSP/PCF OCV がこの呼び出しの ICV として使用されます。
IPS IBM の IPS 製品と互換性のある復号を実行します。データは任意の長さにすることができ、8 バイトの倍数である必要はありません。暗号化テキストは非暗号化テキストと同じ長さになります。IPS OCV が chaining_vector パラメーターに入れられます。ICV 選択キーワード CONTINUE が指定されている場合、直前の呼び出しからの IPS OCV がこの呼び出しの ICV として使用されます。
X9.23 暗号化ブロック・チェーンおよび元の値に短縮されたテキスト長による復号を実行します。これは、ANSI 規格 X9.23 の要件と互換性があります。暗号化テキストの長さは、8 バイトの正確な倍数でなければなりません。埋め込みは非暗号化テキストから除去されます。
4700-PAD 暗号化ブロック・チェーンおよび元の値に短縮されたテキスト長による復号を実行します。暗号化テキストの長さは、8 バイトの正確な倍数でなければなりません。埋め込みは非暗号化テキストから除去されます。
ICV 選択 (オプション)
CONTINUE これは、chaining_vector パラメーターが指している作業域に含まれている出力チェーニング・ベクトル (OCV) から初期設定ベクトルを取得することを指定します。CONTINUE は、CBC、IPS、および CUSP の処理規則の場合のみ有効です。
INITIAL これは、initialization_vector パラメーターから初期設定ベクトルを取得することを指定します。INITIAL はデフォルト値です。
暗号化アルゴリズム (オプション)
DES これは、Data Encryption Standard を使用し、トークンのマーク付けを無視することを指定します。
TOKEN これは、DATA 鍵トークン内のデータ暗号化アルゴリズムを使用することを指定します。これがデフォルトです。

暗号処理規則に、暗号処理規則についての詳しい説明があります。

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

ICSF がシステム作業域として使用する 18 バイトのフィールド。 ご使用のアプリケーション・プログラムで、このストリングに含まれるデータを変更してはなりません。 チェーニング・ベクトルは呼び出し側からの出力チェーニング・ベクトル (OCV) を保持します。OCV は、18 バイトのストリングの最初の 8 バイトです。

rule_array パラメーターの ICV 選択キーワードが INITIAL の場合、方向は出力です。rule_array パラメーターの ICV 選択キーワードが CONTINUE の場合、方向は入出力です。

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

呼び出し可能サービスが復号テキストを返すフィールド。

cipher_text_id
方向 タイプ
入力 整数

CSNBDEC1 および CSNEDEC1 の場合のみ、復号する暗号化テキストの ALET。

clear_text_id
方向 タイプ
入力 整数

CSNBDEC1 および CSNEDEC1 の場合のみ、アプリケーションによって提供される非暗号化テキストの ALET。

制約事項

サービスは以下の条件で失敗します。
  • 鍵トークンに倍長の鍵または 3 倍長の鍵が含まれているときに、Triple-DES が使用不可の場合。
  • トークンに CDMF のマークが付けられている場合。

使用上の注意

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

非暗号化テキスト・フィールドと暗号化テキスト・フィールドを破壊的にオーバーラップすることはできません。以下に例を示します。
pppppp
     cccccc  is supported.

cccccc
     pppppp  is not supported.

ppppppcccccc is supported.

P represents the plaintext and c represents the ciphertext.

暗号処理規則に、暗号処理規則についての説明があります。

暗号化呼び出し可能サービスについては、暗号化 (CSNBENC または CSNBENC1 および CSNEENC または CSNEENC1)で説明しています。

アクセス制御点

「Decipher - DES」アクセス制御点がこのサービスの機能を制御します。

必須ハードウェア

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

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

IBM eServer zSeries 990
IBM eServer zSeries 890

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

Crypto Express2 コプロセッサー

トークンに CDMF のマークが付けられている場合、サービスは失敗します。

IBM System z9 EC
IBM System z9 BC

Crypto Express2 コプロセッサー トークンに CDMF のマークが付けられている場合、サービスは失敗します。

IBM System z10 EC
IBM System z10 BC

Crypto Express2 コプロセッサー

Crypto Express3 コプロセッサー

トークンに CDMF のマークが付けられている場合、サービスは失敗します。

IBM zEnterprise 196
IBM zEnterprise 114

Crypto Express3 コプロセッサー トークンに CDMF のマークが付けられている場合、サービスは失敗します。

IBM zEnterprise EC12
IBM zEnterprise BC12

Crypto Express3 コプロセッサー

Crypto Express4 CCA コプロセッサー

トークンに CDMF のマークが付けられている場合、サービスは失敗します。

IBM z13

Crypto Express5 CCA コプロセッサー トークンに CDMF のマークが付けられている場合、サービスは失敗します。