文章目录
- Vigenère 密码
- 变异凯撒
- 摩斯密码
- 栅栏密码
- 加密方式一
- 加密方式二
- Caesar和ROT13的区别
- ROT13
- 加密原理
- ROT13查找表
Vigenère 密码
由于频率分析法可以有效的破解单表替换密码,法国密码学家维吉尼亚于1586年提出一种多表替换密码,
即维吉尼亚密码,也称维热纳尔密码。维吉尼亚密码引入了“密钥”的概念,即根据密钥来决定用哪一行的密表来进行替换,以此来对抗字频统计。
加密算法:例如密钥的字母为[d],明文对应的字母[b]。根据字母表的顺序[d]=4,[b]=2,那么密文就是[d]+[b]-1=4+2-1=5=[e],
因此加密的结果为[e]。解密即做此逆运算。
加密公式:密文 = (明文 + 密钥) Mod 26 - 1
解密公式:明文 = [26 + (密文 - 密钥)] Mod 26 + 1
也可以用查表法来进行加密:例如密钥的字母为[d],明文对应的字母[b],在下图的表格第一行找到字母"d"(深蓝色),
再在左边第一列找到字母"b"(绿色),两个字母的交叉点(b行d列)就是字母"E",所以对应的密文字母为[e]。
假如对如下明文加密:
to be or not to be that is the question
当选定“have”作为密钥时,加密过程是:密钥第一个字母为[h],明文第一个为[t],因此可以找到在h行t列中的字母[a],依此类推,
得出对应关系如下:
密钥:ha ve ha veh av eh aveh av eha vehaveha
明文:to be or not to be that is the question
密文:ao wi vr isa tj fl tcea in xoe lylsomvn
变异凯撒
data = 'afZ_r9VYfScOeO_UL^RWUc'
flag = ''
incre = 5
for i in data:
flag += chr(ord(i) + incre)
incre += 1
print(flag)
摩斯密码
字母
字符 | 电码符号 | 字符 | 电码符号 | 字符 | 电码符号 | 字符 | 电码符号 |
---|---|---|---|---|---|---|---|
A | .━ | B | ━ ... | C | ━ .━ . | D | ━ .. |
E | . | F | ..━ . | G | ━ ━ . | H | .... |
I | .. | J | .━ ━ ━ | K | ━ .━ | L | .━ .. |
M | ━ ━ | N | ━ . | O | ━ ━ ━ | P | .━ ━ . |
Q | ━ ━ .━ | R | .━ . | S | ... | T | ━ |
U | ..━ | V | ...━ | W | .━ ━ | X | ━ ..━ |
Y | ━ .━ ━ | Z | ━ ━ .. |
数字
字符 | 电码符号 | 字符 | 电码符号 | 字符 | 电码符号 | 字符 | 电码符号 |
---|---|---|---|---|---|---|---|
0 | ━ ━ ━ ━ ━ | 1 | .━ ━ ━ ━ | 2 | ..━ ━ ━ | 3 | ...━ ━ |
4 | ....━ | 5 | ..... | 6 | ━ .... | 7 | ━ ━ ... |
8 | ━ ━ ━ .. | 9 | ━ ━ ━ ━ . |
标点符号
字符 | 电码符号 | 字符 | 电码符号 | 字符 | 电码符号 | 字符 | 电码符号 |
---|---|---|---|---|---|---|---|
. | .━ .━ .━ | : | ━ ━ ━ ... | , | ━ ━ ..━ ━ | ; | ━ .━ .━ . |
? | ..━ ━ .. | = | ━ ...━ | ’ | .━ ━ ━ ━ . | / | ━ ..━ . |
! | ━ .━ .━ ━ | ━ | ━ ....━ | _ | ..━ ━ .━ | " | .━ ..━ . |
( | ━ .━ ━ . | ) | ━ .━ ━ .━ | $ | ...━ ..━ | & | . ... |
@ | .━ ━ .━ . |
非英语字符
字符 | 电码符号 | 字符 | 电码符号 | 字符 | 电码符号 | 字符 | 电码符号 |
---|---|---|---|---|---|---|---|
à或å | .━ ━ .━ | ä或æ | .━ .━ | ch | ━ ━ ━ ━ | ç或ĉ | ━ .━ .. |
ð | ..━ ━ . | é | ..━ .. | è | .━ ..━ | ĝ | ━ ━ .━ . |
ĥ | ━ .━ ━ . | ĵ | .━ ━ ━ . | ñ | ━ ━ .━ ━ | ö或ø | ━ ━ ━ . |
ŝ | ...━ . | þ | .━ ━ .. | ü或ŭ | ..━ ━ |
特殊符号
字符 | 电码符号 | 字符 | 电码符号 | 字符 | 电码符号 | 字符 | 电码符号 |
---|---|---|---|---|---|---|---|
AR | .━ .━ . | AS | .━ ... | K | ━ .━ | SK | ...━ .━ |
BT | ━ ...━ |
栅栏密码
栅栏密码有两种加密方式,一种是对明文进行加密,一种是使用密钥进行加密
加密方式一
按对角线的顺序写出明文,再以行的顺序读出作为密文
比如
加密方式二
利用密钥给列的顺序进行排列,解密的时候就用密钥进行逆序推出
比如
只要找到密钥,再对密文进行枚举栏数还原就可以拿到明文
Caesar和ROT13的区别
ROT13(Rotate by 13 Places)加密和凯撒(Caesar)加密都是简单的替换密码,它们之间有以下区别:
- 字符替换规则:
- ROT13:ROT13加密是一种单字母替换密码,将字母表中的每个字母替换为字母表中顺序往后数第13个字母。例如,A替换为N,B替换为O,依此类推。
- 凯撒加密:凯撒加密也是一种单字母替换密码,但是替换规则可以是任意的固定偏移量。通常,凯撒加密采用的偏移量是3,即字母表中的每个字母替换为字母表中往后数第3个字母。
- 加密和解密的一致性:
- ROT13:ROT13加密是一种对称加密算法,加密和解密使用相同的过程。对已加密的文本再次应用ROT13算法即可还原为原始文本。
- 凯撒加密:凯撒加密也是一种对称加密算法,加密和解密使用相同的偏移量。对已加密的文本应用相同的偏移量并反向操作即可还原为原始文本。
- 加密范围:
- ROT13:ROT13仅适用于字母,对于其他字符(如数字、符号等)保持不变。
- 凯撒加密:凯撒加密可适用于任何字符,包括字母、数字和符号。
总体而言,ROT13和凯撒加密都是基于简单的字母替换原理的加密算法,主要区别在于替换规则和加密范围。ROT13加密是一种特殊的凯撒加密,其替换规则固定为往后数第13个字母。凯撒加密可以采用不同的偏移量,通常为3。
ROT13
加密原理
套用到ROT13的一段文字只需要检查字母顺序并取代它在13位之后的对应字母,如果超过了就绕回26字母的开头即可。A换成N,B换成N,然后序列反转:N换成A,O换成B。这些只有在英文字母中才有有效;数字、符号、空白以及其他所有字符都不变。大写字母转大写字母,小写字母转小写字母
对于任何字符x