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