技術共有

暗号化とセキュリティ - 一般的なブロック暗号 ECB、CBC、CFB、OFB モードの概要

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina


ここに画像の説明を挿入します


ここに画像の説明を挿入します
ここに画像の説明を挿入します


概要

ここに画像の説明を挿入します

  1. ブロック暗号の基本概念を紹介します。
  2. ECB モードの動作原理、メリットとデメリット、適用シナリオについて説明します。
  3. CBC モードの動作原理、利点と欠点、およびアプリケーション シナリオを詳しく紹介します。
  4. CFB モードの動作原理、メリットとデメリット、適用シナリオについて説明します。
  5. OFB モードの動作原理、メリットとデメリット、適用シナリオについて説明します。
  6. モード選択に関する要約と提案を提供します。

なぜ

任意の長さの平文を暗号化する必要がある場合、暗号化にはグループ反復が必要です。 ブロック暗号には多くのモードがありますが、モードを適切に選択しないと、テキストの機密性が完全に保証されません。



ブロック暗号とストリーム暗号の基本概念

ブロック暗号 : 平文データを固定長ブロック (通常は 128 ビットまたは 64 ビット) に分割し、ブロックごとに暗号化します。それぞれのブロックをブロックと呼びます。

ストリーム暗号: データ ストリームの連続処理のための暗号化アルゴリズム。ビットごとまたはバイトごとの暗号化で、データ ストリームの暗号化に適しています。


パターンとは何ですか

パターンはブロック暗号の反復アルゴリズムです

たとえば、DES アルゴリズムでは ECB モードがよく使用されます。 ECBモードは、平文を複数のグループに分けて、それぞれを暗号化する方式です。 ECB アルゴリズムは計算量が少なく、暗号化および復号化の速度が速いですが、ECB が信頼性の低いモードであることが現在証明されています。 したがって、フォーマルな場では ECB モードを使用しないでください


ブロック暗号の一般的なパターン

1. ECBモード(電子コードブックモード)

ECB は平文をグループ化し、それを直接暗号化して暗号文グループを生成します。

ここに画像の説明を挿入します

動作原理

  • 平文を複数の固定長パケットに分割します。
  • 各グループは個別に暗号化されます。

アドバンテージ

  • 計算は簡単かつ高速です。
  • 並列処理をサポートします。

欠点がある

  • 同じ平文グループ化は同じ暗号文グループ化を生成し、平文のパターンと構造を隠すことはできません。
  • 統計分析攻撃に対して脆弱です。

アプリケーションシナリオ

  • 機密情報の暗号化には適していないため、フォーマルな場での使用はお勧めできません。

ECB モードでは、平文と暗号文は 1 対 1 に対応します。同じ平文は同じ暗号文になる必要があります。したがって、暗号文から平文を直接推定することはできませんが、暗号文の特徴に基づいて標的型攻撃を実行する可能性があります。

例: ボブは転送メッセージをアリスに送信します。

分组1 = Bob的银行账号 
分组2 = Alice的银行账号 
分组3 = 转账金额

Eve は口座番号と金額を直接変更することはできませんが (復号化されたデータがないため)、グループ 1 とグループ 2 を交換することで攻撃を引き起こすことができます。

分组1 = Alice的银行账号 
分组2 = Bob的银行账号 
分组3 = 转账金额

ECB は平文情報を隠蔽しないため、この攻撃方法は成功します。


2. CBCモード(暗号文グループ連鎖モード)

暗号文グループリンクモード

ここに画像の説明を挿入します

動作原理

  • 最初の平文ブロックは初期化ベクトル (IV) と XOR 演算され、暗号化されて最初の暗号文ブロックが生成されます。
  • 後続の各平文グループは、前の暗号文グループと XOR 演算され、暗号化されて、対応する暗号文グループが生成されます。

アドバンテージ

  • セキュリティを向上させるために平文のパターンと構造を隠すことができます。
  • 並列復号化をサポートします。

欠点がある

  • 暗号化中は並列処理がサポートされないため、逐次的に実行する必要があります。
  • 特定の暗号文グループが破損すると、現在および次のグループの復号化に影響します。

CBC の中核部分は、前の暗号文グループを変数として次の平文暗号化に組み込むことです。 このように、平文が同じであっても、暗号文の XOR 演算後の結果は異なります。このようにして、平文情報の難読化の目的が達成されます。

しかし、お気づきかどうかわかりませんが、最初の平文グループをどのように扱うか? 最初の平文パケットを処理するとき、XOR は 0 です。その後、暗号文パケット A は ECB モードに縮退します。 この状況を回避するには、初期暗号文群を人為的に補完する必要があります。この初期暗号文群を IV コンポーネントと呼びます。

ここに画像の説明を挿入します

アプリケーションシナリオ

  • 高度なセキュリティが必要であり、ファイル暗号化などのシリアル暗号化が許容されるシナリオで使用されます。

3. CFBモード(暗号文フィードバックモード)

CBC モデルの改良

ここに画像の説明を挿入します
CFB モードでは、平文グループと暗号文グループの間で XOR 演算のみが実行されます。現時点では、暗号アルゴリズムの出力にはワンタイムパッドの意味があります。

動作原理

  • 最初の平文ブロックは初期化ベクトル (IV) と XOR 演算され、暗号化されて最初の暗号文ブロックが生成されます。
  • 後続の各平文グループは、前の暗号文グループと XOR 演算され、暗号化されて、対応する暗号文グループが生成されます。

アドバンテージ

  • 並列復号化をサポートします。
  • 任意の暗号文グループを復号化できます。

欠点がある

  • リプレイ攻撃に対して耐性がありません。

アプリケーションシナリオ

  • ネットワーク データ送信などのリアルタイム通信の暗号化。

4. OFBモード(出力フィードバックモード)

出力フィードバックモード。 暗号化アルゴリズムの出力は、暗号化アルゴリズムの入力にフィードバックされます。

OFB は、暗号アルゴリズムを使用して平文を暗号化するのではなく、平文グループと暗号アルゴリズムの出力を XOR 演算することによって暗号文を生成します。つまり、OFB と CFB もある程度似ています。

ここに画像の説明を挿入します

動作原理

  • 初期化ベクトル (IV) が暗号化アルゴリズムに入力され、擬似ランダム出力が生成されます。
  • 平文グループは擬似ランダム出力と XOR 演算されて、暗号文グループが生成されます。
  • 擬似ランダム出力は暗号化アルゴリズムにフィードバックされ、次の擬似ランダム出力が生成され続けます。

アドバンテージ

  • パディングは必要ありません。
  • 暗号文にエラーのあるビットが含まれている場合、対応する平文のビットのみがエラーになります。

欠点がある

  • 並列復号化はサポートされていません。
  • ビットリバーサル攻撃の危険性があります。

アプリケーションシナリオ

  • ビデオ ストリームの暗号化など、高いエラー耐性が必要なシナリオ。

モード選択の提案

  1. ECBモード: シンプルで高速ですが、安全ではないため推奨されません。
  2. CBCモード: ファイル暗号化など、高度なセキュリティ要件があるシナリオに適しており、推奨されます。
  3. CFBモード: リアルタイム通信に適しており、並列復号化をサポートしていますが、リプレイ攻撃を防ぐ必要があります。
  4. OFBモード: 高いエラー耐性要件があるシナリオに適していますが、並列復号化はサポートされていません。

ここに画像の説明を挿入します