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

相关推荐
devmoon2 小时前
在 Polkadot 上部署独立区块链Paseo 测试网实战部署指南
开发语言·安全·区块链·polkadot·erc-20·测试网·独立链
1024小神2 小时前
SVG标签中path路径参数学习
学习
成茂峰2 小时前
软考高级·系统架构设计师 | 四、信息技术安全知识
安全·信息安全·系统架构·架构设计师
浅念-2 小时前
C++入门(2)
开发语言·c++·经验分享·笔记·学习
ZH15455891312 小时前
Flutter for OpenHarmony Python学习助手实战:面向对象编程实战的实现
python·学习·flutter
向哆哆2 小时前
CANN生态安全保障:cann-security-module技术解读
人工智能·安全·cann
简佐义的博客2 小时前
生信入门进阶指南:学习顶级实验室多组学整合方案,构建肾脏细胞空间分子图谱
人工智能·学习
近津薪荼2 小时前
dfs专题4——二叉树的深搜(验证二叉搜索树)
c++·学习·算法·深度优先
rannn_1113 小时前
【苍穹外卖|Day4】套餐页面开发(新增套餐、分页查询、删除套餐、修改套餐、起售停售)
java·spring boot·后端·学习
wuli_滔滔3 小时前
CANN安全机制源码探秘 仓库中的权限校验与数据加密实现
安全·cann