鍵ストリームの重複使用の危険性
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/05/01 15:29 UTC 版)
「ストリーム暗号」の記事における「鍵ストリームの重複使用の危険性」の解説
ストリーム暗号は、鍵ストリームを重複して使用しないことを前提とした暗号アルゴリズムである。そのコンセプトは、鍵ストリームとして推測不可能な乱数列を想定しているバーナム暗号と同じである。ストリーム暗号は、平文ごとに異なる初期化ベクトル (IV) を使用する必要があるが、IVが重複して設定された場合、鍵ストリームも重複して使用されることとなるため、その危険性を以下に例として示す。 平文メッセージ m {\displaystyle m} と鍵ストリーム k {\displaystyle k} から暗号文メッセージ c {\displaystyle c} を生成する場合、次の式で表現できる。 m ⊕ k = c {\displaystyle m\oplus k=c} 次に、異なる平文メッセージ m ′ {\displaystyle m'} と鍵ストリーム k {\displaystyle k} (重複して使用)から暗号文メッセージ c ′ {\displaystyle c'} を生成する場合は、次の式となる。 m ′ ⊕ k = c ′ {\displaystyle m'\oplus k=c'} ここで、暗号解読者が暗号文メッセージ c {\displaystyle c} と暗号文メッセージ c ′ {\displaystyle c'} を入手したという前提とする。この時、 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を利用するとストリーム暗号が構成できるので、同様の危険性が生じる。
※この「鍵ストリームの重複使用の危険性」の解説は、「ストリーム暗号」の解説の一部です。
「鍵ストリームの重複使用の危険性」を含む「ストリーム暗号」の記事については、「ストリーム暗号」の概要を参照ください。
- 鍵ストリームの重複使用の危険性のページへのリンク