第十一天
密码学
近现代加密算法
古典加密技术 --- 算法保密原则
近现代加密技术 --- 算法公开,密钥保密
对称加密算法,非对称加密算法
对称加密 --- 加密和解密的过程中使用的是同一把密钥。 所以,对称加密所使用的算法一定是一种双向函数,是可逆的。 异或运算 --- 相同为0,不同为1
流加密
主要是基于明文流(数据流)进行加密,在流加密中,我们需要使用的密钥是和明 文流相同长度的一串密钥流
常见的流加密算法 --- RC4
分组加密(块加密算法)
目前比较常用的对称加密算法 --- DES/3DES,AES(高级加密标准)
1,密钥共享
带外传输 --- 不方便
带内传输 --- 不安全
2,密钥管理 --- N * N
非对称加密算法
思路:设计类似家用邮箱取放
非对称加密算法和对称加密算法的主要区别在于,对称加密算法加解密仅使用同一把密 钥,而非对称加密算法,加密和解密使用的是不同的密钥。 --- 两把密钥
一把叫做公钥,另一把叫做私钥。 ---- 这两把钥匙,任意一把钥匙都可以进行加密的操 作,然后,需要通过另外一把钥匙来进行解密。
非对称加密算法使用的算法一定是不可逆的,取模运算(求余)
目前常用的非对称加密算法 --- RSA
结论 ---我们一般采用的做法是,在数据传输的时候,我们会选择使用对称加密算法进行加密,为了保证效率。但是,对称加密算法最主要的问题是密钥传递可能存在安全风险,所以,我们在传递密钥的时候,可以通过非对称加密算法进行加密,保证密钥传递的安全性。实现二者的互补,达到安全传输的目的。
DH算法 --- Diffie-Hellman算法 ---密钥交换算法 ---用来分发对称密钥的。
身份认证以及数据认证技术
对数据进行完整性校验 --- 我们会针对原始数据进行HASH运算,得到摘要值,之后, 发送到对端,也进行相同的运算,比对摘要值。如果摘要值相同,则数据完整;如果不 同,则数据不完整。
HASH算法 --- 散列函数
1,不可逆性
2,相同输入,相同输出。
3,雪崩效应 --- 原始数据中即使存在细微的区别,也会在结果中呈现出比较明显 的变化,方便,我们看出数据是否被篡改。
4,等长输出 --- 不管原始数据多长,运算之后的摘要值长度是固定。(MD5可以 将任意长度的输入,转换成128位的输出。
我们可以使用私钥对摘要值进行加密,之后传递,这就形成了数字签名。
注意:这整个过程只能表示Bob收到的数据,的确是他拥有公钥的这个人发送的数据, 但是,你拥有公钥有没有被别人恶意篡改或者替换,这种方法是无法识别出来的,所 以,这仅能实现一种数据源的检测,不能进行身份认证。 同时,可以完成完整性校验。
数字证书
CA可信机构 --- 提供身份信息证明的第三方机构
通信双方需要完全信任这个第三方机构,之后,让CA为公钥作证。 因为双方都信任该CA机构,所以,实现拥有这个CA机构的公钥信息。 CA机构会使用自己的私钥对A的公钥和一些其他信息一起进行加密,生成数字证书。
1,原始信息HASH算法得到摘要值 ---- 为了做完整性校验。为了保证我们的摘要 值在传递的过程中,不会被篡改,所以,需要使用私钥进行加密。形成数字签名。
2,针对原始信息,数字签名,数字证书(是用户提前向CA机构申请,获取到的通 过CA机构私钥加密后的证书。里面主要包含了Alice的公钥。主要是做身份认证使 用)进行加密。使用的是对称加密算法。对称机密算法需要使用对应的密钥来进行 加密。
3,将对称加密算法的密钥通过Bob的公钥进行加密,形成密钥信封。(这里是通 过非对称加密算法的方式,来传输对称密钥的。也可以使用DH算法,使双方获得 对称密钥。)
4,将加密信息和密钥信封通过公网传递到对端Bob处。
5,Bob首先对密钥信封进行解密。因为这个密钥信封是通过Bob的公钥进行加密 的,所以,使用Bob自己的私钥就可以进行解密。解密后,将得到对称密钥。
6,使用对称密钥去解密加密信息。 ---- 原始数据,数字签名,数字证书
7,使用CA机构的公钥来解开数字证书。因为数字证书是由CA机构的私钥进行加 密的,并且,Bob本身也信任CA机构,所以,自身设备上是拥有CA机构的公钥 的。
8,解开数字证书后将得到Alice的公钥,根据Alice的公钥可以解开数字签名。因 为数字签名是由Alice自己的私钥来进行加密的,所以,如果可以顺利的使用ALICE 的公钥进行解密,则完成了身份认证和数据源鉴别工作。
9,Bob自身需要对原始信息进行HASH运算,并且,数字签名解开后,里面也包 含ALice发送时对原始信息进行HASH运算的摘要值,比对两次摘要值,则可完成 完整性校验。