信息安全——非对称密码体制
經(jīng)典密碼(包括現(xiàn)代對(duì)稱密碼)都建立在基本的替代和置換工具的基礎(chǔ)上。公鑰密碼體制是基于數(shù)學(xué)中的單向陷門(mén)函數(shù)。
公鑰密碼體制采用了兩個(gè)不同的秘鑰這對(duì)在公開(kāi)的網(wǎng)絡(luò)上進(jìn)行保密通信、秘鑰分配、數(shù)字簽名和認(rèn)證有著深遠(yuǎn)的影響。
一 非對(duì)稱密碼體制特性
加密和解密由不同的秘鑰完成。
加密:X->Y:Y=EKU(X)
解密:Y->X:X=DKR(Y)=DKR(EKU(X))
知道加密算法,從加密秘鑰得到解密秘鑰在計(jì)算上是不可行的。
兩個(gè)秘鑰中任何一個(gè)都可以用作加密而另一個(gè)用作解密。
二 非對(duì)稱加密的應(yīng)用范圍
用戶擁有自己的秘鑰對(duì)KU、KR。公鑰KU公開(kāi),私鑰KR保密。
2.1 實(shí)現(xiàn)保密
A->B:Y=EKUb(X) ? ——用B的公鑰加密B:DKRb(Y)=X ? ? ? ? ? ——用B的私鑰解密
2.2 實(shí)現(xiàn)鑒別
A->ALL:Y=DKRa(X) ?——用A的私鑰加密
ALL:EKUa(Y)=X ? ? ? ?——用A的公鑰解密
2.3 鑒別+保密
A->B:Z=EKUb( DKRa(X) ) ? ?——先用a的私鑰加密,再用b的公鑰加密。
B:EKUa(DKRb(Z))=X? ? ? ? ? ? ? ——先用b的私鑰解密,再用a的公鑰解密。
總結(jié):要實(shí)現(xiàn)保密,則必須用b的私鑰才能解密;要實(shí)現(xiàn)鑒別,則必須用a的私鑰加密。
三 常見(jiàn)非對(duì)稱加密算法
數(shù)學(xué)基礎(chǔ):單向陷門(mén)函數(shù)——已知x,易于計(jì)算f(x),已知f(x)卻難以計(jì)算x,然而,一旦給出f(x)和一些秘密信息y(秘密陷門(mén))就很容易計(jì)算x。
計(jì)算f(x)相當(dāng)于加密,利用陷門(mén)y求f(x)中的x則相當(dāng)于解密。
3.1 Diffie Hellman算法
用于秘鑰交換。步驟如下:
(1)n與g為公開(kāi)的兩個(gè)大素?cái)?shù),可事先商定。
(2)雙方各選一個(gè)較大值x和y。
(3)A計(jì)算出g的x次方 mod n,發(fā)給B。
(4)B計(jì)算出g的y次方 mod n,發(fā)給A。
(5)雙方利用以上信息計(jì)算出共享秘鑰。
例子:
(1)Alice選定:n=47,g=3,x=8,計(jì)算出:g的x次方mod n=28 mod 47。所以Alice傳遞給Bob的信息是:{47,3,28}?
(2)Bob選定y=10,計(jì)算出:g的y次方mod n=17 mod 47。所以Bob傳遞給Alice{17}
(3)Alice計(jì)算共享秘鑰:(g的y次方mod n)的y次方=(17的8次方)mod 47=4 mod 47。
(4)Bob計(jì)算共享秘鑰:(g的x次方mod n)的x次方=(28的10次方)mod 47=4 mod 47。
(5)得出共享秘鑰為4。
安全隱患——中間人攻擊
截獲信息將x和y改為z。
3.2 RSA算法
數(shù)學(xué)基礎(chǔ):大整數(shù)因子分解——任何大于1的整數(shù)總可以唯一分解成素因數(shù)乘積的形式。
算法步驟:
(1)選擇一對(duì)不同的素?cái)?shù)p和q,計(jì)算n=pq和f(n)=(p-1)(q-1)。
(2)隨機(jī)找一個(gè)與f(n)互素的數(shù)e,計(jì)算其逆d,即d*e=1 mod f(n)。
(3)公鑰:n,e。
(4)私鑰:n,d。
(5)加密:c=m的e次方 mod n。
(6)解密:m=c的d次方 mod n。
例子:
(1)取兩個(gè)素?cái)?shù):p=11和q=13,n=pq=143,f(n)=(p-1)(q-1)=10*12=120。
(2)隨機(jī)找一個(gè)與f(n)互素的數(shù)e=7,計(jì)算其逆d=103。
(3)公鑰:{143,7}。
(4)私鑰:{143,103}。
(5)明文m=85,密文c=85的7次方 mod 143=123。
(6)解密:m=123的103次方 mod 143=85。
安全性分析:
RSA秘鑰安全性依賴于p,q。獲取p,q的問(wèn)題為數(shù)學(xué)上的大數(shù)分解。就目前計(jì)算機(jī)水平而言,n取1024位是安全的,取2048位是絕對(duì)安全的。
缺點(diǎn)分析:
(1)速度慢,比DES慢100倍,一般來(lái)說(shuō)只用于少量數(shù)據(jù)加密。
(2)產(chǎn)生秘鑰麻煩,受到素?cái)?shù)產(chǎn)生技術(shù)的限制,難以做到一次一密。
(3)若分組大小為k,n需要滿足:2的k次方<n<2的k+1次方。為了保證安全性,需要使n盡可能大,所以分組長(zhǎng)度也跟著增大,不僅運(yùn)算代價(jià)高,而且不利于數(shù)據(jù)格式的標(biāo)準(zhǔn)化。
備注:基本RSA公鑰密碼存在很多缺陷,實(shí)際中使用其改進(jìn)型,n一般取1024位,e常用3,7,65573等。
3.3 其它常見(jiàn)公鑰體制算法公鑰算法總是要基于一個(gè)數(shù)學(xué)上的難題。
ElGamal算法——美國(guó)數(shù)字簽名標(biāo)準(zhǔn)DSS——數(shù)據(jù)加密,數(shù)字簽名——素域乘法群離散對(duì)數(shù)難題。
橢圓曲線算法(ECC)——數(shù)字簽名(快)——有限域上的橢圓曲線離散對(duì)數(shù)問(wèn)題。
四 各種算法應(yīng)用范圍
RSA::加解密,數(shù)字簽名,秘鑰交換
Dieffie-Hellman:秘鑰交換
DSS:數(shù)字簽名,也可加密?
ECC:數(shù)字簽名
總結(jié)
以上是生活随笔為你收集整理的信息安全——非对称密码体制的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: git速成
- 下一篇: Stealing Harry Potte