公元前古罗马名将恺撒,想保住军情秘密,于是用了一种简单的方法:他把26个罗马字母往左移动了固定的位置。比如把明码FOREST左移3位,就变成了密码YGKTLZ。这个办法虽然古旧,但它标志着密码学开始了漫长的旅程。到了现在,科技发展了,密码学也变得更复杂。德国在二战前发明了一种叫Enigma的密码机,它让德军的指令变得难以破解。这个机器用了三个转子和一个连接板,还有每天轮换组合的方式。这就好比把一堆数学函数堆在了一起,复杂度达到了10的14次方。这样一来,人工破译几乎不可能完成。为了对付这个难题,波兰和英国的数学家们花了几年时间。艾伦·图灵也在这个时候发挥了重要作用。他领导的团队造出了一种叫Bomb的机器(真名是克里斯托弗)。这个机器通过德军公文里常见的词比如“天气”“希特勒万岁”来锁定关键组合,然后再进行穷举运算。这样一来效率就大大提高了。最终他们在一小时内找到了百万组有效密钥。有了这些信息之后,英国情报机构就能够提前两年结束二战。其实密码学的核心从来不是解码本身,而是如何破译别人的加密信息。编码者会想尽办法让信息看起来像天书一样复杂难懂;而解码者则要通过新的方法把它读成战场上的胜负手。最早的时候,人们只是用换语言或者编暗号的方式来保密交流。比如三个人聊天时,甲和乙不想让丙听懂他们的话,就可以换种语言或者约定一些暗号来表达意思。后来人们发明了多表代换这种方法来防止频率统计法失效。这样一来破译者就很难抓住规律了。香农给密码学定下了两条铁律:秘密性和真实性。所谓秘密性就是要保证信息不被别人知道;而真实性则是指接收者能够确认信息确实是发件人发出的。01电影里“哒哒”的声音到底在敲什么?02 2015年《模仿游戏》里“卷福”在银幕上敲击密码机,让艾伦·图灵走进了大众视野;03 国产谍战片里电文闪烁、情报瞬时破译的桥段也让观众肾上腺素飙升;04 别被节奏带跑——密码学的核心从来不是“解码”,而是“破译”。05 三人闲聊时最朴素的做法就是换语言或编暗号,于是密码学雏形诞生。06 单表代换被破解后编码者迅速升级——把一个明码对应多个密码。07 三位数学家花了几年时间才从每天数千条密文中读出意思。08 每天只有18小时窗口来破解Enigma的人工作几乎不可能完成。09 图灵小组造出Bomb(真名克里斯托弗)机器核心思路是先剪枝再穷举。10 最终Bomb在一小时内筛出有效密钥百万组Enigma被破译二战提前两年结束。11 从恺撒到Enigma密码学两千年博弈史本期先带大家回顾了最直观的单表与多表代换;12 下一篇我们将进入信息论时代看看矩阵计算数论与概率论如何联手打造经得起时间考验的RSA算法。