初学者密码学

在本课程中,您将学习密码学的基本原理,包括对称加密和非对称加密、哈希、数字签名和密钥交换协议。通过实践操作掌握核心的密码学概念和工具。

网络安全

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

初学者密码学通过 10 个实验,介绍如何在 Linux 终端中应用常见密码学构件。你将使用 OpenSSL 和少量 Python 标准库示例生成密钥、加解密文件、计算哈希与 HMAC、签名数据、派生共享秘密并检查证书。

实验侧重可观察的操作流程,而不是数学证明:创建一个产物、检查其内容、验证预期属性,并测试数据或信任发生变化时的结果。后期实验还会通过一个小型证书颁发机构和 RSA 加 AES 的混合加密练习,把各个基础构件连接起来。

你将学到什么

完成本课程后,你将能够:

  • 在 Ubuntu 环境中安装并验证 OpenSSL、Python、pip 和 Python cryptography 包
  • 生成随机密钥材料,并使用 OpenSSL 的 AES-256-CBC 加密、解密和比较文件
  • 计算 SHA-256 摘要与 HMAC-SHA256,解释二者用途差异,并使用 Python 实现基础哈希和 HMAC 示例
  • 生成 RSA 密钥对,使用公钥加密、私钥解密,并创建和验证 RSA 签名
  • 为通信双方生成 Diffie–Hellman 参数与密钥对,并确认双方派生出相同的共享秘密
  • 创建自签名 X.509 证书和 CSR,操作小型实验 CA,验证信任链,并通过 CRL 模拟证书吊销
  • 将 RSA 密钥传输与 AES 数据加密结合起来,完成并逆向执行一套混合加密流程

本课程适合谁

本课程适合网络安全初学者、开发者、系统管理员和 IT 学习者,希望在深入协议或安全应用设计之前,先练习处理密码学文件与命令。

前置要求: 不需要高等数学。建议具备基本 Linux 终端和文件操作能力,并能阅读两个分别使用 hashlib 与 hmac 的简短 Python 示例。

学习环境: 全部 10 个引导实验都在 Ubuntu 22.04 终端工作区中运行。你会安装或验证工具,在实验项目目录中创建密钥和证书,并使用测试消息与模拟 CA;不会以任何外部系统为目标。

常见问题

学习课程需要很强的数学基础吗?

不需要。实验从实践角度解释对称加密、公钥操作、哈希、消息认证码、签名、密钥交换和证书的用途,不会推导底层数论,也不是一套形式化密码学课程。

课程包含多少编程内容?

大部分操作使用 OpenSSL 命令。Python 仅用于通过标准库 hashlib 和 hmac 展示简短的 SHA-256 与 HMAC 示例。设置实验会安装并验证 cryptography 包能否导入,但课程不会使用它构建 Python 密码学应用。

课程会教授密码分析或破解加密吗?

不会。你会测试完整性失败、签名篡改、信任链行为和证书吊销,但不会破解密码算法、攻击密钥、恢复密码或分析实现侧信道。

这些示例可以直接复制到生产系统吗?

不可以。它们是使用本地密钥文件、自签名证书、模拟 CA 和简化命令流程的小型演示。尤其是直接使用 SHA-256 处理密码的示例并非生产级密码存储方案;真实系统应使用 Argon2、scrypt、bcrypt 或正确配置的 PBKDF2 等密码专用算法,并结合经过审查的库、密钥管理、认证加密和最新安全指南。

教师

labby
Labby
Labby is the LabEx teacher.