网络安全——密码学基础
一、绪论
1.密码学的概念和发展简史
密码学
古典密码
- 分类:代换密码、置换密码
2.代换密码
代换密码的发展过程
- 凯撒密码:E(x)=(x+3)mod26,D(x)=(x-3)mod26【E(x)表示x的加密过程,D(x)表示x的解密过程】
- 移位密码:E(x)=(x+key)mod26,D(x)=(x-key)mod26【key值称为密钥,只有加密方和合法的解密方才知道密钥的值】
- 仿射密码:E(x)=(k1*x+k2)mod26,D(y)=(y-k2)/k1mod26【k1、k2均取自集合 Z_{26} ,且k1与26互素,Z_{26}表示集合{0,1,...,25}】
- 代换密码:移位密码是一个简单置换,仿射密码是一个较为复杂的置换,代换密码是进行任意的置换【置换:将集合中的元素进行变换得到的结果仍然在这个集合里面】
- 单表代换密码:利用一个置换实现字母的加密和解密,是可用一张表来描述置换的代换密码【破译方法:统计分析】
单表代换密码(大写字母为明文、小写字母为密文)
- 多表代换密码:利用多个置换实现字母的加密和解密,是可用多张表来描述置换的代换密码
多表代换密码
- 代表:维吉尼亚密码
- 理解:维吉尼亚密码表是由多张简单表复合而成的,将表头的第一行和表中任意一行单独抽取出来都是一个单表代换密码。
- 加密:密钥序列中的字母和明文序列中的字母进行对应(如果密钥序列不够长,可以将其重复),然后对于每一个位置,通过对应起来的两个字母进行单表代换加密。【例如明文字母为s、密文字母为L,则加密为D】
- 加密过程:E(x1,x2,...,xm)=(x1+k1,x2+k2,...,xm+km)mod26【x1...xm为明文序列,k1...km为密钥序列】
- 解密过程:D(y1,y2,...,ym)=(y1-k1,y2-k2,...,ym-km)mod26【y1...ym为密文序列,k1...km为密钥序列】
- 例子:明文security,密钥like。(1)密钥扩充为likelike,将明文序列与密钥序列进行一一对应,然后在维吉尼亚密码表中进行一一查找,得到对应的密文字母(2)将字母转换为数字,security对应的数字分别为18、04、02、20、17、08、19、24,like对应的数字为11、08、10、04,将明文序列数字与密钥序列数字进行对应,然后分别进行相加以后模26,得到的加密结果为03、12、12、24、02、16、03、02,最终还原成相应的密文字母DMMYCQDC
- 特点:同一个明文字母处于明文序列中的不同位置,其加密的结果是不同的,因此基于频率分析的统计攻击方法对其是没有用的
- 安全隐患:表中每一行的字母顺序仍然保持了原始字母表中的顺序
维吉尼亚密码表(第一行为明文字母、第一列为密钥字母)
3.置换密码
置换密码
- 基本思想:加密过程并不改变明文字母,而只是改变明文字母出现的位置或者顺序
- 加密过程:E(x1,x2,...,xm)=( x_{Π(1)},x_{Π(2)},...,x_{Π(m)} )【x1...xm为明文序列】
- 解密过程:D(y1,y2,...,ym)=( y_{Π^{-1}(1)},y_{Π^{-1}(2)},...,y_{Π^{-1}(m)} )【y1...ym为密文序列】
- 例子:Π(1)=2,Π(2)=4,Π(3)=1,Π(4)=3对security进行加密。首先进行分组,secu为第一组、rity为第二组,第一组中s、e、c、u的位置分别为1、2、3、4,加密后字母的顺序为明文中第2、4、1、3个字母,因此加密结果为eusc。同理第二组的加密结果为iyrt
置换密码(第一行为明文、第二行为密文)
- 安全隐患:当明文长度较短时,攻击者容易通过尝试密文字母的所有排列而找到明文
4.密码体制
加密算法的基本框架
- 三个角色:加密方、攻击者、解密方
- 三个元素:明文、密钥、密文
加密算法的基本框架
加密体制的五个要素
- M:明文消息空间,指由所有可能的明文组成的有限集合
- C:密文消息空间,指由所有可能的密文组成的有限集合
- K:密钥空间,指由所有可能的密钥组成的有限集合
- E:加密算法的集合
- D:解密算法的集合
攻击者获取密文对应明文的两个途径
- 试图直接恢复明文
- 试图寻找密钥进而恢复明文
攻击者模型
- 分类依据:根据攻击者所拥有的信息多少
- 惟密文攻击:攻击者除了公开信息只拥有密文
- 已知明文攻击:除了公开信息和密文之外,还拥有一些已知的明文所对应的密文
- 选择明文攻击:除了公开信息和密文之外,攻击者还可以自己精心选择明文,通过合法途径得到这些明文的密文
- 选择密文攻击(攻击者能力最强):除了公开信息和密文之外,攻击者还可以自己精心选择密文,通过合法途径得到这些密文对应的明文,唯一的限制条件是攻击者不能直接得到试图攻击的目标密文的明文
想了解更多,记得下方扫码领取资料哦
