根据密钥的使用方式,密码学分为两大阵营。
对称密码
加密和解密用的是同一个密钥。就像你用一把钥匙锁上箱子,朋友用同一把钥匙打开。优点是速度快,适合加密大量数据。缺点是要想办法安全地把密钥交给对方——如果密钥在传输中被窃取,一切就白费了。
非对称密码
加密和解密用不同的密钥。每个人都可以生成一对密钥:一个叫公钥,可以公开给全世界;一个叫私钥,自己藏好。别人用你的公钥加密消息,只有你的私钥能解开。反过来,你也可以用私钥签名,别人用公钥验证。
非对称密码解决了“密钥分发”的千年难题,但速度比对称密码慢得多。所以在实际应用中,两者是配合使用的:用非对称密码安全地交换一个临时密钥,然后用这个临时密钥进行对称加密。这就是我们后面会讲到的“混合加密体系”。