Loading article…
暗号化において、キーストリームとは、プレーンテキストメッセージと組み合わせて暗号化されたメッセージ (暗号文) を生成する ランダムまたは疑似ランダム文字のストリームです。
キーストリーム内の「文字」は、使用例に応じて、 ビット、バイト、数値、または A ~ Z などの実際の文字になります。
通常、キーストリーム内の各文字は、モジュラー演算を使用して、平文内の文字と加算、減算、またはXOR 演算されて暗号文が生成されます。
キーストリームは、ワンタイム パッド暗号とほとんどのストリーム暗号で使用されます。ブロック暗号を使用してキーストリームを生成することもできます。たとえば、CTR モードは、ブロック暗号でキーストリームを生成し、ブロック暗号をストリーム暗号に変換する ブロック モードです。
例
この簡単な例では、az から 26 文字の英語のアルファベットを使用します。したがって、数字、カンマ、スペース、その他の記号は暗号化できません。キーストリーム内の乱数は、少なくとも 0 から 25 の間である必要があります。
暗号化するには、キーストリーム番号を平文に追加します。また、復号化するには、同じキーストリーム番号を暗号文から減算して平文を取得します。
暗号文の数字が 25 を超える場合は、0 から 25 までの値にラップします。したがって、26 は 0 になり、27 は 1 になります。(このようなラップはモジュラー演算と呼ばれます。)
ここで、プレーンテキスト メッセージ「attack at dawn」は、キーストリーム「kjcngmlhylyu」と加算によって結合され、暗号テキスト「kcvniwlabluh」が生成されます。
参考文献
- Menezes、van Oorschot、Vanstone 著『応用暗号ハンドブック』(2001 年)の第 1 章、第 6 章、第 7 章。
