如果明文中不同的位置的同一明文本母在密文中對應的密文字母相同,則稱其為單錶密碼體制。
代表性的單錶密碼:
1.移位或加法密碼
2.乘數或乘法密碼
3.仿射密碼
4.金鑰短語密碼
下面分別舉乙個例子:
1.加法密碼演算法:
p=c=k=zm (zm∈)
ek(x)=x+k(mod m)=y∈c
dk(y)=y-k(mod m)=x∈p
當k=3時,該密碼演算法就是凱撒密碼。
e3(1)=1+3(mod 26)=4 1代表a,4代表d,所以就把明文a加密成d
d3(4)=4-3(mod 26)=1 所以把密文d,解密成明文a
這種演算法容易受到唯密文攻擊,由演算法可知,金鑰的可能性個數為m,如果是英語字母表,只有26個字母,那麼只要嘗試25種(不包括0,因為m=0就等於是明文了)金鑰,就能破解該演算法。
2.乘法密碼演算法
p=c=zm
k=ea(x)=ax (mod m) =y ∈c
da (y)=a-1y (mod m) =x ∈p
(a-1是a對於m的乘法逆元)
當m=26,
p=c=z26,
k=,ea(x)=ax (mod 26) =y ∈c
da (y)=a-1y (mod 26) =x ∈p
(a-1是a對於26的乘法逆元)
當a=9時,
逆元a-1=3
e9(x)=9x (mod 26)=y ∈c
d9(y)=3y (mod 26)=x ∈p
加密過程:字元b,對應的x=1 y=e9(x)=9*1 (mod 26)=9 替換為字元j
解密過程:字元j,對應y=9 x=d9(x)=9*3 (mod 26)=1 還原為字元b
對於乘數密碼,當且僅當a與26互素時,加密變換才是一對一對映的。
因此a的選擇只有11種:3,5,7,9,11,15,17,19,21,23,25,可能的金鑰只有11種!
3.仿射密碼演算法:
p=c=zm
k=e(a,b) (x)=ax + b (mod m)
d(a,b) (y)=a-1(y-b)(mod m)
當a=1時,變為加法密碼
當b=0時,變為乘法密碼
所以,加法密碼和乘法密碼是仿射密碼的特例。
設(a,b)=(7,3)
7-1=15
若加密明文:hot,首先轉換字母h,o,t成為數字7,14,19
4.金鑰短語密碼演算法:
一種以單詞為金鑰的換字表
取atmosphere為金鑰
去掉重複的字母e
得atmospher
放在字母表的某個位置
klnquvwxyzatmospherbcdfgij
abcdefghijklmnopqrstuvwxyz原來字母表
如果明文本母與代替的密文字母毫無關聯,那麼整個換字表就是金鑰,這時金鑰空間為26!,用窮舉法來破譯幾乎是不可能的。
古典密碼 置換密碼
置換密碼是一種通過一定規則改變字串中字元的順序從而實現加密的密碼演算法。常見的是將明文本串按照n個一行形成矩陣,然後再按列讀出,矩陣的列數 n 和按列讀出的順序便是金鑰。我們以字串 hello my cipher 為例來演示加密過程 選擇金鑰,我們這裡使用 4213 作為金鑰。該金鑰共4位,表示中間...
古典密碼之置換密碼
古典密碼編碼方法主要有兩種,即置換和代換。置換密碼 換位密碼 是一種早期的加密方法,與明文的字母保持相同,區別是順序被打亂了。加密方法 縱行換位密碼,在簡單的縱行換位密碼中,明文以固定的寬度水平的寫在一張圖表紙上,密文按垂直方向讀出,解密就是密文按相同的寬度垂直的寫在圖表紙上,然後水平的讀出明文。例...
古典密碼 凱撒密碼Caeser
在早期,凱撒密碼 caeser cipher 是指將密文平移三位,後來經過推廣,平移個數擴充套件為任意位,即移位密碼 shift cipher 凱撒密碼 caesar 加密時會將明文中的每個字母都按照其在字母表中的順序向後 或向前 移動固定數目 迴圈移動 作為密文。例如,當偏移量是左移 3 的時候 ...