1.置换密码
2.代替密码
2.1单表代替密码
2.1.1加法密码
一种简单的替代密码。密钥域很小,易受使用穷举密钥搜索的纯密文攻击。凯撒密码就是一种典型的加法密码,基本思想是通过把字母移动一定的位数来实现加密和解密。明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量为3时,所有的字母A将被替换成D,B变成E,
2.1.2乘法密码
j=ik(mod n) ,gcd(k,n)=1,进而有i=jk(modn),密码才能正确解密。
乘法密码也称采样密码,因为密文字母表是将明文字母按照下标每隔k位取出一个字母排列而成。
例如对26个字母生成密码表(下标由0开始,0-25)
取k=9
明文字母 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 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
密文字母 a j s b k t c l u d m v e n w f o x g p y h q z i r
数组下标 0 9 18 1 10 19 2 11 20 3 12 21 4 13 22 5 14 23 6 15 24 7 16 25 8 17
关于求k逆元
欧拉定理(费马小定理)欧拉定理:
若a与n互质,那么有aφ(n)≡1(mod n)
则a-1 =a(φ(n)-1) (mod n)
2.1.3仿射密码
加法密码和乘法密码的结合
仿射密码是一种替换密码。它是一个字母对一个字母的。它的加密函数是
其中a和m互质,m是字母的数目。解码函数是
,其中a-1是a在Zm群的乘法逆元。
2.1.4密钥词语代替密码
2.2多表代替密码
最著名的多表代替密码:Vigenre密码
加密方法:根据密钥来决定用哪一行的密表来进行替换。
例如:明文是D ;密钥是C ;那么就在C对应的密表中找D对应的密文F
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
A -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
B -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
C -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
D -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
E -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
F -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
G -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
H -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
I -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
J -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
K -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
L -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
M -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
N -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
O -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
P -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
Q -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
R -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
S -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
T -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
U -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
V -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
W -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
X -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
Y -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
Z -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
2.3多名代替密码
多名代替密码是指映射一对多,每个明文字母可以加密成多个密文字母,是一个安全性较高的密码。
多名密码字母表:
3.代数密码
Vernam加密法也称一次一密(One-Time-Pad),用随机的非重复的字符集合作为输出密文.这里最重要的是,一旦使用了变换的输入密文,就不再在任何其他消息中使用这个输入密文(因此是一次性的).输入密文的长度等于原消息明文的长度.