暗号技術の基礎と応用
共通鍵暗号のうち、ブロック暗号とストリーム暗号の違いの説明として、正しいものはどれか。
- Aブロック暗号は公開鍵と秘密鍵の対を使う公開鍵暗号の一種で、ストリーム暗号だけが共通鍵暗号に分類される
- Bブロック暗号は決まった長さのブロック単位で変換し、ストリーム暗号は鍵ストリームを平文に少しずつXORする
- Cストリーム暗号は鍵を使わずにデータを並べ替えるだけの方式で、暗号文から誰でも平文に戻せる
答えと解説を見る
正解:B. ブロック暗号は決まった長さのブロック単位で変換し、ストリーム暗号は鍵ストリームを平文に少しずつXORする
ブロック暗号は、AESのように決まった長さ(AESでは128ビット)のブロックを、鍵に応じて別のブロックに変換します。長いデータは、暗号利用モードを使ってブロックの変換を組み合わせて暗号化します。ストリーム暗号は、鍵とナンスから擬似乱数の鍵ストリームを作り、平文と1ビットや1バイトずつXORします。ChaCha20が代表的で、ブロック暗号もCTRモードで使うと、ストリーム暗号と同じように働きます。
- A. どちらも共通鍵暗号で、暗号化と復号に同じ鍵を使います。
- B. 正しい。変換の単位と、鍵ストリームとのXORという仕組みが違います。
- C. ストリーム暗号も鍵がなければ鍵ストリームを作れないので、平文に戻せません。