密码学的起源与发展
密码学的三个阶段
- 1949年之前:密码学由艺术->科学,手工->机械
- 1949年-1976年:香农(贝尔实验室) 密码学由机械->电子化,军事->民间
- 1976年以后:密码学的新方向----公钥密码学诞生
信息隐藏
隐写术(通过隐藏消息的存在来保护消息):
- 隐形墨水
- 剃光头,头皮上写信息
- 针刺一本书的字
- 把信息隐藏在图像里
- 藏头诗
信息隐藏在图像里,也是一门专门的学科,尤其是图像等多媒体内容中隐藏信息。
信息隐藏是藏,不知道在哪里,而信息加密的锁,核心是知道信息在哪,但是不知道钥匙在哪里。
早期加密方法-手工密码
早期的手工密码的核心是替代和置换,比如凯撒大帝的密码,由明文和密文相互替代形成。
- **代替:**就是用明文中的每一个字符被替换成密文中的另一个字符。接受者对密文做返乡替换就可以恢复出明文。
- **置换:**又称为换位密码,明文的字幕保持相同,但是顺序被大乱了,接受者对密文做反向换位就可以恢复出明文、
早期加密方法-机械加密
二战期间德军军队配备的Enigma机标志着手工加密的结束。
Enigma最新核心的原理是它的轮子,每个轮子都有一个导电的金属接触点,每个轮子内部都有一个导线,这样每个轮子转一圈就完成了一个替代的功能,最左边的转一圈中间的就会转一个,改变了金属片之间的对应关系。
电子时代
两个基本操作的电路实现
01-置换
如图所示,左边第一个位置的值到右边换到第三位。**左右两边1或0的个数必定相等。**p-box的输入线数可以做的很大。
02-替代
如图所示,解码器+p-box+编码器构成S-box,**左右两边1或0的个数不一定相等,**它的输入线数不适合做的很大。
基本操作的适当组合可以实现复杂编码,比如并联加串联(非线性部分)
密钥的引入
根据替代后进行密钥与明文的异或操作,每一轮加个密钥,这就是DES加密算法的雏形
DES示意图
DES:**利用56比特串长度的密钥来加密长度为64位的明文,经过16轮的运算,得到长度为64位的密文。 **
简化版的DES
轮密钥的生成:
- 首先10个比特的密钥完成位置上的变换,分为两组,每组5个比特
- 然后五个比特做轮换换位,换1个比特,换位换成后又合成了一个比特,然后十个比特抽出8个比特,然后又走到第二轮,生成第二轮的轮密钥
轮加密的过程:
- 把4比特扩展成8比特,然后和密钥生成Round2,
- 生成的Round2再与第二轮密钥进行异或,然后再把8比特进行按表取值得到4比特,取两次得到左右4个密钥
计算机时代
两个基本操作的指令实现:
查表与数学表达的比较:
**查表:**最基本,不易实现,效率不高。
**数学公式:**是所有表的一个子集。易实现,效率高。但简单数学公式不安全。
好加密算法的现象:
**雪崩效应:**明文或密钥变化1bit所有的bit都可能发生变化。最好的是每bit变化的概率为1/2,且bit之间的变化相互独立。
好加密算法的要求:
- **扩散:**明文的统计结构被扩散消失到密文的长度统计特性,使得明文和密文之间的统计关系尽量复杂
- **混乱:**使得密文的统计特性与密钥的取值之间的关系尽量复杂