CTF Crypto 入门指南
先导
解密密文的方式总归为两种:在线解密工具的使用、编写对应的解密脚本。像常规的编码形式(如base64、hex等),我们可以直接使用在线解密工具进行解密。而对于一些复杂的加密算法,我们需要逆向分析加密脚本来编写对应的解密脚本。
本站有收集一些在线解密的工具,可在导航栏的解密工具中找到,在尝试破解的过程中可以使用。这里讲一下解密脚本编写准备。
解密脚本编写前的准备
Python开发环境配置
介绍:Python 是一门非常流行的编程语言,以简单易学、语法简洁而闻名,常被用于网站开发、数据分析、人工智能和自动化脚本等领域。VSCode 是一个代码编辑器。由微软开发,免费、轻量且功能强大,它支持各种编程语言,拥有丰富的插件生态系统,可以极大地提高编程效率。
这里只给vscode+python的配置方法,其他代码编辑器可自行搜索配置。
【教程】VScode中配置Python运行环境
Crypto的Python库
Python安装库的命令:
pip install '这里替换成库名'
介绍:Crypto经常使用到的库:
第三方库(需要自己额外安装):
- pycryptodome
from Crypto.Cipher import AES, DES, RSA
from Crypto.Util.number import bytes_to_long, long_to_bytes
from Crypto.Util.Padding import pad, unpad
-
用途:最全面的密码学库,支持对称/非对称加密、哈希、数字签名等
-
特点:CTF中最主流的库,API设计友好
- gmpy2
import gmpy2
from gmpy2 import powmod, gcd, invert
-
用途:大整数运算、RSA相关计算、模运算
-
特点:高性能数学运算,RSA题必备
- sympy
from sympy import symbols, solve, factorint
-
用途:符号计算、方程求解、因数分解
-
特点:数学推导和求解
安装以上库的命令:
pip install pycryptodome gmpy2 sympy
标准库(无需安装,Python自带):
- hashlib
import hashlib
hashlib.md5(), hashlib.sha256()
-
用途:哈希函数计算
-
特点:Python内置,无需安装
- base64
import base64
base64.b64encode(), base64.b64decode()
-
用途:Base64编码解码
-
特点:处理各种编码格式
1. 密码学基础概念
密码学是CTF比赛中的重要领域,主要涉及加密、解密和破解技术。以下是核心概念:
- 明文(Plaintext):原始未加密的信息
- 密文(Ciphertext):加密后的信息
- 密钥(Key):加密/解密所需的参数
- 算法(Algorithm):加密/解密的数学过程
在ctf夺旗赛中,crypto(密码学)类型题目会提供加密过的密文(也会带有加密脚本,以及各种各类提示加密方式的信息)。
我们的任务就是通过比赛方提供的密文,结合题目提供的明显的或者隐晦的信息来破解出明文。
对于本站的题目,我们最后得到的明文会带有flag{...},或者需要我们自己手动添加flag{ }来包裹我们获取的明文,然后再进行提交。
2. 新手解题须知
解题过程中,要注意记录下解题的过程和思路,内容包括但不限于遇到的困难,遇到困难怎么寻找方法的,怎么尝试解决的。不是解出题目了才记笔记,即使没有解除题目也没关系,考核注重发掘个人学习能力、思考分析能力、以及总结的能力
- 本站所有的题目都参照了常规的密码学加密算法,不会有特别复杂的、个人设计的算法。
- 本站的flag校验系统只是来帮助验证你提交的flag是否正确,页面其余设置(如已完成、完成率)不是考核的目的和注重点。
- 所有题目的提示可能隐藏在题目、题目描述、加密脚本、注释等地方。
- 对于难以分析出加密方式的题目,要仔细留意题目(或者文件名)可能提供的信息,以及留意密文的形式,如base64编码(可能文本带有标志"==")、hex编码(十六进制数)等。
- 重要的一点: 本次考核允许使用AI工具来分析和破解题目。注意记录下使用的AI工具,以及破解的过程(怎么问的,关键词是什么)。
3. 本次考核涉及的知识点
鉴于参加考核的都是零基础,刚开始去分析并破解密文会有很大的难度,这里提供一下本次考核五道加密题涉及的知识点以及对应的学习资源。
-
其中有两道题,一道的加密中使用了将图片转化为base64编码的方法,另一道使用了将图片转化为hex编码的方法。
-
摩斯电码:带你了解“摩尔斯电码到密码学”
-
凯撒密码:【古典密码】凯撒密码与相关变种密码
-
维吉尼亚密码:
维吉尼亚密码的原理及破解 -
base64编码:
【密码学】base64编码
Base64详解:玩转图片Base64编码 -
RSA:
[CTF密码学]RSA相关题目解题方法与python脚本总结(附例题)
【CTF-RSA】sage脚本_p高位攻击
记住:密码学题目只要找对提示,就很容易找到突破口!