密码学知识(一)
密码学知识(一)
1.基础知识
E是加密算法 D是解密算法
m是明文(要发的消息) c是密文(收到的消息)
k是密钥(通信双方使用的相同就是对称加密也就是私钥,不同就是非对称加密也就是公钥)
2.Kerckhoffs’ principle(柯克霍夫原则)
内容:
加密方案应该设计成只要敌手不知道使用的密钥,即使知道了方案的组成细节,方案依旧是安全的,即安全性仅依靠于密钥的安全性。
原因:
(对短密钥保密vs对算法保密)
与维护算法的保密性相比,通信各方更容易维护短小密钥的保密性。
(改变密钥vs改变加密方案)
万一密钥暴露了,相比于替换整个算法。参与方更容易改变的密钥。
(密码的商业化和标准化)
万一有多对人员需要加密他们的通信,对所有参与方而言,相比使用不同的程序或算法,使用相同的程序及不同的密钥要容易得多,也就是说,保证了这个加密算法更容易商业化和标准化。
3.完善保密性
本质:当攻击者得到一个密文后,是无法判断密文是来自于明文中的哪一个,因为这个密文来自于每一个明文的概率是一样的。这样子的对称加密方案是完善保密的。
前提条件: 攻击者只能窃听到密文且拥有无限的计算资源。
4.评价体系安全性
- 计算安全性:从计算量上衡量密码体系的安全性
- 可证明安全性:通常用归纳的方式证明所定义的安全性
- 无条件安全:即使计算资源无限,也无法攻破
5.一次一密(比特串形式):
限制:要求明文、密文和密钥都是长度相等的比特串(密钥的长度可以比明文和密文长)。
加密时,明文和密钥逐一比特异或即得密文。
解密时,密文和密钥逐一比特异或即得明文。
6.香农定理
定理:设(E, D)是定义在(K, M, C)上的对称加密体制,如果它是完善保密的,则 |K|≥|M|。
缺点:如果一个加密体制具有完善保密性,那么密钥的数量至少要明文的数量一样多长密钥再和明文异或得到密文。这样子保留了一次一密加解密简单高效的优点,又克服了需要直接使用长密钥带来的不实用性。
如果一个序列能够和等长的随机序列不可区分的话,那么它就是伪随机序列。相当于说,伪随机序列能以假乱真,和真正随机的序列区分不开。
PRG的输入长度s远远小于其输出长度n。其输入我们称之为 种子(seed),并称 {0,1}^s 为种子空间。
7.流密码(就是使用了PRG解决了一定要长度相等的条件)
我们设G是一个RPG,改造后的一次一密就长下面这样:
很明显,这里使用RPG的输出G(k)代替原来的密钥,我们将这种改造后的一次一密称为流密码。其实PRG的作用就是将原本规定必须很长的密钥变为比较小的密钥。