量子密码学与中间人攻击

最近有关量子密码学的新闻很多,cnBetaSolidot都有。量子密码学是一个很有意思的东西,如果你仅仅应为看到“量子”二字而跳过这篇文章的话,我非常遗憾。当然,我不是从事这个方面研究的,所掌握的知识可能已经过时,若有谬误还请多多谅解。

对于量子密码学,大家似乎存在两大误区。

第一,“任何密码技术刚推出的时候都声称其是无法破译的,但最终都会被破译”。其实驳斥这个观点很简单,早在量子密码学被提出之前,我们就有无法破解的加密技术,一次一密乱码本。

第二,“量子密钥分配技术能够抵御任何攻击,其传输环节是完全用量子物理约束的”。这个问题就是我们今天的话题。

首先让我们来简单地回顾一下量子密钥分配技术。

在这个技术中,出场的角色包括:发送端、接收端。他们之间存在一条私有线路和一条公有线路。私有线路是一根光纤,而公有线路通常就是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)不被发觉。

你可能会感兴趣

on October 18th, 2008 | 4 Comments »

4 Responses to “量子密码学与中间人攻击”

  1. h43hh says:

    很遗憾你的解释是错误的。
    简单地说吧,如果一种加密方法如果有几率被破解,它就不是“无法破解的”,比如你说的“一次一密乱码本”和你解释的所谓“依靠选择正确的测量模式的‘量子密码学’”,它们都可以被破解,比如使用穷举的方法。试想一下,如果破解者猜到了乱码呢?如果选对了测量模式呢?所以,它们并不是“无法破解的”。
    而量子密码学的真正意义在于“海德堡测不准原理”,就是说,中间人如果进行数据的探测,那么他必然会对数据造成影响,从而被人所发觉。也就是说,要么别去截取数据,要么就把数据干扰了。
    参考资料: http://zh.wikipedia.org/wiki/不确定性原理

    • cooper says:

      1. 我现在很后悔把文章随便贴在cnBeta上,一群暴民,就没有认真看完的。
      2. “海德堡测不准原理”算哪门子测不准原理,你高中学文的吧。
      3. 我文中哪句话说了中间人攻击仅仅有一定几率起作用。
      4. 量子密码学绝对不是一种加密算法,而是一种密码分配协议。
      5. 参见Answer.COM,MITM attacks are a potential problem in quantum cryptography as well.

      再补充一下,一次一密乱码本绝对是完全不可破解的。例如,原文是hello world。你当然可以穷举所有乱码找到这个答案,但是你此时也会找到这样一个答案i need money或者how are you。等于是要在等长的英文消息里面找到原文,这样的破解是没有意义的。甚至,我用上游程长度编码(RLE, Run-length encoding),连消息的长度都是未知的了

  2. h43hh says:

    1. 我只是跟你讨论问题,范不着累得您开骂。
    2. 我只是打错了个字,影响你理解那个词了?
    3. 量子密码学的密码分配协议,说到底是利用量子力学的密码传输方式,我又有哪句话说了它是加密算法了?
    4. 参见:http://en.wikipedia.org/wiki/Quantum_cryptography

    • cooper says:

      1. 我说cnBeta那群人,没指您
      2. 正是因为你打错了字,所以我才有这种怀疑,很正常。如果确实是因为D和S离得太近,我收回。
      3. 很高兴在这点上和你达成共识
      4. 继续很高兴你说到维基百科,就在你给出的那个网页有这么一句话:Quantum cryptography is vulnerable to a man-in-the-middle attack when used without authentication to the same extent as any classical protocol, since no principle of quantum mechanics can distinguish friend from foe. 不需要翻译吧?

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>