查看全文
(Enigma)密码机牛在哪里?
1.机器加密
这是世界首台全自动的加密机器,而此前编码、译码一直靠人力。
我国由于国情原因,直到 20 世纪 80 年代还在用铅笔+纸的人肉编码方法。
用机器的好处不仅是省力,而且,可以轻松搞定人力难以企及的复杂算法。
2.复式替换
虽然基础原理和恺撒密码相同,但英格玛的字符替换方式却高级了不止一个档次:复式替换。
也就是说,如果你连打 3 个 A,恺撒密码的密文可能是 DDD,但英格玛的密文却可能是 BDA。
英格玛的神奇之处在于「转子」,它通过转动的方式实时改变替换方式,每敲一个字所用的替换方式都不同,这让依赖频率分析、概率统计的破解方法从此无的放矢。
原版的英格玛密码机只有一个转子,二战时期德军为了万无一失,把转子加到了 3 个。
每个转子都有独立的设置,3 个转子所有可能的设置,高达 105654 种组合!这样一来,连穷举法暴力破解的一线希望都断了念想。
正因为英格玛在当时太过逆天,以至于德军从此高枕无忧,以为盟军这辈子也别想破解了。
他们说得没错。单凭人力,是不可能干过英格玛密码机的。能够破解这台机器的,只能是另一台机器,一台算力更强大的机器。
马拉松运动员同志阿兰·图灵 1941 年发明的机器解码,用传统的频率分析+机器暴力穷举干掉了英格玛,从此军情六处把德军的情报兜了个底朝天。直到盟军诺曼底登陆,德国人还没有反应过来,他们正是被自己的传家宝坑死的。
而图灵的这台机器,就是世界上第一台计算机。
在计算机时代,复式替换加密从此跌落神坛、万劫不复。
而且实战中还发现,有时最容易攻破的反而不是算法,而是人。
只要搞定那个掌握密码本的人,一切密钥都不攻自破。
全民加密:RSA 技术
显然,拥有密码本的人越少越好。
但问题是 How?
曾经,这是个无解的难题。
道理很简单:密码本必须人手一本,否则卧底同志们还拿什么来加密通信呢?
历史告诉我们,当所有人都认为无解的时候,换个思路,往往就是柳暗花明、醍醐灌顶的时刻。
传统的密码学中,无论采用何种加密算法,都默默地遵循着一个思维定式:加密和解密是互逆的,也就是说,只要知道如何加密,就一定知道如何解密,反之亦然。
这被称为「对称加密」。
而世间还有一种「非对称加密」(RSA):我可以把加密方法公开给全世界(公钥),但解密算法(私钥)只有我一个人知道,就算你知道如何加密,也不可能据此推出如何解密。
RSA 为什么能做到「知道加密算法也推不出解密算法」?
这基于一个数学事实:将两个大素数相乘