CTF Crypto 入门指南

先导

解密密文的方式总归为两种:在线解密工具的使用编写对应的解密脚本。像常规的编码形式(如base64、hex等),我们可以直接使用在线解密工具进行解密。而对于一些复杂的加密算法,我们需要逆向分析加密脚本来编写对应的解密脚本。
本站有收集一些在线解密的工具,可在导航栏的解密工具中找到,在尝试破解的过程中可以使用。这里讲一下解密脚本编写准备。

解密脚本编写前的准备

Python开发环境配置

介绍:Python 是一门非常流行的编程语言,以简单易学、语法简洁而闻名,常被用于网站开发、数据分析、人工智能和自动化脚本等领域。VSCode 是一个代码编辑器。由微软开发,免费、轻量且功能强大,它支持各种编程语言,拥有丰富的插件生态系统,可以极大地提高编程效率。

这里只给vscode+python的配置方法,其他代码编辑器可自行搜索配置。
【教程】VScode中配置Python运行环境

Crypto的Python库

Python安装库的命令:

pip install '这里替换成库名'

介绍:Crypto经常使用到的库:

第三方库(需要自己额外安装):
  1. 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设计友好

  1. gmpy2
import gmpy2
from gmpy2 import powmod, gcd, invert
  • 用途:大整数运算、RSA相关计算、模运算

  • 特点:高性能数学运算,RSA题必备

  1. sympy
from sympy import symbols, solve, factorint
  • 用途:符号计算、方程求解、因数分解

  • 特点:数学推导和求解

安装以上库的命令:

pip install pycryptodome gmpy2 sympy
标准库(无需安装,Python自带):
  1. hashlib
import hashlib
hashlib.md5(), hashlib.sha256()
  • 用途:哈希函数计算

  • 特点:Python内置,无需安装

  1. base64
import base64
base64.b64encode(), base64.b64decode()
  • 用途:Base64编码解码

  • 特点:处理各种编码格式

1. 密码学基础概念

密码学是CTF比赛中的重要领域,主要涉及加密、解密和破解技术。以下是核心概念:

在ctf夺旗赛中,crypto(密码学)类型题目会提供加密过的密文(也会带有加密脚本,以及各种各类提示加密方式的信息)。
我们的任务就是通过比赛方提供的密文,结合题目提供的明显的或者隐晦的信息来破解出明文。
对于本站的题目,我们最后得到的明文会带有flag{...},或者需要我们自己手动添加flag{ }来包裹我们获取的明文,然后再进行提交。

2. 新手解题须知

解题过程中,要注意记录下解题的过程和思路,内容包括但不限于遇到的困难,遇到困难怎么寻找方法的,怎么尝试解决的。不是解出题目了才记笔记,即使没有解除题目也没关系,考核注重发掘个人学习能力、思考分析能力、以及总结的能力

3. 本次考核涉及的知识点

鉴于参加考核的都是零基础,刚开始去分析并破解密文会有很大的难度,这里提供一下本次考核五道加密题涉及的知识点以及对应的学习资源。

记住:密码学题目只要找对提示,就很容易找到突破口!