

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 摘 要</b></p><p> 隨著國家信息化步驟的加快和高等教育規(guī)模的擴大,社會對計算機專業(yè)人才的需求不僅體現(xiàn)在數(shù)量的增加上,而且體現(xiàn)在質(zhì)量要求的提高上,培養(yǎng)具有研究和實踐能力的高層次的計算機專業(yè)人才已成為許多重點大學(xué)計算機教育的重點目標(biāo)。那么為了達(dá)到這個標(biāo)準(zhǔn),我們在進(jìn)行了應(yīng)用密碼學(xué)的課程教學(xué)后,我們進(jìn)行了短時間的課程設(shè)計,這樣可以增加我們的實踐和研究能
2、力,使我們能成為更加高等級的人才。</p><p> 密碼學(xué)是研究編制密碼和破譯密碼的技術(shù)科學(xué)。研究密碼變化的客觀規(guī)律,應(yīng)用于編制密碼以保守通信秘密的,稱為編碼學(xué);應(yīng)用于破譯密碼以獲取通信情報的,稱為破譯學(xué),總稱密碼學(xué)。密碼學(xué)是在編碼與破譯的斗爭實踐中逐步發(fā)展起來的,并隨著先進(jìn)科學(xué)技術(shù)的應(yīng)用,已成為一門綜合性的尖端技術(shù)科學(xué)。它與語言學(xué)、數(shù)學(xué)、電子學(xué)、聲學(xué)、信息論、計算機科學(xué)等有著廣泛而密切的聯(lián)系。它的現(xiàn)實研究成
3、果,特別是各國政府現(xiàn)用的密碼編制及破譯手段都具有高度的機密性。</p><p> 本次課程設(shè)計的功能是模擬通信。模擬通信的整個過程。首先確定發(fā)送方要發(fā)送的消息,通過加密,得到秘文,接受方再通過一系列的處理過程最后得到發(fā)送的原始數(shù)據(jù)。先對整個系統(tǒng)的執(zhí)行流程進(jìn)行了分析,根據(jù)執(zhí)行流程對每個部分進(jìn)行了解和設(shè)計,首先進(jìn)行共享密鑰的分配,在這一階段采用RSA加密算法和公鑰管理機構(gòu)的公鑰分配方式以及具有保密性的共享密鑰分配策
4、略,其次,在消息認(rèn)證過程中采用MD5算法,然后發(fā)送方要對要發(fā)送的信息采用RC4算法進(jìn)行加密,最后,DSS算法進(jìn)行數(shù)字簽字。對每一步中的相關(guān)信息進(jìn)行具體的設(shè)置,使其能夠成功的發(fā)送并接收。通過具體的設(shè)計之后,對自己所使用的算法,具體深入的研究與掌握,以及對簡單的保密通信系統(tǒng)的工作過程有所了解。</p><p> 現(xiàn)在,由于現(xiàn)實生活的實際需要及計算機技術(shù)的進(jìn)步,密碼學(xué)有了突飛猛進(jìn)的發(fā)展,密碼學(xué)研究領(lǐng)域出現(xiàn)了許多新的課
5、題、新的方向。同時,在公開密鑰密碼領(lǐng)域,橢圓曲線密碼體制由于其安全性高、計算速度快等優(yōu)點引起了人們的普遍關(guān)注,許多公司與科研機構(gòu)都投入到對橢圓曲線密碼的研究當(dāng)中。目前,橢圓曲線密碼已經(jīng)被列入一些標(biāo)準(zhǔn)中作為推薦算法。另外,由于嵌入式系統(tǒng)的發(fā)展、智能卡的應(yīng)用,這些設(shè)備上所使用的密碼算法由于系統(tǒng)本身資源的限制,要求密碼算法以較小的資源快速實現(xiàn),這樣,公開密鑰密碼的快速實現(xiàn)成為一個新的研究熱點。最后,隨著其他技術(shù)的發(fā)展,一些具有潛在密碼應(yīng)用價值
6、的技術(shù)也逐漸得到了密碼學(xué)家極大的重視,出現(xiàn)了一些新的密碼技術(shù),例如,混沌密碼、量子密碼等,這些新的密碼技術(shù)正在逐步地走向?qū)嵱没?lt;/p><p> 關(guān)鍵詞 : 密碼學(xué),加密算法,模擬通信,現(xiàn)代密碼學(xué)</p><p><b> 目 錄</b></p><p><b> 摘 要I</b></p>&l
7、t;p><b> 第1章 緒論1</b></p><p> 1.1 密碼學(xué)簡介1</p><p> 1.2 密碼學(xué)分類1</p><p> 1.3密碼學(xué)發(fā)展歷史1</p><p> 1.4 密碼學(xué)研究內(nèi)容2</p><p> 1.4.1不對稱密碼學(xué)2</p>
8、;<p> 1.4.2單向散列算法3</p><p> 1.4.3量子密碼學(xué)4</p><p> 1.5 密碼學(xué)應(yīng)用4</p><p> 1.6 密碼學(xué)功能5</p><p> 第2章 保密系統(tǒng)設(shè)計內(nèi)容及原理6</p><p><b> 2.1設(shè)計內(nèi)容6</b>
9、;</p><p> 2.2 RC4加密算法6</p><p> 2.2.1 RC4簡介6</p><p> 2.2.2 RC4原理6</p><p> 2.2.3 RC4應(yīng)用安全7</p><p> 2.3共享密鑰分配7</p><p> 2.3.1 RSA算法原理7&
10、lt;/p><p> 2.3.2 公鑰管理機構(gòu)9</p><p> 2.3.3具有保密性分配10</p><p> 2.4 MD5消息認(rèn)證10</p><p> 2.5 DSS數(shù)字簽字12</p><p> 2.5.1 DSS簡介12</p><p> 2.5.2 簽名加密和驗
11、收過程12</p><p> 2.5.3 DSA數(shù)字簽名算法的安全性分析13</p><p> 第3章 設(shè)計步驟14</p><p> 3.1 共享密鑰分配分配14</p><p> 3.1.1公鑰分配14</p><p> 3.1.2共享密鑰策略17</p><p>
12、3.2 消息認(rèn)證21</p><p> 3.2加密算法22</p><p> 3.3 數(shù)字簽字22</p><p> 3.4 密文傳輸23</p><p> 第4章 遇到的問題及解決方法24</p><p> 4.1 遇到的問題24</p><p> 4.2 解決方法2
13、4</p><p><b> 結(jié) 論25</b></p><p><b> 致 謝26</b></p><p><b> 參考文獻(xiàn)27</b></p><p><b> 第1章 緒論</b></p><p><
14、;b> 1.1 密碼學(xué)簡介</b></p><p> 密碼學(xué)(Cryptology)一字源自希臘文krypto's及l(fā)ogos兩字,直譯即為隱藏及訊息之意。而其使用,可以追溯到大約四千年前。公元二千年,埃及人就將祭文刻在墓碑上。之后人們都是以書寫在紙張上的方式,用來傳秘密訊息。在二次大戰(zhàn)中,密碼更是扮演一個舉足輕重的角色,許多人認(rèn)為同盟國之所以能打贏這場戰(zhàn)爭完全歸功于二次大戰(zhàn)時所發(fā)明
15、的破譯密文數(shù)位式計算機破解德日密碼。西元1949年,Shannon提出第一篇討論密碼系統(tǒng)通訊理論之論文,近代密碼學(xué)可說是濫觴于斯。直至西元1975年,Diffie與Hellman提出公開金 匙密碼系統(tǒng)之觀念,近代密碼學(xué)之研究方向,正式脫離秘密金匙密碼系統(tǒng)之窠臼,蓬勃發(fā)展。</p><p><b> 1.2 密碼學(xué)分類</b></p><p> 有二大類的密碼系統(tǒng)。
16、第一類為對稱金鑰(Symmetric Key)密碼系統(tǒng),第二類為非對稱金鑰(Public Key) 密碼系統(tǒng)。 首先密碼學(xué)是由萬維網(wǎng)的嬉皮士所研究,而且涉及鑰匙傳送問題。60年代?請保安傳送鑰匙;70年初,發(fā) 現(xiàn)這個不是好辨法,費時浪費時間。 </p><p> 1965年,美國史丹福大學(xué)電機工程系--默克爾、迪菲、赫爾曼等三人研究密碼學(xué)可惜并未有所發(fā)現(xiàn)。 另外在英國通訊電子保安組(CESG)秘密機構(gòu)的切爾納姆
17、發(fā)現(xiàn)了還原密碼式,但是由于屬于秘密機構(gòu),所以不能公開。直到1977年麻省理工研究生--里夫斯,阿德曼發(fā)現(xiàn)和切爾曼差不多的式。他們成立RSA Security Company (RSA是他們名字的字頭)現(xiàn)時值25億美元,在傳送信用卡時起了很大作用。RSA已安裝了5億套產(chǎn)品在IE , Netscape下的小鎖就是RSA的產(chǎn)品。數(shù)學(xué)掛銷第一個發(fā)現(xiàn)不是美國,但是第一個公開。數(shù)學(xué)掛鎖上鎖易,還原難,所以受廣氾使用,亦即是信息編碼保密。 </
18、p><p> 1.3密碼學(xué)發(fā)展歷史</p><p> 中國古代秘密通信的手段,已有一些近于密碼的雛形。宋曾公亮、丁度等編撰《武經(jīng)總要》“字驗”記載,北宋前期,在作戰(zhàn)中曾用一首五言律詩的40個漢字,分別代表40種情況或要求,這種方式已具有了密本體制的特點。 </p><p> 1871年,由上海大北水線電報公司選用6899個漢字,代以四碼數(shù)字,成為中國最初的商用明碼
19、本,同時也設(shè)計了由明碼本改編為密本及進(jìn)行加亂的方法。在此基礎(chǔ)上,逐步發(fā)展為各種比較復(fù)雜的密碼。 </p><p> 在歐洲,公元前405年,斯巴達(dá)的將領(lǐng)來山得使用了原始的錯亂密碼;公元前一世紀(jì),古羅馬皇帝凱撒曾使用有序的單表代替密碼;之后逐步發(fā)展為密本、多表代替及加亂等各種密碼體制。</p><p> 二十世紀(jì)初,產(chǎn)生了最初的可以實用的機械式和電動式密碼機,同時出現(xiàn)了商業(yè)密碼機公司和市
20、場。60年代后,電子密碼機得到較快的發(fā)展和廣泛的應(yīng)用,使密碼的發(fā)展進(jìn)入了一個新的階段。</p><p> 密碼破譯是隨著密碼的使用而逐步產(chǎn)生和發(fā)展的。1412年,波斯人卡勒卡尚迪所編的百科全書中載有破譯簡單代替密碼的方法。到16世紀(jì)末期,歐洲一些國家設(shè)有專職的破譯人員,以破譯截獲的密信。密碼破譯技術(shù)有了相當(dāng)?shù)陌l(fā)展。1863年普魯士人卡西斯基所著《密碼和破譯技術(shù)》,以及1883年法國人克爾克霍夫所著《軍事密碼學(xué)》
21、等著作,都對密碼學(xué)的理論和方法做過一些論述和探討。1949年美國人香農(nóng)發(fā)表了《秘密體制的通信理論》一文,應(yīng)用信息論的原理分析了密碼學(xué)中的一些基本問題。</p><p> 自19世紀(jì)以來,由于電報特別是無線電報的廣泛使用,為密碼通信和第三者的截收都提供了極為有利的條件。通信保密和偵收破譯形成了一條斗爭十分激烈的隱蔽戰(zhàn)線。</p><p> 1917年,英國破譯了德國外長齊默爾曼的電報,促
22、成了美國對德宣戰(zhàn)。1942年,美國從破譯日本海軍密報中,獲悉日軍對中途島地區(qū)的作戰(zhàn)意圖和兵力部署,從而能以劣勢兵力擊破日本海軍的主力,扭轉(zhuǎn)了太平洋地區(qū)的戰(zhàn)局。在保衛(wèi)英倫三島和其他許多著名的歷史事件中,密碼破譯的成功都起到了極其重要的作用。</p><p> 1.4 密碼學(xué)研究內(nèi)容</p><p> 1.4.1不對稱密碼學(xué)</p><p> 傳統(tǒng)的對稱加密算法遇
23、到了密鑰分發(fā)管理的難題,最優(yōu)秀的算法,如果密鑰在分發(fā)、傳發(fā)泄漏,則整個安全體系則毀于一旦。不對稱加密算法則有效的避免了其分發(fā)管理密鑰的難題。不對稱密碼學(xué)中使用到一對公鑰(public key)和私鑰(private key)組合。用公鑰加密的密文只能用私鑰解密,反之,用私鑰加密的密文只能用公鑰解密。在操作過程中,人們把公鑰向外界發(fā)布,讓外界都知道,自己保存私鑰,只有自己才能知道。如果A要發(fā)一份秘密信息給B,則A只需要得到B的公鑰,然后用
24、B的公鑰加密秘密信息,此加密的信息只有B能用其保密的私鑰解密。反之,B也可以用A的公鑰加密保密信息給A。信息在傳送過程中,即使被第三方截取,也不可能解密其內(nèi)容。 </p><p><b> ?。↖)RSA </b></p><p> RSA(取Ron Rivest,Adi Shamir和Leonard Adleman三創(chuàng)始人字句首字母)幾乎已經(jīng)成為了公開密鑰密碼體
25、制的代名詞。RSA是一種公開密鑰加密體系,它的應(yīng)用原理是:先由密鑰管理中心產(chǎn)生一對公鑰 (public-key)和私鑰(Private-key),稱為密鑰對。方法如下:先產(chǎn)生兩個足夠大的強質(zhì)數(shù)p、q。可得p與q的乘積為 n=p×q。再由p和q算出另一個數(shù)z=(p-1)×(q-1),然后再選取一個與z互素的奇數(shù)e,稱e為公開指數(shù);從這個e值可以找出另一個值d,并能 滿足e×d=1 mod (z)條件。由此而得
26、到的兩組數(shù)(n,e)和(n,d)分別被稱為公開密鑰和秘密密鑰,或簡稱公鑰和私鑰。 </p><p> 公鑰密碼算法都是基于一些復(fù)雜的數(shù)學(xué)難題,例如廣泛使用的RSA算法就是基于大整數(shù)因子分解這一著名的數(shù)學(xué)難題。公鑰密碼體系的優(yōu)點是能適應(yīng)網(wǎng)絡(luò)的開放性要求,密鑰管理簡單,并且可方便地實現(xiàn)數(shù)字簽名和身份認(rèn)證等功能,是電子商務(wù)等技術(shù)的核心基礎(chǔ)。其缺點是算法復(fù)雜,加密數(shù)據(jù)的速度和效率較低。因此在實際應(yīng)用中,通常將對稱加
27、密算法和非對稱加密算法結(jié)合使用,利用對稱加密算法來進(jìn)行大容量數(shù)據(jù)的加密,而采用RSA等非對稱加密算法來傳遞對稱加密算法所使用的密鑰,通過這種方法可以有效地提高加密的效率并能簡化對密鑰的管理。 </p><p> (II) 鑒別與簽名</p><p> 對稱密碼學(xué)解決了數(shù)據(jù)機密性的功能要求,不對稱密碼學(xué)則相應(yīng)的解決了簽別和不可否認(rèn)性等功能需求。在不對稱密碼學(xué)中,用自己公鑰加密的數(shù)據(jù)只有自
28、己才能打開,人們就可以把自己的公鑰放在網(wǎng)上,通信的對方可以用自己的公鑰加密數(shù)據(jù),密文只有自己才能打開,達(dá)到了加密數(shù)據(jù)而不需要通過一種十分可靠的方式來傳遞對稱密鑰的作用。反之,如果使用私鑰來加密消息,通信的對方用公鑰來解密消息,就可以達(dá)到鑒別的作用。因為能用公鑰解密消息,說明數(shù)據(jù)一定是自己加密的,前提是這些加密并不為保護(hù)數(shù)據(jù)內(nèi)容,只為確認(rèn)、鑒別身份而用。這樣可以用對稱算法作數(shù)字簽名 (digital signature),用私鑰加密報文,
29、就可以讓對方確認(rèn)身份。如果A用其私鑰加密了某信息,B用A的公鑰鑰密后“閱讀”A的信息,則A就不能否認(rèn)其給A發(fā)過過信息。 </p><p> (III)CA (Certification Authrity)</p><p> 公鑰加密體系理論上非常安全,操作過程中有可能會受到中間人攻擊(man-in-the-middle attack)。比如B要發(fā)一個保密信息給A,所以第一步A把自己
30、的公鑰Ka發(fā)給B。在這一過程中,如果竊聽者H 截取到其公鑰,然后偽裝成A,將自己的公鑰Kh發(fā)給B。B將敏感信息用Kh加密后發(fā)給A,此過程中,竊聽者H截取密文后用H的私鑰解密得到信息內(nèi)容,然后用A的公鑰Ka加密得到密文,自己偽裝成B發(fā)給A,A用自己的私鑰順利的解開了密文。在此過程中,A與B通訊順利,也感覺不到H的存在,但A與B的信息卻被竊聽者竊取。</p><p> CA的出現(xiàn)有效的解決了中間人的攻擊。CA(ce
31、rtification authrity)把一個特定的實體和公鑰綁在一起。人們把信任建立在一個大家都信任的第三方,從信任第三方來達(dá)到信任對方的目的。如果人們想發(fā)放自己的公鑰,則用自己的相關(guān)身份信息和自己的公鑰到一家權(quán)威機構(gòu)(比如像派出所這樣的機構(gòu))辦一個數(shù)據(jù)證書。權(quán)威機構(gòu)核實你的身份以后,用其權(quán)威機構(gòu)的私鑰來加密你的數(shù)據(jù)證書。如果你要把你的公鑰傳送給對方,只需要將自己的數(shù)據(jù)證書傳遞給對方,對方用權(quán)威機構(gòu)的公鑰解密即可得到你身份的相關(guān)信息
32、和公鑰。而權(quán)威機構(gòu)的公鑰則更加透明,比如可以刊登在報紙上讓大家都知道。系統(tǒng)本身也帶有一些權(quán)威機構(gòu)的公鑰,這些在人們裝好系統(tǒng)就已經(jīng)存在了。</p><p> 1.4.2單向散列算法</p><p> 對稱加密算法和非對稱加密算法有效的解決了機密性,不可否認(rèn)性和簽別等功能,單向散列算法則有效的解決了完整性的問題。</p><p> 單向散列算法,又叫HASH算法,
33、用HASH函數(shù)對一段數(shù)據(jù)進(jìn)行一次運算,得到一段固定長度的報文摘要(message digest),任意兩個不同的數(shù)據(jù)得到兩個不同的摘要,或者一個數(shù)據(jù)內(nèi)容發(fā)生一個bit的變化,生成的摘要都截然同。這樣就可以達(dá)到確認(rèn)數(shù)據(jù)完整性和沒有被惡意或者無意識修改的作用。</p><p> 常用的HASH算法有:</p><p><b> (I)MD5</b></p>
34、<p> MD5是由 Ron Rivest 設(shè)計的可產(chǎn)生一個 128 位的散列值的散列算法。MD5設(shè)計經(jīng)過優(yōu)化以用于Intel處理器。</p><p><b> (II)SHA-1</b></p><p> SHA-1是由NSA設(shè)計的,并由NIST將其收錄到 FIPS 中,作為散列數(shù)據(jù)的標(biāo)準(zhǔn)。它可產(chǎn)生一個 160 位的散列值。SHA-1是流行的用于
35、創(chuàng)建數(shù)字簽名的單向散列算法。 </p><p> 同時日常數(shù)據(jù)交換中很多數(shù)據(jù)交換并不需要加密,不對稱算法開銷大,能過完成對數(shù)據(jù)加密/解密來達(dá)到簽名的作用也大可不必。從報文和其摘要的單一對應(yīng)關(guān)系,人們可以對摘要進(jìn)行簽名。對摘要進(jìn)行不對稱加密算法的系統(tǒng)開銷要遠(yuǎn)小于對原報文的加密開銷。 </p><p> 1.4.3量子密碼學(xué)</p><p> (Jennewe
36、in et al.,Quantum Cryptography with EntangledPhotons,Physical Review Letters,May 15,2000,Vol 84,Iss 20,pp。4729-4732) 三個獨立研究機構(gòu)首次實驗證明利用量子幽靈式的特性來建構(gòu)密碼之可行性,這項研究提供未來對付電腦駭客的防犯之道。在這個最新--也是最安全--的資料加密解密架構(gòu)(即量子密碼學(xué))中﹐研究者是採用一對 entangl
37、ed光子,而這對粒子即使相隔遠(yuǎn)距離的情況下,仍有密切的互動關(guān)係。entanglement-based 的量子密碼學(xué)具有唯一的,不可被竊聽的傳輸特性,如果有偷聽者想竊取資料,也很容易的可以監(jiān)測出來。</p><p> 簡而言之,entanglement process 可以建立完整的,隨機的 0與 1 序列提供兩端使用者傳輸資料,如果有駭客從中擷取資料,那么這個訊息序列將被改變,用戶就會發(fā)現(xiàn)有竊聽者,并授權(quán)放棄被
38、竊聽的資料。這種數(shù)位隨機序列,或稱 "金鑰匙",再和資料進(jìn)行計算 (如互斥或閘 XOR),即加密程序,使得這資料串形成一完全隨機序列,這方法就是已知的 one-time pad cipher。同理,接收端也是靠著金鑰匙來進(jìn)行解密程序。在研究中,Los Alamos 研究者模擬一位竊聽者竊取傳輸資料,成功地被偵測出來,并授權(quán)用戶放棄被竊取的資料。而在澳洲的研究團隊,則建立了一公里長的光纖來連接兩個完全獨立的傳輸,接收站
39、來驗證 entangled 密碼理論,他們建立了金鑰匙并成功的傳輸 Venus 影像。同時,在 University of Geneva 團隊建構(gòu)超過數(shù)公里的光纖,并使用光子頻率來驗證entangled 密碼理論。在這些實驗中,雖然他們的傳輸速率較慢,但 entanglement-based 密碼理論在未來極有可能超越non-entangled 量子密碼理論,不僅是傳輸速率,而且</p><p><b>
40、; 1.5 密碼學(xué)應(yīng)用</b></p><p> 1. 數(shù)位簽章(Digital Signature):這是以密碼學(xué)的方法,根據(jù)EDI訊息的內(nèi)容和發(fā)信有該把私鑰,任何人都無法產(chǎn)生該簽名,因此比手寫式的簽名安全許多。 收信人則以發(fā)信人的公鑰進(jìn)行數(shù)位簽章的驗證。 </p><p> 2. 數(shù)位信封(Digital Envelope):這是以密碼學(xué)的方法,用收信人的公鑰對某些機
41、密資料進(jìn)行加密,收信人收到后再用自己的私鑰解密而讀取機密資料。除了擁有該私鑰的人之外, 任何人即使拿到該加密過的訊息都無法解密,就好像那些資料是用一個牢固的信封裝好,除了收信人之外,沒有人能拆開該信封。 </p><p> 3. 安全回條:收信人依據(jù)訊息內(nèi)容計算所得到的回覆資料,再以收信人的私鑰進(jìn)行數(shù)位簽章后送回發(fā)信人,一方面確保收信人收到的訊息內(nèi)容正確無誤, 另一方面也使收信人不能否認(rèn)已經(jīng)收到原訊息。
42、 </p><p> 4. 安全認(rèn)證:每個人在產(chǎn)生自己的公鑰之后,向某一公信的安全認(rèn)證中心申請注冊,由認(rèn)證中心負(fù)責(zé)簽發(fā)憑證(Certificate),以保證個人身份與公鑰的對應(yīng)性與正確性。</p><p><b> 1.6 密碼學(xué)功能</b></p><p> 數(shù)據(jù)加密的基本思想是通過變換信息的表示形式來偽裝需要保護(hù)的敏感信息,使非授權(quán)者
43、不能了解被保護(hù)信息的內(nèi)容。網(wǎng)絡(luò)安全使用密碼學(xué)來輔助完成在傳遞敏感信息的的相關(guān)問題,主要包括:</p><p> (I)機密性(confidentiality) </p><p> 僅有發(fā)送方和指定的接收方能夠理解傳輸?shù)膱笪膬?nèi)容。竊聽者可以截取到加密了的報文,但不能還原出原來的信息,及不能達(dá)到報文內(nèi)容。 </p><p> (II)鑒別(authentica
44、tion) </p><p> 發(fā)送方和接收方都應(yīng)該能證實通信過程所涉及的另一方, 通信的另一方確實具有他們所聲稱的身份。即第三者不能冒充跟你通信的對方,能對對方的身份進(jìn)行鑒別。 </p><p> (III)報文完整性(message intergrity) </p><p> 即使發(fā)送方和接收方可以互相鑒別對方,但他們還需要確保其通信的內(nèi)容在傳輸過程中
45、未被改變。 </p><p> (IV)不可否認(rèn)性(non-repudiation) </p><p> 如果人們收到通信對方的報文后,還要證實報文確實來自所宣稱的發(fā)送方,發(fā)送方也不能在發(fā)送報文以后否認(rèn)自己發(fā)送過報文。 </p><p> 第2章 保密系統(tǒng)設(shè)計內(nèi)容及原理 </p><p><b> 2.1設(shè)計內(nèi)容<
46、/b></p><p> 根據(jù)分配,在本次設(shè)計中我做的是如下內(nèi)容,首先是共享密鑰的分配的設(shè)計,這里包含了傳送密鑰時所用的加密算法、公鑰的分配策略及密鑰的共享策略。其次就是消息的加密算法與傳送的設(shè)計,這部分包含了消息的加密算法、消息認(rèn)證的方式及數(shù)字簽字的方式。設(shè)計的具體內(nèi)容如表2.1所示。</p><p> 表2.1 保密通信系統(tǒng)配置表</p><p>
47、2.2 RC4加密算法</p><p> 2.2.1 RC4簡介</p><p> RC4加密算法是大名鼎鼎的RSA三人組中的頭號人物Ron Rivest在1987年設(shè)計的密鑰長度可變的流加密算法簇。之所以稱其為簇,是由于其核心部分的S-box長度可為任意,但一般為256字節(jié)。該算法的速度可以達(dá)到DES加密的10倍左右。</p><p> 2.2.2 RC4原
48、理</p><p> RC4算法的原理很簡單,包括初始化算法和偽隨機子密碼生成算法兩大部分。假設(shè)S-box長度和密鑰長度均為為n。先來看看算法的初始化部分(用類C偽代碼表示):</p><p> for (i=0; i<n; i++)</p><p><b> s=i;</b></p><p><b&g
49、t; j=0;</b></p><p> for (i=0; i<n; i++)</p><p><b> {</b></p><p> j=(j+s+k)%256;</p><p> swap(s, s【j】);</p><p><b> }</b&
50、gt;</p><p> 在初始化的過程中,密鑰的主要功能是將S-box攪亂,i確保S-box的每個元素都得到處理,j保證S-box的攪亂是隨機的。而不同的S-box在經(jīng)過偽隨機子密碼生成算法的處理后可以得到不同的子密鑰序列,并且,該序列是隨機的:</p><p><b> i=j=0;</b></p><p> while (明文未結(jié)束
51、)</p><p><b> {</b></p><p><b> ++i%=n;</b></p><p> j=(j+s)%n;</p><p> swap(s, s【j】);</p><p> sub_k=s((s+s【j】)%n);</p>&l
52、t;p><b> }</b></p><p> 得到的子密碼sub_k用以和明文進(jìn)行xor運算,得到密文,解密過程也完全相同。</p><p> 2.2.3 RC4應(yīng)用安全</p><p> 由于RC4算法加密是采用的xor,所以,一旦子密鑰序列出現(xiàn)了重復(fù),密文就有可能被破解。關(guān)于如何破解xor加密,請參看Bruce Schnei
53、er的Applied Cryptography一書的1.4節(jié)Simple XOR,在此我就不細(xì)說了。那么,RC4算法生成的子密鑰序列是否會出現(xiàn)重復(fù)呢?由于存在部分弱密鑰,使得子密鑰序列在不到100萬字節(jié)內(nèi)就發(fā)生了完全的重復(fù),如果是部分重復(fù),則可能在不到10萬字節(jié)內(nèi)就能發(fā)生重復(fù),因此,推薦在使用RC4算法時,必須對加密密鑰進(jìn)行測試,判斷其是否為弱密鑰。</p><p> 而且,根據(jù)目前的分析結(jié)果,沒有任何的分析對
54、于密鑰長度達(dá)到128位的RC4有效,所以,RC4是目前最安全的加密算法之一。</p><p><b> 2.3共享密鑰分配</b></p><p> 2.3.1 RSA算法原理</p><p> RSA算法是第一個能同時用于加密和數(shù)字簽名的算法,也易于理解和操作。 RSA是被研究得最廣泛的公鑰算法,從提出到現(xiàn)在已近二十年,經(jīng)歷了各種攻擊的
55、考驗,逐漸為人們接受,普遍認(rèn)為是目前最優(yōu)秀的公鑰方案之一。RSA的安全性依賴于大數(shù)的因子分解,但并沒有從理論上證明破譯RSA的難度與大數(shù)分解難度等價。即RSA的重大缺陷是無法從理論上把握它的保密性能如何,而且密碼學(xué)界多數(shù)人士傾向于因子分解不是NPC問題。RSA的缺點主要有:A)產(chǎn)生密鑰很麻煩,受到素數(shù)產(chǎn)生技術(shù)的限制,因而難以做到一次一密。B)分組長度太大,為保證安全性,n 至少也要 600 bits以上,使運算代價很高,尤其是速度較慢,
56、較對稱密碼算法慢幾個數(shù)量級;且隨著大數(shù)分解技術(shù)的發(fā)展,這個長度還在增加,不利于數(shù)據(jù)格式的標(biāo)準(zhǔn)化。目前,SET(Secure Electronic Transaction)協(xié)議中要求CA采用2048比特長的密鑰,其他實體使用1024比特的密鑰。這種算法1978年就出現(xiàn)了,它是第一個既能用于數(shù)據(jù)加密也能用于數(shù)字簽名的算法。它易于理解和操作,也很流行。算法的名字以發(fā)明者的名字命名:Ron Rivest, AdiSham</p>
57、<p> 密鑰對的產(chǎn)生。選擇兩個大素數(shù),p 和q 。</p><p> 計算:n = p * q </p><p> 然后隨機選擇加密密鑰e,要求 e 和 ( p - 1 ) * ( q - 1 ) 互質(zhì)。最后,利用Euclid 算法計算解密密鑰d, 滿足 </p><p> e * d = 1 ( mod ( p - 1 ) * ( q - 1
58、) ) </p><p> 其中n和d也要互質(zhì)。數(shù)e和n是公鑰,d是私鑰。兩個素數(shù)p和q不再需要,應(yīng)該丟棄,不要讓任何人知道。 </p><p> 加密信息 m(二進(jìn)制表示)時,首先把m分成等長數(shù)據(jù)塊 m1 ,m2,..., mi ,塊長s,其中 2^s <= n, s 盡可能的大。對應(yīng)的密文是: </p><p> ci = mi^e ( mod n
59、) ( a ) </p><p> 解密時作如下計算: </p><p> mi = ci^d ( mod n ) ( b ) </p><p> RSA 可用于數(shù)字簽名,方案是用 ( a ) 式簽名, ( b )式驗證。具體操作時考慮到安全性和 m信息量較大等因素,一般是先作 HASH 運算。 </p><p> RSA 的安全性。
60、 </p><p> RSA的安全性依賴于大數(shù)分解,但是否等同于大數(shù)分解一直未能得到理論上的證明,因為沒有證明破解RSA就一定需要作大數(shù)分解。假設(shè)存在一種無須分解大數(shù)的算法,那它肯定可以修改成為大數(shù)分解算法。目前, RSA的一些變種算法已被證明等價于大數(shù)分解。不管怎樣,分解n是最顯然的攻擊方法?,F(xiàn)在,人們已能分解140多個十進(jìn)制位的大素數(shù)。因此,模數(shù)n必須選大一些,因具體適用情況而定。 </p>
61、<p><b> RSA的速度。 </b></p><p> 由于進(jìn)行的都是大數(shù)計算,使得RSA最快的情況也比DES慢上100倍,無論是軟件還是硬件實現(xiàn)。速度一直是RSA的缺陷。一般來說只用于少量數(shù)據(jù)加密。 </p><p> RSA的選擇密文攻擊。 </p><p> RSA在選擇密文攻擊面前很脆弱。一般攻擊者是將某一信息作
62、一下偽裝(Blind),讓擁有私鑰的實體簽署。然后,經(jīng)過計算就可得到它所想要的信息。實際上,攻擊利用的都是同一個弱點,即存在這樣一個事實:乘冪保留了輸入的乘法結(jié)構(gòu): </p><p> ( XM )^d = X^d *M^d mod n </p><p> 前面已經(jīng)提到,這個固有的問題來自于公鑰密碼系統(tǒng)的最有用的特征--每個人都能使用公鑰。但從算法上無法解決這一問題,主要措施有兩條:一
63、條是采用好的公鑰協(xié)議,保證工作過程中實體不對其他實體任意產(chǎn)生的信息解密,不對自己一無所知的信息簽名;另一條是決不對陌生人送來的隨機文檔簽名,簽名時首先使用One-Way Hash Function對文檔作HASH處理,或同時使用不同的簽名算法。在中提到了幾種不同類型的攻擊方法。 </p><p> RSA的公共模數(shù)攻擊。 </p><p> 若系統(tǒng)中共有一個模數(shù),只是不同的人擁有不同的
64、e和d,系統(tǒng)將是危險的。最普遍的情況是同一信息用不同的公鑰加密,這些公鑰共模而且互質(zhì),那末該信息無需私鑰就可得到恢復(fù)。設(shè)P為信息明文,兩個加密密鑰為e1和e2,公共模數(shù)是n,則: </p><p> C1 = P^e1 mod n </p><p> C2 = P^e2 mod n </p><p> 密碼分析者知道n、e1、e2、C1和C2,就能得到P。 &
65、lt;/p><p> 因為e1和e2互質(zhì),故用Euclidean算法能找到r和s,滿足: </p><p> r * e1 + s * e2 = 1 </p><p> 假設(shè)r為負(fù)數(shù),需再用Euclidean算法計算C1^(-1),則 </p><p> ( C1^(-1) )^(-r) * C2^s = P mod n </p&g
66、t;<p> 另外,還有其它幾種利用公共模數(shù)攻擊的方法??傊绻澜o定模數(shù)的一對e和d,一是有利于攻擊者分解模數(shù),一是有利于攻擊者計算出其它成對的e’和d’,而無需分解模數(shù)。解決辦法只有一個,那就是不要共享模數(shù)n。 </p><p> RSA的小指數(shù)攻擊。 有一種提高RSA速度的建議是使公鑰e取較小的值,這樣會使加密變得易于實現(xiàn),速度有所提高。但這樣作是不安全的,對付辦法就是e和d都取較大的
67、值。</p><p> 2.3.2 公鑰管理機構(gòu)</p><p> 在公鑰的分配中,我是通過模擬公鑰管理機構(gòu)進(jìn)行公鑰的分配。由公鑰管理機構(gòu)來為各用戶建立、維護(hù)動態(tài)的公鑰目錄。同時對系統(tǒng)提出以下要求:</p><p> ?、泵總€用戶都可靠地知道管理機構(gòu)的公開鑰。</p><p> ?、仓挥泄芾頇C構(gòu)自己知道相應(yīng)的秘密鑰。</p>
68、<p> 如果在公鑰目錄表中對公鑰的分配施加更嚴(yán)密的控制,安全性將會更強。與公用目錄表類似,這里假定有一個公鑰管理機構(gòu)來為個用戶建立、維護(hù)動態(tài)的公鑰目錄,但同時對系統(tǒng)提出一些要求,即:每個用戶都可靠地知道管理機構(gòu)的公開鑰,,而只有管理機構(gòu)自己知道相應(yīng)的秘密鑰。分配步驟如圖2.1所示。</p><p> 圖2.1 公鑰管理機構(gòu)分配步驟</p><p> ?、?用戶A向公鑰管理
69、機構(gòu)發(fā)送一帶時戳的消息,消息中有獲取用戶B的當(dāng)前公鑰的請求。</p><p> ?、?管理機構(gòu)對A的請求作出應(yīng)答,應(yīng)答由一個消息表示,該消息由管理機構(gòu)用自己的秘密鑰加密,因此A能用管理機構(gòu)的公開鑰解密,并使A相信這個消息的確是來源于管理機構(gòu)的。</p><p> ?、?A用B的公開鑰對一個消息加密后發(fā)往B,這個消息有兩個數(shù)據(jù)項,一是A的身份,二是一個一次性的隨機數(shù),用于唯一地標(biāo)識這次業(yè)務(wù)。
70、</p><p> ?、?、⑤ B以相同方式從管理機構(gòu)獲取A的公開鑰。這時,A和B都已安全地得到了對方的公開鑰,所以可進(jìn)行保密通信。然而,他們也許還希望有以下兩步,以認(rèn)證對方。</p><p> ?、?B用PKA對一個消息加密后發(fā)往A,該消息的數(shù)據(jù)項有A的一次性隨機數(shù),和B產(chǎn)生的一個新一次性隨機數(shù)。因為只有B能解密③的消息,所以A收到的消息中的N1可使其相信通信的另一方的確是B。</p
71、><p> ⑦ A用B的公開鑰對N2加密后返回給B,可使B相信通信的另一方的確是A。</p><p> 2.3.3具有保密性分配</p><p> 公開鑰分配完成后,用戶就可用公鑰加密體制進(jìn)行保密通信。然而由于公鑰加密的速度過慢,以此進(jìn)行保密通信不太合適,但用于分配單鑰密碼體制的密鑰卻非常合適。</p><p> 用這種方法分配密鑰主要有
72、簡單分配和具有保密性的分配兩種方式。這里主要介紹后者。</p><p> 具有保密性的密鑰分配既可防止被動攻擊,又可防止主動攻擊。假設(shè)A、B已完成公鑰交換,有如圖2.2的分配過程。這種分配方式比簡單分配多了兩個過程,一是有A與B相互確認(rèn)。二是當(dāng)A給B發(fā)送密鑰KS時不似乎簡單的用B的公鑰進(jìn)行加密而是先用自己的私鑰加密再用B的公鑰加密,這樣保證了KS只有A能發(fā)送且只有B能解開,很大程度上增加了安全性。</p&
73、gt;<p> 圖2.2 具有保密性分配密鑰過程</p><p> 2.4 MD5消息認(rèn)證</p><p> 對MD5算法簡要的敘述可以為:MD5以512位分組來處理輸入的信息,且每一分組又被劃分為16個32位子分組,經(jīng)過了一系列的處理后,算法的輸出由四個32位分組組成,將這四個32位分組級聯(lián)后將生成一個128位散列值。 </p><p> 在
74、MD5算法中,首先需要對信息進(jìn)行填充,使其位長對512求余的結(jié)果等于448。因此,信息的位長(Bits Length)將被擴展至N*512+448,N為一個非負(fù)整數(shù),N可以是零。填充的方法如下,在信息的后面填充一個1和無數(shù)個0,直到滿足上面的條件時才停止用0對信息的填充。然后,在這個結(jié)果后面附加一個以64位二進(jìn)制表示的填充前信息長度。經(jīng)過這兩步的處理,現(xiàn)在的信息的位長=N*512+448+64=(N+1)*512,即長度恰好是512的整
75、數(shù)倍。這樣做的原因是為滿足后面處理中對信息長度的要求。 </p><p> MD5中有四個32位被稱作鏈接變量(Chaining Variable)的整數(shù)參數(shù),他們分別為:A=0x67452301,B=0xefcdab89,C=0x98badcfe,D=0x10325476。 </p><p> 當(dāng)設(shè)置好這四個鏈接變量后,就開始進(jìn)入算法的四輪循環(huán)運算。循環(huán)的次數(shù)是信息中512位信息分組
76、的數(shù)目。 </p><p> 將上面四個鏈接變量復(fù)制到另外四個變量中:A到a,B到b,C到c,D到d。 </p><p> 主循環(huán)有四輪(MD4只有三輪),每輪循環(huán)都很相似。第一輪進(jìn)行16次操作。每次操作對a、b、c和d中的其中三個作一次非線性函數(shù)運算,然后將所得結(jié)果加上第四個變量,文本的一個子分組和一個常數(shù)。再將所得結(jié)果向左環(huán)移一個不定的數(shù),并加上a、b、c或d中之一。最后用該結(jié)果取
77、代a、b、c或d中之一。 </p><p> 以一下是每次操作中用到的四個非線性函數(shù)(每輪一個)。 </p><p> F(X,Y,Z) =(X&Y)|((~X)&Z) </p><p> G(X,Y,Z) =(X&Z)|(Y&(~Z)) </p><p> H(X,Y,Z) =X^Y^Z </p
78、><p> I(X,Y,Z)=Y^(X|(~Z)) </p><p> ?。?amp;;是與,|是或,~是非,^是異或) </p><p> 這四個函數(shù)的說明:如果X、Y和Z的對應(yīng)位是獨立和均勻的,那么結(jié)果的每一位也應(yīng)是獨立和均勻的。 </p><p> F是一個逐位運算的函數(shù)。即,如果X,那么Y,否則Z。函數(shù)H是逐位奇偶操作符。 <
79、/p><p> 假設(shè)Mj表示消息的第j個子分組(從0到15),常數(shù)ti是4294967296*abs(sin(i))的整數(shù)部分,i取值從1到64,單位是弧度。(4294967296等于2的32次方) </p><p> FF(a,b,c,d,Mj,s,ti)表示 a = b + ((a + F(b,c,d) + Mj + ti) << s) </p><p&
80、gt; GG(a,b,c,d,Mj,s,ti)表示 a = b + ((a + G(b,c,d) + Mj + ti) << s) </p><p> HH(a,b,c,d,Mj,s,ti)表示 a = b + ((a + H(b,c,d) + Mj + ti) << s) </p><p> Ⅱ(a,b,c,d,Mj,s,ti)表示 a = b + ((a
81、+ I(b,c,d) + Mj + ti) << s) </p><p> 接下來進(jìn)行64步的4輪變換,這里只寫出第一輪變換</p><p><b> 第一輪 </b></p><p> FF(a,b,c,d,M0,7,0xd76aa478) </p><p> FF(d,a,b,c,M1,12,0x
82、e8c7b756) </p><p> FF(c,d,a,b,M2,17,0x242070db) </p><p> FF(b,c,d,a,M3,22,0xc1bdceee) </p><p> FF(a,b,c,d,M4,7,0xf57c0faf) </p><p> FF(d,a,b,c,M5,12,0x4787c62a) <
83、;/p><p> FF(c,d,a,b,M6,17,0xa8304613) </p><p> FF(b,c,d,a,M7,22,0xfd469501) </p><p> FF(a,b,c,d,M8,7,0x698098d8) </p><p> FF(d,a,b,c,M9,12,0x8b44f7af) </p><
84、p> FF(c,d,a,b,M10,17,0xffff5bb1) </p><p> FF(b,c,d,a,M11,22,0x895cd7be) </p><p> FF(a,b,c,d,M12,7,0x6b901122) </p><p> FF(d,a,b,c,M13,12,0xfd987193) </p><p> FF
85、(c,d,a,b,M14,17,0xa679438e) </p><p> FF(b,c,d,a,M15,22,0x49b40821) </p><p> 所有這些完成之后,將A、B、C、D分別加上a、b、c、d。然后用下一分組數(shù)據(jù)繼續(xù)運行算法,最后的輸出是A、B、C和D的級聯(lián)。</p><p> 2.5 DSS數(shù)字簽字</p><p>
86、; 2.5.1 DSS簡介</p><p> 數(shù)字簽字標(biāo)準(zhǔn)DSS(Digital Signature Standard)是由美國NIST公布的聯(lián)邦信息處理標(biāo)準(zhǔn)FIPS PUB 186,其中采用了上一章介紹的SHA和一新的簽字技術(shù),稱為DSA(Digital Signature Algorithm)。DSS最初于1991年公布,在考慮了公眾對其安全性的反饋意見后,于1993年公布了其修改版。</p>
87、<p> 首先將DSS與RSA的簽字方式做一比較。RSA算法既能用于加密和簽字,又能用于密鑰交換。與此不同,DSS使用的算法只能提供數(shù)字簽字功能。</p><p> 采用RSA簽字時,將消息輸入到一個雜湊函數(shù)以產(chǎn)生一個固定長度的安全雜湊值,再用發(fā)方的秘密鑰加密雜湊值就形成了對消息的簽字。消息及其簽字被一起發(fā)給收方,收方得到消息后再產(chǎn)生出消息的雜湊值,且使用發(fā)方的公開鑰對收到的簽字解密。這樣收方就
88、得了兩個雜湊值,如果兩個雜湊值是一樣的,則認(rèn)為收到的簽字是有效的。</p><p> DSS簽字也利用一雜湊函數(shù)產(chǎn)生消息的一個雜湊值,雜湊值連同一隨機數(shù)k一起作為簽字函數(shù)的輸入,簽字函數(shù)還需使用發(fā)送方的秘密鑰SKA和供所有用戶使用的一族參數(shù),稱這一族參數(shù)為全局公開鑰PKG。簽字函數(shù)的兩個輸出s和r就構(gòu)成了消息的簽字(s,r)。接收方收到消息后再產(chǎn)生出消息的雜湊值,將雜湊值與收到的簽字一起輸入驗證函數(shù),驗證函數(shù)還
89、需輸入全局公開鑰PKG和發(fā)送方的公開鑰PKA。驗證函數(shù)的輸出如果與收到的簽字成分r相等,則驗證了簽字是有效的。</p><p> 2.5.2 簽名加密和驗收過程</p><p> 總體過程如圖2.3所示。</p><p> 圖2.3 DSS簽字</p><p><b> 加密:</b></p>&l
90、t;p> 假設(shè)用戶A要對消息M進(jìn)行數(shù)字簽名,然后發(fā)送給用戶B.</p><p> ① 發(fā)送方A秘密選取隨機整數(shù)k,0<k<q;</p><p><b> ?、?發(fā)送方計算</b></p><p> r=(gk mod p) mod q;</p><p> ;其中x為簽名方A的私鑰。</p&
91、gt;<p> 其中H(M)是使用SHA-1生成的消息M的散列碼,(r,s)就是消息M的數(shù)字簽名,k-1是k模q的乘法逆元,為了安全起見,每次簽名應(yīng)當(dāng)隨機選取不同的k。若r=0或s=0則返回①重新計算。 </p><p><b> 解密:</b></p><p> 如果接收者收到消息M,r,s后,首先驗證0<r<q,0<s<
92、q,如果通過則計算:</p><p> w=s-1 mod q;</p><p> u1= H(M)w mod q;</p><p> u2= r w mod q;</p><p> ;其中y為簽名方A的公鑰。</p><p> 如果v=r則確定簽名合法,可以認(rèn)為收到的消息是可信的,否則消息可能被篡改。 &l
93、t;/p><p> 2.5.3 DSA數(shù)字簽名算法的安全性分析</p><p> DSA算法也是非確定性的數(shù)字簽名算法,對消息M它的簽名依賴于隨機數(shù)r,這樣相同的消息就可能產(chǎn)生不同的簽名。</p><p> DSA的安全性也是基于計算有限域離散對數(shù)的困難性,鑒于有限域上計算離散對數(shù)問題的進(jìn)展,一般認(rèn)為512位的DSA算法無法提供較長期的安全性,而1024位的安全性
94、值得信賴。</p><p><b> 第3章 設(shè)計步驟</b></p><p> 3.1 共享密鑰分配分配</p><p> 這里的共享密鑰分配時用到的算法是RSA加密算法。主要包括兩部分,其一為公鑰分配,其二為共享密鑰策略,下面我們來具體介紹實驗的步驟。</p><p> 首先設(shè)置實驗過程中需要的各個數(shù)值。&l
95、t;/p><p> 該課設(shè)是模擬A、B之間的數(shù)據(jù)傳送,在公鑰分配的制度上選擇的是公鑰管理機構(gòu),根據(jù)以上的需求,應(yīng)事先設(shè)定好以下幾個數(shù)據(jù)。</p><p> IDA:yaoyu Request:yu N1:1010 time1=1</p><p> IDB:wangyang Request:yang N2:1011
96、 time2=2</p><p> 生成三個密鑰對如下所示:</p><p><b> A:</b></p><p><b> Modulus</b></p><p> 89E396C2B3A40D6ADA7815BBEE5A3B021B13FA23E4B0C506558233CB2D
97、C403BFEE90487DB2D9DAD6039B33B3F3DB09B652C2FCE5F4C9E1E86BB4979001D25091</p><p><b> 公鑰10001</b></p><p><b> 私鑰</b></p><p> 5A87C62FC6E9EAB541029EA268776D4E90
98、A0A9166FCB6F501D4C02DD5F0AD6BA715BA12C59C5FCF68E13F4F0B45BFD0F6E64B6974289321B9937ED87657ABED1</p><p><b> B:</b></p><p><b> Modulus</b></p><p> EBFA07732D
99、9E01205009F8336756887EBC303F0117E96B43FAD90D258D4B3343BB10C257DD3516408AEBE68115EA829BAF22D68799F1B27B251E8864AC0932A7</p><p><b> 公鑰10001</b></p><p><b> 私鑰</b></p>
100、;<p> 5DEC5DACBD5A676E5A0D2DCA1FF6744BA551BAB20FB76B675A5FABF8E75D2820A893ED1786B6AEFF73432BF5CD9D4C7C8D8F9A2FC58CE1D46014F81546B34129</p><p><b> 管理機構(gòu):</b></p><p><b>
101、 Modulus</b></p><p> 894706BB8255FB933DF399C06CAC458D113ACF384523C23413CC7E70EB5BA064636050960F09C73E616FFBC166A14D03918E3101564739AB1CC40A4B88FB9A1F</p><p><b> 公鑰10001</b>&l
102、t;/p><p><b> 私鑰</b></p><p> 6632C06A5C2FD2E8DD583B80ABE6DCA896C9277806D106456AEFF4B9F01DF89B6CC0D2ACB3FBC72D2F1F1854DAAB63180D34837B022C837B20E6B8F0C1ACC041</p><p><b&
103、gt; 3.1.1公鑰分配</b></p><p> 公鑰分配中用到的是公鑰管理機構(gòu)這個方式。下面我們來介紹實驗步驟。</p><p> 公鑰的分配是按照圖3.1來按步進(jìn)行的。</p><p> 圖3.1 公鑰管理機構(gòu)</p><p> 下面我們來按步依次進(jìn)行實驗。</p><p> 步驟一:用
104、戶A向公鑰管理機構(gòu)發(fā)送一帶有時間戳的消息,消息中有獲取用戶B的當(dāng)前公鑰的請求。</p><p> 步驟二:管理機構(gòu)對A的請求做出應(yīng)答,應(yīng)答由一個消息表示,該消息由管理機構(gòu)用自己的秘密鑰SKau加密,因此A能用管理機構(gòu)的公開鑰解密,并且A相信該消息的確是來自管理機構(gòu)。</p><p> 應(yīng)答的消息中有以下幾項:</p><p> 在明文處填寫PKarequest
105、N1即(10001yu1)然后在參數(shù)modulus處填寫管理機構(gòu)的對應(yīng)參數(shù),然后填寫管理機構(gòu)的私鑰,最后對其進(jìn)行私鑰加密,結(jié)果生成的密文為0284FAFCBEEFB16F02F42651129BA9984C983A09EA10DC5C2DC0F75F38D2E6F147B2F8612E879334D493281E7A54BD7002C10478425D6FC66BA742BEB3CCE400,過程如圖3.2所示。</p>
106、<p> 圖3.2管理機構(gòu)應(yīng)答A的請求</p><p> 步驟三:以文本形式輸入明文yaoyu1010,輸入B的modulus參數(shù)和公鑰最后生成密文2AA7C71162C1C421AA8F9F7CCE701659EE4771F4AD2CCFA0EBDCE3BC47A2FDEAACF8FFDFA1B86D0117F7BF8021C5710D9366DEC7293058D50C7E17C00EE59B7
107、D,過程如圖3.3所示。</p><p><b> 圖3.3 加密過程</b></p><p> 步驟四、五他們以與A相同的方式從管理機構(gòu)獲取A的公開鑰,步驟類似與1、2,這里不再贅述。</p><p> 步驟六:在明文處輸入10101011,然后用A的modulus參數(shù)和公鑰加密得到密文04152E499D6811C663D74A539
108、F50E2B6A40A7AFF58C85FC7A1826E386B3B358CF90B0BBF6D9C76E177B7BB81CB5E5EBB8BF8339AD4CDB8D39A9211DB4BBB694C,過程如圖3.4所示。</p><p> 圖3.4 A確定通信對方B</p><p> 步驟七:輸入明文1011,用B的modulus參數(shù)和公鑰進(jìn)行加密得到密文為3B59E7E900
109、6132873D73C3C945A9AD8637E1B3BAA37A7F75BDBD4227F3B616AF313AB6A5FEC2621899DA769533B9CC11C1E7C9DB16ADBF1D36F4720C91C9B12A,過程如圖3.5所示。</p><p> 圖3.5 B確定通信對方A</p><p> 3.1.2共享密鑰策略</p><p>
110、 這里我們運用了具有保密性的密鑰分配方式,該過程具有保密性和認(rèn)證性,因此既可以防止被動攻擊,也可以防止主動攻擊。</p><p> 上邊A、B已經(jīng)完成了公鑰的交換,可以按照下列步驟建立共享會話密鑰。</p><p> 步驟1:用戶A用用戶B的公鑰PKB加密A的身份IDA(yaoyu)和一個一次性隨機數(shù)N1(1010)后發(fā)往B,如圖3.6所示。</p><p>
111、<b> 圖3.6 標(biāo)示業(yè)務(wù)</b></p><p> 發(fā)往B的密文為:“B8A5085035F6A41C7FB7069F8CC5311FA5DFBD23EC411BBE2936781D6D28E6636A5A56B0A9CE2FAA989BF2573B751F3061DE9E195FD179909B9BDFF10A0E076C”。由B私鑰解密得到內(nèi)容“yaoyu1010”該圖類似于上圖
112、,這里不再描述。</p><p> 步驟2:用戶B用用戶A的公鑰PKA加密A的一次性隨機數(shù)N1(1010)和B新產(chǎn)生的一次隨機數(shù)N2(1011)后發(fā)往A。因為只有B能解讀由B公鑰加密的內(nèi)容,所以B發(fā)來的消息中N1的存在可是A相信對方的確是B,如圖3.7所示。</p><p><b> 圖3.7 反饋信息</b></p><p> 發(fā)往A的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 密碼學(xué)課程設(shè)計報告
- 密碼學(xué)課程設(shè)計報告
- 密碼學(xué)課程設(shè)計報告
- 密碼學(xué)課程設(shè)計
- 密碼學(xué)課程設(shè)計—網(wǎng)頁加密技術(shù)
- 應(yīng)用密碼學(xué)課程設(shè)計-rsa加密解密的設(shè)計與實現(xiàn)
- 密碼學(xué)課程設(shè)計-- 簡單的保密通信系統(tǒng)
- 《應(yīng)用密碼學(xué)》課程教學(xué)大綱
- 現(xiàn)代密碼學(xué)與應(yīng)用
- 密碼學(xué)實驗報告
- 密碼學(xué)實驗報告
- 密碼學(xué)實驗----
- 密碼學(xué)答案
- 數(shù)字簽名系統(tǒng)-現(xiàn)代密碼學(xué)課程設(shè)計任務(wù)書
- 古典密碼學(xué)之希爾密碼
- aes密碼學(xué)課程設(shè)計(c語言實現(xiàn))--aes加密解密軟件的實現(xiàn)
- 現(xiàn)代密碼學(xué)論文
- 應(yīng)用密碼學(xué)在PDM中的應(yīng)用.pdf
- 現(xiàn)代密碼學(xué)基礎(chǔ)課程教學(xué)大綱
- 天津大學(xué)密碼學(xué)課程教學(xué)大綱
評論
0/150
提交評論