◇◇新语丝(www.xys.org)(xys8.dxiong.com)(xys.ebookdiy.com)(fangzhouzi.me)◇◇   量子通信安全性分析   作者:八里土人   随着量子通信卫星“墨子”发射成功,近來量子通信成了热点。很多新闻中 把量子通信说成绝对安全,把基于数学原理的现代密码学贬得一文不值。这里对 量子通信的安全性做一个初步分析,澄清一些大众大误解。   一般分析系统安全性,以CIA为维度。CIA并不是美国中央情报局,而是“机 密性”,“完整性”,“可用性”作为评估维度。   1. 加解密与密钥基础   加解密算法粗分2种,对称密钥和非对称密钥。对称密钥是加解密密钥相同, 加解密用一样的密钥。这种密钥一般越随机越好,不需要特定的数学结构。另一 种是非对称密钥系统,加密和解密用不同的密钥。虽然两个密钥都可以藏起来不 公开,但是由于非对称独特的性质,经常用于公开密钥系统。公开其中一个,称 为公钥,藏起一个来只有一个人知道,称为私钥。公私钥成对出现。一般情况下 公钥主要用于加密发给特定的人,谁都可以加密但只有私钥持有人才能解密。私 钥一般用于签名,用来证明自己就是私钥持有人,也就是可以做信息来源认证。   对称密钥也可以做认证,比如sim卡就用对称密钥认证。但是对称密钥认证 只能用于两个通信实体或设定的一组通信实体,非对称密钥可以用于与未知者的 认证。例如pki系统,ibe/ibs系统,php系统等。   由于非对称加解密和签名算法耗费比较大,一般是ms级计算,比如大家常举 例的RSA算法。所以不适合做大量数据的加密,一般用于密钥协商,通过非对称 算法和某些协议生成只有两端才知道的对称密钥供后续数据加解密用。   2. 量子密钥协商   量子通信目前替代了这个密钥协商过程。非对称的密钥协商过程一般是基于 某个数学难题,比如大数分解质因数,比如离散对数之类的难题。这些难题都是 不能证明没有简单解法的。一旦某些人有了简单解法,密钥协商就不安全了。另 外随着计算机能力提升,以前的难题现在或将来都不是难题了。而进入爱国者的 法眼的,是“西方国家可能对密码学难题有后门,RSA和AES对中国是难题,但是 对美国政府可能不是难题”。   量子通信则是基于不确定性和纠缠特性这种基本物理性质(的假设)进行密 钥传播,至少目前还没有观测到这些物理性质可能不符(但同时也不能确定以后 会不会有这些物理特性的破解)。从原理上说,和数学假设相似,但是大家对物 理定律的笃信程度要高于数学难题,所以认为量子通信传输密钥要比基于数学的 非对称协商要安全。   3. 量子通信安全性分析   现在经常有人称量子通信为“量子通信加密”,这是一种错误大说法。量子 通信其实不解决加密问题,他解决的是密钥协商问题。量子通信伴随着的是一种 “一次一密”的算法。“一次一密”是被信息论和数学原理证明“绝对安全”的 加密算法。他要求加密密钥必须随机,密钥长度至少和要加密大数据一样长,而 且用过以后必须彻底销毁。这3个特性注定了一次一密的可实施性很差,因为传 输一定长大数据,必须有等长的密码传送,通信效率降半。而且密码的传送也要 保证安全性。量子密钥分配技术虽然能解决密码传送的安全问题,但量子密钥传 送的效率低到了不可接受的地步。就QKD BB84的实施,即使全部光子都到达对端, 有一半的光子要被丢弃(收发端选择相同调制基的概率是1/2)。同时,还需要 一个公开的信道公开基。可以发现,效率又要降低一半。这些还不算致命,传送 1个比特用4个比特的通信量也不算过分。致命的是量子通信必须基于单光子,而 单光子在信道衰减的情况下的表现就是死亡。知呼上有人提出,在青海湖的百公 里实验中,信道衰减率是70db,意味着统计结果是每发百万个光子才能接收到一 个。也就是说,每传1bit的数据,百公里需要400Mbit的通信。要是传百M的数据, 怎么办?   所以量子通信实际上并没有采用“一次一密”,他还是用了基于现代密码原 理的算法,例如AES,3DES等等。如前文所述,实际上的数据通信,还是有可能 被“美国政府破解”。当然,他的密钥协商过程是不被破解。但是谁有能保证 RSA有后门而AES没有后门呢?没有“一次一密”的量子通信,就失去了他大半的 价值。   而对于密钥协商,他解决了完整性问题而不是机密性问题。比如说,不可能 用量子加密一条明文消息“我银行密码是123456”,或者“各部队同步,总攻明 天早上8点开始”量子通信传这样的消息是不可能的,信息泄露会造成损失。而 密钥则不是,密钥只要保证量子完整性就可以保证机密性,因为发现完整性被破 坏就弃之不用,并不会影响信息泄露。   还需要注意,量子通信传输对称密钥和非对称密钥有不同的要求。前者只要 有量子随机数发生器就好使,而后者要求有一定的数学结构,在某些情况下传对 称密钥可能没问题,传非对称密钥会有问题。比如QKD BB84协议中,A和B其实只 能选择一部分比特作为密码,而且是哪些比特是没法确定的,是随机的。在这种 情况下,非对称密钥就无法传播。例如RSA的密钥中的【n,e】和【n,d】,要 求n必须是两个大质数的乘积,所以必须完整的传送n,如果选定了e,那么e和d 都要准确完整发送。随机选择比特是不行的。至少着BB84的QKD中,公钥系统的 密钥是无法传送的。   量子通信用密钥的物理完整性保护了密钥协商。但是量子通信如果用一次一 密,那么数据的完整性又没有保证。数据在中途遭到篡改,或者伪冒,接收端就 可能解密出错误的信息。量子通信同样未解决通信对端认证的问题(完整性的一 部分),对端认证同样需要其他手段去保证。通信的“访问控制”,“防止抵 赖”,“授权”,隐私等等,还是要借助于现代密码学。而这些环节每个算法都 可能与加密一样有“美国后门”,量子通信仍然无能为力。   对于可用性,量子通信是很脆弱的,敌人窃听几个比特都可能废掉几十k数 据的报废。所以量子通信在真正的应用中是很有限制的。基于数学难题的非对称 密钥协商则不怕中间人窃听。在可用性上,量子通信是一个难以迈过的坎,而且 也看不到有可能被解决。再加上前面讨论的效率问题,量子安全通信的实用化还 在远方。而对于他的政治意义,即“美国留有后门”,量子通信只解决了很小一 部分,在整个通信过程中,有各种算法基于现代密码学。如果美国有后门,他可 以直接攻击这些算法就可以了。机密性必须在保证了完整性以后才有意义。   4. 量子计算机恐慌   还有人提出,RSA等现代密码学基础,受到量子计算的挑战,因此必须引入 量子通信才安全。   这也不是事实。   虽然量子计算机设计出来能力怎么样是一个持续进步的量,但是量子计算机 能力怎么样还是有数学模型的。也就是说,量子计算机的计算能力评估也是有据 可依的。根据数学模型,量子计算机也不是计算能力无限的,而且和当前的计算 机比起来,也只是在某些方面强。在某些方面和现在的计算机相比优势并不大。 这个数学模型并不是说现在萌芽状态的量子计算机的能力怎么样,而是对成熟的 量子计算机的能力进行的评估。   计算机领域一般以多项式和幂次来讨论计算能力或者算法难度。量子计算机 在离散对数和质因数分解方面把幂指数难度变成多项式难度,从而证明了量子计 算机可以对抗当前最常用的非对称算法。多项式难度就是说你增加密码长度一倍, 我破解计算机加几倍就可以破解。而幂指数难度是说密码增加一倍长度,破解计 算机的计算能力或数量要平方或几次方才行。   但是,对于某些数学难题,量子计算机还是幂指数难度的。现在科学都是建 立在精确的严格的理论基础上的,不是随便吹:量子计算机解决一切难题。   对抗量子计算机的数学难题存在是公认的事实,基于这些难题设计的加解密 算法也已经研究得比较成熟了。举个例子,格密码在破解方面量子计算机就没有 优势,认为是对抗量子计算机的方法。量子计算机再发展,也突破不了某些极限。 这些极限之外仍然有巨大的空间。   基于数学难题的现代密码学在量子计算机还在种子阶段就已经做准备了,量 子计算机恐慌完全没有必要。同时还要看到,量子计算机的计算能力,可以提高 “知晓密码的计算机”加解密的速度。这样量子计算机也为加解密提供了新的思 路和方向。 (XYS20160826) ◇◇新语丝(www.xys.org)(xys8.dxiong.com)(xys.ebookdiy.com)(fangzhouzi.me)◇◇