Cryptography-block-cipher

提供:Dev Guides
移動先:案内検索

ブロック暗号

ブロック暗号の基本的なスキームは次のように描かれています-

ブロック暗号

ブロック暗号は、平文ビットのブロックを受け取り、一般に同じサイズの暗号文ビットのブロックを生成します。 ブロックのサイズは、指定されたスキームで固定されています。 ブロックサイズの選択は、暗号化スキームの強度に直接影響しません。 暗号の強度は、キーの長さによって異なります。

ブロックサイズ

任意のサイズのブロックを使用できますが、ブロックのサイズを選択する際には次の点に留意してください。

  • 非常に小さなブロックサイズを避ける-ブロックサイズがmビットだとしましょう。 この場合、可能な平文ビットの組み合わせは2 ^ m ^です。 攻撃者が以前に送信された暗号文ブロックに対応するプレーンテキストブロックを発見した場合、攻撃者はその暗号化キーを使用して送信された平文/暗号文ペアの辞書を構築することにより、「辞書攻撃」のタイプを起動できます。 ブロックサイズを大きくすると、辞書を大きくする必要があるため、攻撃が難しくなります。
  • 非常に大きなブロックサイズを持たない-ブロックサイズが非常に大きいと、暗号の操作が非効率的になります。 このような平文は、暗号化する前にパディングする必要があります。
  • * 8ビットの倍数*-ほとんどのコンピュータープロセッサが8ビットの倍数でデータを処理するため、実装が容易であるため、優先ブロックサイズは8の倍数です。

ブロック暗号のパディング

ブロック暗号は、固定サイズ(64ビットなど)のブロックを処理します。 平文の長さは、ほとんどブロックサイズの倍数ではありません。 たとえば、150ビットの平文は、それぞれが22ビットのバランスの3番目のブロックを持つ64ビットの2つのブロックを提供します。 最終ブロックの長さがスキームのブロックサイズに等しくなるように、ビットの最後のブロックに冗長情報を埋め込む必要があります。 この例では、残りの22ビットに完全なブロックを提供するために42ビットの冗長ビットを追加する必要があります。 最後のブロックにビットを追加するプロセスは、 padding と呼ばれます。

パディングが多すぎると、システムの効率が低下します。 また、パディングが常に同じビットで行われる場合、パディングによりシステムが安全でない場合があります。

ブロック暗号スキーム

膨大な数のブロック暗号方式が使用されています。 それらの多くは公に知られています。 最も人気のある有名なブロック暗号を以下にリストします。

  • デジタル暗号化標準(DES)-1990年代の一般的なブロック暗号。 現在、主に小さなキーサイズのため、「壊れた」ブロック暗号と見なされています。
  • *トリプルDES *-繰り返されるDESアプリケーションに基づくバリアントスキームです。 依然として尊敬されているブロック暗号ですが、利用可能な新しいより高速なブロック暗号と比較すると非効率です。
  • * Advanced Encryption Standard(AES)-AES設計コンペで優勝したのは、暗号化アルゴリズム *Rijndael に基づく比較的新しいブロック暗号です。
  • IDEA -これは、ブロックサイズが64でキーサイズが128ビットの十分に強力なブロック暗号です。 Pretty Good Privacy(PGP)プロトコルの初期バージョンを含む、多くのアプリケーションがIDEA暗号化を使用しています。 IDEAスキームの使用は、特許の問題により採用が制限されています。
  • Twofish -このブロック暗号方式では、128ビットのブロックサイズと可変長のキーを使用します。 AESファイナリストの1つでした。 これは、64ビットのブロックサイズを持つ以前のブロック暗号Blowfishに基づいています。
  • Serpent -ブロックサイズが128ビットで、キーの長さが128、192、または256ビットのブロック暗号。これもAES競争のファイナリストでした。 低速ですが、他のブロック暗号よりも安全な設計です。

次のセクションでは、最初にブロック暗号のモデルについて説明し、次に最も影響力のある最新のブロック暗号の2つであるDESおよびAESについて説明します。