GeekGame 2020 Crypto简要出题思路
Posted sovereign
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GeekGame 2020 Crypto简要出题思路相关的知识,希望对你有一定的参考价值。
这是什么觅马
这个题以前做misc题时候看到的,当时觉得还蛮好玩的,随手玩了一下。加解密网站是https://codemoji.org/他这个网站有encrypt, decrypt, 和 share三个页面,似乎是没配置好的缘故,不能直接解密,需要先进入share页面然后手动更改url为decrypt,接着需要审查元素手动更改待解密的emoji信息内容,最后选择第一个密钥笑脸解密。由于这个网站的使用本身就像是个入门的CTF题,就拿来出题了。
自创觅马
这题当时是比赛半途出的,貌似密码学题目出的太难了,干脆加个送分的仿射密码。(本来我想出一个Feistel结构的逆向,但是生怕这个东西都太难了)仿射密码算Z/26Z的逆元甚至暴力破解都是可行的,最后被打成50分了,师傅们确实太强了。
verysmooth
这题改编自V&N招新赛的试题,本题大背景是与RSA算法极其相似的Rabin加密算法,加密指数为2。题目首先是生成一个带后门的大整数N,它的两个素因子都是光滑数,使用Pollard‘s p-1算法即可分解。分解后得到了私钥p和q,即可在有限域Fp和Fq上分别开模平方根得到解,然后再用中国剩余定理得到在模N的整数环中的模平方根结果。这里比较麻烦的事是两个素因子P和Q都是模4余1的,这在某川大学网安数学基础这门课中没有涉及。这里需要用Tonelli-shanks开根算法开根,也可以用其他的AMM,BV等等算法开根,方法五花八门不再阐述了。(题外话1:这题其实真的不难的,没想到没几个人去做)(题外话2:这题我跟其他几个Crypto方向的大神聊过,他们还都表示我太仁慈了,要整就整个开0x???????次方根的题,大佬们太恶毒了。)
MV
我自己承认这题其实出得很烂,主要灵感来源于课本里的M-V算法。这个算法的加密本身是不会带私钥d的,但是如果放在CTF里根据密文生成过程就能一瞬反推明文。。。可见这个系统是多么的脆弱和垃圾,为了出成题才勉强加上了私钥d。没想到这给部分解题选手带来了困扰。lcx大佬大晚上地来找我说我题出错了,我一看他算出的d太大了没有约束在合适的范围内,然后我提示他对椭圆曲线的阶取模,于是他很快就做出了这个题。所以这是此题的第一大漏洞。另外,这个题过于脑洞,在没提示随机密钥k和d有倍数关系的情况下猜出这个关系确实有点恶心了....一旦给出K和d的关系,这题就比较容易了,对生成的两个点P和C1计算离散对数,很快就能得到正确的k-d映射关系。解出了私钥d这题当然也就做完了。
以上是关于GeekGame 2020 Crypto简要出题思路的主要内容,如果未能解决你的问题,请参考以下文章