




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1公鑰密碼體系第四章主講人:任凱聯系方式:renkai_jlxy@163.com百度云盤:/s/1dDhjNYL2本章提要4.1公鑰密碼概述4.2RSA密碼系統4.3Diffie-Hellman密鑰交換4.4數字簽名4.5
數字簽名的算法4.6PGP3
問題1:
甲必須對文件加密才能保證不被其他人查看其內容,那么到底應該用什么加密技術,才能使文件傳送既安全又快速呢?答:采用一些成熟的對稱加密算法,如DES、3DES、IDEA等對文件加密USBKey的密碼學原理4USBKey的密碼學原理
問題2:
如果黑客截獲此文件,是否用同一算法就可以解密此文件呢?答:不可以,因為加密和解密均需要:加密算法和對稱密鑰,加密算法需要用一個對稱密鑰來解密,黑客并不知道此密鑰5USBKey的密碼學原理
問題3:
密鑰用電話通知,電話可能被竊聽,通過Internet發此密鑰給乙,可能被黑客截獲,那么乙怎樣才能安全地得到其密鑰呢?答:方法是用非對稱密鑰算法加密對稱密鑰后進行傳送。非對稱加密算法需要兩個密鑰:公開密鑰(PublicKey)和私有密鑰(PrivateKey)。甲乙雙方各有一對公/私鑰,公鑰可在Internet上傳送,私鑰自己保存。這樣甲就可以用乙的公鑰加密對稱加密算法中的對稱密鑰。即使黑客截獲到此密鑰,也會因為黑客不知乙的私鑰,而解不開對稱密鑰,因此也解不開密文,只有乙才能解開密文6USBKey的密碼學原理
問題
4
:既然甲可以用乙的公鑰加密其對稱密鑰,為什么不直接加密文件呢?這樣不僅簡單,而且省去了用對稱加密算法加密文件的步驟?
答:不可以這么做。因為非對稱密碼算法有兩個缺點
:
加密速度慢
,
比對稱加密算法慢
10
~
100
倍
,
因此只可用其加密小數據
(
如對稱密鑰
)
,另外加密后會導致得到的密文變長。因此一般采用對稱加密算法加密其文件
,
然后用非對稱算法加密對稱算法所用到的對稱密鑰7USBKey的密碼學原理故事未完,且聽下回分解……8導讀非對稱密碼系統的解密密鑰與加密密鑰是不同的,一個稱為公開密鑰,另一個稱為私人密鑰(或秘密密鑰),因此這種密碼體系也稱為公鑰密碼體系公鑰密碼除可用于加密外,還可用于數字簽名2005年4月1日實行《中華人民共和國電子簽名法》91公鑰的起源公鑰密碼體系于1976年由W.Diffie和M.Hellman提出公鑰密碼又叫非對稱密碼,這種密碼體系采用了一對不同的密鑰——加密密鑰和解密密鑰這一對密鑰,一個可以公開(稱之為公鑰),另一個為用戶專用(私鑰)4.1公鑰密碼概述104.1公鑰密碼概述2數學原理陷門單向函數公鑰密碼系統是基于陷門單向函數的概念單向函數是易于計算但求逆困難的函數而陷門單向函數是在不知道陷門信息情況下求逆困難,而在知道陷門信息時易于求逆的函數113公開密鑰算法的特點(1)發送者用加密密鑰PK(publickey)對明文X加密后,接收者用解密密鑰SK(securekey)解密,即可恢復出明文,或寫為:
DSK(EPK(X))X
加密和解密的運算可以對調,即EPK(DSK(X))X(2)加密密鑰是公開的,但不能用它來解密,即
DPK(EPK(X))X
(3)在計算機上可以容易地產生成對的PK和SK(4)從已知的PK實際上不可能推導出SK,即從PK到SK是“計算上不可行的”(5)加密和解密算法都是公開的4.1公鑰密碼概述12(1)通信保密:公鑰加密,私鑰解密,通信雙方不需要交換密鑰就可以實現保密通信
4公鑰密碼系統用于三個方面13
(2)數字簽名:私鑰加密(數字簽名),公鑰解密(驗證簽名),可實現一個用戶加密多個用戶解讀4公鑰密碼系統用于三個方面14
(3)
密鑰交換實際應用中,考慮效率和安全性兩個因素,通常用非對稱密鑰密碼傳遞密鑰,用對稱密鑰密碼系統實現保密通信公鑰加密,私鑰解密Diffie-Hellman密鑰交換協議
4公鑰密碼系統用于三個方面154.1公鑰密碼概述密鑰個數密鑰是否保密算法速度應用方面對稱密鑰1保密置換、替換、移位、壓縮、擴展、異或快保密通信非對稱密鑰2一個公開一個保密陷門單向函數慢保密通信數字簽名密鑰交換對稱密鑰與非對稱密鑰的比較:16第一個較完善的公開密鑰算法RSA
RSA密碼系統的安全性基于大數分解的困難性求一對大素數的乘積很容易,但要對這個乘積進行因式分解則非常困難(求逆)因此,可以把一對大素數的乘積公開作為公鑰,而把素數作為私鑰,從而由一個公開密鑰和密文中恢復出明文的難度等價于分解兩個大素數之積4.2.1RSA算法17公鑰密碼系統一般都涉及數論的知識,如素數、歐拉函數、中國剩余定理等黃蓉遇上神算子瑛姑,給她出的三道題目中有一題是這樣的:今有物不知其數,三三數之剩二,五五數之剩三,七七數之剩二,問物幾何?也就是說:有一個未知數,這個數除以三余二,除以五余三,除以七余二,問這個數是多少?intx;for(x=0;x<100;x++){if((x%3==2)&&(x%5==3)&&(x%7==2)){System.out.println("這個數字是:"+x);}}
4.2.1RSA算法4.2.1RSA算法小于n且與n互素的正整數的個數,記為φ(n),把φ(n)成為歐拉函數對于素數p,每一個小于p的正整數皆與p互素,所以φ(p)=p–118194.2.1RSA算法如果p,q為兩個素數,p≠q,n=pq,
那么φ(n)=φ(pq)=φ(p)*φ(q)=(p-1)(q-1)求φ(30)φ(30)=φ(2)φ(3)φ(5)=(2-1)(3-1)(5-1)=8求φ(70)φ(70)=
φ(2)φ(7)φ(5)=(2-1)(5-1)(7-1)=12歐拉定理:對于任意互素的整數a和n,有aφ(n)
≡1modn,這里φ(n)是歐拉函數20RSA公開密鑰密碼體制中每個參數的計算:①計算n:用戶秘密地選擇兩個大素數p和q,計算出npq②計算φ(n):φ(n)(p
1)(q
1)③選擇e:從[1,φ(n)1]中選擇一個與φ(n)互素的數e作為公開的加密指數④計算d作為解密指數:用戶計算出滿足下式的d
ed
1modφ(n)
即:(ed
–1)modφ(n)=0 ⑤得出所需要的公開密鑰和秘密密鑰:
公開密鑰(即加密密鑰)PK{e,n}
秘密密鑰(即解密密鑰)SKizslsdqp、q、φ(n)和d是秘密的陷門(相互不是獨立的),不可泄露4.2.1RSA算法21RSA加密消息m時(這里假設m是以十進制表示的),首先將消息分成大小合適的數據分組,然后對分組分別進行加密每個分組的大小應該比n小設ci為明文分組mi加密后的密文,則加密公式為
ci=mie(modn)解密時,對每一個密文分組進行如下運算:
mi=cid(modn)(encryptiondiscryption)4.2.1RSA算法22選p=5,q=11,則n=pq=55,φ
(n)=(p?1)(q?1)=40隨機選擇e(與φ(n)互素)設e=7d要滿足ed
modφ(n)140=5*7+57=1*5+2 5=2*2+12=2*1+0舉例RSA公鑰/私鑰獲取過程5=40-5*72=7-1*51=5-2*2
1=5-2*(7-1*5)=3*5–2*7=3*(40–5*7)–2*7=3*40–17*7=(40-17)*7–4*40
所以,d=23ed=7*23=161公開密鑰:{7,55}秘密密鑰:{23}課堂練習在RSA算法中兩個質數p=17,
q=11,加密密鑰為e=7,計算密鑰d。n=pq=187,φ(n)=(p?1)(q?1)=160d要滿足ed
modφ(n)1d=232324課堂練習如果p=5,q=7,e=5,m=2,求密文n=pq=35,c=memodn所以,c=3225課堂練習假設需要加密的明文信息為C=16,選擇:e=3,p=5,q=11,試使用RSA算法求明文n=pq=55,p和q是素數φ(n)=(p?1)(q?1)=40
ed
1modφ(n),e=3,所以d=27m=cdmodn=1627mod55=3626算法分析如果明文mi同n不是互為素數(m取p或q
),就有可能出現消息暴露情況。一個明文同n有公約數的概率不大于1/p+1/q,因此,對于大的p和q來說,這種概率是非常小的。27算法分析(e,n)=(5,35),接收到的密文是c=10,求明文mci=mie(modn)mi=cid(modn)n=pq=35,p和q是素數,所以p=5,q=7φ(n)=(p?1)(q?1)=24
ed
1modφ(n),e=5,所以d=5edmodφ(n)=105mod35=5m=cdmodn284.2.2對RSA算法的挑戰在1977年Rivest、Shamir及Adleman提出公開鑰密碼系統時,他們認為每秒鐘百萬次運算的計算機可以在4小時之內因子分解一個50位的數,但是分解一個100位的數要花幾乎一個世紀,而200位的數大約要花40億年。甚至考慮到計算速度可以再提高百萬倍(甚至尚未出現),基于200位數的密碼看來是十分安全的
為了顯示這一技術的威力,RSA公司的研究人員用一個129位的十進制數N和一個4位數e對一個關于禿鷹的消息作了編碼。并刊登了那個密文,同時給出了N和e。RSA公司還懸賞100美元,獎給第一個破譯這密碼的人數學史上往往有意外的事發生。這個叫陣的RSA-129僅僅在十七年之后就敗下陣來。一批松散組成的因子分解迷,大約有六百多人,分布在二十幾個國家。他們經過八個月的努力最后于1994年4月為RSA-129找到了64位數和65位數兩個素數因子29RSA工具使用30RSA工具使用1、在“NumberBase”組合框中選擇進制為102、單擊“Start”按鈕,獲取一個隨機數種子3、在“KeySize(Bits)”編輯框中輸入324、單擊“Generate”按鈕生成5、復制“Prime(P)”編輯框中的內容到“PublicExp.(E)”編輯框6、在“NumberBase”組合框中選擇進制為167、記錄下“Prime(P)”編輯框中的十六進制文本內容8、單擊“Start”按鈕9、在“KeySize(Bits)”編輯框中輸入所期望的密鑰位數,從32到4096,位數越多安全性越高運算速度越慢,一般選擇1024位足夠了10、單擊“Generate”按鈕生成11、單擊“Test”按鈕測試,在“Messagetoencrypt”編輯框中隨意輸入一段文本,單擊“Encrypt”按鈕加密,再單擊“Decrypt”按鈕解密,看解密后的結果是否和所輸入的一致,如果一致表示所生成的RSA密鑰可用,否則需要重新生成備注:“PrivateExp.(D)”編輯框中的內容為私鑰,“PublicExp.(E)”為公鑰,“Modulus(N)”編輯框中的內容為公共模數31補充數論基礎費爾馬定理(歐拉定理推論):設x和p都是正整數,如果p是素數,且gcd(x,p)=1,則
xp-1≡1modp費爾馬小定理:設x和p都是正整數,如果p是素數,則xp
≡x(modp)。易得,如果p是素數,則x-1modp≡xp-2modp。因為xφ(p)
≡1modp,所以x*xφ(p)-1
≡1modp,所以x-1
≡xφ(p)-1modp例如,與30互素的數構成一個模30群Z*30={1,7,11,13,17,19,23,29},即|Z*30|=φ(30)=8φ(30)=φ(5)*φ(2)*φ(3)=4*1*2=8求7模30的逆元:7-1
≡7φ(30)-1mod30=77mod30=1332補充數論基礎利用費爾馬小定理求7模96的乘法逆元。x-1
≡xφ(p)-1(modp)7-1
=7φ(96)-1mod96歐拉定理推論:如果n=p^α,則φ(n)=(p-1)p^(α-1)φ(96)=φ(3*25)=φ(3)*(2-1)*25–1=2*24=327-1
=731mod96=55334.3Diffie-Hellman密鑰交換Diffie-Hellman算法是第一個公開密鑰算法,發明于1976年Diffie-Hellman算法能夠用于密鑰分配,但不能用于加密或解密信息34Diffie-Hellman算法的安全性在于在有限域上計算離散對數非常困難。定義素數p的本原根(PrimitiveRoot)為一種能生成1~p?1所有數的一個數,即如果a為p的本原根,則amodp,a2modp,…,ap?1modp兩兩互不相同,構成1~p?1的全體數的一個排列。對于任意數b及素數p的本原根a,可以找到一個惟一的指數i,滿足:b
=ai
modp,0≤i≤p?1
稱指數i以a為底模p的b的離散對數。4.3.1Diffie-Hellman算法354.3.1Diffie-Hellman算法例如p=11,a=221mod11=222mod11=423mod11=824mod11=525mod11=1026mod11=927mod11=728mod11=329mod11=6210mod11=1那么,1,2,……,10稱為以2為底模11的2,4,……,1的離散對數36
如果Alice和Bob在不安全的信道上交換密鑰,步驟如下:(1)Alice和Bob協商一個大素數p及p的本原根a,a和p可以公開;(2)Alice秘密產生一個隨機數x,計算X=axmodp,然后把X發送給Bob;(3)Bob秘密產生一個隨機數y,計算Y=aymodp,然后把Y發送給Alice;(4)Alice計算k=Yxmodp;(5)Bob計算k'=Xymodp。
k和k'是恒等的,因為k=Yxmodp
=(ay)xmodp
=(ax)ymodp
=Xymodp
=k'4.3.1Diffie-Hellman算法設a=2,p=11設x=2,則X=4設y=3,則Y=8k=82mod11=9k'=43mod11=9錯了吧?=(aymodp)x
mod
p
采用了模簡化運算374.3.1Diffie-Hellman算法38Alice和Bob需進行密鑰交換,例如:二者協商后決定采用素數p=353及其本原根a=3。Alice選擇隨機數x=97,計算X=397mod353=40,并發送給Bob。Bob選擇隨機數y=233,計算Y=3233mod353=248,并發送給Alice。Alice計算k=Yx
modp=24897mod353=160。Bob計算k'=Xymodp=40233
mod353=160。k和k'即為秘密密鑰。4.3.1Diffie-Hellman算法39課堂練習設素數p=13,本原根a=2,Alice取隨機數x=7,Bob取隨機數y=4,求秘密密鑰k。X=27mod13=11Y=24mod13=3k=Yxmod13=37mod13=3k’=Xymod13=114mod13=3所以秘密密鑰k為3課堂練習在Diffie-Hllman方法中,
公共素數p
=
11,
本原根a=
2(1)
如果用戶A
的公鑰X=
9,
則A
的私鑰x為多少?
(2)
如果用戶B
的公鑰Y
=
3,
則共享密鑰K
為多少?26mod11=9,所以A的私鑰為x=6K=Yxmod11=36mod11=3驗證:28mod11=3,所以B的私鑰為y=3K=Xymod11=98mod11=34041Diffie-Hellman密鑰交換容易遭受中間人攻擊:
(1)Alice發送公開值(a、p和X)給Bob,攻擊者Carol截獲這些值并把自己產生的公開值發送給Bob。
(2)Bob發送公開值Y給Alice,Carol截獲它然后把自己的公開值發送給Alice。
(3)Alice和Carol計算出二人之間的共享密鑰k1。
(4)Bob和Carol計算出另外一對共享密鑰k2。4.3.2中間人攻擊42密鑰交換雙方通過數字簽名和公鑰證書相互認證可以挫敗中間人攻擊。在密鑰交換之前,密鑰交換的雙方Alice和Bob各自擁有公鑰/私鑰對和公開密鑰證書,Alice和Bob簽名算法和驗證算法分別為SigA、SigB、VerA、VerB??尚胖行腡A有一個簽名方案,簽名算法為SigTA,公開的簽名驗證算法為VerTA,Alice和Bob各持有一個證書:C(A)=(ID(A),VerA,SigTA(ID(A),VerA))C(B)=(ID(B),VerB,SigTA(ID(B),VerB))其中ID(A)為用戶身份信息,證書C(A)由TA事先簽發
4.3.3認證的Diffie-Hellman密鑰交換43Alice和Bob產生共享秘密密鑰的過程:(1)Alice秘密產生一個隨機數x,計算X=axmodp,將X發送給Bob;(2)Bob秘密產生一個隨機數y,首先計算Y=aymodp,然后計算
k=Xymodp
和yB=SigB(Y,X),最后Bob把(C(B),Y,yB)發送給Alice;(3)Alice計算k=Yxmodp,并使用VerB驗證yB
,使用VerTA驗證C(B);并且計算yA=SigA(Y,X),并將結果(C(A),yA)發給用戶Bob(4)Bob使用VerA
驗證yA,使用VerTA驗證C(A)。若攻擊者Carol插在用戶Alice和Bob之間,顯然Carol可能截獲Alice發送的X,并將其替換為X′=ax’modp,然后Carol截獲Bob發送的Y=aymodp和SigB(Y,X′)。攻擊者Carol有可能將Y替換為Y′=ay’modp,或將SigB(Y,X′)替換為SigB(Y′,X),但由于Carol不知道Bob的簽名算法SigB,所以他無法計算SigB(Y′,X)。同樣,Carol也無法知道A的簽名SigA。這樣就達到了抗擊中間人攻擊的目的。444.3.4三方或多方Diffie-HellmanDiffie-Hellman密鑰交換協議很容易擴展到三方或多方的密鑰交換。下例中,Alice、Bob和Carol一起產生秘密密鑰。設p=11,a=2,x=2,y=3,z=4X=22mod11=4Z’=52mod11=3k=42mod11=5Y=23mod11=8X’=43mod11=9k=33mod11=5Z=24mod11=5Y’=84mod11=4k=94mod11=545網絡安全的四個安全要素機密性攔截通訊是否安全??Claims未發出未收到抗抵賴是否發出/收到信息?完整性篡改發出的信息被篡改過嗎?真實性偽造我在與誰通訊?/是否有權?
46USBKey的密碼學原理
問題
5
:
如果黑客截獲到密文,同樣也截獲到用公鑰加密的對稱密鑰,由于黑客無乙的私鑰,解不開對稱密鑰,但如果他用對稱加密算法加密一份假文件
,
并用乙的公鑰加密一份假文件的對稱密鑰,并發給乙,乙會以為收到的是甲發送的文件,會用其私鑰解密假文件
,
并很高興地閱讀其內容,但卻不知已經被替換。怎么辦
?
答案:數字簽名。數字簽名是通過散列算法
,
如
MD5
、
SHA-1
等算法從大塊的數據中提取一個摘要。從這個摘要中不能通過散列算法恢復出任何一點原文,但如果原信息受到任何改動,得到的摘要卻肯定會有所不同。甲可以對文件進行散列算法得到摘要,并用自己的私鑰加密
,這樣即使黑客截獲也無用。黑客不會從摘要內獲得任何信息,但乙卻不一樣,他可用甲的公鑰解密,得到其摘要,并對收到的文件
也進行同樣的散列算法,通過比較其摘要是否一樣
,
就可得知此文件是否被篡改過
這樣不僅解決了證明發送人身份的問題,同時還解決了文件是否被篡改問題47數字簽名應用48數字簽名應用49數字簽名應用防止冒充網站通訊加密50數字簽名應用51https請求過程52證書的使用例如,使用Internet進行聯機銀行業務時,知道您的Web瀏覽器正在與銀行的Web服務器直接和安全地通訊就是很重要的。在發生安全的交易之前,您的Web瀏覽器必須能夠鑒定Web服務器的身份。就是說,進行交易之前,Web服務器必須能夠向您的Web瀏覽器證明它的身份。MicrosoftInternetExplorer使用安全套接字層(SSL)
來加密消息并在Internet上安全地傳輸它們,而大多數其他新式Web瀏覽器和Web服務器也使用該技術。
53證書的使用當您使用啟用SSL的瀏覽器連接到聯機銀行的Web服務器時,如果該服務器擁有證書頒發機構(例如Verisign)頒發的服務器證書,那么將發生如下事件:
您使用Web瀏覽器訪問銀行的安全聯機銀行登錄網頁。如果使用的是InternetExplorer,一個鎖形圖標將出現在瀏覽器狀態欄的右下角,以表示瀏覽器連接到的是安全Web站點。其他瀏覽器以其他方式表示安全連接。54證書的使用銀行的Web服務器將服務器證書自動地發送到您的Web瀏覽器。
為了驗證Web服務器的身份,您的Web瀏覽器將檢查您計算機中的證書存儲區。如果向銀行頒發證書的證書頒發機構是可信任的,則交易可以繼續,并且將把銀行證書存儲在您的證書存儲區中。
55證書的使用要加密與銀行Web服務器的所有通訊,您的Web瀏覽器可創建唯一的會話密鑰。您的Web瀏覽器用銀行Web服務器證書來加密該會話密鑰,以便只有銀行Web服務器可以讀取您的瀏覽器所發送的消息。(這些消息中的一部分將包含您的登錄名和密碼以及其他敏感信息,所以該等級的安全性是必需的。)建立安全會話,并且在您的Web瀏覽器和銀行的Web服務器之間以安全方式發送敏感信息。56證書的使用當您將軟件代碼從Internet下載或者購買光盤并安裝在計算機上時,還可以用證書來確認在這些軟件代碼的真實性。無簽名軟件(沒有有效的軟件發布商證書的軟件)可以威脅到計算機和存儲在計算機上的信息。574.4數
字
簽
名手寫簽名長期以來被用作身份的證明或表示同意文件的內容,手寫簽名特點:1.簽名是可信的2.簽名不可偽造3.簽名不可重用4.簽名的文件是不可改變的5.簽名是不可抵賴的
:并非保證原文的秘密性584.4數字簽名用私鑰加密信息,這時就稱為對信息進行數字簽名。將密文附在原文后,稱為數字簽名其他人用相應的公鑰去解密密文,將解出的明文與原文相比較,如果相同則驗證成功,這稱為驗證簽名。594.4.2數字簽名的方法基本的數字簽名協議:1.Alice用她的私鑰對文件加密,從而對文件簽名2.Alice將簽名的文件傳給Bob3.Bob用Alice的公鑰解密文件,從而驗證簽名這個協議沒有通過第三方去驗證簽名。甚至協議的雙方也不需要第三方來解決爭端604.4.2數字簽名的方法數字簽名有沒有滿足手寫簽名的特征1.簽名是可信的:Bob用Alice的公鑰驗證信息時,他知道是由Alice簽名的2.簽名是不可偽造的:只有Alice知道她的私鑰3.簽名是不可重用的:簽名是文件的函數,并且不可能轉換成另外的文件4.被簽名的文件是不可改變的:如果文件有任何改變,文件就不可能用Alice的公鑰驗證成功5.簽名是不可抵賴的:Bob不用Alice的幫助就能驗證Alice的簽名614.4.2數字簽名的方法存在四個問題:Q1:公鑰密碼算法對長文件簽名效率太低?A1:只對文件的散列值簽名。Q2:沒有實現多重簽名—多個人簽?A2:采用單向散列函數輪流簽名,統一提交Q3:簽名文件沒有保密功能?(簽名文件只讓Bob解開)A3:帶加密的數字簽名(p53)Q4:Bob和Alice聲稱的公鑰與他們的身份是否相同?A4:通過CA來解決這個問題(見第七章)62
效率太低怎么辦?
數字簽名協議和單向散列函數一起使用。不對整個文件簽名,只對文件的散列值簽名
1.Alice產生文件的散列值,Alice用她的私鑰對散列值加密,憑此表示對文件簽名。
2.Alice將文件和散列簽名送給Bob。
3.Bob用Alice發送的文件產生文件的散列值,然后用Alice的公鑰對簽名的散列值解密。
4.Bob解密的散列值與自己產生的散列值相同,簽名就是有效的。這種方法使計算速度大大地提高,并且兩個不同的文件有相同的160比特散列值的概率為1/2160。因此,使用單向散列函數的簽名和文件簽名一樣安全。4.4.2數字簽名的方法63多重簽名采用單向散列函數:1.Alice對文件的散列值簽名。2.Bob對文件的散列值簽名。3.Bob將他的簽名交給Alice。4.Alice把文件、她的簽名和Bob的簽名發給Carol。5.Carol驗證Alice和Bob的簽名。641.Ailce用她的私鑰對信息簽名:SA(M)2.Alice用Bob的公鑰對簽名的信息加密,然后送給Bob:EB(SA(M))3.Bob用他的私鑰解密:DB(EB(SA(M)))=SA(M)4.Bob用Alice的公鑰驗證并且恢復出信息:VA(SA(M))=M4.4.3帶加密的數字簽名簽名文件沒有保密功能654.4.3帶加密的數字簽名通過把公鑰密碼和數字簽名結合起來,可把數字簽名的真實性和加密的安全性結合起來。想象寫的一封信:簽名提供了原作者的證明,而信封提供了秘密性。66數字簽名過程一般數字簽名過程帶加密的數字簽名過程674.5.1數字簽名算法DSADSA中用到了以下參數:(1)p為L位長的素數,其中,L為512~1024之間且是64倍數的數。(2)q是160位長的素數,且為p-1的因子。(3)g=h(p-1)/qmodp,其中,h是滿足1<h<p-1且h(p-1)/qmodp大于1的整數。(4)x是隨機產生的大于0而小于q的整數。(5)y=gxmodp。(6)k是隨機產生的大于0而小于q的整數。68p、q、g是公開的;x為私鑰,y為公鑰;x和k用于數字簽名,必須保密;每次簽名都產生一次k。對消息m簽名:r=(gkmodp)modqs=(k-1(SHA-1(m)+xr))modqr和s就是簽名。驗證簽名時,計算:w=s-1modqu1=(SHA-1(m)×w)modqu2=(rw)modqv=((gu1×yu2)modp)modq=((gSHA-1(m)×w)modq×(gxmodp)(rw)modq
)modp)modq=((g(SHA-1(m)×w)modq×gx(rw)modq
)
modp)modq=((g(SHA-1(m)+xr)w
modq
)modp)modq=((g(SHA-1(m)+xr)s-1modq)modp)modq=(gkmodp)modq=r如果v=r,則簽名有效。
4.5.1數字簽名算法DSA69DSA工具70
前面提到RSA可以用于數字簽名。私鑰d,公鑰e和n,則對消息m簽名有r=sig(m)=(H(m))dmodnH(m)計算消息m的消息摘要,可由散列函數SHA?1或MD5得到;r即為對消息的簽名。驗證簽名時,驗證:H(m)=remodn
若上式成立,則簽名有效。4.5.2RSA簽名方案7172課堂練習用戶A需要通過計算機網絡安全地將一份機密文件傳送給用戶B,這份機密文件數據量非常大,B希望A今后對該份機密文件無法抵賴論,已知:①A與B共享一對對稱密鑰K1;②A有公、私鑰(PKB,PKA,SKA)B擁有公、私鑰(PKA,PAB,SKB);③A與B事先已經商定一個共有哈希函數要求:選取上述已知條件,設計用戶A與用戶B完整傳遞機密信息的過程①利用哈希函數生成消息摘要H(m)保證文件傳輸的完整性②利用A的公鑰對哈希后的消息進行簽名sigPKA(H(m)),以實現A對文件的無法抵賴③利用對稱密鑰對明文信息加密,以實現大文件信息的加密EK1(m+H(m))④A利用A的公鑰對K1加密,B用A的私鑰解密,保證密鑰傳遞的安全性73課堂練習下列公鑰密碼分配體制可能受到的攻擊,如何改進使該密鑰分配具有保密和認證功能①A向B發送自己產生的公鑰和A的身份;②B收到消息后,產生對稱密鑰Ks,用公鑰加密后傳送給A;③A用私鑰解密后得到Ks。①中間人攻擊,攻擊者可以截獲用戶A的數據冒充A生成公私鑰對,將生成的該公鑰發送給用戶B,用戶B使用攻擊者的公鑰簽名,發送給A,攻擊者截獲后用私鑰解密,查看信息②密鑰交換雙方通過數字簽名和數字證書相互認證可以挫敗中間人攻擊③需要一個可信任的第三方CA,它負責驗證所有人的身份,CA首先認真檢查所有人的身份然后給他們頒發數字證書,證書包括持有人的信息和他的公鑰,還可以有其他更復雜的信息,數字證書不可被篡改744.6.1PGP簡介電子郵件在互聯網上傳輸電子郵件就像我們日常通過郵局發明信片一樣,沒有安全可言。PGP應需而生PGP由美國的PhilipZimmermann(菲爾.齊默爾曼)于1991年夏季發布1.0版本,PGP最初的設計主要是用于郵件加密他的創造性在于把RSA公鑰體系的密鑰分發便利性和傳統加密體系的高效性結合起來,并且在數字簽名和密鑰認證管理機制上也有巧妙的設計754.6.1PGP簡介1992年9月,PGP2.0在歐洲發布,2.0版本中用國際數據加密算法IDEA(InternationalDataEncryptionAlgorithm)PGP現在已成為世界上使用最為廣泛的加密軟件764.6.1PGP簡介目前PGP是由許多人開發,在國際互聯網上廣為傳播的免費軟件但由于美國對信息加密產品有嚴格的法律約束,特別是對向美國、加拿大之外國家出售、發布該類軟件約束的很嚴格774.6.1PGP簡介PGP是一種在信息安全傳輸領域首選的加密軟件,如今已經發展到了可以加密整個硬盤、分區、文件、文件夾、集成進郵件軟件進行郵件加密,甚至可以對ICQ的聊天信息實時加密現在該軟件的主要使用對象為情報機構、政府機構、信息安全工作者你和對方只要安裝了PGP,就可利用其ICQ加密組件在你和對方聊天的同時,加密或解密,和正常使用沒有什么差別,最大程度的保證了你和對方的聊天信息不被竊取或監視78PGP公/私鑰對的生成
79PGPDesktop8.1的安裝第1步:雙擊PGP8.exe,進入安裝界面80PGPDesktop8.1的安裝
第2步:單擊“Next”按鈕,出現“LicenseAgreement”窗口,單擊“Yes”按鈕,出現“ReadMe”窗口,如下圖所示。81PGPDesktop8.1的安裝第3步:單擊“Next”按鈕,出現“UserType”窗口,若是新用戶,需要創建并設置一個新的用戶信息。單擊“Next”按鈕,出現“InstallDirectory”窗口,選擇程序的安裝目錄。82PGPDesktop8.1的安裝
第4步:選擇PGP組件的窗口。單擊“Next”
,出現“StartCopyingFiles”窗口,單擊“Next”
,進行安裝。最后再根據提示重啟系統。83PGPDesktop8.1的安裝84PGPDesktop8.1的安裝
第5步:重啟系統后,雙擊PGP簡體中文版.exe,PGP中文版安裝密碼是,單擊“確定”按鈕,然后依次按照提示進行PGP漢化。85PGPDesktop8.1的安裝86PGPDesktop8.1的安裝87PGPDesktop8.1的安裝第6步:單擊“完成”按鈕后,重啟系統。88PGPDesktop8.1的安裝
第7步:重啟系統后,右鍵單擊任務欄的小鎖按鈕選擇“許可證”菜單項。出現“PGP許可證授權”窗口,在對話框里填入名稱、組織、許可證號。單擊“手動”按鈕后,實現本地驗證。89PGPDesktop8.1的安裝第8步:將下面3行:-BEGINPGPLICENSEAUTHORIZATION-ADIAApAAAJ4gWeOov9Nr/gJ1TaVQz2olNEx1zACggvH4tuOArH1Swb22sB9Nmx7YC6w=-ENDPGPLICENSEAUTHORIZATION-復制到圖中,單擊“確定”按鈕,出現所示窗口中單擊“確定”按鈕,注冊成功。90PGPDesktop8.1創建和設置初始用戶
第1步:選擇“密鑰”→“新建密鑰”,出現如圖所示窗口。單擊“下一步”按鈕,出現如圖所示窗口。91PGPDesktop8.1創建和設置初始用戶
第2步:在全名處輸入要創建的用戶名,E-mail地址處輸入用戶所對應的電子郵件地址,完成后單擊“下一步”按鈕,出現如圖所示的“分配密碼”窗口。在密碼處輸入長度必須大于等于8位密碼92PGPDesktop8.1創建和設置初始用戶
第3步:進入密鑰生成進程,等待主密鑰和次密鑰生成完畢(當前狀態:完成)。單擊“下一步”按鈕,顯示“完成PGP密鑰生成向導”窗口,單擊“完成”按鈕,用戶就創建并設置好了。93PGPDesktop8.1導出并分發公鑰
右鍵單擊剛才創建的用戶,右鍵菜單中選擇“導出”,在出現的保存對話框中,確認選中“包含6.0公鑰”,可導出ztguang的公鑰,擴展名為.asc(test.asc)。94PGPDesktop8.1導入并設置其他人的公鑰
第1步:導入公鑰?!泵荑€”“導入”test.asc,將會出現選擇公鑰的窗口,在這里可以看到該公鑰的基本屬性,如有效性、大小等。選好一個公鑰后,單擊“導入”按鈕,即可導入PGP。95PGPDesktop8.1導入并設置其他人的公鑰
第2步:設置公鑰屬性。在剛導入的密鑰右鍵單擊test,選擇“密鑰屬性”,可以看到test密鑰的全部信息,比如是否是有效密鑰,是否可信任等。96PGPDesktop8.1導入并設置其他人的公鑰
密鑰列表中可以看到密鑰(test)的“有效性”顯示為綠色,表示該密鑰有效。右鍵單擊test,選擇“密鑰屬性”,將“不信任的”的滑塊拉動到“信任的”,然后單擊“關閉”,此時公鑰test被PGP加密系統正式接受,可以使用了。關閉PGPkeys窗口時,會出現要求備份的窗口。如果單擊“立即保存備份”按鈕,接下來將會對“公鑰環文件”和“私鑰環文件”進行保存。97PGPDesktop8.1導入并設置其他人的公鑰
第3步:右鍵單擊test,選擇“簽名”,出現“PGP密鑰簽名”對話框,如圖所示,單擊“確定”按鈕,會出現“PGP為選擇的密鑰輸入密碼”對話框在此輸入的是設置用戶ztguang時的密碼,然后單擊“確定”按鈕,即完成簽名操作。98PGPDesktop8.1使用公鑰
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國薄膜涂層行業市場前景預測及投資價值評估分析報告
- 2025年中國薄壁注塑ABS行業市場前景預測及投資價值評估分析報告
- 抖音短視頻合作終止與內容更新協議
- 游艇俱樂部會員專屬保險經紀合同
- 2025年中國鈀金行業市場前景預測及投資價值評估分析報告
- 高效能固態電池電解質大宗采購年度協議
- 旅游交通服務合作經營管理協議
- 教育類音頻內容版權收益分成合同
- 非煤礦山開采工程安全責任承包合同
- 財政風險評估補充協議
- 擔任學生干部證明
- 《國家電網有限公司電力建設安全工作規程第4部分:分布式光伏》知識培訓
- 2024年《13464電腦動畫》自考復習題庫(含答案)
- 【核心素養目標】9.3 一元一次不等式組 教案七年級數學下冊(人教版)
- 保證斷絕關系的保證書
- 選拔卷-:2024年小升初數學模擬卷三(北師大版)A3版
- 快遞云倉合同范本
- 2024年高考語文作文第一輪復習:掌握常用的寫作結構
- DZ∕T 0339-2020 礦床工業指標論證技術要求(正式版)
- MOOC 市場營銷學-西南財經大學 中國大學慕課答案
- 頜下感染的護理查房
評論
0/150
提交評論