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

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

1.置換密碼

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

明文:this is transposition cipher

密文:rehp ic noitisopsnart sisiht

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

原始明文:this is transposition cipher

排成矩陣:

1.jpeg

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

形成密文:tiao ii rhsnsopitsinh srptce

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

明文:this is transposition cipher

詞語(yǔ)密鑰:password

排成矩陣:

2.jpeg

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

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

2.替代密碼

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

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

E(m)=(m+k)modn

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

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

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

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

下面簡(jiǎn)要介紹一下維吉尼亞密碼。該密碼體制有一個(gè)參數(shù)n,在加解密時(shí),同樣把英文字母映射為0~25的數(shù)字再進(jìn)行運(yùn)算,并按n個(gè)字母一組進(jìn)行變換。明文空間、密文空間及密鑰空間都是長(zhǎng)度為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。

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

THEEND

最新評(píng)論(評(píng)論僅代表用戶(hù)觀點(diǎn))

更多
暫無(wú)評(píng)論