CTF之Crypto新手入门

Crypto

看了《密码编码学与网络安全》的大部分内容,首先做了攻防世界网站里面的新手题目,对它考查的内容有了初步的认识,有加密和编码的内容,加密包含了几种密码:栅栏密码,摩斯密码,RSA密码,轮转机,培根密码等
编码包括:BASE64(6个bit组成一个字符,共有64种字符)Unicode ,ASCII

学习到的Crypto所需工具

最好在kali环境下完成,RSA密码使用opensll以及代码版的RSATools
编码的话收集到了许多转换工具,这里也不一一赘述,比较好用的工具叫 convertor

RSA解密过程

这种题目一般会给你一个.enc文件(被加密过的flag文件)还有一个.pem文件(公钥文件)
在Kali系统的terminal中使用OpenSSL执行openssl rsa -pubin -in pubkey.pem -text -modulus,即可看到该pem文件内的公钥e和模数n,接着在质数分解网站分解这个模数得到p和q两个质数,之后可以使用exe版的RSAtool得出私钥d。
如果是要求我们解密enc文件的话,我们需要使用python版的rsatools获得私钥的pem文件,执行以下命令:

python3 rsatool.py -f PEM -o private.pem -p Value_p -q Value_q -e Value_e

我们就获得了一个private.pem的私钥文件,之后再执行以下命令:

openssl rsautl -decrypt -in flag.enc -inkey private.pem -out flag.dec

我们就能得到一个flag.dec文件,里面就是解密得到的字符了。

XCTF的轮转机解密

Wheel Cipher
加密表:
1: < ZWAXJGDLUBVIQHKYPNTCRMOSFE <
2: < KPBELNACZDTRXMJQOYHGVSFUWI <
3: < BDMAIZVRNSJUWFHTEQGYXPLOCK <
4: < RPLNDVHGFCUKTEBSXQYIZMJWAO <
5: < IHFRLABEUOTSGJVDKCPMNZQWXY <
6: < AMKGHIWPNYCJBFZDRUSLOQXVET <
7: < GWTHSPYBXIZULVKMRAFDCEONJQ <
8: < NOZUTWDCVRJLXKISEFAPMYGHBQ <
9: < XPLTDSRFHENYVUBMCQWAOIKZGJ <
10: < UDNAJFBOWTGVRSCZQKELMXYIHP <
11: < MNBVCXZQWERTPOIUYALSKDJFHG <
12: < LVNCMXZPQOWEIURYTASBKJDFHG <
13: < JZQAWSXCDERFVBGTYHNUMKILOP <

密钥为:2,3,7,5,13,12,9,1,8,10,4,11,6
密文为:NFQKSEVOQOFNP
CTF之Crypto新手入门_第1张图片
既然是车轮,看来需要轮换,一开始以为是将密文对应密钥位置进行替换,发现不对,查了查发现Jefferson wheel cipher(杰弗逊转轮加密器),差不多重新排一下序,并把密文转到第一个位置,发现flag:FIREINTHEHOLE

一些奇奇怪怪的加密或编码方法

BrainFuck和OOK!编码:一个好心人的解码链接
猪圈密码,培根密码,标准银河字母的编码,佛箴言密码,云影密码
一个很全的集合

python相关知识

熟悉python的base64库内的各种decode和encode,chr和ord是两对互补的函数
以及python中调用Crypto中的AES加密等操作

你可能感兴趣的:(ctf,crypto)