本人的第一篇blog,顺便记录一下前几天打的网鼎杯青龙组预赛,完成两道Crypto题和一道misc的解答。
战队获得2490分,排名150名左右。
Crypto
Crypto1
题目:
1 | from Crypto.Util.number import * |
发现是论文题,利用coppersmith来进行约束求解
参考了该论文https://eprint.iacr.org/2023/367.pdf
在github中找到了类似的代码,加以修改得:
1 | import time |
解得:
1 | d=514966421261428616864174659198108787824325455855002618826560538514908088230254475149863519 |
然后用正常的rsa解密即可
1 | d=514966421261428616864174659198108787824325455855002618826560538514908088230254475149863519 |
Crypto2
题目:
1 | # coding: utf-8 |
解答:
一步一步分析即可,首先逆向解出k和dA,这个直接做运算即可
然后把三轮的r和s放进去
将s分为两部分 取前十六位作为初始化的向量 后面是正常的加密的部分
然后计算私钥dA
对应的 SHA-256
哈希值作为密钥key_temp
。使用CBC
模式,以key_temp
为密钥,flag_1
为初始化向量,对enflag
进行解密,得到decrypted_flag
。
最后用题目提供的解密函数进行解密即可,得到flag
py:
1 | from gmpy2 import * |
Misc
Misc4
是一种皮亚诺曲线的加密
解密脚本如下:参考了https://almostgph.github.io/2024/01/08/IrisCTF2024/
1 | from PIL import Image |
跑出来的结果存在了anaconda目录下 打开得到二维码
扫描二维码得到flag
1 | wdflag{b9367dd6-2d7e-4ef7-ba5c-270a6c6220cd} |