ストリーム暗号 【stream cipher】
概要
ストリーム暗号(stream cipher)とは、暗号の種類の一つで、データを1ビット単位あるいは1バイト単位で逐次暗号化していく方式のこと。データを一定の長さのブロックごとに暗号化する「ブロック暗号」(block cipher)と対比される。暗号化したデータを伝送する場合、ブロック暗号はブロック全体が揃わないと復号できないのに対し、ストリーム暗号は受信したデータを即座に復号することができる。また、ブロック暗号がデータ量をブロック長の整数倍になるよう調整するのに対し、ストリーム暗号は元のデータ(平文)の量と暗号化後のデータ量が常に一致するという特性がある。応答性が重視される通信用途で用いられることが多い。
具体的な方式としてよく用いられるのは論理演算のXOR(排他的論理和)を利用する手法である。暗号鍵を元に一定の演算規則(擬似乱数の生成とすることが多い)で無限に続く符号列(鍵ストリーム)を生成し、(同位置の)平文との間でXOR演算を行った結果を暗号文として送出する。受信側では同じ暗号鍵から鍵ストリームを生成し、受信した暗号文との間でXOR演算を行うと平文に戻すことができる。
(2022.10.17更新)