資源描述:
《轉(zhuǎn)常用加密算法介紹》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、轉(zhuǎn)常用加密算法介紹5.3.1古典密碼算法古典密碼大都比較簡單,這些加密方法是根據(jù)字母的統(tǒng)計(jì)特性和語言學(xué)知識加密的,在可用計(jì)算機(jī)進(jìn)行密碼分析的今天,很容易被破譯。雖然現(xiàn)在很少采用,但研究這些密碼算法的原理,對于理解、構(gòu)造和分析現(xiàn)代密碼是十分有益的。表5-1給出了英文字母在書報(bào)中出現(xiàn)的頻率統(tǒng)計(jì)。表5-1英文字母在書報(bào)中出現(xiàn)的頻率字母ABCDEFGHIJKLM頻率13.059.028.217.817.286.776.646.645.584.113.602.932.88字母NOPQRSTUVWXYZ頻率2.772.622.151.511.491.391.281.000.420.3
2、00.230.140.09古典密碼算法主要有代碼加密、替換加密、變位加密、一次性密碼簿加密等幾種算法。1.代碼加密代碼加密是一種比較簡單的加密方法,它使用通信雙方預(yù)先設(shè)定的一組有確切含義的如日常詞匯、專有名詞、特殊用語等的代碼來發(fā)送消息,一般只能用于傳送一組預(yù)先約定的消息。密文:飛機(jī)已燒熟。明文:房子已經(jīng)過安全檢查。代碼加密的優(yōu)點(diǎn)是簡單好用,但多次使用后容易喪失安全性。2.替換加密將明文字母表M中的每個(gè)字母替換成密文字母表C中的字母。這一類密碼包括移位密碼、替換密碼、仿射密碼、乘數(shù)密碼、多項(xiàng)式代替密碼、密鑰短語密碼等。這種方法可以用來傳送任何信息,但安全性不及代碼加密。因
3、為每一種語言都有其特定的統(tǒng)計(jì)規(guī)律,如英文字母中各字母出現(xiàn)的頻度相對基本固定,根據(jù)這些規(guī)律可以很容易地對替換加密進(jìn)行破解。以下是幾種常用的替換加密算法。1)移位密碼是最簡單的一類代替密碼,將字母表的字母右移k個(gè)位置,并對字母表長度作模運(yùn)算,其形式為:ek(m)=(k+m)=cmodq,解密變換為:dk(c)=(m-k)=mmodq。凱撒(Caesar)密碼是對英文26個(gè)字母進(jìn)行移位代替的密碼,其q=26。這種密碼之所以稱為凱撒密碼,是因?yàn)閯P撒使用過k=3的這種密碼。2)乘數(shù)密碼也是一種替換密碼,它將每個(gè)字母乘以一個(gè)密鑰k,ek(m)=kmmodq,其中k和q是互素的,這樣字
4、母表中的字母會產(chǎn)生一個(gè)復(fù)雜的剩余集合,若是和q不互素,則會有一些明文字母被加密成相同的密文字母,而且不是所有的字母都會出現(xiàn)在密文字母表中。異或運(yùn)算(XOR)也常用于替換加密,加密:c=mXORk,解密:m=cXORk。3)多名或同音替換。每個(gè)字母可加密或替換成多個(gè)密文字母,這種方法是一種一對多的映射關(guān)系,可以挫敗一般的頻度分析攻擊。3.變位加密變位加密不隱藏明文的字符,即明文的字母保持相同,但其順序被打亂重新排列成另一種不同的格式,由于密文字符與明文字符相同,密文中字母的出現(xiàn)頻率與明文中字母的出現(xiàn)頻率相同,密碼分析者可以很容易地由此進(jìn)行判別。雖然許多現(xiàn)代密碼也使用換位,但
5、由于它對存儲要求很大,有時(shí)還要求消息為某個(gè)特定的長度,因而比較少用。以下介紹幾種常見的變位加密算法。1)簡單變位加密。預(yù)先約定好一組數(shù)字表示密鑰,將文字依次寫在密鑰下,再按數(shù)字次序重新組織文字實(shí)現(xiàn)加密,也有人喜歡將明文逆序輸出作為密文。例如密鑰:524163(密文排列次序)明文:信息安全技術(shù)密文:技息全信術(shù)安2)列變位法。將明文字符分割成個(gè)數(shù)固定的分組(如5個(gè)一組,5即為密鑰!),按一組一行的次序整齊排列,最后不足一組用任意字符填充,完成后按列讀取即成密文。如明文是:InformationSecurityTechnology,則分組排列為:InformationSecur
6、ityTechnology則密文是:ImnrelnaSicoftethgoicynyrouTo,這里的密鑰是數(shù)字5。解密過程則是按列排列密文,再按行讀取即可。3)矩陣變位加密。將明文中的字母按給定的順序安排在一個(gè)矩陣中,然后用另一種順序選出矩陣的字母來產(chǎn)生密文。一般為按列變換次序,如原列次序?yàn)?234,現(xiàn)為2413。如將明文NetworkSecurity按行排列在3×6矩陣中,如下所示:123456NetworkSecurity給定一個(gè)置換:,根據(jù)給定的次序,按5、2、6、4、1、3的列序重新排列,得到:526413oerwNtcuekSiyrt所以,密文為:oerwNt
7、cuekSiyrt。解密過程正好相反,按序排列密文后,通過列置換再按行讀取數(shù)據(jù)即可。4.一次性密碼簿加密一次性密碼簿加密具有代碼加密的可靠性,又保持了替換加密的靈活性,密碼簿每一頁都是不同的代碼表,可用一頁上的代碼來加密一些詞,用后銷毀,再用另一頁加密另一些詞,直到全部的明文完成加密,破譯的唯一方法就是獲取一份相同的密碼簿。一次性密碼簿加密,要求密碼簿至少不小于明文長度,即不得重復(fù)用來加密明文的不同部分,否則密文就會呈現(xiàn)出某種規(guī)律性,也就可能被破譯。一般這種加密方法只用于高度保密的場合下,因?yàn)槿绾螌⒅辽偻L度的密碼簿護(hù)送到接收