Ch020304第二講數(shù)據(jù)加密技術(shù)及應(yīng)用_第1頁
Ch020304第二講數(shù)據(jù)加密技術(shù)及應(yīng)用_第2頁
Ch020304第二講數(shù)據(jù)加密技術(shù)及應(yīng)用_第3頁
Ch020304第二講數(shù)據(jù)加密技術(shù)及應(yīng)用_第4頁
Ch020304第二講數(shù)據(jù)加密技術(shù)及應(yīng)用_第5頁
已閱讀5頁,還剩127頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第2講數(shù)據(jù)加密技術(shù)及應(yīng)用

主要內(nèi)容數(shù)據(jù)加密概述(概念、分類)古典密碼對稱加密技術(shù)非對稱加密技術(shù)數(shù)字簽名報文鑒別密鑰管理

本節(jié)學(xué)習(xí)目標(biāo):了解加密技術(shù)的發(fā)展及其相關(guān)知識掌握加密技術(shù)的原理最基本的加密算法對稱加密算法原理非對稱加密算法原理2.1數(shù)據(jù)加密概述在計算機(jī)網(wǎng)絡(luò)中,我們需要一種措施來保護(hù)數(shù)據(jù)的安全性,防止被一些別有用心的人利用或破壞,這在客觀上就需要一種強(qiáng)有力的安全措施來保護(hù)機(jī)密數(shù)據(jù)不被竊取或篡改。數(shù)據(jù)加密技術(shù)是為了提高信息系統(tǒng)及數(shù)據(jù)的安全性和保密性,防止秘密數(shù)據(jù)被外部破析所采用的主要技術(shù)手段之一。隨著信息技術(shù)的發(fā)展,網(wǎng)絡(luò)安全與信息保密日益引起人們的關(guān)注。我們除在法律和制度及管理手段上加強(qiáng)數(shù)據(jù)的安全管理外,還需要推動數(shù)據(jù)加密技術(shù)和物理防范技術(shù)的應(yīng)用和不斷發(fā)展。2.1.1數(shù)據(jù)加密的必要性

到了20世紀(jì)70年代,隨著信息的巨增,人們對信息的保密需求也從以往的軍事、政治和外交迅速發(fā)展到民用和商用領(lǐng)域,從而導(dǎo)致了密碼學(xué)理論和密碼技術(shù)的快速發(fā)展。同時,計算機(jī)技術(shù)和微電子技術(shù)的發(fā)展,也為密碼學(xué)理論的研究和實現(xiàn)提供了強(qiáng)有力的手段和工具。進(jìn)入20世紀(jì)80年代以來,隨著計算機(jī)網(wǎng)絡(luò)和傳統(tǒng)通信網(wǎng)絡(luò)的廣泛應(yīng)用,對密碼理論和技術(shù)的研究更呈快速上升的趨勢。密碼學(xué)在雷達(dá)、導(dǎo)航、遙控、遙測等領(lǐng)域發(fā)揮著重要作用的同時,開始滲透到通信、計算機(jī)及各種信息系統(tǒng)中。2.1.2數(shù)據(jù)加密的基本概念

密碼技術(shù)通過信息的變換或編碼,將機(jī)密的敏感消息變換成為難以讀懂的亂碼字符,以此達(dá)到兩個目的:一是使不知道如何解密的竊聽者不可能由其截獲的亂碼中得到任何有意義的信息;二是使竊聽者不可能偽造任何亂碼型的信息。研究密碼技術(shù)的學(xué)科稱為密碼學(xué),其中密碼編碼學(xué)主要對信息進(jìn)行編碼,實現(xiàn)信息隱蔽;而密碼分析學(xué)研究分析破譯密碼的學(xué)問。兩者相互對立,而又相互促進(jìn)。

加密的目的是防止機(jī)密信息的泄露,同時還可以用于證實信息源的真實性,驗證所接收到的數(shù)據(jù)的完整性。加密系統(tǒng)是指對信息進(jìn)行編碼和解碼所使用的過程、算法和方法的統(tǒng)稱。加密通常需要使用隱蔽的轉(zhuǎn)換,這個轉(zhuǎn)換需要使用密鑰進(jìn)行加密,并使用相反的過程進(jìn)行解密。密碼學(xué)術(shù)語消息、明文、密文加密、解密鑒別、完整性、抗抵賴性算法密鑰對稱算法、非對稱算法…消息和加密遵循國際命名標(biāo)準(zhǔn),加密和解密可以翻譯成:“Encipher(譯成密碼)”和“(Decipher)(解譯密碼)”。也可以這樣命名:“Encrypt(加密)”和“Decrypt(解密)”。消息被稱為明文。用某種方法偽裝消息以隱藏它的內(nèi)容的過程稱為加密,加了密的消息稱為密文,而把密文轉(zhuǎn)變?yōu)槊魑牡倪^程稱為解密,圖表明了加密和解密的過程。解密加密的反過程,獲得明文。需要說明的是,解密主要針對合法的接收者,而非法接收者在截獲密文后試圖從中分析出明文的過程稱為“破譯”。明文密文明文用M(Message,消息)或P(Plaintext,明文)表示,它可能是比特流、文本文件、位圖、數(shù)字化的語音流或者數(shù)字化的視頻圖像等。密文用C(Cipher)表示,也是二進(jìn)制數(shù)據(jù),有時和M一樣大,有時稍大。通過壓縮和加密的結(jié)合,C有可能比P小些。加密函數(shù)E作用于M得到密文C,用數(shù)學(xué)公式表示為:E(M)=C。解密函數(shù)D作用于C產(chǎn)生M,用數(shù)據(jù)公式表示為:D(C)=M。先加密后再解密消息,原始的明文將恢復(fù)出來,D(E(M))=M必須成立。鑒別、完整性和抗抵賴性除了提供機(jī)密性外,密碼學(xué)需要提供三方面的功能:鑒別、完整性和抗抵賴性。這些功能是通過計算機(jī)進(jìn)行社會交流,至關(guān)重要的需求。鑒別:消息的接收者應(yīng)該能夠確認(rèn)消息的來源;入侵者不可能偽裝成他人。完整性:消息的接收者應(yīng)該能夠驗證在傳送過程中消息沒有被修改;入侵者不可能用假消息代替合法消息??沟仲囆裕喊l(fā)送消息者事后不可能虛假地否認(rèn)他發(fā)送的消息。算法和密鑰現(xiàn)代密碼學(xué)用密鑰解決了這個問題,密鑰用K表示。K可以是很多數(shù)值里的任意值,密鑰K的可能值的范圍叫做密鑰空間。加密和解密運(yùn)算都使用這個密鑰,即運(yùn)算都依賴于密鑰,并用K作為下標(biāo)表示,加解密函數(shù)表達(dá)為:EK(M)=CDK(C)=MDK(EK(M))=M,如圖所示。有些算法使用不同的加密密鑰和解密密鑰,也就是說加密密鑰K1與相應(yīng)的解密密鑰K2不同,在這種情況下,加密和解密的函數(shù)表達(dá)式為:EK1(M)=CDK2(C)=M函數(shù)必須具有的特性是,DK2(EK1(M))=M,如圖所示。通常,將加密前的原始數(shù)據(jù)或消息稱為明文(plaintext),而將加密后的數(shù)據(jù)稱為密文(ciphertext),在密碼中使用并且只有收發(fā)雙方才知道的信息稱為密鑰(key)。通過使用密鑰將明文轉(zhuǎn)換成密文的過程稱為加密,其反向過程(將密文轉(zhuǎn)換為原來的明文)稱為解密。對明文進(jìn)行加密時采用的一組規(guī)則稱為加密算法。對密文解密時采用的一組規(guī)則稱為解密算法。加密算法和解密算法是在一組僅有合法用戶知道的密鑰的控制下進(jìn)行的,加密和解密過程中使用的密鑰分別稱為加密密鑰和解密密鑰。加密和解密的轉(zhuǎn)換關(guān)系如圖2-1所示。

圖2-1加密與解密的轉(zhuǎn)換關(guān)系圖2-2密碼通信系統(tǒng)模型

如圖2-2是加密與解密轉(zhuǎn)換關(guān)系的數(shù)學(xué)表示,稱為密碼通信系統(tǒng)模型,它由以下幾個部分組成:

·M:明文消息空間

·E:密文消息空間

·K1和K2:密鑰空間

·加密變換:·解密變換:

將稱為密碼系統(tǒng)。例如,將給定明文消息,密鑰,將明文m變換為密文c的過程為:2.1.3對稱加密和非對稱加密

目前已經(jīng)設(shè)計出的密碼系統(tǒng)是各種各樣的。如果以密鑰為標(biāo)準(zhǔn),可將密碼系統(tǒng)分為單鑰密碼系統(tǒng)和雙鑰密碼系統(tǒng)。其中,單鑰密碼系統(tǒng)又稱為對稱密碼或私鑰密碼系統(tǒng),雙鑰密碼系統(tǒng)又稱為非對稱密碼或公鑰密碼系統(tǒng)。相應(yīng)的,采用單鑰密碼系統(tǒng)的加密方法,同一個密鑰可同時用作信息的加密和解密,這種加密方法稱為對稱加密,也稱作單密鑰加密。另一種是采用雙鑰密碼系統(tǒng)的加密方法,在一個過程中使用兩個密鑰,一個用于加密,另一個用于解密,這種加密方法稱為非對稱加密,也稱為公鑰加密,因為其中的一個密鑰是公開的(另一個則需要保密)。1.對稱加密對稱加密的缺點(diǎn)是密鑰需要通過直接復(fù)制或網(wǎng)絡(luò)傳輸?shù)姆绞接砂l(fā)送方傳給接收方,同時無論加密還是解密都使用同一個密鑰,所以密鑰的管理和使用很不安全。如果密鑰泄露,則此密碼系統(tǒng)便被攻破。另外,通過對稱加密方式無法解決消息的確認(rèn)問題,并缺乏自動檢測密鑰泄露的能力。對稱加密的優(yōu)點(diǎn)是加密和解密的速度快。2.非對稱加密在非對稱加密中,加密密鑰與解密密鑰不同,此時不需要通過安全通道來傳輸密鑰,只需要利用本地密鑰發(fā)生器產(chǎn)生解密密鑰,并以此進(jìn)行解密操作。由于非對稱加密的加密和解密不同,且能夠公開加密密鑰,僅需要保密解密密鑰,所以不存在密鑰管理問題。非對稱加密的另一個優(yōu)點(diǎn)是可以用于數(shù)字簽名。但非對稱加密的缺點(diǎn)是算法一般比較復(fù)雜,加密和解密的速度較慢。2.1.4序列密碼和分組密碼根據(jù)密碼算法對明文處理方式的標(biāo)準(zhǔn)不同,可以將密碼系統(tǒng)分為序列密碼和分組密碼兩類。1.序列密碼序列密碼也稱為流密碼,其思想起源于20世紀(jì)20年代,最早的二進(jìn)制序列密碼系統(tǒng)是Vernam密碼。Vernam密碼將明文消息轉(zhuǎn)化為二進(jìn)制數(shù)字序列,密鑰序列也為二進(jìn)制數(shù)字序列,加密是按明文序列和密鑰序列逐位模2相加(即異或操作XOR)進(jìn)行,解密也是按密文序列和密鑰序列逐位模2相加進(jìn)行。當(dāng)Vernam密碼中的密鑰序列是完全隨機(jī)的二進(jìn)制序列時,就是著名的“一次一密”密碼。一次一密密碼是完全保密的,但它的密鑰產(chǎn)生、分配和管理都不方便。2.分組密碼分組密碼的加密方式是先將明文序列以固定長度進(jìn)行分組,然后將每一組明文用相同的密碼和加密函數(shù)進(jìn)行運(yùn)算。為了減小存儲量,并提高運(yùn)算速度,密鑰的長度一般不大,因而加密函數(shù)的復(fù)雜性成為系統(tǒng)安全的關(guān)鍵。分組密碼的優(yōu)點(diǎn)是不需要密鑰同步,具有較強(qiáng)的適用性,適宜作為加密標(biāo)準(zhǔn)。缺點(diǎn)是加密速度慢。DES、DEA是典型的分組密碼。

2.1.5網(wǎng)絡(luò)加密的實現(xiàn)方法基于密碼算法的數(shù)據(jù)加密技術(shù)是所有網(wǎng)絡(luò)上的通信安全所依賴的基本技術(shù)。目前對網(wǎng)絡(luò)數(shù)據(jù)加密主要有鏈路加密、節(jié)點(diǎn)對節(jié)點(diǎn)加密和端對端加密3種實現(xiàn)方式。1.鏈路加密鏈路加密又稱在線加密,它是對在兩個網(wǎng)絡(luò)節(jié)點(diǎn)間的某一條通信鏈路實施加密,是目前網(wǎng)絡(luò)安全系統(tǒng)中主要采用的方式。如圖2-3所示,在鏈路加密方式下,只對通信鏈路中的數(shù)據(jù)加密,而不對網(wǎng)絡(luò)節(jié)點(diǎn)內(nèi)的數(shù)據(jù)加密。圖2-3鏈路加密過程示意圖

在鏈路加密方式下,不僅對數(shù)據(jù)報文進(jìn)行加密,而且把路由信息、校驗和等控制信息全部加密。所以到某一中間節(jié)點(diǎn)時,先解密獲得路由信息和校驗和,進(jìn)行路由選擇。差錯檢測,然后再被加密,發(fā)送下一個節(jié)點(diǎn)。2.節(jié)點(diǎn)對節(jié)點(diǎn)加密

節(jié)點(diǎn)對節(jié)點(diǎn)加密是為了解決在節(jié)點(diǎn)中的數(shù)據(jù)是明文的這一缺點(diǎn),在中間節(jié)點(diǎn)里裝有用于加密和解密的保護(hù)裝置,由這個裝置來完成一個密鑰向另一個密鑰的交換。因而,除了在保護(hù)裝置里,即使在節(jié)點(diǎn)內(nèi)也不會出現(xiàn)明文。盡管節(jié)點(diǎn)對節(jié)點(diǎn)加密能給網(wǎng)絡(luò)數(shù)據(jù)提供較高的安全性,但它在操作方式上與鏈路加密類似:兩者均在通信鏈路上為傳輸?shù)南⑻峁┌踩?;都在中間節(jié)點(diǎn)先對消息進(jìn)行解密,然后進(jìn)行加密。因為要對所有傳輸?shù)臄?shù)據(jù)進(jìn)行加密,所以加密過程對用戶是透明的。3.端對端加密

為了解決鏈路加密和節(jié)點(diǎn)對節(jié)點(diǎn)加密中存在的不足,人們提出了端對端加密方式。端對端加密又稱脫線加密或包加密,它允許數(shù)據(jù)在從源節(jié)點(diǎn)被加密后,到終點(diǎn)的傳輸過程中始終以密文形式存在,消息在到達(dá)終點(diǎn)之前不進(jìn)行解密,只有消息到達(dá)目的節(jié)點(diǎn)后才被解密。因為消息在整個傳輸過程中均受到保護(hù),所以即使有節(jié)點(diǎn)被損壞也不會使消息泄露。因此,端對端加密方式可以實現(xiàn)按各通信對象的要求改變加密密鑰以及按應(yīng)用程序進(jìn)行密鑰管理等,而且采用這種方式可以解決文件加密問題。2.1.6軟件加密和硬件加密

目前具體的數(shù)據(jù)加密實現(xiàn)方法主要有兩種:軟件加密和硬件加密。1.軟件加密軟件加密一般是用戶在發(fā)送信息前,先調(diào)用信息安全模塊對信息進(jìn)行加密處理,然后進(jìn)行發(fā)送。到達(dá)接收端后,由用戶用相應(yīng)的解密軟件進(jìn)行解密處理,還原成為明文。優(yōu)點(diǎn)(實現(xiàn)方便、兼容性好)缺點(diǎn)(密鑰管理復(fù)雜,容易被攻擊,速度慢)2.硬件加密硬件加密是采用專門的硬件設(shè)備實現(xiàn)消息的加密和解密處理。隨著微電子技術(shù)的發(fā)展,現(xiàn)在許多加密產(chǎn)品都是特定的硬件加密形式。這些加、解密芯片被嵌入到通信線路中,然后對所有通過的數(shù)據(jù)進(jìn)行加密和解密處理。特點(diǎn)(易于管理。速度快,安全性高,易安裝)2.2古典密碼介紹2.1.1簡單替換密碼簡單替換密碼是古典密碼中使用最早的一種密碼機(jī)制,其實現(xiàn)方法是將明文按字母表中當(dāng)前的位置向后移動n位,便得到加密后的密文,這里的n就是密鑰。例如,當(dāng)n=3時(即以n=3為密鑰)時,字符表的替換如下(為便于表述,我們約定在明文中使用小寫字母,而在密文中使用大寫字母):明文:abcdefghijklmnopqrstuvwxyz密文:DEFGHIJKLMNOPQRSTUVWXYZABC

當(dāng)n=3時的密碼體制由于被凱撒(Caesar)成功使用,所以也稱為凱撒密碼。

25種嘗試,密碼空間有限。----》映射2.1.2雙重置換密碼使用雙重轉(zhuǎn)換密碼進(jìn)行加密時,首先將明文寫成給定大小的矩陣形式,然后根據(jù)給定的置換規(guī)則對行和列分別進(jìn)行置換。例如,對明文“attackattomorrow”寫成4×4的矩陣形式:

然后,按照(1,2,3,4)→(2,3,4,1)的規(guī)則進(jìn)行行置換,然后再按照(1,2,3,4)→(3,4,2,1)的規(guī)則進(jìn)行列置換。操作如下:

從而得到的密文為“ATKCMOOTOWRRTATA”。在雙重置換密碼體制中,密鑰由矩陣的大小以及行、列置換規(guī)則組成。接收者如果知道密鑰,就可以通過加密過程使用的矩陣大小以及行、列的置換規(guī)則來進(jìn)行逆向操作,從而恢復(fù)得到明文。例如,對于前面得到的密文,可以先寫成4×4的矩陣形式,然后將列進(jìn)行(3,4,2,1)→(1,2,3,4)的置換,再將行進(jìn)行(2,3,4,1)→(1,2,3,4)的置換。操作如下:于是得到明文“attackatwomorrow”。2.1.3“一次一密”密碼最著名的序列密碼是“一次一密”密碼,也稱為“一次一密亂碼本加密機(jī)制”。其中,一次一密亂碼本是一個大的不重復(fù)的隨機(jī)密鑰字符集,這個密鑰字符集被寫在幾張紙上,并粘合成一個本子,該本子稱為亂碼本。每個密鑰僅對一個消息使用一次。發(fā)送方用亂碼本中的密鑰對所發(fā)送的消息加密,然后銷毀亂碼本中用過的一頁或用過的磁帶部分。接收方有一個同樣的亂碼本,并依次使用亂碼本上的每一個密鑰去解密密文的每個字符。接收方在解密消息后銷毀亂碼本中用過的一頁或用過的磁帶部分。新的消息則用亂碼本的新的密鑰進(jìn)行加密和解密。“一次一密”密碼是一種理想的加密方案,理論上講,實現(xiàn)了“一次一密”密鑰管理的密碼是不可破譯的。2.3對稱加密—流密碼流密碼(即序列密碼)是一種類似于“一次一密”密碼體制,因為在加密過程中是將密鑰流(密鑰的二進(jìn)制位)與等長的明文的二進(jìn)制位進(jìn)行模2運(yùn)行,在解密過程中是將密鑰流與密文進(jìn)行逐位模2運(yùn)行,所以流密碼是一種對稱加密方式。2.3.1流密碼的工作原理

在現(xiàn)代計算機(jī)網(wǎng)絡(luò)中,由于報文、數(shù)據(jù)和圖像等消息都可以通過某一編碼技術(shù)轉(zhuǎn)化為二進(jìn)制數(shù)字序列,因而可假定流密碼中的明文空間M是由所有可能的二進(jìn)制數(shù)字序列組成的集合。設(shè)K為密鑰空間,由于流密碼應(yīng)使用盡可能長的密鑰,而太長的密鑰在存儲、分配等方面都有一定的困難,于是研究人員采用一個短的密鑰k∈K來控制某種算法A產(chǎn)生出長的密鑰序列,供加密和解密使用。而短密鑰k的存儲和分配在實現(xiàn)方式上都比較容易。根據(jù)密碼學(xué)的約定,算法A是公開的,而密鑰k是保密的。2.4.2A5/1圖2-5A5/1密鑰流生成器的工作過程2.4對稱加密—分組密碼流密碼和分組密碼都屬于對稱密鑰算法,流密碼的基本思想是利用密鑰產(chǎn)生一個密鑰流,并通過相應(yīng)的規(guī)則對明文串進(jìn)行加密和解密處理。而分組密碼是將明文分為固定長度的分組,然后通過若干輪(round)函數(shù)的迭代操作來產(chǎn)生密文。函數(shù)由于在每一輪的操作中都使用,所以稱為輪函數(shù),其本輪的輸入是上一輪的輸出加上密鑰。2.4.1Feistel密碼結(jié)構(gòu)圖2-6Feistel網(wǎng)絡(luò)結(jié)構(gòu)圖2-7Feistel的加密和解密過程2.4.2數(shù)據(jù)加密標(biāo)準(zhǔn)(DES)

數(shù)據(jù)加密標(biāo)準(zhǔn)(DataEncryptionStandard,DES)是由IBM公司在1971年設(shè)計的一個加密算法。1977年由美國國家標(biāo)準(zhǔn)局(現(xiàn)美國國家標(biāo)準(zhǔn)技術(shù)委員會)作為第46號聯(lián)邦信息處理標(biāo)準(zhǔn)而采用的一種數(shù)據(jù)加密標(biāo)準(zhǔn)。之后,DES成為金融界及其他非軍事行業(yè)應(yīng)用最為廣泛的對稱加密標(biāo)準(zhǔn)。DES是分組密碼的典型代表,也是第一個被公布出來的標(biāo)準(zhǔn)算法。DES的算法完全公開,在密碼學(xué)史上開創(chuàng)了先河。DES是迄今為止世界上應(yīng)用最為廣泛的一種分組密碼算法。1.DES的算法描述

DES是一個完全遵循Feistel密碼結(jié)構(gòu)的分組密碼算法。DES將明文以64bit為單位分組進(jìn)行加密,在一次加密過程中以64bit為一組的明文從算法的一端輸入,同時在另一端輸入64bit的密文。DES中密鑰的長度通常應(yīng)為64bit,但其中后面的8bit作為奇偶校驗使用,所以實際使用的只有56bit。如圖2-8所示,DES的基本加密過程總共有19個步驟。其中,第1步是一個與密鑰無關(guān)的置換操作,它直接將64bit的明文分為左右兩部分,每一部分為32bit。最后一步(即第19步)正好是對第1步中置換的逆操作。而第18步是交換左32bit和右32bit。其他16步的功能完全相同,但使用了原始密鑰的不同子密鑰ki作為輪函數(shù)F的參數(shù)。DES算法的設(shè)計允許使用同樣的密鑰來完成解密過程,而且解密是加密的逆過程。這正是任何一個對稱密鑰算法必須滿足的一個條件。

IP置換表和IP-1逆置換表輸入的64位數(shù)據(jù)按置換IP表進(jìn)行重新組合,并把輸出分為L0、R0兩部分,每部分各長32位,其置換IP表如表所示。58501234261810260524436282012462544638302214664564840322416857494133251791595143352719113615345372921135635547393123157將輸入64位比特的第58位換到第一位,第50位換到第二位,依此類推,最后一位是原來的第7位。L0、R0則是換位輸出后的兩部分,L0是輸出的左32位,R0是右32位。比如:置換前的輸入值為D1D2D3…D64,則經(jīng)過初始置換后的結(jié)果為:L0=D58D50...D8,R0=D57D49...D7。經(jīng)過16次迭代運(yùn)算后。得到L16、R16,將此作為輸入,進(jìn)行逆置換,即得到密文輸出。逆置換正好是初始置的逆運(yùn)算,例如,第1位經(jīng)過初始置換后,處于第40位,而通過逆置換IP-1,又將第40位換回到第1位,其逆置換IP-1規(guī)則表8-2所示。逆置換表IP-140848165624643239747155523633138646145422623037545135321612936444125220602835343115119592734242105018582633141949175725圖2-8DES算法示意圖下面是對DES的總結(jié):·是使用16輪操作的Feistel結(jié)構(gòu)密碼。·分組長度為64bit。·使用56bit的密鑰。·每一輪使用48bit的子密鑰,每一個子密鑰都是由56bit的密鑰的子集構(gòu)成。2.DES中每一輪操作的過程如圖2-9是16輪Feistel結(jié)構(gòu)密碼操作中其中一輪的示意圖。下面對圖2-8中每一輪操作進(jìn)行介紹。因為DES算法中每一組明文的長度為64bit,所以根據(jù)Feistel結(jié)構(gòu)密碼的規(guī)則,將其分為左右兩部分,每一部分為32bit。與所有Feistel結(jié)構(gòu)密碼一樣,每一輪的處理都遵循以下的數(shù)學(xué)描述:圖2-9DES中每一輪操作的示意圖

擴(kuò)展置換的算法是從Ri-1的32位中選取某些位,構(gòu)成48位。即將32比特擴(kuò)展變換為48位,變換規(guī)則根據(jù)E位選擇表,如表所示。32123454567898910111213121314151617161718192021202122232425242526272829282930313213.DES中的S盒“S盒”是DES算法中的核心。正是由于S盒的重要性,所以相關(guān)技術(shù)細(xì)節(jié)一直未被公開。這也是有人懷疑DES算法留有安全后門的一個原因,不過S盒確實增加了DES算法抵抗密碼攻擊的能力。S盒在輪函數(shù)F中的產(chǎn)用如圖2-10所示。一次替換由一組共8個S盒組成。其中每一個S盒都接受6bit的輸入,產(chǎn)生4bit的輸出。這樣,48bit的輸入最后得到32bit的輸出。圖2-10S盒的替換操作S盒的輸出作為P變換的輸入,P的功能是對輸入進(jìn)行置換,P換位表如表所示16720212912281711523265183110282414322739191330622114254.DES算法的特點(diǎn)

DES算法綜合應(yīng)用于置換、替換、移位等多種密碼技術(shù)。在算法結(jié)構(gòu)上采用了Feistel密碼結(jié)構(gòu),結(jié)構(gòu)緊湊,便于實現(xiàn)。在一次加密過程中,DES使用了初始置換和逆初始置換各1次,置換操作16次,這樣做的目的是將數(shù)據(jù)徹底打亂重排。S盒是DES保密性的關(guān)鍵,它將6bit的輸入映射為4bit的輸出,是一個非線性變換(其本質(zhì)是數(shù)據(jù)壓縮),具有較高的保密性。

DES算法也存在一些問題:一是56bit的密鑰長度太短,影響了DES的保密性;二是在16次迭代加密過程中,使用的16個子密鑰可能存在弱密鑰或半弱密鑰現(xiàn)象。DES算法的應(yīng)用誤區(qū)DES算法具有比較高安全性,到目前為止,除了用窮舉搜索法對DES算法進(jìn)行攻擊外,還沒有發(fā)現(xiàn)更有效的辦法。而56位長的密鑰的窮舉空間為256,這意味著如果一臺計算機(jī)的速度是每一秒種檢測一百萬個密鑰,則它搜索完全部密鑰就需要將近2285年的時間,可見,這是難以實現(xiàn)的,當(dāng)然,隨著科學(xué)技術(shù)的發(fā)展,當(dāng)出現(xiàn)超高速計算機(jī)后,我們可考慮把DES密鑰的長度再增長一些,以此來達(dá)到更高的保密程度。2.4.3三重數(shù)據(jù)加密標(biāo)準(zhǔn)(3DES)2.4.4高級加密標(biāo)準(zhǔn)(AES)由于DES存在的缺陷出現(xiàn)了3DES,但3DES在應(yīng)用中也難以避免類似于DES的厄運(yùn)。為此,美國標(biāo)準(zhǔn)和技術(shù)委員會(NIST)于1997年開始向世界各地的研究人員發(fā)起邀請,征集一個新的加密標(biāo)準(zhǔn)方案,這個方案就是高級加密標(biāo)準(zhǔn)(AdvancedEncryptionStandard,AES)。該加密標(biāo)準(zhǔn)要求具有以下的功能特點(diǎn):·必須是一個對稱加密算法?!け仨毠_所有的算法設(shè)計。·必須支持128、192和256bit密鑰長度?!た赏瑫r支持軟件和硬件兩種實現(xiàn)方式。1.AES的特點(diǎn)

1998年8月,NIST根據(jù)對算法的安全性、效率、簡單性、靈活性和內(nèi)存需求等方面的綜合考慮,從收到的15個提案中確定了其中5個方案。通過對這5個方案的無記名投票表決,于2001年10月確定了Rijndael作為美國政府標(biāo)準(zhǔn),并作為聯(lián)邦信息處理標(biāo)準(zhǔn)FIPS197被正式發(fā)表。在Rijndael中,密鑰長度和數(shù)據(jù)塊長度可以單獨(dú)選擇,之間沒有必然的聯(lián)系。密鑰和數(shù)據(jù)塊的長度以32bit為間隔遞增,從128bit到256bit之間。在具體實施中,AES一般有兩種方案:一種是數(shù)據(jù)塊為128bit,而密鑰也為128bit;一種是數(shù)據(jù)塊為128bit,而密鑰為256bit。而原定的192bit的密鑰幾乎不使用。

與DES一樣,AES也是一種迭代分組密碼,同樣使用了多輪置換和替換操作,并且操作是可逆的。但與DES不同的是,AES算法不是Feistel密碼結(jié)構(gòu),AES的操作輪數(shù)在10~14之間。其中當(dāng)數(shù)據(jù)塊和密鑰都為128bit時,輪數(shù)為10;隨著數(shù)據(jù)塊和密鑰長度的增加,操作輪數(shù)也會隨之增加,最大值為14。不過,在每一次操作中,DES是直接以bit為單位,而在AES中則以8bit的字節(jié)為單位。這樣做的目的是便于通過硬件和軟件實現(xiàn)。AES的每一輪操作包括4個函數(shù):·ByteSub(字節(jié)替換):用一張稱為S盒子的固定表來執(zhí)行字節(jié)到字節(jié)的替換?!hiftRow(行移位置換):行與行之間執(zhí)行簡單的置換?!ixColumn(列混淆替換):列中的每一個字節(jié)替換成該列所有字節(jié)的一個函數(shù)?!ddRoundKey(輪密鑰加):用當(dāng)前的數(shù)據(jù)塊與擴(kuò)充密鑰的一部分進(jìn)行簡單的XOR運(yùn)算。以上個函數(shù)中,具體為1次置換3次替換。2.4.5其他分組密碼算法

在分組密碼算法中,本書重點(diǎn)介紹了DES、3DES和AES。除此之外,本節(jié)將簡要介紹幾種重要的分組密碼算法。1.國際數(shù)據(jù)加密算法(IDEA)

DES加密標(biāo)準(zhǔn)的出現(xiàn)在密碼學(xué)上具有劃時代的意義,但比DES更安全的加密算法也在不斷出現(xiàn),除3DES外,另一個對稱加密系統(tǒng)是國際數(shù)據(jù)加密算法(InternationalDataEncryptionAlgorithm,IDEA)。IDEA的明文和密文都是64位,但密鑰長度為128位,因而更加安全。IDEA和DES相似,也是先將明文劃分為一個個64位的數(shù)據(jù)塊,然后經(jīng)過8輪編碼和一次替換,得出64位的密文。同時,對于每一輪的編碼,每一個輸出位都與每一個輸入位有關(guān)。IDEA比DES的加密性好,加密和解密的運(yùn)算速度很快,無論是軟件還是硬件,實現(xiàn)起來都比較容易。2.RC5/RC6

RC5和RC6分組密碼算法是由MIT(麻省理工學(xué)院)的RonRivest于1994年提出的,并由RSA實驗室對其性能進(jìn)行分析。RC5適合于硬件和軟件實現(xiàn),只使用在微處理上。RC5的設(shè)計特性為:(1)快速。RC5是面向字的,在基本操作中每次對數(shù)據(jù)的整個字進(jìn)行處理。(2)適用于不同字長的處理器。一個字中的位數(shù)作為RC5的一個參數(shù),不同的字長使用不同的算法。(3)可變的循環(huán)次數(shù)。循環(huán)次數(shù)是RC5的另一個參數(shù),這個參數(shù)使RC5可以在更高的速度和更高的安全性之間進(jìn)行折衷選擇。(4)可變長度的密鑰。密鑰長度是RC5的第3個參數(shù),這個參數(shù)可以用來在更高的速度和更高的安全性之間進(jìn)行折衷選擇。(5)結(jié)構(gòu)簡單。RC5的結(jié)構(gòu)簡單,易于實現(xiàn),并簡化了確定算法的操作強(qiáng)度。(6)內(nèi)存要求低。由于RC5算法對設(shè)備內(nèi)存的要求很低,所以可以應(yīng)用在智能卡等有限內(nèi)存的設(shè)備上。(7)大量使用數(shù)據(jù)依賴循環(huán)。RC5中移位的位數(shù)依賴于數(shù)據(jù)的循環(huán)操作,以加強(qiáng)算法對密碼分析的抵抗能力。2.5非對稱加密

非對稱加密也稱為公鑰加密。在對稱加密系統(tǒng)中,加密和解密的雙方使用的是相同的密鑰。在實際情況下,怎么才能實現(xiàn)加密和解密的密鑰一致呢?一般有兩種方式:事先約定和用信使來傳送。如果加密和解密的雙方對密鑰進(jìn)行了事先約定,就會給密鑰的管理和更換帶來極大的不便;如果使用信使來傳送密鑰,很顯然是不安全的。另一種可行的方法是通過密鑰分配中心(KeyDistributionCenter,KDC)來管理密鑰,這種方法雖然安全性較高,但所需要的成本也會增大。而非對稱加密可以解決此問題。2.5.1非對稱加密概述非對稱加密中使用的公開密鑰(或公鑰密鑰)的概念是在解決對稱加密的單密碼方式中最難解決的兩個問題時提出的,這兩個問題是:密鑰分配和數(shù)字簽名。在使用單鑰密碼進(jìn)行加密通信時,對于密鑰的分配和管理一般有兩種方式:一種是通信雙方擁有一個共享的密鑰;另一種是借助于一個密鑰分配中心。在非對稱加密體系中,密鑰被分解為一對,即公開密鑰和私有密鑰。這對密鑰中的任何一把都可以作為公開密鑰(加密密鑰)通過非保密方式向他人公開,而另一把作為私有密鑰(解密密鑰)加以保存。在加密系統(tǒng)中,公開密鑰用于加密,私有密鑰用于解密。私有密鑰只能由生成密鑰的交換方掌握,公開密鑰可廣泛公布,但它只對應(yīng)于生成密鑰的交換方。非對稱加密算法具有如下的特點(diǎn):·用公開密鑰加密的數(shù)據(jù)(消息),只有使用相應(yīng)的私有密鑰才能解密。這一過程稱為加密;·同樣,使用私用密鑰加密的數(shù)據(jù)(消息),也只有相應(yīng)的公開密鑰才能解密。這一過程稱為數(shù)字簽名。如圖2-15所示,如果某一用戶要給用戶A發(fā)送一個數(shù)據(jù),這時該用戶會在公開的密鑰中找到與用戶A所擁有的私有密鑰對應(yīng)的一個公開密鑰,然后用此公開密對數(shù)據(jù)進(jìn)行加密后發(fā)送到網(wǎng)絡(luò)中傳輸。用戶A在接收到密文后便通過自己的私有密鑰進(jìn)行解密,因為數(shù)據(jù)的發(fā)送方使用接收方的公開密鑰來加密數(shù)據(jù),所以只有用戶A才能夠讀懂該密文。當(dāng)其他用戶獲得該密文明,因為他們沒有加密該信息的公開密鑰對應(yīng)的私有密鑰,所以無法讀懂該密文。圖2-15非對稱密鑰的加密和解密過程

非對稱加密方式可以使通信雙方無須事先交換密鑰就可以建立安全通信,廣泛應(yīng)用于身份認(rèn)證、數(shù)字簽名等信息交換領(lǐng)域。公開密鑰體系是基于“單向陷門函數(shù)”的,即一個函數(shù)正向計算是很容易的,但是反向計算則是非常困難的。陷門的目的是確保攻擊者不能使用公開的信息得出秘密的信息。例如,計算兩個質(zhì)數(shù)p和q的乘積n=pq是很容易的,但是要分解已知的n成為p和q是非常困難的。2.5.2RSA

RSA算法是Rivest、Shamir和Adleman于1977年提出的第一個完善的公開密鑰算法(RSA即三個發(fā)明人名字的第一個字母),其安全性是基于分解大整數(shù)的困難性。在RSA算法中使用了這樣一個基本事實:到目前為止,無法找到一個有效的算法來分解兩個大質(zhì)數(shù)之積。RSA算法的安全性RSA的安全性依賴于大數(shù)分解,但是否等同于大數(shù)分解一直未能得到理論上的證明,因為沒有證明破解RSA就一定需要作大數(shù)分解。假設(shè)存在一種無須分解大數(shù)的算法,那它肯定可以修改成為大數(shù)分解算法。目前,RSA的一些變種算法已被證明等價于大數(shù)分解。不管怎樣,分解n是最顯然的攻擊方法?,F(xiàn)在,人們已能分解多個十進(jìn)制位的大素數(shù)。因此,模數(shù)n必須選大一些,因具體適用情況而定

PGP加密技術(shù)PGP(PrettyGoodPrivacy)加密技術(shù)是一個基于RSA公鑰加密體系的郵件加密軟件,提出了公共鑰匙或不對稱文件的加密技術(shù)。PGP簡介PGP加密技術(shù)的創(chuàng)始人是美國的PhilZimmermann。他的創(chuàng)造性把把RSA公鑰體系和傳統(tǒng)加密體系的結(jié)合起來,并且在數(shù)字簽名和密鑰認(rèn)證管理機(jī)制上有巧妙的設(shè)計,因此PGP成為目前幾乎最流行的公鑰加密軟件包。由于RSA算法計算量極大,在速度上不適合加密大量數(shù)據(jù),所以PGP實際上用來加密的不是RSA本身,而是采用傳統(tǒng)加密算法IDEA,IDEA加解密的速度比RSA快得多。PGP隨機(jī)生成一個密鑰,用IDEA算法對明文加密,然后用RSA算法對密鑰加密。收件人同樣是用RSA解出隨機(jī)密鑰,再用IEDA解出原文。這樣的鏈?zhǔn)郊用芗扔蠷SA算法的保密性(Privacy)和認(rèn)證性(Authentication),又保持了IDEA算法速度快的優(yōu)勢。PGP加密軟件PGP加密軟件最新版本是8.0.2,使用PGP8.0.2i可以簡潔而高效地實現(xiàn)郵件或者文件的加密、數(shù)字簽名。PGP8.0.2的安裝界面如圖所示。下面的幾步全面采用默認(rèn)的安裝設(shè)置,因為是第一次安裝,所以在用戶類型對話框中選擇“No,IamaNewUser”,如圖所示。根據(jù)需要選擇安裝的組件,一般根據(jù)默認(rèn)選項就可以了:“PGPdiskVolumeSecurity”的功能是提供磁盤文件系統(tǒng)的安全性;“PGPmailforMicrosoftOutlook/OutlookExpress”提供郵件的加密功能。如圖所示。案例使用PGP產(chǎn)生密鑰因為在用戶類型對話框中選擇了“新用戶”,在計算機(jī)啟動以后,自動提示建立PGP密鑰,如圖8-20所示。點(diǎn)擊按鈕“下一步”,在用戶信息對話框中輸入相應(yīng)的姓名和電子郵件地址,如圖所示。在PGP密碼輸入框中輸入8位以上的密碼并確認(rèn),如圖所示。然后PGP會自動產(chǎn)生PGP密鑰,生成的密鑰如圖所示。案例使用PGP加密文件使用PGP可以加密本地文件,右擊要加密的文件,選擇PGP菜單項的菜單“Encrypt”,如圖所示。系統(tǒng)自動出現(xiàn)對話框,讓用戶選擇要使用的加密密鑰,選中一個密鑰,點(diǎn)擊按鈕“OK”,如圖所示。目標(biāo)文件被加密了,在當(dāng)前目錄下自動產(chǎn)生一個新的文件,如圖所示。打開加密后的文件時,程序自動要求輸入密碼,輸入建立該密鑰時的密碼。如圖所示。案例

使用PGP加密郵件PGP的主要功能是加密郵件,安裝完畢后,PGP自動和Outlook或者OutlookExpress關(guān)聯(lián)。和OutlookExpress關(guān)聯(lián)如圖所示。利用Outlook建立郵件,可以選擇利用PGP進(jìn)行加密和簽名,如圖所示。2.5.3其他非對稱加密算法混合加密算法混合加密體制實際網(wǎng)絡(luò)多采用雙鑰和單鑰密碼相結(jié)合的混合加密體制,即加解密時采用單鑰密碼,密鑰傳送則采用雙鑰密碼。這樣既解決了密鑰管理的困難,又解決了加、解密速度的問題。2.6數(shù)字簽名2.6.1數(shù)字簽名的概念和要求數(shù)字簽名(digitalsignature)在TS07498-2標(biāo)準(zhǔn)中的定義為:“附加在數(shù)據(jù)單元上的一些數(shù)據(jù),或是對數(shù)據(jù)單元所作的密碼變換。這種數(shù)據(jù)和變換允許數(shù)據(jù)單元的接收者用以確認(rèn)數(shù)據(jù)單元來源和數(shù)據(jù)單元的完整性,并保護(hù)數(shù)據(jù),防止被人(例如接收者)進(jìn)行偽造”。數(shù)字簽名必須同時滿足以下的要求:·發(fā)送者事后不能否認(rèn)對報文的簽名;·接收者能夠核實發(fā)送者發(fā)送的報文簽名;·接收者不能偽造發(fā)送者的報文簽名;·接收者不能對發(fā)送者的報文進(jìn)行部分篡改;·網(wǎng)絡(luò)中的其他用戶不能冒充成為報文的接收者或發(fā)送者。數(shù)字簽名是實現(xiàn)安全認(rèn)證的重要工具和手段,它能夠提供身份認(rèn)證、數(shù)據(jù)完整性、不可抵賴等安全服務(wù)。其中:·防冒充(偽造)。其他人不能偽造對消息的簽名,因為私有密鑰只有簽名者自己知道和擁有,所以其他人不可能構(gòu)造出正確的簽名數(shù)據(jù)?!た设b別身份。接收者使用發(fā)送者的公開密鑰對簽名報文進(jìn)行解密運(yùn)算,并證明對方身份是真實的?!し来鄹?。即防止破壞信息的完整性。簽名數(shù)據(jù)和原有文件經(jīng)過加密處理已形成了一個密文數(shù)據(jù),不可能被篡改,從而保證了數(shù)據(jù)的完整性。·防抵賴。數(shù)字簽名可以鑒別身份,不可能冒充偽造。2.6.2利用對稱加密方式實現(xiàn)數(shù)字簽名在利用對稱加密方式實現(xiàn)數(shù)字簽名的過程中,需要一個大家共同依賴的權(quán)威機(jī)構(gòu)作為第三方。數(shù)字簽名的用戶都要向該權(quán)威機(jī)構(gòu)申請一個密鑰,這個密鑰在該系統(tǒng)中是唯一的,即唯一標(biāo)識了某一個用戶。當(dāng)權(quán)威機(jī)構(gòu)向用戶分配了密鑰后,將該密碼的副本保存在該機(jī)構(gòu)的數(shù)據(jù)庫中,用以識別用戶的真實性。

2.6.3利用非對稱加密方式實現(xiàn)數(shù)字簽名在利用對稱加密實現(xiàn)的數(shù)字簽名中,用戶必須依賴第三方的權(quán)威機(jī)構(gòu),所以權(quán)威機(jī)構(gòu)的可信任度是決定該方式能否正常使用的關(guān)鍵。然而,非對稱加密解決了這一問題。利用非對稱加密方式實現(xiàn)數(shù)字簽名,主要是基于在加密和解密過程中D(E(P))=P和E(D(P))=P兩種方式的同時實現(xiàn),其中前面介紹的RSA算法就具有此功能。具體實現(xiàn)過程如圖2-18所示,首先發(fā)送方利用自己的私有密鑰對消息進(jìn)行加密(這次加密的目的是實現(xiàn)簽名),接著對經(jīng)過簽名的消息利用接收方的公開密鑰再進(jìn)行加密(這次加密的目的是保證消息傳送的安全性)。這樣,經(jīng)過雙重加密后的消息(密文)通過網(wǎng)絡(luò)傳送到接收方。接收方在接收到密文后,首先利用接收方的私有密鑰進(jìn)行第一次解密(保證數(shù)據(jù)的完全性),接著再用發(fā)送方的公開密鑰進(jìn)行第二次解密(鑒別簽名的真實性),最后得到明文。圖2-18具有保密功能的數(shù)字簽名實現(xiàn)過程現(xiàn)在Alice向Bob傳送數(shù)字信息,為了保證信息傳送的保密性、真實性、完整性和不可否認(rèn)性,需要對要傳送的信息進(jìn)行數(shù)字加密和數(shù)字簽名,其傳送過程為:1.Alice準(zhǔn)備好要傳送的數(shù)字信息(明文)。2.Alice對數(shù)字信息進(jìn)行哈希運(yùn)算,得到一個信息摘要。3.Alice用自己的私鑰對信息摘要進(jìn)行加密得到Alice的數(shù)字簽名,并將其附在數(shù)字信息上。4.Alice隨機(jī)產(chǎn)生一個加密密鑰,并用此密鑰對要發(fā)送的信息進(jìn)行加密,形成密文。5.Alice用Bob的公鑰對剛才隨機(jī)產(chǎn)生的加密密鑰進(jìn)行加密,將加密后的DES密鑰連同密文一起傳送給Bob6.Bob收到Alice傳送過來的密文和加過密的DES密鑰,先用自己的私鑰對加密的DES密鑰進(jìn)行解密,得到DES密鑰。7.Bob然后用DES密鑰對收到的密文進(jìn)行解密,得到明文的數(shù)字信息,然后將DES密鑰拋棄(即DES密鑰作廢)。8.Bob用Alice的公鑰對Alice的數(shù)字簽名進(jìn)行解密,得到信息摘要。9Bob用相同的hash算法對收到的明文再進(jìn)行一次hash運(yùn)算,得到一個新的信息摘要。10.Bob將收到的信息摘要和新產(chǎn)生的信息摘要進(jìn)行比較,如果一致,說明收到的信息沒有被修改過。2.7報文鑒別報文鑒別(messageauthentication)是在信息

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論