8.8 持续的挑战

我们目前使用的是基于因数分解等NP问题的公钥加密系统。艾莉丝很容易就能生成一个只有她知道因子且很难被因数分解的大数,只要随机选择两个大的质数,把它们相乘就可以了。

人们还不知道因数分解是否为NP完全问题,但倾向认为不是。即使它是NP完全的,P≠NP也只是意味着存在某些难以因数分解的大数。随机选择的数字仍然有可能容易被因数分解。

现代密码学构建在NP完全问题的困难性以及P≠NP的假设之上,这是该学科目前面临的心腹之患。

20世纪70年代迪菲和赫尔曼的工作彻底改变了密码学,让我们能直接基于求解某些问题的困难程度来构造加密协议。纵横填字高手、国际象棋大师和聪明的数学家再也不能找到直接破解这些密码的方法了。

而猫鼠游戏并没有因此终止。既然不能直接地破解密码,黑客转而攻击其他的薄弱环节。艾莉丝和鲍勃可能没有在通信协议中使用很好的随机数。黑客可能会利用艾莉丝使用的浏览器或操作系统的设计缺陷来入侵她的计算机。艾莉丝可能被蒙骗,将私钥告诉其他人。艾莉丝选择的密码可能不够强壮,从而让黑客有了可乘之机。

除了通常能看到和想到的通信数据之外,黑客还能利用一些其他的信息来破解密码。比如计算花费的时间与编码的消息也许是相关的,黑客可以利用这一点。黑客还可能会破坏系统的一部分,比如把智能卡扔进微波炉加热,这样做有可能使受损的计算芯片不再保障数据的安全性。

人们也许会发明理论上牢不可破的加密方法,但基本上永远都不可能实现绝对不会泄密的保密系统。