つくば大会 CTF 1日目ダイジェスト(2)

2012/05/20

    • さて、競技開始から2時間ほど、この時点のトップはチームIMOCANです。 
 

    • 今回、新しい演出として、各チームの正答状況を分野毎に串刺しにした3Dの棒グラフが導入されています。
    • 時間も17時を回ったのスコア状況は以下の通りです。これまでダントツトップだったIMOCANに2位のurandomが接近。接戦状態になりました。
    • 本日、取材で入られたメディアの方も熱心に取材されていました。
    • 17:40 チームisc48が500点問題を解き、一気に首位に躍り出てきました。チームTachikomaがそれに続きます。大会側は、さらに追加の新しい問題をいくつか追加しました。
    • 18:00 残り1時間を切ったところで、順位にだいぶ動きがでました。まず、チームifconfigが300点問題を獲得して2位へ浮上、そのすぐあと、urandomが100点を重ねて再度2位へ返り咲きます。
    •  初日終了に向かって、30分を切ると各チームの戦略が見えてきます。
    •  
    • 終了15分前   これまで得点ゼロで来ていたチームAquariumが一気に3問を解答して5位に急浮上!breakthrouthの差(問題を一番最初に正解すると得点の1%が割り増しされます)が最後にどのように影響してくるでしょうか?
    • そして、初日の競技が終了。2時間前まで最下位の0点だったチームAquariumが1位で初日を逃げ切りました。ものすごい追い上げ劇でした。
    • さて、2日目の競技は朝9:30から再開されます。果たして、夜中に宿泊所で問題を解きためていて、スタートダッシュするチームはどこでしょう?楽しみです。

つくば大会CTF 1日目ダイジェスト(1)

つくば大会初日が終わり、参加した”戦士”たちはいま(現在4:30AM)つかの間の休息をまどろんでいることでしょう。
では、ここで、一日目を振り返ります。

  •  13:00 競技に先立ち、オリエンテーションがおこなわれました。ルールや施設の使い方など
    •  が説明されました。 
 
    •  続いてさっそく競技の開始です。
    •  今回の参加チームは全13チームです。
    •  【CTFチーム一覧】
       wasamusume, IMOCAN, Aquarium, Tachikoma, 5a454e, urandom, 1012325,
        isc48, ifconfig, hnp6, SecRock, MMA, TeamTNCT 

      さっそく各チームが、それぞれチームのステージングを始めます。
      今回はCTF会場の割に参加者が多かったので1チームあたりCTF会場へは同時に4人までという入場制限がかかっています。あふれてしまった人たちは、控え室でステージを作り始めて、CTF会場の自分達の島と無線LANを飛ばしていました。

      ステージングが終わったチームは、すかさずCTF問題サーバにアクセスしはじめます。まだ、ほとんどのチームがステージングしている最中に最初の問題が解けたことを知らせるブザーと緑のランプが・・・。なんと、上記の物量作戦に出ていたチームwasamusumeでした。

ハッカソンテーマ「単一換字式暗号の自動解析プログラムの作成」

第2回 SECCONつくば大会ハッカソンのテーマに、

「単一換字式暗号の自動解読プログラムの作成」

というものがありました。
残念ながら今回は、このテーマでは応募がありませんでしたが、「単一換字式暗号の自動解析プログラムの作成」について、その出題意図を少しお話させてください。

世界のCTF大会では、大抵、一定量の「単一換字式暗号」の問題がでてきます。
これは、CTFの問題を作成する側のパワー不足などにも原因があると思うのですが、問題の作成は簡単にできるのですが、問題を解く側には一定量の負荷をかけられるからです。

しかし、この「単一換字式暗号」、じつは古くからよく知られており、シャーロック・ホームズの「踊る人形」(1904)や、エドガー・アラン・ポーの「黄金虫」(1843)で解説されているくらいカビの生えた暗号で、現代の情報教育では、暗号授業のオリエンテーションとして触れられる程度でしかなかったものです。

ところが、これが、現在、世界的に流行っているCTFの問題中に、一定量を占めています。

私はこれは実におかしいと思います。
原因は、自動解析のプログラムが一般に出回っていないからだと思ったのです。
 これもヘンといえばヘンです。
だって、これはプログラム向きの探索問題だからです。

解読には、

・英文字の出現頻度表
・ 英単語、英熟語のデータベース

が必要になるでしょう。
そして、与えられた「暗号文」の頻度分析をおこなった上で、出現頻度表を元に,
単語の一部の英文字を仮定して 、データベースとのマッチングを進め、
他の文字を確定していく・・・という作業を続けます。
もちろん、最終的に全部の単語が解読できれば解読完了です。
途中で失敗した場合は、「仮定」した文字を一つずつ戻していき、他の文字で
探索してみます。

素直に考えるとこんな感じですが、これらをできるだけ一瞬で解けるアルゴリズムを
考えて、実装してほしいのです。

そして、あなたの手で、こんなカビの生えたCTF問題は墓場に封じ込めて欲しいのです。

どなたかSECCON大会とは関係なくても、このようなプログラムを作成して、公開して
みませんか?