?。ㄈヽlipper加密芯片
密碼雖然可為私人提供信息保密服務(wù),但是它首先是維護(hù)國家利益的工具。正是基于這個(gè)出發(fā)點(diǎn),考慮到DES算法公開后帶來的種種問題,美國國家保密局(NSA)從1985年起開始著手制定新的商用數(shù)據(jù)加密標(biāo)準(zhǔn),以取代DES。1990年開始試用,1993年正式使用,主要用于通信交換系統(tǒng)中電話、傳真和計(jì)算機(jī)通信信息的安全保護(hù)。
新的數(shù)據(jù)加密標(biāo)準(zhǔn)完全改變了過去的政策,密碼算法不再公開,對(duì)用戶提供加密芯片(clipper)和硬件設(shè)備。新算法的安全性遠(yuǎn)高于DES,其密鑰量比DES多1000多萬倍。據(jù)估算,窮舉破譯至少需要10億年。為確保安全,clipper芯片由一個(gè)公司制造裸片,再由另一公司編程后方可使用。
由于完全是官方的封閉控制,該算法除可提供高強(qiáng)度的密碼報(bào)密外,還可對(duì)保密通信進(jìn)行監(jiān)聽,以防止不法分子利用保密通信進(jìn)行非法活動(dòng),但這種監(jiān)聽是在法律允許的范圍內(nèi)進(jìn)行的。官方控制也成為美國民間反對(duì)該方案的一個(gè)重要原因。
Clipper芯片主要用于商業(yè)活動(dòng)的計(jì)算機(jī)通信網(wǎng)。NSA同時(shí)在著手進(jìn)行政府和軍事通信網(wǎng)中數(shù)據(jù)加密芯片的研究,并作為clipper的換代產(chǎn)品。它除了具有clipper的全部功能外,還將實(shí)現(xiàn)美國數(shù)字簽名標(biāo)準(zhǔn)(DSS)和保密的哈稀函數(shù)標(biāo)準(zhǔn)以及用純噪聲源產(chǎn)生隨機(jī)數(shù)據(jù)的算法等。
(四)公開密鑰密碼體制
傳統(tǒng)的加密方法是加密、解密使用同樣的密鑰,由發(fā)送者和接收者分別保存,在加密和解密時(shí)使用,采用這種方法的主要問題是密鑰的生成、注入、存儲(chǔ)、管理、分發(fā)等很復(fù)雜,特別是隨著用戶的增加,密鑰的需求量成倍增加。在網(wǎng)絡(luò)通信中,大量密鑰的分配是一個(gè)難以解決的問題。
例如,若系統(tǒng)中有n個(gè)用戶,其中每兩個(gè)用戶之間需要建立密碼通信,則系統(tǒng)中每個(gè)用戶須掌握(n-1)/2個(gè)密鑰,而系統(tǒng)中所需的密鑰總數(shù)為n*(n-1)/2 個(gè)。對(duì)10個(gè)用戶的情況,每個(gè)用戶必須有9個(gè)密鑰,系統(tǒng)中密鑰的總數(shù)為45個(gè)。對(duì)100個(gè)用戶來說,每個(gè)用戶必須有99個(gè)密鑰,系統(tǒng)中密鑰的總數(shù)為4950個(gè)。這還僅考慮用戶之間的通信只使用一種會(huì)話密鑰的情況。如此龐大數(shù)量的密鑰生成、管理、分發(fā)確實(shí)是一個(gè)難處理的問題。
本世紀(jì)70年代,美國斯坦福大學(xué)的兩名學(xué)者迪菲和赫爾曼提出了一種新的加密方法--公開密鑰加密隊(duì)PKE方法。與傳統(tǒng)的加密方法不同,該技術(shù)采用兩個(gè)不同的密鑰來對(duì)信息加密和解密,它也稱為"非對(duì)稱式加密方法。每個(gè)用戶有一個(gè)對(duì)外公開的加密算法E和對(duì)外保密的解密算法D,
它們須滿足條件:
(1)D是E的逆,即D[E(X)]=X;
?。?)E和D都容易計(jì)算。
?。?)由E出發(fā)去求解D十分困難。
從上述條件可看出,公開密鑰密碼體制下,加密密鑰不等于解密密鑰。加密密鑰可對(duì)外公開,使任何用戶都可將傳送給此用戶的信息用公開密鑰加密發(fā)送,而該用戶唯一保存的私人密鑰是保密的,也只有它能將密文復(fù)原、解密。雖然解密密鑰理論上可由加密密鑰推算出來,但這種算法設(shè)計(jì)在實(shí)際上是不可能的,或者雖然能夠推算出,但要花費(fèi)很長的時(shí)間而成為不可行的。所以將加密密鑰公開也不會(huì)危害密鑰的安全。
數(shù)學(xué)上的單向陷門函數(shù)的特點(diǎn)是一個(gè)方向求值很容易,但其逆向計(jì)算卻很困難。許多形式為Y=f(x)的函數(shù),對(duì)于給定的自變量x值,很容易計(jì)算出函數(shù)Y的值;而由給定的Y值,在很多情況下依照函數(shù)關(guān)系f(x)計(jì)算x值十分困難。例如,兩個(gè)大素?cái)?shù)p和q相乘得到乘積n比較容易計(jì)算,但從它們的乘積n分解為兩個(gè)大素?cái)?shù)p和q則十分困難。如果n為足夠大,當(dāng)前的算法不可能在有效的時(shí)間內(nèi)實(shí)現(xiàn)。
正是基于這種理論,1978年出現(xiàn)了著名的RSA算法。這種算法為公用網(wǎng)絡(luò)上信息的加密和鑒別提供了一種基本的方法。它通常是先生成一對(duì)RSA 密鑰,其中之一是保密密鑰,由用戶保存;另一個(gè)為公開密鑰,可對(duì)外公開,甚至可在網(wǎng)絡(luò)服務(wù)器中注冊。為提高保密強(qiáng)度,RSA密鑰至少為500位長,一般推薦使用1024位。這就使加密的計(jì)算量很大。為減少計(jì)算量,在傳送信息時(shí),常采用傳統(tǒng)加密方法與公開密鑰加密方法相結(jié)合的方式,即信息采用改進(jìn)的DES或IDEA對(duì)話密鑰加密,然后使用RSA密鑰加密對(duì)話密鑰和信息摘要。對(duì)方收到信息后,用不同的密鑰解密并可核對(duì)信息摘要。
RSA算法的加密密鑰和加密算法分開,使得密鑰分配更為方便。它特別符合計(jì)算機(jī)網(wǎng)絡(luò)環(huán)境。對(duì)于網(wǎng)上的大量用戶,可以將加密密鑰用電話簿的方式印出。如果某用戶想與另一用戶進(jìn)行保密通信,只需從公鑰簿上查出對(duì)方的加密密鑰,用它對(duì)所傳送的信息加密發(fā)出即可。對(duì)方收到信息后,用僅為自己所知的解密密鑰將信息脫密,了解報(bào)文的內(nèi)容。由此可看出,RSA算法解決了大量網(wǎng)絡(luò)用戶密鑰管理的難題。
RSA并不能替代DES,它們的優(yōu)缺點(diǎn)正好互補(bǔ)。 RSA的密鑰很長,加密速度慢,而采用DES,正好彌補(bǔ)了RSA的缺點(diǎn)。即DES用于明文加密,RSA用于DES密鑰的加密。由于DES加密速度快,適合加密較長的報(bào)文;而RSA可解決DES密鑰分配的問題。美國的保密增強(qiáng)郵件(PEM)就是采用了RSA 和DES結(jié)合的方法,目前已成為E-MAIL保密通信標(biāo)準(zhǔn)。
四、局域網(wǎng)通信安全措施
對(duì)于局域網(wǎng)通信,可采用以下兩種具體措施進(jìn)行加密傳輸。這些措施的加、解密功能都可以采用上述算法實(shí)現(xiàn):
?。?)鏈路加密
鏈路加密是傳輸數(shù)據(jù)僅在物理層前的數(shù)據(jù)鏈路層進(jìn)行加密。接收方是傳送路徑上的各臺(tái)節(jié)點(diǎn)機(jī),信息在每臺(tái)節(jié)點(diǎn)機(jī)內(nèi)都要被解密和再加密,依次進(jìn)行,直至到達(dá)目的地。
使用鏈路加密裝置能為某鏈路上的所有報(bào)文提供傳輸服務(wù)。即經(jīng)過一臺(tái)節(jié)點(diǎn)機(jī)的所有網(wǎng)絡(luò)信息傳輸均需加、解密,每一個(gè)經(jīng)過的節(jié)點(diǎn)都必須有密碼裝置,以便解密、加密報(bào)文。如果報(bào)文僅在一部分鏈路上加密而在另一部分鏈路上不加密,則相當(dāng)于未加密,仍然是不安全的。與鏈路加密類似的節(jié)點(diǎn)加密方法,是在節(jié)點(diǎn)處采用一個(gè)與節(jié)點(diǎn)機(jī)相連的密碼裝置(被保護(hù)的外圍設(shè)備),密文在該裝置中被解密并被重新加密,明文不通過節(jié)點(diǎn)機(jī),避免了鏈路加密關(guān)節(jié)點(diǎn)處易受攻擊的缺點(diǎn)。
?。?)端--端加密
端--端加密是為數(shù)據(jù)從一端傳送到另一端提供的加密方式。數(shù)據(jù)在發(fā)送端被加密,在最終目的地(接收端)解密,中間節(jié)點(diǎn)處不以明文的形式出現(xiàn)。
采用端--端加密是在應(yīng)用層完成,即傳輸前的高層中完成。除報(bào)頭外的的報(bào)文均以密文的形式貫穿于全部傳輸過程。只是在發(fā)送端和最終端才有加、解密設(shè)備,而在中間任何節(jié)點(diǎn)報(bào)文均不解密,因此,不需要有密碼設(shè)備。同鏈路加密相比,可減少密碼設(shè)備的數(shù)量。另一方面,信息是由報(bào)頭和報(bào)文組成的,報(bào)文為要傳送的信息,報(bào)頭為路由選擇信息。由于網(wǎng)絡(luò)傳輸中要涉及到路由選擇,在鏈路加密時(shí),報(bào)文和報(bào)頭兩者均須加密。而在端--端加密時(shí),由于通道上的每一個(gè)中間節(jié)點(diǎn)雖不對(duì)報(bào)文解密,但為將報(bào)文傳送到目的地,必須檢查路由選擇信息,因此,只能加密報(bào)文,而不能對(duì)報(bào)頭加密。這樣就容易被某些通信分析發(fā)覺,而從中獲取某些敏感信息。
?。?)加密傳輸方式的比較
數(shù)據(jù)保密變換使數(shù)據(jù)通信更安全,但不能保證在傳輸過程中絕對(duì)不會(huì)泄密。因?yàn)樵趥鬏斶^程中,還有泄密的隱患。
采用鏈路加密方式,從起點(diǎn)到終點(diǎn),要經(jīng)過許多中間節(jié)點(diǎn),在每個(gè)節(jié)點(diǎn)地均要暴露明文(節(jié)點(diǎn)加密方法除外),如果鏈路上的某一節(jié)點(diǎn)安全防護(hù)比較薄弱,那么按照木桶原理(木桶水量是由最低一塊木板決定),雖然采取了加密措施,但整個(gè)鏈路的安全只相當(dāng)于最薄弱的節(jié)點(diǎn)處的安全狀況。
采用端--端加密方式,只是發(fā)送方加密報(bào)文,接收方解密報(bào)文,中間節(jié)點(diǎn)不必加、解密,也就不需要密碼裝置。此外,加密可采用軟件實(shí)現(xiàn),使用起來很方便。在端--端加密方式下,每對(duì)用戶之間都存在一條虛擬的保密信道,每對(duì)用戶應(yīng)共享密鑰(傳統(tǒng)密碼保密體制,非公鑰體制下),所需的密鑰總數(shù)等于用戶對(duì)的數(shù)目。對(duì)于幾個(gè)用戶,若兩兩通信,共需密鑰n*(n-1)/2種,每個(gè)用戶需(n-1)種。這個(gè)數(shù)目將隨網(wǎng)上通信用戶的增加而增加。為安全起見,每隔一段時(shí)間還要更換密鑰,有時(shí)甚至只能使用一次密鑰,密鑰的用量很大。
鏈路加密,每條物理鏈路上,不管用戶多少,可使用一種密鑰。在極限情況下,每個(gè)節(jié)點(diǎn)都與另外一個(gè)單獨(dú)的節(jié)點(diǎn)相連,密鑰的數(shù)目也只是n*(n-1)/2 種。這里n是節(jié)點(diǎn)數(shù)而非用戶數(shù),一個(gè)節(jié)點(diǎn)一般有多個(gè)用戶。
從身份認(rèn)證的角度看,鏈路加密只能認(rèn)證節(jié)點(diǎn),而不是用戶。使用節(jié)點(diǎn)A密鑰的報(bào)文僅保證它來自節(jié)點(diǎn)A。報(bào)文可能來自A的任何用戶,也可能來自另一個(gè)路過節(jié)點(diǎn)A的用戶。因此鏈路加密不能提供用戶鑒別。端--端加密對(duì)用戶是可見的,可以看到加密后的結(jié)果,起點(diǎn)、終點(diǎn)很明確,可以進(jìn)行用戶認(rèn)證。
總之,鏈路加密對(duì)用戶來說比較容易,使用的密鑰較少,而端--端加密比較靈活,用戶可見。對(duì)鏈路加密中各節(jié)點(diǎn)安全狀況不放心的用戶也可使用端--端加密方式。