早恋与加密第一回: 古典加密

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 早恋与加密第一回: 古典加密

凯撒密码


老父亲我是一位程序员,打开 “情书” 一看,好家伙。果然是亲生的(当然不是指早恋。。),写个情书都浓浓的程序员气息。


LoryhwkuhhwklqjvwkhvxqwkhprrqdqgbrxWkhvxql viruwkhgdbwkhprrqlviruwkhqljkwdqgbrxiruhyhu


别人可能看不懂,老父亲还能不知道亲生儿子的伎俩么。凭他那点三脚猫功夫,最多来个古典加密。密文里面重复出现的 wkh 一下就露了馅。这家伙大概就是把明文的所有字母都按一定数目挪了一挪。比如所有字母都往右挪一位,a 变成 b, b 变成 c,用这种方式处理一下 I love you,密文就是 J mpwf zpv,自然就看不懂在说什么了。


对于这种古老的加密方式,暴力破解就足够了。就拿密文中频繁出现的 wkh 作突破口,虽然我不知道应该往回挪动几位,可是总共就 26 个英文字母,我试个 26 次也就出来了。


密文 移动位数 原文
wkh 1 vhg
wkh 2 uif
wkh 3 the


往回挪三位的时候,就出现了 the,终于像个英文单词了。可能挪动位数就是 3,对整个密文都往回挪 3 位尝试一下:

IlovethreethingsthesunthemoonandyouThesuni sforthedaythemoonisforthenightandyouforever


加点空格和标点,

I love three things:the sun ,the moon and you.

The sun is for the day ,the moon is for the night

and you forever.


故事说完了,来总结一下知识。上面说的加密方式其实是密码学史上很著名的一种加密方式。这个加密方法是以罗马共和时期恺撒的名字命名的,叫做 凯撒密码,当年恺撒曾用此方法与其将军们进行联系。其挪动字母的位数我们称之为 密钥空间 ,密钥空间越大,越难通过暴力破解。而凯撒密码的密钥空间是有限的,很容易遭到暴力破解。


简单替换密码


吃一堑,长一智。儿子的第二封情书又来了。

cjqtqtxxwzqtwnfqtxlskwnfqtxcwqxzzxewfxgjsxwhwlsxqbumbgfu bzekfzxwelbukbazjewmxqtwqygbllbelwzblxjnqtxfxxrlbuektxwzq


从密文中重复出现的单词 qtx 等来看,有点类似凯撒密码,但是作为程序员的儿子,肯定不会犯同样的错误了。基于凯撒密码的弱点,密钥空间不足,这次采取的加密方式肯定不能通过暴力破解来解密了。很容易想象到同属古典加密的简单替换密码,依次将明文中的每一个字母按照替换表换成另一个字母。乍看和凯撒密码一样,都是逐个字母替换成其他字母。但是由于简单替换密码并非按一定位数直接挪动,它的替换表中的字母是是随机对应的,仍以 26 个字母为例,a 可能对应 xb 可能对应 n,总之,26 个字母乱序对应。那么,简单替换密码的密钥空间是多少呢?a 可以对应 26 个字母,b 可以对应 25 个字母,依次类推,密钥空间总数就是 26 * 25 * 24 * 23 * ...,大概是 4*10^26,所以通过暴力破解是不大可能解密的。


这里要介绍一种新的解密方式,叫 频率分析。在简单替换密码中,由于替换表在一次加密中是固定的,所以明文字母和密文字母也总是一一对应的,所以根据密文字母出现的频率,结合日常明文中字母出现的概率,总能看出一些端倪。下面先统计一下密文中字母出现的概率:


出现次数 密文字母
1 a、h、r、y
2 c、m
3 g、n、s
4 j、k、u
6 e、f
8 l、t、z
9 b
11 q
12 w
16 x


明文字母出现的概率其实是有一定规律的,e 是英语中最常用的字母,其出现频率为八分之一。最常用的 9 个字母 e,t,a,o,n,i,r,s 和 h 。全部英语单词中有一半以上是以 t,a,o,s 或 w 开头的。仅 10 个单词(the,of,and,to,a,in,that,it,is 和 I)就构成标准英语文章四分之一以上的篇幅。所以当密文长度越长,其实就越容易漏出破绽。当然上面的例子很短,只是为了方便说明频率分析法。


一般将密文中出现频率最高的字母替换为 e 总是没错的,这里先把 x 换成 E 。为了区分密文和明文,明文使用大写字母表示:


cjqtqtEEwzqtwnfqtElskwnfqtEcwqEzzEewfEgjsEwhwlsEqbumbgfu bzekfzEwelbukbazjewmEqtwqygbllbelwzblEjnqtEfEErlbuektEwzq


上面的密文已将所有 x 都替换成了 E。含有 e 的英文中最常见的单词就是 the 了,而且上面密文中也频繁出现了 qtE(粗体标注), 不妨假设这就是 the,可以得到密文 q 对应明文 t,密文t 对应明文 h,继续替换密文中相应字母:


cjTHTHEEwzTHwnfTHElskwnfTHEcwTEzzEewfEgjsEwhwlsETbumbgfu bzekfzEwelbukbazjewmETHwTygbllbelwzblEjnTHEfEErlbuekHEwzT


接下来就得靠经验(瞎蒙)了,第 5 到 第 12 个字母, THEEwzTH 后面的 EwzTH 应该是一个单词,想想什么单词是 exxth,很容易想到 earth,可以得到密文 w 对应明文 a,密文z 对应明文 r,继续替换:


cjTH THE EARTH Anf THE lskAnf THE cATERREeAfEgjsEAhAlsETbumbgfu bRekfREAelbukbaRjeAmETHATygbllbelARblEjn THE fEErlbuek HEART


cjTH THE EARTH Anf THE lskAnf ,with the ... and the ..., 这里的chTH 应该是 with, Anf 应该是 and, 用WID 分别替换cjf:


WITH THE EARTH AND THE lsk AND THE WATER REeADEgIsEAhAlsETbumbgDu bRekDREAelbukbaRIeAmETHATygbllbelARblEIN THE DEErlbuek HEART


REeADE 大概也只能是 remade 了。再次替换;

WITH THE EARTH AND THE lsk AND THE WATERREMADEgIsEAhAlsETbumbgDu bRMkDREAMlbukbaRIMAmETHATygbllbMlARblEIN THE DEErlbuMk HEART


结尾 Mk HEART 很容易想到 My heart,用 Y 代替 k :


WITH THE EARTH AND THE lsY AND THE WATER REMADE gIsEAhAlsET bu mbgDu bR MY DREAMl bu YbaRIMAmETHATygbllbMlARblEIN THE DEErl bu MY HEART


一时没有头绪了,再来看看重复字符串,发现了一个 bu,上面已标注。还是看看结尾来猜测,xx my heart,很容易想到 of my hearto 在明文中也是高频字母,这里的 b 在密文中出现了 9 次,也是高频字母,因此很有可能就是 of, 替换进去看一下:


WITH THE EARTH AND THE lsY AND THE WATER REMADE gIsEAhAlsET OF mOgD FOR MY DREAMl OF YOaR IMAmE THAT ygOllOMlAROlEIN THE DEErl OF MY HEART


果然又可以认出几个单词,上面加粗标注的 YOaR IMAmE 应当是 your image,继续替换:

WITH THE EARTH AND THE lsY AND THE WATER REMADE gIsEAhAlsET OF GOgD FOR MY DREAMl OF YOUR IMAGE THAT ygOllOMlAROlE IN THE DEErl OF MY HEART


OF GOgD FOR MY DREAMlgo什么d,除了金子 gold 好像也没什么单词了。dream 后面加个字母,除了加复数 s 好像也没什么选择。再替换这两个字母:

WITH THE EARTH AND THE SsY AND THE WATER REMADE gIsEAhASsET OF GOLD FOR MY DREAMS OF YOUR IMAGE THAT yLOSSOMS A ROSE IN THE DEErS OF MY HEART


s什么ysky, 什么lossoms,很适合查字典,blossomsKB 代替 sy :

WITH THE EARTH AND THE SKY AND THE WATER REMADE gIKE A hASKET OF GOLD FOR MY DREAMS OF YOUR IMAGE THAT BLOSSOMS A ROSE IN THE DEErS OF MY HEART


大致内容就全部出来了,手动渲染一下。

With the earth and the sky and the water,

remade, like a casket of gold.

For my dreams of your image that blossoms

a rose in the deeps of my heart.


看起来频率分析法很麻烦,但是对于专业破译者,其丰富的破解经验可以快速进行破译。从公元前开始,简单替换密码在几百年前的时间里一直被用于秘密通信。然而在阿拉伯学者发明频率分析法之后,这种密码就很容易破解了。


总结


凯撒密码是一种将明文字母按一定位数挪动形成密文的加密方法,因其密钥空间有限,可以暴力破解。

简单替换密码是一种将明文字母按替换表逐位替换形成密文的加密方法,其密钥空间极大,不可以暴力破解,但可以使用频率分析法进行破译。

凯撒密码实际上也是一种简单替换密码。


相关文章
|
6月前
|
算法 安全 关系型数据库
密码学系列之七:数字签名
密码学系列之七:数字签名
|
算法 网络安全 数据安全/隐私保护
【密码学】手摸手带你手算AES
本文带着大家手动计算了一下完整的简化版AES的整个流程,其实主要都参考了密码学与网络安全这本书,大部分的公式都是从这本书上来的,我是真的喜欢这个例子,麻雀虽小,五脏俱全,用来学习AES的入门感觉非常的合适,如果能够完整的自己手算下来这个例子,然后再去看完整版的AES算法,会简单非常多,主要就是规模扩大了一下,核心的流程还是上面这一套。最后,感谢能看到这里的读者,如果本文对大佬们理解AES有一点点的帮助,也不枉我手动敲了这么多的公式和矩阵了。
【密码学】手摸手带你手算AES
|
Rust 算法 数据安全/隐私保护
【密码学】一文读懂XTEA加密
本篇文章,我们来看一下上一次讲过的TEA加密算法的一个升级版XTEA, 相比于TEA, XTEA的安全性显然是更高的,其中的过程要比TEA稍微复杂一点点。
1265 0
【密码学】一文读懂XTEA加密
|
3月前
|
存储 安全 数据安全/隐私保护
解锁Python安全新姿势!AES加密:让你的数据穿上防弹衣,无惧黑客窥探?
【8月更文挑战第1天】在数字化时代,确保数据安全至关重要。AES(高级加密标准)作为一种强大的对称密钥加密算法,能有效保护数据免遭非法获取。AES支持128/192/256位密钥,通过多轮复杂的加密过程提高安全性。在Python中,利用`pycryptodome`库可轻松实现AES加密:生成密钥、定义IV,使用CBC模式进行加密与解密。需要注意的是,要妥善管理密钥并确保每次加密使用不同的IV。掌握AES加密技术,为数据安全提供坚实保障。
181 2
|
6月前
|
存储 安全 数据安全/隐私保护
加密的艺术:对称加密的奇妙之处(下)
加密的艺术:对称加密的奇妙之处(下)
加密的艺术:对称加密的奇妙之处(下)
|
人工智能 数据安全/隐私保护
密码学小传——凯撒密码的解密起源
密码学小传——凯撒密码的解密起源
224 0
|
算法 安全 数据安全/隐私保护
【密码学】 一篇文章讲透数字签名
数字签名(又称公钥数字签名)是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。它是一种类似写在纸上的普通的物理签名,但是在使用了公钥加密领域的技术来实现的,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。数字签名是非对称密钥加密技术与数字摘要技术的应用。数字签名可以识别消息是否被篡改, 并验证消息的可靠性, 也可以防止否认。
720 0
【密码学】 一篇文章讲透数字签名
|
数据安全/隐私保护 C++
恺撒加密(MOOC)(C++)
恺撒加密(MOOC)(C++)
126 0
|
算法 数据安全/隐私保护
【密码学】一文读懂凯撒密码
之前介绍了很多现代密码学相关的知识,俗话说得好,要站在巨人的肩膀上, 因此呢,接下来聊一聊古典密码的有关知识(才不是因为我现在没素材了, 手动狗头),古典密码相比于现代密码而言,更多的是一些trick或者说文字游戏,不过其中所蕴含的思想在现代密码当中也广泛出现,本文主要给大家介绍一下凯撒密码,这个古老但是又被众人都知晓的一个古典密码。
1417 0
【密码学】一文读懂凯撒密码
|
存储 算法 安全
漫画:什么是加密算法?
如何进行加密呢?古人想出了一种非常朴素的加密方法,被称为凯撒密码。加密的原理就像下图这样。
225 0
漫画:什么是加密算法?