February 28, 2014

ストリーム暗号

換字式暗号の現代版がストリーム暗号といえる。換字式暗号では、1つ以上の換字表を使って平文を逐字で暗号文に変換していく。シーザー暗号、単一換字暗号など1つの換字表を使う場合は、頻度分析によってあっという間に暗号は解読されてしまう。換字表を逐字で切り替えるヴィジュネル暗号であっても、鍵の長さが分かってしまえば、頻度分析には耐えられない。そこで、鍵の周期をもっと長くすることを考える。すなわち、無数の異なる換字表を用意し、平文の1文字1文字に対応させて換字表を切り替えて適用することを考える。そうすれば、鍵周期に基づいた頻度分析に耐えられる暗号が得られるはずである。それがストリーム暗号である。


鍵生成器と結合器

シードを渡すと無限に無規則(擬似的に)な数列を生成する鍵生成器を用意する。これには、擬似乱数という関数が使われる。得られた鍵の数列を平文と結合する結合器を用意する。これで、ストリーム暗号を生成する基本的な準備は整った。
(本当に安全な暗号を生成するには、鍵生成器や結合器は慎重に設計される必要がある。)

ストリーム暗号のデモ

以下にストリーム暗号のデモを表示する。
半角アルファベットの平文入力に対して、数字の1~26の鍵数列が生成され、結合器では鍵数列の値に基づいてアルファベットをシフトすることで、暗号文を生成している。


Key Generator: Const Cycle Random
Encrypter:Shift


- Seed:

No comments :

Post a Comment