4个终于被破译的世界级密码

全世界有3.14 % 的人已经关注了

数据与算法之美

640?

很多时候,一个设计精巧的密码就像数学难题一样,许许多多难以破解的密码让人青丝泛白,至今仍未见天日。不过,也有一些密码中的幸运儿,最终仍然迎来了真相大白的那天。

秘密组织的手抄本密码

这份超过 75000 个字母的手抄加密文件名叫 “Copiale cipher”。它被认为是在 18 世纪下半叶出现在德国的,其创造者是一个类似共济会的秘密组织,因此这份密码被认为含有关于思想史与秘密组织的重要信息。但在南加州大学的计算机专家凯文•奈特(Kevin Knight)的帮助下,这个密码被成功破译。凯文•奈特是破译小组中的一员,他本是一位计算机翻译方面的行家,但是这次破译密码意外地用上了他的专长。

640?

Copiale cipher中的两页。图像来源:wikipedia

整个密码文件中包含了 3 种字符:罗马字母、希腊字母和看似杂乱的抽象符号。破译小组首先将密码文件转换成为计算机可识别的信息,然后尝试借助计算机的枚举能力来破解它。他们使用了类似谷歌翻译中的统计翻译技术,即把密码看做是一门外语,然后尝试寻找合适的规则转换成德语。

一开始,他们将罗马字母和希腊字母单独提取出来,但计算机无法破译。后来他们忽然意识到,罗马字母和希腊字母在这份诡异的文件中可能只是起到了空格的作用,真正包含了信息的是那些抽象符号。沿着这个思路终于他们破译出了第一个词:“入会仪式”,紧接着又发现了“秘密条约”。最终,在 2011 年 4 月,这个沉睡百年的密码被成功破译。现在这份秘密文件内容已经被放到网上,完整英文版可以 在此 阅读到。

达芬奇密码侵权案中的密码

640?

2003年,丹布朗的小说《达芬奇密码》火爆全球。但是“枪打出头鸟”,这本火热而又挑战禁忌的小说一出来就遭到非议颇多,有人认为内容涉嫌抄袭《圣血和圣杯》,最后闹到打官司。在2006年,伦敦的法庭宣布对《达芬奇密码》抄袭的检控不成立,而富有娱乐精神的法官彼得•史密斯(Peter Smithy)在最后长达 71 页的裁决书中悄悄地嵌入了一段密文:

s m i t h y c o d e J a e i e x t o s t g p s a c g r e a m q w f k a d p m q z v

有趣的是,这段密文的解密过程与《达芬奇密码》的第一个密码有关,都涉及到了斐波那契数列表示的字母轮换。而且大法官为了增加难度,故意对密文进行了改写:

密文中的第二个 t 其实应该是 h


最后一个字母没有被译成密码


解密时,一些字母要按照反方向进行置换


伦敦的法律分析师丹尼尔•坦奇(Daniel Tench)首先发现了这段密文,紧随其后泰晤士报也报道了这段信息,还把那份裁决书发到网上,开放论坛给蜂拥而至的解码者,一时间在全球掀起了一股解谜风潮。丹尼尔•坦奇最后成为了第一个破解密码的人,因为史密斯法官在与他交流的几封邮件中透露了许多的解密提示。这也导致众多解密爱好者们纷纷表示法官的“剧透”严重影响了大家享受这次解密的乐趣。

这段密码的明文是:

Smithy Code Jakie Fisher who are you Dreadnought

法官后来解释说,他自己是 Fisher 的粉丝很多年了。海军上将Admiral John “Jackie” Fisher 被认为是皇家海军历史上的第二号重要人物,他革新海洋军事作战方式,引入了第一艘现代战舰“大无畏”号(HMS Dreadnought)。史密斯花了大概 40 分钟将这个密码编入裁决书里纯粹是逗自己玩儿的,从没想到有人居然会注意到。这也给这桩侵权诉讼增添了一个可爱的花絮。

爱伦•坡的密码挑战

640?

爱伦•坡画像。图片来源:壹周网

爱伦•坡被认为是现在推理小说的鼻祖。他本人也对密码十分热衷,常常在自己的诗歌或者散文中隐秘地嵌入一些密码。除了在他的小说《金甲虫》中设置众多的密码对读者的智力进行折磨外,爱伦•坡还在一本流行杂志上公然向所有读者挑战:邀请大家设计密码考验他。他也确实是一名专家,据说陆陆续续地解开了上百个读者寄来的密码。

在此期间,有一位名叫 Mr. W. B. Tyler 的读者写了两个密码寄给爱伦坡。这两个密码不但没有得到解答,反而还被直接被刊登到了杂志上。这是爱伦坡唯一公开的未解之谜。一时间众说纷纭,更有甚者大胆猜测 Tyler 实际上就是他的笔名。

640?

Tyler的第一份密码

直到1992年,特伦斯•惠伦(Terence Whalen)教授终于解开了第一份密码。他走出的第一步是发现了“逗号-匕首-小节”这样的组合在八行里面出现了七次:

640?

据此他进一步猜测这三个组合符号代表的是单词“the”。在克服了没有标点与空格的困难之后,他给出了最终的译文:

The soul secure in her existence smiles at the drawn dagger and defies its point. The stars shall fade away, the sun himself grow dim with age and nature sink in years, but thou shalt flourish in immortal youth, unhurt amid the war of elements, the wreck of matter and the crush of worlds

第二份密码更加曲折一些。有人专门悬赏 2500 美金的不菲金额邀请高手来破译,不少人认为这份密码将会透露爱伦•坡与Tyler的关系。

640?

Tyler的第二份密码

直到 2000 年,这个密码才被多伦多的软件工程师吉尔•布朗茨(Gil Broza)借助电脑的力量破译。

很遗憾的是,最终得到的完整明文看起来只是节选自某本小说的一段话而已。密码虽然被破译出来了,但 Tyler 究竟是谁,为什么爱伦坡没有破译他的密码?这个历史悬案恐怕没人能回答了。

混乱加密法

1918年,一位名为伯恩(Byrne)的人设计了一个叫做 “Chaocipher” 的加密算法。他自认为这个算法的规则简单,但难以破解。同时他制造了一个用于演示加密过程的实体机器。不过令人失望的是,这套算法并没有引起任何组织或者政府的兴趣。伯恩最后选择在 1951 年出版的自传“Silent Years”中对世人宣布这个加密算法的存在,并向任何能破解此密码的人提供赏金。

在当时,世界上恐怕也只有 3 个人知道这个算法的细节:伯恩的儿子与两个 Cryptologia 杂志的编辑。将近 60 年过去了,仍然没有人能够获得赏金,更有传言称这个加密术实际上已经失传了。最后在 2010 年,伯恩的家人决定将所有与 Chaocipher 有关的文章以及机器捐给博物馆,这个神秘的密码系统最后才得以重现人间。

右边的圆盘+号下代表明文的字母,左边的圆盘+号下代表加密后的密文字母。总的来说加密过程分为三步:

⒈ 将两份字母表打乱后摆在两个圆盘上

⒉ 将右边圆盘中的待加密字母旋转到+号之下,同时带动左边圆盘转动,此时左边+号对应的字母便是加密的结果

⒊ 按照一定的规则改变两边圆盘的部分字母顺序


对于每一个明文中的字母都进行这样的加密。这个看起来简单清晰的动态加密过程实际上有着复杂的加密规律,在无人知道细节的情况下,很难破解,难怪还有人将其拿来与二战时期鼎鼎大名的 Enigma 进行比较。


试想如果伯恩一家人没有捐出这些资料,真的会有人解开这个密码么?


主要参考资料:

[1] Famous Unsolved Codes That Have Since Been Solved

[2] Modern Algorithms Crack 18th Century Secret Code

[3] The Smithy Code

[4] 维基百科: Smithy code


作者:严酷的魔王

Via:果壳网

版权归原作者所有,转载仅供学习使用,不用于任何商业用途,如有侵权请留言联系删除,感谢合作。

数据与算法之美

用数据解决不可能


640?wx_fmt=jpeg

长按扫码关注

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/302841.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java虚拟机工作原理图_Java虚拟机工作原理

首先我想从宏观上介绍一下Java虚拟机的工作原理。从最初的我们编写的Java源文件(.java文件)是如何一步步执行的,如下图所示,首先Java源文件经过前端编译器(javac或ECJ)将.java文件编译为Java字节码文件,然后JRE加载Java字节码文件&#xff0c…

奇异值的物理意义是什么?

全世界有3.14 % 的人已经关注了数据与算法之美矩阵奇异值的物理意义是什么?或者说,奇异值形象一点的意义是什么?把m*n矩阵看作从m维空间到n维空间的一个线性映射,是否:各奇异向量就是坐标轴,奇异值就是对应…

WPF使用Animation仿WeChat(微信)播放语音消息

WPF开发者QQ群: 340500857 前言WPF使用Animation仿WeChat(微信)播放语音消息?效果图:创建MyAnimationForever.cs如下:public class MyAnimationForever : Control{private static Storyboard MyStory;priva…

epublib java_使用Epublib处理epub文件 | 学步园

通过wlw发布在我的博客funba.cn希望csdn能重新支持wlwEpublib是一个用于处理epub文件的java类库,可以对epub文件进行读写处理;而且提供了一个阅读器,可以直接运行(java -jar 方式),并可以打开epub类型的文件进行阅读。1、这个例子…

机器学习的最佳学习路线,就在这里!

AI这个词相信大家都非常熟悉,近几年来人工智能圈子格外热闹,光是AlphoGo就让大家对它刮目相看。今天小天就来跟大家唠一唠如何进军人工智能的第一步——机器学习。在机器学习领域,Python已经成为了主流。一方面因为这门语言简单易上手&#x…

io流图解 java_详细讲解JAVA中的IO流

一、流的概念流(stream)的概念源于UNIX中管道(pipe)的概念。在UNIX中,管道是一条不间断的字节流,用来实现程序或进程间的通信,或读写外围设备、外部文件等。一个流,必有源端和目的端,它们可以是计算机内存的某些区域&a…

分段函数 左右 f'正 不等于f'负 则f'导数不存在。所以不能推出f连续是否

根据单侧极限定理。当求分界处函数时。如果 f正f负 那么 f存在。 如果 f正!f负 f不存在。 如果 f正或者f负不存在。 则f不一定不存在。单侧极限是可导的充分非必要条件。转载于:https://www.cnblogs.com/friends-wf/articles/2380690.html

BPM与Workflow的区别

ItemworkflowBPM流程管理周期设计、执行流程全周期,包括梳理、监控、分析目标用户群体编程人员业务人员、IT技术人员平台化设施流程引擎内核流程、组织、权限、表单、规则、门户、监控、分析等一体化的平台设施应用范围部门级,十余支企业级多级流程层次&…

21个令程序员泪流满面的瞬间【第二弹】

【1】明明我只修改了一行代码... 【2】千万不要随便乱动旧项目【3】提交了错误的分支【4】断点调试BUG【5】当我删除一个无用的代码块【6】糟糕,无法捕获这个BUG【7】当我刚好有一个好点子却被人打断【8】不小心打开了遗留项目【9】费力地捕获一个已知Bug【10】…

大厂出品免费图标资源站

IconPark 字节跳动出品矢量图标样式的开源图标库编程导航开源仓库:https://github.com/liyupi/code-navIconPark 图标库是一个通过技术驱动矢量图标样式的开源图标库,可以实现根据单一 SVG 源文件变换出多种主题, 具备丰富的分类、更轻量的代…

数学不好、英语不好、非本专业,想学python数据分析,能安排吗?

全世界有3.14 % 的人已经关注了数据与算法之美“非本专业想转型做数据分析,有救吗?”“数学不好,英语不好,想学Python数据分析,有救吗?”“不懂Python数据分析到底是什么,有救吗?”我…

在 .NET 中使用 C# 处理 YAML

在 .NET 中,可以使用 YamlDotNet 类库解析和生成 YAML 文件。YamlDotNet :https://github.com/aaubry/YamlDotNetNuGet 下载:https://www.nuget.org/packages/YamlDotNet/帮助文档:https://github.com/aaubry/YamlDotNet/wiki序列…

java读取图片缩略方法_java 图片缩略图的两种方法

最近网上看到两种不同的java图片缩略图的绘制方案第一种,使用Graphics().drawImage按照一定的比例重新绘制图像。Java代码package com.image.suoluetu;import java.io.*;import java.awt.*;import java.awt.image.*;import com.sun.image.codec.jpeg.*;public class…

Python项目可以有多大?最多可以有多少行代码?

全世界有3.14 % 的人已经关注了数据与算法之美导读:总是看到有人说,动态一时爽,重构火葬场。然而这世界上有的是著名的开源项目, 也有像 Github、Instagram 这样流量巨大的知名网站是基于动态语言开发的,经过了这么多年…

从好买辞职后,为什么我会加入一家开源创业公司?

这是头哥侃码的第240篇原创熟悉我的朋友都知道,我是一个闲不住的人。工作之余,我不仅愿意把自己的经验拿出来与大家分享,而且还总是喜欢在字里行间中表达情感,并抒发命运的奇妙与无常。为什么?因为在我看来&#xff0c…

Apache 虚拟主机 VirtualHost 配置

为什么80%的码农都做不了架构师?>>> 虚拟主机 (Virtual Host) 是在同一台机器搭建属于不同域名或者基于不同 IP 的多个网站服务的技术. 可以为运行在同一物理机器上的各个网站指配不同的 IP 和端口, 也可让多个网站拥有不同的域名. Apache 是世界上使用…

IT公司老板落水,各部门员工怎么救?

公司高层公司副总A:咱们开个会研究一下这个事情怎么处理。公司副总B:如果老板没有救成功,下任是谁呢?会不会影响公司的上市?公司副总C:我认为咱们开会应该讨论两个方案,一个是救人方案&#xff…

这样用Docker 搭建 Jenkins 实现自动部署,你知道吗?

一、为什么用jenkins主要是我们现在的项目都是采用手动部署的,每当给项目中新增一个功能就必须执行(打包--测试--上传测试修复的包到指定服务器--部署上线),这个流程操作起来繁杂,不小心就可能导致部署失败;急需找到一个方式来解决…

这是对R的误解!R的应用原来这么广!

R作为一种统计分析软件,广泛应用于生物、医学、电商、新闻等数据相关行业,是目前主流数据应用软件之一。为了更好地帮助大家了解并快速入门R语言,现超级数学建模携手柯老师以R语言为基础,向大家隆重推出《R语言基础》系列课。柯老…

WinDBg定位asp.net mvc项目异常崩溃源码位置

项目介绍:asp.net mvc angular iiswindows server系统莫名崩溃最近有个系统默认奇妙崩溃50x,服务整体变成无响应,当运维告知我只有重启应用程序池项目才能正常。我问他如何重现,得到的回复是我这里无法重现,但客户使用…