プログラミング
 Computer >> コンピューター >  >> プログラミング >> プログラミング

情報セキュリティにおけるブロック暗号のさまざまな動作モードは何ですか?


ブロック暗号は、共有の秘密鍵を使用して一定サイズの情報ブロックを処理する対称暗号化アルゴリズムです。平文は暗号化中に使用でき、結果として得られる暗号化されたテキストは暗号文と呼ばれます。同様のキーは、平文の暗号化と暗号文の復号化の両方に使用できます。

ブロック暗号には、次のようなさまざまな操作モードがあります-

電子コードブック(ECB)モード −これが最も簡単なモードです。このモードでは、プレーンテキストは各ブロックが64ビットのブロックに分割されます。したがって、各ブロックは個別に暗号化されます。等しいキーは、すべてのブロックの暗号化に使用できます。各ブロックはキーを使用して暗号化され、暗号文のブロックを作成します。

電子コードブックは、暗号文を暗号化するために平文のすべてのブロックに個別に暗号化機能を処理します(暗号文を復号化するために暗号文のすべてのブロックに逆関数を処理します)。これにより、CBCが複数のブロックを並行して暗号化および復号化できることを定義でき(相互に基づいていないため)、プロセスが高速化されます。

暗号文ブロック連鎖(CBC)モード − CBCモードでは、各平文ブロックは、暗号化される前に前の暗号文ブロックと排他的論理和がとられます。最初のブロックでは、初期化ベクトルを使用して送信者をEX-ORすることができ、受信者は事前に提示された初期化ベクトルに同意します。

CBCはメッセージの暗号化に使用できますが、連鎖構造のため、並列処理は適用できません。ランダムアクセスファイル情報の暗号化と復号化には使用できません。

出力フィードバック(OFB)モード − CFBモードと同等ですが、1つ違いがあります。暗号文の各ビットは、前のビットから独立しています。これにより、あるブロックから別のブロックへのエラーの流れを防ぐことができます。

この方法の利点は、送信時のビットエラーが再現されないことです。この方法の欠点は、CFBよりもメッセージフロー変更攻撃に対して脆弱であるということです。

暗号フィードバック(CFB)モード −このモードでは、各ユニットが8ビットのユニットの設計でデータが暗号化されます。ストリーム暗号化を必要とするアプリケーションでストリーム暗号化を実行するために使用できます。

さらに、各暗号文ブロックは、暗号化手順中に次のプレーンテキストブロックへの入力として導入されます。 CFBモードもECBモードとは異なります。これは、各暗号文ブロックの暗号化が、入力された平文ブロック、暗号化キー、および前の暗号文ブロックに基づいているためです。

CFBモードは通常、ブロックの代わりに小さな情報ユニットで動作するように作成されたアプリケーションで使用されます。

カウンターモード −カウンターは、平文のブロックサイズが使用されるのと同様です。暗号化の場合、カウンターは暗号化されるため、平文ブロックとXORされて、暗号文ブロックが作成されます。

復号化の場合、暗号文ブロックとXORされた暗号化された各カウンターで、同様のカウンター値のシーケンスを使用できます。 CTRモードは、ハードウェアとソフトウェアの有効性、前処理、保護、および整合性で使用されます。


  1. 情報セキュリティにおける最新のブロック暗号のコンポーネントは何ですか?

    最新のブロック暗号は、平文のmビットブロックを暗号化し、暗号文のmビットブロックを復号化する暗号です。暗号化または復号化の場合、最新のブロック暗号はKビットキーを容易にし、復号化アルゴリズムは暗号化アルゴリズムの逆である必要があり、暗号化と復号化の両方で同様のキーが使用されます。 ブロック暗号は、nビットの平文ブロックで機能し、nビットの暗号文ブロックを作成します。複数の平文ブロックが存在する可能性があり、暗号化を可逆的にするために(つまり、復号化を適用するために)、それぞれが一意の暗号文ブロックを作成する必要があります。このような変換は、リバーシブルまたは非特異として知られています。 ブ

  2. Java 9のモジュールのさまざまなコンパイルモードは何ですか?

    モジュール はパッケージのコンテナであり、各モジュールにはモジュールを含むモジュール記述子が含まれています 名前 、モジュール 依存関係、 これは、他のモジュールの名前が依存していることと、それに依存しているモジュールのみが使用できるエクスポートするパッケージの名前を意味します。 module com.tutorialspoint.app {    /** Modules upon which the module com.tutorialspoint.app depends on */    requires com.tutorialspoint.se