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