巨人机:第一台可编程电子计算机

2023-10-08 18:59

本文主要是介绍巨人机:第一台可编程电子计算机,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

ABC之后,历史仍未安排ENIAC出场。1943年,电子时期的第2个重要角色诞生在图灵所处的布莱切利。

研制背景

1941年6月,意识到谜机可能已被破解的德军启用了一种复杂度更高的加密系统,并且这一次英国没能拿到相应的机器,布莱切利的密码学们要和一个完全未知的强大敌人抗争。在听闻德国人用一种海鱼的名字称呼这套系统后,布莱切利也给它起了个绰号——“金枪鱼”。

1941年8月,“金枪鱼”的操作员由于一时疏忽将同一条信息发送了两遍,尽管两条密文并不一样,但经验丰富的布莱切利在截获之后立马意识到它们指向同一条明文。这个小小的马脚,被这里绝顶聪明的密码学家们牢牢抓住,真可谓一叶知秋,他们据此精准地推测出“金枪鱼”的组成结构和工作原理。它包括12个谜机那样的转轮,每个转轮的旋转模式各不相同,每个转轮上导电触点的数量也不一样,导电触点可以在接通和断开两个状态之间切换,使用前可改变各触点的状态和转轮的起始位置。

30022-5b3f6ffb186d3425.jpg
金枪鱼(图片来自维基百科)
30022-6c52e00068442f49.jpg
金枪鱼转轮导电触点特写(图片来自维基百科)

和谜机的字符级加密不同,“金枪鱼”进行的是编码级加密,当时的电传打字机使用的ITA2码制(国际电报字母表第2号)用5位二进制对单个字符进行编码,“金枪鱼”将这些二进制位与特定的二进制密钥进行异或运算后生成密文。异或是一种特别的逻辑运算,它是可逆的,明文和密钥异或之后生成密文,反之,密文和密钥异或之后又可以得到明文,这就是“金枪鱼”加密和解密的基本原理。

ITA2秘钥密文
000
011
101
110

破解“金枪鱼”,不仅要猜出转轮上所有导电触点的通断状态,还要猜出各转轮的起始位置,其组合数量之巨,不仅远远超出了人力处理的能力范围,也令炸弹机这类机电设备束手无策。布莱切利急需一种更高速的解密机器,电子管方案成为不二之选。

研制电子计算机的重任落在了位于伦敦西北角的邮局研究站身上,该研究站有着丰富的电子通信经验,在布莱切利的部分密码学家对电子管的可靠性还抱有疑虑的时候,邮局研究站的工程师早已对电子管的大规模应用驾轻就熟。1943年2月,在图灵的推荐下,来自研究站的托马斯·弗劳尔斯(Thomas Harold Flowers)扛起这面大旗,在布莱切利一部分人“等机器造好战争怕是早就结束了”的冷嘲热讽中,带领50人的团队仅用了11个月就完成了第一台原型。1944年1月,当这台包含了1500~1600个电子管的“庞然大物”来到布莱切利,密码学家们被深深震撼了,它比他们之前使用过的任何计算设备都庞大得多,因而被形象地称为巨人机(Colossus)。

30022-ab920ee42f7e1adf.jpg
托马斯·哈罗德·弗劳尔斯(Thomas Harold Flowers),1905-1998,英国工程师。(图片来自维基百科)

组成结构与工作原理

巨人机有二型,1943年的一型为Mark 1,其建造过程中,弗劳尔斯就已经开始了第二型Mark 2的设计。Mark 2包含2400个电子管,速度更快,功能更强,截止欧洲胜利日(1945年5月8日)共建有10台之多。可惜的是,出于保密考虑,这11台机器连同其图纸都在60年代被下令焚毁,如今我们在布莱切利的英国国家计算博物馆所能见到的,是后人在1992~2008年耗时16年重建的复制品。

30022-203bfb6a85bffdc1.png
巨人机Mark 2复制品(原图来自维基百科)

巨人机使用穿孔纸带输入密文,纸带每行有5个孔位,对应ITA2中的5位二进制。纸带长约61米,穿孔25000行。共设有两个纸带支架,在一条纸带工作的时候,操作人员可以准备好下一条纸带,交替使用,节省纸带更换时间。由于机器内部没有数据存储模块,纸带的头尾相接,形成环状,以便循环读取。纸带的读取速度十分惊人——每秒5000行[1],工作时发出湍急的流水声,纸带上的孔洞以近44公里的时速飞驰。这得益于光电技术的应用,在纸带的一侧安装一个灯,另一侧安装5个并排的光电探测器[2],一个探测器负责盯住一个孔位。当灯光穿过某个孔洞,其对应的光电探测器就能迅速发出电流脉冲,产生二进制信号1;当灯光被未穿孔的孔位遮挡,对应的探测器就产生二进制信号0。

巨人机基于图灵方法[3],用电路模拟“金枪鱼”的转轮位置及其导电触点的通断状态。密文流入机器后,经过一系列以异或为主,与、或、非为辅的逻辑运算,最终由电动打字机输出结果。这个结果当然不可能就是明文,而是各种统计数据,比如某个字符出现的次数,或者某些数值满足某种逻辑条件的次数,有点像现在的数据挖掘。机器内有5个电子计数器,可同时统计5项数据。密码学家根据统计结果找到密文中暗藏的线索,调整机器程序,得到新的统计结果后继续分析,如此往复,一步步逼近最终的正确答案。

巨人机的可编程性是靠开关、旋钮和接插线板实现的。其开关可以上下拨动,分别接通两个不同的功能线路,多数开关还可以被拨到中间,使两个线路都断开;其旋钮用于置数,10个位置依次对应0~9,10条数值线路像10位英俊的绅士围绕着旋钮女士,一齐向她伸出求舞之手,而旋钮总会牵手他们中的一位。

巨人机的编程本质上是一组选择,选择每个开关和旋钮的位置,选择接插线板上每个导电孔的通断。这些选择对象分布于多块操控面板之上,下面按从右至左的顺序简单介绍一下它们的功能。

30022-9867433c4d650e9f.png
范围设置面板,包含3组旋钮(每个旋钮有10个位置),每组可以设置一个4位十进制数。其中2组用于设置纸带的读取范围(起止位置分别用4位十进制数表示),当使用者比较关注纸带上的某一段密文时,可以让机器循环读取这一段,而不是整条纸带。
30022-eab448dfa4591af1.png
信号选择面板,包含16个开关,可以对输入信号进行筛选,比如选择使用哪一个支架上的纸带,又比如选择将数据本身还是数据的变化量(图灵方法需要的参数)传送给逻辑运算单元。
30022-1c36d7e47b810049.png
统计设置面板,包含191个开关,左上区域5列黑色开关用于指定需要统计的字符,右上区域5列灰色开关用于指定每个统计值所对应的计数器,左下区域5列红色开关可以设置统计多个字符出现的次数总和,右下区域5列红色开关用于指定这些总和统计值所对应的计数器。
30022-8f70b66754f9bdc3.png
触点设置面板,为接插线面板,包含10行槽位。第1、3、5、7、9行用于设置“金枪鱼”某5个转轮上导电触点的通断状态,1个槽位对应1个触点;第2、4、6、8、10行用于更复杂的模式。
30022-14c6e869a180abd0.png
转轮设置面板,为接插线面板,包含12行槽位,用于设置“金枪鱼”12个转轮的起始位置,以第几个触点作为起始位置就在第几个槽位插上插头。
30022-e9d6d9ab27f95b30.png
主控面板,包含40个开关,有6种颜色,用于设置机器的各种运作方式,比如设定“金枪鱼”转轮在什么条件下旋转。
30022-51ba922082f499bc.png
状态显示面板,包含上下2组小灯泡。上侧一组包含10行小灯泡,用于显示5个计数器的当前值(每2行对应1个计数器);下侧一组包含12行小灯泡,用于显示“金枪鱼”12个转轮的当前位置,它们可能是静止的,也可能不断变化,取决于主控面板的设置。
30022-f9f46b1b7027b507.png
阈值设置面板,包含20个旋钮和5个开关。机器的统计量很大,为便于分析,可以设定统计值高于或低于某个阈值时才通过打字机输出。每个计数器对应4个旋钮(阈值表示为4位十进制数)和1个开关(选择“大于”还是“小于”)。

可见,巨人机的使用十分灵活而复杂,需要两名操作人员协作完成。布莱切利雇佣了当时皇家海军女子勤务队的成员操作机器,而密码学家则专注于算法设计和结果分析。

后话

1944年6月1日,第一台Mark 2巨人机正式交付,如期赶上了重大的诺曼底登陆战役。德军万万没有想到,他们引以为傲的机电式“金枪鱼”,面对的是领先了一个时代的电子计算机。巨人机不负众望破解了德军密码,为战役的最终胜利做出了不可磨灭的贡献。

由于涉密,巨人机的知名度比ABC更低,其存在直到70年代中期才公开。1983年,78岁的弗劳尔斯专门撰写了一篇论文——《巨人机的设计》,他发现自己已经很难记起机器的许多细节,在采访了当时团队中一部分幸存的工程师后才得以写成。连建造者的记忆都在淡却,更别提后人粗浅的了解了。

巨人机是世界上第一台可编程计算机,但它是专用的,不具有图灵完备性。但一位旧金山大学的教授于2009年证明,将10台巨人机以某种方式组合之后可以达到图灵完备。但这种证明其实意义并不大,巨人机本身是为完成特定任务而设计的,弗劳尔斯也承认在建造它时从没想过现代计算机是什么模样的,甚至还没听说过有用“computer”来称呼机器的做法。

尽管如此,巨人机对电子计算的探索十分成功,为英国战后的计算机研制做好准备。

参考文献

  • 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].

  1. 测试时,工程师们发现纸的韧度最多可支撑每秒9700行的读取速度。 ↩

  2. 光电探测器可以有多种类型,比如光敏电阻(电阻值遇光照迅速减小)和光电管(类似电子管,只是激发阴极电子的不是热而是光),都是基于光电效应实现的。 ↩

  3. 由于图灵极高的历史地位,有些文献会误认为巨人机是图灵的作品,其实图灵并没有直接参与巨人机的建造,只是机器的实现用到了他的图灵方法。 ↩

这篇关于巨人机:第一台可编程电子计算机的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/167373

相关文章

FPGA开发:可编程逻辑器件概述

PLD 1、什么是PLD? PLD指Programmable Logic Device,翻译为"可编程逻辑器件"。是20世纪70年代发展起来的一种新的集成电路,是一种半定制的集成电路。 PLD具有逻辑功能实现灵活。集成度高、处理速度快的特点。 PLD就像是一个可定制的积木盒,里面装满了各种各样的"电子积木"(逻辑门、触发器、寄存器等)。这些积木在盒子里原本没有固定的连接方式,但你可以根据

3012家!第六批专精特新“小巨人”企业名单和第三批复核通过企业名单公示

工业和信息化部开展了第六批专精特新“小巨人”企业培育和第三批专精特新“小巨人”企业复核工作,已完成相关审核。今日,各地陆续公示了第六批专精特新“小巨人”企业和第三批专精特新“小巨人”复核通过企业名单。 第六批专精特新“小巨人”企业和第三批专精特新“小巨人”复核通过企业公示名单统计表 第六批专精特新“小巨人”企业公示名单 点击图片可清晰查阅

年轻人的第一台轿跑来了,售价11.98万起!

来到 9 月,除了硬件圈开卷之外,车圈也不遑多让。 放眼整个纯电车市场,目前杀进前十销量的只有特斯拉 Model Y 和小米 SU7 在 20 万元价位以上。 来源:懂车帝 大伙儿也一眼就能看出,只有下沉 10 万元级市场才是销量的主力军。 所以在这两天小鹏带着它的 10 周年纪念品,小鹏 MONA M03 来了。 来源:小鹏 一共三个配置,从中杯到超大杯分别是: 5

可编程定时计数器8253/8254

在微机应用系统中,定时控制具有重要的作用。经常会有这样的应用要求:一种是要求有一些外部实时时钟,以实现延时控制或定时;另一种是要求能对外部事件计数的计数器。在微机系统中,常采用以下三种方法实现:软件定时,不可编程硬件定时和可编程硬件定时。 可编程定时/计数器的工作原理 定时和计数的本质是相同的,它们都是对一个输入脉冲进行计数,如果输入脉冲的频率一定,则记录一定个数的脉冲,其所需的时间是一定的,

集成电路学习:什么是FPGA现场可编程门阵列

一、FPGA:现场可编程门阵列         FPGA,全称Field Programmable Gate Array,即现场可编程门阵列,是一种超大规模可编程逻辑器件。它由可编程逻辑资源、可编程互连资源和可编程输入输出资源组成,主要用于实现以状态机为主要特征的时序逻辑电路。FPGA是在可编程阵列逻辑(PAL)、通用阵列逻辑(GAL)等可编程器件的基础上进一步发展的产物,作为专用集成电路(

集成电路学习:什么是EEPROM电可擦除可编程只读存储器

EEPROM:电可擦除可编程只读存储器         EEPROM(Electrically Erasable Programmable Read-Only Memory,电可擦除可编程只读存储器)是一种非易失性存储器,具有电可擦写、可编程和只读的特性。以下是关于EEPROM的详细解释: 一、EEPROM的定义与特点 EEPROM的定义:EEPROM是一种允许通过电信号进行擦除和重新编程的

不温不火的活动网站,如何找到巨人的肩膀? (科技类)

总有这样一批人,他们不热衷于在各网站、贴吧、论坛上发帖,不迷恋淘宝所谓的物美价廉,也不信对着电脑聊天对方的基本信息都是100%属实。他们就相信眼见为实,喜欢与人打交道,在不停的活动中形成自己庞大的朋友圈。这就是我们时常羡慕的活动达人!经常参加活动的人,总能找到很多心仪的活动,但是没有任何头绪的用户到哪去找这些活动,这对许多人却是个问题? 上互联网,看贴吧?逛论坛?发问问?这看看,那瞧瞧。不是活动

揭秘OTP与MTP:你的存储小秘密,一次性和多次可编程大不同!

NVM,即非易失性存储器,是一种非易失性内存。 NVM的特点是存储的数据在断电后不会消失。传统的NVM,如掩模ROM、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦可编程ROM(EEPROM)、NAND/NOR闪存等,以及目前正在开发的许多新型状态存储器,如磁性存储器(MRAM)、电阻存储器(RRAM)、相变存储器(PRAM)、铁电存储器(FeRAM)等,都属于NVM。(因此

可编程液冷负载性能评估

在现代的数据中心和高性能计算环境中,冷却系统的性能直接影响到设备的运行效率和寿命。传统的空气冷却系统由于其效率低下和噪音大等问题,已经无法满足现代设备的需求。因此,液冷系统应运而生,它通过将设备直接浸入特殊的冷却液体中,可以大大提高冷却效率,降低设备的运行温度,从而提高设备的性能和寿命。 然而,液冷系统的设计和优化是一个复杂的过程,需要考虑到许多因素,如冷却液体的性质、设备的工作负载、环境条件

120KW可编程液冷负载优势和特点

120KW可编程液冷负载是一种先进的电力设备,它采用液冷技术进行冷却,具有高效、稳定、安全等特点。以下是其优势和特点的详细介绍: 1. 高效冷却:液冷负载采用液冷技术进行冷却,能够更有效地将热量传导出去,提高冷却效率。相比于风冷负载,液冷负载的冷却效率更高,能够更好地保护设备,延长设备的使用寿命。 2. 稳定运行:液冷负载的冷却系统采用闭环控制,能够实时监测冷却液的温度和流量,根据需要自动