密码学
01密码学概述
密码学的发展
密码编码学
编码与加密?
编码为一类映射的关系(一一映射)
加密为一类算法(有算法(公开的),密钥(不可泄漏))
明文 ------> 密文
plain text cipher text
对称密码和不对称密码算法
对称密码算法优点:加密解密速度快
缺点:密钥不能泄漏(除了AES,因为密钥很长,目前无机器能够在短时间内破解)
对称密码算法常考DES
非对称密码算法(Asymetric cipher):
加密密钥和解密密钥不同,从一个很难退出另一个。又叫共要密码算法(Public-key cipher)。加密密钥可以公开,称为公开密钥(public key),简称公钥;解密密钥必须保密,称为私人密钥(private key),简称私钥。
如RSA,ECC,ElGamal
非对称密码算法优点:速度慢(比对称慢1000倍)
非对称密码算法常考RSA
摘要算法:
数据摘要算法为密码学算法里非常重要的一个分支,它通过对所有数据提取指纹信息以实现数据签名,数据完整性校验等功能,由于其不可逆性,有时候会被用作敏感信息的加密。数据摘要算法也被称为哈希(Hash)算法,散列算法,常见的摘要算法有MD5和SHA。
在互联网上进行大文件传输时,都要得利用MD5算法产生一个与文件匹配的,存储MD5值的文本文件(后缀名为.md5或.md5sum),这样接收者在接收到文件后,就可以利用与SFV类同的方法来检查文件完整性,绝大多数大型软件公司或者开源组织都以这类方式来校验数据完整性,而且部分操作系统也利用此算法来对用户密码进行加密,另外,它也是目前计算机犯罪里数据取证的最常用算法。
SHA里SHA1的应用较为广泛,主要应用于CA和数字证书里,另外在互联网里流行的BT软件里,也是利用SHA1来进行文件校验的,由于SHA系列算法的数据摘要长度较长,因此其运算速度与MD5相比,也相对较慢。
编码
02 常见编码
ASCII编码
ASCII码利用指定的7位或8位二进制组合来表示128或255类可能的字符。标准ASCII码也叫基础ASCII码,利用7位二进制数(剩下的1位二进制为0)来表示所有的大写和小写字母,数字0到9,标点符号,以及在英语里利用的特殊控制字符。
在python控制台里ord(‘a’)
CTF竞赛一个强功能的解密加密网站:http://ctf.ssleye.com
Base64编码:
第一行:3乘8=24
第二: 4乘6=24
第三: 4乘8=32
base64也有自己的base64表
base64解密可能会出错,可在后面加上一个或两个“=”
此题注意:base为base64,但base的表妹为base32
若以base64编码来解密,在密文后面去掉一个“=”,两个“=”,三个“=”甚至“=”都去掉会发现找不到flag,但以base32编码来解密可成。
URL编码:
特点:密文里有多个%字符
Unicode编码:
Unicode码扩展自ASCII字元集。在严格的ASCII里,以7位元表示一个字元,或电脑普遍采用的每字元有8位元宽;而Unicode采用全16位元字元集。这令Unicode能够表示所有语言里可能用于电脑通讯的字元和其他字符。
特点:密文里有多个\uxxx
JS混淆(并不是一个编码方式):
此函数可以计算字符串,并执行其里的JS代码
例题1:
在浏览器按F12,点击控制台,在>>处输入密文,会车即可,得到“alert(“key”)”
例题2:
会车会弹出一个弹窗,
XSS并不是flag,flag即为alert(‘XSS’)
JSfuck:
若出现没有[],而有{},就注意可能需要将{}改为[].
03 常见加密算法
换位密码-栅栏密码
第一组:分组里的第一个字母
第二组:分组里的第二个字母
例题:
提示3组分别为yawce oreo@ uelm@
y a w c e
yo ar we co e@
you are wel com e@@
即为youarewelcome@@
换位加密-曲路密码
5行7列即为每5行就有一个空格
路径分为先上后下和先下后上
例题:
此题四个字母就有一个空格
首先先看先上后下:
c o n g r a t
u l a t i o n
t o y o u g e
t t h e k e y
从左向右看:congratulation to you get the key
一般夺旗看key,flag,CTF,CTF{},flag{}等关键
替换加密-凯撒密码
替换加密-摩斯电码
例题:
打开密码工具的离线工具,点击摩斯电码,在密文框里加入密文,在上方的“点”框加入*,右边加入-,字母间隔加入空格即可点击解密,得到give you the key
替换加密-ROT5/13/18/47
替换加密-维吉尼亚密码
维吉尼亚解密网站:https://www.guballa.de/vigenere-solver