1.历史
古典密码阶段:1949年以前
近代密码阶段:1949-1975年
现代密码阶段:1976年至今
2.加密方法
古典密码学的加密方法主要有两大类:替代和置换,或者是两者的结合
3.基本密码
1.键盘布局加密
- 这是一种比较简单也比较另类的密码,通常都是给出一堆无意义的字符,但定将这些字符按照在键盘上的布局比划一下,就可以根据形状拼出相应字符。
- 这类题目基本可以划归脑洞题的范围,不过由于比较简单,只要做过几个练习题,再遇到类似的题目就自然有了思路。
例题:
1. 南邮-crypto-keyboard
我们看到第一串字符为a,后面的字符依次画出来:areuhack
2. 键盘坐标加密
例题:
1.
flag{qazijcv},flag不对我们换成大写试试就对了:flag{QAZIJCV }
2.
2.BrainFuck和Ook密码
BrainFuck和ook主要用于对程序源代码进行加密,主要思想是将源码中的指令替换成其它的一些符号。
对于这两类加密方法,我们无需去探究其原理,只要在做题时能识别出这是哪种加密方法,然后再利用相应的工具解密即可。
BF密码用 > < + - . , []八种符号来替换c语言的各种语法和命令。
2+3经过编码之后的密文:
I++++++l->+十++十十+<>+.------.+++++++十,<
- Ook密码由三种符号组成:Ook.、Ook?、Ook!
- 还有一种就是简写形式就是去掉了Ook只有.、?、!
- 2+3轻过编码之后的密文:
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook!
Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook. Ook! Ook. Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
4.替代密码
替代密码是指先建立一个替换表,加密时将需要加密的明文依次通过查表,替换为相应的字符,明文字符被逐个替换后,生成无任何意义的字符串,即密文。
在替代密码中,每个字母或每一组字母被另一个字母或另一组字母所取代。
替代密码保留了明文符号的顺序,但是将明文伪装起来。
1.摩斯密码
摩斯密码由美国人艾尔菲德·维尔(Alfred Lewis Vail)与萨缪尔·摩尔斯(SamuelFinley Breese Morse)在1836年发明。
摩斯密码是一种早期的数字化通信形式,虽然由点“."和横“"两种符号组成,但它不同于现代只使用o和1两种状态的二进制代码。
例题:
1.0是.,1是-
man ascii #查看ASCII码表
2.凯撒密码
#解密
print("*"*30)
print(" 欢迎来到凯撒密码解密系统!")
print("*"*30)
x = input("请输入你的密文:")
y = int(input("请输入公钥:"))
c = ''
for i in x:
c += chr((ord(i)-97-y)%26+97)
print("明文:",c)
#加密
print("*"*30)
print("欢迎来到凯撒密码加密系统!")
print("*"*30)
x = input("请输入你的密文:")
y = int(input("请输入公钥:"))
c = ''
for i in x:
c += chr((ord(i)-97+y)%26+97)
print("密文:",c)