BUUCTF-Crypto1

文章讲述了如何通过古典密码技术如六十甲子、栅栏密码、凯撒密码以及现代加密方法如MD5和RSA,解析一系列复杂的加密案例,包括文件解密、密文分析和大整数运算,最终揭示隐藏的旗标(flag)。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

传统知识+古典密码1

1.打开附件

是一个文本文档

2.六十甲子相关数表

用六十甲子相关数表

对照后得到28 30 23 08 17 10 16 30

'+甲子',一甲子是六十年,加上六十后得到 88 90 83 68 77 70 76 90

3.十进制转ASCII码

将十进制转ASCII码,得到一串字符串

在线网站:十进制到 Ascii 文本转换器 - bfotool

4.栅栏密码

用随波逐流工具进行栅栏密码解密

因数[2, 4]:
分为2栏时,解密结果为:XMZFSLDZ
分为4栏时,解密结果为:XSMLZDFZ

5.凯撒密码

用凯撒密码对两栏的字符分别解密

找到可以拼写的字母就是flag

6.得到flag

萌萌哒的八戒1

1.打开附件

一直小猪,图片下面是一串密文

2.猪圈密码

猪圈密码在线网站https://www.metools.info/code/c90.html?spm=a2c6h.12873639.article-detail.7.8ae851e6dOqNsA

进行猪圈密码解密

3.得到flag

大帝的密码武器1

1.打开附件

一个题目,一个密文

2.凯撒密码

根据题目提示猜测是凯撒密码,将FRPHEVGL用随波逐流工具,进行凯撒解密

根据题目提示发现偏移量是十三时单词是有意义的

3.密文解密

将密文用随波逐流中的凯撒密码解密,偏移量是十三时即为flag

4.得到flag

Alice与Bob1

1.素数分解

根据题目提示内容,用随波逐流工具对大整数进行分解

得到101999966233

2.MD5加密

根据题目对得到的数字进行MD5加密,得到32为的MD5值

MD5在线加密网站:MD5在线加密/解密/破解—MD5在线

3.得到flag

rsarsa1

1.打开附件

2.rar解密

#大佬的脚本

import gmpy2
e = 65537
p = 9648423029010515676590551740010426534945737639235739800643989352039852507298491399561035009163427050370107570733633350911691280297777160200625281665378483
q = 11874843837980297032092405848653656852760910154543380907650040190704283358909208578251063047732443992230647903887510065547947313543299303261986053486569407
n = p*q
c = 83208298995174604174773590298203639360540024871256126892889661345742403314929861939100492666605647316646576486526217457006376842280869728581726746401583705899941768214138742259689334840735633553053887641847651173776251820293087212885670180367406807406765923638973161375817392737747832762751690104423869019034
 
d =gmpy2.invert(e,(p-1)*(q-1))
print(d)
M = pow(c,d,n)
print(M)

运行第一行是d的值,最后一行是flag

3.得到flag

### BUUCTF RSA1 密码学挑战的解题思路 对于BUUCTF平台上的RSA1密码学挑战,解决此类问题通常涉及理解RSA加密算法的工作原理以及可能存在的弱点。在处理这类题目时,重点在于分析给定的信息并利用已知漏洞来破解密钥。 #### 了解RSA基本概念 RSA是一种基于大整数因子分解难题构建的安全体系结构,在公钥加密领域广泛应用。其安全性依赖于两个大素数p和q乘积n=p*q难以被因式分解这一事实[^2]。 #### 常见攻击方法 针对RSA系统的常见攻击方式包括但不限于暴力破解尝试所有可能性(当密钥长度较短时可行),但更有效的策略通常是寻找实现中的缺陷或错误配置。例如: - **低指数广播攻击**:如果相同的明文消息m使用相同的小e值发送到多个接收者,则可以通过中国剩余定理恢复原始消息。 - **共模攻击**:当不同用户共享同一个模块N但是各自有不同的私钥d_i时,可以利用这一点来进行攻击。 - **部分私钥泄露**:即使只有少量位数的私钥d被暴露出来也可能导致整个系统崩溃。 考虑到上述提到的内容,并结合具体题目给出的数据特点,以下是具体的解题方向: #### 解决方案建议 假设题目提供了如下参数: - e: 公开指数 - n: 模数 - c: 加密后的密文 ##### 判断是否存在弱化情况 检查提供的`e`是否过小(如3)。如果是这样,那么可能存在低指数广播攻击的可能性。 ##### 尝试提取更多有用信息 查看是否有其他提示可以帮助简化计算过程,比如额外的消息副本或者其他形式的帮助信息。 ##### 使用工具辅助求解 借助开源库PyCryptoDome或其他类似软件包加速实验进程。Python代码片段展示如何加载必要的组件: ```python from Crypto.PublicKey import RSA from sympy.ntheory.factor_ import factorint ``` 通过这些指导原则,应该能够为进一步探索提供坚实的基础。当然,实际操作还需要根据具体情况调整策略。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lin___ying

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值