1. 密码学导论:从古至今的安全基石

各位同学好,我是这门课的主讲人。在安全领域摸爬滚打十几年,我越来越觉得,密码学就像数字世界的「钢筋混凝土」——平时看不见,但少了它,整个大厦都得塌。

今天咱们聊第一章:密码学导论。说白了,就是搞清楚三件事——密码学从哪来、核心概念是什么、现在用在哪儿。

1.1 密码学发展史:三个关键阶段

密码学不是新鲜事。我最早接触它,是在大学图书馆翻到一本讲古罗马密码的书。那时候我就觉得,这东西有意思——几千年前的人就在琢磨怎么藏住秘密。

古典密码时期(公元前 - 19 世纪)

  • 凯撒密码:把字母往后挪三位。比如 A→D,B→E。简单吧?但当时确实管用。
  • 维吉尼亚密码:用关键词做多表替换。比凯撒难破多了。
  • 特点:靠算法保密,一旦算法泄露,全完蛋。
我的经验: 古典密码虽然简单,但它的「替换-置换」思想,至今还在现代密码里用。我教新人时,经常让他们先手写一个凯撒密码,感受一下「加密」到底是怎么回事。

近代密码时期(20 世纪初 - 1970 年代)

  • 恩尼格玛机:二战时德军用的转子密码机。理论上破不了,但盟军硬是把它破了。
  • 一次一密:理论上绝对安全。但密钥长度等于明文长度,实际用起来太麻烦。
  • 特点:从手工走向机械,但密钥分发还是老大难。
避坑指南: 我曾经见过一个团队,自己设计了一套「类似恩尼格玛」的加密算法,觉得没人能破。结果上线三天就被安全研究员打穿了。记住:不要自己造密码,除非你是世界级专家。

现代密码时期(1976 年至今)

  • 1976 年:Diffie 和 Hellman 提出公钥密码思想。这是革命性的——加密和解密用不同的钥匙。
  • 1977 年:RSA 算法诞生。至今还在用。
  • 2000 年代以后:椭圆曲线密码(ECC)、量子密码、同态加密……越来越强。
  • 特点:算法公开,密钥保密。安全建立在数学难题上。

你想想看,从凯撒到 RSA,核心问题其实没变——怎么让两个人安全地通信,即使中间有人偷听。但方法已经天差地别了。

1.2 核心概念:机密性、完整性、可用性

这三个词,我几乎每天都会念叨。它们合起来叫 CIA 三元组(不是美国那个 CIA)。

概念 英文 一句话解释 我遇到过的坑
机密性 Confidentiality 只有授权的人能看 有人把密钥硬编码在代码里,结果代码泄露,数据全裸奔
完整性 Integrity 数据没被改过 传输过程中被篡改,接收方浑然不知,直到业务对不上账
可用性 Availability 需要时能用上 DDoS 攻击打瘫了认证服务器,合法用户登不进去
重点: 很多人以为密码学只解决机密性。其实不对。完整性靠哈希和数字签名,可用性靠冗余和抗攻击设计。三者缺一不可。

机密性:加密是核心手段

加密就是把明文变成密文。只有持有密钥的人才能解密。我习惯把加密分为两类:

  • 对称加密:加密和解密用同一把钥匙。快,但钥匙怎么安全地给对方?
  • 非对称加密:公钥加密,私钥解密。慢,但解决了钥匙分发问题。

实际项目中,我经常两者混用——用非对称加密传对称密钥,然后用对称密钥加密大量数据。这叫「混合加密」,HTTPS 就是这么干的。

完整性:哈希函数与数字签名

光加密还不够。你怎么知道收到的密文没被人改过?

  • 哈希函数:把任意长度的数据,变成固定长度的「指纹」。改一个比特,指纹就变了。
  • 数字签名:用私钥对哈希值签名。别人用公钥验证。既能保证完整性,又能防抵赖。
我的习惯: 每次下载软件,我都会校验它的 SHA-256 哈希值。别嫌麻烦——我曾经因为没校验,装了个被篡改的安装包,结果机器被挖矿程序占了。

可用性:容易被忽视的一环

可用性听起来不像密码学的事。但你想想,如果认证服务器被攻击,所有人都登不进去,那加密再强也没用。

  • 密钥备份:密钥丢了,数据就永远打不开了。
  • 抗 DDoS:别让攻击者把认证接口打瘫。
  • 容灾设计:主节点挂了,备用节点能顶上。

1.3 密码学在现代安全中的应用

密码学不是实验室里的理论。它就在你身边。我随便举几个例子:

  • HTTPS:你正在看的这个页面,就是通过 TLS 加密传输的。没有它,你的密码、信用卡号都在裸奔。
  • 数字证书:网站的身份证明。我每次看到浏览器地址栏的小锁,都会下意识点一下,看看证书是不是真的。
  • 区块链:比特币、以太坊,核心就是哈希、数字签名、共识算法。
  • 全盘加密:电脑硬盘、手机存储,现在默认都加密。丢了也不怕数据泄露。
  • 安全存储:密码不能明文存。我见过太多数据库泄露事件,就是因为密码只做了 MD5(不推荐)甚至明文存储。
注意: 密码学不是银弹。算法再强,如果实现有漏洞、密钥管理混乱、用户乱设密码,照样被攻破。安全是一个系统工程,密码学只是其中一块砖。

本章知识体系

下面这张图,是我自己梳理的本章知识结构。你可以把它当一张地图,随时回来对照。

密码学导论知识体系 密码学导论知识体系 密码学导论 发展史 核心概念 (CIA) 现代应用 古典密码 近代密码 现代密码 机密性 完整性 可用性 HTTPS/TLS 数字证书 区块链 安全存储 说明 密码学导论是后续所有章节的基础。理解发展史能帮你把握技术脉络, 掌握 CIA 三元组能帮你建立安全思维,了解现代应用能让你知道学的东西用在哪。

好了,第一章就到这里。记住:密码学不是背公式,而是理解「为什么」。后面我们会一步步深入,从对称加密到哈希函数,从数字签名到安全协议。每一步,我都会把我在项目里踩过的坑、总结的经验,原原本本告诉你。