- 古典密码学种类
- 移位密码(凯撒密码)
对于一个密码体制,必须满足一定的条件,下面所述的两个条件必须的:
- 对于加密体制而言,其加解密函数都要易于计算
- 对于任何敌手而言,即使他获取了密文Y,也很难由此确定出对应的密钥K或密文
移位密码属于最简单的一种加密方法,其实现和原理都很简单,但是由于本身的问题,其密钥空间很小,而且又属于单表替换,所以安全性不高,易受来自穷举
以及词频等简单的密码攻击破解.
- 代换密码
代换密码也属于单表替换,其原理很简单,先制作出一张替换的表格,然后加密时根据表格替换明文,解密的时候,需要先制作出解密的替换表格,这个表格和 加密表格是对应的,对于26个字母而言,所有可能的替换方法达到26!种,密钥空间很大,所以利用穷举法不是很容易破解.但是,由于这种加密算法仍然属于单表替 换,所以仍然不能抵抗根据词频来破解密码这种方法.
- 仿射密码
仿射密码是移位密码的扩展,仿射密码是利用线性函数的一一对应的原理来实现的,其加密函数为e(x)=(ax+b) mod nMax (nMax为常数).对于加密函数而言,
其中的a是有限制的,需要a和nMax的最大公约数为1. 对于a的取值空间大小,可以由nMax的值计算出来,其值为φ(nMax)可由欧拉公式获得,所以其密钥空间大小
为nMax*φ(nMax).
对于nMax=60时,φ(60)=(2的2次方-2的1次方)*(3的1次方-3的0次方)*(5的1次方-5的0次方)=(4-2)*(3-1)*(5-1)=16,所以其密钥空间大小为:16*60=960.
所以对于nMax值够大的时候,密钥空间也还是比较大的,因此对穷举法有一定的抵抗性.
解密函数为d(y)=