Skip to content

安全与密码学笔记


一、信息安全的核心目标

  1. 机密性 (Confidentiality)

    • 数据仅能被授权方访问,防止未经授权的信息泄露。
    • 工具:加密算法(如 AES、RSA)。
  2. 完整性 (Integrity)

    • 确保数据在传输或存储过程中未被篡改。
    • 工具:哈希函数(如 SHA-256)、数字签名。
  3. 可用性 (Availability)

    • 确保授权用户能按需访问数据或系统。
    • 威胁:DDoS 攻击、系统故障。
  4. 身份认证 (Authentication)

    • 验证用户或系统的真实身份。
    • 方法:密码、生物识别、双因素认证(2FA)。
  5. 不可否认性 (Non-repudiation)

    • 防止参与者事后否认其行为。
    • 工具:数字签名(如 ECDSA)。

二、密码学基础

1. 对称加密(Symmetric Cryptography)

  • 特点:加密与解密使用同一密钥。
  • 典型算法
    • AES(Advanced Encryption Standard):块加密,支持 128/192/256 位密钥。
    • ChaCha20:流加密,常用于移动端和 TLS。
  • 优点:速度快,适合大数据加密。
  • 缺点:密钥分发困难(需安全信道传输密钥)。

2. 非对称加密(Asymmetric Cryptography)

  • 特点:使用公钥加密、私钥解密。
  • 典型算法
    • RSA:基于大数分解难题,广泛用于数字签名和密钥交换。
    • ECC(椭圆曲线加密):更短的密钥实现同等安全性。
  • 应用场景
    • HTTPS 中的 TLS 握手(如 RSA 密钥交换)。
    • 比特币地址生成(ECC 算法)。

3. 哈希函数(Hash Function)

  • 特性:单向性、抗碰撞性、雪崩效应。
  • 用途
    • 验证文件完整性(如下载文件的 SHA-256 校验)。
    • 密码存储(结合盐值防止彩虹表攻击)。
  • 常见算法:SHA-3、BLAKE3。

4. 数字签名(Digital Signature)

  • 流程
    1. 发送方用私钥对数据哈希值加密生成签名。
    2. 接收方用公钥解密签名,验证哈希是否匹配。
  • 应用:软件发布验证(如 Git commit 签名)、区块链交易。

三、密码学的实际应用

1. HTTPS 与 TLS 协议

  • 混合加密机制
    • 非对称加密协商会话密钥。
    • 对称加密传输实际数据。
  • 证书体系:CA(证书颁发机构)验证服务器公钥合法性。

2. 区块链与密码学

  • 比特币中的密码学
    • ECC 生成钱包地址。
    • SHA-256 保证区块一致性(工作量证明)。
  • 智能合约安全:形式化验证防止代码漏洞。

3. 密码管理实践

  • 密码强度建议
    • 长度 >12 字符,混合大小写、数字、符号。
    • 避免重复使用密码。
  • 工具推荐
    • 密码管理器(如 Bitwarden、1Password)。
    • 双因素认证(Google Authenticator、YubiKey)。

四、现代密码学的挑战

1. 量子计算的威胁

  • Shor 算法:可破解 RSA、ECC 等依赖数论难题的算法。
  • 应对方案
    • 后量子密码学(如基于格的加密算法 Kyber)。
    • 量子密钥分发(QKD)。

2. 侧信道攻击(Side-Channel Attacks)

  • 原理:通过功耗、电磁辐射等物理信息推断密钥。
  • 防护:恒定时间编程、硬件隔离。

3. 社会工程学与钓鱼攻击

  • 案例:伪造登录页面窃取用户凭证。
  • 防御:用户教育、多因素认证(MFA)。

五、经典攻击与防御

1. 中间人攻击(MitM)

  • 场景:公共 WiFi 下拦截 HTTPS 流量。
  • 防御:证书绑定(Certificate Pinning)、HSTS 协议。

2. 暴力破解与字典攻击

  • 防御
    • 密码加盐哈希(如 bcrypt、Argon2)。
    • 账户锁定策略。

3. 重放攻击(Replay Attack)

  • 案例:重复发送合法请求(如转账交易)。
  • 防御:时间戳、一次性令牌(Nonce)。

六、学习资源推荐

  • 书籍
    • 《应用密码学》(Bruce Schneier)
    • 《图解密码技术》(结城浩)
  • 在线课程
    • Coursera《Cryptography I》(斯坦福大学)
    • Khan Academy 密码学入门。
  • 实践工具
    • OpenSSL 命令行工具。
    • Cryptool(可视化密码学实验平台)。

总结:密码学是信息安全的基石,需结合理论理解与实践防护。随着技术演进(如量子计算),持续学习与更新防护手段至关重要。