CUSP

暗号化するデータの長さが正確に 8 バイトの倍数である場合、ICV では非暗号化テキストの最初の 8 バイト・ブロックと排他的論理和がとられ、結果の 8 バイトが、指定された鍵で DES に渡されます。 次に暗号化テキストの結果の 8 バイト・ブロックは、非暗号化テキストの 2 番目の 8 バイト・ブロックと排他的論理和がとられ、値が暗号化されます。 このプロセスは、非暗号化テキストの最後の 8 バイト・ブロックが暗号化されるまで続行されます。 この最後のブロックの長さは正確に 8 バイトであるので、最後のブロックは先行のすべてのブロックと同じ方法で処理されます。

OCV を生成するために、暗号化テキスト の最後のブロックが再度暗号化されます (つまり二重に暗号化されたブロックが生成されます)。 ユーザーは OCV のこの値を、次の暗号化呼び出しで ICV として渡し、連続する呼び出し間のチェーニングを生成できます。 あるいは呼び出し側は、呼び出し可能サービスへの呼び出しのたびに、同じ ICV を渡すこともできます。

暗号化されるデータの長さが 7 バイトより大きく、正確に 8 バイトの倍数ではない 場合、1 バイトから 7 バイトの最後の部分ブロックに達するまでは、プロセスは上記と同じです。 最後の短ブロックを暗号化するために、暗号化テキストの直前の 8 バイト・ブロックは、指定された鍵とともに DES に渡されます。 この二重暗号化ブロックの最初の 1 バイトから 7 バイトには、2 つの用途があります。 最初の用途は、このブロックと非暗号化テキストの最後の短ブロックの排他的論理和をとり、暗号化テキストの最後の短ブロックを形成することです。 2 番目の用途は、それを OCV として戻すことです。 このようにすることで、OCV は二重に暗号化された、非暗号化テキストの最後の完成 8 バイト・ブロックになります。

暗号化されるデータの長さが 8 バイト未満の場合、ICV は指定された鍵で暗号化されます。 暗号化された ICV の最初の 1 バイトから 7 バイトは、暗号化テキストを形成するために、非暗号化テキストとの排他的論理和がとられます。 OCV は、暗号化された ICV です。