ふるつき2

裏ブログです。うそです

IJCTF 2021 感想戦

IJCTF、そんなに良い印象をもってなかったがやってみると悪くなかった。去年あんまりよくないなぁと思ったのはなんだったんだろう。一年も経つとかなり記憶が朧気になってしまっている。こういうことがあるから、CTFに出るごとに「こういうところがよかった」あるいは「悪かった」ということをメモっておいたり、個人的CTF評価シートを作ったりする必要がある。

何が悪くなかったかというと、24時間という時間設定とか、開始が土曜午後からであるところとか。また問題数が無駄に多くて初心者向け()な問題で疲弊させてきたりしなかったう。全体的に中級程度の問題がバランス良く提供されていたし、forensicsジャンルもguessingということはなく解けていたようだった。総じてどういうCTFを開催するかというバランス感覚が良かったと思う。

一方で良くないところもあった。一つは5xx CTFになったところ。そんなにアクセスが集中した感じではないだろうから何か別のところに理由があったんだと思う。実際すぐ直った*1。CloudFlareが入っていたようだからそれがなにかあったのかもしれないが、わからない。その後復旧までの間にdiscordで問題が配られたが、ファイルがまとまっていなくて扱いづらかった。問題はzipやtarにまとめておくべきだろうし、こういうトラブルがありうるので事前にファイルの情報をまとめておくと良い気がする。また、あとから知った話だがpwnの問題はインドのローカルCTFで提供されたものがそのまま出ていたらしい。最悪。印象が一気に悪くなりました

Cryptoの問題はBlock Signがわけがわからなかった以外は概ね良かった。ECSignやQuaraticは中程度の難易度で楽しく解けるよい問題だったと思う。一方、個人としてあまり貢献できなかったのは良くなかった。個人としてやったのはdiscrete-logの方針を建てることと(方針は建てたがなんか実装がうまくいかなくて、その間にS3v3ru5が解いてくれた)、square sumの後半(pを求めるところまではS3v3ru5がやってくれた)、 ECSignの実装をやったことだけが貢献ポイントになっている(こちらはS3v3ru5が爆速で方針を建てて放置していたので実装した)。Forensicsなどでまだ貢献できる部分があったので、Block Signにやる気を削がれずにそちらをやったりすればよかっただろうか。

ECSignについては  xs_2(s_1 - s_2)^{-1} - ys_3(s_1 - s_3)^{-1} \equiv 0 \mod n という式のsmall rootsを求めたんだけど、 defundのmultivairate coppersmithでは[0, 0]が出てきてしまって困った。しかたないのでInequality Solving with CVPで片付けたけど、こういうときどうやるとうまく解けるんだろう。また、今回は思考停止でInequality Solving with CVPを使ったけど、そこまでする必要もない問題だった気がするので、ちゃんとLLLをやる力はだいぶ失われていそうな気がする。

なんにせよ、チームとしては圧倒的な一位で終われて*2、prizeとしてDigital OceanのCreditがもらえそうなので良かった*3。これで思い出したけど、競技中にjoseph(skateboarding dogのCrypto強いひと)から"zer0pts tsuyosugi"とDMが来ていた。私はCryptoの強い人には基本的にめちゃ好感を持っているのでDMが来て嬉しかったのだが、このタイミングではじめてscoreboardを確認したと思う。私にとっては順位とかレーティングとかは結構どうでも良くて、目の前の問題がたのしいか、それを解けるかというのが大事なんだろうな。prizeはもらえると嬉しいですが……

*1:すぐ直ったと言っても運営にとってはめちゃくちゃ長い時間落ちていたように感じただろうな

*2:主要なチームはCyBRICSを頑張っていたんだと思う

*3:余らせている