古典密码笔记

凯撒密码

凯撒密码(Caesar)加密时会将明文中的 每个字母 都按照其在字母表中的顺序向后(或向前)移动固定数目(循环移动)作为密文。

既:
当偏移量是左移 3 的时候(解密时的密钥就是 3):
明文字母表:ABCDEFGHIJKLMNOPQRSTUVWXYZ
密文字母表:DEFGHIJKLMNOPQRSTUVWXYZABC

根据偏移量的不同,还存在若干特定的恺撒密码名称:
偏移量为 10:Avocat (A→K)
偏移量为 13:ROT13
偏移量为 -5:Cassis (K 6)
偏移量为 -6:Cassette (K 7)

基于密钥的凯撒密码 Keyed Caesar
利用一个密钥,将密钥的每一位转换为数字(一般转化为字母表对应顺序的数字),分别以这一数字为密钥加密明文的每一位字母。
例如:
密文:s0a6u3u1s0bv1a
密钥:guangtou
偏移:6,20,0,13,6,19,14,20
明文:y0u6u3h1y0uj1u

工具:
JPK,可解带密钥与不带密钥
http://planetcalc.com/1434/
http://www.qqxiuzi.cn/bianma/ROT5-13-18-47.php

移位密码

与凯撒密码类似,区别在于移位密码不仅会处理字母,还会处理数字和特殊字符,常用 ASCII 码表进行移位。其破解方法也是遍历所有的可能性来得到可能的结果。

简单替换密码 (Simple Substitution Cipher)

加密时,将每个明文字母替换为与之唯一对应且不同的字母。它与恺撒密码的区别是其密码字母表的字母不是简单的移位,而是完全是混乱的。比如:
明文字母 : abcdefghijklmnopqrstuvwxyz
密钥字母 : phqgiumeaylnofdxjkrcvstzwb
完全由自己定义。

工具 :(词频分析)
http://quipqiup.com/

埃特巴什码(Atbash Cipher)

可以视为简单替换密码的特例,它使用字母表中的最后一个字母代表第一个字母,倒数第二个字母代表第二个字母。既:
明文:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
密文:Z Y X W V U T S R Q P O N M L K J I H G F E D C B A

工具 :
http://www.practicalcryptography.com/ciphers/classical-era/atbash-cipher/

以上密码都可以采用词频分析法破解

仿射密码

在这里插入图片描述
在这里插入图片描述
其特点在于只有 26 个英文字母。

Playfair

Playfair 密码(Playfair cipher or Playfair square)是一种替换密码,基本算法如下:
1.选取一串英文字母,除去重复出现的字母,将剩下的字母逐个逐个加入 5 × 5 的矩阵内,剩下的空间由未加入的英文字母依 a-z 的顺序加入。注意,将 q 去除,或将 i 和 j 视作同一字。
2.将要加密的明文分成两个一组。若组内的字母相同,将 X(或 Q)加到该组的第一个字母后,重新分组。若剩下一个字,也加入 X 。
3.在每组中,找出两个新字母在矩阵中的地方。
(1)若两个字母不同行也不同列,在矩阵中找出另外两个字母(第一个字母对应行优先),使这四个字母成为一个长方形的四个角。
(2)若两个字母同行,取这两个字母右方的字母(若字母在最右方则取最左方的字母)。
(3)若两个字母同列,取这两个字母下方的字母(若字母在最下方则取最上方的字母)。
新找到的两个字母就是原本的两个字母加密的结果。
既:
以 playfair example 为密匙,得
P L A Y F
I R E X M
B C D G H
K N O Q S
T U V W Z
假如要加密的讯息为 Hide the gold in the tree stump
两个一组排列后为:
HI DE TH EG OL DI NT HE TR EX ES TU MP
就会得到:
BM OD ZB XD NA BE KU DM UI XM MO UV IF

工具
CAP4

棋盘密码 Polybius

一般是将给定的明文加密为两两组合的数字,常用密码表为

在这里插入图片描述

举个例子,明文 HELLO,加密后就是 23 15 31 31 34。

另一种密码表
在这里插入图片描述注意,这里字母的顺序被打乱了。

工具
CrypTool

Vigenere 维吉尼亚密码

维吉尼亚密码(Vigenere)是使用一系列凯撒密码组成密码字母表的加密算法,属于多表密码的一种简单形式。

工具 :
1.已知密钥
(1)Python 的 pycipher 库
(2)在线解密 Vigenère cipher
(3)CAP4
2.未知密钥
(1)Vigenère Cipher Codebreaker

Nihilist

Nihilist 密码又称关键字密码:明文 + 关键字 = 密文。
以关键字 helloworld 为例:
首先利用密钥构造棋盘矩阵(类似 Polybius 密码) 新建一个 5 × 5 矩阵 - 将字符不重复地依次填入矩阵 - 剩下部分按字母顺序填入 - 字母 i 和 j 等价。既:在这里插入图片描述
对于加密过程参照矩阵 M 进行加密:
a -> M[2,3] -> 23
t -> M[4,5] -> 45
解密过程与之相反。

密文特征
1.纯数字
2.只包含 1 到 5
3.密文长度偶数。

希尔密码(Hill)

使用每个字母在字母表中的顺序作为其对应的数字,即 A=0,B=1,C=2 等,然后将明文转化为 n 维向量,跟一个 n × n 的矩阵相乘,再将得出的结果模 26。

注意用作加密的矩阵(即密匙)在
在这里插入图片描述 必须是可逆的,否则就不可能解码。只有矩阵的行列式和 26 互质,才是可逆的。

工具
1.http://www.practicalcryptography.com/ciphers/hill-cipher/
2.CAP4
3.Cryptool

AutokeyCipher

自动密钥密码(Autokey Cipher)也是多表替换密码,与维吉尼亚密码密码类似,但使用不同的方法生成密钥。
自动密钥密码主要有两种,关键词自动密钥密码和原文自动密钥密码。

以关键词自动密钥为例:
明文:THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
关键词:CULTURE
自动生成密钥:CULTURE THE QUICK BROWN FOX JUMPS OVER THE
接下来的加密过程和维吉尼亚密码类似,从相应的表格可得密文:
VBP JOZGD IVEQV HYY AIICX CSNL FWW ZVDP WVK

工具
1.已知关键词
Python 的 pycipher 库
2.未知关键词
(1)http://www.practicalcryptography.com/cryptanalysis/stochastic-
(2)searching/cryptanalysis-autokey-cipher/

培根密码

培根密码使用两种不同的字体,代表 A 和 B,结合加密表进行加解密。
在这里插入图片描述
另外的一种加密表,可认为是将 26 个字母从 0 到 25 排序,以二进制表示,A 代表 0,B 代表 1。
下面这一段内容就是明文 steganography 加密后的内容,正常字体是 A,粗体是 B:
To encode a message each letter of the plaintext is replaced by a group of five of the letters ‘A’ or ‘B’.

特点:
1.只有两种字符
2.每一段的长度为 5
3.加密内容会有特殊的字体之分,亦或者大小写之分。

工具
http://rumkin.com/tools/cipher/baconian.php

栅栏密码

栅栏密码把要加密的明文分成 N 个一组,然后把每组的第 1 个字连起来,形成一段无规律的话。
既:
明文:THERE IS A CIPHER
去掉空格后变为:
THEREISACIPHER
分成两栏,两个一组得到:
TH ER EI SA CI PH ER
先取出第一个字母,再取出第二个字母
TEESCPE
HRIAIHR
连在一起就是:
TEESCPEHRIAIHR

上述明文也可以分为 2 栏
THEREIS ACIPHER
组合得到密文:
TAHCEIRPEHIESR

工具
https://www.qqxiuzi.cn/bianma/zhalanmima.php

曲路密码

曲路密码(Curve Cipher)是一种换位密码,需要事先双方约定密钥(也就是曲路路径)。
既:
明文:The quick brown fox jumps over the lazy dog
填入 5 行 7 列表(事先约定填充的行列数):在这里插入图片描述加密的回路线(事先约定填充的行列数)
在这里插入图片描述
可得密文:gesfc inpho dtmwu qoury zejre hbxva lookT

列移位加密

列移位密码(Columnar Transposition Cipher)是一种换位密码,通过一个简单的规则将明文打乱混合成密文。

明文: The quick brown fox jumps over the lazy dog
密钥 :how are u
将明文填入 5 行 7 列表(事先约定填充的行列数,如果明文不能填充完表格可以约定使用某个字母进行填充)在这里插入图片描述按 how are u 在字母表中的出现的先后顺序进行编号,我们就有 a 为 1,e 为 2,h 为 3,o 为 4,r 为 5,u 为 6,w 为 7,所以先写出 a 列,其次 e 列,以此类推写出的结果便是密文:
在这里插入图片描述密文: qoury inpho Tkool hbxva uwmtd cfseg erjez

工具
http://www.practicalcryptography.com/ciphers/classical-era/columnar-transposition/ 行列数相等

01248 密码

又称为云影密码,使用 0,1,2,4,8 四个数字,其中 0 用来表示间隔,其他数字以加法可以表示出 如:28=10,124=7,18=9,再用 1->26 表示 A->Z。
例如:
题目:8842101220480224404014224202480122
我们按照 0 来进行分割,如下
在这里插入图片描述
所以最后的 flag 为 WELLDONE。

特点
只有 0,1,2,4,8

猪圈密码

猪圈密码是一种以格子为基础的简单替代式密码,格子如下在这里插入图片描述

舞动的小人密码

每一个跳舞的小人实际上对应的是英文二十六个字母中的一个,而小人手中的旗子则表明该字母是单词的最后一个字母,如果仅仅是一个单词而不是句子,或者是句子中最后的一个单词,则单词中最后一个字母不必举旗。

在这里插入图片描述

键盘密码

就是采用手机键盘或者电脑键盘进行加密。

此笔记摘录于:https://ctf-wiki.org/crypto/classical/introduction/
CTF Wiki
古典密码简介

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值