明文的字母保持相同,但顺序被打乱
栅栏密码把要加密的明文分成 N 个一组,然后把每组的第 1 个字连起来,得到密文
2栏的栅栏密码
明文:THERE IS A CIPHER
去掉空格后变为:THEREISACIPHER
两个一组,得到:TH ER EI SA CI PH ER
先取出第一个字母:TEESCPE
再取出第二个字母:HRIAIHR
连在一起得到密文:TEESCPEHRIAIHR
解密时,先把密文从中间分开,变为两行:
T E E S C P E
H R I A I H R
再按上下上下的顺序组合起来:
THEREISACIPHER
分出空格,得到明文:
THERE IS A CIPHER
明文:The quick brown fox jumps over the lazy dog
密文:gesfc inpho dtmwu qoury zejre hbxva lookT
事先约定行列数与曲路路径
和曲路密码相同,将明文写入事先约定的表格。按密钥在字母表中出现的先后顺序对列编号,按顺序写出整列就是密文
密文: qoury inpho Tkool hbxva uwmtd cfseg erjez
明文的每一个字符被替换成密文中的另一个字符。
明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推
可以通过穷举法破解
ROT5:只对数字进行编码,用当前数字往前数的第5个数字替换当前数字
ROT13:只对字母进行编码,用当前字母往前数的第13个字母替换当前字母
ROT18:将ROT5和ROT13组合在一起
ROT47:对数字、字母、常用符号进行编码,按照它们的ASCII值进行位置替换,用当前字符ASCII值往前数的第47位对应字符替换当前字符。用于ROT47编码的字符其ASCII值范围是33-126
将明文中所使用的字母替换为另一套字母表,形成新的对应关系,这种替换可以是任意的一对一关系
密钥空间$26!$,很难通过穷举法破解
每个明文字母被唯一的密文字母替代,可以通过词频分析破解
简单替换密码
常文: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
1 | 2 | 3 | 4 | 5 | |
---|---|---|---|---|---|
1 | a | b | c | d | e |
2 | f | g | h | i | k |
3 | l | m | n | o | p |
4 | q | r | s | t | u |
5 | v | w | x | y | z |
加密时在表格中找到明文,然后使用明文所在的行字符和列字符代替,比如明文为a,则密文为11
解密时在密码表里边找到行列所对应的字符就可以解密,比如密文为11,则明文为a
字符 | 电码 | 字符 | 电码 | 字符 | 电码 | 字符 | 电码 | 字符 | 电码 |
---|---|---|---|---|---|---|---|---|---|
A | .- | N | -. | . | .-.-.- | + | .-.-. | 1 | .- - - - |
B | -… | O | - - - | , | - -..- - | _ | ..- -.- | 2 | ..- - - |
C | -.-. | P | .- -. | : | - - -… | $ | …-..- | 3 | …- - |
D | -.. | Q | - -.- | “ | .-..-. | & | .-… | 4 | ….- |
E | . | R | .-. | ‘ | .- - - -. | / | -..-. | 5 | ….. |
F | ..-. | S | … | ! | -.-.- - | 6 | -…. | ||
G | - -. | T | - | ? | ..- -.. | 7 | - -… | ||
H | …. | U | ..- | @ | .- -.-. | 8 | - - -.. | ||
I | .. | V | …- | - | -….- | 9 | - - - -. | ||
J | .- - - | W | .- - | ; | -.-.-. | 0 | - - - - - | ||
K | -.- | X | -..- | ( | -.- -. | ||||
L | .-.. | Y | -.- - | ) | -.- -.- | ||||
M | - - | Z | - -.. | = | -…- |
直接查表就好。
a AAAAA g AABBA n ABBAA t BAABA
b AAAAB h AABBB o ABBAB u-v BAABB
c AAABA i-j ABAAA p ABBBA w BABAA
d AAABB k ABAAB q ABBBB x BABAB
e AABAA l ABABA r BAAAA y BABBA
f AABAB m ABABB s BAAAB z BABBB
AB代表A型B型,如不同字体,大小写
对于大小为m的字母系统
加密函数:$ e(x) = ax + b\space(mod\space m)$
解密函数:$ d(x) = a^{-1}(x - b)\space(mod\space m)$
密钥:$(a,b)$
a和m互素,b为小于m的正整数。
$a^{-1}$ 是a在$Z_m$群的乘法逆元,a与m互素蔡存在乘法逆元
$1 ≡ aa^{-1}\ mod\ m $
乘法逆元
数学领域群G中任意一个元素a,都在G中有唯一的逆元a‘,具有性质a×a’=a’×a=e,其中e为该群的单位元。
m = 26,a=1时为凯撒密码,该加密方程可简化为线性移动
小于26的正整数中有12个数与26互质,共有 12*26 = 312 个放射密码,除去26个凯撒密码还有286个,缺少复杂性
找到明文对应的列和密钥对应的行得到密文
明文根据密钥长度分组,组内偏移量一致,维吉尼亚密码相当于多个凯撒密码
密钥长度是破解维吉尼亚密码的关键
A | D | F | G | X | |
---|---|---|---|---|---|
A | b | t | a | l | p |
D | d | h | o | z | k |
F | q | f | v | s | n |
G | g | j | c | u | x |
X | m | r | e | w | y |
结合了改良过的Polybius方格替代密码与单行换位密码
i和j视为同一个字符,使字母数量符合5*5
加密时在表格中找到明文,然后使用明文所在的行字符和列字符代替
解密时在密码表里边找到行列所对应的字符
A | T | T | A | C | K | A | T | O | N | C | E |
---|---|---|---|---|---|---|---|---|---|---|---|
AF | AD | AD | AF | GF | DX | AF | AD | DF | FX | GF | XF |
密文AFADADAFGFDXAFADDFFXGFXF
利用一个移位钥匙加密。假设密钥是“CARGO”,将之写在新表格第一行。再将上一阶段密文写入。
C | A | R | G | O |
---|---|---|---|---|
A | F | A | D | A |
D | A | F | G | F |
D | X | A | F | A |
D | D | F | F | X |
G | F | X | F | X |
按密钥字母顺序「ACGOR」抄下整列,形成新密文
FAXDF ADDDG DGFFF AFAXX AFAFX
本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议(CC BY-NC-ND 4.0)进行许可。
This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License (CC BY-NC-ND 4.0).