美国内战期间,联邦军队部署了历史上最成功的军事密码之一。众所周知,邦联从未破解过密码;事实上,他们甚至开始在报纸上发布截获的信息,希望有人能阅读。该密码是由西联电报公司总负责人安东·斯塔格应俄亥俄州政府的要求设计的;后来,负责俄亥俄州军队的乔治·麦克莱伦将军将密码引入了整个联邦军队。你可以阅读更多关于密码的信息在这里和在这里。
密码分两个阶段工作。首先,一些具有军事意义的单词被代码词取代;例如,attack可以替换为tulip,短语atdawn可以替换为stripe,因此代码tulip stripe意味着attack at dawn。词典包括人名(林肯,各种将军)、地点(里士满,山顶)、时间(星期二,下午4:30,黎明)和行动(攻击,侦察);一个明文单词可以容纳多个代码词,多个明文词可以编码为一个单词,甚至数字和标点符号也有代码词。该词典的最终版本包括1608个码字。
第二个阶段是路线转位,有许多变体。例如,指定为willow的路由可能会调用六列,其中单词的选择顺序为向下第三列、向上第四列、向下第二列、向下第六列、向上第一列和向下第五列;添加了null来填充最后一行,并在第七列中添加了一个额外的null。
举一个例子:1863年6月1日,林肯总统发来以下电报:
对于COLONEL LUDLOW:
里查森和布朗,特里布内通讯员,
在维克斯堡被捕,在里奇蒙被捕。
请确认他们为什么被剥夺
如果可以的话,把它们拿下来。
林肯。
该词典包括某些代码词:VENUS代表COLONEL,WAYLAND代表CAPTURED,ODOR代表VICKBURG,NEPTUNE代表RICHMOND,ADAM代表LINCOLN。另一个码字NELLY将发送时间指定为4:30PM。因此,信息变为:
对于金星LUDLOW:
里查森和布朗,特里布内通讯员,
气味处的道路在纽顿被封锁。
请确认他们为什么被剥夺
如果可以的话,把它们拿下来。
亚当·奈利
现在,密码管理员选择了一个路径GUARD,该路径按向上第一列、向下第二列、向上第五列、向下第一列和向上第三列的顺序调用五列。他将信息分为五列,最后一行用空填充:
对于金星卢道·理查德森和
部落布朗通讯员
气味处的道路被扣留
在奈普顿请ASCERTAIN为什么
他们被剥夺了权利
如果可以的话,把它们关掉
亚当·奈利(ADAM NELLY)
现在,消息按列路由顺序提取,并在每列后添加空值:
第一列亚当他们在韦兰·布朗亲吻
下栏两位纽顿的金星通讯员关上了NELLY TURNING
第五列up可以得到为什么被剥夺了TRIBUNE和TIMES
在第四栏,理查德森,阿瑟特丹,你填满了贝利
第三列上,如果发现,请闻一下卢森堡专员的气味
然后,按照路线指示器的顺序读取最终信息:
守卫亚当·他们在韦兰·布朗亲吻金星,纽顿的通讯员都关了。内莉·露面能解释为什么会被剥夺审判权,理查德森的案子也会升级,如果你被剥夺了,请闻一闻路德洛专员
解密只是颠倒了这个过程。收件人计算消息中的单词数,绘制适当大小的网格,按路由顺序填写单词,将码字转换为明文等价物,然后阅读消息。
联合路由密码具有强大的优势,它可以处理单词而不是单个字母,这使得抄写和电报中的错误变得不太常见。当然,缺点是必须精心控制代码簿;丢失一本密码本将使敌人能够访问您的所有通信。但这并没有发生,密码在整个战争期间都是安全的。
您的任务是编写一个程序,根据Union路由密码对消息进行加密和解密;为词汇和路线制定自己的约定。完成后,欢迎您阅读或运行建议的解决方案,或在下面的评论中发布自己的解决方案或讨论练习。
页:1 2