一、凯撒密码
1.概念
将明文中的的字母表按照一定的字数进行平移进行加密。
2.加密
在凯撒密码中,按一定的字数平移是这个密码的算法,平移的字数是这个密码的密钥。
3.解密
- 使用与加密时相同的秘钥进行反向平移操作。
- 暴力破解。凯撒密码的密钥是平移的字数,有0-25共26种,全部尝试一遍,就会发现,只有当秘钥为3时,解密的字符串有意义。
4.显而易见,凯撒密码非常弱,无法保护重要的秘密。
5.python实现加解密
二、栅栏密码(置换密码)
1.概念:
将一段被加密的明文分成n组,把每组的第n个字符连接起来。特点是组成栅栏的字母不会很多。
2.加密:
先找明文的字母数的因数,因数有几,就可以分为几栏,分组后连接各组。
三、仿射密码(替换密码)
1.介绍:
将明文与密钥的一部分相乘,然后再加上密钥的一部分。
放射密码的秘钥有两个a、b,范围[0,25],a要求与26互质。
3.加密:
- x是明文,y是密文。
- 加密公式:y = (ax+b)mod 26
- 加密过程:
- a =7,b = 3
- y = (7x+3) mod 26
- 假设明文为c,那么x的值为2
- 所以y =17,密文为r
4、解密:
x =7的乘法逆元*(y-3)mod 26
四、维吉尼亚密码(多表代换密码)
1.介绍:
凯撒密码的加密强度是很低的,可以通过字频分析。人们在单一凯撒密码的基础上扩展出多表密码,称为“维吉尼亚”密码。
2.如图:
行为明文,列为密钥,一个明文和一个秘钥得到一个密文,没有秘钥是很难破解的。
如果秘钥比密文短,将密钥重复几次,直至大于等于密文个数