密碼學(xué)課程設(shè)計(jì)_第1頁
密碼學(xué)課程設(shè)計(jì)_第2頁
密碼學(xué)課程設(shè)計(jì)_第3頁
密碼學(xué)課程設(shè)計(jì)_第4頁
密碼學(xué)課程設(shè)計(jì)_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

中國礦業(yè)大學(xué)密碼學(xué)課程設(shè)計(jì)報(bào)告院系:計(jì)算機(jī)學(xué)院專業(yè):信息安全班級(jí):信安08-3班姓名:許多學(xué)號(hào):08083701指導(dǎo)老師:汪楚嬌2011年6月1緒論密碼技術(shù)是一門古老而十分有用的技術(shù),隨著計(jì)算機(jī)通信技術(shù)的迅猛發(fā)展,大量的敏感信息通過公共設(shè)施或計(jì)算機(jī)網(wǎng)絡(luò)進(jìn)行交換。特別是Internet的廣泛應(yīng)用、電子商務(wù)和電子政務(wù)的迅速發(fā)展,越來越多的信息需要嚴(yán)格的保密,如:銀行賬號(hào)、個(gè)人隱私等。正是這種對信息的機(jī)密性和真實(shí)性的需求,密碼學(xué)才逐成為比較熱門的學(xué)科。近幾年來,信息安全成為全社會(huì)的需求,信息安全保障成為國際社會(huì)關(guān)注的焦點(diǎn)。而密碼學(xué)是信息安全的核心,應(yīng)用密碼學(xué)技術(shù)是實(shí)現(xiàn)安全系統(tǒng)的核心技術(shù)。應(yīng)用密碼學(xué)研究如何實(shí)現(xiàn)信息的機(jī)密性、完整性和不可否認(rèn)性。隨著信息系統(tǒng)及網(wǎng)絡(luò)系統(tǒng)的爆炸性增長,形形色色的安全威脅嚴(yán)重阻礙了當(dāng)前的信息化進(jìn)程,因此,亟待使用密碼學(xué)來增強(qiáng)系統(tǒng)的安全性。而密碼學(xué)課程設(shè)計(jì)正是為這方面做出了具體的實(shí)踐。經(jīng)過前一段時(shí)間的學(xué)習(xí),我們對于密碼學(xué)這門課程有了更深的認(rèn)識(shí)和了解,對于一般的密碼學(xué)算法學(xué)會(huì)了怎么樣使用。因此,通過密碼學(xué)課程設(shè)計(jì)這么課程,對前一段的學(xué)習(xí)進(jìn)行了檢查。在設(shè)計(jì)中,我們選擇做了古典密碼算法,分組密碼算法DES,公鑰密碼算法RSA。這幾種經(jīng)典的密碼算法是我們學(xué)習(xí)密碼學(xué)課程設(shè)計(jì)所必須掌握的,也是學(xué)習(xí)信息安全的基礎(chǔ)。在接下來的部分,我將詳細(xì)介紹我設(shè)計(jì)的過程以及思路。2古典密碼算法2.1古典密碼Hill2.11古典密碼Hill概述Hill體制是1929年由LesterS.Hill發(fā)明的,它實(shí)際上就是利用了我們熟知的線性變換方法,是在Z26上進(jìn)行的。Hill體制的基本思想是將n個(gè)明文字母通過線性變換轉(zhuǎn)化為n個(gè)密文字母,解密時(shí)只需要做一次逆變換即可,密鑰就是變換矩陣。2.12算法原理與設(shè)計(jì)思路1.假設(shè)要加密的明文是由26個(gè)字母組成,其他字符省略。將每個(gè)字符與0-25的一個(gè)數(shù)字一一對應(yīng)起來。(例如:a/A—0,b/B—1,……z/Z—25)。2.選擇一個(gè)加密矩陣,其中矩陣A必須是可逆矩陣,例如3.將明文字母分別依照次序每n個(gè)一組(如果最后一組不足n個(gè)的話,就將其補(bǔ)成n個(gè)),依照字符與數(shù)字的對應(yīng)關(guān)系得到明文矩陣ming。4.通過加密矩陣A,利用矩陣乘法得到密文矩陣mi=mingmod26;將密文矩陣的數(shù)字與字符對應(yīng)起來,得到密文。5.解密時(shí)利用加密矩陣的逆矩陣和密文,可得到明文。6.設(shè)明文為,密文,密鑰為上的n*n階可逆方陣,則2.13關(guān)鍵算法分析歐幾里德算法又稱輾轉(zhuǎn)相除法,用于計(jì)算兩個(gè)整數(shù)a,b的最大公約數(shù)。產(chǎn)生公約數(shù)的目的是為了下一步求逆矩陣和矩陣時(shí)方便運(yùn)算。這段代碼是加密的過程,主要設(shè)計(jì)思想是輸入的明文與矩陣做乘法,當(dāng)明文長度為矩陣階數(shù)的倍數(shù)時(shí),自動(dòng)將明文變?yōu)榱袛?shù)與矩陣階數(shù)相同,然后進(jìn)行計(jì)算。當(dāng)明文長度不是矩陣階數(shù)的倍數(shù)時(shí),則會(huì)出現(xiàn)無關(guān)字符。代碼中的利用矩陣乘法得到的密文輸出即可,而解密的過程只需要利用矩陣的逆矩陣,也就是我們在做乘法的時(shí)候?qū)⒕仃嚀Q為它的逆矩陣即可得到明文。2.14運(yùn)行結(jié)果2.15密碼安全性分析經(jīng)過算法分析和設(shè)計(jì),我們可以知道它的安全強(qiáng)度(m是素?cái)?shù),模數(shù)為合數(shù),不是任意矩陣可逆)為26的m*m次方。例如,當(dāng)m=5時(shí),得出它的安全強(qiáng)度為2的117次方。通過矩陣,將信息均勻分布到每個(gè)m長向量的每個(gè)分向量中,具有比較好的隨機(jī)性,相對于其他的古典密碼來說,Hill是比較安全的。但是在已知m組明文、密文和解密算法的情況下,我們需要解M組同余方程組,因此,密鑰是可以恢復(fù)的。關(guān)鍵是求得加密矩陣的逆—解密矩陣。只要分析出兩個(gè)明文向量(線性無關(guān))與相應(yīng)的密文向量。若有如果甲方截獲了一段密文:OJWPISWAZUXAUUISEABAUCRSIPLBHAAMMLPJJOTENH經(jīng)分析這段密文是用HILL2密碼編譯的,且這段密文的字母UCRS依次代表了字母TACO,我們接著將要進(jìn)行破譯。關(guān)系如下:計(jì)算矩陣的逆破譯密文向量明文向量明文:ClintonisgoingtovisitacountryinMiddle2.2古典密碼Vignere2.21古典密碼Vignere概述1858年法國密碼學(xué)家維吉尼亞提出一種以移位替換為基礎(chǔ)的周期替換密碼。這種密碼是多表替換密碼的一種。是一系列(兩個(gè)以上)替換表依次對明文消息的字母進(jìn)行替換的加密方法。2.22算法原理與設(shè)計(jì)思路1.首先使用維吉尼亞方陣,它的基本方陣是26列26行。方陣的第一行是a到z按正常順序排列的字母表,第二行是第一行左移循環(huán)一位得到得,其他各行依次類推。2.加密時(shí),按照密鑰字的指示,決定采用哪一個(gè)單表。例如密鑰字是bupt,加密時(shí),明文的第一個(gè)字母用與附加列上字母b相對應(yīng)的密碼表進(jìn)行加密,明文的第二個(gè)字母用與附加列的字母u相對應(yīng)的密碼表進(jìn)行加密,依次類推。3.令英文字母a,b,…,z對應(yīng)于從0到25的整數(shù)。設(shè)明文是n個(gè)字母組成的字符串,即m=m1m2m3密鑰字周期性地延伸就給出了明文加密所需的工作密鑰K=k1k2…kn,E(m)=C=c1c2…cn加密:Ci=mi+kimod26解密:mi=ci-kimod26,i=1,2,3,…,n2.23關(guān)鍵算法分析加密算法的關(guān)鍵是給出初始密鑰,例如第一個(gè)密鑰字母是e,對第一個(gè)明文字母p進(jìn)行加密時(shí),選用左邊附加列上的字母e對應(yīng)的那一行作為代替密碼表,查處與p相對應(yīng)的密文字母是T,依次類推即可得出明文。上述代碼中的生成密鑰部分為核心代碼,只有密鑰更長,才能保證密碼算法的可靠性。解密算法和加密算法只需要減去密鑰繼續(xù)模26即可得到。2.24運(yùn)行結(jié)果2.25密碼安全性分析首先,破譯的第一步就是尋找密文中出現(xiàn)超過一次的字母。有兩種情況可能導(dǎo)致這樣的重復(fù)發(fā)生。最有可能的是明文中同樣的字母序列使用密鑰中同樣的字母加了密;另外還有一種較小的可能性是明文中兩個(gè)不同的字母序列通過密鑰中不同部分加了密,碰巧都變成了密文中完全一樣的序列。假如我們限制在長序列的范圍內(nèi),那么第二種可能性可以很大程序地被排除,這種情況下,我們多數(shù)考慮到4個(gè)字母或4個(gè)以上的重復(fù)序列。其次,破譯的第二步是確定密鑰的長度,又看看這一段先:密鑰FORESTFORESTFORESTFORESTFOR明文bettertodowellthantosaywell密文GSKXWKYCUSOXQZKLSGYCJEQPJZC第一個(gè)YC出現(xiàn)后到第二個(gè)YC的結(jié)尾一共有12個(gè)字母(USOXQZKLSGYC)那么密鑰的長度應(yīng)是12的約數(shù)---1,2,3,4,6,12之中的一個(gè)(其中,1可排除)。第三,破譯的時(shí)候,可以從一下幾個(gè)方面進(jìn)行考慮。1.A-E段,U-Z段以及O-T段的特征比較顯著,可先從這些方面著手;2.如果一些字符串出現(xiàn)的頻率較多,不妨猜猜,特別要注意THE,-ING等的出現(xiàn);3.要留意那些圖表中沒有出現(xiàn)的字母,很多時(shí)候也會(huì)是突破點(diǎn),如X與Z的空缺;4.圖表最好還是做一下,畢竟比較直觀,好看。因此,利用單純的數(shù)學(xué)統(tǒng)計(jì)方法就可以攻破維吉尼亞密碼,所以在使用這種密碼的過程中,我們盡量增加密鑰的長度,只有密鑰長度的足夠長時(shí),密碼的使用才會(huì)越安全。2.3古典密碼Vernam2.31古典密碼Vernam概述Vernam加密法也稱一次性板(One-Time-Pad),用隨機(jī)的非重復(fù)的字符集合作為輸出密文.這里最重要的是,一旦使用了變換的輸入密文,就不再在任何其他消息中使用這個(gè)輸入密文(因此是一次性的).輸入密文的長度等于原消息明文的長度。2.32算法原理與設(shè)計(jì)思路Vernam的加密過程1.按遞增順序把每個(gè)明文字母作為一個(gè)數(shù)字,A=0,B=1等等。2.對輸入密文中每一個(gè)字母做相同的處理。3.將明文中的每個(gè)字母與密鑰中的相應(yīng)字母相加。4.如果得到的和大于26,則從中減去26。5.將和轉(zhuǎn)化為字母,從而得到密文。顯然,由于一次性板用完就要放棄,因此這個(gè)技術(shù)相當(dāng)安全,適合少量明文消息,但是對大消息是行不通的(一次性板稱為密鑰(Key),并且明文有多長,密鑰就有多長,因此對于大消息行不通).Vernam加密法最初是AT&T公司借助所謂的Vernam機(jī)實(shí)現(xiàn)的.假設(shè)對明文消息HOWAREYOU進(jìn)行Verman加密,一次性板為NCBTZQARX得到的密文消息UQXTUYFR.以下是圖解1.明文:HOWAREYOU714220174241420+2.密鑰NCBTZQARX1321192516017233.初始和2016231942202431434.大于25則減去26201623191620245175.密文UQXTQUYFR2.33關(guān)鍵算法分析加密和解密的關(guān)鍵實(shí)現(xiàn)上是一個(gè)對應(yīng)位相加的過程。在加密和解密之前還要做輔助工作,就是字符的轉(zhuǎn)換問題,注意變量的傳遞。2.34運(yùn)行結(jié)果3數(shù)據(jù)加密算法DES3.1概述數(shù)據(jù)加密算法(DataEncryptionAlgorithm,DEA)是一種對稱加密算法,很可能是使用最廣泛的密鑰系統(tǒng),特別是在保護(hù)金融數(shù)據(jù)的安全中,最初開發(fā)的DEA是嵌入硬件中的。通常,自動(dòng)取款機(jī)(AutomatedTellerMachine,ATM)都使用DEA。它出自IBM的研究工作,IBM也曾對它擁有幾年的專利權(quán),但是在1983年已到期后,處于公有范圍中,允許在特定條件下可以免除專利使用費(fèi)而使用。1977年被美國政府正式采納。數(shù)據(jù)加密標(biāo)準(zhǔn)DESDES的原始思想可以參照二戰(zhàn)德國的恩格瑪機(jī),其基本思想大致相同。傳統(tǒng)的密碼加密都是由古代的循環(huán)移位思想而來,恩格瑪機(jī)在這個(gè)基礎(chǔ)之上進(jìn)行了擴(kuò)散模糊。但是本質(zhì)原理都是一樣的?,F(xiàn)代DES在二進(jìn)制級(jí)別做著同樣的事:替代模糊,增加分析的難度。3.2加密原理DES使用一個(gè)56位的密鑰以及附加的8位奇偶校驗(yàn)位,產(chǎn)生最大64位的分組大小。這是一個(gè)迭代的分組密碼,使用稱為Feistel的技術(shù),其中將加密的文本塊分成兩半。使用子密鑰對其中一半應(yīng)用循環(huán)功能,然后將輸出與另一半進(jìn)行“異或”運(yùn)算;接著交換這兩半,這一過程會(huì)繼續(xù)下去,但最后一個(gè)循環(huán)不交換。DES使用16個(gè)循環(huán),使用異或,置換,代換,移位操作四種基本運(yùn)算。3.3關(guān)鍵算法分析3.4DES算法的安全性一、安全性比較高的一種算法,目前只有一種方法可以破解該算法,那就是窮舉法。二、采用64位密鑰技術(shù),實(shí)際只有56位有效,8位用來校驗(yàn)的.譬如,有這樣的一臺(tái)PC機(jī)器,它能每秒計(jì)算一百萬次,那么256位空間它要窮舉的時(shí)間為2285年.所以這種算法還是比較安全的一種算法。TripleDES。該算法被用來解決使用DES技術(shù)的56位時(shí)密鑰日益減弱的強(qiáng)度,其方法是:使用兩個(gè)獨(dú)立密鑰對明文運(yùn)行DES算法三次,從而得到112位有效密鑰強(qiáng)度。TripleDES有時(shí)稱為DESede(表示加密、解密和加密這三個(gè)階段)。3.5運(yùn)行結(jié)果4公鑰加密算法RSA4.1概述RSA公鑰加密算法是1977年由RonRivest、AdiShamirh和LenAdleman在(美國麻省理工學(xué)院)開發(fā)的。RSA取名來自開發(fā)他們?nèi)叩拿?。RSA是目前最有影響力的公鑰加密算法,它能夠抵抗到目前為止已知的所有密碼攻擊,已被ISO推薦為公鑰數(shù)據(jù)加密標(biāo)準(zhǔn)。RSA算法基于一個(gè)十分簡單的數(shù)論事實(shí):將兩個(gè)大素?cái)?shù)相乘十分容易,但那時(shí)想要對其乘積進(jìn)行因式分解卻極其困難,因此可以將乘積公開作為加密密鑰。4.2RSA算法描述RSA密碼是一種應(yīng)用廣泛的公鑰密碼,它的安全性基于大整數(shù)分解的困難性,RSA密碼既可用于加密,又可用于數(shù)字簽名。對RSA的加解密算法描述如下:(1)密鑰的產(chǎn)生獨(dú)立地選取兩大素?cái)?shù)p和q(各100~200位十進(jìn)制數(shù)字);計(jì)算n=p×q,其歐拉函數(shù)值j(n)=(p-1)(q-1);隨機(jī)選一整數(shù)e,1£e<j(n),gcd(j(n),e)=1;在模j(n)下,計(jì)算e的有逆元d=e-1modj(n);以n,e為公鑰。私鑰為d。(p,q)不再需要,可以銷毀。(2)加密將明文分組,各組對應(yīng)的十進(jìn)制數(shù)小于n,對每個(gè)明文分組m,做加密運(yùn)算:c=memodn。(3)解密對密文分組的解密運(yùn)算:m=cdmodn3.2.2安全性分析

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論