置換密碼
列置換
加密:將明文按固定長m分組,即每行m個字母,在密鑰控制下按某一順序交換列,最後按列優先的順序依次讀出,即產生了密文。解密:逆過程。
周期置換
很大程度上同列置換,只不過加、解密時,在列交換後是按行優先的順序向下進行。
代換密碼
單表代換密碼
①加法密碼
A和B是有 n個字母的字母表。
定義一個由A到B的映射:f:A→B
f(ai )= bi=aj
j=i+k mod n
加法密碼是用明文字母在字母表中後面第 k個字母來代替。
K=3 時是著名的凱撒密碼。
愷撒密碼——歷史上第一個密碼技術
“愷撒密碼”是古羅馬愷撒大帝在營救西塞羅戰役時用來保護重要軍情的加密系統(《高盧戰記》)。
②乘法密碼
A和B是有n個字母的字母表。?定義一個由A到B的映射:f:A→B f(ai )= bi= aj j=ik mod n 其中,(n,k)=1。注意:只有(n,k)=1,才能正確解密。
③密鑰詞組代替密碼
隨機選一個詞語,去掉其中的重複字母,寫到矩陣的第一行,從明文字母表中去掉這第一行的字母,其餘字母順序寫入矩陣。然後按列取出字母構成密文字母表
多表代換密碼
單表代替密碼的安全性不高,一個原因是一個明文字母只由一個密文字母代替。可以利用頻率分析來破譯。故產生了更為安全的多表代換密碼,即構造多個密文字母表,在密鑰的控制下用以一系列代換表依次對明文訊息的字母序列進行代換。著名的多表代替密碼有Vigenere密碼等。
① Vernam密碼
明文、密文、密鑰都表示為二進制位:
M=m1,m2,… ,mn K =k1,k2,… ,kn C =c1,c2,… ,cn
②Playfair密碼
用密鑰控制生成矩陣,然後每兩個字母為單位進行代換。
③Hill密碼(乘積密碼)
建立在矩陣相乘的基礎上,但不能抵抗已知明文攻擊。