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

简介: 之前介绍了很多现代密码学相关的知识,俗话说得好,要站在巨人的肩膀上, 因此呢,接下来聊一聊古典密码的有关知识(才不是因为我现在没素材了, 手动狗头),古典密码相比于现代密码而言,更多的是一些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结构的读者, 可以翻翻我之前写的文章, 或者自行查阅一下相关资料, 这里就不再展开讲了)。


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

相关文章
|
数据安全/隐私保护
【密码学】穴居人密码
【密码学】穴居人密码
134 1
|
数据安全/隐私保护
CTF密码学·置换密码,栅栏密码,曲路密码
1.置换密码 置换密码(Permutation Cipher)又叫换位密码(Transposi-tionCipher),它根据一定的规则重新排列明文,以便打破明文的结构特性。置换密码的特点是保持明文的所有字符不变,只是利用置换打乱了明文字符的位置和次序
1049 1
CTF密码学·置换密码,栅栏密码,曲路密码
|
Rust 算法 数据安全/隐私保护
【密码学】一文读懂XTEA加密
本篇文章,我们来看一下上一次讲过的TEA加密算法的一个升级版XTEA, 相比于TEA, XTEA的安全性显然是更高的,其中的过程要比TEA稍微复杂一点点。
1285 0
【密码学】一文读懂XTEA加密
|
Web App开发 Rust 算法
【密码学】一文读懂ChaCha20
好久没写新的加密算法的原理了, 这次所选取的加密算法结构比较简单, 一起来看一下吧。
7809 0
【密码学】一文读懂ChaCha20
|
7月前
|
数据安全/隐私保护 C++
【C++】凯撒密码 实现加密与解密
【C++】凯撒密码 实现加密与解密
|
数据安全/隐私保护
【密码学】维京密码
【密码学】维京密码
90 1
|
数据安全/隐私保护
【密码学】密码棒密码
【密码学】密码棒密码
326 0
|
算法 数据安全/隐私保护 Python
|
人工智能 数据安全/隐私保护
密码学小传——凯撒密码的解密起源
密码学小传——凯撒密码的解密起源
228 0
|
算法 数据安全/隐私保护 Python
Python编程:实现凯撒密码加密解密
Python编程:实现凯撒密码加密解密
705 0
Python编程:实现凯撒密码加密解密