25.10.20_Presentation

Yuan.Sn

25.10.20_Presentation

💡 演讲时长: 15-20分钟
🎯 目标: 用通俗有趣的方式,建立密码学在计算机领域的认知框架
🎭 风格:探索分享会,不是传统技术讲座 ) ! 别讲的”书里呆气”的 这太无聊了🤣

Part 1: 那个被忽视的TLS小锁 🔒 (5-6分钟)

INTRO

Okok~,不知道大家在浏览网页的时候有没有注意到过域名 旁边的小锁 ~~

[PPT0: 放一张带TLS锁的截图,红框标注地址栏的锁图标]

image
image

那你们会不会好奇 这个小锁 点进去写着连接安全的 到底是干什么的呢?

[PPT1: 放图2 校园网验证界面 高亮出 不安全]

image
image

涉想一下另外的一个情况,当我们需要接入校园网时 访问的他这个验证界面 http://10.255.254.2 为什么显示不安全?

那这个小锁到底在干嘛呢?那就让我们来做个对比吧。

HTTP && HTTPS

观察细心的同学可能会发现,如果我们访问是不安全的网站,它们大多只是 一串ip 或者 一个 http 传输协议的网站

然后这就是第一个知识点了:

[目录PPT: 我这要张目录ppt 目录的内容就是 【何为http? 何为https?】]

image
image

Http 的全程是 ** Hypertext Transfer Protocol ** ,翻译过来就是"超文本传输协议",它是一个application layer 当中的 接口。嗯嗯,说到这里,我想信你们很多人都忘记 计算机网络应用层 这个概念了吧,没事 其实Http说白了就是浏览器和服务器之间"传话"用的规矩。你在浏览器里输个网址,浏览器就按照HTTP这套规矩跟服务器说:"嘿,我要看这个页面",服务器收到后就按规矩把网页传回来。

[PPT4: 能不能做一张图来描述

Http说白了就是浏览器和服务器之间"传话"用的规矩。你在浏览器里输个网址,浏览器就 按照HTTP这套规矩跟服务器说:"嘿,我要看这个页面",服务器收到后就按规矩把网页传来

**这句话 QAQ (拜托拜托 ˋ( ° ▽、° ) ]

然后就是 Https了,相较于 http 它多了一个 s。相信有英文语感的同学 immediately 就能意识到 s 就是 security 的意思了 说白了 就是一个有 secure 组件的 http

image
image

这个 s 就是 我们今天 presentation 的主题 encryption ——加密学!!!

https是依靠的TLS 组件的。这个TLS,它的全称是 Transport Layer Security(翻译过来就是 传输层安全协议),是一个传输层的协议能够通过加密传输的数据来保证你的信息安全。


Part 2: 深入TLS,走进密码学 🤝 (5-6分钟)

噢噢 当然,在 Https 当中的 s 实际上 运用的是 TLS协议,协议的核心就是通过 加解密 来达到身份验证。

image
image

场景:你访问 https://taobao.com

当你在浏览器里输入淘宝的网址,按下回车的那一刻,背后发生了什么?

[PPT5: TLS握手流程图]

image
image

第一步:服务器说"我是某宝!"

1
2
浏览器: 你好,我想访问淘宝
服务器: 好的,我就是淘宝!这是我的数字证书

等等!凭什么相信你就是某宝?

万一你是个钓鱼网站,伪装成淘宝呢?这就引出了第一个密码学概念:

🔑 数字证书 = 互联网世界的"身份证"

这个证书是由权威机构(CA,比如DigiCert, Let's Encrypt)签发的,就像你的身份证是公安局发的一样。

[PPT提示: 展示真实的证书]

image
image

证书里包含了什么?

  • 网站的域名(taobao.com)
  • 网站的公钥(这个待会讲)
  • CA的数字签名(证明这个证书是真的)

浏览器会验证这个证书:

  1. 证书是不是CA签发的?✅
  2. 证书有没有过期?✅
  3. 域名对不对?✅

如果都通过了,浏览器就会显示那个小锁。

第二步:怎么安全地传输密钥?

好,现在浏览器相信"你就是淘宝"了。但问题又来了:

浏览器和服务器要用密钥来加密通信,但这个密钥怎么传输呢?

你不能直接发过去啊!那不就被截获了吗?

这就是密码学最核心的问题 —— 密钥分发问题

传统的加密(对称加密)是这样的:

1
2
加密: 明文 + 密钥 = 密文
解密: 密文 + 密钥 = 明文

双方用同一个密钥。但问题是,第一次见面,怎么安全地交换密钥?

人类用了几千年,都没解决这个问题。直到1977年,RSA算法横空出世!

💡 RSA的天才想法:非对称加密 (重点讲这个 !!! 非常重要!!!)

什么叫非对称?就是用两把钥匙

  • 公钥(Public Key): 可以公开给所有人
  • 私钥(Private Key): 只有自己知道

用一个生动的比喻:

公钥 = 一个开放的邮箱口
任何人都可以往里面投信(用公钥加密),但只有邮箱主人有钥匙打开(用私钥解密)。

所以TLS握手的流程是这样的:

1
2
3
4
5
6
1. 服务器: "这是我的公钥,随便拿去"
2. 浏览器: "好,我用你的公钥加密一个随机数,发给你"
→ 加密(随机数, 公钥) = 密文
3. 服务器: "收到!我用私钥解密"
→ 解密(密文, 私钥) = 随机数
4. 双方: "现在我们都有这个随机数了,用它来生成会话密钥吧!"

这就是非对称加密的魔力!它解决了几千年来的密钥分发难题。

[PPT提示: 流程图,用不同颜色标注公钥/私钥的流向]

第三步:为什么后续不用RSA传数据?

既然RSA这么牛,为什么不全程用它传输数据呢?

因为...它太慢了!

来看个数据对比:

算法类型 加密速度 密钥长度 适用场景
对称加密(AES) 超快 🚀 256位 大量数据传输
非对称加密(RSA) 很慢 🐌 2048位 密钥交换、签名

RSA加密同样的数据,比AES慢1000倍

所以,聪明的人类想出了混合加密的方案:

  1. 用RSA(非对称)交换一个临时密钥(只用一次,很快)
  2. 后续数据全部用AES(对称)加密(传输大量数据,飞快)

这就是为什么HTTPS既安全又快的秘密!

[PPT提示: 混合加密示意图,用图标表示RSA=慢但安全的快递,AES=快速公路]

小结:TLS用到了哪些密码学? (可以单独叫一人总结

通过刚才的探索,我们已经接触到了:

  • 数字证书 - 解决身份认证问题
  • 非对称加密(RSA/ECC) - 解决密钥分发问题
  • 对称加密(AES) - 解决高效数据传输问题
  • 数字签名 - 解决数据完整性问题
  • 哈希算法(SHA-256) - 用于生成签名和验证完整性

是不是突然发现,一个简单的HTTPS访问,背后用了这么多密码学技术?


Part 3: 密码学在现实中的应用 🌍 (3-4分钟)

刚才我们通过TLS了解了密码学的基本原理。现在让我们看看,密码学还能做什么?

Case 1: 区块链 - 比特币转账

你有没有想过,比特币是怎么保证"你的币就是你的币"的?

场景: 你要给Alice转1个BTC

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 简化的比特币交易流程
1. 你有一对密钥对:
- 私钥(sk): 只有你知道
- 公钥(pk): 公开的,就是你的"比特币地址"

2. 发起转账:
交易内容 = "我要给Alice转1 BTC"

3. 用私钥签名:
signature = sign(交易内容, 私钥)

4. 广播到网络:
{交易内容, signature, 公钥}

5. 矿工验证:
if verify(交易内容, signature, 公钥) == True:
✅ 这笔交易合法!打包进区块
else:
❌ 假的,拒绝!

为什么比特币用ECDSA而不是RSA?

因为区块链需要存储海量的交易签名,ECDSA的签名更短:

  • RSA-2048签名: 256字节
  • ECDSA-256签名: 64字节

省了4倍空间! 这在区块链这种分布式存储系统里,太重要了。

[PPT提示: 区块链浏览器截图,标注交易签名字段]

Case 2: SSH - 为什么GitHub需要配置密钥?

如果你用过Git,肯定配置过SSH密钥。有没有想过为什么?

1
2
3
4
5
6
# 生成SSH密钥对
ssh-keygen -t ed25519 -C "[email protected]"

# 生成两个文件:
id_ed25519 ← 私钥
id_ed25519.pub ← 公钥(复制到GitHub上)

工作原理:

1
2
3
4
5
1. 你把公钥上传到GitHub
2. 当你git push时:
- 你的电脑用私钥签名
- GitHub用公钥验证
- 验证通过 → "确认是你本人,允许push"

这样的好处是:你不需要每次都输入密码! 而且比密码更安全(2048位的密钥 vs 8位的密码)。

[PPT提示: GitHub SSH设置页面截图]

image
image

Part 4: 回答一下四个核心问题 🤔 (2分钟)

回顾一下我们的探索之旅,现在可以回答这四个问题了:

1. 为什么需要密码学?

因为互联网天生不安全

数据在网络上传输,就像在公共场所大喊一样,任何人都可能截获。密码学就是给你的数据穿上"隐身衣"。

2. 密码学能做什么?

三大核心功能:

  • 机密性(Confidentiality): 信息不被偷看(加密)
  • 完整性(Integrity): 信息不被篡改(哈希、签名)
  • 认证性(Authentication): 证明"你就是你"(数字证书、签名)

3. 密码学是怎么做出来的?

靠数学难题!

  • RSA: 基于"大数分解"难题

    • 把两个大质数相乘很容易:123456789 × 987654321 = ?
    • 但把结果分解回去?几乎不可能!
  • ECC: 基于"椭圆曲线离散对数"难题

    • 在椭圆曲线上做加法很容易
    • 但逆向求解?目前没有高效算法

这些数学难题保证了:算法公开,但破解几乎不可能

4. 我们要怎么学习密码学?

给个学习路径建议:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Level 1: 应用层 (你现在在这里!)
↓ 理解密码学是干什么的,怎么用的

Level 2: 原理层
↓ 学习RSA、AES等算法的工作原理

Level 3: 数学层
↓ 深入数论、群论等数学基础

Level 4: 实现层
↓ 看openssl源码,自己实现加密库

Level 5: 研究层
↓ 密码学论文、量子密码学...

建议:

  • 从应用场景出发(TLS、SSH、区块链)

  • 不要一上来就啃数学(会劝退的 QAQ)

  • 多动手实践(写代码、抓包分析)

  • 关注安全新闻(学习真实的攻击案例)

LAST

探索密码学的乐趣

最后,分享一下我探索密码学的感受:

密码学是数学的优雅工程的实用的完美结合。

  • 当你理解RSA算法的那一刻,会觉得"数学居然可以这么美"
  • 当你看到TLS握手流程,会感叹"设计得太巧妙了"
  • 当你第一次用Wireshark抓包分析加密流量,会有种"黑客"的快感(合法的那种!)

推荐资源:

  • 📚 书籍: 《图解密码技术》(入门超级友好)
  • 🎥 视频: 3Blue1Brown的RSA讲解(可视化做得超棒)
  • 🔧 工具: CyberChef(在线加密解密工具,很好玩)
  • 🌐 网站: Cryptopals Challenges(密码学挑战题)
Comments