最近有关量子密码学的新闻很多,我也来说两句。量子密码学是一个很有意思的东西,如果你仅仅应为看到“量子”二字而跳过这篇文章的话,非常遗憾。当然,我不是从事这个方面研究的,所掌握的知识可能已经过时,若有谬误还请多多谅解。对于量子密码学,大家似乎存在两大误区。
第一,“任何密码技术刚推出的时候都声称其是无法破译的,但最终都会被破译”。其实驳斥这个观点很简单,早在量子密码学被提出之前,我们就有无法破解的加密技术,一次一密乱码本。
第二,“量子加密传输技术能够抵御任何攻击,其传输环节是完全用量子物理约束的”。这个问题就是我们今天的话题。
首先让我们来简单地回顾一下量子加密传输技术。
众所周知,光是一种横波,通过起偏器,我们可以让其偏振起来。发送端可能产生四个方向的偏振光“|-/”(分别是垂直、水平、和位于45度的倾斜)。发送端可以选择使用垂直水平方向或是使用倾斜方向模式(分别记为”+×”),两种模式各有两种方向分别表示0和1。
光子沿着通道传递到了接收端,一直保持原有的偏振方向。问题在于接收端并不知道光子是如何偏振的,甚至不知道是+和×中的哪种模式。而监听器只能是这两种的其中一种,不可能同时测定两种模式。量子物理保证了没人能这么做,测量一个就丧失了测量另一个的可能性。
如果误选了测量模式会发生什么情况呢?假设光的振动方向是-,而你的监听器是×的话,光子各有50%的几率转变为与/方向。这些光子和那些生来就是×方向的光子表现得一模一样,你还是不知道你是否做出了正确的选择。
传输过程如下:
- 发送方每发送1bit都随机选择+和×中的一种,接收方每接收1bit也都随机选择+和×中的一种。然后接收方通过不安全的信道(例如Internet)把自己的发送模式告诉发送方,发送方指出其中哪些部分是正确的。
- 发送方和接收方忽略那些监听器设置错误的位。
- 发送方和接收方比较剩余的位中的一半,如果有错误说明除了接收方外,还有额外的监听者,他的存在干扰了光子的振动方向。如果无错,就抛弃这些位,用剩下的位作为一次一密乱码本的密钥。注1
假如有监听者,他的存在会导致最后一步的校验操作失败,因为他错误的设置了一些接收方原本正确设置的位,并导致这些位各自有一半的几率变成错误的答案。
现在,我们来考虑一下中间人攻击。中间人攻击的发起者是比监听者更厉害的角色,他不但能够得到双方在Internet上通讯的全部内容,还可以任意修改这些内容。因此他可以向发送方假装自己是接收方,而在接收方面前假装自己是发送方。
中间人在第一步中也随机地选择+和×中的一种模式,篡改消息使得发送方收到的发送模式是自己的监听器设置模式,篡改消息使得接收方收到的正确设置信 息实际上是中间人和接收方拥有相同监听器设置的那些位。在最后校验过程中,显然发送方与中间人保留的位是相同的,中间人也知道接收方保留的那些位。
至此,我们可以得出结论,量子加密传输技术仍然无法抵御中间人攻击,依然需要在Internet的不安全信道上使用签名技术。也就是说,其安全性仍 然依赖于签名算法的安全性。这意味着这部分是可以被攻破的,至少它不是量子物理的。当然,即使是目前的Internet环境,中间人攻击也是很难发起的, 但比起被物理规律决定的不可能来说,还是容易多了。
注1:这部分具有增强的协议,发送方和比较方不是简单地比较一半的位,而是若干指定位的亦或值,重复比较N次。最后只需要抛弃每组比较集合的第一个位即可。
作者:夜弓