让我们从一个最简单的场景开始:你想给朋友写一封秘密信件,但又担心信会被别人偷看。
最原始的办法:你和朋友约定好,把每个字都替换成另一个字(比如“你”写成“我”,“好”写成“坏”)。这样,即使信被截获,对方也看不懂。
这个场景里,藏着密码学的三个核心要素:
- 明文:你原本写的信的内容,也就是“原始信息”。
- 密文:经过变换后看起来乱七八糟的内容,也就是“加密后的信息”。
- 加密算法:把明文变成密文的那套规则——比如“每个字替换成另一个字”。
- 解密算法:把密文还原回明文的那套规则——通常是加密的逆过程。
- 密钥:控制算法具体如何变换的参数——比如你和朋友约定的那个“替换对照表”。
用一张图来表示就是:
1 | 明文 + 密钥 + 加密算法 → 密文 |
一个更形象的比喻:加密就像把信放进一个带锁的箱子里。
- 明文 → 箱子里的信
- 加密算法 → 锁的构造方式
- 密钥 → 开锁的钥匙
- 密文 → 锁住的箱子
任何看到箱子的人,都只能看到一坨铁块,只有拥有钥匙的人才能打开它。
这里有个非常重要的点:算法可以公开,但密钥必须保密。还是用箱子来类比——你可以向全世界公开你的锁是什么牌子、什么型号,但只要你牢牢握着钥匙,别人就打不开你的箱子。现代密码学的根基,就建立在这个原则之上。