【密码学】一文读懂凯撒密码

简介: 之前介绍了很多现代密码学相关的知识,俗话说得好,要站在巨人的肩膀上, 因此呢,接下来聊一聊古典密码的有关知识(才不是因为我现在没素材了, 手动狗头),古典密码相比于现代密码而言,更多的是一些trick或者说文字游戏,不过其中所蕴含的思想在现代密码当中也广泛出现,本文主要给大家介绍一下凯撒密码,这个古老但是又被众人都知晓的一个古典密码。

古典密码之凯撒密码


J%@CTE4K5X8)K625}H[ZH[M.jpg凯撒密码

之前介绍了很多现代密码学相关的知识,俗话说得好,要站在巨人的肩膀上, 因此呢,接下来聊一聊古典密码的有关知识(才不是因为我现在没素材了, 手动狗头),古典密码相比于现代密码而言,更多的是一些trick或者说文字游戏,不过其中所蕴含的思想在现代密码当中也广泛出现,本文主要给大家介绍一下凯撒密码,这个古老但是又被众人都知晓的一个古典密码。


历史

盖乌斯·尤利乌斯·恺撒(Gaius Julius Caesar,公元前100年7月13日—公元前44年3月15日) ,史称恺撒大帝,又译盖厄斯·儒略·凯撒、加伊乌斯·朱利叶斯·凯撒等,罗马共和国(今地中海沿岸等地区)末期杰出的军事统帅、政治家,并且以其优越的才能成为了罗马帝国的奠基者。

恺撒出身贵族,历任财务官、祭司长、大法官、执政官、监察官、独裁官等职。

公元前60年与庞培、克拉苏秘密结成前三头同盟,随后出任高卢总督,在8年的时间里征服了高卢全境(今法国一带),还袭击了日耳曼和不列颠。公元前49年,他率军占领罗马,打败庞培,集大权于一身,实行独裁统治。制定了《儒略历》。

据说,凯撒大帝对于"凯撒密码"特别喜欢,在他的日常通信过程当中,也都采用了这种加密方法,因此,凯撒在战争当中占据了优势地位,虽然说,在现代来看,这个密码确实比较low, 但是在当时,凯撒的对手们,也是无法获取通信内容的。


算法概述

凯撒密码的过程非常简单,这里不会有现代密码当中辣么多数学知识,应该是比较通俗易懂的,具体原理是: 将每个英文字母用其随后的三个字母来代替,也就是A->D, B->E, ..., x->A, Y->B, Z->C。因此的明文的LittleQ, 可以改写为OlwwohT, 如下图所示:

O0_8`()H7C2F291FHSP~B7Q.png

image.gif凯撒密码

这看起来似乎是比较简单,本质上,这是对字母的一个替换操作,如果说在英文字母表当中可以做任意移位,那么就会有26!种情况,利用乘法原理比较容易计算,在这里就不详细展开了。

如果说,采用数学公式来表示凯撒密码(n=3),那么将会是如下的一个表示:

  • 加密算法:
  • 解密算法:

其中n是密钥,当然这里的密钥空间比较小,只有25个, 特别的,如果n取13的话,这个密码也是有名字的,被称之为ROT13, 对于n=13,有个特殊的性质: , 也就是加密和解密实际是一个函数,要是有读者大佬不相信,可以自己试试, 我在下面贴一个ROT13的替换表蛤。

  • 「输入」: ABCDEFGHIJKLMNOPQRSTUVWXYZ
  • 「输出」: NOPQRSTUVWXYZABCDEFGHIJKLM


思考

对于凯撒密码,这个原理看起来非常简单,只是一个对于字母的替换操作,但是替换操作在现代密码学当中也比较常见。


回忆一下,我们之前讲过的DES加密,开始有一个置换的操作,这里是对比特进行的一个替换,本质上也是一个替换操作,和对于字母的替换操作有着异曲同工之妙(如果忘记了DES结构的读者, 可以翻翻我之前写的文章, 或者自行查阅一下相关资料, 这里就不再展开讲了)。


突然想到一句诗词, 众里寻他千百度, 蓦然回首那人却在灯火阑珊处, 看了这么多现代密码学的知识, 有些思想古人其实已经再用了, 只是没有形成单独的体系, 所以说, 了解一些密码学发展史, 有可能会对密码学当中的某些操作有新的认识。

相关文章
|
数据安全/隐私保护
【密码学】穴居人密码
【密码学】穴居人密码
131 1
|
数据安全/隐私保护
CTF密码学·置换密码,栅栏密码,曲路密码
1.置换密码 置换密码(Permutation Cipher)又叫换位密码(Transposi-tionCipher),它根据一定的规则重新排列明文,以便打破明文的结构特性。置换密码的特点是保持明文的所有字符不变,只是利用置换打乱了明文字符的位置和次序
976 1
CTF密码学·置换密码,栅栏密码,曲路密码
|
Rust 算法 数据安全/隐私保护
【密码学】一文读懂XTEA加密
本篇文章,我们来看一下上一次讲过的TEA加密算法的一个升级版XTEA, 相比于TEA, XTEA的安全性显然是更高的,其中的过程要比TEA稍微复杂一点点。
1240 0
【密码学】一文读懂XTEA加密
|
Rust 算法 安全
【密码学】一文读懂MurMurHash2
上次我们聊过了一代的MurMurHash算法,是的,我又来水文章了,今天呢,接着来聊一下二代的MurMurHash算法,二代算法的整体结构实际上和一代算法差不太多,只是对于每一轮数据的处理过程当中的运算有一些差异,算法的来源依然是来自于Google官网给提供的源码,对着源码看的结构,对于这个算法呢,有两个版本,一个是32位的,一个是64位的,对于32位的算法和64位的算法,区别在于两个初始的魔数不同,整体运算过程还是十分相似的。
2132 0
【密码学】一文读懂MurMurHash2
|
算法 安全 Go
【密码学】一文读懂HKDF
我这又来水一篇文章,来聊一下HKDF(基于HMAC的密钥导出函数)。密钥派生函数是密钥管理的组成部分,他的目标是通过一些初始的数据派生出来密码学安全的随机密钥。
3040 1
【密码学】一文读懂HKDF
|
数据安全/隐私保护
【密码学】维京密码
【密码学】维京密码
85 1
|
数据安全/隐私保护
【密码学】密码棒密码
【密码学】密码棒密码
299 0
|
算法 数据安全/隐私保护 Python
|
人工智能 数据安全/隐私保护
密码学小传——凯撒密码的解密起源
密码学小传——凯撒密码的解密起源
213 0
|
算法 数据安全/隐私保护 Python
Python编程:实现凯撒密码加密解密
Python编程:实现凯撒密码加密解密
684 0
Python编程:实现凯撒密码加密解密