ストリーム暗号とブロック暗号の違いは何ですか?

click fraud protection
...

ストリーム暗号は、リアルタイムのハードウェアアプリケーションに最適です。

暗号は、読み取り可能なテキストまたは平文を読み取り不可能なテキストまたは暗号文に変換するために使用される一連の数学的規則またはアルゴリズムです。 ストリーム暗号とブロック暗号の主な違いは、ストリーム暗号は一度に1ビットまたは1バイトのテキストのストリームで機能するのに対し、ブロック暗号はテキストのブロックで機能することです。

ストリーム暗号

ストリーム暗号の基本的な考え方は、テキストを1ビットまたは1バイトの長さの小さなブロックに分割し、前の多くのブロックに応じて各ブロックをエンコードすることです。 ストリーム暗号は、ビットまたはバイトごとに異なる暗号化キー(アルゴリズムに入力する必要がある値)を使用するため、同じビットまたはバイトは、暗号化されるたびに異なる暗号文を生成します。 一部のストリーム暗号は、ランダムまたはほぼランダムなビットストリームを生成するキーストリームジェネレータを使用します。 暗号は、キーストリームのビットと平文のビットの間で排他的論理和と呼ばれるブール演算を実行して、暗号文を生成します。

今日のビデオ

ブロック暗号

ブロック暗号の基本的な考え方は、テキストを比較的大きなブロック(通常は64ビットまたは128ビット長)に分割し、各ブロックを個別にエンコードすることです。 各ブロックに同じ暗号化キーが使用され、暗号化キーが 置換、輸送、およびその他の数学関数がそれぞれで実行される順序 ブロック。 強力なアルゴリズムとは、暗号をリバースエンジニアリングしたり、各ブロックで実行された機能を順番に決定したりすることは事実上不可能であることを意味します。

拡散と混乱

ブロック暗号は、混同および拡散と呼ばれる手法を使用して、平文を暗号文に暗号化します。 混乱の背後にある考え方は、暗号化キーと暗号文の関係を可能な限り複雑にすることです。 理想的には、暗号化キーのすべての文字が暗号文のすべての文字に影響を与える必要があります。 対照的に、拡散は平文の各文字の影響を暗号文の複数の文字に広げ、暗号を統計的攻撃の影響を受けにくくします。

長所と短所

ストリーム暗号は一度に1ビットずつデータを暗号化および復号化するという事実は、オーディオやビデオアプリケーションなどのリアルタイムハードウェアアプリケーションに特に適していることを意味します。 ストリーム暗号は、ソフトウェアアプリケーションに関してはブロック暗号よりも弱く、効率が低く、その分野での使用頻度は低くなります。 ブロック暗号は、ソフトウェアがすでに使用している長さのブロックでデータを暗号化するため、ソフトウェアでの実装が容易です。 多くの場合、暗号化キーはブロックサイズと同じ長さです。