密码攻击概述

唯密文攻击:

---攻击者掌握: 加密算法,截获的部分密文

已知明文攻击:

--攻击者掌握:加密算法,截获的部分密文,一个或多个明文密文对

选择明文攻击:

---攻击者掌握:加密算法,截获的部分密文,自己选择的明文消息以及密钥产生的相应密文

选择密文攻击:

---攻击者掌握:加密算法,截获的部分密文,自己选择的密文消息以及相应的被解密明文

古典密码

单表代换密码

凯撒密码

c=E3(m)m+3 (mod 26) 0<=m<=25
m=D3(c)m-3 (mod 26) 0<=c<=25
【其中3为加密解密的密钥,进行循环移位】

移位变换

c=Ek(m)m+k (mod 26), 0<=m,k<=25
m=Dk(c)c-k (mod 26), 0<=c,k<=25

仿射变换

c=Ea,b(m)am+b (mod 26)
m=Da,b(c)a-1(c-b) (mod 26)
【其中a-1表示a的逆元,a、b为密钥,满足gcd(a,26)=1】
例如:
c=E7,21(m)7m+21 (mod 26)
m=D7,21(c)7-1(c-21) (mod 26)
s=18, c= 7*18 + 21(mod 26)=17 则s => r

多表代换密码

多表代换密码首先讲将明文M分为n个字母构成的分组M1,M2,……,Mj,对每个分组的加密为:

CiAMi+B (mod N), i=1,2,……,j

其中(A,B)为密钥,A是m*n的可逆矩阵,满足gcd(|A|,N)=1(A是行列式)。
B=(B1, B2,……,Bn)T,
C=(C1,C2,……,Cn)T,
Mi=(m1,m2,……,mn)T

对Ci的解密为:

MiA-1(Ci-B) (mod N), i=1, 2, ……, j