网络协议学习笔记 · 18

学习笔记系列文章


加密

对称加密(对称密码)
对称密码中,加密用的密钥和解密用的密钥是相同的
图01

非对称加密(公钥密码)
公钥密码中,加密用的密钥和解密用的密钥是不同的
图02

对称加密(Symmetric Cryptography)

图03

DES(Data Encryption Standard)

图04

3DES(Triple Data Encryption Algorithm)

图05

加解密过程
图06
3个密钥都是不同的,也称为 DES-EDE3
如果密钥1、密钥3相同,密钥2不同,称为 DES-EDE2

如果所有密钥都使用同一个,则结果与普通的 DES 是等价的

AES(Advanced Encryption Standard)

图07

密钥配送问题

在使用对称加密时,一定会遇到密钥配送问题

如果 Alice 将使用对称加密过的消息发给了 Bob,只有将密钥发送给 Bob,Bob 才能完成解密。
在发送密钥过程中,可能会被 Eve窃取密钥,最后 Eve 也能完成解密。

解决方法
图08

非对称加密(Asymmetric Cryptography)

图09

公钥、私钥

公钥和私钥是一一对应的,不能单独生成
一对公钥和私钥统称为密钥对(key pair)

由公钥加密的密文,必须使用与该公钥对应的私钥才能解密
由私钥加密的密文,必须使用与该私钥对应的公钥才能解密

非对称加密密钥配送

  1. 由消息的接收者,生成一对公钥、私钥
  2. 将公钥发给消息的发送者
  3. 消息的发送者使用公钥加密消息

非对称加密的加密解密速度比对称加密要慢

目前使用最广泛的非对称加密算法是 RSA

RSA 的名字由它的 3 位开发者,Ron Rivest、Adi Shamir、Leonard Adleman 的姓氏首字母组成

混合密码系统(Hybrid Cryptosystem)

对称加密的缺点
不能很好地解决密钥配送问题(密钥会被窃听)

非对称加密的缺点
加密解密速度比较慢

混合密码系统:是将对称加密和非对称加密的优势相结合的方法
解决了非对称加密速度慢的问题,并通过非对称加密解决了对称加密的密钥配送问题

网络上的密码通信所用的 SSL/TLS 都运用了混合密码系统

加密

会话密钥 (session key)
为本次通信随机生成的临时密钥
作为对称加密的密钥,用于加密消息,提高速度

加密步骤(发送消息)

  1. 首先,消息发送者要拥有消息接收者的公钥
  2. 生成会话密钥,作为对称加密的密钥,加密消息
  3. 用消息接收者的公钥,加密会话密钥
  4. 将前 步生成的加密结果,一并发给消息接收者

发送出去的内容包括
会话密钥加密的消息(加密方法:对称加密)
公钥加密的会话密钥(加密方法:非对称加密)

解密

解密步骤(收到消息)

  1. 消息接收者用自己的私钥解密出会话密钥
  2. 再用第①步解密出来的会话密钥,解密消息

加解密流程

图10

思考

图11

数字签名

在数字签名技术中,有以下 2 种行为:

生成签名
由消息的发送者完成,通过“签名密钥”生成

验证签名
由消息的接收者完成,通过“验证密钥”验证

如何能保证这个签名是消息发送者自己签的?
用消息发送者的私钥进行签名

过程

图12

过程改进

图13

思考

  1. 如果有人篡改了消息内容或签名内容,会是什么结果?
    签名验证失败,证明内容被篡改了

  2. 数字签名不能保证机密性?
    数字签名的作用不是为了保证机密性,仅仅是为了能够识别内容有没有被篡改

  3. 数字签名的作用?
    确认消息的完整性
    识别消息是否被篡改
    防止消息发送人否认

公钥、私钥再总结

图14
图15

公钥的合法性

如果遭遇了中间人攻击,那么公钥将可能是伪造的
图16
如何验证公钥的合法性?
证书

证书(Certificate)

图17

使用

图18
各大CA的公钥,默认已经内置在浏览器操作系统

注册和下载

图19

查看 Windows 已经信任的证书

图20

上一篇:17. 代理 · CDN · 网络安全 · 单向散列函数
下一篇:19. HTTPS


版权声明:本文为KeepPromise原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。