密码学简史(一)--- 谍战中的古典密码学

密码学数千年的发展史,加密与解密双方一次次的对立搏杀,就是一场旷日持久,没有终点的智力追逐,没有永远的胜者,也不存在终极解决方案。你的敌人永远不会睡着,即便你现在占尽优势,他们也不会认输,而是会暗中进化,直到变强的那一天再来击败你。在加密与解密的千年对抗中,无数天才投身其中,了解它就如同置身一场顶尖的智力追逐赛,数千年来,人类最顶尖的头脑如何相互提防、彼此碰撞,又如何在击败眼前的敌人后,被身后的对手击倒……

古典密码学,在加密和解密的过程中,最小操作单位都是单个字符或者符号。现代密码学,把研究对象用数来描述,再对数进行运算,不但突破了字母作为最小变化单位的限制,还可以使用更高等的数学工具做运算,因此破译就变得越来越困难。可以说,加密时所用的数学工具,决定了一个密码能否被破译。

把研究对象用数来描述,主要是伴随着计算机出现的,计算机要想处理字符或符号信息,需要把所有字符或符号编码为二进制的0和1,才能使用更高等的数学工具对这些数进行运算处理。因此,可以把计算机出现之前的密码学叫做古典密码学,之后的叫做现代密码学。

1. 隐藏法

最原始的第一代加密法说起来很简单,就是把信息隐藏起来,因此称为隐藏法。从有文字出现,一直到现在都在用,破解方法就是认真搜找。

史上第一个加密法的记载,是古希腊历史学家希罗多德记录的一个加密术的故事,发生在他出生前三百多年。当时,强大的波斯帝国计划入侵希腊,斯巴达曾经的老国王得知后,偷偷把这个消息写在木板上又涂了一层蜡。这片木板成功躲过沿路卫兵的检查,到达斯巴达,收信人刮开表面的那层蜡,就发现了下面的密报。公元前480年,波斯舰队以为对方毫无准备,结果自己一天之内200多艘战舰被击沉,五年多的准备毁于一旦。可以说,这次密报挽救了雅典和斯巴达,其实也等于挽救了现代文明(现代文明有两个思想根源:一个是公元前5世纪巅峰时期的古希腊思想;另一个是后来的基督教思想)。

类似的隐藏法在希罗多德的记录中还有更高级的形式,比如先把送信人的头发剃光,然后把保密消息写在那人的头皮上,等他头发长出来后,让送信人出发,到了目的地再把头发剃光,保密消息就读出来了。再比如在熟鸡蛋壳上用一种药水(明矾和醋)写密文,之后蛋壳上不会有痕迹,只能剥了皮才能看到蛋白上有字。

这些隐藏法对付完全小白的人还可以,对付稍加提防的卫兵就不灵了,让他们留意一下蜡板、头发颜色,见到熟鸡蛋就剥皮检查等,保密信息就全部暴露了。但自从有了文字后人们就一直在用,直到今天人们藏私房钱时用的还是这个套路。

2. 移位法与替代法

有很多家长爱翻孩子的日记,但假如孩子们使用移位法或替代法对文字进行简单加密,就完全可以把日记本摆在桌上,任凭家长怎么看也不知道写了什么。

移位与替代加密法是大约五千年前出现的,直到9世纪才被阿拉伯人发明的频率分析法破解,中间隔了足足有四千年。在另一边的欧洲,直到16世纪都没掌握这种破解方法,由此可以感受到阿拉伯文明曾经的辉煌。

移位法很简单,举个例子,比如我的车牌号是1874,把每个数字都在数列中往后加1,那么1874就变成了2985。因为都是数字你可能觉得反差不大,但如果字母也这样变化,看起来就很不一样了。字母顺序改变也是一样,从a排列到z,比如我要对hello world加密,加密规则是每个字母都向后移动两位,“hello world”就变成了“jgnnq yqtnf”,这就是移位加密法。

替代法也很好理解,就是把文中一部分字母用其它字母代替。比如“For man is man and master of his fate”,如果把其中的a都用z代替,o用y代替,e用w代替,i用x代替,就成了一段谁都看不出来的文字“Fyr mzn xs mzn znd mzstwr yf hxs fztw”。

大约在距今五千多年前,古埃及人就在文字中使用了移位和替代法,这个方法广泛运用了接近四千年时间。在漫长的时间里也出现了很多变种,比如顺序倒着写,奇数位与偶数位的变化不一样,把奇数和偶数位的字母拆分后首位相连等。因为这种加密法涉及的排列组合数量非常多,想用穷举试错法破解几乎是不可能的,所以在这种加密法出现后的四千年内都没有有效的破解方法。

第二代的移位法和替换法的安全性很好,也比较好用,但到了16世纪这个局面扭转了,因为概率论的出现,这两种加密法可以破解了,破解方法叫做“频率分析法”。它的原理很简单,英文中字母出现的频率是不一样的,比如字母e是出现频率最高的占12.7%;其次是t占9.1%;然后是a、o、i、n等,最少的是z只占0.1%。
英文字母出现频率图
如果使用移位或替换法加密的字符总量足够多,全部搜集到一起统计哪个符号出现的比例最高,那个字符大概就是字母e。当然有些字母出现的频率极为接近,比如h、r、s分别是6.09%、5.98%、6.32%,但只要稍微留意字母前后的关联,就可以区分出来。比如t几乎不可能出现在b、d、g、j、k、m、q这些字母的旁边,h和e经常连在一起,ee一起出现的频率远比aa一起出现高得多等等。

频率分析法的实质,就是大幅度降低字母排列组合的可能性。从前我们假设每个符文都可能使26个字母的任意一个,有多少个替代符号出现,就有26的多少次方种可能。但频率分析法把很多符号的可能性大大降低,有的降低为只有1种可能,有的降低为只有2-3种可能。这样一来,即便第一步统计各种符号出现的频率时并不完全确定,但只要再根据拼写规律筛选一下,替代符号对应的真实字母就确定了。

解密方法公布后,替代法就不再有效了&

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

流云IoT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值