Misay's blog

Back

1.XR4#

类似RC4的流密码,解密思路是用密钥XR4解密密文MjM184anvdA=还原出随机数种子,用来重置随机数生成器,再恢复矩阵,最后生成随机数流逐位异或就能得到答案,exp

flag{c570ee41-8b09-11ef-ac4a-a4b1c1c5a2d2}

2.essential#

套层皮的RSA,crypto01计算的是

n1n2  mod  n3n_1^{n_2}\;mod\;n_3

crypto02计算的是

n1−1  mod  n2n_1^{-1}\;mod\;n_2

crypto03计算的是

n3n1  mod  n2n_3^{n_1}\;mod\;n_2

crypto05计算的是

n1e  mod  n2n_1^e\;mod\;n_2

这里给出了

n1=pqn_1=pq

,注意到a就512位,且p>13a    q<25ap>13a\;\;q<25a考虑到质数分步在500多位下都很密集,p应该很接近13a,q很接近25a,那么就可以对n1除去13*25再开根,得到一个a的初步估计,再尝试搜索出p,q的值,脚本如下

有了p,q之后就是很基础的RSA解明文了,注意到e与phi不互素,但是gcd很小,先试着用e//2算,实在不行再尝试有限域开根,所幸这里直接就算出来了,exp

flag{75811c6d95770d56092817b75f15df05}

3.EZ-calculate#

part1

RSA,题目给出的是

p1=(pe−qe)  mod  np_1=(p^e-q^e)\;mod\;n p2=(p−q)e  mod  n    ∗    ek  mod  np_2=(p-q)^e\;mod\;n\;\;*\;\;e^k\;mod\;n

这里我们的思路是枚举k的取值,计算出pow(e,k,n)之后用p2来除它,得到P,那么由二项式定理

p2ekmodn=P  =(p−q)e  mod  n=pe+qemod  n\frac{p_2}{e^kmodn}=P\;=(p-q)^e\;mod\;n=p^e+q^emod\;n

上下相加,容易得到

p1+P=2pemod  np_1+P=2p^emod\;n p=gcd(p1+P,n)p=gcd(p_1+P,n)

同样的方法我们也能枚举出q,再用位数和正负号作为制约就能爆破出p,q的值,脚本如下

然后这里e是65536,不和phi互素,gcd是4,就考虑有限域开根然后用crt算可能的解了,脚本如下

不过跑出来b'CRYPTO_ALGORIT'就是第一个,有可能开根也能做呢

  • part2

    背包加密,不过该给的都给了,按照加密过程反过来写很快就能搞出来

    最后对两个flag拼接之后取md5,flag{64f67374264b7621650b1de4dbc5f924}

4.merge_ECC#

考察的是有关ECC的两种特殊攻击方法

  • part1

    攻击的思路是Pohlig-Hellman攻击,要求是曲线的阶有小因数,这里E.order计算出来是512位,丢yafu分解之后发现有7个因子,其中5个比较小,且全部乘起来之后是比nin_i要大的,因此我们就可以取小的5个因子来进行攻击,脚本如下

  • part2

    smart攻击,这里曲线计算出来阶和模数相同,脚本如下

    flag{f61bd9f152e65ac-7895892011}

*5.logos#

2023赣政杯原题,这里是别的师傅写的博客2023赣政杯 --- Crypto_赣政杯2023-CSDN博客 ↗

还在被sagemath各种环境问题折磨,就暂时不细写了

UCSCCTF2025
https://www.zt2misay2.cn/blog/ucscctf2025
Author Misay
Published at 2025年4月20日