对数据进行完整性校验 --- 我们会针对原始数据进行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运算的摘要值,比对两次摘要值,则可完成 完整性校验