type
Post
status
Published
date
Jan 31, 2026
slug
encryption
summary
tags
応用情報技術者試験
category
国家資格勉強
icon
password

情报安全之密码学,从历史发展的角度切入,带大家捋一遍

1990 年代之后的加密技术应用演进

1990 年代之后,随着信息安全技术的成熟,三大核心技术被陆续整合并应用到各种通信协议中:
核心技术
说明
公開共通混合加密 (Hybrid Encryption)
结合对称加密和非对称加密,兼顾数据机密性与密钥分发效率
電子署名 (Digital Signature)
利用私钥对哈希值签名,实现完整性验证和否认防止
PKI (Public Key Infrastructure)
通过证书授权中心(CA)验证公钥身份,保证真正性达到 100%
这些技术被广泛应用于网络和通信协议,使得信息传输既高效又安全,典型例子包括:
  • HTTPS → 安全网页访问
  • FTPS / SFTP → 文件传输加密
  • SSH → 安全远程登录
  • S/MIME / PGP → 邮件加密与签名
💡 总结:
核心思想:混合加密 + 电子签名 + PKI → 形成完整的安全基础 → 进一步扩展应用到各类协议 → 保证机密性、完整性、真正性与否认防止
很复杂,这里挑1个聊

HTTPS 的 TLS 1.3

早期的 TLS(如 TLS 1.0~1.2 的 RSA 握手)是:
使用服务器公钥加密共通钥匙,再把加密后的钥匙通过网络发送。
这种方式的问题在于:
过去被抓包的通信未来仍可能被解密。2026 年无法破解,并不代表 2028 年仍然安全,攻击者完全可以先截获通信数据,待计算能力提升后再进行破解。
正如人们曾认为机器不可能理解人类语言,但如今 AI 已能对话、写作与翻译;也曾认为基因无法被精确修改,而 CRISPR 已实现定点编辑。
同样,随着量子计算机的出现,传统密码体制面临危殆化风险,密码学也必须随之更新与演进。
TLS 1.3 的改进在于:
引进了0知识证明 (ゼロ知識証明)

现代密码学重要思想之 ゼロ知識証明

一个典型的零知识证明示例是阿里巴巴和强盗的故事:
阿里巴巴知道打开藏着财宝的山洞的咒语。强盗抓住他,让他说出咒语。
如果阿里巴巴说出咒语,就会因为没有利用价值而被杀死。如果阿里巴巴坚持不说,强盗不会相信他真的掌握咒语,也会杀死他。
但阿里巴巴想了一个好办法,他对强盗说:“你们离我一箭之地,用弓箭指着我,你们举起右手我就念咒语打开石门,举起左手我就念咒语关上石门,如果我做不到或逃跑,你们就用弓箭射死我。”
ゼロ知識証明研究的是
老子有核弹,但是我怎么不给你看核弹,你也知道我百分之百有核弹(保护国家安全) 我有1个亿,但是我不给你看这1个亿,你也能百分之百确定我有一个亿(保护隐私) 你给我100块,我可以告诉你赚200块的方法,但是你不告诉对方方法,他就不相信你,不给你100块,你告诉他,他知道了赚200块的方法了,就不需要给你100块了。怎么办? 而密码学也是,我有密码,但是我不传输密码(包括如何方式加密后的密码),你也可以相信我有正确的密码

thing time

notion image

红眼岛民集体自杀事件

问题描述 一个岛上有100个人,其中95个是蓝眼晴,5个是红眼睛。岛上有三个奇怪的规则:
1.不能通过照镜子,照水面来看自己眼睛的颜色。 2.不能告诉对方别人的眼睛颜色。 3.一旦知道自己眼睛的颜色,必须在当夜自杀。 一天,有一个旅行者来到岛上,当着所有人的面,不留神说了一句:你们这里有红眼睛的人,岛民都 听到了这句话。假设岛民都是聪明人,问这个岛接下来会发生什么事情?
答:在第5天当夜,5个红眼睛自杀。第6天当夜,蓝眼晴集体自杀。
眼睛问题
零知识证明
眼睛颜色
秘密(Secret)
旅行者的那句话
公共声明(Public Statement)
有没有人离岛
验证结果(Proof Outcome)
推理出“我是蓝的”
验证“我知道秘密”
没说出颜色
零知识(不泄露内容)
thing time
你就不告诉我的前提下,怎么让我相信你跳过楼?不泄露军事照片的情况下,怎么证明坦克没有后视镜
notion image

在密码学中,有一种非常简单的零知识证明思想:Challenge–Response。 应用场景是One-Time Password (OTP)
我有密码,但是我不传输密码(包括任何方式加密后的密码)。
也可以让对方知道我有正确的密码
证明的是“我知道”,而不是“我展示”。
notion image
 
5.知识检验
notion image
 
TLS1.3 跟Challenge–Response原理差不多,但是复杂很多,需要打比方
notion image
notion image
 

用「咸甜豆腐脑」讲懂 TLS / DH 密钥交换

很多人一学 TLS、HTTPS、DH、ECDHE
就会被各种数学公式、随机数、指数运算劝退。
但其实 TLS 的核心思想非常朴素,完全可以用一个生活中的例子讲清楚。
下面这个例子,不需要任何数学基础

一、问题:如何在被监听的网络上“安全地达成秘密”?

假设:
  • 小南擅长做 甜豆腐脑
  • 小白擅长做 咸豆腐脑
他们想要做到一件事:
👉 两个人最终做出 一模一样口味的「咸甜豆腐脑」
👉 但 配方绝对不能被第三者(中间人)知道
这,正是 TLS 要解决的问题。

二、错误但直观的方法(为什么不安全)

最直接的想法是:
  • 小南把 寄给小白
  • 小白把 寄给小南
然后:
盐 + 糖 + 豆腐脑 = 咸甜豆腐脑
✔️ 两边味道一致
问题在哪?
📛 网络是被监听的
📛 中间人可以截获「盐」和「糖」
👉 秘方直接泄露
这就等价于:
❌ 在网络上传输明文密钥

三、TLS 的核心思想 是0知识证明

TLS 采用的不是“传秘密”,而是:
让双方“各自在本地算出同一个秘密”
换成豆腐脑的说法:

正确做法

  • 小南寄给小白:甜豆腐脑(成品)公钥
  • 小白寄给小南:咸豆腐脑(成品)公钥
然后:
  • 小南在自己家里:
    • 甜豆腐脑 + 自己私藏的盐 → 咸甜豆腐脑
  • 小白在自己家里:
    • 咸豆腐脑 + 自己私藏的糖 → 咸甜豆腐脑
🎯 最终味道完全一致

四、中间人能看到什么?为什么没用?

中间人可以做到的事情只有这些:
  • 截获甜豆腐脑
  • 截获咸豆腐脑
  • 知道传输顺序
  • 全程监听通信
但问题是:
❌ 甜豆腐脑 + 咸豆腐脑 ≠ 咸甜的配方
中间人 永远拿不到
  • 小南的盐
  • 小白的糖
👉 所以 永远算不出最终味道

五、这正是 DH / ECDHE 在 TLS 里的工作方式

把上面的比喻对应到 TLS:
豆腐脑比喻
TLS 中的真实含义
是否公开
客户端 DH 私钥
服务器 DH 私钥
甜豆腐脑
客户端 DH 公钥
咸豆腐脑
服务器 DH 公钥
咸甜豆腐脑
Pre-Master Secret
最终定型口味
Session Key
为了增加随机性,客户端和服务器端还发送了各自的乱数,最终
咸甜豆腐脑+服务器乱数+客户端乱数 = 最终的会话钥匙
关键点只有一句话:
Pre-Master Secret 从来没有在网络上传输过
它是:
  • 客户端:
    • 自己的私钥 + 服务器公钥 → 算出来
  • 服务器:
    • 自己的私钥 + 客户端公钥 → 算出来

六、为什么“材料不一样,却能算出同一个结果”?

这是很多人最困惑的一点。
原因只有一个:
DH 的数学结构,保证了“双方各自混合后,结果相同”
就像:
  • 一边是:甜 + 盐
  • 一边是:咸 + 糖
虽然中间材料不同,但:
设计保证最终味道一致
这不是巧合,是算法刻意保证的性质。

七、为什么这比“直接用公钥加密”更安全?

因为:
  • 秘密 从来没被发送
  • 抓包 ≠ 能解密
  • 服务器私钥泄露 ≠ 过去通信被解密(前向安全性)
这正是 现代 TLS 一律使用 ECDHE 的原因。

八、一句话总结

TLS 的精髓不是“把秘密传过去”,而是“让秘密只存在于通信双方的内存里”。
中间人:
  • 能看到一切通信
  • 却永远少那一勺盐,或那一勺糖

小南伴你学-応用情報-第6期:系统开发之概览小南伴你学-応用情報-第4期:情报安全-密码学,捋一遍
Loading...