CTF入门学习笔记——Crypto密码(古典密码)

文章目录

CTF入门学习笔记------Crypto密码(古典密码)

🚀🚀这篇笔记是我对自己初步学习CTF的一个小总结,主要涉及了Crypto板块的古典密码,这部分内容比较简单,利用一些工具加上观察分析一般都能解决,但是古典密码一般会和编码结合起来一起考察,所以此篇笔记主要起到一个分析总结的作用。

凯撒密码

🚀🚀凯撒密码算是古典密码里面非常有名的密码了,相传凯撒大帝曾经使用使用这种密码与下属沟通,所以命名为凯撒密码。其核心逻辑就是将英文字母进行规律替换,在当时那个时代无疑是一种好的加密方式,但是现在看来他是极易被破解的。我们可以也使用词频分析来分析破解(http://quipqiup.com

🚀🚀接下来我们来看一道例题:

看我回旋踢

🚀🚀题目:BUUCTF在线评测 (buuoj.cn)

🚀🚀我们下载附件,得到一个文本文件,如下所示:

synt{5pq1004q-86n5-46q8-o720-oro5on0417r1}

🚀🚀我们观察一下,很像我的的flag,但是字母有些不同,经过分析synt,得到这就是移位13的flag,所以我们使用在线工具,将位移设置成13,得到结果:

flag{5cd1004d-86a5-46d8-b720-beb5ba0417e1}


摩斯密码

🚀🚀摩斯密码我们大家也熟悉,就是我们的电报。他的核心特点就是有两种不同的元素(不一定是.-,还可能是01,AB之类的)和间隔(空格或者/),当我们看到上面特征时,就可以考虑摩斯密码了。

摩斯

🚀🚀题目:BUUCTF在线评测 (buuoj.cn)

🚀🚀打开附件得到一串点横,然后有空格隔开,大概率为摩斯密码。

... .-... --- ...- . -.-- --- ...-

🚀🚀解码结果如下所示:

ILOVEYOU


维吉尼亚密码

🚀🚀维吉尼亚密码 (又译维热纳尔密码)是使用一系列凯撒密码组成密码字母表的加密算法,属于多表密码的一种简单形式。可以用来防止词频攻击。

🚀🚀接下来我们看一道题目,来加强一下认知:

Vigenère

🚀🚀题目:[AFCTF 2018]Vigenère | NSSCTF

🚀🚀我们可以看到附件中有这样一串字母以及代码,明显就是我们需要的flag:

Zy daf sjle Wafyyo drvnvdrtv gh dif Crtl nrqfy boe zqm trtwjy kf gnnqr blhawas, ntm bhr gogojt ntm xalsgfn kf gnnqr fgnsleef.

luig vy cxwpf{Jnxwobuqg_O_Cogiqi!}

c 复制代码
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main()
{
	freopen("flag.txt","r",stdin);
	freopen("flag_encode.txt","w",stdout);
	char key[] = /*SADLY SAYING! Key is eaten by Monster!*/;
	int len = strlen(key);
	char ch;
	int index = 0;
	while((ch = getchar()) != EOF){
		if(ch>='a'&&ch<='z'){
			putchar((ch-'a'+key[index%len]-'a')%26+'a');
			++index;
		}else if(ch>='A'&&ch<='Z'){
			putchar((ch-'A'+key[index%len]-'a')%26+'A');
			++index;
		}else{
			putchar(ch);
		}
	}
	return 0;

🚀🚀分析代码可知是维吉尼亚密码,如果我们知道密钥,也就好解决了,但是目前没有给我们,所以我们采用暴力破解的办法(Vigenere Solver | guballa.de),最终能得到结果:

flag is afctf{Whooooooo_U_Gotcha!}

🚀🚀这便是我们需要的flag。


栅栏密码

🚀🚀栅栏密码就是把要加密的明文分成N个一组,然后把每组的第一位、第二位...分别提取出来拼接在一起。解密的话,就逆操作即可。

篱笆墙的影子

🚀🚀题目:BUUCTF在线评测 (buuoj.cn)

🚀🚀打开附件,得到如下信息:

felhaagv{ewtehtehfilnakgw}

🚀🚀我们简单分析一下前面8个字母,发现两个一组能拼出flag,所以应该是两个字母一组,可以自己分析,也可以利用工具](https://www.qqxiuzi.cn/bianma/zhalanmima.php)分析,结果如下所示。

flag{wethinkwehavetheflag}


栅栏密码

🚀🚀栅栏密码就是把要加密的明文分成N个一组,然后把每组的第一位、第二位...分别提取出来拼接在一起。解密的话,就逆操作即可。

篱笆墙的影子

🚀🚀题目:BUUCTF在线评测 (buuoj.cn)

🚀🚀打开附件,得到如下信息:

felhaagv{ewtehtehfilnakgw}

🚀🚀我们简单分析一下前面8个字母,发现两个一组能拼出flag,所以应该是两个字母一组,可以自己分析,也可以利用工具](https://www.qqxiuzi.cn/bianma/zhalanmima.php)分析,结果如下所示。

flag{wethinkwehavetheflag}


猪圈密码

🚀🚀猪圈密码(Pigpen cipher,亦称朱高密码、共济会密码)是一种以格子为基础的简单替代式密码。即使使用符号,也不会影[密码分析,亦可用在其它替代式的方法。

待补充

🚀🚀CTF中的古典密码远远不止这些,不够现在一般都是现代密码偏多。我会在接下来的学习中不断补充,同时也希望我能一直坚持下去。

相关推荐
IM_DALLA12 分钟前
【Verilog学习日常】—牛客网刷题—Verilog企业真题—VL74
学习·fpga开发·verilog学习
王俊山IT34 分钟前
C++学习笔记----8、掌握类与对象(五)---- 嵌套类与类中枚举
开发语言·c++·笔记·学习
hallo12841 分钟前
英文论文安全的免费查重网站
安全·论文
北极无雪1 小时前
Spring源码学习(拓展篇):SpringMVC中的异常处理
java·开发语言·数据库·学习·spring·servlet
问道飞鱼2 小时前
每日学习一个数据结构-默克尔树(Merkle Tree)
数据结构·学习·默克尔树
William_Edmund2 小时前
Python 语言学习——应用1.2 数字图像处理(第二节,变换)
人工智能·学习·计算机视觉
weixin_514548893 小时前
机器学习课程学习周报十五
人工智能·学习·机器学习
速盾cdn3 小时前
速盾:如何判断高防服务器的防御是否真实?
网络·安全
Themberfue3 小时前
基础算法之双指针--Java实现(下)--LeetCode题解:有效三角形的个数-查找总价格为目标值的两个商品-三数之和-四数之和
java·开发语言·学习·算法·leetcode·双指针
AIGC破防黑吗喽3 小时前
Midjourney零基础学习
人工智能·gpt·学习·ai·stable diffusion·midjourney·ai绘画