Information Protection System (IPS)
Information Protection System (IPS) は、ブロックとレコードという 2 つのチェーニングの形式を提供します。 レコード・チェーンでは、各暗号化データ・ストリングの OCV が、その次の暗号化データ・ストリングの ICV になります。 ブロック・チェーンでは、同じ ICV が各暗号化に使用されます。
ICSF 暗号化呼び出し可能サービスを使用して直接暗号化されたファイルは、IPS/CMS CIPHER コマンドまたは IPS/CMS サブルーチンを使用して正しく復号することはできません。 IPS/CMS CIPHER および AMS REPRO ENCIPHER は両方とも、復号に必要な情報 (主に ICV およびチェーニング方式) を含むファイルに、ヘッダーを書き込みます。 暗号化呼び出し可能サービスは、それらのヘッダーを生成しません。 チェーニング・モードに応じて、この制限の一部 (すべてではない) を克服するための特殊な技法が、IPS/CMS の資料に記載されています。 大まかなテストとして、CIPHER コマンドに HDWARN オプションを指定して復号を試行できます。このテストにより CIPHER は、ヘッダーがないとしても処理を続行できます。
暗号化呼び出し可能サービスは、レコード・チェーンに IPS によって使用される OCV を返します。 これにより、ICSF を使用する暗号アプリケーションは、IPS レコード・チェーンとの互換性を維持することができます。
レコード・チェーンは、連続する短ブロックを処理する上位方式を提供し、呼び出し側が連続する短ブロックを渡すときの優れたエラー・リカバリー機能を備えています。
- 暗号化するデータの長さが正確に 8 バイトの倍数である場合、ICV では非暗号化テキストの最初の 8 バイト・ブロックと排他的論理和がとられ、結果の 8 バイトが、指定された鍵で DES に渡されます。
次に暗号化テキストの結果の 8 バイト・ブロックは、非暗号化テキストの 2 番目の 8 バイト・ブロックと排他的論理和がとられ、結果の値が暗号化されます。
このプロセスは、非暗号化テキストの最後の 8 バイト・ブロックが暗号化されるまで続行されます。
この最後のブロックの長さは正確に 8 バイトであるので、最後のブロックは先行のすべてのブロックと同じ方法で処理されます。
OCV は暗号化テキストの最後の 8 バイトです。
ユーザーはこの値を、次の暗号化呼び出しで ICV として渡し、連続する呼び出し間のチェーニングを生成できます。
- 暗号化されるデータの長さが 7 バイトより大きく、正確に 8 バイトの倍数ではない 場合、1 バイトから 7 バイトの最後の部分ブロックに達するまでは、プロセスは上記と同じです。 最後の短ブロックを暗号化するために、暗号化テキストの直前の 8 バイト・ブロックは、指定された鍵とともに DES に渡されます。 この二重に暗号化されたブロックの最初の 1 バイトから 7 バイトは、非暗号化テキストの最後の短ブロックとの排他的論理和がとられ、暗号化テキストの最後の短ブロックを形成します。 OCV は暗号化テキストの最後の 8 バイトです。
- 暗号化されるデータの長さが 8 バイト未満の場合、ICV は指定された鍵で暗号化されます。
暗号化された ICV の最初の 1 バイトから 7 バイトは、暗号化テキストを形成するために、非暗号化テキストとの排他的論理和がとられます。
OCV は、短ブロックの暗号化テキストで連結された非暗号化テキスト ICV の右端の 8 バイトです。
以下に例を示します。
ICV = ABCDEFGH ciphertext = XYZ OCV = DEFGHXYZ