对称加密:
对称加密过程
非对称加密:
非对称加密过程
对称加密同一个密钥既用于加密也用于解密
优点:加密解密速度快 加密安全
缺点:密钥管理难度大,容易被拦截窃取 不可靠
不支持数字签名和不可否认性
非对称加密有公钥和私钥 用于数据加密解密
优点:加密安全 可靠
缺点:加密解密较慢,密文较长
支持数字签名和不可否认性
综合对称加密和非对称加密的优点,得出的一个解决方案满足以下几点:
1、 加密安全
2、 加密解密速度快
3、 防止被拦截窃取
4、 可靠,支持数据签名和不可否认性
加密过程:
加密过程
分析:发送端用对称秘钥对数据包进行加密,得到密文,同时利用接收端的公钥对对称秘钥进行加密打包,一起打包成"数字信封"通过互联网发给接收端。
解密过程:
解密过程
分析:接收端收到“数字信封“,一拆为二,得到密文和打包过的密钥,接收端拿自己的秘钥进行解密,拿到原始对称加密的秘钥,对密文进行解密,得到数据包。
从上面加密解密过程来看,虽然加密的数据包已经变成密文,不会被黑客解密查看,但是黑客可能对密文进行下手,因为密文是在互联网发送的,篡改密文,即使发给对方,对方用自己的私钥也解不开密文,只能丢弃,所以需要对发过去的数据包进行完整性的认证,这就需要数字签名,其中哈希技术就是关键。
数字签名:
•数字签名主要是验证数据的完整性
•运用哈希函数,也就是哈希算法
哈希函数:分为MD5 和SHA两种 对原始数据包进行压缩成一个指纹或者摘要,但凡修改原始数据包,其散列值就会不同,也无法进行反向哈希从而得到其原始数据,确保唯一。注意:这是散列函数,不是加密函数,所以用处是常用于身份认证(如验证原始数据是否被串改)。
哈希原理过程
分析:假如A要把数据包发送给B,既然是认证数据完整性,双方都知道秘钥,比如密码是123456,A端把数据包跟密码123456打包,利用MD5算法生成唯一散列值,然后把散列值跟原始数据包发送给对方进行验证;B端收到后,利用MD5函数,把接收到的数据包跟双方都知道的秘钥123456进行哈希,得到散列值,跟A端发过来的散列值进行对比,如果一样,证明数据包是没有被篡改过的,是从A端发过来的原始数据包。
数字签名(加密端):
加密过程
分析:发送端用对称秘钥对数据包进行加密,得到密文,同时利用接收端的公钥对对称秘钥进行加密打包,一起打包成"数字信封";接着利用哈希算法,对数据包进行哈希,得到散列值(摘要),发送端用自己的私钥对摘要进行加密,得到数字签名,附在“数字信封”上,通过互联网发给接收端。
数字签名(解密端):
解密过程
分析:接收端收到“数字信封“,一拆为二,得到密文和打包过的密钥,接收端拿自己的秘钥进行解密,拿到原始对称加密的秘钥,对密文进行解密,得到数据包,利用MD5算法对数据包进行哈希,得到散列值(摘要);同时对附在“数字信封”上的摘要(加密),用发送者(签名者)的公钥进行解密,得到散列值(摘要),两个摘要进行比对,如果一样,证明数据是没有篡改过的,也同时拿到我们想要的数据。
由于签名者的公钥可能被窃取或者篡改,无法保证其公钥是否有问题,所以需要对签名者的公钥进行认证,这就需要数字证书。
数字证书:对公钥进行认证,解决了公钥分发和身份认证的问题
是权威信任机构利用私钥对身份确认者的个人相关信息和公钥进行加密得到的一张身份证
数字证书
数字证书的解密认证过程:
分析:发送端向接收端发送数字证书,接收端得到数字证书后,向权威的数字证书机构进行认证,确认是否是发送端的公钥(接收端用权威机构的公钥对数字证书进行解密,得到公钥,进行比对,一致证明公钥没问题,不一致直接丢弃)。接收端收到“数字信封“,一拆为二,得到密文和打包过的密钥,接收端拿自己的秘钥进行解密,拿到原始对称加密的秘钥,对密文进行解密,得到数据包,利用MD5算法对数据包进行哈希,得到散列值(摘要);同时对附在“数字信封”上的摘要(加密),用发送者(签名者)的公钥进行解密,得到散列值(摘要),两个摘要进行比对,如果一样,证明数据是没有篡改过的,也同时拿到我们想要的数据。
领取专属 10元无门槛券
私享最新 技术干货