Thursday, September 21, 2006

暗号技術のはなし(2)

最古の暗号の1つが、シーザー暗号。これは平文を構成するアルファベットを何文字か後ろにずらして暗号文をつくる。こういうのを「換字暗号」という。

シーザー暗号の暗号化方式は、「文字をずらす」、つまり「n 番目のアルファベットを n + k 番目のアルファベットに換える」ということだ。数学的にいうと「加算」ということになる。暗号化キーは、何文字分ずらすかということであり、先の k がキーに相当する。

アルファベットの文字数は 26 なので、この方式だと暗号化キーの数は 25 種類しかなく、総当り攻撃で容易に解読できてしまう。

暗号化キーの数を増やすためには、上のようにアルファベットをシフトするだけでなく、アルファベットの並びを変更した換字を使えばいい。これだと暗号化キーの数は 25! 通り存在する。26! でないのは、a が a に換字されるというように同じ文字に換字されることがないことを保証したいためだ。

これで総当り攻撃で解読することは難しくなったが(むろんコンピュータを使えば非常に簡単だが)、十分ではない。この暗号の一番の問題点は、平文と暗号文の中の文字が1対1に対応しているということだ。これにより、文字の出現頻度などの言語学的なパターンがそのまま暗号文に残ってしまう。したがって、暗号文を統計的に分析することにより、キーが分からなくても解読できてしまうというわけだ。いうなれば、暗号方式そのもの、錠前が弱いということになる。

このような、平文と暗号文の文字が1対1に対応する換字暗号を、「モノアルファベティック暗号」とよぶ。

No comments: