ストリーム暗号
擬似乱数列生成器として、線形帰還シフトレジスタ (LFSR; Linear Feedback Shift Register) を用いた方法が知られている。LFSRはハードウェアを用いて容易に実装することができる。しかし、LFSRは数学的に容易に解析可能であるため、そのまま暗号に使用することは推奨されない。相関攻撃 (Correlation attack) の餌食となる。非線形なFSRを使うものもある(NFSR; Nonlinear Feedback Shift Register)。
コンバイナ型:複数のLFSRを非線形関数で結合した方式
フィルタ型:LFSRの全状態をFilterに入れる方式。
例:よく研究対象にされている方式としてTOYOCRYPTがある。
クロック制御型:LFSRを非連続的動作させる方式。一つのLFSRを他のLFSRのクロックで制御する。
例:ベス&パイパーによる stop-and-go generator (Beth and Piper, 1984)、GSM音声暗号化で使っているA5/1。
この時、
c ⊕ c ′ = ( m ⊕ k ) ⊕ ( m ′ ⊕ k ) = m ⊕ m ′ ⊕ k ⊕ k = m ⊕ m ′ {\displaystyle c\oplus c'=(m\oplus k)\oplus (m'\oplus k)=m\oplus m'\oplus k\oplus k=m\oplus m'}
となるため、暗号解読者は暗号文メッセージ c {\displaystyle c} と c ′ {\displaystyle c'} の排他的論理和をとった値を求めると、平文メッセージ m {\displaystyle m} と m ′ {\displaystyle m'} の排他的論理和を得ることができる。
仮に、平文メッセージ m {\displaystyle m} の全部又は一部が暗号解読者に知られていた場合(例えば、文末に必ず「ハイルヒトラー」が記載されている等)、暗号解読者に平文メッセージ m ′ {\displaystyle m'} の内容を推定するための手がかりを与えることになる。
なお、ブロック暗号の場合も、暗号利用モードのOFB, CFB, CTRを利用するとストリーム暗号が構成できるので、同様の危険性が生じる。