ABC之后,歷史仍未安排ENIAC出場芯侥。1943年,電子時期的第2個重要角色誕生在圖靈所處的布萊切利乳讥。
研制背景
1941年6月柱查,意識到謎機可能已被破解的德軍啟用了一種復(fù)雜度更高的加密系統(tǒng),并且這一次英國沒能拿到相應(yīng)的機器云石,布萊切利的密碼學(xué)們要和一個完全未知的強大敵人抗?fàn)幇ぁT诼犅劦聡擞靡环N海魚的名字稱呼這套系統(tǒng)后,布萊切利也給它起了個綽號——“金槍魚”汹忠。
1941年8月淋硝,“金槍魚”的操作員由于一時疏忽將同一條信息發(fā)送了兩遍,盡管兩條密文并不一樣宽菜,但經(jīng)驗豐富的布萊切利在截獲之后立馬意識到它們指向同一條明文谣膳。這個小小的馬腳,被這里絕頂聰明的密碼學(xué)家們牢牢抓住铅乡,真可謂一葉知秋继谚,他們據(jù)此精準(zhǔn)地推測出“金槍魚”的組成結(jié)構(gòu)和工作原理。它包括12個謎機那樣的轉(zhuǎn)輪阵幸,每個轉(zhuǎn)輪的旋轉(zhuǎn)模式各不相同花履,每個轉(zhuǎn)輪上導(dǎo)電觸點的數(shù)量也不一樣,導(dǎo)電觸點可以在接通和斷開兩個狀態(tài)之間切換侨嘀,使用前可改變各觸點的狀態(tài)和轉(zhuǎn)輪的起始位置臭挽。
和謎機的字符級加密不同,“金槍魚”進(jìn)行的是編碼級加密咬腕,當(dāng)時的電傳打字機使用的ITA2碼制(國際電報字母表第2號)用5位二進(jìn)制對單個字符進(jìn)行編碼欢峰,“金槍魚”將這些二進(jìn)制位與特定的二進(jìn)制密鑰進(jìn)行異或運算后生成密文。異或是一種特別的邏輯運算涨共,它是可逆的纽帖,明文和密鑰異或之后生成密文,反之举反,密文和密鑰異或之后又可以得到明文懊直,這就是“金槍魚”加密和解密的基本原理。
ITA2 | 秘鑰 | 密文 |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
破解“金槍魚”火鼻,不僅要猜出轉(zhuǎn)輪上所有導(dǎo)電觸點的通斷狀態(tài)室囊,還要猜出各轉(zhuǎn)輪的起始位置雕崩,其組合數(shù)量之巨,不僅遠(yuǎn)遠(yuǎn)超出了人力處理的能力范圍融撞,也令炸彈機這類機電設(shè)備束手無策盼铁。布萊切利急需一種更高速的解密機器,電子管方案成為不二之選尝偎。
研制電子計算機的重任落在了位于倫敦西北角的郵局研究站身上饶火,該研究站有著豐富的電子通信經(jīng)驗,在布萊切利的部分密碼學(xué)家對電子管的可靠性還抱有疑慮的時候致扯,郵局研究站的工程師早已對電子管的大規(guī)模應(yīng)用駕輕就熟肤寝。1943年2月,在圖靈的推薦下抖僵,來自研究站的托馬斯·弗勞爾斯(Thomas Harold Flowers)扛起這面大旗鲤看,在布萊切利一部分人“等機器造好戰(zhàn)爭怕是早就結(jié)束了”的冷嘲熱諷中,帶領(lǐng)50人的團(tuán)隊僅用了11個月就完成了第一臺原型耍群。1944年1月刨摩,當(dāng)這臺包含了1500~1600個電子管的“龐然大物”來到布萊切利,密碼學(xué)家們被深深震撼了世吨,它比他們之前使用過的任何計算設(shè)備都龐大得多,因而被形象地稱為巨人機(Colossus)呻征。
組成結(jié)構(gòu)與工作原理
巨人機有二型沐祷,1943年的一型為Mark 1,其建造過程中攒岛,弗勞爾斯就已經(jīng)開始了第二型Mark 2的設(shè)計赖临。Mark 2包含2400個電子管,速度更快灾锯,功能更強兢榨,截止歐洲勝利日(1945年5月8日)共建有10臺之多∷骋可惜的是吵聪,出于保密考慮,這11臺機器連同其圖紙都在60年代被下令焚毀兼雄,如今我們在布萊切利的英國國家計算博物館所能見到的吟逝,是后人在1992~2008年耗時16年重建的復(fù)制品。
巨人機使用穿孔紙帶輸入密文赦肋,紙帶每行有5個孔位块攒,對應(yīng)ITA2中的5位二進(jìn)制励稳。紙帶長約61米,穿孔25000行囱井。共設(shè)有兩個紙帶支架驹尼,在一條紙帶工作的時候,操作人員可以準(zhǔn)備好下一條紙帶琅绅,交替使用扶欣,節(jié)省紙帶更換時間。由于機器內(nèi)部沒有數(shù)據(jù)存儲模塊千扶,紙帶的頭尾相接料祠,形成環(huán)狀,以便循環(huán)讀取澎羞。紙帶的讀取速度十分驚人——每秒5000行[1]髓绽,工作時發(fā)出湍急的流水聲,紙帶上的孔洞以近44公里的時速飛馳妆绞。這得益于光電技術(shù)的應(yīng)用顺呕,在紙帶的一側(cè)安裝一個燈,另一側(cè)安裝5個并排的光電探測器[2]括饶,一個探測器負(fù)責(zé)盯住一個孔位株茶。當(dāng)燈光穿過某個孔洞,其對應(yīng)的光電探測器就能迅速發(fā)出電流脈沖图焰,產(chǎn)生二進(jìn)制信號1启盛;當(dāng)燈光被未穿孔的孔位遮擋,對應(yīng)的探測器就產(chǎn)生二進(jìn)制信號0技羔。
巨人機基于圖靈方法[3]僵闯,用電路模擬“金槍魚”的轉(zhuǎn)輪位置及其導(dǎo)電觸點的通斷狀態(tài)。密文流入機器后藤滥,經(jīng)過一系列以異或為主鳖粟,與、或拙绊、非為輔的邏輯運算向图,最終由電動打字機輸出結(jié)果。這個結(jié)果當(dāng)然不可能就是明文时呀,而是各種統(tǒng)計數(shù)據(jù)张漂,比如某個字符出現(xiàn)的次數(shù),或者某些數(shù)值滿足某種邏輯條件的次數(shù)谨娜,有點像現(xiàn)在的數(shù)據(jù)挖掘航攒。機器內(nèi)有5個電子計數(shù)器,可同時統(tǒng)計5項數(shù)據(jù)趴梢。密碼學(xué)家根據(jù)統(tǒng)計結(jié)果找到密文中暗藏的線索漠畜,調(diào)整機器程序币他,得到新的統(tǒng)計結(jié)果后繼續(xù)分析,如此往復(fù)憔狞,一步步逼近最終的正確答案蝴悉。
巨人機的可編程性是靠開關(guān)、旋鈕和接插線板實現(xiàn)的瘾敢。其開關(guān)可以上下?lián)軇优墓冢謩e接通兩個不同的功能線路,多數(shù)開關(guān)還可以被撥到中間簇抵,使兩個線路都斷開庆杜;其旋鈕用于置數(shù),10個位置依次對應(yīng)0~9碟摆,10條數(shù)值線路像10位英俊的紳士圍繞著旋鈕女士晃财,一齊向她伸出求舞之手,而旋鈕總會牽手他們中的一位典蜕。
巨人機的編程本質(zhì)上是一組選擇断盛,選擇每個開關(guān)和旋鈕的位置,選擇接插線板上每個導(dǎo)電孔的通斷愉舔。這些選擇對象分布于多塊操控面板之上钢猛,下面按從右至左的順序簡單介紹一下它們的功能。
可見,巨人機的使用十分靈活而復(fù)雜倒谷,需要兩名操作人員協(xié)作完成蛛蒙。布萊切利雇傭了當(dāng)時皇家海軍女子勤務(wù)隊的成員操作機器,而密碼學(xué)家則專注于算法設(shè)計和結(jié)果分析渤愁。
后話
1944年6月1日牵祟,第一臺Mark 2巨人機正式交付,如期趕上了重大的諾曼底登陸戰(zhàn)役抖格。德軍萬萬沒有想到诺苹,他們引以為傲的機電式“金槍魚”,面對的是領(lǐng)先了一個時代的電子計算機雹拄。巨人機不負(fù)眾望破解了德軍密碼收奔,為戰(zhàn)役的最終勝利做出了不可磨滅的貢獻(xiàn)怒详。
由于涉密续挟,巨人機的知名度比ABC更低,其存在直到70年代中期才公開挠轴。1983年势篡,78歲的弗勞爾斯專門撰寫了一篇論文——《巨人機的設(shè)計》翩肌,他發(fā)現(xiàn)自己已經(jīng)很難記起機器的許多細(xì)節(jié),在采訪了當(dāng)時團(tuán)隊中一部分幸存的工程師后才得以寫成禁悠。連建造者的記憶都在淡卻念祭,更別提后人粗淺的了解了。
巨人機是世界上第一臺可編程計算機碍侦,但它是專用的粱坤,不具有圖靈完備性。但一位舊金山大學(xué)的教授于2009年證明瓷产,將10臺巨人機以某種方式組合之后可以達(dá)到圖靈完備站玄。但這種證明其實意義并不大,巨人機本身是為完成特定任務(wù)而設(shè)計的濒旦,弗勞爾斯也承認(rèn)在建造它時從沒想過現(xiàn)代計算機是什么模樣的蜒什,甚至還沒聽說過有用“computer”來稱呼機器的做法。
盡管如此疤估,巨人機對電子計算的探索十分成功,為英國戰(zhàn)后的計算機研制做好準(zhǔn)備霎冯。
參考文獻(xiàn)
- Wikipedia. Colossus computer[EB/OL].
- Flowers T H. The Design of Colossus (foreword by Howard Campaigne)[J]. Annals of the History of Computing, 1983, 5(3):239-252.
- Martin Gillow. Virtual Colossus[EB/OL].