ストリーム暗号
暗号利用モードのOFB, CFB, CTRなどでブロック暗号を利用するとストリーム暗号を構成できるので、ストリーム暗号専用のアルゴリズムは、ブロック暗号と比べて何かしらの点で特長(メリット)がなければ開発する意味がない。たとえば、近年(AESの採択以降)はAESを利用する場合よりも高速であることをアピールすることが多い。
ソフトウェアでの、1ビットまたは1バイト単位で扱うというナイーブな実装では性能が悪くなりがちになる。そのため、ある程度まとめて扱うように変形されることも多いことから、それを前提として、MUGIのように一度の処理で64ビットといったサイズの鍵ストリームを出力し、まとめて暗号化処理することを考慮に入れたアルゴリズムが提案されている。
ストリーム暗号の安全性についての研究はブロック暗号に比べて遅れている。安全性の評価手法の研究には長い時間を要するので、ブロック暗号に基づくストリーム暗号を利用すべきとの意見もある。ブロック暗号をCTRモードで利用した場合、ブロック暗号が擬似ランダム置換であれば、計算量的に安全である。
暗号標準として採用(または推奨)されているストリーム暗号には次のものがある。
OFB, CFB, CTR - ISO/IEC_18033(ブロック暗号利用モード)
SNOW 2.0 - ISO/IEC_18033
MUGI - ISO/IEC_18033, CRYPTREC
MULTI-SO1 - ISO/IEC_18033 (MOF), CRYPTREC
RC4 - RFC 2246 (TLS), WEP, WPA, CRYPTREC (128bit-RC4だけ)
KCipher-2 - ISO/IEC 18033, CRYPTREC
ChaCha20 - RFC 7539
排他的論理和(XOR)をとる、という構造はバーナム暗号そのものと言えるが、バーナム暗号は情報理論の発達以前ということもあり(一般にバーナム暗号の原文献とされる特許明細では)乱数列の生成法について、明確に定義されていない。
自己同期式のストリーム暗号は、ブレーズ・ド・ヴィジュネルが考案している。