信息保密技術(shù)_第1頁
信息保密技術(shù)_第2頁
信息保密技術(shù)_第3頁
信息保密技術(shù)_第4頁
信息保密技術(shù)_第5頁
已閱讀5頁,還剩66頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第2講信息嚴(yán)密技術(shù)密碼學(xué)開展簡史密碼學(xué)根本概念古典密碼對(duì)稱加密體制非對(duì)稱加密體制2.1密碼學(xué)的開展簡史密碼學(xué)有著悠久而誘人的歷史,從古至今已有4000多年的歷史了,密碼學(xué)的開展大致閱歷了三個(gè)階段:手工加密階段、機(jī)械加密階段和計(jì)算機(jī)加密階段。1.手工加密階段早在公元前1900年左右,一位佚名的埃及書吏在碑文中運(yùn)用了非規(guī)范的象形文字,這或許是目前知最早的密碼術(shù)實(shí)例。古典密碼的加密方法普通是采用文字置換,主要運(yùn)用手工方式實(shí)現(xiàn),因此我們稱這時(shí)期為密碼學(xué)開展的手工階段。2.機(jī)械階段到了20世紀(jì)20年代,隨著機(jī)械和機(jī)電技術(shù)的成熟,以及電報(bào)和無級(jí)電需求的出現(xiàn),引起了密碼設(shè)備的一場革命-發(fā)明了轉(zhuǎn)輪密碼機(jī),轉(zhuǎn)輪機(jī)的出現(xiàn)是密碼學(xué)的重要標(biāo)志之一。3.計(jì)算機(jī)階段計(jì)算機(jī)科學(xué)的開展刺激和推進(jìn)了密碼學(xué)進(jìn)入計(jì)算機(jī)階段。1949年,C.Shannon發(fā)表了“嚴(yán)密系統(tǒng)的通訊實(shí)際〞,為密碼學(xué)的開展奠定了實(shí)際根底,使密碼學(xué)成為一門真正的科學(xué)。2.2密碼學(xué)根本概念密碼學(xué)〔Cryptology〕研討進(jìn)展嚴(yán)密通訊和如何實(shí)現(xiàn)信息嚴(yán)密的問題,詳細(xì)指通訊嚴(yán)密傳輸和信息存儲(chǔ)加密等。密碼學(xué)包括兩個(gè)分支:密碼編碼學(xué)〔Cryptography〕和密碼分析學(xué)〔Cryptanalyst〕。密碼編碼學(xué)研討怎樣編碼、如何對(duì)音訊進(jìn)展加密,密碼分析學(xué)研討如何對(duì)密文進(jìn)展破譯。明文〔Message〕:待加密的信息,用M或P〔Plaintext〕表示。明文的集合構(gòu)成明文空間,記為SM={M}。密文〔Ciphertext〕:經(jīng)過加密處置后的方式,用C表示。密文的集體構(gòu)成密文空間,記為SC={C}。密鑰〔Key〕:用于加密或解密的參數(shù),用K表示。密鑰的集合構(gòu)成密鑰空間,記為SK={K}。加密〔Encryption〕:用某種方法偽裝音訊以隱藏它的內(nèi)容的過程。加密算法〔EncryptionAlgorithm〕:將明文變換為密文的變換函數(shù),通常用E表示,即E:SM→SC,表示為C=Ek(M)。2.2密碼學(xué)根本概念解密〔Decryption〕:把密文轉(zhuǎn)換成明文的過程。解密算法〔DecryptionAlgorithm〕:將密文變換為明文的變換函數(shù),通常用D表示,即D:SC→SM,表示為M=Dk(C)。密碼分析〔Cryptanalysis〕:截獲密文者試圖經(jīng)過分析從截獲的密文推斷出原來的明文或密鑰。密碼分析員〔Cryptanalyst〕:從事密碼分析的人。被動(dòng)攻擊(Passiveattack):對(duì)一個(gè)嚴(yán)密系統(tǒng)采取截獲密文進(jìn)展分析的攻擊。這種攻擊對(duì)密文沒有進(jìn)展任何破壞。自動(dòng)攻擊(Activeattack):攻擊者非法侵入一個(gè)密碼系統(tǒng),采用偽造、修正、刪除、等手段向系統(tǒng)注入假音訊進(jìn)展欺騙。這種攻擊對(duì)密文具有破壞作用。密碼體制:由明文空間SM、密文空間SC、密鑰空間SK、加密算法E和解密算法D構(gòu)成的五元組{SM、SC、SK、E、D},稱為密碼體制。2.2密碼學(xué)根本概念密碼系統(tǒng)〔Cryptosystem〕:用于加密和解密的系統(tǒng)。加密時(shí),系統(tǒng)輸入明文和加密密鑰,加密變換后,輸出密文;解密時(shí),系統(tǒng)輸入密文和解密密鑰,解密變換后,輸出明文。一個(gè)密碼系統(tǒng)由信源、加密變換、解密變換、信宿和攻擊者組成。KKMC加密變換C=Ek(M)解密變換M=Dk(C)信源信宿自動(dòng)攻擊者被動(dòng)攻擊者密鑰器密鑰器2.2密碼學(xué)根本概念柯克霍夫〔Kerckhoffs〕原那么:密碼系統(tǒng)的平安性取決于密鑰,而不是密碼算法,即密碼算法要公開。這是荷蘭密碼學(xué)家Kerckhoff于1883年在名著<軍事密碼學(xué)>中提出的根本假設(shè)。遵照這個(gè)假設(shè)的益處是:①它是評(píng)價(jià)算法平安性的獨(dú)一可用的方式。由于假設(shè)密碼算法嚴(yán)密的話,密碼算法的平安強(qiáng)度無法進(jìn)展評(píng)價(jià)。②防止算法設(shè)計(jì)者在算法中隱藏后門。由于算法公開后,密碼學(xué)家可以研討分析能否存在破綻,同時(shí)也接受攻擊者的檢驗(yàn)。③有助于推行運(yùn)用。當(dāng)前網(wǎng)絡(luò)運(yùn)用非常普及,密碼算法的運(yùn)用不再局限于傳統(tǒng)的軍事領(lǐng)域,只需算法公開,才能夠被大多數(shù)人接受并運(yùn)用,同時(shí),對(duì)用戶而言,只需掌握密鑰就可以運(yùn)用了,勿須運(yùn)用非常方便。2.3古典密碼從古代到19世紀(jì)末提出和運(yùn)用的密碼稱為古典密碼古典密碼大多比較簡單,普通可用手工或機(jī)械方式實(shí)現(xiàn)其加密和解密過程,破譯也比較容易。1.移位密碼移位密碼的加密方法是將明文字母按某種方式進(jìn)展移位,如著名的愷撒密碼。在移位密碼中,將26個(gè)英文字母依次與0,1,2,…,25對(duì)應(yīng),密文字母c可以用明文字母m和密鑰k按如下算法得到:c=m+k(mod26)給定一個(gè)密文字母c,對(duì)應(yīng)的明文字母m可由c和密鑰k按如下算法得到:m=c-k(mod26)按照密碼體制的數(shù)學(xué)方式化定義,移位密碼體制描畫為五元組(P,C,K,E,D),其中:P=C=K=Z26={0,1,2,…,25}E={ek:Z26Z26|ek(m)=m+k(mod26)},D={dk:Z26Z26|dk(c)=ck(mod26)}。2.3古典密碼2.仿射密碼移位密碼的加密方法是將明文字母按某種方式進(jìn)展移位,如著名的愷撒密碼。在移位密碼中,將26個(gè)英文字母依次與0,1,2,…,25對(duì)應(yīng),密文字母c可以用明文字母m和密鑰k按如下算法得到:c=m+k(mod26)給定一個(gè)密文字母c,對(duì)應(yīng)的明文字母m可由c和密鑰k按如下算法得到:m=c-k(mod26)按照密碼體制的數(shù)學(xué)方式化定義,移位密碼體制描畫為五元組(P,C,K,E,D),其中:P=C=K=Z26={0,1,2,…,25}E={ek:Z26Z26|ek(m)=m+k(mod26)},D={dk:Z26Z26|dk(c)=ck(mod26)}。2.3古典密碼例假設(shè)k1=9和k2=2,明文字母為q,那么對(duì)其用仿射密碼加密如下:先把文字母為q轉(zhuǎn)化為數(shù)字13。由加密算法得c=913+2=119(mod26)=15再把c=15轉(zhuǎn)化為字母得到密文P。解密時(shí),先計(jì)算k11。由于93≡1(mod26),因此k11=3。再由解密算法得m=k11(ck2)(mod26)=3(c-2)=3c-6(mod26)≡45+20(mod26)=13(mod26)。對(duì)應(yīng)的明文字母為q。2.3古典密碼3.維吉利亞(Vigenere)密碼Vigenere是法國的密碼學(xué)專家,Vigenere密碼是以他的名字命名的。該密碼體制有一個(gè)參數(shù)n。在加解密時(shí)同樣把英文字母用數(shù)字替代進(jìn)展運(yùn)算,并按n個(gè)字母一組進(jìn)展變換。明、密文空間及密鑰空間都是n長的英文字母串的集合,因此可表示P=C=K=(Z26)n。加密變換如下:設(shè)密鑰k=(k1,k2,…,kn),明文P=(m1,m2,…,mn),加密函數(shù)ek(P)=(c1,c2,…,cn),其中ci=(mi+ki)(mod26),i=1,2,…,n。對(duì)密文c=(c1,c2,…,cn),密鑰k=(k1,k2,…,kn),解密變換為dk(c)=(m1,m2,…,mn),其中mi=(ciki)(mod26),i=1,2,…,n。2.3古典密碼例設(shè)n=6,密鑰是cipher,這相應(yīng)于密鑰k=(2,8,15,7,4,17),明文是thiscryptosystemisnotsecure。試用Vigenere密碼對(duì)其加密。解首先將明文按每6個(gè)分為一組,然后與密鑰進(jìn)展模26“加〞得:197818217241519141824281574172815741721152325680238212215

18194128181314191842201742815741728157417281520119191291522825819222519

相應(yīng)的密文是:VPXZGIAXIVWPUBTTMJPWIZITWZT2.3古典密碼4.置換密碼置換密碼是把明文中各字符的位置次序重新陳列來得到密文的一種密碼體制。實(shí)現(xiàn)的方法多種多樣。在這里,我們引見一類較常見的置換密碼。其加解密方法如下:把明文字符以固定的寬度m(分組長度)程度地(按行)寫在一張紙上〔假設(shè)最后一行缺乏m,需求補(bǔ)充固定字符〕,按1,2,…,m的一個(gè)置換交換列的位置次序,再按垂直方向(即按列)讀出即得密文。解密就是將密文按一樣的寬度m垂直在寫在紙上,按置換的逆置換交換列的位置次序,然后程度地讀出得到明文。置換就是密鑰。2.3古典密碼例設(shè)明文Jokerisamurderer,密鑰=(41)(32)(即(4)=1,(1)=4,(3)=2,(2)=3)),即按4,3,2,1列的次序讀出得到密文,試寫出加解密的過程與結(jié)果。解加密時(shí),把明文字母按長度為4進(jìn)展分組,每組寫成一行,這樣明文字母Jokerisamurderer被寫成4行4列,然后把這4行4列按4,3,2,1列的次序?qū)懗龅玫矫芪摹_^程與結(jié)果如圖2-3-1所示。解密時(shí),把密文字母按4個(gè)一列寫出,再按的逆置換重陳列的次序,最后按行寫出,即得到明文。明文:

Jokerisamurderer按4字母一行寫出jokerisamurderer按列寫出的順序4321

按列寫出密文:eadrksreoiurjrme密文:

eadrksreoiurjrme按4字母一列寫出ekojasirdrumrere交換列的順序4321

按行寫出明文:

jokerisamurderer2.3古典密碼在現(xiàn)代密碼學(xué)中,假定密碼方案服從Kerckhoffs原那么,因此,對(duì)密文的破解取決于加密密鑰。就古典密碼而言,由于算法相對(duì)簡單,算法復(fù)雜度也不高,一種能夠的攻擊方法是對(duì)一切能夠的密鑰進(jìn)展嘗試的強(qiáng)力攻擊,稱為窮舉搜索攻擊。移位密碼:密鑰空間K=Z26={0,1,2,…,25},因此,最多嘗試26次即可恢復(fù)明文。仿射密碼:密鑰空間為K={(k1,k2)|k1,k2Z26,其中g(shù)cd(k1,26)=1},k1能夠的取值有1,3,5,7,9,11,15,17,19,21,23,25,因此,最多嘗試12×26次即可恢復(fù)明文。對(duì)于古典密碼方案而言,由于密鑰空間非常有限,因此,很難抵抗窮舉搜索攻擊。另一方面,就英文而言,一些古典密碼方案不能很好地隱藏明文音訊的統(tǒng)計(jì)特征,攻擊者也可以利用這一弱點(diǎn)進(jìn)展破譯。結(jié)論:古典密碼方案并不適宜Kerckhoffs原那么,算法的嚴(yán)密性基于算法的嚴(yán)密。2.4對(duì)稱加密體制2.4.1序列密碼2.4.2分組密碼2.4.3數(shù)據(jù)加密規(guī)范-DES2.4對(duì)稱加密體制在這種密碼體制中,對(duì)于大多數(shù)算法而言,解密算法是加密算法的逆運(yùn)算,加密密鑰和解密密鑰一樣,滿足關(guān)系:M=Dk(C)=Dk(Ek(M))。對(duì)稱密碼體制的開放性差,要求通訊雙方在通訊之前,商定一個(gè)共享密鑰,彼此必需妥善保管。對(duì)稱密碼體制分為兩類。一類是對(duì)明文的單個(gè)位〔或字節(jié)〕運(yùn)算的算法,稱為序列密碼算法,也稱為流密碼算法(StreamCipher)。另一類算法是把明文信息劃分成不同的塊〔或小組〕構(gòu)造,分別對(duì)每個(gè)塊進(jìn)展加密和解密,稱為分組加密算法(BlockCipher)。2.4.1序列密碼序列密碼將明文劃分成單個(gè)位(如數(shù)字0或1)作為加密單位產(chǎn)生明文序列,然后將其與密鑰流序列逐位進(jìn)展模2加運(yùn)算,用符號(hào)表示為,其結(jié)果作為密文。加密過程如下圖。加密算法是:解密算法是:2.4.1序列密碼序列密碼分為同步序列密碼和自同步序列密碼兩種。同步序列密碼要求發(fā)送方和接納方必需是同步的,在同樣的位置用同樣的密鑰才干保證正確地解密。假設(shè)在傳輸過程中密文序列有篡改、刪除、插入等錯(cuò)誤導(dǎo)致同步失效,那么不能夠勝利解密,只能經(jīng)過重新同步來實(shí)現(xiàn)恢復(fù)。在傳輸期間,一個(gè)密文位的改動(dòng)只影響該位的恢復(fù),不會(huì)對(duì)后繼位產(chǎn)生影響。自同步序列密碼的密鑰的產(chǎn)生與密鑰和已產(chǎn)生的固定數(shù)量的密文位有關(guān),因此,密文中產(chǎn)生的一個(gè)錯(cuò)誤解影響到后面有限位的正確解密。因此,自同步密碼的密碼分析比同步密碼更加困難。序列密碼具有實(shí)現(xiàn)簡單、便于硬件計(jì)算、加解密處置速度快、低錯(cuò)誤〔沒有或只需有限位的錯(cuò)誤〕傳播等優(yōu)點(diǎn),但同時(shí)也暴顯露對(duì)錯(cuò)誤產(chǎn)生不敏感的缺陷。2.4.1序列密碼序列密碼的平安強(qiáng)度依賴于密鑰流產(chǎn)生器所產(chǎn)生的密鑰流序列的特性,關(guān)鍵是密鑰生成器的設(shè)計(jì)及收發(fā)兩端密鑰流產(chǎn)生的同步技術(shù)。1.偽隨機(jī)序列在序列密碼中,一個(gè)好的密鑰流序列應(yīng)該滿足:①良好的偽隨機(jī)性,如極大的周期,極大的線性復(fù)雜度,序列中0和1的分布均勻;②產(chǎn)生的算法簡單;③硬件實(shí)現(xiàn)方便。產(chǎn)生密鑰流序列的方法可以是運(yùn)用自然景象隨機(jī)生成或規(guī)范C庫函數(shù)中函數(shù)rand()。產(chǎn)生偽隨機(jī)數(shù)的一個(gè)不錯(cuò)的選擇是運(yùn)用數(shù)論中的難題。最常用的是BBS偽隨機(jī)序列生成器,也就是二次方程式殘數(shù)生成器。首先產(chǎn)生兩個(gè)大素?cái)?shù)p和q,且,設(shè)n=pq,并選擇一個(gè)隨機(jī)整數(shù)x,x與n互素,設(shè)初始輸入,BBS經(jīng)過如下過程產(chǎn)生一個(gè)隨機(jī)序列:①;②是的最低有效比特。2.4.1序列密碼2.線性反響移位存放器通常,產(chǎn)生密鑰流序列的硬件是反響移位存放器。一個(gè)反響移位存放器由兩部分組成:移位存放器和反響函數(shù):2.4.1序列密碼2.4.1序列密碼對(duì)于n級(jí)線性反響移位存放器,不能夠產(chǎn)生全0形狀,因此,最大能夠周期為。選擇線性反響移位存放器作為密鑰流生成器的主要緣由有:①適宜硬件實(shí)現(xiàn);②能產(chǎn)生大的周期序列;③能產(chǎn)生良好的統(tǒng)計(jì)特性的序列;④它的構(gòu)造可以運(yùn)用代數(shù)方法進(jìn)展很好的分析。實(shí)踐運(yùn)用中,通常將多個(gè)LFSR組合起來構(gòu)造非線性反響移位存放器,n級(jí)非線性反響移位存放器產(chǎn)生偽隨機(jī)序列的周期最大可到達(dá),因此,研討產(chǎn)生最大周期序列的方法具有重要意義。2.4.1序列密碼2.RC4RC4是由麻省理工學(xué)院的RonRivest教授在1987年為RSA公司設(shè)計(jì)的一種可變密鑰長度、面向字節(jié)流的序列密碼。RC4算法很簡單,它以一個(gè)數(shù)據(jù)表為根底,對(duì)表進(jìn)展非線性變換,從而產(chǎn)生密碼流序列。包含兩個(gè)主要算法:密鑰調(diào)度算法(Key-SchedulingAlgorithm,KSA)和偽隨機(jī)生成算法(PseudoRandomGenerationAlgorithm,PRGA)。2.4.1序列密碼KSA的作用是將一個(gè)隨鑰(大小為40~256位)變換成一個(gè)初始置換表S。過程如下:S11S表中包含256個(gè)元素S[0]~S[255],對(duì)其初始化,令S12用主密鑰填充字符表K,假設(shè)密鑰的長度小于256個(gè)字節(jié),那么依次反復(fù)填充,直至將K被填滿。

S13令j=0;S14對(duì)于i從0到255循環(huán)①②交換S[i]和S[j]。2.4.1序列密碼PRGA的作用是從S表中隨機(jī)選取元素,并產(chǎn)生密鑰流。過程如下:S21i=0,j=0;S22i=i+1(mod256);S23j=j+S[i]mod256S24交換S[i]和S[j];S25t=S[i]+S[j]mod256;S26輸出密鑰字k=S[t]。雖然RC4要求主密鑰K至少要40位,為了保證平安強(qiáng)度,目前至少要到達(dá)128位。2.4.2分組密碼設(shè)明文音訊被劃分成假設(shè)干固定長度的組,其中或1,,每一組的長度為n,各組分別在密鑰的作用下變換生長度為r的密文分組。分組密碼的模型如下圖。2.4.2分組密碼分組加密的本質(zhì)就是由密鑰控制的從明文空間M〔長為n的比特串的集合〕到密文空間C〔長為r的比特串的集合〕的一個(gè)1-1映射。為了保證密碼算法的平安強(qiáng)度,普通說來,加密變換的構(gòu)造應(yīng)遵照以下幾個(gè)原那么:①分組長度足夠大②密鑰量空間足夠大③加密變換足夠復(fù)雜④加密和解密運(yùn)算簡單,易于實(shí)現(xiàn)⑤加密和解密的邏輯構(gòu)造最好一致2.4.2分組密碼古典密碼中最根本的變換是替代和移位,其目的是產(chǎn)生盡能夠混亂的密文。替代變換就是經(jīng)過復(fù)雜的變換關(guān)系將輸入位進(jìn)展轉(zhuǎn)換,記為S,稱為S盒;移位變換就是將輸入位的陳列位置進(jìn)展變換,記為P,稱為P盒。分組密碼由多重S盒和P盒組合而成,如下圖。S盒的直接作用是將輸入位進(jìn)展某種變換,起到混亂作用,P盒的直接作用就是挪動(dòng)輸入位的陳列位置關(guān)系,起到分散的作用。2.4.2分組密碼實(shí)現(xiàn)分組密碼設(shè)計(jì)算法的詳細(xì)操作包括以下三個(gè)方面:1.替代將明文位用某種變換關(guān)系變換成新的位,使得產(chǎn)生的密文是一堆雜亂無章的亂碼,分組密碼中采用復(fù)雜的非線性替代變換就可到達(dá)比較好的混亂效果。2.移位指讓明文中的每一位(包括密鑰的每一位)直接或間接影響輸出密文中的許多位,以便隱蔽明文的統(tǒng)計(jì)特性。這種效果也稱為“雪崩效應(yīng)〞。3.乘積變換在分組密碼算法設(shè)計(jì)中,為了加強(qiáng)算法的復(fù)雜度,常用的方法是采用乘積變換的思想,即加密算法不僅僅是簡單的一次或兩次根本的S盒和P盒變換,而是經(jīng)過兩次或兩次以上S盒和P盒的反復(fù)運(yùn)用,也就是迭代的思想,抑制單一密碼變換的弱點(diǎn),構(gòu)成更強(qiáng)的加密結(jié)果,以強(qiáng)化其復(fù)雜程度。2.4.3數(shù)據(jù)加密規(guī)范-DES1971年末IBM公司提出了一種稱為Luciffer的密碼算法1977年7月15日該算法被正式采用作為美國聯(lián)邦信息處置規(guī)范生效,即數(shù)據(jù)加密規(guī)范〔DataEncryptionStandard,DES〕。實(shí)現(xiàn)分組密碼設(shè)計(jì)算法的詳細(xì)操作包括以下三個(gè)方面:1.DES加密算法流程2.4.3數(shù)據(jù)加密規(guī)范-DES1971年末IBM公司提出了一種稱為Luciffer的密碼算法1977年7月15日該算法被正式采用作為美國聯(lián)邦信息處置規(guī)范生效,即數(shù)據(jù)加密規(guī)范〔DataEncryptionStandard,DES〕。1.DES加密算法流程2.4.3數(shù)據(jù)加密規(guī)范-DES1971年末IBM公司提出了一種稱為Luciffer的密碼算法1977年7月15日該算法被正式采用作為美國聯(lián)邦信息處置規(guī)范生效,即數(shù)據(jù)加密規(guī)范〔DataEncryptionStandard,DES〕。1.DES加密算法流程2.4.3數(shù)據(jù)加密規(guī)范-DES(1)初始置換IP初始置換如下圖,方法是將64位明文的位置順序打亂,表中的數(shù)字代表64位明文的輸入順序號(hào),表中的位置代表置換后的輸出順序,表中的位置順序是先按行后按列進(jìn)展排序。初始置換表中的位序特征:64位輸入按8行8列進(jìn)展陳列,最右邊一列按2,4,6,8和1,3,5,7的次序進(jìn)展陳列,往左邊各列的位序號(hào)依次緊鄰其右邊一列各序號(hào)加8。2.4.3數(shù)據(jù)加密規(guī)范-DES(2)乘積變換〔16輪迭代〕乘積變換部分要進(jìn)展16輪迭代,如下圖。將初始置換得到的64位結(jié)果分為兩半,記為L0和R0,各32位。設(shè)初始密鑰64位,經(jīng)密鑰擴(kuò)展算法產(chǎn)生16個(gè)48位的子密鑰,記為K1,K2,…,K16,每輪迭代的邏輯關(guān)系為:其中,f函數(shù)是每輪變換的中心變換。2.4.3數(shù)據(jù)加密規(guī)范-DES(3)逆初始置換IP-1逆初始置換IP-1與初始置換正好相反,如下圖。比如,處在第一位的比特別位換后排在第58位,第二位排在第50位。逆初始置換表中的位序特征:64位輸入依然按8行8列進(jìn)展陳列,1,2,3,4,5,6,7,8按列從下往上進(jìn)展陳列,然后是9到16排在右邊一列,依次進(jìn)展排4列,然后從33開場排在第一列的左邊,從41開場排在第二列的左邊,交叉進(jìn)展。2.4.3數(shù)據(jù)加密規(guī)范-DES2.乘積變換中的f變換乘積變換的中心是f變換,它是非線性的,是每輪實(shí)現(xiàn)混亂的最關(guān)鍵的模塊,輸入32位,經(jīng)過擴(kuò)展變換變成48位,與子密鑰進(jìn)展異或運(yùn)算,選擇緊縮變換―S盒交換,將48位緊縮復(fù)原成32位,再進(jìn)展P盒交換,輸出32位。如下圖,虛線部分為f變換。2.4.3數(shù)據(jù)加密規(guī)范-DES詳細(xì)的變化過程如圖2-4-11所示。2.4.3數(shù)據(jù)加密規(guī)范-DES(1)擴(kuò)展置換擴(kuò)展置換將32位擴(kuò)展成48位,按如圖2-4-12所示的陳列方式進(jìn)展重新陳列得到。2.4.3數(shù)據(jù)加密規(guī)范-DES(2)S盒交換將48位按6位分為1組,共8組,也稱為8個(gè)S盒,記為S1,S2,…S8,每個(gè)S盒產(chǎn)生4位輸出。8個(gè)S盒的交換表如表2-4-2所示。每個(gè)S盒都由4行×16列組成,每行是0~15的一個(gè)全陳列,每個(gè)數(shù)字用對(duì)應(yīng)的4位二進(jìn)制比特串表示。如9用1001表示,7用0111表示。設(shè)6位輸入為:a1a2a3a4a5a6,將a1a6組成一個(gè)2位二進(jìn)制數(shù),對(duì)應(yīng)S盒表中的行號(hào);將a2a3a4a5組成一個(gè)4位二進(jìn)制數(shù),對(duì)應(yīng)S盒表中的列號(hào);映射到交叉點(diǎn)的數(shù)據(jù)就是該S盒的輸出。2.4.3數(shù)據(jù)加密規(guī)范-DES(3)P盒交換P盒交換就是將S盒交換后的32位作為輸入,按以下圖順序重新陳列,得到的32位結(jié)果即為f函數(shù)的輸出f(Ri-1,Ki)。2.4.3數(shù)據(jù)加密規(guī)范-DES3.子密鑰的生成初始密鑰長度為64位,但每個(gè)第8位是奇偶校驗(yàn)位,分布在第8、16、24、32、40、48、56和64位的位置上,目的是用來檢錯(cuò),實(shí)踐的初始密鑰長度是56位。在DES算法中,每一輪迭代需求運(yùn)用一個(gè)子密鑰,子密鑰是從用戶輸入的初始密鑰來產(chǎn)生的。右圖是各輪子密鑰產(chǎn)生的流程圖。2.4.3數(shù)據(jù)加密規(guī)范-DES(1)置換選擇1(PC-1)對(duì)于64位初始密鑰K,按下表中置換表PC-1進(jìn)展重新陳列。不難算出,丟掉了其中8的整數(shù)倍位置上的比特位,轉(zhuǎn)換選擇1后的變換結(jié)果是56位。將前28位記為C0,后28位記為D0。2.4.3數(shù)據(jù)加密規(guī)范-DES1971年末IBM公司提出了一種稱為Luciffer的密碼算法1977年7月15日該算法被正式采用作為美國聯(lián)邦信息處置規(guī)范生效,即數(shù)據(jù)加密規(guī)范〔DataEncryptionStandard,DES〕。實(shí)現(xiàn)分組密碼設(shè)計(jì)算法的詳細(xì)操作包括以下三個(gè)方面:1.替代將明文位用某種變換關(guān)系變換成新的位,使得產(chǎn)生的密文是一堆雜亂無章的亂碼,分組密碼中采用復(fù)雜的非線性替代變換就可到達(dá)比較好的混亂效果。2.移位指讓明文中的每一位(包括密鑰的每一位)直接或間接影響輸出密文中的許多位,以便隱蔽明文的統(tǒng)計(jì)特性。這種效果也稱為“雪崩效應(yīng)〞。2.5非對(duì)稱密碼體制2.5.1RSA密碼算法2.5.2Diffie-Hellman密鑰交換算法2.5.3ElGamal加密算法2.5.1RSA密碼算法RSA密碼算法是美國麻省理工學(xué)院的Rivest,Shamir和Adleman三位學(xué)者于1978年提出的。RSA密碼方案是獨(dú)一被廣泛接受并實(shí)現(xiàn)的通用公開密碼算法,目前曾經(jīng)成為公鑰密碼的國際規(guī)范。它是第一個(gè)既能用于數(shù)據(jù)加密,也通用數(shù)字簽名的公開密鑰密碼算法。(1)密鑰生成首先選取兩個(gè)大素?cái)?shù)p和q,計(jì)算n=pq,其歐拉函數(shù)值為φ(n)=(p-1)(q-1),然后隨機(jī)選擇整數(shù)e,滿足gcd(e,φ(n))=1,并計(jì)算整數(shù)d=e-1modφ(n),那么公鑰為{e,n},私鑰是{d,n}。p,q是參數(shù),需求嚴(yán)密,如不需求保管,可銷毀2.5.1RSA密碼算法(2)加密過程加密時(shí)要運(yùn)用接納方的公鑰,無妨設(shè)接納方的公鑰為e,明文m滿足0≤m<n〔否那么需求進(jìn)展分組〕,計(jì)算c=msmodn,c為密文。(3)解密過程m=cdmodn2.5.1RSA密碼算法平安性分析:①RSA的平安性依賴于著名的大整數(shù)因子分解的困難性問題。假設(shè)要求n很大,那么攻擊者將其勝利地分解為是困難的。反之,假設(shè)n=pq,那么RSA便被功破。由于一旦求得n的兩個(gè)素因子p和q,那么立刻可得n的歐拉數(shù),再利用歐幾里德擴(kuò)展算法求出RSA的私鑰的私鑰。隨著科學(xué)技術(shù)的開展,人們對(duì)大整數(shù)因子分解的才干在不斷提高,而且分解所需的本錢在不斷下降。要平安運(yùn)用RSA,該當(dāng)采用足夠大的大整數(shù)n。建議選擇p和q大約是100位的十進(jìn)制素?cái)?shù),因此模長n大約是200位十進(jìn)制數(shù)(實(shí)踐要求n的長度至少是512比特),e和d選擇100位左右,密鑰{e,n}或{d,n}的長度大約是300位十進(jìn)制數(shù),相當(dāng)于1024比特二進(jìn)制數(shù)2.5.1RSA密碼算法平安性分析:②RSA的加密函數(shù)是一個(gè)單向函數(shù),在知明文m和公鑰{e,n}的情況下,計(jì)算密文是很容易的;但反過來,知密文和公鑰的情況下,恢復(fù)明文是不可行的。從(1)的分析中得知,在n很大的情況下,不能夠從{e,n}中求得d,也不能夠在知c和{e,n}的情況下求得d或m。2.5.2Diffie-Hellman密鑰交換算法Diffie和Hellman在1976年給出了通訊雙方經(jīng)過信息交換協(xié)商密鑰的算法,即Diffie-Hellman密鑰交換算法,這是第一個(gè)密鑰協(xié)商算法,用于密鑰分配,不能用于加密或解密信息。Diffie-Hellman密鑰交換算法的平安性基于有限域上的離散對(duì)數(shù)難題。選擇一個(gè)素?cái)?shù)p,定義素?cái)?shù)p的本原根為一種能生成{1,2,…,p-1}中一切數(shù)的一個(gè)整數(shù)。無妨設(shè)g為素?cái)?shù)p的本原根,那么g2modp,g2modp,…,g2modp兩兩不同,構(gòu)成{1,2,…,p-1}中一切數(shù)。對(duì)于恣意整數(shù),計(jì)算y=gxmodp是容易的,稱y為模p的冪運(yùn)算;但反過來,假設(shè)有上式成立,把滿足關(guān)系式的最小的x稱為y的以g為底模p的離散對(duì)數(shù)。2.5.2Diffie-Hellman密鑰交換算法算法描畫:設(shè)通訊雙方為A和B,他們之間要進(jìn)展嚴(yán)密通訊,需求協(xié)商一個(gè)密鑰,為此,他們共同選用一個(gè)大素?cái)?shù)p和Zp的一個(gè)本原元g,并進(jìn)展如下操作步驟:S1用戶A產(chǎn)生隨機(jī)數(shù)α(2≤α≤p-2),計(jì)算yA=gαmodp,并發(fā)送yA給用戶B。S2用戶B產(chǎn)生隨機(jī)數(shù)β(2≤β≤p-2),計(jì)算yB=gβmodp,并發(fā)送yB給用戶A。S3用戶A收到y(tǒng)B后,計(jì)算;用戶B收到y(tǒng)A后,計(jì)算。顯然有:這樣用戶A和B就擁有了一個(gè)共享密鑰,就能以作為會(huì)話密鑰進(jìn)展嚴(yán)密通訊了。2.5.2Diffie-Hellman密鑰交換算法平安性分析:當(dāng)模p較小時(shí),很容易求離散對(duì)數(shù);依目前的計(jì)算才干,當(dāng)模p到達(dá)至少150位十進(jìn)制數(shù)時(shí),求離散對(duì)數(shù)成為一個(gè)數(shù)學(xué)難題。因此,Diffie-Hellman密鑰交換算法要求模p至少到達(dá)150位十進(jìn)制數(shù),其平安性才干得到保證。但是,該算法容易蒙受中間人攻擊。呵斥中間人攻擊的緣由在于通訊雙方交換信息時(shí)不認(rèn)證對(duì)方,攻擊者很容易冒充其中一方獲得勝利。因此,可以利用數(shù)字簽名挫敗中間人攻擊。

2.5.3ElGamal加密算法

ElGamal公鑰密碼體制是由ElGamal在1985年提出的,是一種基于離散對(duì)數(shù)問題的公鑰密碼體制。該密碼體制既可用于加密,又可以用于數(shù)字簽名,是除了RSA之外最有代表性的公鑰密碼體制之一。算法描畫如下。(1)密鑰生成首先隨機(jī)選擇一個(gè)大素?cái)?shù)p,且要求p-1有大素?cái)?shù)因子。(g∈Z*p是一個(gè)有p個(gè)元素的有限域,Z*p是Zp中的非零元構(gòu)成的乘法群)是一個(gè)本原元。然后再選一個(gè)隨機(jī)數(shù)x(1x<p-1),計(jì)算y=gxmodp,那么公鑰為(y,g,p),私鑰為x。(2)加密過程無妨設(shè)信息接納方的公私鑰對(duì)為{x,y},對(duì)于待加密的音訊mZp,發(fā)送方選擇一個(gè)隨機(jī)數(shù)k∈Z*p-1,然后計(jì)算c1,c2c1=gkmodp,c2y=mykmodp,那么密文為(c1,c2)。

2.5.3ElGamal加密算法

(3)解密過程接納方收到密文(c1,c2)后,首先計(jì)算,再由私鑰計(jì)算,最后計(jì)算,那么音訊m被恢復(fù)。算法的正確性證明:由于所以2.6密碼學(xué)運(yùn)用2.6.1密碼運(yùn)用方式2.6.2加密方式2.6.3PGP運(yùn)用2.6.1密碼運(yùn)用方式DES、IDEA及AES等分組加密算法的根本設(shè)計(jì)是針對(duì)一個(gè)分組的加密和解密的操作。然而,在實(shí)踐的運(yùn)用中被加密的數(shù)據(jù)不能夠只需一個(gè)分組,需求分成多個(gè)分組進(jìn)展操作。根據(jù)加密分組間的關(guān)聯(lián)方式,分組密碼主要分為4種方式。2.6.1密碼運(yùn)用方式1.電子密碼本方式電子密碼本(ElectronicCodeBook,ECB)是最根本的一種加密方式,分組長度為64位。每次加密依次獨(dú)立,產(chǎn)生獨(dú)立的密文分組,每一組的加密結(jié)果不會(huì)影響其他分組,如下圖。該方式的優(yōu)點(diǎn)是:可以利用平行處置來加速加密/解密運(yùn)算,且在網(wǎng)絡(luò)傳輸時(shí)任一分組即使發(fā)生錯(cuò)誤,也不會(huì)影響到其他分組。該方式的缺陷是:對(duì)于多次出現(xiàn)的一樣的明文,當(dāng)該部分明文恰好是加密分組的大小時(shí),那么能夠發(fā)生一樣的密文,假設(shè)密文內(nèi)容遭到剪貼、交換等攻擊,也不容易發(fā)現(xiàn)。在ECB方式中,加密函數(shù)E與解密函數(shù)D滿足關(guān)系:Dk(Ek(M))=M.2.6.1密碼運(yùn)用方式2.6.1密碼運(yùn)用方式2.密文鏈接方式密文鏈接(CipherBlockChainingCode,CBC)方式,執(zhí)行方式如下圖。第一個(gè)明文分組先與初始向量(IV,InitializationVector)做異或(XOR)運(yùn)算,再進(jìn)展加密。其它每個(gè)明文分組加密之前,必需與前一個(gè)密文分組作一次異或運(yùn)算,再進(jìn)展加密該方式的優(yōu)點(diǎn)是:每一個(gè)分組的加密結(jié)果均會(huì)受其前面一切分組內(nèi)容的影響,所以即使在明文中多次出現(xiàn)一樣的明文,也不會(huì)產(chǎn)生一樣的密文;另外,密文內(nèi)容假設(shè)遭剪貼、交換,或在網(wǎng)絡(luò)傳輸?shù)倪^程發(fā)生錯(cuò)誤,那么其后續(xù)的密文將被破壞,無法順利解密復(fù)原,因此,這一方式很難偽呵斥功。該方式的缺陷是:假設(shè)加密過程中一旦出現(xiàn)錯(cuò)誤,那么這種錯(cuò)誤被無限放大,導(dǎo)致加密失??;這種加密方式很容易遭到攻擊,遭到破壞。在CBC方式中,加密函數(shù)E與解密函數(shù)D滿足關(guān)系:Dk(Ek(M))=M。2.6.1密碼運(yùn)用方式2.6.1密碼運(yùn)用方式3.密文反響方式密文反響(CipherFeedBack,CFB)方式,如下圖。CFB需求一個(gè)初始化向量IV,加密后與第一分組進(jìn)展異或運(yùn)算產(chǎn)生第一組密文;然后,對(duì)第一組密文加密再與第二分組進(jìn)展異或去處得第二組密文,依次類推,直至加密終了。這種方式的特點(diǎn)是:先對(duì)前一組密文加密,然后再與明文分組進(jìn)展異或運(yùn)算。這種方式的優(yōu)點(diǎn)是:每一個(gè)分組的加密結(jié)果受其前面一切分組內(nèi)容的影響,即使出現(xiàn)多次一樣的明文,均產(chǎn)生不一樣的密文;這一方式可以作為密鑰流生成器,產(chǎn)生密鑰流。它的缺陷與CBC方式類似。在CFB方式中,加密函數(shù)E和解密函數(shù)D一樣,滿足關(guān)系:。2.6.1密碼運(yùn)用方式2.6.1密碼運(yùn)用方式4.輸出反響方式輸出反響(OutputFeedBack,OFB)方式,如圖2-6-4所示。該方式產(chǎn)生與明文異或運(yùn)算的密鑰流,從而產(chǎn)生密文,這一點(diǎn)與CFB大致一樣,獨(dú)一差別點(diǎn)是與明文分組進(jìn)展異或的輸入部分是反復(fù)加密后得到的。在OFB方式中,加密函數(shù)E和解密函數(shù)D一樣,滿足關(guān)系:2.6.1密碼運(yùn)用方式2.6.2加密方式在計(jì)算機(jī)網(wǎng)絡(luò)中,既要維護(hù)在網(wǎng)絡(luò)傳輸過程中的數(shù)據(jù),又要維護(hù)存儲(chǔ)在計(jì)算機(jī)系統(tǒng)中的數(shù)據(jù)。在傳輸過程中的數(shù)據(jù)加密稱為“通訊加密〞,在計(jì)算機(jī)系統(tǒng)中的存儲(chǔ)數(shù)據(jù)加密稱為“文件加密〞。假設(shè)以加密實(shí)現(xiàn)的通訊層次來區(qū)分,加密可以在通訊的三個(gè)不同層次來實(shí)現(xiàn),即節(jié)點(diǎn)加密、鏈路加密和端到端加密3種。節(jié)點(diǎn)加密的目的是對(duì)源節(jié)點(diǎn)到目的節(jié)點(diǎn)之間的傳輸鏈路提供維護(hù);鏈路加密的目的是維護(hù)網(wǎng)絡(luò)節(jié)點(diǎn)之間的鏈路信息平安;端到端加密的目的是對(duì)源端用戶到目的端用戶的數(shù)據(jù)提供維護(hù)。2.6.2加密方式1.節(jié)點(diǎn)加密節(jié)點(diǎn)加密是指對(duì)源節(jié)點(diǎn)到目的節(jié)點(diǎn)之間傳輸?shù)臄?shù)據(jù)進(jìn)展加密。它任務(wù)在OSI參考模型的第一層、第二層;從實(shí)施對(duì)象來講,它僅對(duì)報(bào)文加密,而不對(duì)報(bào)頭加密,以便于傳輸路由根據(jù)其報(bào)頭的標(biāo)識(shí)進(jìn)展選擇。普通的節(jié)點(diǎn)加密運(yùn)用特殊的加密硬件進(jìn)展解密和重加密,因此,要保證節(jié)點(diǎn)在物理上是平安的,防止信息泄露。2.6.2加密方式2.鏈路加

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論