「ストリーム暗号」の版間の差分

削除された内容 追加された内容
編集の要約なし
編集の要約なし
1行目:
'''ストリーム暗号'''(-あんごう、stream cipher)とは、平文をビット単位あるいはバイト単位などで逐次、[[暗号化]]する暗号である。平文を64ビットや128ビットなどの固定長のブロックに分割して暗号化する暗号を指す[[ブロック暗号]]に対比した語である。その構成上、入力がファイルではなくストリーム等の逐次追加されるデータであった場合、ブロック暗号は入力がブロックサイズに達するまで溜まらないと処理を進めることができないのに対し、ストリーム暗号はその必要がないのが特徴である。
これに対して、平文を64ビットや128ビットなどの固定長のブロックに分割して暗号化する暗号は[[ブロック暗号]]という。ストリーム暗号とブロック暗号とが、現代の主要な[[共通鍵暗号]]である。
 
== 概要 ==
ストリーム暗号は、鍵ストリーム(key stream)を生成する鍵ストリーム生成部と、鍵ストリームと平文を結合する結合部から構成されることが多い。典型的な方式では、[[秘密共通鍵方式で、ある]]を初期値として[[擬似乱数]]列を生成し、[[平文]]との[[排他的論理和]] (XOR、<math>\oplus</math>) によって[[暗号文]]を作る。復号時には、同じ鍵(同じ初期値から生成した擬似乱数と暗号文との排他的論理和によって平文を得る。
:<math>(m \oplus k) \oplus k = m \oplus (k \oplus k) = m</math>