信息技術(shù)趙澤茂第二章_第1頁
信息技術(shù)趙澤茂第二章_第2頁
信息技術(shù)趙澤茂第二章_第3頁
信息技術(shù)趙澤茂第二章_第4頁
信息技術(shù)趙澤茂第二章_第5頁
已閱讀5頁,還剩168頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

2.1密碼學(xué)的發(fā)展簡史2.2密碼學(xué)中的基本術(shù)語2.3古典密碼2.4對(duì)稱密碼體制2.5非對(duì)稱密碼體制2.6密碼學(xué)的應(yīng)用小結(jié)習(xí)題人類早在遠(yuǎn)古時(shí)期就有了相互隱瞞信息的想法,自從有了文字來表達(dá)人們的思想開始,人類就懂得了如何用文字與他人分享信息以及用文字秘密傳遞信息的方法,這就催生了信息保密科學(xué)的誕生和發(fā)展。密碼學(xué)已有四千多年悠久而迷人的歷史,它的發(fā)展大致經(jīng)歷了三個(gè)階段:手工加密階段、機(jī)械加密階段和計(jì)算機(jī)加密階段。2.1密碼學(xué)的發(fā)展簡史

1.手工加密階段

早在公元前1900年左右,一位佚名的埃及書吏在碑文中使用了非標(biāo)準(zhǔn)的象形文字。據(jù)推測,這些“秘密書寫”是為了給墓主的生活增加神秘氣氛,從而提高他們的聲望。這可

能是最早有關(guān)密碼的記載了。

公元前1500年左右,美索不達(dá)米亞人在一塊板上記錄了被加密的陶器上釉規(guī)則。

公元前600~500年左右,希伯來人開發(fā)了三種不同的加密方法,它們都以替換為基本原理。一個(gè)字母表的字母與另一個(gè)字母表的字母配對(duì),通過用相配對(duì)的字母替換明文的每

個(gè)字母,從而生成密文。公元前500年左右,古希臘斯巴達(dá)出現(xiàn)了原始的密碼器,其方法是用一條帶子纏繞在一根木棍上,沿木棍縱軸方向?qū)懮衔淖?,解下來的帶子上便是些雜亂無章的符號(hào)。解密者只需找到相同的木棍,再把帶子綁上去,沿木棍縱方向即可讀出原文。希臘人曾使用的一種“秘密書寫”方法是,先將奴隸的頭發(fā)剃光,然后將消息刺在頭上,等頭發(fā)長好后,再派他上路,到另一部落后,再將這個(gè)奴隸的頭發(fā)剃光,原文便可顯示出來。據(jù)《論要塞的防護(hù)》(希臘人AeneasTacticus著)一書記載,公元前2世紀(jì),一個(gè)叫Polybius的希臘人設(shè)計(jì)了一種表格,他使用了將字母編碼成符號(hào)的方法,我們將該表稱為Polybius校驗(yàn)表,如圖2-1-1所示。將每個(gè)字母表示成兩位數(shù),其中第一個(gè)數(shù)字表示字母所在的行數(shù),第二個(gè)數(shù)字表示字母所在的列數(shù),如字母A對(duì)應(yīng)“11”,字母B對(duì)應(yīng)“12”,字母C對(duì)應(yīng)“13”等。明文“education”即被表示成一串?dāng)?shù)字——。圖2-1-1Polybius校驗(yàn)表公元前100年左右,著名的愷撒(Caesar)密碼被應(yīng)用于戰(zhàn)爭中,它是最簡單的一種加密辦法,即用單字母來代替明文中的字母。

公元800年左右,阿拉伯密碼學(xué)家阿爾·金迪提出解密的頻率分析方法,即通過分析計(jì)算密文的字母出現(xiàn)的頻率來破譯密碼。

公元16世紀(jì)中期,意大利數(shù)學(xué)家卡爾達(dá)諾(Cardano,1501~1576)發(fā)明了卡爾達(dá)諾漏板,將其覆蓋在密文上,可從漏板中讀出明文,這是較早的一種分置式密碼。我國很早就出現(xiàn)了藏頭詩、藏尾詩、漏格詩及繪畫等,人們將要表達(dá)的真正意思隱藏在詩文或畫卷中,一般人只注意詩或畫自身表達(dá)的意境,而不會(huì)去注意或很難發(fā)現(xiàn)隱藏在

其中的“詩外之音”。

古典密碼的加密方法一般是采用文字置換,主要使用手工方式實(shí)現(xiàn),因此我們稱這一時(shí)期為密碼學(xué)發(fā)展的手工加密階段。

2.機(jī)械加密階段

到了20世紀(jì)20年代,機(jī)械和機(jī)電技術(shù)的成熟,以及電報(bào)和無線電需求的出現(xiàn),引起了密碼設(shè)備的一場革命——轉(zhuǎn)輪密碼機(jī)的發(fā)明。轉(zhuǎn)輪密碼機(jī)的出現(xiàn)是密碼學(xué)的重要標(biāo)志之

一。通過硬件卷繞可實(shí)現(xiàn)從轉(zhuǎn)輪密碼機(jī)的一邊到另一邊的單字母代替,將多個(gè)這樣的轉(zhuǎn)輪密碼機(jī)連接起來,便可實(shí)現(xiàn)幾乎任何復(fù)雜度的多個(gè)字母代替。隨著轉(zhuǎn)輪密碼機(jī)的出現(xiàn),傳

統(tǒng)密碼學(xué)有了很大的進(jìn)展,利用機(jī)械轉(zhuǎn)輪密碼機(jī)可以開發(fā)出極其復(fù)雜的加密系統(tǒng)。

1921年以后的幾十年里,Hebern構(gòu)造了一系列穩(wěn)步改進(jìn)的轉(zhuǎn)輪密碼機(jī),并將其投入到美國海軍的試用評(píng)估中,申請(qǐng)了美國轉(zhuǎn)輪密碼機(jī)的專利。這種裝置在隨后的近50年里被指定為美軍的主要密碼設(shè)備。

在Hebern發(fā)明轉(zhuǎn)輪密碼機(jī)的同時(shí),歐洲的工程師們(如荷蘭的HugoKoch、德國的ArthurScherbius)都獨(dú)立地提出了轉(zhuǎn)輪密碼機(jī)的概念。ArthurScherbius于1919年設(shè)計(jì)了歷史上著名的轉(zhuǎn)輪密碼機(jī)——德國的Enigma機(jī)。在第二次世界大戰(zhàn)期間,Enigma機(jī)曾作為德國海、陸、空三軍中最高級(jí)的密碼機(jī)。英軍從1942年2月至12月都沒能解出德國潛艇發(fā)出的信

號(hào)。因此,隨后英國發(fā)明并使用了德國的Enigma機(jī)的改進(jìn)型密碼機(jī),它在英軍通信中被廣泛使用,并幫助英軍破譯了德軍信號(hào)。轉(zhuǎn)輪密密碼機(jī)機(jī)的使使用大大大地地提高高了密密碼加加密速速度,,但由由于密密鑰量量有限限,在在二戰(zhàn)戰(zhàn)中后后期,,它引引出了了一場場關(guān)于于加密密與破破譯的的對(duì)抗抗。二二戰(zhàn)期期間,,波蘭蘭人和和英國國人破破譯了了Enigma密碼,,美國國密碼碼分析析者破破譯了了日本本的RED、ORANGE和PURPLE密碼,,這對(duì)對(duì)盟軍軍獲勝勝起到到了關(guān)關(guān)鍵的的作用用,是是密碼碼分析析史上上最偉偉大的的成功功。3.計(jì)算機(jī)機(jī)加密密階段段計(jì)算機(jī)機(jī)科學(xué)學(xué)的發(fā)發(fā)展刺刺激和和推動(dòng)動(dòng)了密密碼學(xué)學(xué)進(jìn)入入計(jì)算算機(jī)加加密階階段。。一方方面,,電子子計(jì)算算機(jī)成成為破破譯密密碼的的有力力武器器;另一方方面,,計(jì)算算機(jī)和和電子子學(xué)給給密碼碼的設(shè)設(shè)計(jì)帶帶來了了前所所未有有的自自由,,利用用計(jì)算算機(jī)可可以輕輕易地地?cái)[脫脫原先先用鉛鉛筆和和紙進(jìn)進(jìn)行手手工設(shè)設(shè)計(jì)時(shí)時(shí)易犯犯的錯(cuò)錯(cuò)誤,,也不不用面面對(duì)機(jī)機(jī)械式式轉(zhuǎn)輪輪機(jī)實(shí)實(shí)現(xiàn)方方式的的高額額費(fèi)用用。利利用計(jì)計(jì)算機(jī)機(jī)還可可以設(shè)設(shè)計(jì)出出更為為復(fù)雜雜的密密碼系系統(tǒng)。。在1949年以前前出現(xiàn)現(xiàn)的密密碼技技術(shù)算算不上上真正正的科科學(xué),,那時(shí)時(shí)的密密碼專專家常常常是是憑借借直覺覺進(jìn)行行密碼碼設(shè)計(jì)計(jì)和分分析的的。1949年,C.Shannon發(fā)表了了《保密系系統(tǒng)的的通信信理論論》,為密密碼學(xué)學(xué)的發(fā)發(fā)展展奠定定了理理論基基礎(chǔ),,使密密碼學(xué)學(xué)成為為一門門真正正的科科學(xué)。。1949~1975年,密密碼學(xué)學(xué)主要要研究究單鑰鑰密碼碼體制制,且且發(fā)展展比較較緩慢慢。1976年,W.Diffie和M.Hellman發(fā)表了了《密碼學(xué)學(xué)的新新方向向》一文,,提出出了一一種新新的密密碼設(shè)設(shè)計(jì)思思想,,從而而開創(chuàng)創(chuàng)了公公鑰密密碼學(xué)學(xué)的新新紀(jì)元元。1977年,美美國國國家技技術(shù)標(biāo)標(biāo)準(zhǔn)局局(NIST)正式公公布了了數(shù)據(jù)據(jù)加密密標(biāo)準(zhǔn)準(zhǔn)(DataEncryptionStandard,DES),將DES算法法公開開,揭揭開了了密碼碼學(xué)的的神秘秘面紗紗,大大大推推動(dòng)了了密碼碼學(xué)理理論的的發(fā)展展和技技術(shù)的的應(yīng)用用。近十多多年來來,由由于現(xiàn)現(xiàn)實(shí)生生活的的實(shí)際際需要要及計(jì)計(jì)算技技術(shù)的的發(fā)展展,密密碼學(xué)學(xué)的每每一個(gè)個(gè)研究究領(lǐng)域域都出出現(xiàn)了了許多多新的的課題題。例例如,,在分分組密密碼領(lǐng)領(lǐng)域,,以往往人們們認(rèn)為為安全全的DES算法,,在新新的分分析法法及計(jì)計(jì)算技技術(shù)面面前已已被證證明不不再安安全了了。于于是,,美國國于1997年1月開始始征集集新一一代數(shù)數(shù)據(jù)加加密標(biāo)標(biāo)準(zhǔn),,即高高級(jí)數(shù)數(shù)據(jù)加加密標(biāo)標(biāo)準(zhǔn)(AdvancedEncryptionStandard,AES)。目前前,AES征集集活動(dòng)動(dòng)已經(jīng)經(jīng)選擇擇了比比利時(shí)時(shí)密碼碼學(xué)家家設(shè)計(jì)計(jì)的Rijndael算法作作為新新一代代數(shù)據(jù)據(jù)加密密標(biāo)準(zhǔn)準(zhǔn),且且該征征集活活動(dòng)在在密碼碼界又又掀起起了一一次分分組密密碼研研究的的高潮潮。同時(shí),,在公公鑰密密碼領(lǐng)領(lǐng)域,,橢圓圓曲線線密碼碼體制制由于于具有有安全全性高高、計(jì)計(jì)算速速度快快等優(yōu)優(yōu)點(diǎn)而而引起起了人人們的的普遍遍關(guān)注注,一一些新新的公公鑰密密碼體體制(如基于于格的的公鑰鑰體制制NTRU、基于于身份份的和和無證證書的的公鑰鑰密碼碼體制制)相繼被被提出出。在在數(shù)字字簽名名方面面,各各種有有不同同實(shí)際際應(yīng)用用背景景的簽簽名方方案(如盲簽簽名、、群簽簽名、、環(huán)簽簽名、、指定定驗(yàn)證證人簽簽名、、聚合合簽名名等)不斷出出現(xiàn)。。在應(yīng)用用方面面,各各種有有實(shí)用用價(jià)值值的密密碼體體制的的快速速實(shí)現(xiàn)現(xiàn)受到到了了專家家的高高度重重視,,許多多密碼碼標(biāo)準(zhǔn)準(zhǔn)、應(yīng)應(yīng)用軟軟件和和產(chǎn)品品被開開發(fā)和和應(yīng)用用。一一些國國家(如美國國、中中國等等)已經(jīng)頒頒布了了數(shù)字字簽名名法,,使數(shù)數(shù)字簽簽名在在電子子商務(wù)務(wù)和電電子政政務(wù)等等領(lǐng)域域得到到了法法律的的認(rèn)可可。隨隨著其其他技技術(shù)的的發(fā)展展,一一些具具有潛潛在密密碼應(yīng)應(yīng)用價(jià)價(jià)值的的技術(shù)術(shù)也得得到了了密碼碼學(xué)家家的重重視,,出現(xiàn)現(xiàn)了一一些新新的密密碼技技術(shù),,如混混沌密密碼、、量子子密碼碼、DNA密碼等等?,F(xiàn)現(xiàn)在,,密碼碼學(xué)的的研究究和應(yīng)應(yīng)用已已大規(guī)規(guī)模地地?cái)U(kuò)展展到了了民用用方面面。密碼學(xué)學(xué)(Cryptology)研究進(jìn)進(jìn)行保保密通通信和和如何何實(shí)現(xiàn)現(xiàn)信息息保密密的問問題,,具體體指通通信保保密傳傳輸和和信息息存儲(chǔ)儲(chǔ)加密密等。。它以以認(rèn)識(shí)識(shí)密碼碼變換換的本本質(zhì)、、研究究密碼碼保密密與破破譯的的基本本規(guī)律律為對(duì)對(duì)象,,主要要以可可靠的的數(shù)學(xué)學(xué)方法法和理理論為為基礎(chǔ)礎(chǔ),對(duì)對(duì)解決決信息息安全全中的的機(jī)密密性、、數(shù)據(jù)據(jù)完整整性、、認(rèn)證證和身身份識(shí)識(shí)別,,對(duì)信信息的的可控控性及及不可可抵賴賴性等等問題題提供供系統(tǒng)統(tǒng)的理理論、、方法法和技技術(shù)。。密密碼碼學(xué)包包括兩兩個(gè)分分支:密碼編編碼學(xué)學(xué)(Cryptography)和密碼碼分析析學(xué)(Cryptanalyst)。密碼碼編碼碼學(xué)研研究怎怎樣編編碼、、如何何對(duì)消消息進(jìn)進(jìn)行加加密,,密碼碼分析析學(xué)研研究如如何對(duì)對(duì)密文文進(jìn)行行破譯譯。2.2密碼學(xué)學(xué)中的的基本本術(shù)語語下面是是密碼碼學(xué)中中一些些常用用的術(shù)術(shù)語:明文(Message):指待加加密的的信息息,用用M或P表示示。。明明文文可可能能是是文文本本文文件件、、位位圖圖、、數(shù)數(shù)字字化化存存儲(chǔ)儲(chǔ)的的語語音音流流或或數(shù)數(shù)字字化化的的視視頻頻圖圖像像的的比比特特流流等等。。明明文文的的集集合合構(gòu)構(gòu)成成明明文文空空間間,,記記為為SM={M}。密密文文(Ciphertext):指明明文文經(jīng)經(jīng)過過加加密密處處理理后后的的形形式式,,用用CC表表示示。。密密文文的的集集體體構(gòu)構(gòu)成成密密文文空空間間,,記記為為SC={C}。密密鑰鑰(Key):指用用于于加加密密或或解解密密的的參參數(shù)數(shù),,用用K表示示。。密密鑰鑰的的集集合合構(gòu)構(gòu)成成密密鑰鑰空空間間,,記記為為SK={K}。加加密密(Encryption):指用用某某種種方方法法偽偽裝裝消消息息以以隱隱藏藏它它的的內(nèi)內(nèi)容容的的過過程程。。加密密算算法法(EncryptionAlgorithm):指將將明明文文變變換換為為密密文文的的變變換換函函數(shù)數(shù),,通通常常用用E表示示,,即即E:SM→SC,表表示示為為C=EK(M)。解解密密(Decryption):指把把密密文文轉(zhuǎn)轉(zhuǎn)換換成成明明文文的的過過程程。。解解密密算算法法(DecryptionAlgorithm):指將將密密文文變變換換為為明明文文的的變變換換函函數(shù)數(shù),,通通常常用用D表示示,,即即D:SC→SM,表表示示為為M=DK(C)。密密碼碼分分析析(Cryptanalysis):指截截獲獲密密文文者者試試圖圖通通過過分分析析截截獲獲的的密密文文從從而而推推斷斷出出原原來來的的明明文文或或密密鑰鑰的的過過程程。。密碼碼分分析析員員(Cryptanalyst):指從從事事密密碼碼分分析析的的人人。。被被動(dòng)動(dòng)攻攻擊擊(PassiveAttack):指對(duì)對(duì)一一個(gè)個(gè)保保密密系系統(tǒng)統(tǒng)采采取取截截獲獲密密文文并并對(duì)對(duì)其其進(jìn)進(jìn)行行分分析析和和攻攻擊擊。。這這種種攻攻擊擊對(duì)對(duì)密密文文沒沒有有破破壞壞作作用用。。主主動(dòng)動(dòng)攻攻擊擊(ActiveAttack):指攻攻擊擊者者非非法法侵侵入入一一個(gè)個(gè)密密碼碼系系統(tǒng)統(tǒng),,采采用用偽偽造造、、修修改改、、刪刪除除等等手手段段向向系系統(tǒng)統(tǒng)注注入入假假消消息息進(jìn)進(jìn)行行欺欺騙騙。。這這種種攻攻擊擊對(duì)對(duì)密密文文具具有有破破壞壞作作用用。。密碼碼體體制制:即由由明明文文空空間間SM、密密文文空空間間SC、密密鑰鑰空空間間SK、加加密密算算法法E和解解密密算算法法D構(gòu)成成的的五五元元組組{SM、SC、SK、E、D}。實(shí)實(shí)際際上上,,密密碼碼體體制制可可以以理理解解為為一一個(gè)個(gè)密密碼碼方方案案,,這這里里特特別別強(qiáng)強(qiáng)調(diào)調(diào)了了一一個(gè)個(gè)“密碼碼方方案案”概念念的的完完整整性性。。通通常常所所說說的的密密碼碼方方案案,,一一定定要要包包含含這這五五個(gè)個(gè)組組成成部部分分。。對(duì)對(duì)于于一一個(gè)個(gè)密密碼碼體體制制而而言言,,如如果果加加密密密密鑰鑰和和解解密密密密鑰鑰相相同同,,則則稱稱為為對(duì)對(duì)稱稱密密碼碼體體制制或或單單鑰鑰密密碼碼體體制制,,否否則則稱稱其其為為非非對(duì)對(duì)稱稱密密碼碼體體制制或或雙雙鑰鑰密密碼碼體體制制。。密碼碼系系統(tǒng)統(tǒng)(Cryptosystem):指用用于于加加密密和和解解密密的的系系統(tǒng)統(tǒng)。。加加密密時(shí)時(shí),,系系統(tǒng)統(tǒng)輸輸入入明明文文和和加加密密密密鑰鑰,,加加密密變變換換后后,,輸輸出出密密文文;解密密時(shí)時(shí),,系系統(tǒng)統(tǒng)輸輸入入密密文文和和解解密密密密鑰鑰,,解解密密變變換換后后,,輸輸出出明明文文。。一一個(gè)個(gè)密密碼碼系系統(tǒng)統(tǒng)由由信信源源、、加加密密變變換換、、解解密密變變換換、、信信宿宿和和攻攻擊擊者者組組成成,,如如圖圖2-2-1所示示。。密密碼碼系系統(tǒng)統(tǒng)強(qiáng)強(qiáng)調(diào)調(diào)密密碼碼方方案案的的實(shí)實(shí)際際應(yīng)應(yīng)用用,,通通常常應(yīng)應(yīng)當(dāng)當(dāng)是是一一個(gè)個(gè)包包含含軟軟、、硬硬件件的的系系統(tǒng)統(tǒng)。。圖2-2-1密碼系統(tǒng)模型柯克克霍霍夫夫(Kerckhoffs)原則則:密碼碼系系統(tǒng)統(tǒng)的的安安全全性性取取決決于于密密鑰鑰,,而而不不是是密密碼碼算算法法,,即即密密碼碼算算法法要要公公開開。??驴驴丝嘶艋舴蚍蛟瓌t則是是荷荷蘭蘭密密碼碼學(xué)學(xué)家家Kerckhoff于1883年在在名名著著《軍事事密密碼碼學(xué)學(xué)》中提提出出的的基基本本假假設(shè)設(shè)。。遵遵循循這這個(gè)個(gè)假假設(shè)設(shè)的的好好處處是是:(1)它是是評(píng)評(píng)估估算算法法安安全全性性唯唯一一可可用用的的方方式式。。因因?yàn)闉槿缛绻苊艽a碼算算法法保保密密,,密密碼碼算算法法的的安安全全強(qiáng)強(qiáng)度度就就無無法法進(jìn)進(jìn)行行評(píng)評(píng)估估。。(2)防止止算算法法設(shè)設(shè)計(jì)計(jì)者者在在算算法法中中隱隱藏藏后后門門。。因因?yàn)闉樗闼惴ǚū槐还_開后后,,密密碼碼學(xué)學(xué)家家可可以以研研究究分分析析其其是是否否存存在在漏漏洞洞,,同同時(shí)時(shí)也也接接受受攻攻擊擊者者的的檢檢驗(yàn)驗(yàn)。。(3)有助助于于推推廣廣使使用用。。當(dāng)當(dāng)前前網(wǎng)網(wǎng)絡(luò)絡(luò)應(yīng)應(yīng)用用十十分分普普及及,,密密碼碼算算法法的的應(yīng)應(yīng)用用不不再再局局限限于于傳傳統(tǒng)統(tǒng)的的軍軍事事領(lǐng)領(lǐng)域域,,只只有有公公開開使使用用,,密密碼碼算算法法才才可可能能被被大大多多數(shù)數(shù)人人接接受受并并使使用用。。同同時(shí)時(shí),,對(duì)對(duì)用用戶戶而而言言,,只只需需掌掌握握密密鑰鑰就就可可以以使使用用了了,,非非常常方方便便。。古典密碼碼時(shí)期一一般認(rèn)為為是從古古代到19世紀(jì)末,,這個(gè)時(shí)時(shí)期生產(chǎn)產(chǎn)力水平平低,加加密、解解密方法法主要以以紙、筆筆或者簡簡單的器器械來實(shí)實(shí)現(xiàn),在在這個(gè)時(shí)時(shí)期提出出和使用用的密碼碼稱為古古典密碼碼。古典典密碼碼是密碼碼學(xué)發(fā)展展史上的的一個(gè)重重要階段段,也是是近代密密碼學(xué)產(chǎn)產(chǎn)生的淵淵源。盡盡管古典典密碼大大多比較較簡單,,一般可可用手工工或機(jī)械械方式實(shí)實(shí)現(xiàn)其加加密和解解密過程程,破譯譯也比較較容易,,目前也也很少采采用,但但了解它它的設(shè)計(jì)計(jì)原理,,有助于于理解、、設(shè)計(jì)和和分析現(xiàn)現(xiàn)代密碼碼。2.3古典密密碼碼例如,將將英文中中的每個(gè)個(gè)字母固固定地?fù)Q換成它后后面第5個(gè)字母,,A換成成F,BB?lián)Q成GG,…,V換成成A,WW換成BB,…,最后ZZ換成EE。字母母編碼如如表2-3-1所示。表2-3-1字母編碼根據(jù)表2-3-1可知,明明文“Iloveyou”就變成了了“nqtajdtz”。明文有有明確的的信息,,而經(jīng)過過編碼后后的字符符串“nqtajdtz”是一串亂亂碼,從從字面上上看沒有有明確的的信息,,信息隱隱藏在其其中,,從而達(dá)達(dá)到了保保密的效效果。1.移位密碼碼顧名思義義,移位位密碼的的加密方方法是將將明文字字母按某某種方式式進(jìn)行移移位。著著名的愷愷撒密碼碼就是移移位密碼碼的一種種,它是是將字母母順序向向后移3位,如“Iamnine”編碼后的的密文為為“l(fā)dpqlqh”。在在移位密密碼中,,將26個(gè)英文字字母依次次與0,1,2,…,25對(duì)應(yīng),密密文字母母可以用用明文字字母m和密鑰k按如下算算法得到到,即c=m+k(mod26)例如,明明文字母母為Y,密鑰k=3時(shí),對(duì)應(yīng)應(yīng)的密文文字母為為c≡24+3≡≡1(mod26)因此,明明文字母母Y對(duì)應(yīng)的密密文字母母為B。給給定定一個(gè)密密文字母母c,對(duì)應(yīng)的的明文字字母m可由c和密鑰k按如下算算法得到到,即m=c-k(mod26)例如,密密鑰k=3時(shí),對(duì)密密文字母母B解密如下下:m=1-3≡24(mod26)從而密文文字母B對(duì)應(yīng)的明明文字母母為Y。按按照照密碼體體制的數(shù)數(shù)學(xué)形式式化定義義,移位位密碼體體制可以以描述為為五元組組(P,C,K,E,D),其中,,P=C=K=Z26={0,1,2,…,25},E={ek:Z26→Z26|ek(m)=m+k(mod26)}D={dk:Z26→Z26|dk(c)=c-k(mod26)}2.仿射密碼碼仿仿射射密碼指指明文、、密文空空間與移移位密碼碼相同,,密鑰空空間為K={(k1,k2)|k1,k2∈Z26,其中GCD(k1,26)=1}(GCD表示兩個(gè)個(gè)數(shù)的最最大公因因子,GCD(k1,26)=1表示k1和26互素)。對(duì)任任意的k=(k1,k2)∈K,加密變變換為ek(m)=k1m+k2(mod26)相應(yīng)的解解密變換換為dk(c)=(c-k2)(mod26)其中k1=1(mod26)。例2-1假設(shè)k1=9和k2=2,明文字字母為q,試用仿仿射密碼碼對(duì)其加加密。解先把明文文字母q轉(zhuǎn)化為數(shù)數(shù)字13。由加密密算法得得c=9××13+2=119=15(mod26)再把c=15轉(zhuǎn)化為字字母得到到密文P。解解密密時(shí),先先計(jì)算。。因因?yàn)?×3≡≡1(mod26),所以=3。再由解解密算法法得m=(c-k2)=3××(c-2)=3c-6≡45+20=13(mod26)對(duì)應(yīng)的明明文字母母為q。3.維吉利亞亞(Vigenere)密碼Vigenere是法國的的密碼學(xué)學(xué)專家,,Vigenere密碼是以以他的名名字命名名的。該該密碼體體制有一一個(gè)參數(shù)數(shù)n,在加密密解密時(shí)時(shí),把英英文字母母用數(shù)字字代替進(jìn)進(jìn)行運(yùn)算算,并按按n個(gè)字母一一組進(jìn)行行變換。。明文空空間、密密文空間間及密鑰鑰空間都都是長度度為n的英文字字母串的的集合,,因此可可表示為為P=C=K=(Z26)n。加密變變換如下下:設(shè)密鑰k=(k1,k2,…,kn),明文P=(m1,m2,…,mn),加密函函數(shù)為ek(P)=(c1,c2,…,cn),其中ci=(mi+ki)(mod26),i=1,2,…,n。對(duì)密文c=(c1,c2,…,cn),密鑰k=(k1,k2,…,kn),解密變變換為dk(c)=(m1,m2,…,mn),其中mi=(ci-ki)(mod26),i=1,2,…,n。例2-2設(shè)n=6,密鑰是是cipher,這相應(yīng)應(yīng)于密鑰鑰k=(2,8,15,7,4,17),明文是是“thiscryptosystemisnotsecure”,試用Vigenere密碼對(duì)其其加密。。解首先將明明文按每每6個(gè)分為一一組,然然后與密密鑰進(jìn)行行模26加得222519相應(yīng)的密密文是“VPXZGIAXIVWPUBTTMJPWIZITWZT”。4.置換密碼碼置換密碼碼是把明明文中各各字符的的位置次次序重新新排列來來得到密密文的一一種密碼碼體制。。它實(shí)現(xiàn)現(xiàn)的方法法多種多多樣,在在這里,,我們介介紹一類類較常見見的置換換密碼。。其加密密方法如如下:把明文字字

符以以固定的的寬度m(分組長度度)水平地(按行)寫在一張張紙上(如果最后后一行不不足m,則需要要補(bǔ)充固固定字符符),按1,2,…,m的一個(gè)置置換π交換列的的位置次次序,再再按垂直直方向(即按列)讀出,即即可得到到密文。。解密方方法如下下:將密文按按相同的的寬度m垂直地寫寫在紙上上,按置置換π的逆置換換交換列列的位置置次序,,然后水水平地讀讀出,即即可得到到明文。。置換π就是密鑰鑰。例2-3設(shè)明文“Jokerisamurderer”,密鑰π=(41)(32)(即π(4)=1,π(1)=4,π(3)=2,π(2)=3)),按4,3,2,1列的次序序讀出,,即可得得到密文文,試寫寫出加密密與解密密的過程程及結(jié)果果。解加密時(shí),,把明文文字母按按長度為為4進(jìn)行分組組,每組組寫成一一行,這這樣明文文字母“Jokerisamurderer”被寫成4行4列,然后后把這4行4列按4,3,2,1列的次序序?qū)懗?,,即得到到密文?!?/p>

過程程與結(jié)果果如圖2-3-1所示。圖2-3-1置換密碼舉例解密時(shí),,把密文文字母按按4個(gè)一列寫寫出,再再按π的逆置換換重排列列的次序序,最后后按行寫寫出,即即得到明明文。在現(xiàn)代代密碼學(xué)學(xué)中,假假定密碼碼方案遵遵從Kerckhoffs原則,則則對(duì)密文文的破解解取決于于加密密密鑰。就就古典密密碼而言言,由于于算法相相對(duì)簡單單,算法法復(fù)雜度度也不高高,一種種可能的的攻擊方方法是對(duì)對(duì)所有可可能的密密鑰進(jìn)行行嘗試的的強(qiáng)力攻攻擊,稱稱為窮舉舉搜索攻攻擊。由由于密鑰鑰空間非非常有限限,因此此很難抵抵抗窮舉舉搜索的的攻擊。。另一方方面,就就英文而而言,一一些古典典密碼方方案不能能很好地地隱藏明明文消息息的統(tǒng)計(jì)計(jì)特征,,攻擊者者也可以以利用這這一弱點(diǎn)點(diǎn)進(jìn)行破破譯。移位密密碼的的密鑰鑰空間間為K=Z26={0,1,2,…,25},因此此,最最多嘗嘗試26次即可可恢復(fù)復(fù)明文文。仿仿射密密碼的的密鑰鑰空間間為K={(k1,k2)|k1,k2∈Z26,其中中GCD(k1,26)=1},k1可能的的取值值有“1,3,5,7,9,11,15,17,19,21,23,25”,因此此,最最多嘗嘗試12××26次即可可恢復(fù)復(fù)明文文。由由此可可以得得出結(jié)結(jié)論:古典密密碼方方案并并不適適合Kerckhoffs原則,,算法法的保保密性性基于于算法法的保保密。。嚴(yán)嚴(yán)格格地說說,現(xiàn)現(xiàn)代密密碼學(xué)學(xué)是從從1949年開始始的,,由于于計(jì)算算機(jī)的的出現(xiàn)現(xiàn),算算法的的計(jì)算算變得得十分分復(fù)雜雜,因因此算算法的的保密密性不不再依依賴于于算法法,而而是密密鑰。。對(duì)稱密密碼體體制對(duì)對(duì)于大大多數(shù)數(shù)算法法而言言,解解密算算法是是加密密算法法的逆逆運(yùn)算算,加加密密密鑰和和解密密密鑰鑰相同同,滿滿足關(guān)關(guān)系:M=DK(C)=DK(EK(M))。對(duì)對(duì)稱稱密碼碼體制制的開開放性性差,,要求求通信信雙方方在通通信之之前商商定一一個(gè)共共享密密鑰,,彼此此必須須妥善善保管管。對(duì)對(duì)稱密密碼體體制分分為兩兩類:一類是是對(duì)明明文的的單個(gè)個(gè)位(或字節(jié)節(jié))進(jìn)行運(yùn)運(yùn)算的的算法法,稱稱為序序列密密碼算算法,,也稱稱為流流密碼碼算法法(StreamCipher);另一類類算法法是把把明文文信息息劃分分成不不同的的塊(或小組組)結(jié)構(gòu),,分別別對(duì)每每個(gè)塊塊(或小組組)進(jìn)行加加密和和解密密,稱稱為分分組密密碼算算法(BlockCipher)。2.4對(duì)稱密密碼體體制序列密密碼序列密密碼是是將明明文劃劃分成成單個(gè)個(gè)位(如數(shù)字字0或1)作為加加密單單位產(chǎn)產(chǎn)生明明文序序列,,然后后將其其與密密鑰流流序列列逐位位進(jìn)行行模2加運(yùn)算算,用用符號(hào)號(hào)表示示為,其其結(jié)果果作為為密文文的方方法。。加密密過程程如如圖2-4-1所示。。圖2-4-1序列密碼加密過程加密算算法是是:ci=mi+ki(mod2)解密算算法是是:mi=ci+ki(mod2)例如,,設(shè)明明文序序列M是一串串二進(jìn)進(jìn)制數(shù)數(shù)據(jù)2,密鑰鑰2,則加加密密過程程:2解密過過程:2序列密密碼分分為同同步序序列密密碼和和自同同步序序列密密碼兩兩種。。同步序序列密密碼要要求發(fā)發(fā)送方方和接接收方方必須須是同同步的的,在在同樣樣的位位置用用同樣樣的密密鑰才才能保保證正正確地地解密密。如如果在在傳輸輸過程程中密密文序序列有有被篡篡改、、刪除除、插插入等等錯(cuò)誤誤導(dǎo)致致同步步失效效,則則不可可能成成功解解密,,只能能通過過重新新同步步來實(shí)實(shí)現(xiàn)解解密、、恢復(fù)復(fù)密文文。在在傳輸輸期間間,一一個(gè)密密文位位的改改變只只影響響該位位的恢恢復(fù),,不會(huì)會(huì)對(duì)后后繼位位產(chǎn)生生影響響。自同步步序列列密碼碼的密密鑰的的產(chǎn)生生與密密鑰和和已產(chǎn)產(chǎn)生的的固定定數(shù)量量的密密文位位有關(guān)關(guān),因因此,,密文文中產(chǎn)產(chǎn)生的的一個(gè)個(gè)錯(cuò)誤誤會(huì)影影響到到后面面有限限位的的正確確解密密。所所以,,自同同步密密碼的的密碼碼分析析比同同步密密碼的的密碼碼分析析更加加困難難。序列密密碼具具有實(shí)實(shí)現(xiàn)簡簡單、、便于于硬件件計(jì)算算、加加密與與解密密處理理速度度快、、低錯(cuò)錯(cuò)誤(沒有或或只有有有限限位的的錯(cuò)誤誤)傳播等等優(yōu)點(diǎn)點(diǎn),但但同時(shí)時(shí)也暴暴露出出對(duì)錯(cuò)錯(cuò)誤的的產(chǎn)生生不敏敏感的的缺點(diǎn)點(diǎn)。序序列密密碼涉涉及大大量的的理論論知識(shí)識(shí),許許多研研究成成果并并沒有有完全全公開開,這這也許許是因因?yàn)樾蛐蛄忻苊艽a目目前主主要用用于軍軍事和和外交交等機(jī)機(jī)要部部門的的緣故故。目目前,,公開開的序序列密密碼主主要有有RC4、SEAL等。序序列密密碼的的安全全強(qiáng)度度依賴賴于密密鑰流流產(chǎn)生生器所所產(chǎn)生生的密密鑰流流序列列的特特性,,關(guān)鍵鍵是密密鑰生生成器器的設(shè)設(shè)計(jì)及及收發(fā)發(fā)兩端端密鑰鑰流產(chǎn)產(chǎn)生的的同步步技術(shù)術(shù)。1.偽隨機(jī)機(jī)序列列在序列列密碼碼中,,一個(gè)個(gè)好的的密鑰鑰流序序列應(yīng)應(yīng)該滿滿足:具有良良好的的偽隨隨機(jī)性性,如如極大大的周周期、、極大大的線線性復(fù)復(fù)雜度度、序序列中中0和1的分布布均勻勻;產(chǎn)生的的算法法簡單單;硬件實(shí)實(shí)現(xiàn)方方便。。產(chǎn)產(chǎn)生生密鑰鑰流序序列的的一種種簡單單方法法是使使用自自然現(xiàn)現(xiàn)象隨隨機(jī)生生成,,如半半導(dǎo)體體電阻阻器的的熱噪噪聲、、公共共場所所的噪噪聲源源等。。還有有一種種方法法是使使用軟軟件以以簡單單的數(shù)數(shù)學(xué)函函數(shù)來來實(shí)現(xiàn)現(xiàn),如如標(biāo)準(zhǔn)準(zhǔn)C語言庫庫函數(shù)數(shù)中的的rand()函數(shù),,它可可以產(chǎn)產(chǎn)生介介于0~65535之間的的任何何一個(gè)個(gè)整數(shù)數(shù),以以此作作為“種子”輸入,,隨后后再產(chǎn)產(chǎn)生比比特流流。rand()建立在在一個(gè)個(gè)線性性同余余生成成器的的基礎(chǔ)礎(chǔ)上,,如kn=akn-1+b(modm),k0作為初初始值值,a、b和m都是整整數(shù)。。但這這只能能作為為以實(shí)實(shí)驗(yàn)為為目的的的例例子,,不能能滿足足密碼碼學(xué)意意義上上的要要求。。產(chǎn)生偽偽隨機(jī)機(jī)數(shù)的的一個(gè)個(gè)不錯(cuò)錯(cuò)的選選擇是是使用用數(shù)論論中的的難題題。最最常用用的是是BBS偽隨機(jī)機(jī)序列列生成成器,,也就就是二二次方方程式式殘數(shù)數(shù)生成成器。。首先先產(chǎn)生生兩個(gè)個(gè)大素素?cái)?shù)p和q,且p=q=3(mod4),設(shè)n=pq,并選選擇一一個(gè)隨隨機(jī)整整數(shù)x,x與n是互素素的,,且設(shè)設(shè)初始始輸入入x0=x2(modn),BBS通過如如下過過程產(chǎn)產(chǎn)生一一個(gè)隨隨機(jī)序序列b1,b2,…:(1)xj=(modn);(2)bj是xj的最低低有效效比特特。例如,,設(shè)p=24672462467892469787和q=396736894567834589803,則令x=873245647888478349013,則初初始輸輸入x0=x2x1,x2,…,x8的值分分別如如下:x12345x678取上述任意意一個(gè)比特特串,當(dāng)x的值為奇數(shù)數(shù)時(shí),b的值取1,當(dāng)x的值為偶數(shù)數(shù)時(shí),b的值取0,故產(chǎn)生的的隨機(jī)序列列b1,b2,…,b8=0,1,1,1,0,0,0,0??煽梢?,產(chǎn)產(chǎn)生密鑰流流序列的方方法很多,,常見的方方法有線性性同余法、、線性反饋饋移位寄存存器、非線線性反饋移移位寄存器器、有限自自動(dòng)機(jī)和混混沌密碼等等。2.線性反饋移移位寄存器器通常,產(chǎn)生生密鑰流序序列的硬件件是反饋移移位寄存器器。一個(gè)反反饋移位寄寄存器由兩兩部分組成成:移位寄存器器和反饋函函數(shù)(如圖2-4-2所示)。圖2-4-2反饋移位寄存器移位寄存器器由n個(gè)寄存器組組成,每個(gè)個(gè)寄存器只只能存儲(chǔ)一一個(gè)位,在在一個(gè)控制制時(shí)鐘周期期內(nèi),根據(jù)據(jù)寄存器當(dāng)當(dāng)前的狀態(tài)態(tài)計(jì)算反饋饋函數(shù)f(a1,a2,…,an)作為下一時(shí)時(shí)鐘周期的的內(nèi)容,每每次輸出最最右端一位位a1,同時(shí),寄寄存器中所所有位都右右移一位,,最左端的的位由反饋饋函數(shù)計(jì)算算得到。用用ai(t)表示t時(shí)刻第i個(gè)寄存器的的內(nèi)容,用用ai(t+1)表示ai(t)下一時(shí)刻的的內(nèi)容,則則有移移位:ai(t+1)=ai+1(t)(i=1,2,…,n-1)反饋:an(t+1)=f(a1(t),a2(t),…,an(t))如果反饋函函數(shù)f(a1,a2,…,an)=k1ank2an-1…kna1,其中ki∈{0,1},則該反饋饋函數(shù)是a1,a2,…,an的線性函數(shù)數(shù),對(duì)應(yīng)的的反饋移位位寄存器稱稱為線性反反饋移位寄寄存器(LinearFeedbackShiftRegister,LFSR)。例例如,設(shè)設(shè)線性反饋饋移位寄存存器為ai(t+1)=ai+1(t)(i=1,2,3,4)a4(t+1)=a1(t)a3(t)對(duì)應(yīng)(k1,k2,k3,k4)=(0,1,0,1),設(shè)初始狀狀態(tài)為(a1,a2,a3,a4)=(0,1,1,1),各個(gè)時(shí)刻刻的狀態(tài)如如表2-4-1所示。表2-4-1LFSR在不同時(shí)刻的狀態(tài)由表2-4-1可知,t=6時(shí)的狀態(tài)恢恢復(fù)到t=0時(shí)的狀態(tài),,且往后循循環(huán)。因此此,該反饋饋移位寄存存器的周期期是6,輸出序列列為0111100…,表中對(duì)應(yīng)應(yīng)a1的狀態(tài)。本本例中,若若反饋函數(shù)數(shù)為a4(t+1)=a1(t)a4(t),則周期達(dá)達(dá)到15,輸出序列列為…。對(duì)于4級(jí)線性反饋饋移位寄存存器而言,,所有可能能狀態(tài)為24=16種,除去全全0狀態(tài),最大大可能周期期為15。對(duì)于n級(jí)線性反饋饋移位寄存存器,不可可能產(chǎn)生全全0狀態(tài),因此此,最大可可能周期為為2n-1,而能夠產(chǎn)產(chǎn)生最大周周期的LFSR是我們所需需要的,這這就要求線線性反饋函函數(shù)符合一一定的條件件。關(guān)于隨隨機(jī)序列的的周期及線線性復(fù)雜度度的有關(guān)知知識(shí),需要要讀者具備備一定的數(shù)數(shù)學(xué)基礎(chǔ),,本書不再再展開討論論。選擇線性反反饋移位寄寄存器作為為密鑰流生生成器的主主要原因有有:適合硬件實(shí)實(shí)現(xiàn);能產(chǎn)生大的的周期序列列;能產(chǎn)生具有有良好的統(tǒng)統(tǒng)計(jì)特性的的序列;它的結(jié)構(gòu)能能夠應(yīng)用代代數(shù)方法進(jìn)進(jìn)行很好的的分

析。。實(shí)實(shí)際應(yīng)用用中,通常常將多個(gè)LFSR組合起來構(gòu)構(gòu)造非線性性反饋移位位寄存器,,n級(jí)非線性反反饋移位寄寄存器產(chǎn)生生偽隨機(jī)序序列的周期期最大可達(dá)達(dá)2n,因此,研研究產(chǎn)生最最大周期序序列的方法法具有重要要意義。3.RC4RC4是由麻省理理工學(xué)院的的RonRivest教授在1987年為RSA公司設(shè)計(jì)的的一種可變變密鑰長度度、面向字字節(jié)流的序序列密碼。。RC4是目前使用用最廣泛的的序列密碼碼之一,已已應(yīng)用于MicrosoftWindows、LotusNotes和其他應(yīng)用用軟件中,,特別是應(yīng)應(yīng)用到SSL協(xié)議和無線線通信方面面。RC4算法很簡單單,它以一一個(gè)數(shù)據(jù)表表為基礎(chǔ),,對(duì)表進(jìn)行行非線性變變換,從而而產(chǎn)生密碼碼流序列。。RC4包含兩個(gè)主主要算法:密鑰調(diào)度算算法(KeySchedulingAlgorithm,KSA)和偽隨機(jī)生生

成算法法(PseudoRandomGenerationAlgorithm,PRGA)。KSA的作用是將將一個(gè)隨機(jī)機(jī)密鑰(大小為40~256位)變換成一個(gè)個(gè)初始置換換表S。過程如下下:

(1)S表中包含256個(gè)元素S[0]~S[255],對(duì)其初初始化,令令S[i]=i,0≤i≤255。

(2)用主密鑰填填充字符表表K,如果密鑰鑰的長度小小于256個(gè)字節(jié),則則依次重復(fù)復(fù)填充,直直至將K填滿。K={K[i],0≤i≤255}。(3)令j=0。(4)對(duì)于i從0到255循環(huán):①①j=j+S[i]+K[i](mod256);②②交換S[i]和S[j]。PRGA的作用是從從S表中隨機(jī)選選取元素,,并產(chǎn)生密密鑰流。過過程如下:(1)i=0,j=0。(2)i=i+1(mod256)。(3)j=j+S[i](mod256)。(4)交換S[i]和S[j]。(5)t=S[i]+S[j](mod256)。(6)輸出密鑰字字k=S[t]。雖雖然RC4要求主密鑰鑰K至少為40位,但為了了保證安全全強(qiáng)度,目目前至少要要達(dá)到128位。分組密碼設(shè)明文消息息被劃分成成若干固定定長度的組組m=(m1,m2,…,mn),其中mi=0或1,i=1,2,…,n,每一組的的長度為n,各組分別別在密鑰k=(k1,k2,…,kt)的作用下變變換成長度度為r的密文分組組c=(c1,c2,…,cr)。分組密碼碼的模型如如圖2-4-3所示。圖2-4-3分組密碼的模型分組密碼的的本質(zhì)就是是由密鑰k=(k1,k2,…,kt)控制的從明明文空間M(長為n的比特串的的集合)到密文空間間C(長為r的比特串的的集合)的一個(gè)一對(duì)對(duì)一映射。。為了保證證密碼算法法的安全強(qiáng)強(qiáng)度,加密密變換的構(gòu)構(gòu)造應(yīng)遵循循下列幾個(gè)個(gè)原則:(1)分組長度足足夠大。當(dāng)當(dāng)分分組長度n較小時(shí),容容易受到暴暴力窮舉攻攻擊,因此此要有足夠夠大的分組組長度n來保證足夠夠大的明文文空間,避避免給攻擊擊者提供太太多的明文文統(tǒng)計(jì)特征征信息。(2)密鑰量空間間足夠大,,以以抵抗攻擊擊者通過窮窮舉密鑰破破譯密文或或者獲得密密鑰信息。。(3)加密變換足足夠復(fù)雜,,以以加強(qiáng)分組組密碼算法法自身的安安全性,使使攻擊者無無法利用簡簡單的數(shù)學(xué)學(xué)關(guān)系找到到破譯缺口口。(4)加密和解密密運(yùn)算簡單單,易于實(shí)實(shí)現(xiàn)。分分組加加密算法將將信息分成成固定長度度的二進(jìn)制制位串進(jìn)行行變換。為為便于軟、、硬件的實(shí)實(shí)現(xiàn),一般般應(yīng)選取加加法、乘法法、異或和和移位等簡簡單的運(yùn)算算,以避免免使用逐比比特的轉(zhuǎn)換換。(5)加密和解密密的邏輯結(jié)結(jié)構(gòu)最好一一致。如如果加加密、解密密過程的算算法邏輯部部件一致,,那么加密密、解密可可以由同一一部件實(shí)現(xiàn)現(xiàn),區(qū)別在在于所使用用的密鑰不不同,以簡簡化密碼系系統(tǒng)整體結(jié)結(jié)構(gòu)的復(fù)雜雜性。古古典典密碼中最最基本的變變換是代替替和移位,,其目的是是產(chǎn)生盡可可能混亂的的密文。分分組密碼同同樣離不開開這兩種最最基本的變變換,代替替變換就是是經(jīng)過復(fù)雜雜的變換關(guān)關(guān)系將輸入入位進(jìn)行轉(zhuǎn)轉(zhuǎn)換,記為為S,稱為S盒;移位變換就就是將輸入入位的排列列位置進(jìn)行行變換,記記為P,稱為P盒,如圖2-4-4所示。分組密碼由由多重S盒和P盒組合而成成,如圖2-4-5所示。S盒的直接作作用是將輸輸入位進(jìn)行行某種變換換,以起到到混亂的作作用;P盒的直接作作用就是移移動(dòng)輸入位位的排列位位置關(guān)系,,以起到擴(kuò)擴(kuò)散的作用用。分組密密碼算法就就是采用“混亂與擴(kuò)散散”兩個(gè)主要思思想進(jìn)行設(shè)設(shè)計(jì)的,這這是Shannon為了有效抵抵抗攻擊者者對(duì)密碼體體制的統(tǒng)計(jì)計(jì)分析提出出的基本設(shè)設(shè)計(jì)思想,,也可以認(rèn)認(rèn)為是分組組密碼算法法設(shè)計(jì)的基基本原理。。圖2-4-4兩種基本變變換圖2-4-5S盒和P盒所組成的網(wǎng)絡(luò)結(jié)構(gòu)(1)代替。代替替指將明文文位用某種種變換關(guān)系系變換成新新的位,以以使所產(chǎn)生生的密文是是一堆雜亂亂無章的亂亂碼,這種種變換與明明文和密鑰鑰密切相關(guān)關(guān),要求盡盡可能地使使密文與明明文和密鑰鑰之間的關(guān)關(guān)系十分復(fù)復(fù)雜,不便便破譯者從從中發(fā)現(xiàn)規(guī)規(guī)律和依賴賴關(guān)系,從從而加加強(qiáng)隱蔽性性。在分分組密碼算算法中采用用復(fù)雜的非非線性代替替變換就可可達(dá)到比較較好的混亂亂效果。(2)移位。移位位指讓明文文中的每一一位(包括密鑰的的每一位)直接或間接接影響輸出出密文中的的許多位,,即將每一一比特明文文(或密鑰)的影響盡可可能迅速地地作用到較較多的輸出出密文位中中去,以便便達(dá)到隱蔽蔽明文的統(tǒng)統(tǒng)計(jì)特性。。這種效果果也稱為“雪崩效應(yīng)”,也就是說說,輸入即即使只有很很小的變化化,也會(huì)導(dǎo)導(dǎo)致輸出位位發(fā)生巨大大變化。分分組密碼算算法設(shè)計(jì)中中的移位操操作就是為為了達(dá)到擴(kuò)擴(kuò)散的目的的。(3)乘積變換。。在分組密密碼算法設(shè)設(shè)計(jì)中,為為了增強(qiáng)算算法的復(fù)雜雜度,常用用的方法是是采用乘積積變換的思思想,即加加密算法不不僅是簡單單的一次或或兩次基本本的S盒和P盒變換,而而是通過兩兩次或兩次次以上S盒盒和P盒的的反復(fù)應(yīng)用用,也就是是迭代的思思想,克服服單一密碼碼變換的弱弱點(diǎn),構(gòu)成成更強(qiáng)的加加密結(jié)果,,以強(qiáng)化其其復(fù)雜程度度。后面介介紹的一些些分組密碼碼算法,無無一例外地地都采用了了這種乘積積密碼的思思想。數(shù)據(jù)加密標(biāo)標(biāo)準(zhǔn)——DES20世紀(jì)60年代末,IBM公司開始研研制計(jì)算機(jī)機(jī)密碼算法法,在1971年結(jié)束時(shí)提提出了一種種稱為Luciffer的密碼算法法,它是當(dāng)當(dāng)時(shí)最好的的算法,也也是最初的的數(shù)據(jù)加密密算法。1973年美國國家家標(biāo)準(zhǔn)局(NBS,現(xiàn)在的美美國國家標(biāo)標(biāo)準(zhǔn)技術(shù)研研究所,NIST)征求國家密密碼標(biāo)準(zhǔn)方方案,IBM就提交了這這個(gè)算法。。1977年7月15日,該算法法被正式采采納作為美美國聯(lián)邦信信息處理標(biāo)標(biāo)準(zhǔn)生效,,成為事實(shí)實(shí)上的國際際商用數(shù)據(jù)據(jù)加密標(biāo)準(zhǔn)準(zhǔn)被使用,,即數(shù)據(jù)加加密標(biāo)準(zhǔn)(DataEncryptionStandard,DES)。當(dāng)時(shí)規(guī)定定其有效期期為5年,后經(jīng)幾幾次授權(quán)續(xù)續(xù)用,真正正有效期限限長達(dá)20年。在這這20年中中,,DES算法法在在數(shù)數(shù)據(jù)據(jù)加加密密領(lǐng)領(lǐng)域域發(fā)發(fā)揮揮了了不不可可替替代代的的作作用用。。進(jìn)進(jìn)入入20世紀(jì)紀(jì)90年代代以以后后,,由由于于DES密鑰鑰長長度度偏偏短短等等缺缺陷陷,,不不斷斷受受到到諸諸如如差差分分密密碼碼分分析析(由以以色色列列密密碼碼專專家家Shamir提出出)和線線性性密密碼碼分分析析(由日日本本密密碼碼學(xué)學(xué)家家Matsui等人人提提出出)等各各種種攻攻擊擊威威脅脅,,使使其其安安全全性性受受到到嚴(yán)嚴(yán)重重的的挑挑戰(zhàn)戰(zhàn),,而而且且不不斷斷傳傳出出被被破破解解的的消消息息。。鑒鑒于于這這種種情情況況,,美美國國國國家家保保密密局局經(jīng)經(jīng)多多年年授授權(quán)權(quán)評(píng)評(píng)估估后后認(rèn)認(rèn)為為,,DES算法法已已沒沒有有安安全全性性可可言言。。于于是是NIST決定定在在1998年12月以以后后不不再再使使用用DES來保保護(hù)護(hù)官官方方機(jī)機(jī)密密,,只只推推薦薦作作為為一一般般商商業(yè)業(yè)使使用用。。1999年又又頒頒布布新新標(biāo)標(biāo)準(zhǔn)準(zhǔn),,并并規(guī)規(guī)定定DES只能能用用于于遺遺留留密密碼碼系系統(tǒng)統(tǒng),,但但可可以以使使用用加加密密的的3DES加密密算算法法。。但不不管管怎怎樣樣,,DES的出出現(xiàn)現(xiàn)推推動(dòng)動(dòng)了了分分組組密密碼碼理理論論的的研研究究,,起起到到了了促促進(jìn)進(jìn)分分組組密密碼碼發(fā)發(fā)展展的的重重要要作作用用,,而而且且它它的的設(shè)設(shè)計(jì)計(jì)思思想想對(duì)對(duì)掌掌握握分分組組密密碼碼的的基基本本理理論論和和工工程程應(yīng)應(yīng)用用有有著著重重要要的的參參考考價(jià)價(jià)值值。。1.DES加密密算算法法流流程程DES算法法的的加加密密過過程程如如圖圖2-4-6所示示。。1)初始始置置換換IP如圖圖2-4-7所示示,,初初始始置置換換方方法法是是將將64位明明文文的的位位置置順順序序打打亂亂,,表表中中的的數(shù)數(shù)字字代代表表64位明明文文的的輸輸入入順順序序號(hào)號(hào),,表表中中的的位位置置代代表表置置換換后后的的輸輸出出順順序序,,表表中中的的位位置置順順序序是是先先按按行行后后按按列列進(jìn)進(jìn)行行排排序序。。圖2-4-6DES算法的加密過程例如如:表中中第第一一行行第第一一列列的的數(shù)數(shù)字字為為58,表表示示將將原原來來排排在在第第58位的的比比特特位位排排在在第第11位位;第一一行行第第二二列列的的數(shù)數(shù)字字為為50,表表示示將將原原來來排排在在第第50位的的比比特特位位排排在在第第2位,,依依次次類類推推。。不不妨妨設(shè)設(shè)輸輸入入位位序序?yàn)闉閙1m2…m64,初初始始置置換換后后變變?yōu)闉閙1′m2′…m64′=m58m50…m7。初初始始置置換換表表中中的的位位序序特特征征:64位輸輸入入按按8行8列進(jìn)進(jìn)行行排排列列,,最最右右邊邊一一列列按按2、4、6、8和1、3、5、7的次次序序進(jìn)進(jìn)行行排排列列,,往往左左邊邊各各列列的的位位序序號(hào)號(hào)依依次次緊緊鄰鄰其其右右邊邊一一列列各各序序號(hào)號(hào)加加8。圖2-4-7初始置換IP2)乘積積變變換換(16輪迭迭代代)乘積積變變換換部部分分要要進(jìn)進(jìn)行行16輪迭迭代代,,如如圖圖2-4-8所示示。。將將初初始始置置換換得得到到的的64位結(jié)結(jié)果果分分為為兩兩半半,,記記為為L0和R0,各各32位。。設(shè)設(shè)初初始始密密鑰鑰為為64位,,經(jīng)經(jīng)密密鑰鑰擴(kuò)擴(kuò)展展算算法法產(chǎn)產(chǎn)生生16個(gè)48位的的子子密密鑰鑰,,記記為為K1,K2,…,K16,每每輪輪迭迭代代的的邏邏輯輯關(guān)關(guān)系系為為其其中中1≤≤i≤≤16,函函數(shù)數(shù)是是每每輪輪變變換換的的核核心心變變換換。。圖2-4-8DES算法的乘積變換3)逆初初始始置置換換IP-1逆初初始始置置換換IP-1與初初始始置置換換正正好好相相反反,,如如圖圖2-4-9所示示。。例例如如,,處處在在第第1位的的比比特特位位置置換換后后排排在在第第58位,,處處在在第第2位的的比比特特位位置置換換后后排排在在第第50位。逆初始置置換后變?yōu)閙1′m2′…m64′=m40m8…m25。逆初始置換換表中的位序序特征:64位輸入依然按按8行8列進(jìn)行排列,,1~8按列從下往上上進(jìn)行排列,,然后是9~16排在右邊一列列,依次進(jìn)行行排4列,然后從33開始排在第一一列的左邊,,從41開始排在第二二列的左邊,,交叉進(jìn)行。。圖2-4-9逆初始置換IP-12.乘積變換中的的f變換乘積變換的核核心是f變換,它是非非線性的,是是每輪實(shí)現(xiàn)混混亂的最關(guān)鍵鍵的模塊,輸輸入32位,經(jīng)過擴(kuò)展展置換變成48位,與子密鑰鑰進(jìn)行異或運(yùn)運(yùn)算,選擇S盒替換,將48位壓縮還原成成32位,再進(jìn)行P盒替換,輸出出32位。如圖2-4-10所示,虛線部部分為f變換。詳細(xì)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論