3-DES暗号化のコンテキストでのKCV(キーチェック値)とは何ですか?KCVとは何か、およびKCVを3-DES暗号化でどのように使用できるかについての優れたドキュメントはありますか?
2 に答える
"6.15キーチェック値
目的:データは、カード/プロセッサが特定のDESキー値にアクセスできることを証明するために使用されます。
形式:バイナリ、3バイト
内容:DESによってゼロの8バイトを暗号化した結果の左端の3バイト関係するキー」(ソース)
__
「DESキーのキーチェック値は、関係するキーでECB 3DESを使用して「00」の8バイトを暗号化することによって計算されます」(ソース)
__
「DES/3DESキーのキーチェック値(省略形KCVまたはCV)は、キーを使用して16個の16進ゼロを暗号化した結果です。たとえば、単一長DESキー0123456789ABCDEFのキーチェック値はD5D44FF720683D0Dと同じです。情報は、暗号化された方法でDES / 3DESキーを送信する場合に役立ち、通常、受信者がキーを正しく受信したことを確認するために送信者によって送信されます。」(ソース)
__
私には、これはある種のチェックサムのようです。
KCVは、ハードウェアセキュリティデバイスのPKCS#11標準などで使用されます。おそらく複数の部分で秘密鍵をインポートする必要があると想像してください。次に、インポートが成功したことを確認する必要があります。以前に計算されたKCV値に対して、すべてゼロ(またはその左端)のブロック暗号化をチェックするだけです。対称アルゴリズムは既知の平文/暗号文攻撃に対して無防備であると想定されているため、キーに関する情報を漏らすことはありません。
ハードウェアセキュリティデバイスの場合、通常、キーは抽出できません。したがって、ハッシュメソッドで使用できない場合や、ハッシュメソッド自体が使用できない場合があります。したがって、すべてゼロでキー暗号化を実行することは、安全なチェックサムを作成するための優れた方法です。RSAキーなどの他のキーの場合、通常、暗号化の代わりにハッシュ(SHA-1)を使用して、キー(の値)を識別します。
ソフトウェアでは、ゼロのみを含むブロックを作成してから、IVをすべてゼロに設定してECB暗号化またはCBC暗号化を実行できます。次に、xバイトをKCVとして使用します。KCVのバイト数は、使用される標準によって異なります。使用するバイト数が3バイト未満の場合、誤って同じ値のキーに遭遇する可能性があります。
KCVは少しの情報を漏らしていることに注意してください。これは、すべてゼロのブロックの暗号文暗号化がどのように見えるかを示しています。ランダムなIVを使用してCBC暗号化を実行する場合、それはそれほど重要ではありません。一方、IVがゼロのCTRモード暗号化を使用すると、キーストリームの最初の3バイト(したがってプレーンテキスト)がリークする可能性があります。
RobIIIと一致させましょう:ソース(注:FTP)