想象这样一个场景:你有一个珍贵的日记本,不想让任何人看到。你买了一个带锁的密码箱,把日记本放进去,咔哒一声锁上。现在,任何人都无法打开它——除非他们有那把钥匙。
当你想要阅读日记时,你拿出同一把钥匙,打开箱子,取出日记本。
这个过程简单、直观,而且完美地诠释了对称加密的核心思想。
密码箱的四个要素
让我们把这个场景拆解一下:
- 日记本:你想要保护的信息,也就是明文。
- 锁上的箱子:加密后的信息,也就是密文。
- 锁的机制:加密算法,也就是如何把箱子锁上的规则。
- 钥匙:密钥,也就是控制锁如何运作的那个秘密。
加密的过程,就是把明文(日记本)放进箱子,用钥匙锁上,变成密文(锁住的箱子)。解密的过程,就是用同一把钥匙打开箱子,取出明文。
这就是“对称”的含义:加密和解密使用的是同一把钥匙。
数字世界的密码箱
在数字世界里,没有物理的箱子和钥匙,一切都变成了数学运算。但原理是相通的:
- 明文是一串数据,比如你银行卡里的余额、发给朋友的微信消息。
- 加密算法是一套数学公式,比如我们后面要讲的AES。
- 密钥是一个随机生成的数字,长度通常是128位、192位或256位。
- 密文是经过数学变换后得到的一串看似随机的数据。
当你用密钥加密一段明文,得到的是密文。任何人看到这段密文,只要没有密钥,就只能看到一堆乱码。而拥有密钥的人,可以轻松地把密文还原成明文。
为什么叫“对称”?
对称加密这个名字,来源于数学上的对称性:加密和解密使用的是同一个密钥,就像一把钥匙既能锁也能开。这种对称性带来了一个巨大的优势——速度极快。
现代计算机可以在毫秒级加密海量数据。你每刷一次网页、每发一条微信、每转一笔账,背后都有对称加密在高速运转。
但对称性也带来了一个天然的难题:既然加密和解密用同一把钥匙,那这把钥匙怎么安全地交给对方?
这就是密码学史上最古老、最棘手的难题——密钥分发问题。
密钥分发:对称加密的阿喀琉斯之踵
回到密码箱的比喻。你想把日记本寄给远方的朋友,于是你锁上箱子,寄了出去。但问题来了:钥匙怎么给朋友?
如果你把钥匙和箱子一起寄,那箱子就形同虚设——任何人都可以打开。如果你先寄箱子,再寄钥匙,快递员还是有可能截获钥匙。如果你亲自送钥匙,那为什么不直接把日记本带过去?
这个困境困扰了人类几千年。在古代,人们只能通过可靠的信使、复杂的信物、甚至面对面交接来传递密钥。但这种方式在数字时代显然行不通——你不能为了给朋友发一条微信,先坐飞机去当面交换密钥。
正是这个难题,催生了下一章要讲的非对称加密。但在那之前,对称加密依然是保护数据的主力军——因为一旦密钥安全地交换完毕,它就能以惊人的速度加密海量数据。
身边的对称加密
你可能每天都在用对称加密,只是没有意识到:
- 硬盘加密:你的电脑或手机如果设置了密码,数据通常是用AES加密的。你输入的密码被转换成密钥,用来加密所有文件。
- Wi-Fi密码:WPA2/WPA3协议用对称加密保护你的无线通信。你的设备和你家的路由器共享一个密码(密钥),所有数据都经过加密传输。
- HTTPS:虽然建立连接时用了非对称加密交换密钥,但真正的数据传输用的是对称加密——因为更快。
小结
对称加密就像一把钥匙开一把锁:简单、高效、可靠。它用数学为我们的数据筑起第一道防线。但它的软肋——密钥分发问题——也推动着密码学不断向前发展。
在接下来的几节,我们将深入对称加密的内部,看看DES和AES是如何设计的,为什么有的工作模式是安全的,有的却是“绝对不能用的”。你准备好了吗?