CRYPTO入门心得

CRYPTO入门心得

因为我是直接刷题入门的,没有专门的去看密码学相关的书籍,所以就分享一下我通过做题得到的一些知识和思维,相当于一个阶段性总结吧。

临时查了一下密码学的题目,好像是分为现代密码学和古典密码学,但是我还没有碰到过几道古典密码题,所以就按照我做过的题型的分类来讲吧

加密方式

先来讲讲一些加密方式吧,有base,ascii,unicode,md5,rsa,aes等等,然后base,ascii,unicode这些主要考的是编码转换(这里可以随便拿一些例子讲讲),这些编码一开始我看到都不敏感的,做的题多了之后看到基本上看到一串东西只要不是太奇怪的编码都能反应出来是哪种编码,而且在后面会有一些很复杂的题目套了很多层的,基本上看到这些编码加密的字符串就已经很接近答案了。

各种编码

MD5加密

找buu那道最简单的md5举个例子就好。

再讲一道丢失的md5

base编码

细讲一下其中的原理

Base64编码

ZmxhZ3tUSEVfRkxBR19PRl9USElTX1NUUklOR30=

转换后为flag{THE_FLAG_OF_THIS_STRING}

这种结尾有个等号的字符串是base系列编码的特征,但是为什么结尾会有这个等号呢,而这个等号是不是一直都会出现的呢,答案是不会的。

拿base64编码举例子,先来讲讲base64编码的定义。

Base64是一种基于64个可打印字符来表示二进制数据的表示方法。由于{\displaystyle \log _{2}64=6}{\displaystyle \log _{2}64=6},所以每6个比特为一个单元,对应某个可打印字符。3个字节相当于24个比特,对应于4个Base64单元,即3个字节可由4个可打印字符来表示。在Base64中的可打印字符包括字母A-Za-z、数字0-9,这样共有62个字符,此外两个可打印符号在不同的系统中而不同。

然后拿Wikipedia的例子去讲

再举一反三一下base32和16

再讲讲那道base家族

古灵精怪的编码

Rabbit加密

例子:ctfshow crypto6

ook加密

例子:ctfshow crypto7

brainfuck加密

例子:ctfshow crypto8

ook和brainfuck这种编码能够认出来就好了,不要到时候看到这种东西的时候一脸懵逼就好

Quoted-printable编码

例子:ctfshow crypto10

这个也差不多,就是能认出来就好了,感觉没必要去特地研究它,一看到能认出来这个是什么东西就好。

当铺密码

这个是有个脚本用来解密的

例子:ctfshow 萌新_密码5

埃特巴什码

看一下pedia,就是26个字母反过来对照一遍的

例子:ctfshow crypto12

总结

就讲这么多吧,其实还遇到了很多其他奇奇怪怪的编码。

做了这么多道密码题,遇到一些看不懂的东西,先不要着急,可以看看文件名是什么,文件名的名字很可能是编码的方式,我记得上次红帽杯签到题就是下载下来是一个叫做“EBCDIC”的东西,点进去看hex看不出来是什么东西,然后搜索EBCDIC,发现这也是一种编码,转换了一下就拿到flag了

工具

在ctfshow那个群里面找到一个还行的工具叫CTFcrackTools,那个工具有很多功能啊,可以拿来解密凯撒密码,栅栏密码,培根密码,猪圈密码,摩斯密码啊这些古典密码,挺实用的。翻了一下最近比赛的题,感觉挺少古典密码的,所以也没有找古典密码的例题讲(最后讲吧

RSA非对称加密算法

这一部分的原理比较复杂,我到现在也还没有完全理解,就直接讲我理解的吧,先讲讲加密解密过程,参考网站:https://my.oschina.net/u/4302374/blog/3383578;https://blog.csdn.net/u013073067/article/details/86674474

题目

一些RSA题目

从简单到难来讲例题

要用工具那些rsa题目暂时还没有研究透,还不在理解范围内

posted @ 2021-06-15 10:55  Fr3Nky  阅读(287)  评论(0编辑  收藏  举报