1、量子计算机
在现在的计算机中,数据都是以二进制方式存储的。如果这个存储单元可以存放N位数据,而每位数据只能是0和1,所以一共有 2 N 2^N 2N种可能。
在传统计算机中,任何一个时刻只能对这么多种可能性中的一个进行操作,当N比较小时,工作量还可以应付。当N时几千的时候,完整这个工作量需要的时间就比较长了。
在量子计算机中,存储的数据总是处于0和1的叠加态,你可以理解为所有出现0和1的可能性融汇在一起,所以一个量子存储单位在某一时刻,是可以同时存储 2 N 2^N 2N个数据的。
比如说:有一个存储单元300位,那么存储的数据就是 2 300 2^{300} 2300比特,这个数字就比全宇宙的原子数还多了。传统计算机要对这么多可能性一个一个操作,而量子计算机运算一次,就是同时对 2 300 2^{300} 2300个状态进行操作。所以它的一次运算效果相当于 2 300 2^{300} 2300台传统计算机,算力大大增加。
而RSA加密法,它之所以坚固就是因为要分解一个大数N的因子,这个问题的计算量随N的增加以指数形式增加。但量子计算机一次操作就相当于传统计算机很多次操作,所以如果能设计出一些连续的操作来分解质数的话,即使N是一个超大数,用量子计算机也能很快的找出他的因数。这样RSA加密法就能破解了。
听起来量子计算机好像很强大,新闻了也会把它夸张到无以复加。但这种观点是不对的。
量子计算机做到的只是大幅消减计算量,其实它还要花时间计算的,量子计算机很强大,但并不是任意一种秘密遇到它都秒破。在传统计算机中,N稍稍增大,计算量的增加是指数型的,而在量子计算机中,计算总量增加的趋势虽然平缓很多,但还是一个陡峭的斜坡。所以只要我们把N的长度在增加很多,保密强度还是足够应付初期量子计算机。
2、量子计算机现状
量子计算机理论上虽然很强大,但一个可靠的专用量子计算机目前还没有生产出来。虽然媒体曝光过几个机器,但都是实验机,只能进行特定的量子计算,其他计算还不如传统计算机。
量子计算机的难以生产,主要原因在于,量子不容易控制。我们目前还没有特别好的手段,能控制量子按照算法的步骤运转。
最经典的例子,就是 “光的双缝干涉实验” 。这个实验是这样的:
一个光源射向一睹障碍物,障碍物上有两道缝可以透光。当尺寸合适的时候,你会发现在两道缝后面的幕布上看到一道明一道暗、一道明一道暗的条纹。
当人们想弄清从光源发出来的光的每一个光子,到底通过了哪一个缝隙才射到了幕布。人们在缝前安放了一个侦测光子的设备,然后发现,双缝后面幕布上的明暗条纹就消失了,取而代之的是两道集中的光斑。如下图所示:
因为人们的测量行为,会影响到量子的状态。
如果那些明暗条纹代表着量子计算机运算到某一时刻的量子位的正确状态的话,那设计者要尽可能维持住这种状态。但实际上,这种状态会被很多因素干扰。
在宏观世界里,任何一种物质都有可能和量子发生互动改变他们的状态,比如说温度。所以那些量子就算机,都需要在零下200多摄氏度的极低温才能正常工作。
3、量子加密
和其它加密法最大的不同是,其它加密法的原理只使用了数学,而它不但使用了数学,还是用了物理中的量子理论。也许是因为背后的这两座靠山,所以它是目前为止最强的加密法,就算是量子计算机也很有可能无法破解。
首先来看一下量子加密的过程:
第一步:爱丽丝给鲍勃传送一串光子,其中每一个光信息都用0和1来标注。具体什么算0,什么算1,是有两套测量方法----甲套和乙套。这两种不同的测量方法,对同一个信号的测量结果是不同的。
第二步:鲍勃收到光信息后开始测量,就测量每个光信息位到底是0还是1。不过鲍勃并不知道爱丽丝那边说的是0或者1,到底是按甲方法测的还是乙方法测?没有关系,鲍勃对每个光信号都随意选用一套方法来测,测出的每个光信号到底是0还是1。鲍勃测出的结果,肯定有一部分是跟爱丽丝发出来的约定是相符的,可有一部分是不符的。没关系测完再说。
第三步:毕竟鲍勃有一部分是错的,所以这时候需要再通信一次,通信过程被窃听也没有关系。通信的内容就是针对每个信号,到底使用了哪套测量方法。按照顺位,依次说出测量的方法。第1个信号是用甲方法测的还是乙方法测得,第2个信号是用甲方法测的还是乙方法测得…所有这些测量方法,由爱丽丝告诉鲍勃。
第四步:鲍勃听完爱丽丝的这通电话之后,就对照刚刚自己瞎蒙着测的结果,也要回复爱丽丝。回复的具体内容就是,自己哪几位的测量方法蒙对了。对鲍勃来说,自己之前测错的那些不管,把测对的那几位挑出来,这串数字就可以作为他的要是。对于爱丽丝来说,因为鲍勃告诉了她哪几位他选对了测量方法,所以爱丽丝也可以把鲍勃选对的那串数字也挑出来。
这时候两人挑出来的那串数字是完全相等的,就可以作为两人的钥匙。
钥匙既不用额外的传输,而且本身又是完全随机的,这下就满足了单次钥匙薄加密法,并且改进了传送钥匙的薄弱环节。所以,安全性高了很多。
而且因为量子的物理特性,如果有人进行窃听,最后的结果就会被改变。就相当于我们前面介绍的双缝干涉实验。如果爱丽丝和鲍勃发现两边的信息变了,就知道有人在窃听了,然后可以切换到其它线路上。
那两边怎样确定信息变了呢?只需要随机从鲍勃收到的信息中,挑选出几个字母核对一下是否一致就可以了。只要有一个不对,就说明有人在窃听。
量子加密系统,是1988年在IBM的实验室做出来的。它的甲套测量方法,是使用光的偏振方向来呈现量子态。乙套测量方法,是使用光的左右偏振来呈现量子态。
刚实现时,两台计算机只能相隔30cm。1995年,日内瓦大学可以做到23公里完成通信。2012年,中国潘建伟团队实现了100公里级别。
只不过实验中符合条件的光量子态数量实在太少,只有几个到十几个数位,远远不能承载信息的正文,所以到目前为止,量子加密只适合给钥匙加密。
4、总结
因为密码学这个学科天生和其它学科不同。我们能从公开渠道获取的信息,一定是这个行业最顶尖的人允许我们看到的。很多技术细节,很多故事今天都还在保密机构中锁着,需要等上很多年之后才能公布于众。
所以,就在我们谈论量子加密和量子计算机时,说不定已经有很多新进展,有很多坚固的密码已经被破解,很多国家的情报机构正在偷着乐,也有很多做出突出贡献的人却注定要被淹没。
感谢大家,我是假装很努力的YoungYangD(小羊)。
参考资料:
《卓克的密码学课》