1.原理:
凯撒密码(Caesar)加密时会将明文中的 每个字母 都按照其在字母表中的顺序向后(或向前)移
动固定数目(循环移动)作为密文。例如,当偏移量是左移 3 的时候(解密时的密钥就是 3)
使用时,加密者查找明文字母表中需要加密的消息中的每一个字母所在位置,并且写下密文字母表
中对应的字母。需要解密的人则根据事先已知的密钥反过来操作,得到原来的明文。例如
明文:THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
密文:WKH TXLFN EURZQ IRA MXPSV RYHU WKH ODCB GRJ
明文密码表:#### 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
密文密码表:#### D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
与凯撒密码类似,区别在于移位密码不仅会处理字母,还会处理
数字和特殊字符,常用 ASCII 码表进行移位。其破解方法也是遍
历所有的可能性来得到可能的结果
原理
埃特巴什码(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
例子:
明文:the quick brown fox jumps over the lazy dog
密文:gsv jfrxp yildm ulc qfnkh levi gsv ozab wlt
工具:http://www.practicalcryptography.com/ciphers/classical-era/atbash-cipher/
原理
简单替换密码(Simple Substitution Cipher)加密时,将每个明文字母替换为与之唯一对应且不同
的字母。它与恺撒密码之间的区别是其密码字母表的字母不是简单的移位,而是完全是混乱的,这也使得
其破解难度要高于凯撒密码
明文字母 : abcdefghijklmnopqrstuvwxyz
密钥字母 : phqgiumeaylnofdxjkrcvstzwb
a 对应 p,d 对应 h,以此类推。
例子:
明文:the quick brown fox jumps over the lazy dog
密文:cei jvaql hkdtf udz yvoxr dsik cei npbw gdm
而解密时,我们一般是知道了每一个字母的对应规则,才可以正常解密。
破解:由于这种加密方式导致其所有的密钥个数是26! ,所以几乎上不可能使用暴力的解决方式。所以我们 一般采用词频分析。
l a y f a i r 普 来 费 尔
原理
Playfair 密码(Playfair cipher or Playfair square)是一种替换密码,1854 年由英国人
查尔斯·惠斯通(Charles Wheatstone)发明,基本算法如下:
1、选取一串英文字母,除去重复出现的字母,将剩下的字母逐个逐个加入 5 × 5 的矩阵内,剩
下的空间由未加入的英文字母依 a-z 的顺序加入。注意,将 q 去除,或将 i 和 j 视作同一字。
2、将要加密的明文分成两个一组。若组内的字母相同,将 X(或 Q)加到该组的第一个字母后,
重新分组。若剩下一个字,也加入 X 。
3、在每组中,找出两个字母在矩阵中的地方。
a. 若两个字母不同行也不同列,在矩阵中找出另外两个字母(第一个字母对应行优先),使这四
个字母成为一个长方形的四个角。
b.若两个字母同行,取这两个字母右方的字母(若字母在最右方则取最左方的字母)。
c.若两个字母同列,取这两个字母下方的字母(若字母在最下方则取最上方的字母)。
d.新找到的两个字母就是原本的两个字母加密的结果
以 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
原理
Polybius密码又称为棋盘密码,其一般
是将给定的明文加密为两两组合的数字,
其常用密码表,举个例子,明文 HELLO,
加密后就是 23 15 31 31 34。
例如:
明文:HELLO
密文:DD XF AG AG DF
原理
维吉尼亚密码(Vigenere)是使用一系列凯撒密码组成密码字母表的加密算法,属于多表密码的一
种简单形式。
例子:
明文:come greatwall
密钥:crypto
密文:efkt zferrltzn
原理¶
a.Nihilist密码又称关键字密码:明文 + 关键字 = 密文。以关键字 helloworld 为例。
b.首先利用密钥构造棋盘矩阵(类似 Polybius 密码) - 新建一个 5 × 5 矩阵 - 将字符不重复
地依次填入矩阵 - 剩下部分按字母顺序填入 - 字母 i 和 j 等价
对于加密过程参照矩阵 M 进行加密:
a -> M[2,3] -> 23
t -> M[4,5] -> 45
Ø 对于解密过程
参照矩阵 M 进行解密:
23 -> M[2,3] -> a
45 -> M[4,5] -> t
可以看出,密文的特征有如下几点
• 纯数字
• 只包含 1 到 5
• 密文长度偶数
原理
自动密钥密码(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
栏栅栏密码原理:
明文:Day is a lovely day
去掉空格后变为:Dayisalovelyday
分组(2个一组):Da yi sa lo ve ly da y
第一组(取第一个字符):Dyslvldy
第二组(取第二个字符):aiaoeya
连在一起即为密文:Dyslvldyaiaoeya
7栏栅栏密码原理就是分为7个一组,然后组合。
破解栅栏密码,首先需要先明确是几栏栅栏密码加密,然后进行破解。
曲路密码(Curve Cipher)是一种换位密码,需要双方事先约定密钥(也就是曲路路径)
原理:
明文:Your happiness often in the eyes of others
密文:soynfnh rioiefr eoenspu opsehsh tetteaY
破解曲路密码,首先需要先明确表填充的几行几列曲路密码加密,然后进行破解。
埃特巴什码(Atbash Cipher)是一种以字母倒序排列作为密钥的替换加密
埃特巴什码原理:
明文:Your happiness often in the eyes of others
密文:Blfi szkkrmvhh lugvm rm gsv vbvh lu lgsvih
ROT5/13/18/47加密是一种替换加密,它具有可逆性。ROT5/13/18/47是rotate by
5/13/18/47places的简写,意思是旋转几个位置。
只对数字进行编码,用当前数字往前数的第五个数字替换当前数字。比如当
前数字为0,替换后就变成5;当前数字为1,替换后就变成6;以此类推顺序循环。
只对字母进行编码,用当前字母往前数的第十三个字母替换当前字母,比如
当前字母为A,替换后变成N;当前字母为B,替换后就变成O;以此类推顺序循环。
它的编码规则是将ROT5和ROT13的编码规则组合在一起,比如当前明文是A0,
替换后就变成N5;当前明文是B1,替换后就变成O6;以此类推顺序循环。
ROT47;
用当前字符ASCII值往前数的第47位对应字符替换当前字符,比如当前为小写字母z,
工具:https://www.qqxiuzi.cn/bianma/ROT5-13-18-47.php
简单换位密码(Simple Substitution Cipher),它的加密方法是每个明文字
母都被唯一且不同的字母替换。它的密码字母表的字母不是简单的移位,而是完
全是混乱的
明文:Your happiness often in the eyes of others
字母对应关系:
明文字母:abcdefghijklmnopqrstuvwxyz
密文字母:phqgiumeaylnofdxjkrcvstzwb
密文:
破解简单换位密码,当密文数据足够多时可以通过字频分析方法破解或其他方
法破解。
希尔密码(Hill Cipher)是基于线性代数多重代换密码。每个字母转换成26进
制数字:A=0,B=1,C=2…Z=25一串字母当成n维向量,跟一个n*n的矩阵相乘,再
将得出的结果MOD26
明文:ACT
明文对应方阵:
加密密钥:GYBNQKURP
加密矩阵:
计算过程:
python解密代码
import numpy as np
m = 'ACT' #明文
a = np.matrix([[5,24,1],[13,16,10],[20,17,15]]) #密钥GYBNQKURP
num_m = []
temp = []
count = 1
for i in m: #将明文分为三个一组
temp.append(ord(i)-ord('A'))
if count % 3 == 0:
num_m.append(temp)
temp = []
count += 1
mat_m = [np.matrix(i).T for i in num_m] #将明文分组转换为向量形式
mat_c = [a * i % 26 for i in mat_m] #得到密文分组的向量形式
num_c = []
temp = []
for i in mat_c: #将密文向量转换为列表形式,且合并到一个列表
temp = i.tolist()
for j in range(3):
num_c.append(temp[j][0])
c = [chr(i+ord('A')) for i in num_c]
print(''.join(c)) #连接成字符串,输出密文
、
猪圈密码(Pigpen Cipher或称九宫格密码、朱高密码、共济会密码、共济会员密码),是一种
以格子为基础的简单替代式密码
密码表
圣堂武士密码(Templar Cipher)是共济会的“猪圈密码”的一个变种,一直被共济会圣殿骑士用。
明文字母和对应密文
明文字母和对应密文:
介绍
波利比奥斯方阵密码(Polybius Square Cipher或称波利比奥斯棋盘)是棋盘密码的一种,是
利用波利比奥斯方阵进行加密的密码方式,简单的来说就是把字母排列好,用坐标(行列)的形式
表现出来。字母是密文,明文便是字母的坐标。更多 参考
常见的排布方式
实例:
明文: THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
密文: 442315 4145241325 1242345233 213453 2445323543 442315 31115554 143422
打赏我,让我更有动力~
© 2016 - 2024 掌控者 All Rights Reserved.
君叹
发表于 2022-4-27
简单替换密码中那个密钥个数不是26个,可能想表达的意思是不像凯撒一样远远不止26个密钥,但是写错了
评论列表
加载数据中...
ZKAQ-枫
发表于 2022-5-12
这是宇哥吗
评论列表
加载数据中...