古典密码学
起源于古代战争:在战争中,为了防止书信被截获后重要信息泄露,人们开始对书信进行加密。
移位式加密
如密码棒,使用布条缠绕在木棒上的方式来对书信进行加密。
加密算法:缠绕后书写
密钥: 木棒的尺寸
替换式加密
按规则使用不同的文字来替换掉原先的文字来进行加密
加密算法:替换文字
密钥:替换的码表
现代密码学
可以加密任何二进制数据
非对称加密的出现使得密码学有了更广泛的用途:数字签名
对称加密
原理
通信双方使用同一个密钥,使用加密算法配合密钥来加密,解密时使用加密过程的完全逆过程来进行解密
简化模型即上面的古典密码学中替换式加密的模型:对文字进行规则化替换来加
密,对密文进行逆向的规则化替换来解密
经典算法
DES(56位密钥,密钥太短而逐渐被抛弃)、AES(128位、192位、256位密钥,现在最流行)
对称加密作用
加密通信,防止信息在不安全网络上被截获后,信息被人读取或篡改
对称加密(如AES)的破解
破解思路
拿到一组或多组「原文-密钥」对
设法找到一个密钥,这个密钥可以将这些「原文-密文」对中的原文加密为密文,以及将密文解密为原文,即为成功破解
反破解
一种优秀的堆成加密算法的标准是,让破解者找不到比穷举法(暴力破解发)更有效的破解手段,并且穷举法的破解时间足够长(例如数千年)
对称加密的缺点
密钥泄漏:不能在不安全网络上传输密钥,一旦密钥泄漏则加密通信失败。
非对称加密
原理
使用公钥对数据进行加密得到密文;使用私钥对数据进行解密得到原数据
非对称加密使用的是复杂的数学技巧,在古典密码学中没有对应的原型
签名(确认对方身份)
由于私钥和公钥互相可解,因此非对称加密还可以应用于签名技术
通常会对原数据hash以后对hash签名,然后附加在原数据后面作为签名,这是为了让数据更小
使用非对称加密通信,可以在不可信网络上将双方的公钥传给对方,然后在发消息前分别对消息使用对方的公钥来加密和使用自己的私钥来签名,做到不可信网络上的可靠密钥传播即加密通信
经典算法:
RSA(可用于加密和签名)、DSA(仅用于签名)
非对称加密的优缺点
优点:可以在不安全网络上传输密钥
缺点:计算复杂,因此性能相比对称加密差很多
非对称加密(如RSA、ECDSA)的破解
破解思路
和对称加密的不同之处在于,非对称加密的公钥很容易获得,因此制造「原文-密文」对没有什么困难的事
所以非对称加密的关键在于,如何找到一个正确的私钥,可以解密所有经过公钥加密过的密文,找到这样的私钥即为破解
由于非对称加密的自身特性,怎么样通过公钥来推断出