網(wǎng)絡(luò)安全攻防:密碼技術(shù)之古典密碼

計算機與網(wǎng)絡(luò)安全
置換密碼是一種通過變換矩陣大小選出的順序組合,而密鑰僅僅是便于記憶。因此,置換密碼比較簡單,經(jīng)不起窮舉攻擊(窮舉攻擊無視順序),但值得注意的是,如果把它與其他密碼技術(shù)混合應(yīng)用,也是可以得到相對安全且高效的密碼。

1.置換密碼

置換密碼就是把明文中的字母或數(shù)字重新排列,字母或數(shù)字本身不變,但其位置發(fā)生了改變,示例如下。

明文:this is transposition cipher

密文:rehp ic noitisopsnart sisiht

顯然,本例是一種直接將明文按倒序排列的簡單置換加密算法,可被直接分析。因此,我們可進一步將明文按某一順序排成一個矩陣,然后按置換規(guī)則的順序選出矩陣中的字母序列,最后按固定長度讀取字母即形成密文,示例如下。

原始明文:this is transposition cipher

排成矩陣:

1.jpeg

置換規(guī)則:按列讀取

形成密文:tiao ii rhsnsopitsinh srptce

由此可以看出,改變矩陣的大小和置換規(guī)則可以得到不同形式的密碼。通常,我們先選定一個詞語作為密鑰,去掉重復(fù)字母然后按字典順序給密鑰字母一個數(shù)字編號,就可以得到一組與密鑰對應(yīng)的數(shù)字序列,最后以此數(shù)字序列作為置換規(guī)則選出密文。

明文:this is transposition cipher

詞語密鑰:password

排成矩陣:

2.jpeg

根據(jù)數(shù)字序列的置換規(guī)則,得到密文:hath ts iiphtripsocin iessor

其實,置換密碼是一種通過變換矩陣大小選出的順序組合,而密鑰僅僅是便于記憶。因此,置換密碼比較簡單,經(jīng)不起窮舉攻擊(窮舉攻擊無視順序),但值得注意的是,如果把它與其他密碼技術(shù)混合應(yīng)用,也是可以得到相對安全且高效的密碼。

2.替代密碼

替代密碼的原理是使用替代法進行加密,就是將明文中的字符用其他字符替代后形成密文。例如,明文字母a、b、c、d,用D、E、F、G做對應(yīng)替換后形成密文。

替代密碼包括多種類型,如單表替代密碼、多明碼替代密碼、多字母替代密碼、多表替代密碼等。下面我們介紹一種典型的單表替代密碼,凱撒(Caesar)密碼,又叫循環(huán)移位密碼。它的加密方法就是將明文中的每個字母用此字符在字母表中后面第k個字母替代。它的加密過程可以表示為:

E(m)=(m+k)modn

其中,m為明文字母在字母表中的位置數(shù);n為字母表中的字母個數(shù);k為密鑰;E(m)為密文字母在字母表中對應(yīng)的位置數(shù);modn為n的取模運算。

例如,對于明文字母H,其在字母表中的位置數(shù)為8,設(shè)k=4,則按照上式計算出來的密文為L。

E(8)=(m+k)modn=(8+4)mod 26=12=L

凱撒密碼是一種典型的單表替代算法,由于對明文字母進行統(tǒng)一的偏移替代,因此密鑰極易被窮舉破解。為了提高破解難度,多表替代密碼則是在加解密時使用了多個替換表,代表性算法有維吉尼亞密碼(Virginia)、希爾(Hill)密碼、一次一密鑰密碼、Playfair密碼等。

下面簡要介紹一下維吉尼亞密碼。該密碼體制有一個參數(shù)n,在加解密時,同樣把英文字母映射為0~25的數(shù)字再進行運算,并按n個字母一組進行變換。明文空間、密文空間及密鑰空間都是長度為n的英文字母串的集合,加密體制描述如下。

加密變換定義為:設(shè)密鑰k=(k1,k2,…,kn),明文m=(m1,m2,…,mn),密文c=(c1,c2,…,cn)。

加密變換為:Ek(m)=(c1,c2,…,cn),其中,ci=(mi+ki)mod26,i=1,2,…,n。

解密變換為:Dk(c)=(m1,m2,…,mn),其中,mi=(ci-ki)mod26,i=1,2,…,n。

例如,對明文this is substitution cipher進行替代加密。若采用凱撒密碼,密鑰K=1,則密文為uijt jt tvctujuvujpo djqifs;若采用維吉尼亞密碼,密鑰K=cipher,即K=(3,9,16,8,5,18),則密文為vpxz mj ucqzxzvcipse eqeoii。

THEEND

最新評論(評論僅代表用戶觀點)

更多
暫無評論