ECDLP で、となる(=anomalous curveとなる)ようにを渡すと適当な原始根 を作ってくれるので、こちらからは を送る。すると向こうはSmart Attackでとなるを復元してくる。この攻撃が失敗するようなパラメータとを選べれば勝ち
Uninteded solution
python2系で input
を使っているので print(open('/flag').read())
を送ると終わる。は?
Intended solution
Smart Attackは内部でHensel's Liftを使っているんだけど、これが失敗するケースがあるらしい(なんでもcanonical liftになるらしい https://crypto.stackexchange.com/questions/70454/why-smarts-attack-doesnt-work-on-this-ecdlp)。どういうときになるかと言うと、