信息安全技術課件_第1頁
信息安全技術課件_第2頁
信息安全技術課件_第3頁
信息安全技術課件_第4頁
信息安全技術課件_第5頁
已閱讀5頁,還剩58頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第九章 密碼學與信息加密 9內容提要本章介紹密碼學的基本概念。介紹加密領域中兩種主流的加密技術:DES加密(Data Encryption Standard)RSA加密(Rivest-Shamir-Adleman)并用程序實現(xiàn)這兩種加密技術的算法。最后介紹目前常用的加密工具PGP(Pretty Good Privacy),使用PGP產(chǎn)生密鑰,加密文件和郵件。密碼學概述密碼學是一門古老而深奧的學科,對一般人來說是非常陌生的。長期以來,只在很小的范圍內使用,如軍事、外交、情報等部門。計算機密碼學是研究計算機信息加密、解密及其變換的科學,是數(shù)學和計算機的交叉學科,也是一門新興的學科。隨著計算機網(wǎng)絡和

2、計算機通訊技術的發(fā)展,計算機密碼學得到前所未有的重視并迅速普及和發(fā)展起來。在國外,它已成為計算機安全主要的研究方向。 密碼技術簡介 密碼學的歷史比較悠久,在四千年前,古埃及人就開始使用密碼來保密傳遞消息。兩千多年前,羅馬國王Julius Caesare(愷撒)就開始使用目前稱為“愷撒密碼”的密碼系統(tǒng)。但是密碼技術直到本20世紀40年代以后才有重大突破和發(fā)展。特別是20世紀70年代后期,由于計算機、電子通信的廣泛使用,現(xiàn)代密碼學得到了空前的發(fā)展。消息和加密遵循國際命名標準,加密和解密可以翻譯成:“Encipher(譯成密碼)”和“(Decipher)(解譯密碼)”。也可以這樣命名:“Encryp

3、t(加密)”和“Decrypt(解密)”。消息被稱為明文。用某種方法偽裝消息以隱藏它的內容的過程稱為加密,加了密的消息稱為密文,而把密文轉變?yōu)槊魑牡倪^程稱為解密,圖8-1表明了加密和解密的過程。明文 密文明文用M(Message,消息)或P(Plaintext,明文)表示,它可能是比特流、文本文件、位圖、數(shù)字化的語音流或者數(shù)字化的視頻圖像等。密文用C(Cipher)表示,也是二進制數(shù)據(jù),有時和M一樣大,有時稍大。通過壓縮和加密的結合,C有可能比P小些。加密函數(shù)E作用于M得到密文C,用數(shù)學公式表示為:E(M)=C。解密函數(shù)D作用于C產(chǎn)生M,用數(shù)據(jù)公式表示為:D(C)=M。先加密后再解密消息,原始

4、的明文將恢復出來,D(E(M)=M必須成立。鑒別、完整性和抗抵賴性 除了提供機密性外,密碼學需要提供三方面的功能:鑒別、完整性和抗抵賴性。這些功能是通過計算機進行社會交流,至關重要的需求。鑒別:消息的接收者應該能夠確認消息的來源;入侵者不可能偽裝成他人。完整性:消息的接收者應該能夠驗證在傳送過程中消息沒有被修改;入侵者不可能用假消息代替合法消息??沟仲囆裕喊l(fā)送消息者事后不可能虛假地否認他發(fā)送的消息。算法和密鑰 現(xiàn)代密碼學用密鑰解決了這個問題,密鑰用K表示。K可以是很多數(shù)值里的任意值,密鑰K的可能值的范圍叫做密鑰空間。加密和解密運算都使用這個密鑰,即運算都依賴于密鑰,并用K作為下標表示,加解密函

5、數(shù)表達為:EK(M)=CDK(C)=MDK(EK(M)=M,如圖8-2所示。有些算法使用不同的加密密鑰和解密密鑰,也就是說加密密鑰K1與相應的解密密鑰K2不同,在這種情況下,加密和解密的函數(shù)表達式為:EK1(M)=CDK2(C)=M函數(shù)必須具有的特性是,DK2(EK1(M)=M,如圖8-3所示。對稱算法基于密鑰的算法通常有兩類:對稱算法和公開密鑰算法(非對稱算法)。對稱算法有時又叫傳統(tǒng)密碼算法,加密密鑰能夠從解密密鑰中推算出來,反過來也成立。在大多數(shù)對稱算法中,加解密的密鑰是相同的。對稱算法要求發(fā)送者和接收者在安全通信之前,協(xié)商一個密鑰。對稱算法的安全性依賴于密鑰,泄漏密鑰就意味著任何人都能對

6、消息進行加解密。對稱算法的加密和解密表示為:EK(M)=CDK(C)=M公開密鑰算法公開密鑰算法(非對稱算法)的加密的密鑰和解密的密鑰不同,而且解密密鑰不能根據(jù)加密密鑰計算出來,或者至少在可以計算的時間內不能計算出來。之所以叫做公開密鑰算法,是因為加密密鑰能夠公開,即陌生者能用加密密鑰加密信息,但只有用相應的解密密鑰才能解密信息。加密密鑰叫做公開密鑰(簡稱公鑰),解密密鑰叫做私人密鑰(簡稱私鑰)。公開密鑰K1加密表示為:EK1(M)=C。公開密鑰和私人密鑰是不同的,用相應的私人密鑰K2解密可表示為:DK2(C)=M。DES對稱加密技術DES(Data Encryption Standard)算

7、法,于1977年得到美國政府的正式許可,是一種用56位密鑰來加密64位數(shù)據(jù)的方法。DES算法的歷史美國國家標準局1973年開始研究除國防部外的其它部門的計算機系統(tǒng)的數(shù)據(jù)加密標準,于1973年5月15日和1974年8月27日先后兩次向公眾發(fā)出了征求加密算法的公告。加密算法要達到的目的有四點。提供高質量的數(shù)據(jù)保護,防止數(shù)據(jù)未經(jīng)授權的泄露和未被察覺的修改;具有相當高的復雜性,使得破譯的開銷超過可能獲得的利益,同時又要便于理解和掌握;DES密碼體制的安全性應該不依賴于算法的保密,其安全性僅以加密密鑰的保密為基礎;實現(xiàn)經(jīng)濟,運行有效,并且適用于多種完全不同的應用。DES算法的安全性 DES算法正式公開發(fā)

8、表以后,引起了一場激烈的爭論。1977年Diffie和Hellman提出了制造一個每秒能測試106個密鑰的大規(guī)模芯片,這種芯片的機器大約一天就可以搜索DES算法的整個密鑰空間,制造這樣的機器需要兩千萬美元。1993年R.Session和M.Wiener給出了一個非常詳細的密鑰搜索機器的設計方案,它基于并行的密鑰搜索芯片,此芯片每秒測試5107個密鑰,當時這種芯片的造價是10.5美元,5760個這樣的芯片組成的系統(tǒng)需要10萬美元,這一系統(tǒng)平均1.5天即可找到密鑰,如果利用10個這樣的系統(tǒng),費用是100萬美元,但搜索時間可以降到2.5小時??梢娺@種機制是不安全的。 DES算法的安全性 1997年1

9、月28日,美國的RSA數(shù)據(jù)安全公司在互聯(lián)網(wǎng)上開展了一項名為“密鑰挑戰(zhàn)”的競賽,懸賞一萬美元,破解一段用56比特密鑰加密的DES密文。計劃公布后引起了網(wǎng)絡用戶的強力響應。一位名叫Rocke Verser的程序員設計了一個可以通過互聯(lián)網(wǎng)分段運行的密鑰窮舉搜索程序,組織實施了一個稱為DESHALL的搜索行動,成千上萬的志愿者加入到計劃中,在計劃實施的第96天,即挑戰(zhàn)賽計劃公布的第140天,1997年6月17日晚上10點39分,美國鹽湖城Inetz公司的職員Michael Sanders成功地找到了密鑰,在計算機上顯示了明文:“The unknown message is: Strong crypto

10、graphy makes the world a safer place”。DES算法的原理 DES算法的入口參數(shù)有三個:Key、Data、Mode。其中Key為8個字節(jié)共64位,是DES算法的工作密鑰;Data也為8個字節(jié)64位,是要被加密或被解密的數(shù)據(jù);Mode為DES的工作方式有兩種:加密或解密。DES算法是這樣工作的:如Mode為加密,則用Key去把數(shù)據(jù)Data進行加密,生成Data的密碼形式(64位)作為DES的輸出結果;如Mode為解密,則用Key去把密碼形式的數(shù)據(jù)Data解密,還原為Data的明碼形式(64位)作為DES的輸出結果。DES算法的實現(xiàn)步驟DES算法實現(xiàn)加密需要三個步

11、驟:第一步:變換明文。對給定的64位比特的明文x,首先通過一個置換IP表來重新排列x,從而構造出64位比特的x0,x0=IP(x)=L0R0,其中L0表示x0的前32比特,R0表示x0的后32位。第二步:按照規(guī)則迭代。規(guī)則為Li = Ri-1Ri = Lif(Ri-1,Ki) (i=1,2,316)經(jīng)過第一步變換已經(jīng)得到L0和R0的值,其中符號表示的數(shù)學運算是異或,f表示一種置換,由S盒置換構成,Ki是一些由密鑰編排函數(shù)產(chǎn)生的比特塊。f和Ki將在后面介紹。第三步:對L16R16利用IP-1作逆置換,就得到了密文y。加密過程如圖8-4所示。從圖中可以看出,DES加密需要四個關鍵點:1、IP置換表

12、和IP-1逆置換表。2、函數(shù)f。3、子密鑰Ki。4、S盒的工作原理。(1)IP置換表和IP-1逆置換表輸入的64位數(shù)據(jù)按置換IP表進行重新組合,并把輸出分為L0、R0兩部分,每部分各長32位,其置換IP表如表8-1所示。58501234261810260524436282012462544638302214664564840322416857494133251791595143352719113615345372921135635547393123157將輸入64位比特的第58位換到第一位,第50位換到第二位,依此類推,最后一位是原來的第7位。L0、R0則是換位輸出后的兩部分,L0是輸出的左3

13、2位,R0是右32位。比如:置換前的輸入值為D1D2D3D64,則經(jīng)過初始置換后的結果為:L0=D58D50.D8,R0=D57D49.D7。經(jīng)過16次迭代運算后。得到L16、R16,將此作為輸入,進行逆置換,即得到密文輸出。逆置換正好是初始置的逆運算,例如,第1位經(jīng)過初始置換后,處于第40位,而通過逆置換IP-1,又將第40位換回到第1位,其逆置換IP-1規(guī)則表8-2所示。逆置換表IP-1 408481656246432397471555236331386461454226230375451353216129364441252206028353431151195927342421050185

14、82633141949175725(2)函數(shù)f函數(shù)f有兩個輸入:32位的Ri-1和48位Ki,f函數(shù)的處理流程如圖8-5所示。E變換的算法是從Ri-1的32位中選取某些位,構成48位。即E將32比特擴展變換為48位,變換規(guī)則根據(jù)E位選擇表,如表8-3所示。3212345456789891011121312131415161716171819202120212223242524252627282928293031321Ki是由密鑰產(chǎn)生的48位比特串,具體的算法下面介紹。將E的選位結果與Ki作異或操作,得到一個48位輸出。分成8組,每組6位,作為8個S盒的輸入。每個S盒輸出4位,共32位,S盒的工

15、作原理將在第第四步介紹。S盒的輸出作為P變換的輸入,P的功能是對輸入進行置換,P換位表如表8-4所示。1672021291228171152326518311028241432273919133062211425(3)子密鑰ki假設密鑰為K,長度為64位,但是其中第8、16、24、32、40、48、64用作奇偶校驗位,實際上密鑰長度為56位。K的下標i的取值范圍是1到16,用16輪來構造。構造過程如圖8-6所示。首先,對于給定的密鑰K,應用PC1變換進行選位,選定后的結果是56位,設其前28位為C0,后28位為D0。PC1選位如表8-5所示。57494133251791585042342618

16、102595143352719113605244366355473931231576254463830221466153453729211352820124第一輪:對C0作左移LS1得到C1,對D0作左移LS1得到D1,對C1D1應用PC2進行選位,得到K1。其中LS1是左移的位數(shù),如表8-6所示。1122222212222221表8-6中的第一列是LS1,第二列是LS2,以此類推。左移的原理是所有二進位向左移動,原來最右邊的比特位移動到最左邊。其中PC2如表8-7所示。14171124153281562110231912,42681672720132415231374755304051453

17、348444939563453464250362932第二輪:對C1,D1作左移LS2得到C2和D2,進一步對C2D2應用PC2進行選位,得到K2。如此繼續(xù),分別得到K3,K4K16。(4)S盒的工作原理S盒以6位作為輸入,而以4位作為輸出,現(xiàn)在以S1為例說明其過程。假設輸入為A=a1a2a3a4a5a6,則a2a3a4a5所代表的數(shù)是0到15之間的一個數(shù),記為:k=a2a3a4a5;由a1a6所代表的數(shù)是0到3間的一個數(shù),記為h=a1a6。在S1的h行,k列找到一個數(shù)B,B在0到15之間,它可以用4位二進制表示,為B=b1b2b3b4,這就是S1的輸出。DES算法的解密過程是一樣的,區(qū)別僅僅

18、在于第一次迭代時用子密鑰K15,第二次K14、最后一次用K0,算法本身并沒有任何變化。DES的算法是對稱的,既可用于加密又可用于解密。DES算法的應用誤區(qū) DES算法具有比較高安全性,到目前為止,除了用窮舉搜索法對DES算法進行攻擊外,還沒有發(fā)現(xiàn)更有效的辦法。而56位長的密鑰的窮舉空間為256,這意味著如果一臺計算機的速度是每一秒種檢測一百萬個密鑰,則它搜索完全部密鑰就需要將近2285年的時間,可見,這是難以實現(xiàn)的,當然,隨著科學技術的發(fā)展,當出現(xiàn)超高速計算機后,我們可考慮把DES密鑰的長度再增長一些,以此來達到更高的保密程度。DES算法的程序實現(xiàn)根據(jù)DES算法的原理,可以方便的利用C語言實現(xiàn)

19、其加密和解密算法。程序在VC+6.0環(huán)境下測試通過在VC+6.0中新建基于控制臺的Win32應用程序,算法如程序proj8_1.cpp所示。設置一個密鑰匙為數(shù)組char key8=1,9,8,0,9,1,7,2,要加密的字符串數(shù)組是str=Hello,利用Des_SetKey(key)設置加密的密鑰,調用Des_Run(str, str, ENCRYPT)對輸入的明文進行加密,其中第一個參數(shù)str是輸出的密文,第二個參數(shù)str是輸入的明文,枚舉值ENCRYPT設置進行加密運算。程序執(zhí)行的結果如圖8-7所示。RSA算法的原理 1976年,Diffie和Hellman在文章“密碼學新方向(New

20、Direction in Cryptography)”中首次提出了公開密鑰密碼體制的思想,1977年,Rivest、Shamir和Adleman三個人實現(xiàn)了公開密鑰密碼體制,現(xiàn)在稱為RSA公開密鑰體制,它是第一個既能用于數(shù)據(jù)加密也能用于數(shù)字簽名的算法。這種算法易于理解和操作,算法的名字以發(fā)明者的名字命名:Ron Rivest, Adi Shamir和Leonard Adleman。但RSA的安全性一直未能得到理論上的證明。它經(jīng)歷了各種攻擊,至今未被完全攻破。RSA體制RSA體制可以簡單描述如下:(1)、生成兩個大素數(shù)p和q。(2)、計算這兩個素數(shù)的乘積n=pq。(3)、計算小于n并且與n互質的

21、整數(shù)的個數(shù),即歐拉函數(shù)(n)=(p-1)(q-1)。(4)、選擇一個隨機數(shù)b滿足1b(n),并且b和(n)互質,即gcd(b, (n)=1。(5)、計算ab=1 mod (n)。(6)、保密a,p和q,公開n和b。利用RSA加密時,明文以分組的方式加密:每一個分組的比特數(shù)應該小于log2n比特。加密明文x時,利用公鑰(b, n)來計算c=xb mod n就可以得到相應的密文c。解密的時候,通過計算ca mod n就可以恢復出明文x。選取的素數(shù)p和q要足夠大,從而乘積n足夠大,在事先不知道p和q的情況下分解n是計算上不可行的。常用的公鑰加密算法包括:RSA密碼體制、ElGamal密碼體制和散列函

22、數(shù)密碼體制(MD4、MD5等)。RSA算法的安全性 RSA的安全性依賴于大數(shù)分解,但是否等同于大數(shù)分解一直未能得到理論上的證明,因為沒有證明破解 RSA就一定需要作大數(shù)分解。假設存在一種無須分解大數(shù)的算法,那它肯定可以修改成為大數(shù)分解算法。目前, RSA 的一些變種算法已被證明等價于大數(shù)分解。不管怎樣,分解n是最顯然的攻擊方法?,F(xiàn)在,人們已能分解多個十進制位的大素數(shù)。因此,模數(shù)n必須選大一些,因具體適用情況而定 RSA算法的速度 由于進行的都是大數(shù)計算,使得RSA最快的情況也比DES慢上倍,無論是軟件還是硬件實現(xiàn)。速度一直是RSA的缺陷。一般來說只用于少量數(shù)據(jù)加密。RSA算法是第一個能同時用于

23、加密和數(shù)字簽名的算法,也易于理解和操作。RSA是被研究得最廣泛的公鑰算法,從提出到現(xiàn)在已近二十年,經(jīng)歷了各種攻擊的考驗,逐漸為人們接受,普遍認為是目前最優(yōu)秀的公鑰方案之一。RSA算法的程序實現(xiàn) 根據(jù)RSA算法的原理,可以利用C語言實現(xiàn)其加密和解密算法。RSA算法比DES算法復雜,加解密的所需要的時間也比較長。本案例利用RSA算法對文件的加密和解密。算法根據(jù)設置自動產(chǎn)生大素數(shù)p和q,并根據(jù)p和q的值產(chǎn)生模(n)、公鑰(e)和密鑰(d)。利用VC+6.0實現(xiàn)核心算法,如圖8-8所示。編譯執(zhí)行程序,如圖8-9所示。該對話框提供的功能是對未加密的文件進行加密,并可以對已經(jīng)加密的文件進行解密。在圖8-9

24、中點擊按鈕“產(chǎn)生RSA密鑰對”,在出現(xiàn)的對話框中首先產(chǎn)生素數(shù)p和素數(shù)q,如果產(chǎn)生100位長度的p和q,大約分別需要10秒左右,產(chǎn)生的素數(shù)如圖8-10所示。利用素數(shù)p和q產(chǎn)生密鑰對,產(chǎn)生的結果如圖8-11所示。必須將生成的模n、公密e和私密d導出,并保存成文件,加密和解密的過程中要用到這三個文件。其中模n和私密d用來加密,模n和公密e用來解密。將三個文件分別保存,如圖8-12所示。在主界面選擇一個文件,并導入“模n.txt”文件到RSA模n文本框,導入“私密.txt”文件或者“公密.txt”,加密如果用“私密.txt”,那么解密的過程就用“公密.txt”。反之依然,加密過程如圖8-13所示。加密

25、完成以后,自動產(chǎn)生一個加密文件,如圖8-14所示。解密過程要在輸入文件對話框中輸入已經(jīng)加密的文件,按鈕“加密”自動變成“解密”。選擇“模n.txt”和密鑰,解密過程如圖8-15所示。解密成功以后,查看原文件和解密后的文件,如圖8-16所示。PGP加密技術PGP(Pretty Good Privacy)加密技術是一個基于RSA公鑰加密體系的郵件加密軟件,提出了公共鑰匙或不對稱文件的加密技術。PGP簡介 PGP加密技術的創(chuàng)始人是美國的Phil Zimmermann。他的創(chuàng)造性把把RSA公鑰體系和傳統(tǒng)加密體系的結合起來,并且在數(shù)字簽名和密鑰認證管理機制上有巧妙的設計,因此PGP成為目前幾乎最流行的公鑰加密軟件包。由于RSA算法計算量極大,在速度上不適合加密大量數(shù)據(jù),所以PGP實際上用來加密的不是RSA本身,而是采用傳統(tǒng)加密算法IDEA,IDEA加解密的速度比RSA快得多。PGP隨機生成一個密鑰,用IDEA算法對明文加密,然后用RSA算法對密鑰加密。收件人同樣是用RSA解出隨機密鑰,再用IEDA解出原文。這樣的鏈式加密既有RSA算法的保密性(Privacy)和認證性(Authentication),又保持了IDEA算法速度快的優(yōu)

溫馨提示

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

評論

0/150

提交評論