多表代換密碼
- 多表代換密碼是以一系列代換表一次對明文消息的字母進行代換的加密算法。
- 設明文字母序列M=m1m2……,代換表序列大π=π1*π2……,密文序列C=大π(M)=π1(m1),π2(m2),……,
- 分類:
- 大π是非周期的無限序列,密碼成為非周期多表代換密碼;
- 大π是周期的無限序列,密碼成為周期多表代換密碼;
- 維吉尼亞密碼
1858年,法國外交家,密碼學家維吉尼亞提出該密碼系統
- 定義
- P=C=K=(Z26)^m,對任意一個k=(k1,k2,……,km),定義:
- 加密:(y1,y2,……,ym)=ek(x1,x2,……,xm)=(x1+k1,x2+k2,……,xm+km)mod26,
- 解密:(x1,x2,……,xm)=ek(y1,y2,……,ym)=(y1-k1,y2-k2,……,ym-km)mod26.
- P=C=K=(Z26)^m,對任意一個k=(k1,k2,……,km),定義:
- 優點
- 在維吉尼亞密碼中,一個字母可被映射到m個可能的不同字母,可將字母的出現頻率隱蔽或均勻化,從而有利於抗統計分析:
- 密鑰量為26^m,m較大時,窮舉密鑰方法不可行。(維吉尼亞自稱該密碼不可破譯,但現在利用專門破譯方法可以很容易破譯。)
- Hill密碼
- Hill密碼的實質是將明文向量右乘一個可逆矩陣(線性變換)得密文向量,解密將密文向量右乘逆矩陣即得明文。
- P=C=(Z)^n,K={Z上的n*n可逆矩陣},對任意一個k∈K,定義:
- 加密:y=e(x)=x*kmod26,
- 解密: x=d(y)=yk^-1mod26.
x=hill
k=(8 6 9 5
6 9 5 10
5 8 4 9
10 6 11 4)
Hill對應數字:7,8,11,11
加密:
y=e(x)=xkmod26
=(7,8,11,11)*kmod26
=(9,8,8,24)
=(J,I,I,Y)
- 注:x乘以k中第一列,這個第一列可以看成一個表;x乘以k中第二列,這個第二列可以看成一個表;......
- 一共有四列,四個密文的加密方法不同,增加了破譯的難度。
- Hill密碼的特點是每次對m個字母進行代換,同一字母可對應不同密文字母,且一個密文字母與多個明文字母有關系,容易將字母出現頻率隱蔽而有利於抗統計分析;
- 當m較大時,計算k的逆矩陣沒有有效的方法,這限制了它的廣泛應用。
M較小時可逆矩陣k的情況可被窮舉攻擊,理由是k的逆矩陣要求是整數元素,這就要求k的行列式=+1或-1,滿足這種條件的矩陣不是很多,可以窮舉出來。