从福尔摩斯到衍射:现代科技拾贝

注:本文遵守首页上的CC版权声明,转载请注明作者与出处,谢谢!

这个文章是我跟pchu说好了一起写的。规则很简单:他跟我分别给出两样东西,分别作为开头和结尾。他给的开头是福尔摩斯,我给的结尾是衍射,这就是这个奇怪题目的由来。当然,在这种限制下想写出很系统化介绍某种东西的文章是很困难的,所以大家可能就只能看到一些东西的片断,所以就将就一下吧。好了,我们开始旅行了,出发!

起点:福尔摩斯的眼睛

福尔摩斯这个英国著名侦探小说家柯南·道尔笔下的人物,想必大家对他都很熟悉。而大家对他最为称道的恐怕就是他那双锐利的眼睛了。他能通过裤脚上的泥点推断出一个人在来之前到过伦敦什么地方,也能通过一个人的外貌判断出这个人的身份和职业,甚至还有曾经到过的地方。福尔摩斯的断案能力恐怕是跟他敏锐的观察力息息相关的,但是在观察力的背后还有一个重要的因素就是他丰富的刑侦知识。

当然,福尔摩斯只是一个小说人物,但是他的这种超乎寻常的观察力和推理已经成为了大家对于一个优秀侦探的基本印象,以至于现在“现代福尔摩斯”已经成为了人们对那些优秀侦探的尊称。当然,由于科技的发展,现代的侦探的工具比福尔摩斯用的尺子和烟斗要优秀得多。这些现代工具让侦探们拥有了比福尔摩斯更敏锐的观察能力。可以说,这些工具让侦探们具有了“福尔摩斯的眼睛”。下面我们就来简单看一些例子。

关于刑侦技术,大家可以第一个想到的就是美剧CSI中描述的各种先进的技术。但是事实上现实生活中没有多少案件是可以用到这样高级的技术的。刑侦中用得最多的技术,恐怕就是最基础的血液分析。由于重大案件通常会伴随着流血或者凶杀事件,所以对于血液的研究对于侦查是十分有用的。

对于血液的分析,第一步就是对血液痕迹的确定。在电视剧里边大家可能会看到侦探们用一种喷雾喷洒地面,然后再用紫外线灯照射,有过血迹的地方就会呈现蓝白色的荧光。其实这种喷雾就是一种特殊的化学物质和过氧化氢的混合物,这种化学物质名为鲁米诺试剂(luminol),也叫发光氨。这种试剂检验血液痕迹的原理很简单。血液中含有血红蛋白,其中含有铁离子,是过氧化氢分解的一种催化剂。过氧化氢分解时会释放出具有强氧化性的单个氧原子,然后氧原子就会与鲁米诺试剂发生氧化还原反应,使鲁米诺试剂发出蓝白色的荧光。知道原理之后,我们可以想到既然是氧化还原反应使鲁米诺试剂发出荧光的话,岂不是很多化学药品都可以做到这一点?事实上,这种血液的检测方法的缺点也就在于这里。如果罪犯事先用家庭常用的漂白粉清洗过现场的话,现场也会残留具有氧化性的氯化合物,会对荧光的判断造成干扰。不过,有经验的侦探通常都可以分清两者的区别,另外一种规避的办法就是先让犯罪现场干燥几天再进行血迹检测,这时候不稳定的氯化合物会分解殆尽,干扰也就会降低。当然,这种方法由于准确度有限,所以通常鉴定出血迹之后侦探们还会用别的方法来进行对比鉴定。尽管有这些缺点,这种血迹鉴定的方法还是被广泛采用,因为它也有几个很明显的优点。首先,它不会对血迹的化学成分造成干扰,因为血迹在这里是作为催化剂出现的,这样就给后期的证据提取提供了方便。其次,这种方法可以检测出浓度为百万分之一的血液痕迹,普通的清洗方法对它的干扰不大,而且根据荧光的强度等等信息可以推断出血迹出现的大概时间。最后,这种方法简单易行,而且成本不高,便于广泛铺开使用。所以这种检验方法实在是很流行。

血迹提取出来了,接下来的工作有两个方向,一个是轨迹分析,另一个是成分分析。轨迹分析说白了就是根据血迹的形状推断凶手作案的工具和方式,比如说在凶手挥动凶器的时候,可能会有微量的死者血液随着凶器的挥动溅到墙壁和天花板上,通过对这些血液痕迹形状的分析我们可以知道凶手使用的凶器的大致大小、形状和类型,甚至还可以知道凶手当时挥动凶器的力度和轨迹。成分分析就更为复杂。一般来说,现在的技术已经可以分清血迹是人血还是动物血,可以辨别血型,最后最强大的一招就是提取DNA样本,然后用PCR等方法倍增后与犯罪嫌疑人的DNA进行比对。由于DNA相当于一个人独一无二的标记,所以这种方法的准确率极高。不过由于成本实在很高,所以也不经常采用。

除了血液的处理之外,还有一样很基础的刑侦技术就是指纹提取。人们很早就观察到,每个人的指纹都有独特之处,两个人的指纹相同是几乎没有可能的。人的皮肤又会不停分泌油脂和汗液,这些物质在手指接触其它物体的时候会在物体上面留下痕迹,这就是指纹。正是因为这样,指纹的提取才成为了刑侦中的一个重要元素,因为这种方法成本较低,方便快捷,而且准确率也颇高。

通常被提取的指纹都是位于凶器表面或者是墙壁桌子镜子等光滑表面上的,因为这些表面上的指纹比较容易提取。提取的方法也很多,大多数都是先使指纹显形,然后再照相记录。提取的方法有很多,最简单的就是用光照的办法,因为油脂等等物质虽说透明,但毕竟是杂质,会对表面的光学特性有影响。所以通过光学的方法可以辨析出一部分指纹。常用的方法有很多,有时候就算用普通的光源都能发现指纹,有时候就需要一些特殊的光源比如说紫外线灯。另一种常用的方法就是利用油脂容易粘住小东西的特性,用粉末来进行提取。这种方法也是很方便的,大家在家里就可以用奶粉试试,也可以使用碘的蒸汽。不过这两个方法在指纹很“老”的时候就会失去效用,那时候就要用更高级的物理和化学方法来处理指纹了,其中最简单的就是硝酸银法。因为汗液中含有氯化钠,而银离子对氯离子是很敏感的,于是我们就可以利用这个反应使指纹显形。当然,这些提取指纹的方法,犯罪分子用一个手套就可以使它完全失效。不过也有通过犯罪分子丢弃的手套来提取指纹的案例,这就只能怪贼太笨了。

在信息化的今天,侦探们除了面对暴力犯罪以外,还要对付高科技犯罪。这些犯罪也迫使侦探们发展出针对这些信息技术的侦查技巧和工具,其中除了大家熟知的网络入侵痕迹检查和数据复原技术等等之外,还有一些很偏门的东西,比如说利用操作系统本身的一些不算是漏洞的缺点,还有就是直接利用无线电方法。

大家知道,我们的电脑在删除文件的时候,大半是只会将文件的索引删除,文件的真实内容仍然好好躺在硬盘里边。这就是一些入门级的数据恢复软件可以处理的范围。现在市面上也有所谓的“文件粉碎机”之类的软件出售,这些软件大多是通过覆盖文件所在扇区的内容来彻底消灭痕迹的。而美国军方销毁文件的标准做法是对文件所在扇区用全0和全1间隔覆盖8次,力图消去可能的剩磁。但是有时候其它文件也会透露出一些重要信息。磁盘系统的写入单位是簇,一簇的大小大概是几KB。但是一个文件不一定能够完全占据整数个簇,这是操作系统就会用内存的数据去继续填充。这样的话通过分析这些内存数据,侦探们有时候也能发现一些线索。

无线电监听就更直接了。早在20世纪中期,贝尔实验室的研究人员就已经发现电子仪器的操作会发射一些电磁波,通过检测这些电磁波可以大概知道电子仪器进行了什么操作。于是乎,美国警方就又发明了一种新的侦查方法。他们可以直接把车停在犯罪嫌疑人的屋外,利用无线电来监听屋内键盘的操作,这样的话无论是多高深的技术都如玻璃一样透明了。

虽然侦探们拥有了这么多的对付高科技犯罪的方法,有一样东西还是他们无能为力的。这不是因为科技发展还不够的问题,而是科技已经发展到可以证明侦探们对这样东西是无能为力的了。那就是密码。

第二站:密码,人类智慧的较量

密码术由来已久。最早的密码恐怕要追溯到埃及金字塔上的象形文字。在一些金字塔上就有用形态相似读音不同的象形文字互相代替的现象,不过这看起来更加像某种吸引游人停留的手段。密码术的最早有实际意义的应用恐怕还是在我们中国。比如说古代的用兵凭证“虎符”本身就有密码的功能,既能代表一些简单的信息,也能证明来人的身分,因为虎符本来是一体的,剖开后就可以依据花纹是否相合判断是否原件。还有竹简书写术和密码诗等等就不细说了。西方的密码应用也很早,最有名的就是圆筒书写法。首先寄件人将布条缠在某一直径的圆筒上,然后再在布条上写字。解开后布条上就有一列被打乱了的字迹了。收件人收到布条以后,只需要将布条往相同直径的圆筒上一缠,马上就能读出寄件人写的内容。而在这个过程中,传信的邮差由于不知道圆筒的直径,所以根本不能了解布条上写的内容。如果说金字塔上的密题是字母替换密码的先声的话,这种圆筒书写法恐怕就是移位加密法的前身了。

在密码学研究当中,我们通常有如下的术语。要传递的信息叫做明文,就像寄件人写的内容。在传递中别人无法阅读的信息叫密文,就像邮差手上的布条。将明文转化为密文的过程叫加密,将密文转化为明文的过程叫解密。在加密过程中用的决定加密结果的信息叫加密密钥,在解密过程中的就叫解密密钥。在很多时候加密密钥和解密密钥是一样的,在圆筒加密法中的对应物就是圆筒的直径。通常在一个例子里边,我们将发信人称为爱丽丝(Alice),收信人称为鲍勃(Bob),而尝试监听这两者通讯的人叫做伊芙(Eve)。

由于单纯的移位加密容易通过分析语言和词语结构破译(当然也有例外,比如说旋转天窗法),所以人们对于替换加密法的研究比较多也比较丰富。

最早的替换加密法叫单字母替换密码。顾名思义,这种加密方法就是根据一个替换表将所有字母替换成别的字母,从而就使不知道这个替换表的人无法阅读。在这里,加密密钥和解密密钥都是这个替换表。可惜的是,这种加密方法很快就被破解了,因为每种语言都有它固有的结构,最常见的就是字母出现的频率。在爱丽丝和鲍勃的通讯中,伊芙只要截取到密文,就可以通过字母频率再加上语言上的知识将替换表反推出来。如果只用语言知识的话有时候也可以解决,不过难度可能有点大。我手头上就有这么一份密文,当时可费了我不少的工夫,当然我只是分析语言结构而已。

单字母替换密码被破解后,它的各种变种层出不穷。有的利用多个代号代替一个字母,希望用这样的办法将字母频率方面的信息抹平。最极端的例子可能是所谓的“比尔密码”,用一篇文章的单词作为载体,每个代号n表示的就是这篇文章的第n个单词的首字母。这样的话很容易想到如果这篇文章遗失的话,密码就有可能永远无法破译,所以这并不算是一种很安全的加密方法。

另外一种比较流行的变种就是使用多个替换表,最终就发展出了维热纳尔密码。维热纳尔密码是法国外交家Blaise de Vigenere在16世纪后期提出的,旨在用多个替换密码表来克服字母频率的问题。具体的加密方法很简单。首先爱丽丝和鲍勃先选定一个单词作为共同的密钥,然后爱丽丝将这个单词每个字母代表的替换表从维热纳尔方阵之中抽取出来,将明文每个字母轮流循环用这些替换表加密。解密的时候鲍勃也如法炮制。这样就顺利抹平了字母出现的频率了。

这样优良的密码学特性使维热纳尔密码坚持了不短的时间,直到大约两个世纪后才被当时普鲁士少校卡西斯基(Kasiski)和英国科学家、计算机创造者之一查尔斯·巴比奇(Charles Babbage)分别独立破译。他们用的方法殊途同归,后来被称为卡西斯基方法。这个破译法的关键就在于语言结构。在很多语言中,有一些单词出现的频率特别高,比如说英语中的the。这样的话,很有可能有两个单词the的加密方式完全一样,这样的话两个the生成的密文也就会相同,而且之间的间隔是密钥长度的倍数。只要收集到足够的这样完全相同的密文片断,伊芙就可以推断出密钥的长度,从而就可以将不同替换表加密的密文分离出来。现在问题就变成了多个单字母替换密码的破解了,而这个我们很清楚是可以攻破的。于是这样,沿用了两个世纪的维热纳尔密码就这样被破解了。

当然,这个加密方法并不是完全没有弱点的。它的一个重要假设就是密钥长度远小于明文长度,只有这样才能造成重复,才能进行下一步的破解。如果密钥长度就等于明文长度的话,卡西斯基方法就毫无用武之地了。这种加密的方法被称为“一次性便笺”,因为每次使用的时候密钥都要重新随机生成。这种加密方法显然是不能被破解的,因为本来密钥就是完全随机的,所以不同的明文完全有可能生成相同的密文。这种一次性便笺密码似乎就是所有密码编制者的梦想:一个不能被破解的密码。

但是不要高兴得太早。虽然在理论上这个加密方法是不能被破解的,但是在实际应用上它会遇到一个不可避免的问题:密钥分发。要爱丽丝和鲍勃都能顺利进行加解密,他们两个就要首先达成密钥的一致。这样的话,为了不泄漏密钥,他们可能要亲自见一次面,交换一大堆密钥,而这在实际应用中是很难做到的,因为分发这样的完全随机的密钥记录本而又要求保密的话费用会很高。所以,这种最安全的密码现在应用范围很窄,只适用于那些不计成本要求安全的地方,例如国家元首之间的热线。

经过卡西斯基方法之后,数学分析法在密码学中就开始了它的长盛不衰的统治。不仅是破译密码,连构造密码都用到了数学。随着机器的自动化,自动加密机器也出现了。最有名的自动加密机器应该就是在二战中德军使用的“恩格玛”(Enigma)了。这种加密机器由插线板、转盘和反射器构成。插线板将输入输出转盘的字母交换,转盘本身就是一个替换表,一共有三个转盘,每加密一个字母转盘都会转动发生变化,相当于使用了不同的替换表,而反射器则是将转盘的字母信号反射到另一个字母对应的路径上。这样的设计既方便使用,又有很大的加密强度。密钥就是使用的转盘编号、对应转盘位置的三个字母和几对插线板的交换字母对,实际上有一亿亿种不同的可能性,加密强度很大,也很便于分发。所以恩格玛在德军战场上使用了相当长的一段时间。

在初期,恩格玛的确给德军带来了不少的便利。原本对德国密码攻无不克的盟军突然发现他们遇到了一个难懂的谜语。但是这种机器提供的安全性也麻痹了德军的安全思想,最终导致了一系列的破译进展。首先是法国人通过间谍行动在德国人手中得到了恩格玛机的电子线路,然后是波兰数学家雷杰夫斯基(Rejewski)通过开头重复密钥的漏洞,利用置换群的特性攻破了比较容易入手的一些恩格玛系统。在德国人弥补上这个漏洞之后,又有英国人利用战场上士兵没有时间生成随机密钥的弱点,成功识别出了一些有规律的密钥“色利斯”(Cillies)。最后,英国数学家、计算机创始人之一阿兰·图灵(Alan Turing)通过猜测明文的攻击,用类似雷杰夫斯基的方法给了恩格玛致命一击。由于这种攻击方法需要很多枯燥的计算,图灵甚至设计了名为“炸弹”的机器(跟雷杰夫斯基的机器同名但是原理不同)来专门做这项工作。恩格玛的破译再加上盟军的间谍行动最终使盟军能够洞识大部分德军的行动,为二战的胜利做出了不少的贡献。

从上面恩格玛被破译的过程,我们可以知道有时候密码被破译未必是因为密码系统安全性不够,而有可能是因为使用者不够小心,泄漏出了密码的规律。比如说雷杰夫斯基的破解方法基于德国人的重复输入密钥,色利斯就是利用德军有时候没时间或者懒得想随机密钥的弱点对恩格玛进行破解的,最后图灵的方法也是利用德军的规范化的电文来进行已知明文攻击的。与此情况相反的是,德军海军的恩格玛系统就没有被盟军用纯粹的密码学方法破译过,这是由于这个系统的机器拥有更多的转盘,密文开头没有重复的密钥,而且明文格式不规范,这样就避开了所有的攻击。所以说,有时候一个密码系统的安全性不仅取决于这个系统的算法安全性,而且还取决于使用它的人。如果使用者不注意密码安全的话,再强大的密码也会有被攻破的可能。

在计算机出现以后,密码系统的发展达到了极致,而密码分析的工具也同样大大得到了扩展。传统密码方面出现了DES和它的后代AES,它们是美国加密的国家标准,还有别的算法比如说Blowfish, RC5等等。尽管密码分析家绞尽脑汁也不能破解这些密码。但是这些算法都有一个问题,与一次性便笺一样的问题:密钥分发。可以说,整个系统的最大风险就在这个地方。那么,到底有没有办法避免这个问题呢?

二十世纪七十年代,分别有两个小组(Ellis, Cocks, Williamson; Diffie, Hellman)给出了答案:有。

它们的系统都是基于同一个原理:存在这样的数学问题,解决它很容易,但是解决它的反问题就极其困难。举个例子:将两个大质数乘起来,很容易;但是将一个大合数分解为两个质数的话就不容易了。这样的数学问题在密码学上有一个特别的称呼:单项陷门函数。根据这个原理,我们就可以设计出这样的密码系统,在这个系统中,加密密钥和解密密钥是分开的。加密密钥可以公开,让所有人都可以给你发送加密信息,但是解密密钥只是在你手中,只有你能对这些发送给你的密文解密。从解密密钥推出加密密钥的过程相当于计算一个单向陷门函数,这是轻而易举的;但是反过来就不一样了。所以,在这种系统里边,只要密钥的复杂度足够高,我们就不需要担心密钥的分发问题了。这种密码系统被称为公钥密码系统。这种系统的另外一个优点就是,如果将加密密钥和解密密钥的作用反过来的话,它就会变成一个身份认证系统,这在很多场合都是很有用的。

在各种各样的公钥密码系统当中,最为人熟知的就是RSA。RSA所用的单项陷门函数就是刚才在上面提到的大质数乘法。质数越大,密码就越难破解。现在最大的被公开破解的RSA密钥就是RSA实验室提出的RSA挑战之一RSA-640。这个密钥长度为640个二进制位,破解人投入了相当于一台Opteron 2.2GHz的电脑连续运算30年的运算力才最终破解了这个密钥,而普通用户使用的密钥长度通常为1024个二进制位。这样的话我们可以相信这个密码体系对于现在来说是足够安全了。

密码学家甚至还想到了直接依靠作为宇宙运行规则的物理原理作为加密系统的基石。量子密码就是一个很好的例子。在这里由于篇幅关系就不仔细介绍了,大家可以自己查阅相关的资料。利用量子密码系统,人们可以方便而又保密地分发密钥,从而给一次性便笺密码带来了新的机会。现在量子密码的研究已经有了很大的发展,已经有公司提供商用的量子密码,比如说美国的MagiQ公司,而且他们的量子密码可以在光纤中传播几十公里仍能正常读取。不过由于密钥生成的速度实在太慢,量子密码通常只是被应用作保密分发传统密码密钥的一种方式。

当然,密码破译者也不会闲着。我们从上面的故事看到,计算机的发明者通常都是密码的克星。那么,新时代的计算机发明者又会给我们带来什么呢?

第三站:下一代实用计算机

我们现在的生活真是须臾离不开计算机。工作娱乐用个人电脑,出去买东西的话刷卡机连着银行的计算机网络,就连去饭堂吃个饭也要打卡。而且现在的电脑也越来越快了。

但是,这种繁荣背后也隐藏着令人担忧的事实。随着人类科技不断发展,人们要求的计算能力也越来越多。以往人们是依靠增加CPU晶体管数目来增加计算能力的。但是,随着晶体管数目的增加,同一块硅片上刻制的晶体管必然会越来越小,而这个小的程度是有限制的,如果从物理学来讲的话就是原子的尺度,如果从现在的工艺来说就是刻制光的波长。总之,一直按照这条路发展下去的话计算机工业必定会走进死胡同。除此之外,计算机还有种种不大令人满意的问题,比如说计算能力等等。这样的话,研究下一代的计算机的各种可能模型就显得十分重要了。

量子密码提醒我们,这是世界除了我们熟知的牛顿式的确定性以外,还存在着量子领域的不确定性,而这种不确定性有时能够带给我们意想不到的惊喜。同样根据量子原理构想出来的量子计算机正是这样的奇迹之一。

我们现在用的计算机有一个很大的特点,就是确定性。我们给什么数据和程序,它就只会按照程序傻乎乎地一步一步来,没有远见。在计算科学的范畴里边,现在的计算机被称为“确定性图灵机”。这个图灵机就是由那位破译恩格玛的图灵提出的一个计算机的数学模型,直到现在还广泛应用于计算理论的各种定理中。然而,确定性图灵机并不是最强大的计算机器模型。如果我们设想有一台拥有超能力的机器,如果我们问它一个不超出它“感应”的范围的问题,它能够立刻“猜”出答案,这样的机器从直觉上来说也会比我们现在拥有的确定性图灵机要强大得多。事实上,这种机器在计算科学中被称为“非确定性图灵机”,而且已经被证明是比图灵机更高效的计算机器。

那么,我们如何去造出这样的一台机器出来呢?粗看起来这似乎十分玄乎,怎么会有机器可以“猜”答案呢?然而世事无绝对,量子力学就给我们提供了这么个工具。举个例子,电子可以有两个方向相反的自旋。如果在经典世界的眼光中,一个电子的自旋非此则彼,没有中间路线可走,但在量子世界中,事实上电子可以处在“既此又彼”的状态中,这就是量子态的叠加。如果我们把电子逆时针自旋的量子态记为|0>,顺时针的量子态记为|1>的话,在经典世界中电子的状态不是在|0>就是|1>,但是在量子世界中电子的状态可以是a|0>+b|1>,a,b分别是电子处在这两个状态的几率的平方根。这种特殊的叠加态就是量子计算机的基石,qubit(也叫量子比特)。

那么,量子计算机是如何处理这种qubit呢?很简单,如果机器能处理5个qubit的话,先将5个qubit赋值(|0>+|1>)/sqrt(2),然后对它们进行一种叫幺正变换的运算,最后测量着几个qubit的状态就可以知道结果了。因为每个qubit的初始状态都处于等可能的状态,对这5个qubit进行一次运算就相当于同时进行了2^5种可能的经典状态的运算。这就是量子计算机“猜”的能力的由来。

在解决实际问题上,量子计算机能够在很短的时间内解决普通计算机需要几十年甚至上亿年才能解决的问题,比如说上文提到的RSA密码系统的基础:大数分解。现在最好的大数分解的经典算法分解一个数所需要的时间是跟这个数的长度成指数关系的,这就意味着算法所需的时间会随着待分解数的增长而迅速变大。但是量子计算机可以在很短的时间内完成这个问题。如果一个数长度为n的话,它分解这个数所需要的时间与(n^2)*(lgn)*(lglgn)成正比,而这个函数增长的速度远远小于指数函数。这个算法就是1995年贝尔实验室的Shor提出的Shor算法。这个算法带来的影响就是,实用的量子计算机一旦出现,世界上现有的最安全的密码系统RSA就会在顷刻间土崩瓦解。另外一个让密码学家心寒的量子算法就是Grover算法。这个算法可以在O(sqrt(n))的时间内完成对规模为n的任意数据库的搜索。密码分析家应用这个量子算法可以设计出在短时间内破解一系列的广泛应用功的经典密码的算法,其中包括DES。所以一旦实用的量子计算机出现之后,人们想要保护自己的隐私就必须依靠量子密码和一次性便笺这些工具了。

不过也不用担心,实用的量子计算机实际上是很难建造的,这里边有技术上的因素。在量子计算机的运算过程中,qubit是同时处于|0>和|1>的叠加态中的。但是这种叠加态在现实中很不稳定,一点小小的热涨落就会使这些叠加态退相干变回经典的非|0>即|1>的状态,这样的话如果在运算过程中qubit退相干的话,整个计算就会失败,给出一些错误的结果。就是由于量子叠加态的不稳定性,尽管量子计算机的理论基础已经比较成熟,真正实用意义上的量子计算机还没有建造出来。

当然,研究人员现在正在不停地探索建造量子计算机的技术。技术的关键就在于长期保持量子的叠加态还有操控这些叠加态。现在在发展的技术包括量子点、超导量子、量子拓扑、绝热量子计算等等。而现在经过不断的研究,全世界第一台商用量子计算机已经闪亮登场。它就是美国D-Wave公司的Orion。它拥有16个qubit,运行在由超导材料铌制成的芯片上。这台计算机可以进行大数分解,也可以解数独,因为像数独这样的组合优化问题正是量子计算机的强项。

当然啦,量子计算机由于技术上的限制,在一段时间内恐怕没有办法“飞入寻常百姓家”。但是它的兄弟光子计算机就没那么遥远了。

光子计算机,顾名思义就是利用光子来进行计算的计算机。传统的计算机是通过电子的流动来进行计算的,这样有几个不好的地方。第一是发热,现在已经有人实验用CPU煮面了;第二是由于工艺的限制,电路只能是二维的,复杂度上不去;第三是电磁的各种干扰的问题。光子计算机就能解决这些问题。光子计算机由于利用光子进行计算,发热量和能量消耗都很少;而由于光子传播是互相独立互不影响的,光路可以是三维的,这样的话就可以大大提高空间利用率和线路复杂度,为更复杂更强大的计算机铺平了道路。

光子计算机也有不同的种类。有直接处理光学图像的模拟式光子计算机,现在已经被用于卫星图片处理还有模式识别等方面;也有根据现代计算机基本结构设计的光子计算机,贝尔实验室就设计制造过世界上第一台光子计算机,运算速度达到每秒十亿次;还有光学神经网络,为模拟人脑提供了一条新的道路;最后还有将量子因素引入光子计算机,实现强大的量子计算。

但是光子计算机也有一些技术上的问题。首先就是光子计算机的其中一个优点其实也是缺点。光子在传播当中互不干扰,但是如果要用光子进行计算的话就需要光子和光子之间发生相互作用,这就需要特殊的光学元件。但是这样的光学元件构造并不简单,很不利于小型化。现在研究人员主要工作的重点就在于光学元件的微型化。贝尔实验室的光子计算机就是用砷化镓光学开关制成的。不过随着研究人员不断开发出各种各样的微型光学元件,这些技术问题正在不断被克服。

光子计算机之所以有这么强的计算能力,都归功于光的神奇特性。光既是粒子,又是波,能像粒子一样传播,又像波一样互不干扰。对我们来说,光的波动性更加神秘。下面我们就来看一看光的波动性导致的光的一个奇特现象:衍射。

终点:波的分身术

光的衍射是由17世纪的物理学家格里马蒂(Grimaldi)发现的。他在做实验的时候发现当光通过小圆孔之后在墙上投影的光斑并没有明确的边沿,这与当时盛行的光的微粒说相矛盾。后来这个现象被惠更斯用光的波动说推导出来的惠更斯原理顺利解释。后人又发展了衍射的完整理论。其实衍射这种光学现象在日常生活中并不少见。日华月华还有峨嵋佛光都是衍射造成的。

衍射的实质就是光由于它的波动性,可以绕过一些小障碍物继续传播,遇上小缝隙的时候也可以透过小缝隙继续传播。这里的“小”的定义是与光的波长至少处于同一个数量级。我们在平时很少看到光的衍射现象是因为光的波长很小,大约在几百纳米左右,而我们日常生活中接触的东西很少有这么小的。头发丝和面纱可能勉强可以做到这一点。

事实上,我们观察到的衍射现象大多是光经过衍射之后重新汇集起来所出现的干涉图案,比如说著名的双缝干涉实际上就是光衍射通过两个小缝之后重新汇聚起来得到的干涉图案。衍射和干涉这两者结合起来可以带给我们一些意想不到的惊喜。

大家应该都听说本生和基尔霍夫发明的本生灯和分光镜这两件给化学分析立下汗马功劳的仪器的故事吧。分光镜中的核心元件是一个棱镜,正是这个棱镜将入射光分成一整个光谱的。但是,由于棱镜的制作工艺限制,它的精确度很难提高。这时候,颜色光栅就派上了用场。衍射光栅是一种由密集的等间距的平行刻线构成的光学元件,这就相当于很多个小缝。通过衍射和干涉的效应,它可以将某种特定波长的光的大部分按照同一角度反射,精确度很高,所以尽管它的制作工艺很复杂,衍射光栅仍然被广泛应用在各种光谱仪器当中。

由于光在传播中遇到障碍物和遇到小缝的衍射行为是不一样的,所以光在通过某个光栅之后形成的干涉图样其实携带了这个光栅的所有信息。这个原理有两个方面的应用。第一个是制造特定的干涉图样。通过傅立叶分析,我们可以从干涉图样反推出衍射光栅的具体构型。这项技术已经被广泛应用于激光防伪技术之中。大家上街去买张CD的话,通常盒子上都会有一个小小的激光防伪标签,其实这些标签上有很多微小的衍射结构,正是这些衍射结构把反射光变成精巧的防伪图案的。

另一个方面的应用就是通过干涉图样推测衍射光栅的结构,这也就是X射线衍射分析的原理。在1912年,德国的物理学家劳厄(Laue)就已经预见到了这种分析技术。X射线是一种波长很短的电磁波,它的波长跟原子的尺度在数量级上差不多。这样的话,由于晶体表面原子和分子排布十分整齐,对于X射线来说正好是一个非常合适的光栅。这样的话,通过分析特定波长的X射线在晶体表面衍射之后得到的干涉图象,我们就能推测出晶体表面原子和分子的排布,从而得知晶体的结构。这就使X射线衍射分析。

首先探索这项技术的是英国物理学家布拉格父子(Bragg)。他们在劳厄提出这个想法的第二年就利用了这个方法测定了氯化钠等晶体的结构,而且还得出了在X射线衍射分析中十分有用的布拉格公式。这项成果使他们登上了1915年诺贝尔奖的领奖台。后来这项技术就被广泛应用在晶体结构的测定上,比如说各种蛋白质的结构测定。值得一提的是,也正是X射线衍射最终证实了克拉克(Crick)和沃森(Watson)的DNA双螺旋结构模型,推动了各种对DNA的应用,比如说生物学家和侦探使用的DNA比对技术。而他们也因为这个发现获得了1962年的诺贝尔生理学和医学奖。

科技的发展是永无止境的,各种不同的方法可能在各种不同的领域中有出乎意料的作用。比如说光的衍射在光子计算机和DNA的结构测定中都有用,而引入量子计算的光子计算机还有DNA比对又在侦探这个属于福尔摩斯的行当中大有用武之地,量子计算可以破解罪犯的加密文件,而DNA比对又可以成为指证罪犯的强而有力的证据。现代可以正在不断飞速向前发展,它必将给我们带来更多的方便和安全。

后记:写了两天,终于写完了,一共23KB左右。途中还被fold.it这个有趣的游戏耗了不少时间。其实我还是不大满意,感觉这篇文章知识性还是不太强,很多东西都是大家耳熟能详的东西。不过这次是命题作文,所以也没啥办法。希望下一次能够好些~~~

附pchu同一题目文章:从福尔摩斯到衍射现象

Advertisements

2 thoughts on “从福尔摩斯到衍射:现代科技拾贝

  1. 谢谢~~~其实本来写的时候是查了DNA计算机的资料的了,但是最后由于衔接还有字数的关系最后还是没有加上去~~~况且现在DNA计算机的前景似乎还不怎么样~~~起码我看到过的要么就是只能实现某种特定的功能,算不上通用计算机,要么就慢得出奇没啥价值~~~

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s