SQCTF2025-Crypto-WP
字数 2490 2025-08-30 06:50:35
SQCTF2025 Crypto题目解析与教学文档
1. 魔改Base64解码
题目内容: 91kR53l4pXoztyd3wSe3kJc3dBpyQQpj8Qbm8Odm8Jcz4OpC5zcClzcCgPvg==
解题步骤:
- 识别这是一个经过修改的Base64编码
- 尝试标准Base64解码失败后,需要分析魔改部分
- 通过观察发现可能是替换了字符集或添加了前缀
- 去除前缀"91"后解码成功
Flag: SQCTF{b7b48685-03ef-4e24-b25b-212fac2ec2d3}
教学要点:
- Base64变种常见修改方式:字符集替换、添加固定前缀/后缀、位操作等
- 遇到Base64解码失败时,可尝试去除固定部分或分析字符集
2. Base91与Rabbit解密
题目内容: 长字符串加密数据
解题步骤:
- 首先使用Base91解码
- 根据提示"哔哔哩哔哔哩的哈哈大笑"猜测密码为"233"
- 使用Rabbit流密码解密
Flag: SQCTF{LOOK_my_eyes_baby_why?}
教学要点:
- Base91编码特点:比Base64更高的压缩率
- Rabbit流密码的使用方法
- CTF中常见密码提示的关联方式
3. 核心价值观解码
题目内容: 核心价值观编码数据
解题步骤:
- 识别核心价值观编码特征
- 使用核心价值观解码工具连续解码
Flag: SQCTF{E2jacnicamcm_cnanamw_kwkma}
教学要点:
- 核心价值观编码原理
- 多层编码的识别与处理方法
4. 简单RSA
题目内容: 标准RSA加密
解题步骤:
- 识别为费马分解情况
- 使用yafu工具分解n得到p和q
- 标准RSA解密流程
教学要点:
- 费马分解适用条件:p和q接近时
- yafu工具的使用方法
- RSA标准解密流程
5. ezCRT
题目内容: RSA-CRT问题
解题步骤:
- 猜测e=3(常见小指数情况)
- 应用中国剩余定理(CRT)攻击
- 计算明文
教学要点:
- 中国剩余定理在密码学中的应用
- 小指数攻击的原理
- 多组同余方程求解方法
6. 椭圆曲线密码(ECC)
题目内容:
crypted_data = [(5081741, 6744615), (610619, 6218)]
c1 = E(5081741, 6744615)
c2 = E(610619, 6218)
m = c2 - secretKey * c1
解题步骤:
- 理解椭圆曲线上的点运算
- 计算离散对数问题求secretKey
- 使用secretKey解密得到明文
Flag: SQCTF{5720914}
教学要点:
- 椭圆曲线密码基本原理
- 椭圆曲线上的点加法和标量乘法
- 离散对数问题在ECC中的应用
7. 维吉尼亚与凯撒密码
题目内容: 多层加密数据
解题步骤:
- 爆破得到维吉尼亚密码为"123456"
- 维吉尼亚解密后得到中间结果
- 再使用凯撒密码解密
Flag: SQCTF{you_are_win!}
教学要点:
- 维吉尼亚密码的加密解密方法
- 凯撒密码的特点
- 多层加密的识别与分离
8. 密室逃脱挑战
四关解密过程:
-
第一关 - 凯撒密码:
- 解密得到: "I am the key to the next"
-
第二关 - 栅栏密码:
- 使用Fence解码,去除"?"得到: "The secret message is hidden in the flag"
-
第三关 - 摩斯密码:
- 解码得到: "HALLO MORSE CODE GUTR"
-
第四关 - Base系列编码:
- 连续Base解码得到flag
Flag: SQCTF{F4BBAC33-8D80-A886-5238-EA35B38B353A}
教学要点:
- 多步骤密码挑战的解题思路
- 各类古典密码的识别特征
- 信息提取与组合技巧
9. RSA dp泄露攻击
题目内容: 标准RSA dp泄露场景
解题步骤:
- 利用dp泄露信息
- 通过数学推导恢复私钥
- 解密得到明文
教学要点:
- dp参数在RSA中的含义
- dp泄露攻击的数学原理
- 攻击实现的具体步骤
10. 变种猪圈密码
题目内容: 特殊符号序列
解题步骤:
- 识别为猪圈密码变种
- 查找或构建对应密码表
- 逐符号解码
Flag: SQCTF{jijibaotonghualizuoyingxiong}
教学要点:
- 猪圈密码的基本原理
- 变种密码的识别方法
- 符号到字母的映射技巧
11. 边信道分析(SCA)
题目内容:
- template_trace_0.npy 和 template_trace_1.npy
- energy_traces_with_flag.npy
解题步骤:
- 理解能量轨迹与二进制位的关系
- 计算每个轨迹与两个模板的欧氏距离
- 根据距离比较判断每位是0还是1
- 组合所有位得到二进制序列
- 转换为文本
教学要点:
- 边信道攻击基本原理
- 能量分析攻击的实现
- 欧氏距离在模式识别中的应用
- 二进制到文本的转换方法
12. 摩斯密码
题目内容: 摩斯电码
解题步骤:
- 识别摩斯密码特征
- 标准摩斯解码
Flag: SQCTF{YOU-HAVE-TALENT}
教学要点:
- 摩斯电码的编码规则
- 常见工具使用方法
- 摩斯密码的变种识别
13. 共模攻击
题目内容: RSA共模场景
解题步骤:
- 识别共模攻击适用条件
- 应用扩展欧几里得算法
- 计算明文
教学要点:
- RSA共模攻击原理
- 扩展欧几里得算法实现
- 相同明文不同加密指数的安全性问题
14. 托马斯·杰斐逊密码
题目内容: 历史密码
解题步骤:
- 识别为托马斯·杰斐逊密码轮
- 按照参考方法解密
- 从第17行提取flag
Flag: SQCTF{maketysecgreat}
教学要点:
- 杰斐逊密码轮的历史与原理
- 多行密码的识别方法
- 历史密码在现代CTF中的应用
总结
本系列题目涵盖了广泛的密码学知识点,包括:
- 现代加密算法(RSA, ECC)
- 古典密码(凯撒、维吉尼亚、猪圈密码等)
- 编码方式(Base系列、核心价值观)
- 特殊攻击方法(边信道、共模攻击)
- 历史密码系统
解题关键在于:
- 准确识别加密/编码类型
- 了解各类密码的脆弱性
- 合理使用工具与数学方法
- 注意题目中的隐藏提示
- 多层加密的分步处理