TSCTF-J2023 Writeup

发布时间 2023-09-25 16:03:20作者: Kuron1ko

\(2n=a_0^2+a_1^2+e(b_0^2+b_1^2)\)

\(n=a_0^2+eb_0^2\)
\(n=a_1^2+eb_1^2\)

\(nb_1^2=a_0^2b_1^2+eb_0^2b_1^2\)
\(nb_0^2=a_1^2b_0^2+eb_1^2b_0^2\)

\((b_1-b_0)(b_1+b_0)n=(a_0b_1-a_1b_0)(a_0b_1+a_1b_0)\)

离散对数正常算算不出来,考虑\(p-1\)光滑的情况,分解\(p-1\)后发现有很多小素数和一个\(39\)位的大素数\(p_0\)。flag长度只有\(55\)位,所以可以把大素数扔掉,用小素数跑\(pohlig-hellman\)\(p\)的原根是\(5\),先求\(a=dlp(5,enc,p),b=dlp(2,enc,p)\)然后\(exgcd\)搞一搞,或者\(\frac{p-1}{p_0}+1\)的原根刚好是\(2\),可以直接跑

充分发挥搜索引擎的功能,找到脚本 https://lazzzaro.github.io/2020/05/07/crypto-离散对数/index.html 魔改一下处理