前述算法面临着一个共同的挑战,即密钥的泄露问题。在系统设计中,需要考虑传输密钥的安全通道,这本身又是一个加密系统。为了避免陷入这种循环嵌套的难题,现代密码学走出了“公钥”密码体制的新方向。自1976年Whitfield Diffie与Martin Hellman提出理论方向后,公钥加密算法的研究已经持续了数十年。表3-4归纳了目前常见的公钥加密算法的主要技术方向。
表3-4 公钥加密算法的主要技术方向
对于一个隐秘的私钥 k s ,公钥加密算法的一般要求是:
公钥加密算法的核心是构建一个“数学难题”,使得人们很难从公开的 k m 推算出 k s ,但是可以很容易地验证某个特定 k m 是否和 k s 匹配。所谓“匹配”,即满足“公钥加密,私钥解密”的过程。为了方便理解,我们可以简称上述密钥的特征为“易验证,难推算”。由于“易验证”,Bob可以随机选择一个私钥并快速找到能匹配的公钥。由于“难推算”,在图3-2中,Carl即使得知了公钥,也无法计算私钥。
图3-2 使用公/私钥进行加密和解密的过程