第04章公鑰密碼系統(tǒng)_第1頁(yè)
第04章公鑰密碼系統(tǒng)_第2頁(yè)
第04章公鑰密碼系統(tǒng)_第3頁(yè)
第04章公鑰密碼系統(tǒng)_第4頁(yè)
第04章公鑰密碼系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩105頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1公鑰密碼體系第四章主講人:任凱聯(lián)系方式:renkai_jlxy@163.com百度云盤:/s/1dDhjNYL2本章提要4.1公鑰密碼概述4.2RSA密碼系統(tǒng)4.3Diffie-Hellman密鑰交換4.4數(shù)字簽名4.5

數(shù)字簽名的算法4.6PGP3

問(wèn)題1:

甲必須對(duì)文件加密才能保證不被其他人查看其內(nèi)容,那么到底應(yīng)該用什么加密技術(shù),才能使文件傳送既安全又快速呢?答:采用一些成熟的對(duì)稱加密算法,如DES、3DES、IDEA等對(duì)文件加密USBKey的密碼學(xué)原理4USBKey的密碼學(xué)原理

問(wèn)題2:

如果黑客截獲此文件,是否用同一算法就可以解密此文件呢?答:不可以,因?yàn)榧用芎徒饷芫枰?加密算法和對(duì)稱密鑰,加密算法需要用一個(gè)對(duì)稱密鑰來(lái)解密,黑客并不知道此密鑰5USBKey的密碼學(xué)原理

問(wèn)題3:

密鑰用電話通知,電話可能被竊聽(tīng),通過(guò)Internet發(fā)此密鑰給乙,可能被黑客截獲,那么乙怎樣才能安全地得到其密鑰呢?答:方法是用非對(duì)稱密鑰算法加密對(duì)稱密鑰后進(jìn)行傳送。非對(duì)稱加密算法需要兩個(gè)密鑰:公開(kāi)密鑰(PublicKey)和私有密鑰(PrivateKey)。甲乙雙方各有一對(duì)公/私鑰,公鑰可在Internet上傳送,私鑰自己保存。這樣甲就可以用乙的公鑰加密對(duì)稱加密算法中的對(duì)稱密鑰。即使黑客截獲到此密鑰,也會(huì)因?yàn)楹诳筒恢业乃借€,而解不開(kāi)對(duì)稱密鑰,因此也解不開(kāi)密文,只有乙才能解開(kāi)密文6USBKey的密碼學(xué)原理

問(wèn)題

4

:既然甲可以用乙的公鑰加密其對(duì)稱密鑰,為什么不直接加密文件呢?這樣不僅簡(jiǎn)單,而且省去了用對(duì)稱加密算法加密文件的步驟?

答:不可以這么做。因?yàn)榉菍?duì)稱密碼算法有兩個(gè)缺點(diǎn)

:

加密速度慢

,

比對(duì)稱加密算法慢

10

100

,

因此只可用其加密小數(shù)據(jù)

(

如對(duì)稱密鑰

)

,另外加密后會(huì)導(dǎo)致得到的密文變長(zhǎng)。因此一般采用對(duì)稱加密算法加密其文件

,

然后用非對(duì)稱算法加密對(duì)稱算法所用到的對(duì)稱密鑰7USBKey的密碼學(xué)原理故事未完,且聽(tīng)下回分解……8導(dǎo)讀非對(duì)稱密碼系統(tǒng)的解密密鑰與加密密鑰是不同的,一個(gè)稱為公開(kāi)密鑰,另一個(gè)稱為私人密鑰(或秘密密鑰),因此這種密碼體系也稱為公鑰密碼體系公鑰密碼除可用于加密外,還可用于數(shù)字簽名2005年4月1日實(shí)行《中華人民共和國(guó)電子簽名法》91公鑰的起源公鑰密碼體系于1976年由W.Diffie和M.Hellman提出公鑰密碼又叫非對(duì)稱密碼,這種密碼體系采用了一對(duì)不同的密鑰——加密密鑰和解密密鑰這一對(duì)密鑰,一個(gè)可以公開(kāi)(稱之為公鑰),另一個(gè)為用戶專用(私鑰)4.1公鑰密碼概述104.1公鑰密碼概述2數(shù)學(xué)原理陷門單向函數(shù)公鑰密碼系統(tǒng)是基于陷門單向函數(shù)的概念單向函數(shù)是易于計(jì)算但求逆困難的函數(shù)而陷門單向函數(shù)是在不知道陷門信息情況下求逆困難,而在知道陷門信息時(shí)易于求逆的函數(shù)113公開(kāi)密鑰算法的特點(diǎn)(1)發(fā)送者用加密密鑰PK(publickey)對(duì)明文X加密后,接收者用解密密鑰SK(securekey)解密,即可恢復(fù)出明文,或?qū)憺椋?/p>

DSK(EPK(X))X

加密和解密的運(yùn)算可以對(duì)調(diào),即EPK(DSK(X))X(2)加密密鑰是公開(kāi)的,但不能用它來(lái)解密,即

DPK(EPK(X))X

(3)在計(jì)算機(jī)上可以容易地產(chǎn)生成對(duì)的PK和SK(4)從已知的PK實(shí)際上不可能推導(dǎo)出SK,即從PK到SK是“計(jì)算上不可行的”(5)加密和解密算法都是公開(kāi)的4.1公鑰密碼概述12(1)通信保密:公鑰加密,私鑰解密,通信雙方不需要交換密鑰就可以實(shí)現(xiàn)保密通信

4公鑰密碼系統(tǒng)用于三個(gè)方面13

(2)數(shù)字簽名:私鑰加密(數(shù)字簽名),公鑰解密(驗(yàn)證簽名),可實(shí)現(xiàn)一個(gè)用戶加密多個(gè)用戶解讀4公鑰密碼系統(tǒng)用于三個(gè)方面14

(3)

密鑰交換實(shí)際應(yīng)用中,考慮效率和安全性兩個(gè)因素,通常用非對(duì)稱密鑰密碼傳遞密鑰,用對(duì)稱密鑰密碼系統(tǒng)實(shí)現(xiàn)保密通信公鑰加密,私鑰解密Diffie-Hellman密鑰交換協(xié)議

4公鑰密碼系統(tǒng)用于三個(gè)方面154.1公鑰密碼概述密鑰個(gè)數(shù)密鑰是否保密算法速度應(yīng)用方面對(duì)稱密鑰1保密置換、替換、移位、壓縮、擴(kuò)展、異或快保密通信非對(duì)稱密鑰2一個(gè)公開(kāi)一個(gè)保密陷門單向函數(shù)慢保密通信數(shù)字簽名密鑰交換對(duì)稱密鑰與非對(duì)稱密鑰的比較:16第一個(gè)較完善的公開(kāi)密鑰算法RSA

RSA密碼系統(tǒng)的安全性基于大數(shù)分解的困難性求一對(duì)大素?cái)?shù)的乘積很容易,但要對(duì)這個(gè)乘積進(jìn)行因式分解則非常困難(求逆)因此,可以把一對(duì)大素?cái)?shù)的乘積公開(kāi)作為公鑰,而把素?cái)?shù)作為私鑰,從而由一個(gè)公開(kāi)密鑰和密文中恢復(fù)出明文的難度等價(jià)于分解兩個(gè)大素?cái)?shù)之積4.2.1RSA算法17公鑰密碼系統(tǒng)一般都涉及數(shù)論的知識(shí),如素?cái)?shù)、歐拉函數(shù)、中國(guó)剩余定理等黃蓉遇上神算子瑛姑,給她出的三道題目中有一題是這樣的:今有物不知其數(shù),三三數(shù)之剩二,五五數(shù)之剩三,七七數(shù)之剩二,問(wèn)物幾何?也就是說(shuō):有一個(gè)未知數(shù),這個(gè)數(shù)除以三余二,除以五余三,除以七余二,問(wèn)這個(gè)數(shù)是多少?intx;for(x=0;x<100;x++){if((x%3==2)&&(x%5==3)&&(x%7==2)){System.out.println("這個(gè)數(shù)字是:"+x);}}

4.2.1RSA算法4.2.1RSA算法小于n且與n互素的正整數(shù)的個(gè)數(shù),記為φ(n),把φ(n)成為歐拉函數(shù)對(duì)于素?cái)?shù)p,每一個(gè)小于p的正整數(shù)皆與p互素,所以φ(p)=p–118194.2.1RSA算法如果p,q為兩個(gè)素?cái)?shù),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歐拉定理:對(duì)于任意互素的整數(shù)a和n,有aφ(n)

≡1modn,這里φ(n)是歐拉函數(shù)20RSA公開(kāi)密鑰密碼體制中每個(gè)參數(shù)的計(jì)算:①計(jì)算n:用戶秘密地選擇兩個(gè)大素?cái)?shù)p和q,計(jì)算出npq②計(jì)算φ(n):φ(n)(p

1)(q

1)③選擇e:從[1,φ(n)1]中選擇一個(gè)與φ(n)互素的數(shù)e作為公開(kāi)的加密指數(shù)④計(jì)算d作為解密指數(shù):用戶計(jì)算出滿足下式的d

ed

1modφ(n)

即:(ed

–1)modφ(n)=0 ⑤得出所需要的公開(kāi)密鑰和秘密密鑰:

公開(kāi)密鑰(即加密密鑰)PK{e,n}

秘密密鑰(即解密密鑰)SKceigsw6p、q、φ(n)和d是秘密的陷門(相互不是獨(dú)立的),不可泄露4.2.1RSA算法21RSA加密消息m時(shí)(這里假設(shè)m是以十進(jìn)制表示的),首先將消息分成大小合適的數(shù)據(jù)分組,然后對(duì)分組分別進(jìn)行加密每個(gè)分組的大小應(yīng)該比n小設(shè)ci為明文分組mi加密后的密文,則加密公式為

ci=mie(modn)解密時(shí),對(duì)每一個(gè)密文分組進(jìn)行如下運(yùn)算:

mi=cid(modn)(encryptiondiscryption)4.2.1RSA算法22選p=5,q=11,則n=pq=55,φ

(n)=(p?1)(q?1)=40隨機(jī)選擇e(與φ(n)互素)設(shè)e=7d要滿足ed

modφ(n)140=5*7+57=1*5+2 5=2*2+12=2*1+0舉例RSA公鑰/私鑰獲取過(guò)程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公開(kāi)密鑰:{7,55}秘密密鑰:{23}課堂練習(xí)在RSA算法中兩個(gè)質(zhì)數(shù)p=17,

q=11,加密密鑰為e=7,計(jì)算密鑰d。n=pq=187,φ(n)=(p?1)(q?1)=160d要滿足ed

modφ(n)1d=232324課堂練習(xí)如果p=5,q=7,e=5,m=2,求密文n=pq=35,c=memodn所以,c=3225課堂練習(xí)假設(shè)需要加密的明文信息為C=16,選擇:e=3,p=5,q=11,試使用RSA算法求明文n=pq=55,p和q是素?cái)?shù)φ(n)=(p?1)(q?1)=40

ed

1modφ(n),e=3,所以d=27m=cdmodn=1627mod55=3626算法分析如果明文mi同n不是互為素?cái)?shù)(m取p或q

),就有可能出現(xiàn)消息暴露情況。一個(gè)明文同n有公約數(shù)的概率不大于1/p+1/q,因此,對(duì)于大的p和q來(lái)說(shuō),這種概率是非常小的。27算法分析(e,n)=(5,35),接收到的密文是c=10,求明文mci=mie(modn)mi=cid(modn)n=pq=35,p和q是素?cái)?shù),所以p=5,q=7φ(n)=(p?1)(q?1)=24

ed

1modφ(n),e=5,所以d=5edmodφ(n)=105mod35=5m=cdmodn284.2.2對(duì)RSA算法的挑戰(zhàn)在1977年Rivest、Shamir及Adleman提出公開(kāi)鑰密碼系統(tǒng)時(shí),他們認(rèn)為每秒鐘百萬(wàn)次運(yùn)算的計(jì)算機(jī)可以在4小時(shí)之內(nèi)因子分解一個(gè)50位的數(shù),但是分解一個(gè)100位的數(shù)要花幾乎一個(gè)世紀(jì),而200位的數(shù)大約要花40億年。甚至考慮到計(jì)算速度可以再提高百萬(wàn)倍(甚至尚未出現(xiàn)),基于200位數(shù)的密碼看來(lái)是十分安全的

為了顯示這一技術(shù)的威力,RSA公司的研究人員用一個(gè)129位的十進(jìn)制數(shù)N和一個(gè)4位數(shù)e對(duì)一個(gè)關(guān)于禿鷹的消息作了編碼。并刊登了那個(gè)密文,同時(shí)給出了N和e。RSA公司還懸賞100美元,獎(jiǎng)給第一個(gè)破譯這密碼的人數(shù)學(xué)史上往往有意外的事發(fā)生。這個(gè)叫陣的RSA-129僅僅在十七年之后就敗下陣來(lái)。一批松散組成的因子分解迷,大約有六百多人,分布在二十幾個(gè)國(guó)家。他們經(jīng)過(guò)八個(gè)月的努力最后于1994年4月為RSA-129找到了64位數(shù)和65位數(shù)兩個(gè)素?cái)?shù)因子29RSA工具使用30RSA工具使用1、在“NumberBase”組合框中選擇進(jìn)制為102、單擊“Start”按鈕,獲取一個(gè)隨機(jī)數(shù)種子3、在“KeySize(Bits)”編輯框中輸入324、單擊“Generate”按鈕生成5、復(fù)制“Prime(P)”編輯框中的內(nèi)容到“PublicExp.(E)”編輯框6、在“NumberBase”組合框中選擇進(jìn)制為167、記錄下“Prime(P)”編輯框中的十六進(jìn)制文本內(nèi)容8、單擊“Start”按鈕9、在“KeySize(Bits)”編輯框中輸入所期望的密鑰位數(shù),從32到4096,位數(shù)越多安全性越高運(yùn)算速度越慢,一般選擇1024位足夠了10、單擊“Generate”按鈕生成11、單擊“Test”按鈕測(cè)試,在“Messagetoencrypt”編輯框中隨意輸入一段文本,單擊“Encrypt”按鈕加密,再單擊“Decrypt”按鈕解密,看解密后的結(jié)果是否和所輸入的一致,如果一致表示所生成的RSA密鑰可用,否則需要重新生成備注:“PrivateExp.(D)”編輯框中的內(nèi)容為私鑰,“PublicExp.(E)”為公鑰,“Modulus(N)”編輯框中的內(nèi)容為公共模數(shù)31補(bǔ)充數(shù)論基礎(chǔ)費(fèi)爾馬定理(歐拉定理推論):設(shè)x和p都是正整數(shù),如果p是素?cái)?shù),且gcd(x,p)=1,則

xp-1≡1modp費(fèi)爾馬小定理:設(shè)x和p都是正整數(shù),如果p是素?cái)?shù),則xp

≡x(modp)。易得,如果p是素?cái)?shù),則x-1modp≡xp-2modp。因?yàn)閤φ(p)

≡1modp,所以x*xφ(p)-1

≡1modp,所以x-1

≡xφ(p)-1modp例如,與30互素的數(shù)構(gòu)成一個(gè)模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補(bǔ)充數(shù)論基礎(chǔ)利用費(fèi)爾馬小定理求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算法是第一個(gè)公開(kāi)密鑰算法,發(fā)明于1976年Diffie-Hellman算法能夠用于密鑰分配,但不能用于加密或解密信息34Diffie-Hellman算法的安全性在于在有限域上計(jì)算離散對(duì)數(shù)非常困難。定義素?cái)?shù)p的本原根(PrimitiveRoot)為一種能生成1~p?1所有數(shù)的一個(gè)數(shù),即如果a為p的本原根,則amodp,a2modp,…,ap?1modp兩兩互不相同,構(gòu)成1~p?1的全體數(shù)的一個(gè)排列。對(duì)于任意數(shù)b及素?cái)?shù)p的本原根a,可以找到一個(gè)惟一的指數(shù)i,滿足:b

=ai

modp,0≤i≤p?1

稱指數(shù)i以a為底模p的b的離散對(duì)數(shù)。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的離散對(duì)數(shù)36

如果Alice和Bob在不安全的信道上交換密鑰,步驟如下:(1)Alice和Bob協(xié)商一個(gè)大素?cái)?shù)p及p的本原根a,a和p可以公開(kāi);(2)Alice秘密產(chǎn)生一個(gè)隨機(jī)數(shù)x,計(jì)算X=axmodp,然后把X發(fā)送給Bob;(3)Bob秘密產(chǎn)生一個(gè)隨機(jī)數(shù)y,計(jì)算Y=aymodp,然后把Y發(fā)送給Alice;(4)Alice計(jì)算k=Yxmodp;(5)Bob計(jì)算k'=Xymodp。

k和k'是恒等的,因?yàn)閗=Yxmodp

=(ay)xmodp

=(ax)ymodp

=Xymodp

=k'4.3.1Diffie-Hellman算法設(shè)a=2,p=11設(shè)x=2,則X=4設(shè)y=3,則Y=8k=82mod11=9k'=43mod11=9錯(cuò)了吧?=(aymodp)x

mod

p

采用了模簡(jiǎn)化運(yùn)算374.3.1Diffie-Hellman算法38Alice和Bob需進(jìn)行密鑰交換,例如:二者協(xié)商后決定采用素?cái)?shù)p=353及其本原根a=3。Alice選擇隨機(jī)數(shù)x=97,計(jì)算X=397mod353=40,并發(fā)送給Bob。Bob選擇隨機(jī)數(shù)y=233,計(jì)算Y=3233mod353=248,并發(fā)送給Alice。Alice計(jì)算k=Yx

modp=24897mod353=160。Bob計(jì)算k'=Xymodp=40233

mod353=160。k和k'即為秘密密鑰。4.3.1Diffie-Hellman算法39課堂練習(xí)設(shè)素?cái)?shù)p=13,本原根a=2,Alice取隨機(jī)數(shù)x=7,Bob取隨機(jī)數(shù)y=4,求秘密密鑰k。X=27mod13=11Y=24mod13=3k=Yxmod13=37mod13=3k’=Xymod13=114mod13=3所以秘密密鑰k為3課堂練習(xí)在Diffie-Hllman方法中,

公共素?cái)?shù)p

=

11,

本原根a=

2(1)

如果用戶A

的公鑰X=

9,

則A

的私鑰x為多少?

(2)

如果用戶B

的公鑰Y

=

3,

則共享密鑰K

為多少?26mod11=9,所以A的私鑰為x=6K=Yxmod11=36mod11=3驗(yàn)證:28mod11=3,所以B的私鑰為y=3K=Xymod11=98mod11=34041Diffie-Hellman密鑰交換容易遭受中間人攻擊:

(1)Alice發(fā)送公開(kāi)值(a、p和X)給Bob,攻擊者Carol截獲這些值并把自己產(chǎn)生的公開(kāi)值發(fā)送給Bob。

(2)Bob發(fā)送公開(kāi)值Y給Alice,Carol截獲它然后把自己的公開(kāi)值發(fā)送給Alice。

(3)Alice和Carol計(jì)算出二人之間的共享密鑰k1。

(4)Bob和Carol計(jì)算出另外一對(duì)共享密鑰k2。4.3.2中間人攻擊42密鑰交換雙方通過(guò)數(shù)字簽名和公鑰證書相互認(rèn)證可以挫敗中間人攻擊。在密鑰交換之前,密鑰交換的雙方Alice和Bob各自擁有公鑰/私鑰對(duì)和公開(kāi)密鑰證書,Alice和Bob簽名算法和驗(yàn)證算法分別為SigA、SigB、VerA、VerB。可信中心TA有一個(gè)簽名方案,簽名算法為SigTA,公開(kāi)的簽名驗(yàn)證算法為VerTA,Alice和Bob各持有一個(gè)證書:C(A)=(ID(A),VerA,SigTA(ID(A),VerA))C(B)=(ID(B),VerB,SigTA(ID(B),VerB))其中ID(A)為用戶身份信息,證書C(A)由TA事先簽發(fā)

4.3.3認(rèn)證的Diffie-Hellman密鑰交換43Alice和Bob產(chǎn)生共享秘密密鑰的過(guò)程:(1)Alice秘密產(chǎn)生一個(gè)隨機(jī)數(shù)x,計(jì)算X=axmodp,將X發(fā)送給Bob;(2)Bob秘密產(chǎn)生一個(gè)隨機(jī)數(shù)y,首先計(jì)算Y=aymodp,然后計(jì)算

k=Xymodp

和yB=SigB(Y,X),最后Bob把(C(B),Y,yB)發(fā)送給Alice;(3)Alice計(jì)算k=Yxmodp,并使用VerB驗(yàn)證yB

,使用VerTA驗(yàn)證C(B);并且計(jì)算yA=SigA(Y,X),并將結(jié)果(C(A),yA)發(fā)給用戶Bob(4)Bob使用VerA

驗(yàn)證yA,使用VerTA驗(yàn)證C(A)。若攻擊者Carol插在用戶Alice和Bob之間,顯然Carol可能截獲Alice發(fā)送的X,并將其替換為X′=ax’modp,然后Carol截獲Bob發(fā)送的Y=aymodp和SigB(Y,X′)。攻擊者Carol有可能將Y替換為Y′=ay’modp,或?qū)igB(Y,X′)替換為SigB(Y′,X),但由于Carol不知道Bob的簽名算法SigB,所以他無(wú)法計(jì)算SigB(Y′,X)。同樣,Carol也無(wú)法知道A的簽名SigA。這樣就達(dá)到了抗擊中間人攻擊的目的。444.3.4三方或多方Diffie-HellmanDiffie-Hellman密鑰交換協(xié)議很容易擴(kuò)展到三方或多方的密鑰交換。下例中,Alice、Bob和Carol一起產(chǎn)生秘密密鑰。設(shè)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網(wǎng)絡(luò)安全的四個(gè)安全要素機(jī)密性攔截通訊是否安全??Claims未發(fā)出未收到抗抵賴是否發(fā)出/收到信息?完整性篡改發(fā)出的信息被篡改過(guò)嗎?真實(shí)性偽造我在與誰(shuí)通訊?/是否有權(quán)?

46USBKey的密碼學(xué)原理

問(wèn)題

5

如果黑客截獲到密文,同樣也截獲到用公鑰加密的對(duì)稱密鑰,由于黑客無(wú)乙的私鑰,解不開(kāi)對(duì)稱密鑰,但如果他用對(duì)稱加密算法加密一份假文件

,

并用乙的公鑰加密一份假文件的對(duì)稱密鑰,并發(fā)給乙,乙會(huì)以為收到的是甲發(fā)送的文件,會(huì)用其私鑰解密假文件

,

并很高興地閱讀其內(nèi)容,但卻不知已經(jīng)被替換。怎么辦

?

答案:數(shù)字簽名。數(shù)字簽名是通過(guò)散列算法

,

MD5

、

SHA-1

等算法從大塊的數(shù)據(jù)中提取一個(gè)摘要。從這個(gè)摘要中不能通過(guò)散列算法恢復(fù)出任何一點(diǎn)原文,但如果原信息受到任何改動(dòng),得到的摘要卻肯定會(huì)有所不同。甲可以對(duì)文件進(jìn)行散列算法得到摘要,并用自己的私鑰加密

,這樣即使黑客截獲也無(wú)用。黑客不會(huì)從摘要內(nèi)獲得任何信息,但乙卻不一樣,他可用甲的公鑰解密,得到其摘要,并對(duì)收到的文件

也進(jìn)行同樣的散列算法,通過(guò)比較其摘要是否一樣

,

就可得知此文件是否被篡改過(guò)

這樣不僅解決了證明發(fā)送人身份的問(wèn)題,同時(shí)還解決了文件是否被篡改問(wèn)題47數(shù)字簽名應(yīng)用48數(shù)字簽名應(yīng)用49數(shù)字簽名應(yīng)用防止冒充網(wǎng)站通訊加密50數(shù)字簽名應(yīng)用51https請(qǐng)求過(guò)程52證書的使用例如,使用Internet進(jìn)行聯(lián)機(jī)銀行業(yè)務(wù)時(shí),知道您的Web瀏覽器正在與銀行的Web服務(wù)器直接和安全地通訊就是很重要的。在發(fā)生安全的交易之前,您的Web瀏覽器必須能夠鑒定Web服務(wù)器的身份。就是說(shuō),進(jìn)行交易之前,Web服務(wù)器必須能夠向您的Web瀏覽器證明它的身份。MicrosoftInternetExplorer使用安全套接字層(SSL)

來(lái)加密消息并在Internet上安全地傳輸它們,而大多數(shù)其他新式Web瀏覽器和Web服務(wù)器也使用該技術(shù)。

53證書的使用當(dāng)您使用啟用SSL的瀏覽器連接到聯(lián)機(jī)銀行的Web服務(wù)器時(shí),如果該服務(wù)器擁有證書頒發(fā)機(jī)構(gòu)(例如Verisign)頒發(fā)的服務(wù)器證書,那么將發(fā)生如下事件:

您使用Web瀏覽器訪問(wèn)銀行的安全聯(lián)機(jī)銀行登錄網(wǎng)頁(yè)。如果使用的是InternetExplorer,一個(gè)鎖形圖標(biāo)將出現(xiàn)在瀏覽器狀態(tài)欄的右下角,以表示瀏覽器連接到的是安全Web站點(diǎn)。其他瀏覽器以其他方式表示安全連接。54證書的使用銀行的Web服務(wù)器將服務(wù)器證書自動(dòng)地發(fā)送到您的Web瀏覽器。

為了驗(yàn)證Web服務(wù)器的身份,您的Web瀏覽器將檢查您計(jì)算機(jī)中的證書存儲(chǔ)區(qū)。如果向銀行頒發(fā)證書的證書頒發(fā)機(jī)構(gòu)是可信任的,則交易可以繼續(xù),并且將把銀行證書存儲(chǔ)在您的證書存儲(chǔ)區(qū)中。

55證書的使用要加密與銀行Web服務(wù)器的所有通訊,您的Web瀏覽器可創(chuàng)建唯一的會(huì)話密鑰。您的Web瀏覽器用銀行Web服務(wù)器證書來(lái)加密該會(huì)話密鑰,以便只有銀行Web服務(wù)器可以讀取您的瀏覽器所發(fā)送的消息。(這些消息中的一部分將包含您的登錄名和密碼以及其他敏感信息,所以該等級(jí)的安全性是必需的。)建立安全會(huì)話,并且在您的Web瀏覽器和銀行的Web服務(wù)器之間以安全方式發(fā)送敏感信息。56證書的使用當(dāng)您將軟件代碼從Internet下載或者購(gòu)買光盤并安裝在計(jì)算機(jī)上時(shí),還可以用證書來(lái)確認(rèn)在這些軟件代碼的真實(shí)性。無(wú)簽名軟件(沒(méi)有有效的軟件發(fā)布商證書的軟件)可以威脅到計(jì)算機(jī)和存儲(chǔ)在計(jì)算機(jī)上的信息。574.4數(shù)

名手寫簽名長(zhǎng)期以來(lái)被用作身份的證明或表示同意文件的內(nèi)容,手寫簽名特點(diǎn):1.簽名是可信的2.簽名不可偽造3.簽名不可重用4.簽名的文件是不可改變的5.簽名是不可抵賴的

:并非保證原文的秘密性584.4數(shù)字簽名用私鑰加密信息,這時(shí)就稱為對(duì)信息進(jìn)行數(shù)字簽名。將密文附在原文后,稱為數(shù)字簽名其他人用相應(yīng)的公鑰去解密密文,將解出的明文與原文相比較,如果相同則驗(yàn)證成功,這稱為驗(yàn)證簽名。594.4.2數(shù)字簽名的方法基本的數(shù)字簽名協(xié)議:1.Alice用她的私鑰對(duì)文件加密,從而對(duì)文件簽名2.Alice將簽名的文件傳給Bob3.Bob用Alice的公鑰解密文件,從而驗(yàn)證簽名這個(gè)協(xié)議沒(méi)有通過(guò)第三方去驗(yàn)證簽名。甚至協(xié)議的雙方也不需要第三方來(lái)解決爭(zhēng)端604.4.2數(shù)字簽名的方法數(shù)字簽名有沒(méi)有滿足手寫簽名的特征1.簽名是可信的:Bob用Alice的公鑰驗(yàn)證信息時(shí),他知道是由Alice簽名的2.簽名是不可偽造的:只有Alice知道她的私鑰3.簽名是不可重用的:簽名是文件的函數(shù),并且不可能轉(zhuǎn)換成另外的文件4.被簽名的文件是不可改變的:如果文件有任何改變,文件就不可能用Alice的公鑰驗(yàn)證成功5.簽名是不可抵賴的:Bob不用Alice的幫助就能驗(yàn)證Alice的簽名614.4.2數(shù)字簽名的方法存在四個(gè)問(wèn)題:Q1:公鑰密碼算法對(duì)長(zhǎng)文件簽名效率太低?A1:只對(duì)文件的散列值簽名。Q2:沒(méi)有實(shí)現(xiàn)多重簽名—多個(gè)人簽?A2:采用單向散列函數(shù)輪流簽名,統(tǒng)一提交Q3:簽名文件沒(méi)有保密功能?(簽名文件只讓Bob解開(kāi))A3:帶加密的數(shù)字簽名(p53)Q4:Bob和Alice聲稱的公鑰與他們的身份是否相同?A4:通過(guò)CA來(lái)解決這個(gè)問(wèn)題(見(jiàn)第七章)62

效率太低怎么辦?

數(shù)字簽名協(xié)議和單向散列函數(shù)一起使用。不對(duì)整個(gè)文件簽名,只對(duì)文件的散列值簽名

1.Alice產(chǎn)生文件的散列值,Alice用她的私鑰對(duì)散列值加密,憑此表示對(duì)文件簽名。

2.Alice將文件和散列簽名送給Bob。

3.Bob用Alice發(fā)送的文件產(chǎn)生文件的散列值,然后用Alice的公鑰對(duì)簽名的散列值解密。

4.Bob解密的散列值與自己產(chǎn)生的散列值相同,簽名就是有效的。這種方法使計(jì)算速度大大地提高,并且兩個(gè)不同的文件有相同的160比特散列值的概率為1/2160。因此,使用單向散列函數(shù)的簽名和文件簽名一樣安全。4.4.2數(shù)字簽名的方法63多重簽名采用單向散列函數(shù):1.Alice對(duì)文件的散列值簽名。2.Bob對(duì)文件的散列值簽名。3.Bob將他的簽名交給Alice。4.Alice把文件、她的簽名和Bob的簽名發(fā)給Carol。5.Carol驗(yàn)證Alice和Bob的簽名。641.Ailce用她的私鑰對(duì)信息簽名:SA(M)2.Alice用Bob的公鑰對(duì)簽名的信息加密,然后送給Bob:EB(SA(M))3.Bob用他的私鑰解密:DB(EB(SA(M)))=SA(M)4.Bob用Alice的公鑰驗(yàn)證并且恢復(fù)出信息:VA(SA(M))=M4.4.3帶加密的數(shù)字簽名簽名文件沒(méi)有保密功能654.4.3帶加密的數(shù)字簽名通過(guò)把公鑰密碼和數(shù)字簽名結(jié)合起來(lái),可把數(shù)字簽名的真實(shí)性和加密的安全性結(jié)合起來(lái)。想象寫的一封信:簽名提供了原作者的證明,而信封提供了秘密性。66數(shù)字簽名過(guò)程一般數(shù)字簽名過(guò)程帶加密的數(shù)字簽名過(guò)程674.5.1數(shù)字簽名算法DSADSA中用到了以下參數(shù):(1)p為L(zhǎng)位長(zhǎng)的素?cái)?shù),其中,L為512~1024之間且是64倍數(shù)的數(shù)。(2)q是160位長(zhǎng)的素?cái)?shù),且為p-1的因子。(3)g=h(p-1)/qmodp,其中,h是滿足1<h<p-1且h(p-1)/qmodp大于1的整數(shù)。(4)x是隨機(jī)產(chǎn)生的大于0而小于q的整數(shù)。(5)y=gxmodp。(6)k是隨機(jī)產(chǎn)生的大于0而小于q的整數(shù)。68p、q、g是公開(kāi)的;x為私鑰,y為公鑰;x和k用于數(shù)字簽名,必須保密;每次簽名都產(chǎn)生一次k。對(duì)消息m簽名:r=(gkmodp)modqs=(k-1(SHA-1(m)+xr))modqr和s就是簽名。驗(yàn)證簽名時(shí),計(jì)算: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數(shù)字簽名算法DSA69DSA工具70

前面提到RSA可以用于數(shù)字簽名。私鑰d,公鑰e和n,則對(duì)消息m簽名有r=sig(m)=(H(m))dmodnH(m)計(jì)算消息m的消息摘要,可由散列函數(shù)SHA?1或MD5得到;r即為對(duì)消息的簽名。驗(yàn)證簽名時(shí),驗(yàn)證:H(m)=remodn

若上式成立,則簽名有效。4.5.2RSA簽名方案7172課堂練習(xí)用戶A需要通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)安全地將一份機(jī)密文件傳送給用戶B,這份機(jī)密文件數(shù)據(jù)量非常大,B希望A今后對(duì)該份機(jī)密文件無(wú)法抵賴論,已知:①A與B共享一對(duì)對(duì)稱密鑰K1;②A有公、私鑰(PKB,PKA,SKA)B擁有公、私鑰(PKA,PAB,SKB);③A與B事先已經(jīng)商定一個(gè)共有哈希函數(shù)要求:選取上述已知條件,設(shè)計(jì)用戶A與用戶B完整傳遞機(jī)密信息的過(guò)程①利用哈希函數(shù)生成消息摘要H(m)保證文件傳輸?shù)耐暾寓诶肁的公鑰對(duì)哈希后的消息進(jìn)行簽名sigPKA(H(m)),以實(shí)現(xiàn)A對(duì)文件的無(wú)法抵賴③利用對(duì)稱密鑰對(duì)明文信息加密,以實(shí)現(xiàn)大文件信息的加密EK1(m+H(m))④A利用A的公鑰對(duì)K1加密,B用A的私鑰解密,保證密鑰傳遞的安全性73課堂練習(xí)下列公鑰密碼分配體制可能受到的攻擊,如何改進(jìn)使該密鑰分配具有保密和認(rèn)證功能①A向B發(fā)送自己產(chǎn)生的公鑰和A的身份;②B收到消息后,產(chǎn)生對(duì)稱密鑰Ks,用公鑰加密后傳送給A;③A用私鑰解密后得到Ks。①中間人攻擊,攻擊者可以截獲用戶A的數(shù)據(jù)冒充A生成公私鑰對(duì),將生成的該公鑰發(fā)送給用戶B,用戶B使用攻擊者的公鑰簽名,發(fā)送給A,攻擊者截獲后用私鑰解密,查看信息②密鑰交換雙方通過(guò)數(shù)字簽名和數(shù)字證書相互認(rèn)證可以挫敗中間人攻擊③需要一個(gè)可信任的第三方CA,它負(fù)責(zé)驗(yàn)證所有人的身份,CA首先認(rèn)真檢查所有人的身份然后給他們頒發(fā)數(shù)字證書,證書包括持有人的信息和他的公鑰,還可以有其他更復(fù)雜的信息,數(shù)字證書不可被篡改744.6.1PGP簡(jiǎn)介電子郵件在互聯(lián)網(wǎng)上傳輸電子郵件就像我們?nèi)粘Mㄟ^(guò)郵局發(fā)明信片一樣,沒(méi)有安全可言。PGP應(yīng)需而生PGP由美國(guó)的PhilipZimmermann(菲爾.齊默爾曼)于1991年夏季發(fā)布1.0版本,PGP最初的設(shè)計(jì)主要是用于郵件加密他的創(chuàng)造性在于把RSA公鑰體系的密鑰分發(fā)便利性和傳統(tǒng)加密體系的高效性結(jié)合起來(lái),并且在數(shù)字簽名和密鑰認(rèn)證管理機(jī)制上也有巧妙的設(shè)計(jì)754.6.1PGP簡(jiǎn)介1992年9月,PGP2.0在歐洲發(fā)布,2.0版本中用國(guó)際數(shù)據(jù)加密算法IDEA(InternationalDataEncryptionAlgorithm)PGP現(xiàn)在已成為世界上使用最為廣泛的加密軟件764.6.1PGP簡(jiǎn)介目前PGP是由許多人開(kāi)發(fā),在國(guó)際互聯(lián)網(wǎng)上廣為傳播的免費(fèi)軟件但由于美國(guó)對(duì)信息加密產(chǎn)品有嚴(yán)格的法律約束,特別是對(duì)向美國(guó)、加拿大之外國(guó)家出售、發(fā)布該類軟件約束的很嚴(yán)格774.6.1PGP簡(jiǎn)介PGP是一種在信息安全傳輸領(lǐng)域首選的加密軟件,如今已經(jīng)發(fā)展到了可以加密整個(gè)硬盤、分區(qū)、文件、文件夾、集成進(jìn)郵件軟件進(jìn)行郵件加密,甚至可以對(duì)ICQ的聊天信息實(shí)時(shí)加密現(xiàn)在該軟件的主要使用對(duì)象為情報(bào)機(jī)構(gòu)、政府機(jī)構(gòu)、信息安全工作者你和對(duì)方只要安裝了PGP,就可利用其ICQ加密組件在你和對(duì)方聊天的同時(shí),加密或解密,和正常使用沒(méi)有什么差別,最大程度的保證了你和對(duì)方的聊天信息不被竊取或監(jiān)視78PGP公/私鑰對(duì)的生成

79PGPDesktop8.1的安裝第1步:雙擊PGP8.exe,進(jìn)入安裝界面80PGPDesktop8.1的安裝

第2步:?jiǎn)螕簟癗ext”按鈕,出現(xiàn)“LicenseAgreement”窗口,單擊“Yes”按鈕,出現(xiàn)“ReadMe”窗口,如下圖所示。81PGPDesktop8.1的安裝第3步:?jiǎn)螕簟癗ext”按鈕,出現(xiàn)“UserType”窗口,若是新用戶,需要?jiǎng)?chuàng)建并設(shè)置一個(gè)新的用戶信息。單擊“Next”按鈕,出現(xiàn)“InstallDirectory”窗口,選擇程序的安裝目錄。82PGPDesktop8.1的安裝

第4步:選擇PGP組件的窗口。單擊“Next”

,出現(xiàn)“StartCopyingFiles”窗口,單擊“Next”

,進(jìn)行安裝。最后再根據(jù)提示重啟系統(tǒng)。83PGPDesktop8.1的安裝84PGPDesktop8.1的安裝

第5步:重啟系統(tǒng)后,雙擊PGP簡(jiǎn)體中文版.exe,PGP中文版安裝密碼是,單擊“確定”按鈕,然后依次按照提示進(jìn)行PGP漢化。85PGPDesktop8.1的安裝86PGPDesktop8.1的安裝87PGPDesktop8.1的安裝第6步:?jiǎn)螕簟巴瓿伞卑粹o后,重啟系統(tǒng)。88PGPDesktop8.1的安裝

第7步:重啟系統(tǒng)后,右鍵單擊任務(wù)欄的小鎖按鈕選擇“許可證”菜單項(xiàng)。出現(xiàn)“PGP許可證授權(quán)”窗口,在對(duì)話框里填入名稱、組織、許可證號(hào)。單擊“手動(dòng)”按鈕后,實(shí)現(xiàn)本地驗(yàn)證。89PGPDesktop8.1的安裝第8步:將下面3行:-BEGINPGPLICENSEAUTHORIZATION-ADIAApAAAJ4gWeOov9Nr/gJ1TaVQz2olNEx1zACggvH4tuOArH1Swb22sB9Nmx7YC6w=-ENDPGPLICENSEAUTHORIZATION-復(fù)制到圖中,單擊“確定”按鈕,出現(xiàn)所示窗口中單擊“確定”按鈕,注冊(cè)成功。90PGPDesktop8.1創(chuàng)建和設(shè)置初始用戶

第1步:選擇“密鑰”→“新建密鑰”,出現(xiàn)如圖所示窗口。單擊“下一步”按鈕,出現(xiàn)如圖所示窗口。91PGPDesktop8.1創(chuàng)建和設(shè)置初始用戶

第2步:在全名處輸入要?jiǎng)?chuàng)建的用戶名,E-mail地址處輸入用戶所對(duì)應(yīng)的電子郵件地址,完成后單擊“下一步”按鈕,出現(xiàn)如圖所示的“分配密碼”窗口。在密碼處輸入長(zhǎng)度必須大于等于8位密碼92PGPDesktop8.1創(chuàng)建和設(shè)置初始用戶

第3步:進(jìn)入密鑰生成進(jìn)程,等待主密鑰和次密鑰生成完畢(當(dāng)前狀態(tài):完成)。單擊“下一步”按鈕,顯示“完成PGP密鑰生成向?qū)А贝翱?,單擊“完成”按鈕,用戶就創(chuàng)建并設(shè)置好了。93PGPDesktop8.1導(dǎo)出并分發(fā)公鑰

右鍵單擊剛才創(chuàng)建的用戶,右鍵菜單中選擇“導(dǎo)出”,在出現(xiàn)的保存對(duì)話框中,確認(rèn)選中“包含6.0公鑰”,可導(dǎo)出ztguang的公鑰,擴(kuò)展名為.asc(test.asc)。94PGPDesktop8.1導(dǎo)入并設(shè)置其他人的公鑰

第1步:導(dǎo)入公鑰。”密鑰”“導(dǎo)入”test.asc,將會(huì)出現(xiàn)選擇公鑰的窗口,在這里可以看到該公鑰的基本屬性,如有效性、大小等。選好一個(gè)公鑰后,單擊“導(dǎo)入”按鈕,即可導(dǎo)入PGP。95PGPDesktop8.1導(dǎo)入并設(shè)置其他人的公鑰

第2步:設(shè)置公鑰屬性。在剛導(dǎo)入的密鑰右鍵單擊test,選擇“密鑰屬性”,可以看到test密鑰的全部信息,比如是否是有效密鑰,是否可信任等。96PGPDesktop8.1導(dǎo)入并設(shè)置其他人的公鑰

密鑰列表中可以看到密鑰(test)的“有效性”顯示為綠色,表示該密鑰有效。右鍵單擊test,選擇“密鑰屬性”,將“不信任的”的滑塊拉動(dòng)到“信任的”,然后單擊“關(guān)閉”,此時(shí)公鑰test被PGP加密系統(tǒng)正式接受,可以使用了。關(guān)閉PGPkeys窗口時(shí),會(huì)出現(xiàn)要求備份的窗口。如果單擊“立即保存?zhèn)浞荨卑粹o,接下來(lái)將會(huì)對(duì)“公鑰環(huán)文件”和“私鑰環(huán)文件”進(jìn)行保存。97PGPDesktop8.1導(dǎo)入并設(shè)置其他人的公鑰

第3步:右鍵單擊test,選擇“簽名”,出現(xiàn)“PGP密鑰簽名”對(duì)話框,如圖所示,單擊“確定”按鈕,會(huì)出現(xiàn)“PGP為選擇的密鑰輸入密碼”對(duì)話框在此輸入的是設(shè)置用戶ztguang時(shí)的密碼,然后單擊“確定”按鈕,即完成簽名操作。98PGPDesktop8.1使用公鑰

溫馨提示

  • 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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論