?CTF2025-Crypto

此篇文章只有思路,没有脚本(其实是太懒了,解出来就懒得写WP了,就靠回忆了)

week1

Basic Number theory

根据欧拉定理得,gift=±mgift=±m,分别给gift1、gift2取模p、q下反,然后crt就好了

Strange Machine

手动测试,十六轮为一个循环

计密文为C,重复输入一个字符,第一轮为A,当第十七轮时结果同A,取第十六轮结果为B

B 异或 输入的字符(记得填充) 异或 C

beyondHex

超越hex,还有字符G,猜测17进制

python long_to_bytes(int(a,17))

certificate

最常见的证书形式,前面为数据为n、e,后面有一长串数据包含dp

可以先试试简单的(应该吧🤓):BaseCTF2024-Crypto-naby - Naby的博客

two Es

一把梭BaseCTF2024-Crypto-naby - Naby的博客

xorRSA

找个脚本一把梭

week2

AES_mode

hint32字节,key只有16字节,异或后hint高16字节保留,则可以得到hint的值,从而得到key

密文为CBC模式加密,flag为iv,即第一轮使用flag作用iv先异或第一段明文之后加密

知道key、明文、密文,可以使用ECB模式,获取每轮的iv,从而逆推

Common RSA

求p、q:p+q的平方没有比n大多少,循环加几个n直接开根就好了(实测加4个n,加0个n也能开根但结果开出来位数啥的不对),之后p+q和p*q解方程就好了

之后会发现p-1和q-1跟e不互素,直接上AMM解,只用一个数解就可以了,参考BaseCTF2024-Crypto-naby - Naby的博客

Furious BlackCopper

hint1为p的低20位,hint2为低830-30位

可以爆破20-30位,然后copper高194位

baby Elgamal

sage用discrete_log_lambda解出x就行了

findKey in middle

key被拆成了两个16位,思路为中间相遇

分别遍历range为k1和k2求对应的pow放到字典(键为i,值为pow(3或5,i,p) )里,之后遍历k1的字典,取模p下的反乘上x,看看k2的字典的值中是否存在,遍历到即可得到k1和k2

strange random

MT19937Predictor一把梭


?CTF2025-Crypto
http://example.com/2025/10/14/ilovectf2025/
作者
Naby
发布于
2025年10月14日
许可协议