版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第3章密碼技術(shù)3.1密碼技術(shù)的基本概念3.2對(duì)稱加密技術(shù)3.3非對(duì)稱加密技術(shù)3.4數(shù)字簽名3.5密鑰管理3.6密碼技術(shù)應(yīng)用實(shí)例3.7小結(jié)習(xí)題3.1密碼技術(shù)的基本概念就信息傳輸而言,在計(jì)算機(jī)通信網(wǎng)絡(luò)應(yīng)用于辦公自動(dòng)化之前,人們一直利用紙等物理文檔手段記錄和傳輸數(shù)據(jù),并且設(shè)計(jì)、制定了詳盡的協(xié)議、制度和機(jī)制,解決在記錄和存儲(chǔ)信息的過程中出現(xiàn)的安全問題。以通過郵政服務(wù)傳遞秘密信件為例,信件的私有性通過為信件加上密封的信封來實(shí)現(xiàn),信件的完整性(不丟失、不被他人截獲)可以通過掛號(hào)信、特快專遞等服務(wù)而實(shí)現(xiàn),但是信封提供的安全保護(hù)十分有限,仍然無(wú)法達(dá)到人們所期望的安全保護(hù)級(jí)別。因此出現(xiàn)了相應(yīng)的法律,規(guī)定任何未授權(quán)拆閱他人信件的行為是犯罪行為,同時(shí)也出現(xiàn)這樣的情況,即如果信件安全級(jí)別很高(比如絕密文件),則需要由專人通過專門的渠道進(jìn)行傳遞。有時(shí)信息的安全性也借助記錄信息的物理媒體來實(shí)現(xiàn),如紙幣通過使用特殊的印墨和特殊制作的材料以防止偽造。總的說來,這些傳統(tǒng)的安全技術(shù)均依賴于物理記錄的手段、存儲(chǔ)介質(zhì)、傳輸方法和法律進(jìn)行約束,實(shí)現(xiàn)安全目標(biāo),而不是依賴于信息本身。隨著計(jì)算機(jī)辦公自動(dòng)化開始普及,信息的存儲(chǔ)手段和發(fā)送方式已經(jīng)發(fā)生了本質(zhì)的變化,信息的形式已經(jīng)電子化。人們利用電磁、光電介質(zhì)存儲(chǔ)信息,通過網(wǎng)絡(luò)設(shè)施傳送這些信息。于是,在信息保護(hù)方面,出現(xiàn)了新的問題,即信息極易被非法復(fù)制、修改和濫用。人們可以毫不費(fèi)力地將一份文件復(fù)制上千份,而且在幾秒鐘之內(nèi)發(fā)送到世界各地,并且每一份文件與原文件可能沒有任何差別。傳統(tǒng)的安全手段在現(xiàn)代信息的生成、存儲(chǔ)和傳輸中迅速地失去其生命力,信息安全領(lǐng)域隨之爆發(fā)了一場(chǎng)技術(shù)革命。以電子方式存儲(chǔ)和傳輸?shù)男畔踩Wo(hù)方式,應(yīng)該是一種獨(dú)立于存儲(chǔ)和傳輸信息的物理媒體的數(shù)字保護(hù)方式,要以信息保護(hù)信息,也就是說,這些方式僅僅依賴于數(shù)字信息本身。我們可以把數(shù)字信息按某種規(guī)則進(jìn)行變換,然后進(jìn)行傳輸,接收方收到變換的信息后再進(jìn)行相應(yīng)的反變換而得知傳遞的信息。這樣,除了通信雙方之外,其他任何人,如果他不知道變換的規(guī)則,即使能截獲傳遞的變換信息,也不知道它的含義,從而達(dá)到用信息保護(hù)信息的目的。在這個(gè)過程中,密碼學(xué)起到了非常重要的作用。密碼學(xué)是與信息的機(jī)密性、數(shù)據(jù)的完整性、身份認(rèn)證和數(shù)據(jù)起源認(rèn)證等信息安全問題相關(guān)的一門數(shù)學(xué)技術(shù)學(xué)科,有著悠久的歷史。早在4000多年前就有埃及人運(yùn)用密碼學(xué)傳遞信息的記錄。20世紀(jì),密碼學(xué)的應(yīng)用和發(fā)展取得了長(zhǎng)足進(jìn)展。特別是在第二次世界大戰(zhàn)中,密碼學(xué)在情報(bào)、命令的傳輸過程中起到了重要的作用。不過,當(dāng)時(shí)密碼學(xué)的研究和應(yīng)用多屬于軍事、外交和政府行為。20世紀(jì)60年代,計(jì)算機(jī)與通信系統(tǒng)的迅猛發(fā)展,為人們提出了新的課題,即如何保護(hù)秘密的數(shù)字信息、如何通過計(jì)算機(jī)和通信網(wǎng)絡(luò)安全地完成各項(xiàng)事務(wù)。正是這種需求,促使密碼技術(shù)得到普遍的應(yīng)用。
20世紀(jì)70年代,IBM公司設(shè)計(jì)出DES私鑰密碼體制,并且在1977年被美國(guó)政府采納為聯(lián)邦信息處理標(biāo)準(zhǔn),成為歷史上最早的私鑰密碼體制。密碼學(xué)發(fā)展史上最為重要的里程碑卻是1976年Diffie和Hellman公鑰密碼學(xué)的思想。他們利用離散對(duì)數(shù)難解這一數(shù)學(xué)問題,構(gòu)造了如何安全交換數(shù)據(jù)以及密鑰的新方法??上М?dāng)時(shí)沒有給出這些方法的具體實(shí)現(xiàn)。1978年,Rivest、Shamir和Aldleman設(shè)計(jì)出第一個(gè)在實(shí)踐中可用的公開密鑰加密和簽名方案,即RSA。這個(gè)方案的安全性基于另一類數(shù)學(xué)難題,即大數(shù)難分解問題。到1985年,ElGamal給出了另一個(gè)極具實(shí)用性的公鑰密碼體制,即ElGamal體制,這種體制的安全性仍然基于離散對(duì)數(shù)問題。入20世紀(jì)90年代,人們對(duì)公鑰密碼體制和私鑰密碼體制提出了新的安全要求。計(jì)算機(jī)處理能力的提高以及傳輸技術(shù)的發(fā)展,使得DES的安全性受到嚴(yán)重的威脅。人們能在20小時(shí)之內(nèi)利用窮舉法破譯56位密鑰的DES加密。因此,美國(guó)政府正在制定一種新型的聯(lián)邦信息處理標(biāo)準(zhǔn)AES,以代替DES。同時(shí),基于安全性和可操作性方面的考慮,人們不斷設(shè)計(jì)新型的公鑰密碼體制。例如,基于橢圓曲線和超橢圓曲線的有理點(diǎn)構(gòu)成的基礎(chǔ)交換群的橢圓密碼公鑰體制,正成為研究的熱門。3.1.1加密與解密
1.加密加密就是對(duì)數(shù)據(jù)進(jìn)行編碼,使其看起來毫無(wú)意義,但同時(shí)仍確保其可恢復(fù)。接收到的加密消息可以被解密,轉(zhuǎn)換成原來可理解的形式。這一概念是密碼學(xué)的基礎(chǔ)。密碼技術(shù)結(jié)合數(shù)學(xué)、計(jì)算機(jī)科學(xué)、電子與通信等諸多學(xué)科,不僅具有保證信息機(jī)密性的信息加密功能,而且具有數(shù)字簽名、身份驗(yàn)證、秘密分存、維護(hù)系統(tǒng)安全等功能。使用密碼技術(shù)不僅可以保證信息的機(jī)密性,而且可以保證信息的完整性和真實(shí)性,防止信息被篡改、偽造和假冒,這里的核心技術(shù)就是加密。一般的加密過程都是根據(jù)一個(gè)規(guī)則或者一個(gè)數(shù)學(xué)算法進(jìn)行,并且使用一個(gè)加密參數(shù),我們把這個(gè)參數(shù)叫做密鑰。換位和置換是兩種主要的加密(編碼)方法,它們是組成最簡(jiǎn)單的密碼的基礎(chǔ)。換位就是將組成信息塊的數(shù)字位進(jìn)行交換,很像那種把組成一個(gè)單詞的字母組成順序打亂的游戲。在換位密碼中,數(shù)據(jù)本身并沒有改變,只是被安排為另一種不同的格式,或者其順序被“打亂”了。例如,把信息塊1234567890按1與3、2與4、5與7、6與8、9與0位互換的規(guī)則進(jìn)行換位編碼,其結(jié)果是3412785609,其形式與原來完全不同。加密的另一種主要形式是置換。它將每一個(gè)字符或數(shù)位替換為其它內(nèi)容。對(duì)文件中的字符或符號(hào)進(jìn)行替換,就能創(chuàng)建一個(gè)置換密碼。事實(shí)上,除了能對(duì)單個(gè)字符進(jìn)行置換以外,還可以對(duì)數(shù)位進(jìn)行置換,甚至可以對(duì)字符塊或組進(jìn)行置換,以獲得編碼信息。有許多種不同的置換密碼。例如,假設(shè)置換規(guī)則是每個(gè)字母都用(26個(gè)字母的自然順序)其前面的第二個(gè)字母置換,如果到了最后那個(gè)字母,則又從頭開始算。按照這個(gè)置換規(guī)則,security被置換為qcaspgrw,該字符串無(wú)任何意義。在現(xiàn)代通信中,為了保護(hù)數(shù)據(jù)在傳遞過程中不被別人竊聽或修改,必須對(duì)數(shù)據(jù)進(jìn)行加密。加密后的數(shù)據(jù)稱為密文,加密前的原始數(shù)據(jù)稱為明文。接收方因?yàn)橛姓_的密鑰,因此可以將密文還原成正確的明文。如果密文被別人竊取了,也會(huì)因?yàn)闆]有密鑰而無(wú)法將之還原成原始未經(jīng)加密的數(shù)據(jù),從而保證了數(shù)據(jù)的安全性??梢哉f加密技術(shù)是計(jì)算機(jī)通信網(wǎng)絡(luò)安全最有效的技術(shù)之一。一個(gè)加密網(wǎng)絡(luò),不但可以防止非授權(quán)用戶的搭線竊聽和入網(wǎng),而且也是對(duì)付惡意軟件的有效方法之一。信息的編碼以及隨后的解碼方法可以很簡(jiǎn)單,也可以很復(fù)雜。要完成這些操作,需要一些加密算法或方法。加密算法可以很簡(jiǎn)單,比如置換字母或字符,也可以非常復(fù)雜,比如使用復(fù)雜的過程將某些數(shù)學(xué)方法結(jié)合起來創(chuàng)建出復(fù)雜的代碼,只能被特別的密鑰或一組密鑰解開。當(dāng)文件中包含敏感或關(guān)系重大的數(shù)據(jù)時(shí),最適合的安全保護(hù)方法就是加密,比如口令文件,必須進(jìn)行加密保護(hù)。在通常情況下,通信網(wǎng)絡(luò)中最重要的問題之一就是對(duì)口令和網(wǎng)絡(luò)上傳輸?shù)男畔⒓用?。網(wǎng)絡(luò)系統(tǒng)的主要敏感信息是有關(guān)網(wǎng)絡(luò)登錄和口令認(rèn)證信息,這些信息經(jīng)常在網(wǎng)絡(luò)上傳輸。未加密的口令會(huì)帶來安全問題,因?yàn)橛腥丝赡軙?huì)用口令探測(cè)和其它形式的偷聽、竊聽設(shè)備,讀取被傳輸?shù)臄?shù)據(jù),并能夠掌握被傳輸?shù)目诹睢L貏e是文件服務(wù)器上的口令文件如果處于未加密的狀態(tài),就會(huì)有人偷竊它,并且用其中的信息訪問不同的系統(tǒng)賬戶,造成對(duì)整個(gè)網(wǎng)絡(luò)系統(tǒng)的安全威脅。有些系統(tǒng)已經(jīng)設(shè)計(jì)成在網(wǎng)絡(luò)上加密傳輸口令的方式,確保了口令的可靠性,真正構(gòu)成了一道安全的防線。隨著技術(shù)的進(jìn)步,加密正逐步被集成到系統(tǒng)和網(wǎng)絡(luò)中,例如正在發(fā)展的下一代網(wǎng)際協(xié)議IPv6就考慮了數(shù)據(jù)包加密傳輸?shù)膯栴}。硬件方面,Intel公司也在研制用于PC機(jī)和服務(wù)器主板的加密協(xié)處理器。
2.解密加密的逆過程稱為解密。加密的作用是為了保護(hù)信息的安全,因此,一段信息經(jīng)過加密保護(hù)后,應(yīng)該能夠恢復(fù)成明文。一般在設(shè)計(jì)加密方法時(shí),同時(shí)要設(shè)計(jì)解密方法,加密與解密是成對(duì)出現(xiàn)的,從算法上來講,解密應(yīng)該是加密的逆運(yùn)算。解密就是將密文恢復(fù)成明文的過程。當(dāng)然,這里所說的解密是一種經(jīng)過授權(quán)的解密,這里的授權(quán)是指經(jīng)過加密方的允許,不是私自進(jìn)行解密,更不能是竊取、截獲密文后所進(jìn)行的解密。要對(duì)一段加密的信息進(jìn)行解密,需要具備兩個(gè)條件,一個(gè)條件是需要知道解密規(guī)則或者算法,另一個(gè)條件是需要知道解密的密鑰。用于公共服務(wù)的加密技術(shù),比如DES、RSA等加密算法,其加密規(guī)則和加密算法、解密規(guī)則和解密算法都是公開的,在這種情況下,解密所需要的條件就是要知道解密密鑰。就加密方式而言,有對(duì)稱密鑰技術(shù)和非對(duì)稱密鑰技術(shù)。對(duì)稱密鑰技術(shù)要求加密密鑰和解密密鑰相同,而非對(duì)稱密鑰技術(shù)的加密密鑰與解密密鑰不相同,并且,加密密鑰和解密密鑰在計(jì)算上是不能相互算出的。
3.密碼破譯未經(jīng)授權(quán)的解密稱為破譯。破譯者不具有解密密鑰,因此,他首先要試圖得到解密密鑰。一個(gè)好的加密算法,破譯者是不能從公開的必要的信息中(比如加密算法、密鑰長(zhǎng)度等)推算出解密密鑰的,就密碼技術(shù)而言,獲取密鑰的唯一有效的方法就是窮舉法。窮舉法是需要付出人力、財(cái)力以及時(shí)間代價(jià)的。密碼學(xué)包括密碼編碼學(xué)和密碼分析學(xué),密碼體制的設(shè)計(jì)是密碼編碼學(xué)的主要內(nèi)容,密碼體制的破譯是密碼分析學(xué)的主要內(nèi)容,密碼編碼技術(shù)和密碼分析技術(shù)是相互依存、互相支持、密不可分的兩個(gè)方面。選擇一個(gè)強(qiáng)壯的加密算法是至關(guān)重要的,而安全系統(tǒng)的結(jié)構(gòu)和算法的實(shí)現(xiàn)以及通信協(xié)議也會(huì)影響到系統(tǒng)的安全性。為了防止密碼被破譯,可采用以下機(jī)制:
(1)強(qiáng)壯的加密算法:一個(gè)好的加密算法往往只有用窮舉法才能得到密鑰,所以只要密鑰足夠長(zhǎng),就會(huì)很安全。建議密鑰至少為64位。
(2)動(dòng)態(tài)會(huì)話密鑰:每次會(huì)話的密鑰不同,即使一次會(huì)話通信被破解,也不會(huì)因本次密鑰被破解而殃及其它通信。
(3)保護(hù)關(guān)鍵密鑰:定期變換加密會(huì)話密鑰的密鑰,因?yàn)檫@些密鑰是用來加密會(huì)話密鑰的,一旦泄漏會(huì)引起災(zāi)難性的后果。
(4)基于密碼技術(shù)的訪問控制是防止數(shù)據(jù)傳輸泄密的主要防護(hù)手段,訪問控制可分為初始保護(hù)和持續(xù)保護(hù)兩類。初始保護(hù)只在入口處檢查訪問控制權(quán)限,一旦被獲準(zhǔn),則此后的一切操作不在安全機(jī)制控制之下。防火墻提供初始保護(hù)。持續(xù)保護(hù)指在網(wǎng)絡(luò)中的入口及數(shù)據(jù)傳輸過程中都受到存取權(quán)限的檢查,這是為了防止監(jiān)聽、重發(fā)和篡改鏈路上的數(shù)據(jù)來竊取對(duì)主機(jī)的訪問控制。在計(jì)算機(jī)通信系統(tǒng)中,阻止黑客的最可靠有效的辦法是設(shè)計(jì)一種難以破譯的網(wǎng)絡(luò)加密軟件。但是,事實(shí)表明,單純的軟件加密是不安全的,在一些特殊的應(yīng)用環(huán)境中,需要軟件加密和硬件保護(hù)同時(shí)進(jìn)行。
4.加密分類信息加密的目的是保護(hù)網(wǎng)內(nèi)的數(shù)據(jù)、文件、口令和控制信息,保護(hù)網(wǎng)上傳輸?shù)臄?shù)據(jù)。信息加密可分為兩種,在傳輸過程中的數(shù)據(jù)加密稱為通信加密,對(duì)存儲(chǔ)數(shù)據(jù)進(jìn)行加密稱為文件加密。通信加密的目的是對(duì)傳輸中的數(shù)據(jù)流加密,以防止通信線路上的竊聽、泄漏、篡改和破壞。如果以加密實(shí)現(xiàn)的通信層次來區(qū)分,加密可以在通信的三個(gè)不同層次來實(shí)現(xiàn),即節(jié)點(diǎn)加密、鏈路加密和端到端加密。節(jié)點(diǎn)加密的目的是對(duì)源節(jié)點(diǎn)到目的節(jié)點(diǎn)之間的傳輸鏈路提供保護(hù);鏈路加密的目的是保護(hù)網(wǎng)絡(luò)節(jié)點(diǎn)之間的鏈路信息安全;端到端加密的目的是對(duì)源端用戶到目的端用戶的數(shù)據(jù)提供保護(hù)。
1)節(jié)點(diǎn)加密從時(shí)間順序來講,節(jié)點(diǎn)加密在信息被傳入實(shí)際通信連接點(diǎn)之前進(jìn)行;從邏輯空間來講,它在第一層、第二層之間進(jìn)行;從實(shí)施對(duì)象來講,它是對(duì)相鄰兩節(jié)點(diǎn)之間傳輸?shù)臄?shù)據(jù)進(jìn)行加密。不過它僅對(duì)報(bào)文加密,而不對(duì)報(bào)頭加密,以便于傳輸路由根據(jù)其報(bào)頭的標(biāo)識(shí)進(jìn)行選擇。一般的節(jié)點(diǎn)加密使用特殊的加密硬件進(jìn)行解密和重加密,而且該硬件通常放置在安全的保險(xiǎn)箱中。
2)鏈路加密鏈路加密在OSI七層參考模型的第二層,即數(shù)據(jù)鏈路層進(jìn)行,是對(duì)相鄰節(jié)點(diǎn)之間的鏈路上所傳輸?shù)臄?shù)據(jù)進(jìn)行加密。鏈路加密側(cè)重于在通信鏈路上,而不考慮信源和信宿,是對(duì)保密信息通過各鏈路采用不同的加密密鑰提供安全保護(hù),即不同節(jié)點(diǎn)對(duì)之間用不同的密碼。鏈路加密是面向節(jié)點(diǎn)的,對(duì)于網(wǎng)絡(luò)高層主體是透明的,它不僅對(duì)數(shù)據(jù)加密,而且還對(duì)高層的協(xié)議信息(地址、檢錯(cuò)、幀頭幀尾)加密,因此數(shù)據(jù)在傳輸中是密文形式,但在中央節(jié)點(diǎn)必須解密得到路由信息。
3)端到端加密端到端加密在OSI七層參考模型的第六層或第七層進(jìn)行,是為用戶之間傳送數(shù)據(jù)而提供的連續(xù)的保護(hù)。信息由發(fā)送端自動(dòng)加密,并用TCP/IP數(shù)據(jù)包封裝,然后作為不可閱讀和不可識(shí)別的數(shù)據(jù)穿過互聯(lián)網(wǎng),這些信息一旦到達(dá)目的地,將自動(dòng)重組、解密,成為可讀數(shù)據(jù)。端到端加密是面向網(wǎng)絡(luò)高層主體的,它不對(duì)下層協(xié)議進(jìn)行信息加密,協(xié)議信息以明文形式傳輸,用戶數(shù)據(jù)在中央節(jié)點(diǎn)不需解密。網(wǎng)絡(luò)本身并不知道正在傳送的數(shù)據(jù)是加密數(shù)據(jù),這對(duì)防止拷貝網(wǎng)絡(luò)軟件和軟件泄漏很有效。而且網(wǎng)絡(luò)上的每個(gè)用戶可以擁有不同的加密密鑰,網(wǎng)絡(luò)本身不需要增添任何專門的加解密設(shè)備,不過每個(gè)系統(tǒng)要具備加解密軟件,其中的加解密運(yùn)算量也相當(dāng)大。在OSI參考模型中,除了會(huì)話層不能實(shí)施加密外,其它各層都可以實(shí)施一定的加密措施,但通常是在最高層上加密,即應(yīng)用層上的每個(gè)應(yīng)用都被密碼編碼進(jìn)行修改,因此能對(duì)每個(gè)應(yīng)用起到保密的作用,從而保護(hù)在應(yīng)用層上的投資。例如在TCP層上實(shí)施加密,就只能對(duì)這層起到保護(hù)作用。不同層次的加密需要不同的加密密鑰,因此密鑰的管理和分發(fā)也是網(wǎng)絡(luò)安全中的重要環(huán)節(jié)。另外,通信數(shù)據(jù)加密所采用的方法不應(yīng)降低數(shù)據(jù)的傳輸速度,通信數(shù)據(jù)解密進(jìn)程應(yīng)當(dāng)能夠校驗(yàn)和修復(fù)數(shù)據(jù)。
5.安全管理在設(shè)計(jì)使用密碼技術(shù)時(shí),除了考慮加密與解密的問題外,還要考慮安全管理、安全協(xié)議設(shè)計(jì)、秘密分存、散列函數(shù)等內(nèi)容。安全管理主要涉及密鑰以及機(jī)密信息的產(chǎn)生、分發(fā)、使用、銷毀等問題。3.1.2加密算法
1.加密算法的概念信息加密過程由形形色色的加密規(guī)則和加密算法來具體實(shí)施,為了敘述方便,我們把加密規(guī)則也抽象成一種算法,這樣,我們可以說,信息加密是通過密鑰使用加密算法實(shí)現(xiàn)的。信息加密是保障信息安全的最基本、最核心的技術(shù)措施和理論基礎(chǔ)。信息加密也是現(xiàn)代密碼學(xué)的主要組成部分。在多數(shù)情況下,信息加密是保證信息機(jī)密性的唯一方法。而加密算法是實(shí)施具體加密的基礎(chǔ),它決定了加密的強(qiáng)度、運(yùn)算量以及實(shí)用性。密碼算法的目的是保護(hù)信息的機(jī)密性、完整性和安全性,簡(jiǎn)單地說就是信息的防偽造與防竊取,這一點(diǎn)在網(wǎng)上付費(fèi)系統(tǒng)中特別有意義。信息論的創(chuàng)始人香農(nóng)可以說是密碼學(xué)的鼻祖,他提出了一些概念和基本理論,論證了只有一種密碼算法是理論上不可解的,那就是OneTimePadding,這種算法要求采用一個(gè)隨機(jī)的二進(jìn)制序列作為密鑰,與待加密的二進(jìn)制序列按位異或,其中密鑰的長(zhǎng)度不小于待加密的二進(jìn)制序列的長(zhǎng)度,而且一個(gè)密鑰只能使用一次。而其它算法都是理論上可解的,如DES算法,其密鑰實(shí)際長(zhǎng)度是56比特,做256次窮舉,就肯定能找到加密使用的密鑰。所以采用的密碼算法只需做到理論上可解,但事實(shí)上不可解即可。當(dāng)一個(gè)密碼算法已知的破解算法的時(shí)間復(fù)雜度是指數(shù)級(jí)時(shí),即稱該算法為事實(shí)上不可解的。從保護(hù)性角度看,密碼算法可分為保密的和公開的兩種。保密的密碼算法要與加密密鑰一樣進(jìn)行秘密保護(hù),除了通信雙方外,不應(yīng)該被第三方所知曉。比如,它可以是通信雙方在進(jìn)行通信前商定的算法,這種密碼算法不能用于公共密碼服務(wù)上,因?yàn)樗鬅o(wú)論是加密方還是解密方,都必須知道而且會(huì)用這種加密算法,這在實(shí)際應(yīng)用中是很不方便的。公開的密碼算法是公眾都可以知道的,它便于使用在計(jì)算機(jī)通信這種開放性的環(huán)境中,因?yàn)樵谶@種環(huán)境中,參與通信的不僅僅是通信雙方,還涉及到中繼、路由等中間環(huán)節(jié),讓每個(gè)環(huán)節(jié)都對(duì)一個(gè)算法進(jìn)行保密是不可行的。另外,一個(gè)算法如果長(zhǎng)時(shí)間由多方重復(fù)使用,總會(huì)有泄密的可能,因此,必須要有公開的密碼算法,而且這種密碼的加密強(qiáng)度不應(yīng)該因?yàn)樗惴ǖ墓_而降低,它的保密強(qiáng)度由密鑰來保證。我們可以把密碼算法看做是一個(gè)復(fù)雜的函數(shù)變換,s=F(m,k),s代表密文,即加密后得到的字符序列,m代表明文,即待加密的字符序列,k表示密鑰,是秘密選定的一個(gè)字符序列。密碼學(xué)的一個(gè)原則是“一切秘密寓于密鑰之中”,這就意味著算法可以公開。當(dāng)加密完成后,可以將密文通過不安全的渠道送給收信人,只有擁有解密密鑰的收信人可以對(duì)密文進(jìn)行解密,即反變換得到明文,而密鑰的傳遞必須通過安全渠道。據(jù)不完全統(tǒng)計(jì),到目前為止,已經(jīng)公開發(fā)表的各種加密算法多達(dá)數(shù)百種。如果按照收發(fā)雙方密鑰是否相同來分類,可以將這些加密算法分為對(duì)稱密鑰算法和非對(duì)稱密鑰算法。具有代表性的密碼算法主要有DES、RSA、IDEA、DSA等。
2.加密算法的實(shí)現(xiàn)
加密算法的實(shí)現(xiàn)可劃分為兩大類,一類是軟件加密,另一類是硬件加密。軟件加密主要是通過算法的計(jì)算機(jī)程序?qū)崿F(xiàn),這種密碼算法的特點(diǎn)是實(shí)現(xiàn)簡(jiǎn)單,成本低,速度比較慢,相對(duì)來說機(jī)密性差。軟件加密的代表是RSA的實(shí)現(xiàn),RSA算法的可變長(zhǎng)關(guān)鍵字需通過軟件的重新編譯來更改,其關(guān)鍵字分配及管理的安全保密是通過關(guān)鍵字管理軟件來實(shí)現(xiàn)的。硬件加密是通過具體的電子線路實(shí)現(xiàn)加密算法,特點(diǎn)是實(shí)現(xiàn)復(fù)雜,成本高,但加密速度比較快,相對(duì)于軟件加密算法,其機(jī)密性更好。硬件加密的代表是DES的硬件實(shí)現(xiàn),DES硬件加密使用專用或機(jī)密加密關(guān)鍵字,符合現(xiàn)行ANSI標(biāo)準(zhǔn)。由于加密算法的高度復(fù)雜性,軟件加密算法與硬件加密算法相比有3方面的弱點(diǎn):軟件加密的復(fù)雜運(yùn)算大大降低了系統(tǒng)的運(yùn)行速度,且可能耗盡路由器的CPU;一般情況下,軟件加密的速度只是硬件加密的速度的十分之一或百分之一;軟件加密比硬件加密的機(jī)密性強(qiáng)度弱很多,比較而言容易被破譯。
3.1.3密碼體制分類按照收發(fā)雙方密鑰是否相同來分類,可以將加密算法分為對(duì)稱密鑰算法和非對(duì)稱密鑰(也叫公鑰)算法。在對(duì)稱密鑰算法中,收信方和發(fā)信方使用相同的密鑰,即加密密鑰和解密密鑰是相同或等價(jià)的。它的優(yōu)點(diǎn)是加密算法比較簡(jiǎn)便、高效,密鑰簡(jiǎn)短,破譯極其困難,但其密鑰必須通過安全的途徑傳送,因此,其密鑰的管理成為影響系統(tǒng)安全的重要因素。比較著名的常用對(duì)稱密碼算法有美國(guó)的DES及其各種變形,比如TripleDES、GDES以及以代換密碼和轉(zhuǎn)輪密碼為代表的古典密碼等。在眾多的常規(guī)密碼中,影響最大的是DES密碼。在對(duì)稱密碼體制中,系統(tǒng)的機(jī)密性主要取決于密鑰的安全性,與算法的安全性無(wú)關(guān),即由密文和加解密算法不可能得到明文。換句話說,算法無(wú)須保密,需要保密的僅是密鑰。根據(jù)對(duì)稱密鑰體制的這種特性,對(duì)稱密鑰加解密算法可通過低費(fèi)用的芯片來實(shí)現(xiàn)。密鑰可由發(fā)信方產(chǎn)生,然后再經(jīng)過一個(gè)安全可靠的途徑(如信使遞送)送至收信方,或由第三方產(chǎn)生后安全可靠地分配給通信雙方。如何產(chǎn)生滿足保密要求的密鑰以及如何將密鑰安全可靠地分配給通信雙方是這類體制設(shè)計(jì)和實(shí)現(xiàn)的主要課題。對(duì)稱體制對(duì)明文消息的加密有兩種方式:一種方式是明文消息按字符(如二進(jìn)制數(shù)字)逐位加密,稱之為流密碼;另一種方式是將明文消息分組(含有多個(gè)字符),按組進(jìn)行加密,稱之為分組密碼。對(duì)稱密碼體制不僅可用于數(shù)據(jù)加密,也可用于消息認(rèn)證。在非對(duì)稱密鑰算法中,收信方和發(fā)信方使用的密鑰互不相同,而且?guī)缀醪豢赡軓募用苊荑€推導(dǎo)出解密密鑰。它的優(yōu)點(diǎn)是可以適應(yīng)網(wǎng)絡(luò)的開放性要求,且密鑰管理問題也較為簡(jiǎn)單,使用它可以方便地實(shí)現(xiàn)數(shù)字簽名和驗(yàn)證。但其算法復(fù)雜,加密數(shù)據(jù)的速率較低。盡管如此,隨著現(xiàn)代電子技術(shù)和密碼技術(shù)的發(fā)展,公鑰密碼算法將是一種很有前途的網(wǎng)絡(luò)安全加密體制。比較著名的公鑰密碼算法有RSA、背包密碼、零知識(shí)證明、橢圓曲線算法等。非對(duì)稱密鑰體制是現(xiàn)代密碼學(xué)最重要的發(fā)明和進(jìn)展。一般理解密碼學(xué)的目標(biāo)是保護(hù)信息傳遞的機(jī)密性,但這僅僅是當(dāng)今密碼學(xué)主題的一個(gè)方面。對(duì)信息發(fā)送人的身份的驗(yàn)證是密碼學(xué)主題的另一方面。公開密鑰體制對(duì)這兩方面的問題都給出了出色的答案,并正在繼續(xù)產(chǎn)生許多新的思想和方案。當(dāng)然在實(shí)際應(yīng)用中人們通常將對(duì)稱密鑰和非對(duì)稱密鑰結(jié)合在一起使用,比如利用DES或者IDEA來加密信息,而采用RSA來傳遞會(huì)話密鑰。非對(duì)稱密鑰體制的每個(gè)用戶都有一對(duì)選定的密鑰:一個(gè)是可以公開的,可以像電話號(hào)碼一樣進(jìn)行注冊(cè)公布;另一個(gè)則是秘密的。因此非對(duì)稱密鑰體制又稱做公鑰體制。非對(duì)稱密鑰體制的主要特點(diǎn)是將加密和解密能力分開,因而可以實(shí)現(xiàn)多個(gè)用戶加密的消息只能由一個(gè)用戶解讀,或由一個(gè)用戶加密的消息而多個(gè)用戶可以解讀。前者可用于在公共網(wǎng)絡(luò)中實(shí)現(xiàn)保密通信,而后者可用于實(shí)現(xiàn)對(duì)用戶的認(rèn)證。3.1.4密碼體制與安全服務(wù)密碼學(xué)主要是為了解決信息安全問題而存在的學(xué)科。總的來說,在信息安全所涉及的諸多方面中,密碼學(xué)主要為存儲(chǔ)和傳輸中的數(shù)字信息提供機(jī)密性、數(shù)據(jù)完整性、認(rèn)證以及不可否認(rèn)性等4個(gè)方面的安全保護(hù)。
1.機(jī)密性機(jī)密性服務(wù)是指只允許特定用戶訪問和閱讀信息,而使任何非授權(quán)用戶對(duì)信息都無(wú)法理解的服務(wù)。在密碼學(xué)中,機(jī)密性通過數(shù)據(jù)加密而實(shí)現(xiàn)。
2.?dāng)?shù)據(jù)完整性數(shù)據(jù)完整性是用于確保數(shù)據(jù)在存儲(chǔ)和傳輸過程中不被未授權(quán)修改的服務(wù)。為提供這種服務(wù),用戶必須有檢測(cè)未授權(quán)修改的能力。未授權(quán)修改包括數(shù)據(jù)的篡改、刪除、插入和重放等。密碼學(xué)通過數(shù)據(jù)加密、數(shù)據(jù)散列或數(shù)字簽名提供這種服務(wù)。
3.認(rèn)證認(rèn)證服務(wù)是一種與數(shù)據(jù)和身份識(shí)別有關(guān)的服務(wù)。認(rèn)證服務(wù)包括對(duì)實(shí)體身份的認(rèn)證和對(duì)數(shù)據(jù)起源的認(rèn)證。對(duì)于任何一次通信,都必須確信通信的兩端是預(yù)期的實(shí)體,這就涉及實(shí)體身份的認(rèn)證。對(duì)于數(shù)據(jù),我們希望每個(gè)數(shù)據(jù)單元都是正確地發(fā)送到或者來源于預(yù)期的實(shí)體,這就是數(shù)據(jù)起源認(rèn)證。數(shù)據(jù)起源認(rèn)證隱含地提供數(shù)據(jù)完整性服務(wù)。密碼學(xué)通過數(shù)據(jù)加密、數(shù)據(jù)散列或數(shù)字簽名提供認(rèn)證服務(wù)。
4.不可否認(rèn)性不可否認(rèn)性服務(wù)是一種用于阻止合法用戶否認(rèn)先前的言論或行為的服務(wù)。密碼學(xué)通過對(duì)稱加密或非對(duì)稱加密,以及數(shù)字簽名等機(jī)制,借助可信任的注冊(cè)機(jī)構(gòu)或證書機(jī)構(gòu)的輔助,提供這種服務(wù)。密碼學(xué)的主要任務(wù)是從理論上和實(shí)踐上闡述和解決這些問題。密碼學(xué)還對(duì)其它欺騙和惡意攻擊行為提供阻止和檢測(cè)手段。3.1.5密鑰密鑰是密碼算法中的可變參數(shù)?,F(xiàn)代密碼學(xué)中有一句名言,即“一切秘密寓于密鑰之中”。這就意味著在理論上,除了當(dāng)時(shí)所用的密鑰需要保密外,密碼算法是可以公開的。也就是說,密碼體制的安全性完全建立在密鑰的安全性上。由此可見保守密鑰秘密的重要性。設(shè)計(jì)一個(gè)安全性很高的密碼算法是很困難的,且在現(xiàn)實(shí)的信息系統(tǒng)運(yùn)行中確保密鑰的安全也非常困難。密碼破譯者經(jīng)常通過獲得密鑰而破譯密碼體制。因此,密鑰管理成了密碼系統(tǒng)中的一個(gè)關(guān)鍵問題。密鑰管理涉及密鑰的各個(gè)方面,包括密鑰的產(chǎn)生、密鑰的分發(fā)、密鑰輸入和輸出、密鑰的更換、密鑰的存儲(chǔ)、密鑰的保存和備份、密鑰的生命周期以及密鑰的銷毀等。有關(guān)密鑰管理的標(biāo)準(zhǔn)由ISO/IEC11770-1密鑰管理的第一部分——密鑰管理框架和ISO/IEC11770-2密鑰管理的第二部分——使用非對(duì)稱技術(shù)的機(jī)制進(jìn)行了規(guī)定。3.1.6通信網(wǎng)絡(luò)安全與保密
1.信息安全與保密以計(jì)算機(jī)和計(jì)算機(jī)網(wǎng)絡(luò)為基礎(chǔ)的信息系統(tǒng)成為當(dāng)前計(jì)算機(jī)應(yīng)用的主要形式,研究信息系統(tǒng)的安全保密就和建立信息系統(tǒng)同樣重要和迫切。信息系統(tǒng)的廣泛建立和規(guī)?;褂?jì)算機(jī)的應(yīng)用形式上升為網(wǎng)絡(luò)形態(tài)。這種網(wǎng)絡(luò)化的信息系統(tǒng)在系統(tǒng)內(nèi)縱向貫通,在系統(tǒng)間橫向滲透,構(gòu)成了集通信、計(jì)算機(jī)和信息處理于一體的龐大復(fù)雜的巨型系統(tǒng),成為現(xiàn)代社會(huì)運(yùn)轉(zhuǎn)不可缺少的基礎(chǔ)。信息系統(tǒng)規(guī)?;l(fā)展勢(shì)頭強(qiáng)勁,這從一個(gè)側(cè)面反映了信息技術(shù)本身發(fā)展迅速,同時(shí)也深刻反映了當(dāng)今社會(huì)對(duì)信息系統(tǒng)的巨大需求,而這種需求在很大程度上依賴于信息系統(tǒng)的安全特性,特別是在當(dāng)今的網(wǎng)絡(luò)時(shí)代,一方面強(qiáng)調(diào)網(wǎng)絡(luò)的開放性,另一方面要求服務(wù)的私有性,這就會(huì)出現(xiàn)這樣的局面,即辦公環(huán)境需要開放性,而辦公過程中的信息需要機(jī)密性,而這里存在一定的矛盾,因?yàn)殚_放的環(huán)境意味著任何人都有可能進(jìn)入,而機(jī)密性的信息意味著只有獲得授權(quán)的人可以閱讀信息。解決這一矛盾的有效手段就是信息的安全保密。信息系統(tǒng)以網(wǎng)絡(luò)化為特點(diǎn),成分多,環(huán)節(jié)多,既要解決系統(tǒng)內(nèi)的異構(gòu)問題,又要滿足元素間的互操作要求,因而計(jì)算機(jī)網(wǎng)絡(luò)安全保密問題不是簡(jiǎn)單的信息安全問題,而是一個(gè)涉及計(jì)算機(jī)、通信、網(wǎng)絡(luò)、信息、系統(tǒng)等諸多方面的信息系統(tǒng)安全問題。信息系統(tǒng)有其自身的特點(diǎn)。它的組成成分復(fù)雜,覆蓋面廣;信息處理既有集中式,又有分布式;構(gòu)成其基礎(chǔ)的計(jì)算機(jī)、操作系統(tǒng)和網(wǎng)絡(luò)既可能是同構(gòu)的,也可能是異構(gòu)的;實(shí)現(xiàn)計(jì)算機(jī)連接的網(wǎng)絡(luò)結(jié)構(gòu)可能是多種拓?fù)浣Y(jié)構(gòu)的混合;所用的網(wǎng)絡(luò)組件繁雜,通信介質(zhì)多種多樣;信息出、入口多,并且分布面廣。因此,信息系統(tǒng)的安全保密具有無(wú)所不包的內(nèi)容廣泛性,它的實(shí)現(xiàn)必然是所有安全保密學(xué)科的綜合運(yùn)用。信息系統(tǒng)安全保密研究的對(duì)象是系統(tǒng),而不僅僅是系統(tǒng)中的某個(gè)或某些元素,即系統(tǒng)內(nèi)所有元素或成分都是研究的內(nèi)容。從系統(tǒng)內(nèi)看,研究?jī)?nèi)容包括通信安全、計(jì)算機(jī)安全、操作安全、信息安全、人事安全、工業(yè)安全、資源保護(hù)和實(shí)體安全;從系統(tǒng)外看(因?yàn)橄到y(tǒng)不是孤立的),研究?jī)?nèi)容還包括管理和法律兩個(gè)方面,它們的綜合構(gòu)成了一個(gè)合理的研究結(jié)構(gòu)和層次。按照系統(tǒng)平衡的觀點(diǎn),信息系統(tǒng)安全保密追求并強(qiáng)調(diào)均勻性,因而各子項(xiàng)的研究深度要相互協(xié)調(diào),不能重此輕彼。這就是系統(tǒng)論的觀點(diǎn)。在信息系統(tǒng)安全保密研究的總的范疇內(nèi),不同領(lǐng)域的信息系統(tǒng)由于環(huán)境、要求的差異,表現(xiàn)為在研究上有所側(cè)重,這是合理且符合邏輯的。隨著信息系統(tǒng)的廣泛建立和各種不同網(wǎng)絡(luò)的互聯(lián)、互通,人們意識(shí)到,不能再?gòu)膯蝹€(gè)安全功能、單個(gè)網(wǎng)絡(luò)來個(gè)別地考慮安全問題,而必須系統(tǒng)地、從體系結(jié)構(gòu)上全面地考慮安全保密問題。因此,安全保密的研究應(yīng)著力于系統(tǒng)這個(gè)層次,把信息系統(tǒng)作為安全保密研究的對(duì)象。當(dāng)前,信息系統(tǒng)正朝著多平臺(tái)、充分集成的方向發(fā)展,分布式將成為最流行的處理模式,而集中分布相結(jié)合的處理方式也將受到歡迎。今后的信息系統(tǒng)將建立在龐大、集成的網(wǎng)絡(luò)基礎(chǔ)上,因而在新的信息系統(tǒng)環(huán)境中,存取點(diǎn)將大大增加,脆弱點(diǎn)將分布更廣。信息系統(tǒng)的這些發(fā)展趨勢(shì)將影響安全保密的研究。信息系統(tǒng)安全保密研究的一種動(dòng)態(tài)是研究分布式環(huán)境及集中分布式相結(jié)合環(huán)境的安全保密策略,它反映了分布式信息系統(tǒng)的社會(huì)需求和傳統(tǒng)的集中式安全保密策略的不適應(yīng)性。第二種動(dòng)態(tài)是為適應(yīng)多平臺(tái)計(jì)算環(huán)境而研究面向整個(gè)網(wǎng)絡(luò)的安全機(jī)制。
80年代的安全保密研究主要集中于標(biāo)準(zhǔn)的一致性和單一平臺(tái)的安全控制,已不能適應(yīng)新一代信息系統(tǒng)對(duì)安全保密的要求。第二種研究動(dòng)態(tài)有可能產(chǎn)生新的安全保密理論,至少會(huì)在方法學(xué)上有所突破。第三個(gè)動(dòng)態(tài)是,在開放系統(tǒng)安全標(biāo)準(zhǔn)的研究和制定上,確定開放系統(tǒng)的安全評(píng)價(jià)標(biāo)準(zhǔn)極為必要,并由于人們對(duì)開放系統(tǒng)的普遍認(rèn)同而顯得迫切。
2.計(jì)算機(jī)安全與保密計(jì)算機(jī)是通信網(wǎng)絡(luò)中諸多節(jié)點(diǎn)的轉(zhuǎn)接設(shè)備或者是通用終端,在數(shù)據(jù)安全保密問題得到廣泛認(rèn)識(shí)以前,計(jì)算機(jī)的安全保密在絕大多數(shù)人的印象中是指硬件的物理安全。但是,當(dāng)今計(jì)算機(jī)遠(yuǎn)程終端存取、通信和網(wǎng)絡(luò)等新技術(shù)已取得長(zhǎng)足的發(fā)展,單純物理意義上的保護(hù)措施除了可以保護(hù)硬件設(shè)備的安全外,對(duì)信息和服務(wù)的保護(hù)意義越來越小。數(shù)據(jù)安全保密已成為計(jì)算機(jī)安全保密的主題,而且研究的重點(diǎn)是內(nèi)部問題,即由合法用戶造成的威脅(或許是無(wú)意的)。事實(shí)上,絕大多數(shù)的計(jì)算機(jī)犯罪是內(nèi)部知情者所為,因此20世紀(jì)80年代以來,計(jì)算機(jī)安全保密研究的重點(diǎn)一直放在解決內(nèi)部犯罪這個(gè)問題上。計(jì)算機(jī)安全保密工作研究數(shù)據(jù)的機(jī)密性、完整性和可用性三方面內(nèi)容。數(shù)據(jù)機(jī)密性解決數(shù)據(jù)的非授權(quán)存取(泄露)問題;數(shù)據(jù)完整性保護(hù)數(shù)據(jù)不被篡改或破壞;可用性研究如何避免系統(tǒng)性能降低和系統(tǒng)崩潰等威脅。在計(jì)算機(jī)安全保密研究中,美國(guó)的Gasser提出了系統(tǒng)邊界和安全周界概念。他認(rèn)為,在計(jì)算機(jī)安全保密的一切努力中,必須對(duì)系統(tǒng)邊界有清晰的了解,并明確哪些是系統(tǒng)必須防御(來自系統(tǒng)邊界之外)的威脅,否則就不可能建造一個(gè)良好的安全環(huán)境。他進(jìn)一步指出,系統(tǒng)內(nèi)的一切軟硬件都要得到保護(hù),而系統(tǒng)外的一切不受保護(hù)。系統(tǒng)內(nèi)部由兩部分元素組成,一部分與維護(hù)系統(tǒng)安全有關(guān),另一部分與維護(hù)系統(tǒng)安全無(wú)關(guān)。應(yīng)對(duì)與安全相關(guān)的元素實(shí)行內(nèi)部控制。這兩部分劃分由一個(gè)想象中的邊界實(shí)現(xiàn),稱做安全周界。
Gasser的觀點(diǎn)很有代表性,反映了計(jì)算機(jī)安全保密研究的一種方法,但有一定的局限性。系統(tǒng)周界的限制使這種研究方法很難適用于以計(jì)算機(jī)網(wǎng)絡(luò)為特征的信息系統(tǒng)安全保密的研究。在計(jì)算機(jī)安全保密研究中,主體(Subject)和客體(Object)是兩個(gè)重要的概念,保護(hù)客體的安全、限制主體的權(quán)限構(gòu)成了訪問控制的主題。這兩個(gè)概念的提出使計(jì)算機(jī)安全保密中最重要的研究?jī)?nèi)容——訪問控制的研究問題得以抽象化,抽象化的結(jié)果是可以模型化,這就使計(jì)算機(jī)安全保密研究前進(jìn)了一大步。
3.通信安全與保密密碼學(xué)是研究通信安全保密的科學(xué),是保護(hù)信息在信道的傳遞過程中不被敵方竊取、解讀和利用的方法。通信安全保密研究圍繞尋找更強(qiáng)、更好的密碼體制而展開。從代換密碼、單表代換密碼、多名代換密碼、多表代換密碼、轉(zhuǎn)輪密碼和多字母代換密碼等古典密碼體制到現(xiàn)代密碼體制,通信安全保密研究不斷向前發(fā)展。在通信和通信安全保密研究的歷史中,Shannon做出了特殊的貢獻(xiàn)。他在1948年發(fā)表的“通信的數(shù)學(xué)理論”,首次把數(shù)學(xué)理論運(yùn)用于通信,開創(chuàng)了通信研究的新視角,在科學(xué)和工程界引起了強(qiáng)烈反響。他在1949年發(fā)表的“保密通信的信息理論”,把安全保密的研究引入了科學(xué)的軌道,使信息論成為研究密碼編碼學(xué)和密碼分析的一個(gè)重要理論基礎(chǔ),宣告了科學(xué)鑰密碼編碼學(xué)的到來,創(chuàng)立了信息論的一個(gè)新學(xué)科。在人類開始步入信息時(shí)代的今天,這個(gè)理論已經(jīng)開始引起普遍重視。
4.安全保密研究 安全保密研究伴隨人類社會(huì)的發(fā)展走過了漫長(zhǎng)的歷程,其應(yīng)用領(lǐng)域不斷拓寬,研究方法有所突破。縱觀安全保密研究的歷史,有三個(gè)分水嶺:一是計(jì)算機(jī)誕生前的密碼學(xué)(通信安全保密)研究;二是計(jì)算機(jī)誕生后,以計(jì)算機(jī)和計(jì)算機(jī)網(wǎng)絡(luò)為基礎(chǔ)的信息系統(tǒng)廣泛建立前的計(jì)算機(jī)安全保密研究;三是信息系統(tǒng)廣泛建立、全球信息高速公路醞釀和開始建設(shè)后的信息系統(tǒng)的安全保密研究。這三個(gè)分水嶺對(duì)應(yīng)著安全保密研究的三個(gè)階段。這三個(gè)階段的研究互不排斥,而是相互銜接、相互借鑒和相互融合。通信安全保密是計(jì)算機(jī)和信息系統(tǒng)安全保密的基礎(chǔ),并隨著計(jì)算機(jī)和信息系統(tǒng)安全保密研究的提出和開展而走向深入;計(jì)算機(jī)安全保密是信息系統(tǒng)安全保密的重要內(nèi)容,它們之間表現(xiàn)為相依相存的緊密關(guān)系;信息系統(tǒng)安全保密研究將綜合前面兩者的研究,并開辟新的研究方向,構(gòu)成新的研究體系。在研究層次上,這三個(gè)階段體現(xiàn)了遞進(jìn)的研究層次,前者是后者的基礎(chǔ)和前提,后者對(duì)前者具有反饋和激勵(lì)作用。一方面,沒有密碼學(xué)的研究成果,計(jì)算機(jī)和信息系統(tǒng)的安全保密研究就無(wú)法進(jìn)行;另一方面,計(jì)算機(jī)和信息系統(tǒng)(網(wǎng)絡(luò))在為密碼學(xué)研究提供巨大的計(jì)算機(jī)資源的同時(shí),也不斷對(duì)其提出挑戰(zhàn)。通信安全保密作為實(shí)施安全保密策略的基本工具,起著基礎(chǔ)研究的作用。計(jì)算機(jī)安全保密利用基礎(chǔ)密碼學(xué)來研究計(jì)算機(jī)的安全保密問題,表現(xiàn)了研究對(duì)象的個(gè)體性,而不管計(jì)算機(jī)系統(tǒng)之外的事情。信息系統(tǒng)安全保密綜合利用通信和計(jì)算機(jī)安全保密的研究成果,并將研究定位在系統(tǒng)這個(gè)層次,系統(tǒng)內(nèi)的一切成分都是研究的對(duì)象。因此,若把通信安全保密比作基礎(chǔ)層次,則計(jì)算機(jī)安全保密問題就是中間層次,而信息系統(tǒng)安全保密處在最高層次。3.2對(duì)稱加密技術(shù)對(duì)稱密鑰體制的定義是,加密密鑰與解密密鑰相同(或者相容)。在早期的對(duì)稱密鑰體制中,典型的對(duì)稱密鑰體制有代替密碼、凱撒、字符替換、移位、轉(zhuǎn)輪等。3.2.1對(duì)稱密鑰體制
1.對(duì)稱密鑰體制的產(chǎn)生密碼技術(shù)對(duì)信息的保護(hù)是由加密算法和密鑰共同承擔(dān)的。實(shí)際上,只要在算法上和密鑰上達(dá)到特定應(yīng)用背景的安全要求,每個(gè)人都可以自行設(shè)計(jì)自己的加密方式,例如,我們?cè)O(shè)計(jì)一個(gè)加密和解密方法,描述為“將信息的二進(jìn)制形式每隔k位進(jìn)行一次非運(yùn)算”,這種加密方式,其算法就是隔k位進(jìn)行取反,其密鑰就是k。第三方如果只知道算法和密鑰二者之一,是不能對(duì)信息進(jìn)行正常解密的,他除了需要知道密鑰之外,還需要知道算法。如果我們把算法公開,實(shí)際上解密者已經(jīng)知道加密算法,這時(shí),只要他知道加密密鑰,就可以進(jìn)行解密操作了。在這個(gè)簡(jiǎn)單的加密方法中,加密和解密的密鑰相同,都是選定的k,這就是典型的對(duì)稱密鑰體制。有些對(duì)稱密鑰算法,將任一個(gè)字母映射至另一個(gè)字母,此映射則根據(jù)一個(gè)映射表,而不僅僅是簡(jiǎn)單的移位,難度增加,但這類技巧若稍微花點(diǎn)心思是很容易被破解的。比方說,我們可以根據(jù)語(yǔ)言的單詞長(zhǎng)短及常用單詞在文法上的出現(xiàn)頻率漸次猜出哪個(gè)字元被映射至哪個(gè)字元,最后找出完整的字元映射表?,F(xiàn)在英文字母中各字母出現(xiàn)的頻度早已有人進(jìn)行過統(tǒng)計(jì),所以根據(jù)字母頻度表可以很容易對(duì)這種代替密碼進(jìn)行破譯。一般而言,密碼學(xué)普遍依賴數(shù)學(xué),越是先進(jìn)的加密法,所涉及的數(shù)學(xué)就越高深,而隨著計(jì)算機(jī)技術(shù)的進(jìn)步,加密技術(shù)也日新月異,原本不可能破解的加密技術(shù)也可能因計(jì)算機(jī)速度的提高與計(jì)算成本的降低而變得容易。所以,每當(dāng)出現(xiàn)新的加密技術(shù)時(shí),破解技術(shù)亦尾隨而至,加密與破解互相促進(jìn)。
2.對(duì)稱密鑰技術(shù)原理對(duì)稱密碼體制是從傳統(tǒng)的簡(jiǎn)單換位代替密碼發(fā)展而來的,自1977年美國(guó)頒布DES密碼算法作為美國(guó)數(shù)據(jù)加密標(biāo)準(zhǔn)以來,對(duì)稱密鑰體制得到了迅猛發(fā)展,在世界各國(guó)都備受關(guān)注。如果按照每次加密所處理的比特來分類,對(duì)稱密鑰體制從加密模式上可分為序列密碼和分組密碼兩大類。前者每次只加密一個(gè)比特,而后者則先將信息序列分組,每次處理一個(gè)組。典型的對(duì)稱密碼體制的發(fā)展趨勢(shì)將以分組密碼為重點(diǎn)。分組密碼算法通常由密鑰擴(kuò)展算法和加密(解密)算法兩部分組成。密鑰擴(kuò)展算法將b字節(jié)用戶主密鑰擴(kuò)展成r個(gè)子密鑰。加密算法由一個(gè)密碼學(xué)上的弱函數(shù)f與r個(gè)子密鑰迭代r次組成?;靵y和密鑰擴(kuò)散是分組密碼算法設(shè)計(jì)的基本原則。一種密碼體制抵御已知明文的差分和線性攻擊的設(shè)計(jì)要點(diǎn)是可變長(zhǎng)密鑰和分組。例如,AES是美國(guó)國(guó)家標(biāo)準(zhǔn)技術(shù)研究所NIST旨在取代DES的21世紀(jì)的加密標(biāo)準(zhǔn)。AES的基本要求是,采用對(duì)稱分組密碼體制,密鑰長(zhǎng)度的最少支持為128、192、256,分組長(zhǎng)度為128位,算法應(yīng)易于各種硬件和軟件實(shí)現(xiàn)。1998年NIST開始AES第一輪分析、測(cè)試和征集,共產(chǎn)生了15個(gè)候選算法。1999年3月完成了第二輪AES的分析和測(cè)試。盡管在應(yīng)用方面,DES在安全上是脆弱的,但由于快速DES芯片的大量生產(chǎn),使得DES仍能暫時(shí)繼續(xù)使用。為提高安全強(qiáng)度,通常使用獨(dú)立密鑰的TripleDES。但是DES遲早要被AES代替。流密碼體制較之分組密碼在理論上成熟且安全,但未被列入下一代加密標(biāo)準(zhǔn)。
3.序列密碼序列密碼基本原理是,通過有限狀態(tài)機(jī)產(chǎn)生性能優(yōu)良的偽隨機(jī)序列,使用該序列加密信息流,通過逐比特加密,得到密文序列。所以,序列密碼算法的安全強(qiáng)度完全取決于它所產(chǎn)生的偽隨機(jī)序列的好壞。衡量一個(gè)偽隨機(jī)序列好壞的標(biāo)準(zhǔn)有多種,比較通用的有著名的Golamb三個(gè)條件、Rueppel的線性復(fù)雜度隨機(jī)走動(dòng)條件、線性逼近以及產(chǎn)生該序列的布爾函數(shù)滿足的相關(guān)免疫條件等。產(chǎn)生好的序列密碼的主要途徑之一是利用移位寄存器產(chǎn)生偽隨機(jī)序列,典型方法有以下幾種。
1)反饋移位寄存器采用n階非線性反饋函數(shù)產(chǎn)生大周期的非線性序列,例如M序列,具有較好的密碼學(xué)性質(zhì),只是反饋函數(shù)的選擇有難度,如何產(chǎn)生全部的M序列至今仍是世界難題。
2)線性移位寄存器序列加非線性前饋函數(shù)利用線性移位寄存器序列加非線性前饋函數(shù)產(chǎn)生前饋序列,如何控制序列相位及非線性前饋函數(shù)也是相當(dāng)困難的問題,Bent序列就是其中一類好的序列。
3)鐘控序列利用一個(gè)寄存器序列作為時(shí)鐘,控制另一寄存器序列(或自己控制自己)來產(chǎn)生鐘控序列,這種序列具有大的線性復(fù)雜度。
4)組合網(wǎng)絡(luò)及其它序列通過組合運(yùn)用以上方法,產(chǎn)生更復(fù)雜的網(wǎng)絡(luò),來實(shí)現(xiàn)復(fù)雜的序列,這種序列的密碼性質(zhì)理論上比較難控制。還可以利用由混沌理論、細(xì)胞自動(dòng)機(jī)等方法產(chǎn)生的偽隨機(jī)序列。對(duì)序列密碼攻擊的主要手段有代數(shù)方法和概率統(tǒng)計(jì)方法,兩者結(jié)合可以達(dá)到較好的效果。目前要求寄存器的階數(shù)大于100階,才能保證必要的安全。序列密碼的優(yōu)點(diǎn)是錯(cuò)誤擴(kuò)展小,速度快,利于同步,安全程度高,易于硬件實(shí)現(xiàn)。
4.分組密碼分組密碼的工作方式是將明文分成固定長(zhǎng)度的組(塊),如64比特(二進(jìn)制位)一組,用同一密鑰和算法對(duì)每一塊加密,輸出也是固定長(zhǎng)度的密文。DES密碼算法就是典型的分組加密密碼。3.2.2典型的對(duì)稱加密算法數(shù)據(jù)加密標(biāo)準(zhǔn)(DES)算法是最具有代表性的對(duì)稱加密算法,本章在重點(diǎn)介紹DES加密算法之前,簡(jiǎn)單介紹IDEA等其它幾種典型的對(duì)稱加密算法,使讀者對(duì)這類算法既有全面的了解,也有深入的理解。1.IDEA算法
1990年賴學(xué)家和梅西(Massey)開發(fā)的IDEA密碼首次成形,稱為PES,即“建議的加密標(biāo)準(zhǔn)”。次年,根據(jù)有關(guān)專家對(duì)這一密碼算法的分析結(jié)果,設(shè)計(jì)者對(duì)該算法進(jìn)行了強(qiáng)化,并稱之為IPES,即“改進(jìn)的建議加密標(biāo)準(zhǔn)”。該算法于1992年更名為IDEA(InternationalDataEncryptdriAlgorithm),即“國(guó)際數(shù)據(jù)加密算法”。
IDEA采用基于“相異代數(shù)群上的混合運(yùn)算”的設(shè)計(jì)思想,其算法的明、密文組位長(zhǎng)度為64位,密鑰長(zhǎng)度為128位。設(shè)計(jì)者盡最大努力使該算法不受差分密碼分析的影響,設(shè)計(jì)者已證明,IDEA算法在其8輪迭代的第4輪之后便不受差分密碼分析的影響。IDEA比同時(shí)代的算法(如FEAL、LOKI、Khufu)都要堅(jiān)固,而且一些證據(jù)表明,即使是在DES上取得巨大成功的微分密碼分析法對(duì)IDEA也無(wú)能為力。到目前為止,還沒有任何關(guān)于IDEA的密碼學(xué)分析攻擊法的成果發(fā)表,因此對(duì)IDEA的攻擊方法就只有“直接攻擊”或者采用密鑰窮舉法了。那么對(duì)IDEA的直接攻擊難度如何呢?我們知道IDEA128位密鑰長(zhǎng)度的密鑰空間,用十進(jìn)制表示所有可能的密鑰個(gè)數(shù)將是下面這個(gè)天文數(shù)字:340282366920938463463374607431768211456為了試探出一個(gè)特定的密鑰,平均要試探一半的可能性。那么即使設(shè)計(jì)一種每秒鐘可以試驗(yàn)10億個(gè)密鑰的專用芯片,并將10億片這樣的芯片用于此項(xiàng)工作,仍需1013年才能解決問題。因此,就現(xiàn)在來看,應(yīng)當(dāng)說IDEA是非常安全的,而且它比DES在軟件實(shí)現(xiàn)上快得多,和DES一樣,IDEA也支持“反饋加密(CFB)”和“鏈?zhǔn)郊用?CBC)”兩種模式。在實(shí)現(xiàn)上,有人認(rèn)為公開密鑰加密生來就比傳統(tǒng)加密安全得多,準(zhǔn)確地說,這是一種誤解。實(shí)際上密碼分析專家計(jì)算過,窮舉128bitIDEA密鑰和分解3100bitRSA密鑰的工作量相當(dāng),而實(shí)際上1024bit的RSA密鑰已被認(rèn)為是機(jī)密級(jí)的,而且1024bit的純粹RSA加密需要的時(shí)間大約是128bit的IDEA加密時(shí)間的4000多倍。RSA的長(zhǎng)處在于它的易用性而不是它的堅(jiān)固性,相反,加密鏈的弱點(diǎn)不在IDEA上,而是在RSA上。
2.FEAL-8密碼
FEAL密碼算法家族是日本NTT(日本電報(bào)電話公司)設(shè)計(jì)的。密鑰組位長(zhǎng)度為64比特,明、密文組位長(zhǎng)度為64比特。作為一種分組密碼,與DES相比,其增加了每一輪迭代的算法強(qiáng)度,因此可以通過減少迭代次數(shù)來提高運(yùn)算速度。
FEAL-8即為8輪迭代的FEAL密碼算法。FEAL密碼算法推出之后,引起有關(guān)專家的注意。密碼專家比哈姆和沙米爾利用差分密碼分析技術(shù)發(fā)現(xiàn),可以用比窮舉法更快的速度破譯FEAL密碼。例如,F(xiàn)EAL-8只需2000個(gè)選擇明文即可破譯,而FEAL-4只需8個(gè)精心選擇的明文便可破譯。
3.LOKI算法
LOKI算法作為DES的一種潛在替代算法,于1990年在密碼學(xué)界首次亮相。LOKI同DES一樣以64位二進(jìn)制分組加密數(shù)據(jù),也使用64位密鑰(只是其中無(wú)奇偶校驗(yàn)位),所有64位均為密鑰,迭代次數(shù)為16。LOKI密碼公布之后,有關(guān)專家對(duì)其進(jìn)行了研究破譯,并證明不大于14輪的LOKI算法極易受到差分密碼分析的攻擊等。不過,這仍然優(yōu)于56位密鑰的DES。LOKI較新的版本是LOKI-91。
4.Khufu和Khafre算法
1990年由默克爾設(shè)計(jì)的Khufu和Khafra算法具有較長(zhǎng)的密鑰,適合于軟件實(shí)現(xiàn),比較安全可靠。Khufu算法的總體設(shè)計(jì)類似于DES,明、密文組位長(zhǎng)度為64位,只是擁有512位(64字節(jié))的密鑰。Khafre算法與前者類似,預(yù)定用于不能預(yù)先計(jì)算的場(chǎng)合。由于Khufu算法具有可變的S盒,因此可以抵抗差分密碼分析的攻擊。據(jù)了解,目前尚無(wú)以該算法為目標(biāo)的其它密碼分析成果。3.2.3數(shù)據(jù)加密標(biāo)準(zhǔn)DES分析數(shù)據(jù)加密標(biāo)準(zhǔn)(DataEncryptionStandard,DES)算法原是IBM公司為保護(hù)產(chǎn)品的機(jī)密性于1971年至1972年研制成功的,后被美國(guó)國(guó)家標(biāo)準(zhǔn)局和國(guó)家安全局選為聯(lián)邦信息標(biāo)準(zhǔn)中的一項(xiàng),并于1977年頒布使用。ISO也已將DES作為數(shù)據(jù)加密標(biāo)準(zhǔn)。DES是世界上最早被公認(rèn)的實(shí)用密碼算法標(biāo)準(zhǔn),目前它已經(jīng)受住了長(zhǎng)達(dá)30年之久的實(shí)踐考驗(yàn)。美國(guó)國(guó)家標(biāo)準(zhǔn)局1973年開始研究除國(guó)防部之外的其它部門的計(jì)算機(jī)系統(tǒng)的數(shù)據(jù)加密標(biāo)準(zhǔn),于1973年5月15目和1974年8月27日先后兩次向公眾發(fā)出了征求加密算法的公告。1977年3月,美國(guó)政府決定采納IBM公司設(shè)計(jì)的方案作為非機(jī)密數(shù)據(jù)的正式數(shù)據(jù)加密標(biāo)準(zhǔn)DES。
DES是一種采用傳統(tǒng)加密方法的分組密碼。它的算法是對(duì)稱的,既可用于加密,又可用于解密。其基本思想是:DES對(duì)64比特二進(jìn)制數(shù)據(jù)加密,產(chǎn)生64比特等長(zhǎng)的密文數(shù)據(jù)。使用的密鑰為64比特,實(shí)際密鑰長(zhǎng)度為56比特(有8比特用于奇偶校驗(yàn))。在DES的加密過程中,先對(duì)64比特長(zhǎng)的明文塊進(jìn)行初始置換,然后將其分割成左右各32比特長(zhǎng)的子塊,經(jīng)過16次迭代,進(jìn)行循環(huán)移位與變換,最后再進(jìn)行逆變換得出64比特長(zhǎng)的密文。DES的解密過程與加密過程很相似,只需將密鑰的使用順序進(jìn)行顛倒。設(shè)計(jì)分組密碼算法的核心技術(shù)是:在相信復(fù)雜函數(shù)可以通過簡(jiǎn)單函數(shù)迭代若干次得到的原則下,利用簡(jiǎn)單循環(huán)函數(shù)進(jìn)行運(yùn)算,充分利用非線性運(yùn)算。DES采用美國(guó)國(guó)家安全局精心設(shè)計(jì)的8個(gè)S-Box和P置換,經(jīng)過16次迭代,最終產(chǎn)生64比特密文,每次迭代使用的48比特子密鑰是由原始的56比特產(chǎn)生的。DES算法加密時(shí)把明文以64比特為單位分成塊,而后用密鑰把每一塊明文轉(zhuǎn)化成同樣64比特的密文塊。DES可提供72000000000000000個(gè)密鑰,用每微秒可進(jìn)行一次DES加密的機(jī)器來破譯密碼需要2000年。
1.DES加密算法
1)算法流程
DES對(duì)64位的明文分組進(jìn)行操作。通過一個(gè)初始置換,將明文分組分成左半部分和右半部分,各32位長(zhǎng)。然后進(jìn)行16輪完全相同的運(yùn)算,這些運(yùn)算被稱為函數(shù)f。在運(yùn)算過程中數(shù)據(jù)與密鑰結(jié)合。經(jīng)過16輪后,左、右半部分合在一起經(jīng)過一個(gè)逆置換(初始置換的逆置換),這樣該算法就完成了。算法流程如圖3.1所示。圖3.1DES算法流程
2)初始置換初始置換在第一輪運(yùn)算之前執(zhí)行,對(duì)輸入分組實(shí)施如表3.1所示的變換。此表應(yīng)從左向右、從上向下讀,順序位置就是置換后的分組二進(jìn)制位序號(hào)。表中的數(shù)據(jù)表示置換前的分組二進(jìn)制位序號(hào)。例如,初始置換把明文的第58位換到第1位的位置,把第50位換到第2位的位置,把第42位換到第3位的位置,等等。表3.1初始置換表IP初始置換和對(duì)應(yīng)的逆置換并不影響DES的安全性,它的主要目的是為了更容易將明文和密文數(shù)據(jù)以字節(jié)大小放入DES芯片中,因?yàn)镈ES早于16位和32位微處理器總線。由于這種置換用軟件實(shí)現(xiàn)很困難(雖然用硬件實(shí)現(xiàn)較容易),故DES的許多軟件實(shí)現(xiàn)方式刪去了初始置換和逆置換。盡管這種新的算法的安全性不比DES差,但它并未遵循DES標(biāo)準(zhǔn),因此它不應(yīng)叫做標(biāo)準(zhǔn)的DES。
3)循環(huán)迭代
DES有16輪循環(huán)。在每一輪循環(huán)中,對(duì)應(yīng)的子密鑰與右半部分作為函數(shù)f的輸入,函數(shù)f的輸出與左半部分進(jìn)行異或運(yùn)算,運(yùn)算結(jié)果成為新的右半部分,原來的右半部分成為新的左半部分。將該操作重復(fù)16次,便實(shí)現(xiàn)了DES的16輪迭代運(yùn)算。假設(shè)Bi是第i次迭代的結(jié)果,Li和Ri是Bi的左半部分和右半部分,ki是第i輪的48位子密鑰,且f是實(shí)現(xiàn)代替、置換及密鑰異或等運(yùn)算的函數(shù),則每一輪的運(yùn)算可以用下面的數(shù)學(xué)公式表示:
Li=Ri-1
Ri=Li-1xorf(Ri-1,ki)
4)?f函數(shù)在每一輪循環(huán)中都使用了一個(gè)f函數(shù),它表示子密鑰與右半部分的混合運(yùn)算,其運(yùn)算流程可以用圖3.2表示。f函數(shù)首先進(jìn)行放大變換,將右半部分從32位變換到48位,變換結(jié)果與子密鑰進(jìn)行異或運(yùn)算,然后經(jīng)過一組8個(gè)S變換盒,將48位縮小變換為32位,最后經(jīng)過單純變換輸出32位的結(jié)果。圖3.2f函數(shù)
5)放大變換這個(gè)運(yùn)算將數(shù)據(jù)的右半部分從32位擴(kuò)展到48位。由于這個(gè)運(yùn)算改變了位的次序,重復(fù)了某些位,故被稱為擴(kuò)展置換。這個(gè)操作有兩方面的目的:第一,它產(chǎn)生了與子密鑰同長(zhǎng)度的數(shù)據(jù),以便進(jìn)行異或運(yùn)算;第二,它提供了更長(zhǎng)的結(jié)果,使得在替代運(yùn)算時(shí)能進(jìn)行壓縮。但是,以上兩個(gè)目的都不是它在密碼學(xué)上的主要目的。由于輸入的一位將影響兩個(gè)替換,因此輸出對(duì)輸入的依賴性將傳播得更快,這叫做雪崩效應(yīng)。故DES的設(shè)計(jì)著重于盡可能快地使得密文的每一位依賴明文和密鑰的每一位。擴(kuò)展置換用E盒實(shí)現(xiàn),它是一個(gè)變換表(如表3.2所示)。表3.2中的變換表給出了輸出位對(duì)應(yīng)的輸入位。例如,處于輸入分組中第3位的位置變換到了輸出分組中第4位的位置,而輸入分組中第21位的位置變換到了輸出分組中第30位和第32位的位置。后一種情況說明,在放大變換中,有些輸入位對(duì)應(yīng)一位以上的輸出位,這也是產(chǎn)生放大的原因。盡管輸出分組大于輸入分組,但每一個(gè)輸入分組產(chǎn)生唯一的輸出分組。表3.2放大變換表E
6)?S變換盒在f(Ri,ki)算法流程圖中,S1,S2,…,S8稱為選擇函數(shù),也叫S盒變換,如表3.3所示。其功能是把6bit數(shù)據(jù)變?yōu)?bit數(shù)據(jù)。下面給出選擇函數(shù)Si(i=1,2,…,8)的功能表。表3.3S變換盒子密鑰與擴(kuò)展分組異或以后,將48位的結(jié)果送入S變換盒進(jìn)行變換。變換由8個(gè)S變換盒完成。每一個(gè)S盒都有6位輸入,4位輸出,并且這8個(gè)S盒是不同的。DES的這8個(gè)S盒占的存儲(chǔ)空間為256字節(jié)。
48位的輸入被分為8個(gè)6位的分組,每一分組對(duì)應(yīng)一個(gè)S盒變換操作:分組1由S盒1操作,分組2由S盒2操作,依次類推。每個(gè)S盒是一個(gè)4行、16列的表。盒中的每一項(xiàng)都是一個(gè)4位的二進(jìn)制數(shù)。S盒的6位輸入確定了其對(duì)應(yīng)的輸出在哪一行哪一列。輸入位以一種非常特殊的方式確定了S盒中的項(xiàng)。假定將S盒的6位輸入標(biāo)記為b1、b2、b3、b4、b5、b6,則b1和b6組合構(gòu)成了一個(gè)2位的二進(jìn)制數(shù),取值從0到3,它對(duì)應(yīng)表中行的編號(hào)。從b2到b5構(gòu)成了一個(gè)4位的二進(jìn)制數(shù),取值從0到15,對(duì)應(yīng)表中列的編號(hào)。行編號(hào)從上到下為0、1、2、3;列編號(hào)從左到右為0、1、2、3、4、…、14、15。例如,假設(shè)第6個(gè)S盒的輸入(即異或函數(shù)的第31位到36位)為110011。第1位和最后一位組合形成了11,它對(duì)應(yīng)第6個(gè)S盒的第4行。中間的4位組合在一起形成了1001,它對(duì)應(yīng)著同一個(gè)S盒的第10列。第6個(gè)S盒的第4行第10列處的數(shù)是14,其二進(jìn)制是1110,這樣,110011就變換成了1110。用軟件實(shí)現(xiàn)S盒更容易,僅需要花費(fèi)一些精力重新組織S盒的每一項(xiàng)。S盒的設(shè)計(jì)必須非常仔細(xì),不要僅僅改變查找的索引,而不重新編排盒中的每一項(xiàng)。然而,S盒的這種描述,使它的工作過程可視化了。每個(gè)S盒可被看做一個(gè)4位輸入的代替函數(shù):b2~b5直接輸入,b1和b6位控制替代輸出,輸出結(jié)果為4位,它是S盒的4個(gè)代替函數(shù)中選擇的一個(gè)。
S盒是非線性的,它比DES的其它任何一步都提供了更好的安全性。這個(gè)代替過程的結(jié)果是8個(gè)4位的分組,它們重新合在一起形成了一個(gè)32位的分組。這個(gè)分組將進(jìn)行下一步的運(yùn)算,即單純置換。
7)單純置換單純置換是一種從32位到32位的置換,它是根據(jù)表3.4單純置換表進(jìn)行的,表中各個(gè)數(shù)據(jù)的位置順序號(hào)(從左到右,從上到下)是置換后數(shù)據(jù)的二進(jìn)制位序號(hào),表中的數(shù)據(jù)表示變換前數(shù)據(jù)的二進(jìn)制位序號(hào)。表3.4單純置換表
8)逆置換逆置換是初始置換的逆過程,表3.5列出了該置換。請(qǐng)注意,DES在最后一輪后,左半部分和右半部分并未交換,而是將R16與L16并在一起形成一個(gè)分組作為逆置換的輸入。至此,完成了DES加密過程。其實(shí)在交換左、右兩部分并循環(huán)移動(dòng)的情況下,仍能獲得類似的結(jié)果。表3.5逆置換表
2.子密鑰生成由于64位密鑰包含8位的奇、偶校驗(yàn)位,它對(duì)由密鑰長(zhǎng)度所決定的加密強(qiáng)度無(wú)貢獻(xiàn),因此,在實(shí)際運(yùn)算過程中不考慮這一位,需要把每個(gè)字節(jié)第8位去掉,DES的密鑰由64位減至56位。在DES的每一輪中,從56位密鑰產(chǎn)生出不同的48位的子密鑰,這些子密鑰由圖3.3所示的算法確定。圖3.3子密鑰的生成
1)縮小選擇換位按照縮小選擇換位表PC-1變換密鑰,密鑰的位數(shù)由64位變成56位,去掉8位奇偶校驗(yàn)。縮小選擇換位表PC-1如表3.6所示。表3.6縮小選擇換位表PC-1
2)循環(huán)左移把56位密鑰分成兩部分,每部分28位。根據(jù)循環(huán)次數(shù),這兩部分分別循環(huán)左移1位或2位。表3.7給出了每輪循環(huán)移動(dòng)的位數(shù)。表3.7移位表
3)壓縮置換移動(dòng)后,從56位中選出48位。因?yàn)檫@個(gè)運(yùn)算不僅置換了每位的順序,同時(shí)也選擇了子密鑰,因而被稱做壓縮置換。這個(gè)運(yùn)算提供了一組48位的分組。表3.8定義了壓縮置換(也稱為置換選擇)。例如,處在第33位的那一位在輸出時(shí)置換到了第35位的位置,而處在第18位的那一位被省略掉了。表3.8壓縮置換表最后,每一輪運(yùn)算經(jīng)過壓縮選擇換位,得到64位密鑰的子密鑰(48位)k1、k2、…、k16。
3.DES解密算法在經(jīng)過所有的代替、置換、異或和循環(huán)移位之后,我們或許會(huì)認(rèn)為解密算法與加密算法完全不同,不過同加密算法一樣有很強(qiáng)的雜散效果。事實(shí)上,精心選擇各種操作之后,會(huì)得出這樣一個(gè)非常有用的性質(zhì),即DES的加密算法和解密解密算法完全相同。
DES使用相同的函數(shù)來加密或解密每個(gè)分組,二者的唯一不同之處是子密鑰的使用次序。在加密過程中,如果各次循環(huán)的加密密鑰分別是k1、k2、k3、…、k16,則解密時(shí)使用的子密鑰順序應(yīng)該是k16、k15、k14、k13、…、k1。
4.DES算法實(shí)現(xiàn)
DES算法采用了散布、雜散等基本技巧,構(gòu)成其算法的基本單元是簡(jiǎn)單的置換、代替和模2加。DES的整個(gè)算法結(jié)構(gòu)都是公開的,其安全性僅取決于對(duì)密鑰的安全保證,它內(nèi)部的復(fù)雜結(jié)構(gòu)是至今沒有找到捷徑破譯方法的根本原因。DES的加密速度很快,可由軟件和硬件實(shí)現(xiàn),特別適合于大量的數(shù)據(jù)加密。美國(guó)AT&T首先用LSI芯片實(shí)現(xiàn)了DES的全部工作模式,該產(chǎn)品稱為數(shù)據(jù)加密處理機(jī)DEP。隨著DES應(yīng)用的日益擴(kuò)大,制造有關(guān)DES設(shè)備的廠商已達(dá)幾十家,各種DES專用芯片也應(yīng)運(yùn)而生,這種DES芯片價(jià)格便宜,加密、解密速度快,可用于加密各類敏感信息,在有關(guān)產(chǎn)品中使用十分廣泛。采用DES的一個(gè)著名的網(wǎng)絡(luò)安全系統(tǒng)是Kerberos,由MIT開發(fā),是網(wǎng)絡(luò)通信中身份認(rèn)證的標(biāo)準(zhǔn)。
5.DES密碼強(qiáng)度首先我們考慮用窮舉法破譯DES密碼的問題。設(shè)已知一段密文C及與它對(duì)應(yīng)的明文M,用一切可能的密鑰K加密M,直到得到E(M)=C,這時(shí)所用的密鑰K即為要破譯的密碼的密鑰。窮舉法的時(shí)間復(fù)雜性是T=O(n),空間復(fù)雜性是S=O(1)。對(duì)于DES密碼,n=256,約為7×1016,即使使用每秒鐘可以計(jì)算100萬(wàn)個(gè)密鑰的大型計(jì)算機(jī),也需要算106天才能求得所使用的密鑰,由此看來,DES是很安全的。但是也有的專家指出,如果設(shè)計(jì)一種1μs可以核算一個(gè)密鑰的超大規(guī)模集成片,那么它在一天內(nèi)可以核算8.64×1010個(gè)密鑰。如果由100萬(wàn)個(gè)這樣的集成片構(gòu)成專用機(jī),那么它可以在一天的時(shí)間內(nèi)用窮舉法破譯DES密碼。在對(duì)DES密碼進(jìn)行鑒定期間,美國(guó)國(guó)家保密局和計(jì)算機(jī)科學(xué)技術(shù)學(xué)會(huì)組織各界專家研究了DES密碼體制的安全性問題,討論了破譯DES密碼體制的一切可能途徑。盡管有些專家和學(xué)者對(duì)它的安全性仍持懷疑態(tài)度,但官方卻得出了十分樂觀的結(jié)論。他們宣布:“沒有任何可以破譯DES密碼體制的系統(tǒng)分析法。若使用窮舉法,則在1990年以前基本上不可能產(chǎn)生出每天能破譯一個(gè)DES密鑰的專用計(jì)算機(jī)。即使屆時(shí)能制造出這樣的專用機(jī),它的破譯成功率也只會(huì)在0.1%~0.2%之間,而且造價(jià)可能高達(dá)幾千萬(wàn)美元?!蹦壳?,計(jì)算機(jī)的速度越來越快,制造一臺(tái)在一天內(nèi)破譯一個(gè)DES密鑰的專用計(jì)算機(jī)的花費(fèi)已經(jīng)降低到20萬(wàn)美元左右,DES的破譯難度大大降低?,F(xiàn)在,人們研究更多的破譯方法是利用網(wǎng)絡(luò)分布式計(jì)算技術(shù),進(jìn)一步降低了DES的破譯難度,已有在兩天內(nèi)破譯DES密鑰的報(bào)道。
6.對(duì)DES的攻擊
1990年S.Bim和A.Shamir提出了差分攻擊的方法,采用選擇明文攻擊,最終找到可能的密鑰。M.Matsui提出的線性分析方法,利用243個(gè)已知明文,成功地破譯了16次迭代的DES算法,到目前為止,這是最有效的破譯方法。
1)差分攻擊分析差分密碼分析考查那些明文有特定差分的密文對(duì)。當(dāng)明文使用相同的密鑰加密時(shí),分析其在通過DES的輪擴(kuò)散時(shí)差分的演變。簡(jiǎn)單地,選擇具有固定差分的一對(duì)明文,這兩個(gè)明文可隨機(jī)選取,只要求它們符合特定的差分條件,密碼分析者甚至不必知道它們的值?!安罘帧痹贒ES中定義為異或運(yùn)算。不同的算法中定義不同。然后,使用輸出密文中的差分,按照不同的概率分配給不同的密鑰。隨著分析的密文對(duì)越來越多,其中最可能的一個(gè)密鑰將顯現(xiàn)出來,這就是正確的密鑰。詳細(xì)的過程比較復(fù)雜。參考圖3.4所示的DES循環(huán)過程。假定有一對(duì)明文輸入x和x',它們的差分為dx,則密文輸出y和y'?也是已知的,因而它們也有差分,為dy。擴(kuò)展置換和P盒都是已知的,那么da和dc也已知。雖然子密鑰b和b'?是未知的,但它們的差分db等于da。當(dāng)考查差分時(shí),子密鑰ki與a和a'?的異或可略去。這里有一個(gè)技巧:對(duì)任意給定的da,dc的值不一定都相同。將da和dc聯(lián)合起來,就可以猜測(cè)出a異或ki及a'?異或ki的位值,因?yàn)閍和a'?是已知的,故可推出關(guān)于ki的信息。我們來考查DES的最后一輪。差分分析忽略了初始置換和未置換。它們除了使DES難解釋外,不影響對(duì)DES的攻擊。如果能確定k16,那么就能知道48位的密鑰。其余的8位可以通過窮舉攻擊得到。至此,我們通過差分分析就可以得到k。圖3.4DES循環(huán)函數(shù)明文對(duì)的某些差分,在得到的密文對(duì)中有很高的重現(xiàn)率,這些差分就叫做特征。特征在輪數(shù)上得以擴(kuò)充,并定義了一條輪間路徑。對(duì)某一個(gè)輸入差分,每一輪的差分及最終的輸出差分之間都有一個(gè)特定的概率。可以通過產(chǎn)生這樣一個(gè)表來找到這些特征:行表示可能的輸入異或(兩個(gè)不同輸入位集的異或);列表示可能的輸出異或;輸入項(xiàng)表示對(duì)于給定的輸入異或,產(chǎn)生特定輸出異或的次數(shù)。對(duì)DES的每一個(gè)S盒,都可以產(chǎn)生這樣的一個(gè)表。我們把滿足特征的明文對(duì)稱為正確對(duì),不滿足的稱為錯(cuò)誤對(duì)。正確對(duì)將可以猜測(cè)正確的輪密鑰(對(duì)特征的最后一輪),錯(cuò)誤對(duì)猜測(cè)的輪密鑰是隨機(jī)的。為了找到正確的輪密鑰,只須收集足夠的猜測(cè)結(jié)果,必然有一個(gè)子密鑰被猜的頻率大于其它的猜測(cè)結(jié)果,這將是很有效的,正確的子密鑰將從所有的隨機(jī)候選密鑰中浮現(xiàn)出來。因而,對(duì)一個(gè)n輪DES,經(jīng)過n輪的基本差分攻擊,將可能恢復(fù)48位子密鑰,剩余的8位可通過窮舉攻擊猜測(cè)得到。
2)線性密碼分析線性密碼分析是MitsuruMatsui提出的另一種密碼分析攻擊方法。這種攻擊使用線性近似值來描述分組密碼的操作。其原理是,如果將明文的一些位和密文的一些位分別進(jìn)行異或運(yùn)算,然后再將這兩個(gè)結(jié)果異或,那么我們將得到一個(gè)位,這一位是將密鑰的一些位進(jìn)行異或運(yùn)算的結(jié)果。這就是概率為p的線性近似值。如果p
1/2,那么就可以使用該偏差,用得到的明文及對(duì)應(yīng)的密文來猜測(cè)密鑰的位值。得到的數(shù)據(jù)越多,猜測(cè)越可靠。概率越大,用同樣數(shù)據(jù)量的成功率就越高。如何確定DES的一個(gè)好的線性逼近呢?找到好的一輪的線性逼近,再將它們組合在一起。再來考察S盒。它是6位輸入,4位輸出,因而輸入位的組合異或運(yùn)算有(26-1)=63種有效方式,輸出位有15種有效方式?,F(xiàn)在,對(duì)每一個(gè)S盒隨機(jī)選擇的輸入,都能計(jì)算出輸入的組合異或等于某個(gè)輸出組合異或的可能性。如果某個(gè)組合具有足夠高的偏向性,那么線性分析可能就找到了。
7.DES算法變形
DES算法頒布之后,引起了學(xué)術(shù)界和企業(yè)界的廣泛重視。許多廠家很快生產(chǎn)出實(shí)現(xiàn)DES算法的硬件產(chǎn)品,廣大用戶在市場(chǎng)上買到高速而又廉價(jià)的DES硬件產(chǎn)品之后,開始用它加密自己的重要數(shù)據(jù),從而大大推廣了密碼技術(shù)的使用。學(xué)術(shù)界對(duì)DES密碼進(jìn)行了深入的研究,圍繞它的安全性和破譯方法展開了激烈的爭(zhēng)論,在一定意義上對(duì)密碼學(xué)的理論研究也起了推動(dòng)作用。自DES算法1977年首次公諸于世以來,人們一直對(duì)DES的安全性持懷疑態(tài)度,對(duì)密鑰的長(zhǎng)度、迭代次數(shù)及S盒的設(shè)計(jì)眾說紛紜。從技術(shù)上來說,對(duì)DES的批評(píng)主要集中在以下三個(gè)方面:
(1)作為分組密碼,DES的加密單位僅有64位二進(jìn)制,這對(duì)于數(shù)據(jù)傳輸來說太小,因?yàn)槊總€(gè)分組僅含8個(gè)字符,而且其中某些位還要用于奇偶校驗(yàn)或其它通信開銷。
(2)密鑰僅有56位二進(jìn)制未免太短,各次迭代中使用的子密鑰k(i)是遞推產(chǎn)生的,這種相關(guān)性必然會(huì)降低密碼體制的安全性。目前,有人認(rèn)為,在現(xiàn)有的技術(shù)條件下用窮舉法尋找正確密鑰已趨于可行,所以對(duì)于要安全保護(hù)10年以上的數(shù)據(jù),最好不要用DES算法。
(1)三重DES算法:用三把不同密鑰對(duì)數(shù)據(jù)連續(xù)加密3次,構(gòu)成所謂的Triple-DES。它等價(jià)于把DES的鑰匙長(zhǎng)度增加到168位。鑰匙長(zhǎng)度每增加1位,鑰匙總數(shù)就會(huì)翻一番,能有效地防止對(duì)密鑰的窮盡搜索。當(dāng)然,Triple-DES加密解密的運(yùn)算量也會(huì)是DES的3倍。此方法由密碼專家Merkle及Hellman推薦。據(jù)稱,目前尚無(wú)人找到針對(duì)此方案的攻擊方法。
(2)具有獨(dú)立子密鑰的DES算法:每一輪迭代都使用一個(gè)不同的子密鑰,而不是由一個(gè)56位二進(jìn)制的密鑰產(chǎn)生。由于16輪迭代的每一輪使用一個(gè)48位二進(jìn)制的密鑰,因此這一方法可以增強(qiáng)DES的加密強(qiáng)度。但據(jù)密碼專家證明,利用261個(gè)選擇明文便可破譯這個(gè)DES變形,而不是人們所希望的2768個(gè)選擇明文。
(3)更換S盒的DES算法:比哈姆和按米爾證明通過優(yōu)化S盒的設(shè)計(jì)甚至優(yōu)化S盒本身的順序,可以抵抗差分密碼分析,以達(dá)到進(jìn)一步增強(qiáng)DES算法的加密強(qiáng)度的目的。3.3非對(duì)稱加密技術(shù)在非對(duì)稱加密技術(shù)當(dāng)中,加密和解密使用的密鑰互不相同,而且?guī)缀醪豢赡苡杉用苊荑€推導(dǎo)出解密密鑰。比較著名的公鑰密碼算法有RSA、背包密碼及McEliece密碼。最有影響的公鑰加密算法是RSA,它能夠抵抗到目前為止已知的所有密碼攻擊?,F(xiàn)今世界上廣為應(yīng)用的PGP郵件加密軟件就是基于RSA算法的。3.3.1非對(duì)稱密鑰體制
1.非對(duì)稱密鑰技術(shù)在開放的計(jì)算機(jī)網(wǎng)絡(luò)上安全地傳送和保管密鑰是一個(gè)嚴(yán)峻的問題。1976年,斯坦福大學(xué)的WhitfieldDiffie和MartinHellman為解決密鑰管理問題,提出了一種密鑰交換協(xié)議,允許通信雙方在不安全的媒體上交換信息,安全地達(dá)成一致的密鑰。在此思想基礎(chǔ)上,很快出現(xiàn)了“非對(duì)稱密鑰體制”,即“公開密鑰體制”,其中加密密鑰不同于解密密鑰,加密密鑰公之于眾,誰(shuí)都可以用,解密密鑰只有解密人自己知道,分別稱為“公開密鑰(公鑰)”和“秘密密鑰(私鑰)”。在常規(guī)的密鑰體制中,加解密雙方在進(jìn)行保密通信以前,雙方必須持有相同的密鑰。如果兩個(gè)從未見過面的人要進(jìn)行保密通信,那么他們必須事先協(xié)商出一個(gè)密鑰來。在高度自動(dòng)化的大型計(jì)算機(jī)網(wǎng)絡(luò)中,密鑰的分配是一個(gè)復(fù)雜的問題,人們?yōu)槌R?guī)密鑰體制設(shè)計(jì)了許多自動(dòng)化密鑰分配方案,但這些方案大多使用了高度安全的密鑰分配中心(KDC),使得網(wǎng)絡(luò)成本增加,性能降低。對(duì)數(shù)字簽名的強(qiáng)烈需要也是產(chǎn)生公開密鑰體制的一個(gè)原因。書信或文件是根據(jù)親筆簽名或印章來證明其真實(shí)性的,但在計(jì)算機(jī)網(wǎng)絡(luò)中傳達(dá)的文件又如何蓋章呢?這就是數(shù)字簽名所要解決的問題。由于公開密鑰算法不需要聯(lián)機(jī)密鑰服務(wù)器,密鑰分配協(xié)議簡(jiǎn)單,因此極大地簡(jiǎn)化了密鑰管理。除加密功能外,公鑰系統(tǒng)還可以提供數(shù)字簽名。DSS、Diffie-Hellman公開密鑰加密方法支持彼此互不相識(shí)的兩個(gè)實(shí)體間的安全通信,如信用卡交易,但缺乏對(duì)資源訪問的訪問控制。盡管用戶并不認(rèn)識(shí)某一實(shí)體,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年投資顧問業(yè)務(wù)合同
- 2026年兒科保健服務(wù)合同
- 2026年菜品供貨合同
- 2025年人工智能數(shù)據(jù)分析平臺(tái)研發(fā)項(xiàng)目可行性研究報(bào)告
- 2025年在線零售平臺(tái)升級(jí)項(xiàng)目可行性研究報(bào)告
- 2025年網(wǎng)站建設(shè)與搜索引擎優(yōu)化的結(jié)合可行性研究報(bào)告
- 2025年人工智能助手應(yīng)用項(xiàng)目可行性研究報(bào)告
- 2025年清潔生產(chǎn)技術(shù)開發(fā)項(xiàng)目可行性研究報(bào)告
- 現(xiàn)簽協(xié)議再簽合同
- 消防備案合同范本
- 早產(chǎn)合并新生兒呼吸窘迫綜合征護(hù)理查房
- 2025-2026學(xué)年人教鄂教版三年級(jí)科學(xué)上冊(cè)(全冊(cè))教學(xué)設(shè)計(jì)(附目錄)
- 2025年機(jī)關(guān)司機(jī)面試常見問題及答案集
- 警校偵查專業(yè)畢業(yè)論文
- 語(yǔ)言接觸語(yǔ)音變異-洞察及研究
- 保障性住房政策宣傳課件
- 常見脫發(fā)疾病診療概述
- 紅色景區(qū)展館游覽服務(wù)禮儀制作人江西旅游商貿(mào)職業(yè)劉歡01課件
- 生態(tài)教育心理干預(yù)-洞察及研究
- 電梯井鋼結(jié)構(gòu)施工合同(2025版)
- 抽成合同協(xié)議書范本
評(píng)論
0/150
提交評(píng)論