⼏种常见密码形式
1、栅栏易位法。
即把将要传递的信息中的字母交替排成上下两⾏,再将下⾯⼀⾏字母排在上⾯⼀⾏的后边,从⽽形成⼀段密码。
举例:
TEOGSDYUTAENNHLNETAMSHVAED
解:
将字母分截开排成两⾏,如下
T E O G S D Y U T A E N N
H L N E T A M S H V A E D
再将第⼆⾏字母分别放⼊第⼀⾏中,得到以下结果
THE LONGEST DAY MUST HAVE AN END.
课后⼩题:请破解以下密码
Teieeemrynwetemryhyeoetewshwsnvraradhnhyartebcmohrie
2、恺撒移位密码。
也就是⼀种最简单的错位法,将字母表前移或者后错⼏位,例如:
明码表:ABCDEFGHIJKLMNOPQRSTUVWXYZ
密码表:DEFGHIJKLMNOPQRSTUVWXYZABC
这就形成了⼀个简单的密码表,如果我想写frzy(即明⽂),那么对照上⾯密码表编成密码也就是iucb(即密⽂)了。密码表可以⾃⼰选择移⼏位,移动的位数也就是密钥。
课后⼩题:请破解以下密码
dtzwkzyzwjijujsixtsdtzwiwjfrx
3、进制转换密码。
⽐如给你⼀堆数字,乍⼀看头晕晕的,你可以观察数字的规律,将其转换为10进制数字,然后按照每个数字在字母表中的排列顺序,
拼出正确字母。
举例:110 10010 11010 11001
解:
很明显,这些数字都是由1和0组成,那么你很快联想到什么?⼆进制数,是不是?嗯,那么就试着把这些数字转换成⼗进制试试,得到数字6 18 26 25,对应字母表,破解出明⽂为frzy,呵呵~
课后⼩题:请破解以下密码
11 14 17 26 5 25
4、摩尔斯密码。
翻译不同,有时也叫摩尔密码。*表⽰滴,-表⽰哒,如下表所⽰⽐如滴滴哒就表⽰字母U,滴滴滴滴滴就表⽰数字5。另外请⼤家不要被滴哒的形式所困,我们实际出密码的时候,有可能转换为很多种形式,
例如⽤0和1表⽰,迷惑你向⼆进制⽅向考虑,等等。摩尔斯是我们⽣活中⾮常常见的⼀种密码形式,例如电报就⽤的是这个哦。下次再看战争⽚,⾥⾯有发电报的,不妨⾃⼰试着破译⼀下电报
内容,看看导演是不是胡乱弄个密码蒙骗观众哈~由于这密码也⽐较简单,所以不出⼩题。
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 --**
数字
0 ----- 1 *---- 2 **--- 3 ***-- 4 ****-
5 *****
6 -****
7 --***
8 ---**
9 ----*
常⽤标点
句号 *-*-*- 逗号 --**-- 问号 **--**
长破折号 -***- 连字符 -****- 分数线 -**-*
5、字母频率密码。
关于词频问题的密码,我在这⾥提供英⽂字母的出现频率给⼤家,其中数字全部是出现的百分⽐:
a 8.2
b 1.5
c 2.8
d 4.3
e 12.7
f 2.2
g 2.0
h 6.1
栅栏密码翻译器i 7.0 j 0.2 k 0.8 l 4.0
m 2.4 n 6.7 o 7.5 p 1.9
q 0.1 r 6.0 s 6.3 t 9.1
u 2.8 v 1.0 w 2.4 x 0.2
y 2.0 z 0.1
词频法其实就是计算各个字母在⽂章中的出现频率,然后⼤概猜测出明码表,最后验证⾃⼰的推算是否正确。这种⽅法由于要统计字母出现频率,需要花费时间较长,本⼈在此不举例和出题了,有兴趣的话,参考《跳舞的⼩⼈》和《⾦甲⾍》。
6、维热纳尔⽅阵。
上⾯所说的频率分析,很容易破解较长篇幅的密⽂,于是维热纳尔继承前⼈的经验,创造出了这个维热纳尔⽅阵,从⽽克服了词频分
析轻易能够破解密码的弊端,成为⼀种较为强⼤的密码编译形式。
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
1 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 A
2 C 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
3 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
4 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 D
5 F G H I J K L M N O P Q R S T U V W X Y Z A B C D E
6 G H I J K L M N O P Q R S T U V W X Y Z A B C D E F
7 H I J K L M N O P Q R S T U V W X Y Z A B C D E F G
8 I J K L M N O P Q R S T U V W X Y Z A B C D E F G H
9 J K L M N O P Q R S T U V W X Y Z A B C D E F G H I
10 K L M N O P Q R S T U V W X Y Z A B C D E F G H I J
11 L M N O P Q R S T U V W X Y Z A B C D E F G H I J K
12 M N O P Q R S T U V W X Y Z A B C D E F G H I J K L
13 N O P Q R S T U V W X Y Z A B C D E F G H I J K L M
14 O P Q R S T U V W X Y Z A B C D E F G H I J K L M N
15 P Q R S T U V W X Y Z A B C D E F G H I J K L M N O
16 Q R S T U V W X Y Z A B C D E F G H I J K L M N O P
17 R S T U V W X Y Z A B C D E F G H I J K L M N O P Q
18 S T U V W X Y Z A B C D E F G H I J K L M N O P Q R
19 T U V W X Y Z A B C D E F G H I J K L M N O P Q R S
20 U V W X Y Z A B C D E F G H I J K L M N O P Q R S T
21 V W X Y Z A B C D E F G H I J K L M N O P Q R S T U
22 W X Y Z A B C D E F G H I J K L M N O P Q R S T U V
23 X Y Z A B C D E F G H I J K L M N O P Q R S T U V W
24 Y Z A B C D E F G H I J K L M N O P Q R S T U V W X
25 Z 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
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
以上就是维热纳尔⽅阵,它由明码表(第⼀⾏的字母)、密码表(下⾯26⾏)和密钥组成,下⾯我举个例⼦说明。
举例:
密钥:frzy
密码:qfuc
解:第⼀个字母,看以f开头第五⾏,对应明码表查q字母所标⽰的字母为l。以此类推出后⾯字母。所得明⽂为love。
这个也不出⼩题了,只要有密钥,再复杂的密码也能查出来,就是个查表的问题~
⼀些新兴的密码形式:
1、利⽤键盘
⽆论是计算机键盘,还是收集键盘,都是出密码的好⼯具哦,可以⽤错位、或者排列形状等。使⽤⼿机键盘和这个同理。另外⼿机键盘还可以在键盘的字母上做⽂章,例如你可以⽤51表⽰字母j,⽤73表⽰字母r等。
举例:
r4a6
这个密码利⽤计算机键盘,将明⽂字母分别向上移动⼀个位置,得到密⽂。破解结果为frzy。
852 74123 741236987 426978974123456 7412369
这排数字是不是很晕?其实很简单,对照⼩键盘,依次打这些字母,看组成的形状就⾏了。答案是I L O V E U。
课后⼩题:请破解以下密码
18 29 19 34 13 17
2、字母形状
本⼈曾经收到过这样⼀个密码短信,不幸被破解,导致发短信⼈被我⾮常严肃地奚落了⼀番!
前⾯我不记得了,只记得后⾯是hep poo6。这个你可以从⼿机⾥打出来,然后把⼿机倒过来看,形成了密码的明⽂,good day~~~
古典密码体现了现代密码学的两⼤基本思想-代替和置换(换位)。
代替密码:代替密码就是将明⽂字母表中的每个字符替换为密⽂字母表中的字符。这⾥对应密⽂字母可能是⼀个,也可能是多个。接收者对密⽂进⾏逆向替换即可得到明⽂
换位密码:在换位密码中,明⽂字符集保持不变,只是字母的顺序被打乱了。⽐如简单的纵⾏换位,就是将明⽂按照固定的宽度写在⼀张图表纸上,然后按照垂直⽅向读取密⽂。
1、单码加密法  具有固定替换模式的加密⽅法,即明⽂中的每个字母就由密⽂中的⼀个字母所替换。
1.1 移位密码
明⽂空间P、密⽂空间C都是和密钥空间K满⾜,即把26个英⽂字母与整数0,1,2,…,25⼀⼀对应。
加密变换,E={E:Z26→Z26, Ek (p) = p + k (mod26)| p∈P, k∈K }
解密变换,D={D:Z26→Z26, Dk (c) = c-k (mod26)| c∈C, k∈K }
解密后再把Z26中的元素转换英⽂字母。
显然,移位密码是前⾯⼀般单表替代密码的⼀个特例。当移位密码的 密钥k=3时,就是历史上著名的凯撒密码(Caesar)。根据其加密函数特 点,移位密码也称为加法密码。
1.2 仿射密码
仿射密码也是⼀般单表替代密码的⼀个特例,是⼀种线性变换。仿射密码的明⽂空间和密⽂空间与移位密码相同,但密钥空间为 K=
{(k1,k2)| k1,k2∈Z26,gcd(k1,26)=1}
对任意p∈P,c∈C,k = (k1,k2)∈K,定义加密变换为 c = Ek (p) = k1 p +k2 (mod 26)
相应解密变换为: p = Dk (c) = k1-1 (c-k2) (mod 26)
其中,K1K1-1=1mod26 。很明显,k1=1时即为移位密码,⽽k2=1则称为乘法密码。
2 多码加密法  多码加密法使⽤从明⽂字母到密⽂字母的多个映射来隐藏单字母出现 的频率分布,每个映射是简单替代密码中的⼀对⼀映射多表替代密码将 明⽂字母划分为长度相同的消息单元,称为明⽂分组,对明⽂成组地进 ⾏替代,同⼀个字母有不同的密⽂,改变了单表替代密码中密⽂的唯⼀ 性,使密码分析更加困难。
2.1 Vigenere加密法
该密码体制有⼀个参数n。在加解密时,同样把英⽂字母映射为0-25的数字再进⾏运算,并按n个字母⼀组进⾏变换。明⽂空间、密⽂空间及密钥空间都是长度为n的英⽂字母串的集合,因此可表⽰
加密变换定义如下:
设密钥 k=(k1,k2,…,kn), 明⽂p=(p1,p2,…,pn), 加密变换为:
Ek(p)=(c1,c2,…,cn),
其中ci(pi + ki)(mod26),i =1,2,…,n
对密⽂ c=(c1,c2,…,cn), 解密变换为:
Dk(c)=(p1,p2,…,pn), 其中 pi=(ci -ki)(mod26),i =1,2,…,n
2.2 Playfair密码
Playfair密码出现于1854年,它将明⽂中的双字母组合作为⼀个单元对待,该加密法是基于⼀个关键词的,该关键词填写在⼀个5*5的矩阵中(去出重复字母和字母j),通过该矩阵完成对明⽂、密⽂的加密、解密过程。
加密描述:Playfair加密算法将明⽂中的双字母组合作为⼀个单元对待,并将这些单元转换位密⽂双字母组合。加密过程把密钥填写在⼀个5*5的矩阵中(去出重复字母和字母j),矩阵中其它未⽤到的字母按顺序填在矩阵剩余位置中。
对明⽂加密规则如下:
1 若p1 p2在同⼀⾏,对应密⽂c1 c2分别是紧靠p1 p
2 右端的字母。其中第⼀列被看做是最后⼀列的右⽅。
2 若p1 p2在同⼀列,对应密⽂c1 c2分别是紧靠p1 p2 下⽅的字母。其中第⼀⾏被看做是最后⼀⾏的下⽅。
3 若p1 p2不在同⼀⾏,不在同⼀列,则c1 c2是由p1 p2确定的矩形的其他两⾓的字母,并且c1和p1, c2和p2同⾏。
4 若p1 p2相同,则插⼊⼀个事先约定的字母,⽐如Q 。
5 若明⽂字母数为奇数时,则在明⽂的末端添加某个事先约定的字母作为填充。
解密描述:Playfair解密算法⾸先将密钥填写在⼀个5*5的矩阵中(去出重复字母和字母j),矩阵中其它未⽤到的字母按顺序填在矩阵剩余位置中,根据替换矩阵由密⽂得到明⽂。
对密⽂解密规则如下:
1 若c1 c2在同⼀⾏,对应明⽂p1 p2分别是紧靠c1 c
2 左端的字母。其中最后⼀列被看做是第⼀列的左⽅。
2 若c1 c2在同⼀列,对应明⽂p1 p2分别是紧靠c1 c2 上⽅的字母。其中最后⼀⾏被看做是第⼀⾏的上⽅。
3 若c1 c2不在同⼀⾏,不在同⼀列,则p1 p2是由c1 c2确定的矩形的其他两⾓的字母,并且c1和p1, c2和p2同⾏。
3、换位密码 明⽂的字母保持相同,但顺序被打乱了
3.1 列置换密码
明⽂以固定的宽度⽔平的写在⼀张图表纸上,密⽂按垂直⽅向读出,解密就是密⽂按相同的宽度垂直的写在图表纸上,然后⽔平的读出明⽂。