橋本裕の日記
DiaryINDEXpastwill


2004年06月26日(土) 素数と暗号

 ビル・ゲイツは子どもの頃、暗号で遊ぶのが好きだったようだ。「ビル・ゲイツ・未来を語る」という本の中で、暗号破りの天才だといわれているチャールズ・パベッジに触れた後、彼はこう語っている。

<私自身、子どものころ暗号の魅力にとりつかれたひとりだ。どこの子どももやるように、何人かの仲間で集まって単純な暗号であそんだものだ。・・・かっては地球上のもっとも強力な政府でさえ解けなかった暗号が、いまの中学生には簡単に解ける。いずれ、コンピュータを使って、子どもたちが、どんな政府にも解読不能な暗号化メッセージを送信できるようになるだろう>

 素数を使えば、メッセージを暗号化することができる。そこで、今日はビル・ゲイツにならって、ちょっとした暗号遊びをしてみよう。たとえば、それぞれのアルファベットに二桁の素数を割り振り、暗号コード表をつくろう。

 l=11、o=37,v=13,e=91・・・
 
 そうすると、love=11、37、13、91 となるが、これを二桁ずつかけ算して、暗号化することにすると、love=407、1183である。暗号コード表があれば、この暗号化はたやすくできる。しかし、与えられた数字を二つの素数に分解して、この暗号を解読することはたやすいことではない。暗号を解きにくくするには、素数の桁数をあげてやればよい。

 素数の桁数が大きくなれば素因数分解の困難性はさらに高くなる。たとえば、ab=249310081から、a=11927、 b=20903、を見つけだすことは、そうたやすいことではない。

 コンピュータの登場によって、この困難性はかなり低められたが、それでも現代の数学者たちは、ふたつの素数の250桁の積を因数分解するには、将来どんなにコンピュータの性能が向上したとしても、何百万年もかかると信じている。

 もっとも、いくら素数を使って暗号化しても、暗号コードを盗まれたらおしまいである。それに暗号コード表そのものを、どうやって暗号化するのかという難問もある。しかし、素数の性質を使えば、これらの難問も解くことができる。

 つまり、暗号コードを一般公開して、しかもなお、暗号の機密性がたもたれるという離れ業が可能なのだ。そのしくみを簡単に言えば、「暗号化する鍵」と、暗号化された文章をもとにもどす「解読用の鍵」を別々にするのである。素数のかけ算を使えば、これが可能になる。数学者が発見したこの驚くべき方法について、明日の日記で紹介しよう。


橋本裕 |MAILHomePage

My追加