初めに
2022年9月3日(土)から2022年9月4日(日)まで開催されたcakectfに「kanon」で参加しまして、順位は154でした。(cryptoしか解いてないからあれなんですけども…)
といいつつ去年は、全く何も解けなかったことを考えると成長してるなーという気分でした。
競技中
ぶっちゃけタイムスタンプ取ってないのでうる覚えで書いてます(fileの保存時間見て書いてます)…余りあてに出来ません
競技開始(14:00)
とりあえず、家にあったチーズケーキ食べながら1 wavの問題(frozen cake,brand new crypto)を確認。
frozen cake (14:20??)
frozen cakeをみてとりあえず、フェルマーの小定理で書き出してみるかで、式を書き出したらなんかうまくいってflagをget…! serverに提出したら、エラー?吐いたのでdiscordで確認すると修正するので待っててねとのことなので、brand new crypto を取り組むことに…
brand new crypto (14:50??)
初見ぽい暗号方式?だったので、一度式に書き出して考えてみる。 最初は、何かうまく消えるのかなと思っていたけど、乱数$r$でうまくいかない… と思っていたら、式変形して $m$ のべき乗が表せることができたので 1 文字ずつ復号して flag を get 出来ました。
四番目に解けたので「うおー」ってテンション爆上がり (3位に入れたこと一度もないんですけど、なんでそんなはやいんすか…)
ここから16時までyoutubeみて時間つぶし…(他のジャンルは基礎知識がなさ過ぎてちらっと見ただけで全く分かってません…)
rock door (16:00)
lunaticの問題が解放され、 rock door を見ると、DSA・hashの組み合わせで一瞬戸惑いましたが、とりあえずコードとにらめっこしながら実行して内容の把握すると s しか返さないdsaで初めて見ましたが、とりあえず立式するとhash取ってるのでbitが小さいなーと思いつつ LLL を行うのなら $s = k^{-1}*(z + xr) mod q$ を $sk = z + xr + Aq $ $s,q$ は既知と考えて$x r$の処理をどうすればいいのかわからず撃沈しました。
敗因は $x r$ を分離してしまったことで2変数になってしまい\(^o^)/オワタ
この問題に約2時間30分かけて解けなかったのと、この後に用事があったのでここでcakectfは断念しました。
まとめ
多分、実力的に rock door は解いておきたかった問題でしたね… あと、write up は他の方を参照された方がいいと思います。(時間もたってるし、クオリティが低いしで…) なんだかんだ、自分の成長を感じながら上には上がいることを改めて実感しましたので、とても楽しめましたし、悔しい思いをしました。 そんなこんなもありながら、cakectf 2022 を開催してくださった方々ありがとうございました。