SSL通信の向こう側で
自分が通っている大学では、今期の講義の中に情報数学という講義があります。内容としては、情報技術の中で使われている数学の紹介とその仕組みといったところですが、この講義がなかなか面白い。
今回は、情報技術の中から暗号化と復号化を取り上げて講義が進んでます。一般的な暗号化技術としては秘密鍵暗号と公開鍵暗号という仕組みがあり、インターネット上でもSSL通信なんかで使われているわけですが、この仕組みについては非常に興味深いです。特に公開鍵暗号は、2つの大きい値の素数を使用して暗号化と復号化のための鍵を作る仕組みになっているため、第三者が暗号を解読するには2つの素数を調べる必要があるわけです。しかし、最近高性能化してきているコンピュータを使っても、この2つの素数を調べるには膨大な時間がかかります。だからこの暗号は成り立っているというわけなんですね。
そう簡単には解けないから暗号というものは存在することができるという事は、頭では分かっていても、実際はなかなか実感がわかないんものです。ですがこの講義では、実際の公開鍵暗号で使われている素数を見つけ出すプログラムを用いて、暗号解読の演習も行うので、それを実感することができます。素数の桁数が小さいうちは本当にあっさり解けてしまうのですが、桁数を増やしていくと、コンピュータの計算能力を使ってもなかなか対応できないものになっていきます。
理系の大学に通っているくせに数学が大嫌いな自分ですが、こういう情報数学的アプローチは非常に面白いと感じます。「この問題を解いて」と言われるより、「この暗号を解いて」と言われる方が暗号の内容が気になるので解いてみたくなるんですよね。自分が大学に求めていたのはこういう事なので、この講義のようにもっと知識を増やせていけたらと思います。