XuLizhao 's Notes

时光,漫步


  • 首页

  • 技术

  • 文档

  • 关于

  • 搜索
close

加解密算法学习

时间: 2019-10-24   |   分类: tech     |   阅读: 610 字 ~2分钟

关于SSL,TLS,对称加密,非对称(公私钥)加密等的学习笔记。

常用场景

HTTPS

结合了非对称加密和对称加密,公钥私钥主要用于传输对称加密的秘钥,真正的双方大数据量通讯都是通过对称加密进行。

客户端 服务端 通讯内容
Client Hello TLS版本,候选加密套件,候选压缩算法,随机数用于之后协商对称密钥
Server Hello 选择使用的协议版本、加密套件、压缩算法,及随机数
Server Hello Done 发送服务端证书
验证证书:用本地CA公钥验证
Client Key Exchange 之后产生随机数Pre-master,发送Client Key Exchange,用证书公钥加密
Pre-master 通过三个随机数:自己的、对方的和Pre-master,在客户端和服务端产生相同的对称密钥
Change Cipher Spec
Encrypted Handshake Message 发送协商好的参数并用协商密钥加密,用于数据和握手验证
Change Cipher Spec + Encrypted Handshake Message

避免重放和篡改: 引入timestamp和nonce随机数。

密钥交换算法

常用算法:

名称 安全性 备注
RSA 低,有RSA私钥就可以解密 已有公私钥,只执行一次模幂
DHE 较高,RSA私钥泄露不影响 每次随机生成大素数,模幂两次
ECDHE 很高 每次生成大数,计算椭圆方程的乘法两次,得到公钥

说明:

  • 如果开启完全正向保密协议/perfect forward secrecy,客户端和服务端会使用Diffie-Hellman (DH)协商一个共享会话密钥; 服务端私钥只用来签名.
  • 如果不支持完全正向保密协议(假定服务端使用RSA密钥), 客户端会使用服务端公钥加密共享会话密钥, 同理也就可以使用服务端私钥解密(被服务端或Wireshark).

扩展阅读

  • 本文作者: xulizhao
  • 本文链接: https://xulizhao.com/blog/crypto/
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
#security#
matplotlib绘图库
Protocol Buffers协议笔记
  • 文章目录
  • 站点概览

xulz

时光,漫步

158 日志
3 分类
37 标签
  • 常用场景
    • HTTPS
    • 密钥交换算法
  • 扩展阅读
© 2017 - 2020 XuLizhao 's Notes
Powered by - Hugo/ NexT
津ICP备17010344号-1
0%