跳到主要内容

密码学

密码学是信息安全的基础,用来解决数据保密、身份认证、完整性校验和不可抵赖等问题。工程中常见的 HTTPS、登录认证、数字签名、区块链钱包都离不开密码学。

一、核心目标

目标说明
保密性数据只能被授权方读取
完整性数据没有被篡改
身份认证确认通信对象是谁
不可抵赖操作发生后不能轻易否认

二、哈希函数

哈希函数把任意长度输入转换成固定长度摘要。

特点:

  • 单向不可逆;
  • 输入变化一点,输出变化很大;
  • 相同输入得到相同输出;
  • 好的哈希函数碰撞概率低。

常见用途:

  • 文件完整性校验;
  • 密码摘要;
  • 数据指纹;
  • 区块链哈希链。

注意:密码不能直接用普通哈希保存,应使用带盐的慢哈希算法。

三、对称加密

对称加密使用同一个密钥加密和解密。

优点:

  • 速度快;
  • 适合加密大量数据。

缺点:

  • 密钥分发困难;
  • 双方都必须安全保存同一个密钥。

常见算法:AES、ChaCha20。

四、非对称加密

非对称加密使用公钥和私钥。

  • 公钥可以公开;
  • 私钥必须保密;
  • 公钥加密,私钥解密;
  • 私钥签名,公钥验签。

常见算法:RSA、ECC、Ed25519。

五、数字签名

数字签名用于证明消息确实来自某个私钥持有者,并且内容没有被篡改。

流程:

六、TLS 和 HTTPS

HTTPS 使用 TLS 在 HTTP 之上提供安全通信。

它解决:

  • 防窃听;
  • 防篡改;
  • 验证服务器身份。

大致过程:

七、工程实践原则

  • 不要自己发明加密算法。
  • 使用成熟库和标准协议。
  • 密钥不要写进代码仓库。
  • 生产环境密钥要定期轮换。
  • 密码必须加盐哈希存储。
  • 随机数必须使用安全随机源。
  • HTTPS 证书要自动续期并监控过期时间。

总结

密码学工程常用组合:

哈希校验完整性
对称加密保护数据
非对称加密解决密钥交换和签名
TLS 保护网络通信