《數(shù)字簽名技術(shù)與應(yīng)用.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《數(shù)字簽名技術(shù)與應(yīng)用.ppt(35頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、數(shù)字簽名技術(shù)及應(yīng)用,數(shù)字簽名的原理 數(shù)字簽名技術(shù) 數(shù)字簽名的應(yīng)用 數(shù)字簽名的立法,數(shù)字簽名的引入---網(wǎng)絡(luò)傳經(jīng),我要接受來(lái)自黃裳的九陰真經(jīng) 安全的要求: 我能確保經(jīng)文來(lái)自黃裳 我能確保經(jīng)文在因特網(wǎng)上傳輸 沒(méi)有別人能夠看到經(jīng)文,因?yàn)槟鞘前l(fā)送給我的,這樣就防止了經(jīng)文被竊 黃裳事后不能否認(rèn)發(fā)送了經(jīng)文給我,發(fā)送過(guò)程,把九陰真經(jīng)發(fā)給我,,,,解決方法,發(fā)信息的人用自己的私鑰對(duì)所發(fā)信息進(jìn)行加密( Encryption ) 接收信息者用發(fā)信者的公鑰來(lái)解密( Decryption ) 可以保證信息的真實(shí)性、完整性和不可否認(rèn)性。,問(wèn)題還沒(méi)解決,要發(fā)的信息可能很長(zhǎng),非對(duì)稱密碼又比較復(fù)雜,運(yùn)算量大 。 私鑰通常保存
2、在USB Key或IC卡中,加密運(yùn)算也是在Key或卡中進(jìn)行 加密所用的時(shí)間就會(huì)很長(zhǎng)而導(dǎo)致無(wú)法實(shí)用 黑客用自己的私鑰加密葵花寶典 用它替換掉黃裳給我的經(jīng)文并發(fā)給我 我需要以某種方式來(lái)認(rèn)證該經(jīng)文的確來(lái)自黃裳并且沒(méi)有被黑客修改或者替換,哈希函數(shù),1.什么是哈希函數(shù) 哈希(Hash)函數(shù)在中文中有很多譯名,有些人根據(jù)Hash的英文原意譯為“散列函數(shù)”或“雜湊函數(shù)”,有些人干脆把它音譯為“哈希函數(shù)”,還有些人根據(jù)Hash函數(shù)的功能譯為“壓縮函數(shù)”、“消息摘要函數(shù)”、“指紋函數(shù)”、“單向散列函數(shù)”等等。,,Hash算法是把任意長(zhǎng)度的輸入數(shù)據(jù)經(jīng)過(guò)算法壓縮,輸出一個(gè)尺寸小了很多的固定長(zhǎng)度的數(shù)據(jù),即哈希值。哈希
3、值也稱為輸入數(shù)據(jù)的數(shù)字指紋(Digital Fingerprint)或消息摘要(Message Digest)等。 Hash函數(shù)具備以下的性質(zhì):1給定輸入數(shù)據(jù),很容易計(jì)算出它的哈希值; 2反過(guò)來(lái),給定哈希值,倒推出輸入數(shù)據(jù)則很難,計(jì)算上不可行。這就是哈希函數(shù)的單向性,在技術(shù)上稱為抗原像攻擊性;,,4、給定哈希值,想要找出能夠產(chǎn)生同樣的哈希值的兩個(gè)不同的輸入數(shù)據(jù),(這種情況稱為碰撞,Collision),這很難,計(jì)算上不可行,在技術(shù)上稱為抗碰撞攻擊性;5、哈希值不表達(dá)任何關(guān)于輸入數(shù)據(jù)的信息。,哈希函數(shù)用于消息驗(yàn)證,,密碼學(xué)中使用的哈希算法都被設(shè)計(jì)為具有某些特殊的性質(zhì): 你無(wú)法反向執(zhí)行哈希算法來(lái)
4、恢復(fù)出哪怕是一點(diǎn)兒最初的明文。 得到的摘要不會(huì)告訴你任何關(guān)于最初明文的信息。 創(chuàng)建發(fā)現(xiàn)哈希值為某個(gè)特定值的明文,這在計(jì)算上是不可行的。 這使得攻擊者無(wú)法在替換文件的同時(shí)確保哈希值仍然匹配。,解答:哈希函數(shù)+數(shù)字簽名,黃裳用哈希算法生成九陰真經(jīng)的摘要,用自己的私鑰加密摘要 把加密的摘要和九陰真經(jīng)(明文)發(fā)給我 用黃裳的公鑰解密摘要,恢復(fù)摘要 對(duì)收到九陰真經(jīng)采用相同算法創(chuàng)建一個(gè)新摘要 比較兩個(gè)摘要: 如果摘要匹配,發(fā)送者是作者;明文在發(fā)送過(guò)程中沒(méi)有被改動(dòng)。,數(shù)字簽名及驗(yàn)證過(guò)程,,發(fā)信者在發(fā)信前使用哈希算法求出待發(fā)信息的數(shù)字摘要,然后用私鑰對(duì)這個(gè)數(shù)字摘要,而不是待發(fā)信息本身,進(jìn)行加密而形成一段信息,
5、這段信息稱為數(shù)字簽名。 發(fā)信時(shí)將這個(gè)數(shù)字簽名信息附在待發(fā)信息后面,一起發(fā)送過(guò)去。 收信者收到信息后,一方面用發(fā)信者的公鑰對(duì)數(shù)字簽名解密,得到一個(gè)摘要H;另一方面把收到的信息本身用哈希算法求出另一個(gè)摘要H,再把H和H相比較,看看兩者是否相同。,,根據(jù)哈希函數(shù)的特性,我們可以讓簡(jiǎn)短的摘要來(lái)“代表”信息本身,如果兩個(gè)摘要H和H完全符合,證明信息是完整的;如果不符合,就說(shuō)明信息被人篡改了。 哈希函數(shù)的安全性直接關(guān)系到數(shù)字簽名的安全性,如果哈希函數(shù)被攻破,數(shù)字簽名的有效性就會(huì)受到質(zhì)疑。 目前,已經(jīng)發(fā)明的Hash函數(shù)有多種,如Snefru、N-Hash、LOKI、AR、GOST、MD、SHA等。它們?cè)跀?shù)學(xué)
6、上實(shí)現(xiàn)的方法各有不同,安全性也各有不同。目前比較常用的Hash函數(shù)是MD5和SHA-1。,,但是,任何一種算法都有其漏洞和局限性。任何一個(gè)哈希函數(shù)都會(huì)存在碰撞即在一些特定情況下,兩個(gè)不同的文件或信息會(huì)指向同一個(gè)數(shù)字摘要。在一般情況下,類似碰撞只能盡可能地減少,而不能完全避免。從理論上講,沒(méi)有攻不破的密碼。隨著密碼科學(xué)的發(fā)展,也許會(huì)找到攻破某一種密碼算法的途徑。,數(shù)字簽名的產(chǎn)生,政治、軍事、外交等領(lǐng)域的文件、命令和條約,商業(yè)中的契約,以及個(gè)人之間的書信等,傳統(tǒng)上都采用手書簽名或印章,以便在法律上能認(rèn)證、核準(zhǔn)和生效。隨著計(jì)算機(jī)通信網(wǎng)的發(fā)展,人們希望通過(guò)電子設(shè)備實(shí)現(xiàn)快速、遠(yuǎn)距離的交易,數(shù)字(或電子)
7、簽名法便應(yīng)運(yùn)而生,并開始用于商業(yè)通信系統(tǒng),如電子郵遞、電子轉(zhuǎn)賬和辦公自動(dòng)化等系統(tǒng)中。,數(shù)字簽名的要求,類似于手書簽名,數(shù)字鑒名也應(yīng)滿足以下要求: (1)收方能夠確認(rèn)或證實(shí)發(fā)方的簽名,但不能偽造。 (2)發(fā)方發(fā)出簽名的消息送收方后,就不能再否認(rèn)他所簽發(fā)的消息: (3)收方對(duì)已收到的簽名消息不能否認(rèn),即有收到認(rèn)證。 (4)第三者可以確認(rèn)收發(fā)雙方之間的消息傳送,但不能偽造這一過(guò)程。,數(shù)字簽名與手書簽名的區(qū)別,數(shù)字簽名與手書簽名的區(qū)別在于,手書簽名是模擬的,且因人而異。數(shù)字簽名是0和1的數(shù)字串,因消息而異。 數(shù)字簽名與消息認(rèn)證的區(qū)別在于,消息認(rèn)證使收方能驗(yàn)證消息發(fā)送者及所發(fā)消息內(nèi)容是否被纂改過(guò)。 當(dāng)收
8、發(fā)者之間沒(méi)有利害沖突時(shí),這對(duì)于防止第三者的破壞來(lái)說(shuō)是足夠了。 但當(dāng)收者和發(fā)者之間有利害沖突時(shí),單純用消息認(rèn)證技術(shù)就無(wú)法解決他們之間的糾紛,此時(shí)須借助滿足前述要求的數(shù)字簽名技術(shù),數(shù)字簽名的分類,數(shù)字簽名有兩種 (1)一種是對(duì)整個(gè)消息的簽名 (2)一種是對(duì)壓縮消息的簽名 它們都是附加在被簽名消息之后或某一特定位置上的一段簽名圖樣。,數(shù)字簽名的分類,若按明、密文的對(duì)應(yīng)關(guān)系劃分,每一種又可分為兩個(gè)子類 (1)一類是確定性數(shù)字簽名。其明文與密文一一對(duì)應(yīng),它對(duì)一特定消息的簽名不變化(使用簽名者的密鑰簽名),如RSA、ElGamal等簽名。 (2)另一類是隨機(jī)化的或概率式數(shù)字簽名。它對(duì)同一消息的簽名是隨機(jī)變
9、化的,取決于簽名算法中的隨機(jī)參數(shù)和取值。,數(shù)字簽名的使用模式,智慧卡 像信用卡的磁卡,存儲(chǔ)有用戶的數(shù)字簽名信息 密碼式 用戶自己設(shè)定密碼,由特定的設(shè)備寫入計(jì)算機(jī) 生物測(cè)定 以使用者的身體特征為基礎(chǔ),用特殊的設(shè)備對(duì)使用者的指紋、面部、視網(wǎng)膜或眼球進(jìn)行數(shù)字識(shí)別,從而確定對(duì)象是否與原使用者相同。,簽名體制,一個(gè)簽名體制一般含兩個(gè)組成部分即簽名算法和驗(yàn)證算法。 對(duì)M的簽名可簡(jiǎn)記 有時(shí)為了說(shuō)明密鑰k在簽名中的作用,也可以將簽名寫成 對(duì)s的證實(shí)簡(jiǎn)記為Ver(s0)=真,偽=0,1。 簽名算法或簽名密鑰是秘密的,只有簽名人掌握。證實(shí)算法應(yīng)當(dāng)公開,以便于他人進(jìn)行驗(yàn)證。,數(shù)字簽名與加密的區(qū)別,消息簽名與消息加
10、密有所不同,消息加密和解密可能是一次性的,它要求在解密之前是安全的。 而一個(gè)簽名的消息可能作為一個(gè)法律上的文件(如合同等),很可能在對(duì)消息簽署多年之后才驗(yàn)證其簽名,且可能需要多次驗(yàn)征此簽名。 因此,簽名的安全性和防偽造的要求會(huì)更高,且要求證實(shí)速度比簽名速度要快些。特別是聯(lián)機(jī)在線時(shí)進(jìn)行實(shí)時(shí)驗(yàn)證。,使用數(shù)字簽名,隨著計(jì)算機(jī)網(wǎng)絡(luò)的發(fā)展,過(guò)去依賴于手書簽名的各種業(yè)務(wù)都可用這種電子化的數(shù)字簽名代替。 它是實(shí)現(xiàn)電子貿(mào)易,電子支票、電子貨幣、電子出版及知識(shí)產(chǎn)權(quán)保護(hù)等系統(tǒng)安全的重要保證 數(shù)字簽名已經(jīng)并將繼續(xù)對(duì)人們?nèi)绾喂蚕砗吞幚砭W(wǎng)絡(luò)上信息以及事務(wù)處理產(chǎn)生巨大的影響。 為電子形式為文檔附上電子時(shí)間標(biāo)簽。 使用電子
11、匯款系統(tǒng)的人可以利用電子鑒名 數(shù)字簽名的使用已延伸到保護(hù)數(shù)據(jù)庫(kù)的應(yīng)用中,4.2RSA簽名,安全參數(shù):令n=qp,p和q是大素?cái)?shù),選e并計(jì)算出d,使 ,公開n和e,將p、q和d保密。則所有的RSA參數(shù)為 。 數(shù)字簽名:對(duì)消息M屬于Z,定義 對(duì)M的簽名: 簽名驗(yàn)證:對(duì)給定的M,S可按下式驗(yàn)證:設(shè) ,如果M=M,則簽名為真,否則,不接受簽名。,,,,,,4.2RSA簽名,RSA是是完整的加密系統(tǒng),它支持公鑰/私鑰對(duì)的生成、加密以及數(shù)字簽名。 Carol為了機(jī)密消息以發(fā)送給Bob,Bob首先生成一個(gè)密鑰對(duì),并和Carol共享公鑰。 公鑰由兩個(gè)數(shù)字組成:模數(shù)n和公
12、共指數(shù)e。私鑰也由兩個(gè)數(shù)字組成:相同的模數(shù)n和私有指數(shù)d。 通過(guò)隨機(jī)選擇兩個(gè)大的質(zhì)數(shù)p和q,并把他們一起相乘,就可以創(chuàng)建模數(shù)。,4.2RSA簽名,所選擇的指數(shù)e必須與(p-1)和(q-1)互質(zhì)(也就是說(shuō),e與(p-1)和(q-1)這個(gè)數(shù)必須不具有相同的因數(shù)。 質(zhì)數(shù)d必須滿足等式d*emod(p-1)(q-1)=1。 然后,如果Carol的明文是M,那么,他就能夠通過(guò)計(jì)算C=Me mod n把它加密成密文C。 Bob通過(guò)計(jì)算M=Cd mod n就可以恢復(fù)明文。,4.2RSA簽名,第一步Bob選擇大的質(zhì)數(shù)p和q,并使他們相乘,從而得到n; 第二步Bob選擇一個(gè)公共質(zhì)數(shù)e,它與(p-1)(q-1)是
13、互質(zhì)數(shù); 第三步Bob計(jì)算私有質(zhì)數(shù)d=e-1 mod (p-1)(q-1); 第四步Bob與Carol共享公鑰,數(shù)字n和e; 第五步Bob使用C=Me mod n把M加密成C,并把C發(fā)送給Bob; 第六步Bob使用M=Cd mod n把C解密成M,4.2RSA簽名,這里有一個(gè)RSA加密的示例,同樣為了簡(jiǎn)潔起見(jiàn),在這個(gè)例子中使用的數(shù)字都很小。 Bob選擇了質(zhì)數(shù)p=5和q=11,然后把這兩個(gè)數(shù)字相乘,從而得到模數(shù)n=55。 Bob計(jì)算出f(n)=(p-1)*(q-1)=4*10=40 Bob選擇一個(gè)數(shù)字e,e與40是互質(zhì)數(shù)。40的質(zhì)因數(shù)是2、2、2、5和1,所以Bob選擇的私有指數(shù)e=3。 Bob
14、選擇了一個(gè)公共指數(shù)d=3(-1)mod 40。這個(gè)模數(shù)反函數(shù)實(shí)際上是非常困難的,但是對(duì)于所用的這些小數(shù)字,可以看到27*3mod40=81mod40=1。所以d=27。,6.2RSA簽名,現(xiàn)在Bob的公鑰就是數(shù)對(duì)(3,55),其私鑰就是數(shù)對(duì)(27,55)。Bob把自己的公鑰發(fā)送給Carol。 Carol的消息M=25。它把該消息加密成密文C=25的3次冪mod55=15625mod55=5。Carol把結(jié)果發(fā)送給Bob。 Bob使用M=5的27次冪mod55=7450580596923828125mod55=25對(duì)密文進(jìn)行解密,這就是Carol的原始消息。,4.3ElGamal簽名,該體制由T
15、ElGamal在1985年給出。其修正形式已被美國(guó)NIST作為數(shù)字簽名標(biāo)準(zhǔn)(DSS),它是Rabin體制的一種變型。 此體制專門為簽名用而設(shè)計(jì),方案的安全性基于求離散對(duì)數(shù)的困難性。 可以看出,它是一種非確定性的雙鑰體制,即對(duì)同一明文消息,由于隨機(jī)參數(shù)選擇的不同而有不同的簽名。,4.3ElGamal簽名,1.體制參數(shù) P:一個(gè)大素?cái)?shù),可使Zp,中求解離散對(duì)數(shù)為困難問(wèn)題; g:是Zp中乘群Zpn的一個(gè)生成元或本原元素; M消息空間為為Zp*Zp-1; X:用戶密鑰,X屬于Z,公鑰為y=g x mod p 安全參數(shù)為:k=(p,g,x,y),其中p,g,y為公鑰,x為秘密鑰。,4.3ElGamal簽名,2簽名過(guò)程 給定消息M,發(fā)送端用戶進(jìn)行下述工作 (1)選擇秘密隨機(jī)數(shù) k屬于Z; (2)計(jì)算壓縮值H(M),并計(jì)算 (3)將 =(M,r,s)作為簽名,將(M,r,s),,,,6.3ElGamal簽名,3驗(yàn)證過(guò)程 收信人收到(M,r,s),先計(jì)算H(M),并按下式驗(yàn)證簽名 這是因?yàn)? ,由上式有 故有 在此方案中,對(duì)同一消息M,由于隨機(jī)數(shù)K不同而有不同的簽名(M,r,s)。,,,,,6.4盲簽名及其應(yīng)用,6.6.1盲消息簽名 6.6.2盲參數(shù)簽名 6.6.3弱盲簽名 6.4.4強(qiáng)盲簽名,