ストリーム暗号とブロック暗号の主な違いは、ストリーム暗号は平文を1バイトずつ取って暗号文に変換するのに対し、ブロック暗号は平文を1ブロックずつ取って暗号文に変換する点です。
暗号とは、平文を読めない形式に変換するのに役立つ一連の数学的規則またはアルゴリズムのことで、これが暗号文です。
対称鍵暗号では、暗号化と復号化に1つの鍵が使われます。
共通鍵暗号には、ストリーム暗号とブロック暗号の2種類があります。
また、この分類は現代暗号と伝統的な暗号の両方に適用することができる。
ストリーム暗号とは
ストリーム暗号では、平文を1バイトずつ考えて暗号文に変換する。
ストリーム暗号は、暗号化と復号に擬似乱数ビット生成器を使用します。
キーストリームと呼ばれるランダムなビットのストリームを生成することができる。
さらに、この暗号は排他的論理和(XOR)を実行して暗号文を作成する。
つまり、鍵の各ビットと平文とのXORを行い、暗号文を生成する。
ブロック暗号とは
ブロック暗号では、平文を64ビット以上の大きなブロックに分割し、各ブロックを個別に暗号化します。
各ブロックには同じ暗号鍵が使われる。
また、暗号鍵は各ブロックにどのような数学関数を使用するかを見つけるのに役立ちます。
しかし、強力なアルゴリズムを使用すると、各ブロックに使用される数学関数を見つけ出すことが困難になります。
そのため、ブロック暗号では、暗号化されたテキストを逆引きすることが困難な場合があります。
ストリーム暗号とブロック暗号の違い
定義
ストリーム暗号は対称鍵暗号の一種で、平文を1バイトずつ変換して暗号文に変換するものである。
これに対し、ブロック暗号は、平文をブロック単位で変換して暗号文に変換する対称鍵暗号の一種です。
したがって、これがストリーム暗号とブロック暗号の大きな違いです。
機能性
ストリーム暗号は平文をバイト単位に分割して暗号文に変換し、ブロック暗号は平文を大きなブロック単位に分割して暗号文に変換します。
複雑さ
ストリーム暗号とブロック暗号のもう一つの違いは、複雑さです。
ストリーム暗号はブロック暗号より複雑です。
ビット数
ストリーム暗号は一度に8ビットの平文を使用し、ブロック暗号は一度に64ビット以上の平文を使用します。
平文逆引き機能
ストリーム暗号では、暗号化されたテキストを平文に戻すことが容易です。
一方、ブロック暗号では、暗号化されたテキストを平文に逆変換することは困難です。
したがって、これもストリーム暗号とブロック暗号の違いです。
結論
共通鍵暗号を簡単に説明すると、ストリーム暗号とブロック暗号の2種類があります。
ストリーム暗号とブロック暗号の主な違いは、ストリーム暗号は平文を1バイトずつ取って暗号文に変換するのに対し、ブロック暗号は平文を1ブロックずつ取って暗号文に変換することで、平文をテキストに変換します。