第十一天

密码学

近现代加密算法

古典加密技术 — 算法保密原则

近现代加密技术 — 算法公开,密钥保密

对称加密算法,非对称加密算法

对称加密 — 加密和解密的过程中使用的是同一把密钥。 所以,对称加密所使用的算法一定是一种双向函数,是可逆的。 异或运算 — 相同为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运算的摘要值,比对两次摘要值,则可完成 完整性校验。