谈量子通信前,先看看经典保密通信安全性几何?( 四 )


对称加密有一个基本条件, 就是通信双方需要至少一次“接触”, 也就是握手环节 。 在这个环节中, 双方建立互信, 约定算法, 交换密钥 。 到了互联网时代, 这样的加密方式显然不适用 。 为什么呢?互联网的特点是网状结构, 有无数的终端, 而且这些终端时而接入, 时而断开, 不断有新的节点加入, 旧的节点撤销 。 总之一句话:复杂, 多变 。 在这样的体系中, 要想建立点对点的通讯是臃肿笨拙的, 而且成本高昂 。 一个终端与另一个终端可能相隔万里, 通信双方可能老死不会相见 。 那他们之间如何建立可靠通信呢?在这种应用场景下, 一种新的、绝妙的通信方式——公钥系统, 或者说非对称加密系统提供了解决方案 。
顾名思义, 非对称加密系统中加密方和解密方是不对称的, 无论是算法还是密钥 。 Bob想从Alice那里收取信息, 他首先用公钥算法生产一对密钥——公钥和私钥, 并通过网络向外发出公钥, 自己仔细保管好私钥, 而算法则是公开的, 任何具备相关知识的人, 就可以获取算法和公钥, 当然, 这其中一定包含Alice和Eve 。 Alice拿到公钥之后, 就可以与Bob通信了:她用公钥加密信息, 然后发布到网络上, Bob(当然也包括Eve)接收到信息之后, 用私钥轻易地解密并获取了明文信息 。 而Eve呢?虽然他可以轻易地获取密文, 他也可以轻易地获取密钥——公钥, 但很可惜, 用公钥加密的信息, 用公钥不能解开 。 反过来, 用私钥加密的信息, 也只能用公钥才能解开 。 这一特点, 正好完美解决了身份认证的环节, 也就是实现所谓数字签名 。
前面已经讲到过身份认证的重要性, 其作用不下于加密本身 。 试想, 如果Alice连通信的对方是Bob还是Eve都分不清, 怎么能保证通信的安全性?要知道伪装是截获情报最重要的手段之一 。 除此之外, 要想保证通信的安全性, 还要考虑信息是否被篡改 。 假如我送的信半路上被人悄悄加几句话, 很容易就被误导了 。 为了防止这种事情发生, 在通信中常用的办法就是签名, 盖戳, 并在信封上加漆印, 这样的情节在很多影视剧中相信大家都见过 。 即便这样, 伪造笔迹, 伪造签名的事情也难免 。 小李子和“阿甘“演过一部猫捉老鼠的电影《逍遥法外》, 小李子就是靠伪造各种支票骗过了大批银行职员(多为女性), 被抓后成为FBI的假支票鉴定专家 。
互联网上身份认证怎么做呢?最常用的办法是数字签名, 这是公钥密码系统中非常重要的一环 。 数字签名不仅能进行身份认证, 还可以对所传递的信息做校验, 保证信息的完整性和不可篡改性 。 具体的做法是, 发信方用一个哈希函数(比如MD5)对信息内容生成一个摘要, 然后用私钥加密这个摘要, 与加密后的信息(用对方公钥)一同传给对方 。 对方用公钥解开摘要, 用自己的私钥解开信息, 并用相同的哈希函数生成信息摘要, 然后与发送过来的摘要做对比, 相同则说明信息没被篡改过且是完整的 。 由于公钥私钥一定是成对的, 因此上述过程就完成了身份验证、信息真实性和完整性验证 。
绝大多数用户在使用互联网的时候, 并没有意识到公钥系统在保护着我们, 但实际上它无处不在 。 不知道大家注意到没有, 现在的网页已经很少有http开头的(国内很多网站除外), 都是https开头了, google浏览器甚至已经不再支持http网页浏览 。 这里多了个s, 就表明网站内容经过加密了, 这样你就可以放心在网站上输入个人信息、用户名密码而不用担心被人盗取 。 其中用到的加密技术, 正是公钥密码 。 尽管HTTPS并非绝对安全, 掌握根证书的机构、掌握加密算法的组织同样可以进行中间人形式的攻击, 但HTTPS仍是现行架构下最安全的解决方案 。 我们用支付宝、微信、银行网银做的每笔交易, 背后都是公钥系统在保驾护航 。

推荐阅读