最近有关量子密码学的新闻很多,cnBeta和Solidot都有。量子密码学是一个很有意思的东西,如果你仅仅应为看到“量子”二字而跳过这篇文章的话,我非常遗憾。当然,我不是从事这个方面研究的,所掌握的知识可能已经过时,若有谬误还请多多谅解。
对于量子密码学,大家似乎存在两大误区。
第一,“任何密码技术刚推出的时候都声称其是无法破译的,但最终都会被破译”。其实驳斥这个观点很简单,早在量子密码学被提出之前,我们就有无法破解的加密技术,一次一密乱码本。
第二,“量子密钥分配技术能够抵御任何攻击,其传输环节是完全用量子物理约束的”。这个问题就是我们今天的话题。
首先让我们来简单地回顾一下量子密钥分配技术。
在这个技术中,出场的角色包括:发送端、接收端。他们之间存在一条私有线路和一条公有线路。私有线路是一根光纤,而公有线路通常就是Internet。
众所周知,光是一种横波,通过起偏器,我们可以让它偏振起来。
在私有线路中,发送端可能发送四个方向的偏振光“|-\/”(分别是垂直、水平、和位于45度的倾斜)。这四种方向可以分为垂直水平和倾斜方向两种模式(分别记为”+×”),两种模式各有两种方向分别表示0和1。发送端每发送一位都先随机选择一种模式,根据这一位是0或是1再继续的确定光的偏振方向。
光子沿着通道传递到了接收端,一直保持原有的振动方向。而接收端一次只能选择+和×两种探测模式中的一种,无法同时探测两种模式。
如果发送模式和接收模式不同会怎样?不妨设光的振动方向是-,而接收器的模式是×。此时,光子各有50%的几率转变为\与/方向。这一点是量子密钥分配技术的基石,即为了测定光子是否在-方向振动,光的方向可能会被改变,以保证光子在穿过检偏器后要么|振动,要么-振动,即使它以前的偏振方向是倾斜。
因为接收方并不知道每个光子的振动方向,就有可能选择了错误的模式并得到错误的结果。接收方通过公有线路把自己的发送模式告诉发送方,发送方指出其中哪些部分是正确的。发送方和接收方忽略那些接收器设置错误的位。
此时,如果没有人干扰私有线路中的光子的话,发送方和接收方就应该拥有相同的数据了。为了检验这一点,他们在公有线路中比较其中的一半。如果有差异,说明光纤中存在监听者。他干扰了光子的振动方向。如果无错,就抛弃这些位,用剩下的位作为一次一密乱码本的密钥。1
假如有监听者,他的存在一定会导致最后一步的校验操作失败。因为他事先也不知道应该如何设置接收器模式。其中那些错误的设置会导致他被发觉。任何光纤中的窃听者都会修改光子的偏振方向。2
现在,我们来考虑一下中间人攻击。中间人攻击的发起者是比监听者更厉害的角色。前面设想的监听者仅仅能在私有线路上设置光子振动方向检测器和读取公有线路上的全部通讯。但中间人不但能够做到这些,还可以修改公有线路上的通讯。因此他可以向发送方假装自己是接收方,而在接收方面前假装自己是发送方。
中间人在私有线路上也随机地选择+和×中的一种模式,即使这会导致接收方收到的光子偏振方向被修改。
接收方会在公有线路上发送接收器的设置模式。此时中间人修改这些数据,把它变成自己的设置模式。发送方会把这些模式中错误的部分发送给接收方,中间人读取这部分数据就知道了自己设置错了哪些位。中间人修改这份数据,让接收方保留那些和中间人模式相同的位。这样,中间人和发送方保留了一份的数据,也和接收方保留了另一份数据。在最后的核对工作中,中间人只要修改核对用的数据包,就能保证发送方和接收方无法察觉有人窃听了私有线路。
至此,我们可以得出结论,量子密钥分配技术仍然无法抵御中间人攻击,依然需要在公有线路上使用签名技术。这意味着这部分是可以被攻破的,至少它不是被量子物理约束的。当然,即使是目前的Internet环境,中间人攻击也是很难发起的,但比起被物理学决定的不可能来说,还是容易多了。
注意,这种攻击不是我发现的,我只是说指出别人的结论--量子密钥分配协议的安全性仍然需要一种签名算法来保证,如果使用签名算法被破译了,那么量子密钥分配协议就会被入侵。关于这个结论的真实性,可以参照Answers.com和Wikipedia.org中有关Quantum cryptography和man-in-the-middle attack的内容。
注1:这部分具有增强的协议,发送方和比较方不是简单地比较一半的位,而是若干指定位的亦或值,重复比较N次。最后只需要抛弃每组比较集合的第一个位即可。
注2:和大部分的密码学一样,这只是一个概率问题。当数据量很大的时候,他仅有极低可能不被发觉。比如计算机浮点数向下溢出的几率(约10-308)不被发觉。
Post by : cooper
Post under : Thinking, 密码学, 量子密码学, 量子物理学
on October 18th, 2008 | 4 Comments »