アテネの裏で行われた暗号解読をめぐる死闘――「SuperCon2004」開催(1/2 ページ)

高校野球で球児たちがしのぎを削っているころ、RSA暗号の解読に挑む高校生たちがアジア各地より終結。電脳甲子園としてハイレベルな攻防を繰り広げた。

» 2004年08月23日 14時21分 公開
[西尾泰三,ITmedia]

 高校生によるプログラミング・コンテスト「SuperCon2004」の本選が、8月2日から7日にかけて東京工業大学で開催された。同コンテストは東工大にクレイ社のスーパーコンピュータが導入されたのを契機に始まったもので、今年で10回目となる。日本SGIは1995年の初回から継続してこの大会に協賛している。

 SuperConは全国高等学校野球選手権が「夏の甲子園」と呼ばれることになぞらえ、「夏の電脳甲子園」という呼称で親しまれてきた(ちなみにSuperConはスーパーコンピュータのスパコンではなく、スーパーなコンテストという意味だそうだ)。前回はタイからネットを経由した参加があったが、今回はタイ、中国、韓国、シンガポールのチームを日本に招待し、一緒に本選に参加している。本選で戦うチーム数は、国内10チームを合わせた14チーム。国内のチームは6月に行われた予選の上位通過チームだ。

 本大会の参加資格は高等学校生、もしくは高等専門学校3年生以下で、1チームは最大3人で構成されえる。彼らは一見あどけないが、プログラミングや数学については、「MPI(メッセージ・パッシング・インタフェース)については万全」とか「並列数をチューニングして最適なものを求めたかった」、「複数多項式の2次ふるい法を応用した」など、高校生とは思えない一面も垣間見えた。

 また、海外チームには、同種の国内大会での上位入賞者を集めた「ナショナル・チーム」を結成してきたところも存在する。大会参加に対して国からのバックアップを受けているところも存在するなど、国の威信をかけたコンテストであるといえる。

中国チーム 前評判も高く、本命と目された中国チーム「china」

SGI Origin2000でRSA暗号の解読に挑む

 ここで、同大会のルールと課題を簡単に説明しよう。同大会で参加者に課せられたのは、8月2日の開会式後に出された課題に対するプログラムを6日までに作ること。プログラミング環境には、東京工業大学国際情報センター内にあるコンピュータ・ルームを利用できる。

 コンピュータ・ルームで提供されたのは日本SGIの「SGI Origin2000」。このスーパーコンピュータには256CPUが搭載されているが、本大会では64CPUを使用した並列処理が実行可能となっていた。プログラミングにはC言語、並列処理はMPIというライブラリを呼び出して実装している。

 今回出された課題は、「RSAで暗号化された画像から、暗号化される前の画像(白黒画像)を求めろ」というもの。最初に画素ごとに暗号化したノイズのような画像(256ドット×256ドットの65536ピクセル)、さらには元画像を求める途中のヒント情報からなるファイル・セットが渡された。1つの画像の暗号化には、各100ビット以下の数からなるRSAセットが1つ用いられる。

 コンテストは、作成したプログラムを最大3分間動かして、元の画像により近い結果を出したチームの勝利となる。3分間に何度結果を出してもよく、最後に出された結果が採用される。つまり3分以内に、暗号解読の途中経過を出しながら、正解へ近づけることになるのだ。


 次ページでは、2分で分かるRSA暗号方式の解説と、大会の結果をお届けする。

       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ