數(shù)字簽名與消息認(rèn)證.ppt
《數(shù)字簽名與消息認(rèn)證.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《數(shù)字簽名與消息認(rèn)證.ppt(41頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
第10章 數(shù)字簽名與消息認(rèn)證,10.1 數(shù)字簽名 10.2 Hash函數(shù) 10.3 消息認(rèn)證 思考題 實(shí)驗(yàn)10 PGP軟件的安裝與使用,10.1 數(shù) 字 簽 名,10.1.1 數(shù)字簽名的概念 在RSA公鑰密碼體制中,假如Alice用自己的私鑰d來(lái)計(jì)算S≡md(mod n),然后把S連同消息m一起發(fā)送給Bob,而B(niǎo)ob用Alice的公鑰(n, e)來(lái)計(jì)算m≡ce(mod n),那么則有m=m。大家想一下,這是否意味著B(niǎo)ob相信所收到的s一定是來(lái)自Alice?上述過(guò)程中的S是否相當(dāng)于Alice對(duì)消息m的簽名? 上述過(guò)程可用圖10-1來(lái)概括。,,圖10-1 數(shù)字簽名過(guò)程示意圖,數(shù)字簽名是利用密碼運(yùn)算實(shí)現(xiàn)“手寫(xiě)簽名”效果的一種技術(shù),它通過(guò)某種數(shù)學(xué)變換來(lái)實(shí)現(xiàn)對(duì)數(shù)字內(nèi)容的簽名和蓋章。在ISO7498-2標(biāo)準(zhǔn)中,數(shù)字簽名的定義為“附加在數(shù)據(jù)單元上的一些數(shù)據(jù),或是對(duì)數(shù)據(jù)單元所做的密碼變換,這種數(shù)據(jù)或變換允許數(shù)據(jù)單元的接收者用以確認(rèn)數(shù)據(jù)單元的來(lái)源和數(shù)據(jù)單元的完整性,并保護(hù)數(shù)據(jù),防止被人偽造”。 一個(gè)數(shù)字簽名方案一般由簽名算法和驗(yàn)證算法兩部分組成。要實(shí)現(xiàn)“手寫(xiě)簽名”的效果,數(shù)字簽名應(yīng)具有不可偽造、不可抵賴(lài)和可驗(yàn)證的特點(diǎn)。,對(duì)于數(shù)字簽名方案的攻擊主要是想辦法偽造簽名。按照方案被攻破的程度,可以分為三種類(lèi)型,分別是:① 完全偽造,即攻擊者能計(jì)算出私鑰或者能找到一個(gè)能產(chǎn)生合法簽名的算法,從而可以對(duì)任何消息產(chǎn)生合法的簽名;② 選擇性偽造,即攻擊者可以實(shí)現(xiàn)對(duì)某一些特定的消息構(gòu)造出合法的簽名;③ 存在性偽造,即攻擊者能夠至少偽造出一個(gè)消息的簽名,但對(duì)該消息幾乎沒(méi)有控制力。,10.1.2 基本簽名算法 數(shù)字簽名方案一般利用公鑰密碼技術(shù)來(lái)實(shí)現(xiàn),其中私鑰用來(lái)簽名,公鑰用來(lái)驗(yàn)證簽名。比較典型的數(shù)字簽名方案有RSA算法(R. L. Rivest, A. Shamir, and L. M. Adleman, 1978)、ElGamal 簽名(T. ElGamal, 1985)、Schnorr簽名(C. P. Schnorr, 1989)和DSS簽名(NIST, 1991)。我們這里僅給出ElGamal簽名方案和Schnorr簽名方案。,1. ElGamal簽名方案 假設(shè)p是一個(gè)大素?cái)?shù),g是GF(p)的生成元。Alice的公鑰為y = gx mod p, g,p私鑰為x。 簽名算法: Alice首先選一個(gè)與p-1互素的隨機(jī)數(shù)k Alice計(jì)算a = gk mod p Alice對(duì)b解方程M = x*a + k*b (mod p-1). Alice對(duì)消息M的簽名為(a,b) 驗(yàn)證算法: 檢查yaab mod p = gM mod p是否成立 例如:,p = 11, g = 2,Bob 選 x = 8為私鑰 y = 28 mod 11 = 3 公鑰: y = 3, g = 2, p = 11 Bob要對(duì)M = 5進(jìn)行簽名 選k = 9 (gcd(9, 10) = 1) a = 29 mod 11 = 6,b=3 讀者可檢查yaab mod p = gM mod p是否成立。 上述方案的安全性是基于如下離散對(duì)數(shù)困難性問(wèn)題的:已知大素?cái)?shù)p、GF(p)的生成元g和非零元素y ? GF(p),求解唯一的整數(shù)k, 0≤k≤p – 2,使得y ? gk(mod p),k稱(chēng)為y對(duì)g的離散對(duì)數(shù)。,目前對(duì)離散對(duì)數(shù)最有效的攻擊方法是指數(shù)演算攻擊,其計(jì)算量為 在1996年的歐洲密碼學(xué)會(huì)(Proceedings of EUROCRYPT 96)上,David Pointcheval和Jacques Stern給出一個(gè)ElGamal簽名的變體,并基于所謂分叉技術(shù)證明了在隨機(jī)預(yù)言模型下所給方案是安全的(在自適應(yīng)選擇消息攻擊下能抗擊存在性偽造)。,,2.Schnorr簽名方案 Schnorr簽名方案是一個(gè)短簽名方案,它是ElGamal簽名方案的變形,其安全性是基于離散對(duì)數(shù)困難性和hash函數(shù)的單向性的。 假設(shè)p和 q是大素?cái)?shù),是q能被p-1整除,q是大于等于160 bit的整數(shù),p是大于等于512 bit的整數(shù),保證GF(p)中求解離散對(duì)數(shù)困難;g是GF(p)中元素,且gq?1 mod p;Alice公鑰為y ? gx (mod p),私鑰為x,1xq。,簽名算法: Alice首先選一個(gè)與p-1互素的隨機(jī)數(shù)k Alice計(jì)算r = h(M, gk mod P) Alice計(jì)算s = k + x*r( mod q) 驗(yàn)證算法: 計(jì)算gk mod P=gsyr mod P. 驗(yàn)證r = h(M, gk mod P) Schnorr簽名較短,由 |q| 及 |H(M)| 決定。在Schnorr簽名中,r=gk mod p可以預(yù)先計(jì)算,k與M無(wú)關(guān),因而簽名只需一次mod q乘法及減法。所需計(jì)算量少,速度快,適用于智能卡。,10.1.3 特殊簽名算法 目前國(guó)內(nèi)外研究重點(diǎn)已經(jīng)從普通簽名轉(zhuǎn)向具有特定功能、能滿足特定要求的數(shù)字簽名。如適用于電子現(xiàn)金和電子錢(qián)包的盲簽名、適用于多人共同簽署文件的多重簽名、限制驗(yàn)證人身份的條件簽名、保證公平性的同時(shí)簽名以及門(mén)限簽名、代理簽名、防失敗簽名等。盲簽名是指簽名人不知道簽名內(nèi)容的一種簽名,可用于電子現(xiàn)金系統(tǒng),實(shí)現(xiàn)不可追蹤性。如下是D. Chaum 于1983年提出的一個(gè)盲簽名方案:,假設(shè)在RSA密碼系統(tǒng)中,Bob的公鑰為e,私鑰為d,公共模為N。Alice想讓Bob對(duì)消息M盲簽名 (1) Alice 在1和N之間選擇隨機(jī)數(shù)k通過(guò)下述辦法對(duì)M盲化:t = Mke mod N。 (2) Bob對(duì)t簽名,td = (Mke)d mod N。 (3) Alice用下述辦法對(duì)td脫盲:s = td/k mod N = Md mod N,s即為消息M的簽名。,,10.2 Hash 函 數(shù),10.2.1 Hash函數(shù)的概念 在前面的章節(jié)里,我們不只一次地用到了Hash函數(shù),已經(jīng)初步知道了這是一類(lèi)單向(計(jì)算h = H(m)是容易的,但求逆運(yùn)算是困難的)函數(shù),本節(jié)我們對(duì)這類(lèi)函數(shù)做進(jìn)一步討論。 Hash函數(shù)h = H(m)也稱(chēng)為散列函數(shù),它將任意長(zhǎng)度的報(bào)文m映射為固定長(zhǎng)度的輸出h(摘要),另外該函數(shù)除滿足單向性外,還應(yīng)具備下列兩項(xiàng)條件之一:,(1) 抗弱碰撞性。對(duì)固定的m,要找到,使得在計(jì)算上是不可行的。 (2) 抗強(qiáng)碰撞性。要找到m和,使得在計(jì)算上是不可行的。 顯然,滿足(2)的Hash函數(shù)的安全性要求更高,這是抗擊生日攻擊的要求。有關(guān)Hash函數(shù)的描述可如圖10-2所示。,,圖10-2 Hash函數(shù)示意圖,10.2.2 Hash函數(shù)的構(gòu)造 可以用很多辦法構(gòu)造Hash函數(shù),但使用最多的是迭代型結(jié)構(gòu),著名的MD-5、SHA-1等都是基于迭代型的。如圖10-3所示。,,圖10-3 用迭代方法構(gòu)造Hash函數(shù)示意圖,函數(shù)的輸入M被分為L(zhǎng)個(gè)分組Y0,Y1,…,YL-1,每一個(gè)分組的長(zhǎng)度為b比特,最后一個(gè)分組的長(zhǎng)度如果不夠的話,需對(duì)其做填充。最后一個(gè)分組中還包括整個(gè)函數(shù)輸入的長(zhǎng)度值,這樣一來(lái),將使得敵手的攻擊更為困難,即敵手若想成功地產(chǎn)生假冒消息,就必須保證假冒消息的雜湊值與原消息的雜湊值相同,而且假冒消息的長(zhǎng)度也要與原消息的長(zhǎng)度相等。 算法中重復(fù)使用一壓縮函數(shù)f,f的輸入有兩項(xiàng),一項(xiàng)是上一輪(第i-1輪)輸出,另一項(xiàng)是算法在本輪(第i輪)的b比特輸入分組Yi。f的輸出又作為下一輪的輸入。算法開(kāi)始時(shí)還需指定一個(gè)初值IV,最后一輪n比特輸出即為最終產(chǎn)生的雜湊值。通常有bn,因此稱(chēng)函數(shù)f為壓縮函數(shù)。算法的核心就是設(shè)計(jì)無(wú)碰撞的壓縮函數(shù)f。,10.2.3 Hash函數(shù)的安全性 對(duì)Hash函數(shù)的攻擊就是想辦法找出碰撞,相關(guān)攻擊方法主要有生日攻擊、中途相遇攻擊、修正分組攻擊和差分分析攻擊等。MD-5和SHA-1算法都已經(jīng)被攻破,中國(guó)密碼學(xué)者王小云在這方面做出了很優(yōu)秀的研究成果。開(kāi)發(fā)人員應(yīng)該使用更為安全的SHA-2(SHA-256、SHA-512)算法,研究人員目前已經(jīng)開(kāi)始討論設(shè)計(jì)更安全的新Hash函數(shù)SHA-3,2011年篩選出了Blas、JH、Grostl、Keccak和Skein共5個(gè)候選算法,年終將決定SHA-3算法。,,10.3 消 息 認(rèn) 證,10.3.1 消息認(rèn)證與消息認(rèn)證碼 消息認(rèn)證是指驗(yàn)證者驗(yàn)證所接收到的消息是否確實(shí)來(lái)自真正的發(fā)送方,并且消息在傳送中沒(méi)被修改的過(guò)程。消息認(rèn)證是抗擊偽裝、內(nèi)容篡改、序號(hào)篡改、計(jì)時(shí)篡改和信源抵賴(lài)的有效方法。,加密技術(shù)可用來(lái)實(shí)現(xiàn)消息認(rèn)證。假如使用對(duì)稱(chēng)加密方法,那么接收方可以肯定發(fā)送方創(chuàng)建了相關(guān)加密的消息,因?yàn)橹挥惺瞻l(fā)雙方才有對(duì)應(yīng)的密鑰,并且如果消息本身具有一定結(jié)構(gòu)、冗余或校驗(yàn)和的話,那么接受者很容易發(fā)現(xiàn)消息在傳送中是否被修改。假如使用公鑰加密技術(shù),則接收者不能確定消息來(lái)源,因?yàn)槿魏稳硕贾澜邮照叩墓€,但這種技術(shù)可以確保只有預(yù)定的接收者才能接收信息。 數(shù)字簽名也可用來(lái)實(shí)現(xiàn)消息認(rèn)證。驗(yàn)證者對(duì)簽名后的數(shù)據(jù)不僅能確定消息來(lái)源,而且可以向第三方證明其真實(shí)性,因而還能防止信源抵賴(lài)。,消息認(rèn)證更為簡(jiǎn)單的實(shí)現(xiàn)方法是利用消息認(rèn)證碼。 消息認(rèn)證碼(MAC)也稱(chēng)密碼校驗(yàn)和,是指消息被一密鑰控制的公開(kāi)單向函數(shù)作用后,產(chǎn)生的固定長(zhǎng)度的數(shù)值,即MAC=CK(M)。 如圖10-4所示,假設(shè)通信雙方A和B共享一密鑰K,A欲發(fā)送給B的消息是M,A首先計(jì)算MAC=CK(M),其中CK()是密鑰控制的公開(kāi)單向函數(shù),然后向B發(fā)送M‖MAC,B收到后做與A相同的計(jì)算,求得一新MAC,并與收到的MAC做比較,如果B計(jì)算得到的MAC與接收到的MAC一致,則:,(1) 接收方相信發(fā)送方發(fā)來(lái)的消息未被篡改,這是因?yàn)楣粽卟恢烂荑€,所以不能夠在篡改消息后相應(yīng)地篡改MAC,而如果僅篡改消息,則接收方計(jì)算的新MAC將與收到的MAC不同。,圖10-4 用消息認(rèn)證碼來(lái)實(shí)現(xiàn)消息認(rèn)證,(2) 接收方相信發(fā)送方不是冒充的,這是因?yàn)槌瞻l(fā)雙方外再無(wú)其他人知道密鑰,因此其他人不可能對(duì)自己發(fā)送的消息計(jì)算出正確的MAC。,10.3.2 消息認(rèn)證碼的構(gòu)造 安全的MAC函數(shù)MAC=CK(M)不但要求要具有單向性和固定長(zhǎng)度的輸出,而且應(yīng)滿足: (1) 如果敵手得到M和CK(M),則構(gòu)造一滿足CK(M ) = CK(M)的新消息M 在計(jì)算上是不可行的。 (2) CK(M)均勻分布的條件是:隨機(jī)選取兩個(gè)消息M、M′,Pr[CK(M)=CK(M′)]=2-n,其中n為MAC的長(zhǎng)。,(3) 若M 是M的某個(gè)變換,即M = f (M),例如f為插入一個(gè)或多個(gè)比特,那么Pr[CK(M)=CK(M )]=2-n。 MAC的構(gòu)造方法有很多種,但MAC函數(shù)的上述要求很容易讓我們想到Hash函數(shù)。事實(shí)上,基于密碼雜湊函數(shù)構(gòu)造MAC正是一個(gè)重要的研究方向,RFC2104推薦的HMAC已被用于IPSec和其他網(wǎng)絡(luò)協(xié)議。HMAC的結(jié)構(gòu)大致如圖10-5所示。,,,,圖10-5 HMAC的結(jié)構(gòu)示意圖,思 考 題,(1) 比較并對(duì)照傳統(tǒng)簽名和數(shù)字簽名的異同,列舉數(shù)字簽名能提供的安全服務(wù)。 (2) 比較存在性偽造和選擇性偽造的區(qū)別。 (3) 列舉一些特殊簽名并說(shuō)明其用途。 (4) 什么是Hash函數(shù),常用的Hash函數(shù)有哪些? (5) 消息認(rèn)證碼和對(duì)稱(chēng)加密方法在實(shí)現(xiàn)消息認(rèn)證方面有何不同? (6) 消息認(rèn)證碼有哪些安全性要求,HMAC的安全性如何?,,實(shí)驗(yàn)10 PGP軟件的安裝與使用,一、實(shí)驗(yàn)?zāi)康?(1) 理解消息摘要的基本概念和用途。 (2) 掌握PGP軟件的安裝方法。 (3) 掌握PGP軟件公鑰與私鑰的生成方法,PGPKeys管理密鑰的方法。 (4) 學(xué)會(huì)使用PGP軟件收發(fā)加密郵件。,二、實(shí)驗(yàn)準(zhǔn)備 (1) PGP軟件是一款非常優(yōu)秀的加密軟件。它能對(duì)文件、郵件、磁盤(pán)以及ICQ通信內(nèi)容實(shí)現(xiàn)加密、解密、簽名與認(rèn)證的功能,適合企業(yè)、政府機(jī)構(gòu)、衛(wèi)生保健部門(mén)、教育部門(mén)、家庭個(gè)人進(jìn)行安全通信使用。請(qǐng)查閱相關(guān)資料,熟悉PGP密鑰對(duì)的產(chǎn)生,掌握PGP加密與簽名的一般流程。,(2) 圖10-6是PGP的認(rèn)證業(yè)務(wù)和保密業(yè)務(wù)示意圖。其中KS為分組加密算法所用的會(huì)話密鑰,EC和DC分別為分組加密算法和解密算法,EP和DP分別為公鑰加密算法和解密算法,SKA和PKA分別為發(fā)送方的秘密鑰和公開(kāi)鑰,SKB和PKB分別為接收方的秘密鑰和公開(kāi)鑰,H表示雜湊函數(shù),‖表示鏈接,Z為ZIP壓縮算法,R64表示基64變換?;?4變換是將每3個(gè)8 bit位組的二元數(shù)據(jù)映射為4個(gè)ASCII字符的一種方法。之所以使用基64變換,是因?yàn)橛行┼]件系統(tǒng)僅允許使用ASCII碼文本串。,,,圖10-6 PGP的認(rèn)證業(yè)務(wù)和保密業(yè)務(wù)示意圖,(3) 在FTP服務(wù)器上建立一個(gè)公開(kāi)賬戶(可讀寫(xiě),不可刪除),在其中建立名為“公鑰”和“密件”兩個(gè)文件夾?!肮€”文件夾用來(lái)模擬“公鑰”服務(wù)器,任何人都可以向該文件夾上傳自己的公鑰或取得別人的公鑰?!懊芗蔽募A用來(lái)模擬不安全的信息傳遞通道,任何人都可以向該文件夾上傳密件或從中獲取密件。 (4) 從互聯(lián)網(wǎng)上下載非商業(yè)用途的PGP8.0免費(fèi)版。,三、實(shí)驗(yàn)內(nèi)容 (1) 安裝PGP軟件。 雙擊PGP安裝文件進(jìn)行安裝, PGP軟件將出現(xiàn)注冊(cè)窗口,此時(shí)輸入我們提供的用戶名、組織名、序列號(hào)及授權(quán)信息等內(nèi)容后,點(diǎn)擊“認(rèn)證”即可完成安裝。安裝時(shí)選擇新用戶,并注意輸入通行碼(千萬(wàn)不能忘記)。完成后必須重啟計(jì)算機(jī)。,(2) 用PGP KEYDS管理密鑰環(huán)。 進(jìn)入PGPKeys可以看到我們注冊(cè)的郵箱,對(duì)應(yīng)已有密鑰管理內(nèi)容。此時(shí)我們可導(dǎo)出自己的公鑰,生成 ASC文件。方法:右擊[郵箱],選擇[Export],輸入文件名即可,此文件可交流、發(fā)布等。,(3) 文件加密與解密。 加密信息:打開(kāi)記事本程序,輸入“information security”。右擊PGP圖標(biāo),選擇[Current]→[Window]→[Encrypt],進(jìn)行記事本內(nèi)容加密。完成后觀察結(jié)果。若有多個(gè)密鑰,則進(jìn)行選擇。 解密信息:同樣將光標(biāo)保持在記事本中,右擊PGP圖標(biāo)后,選擇[Current Window]→[Decrypt]即可解密信息(需要輸入通行碼)。解密結(jié)果顯示在“Text Viewer”中。,(4) 交換公鑰(從PGP導(dǎo)出,并通過(guò)FTP“公鑰”文件夾)。 (5) 文件的加密與解密(通過(guò)FTP“密件”文件夾進(jìn)行密件傳送)。 (6) 第三方獲取密件并嘗試破解(當(dāng)然不可能成功的)。 (7) 學(xué)生相互發(fā)送加密文件并解密,探索PGP的其他功能。 (8) 利用Outlook發(fā)送加密電子郵件。,進(jìn)入Outlook,若你的郵箱地址不是Outlook默認(rèn)的郵箱或無(wú)郵箱,則應(yīng)進(jìn)入[工具]→[賬戶]進(jìn)行添加。最好使用163信箱。 撰寫(xiě)郵件,選擇PGP加密并發(fā)送即可。 注意只能給提供公鑰的地址發(fā)送,也可用你自己的私鑰簽名。,,四、實(shí)驗(yàn)報(bào)告 1.通過(guò)實(shí)驗(yàn)回答下列問(wèn)題 (1) PGP在進(jìn)行消息簽名時(shí),為什么只對(duì)Hash值簽名? (2) PGP主要基于什么算法來(lái)實(shí)現(xiàn)加密和解密? (3) 使用郵件加密時(shí),對(duì)于收件人和發(fā)件人的使用環(huán)境有什么要求? (4) PGP如何配置用戶的公鑰及私鑰,如何導(dǎo)入其他用戶的公鑰? (5) PGP的“文件粉碎”功能有什么作用? (6) PGP的密鑰是如何管理的?,2.簡(jiǎn)答題 (1) 什么是會(huì)話密鑰? (2) 描述SHA-256算法的基本流程。 (3) 描述PGP進(jìn)行數(shù)字簽名的工作流程。給出你對(duì)消息“information security”的簽名和對(duì)應(yīng)該簽名的公、私鑰。,,- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開(kāi)word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 數(shù)字簽名 消息 認(rèn)證
鏈接地址:http://www.3dchina-expo.com/p-2836653.html