版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、信息加密與密碼分析信息加密與密碼分析 內(nèi)容提要內(nèi)容提要密碼學的基本概念,加密類型,混合加密方法以及消密碼學的基本概念,加密類型,混合加密方法以及消息一致性息一致性 密碼學應用,密碼分析與攻擊密碼學應用,密碼分析與攻擊 加密領域中兩種主流加密技術:加密領域中兩種主流加密技術: des加密(加密(data encryption standard) rsa加密(加密(rivest-shamir-adleman) 加密工具加密工具pgp(pretty good privacy)2.1密碼學概述密碼學概述 密碼學密碼學是一門古老而深奧的學科,對一般是一門古老而深奧的學科,對一般人來說是非常陌生的。長期以
2、來,只在很人來說是非常陌生的。長期以來,只在很小的范圍內(nèi)使用,如軍事、外交、情報等小的范圍內(nèi)使用,如軍事、外交、情報等部門。計算機密碼學是研究計算機信息加部門。計算機密碼學是研究計算機信息加密、解密及其變換的科學,是數(shù)學和計算密、解密及其變換的科學,是數(shù)學和計算機的交叉學科,也是一門新興的學科。隨機的交叉學科,也是一門新興的學科。隨著計算機網(wǎng)絡和計算機通信技術的發(fā)展,著計算機網(wǎng)絡和計算機通信技術的發(fā)展,計算機密碼學得到前所未有的重視并迅速計算機密碼學得到前所未有的重視并迅速普及和發(fā)展起來。普及和發(fā)展起來。2.1.1密碼學的發(fā)展密碼學的發(fā)展 密碼學的歷史比較悠久。密碼學的歷史比較悠久。在四千年前
3、,古埃及人在四千年前,古埃及人就開始使用密碼來保密傳遞消息。兩千多年前,就開始使用密碼來保密傳遞消息。兩千多年前,羅馬國王羅馬國王julius caesar(愷撒)就開始使用(愷撒)就開始使用目前稱為目前稱為“愷撒密碼愷撒密碼”的密碼系統(tǒng)。但是密碼的密碼系統(tǒng)。但是密碼技術直到技術直到20世紀世紀40年代以后才有重大突破和年代以后才有重大突破和發(fā)展。特別是發(fā)展。特別是20世紀世紀70年代后期,由于計算年代后期,由于計算機、電子通信的廣泛使用,現(xiàn)代密碼學得到了機、電子通信的廣泛使用,現(xiàn)代密碼學得到了空前的發(fā)展??涨暗陌l(fā)展。密碼學相關科學大致可以分為密碼學相關科學大致可以分為3個方面?zhèn)€方面:密碼學密
4、碼學(cryptology)是研究信息系統(tǒng)安全保密的)是研究信息系統(tǒng)安全保密的科學,科學,密碼編碼學密碼編碼學(cryptography)主要研)主要研究對信息進行編碼,實現(xiàn)對信息的隱藏。究對信息進行編碼,實現(xiàn)對信息的隱藏。密碼密碼分析學分析學(cryptanalytics)主要研究加密消息)主要研究加密消息的破譯或消息的偽造。的破譯或消息的偽造。n密碼學的發(fā)展大致經(jīng)過密碼學的發(fā)展大致經(jīng)過3個階段個階段( 略略 )第一階段是第一階段是1949年之前,密碼學是一門藝術,這階段的研年之前,密碼學是一門藝術,這階段的研究特點是:究特點是:1. 密碼學還不是科學,而是藝術密碼學還不是科學,而是藝術2.
5、 出現(xiàn)一些密碼算法和加密設備出現(xiàn)一些密碼算法和加密設備3. 密碼算法的基本手段出現(xiàn),主要針對字符密碼算法的基本手段出現(xiàn),主要針對字符4. 簡單的密碼分析手段出現(xiàn),數(shù)據(jù)的安全基于算法的保密。簡單的密碼分析手段出現(xiàn),數(shù)據(jù)的安全基于算法的保密。該階段具有代表性的事件是:該階段具有代表性的事件是:1883年年kerchoffs第一次明第一次明確的提出了編碼的原則:確的提出了編碼的原則: 加密算法應建立在算法的公開加密算法應建立在算法的公開且不影響明文和密鑰的安全的基礎上。這個原則得到廣且不影響明文和密鑰的安全的基礎上。這個原則得到廣泛承認,成為判定密碼強度的衡量標準,實際上也成為泛承認,成為判定密碼強
6、度的衡量標準,實際上也成為傳統(tǒng)密碼和現(xiàn)代密碼的分界線。傳統(tǒng)密碼和現(xiàn)代密碼的分界線。第二階段是第二階段是1949-1975年,密碼學成為一門獨立的科學,年,密碼學成為一門獨立的科學,該階段計算機的出現(xiàn)使基于復雜計算的密碼成為可能。該階段計算機的出現(xiàn)使基于復雜計算的密碼成為可能。主要研究特點是:數(shù)據(jù)安全基于密鑰而不是算法的保密。主要研究特點是:數(shù)據(jù)安全基于密鑰而不是算法的保密。第三階段是第三階段是1976年以后,密碼學中公鑰密碼學成為主要年以后,密碼學中公鑰密碼學成為主要研究方向,該階段具有代表性的事件是:研究方向,該階段具有代表性的事件是:1976年,年,diffie和和hellman提出了不對
7、稱密鑰。提出了不對稱密鑰。1977年,年,rivest等提出了等提出了rsa公鑰算法。公鑰算法。1977年,年,des算法出現(xiàn)。算法出現(xiàn)。80年代,出現(xiàn)年代,出現(xiàn)idea和和cast等算法。等算法。90年代,對稱密鑰密碼算法進一步成熟,年代,對稱密鑰密碼算法進一步成熟,rijndael,rc6等出現(xiàn),逐步出現(xiàn)橢圓曲線等其他公鑰算法。等出現(xiàn),逐步出現(xiàn)橢圓曲線等其他公鑰算法。2001年,年,rijndael成為成為des算法的替代者。算法的替代者。2004年年8月,山東大學信息安全所所長王小云在國際會議月,山東大學信息安全所所長王小云在國際會議上首次宣布了她及她的研究小組對上首次宣布了她及她的研究
8、小組對md5、haval-128、md4和和ripemd等四個著名密碼算法的破譯結(jié)果,引等四個著名密碼算法的破譯結(jié)果,引起世界轟動。這階段的主要特點是:公鑰密碼使得發(fā)送起世界轟動。這階段的主要特點是:公鑰密碼使得發(fā)送端和接收端無密鑰傳輸?shù)谋C芡ㄐ懦蔀榭赡?。端和接收端無密鑰傳輸?shù)谋C芡ㄐ懦蔀榭赡堋?.1.2 密碼技術簡介密碼技術簡介 計算機網(wǎng)絡的廣泛應用,計算機網(wǎng)絡的廣泛應用,產(chǎn)生了大量的電子數(shù)據(jù),這些電子產(chǎn)生了大量的電子數(shù)據(jù),這些電子數(shù)據(jù)需要傳輸?shù)骄W(wǎng)絡的許多地方。有意的計算機犯罪和無意數(shù)據(jù)需要傳輸?shù)骄W(wǎng)絡的許多地方。有意的計算機犯罪和無意的數(shù)據(jù)破壞對這些數(shù)據(jù)產(chǎn)生了很大的威脅。國家機密、企業(yè)的數(shù)據(jù)
9、破壞對這些數(shù)據(jù)產(chǎn)生了很大的威脅。國家機密、企業(yè)經(jīng)濟信息、銀行網(wǎng)上業(yè)務等中的任何差錯都會使國家安全、經(jīng)濟信息、銀行網(wǎng)上業(yè)務等中的任何差錯都會使國家安全、企業(yè)經(jīng)營受到巨大的損害。原則上來說對電子數(shù)據(jù)的攻擊有企業(yè)經(jīng)營受到巨大的損害。原則上來說對電子數(shù)據(jù)的攻擊有兩種形式。兩種形式。(1)被動攻擊。被動攻擊。非法從傳輸信道上截取信息,或從存儲載非法從傳輸信道上截取信息,或從存儲載體上偷竊信息。體上偷竊信息。(2)主動進攻。主動進攻。對傳輸或存儲的數(shù)據(jù)進行惡意的刪除、修對傳輸或存儲的數(shù)據(jù)進行惡意的刪除、修改等。改等。雖然對這些行為已經(jīng)建立相應的法律,但由于這種犯罪形式雖然對這些行為已經(jīng)建立相應的法律,但由
10、于這種犯罪形式的特殊性,對于它的監(jiān)督、甚至量刑都是很困難的。因此在的特殊性,對于它的監(jiān)督、甚至量刑都是很困難的。因此在不斷完善相應法律和監(jiān)督的同時,還需要加強不斷完善相應法律和監(jiān)督的同時,還需要加強自我保護,密自我保護,密碼技術碼技術是一種有效而經(jīng)濟的方法。是一種有效而經(jīng)濟的方法。經(jīng)典的密碼學經(jīng)典的密碼學是關于加密和解密是關于加密和解密,主要用于保密通信,主要用于保密通信。目前,已經(jīng)不再是單一的加解密技術,已被有效、系目前,已經(jīng)不再是單一的加解密技術,已被有效、系統(tǒng)地用于保證電子數(shù)據(jù)的統(tǒng)地用于保證電子數(shù)據(jù)的保密性、完整性和真實性保密性、完整性和真實性。保密性保密性就是對數(shù)據(jù)進行加密,使非法用戶
11、無法讀懂數(shù)據(jù)就是對數(shù)據(jù)進行加密,使非法用戶無法讀懂數(shù)據(jù)信息,而合法用戶可以應用密鑰讀取信息。信息,而合法用戶可以應用密鑰讀取信息。完整性完整性是對數(shù)據(jù)完整性的鑒別,以確定數(shù)據(jù)是否被非法是對數(shù)據(jù)完整性的鑒別,以確定數(shù)據(jù)是否被非法篡改,保證合法用戶得到正確、完整的信息。篡改,保證合法用戶得到正確、完整的信息。真實性真實性是數(shù)據(jù)來源的真實性、數(shù)據(jù)本身真實性的鑒別,是數(shù)據(jù)來源的真實性、數(shù)據(jù)本身真實性的鑒別,可以保證合法用戶不被欺騙。可以保證合法用戶不被欺騙?,F(xiàn)代密碼技術現(xiàn)代密碼技術的應用已經(jīng)深入到數(shù)據(jù)處理過程的各個環(huán)的應用已經(jīng)深入到數(shù)據(jù)處理過程的各個環(huán)節(jié),包括:數(shù)據(jù)加密、密碼分析、數(shù)字簽名、信息鑒節(jié),
12、包括:數(shù)據(jù)加密、密碼分析、數(shù)字簽名、信息鑒別、零知識認證、秘密共享等。別、零知識認證、秘密共享等。密碼學的數(shù)學工具密碼學的數(shù)學工具也更加廣泛,有概率統(tǒng)計、數(shù)論、代也更加廣泛,有概率統(tǒng)計、數(shù)論、代數(shù)、混沌和橢圓曲線等。數(shù)、混沌和橢圓曲線等。密碼學專業(yè)術語包括密碼學專業(yè)術語包括:消息和加密、鑒別、完整性和抗:消息和加密、鑒別、完整性和抗抵賴性、算法和密鑰、對稱算法和非對稱算法(公開抵賴性、算法和密鑰、對稱算法和非對稱算法(公開密鑰算法)等等。密鑰算法)等等。2.1.3 消息和加密消息和加密 加密:加密:可翻譯成可翻譯成“encipher” 或或“ encrypt”,用某種,用某種方法偽裝消息以隱藏
13、它的內(nèi)容的過程,方法偽裝消息以隱藏它的內(nèi)容的過程,解密:解密:可翻譯成可翻譯成“decipher” 或或“decrypt”,把密文轉(zhuǎn),把密文轉(zhuǎn)變?yōu)槊魑牡倪^程。變?yōu)槊魑牡倪^程。明文:明文:未加密消息,未加密消息,密文:密文:加了密的消息,加了密的消息,圖圖2-1表明了加密和解密的過程。表明了加密和解密的過程。加密加密解密解密明文明文密文密文原始明文原始明文明文用明文用m(message,消息)或消息)或p(plaintext,明文)表示明文)表示,它可能是比特流、文本文件、位圖、數(shù)字化的語音流或它可能是比特流、文本文件、位圖、數(shù)字化的語音流或者數(shù)字化的視頻圖像等。者數(shù)字化的視頻圖像等。密文用密文
14、用c(cipher)表示)表示,也是二進制數(shù)據(jù),有時也是二進制數(shù)據(jù),有時c=m。通過壓縮和加密的結(jié)合,通過壓縮和加密的結(jié)合,c0)可能依賴于可能依賴于k,0,x0,x1,xi-1等參數(shù)。等參數(shù)。分組密碼無記憶。分組密碼無記憶。2.3常用加密算法常用加密算法目前加密算法很多,具有代表性的加密算法:目前加密算法很多,具有代表性的加密算法: des算法、算法、idea算法、算法、aes算法、算法、rc5算法、算法、rc4序列序列算法、算法、rsa算法與橢圓曲線算法。算法與橢圓曲線算法。2.3.1 idea 算法算法國際加密標準國際加密標準idea是一個對稱迭代分組密碼,是一個對稱迭代分組密碼,分組長
15、度為分組長度為64比特,密鑰比特,密鑰長度為長度為128比特。比特。idea的軟件實現(xiàn)速度與的軟件實現(xiàn)速度與des差不多。差不多。但硬件實現(xiàn)速度要比但硬件實現(xiàn)速度要比des快得多,快將近快得多,快將近10倍。設計者倍。設計者們聲稱由們聲稱由eth zurich開發(fā)的一種芯片,采用開發(fā)的一種芯片,采用idea算法算法的加密速率可達到的加密速率可達到177m比特比特/秒。秒。idea密碼中使用了以下三種不同的運算:密碼中使用了以下三種不同的運算: 1.逐比特異或運算;逐比特異或運算; 2.模模2加運算;加運算; 3.模模2+1乘運算,乘運算,0與與2對應。對應。idea算法算法是是由由8圈迭代和隨
16、后的一個輸出變換組成。圈迭代和隨后的一個輸出變換組成。它將它將64比特的數(shù)據(jù)分成比特的數(shù)據(jù)分成4個子塊,每個個子塊,每個16比特,比特,令這四個子塊作為迭代第一輪的輸出,全部共令這四個子塊作為迭代第一輪的輸出,全部共8圈圈迭代。每圈迭代都是迭代。每圈迭代都是4個子塊彼此間以及個子塊彼此間以及16比特比特的子密鑰進行異或,的子密鑰進行異或,mod2加運算,加運算,mod2+1乘乘運算。任何一輪迭代中,第三和第四子塊互換。運算。任何一輪迭代中,第三和第四子塊互換。該算法所需要的該算法所需要的“混淆混淆”可通過連續(xù)使用三個可通過連續(xù)使用三個“不相容不相容”的群運算于兩個的群運算于兩個16比特子塊來獲
17、得,比特子塊來獲得,并且該算法所選擇使用的并且該算法所選擇使用的ma-(乘加)結(jié)構(gòu)可提(乘加)結(jié)構(gòu)可提供必要的供必要的“擴散擴散”。idea有多達有多達2的的51次方個弱密鑰,這些弱密鑰是否次方個弱密鑰,這些弱密鑰是否會威脅它的安全性還是一個迷。但毫無疑問,會威脅它的安全性還是一個迷。但毫無疑問,idea密碼能夠抵抗差分分析和線性分析。密碼能夠抵抗差分分析和線性分析。2.3.2 aes 算法(略)算法(略) 2000年年10月,月,nist(美國國家標準和技術研究院)宣(美國國家標準和技術研究院)宣布通過從布通過從15種候選算法中選出的一項新的密鑰加密標種候選算法中選出的一項新的密鑰加密標準。
18、新的標準將會代替密鑰長度變的太短的舊的準。新的標準將會代替密鑰長度變的太短的舊的des算法。算法。rijndael被選中成為將來的被選中成為將來的aes(高級加密標準高級加密標準advanced encryption standard)。aes有如下優(yōu)點:可變的密鑰長度、混合的運算、數(shù)據(jù)有如下優(yōu)點:可變的密鑰長度、混合的運算、數(shù)據(jù)相關的圈數(shù)、密鑰相關的圈數(shù)、密鑰相關的相關的圈數(shù)、密鑰相關的圈數(shù)、密鑰相關的s盒、長密盒、長密鑰調(diào)度算法、變量鑰調(diào)度算法、變量f、可變長明文、可變長明文/密文塊長度、可變密文塊長度、可變?nèi)?shù)、每圈操作作用于全部數(shù)據(jù)、圈數(shù)、每圈操作作用于全部數(shù)據(jù)、這個加密體系是一種對稱
19、分組加密方法,因為信息的內(nèi)這個加密體系是一種對稱分組加密方法,因為信息的內(nèi)容是以容是以128位長度的分組為加密單元的。加密密鑰長位長度的分組為加密單元的。加密密鑰長度有度有128,192或或256位多種選擇。位多種選擇。2.3.3 rc5算法(?。┧惴ǎㄊ。?rc5是對稱加密算法,由是對稱加密算法,由rsa公司的首席科學家公司的首席科學家r.rivest于于1994年設計,年設計,1995年正式公開的一個很實用的加密算法。它年正式公開的一個很實用的加密算法。它主要通過數(shù)據(jù)循環(huán)來實現(xiàn)數(shù)據(jù)的擴散和混淆。每次循環(huán)的次數(shù)主要通過數(shù)據(jù)循環(huán)來實現(xiàn)數(shù)據(jù)的擴散和混淆。每次循環(huán)的次數(shù)都依賴于輸入數(shù)據(jù),事先不可預
20、測。都依賴于輸入數(shù)據(jù),事先不可預測。rc5實際上是由三個參數(shù)決定的一組加密算法,即分組長度實際上是由三個參數(shù)決定的一組加密算法,即分組長度w,密鑰長度密鑰長度b和輪數(shù)和輪數(shù)r,見下表。,見下表。參數(shù)定義允許值w字的bit數(shù)大小。rc5加密的基本單位為2個字塊16,32,64r輪數(shù)0,1, ,255b密鑰字節(jié)的長度(8-bit bytes)0,1, ,255nrc5加密明文塊的長度為加密明文塊的長度為32,64,128 bits。并且對應。并且對應同樣長度的密文。密鑰長度為從同樣長度的密文。密鑰長度為從0到到2040 bits。一個特。一個特定的定的rc5表示為:表示為: rc5-w/r/b。r
21、ivest建議使用的標建議使用的標注注rc5為:為:rc5-32/12/16(明文分組長度(明文分組長度64,加密輪,加密輪數(shù)數(shù)12,密鑰長度,密鑰長度128 bits)。rc5算法的特點是:算法的特點是:n適用于軟件或者硬件實現(xiàn);適用于軟件或者硬件實現(xiàn);n運算速度快;運算速度快;n能適應于不同字長的程序(一個字的能適應于不同字長的程序(一個字的bit數(shù)是數(shù)是rc5的一個的一個參數(shù);不同字長派生出相異的算法);參數(shù);不同字長派生出相異的算法);n加密的輪數(shù)可變(輪數(shù)是加密的輪數(shù)可變(輪數(shù)是rc5的第二個參數(shù),這個參數(shù)的第二個參數(shù),這個參數(shù)用來調(diào)整加密速度和安全性的程度);用來調(diào)整加密速度和安全
22、性的程度);n密鑰長度是可變的(密鑰長度是密鑰長度是可變的(密鑰長度是rc5的第三個參數(shù));的第三個參數(shù));nrc5形式簡單,易于實現(xiàn),加密強度可調(diào)節(jié);形式簡單,易于實現(xiàn),加密強度可調(diào)節(jié);n對記憶度要求不高(使對記憶度要求不高(使rc5可用于類似可用于類似smart card這類這類的對記憶度有限定的器件);的對記憶度有限定的器件);n高保密性(適當選擇好參數(shù));高保密性(適當選擇好參數(shù));n對數(shù)據(jù)實行對數(shù)據(jù)實行bit循環(huán)移位(增強抗攻擊能力);循環(huán)移位(增強抗攻擊能力);2.3.4 rc4序列算法(?。?序列算法體制是:密鑰饋送給一個算法,序列算法體制是:密鑰饋送給一個算法,產(chǎn)生一個無窮序列
23、產(chǎn)生一個無窮序列(這種算法通常稱為序這種算法通常稱為序列產(chǎn)生器或密鑰流產(chǎn)生器列產(chǎn)生器或密鑰流產(chǎn)生器),但是,在實,但是,在實際應用中很難做到產(chǎn)生無窮序列際應用中很難做到產(chǎn)生無窮序列(此時稱此時稱one time pad),達到所謂的完全保密,達到所謂的完全保密,所以現(xiàn)在實際應用的序列密碼體制都產(chǎn)所以現(xiàn)在實際應用的序列密碼體制都產(chǎn)生偽隨機密碼序列。序列密碼體制如圖生偽隨機密碼序列。序列密碼體制如圖2-11所示。所示。 序 列 生 產(chǎn) 器 明 文 數(shù) 據(jù) + 密 文 k( 密 鑰 ) 偽 隨 機 序 列 加 , 解 密 器 nrc4是目前使用較多,性能也較好的序列算法,它由是目前使用較多,性能也較
24、好的序列算法,它由ron rivest在在1987年為年為rsa公司開發(fā),是可變密鑰公司開發(fā),是可變密鑰長度的序列密碼,該算法以長度的序列密碼,該算法以ofb方式工作:密鑰序列方式工作:密鑰序列與明文互相獨立。它有一個與明文互相獨立。它有一個88的的s盒:盒:s0,s1,s255。所有項都是數(shù)字。所有項都是數(shù)字0到到255的置換,并的置換,并且這個置換是一個可變長度密鑰的函數(shù)。它有兩個計且這個置換是一個可變長度密鑰的函數(shù)。它有兩個計數(shù)器:數(shù)器:i和和j,初值為,初值為0。要產(chǎn)生一個隨機字節(jié),需要按。要產(chǎn)生一個隨機字節(jié),需要按下列步驟進行:下列步驟進行:ni=(i+1)mod256nj=(j+s
25、i)mod256n交換交換si和和sjnt=(si+sj)mod 256nk=stn字節(jié)字節(jié)k與明文異或產(chǎn)生密文,或者與密文異或產(chǎn)生明與明文異或產(chǎn)生密文,或者與密文異或產(chǎn)生明文。文。rc4的加密速度很快,大約是的加密速度很快,大約是des的的10倍。倍。rc4廣泛應用于商業(yè)軟件中,包括廣泛應用于商業(yè)軟件中,包括locus notes、蘋果計、蘋果計算機的算機的aoce、oracle的安全的安全sql數(shù)據(jù)庫以及數(shù)據(jù)庫以及adobe的的acrobat中。中。2.3.5 橢圓曲線算法(?。E圓曲線算法(省) n在公鑰密碼算法中,在公鑰密碼算法中,1985年,年,n. koblitz和和v. mill
26、er分別獨立提出分別獨立提出了橢圓曲線密碼體制了橢圓曲線密碼體制(ecc),其依據(jù)就是定義在橢圓曲線點群上的離,其依據(jù)就是定義在橢圓曲線點群上的離散對數(shù)問題的難解性。他們并沒有提出新的算法,只是把橢圓曲線運散對數(shù)問題的難解性。他們并沒有提出新的算法,只是把橢圓曲線運用到已存在的公鑰密碼算法中,比如說用到已存在的公鑰密碼算法中,比如說elgamal加密算法。加密算法。n隨后,隨后,koyama等在等在crypto91、demytko在在eurocrypt93中分別中分別提出了新的基于橢圓曲線的單項限門函數(shù),生成了類似于提出了新的基于橢圓曲線的單項限門函數(shù),生成了類似于rsa的公鑰的公鑰密碼算法。
27、橢圓曲線密碼體制和密碼算法。橢圓曲線密碼體制和rsa體制比較起來,所需要的密鑰量體制比較起來,所需要的密鑰量小,安全程度高,比如小,安全程度高,比如rsa密碼體制需要密碼體制需要1024-bit的密鑰才能達到的密鑰才能達到的安全程度,利用橢圓曲線只需要的安全程度,利用橢圓曲線只需要160比特位的密鑰就能夠保證同樣比特位的密鑰就能夠保證同樣的安全,密鑰長度的減少同時帶來了計算速度的提高。即使是在剩余的安全,密鑰長度的減少同時帶來了計算速度的提高。即使是在剩余類環(huán)運用離散對數(shù)而構(gòu)造的加密系統(tǒng)的安全程度也要低于橢圓曲線,類環(huán)運用離散對數(shù)而構(gòu)造的加密系統(tǒng)的安全程度也要低于橢圓曲線,因此橢圓曲線系統(tǒng)不愧
28、為一個性質(zhì)較好的密碼系統(tǒng)。現(xiàn)在密碼學界普因此橢圓曲線系統(tǒng)不愧為一個性質(zhì)較好的密碼系統(tǒng)?,F(xiàn)在密碼學界普遍認為它將替代遍認為它將替代rsa成為通用的公鑰密碼算法,成為通用的公鑰密碼算法,set( secure electronic transactions )協(xié)議的制定者已把它作為下一代協(xié)議的制定者已把它作為下一代set協(xié)協(xié)議中缺省的公鑰密碼算法。議中缺省的公鑰密碼算法。n在數(shù)字簽名一節(jié)中詳細地介紹的在數(shù)字簽名一節(jié)中詳細地介紹的dsa算法,被廣泛應用在橢圓曲線上算法,被廣泛應用在橢圓曲線上的變化,稱為橢圓曲線數(shù)字簽名算法的變化,稱為橢圓曲線數(shù)字簽名算法ecdsa,由,由ieee工作組和工作組和an
29、si(amercian national standards institute)x9組織開發(fā)。組織開發(fā)。應用橢圓曲線的數(shù)應用橢圓曲線的數(shù)字簽名同時可以字簽名同時可以很容易地使用到很容易地使用到小的有限資源的小的有限資源的設備中,例如智設備中,例如智能卡。橢圓曲線能卡。橢圓曲線上的密碼算法速上的密碼算法速度很快,分別在度很快,分別在32位的位的pc機上機上和和16位微處理位微處理器上實現(xiàn)了快速器上實現(xiàn)了快速的橢圓曲線密碼的橢圓曲線密碼算法,其中算法,其中16位微處理器上的位微處理器上的edsa數(shù)字簽名數(shù)字簽名不足不足500ms。圖圖2-12為為rsa算法和橢圓曲線算法和橢圓曲線密碼算法的難度密
30、碼算法的難度比較。比較。2.4 des對稱加密技術對稱加密技術des(data encryption standard)算法于)算法于1977年得到年得到美國政府的正式許可,是一種用美國政府的正式許可,是一種用56位密鑰來加密位密鑰來加密64位位數(shù)據(jù)的方法。數(shù)據(jù)的方法。2.4.1 des算法的歷史算法的歷史des加密算法要達到的目的有加密算法要達到的目的有4點:點:(1)提供高質(zhì)量的數(shù)據(jù)保護,防止數(shù)據(jù)未經(jīng)授權(quán)的泄露和未被察覺)提供高質(zhì)量的數(shù)據(jù)保護,防止數(shù)據(jù)未經(jīng)授權(quán)的泄露和未被察覺的修改;的修改;(2)具有相當高的復雜性,使得破譯的開銷超過可能獲得的利益,)具有相當高的復雜性,使得破譯的開銷超過
31、可能獲得的利益,同時又要便于理解和掌握;同時又要便于理解和掌握;(3)des密碼體制的安全性應該不依賴于算法的保密,其安全性僅密碼體制的安全性應該不依賴于算法的保密,其安全性僅以加密密鑰的保密為基礎;以加密密鑰的保密為基礎;(4)實現(xiàn)經(jīng)濟,運行有效,并且適用于多種完全不同的應用。)實現(xiàn)經(jīng)濟,運行有效,并且適用于多種完全不同的應用。1977年年1月,美國政府頒布采納月,美國政府頒布采納ibm公司設計的方案作為非機密數(shù)據(jù)公司設計的方案作為非機密數(shù)據(jù)的正式數(shù)據(jù)加密標準的正式數(shù)據(jù)加密標準des。 國內(nèi)隨著三金工程尤其是金卡工程的國內(nèi)隨著三金工程尤其是金卡工程的啟動,啟動,des算法在算法在atm、磁卡
32、及智能卡(、磁卡及智能卡(ic卡)、加油站、高速卡)、加油站、高速公路收費站等領域被廣泛應用,以此來實現(xiàn)關鍵數(shù)據(jù)的保密。如信公路收費站等領域被廣泛應用,以此來實現(xiàn)關鍵數(shù)據(jù)的保密。如信用卡持卡人的用卡持卡人的pin的加密傳輸,的加密傳輸,ic卡與卡與pos間的雙向認證、金融交間的雙向認證、金融交易數(shù)據(jù)包的易數(shù)據(jù)包的mac校驗等,均用到校驗等,均用到des算法。算法。2.4.2 des算法的安全性(略)算法的安全性(略)des算法正式公開發(fā)表后,引起了一場激烈的爭論。算法正式公開發(fā)表后,引起了一場激烈的爭論。1977年年diffie等人提等人提出了制造一個每秒能測試出了制造一個每秒能測試106個密
33、鑰的大規(guī)模芯片,該芯片的機器大約個密鑰的大規(guī)模芯片,該芯片的機器大約一天可搜索一天可搜索des算法的整個密鑰空間,制造這一機器需要算法的整個密鑰空間,制造這一機器需要2000萬美元。萬美元。1993年年r.session等人給出了一個非常詳細的密鑰搜索機器的設計方案,等人給出了一個非常詳細的密鑰搜索機器的設計方案,它基于并行的密鑰搜索芯片,此芯片每秒測試它基于并行的密鑰搜索芯片,此芯片每秒測試5107個密鑰,當時這種個密鑰,當時這種芯片的造價是芯片的造價是10.5美元,美元,5760個該芯片組成的系統(tǒng)需要個該芯片組成的系統(tǒng)需要10萬美元,這萬美元,這一系統(tǒng)平均一系統(tǒng)平均1.5天即可找到密鑰,如
34、果利用天即可找到密鑰,如果利用10個這樣的系統(tǒng),費用是個這樣的系統(tǒng),費用是100萬美元,但搜索時間可降到萬美元,但搜索時間可降到2.5小時。小時。可見這種機制是不安全的??梢娺@種機制是不安全的。des的的56位短密鑰面臨另外一個嚴峻問題是:國際互聯(lián)網(wǎng)位短密鑰面臨另外一個嚴峻問題是:國際互聯(lián)網(wǎng)internet的超級的超級計算能力。計算能力。1997.1.28,美國的,美國的rsa數(shù)據(jù)安全公司在互聯(lián)網(wǎng)上開展了一數(shù)據(jù)安全公司在互聯(lián)網(wǎng)上開展了一項名為項名為“密鑰挑戰(zhàn)密鑰挑戰(zhàn)”的競賽,懸賞一萬美元,破解一段用的競賽,懸賞一萬美元,破解一段用56位密鑰加密位密鑰加密的的des密文。計劃公布后引起了網(wǎng)戶的強
35、烈響應。一位名叫密文。計劃公布后引起了網(wǎng)戶的強烈響應。一位名叫rocke verser的程序員設計了一個可以通過互聯(lián)網(wǎng)分段運行的密鑰窮舉搜索程的程序員設計了一個可以通過互聯(lián)網(wǎng)分段運行的密鑰窮舉搜索程序,組織實施了一個稱為序,組織實施了一個稱為deshall的搜索行動,成千上萬的志愿者加入的搜索行動,成千上萬的志愿者加入到計劃中,在計劃實施的第到計劃中,在計劃實施的第96天,即挑戰(zhàn)賽計劃公布的第天,即挑戰(zhàn)賽計劃公布的第140天,天,1997.6.17晚上晚上10:39,鹽湖城,鹽湖城inetz公司職員公司職員michael sanders成功地成功地找到了密鑰,在計算機上顯示了明文:找到了密鑰,
36、在計算機上顯示了明文:“the unknown message is: strong cryptography makes the world a safer place”。世界在世界在internet面前變得不安全了。面前變得不安全了。internet僅應用閑散的資源,毫無代僅應用閑散的資源,毫無代價地破解了價地破解了des的密碼,這是對密碼方法的挑戰(zhàn),也是的密碼,這是對密碼方法的挑戰(zhàn),也是internet超級計超級計算能力的顯示。盡管算能力的顯示。盡管des有些不足,但作為第一個公開密碼算法的密碼有些不足,但作為第一個公開密碼算法的密碼體制成功地完成了它的使命,它在密碼學發(fā)展歷史上具有重要
37、的地位。體制成功地完成了它的使命,它在密碼學發(fā)展歷史上具有重要的地位。2.4.3 des算法的原理(算法的原理(*) des算法的入口參數(shù)有算法的入口參數(shù)有3個:個: key、 data、 mode key為為8個字節(jié)共個字節(jié)共64位,是位,是des算法的工作密鑰。算法的工作密鑰。 data也為也為8個字節(jié)個字節(jié)64位,是要被加密或被解密的數(shù)據(jù)。位,是要被加密或被解密的數(shù)據(jù)。 mode為為des的工作方式有兩種:加密或解密。的工作方式有兩種:加密或解密。des算法的原理是:算法的原理是: 如如mode為加密,則用為加密,則用key把數(shù)據(jù)把數(shù)據(jù)data進行加密,生成進行加密,生成data的密碼的
38、密碼形式(形式(64位)作為位)作為des的輸出結(jié)果;的輸出結(jié)果; 如如mode為解密,則用為解密,則用key把密碼形式的數(shù)據(jù)把密碼形式的數(shù)據(jù)data解密,還原為解密,還原為data的明碼形式(的明碼形式(64位)作為位)作為des的輸出結(jié)果。的輸出結(jié)果。在通信網(wǎng)絡的兩端,雙方約定一致的在通信網(wǎng)絡的兩端,雙方約定一致的key,在通信的源點用,在通信的源點用key對核心數(shù)對核心數(shù)據(jù)進行據(jù)進行des加密,然后以密碼形式在公共通信網(wǎng)(如電話網(wǎng))中傳輸加密,然后以密碼形式在公共通信網(wǎng)(如電話網(wǎng))中傳輸?shù)酵ㄐ啪W(wǎng)絡的終點,數(shù)據(jù)到達目的地后,用同樣的到通信網(wǎng)絡的終點,數(shù)據(jù)到達目的地后,用同樣的key對密碼數(shù)
39、據(jù)進對密碼數(shù)據(jù)進行解密,便再現(xiàn)了明碼形式的核心數(shù)據(jù)。這樣,就保證了核心數(shù)據(jù)行解密,便再現(xiàn)了明碼形式的核心數(shù)據(jù)。這樣,就保證了核心數(shù)據(jù)(如(如pin,mac等)在公共通信網(wǎng)中傳輸?shù)陌踩院涂煽啃浴Mㄟ^定等)在公共通信網(wǎng)中傳輸?shù)陌踩院涂煽啃?。通過定期在通信網(wǎng)絡的源端和目的端同時改用新的期在通信網(wǎng)絡的源端和目的端同時改用新的key,便能進一步提高數(shù),便能進一步提高數(shù)據(jù)的保密性,這是現(xiàn)在金融交易網(wǎng)絡的流行做法。據(jù)的保密性,這是現(xiàn)在金融交易網(wǎng)絡的流行做法。2.4.4 des算法的實現(xiàn)步驟算法的實現(xiàn)步驟* des算法實現(xiàn)加密需要算法實現(xiàn)加密需要3個步驟。個步驟。第第1步步:變換明文。對給定的:變換明文。
40、對給定的64位的明文位的明文x,首先通過一個,首先通過一個置換置換ip表來重新排列表來重新排列x,從而構(gòu)造出,從而構(gòu)造出64位的位的x0,x0=ip(x)=l0r0,其中,其中l(wèi)0表示表示x0的前的前32位,位,r0表示表示x0的后的后32位。位。第第2步:步:按規(guī)則迭代。規(guī)則為:按規(guī)則迭代。規(guī)則為: li = ri-1 ,ri = li f(ri-1,ki) (i=1,2,3, ,16) 經(jīng)過第經(jīng)過第1步變換已經(jīng)得到步變換已經(jīng)得到l0和和r0的值,其中符號的值,其中符號 表表示數(shù)學運算示數(shù)學運算“異或異或”,f表示一種置換,由表示一種置換,由s盒置換構(gòu)成,盒置換構(gòu)成,ki是一些由密鑰編排函數(shù)
41、產(chǎn)生的比特塊。是一些由密鑰編排函數(shù)產(chǎn)生的比特塊。f和和ki將在后面將在后面介紹。介紹。第第3步:對步:對l16r16利用利用ip-1作逆置換,就得到了密文作逆置換,就得到了密文y0加密過程如圖加密過程如圖2-13所示。所示。des加密需要加密需要4個關鍵點個關鍵點:ip置換表和置換表和ip-1逆置換表、函逆置換表、函數(shù)數(shù)f、子密鑰子密鑰ki、s盒盒 工作原理:工作原理:(1)ip置換表和置換表和ip-1逆置換表。逆置換表。 輸入的輸入的64位數(shù)據(jù)按位數(shù)據(jù)按ip表置換進行重新組合,并把輸出分為表置換進行重新組合,并把輸出分為l0和和r0兩部分,兩部分,每部分各每部分各32位位 。(設計如此)。(
42、設計如此)其其ip表置換表置換 16位位*45850123426181026052443628201246254463830221466456484032241685749413325179159514335271911361534537292113563554739312315740848165624643239747155523633138646145422623037545135321612936444125220602835343115119592734242105018582633141949175725ip-1逆置換表逆置換表16位位*4將輸入的將輸入的64位明文的第位明文的第58
43、位換到第位換到第1位,第位,第50位換到第位換到第2位,依此類推,最后一位是原來的位,依此類推,最后一位是原來的第第7位。位。l0和和r0則是換位輸出后的兩部分,則是換位輸出后的兩部分,l0是輸出的左是輸出的左32位,位,r0是右是右32位。比如:置位。比如:置換前的輸入值為換前的輸入值為d1d2d3d64,則經(jīng)過初始,則經(jīng)過初始置換后的結(jié)果為:置換后的結(jié)果為:l0=d58d50d8,r0=d57d49d7。經(jīng)過經(jīng)過16次迭代運算后。得到次迭代運算后。得到l16和和r16,將此作,將此作為輸入進行逆置換,即得到密文輸出。為輸入進行逆置換,即得到密文輸出。逆置換正好是初始置的逆運算,例如,第逆置
44、換正好是初始置的逆運算,例如,第1位經(jīng)位經(jīng)過初始置換后,處于第過初始置換后,處于第40位,而通過逆置換位,而通過逆置換ip-1,又將第,又將第40位換回到第位換回到第1位,其逆置換位,其逆置換ip-1規(guī)則表如規(guī)則表如2-4所示。所示。(2)函數(shù)函數(shù)f。它有兩個輸入:它有兩個輸入:32位的位的ri-1和和48位位ki,f函數(shù)的處理流程如圖函數(shù)的處理流程如圖2-14。e變換變換的算法是從的算法是從ri-1的的32位中選取某些位,位中選取某些位,構(gòu)成構(gòu)成48位,即位,即e將將32位擴展為位擴展為48位。變換位。變換規(guī)則根據(jù)規(guī)則根據(jù)e位選擇表,如表位選擇表,如表2-5。 16位*33212345456
45、789891011121312131415161716171819202120212223242524252627282928293031321ki是由密鑰產(chǎn)生的是由密鑰產(chǎn)生的48位比特串,具體的算法是:將位比特串,具體的算法是:將e的選的選位結(jié)果與位結(jié)果與ki作異或操作,得到一個作異或操作,得到一個48位輸出。分成位輸出。分成8組,組,每組每組6位,作為位,作為8個個s盒的輸入。盒的輸入。每個每個s盒盒輸出輸出4位,共位,共32位,位,s盒的工作原理將在第盒的工作原理將在第4步介步介紹。紹。s盒的輸出作為盒的輸出作為p變換的輸入,變換的輸入,p的功能是對輸入的功能是對輸入進行置換,進行置換,
46、p換位表如表換位表如表2-6所示。所示。 16位位*2(3 3)子密鑰)子密鑰 k ki i。設密鑰為設密鑰為k k,長度為,長度為6464位,但是其中第位,但是其中第8 8,1616,2424,3232,4040,4848,5656,6464用做用做奇偶校驗位奇偶校驗位,實際,實際上密鑰長度為上密鑰長度為5656位位。k k的下標的下標i i的取值范圍是的取值范圍是1 1到到1616,用用1616輪來構(gòu)造輪來構(gòu)造。構(gòu)造過程如圖。構(gòu)造過程如圖2-152-15 1672021291228171152326518311028241432273919133062211425首先,對于給定的密鑰密鑰k
47、,應用pc1變換進行選位,選定后的結(jié)果是56位,設其前28位為c0,后28位為d0。pc1選位如表2-7所示。 14位*45757494941413333252517179 91 158585050424234342626181810102 259595151434335352727191911113 3606052524444363663635555474739393131232315157 762625454464638383030222214146 661615353454537372929212113135 52828202012124 4第第1輪輪:對:對c0作左移作左移ls1得到得
48、到c1,對,對d0作左移作左移ls1得到得到d1,對,對c1d1應用應用pc2進行選位,得到進行選位,得到k1。其中。其中l(wèi)s1是左移的位數(shù),是左移的位數(shù),ls、 pc2如下。如下。第第2輪輪:對:對c1和和d1作左移作左移ls2得到得到c2和和d2,進一步對,進一步對c2d2應用應用pc2進行選位,得到進行選位,得到k2。如此繼續(xù),分別得。如此繼續(xù),分別得到到k3,k4,k16。1 11 12 22 22 22 22 22 21 12 22 22 22 22 22 21 114141717111124241 15 53 3282815156 6212110102323191912124 42
49、6268 816167 72727202013132 2414152523131373747475555303040405151454533334848444449493939565634345353464642425050363629293232(4)s盒的工作原理。盒的工作原理。s盒以盒以6位作為輸入,位作為輸入,而以而以4位作為輸出,位作為輸出,現(xiàn)在以現(xiàn)在以s1為例說明為例說明其過程。假設輸入為其過程。假設輸入為a=a1a2a3a4a5a6,則,則a2a3a4a5所所代表的數(shù)是代表的數(shù)是0到到15之間的一個數(shù),記為:之間的一個數(shù),記為:k=a2a3a4a5;由;由a1a6所代表的數(shù)是所代
50、表的數(shù)是0到到3間的一個數(shù),記為間的一個數(shù),記為h=a1a6。在。在s1的的h行,行,k列找到一個數(shù)列找到一個數(shù)b,b在在0到到15之之間,它可以用間,它可以用4位二進制表示,為位二進制表示,為b=b1b2b3b4,這就是,這就是s1的輸出。的輸出。s盒盒由由8張數(shù)據(jù)表組成,張數(shù)據(jù)表組成,如表如表2-10所示。所示。2.4.5 des算法的應用誤區(qū)(略)算法的應用誤區(qū)(略) des算法具有比較高的安全性,到目前為止,除了用窮舉搜算法具有比較高的安全性,到目前為止,除了用窮舉搜索法對索法對des算法進行攻擊外,還沒有發(fā)現(xiàn)更有效的辦法。算法進行攻擊外,還沒有發(fā)現(xiàn)更有效的辦法。而而56位的密鑰的窮舉
51、空間為位的密鑰的窮舉空間為2的的56次方次方,這意味著如果一,這意味著如果一臺計算機的速度是每秒鐘檢測一百萬個密鑰,則它搜索完臺計算機的速度是每秒鐘檢測一百萬個密鑰,則它搜索完全部密鑰就需要將近全部密鑰就需要將近2285年年,可見難以實現(xiàn)。當然,隨著,可見難以實現(xiàn)。當然,隨著科學技術的發(fā)展,當出現(xiàn)超高速計算機后,可考慮把科學技術的發(fā)展,當出現(xiàn)超高速計算機后,可考慮把des密鑰的長度再增長一些,以此來達到更高的保密程度。密鑰的長度再增長一些,以此來達到更高的保密程度。des算法中只用到算法中只用到64位密鑰中的位密鑰中的56位,而第位,而第8,16,24,64位位8個位并未參與個位并未參與des
52、運算,這一點提出了一個應用上的要運算,這一點提出了一個應用上的要求,即求,即des的安全性是基于除了的安全性是基于除了8,16,24,64位外位外的其余的其余56位的組合變化位的組合變化2的的56才得以保證的。因此,在實才得以保證的。因此,在實際應用中,應避開使用第際應用中,應避開使用第8,16,24,64位作為有效位作為有效數(shù)據(jù)位,而使用其他的數(shù)據(jù)位,而使用其他的56位作為有效數(shù)據(jù)位,才能保證位作為有效數(shù)據(jù)位,才能保證des算法安全可靠地發(fā)揮作用。如果不了解這一點,把密算法安全可靠地發(fā)揮作用。如果不了解這一點,把密鑰鑰key的的8,16,24,64位作為有效數(shù)據(jù)使用,將不位作為有效數(shù)據(jù)使用,
53、將不能保證能保證des加密數(shù)據(jù)的安全性,對運用加密數(shù)據(jù)的安全性,對運用des來達到保密作來達到保密作用的系統(tǒng)產(chǎn)生數(shù)據(jù)被破譯的危險,用的系統(tǒng)產(chǎn)生數(shù)據(jù)被破譯的危險,這正是這正是des算法在應用算法在應用上的誤區(qū),留下了被人攻擊、破譯的極大隱患。上的誤區(qū),留下了被人攻擊、破譯的極大隱患。2.4.6 des算法的程序?qū)崿F(xiàn)算法的程序?qū)崿F(xiàn) 根據(jù)根據(jù)des算法的原理,可以方便地利用算法的原理,可以方便地利用c語言實現(xiàn)其加密和解密算法。程序在語言實現(xiàn)其加密和解密算法。程序在vc+6.0環(huán)境下測試通過。環(huán)境下測試通過。案例案例2-1 des加密算法研究加密算法研究 2.5 rsa公鑰加密技術公鑰加密技術 197
54、6年,年,diffie和和hellman在在“密碼學新方向密碼學新方向(new direction in cryptography)”文中首次提出了公開文中首次提出了公開密鑰密碼體制的思想。密鑰密碼體制的思想。1977年,年,rivest,shamir和和adleman三人三人(并以發(fā)明者并以發(fā)明者的名字命名的名字命名)實現(xiàn)了公開密鑰密碼體制,稱為實現(xiàn)了公開密鑰密碼體制,稱為rsa公開公開密鑰體制,它是第一個既能用于數(shù)據(jù)加密也能用于數(shù)字密鑰體制,它是第一個既能用于數(shù)據(jù)加密也能用于數(shù)字簽名的算法。這種算法易于理解和操作。簽名的算法。這種算法易于理解和操作。但但rsa的安全的安全性一直未能得到理論
55、上的證明。它經(jīng)歷了各種攻擊,至性一直未能得到理論上的證明。它經(jīng)歷了各種攻擊,至今未被完全攻破。今未被完全攻破。2.5.1 rsa算法的原理算法的原理rsa算法是一種基于算法是一種基于大數(shù)不可能質(zhì)因數(shù)分解假設大數(shù)不可能質(zhì)因數(shù)分解假設的公鑰體的公鑰體系。簡單地說,就是找兩個很大的系。簡單地說,就是找兩個很大的質(zhì)數(shù)質(zhì)數(shù)/素數(shù)素數(shù),一個公,一個公開給世界,稱之為開給世界,稱之為“公鑰公鑰”,另一個不告訴任何人,稱,另一個不告訴任何人,稱之為之為“私鑰私鑰”。兩把密鑰互補。兩把密鑰互補用公鑰加密的密文可用公鑰加密的密文可以用私鑰解密,反過來也一樣。假設以用私鑰解密,反過來也一樣。假設a寄信給寄信給b,他
56、們知,他們知道對方的公鑰。道對方的公鑰。a可用可用b的公鑰加密郵件寄出,的公鑰加密郵件寄出,b收到后收到后用自己的私鑰解出用自己的私鑰解出a的原文,這樣就保證了郵件的安全的原文,這樣就保證了郵件的安全性。性。 rsa體制可以簡單描述如下:體制可以簡單描述如下:(1)生成兩個大素數(shù))生成兩個大素數(shù)p和和q; 11、7(2)計算這兩個素數(shù)的乘積)計算這兩個素數(shù)的乘積n=pq; 77(3)計算小于)計算小于n并且與并且與n互質(zhì)互質(zhì)的整數(shù)的個數(shù),的整數(shù)的個數(shù), 即歐拉函數(shù)即歐拉函數(shù)(n) =( p-1 ) ( q-1 ); 10 *6 = 60(4)選擇一個隨機數(shù))選擇一個隨機數(shù)b滿足滿足1b(n),
57、并且,并且b和和(n)互質(zhì),互質(zhì), 即即gcd(b,(n))=1。(5)計算)計算ab=1 mod (n);); a=1/b(6)保密保密a,p和和q, 公開公開n和和b。利用利用rsa加密時,明文以分組的方式加密,即每一個分組的比特數(shù)應該小加密時,明文以分組的方式加密,即每一個分組的比特數(shù)應該小于于log2n。加密明文。加密明文x時,利用公鑰時,利用公鑰 (b, n)計算)計算c=xb mod n就可以就可以得到相應的密文得到相應的密文c。解密時,通過計算。解密時,通過計算c a mod n就可以恢復明文就可以恢復明文x。選取的素數(shù)選取的素數(shù)p和和q要足夠大要足夠大,從而乘積,從而乘積n足夠
58、大,在事先不知道足夠大,在事先不知道p和和q的情況的情況下分解下分解n是計算上不可行的。是計算上不可行的。常用的公鑰加密算法包括:常用的公鑰加密算法包括:rsa密碼體制、密碼體制、elgamal密碼體制和散列函數(shù)密碼體制(密碼體制和散列函數(shù)密碼體制(md4,md5等)。等)。2.5.2 rsa算法的安全性算法的安全性rsa算法的安全性算法的安全性依賴于大數(shù)分解依賴于大數(shù)分解,但是否等同于大數(shù)分解一直未能得,但是否等同于大數(shù)分解一直未能得到理論證明,因為沒有證明破解,到理論證明,因為沒有證明破解,rsa算法就一定需要作大數(shù)分解。算法就一定需要作大數(shù)分解。假設存在一種無須分解大數(shù)的算法,那它肯定可
59、以修改成為大數(shù)分解假設存在一種無須分解大數(shù)的算法,那它肯定可以修改成為大數(shù)分解算法。目前,算法。目前,rsa 算法的一些變種算法已被證明等價于大數(shù)分解。不算法的一些變種算法已被證明等價于大數(shù)分解。不管怎樣,分解管怎樣,分解n是最顯然的攻擊方法。人們已能分解多個十進制位的是最顯然的攻擊方法。人們已能分解多個十進制位的大素數(shù)。因此,模數(shù)大素數(shù)。因此,模數(shù)n必須選大一些,因具體適用情況而定。必須選大一些,因具體適用情況而定。2.5.3 rsa算法的速度算法的速度由于進行的都是大數(shù)計算,使得由于進行的都是大數(shù)計算,使得rsa算法最快的情況也比算法最快的情況也比des算法慢上算法慢上數(shù)倍,無論是軟件還是
60、硬件實現(xiàn),數(shù)倍,無論是軟件還是硬件實現(xiàn),速度一直是速度一直是rsa算法的缺陷,算法的缺陷,一般一般來說只用于少量數(shù)據(jù)加密。來說只用于少量數(shù)據(jù)加密。rsa算法是第一個能同時用于算法是第一個能同時用于加密和數(shù)字簽名加密和數(shù)字簽名的算法,的算法,也易于理解和操也易于理解和操作。也是被研究得最廣泛的公鑰算法,二十幾年,經(jīng)歷了各種攻擊的作。也是被研究得最廣泛的公鑰算法,二十幾年,經(jīng)歷了各種攻擊的考驗,逐漸為人們接受,考驗,逐漸為人們接受,被普遍認為是目前最優(yōu)秀的公鑰方案之一。被普遍認為是目前最優(yōu)秀的公鑰方案之一。2.5.4 rsa算法的程序?qū)崿F(xiàn)算法的程序?qū)崿F(xiàn)根據(jù)根據(jù)rsa算法的原理,可以利用算法的原理,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 IEC 60287:2025 SER EN-FR Electric cables - ALL PARTS
- 224套名牌大學經(jīng)濟學初試真題
- 北師大版小學數(shù)學一年級下冊(2024)期中綜合素養(yǎng)測評B卷(含答案)
- 2024通信網(wǎng)絡信息安全防護項目合同3篇
- 企業(yè)競爭圖譜:2024年磁性元件 頭豹詞條報告系列
- 2024智能倉庫物流系統(tǒng)設計與實施合同
- 2024餐飲房屋租賃合同范本
- 2024銷售合同軟件
- 2024石材荒料國際貿(mào)易結(jié)算與外匯管理合同3篇
- 福建省南平市建陽水吉中學2022年高一地理下學期期末試卷含解析
- 寶寶大便觀察及護理課件
- 公司月度安全生產(chǎn)綜合檢查表
- 開題報告會記錄單
- 對話的力量:焦點解決取向在青少年輔導中的應用
- 我的家鄉(xiāng)湖北荊門介紹
- (銀川市直部門之間交流)2022事業(yè)單位工作人員調(diào)動表
- 廣州市小學生學籍表
- 法律與社會學習通章節(jié)答案期末考試題庫2023年
- 瓷磚采購投標方案
- 大學生職業(yè)生涯規(guī)劃-自我認知-課件
- 化工設備安裝預算定額庫
評論
0/150
提交評論