m1z0r3 Crypro CTF 2021 解説
今回、かなりエスパー要素強かったと思います。来年はできるだけ抑えようと頑張ります。
問題はこちらから:m1z0r3 Crypro CTF 2021 問題&ヒント - Attack All Around
解説やsolverはこちらから:m1z0r3CryproCTF_2021/Answer at master · ksbowler/m1z0r3CryproCTF_2021 · GitHub
以降では、裏話やこの問題を採用した経緯などを話していきます。
Solve Me 100pt
サマーウォーズを初めて見た時は暗号の「あ」の字すら知らなかったのですが、QuizKnockのYouTubeを見つけてRSA暗号だったのか!と作問に至りました。
eでsplitして暗号文cと公開鍵nになるのは初見じゃきつかったと思うので、もっとここに行きつきやすいような配慮をすべきだったなと反省しています。
第一段階は個人的には綺麗な問題だと思っているのですが、既出だったらすいません(笑)
email.txtは実際にサマーウォーズで出たものに近付けたかったので2056文字に合わせた結果、pow関数の計算に数分かかってしまうくらいの値になってしまいました…。ただ、実際のもののnをfactorDBに入れると3で割れてしまい、ちゃんとしているわけではなさそうでした。メルセンヌ素数を使ったのも、「nだけで素因数分解できるためには」と考えたときにこのくらいしか思いつきませんでした。
少しばかり意地悪になってしまいました…
Qualified class 50pt
小学生の頃見てたドラマ「探偵学園Q」が面白くて、漫画まで買いました。ドラマ版ではなかったのですが、ピッグペンに似た暗号があったので、ほとんどそのまま流用しました。
順番変えたのではなく、記憶違いで変わってしまいました…。
I'm lovin' it 50pt
オリンピックで国の名前をアルファベット3文字で表すのをよく見たのですが、これって問題になるんじゃね?となりました。暗号問題というよりは謎解きに近いですね(笑)
ただ似たようなコードがあったのはサーベイ不足です…
Too hints 150pt
picoCTF 2021 で出た問題で、dp = d mod p-1 を求められたら素因数分解できるというのに気付いた時が本当に嬉しかったのでいつか出そうとあっためてました。
ただ、簡単にdp, dqが分かるとつまらないなと思いもう一つ数学的要素を増やしました。それなりに良い難易度になったのかなと思ってます。
今年のm1z0r3 CTF用に残すつもりだったので、そちらをどうしようかと思案しているところです…。
Mystery House 150pt
zh3r0 CTF b00tlegをモチーフにしました。最後まで行ってもflagは出ず、もう一ひねり必要としました。これも最後は暗号というよりは謎解きですね。
今回チーム戦なので、各階の暗号についてはチームであーだこーだ言ってもらって進んでいけばいい感じになるかなと想定していたのですが、まさかの担当別で解いていたみたいで思惑から外れてました(笑)
それにしても毎回Hastad's broadcast attack使っている気がする。
終わりに
年末にm1z0r3 CTFも開催するので、またその時に作問します。是非解いてください!
今回の問題の感想なども教えてくれると嬉しいです!!