第6章數(shù)據(jù)加密與數(shù)據(jù)隱藏修改_第1頁
第6章數(shù)據(jù)加密與數(shù)據(jù)隱藏修改_第2頁
第6章數(shù)據(jù)加密與數(shù)據(jù)隱藏修改_第3頁
第6章數(shù)據(jù)加密與數(shù)據(jù)隱藏修改_第4頁
第6章數(shù)據(jù)加密與數(shù)據(jù)隱藏修改_第5頁
已閱讀5頁,還剩102頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第2篇信息系統(tǒng)安全信任體系

信任(Trust)是指“他人對不確定行為的良好確定預(yù)期”。它通常包含三種性質(zhì):(1)時空錯位:在時間上是諾言在先,兌現(xiàn)在后;在空間上是此地諾言,彼地兌現(xiàn)。而、空間以及信息主體的全面虛擬話,信任問題比一手交錢一手交貨當(dāng)場完成的交易等行為中,就要重要得多。(2)不確定性:諾言的兌現(xiàn)或行為的發(fā)生并不是百分之百的,其間存在一定的風(fēng)險。若是在確定性的行為過程中,信任就不成問題問題。顯然,在數(shù)字世界中,不確定性除了先驗不確定性——信息本身的不確定性,外后驗不確定性——信道傳輸帶來的不確定性更加突出,信任問題也比知識世界更重要。(3)當(dāng)事者沒有客觀根據(jù)可以絕對相信。在數(shù)字世界中,信息載體的非實在性,更使人對客觀根據(jù)不可絕對信任。德國社會學(xué)家盧曼認(rèn)為,信任是基于人的生存策略的一種簡化機制,信任將周圍復(fù)雜的環(huán)境和千差萬別的人的性格簡化為“二元預(yù)限”,即“可以相信”和“不可以相信”。信任并沒有幫助人們消除風(fēng)險,但可促使人們勇敢地進入不確定性當(dāng)中。在現(xiàn)實生活中,信任被簡單地理解為“相信而敢于托付。”(《現(xiàn)代漢語詞典》),并且信任關(guān)系依靠親情、組織、利益、法制建立和維系。任何具有一定安全要求的系統(tǒng)都是與具有一定程度的信任形式為前提的。在信息系統(tǒng)中,除了不確定性依然存在以及當(dāng)事者沒有客觀根據(jù)可以絕對相信外,出現(xiàn)了更全面的虛擬。不僅時空錯位繼續(xù)存在,而且一切實體都數(shù)字化了,給人更大的不真實感,信任更為重要。但是,在這個數(shù)字化的虛擬世界中,親情、組織和利益不可體會,唯一可以使用的是規(guī)則。因此,一種規(guī)則就可以建立和維系一個信任體系。這些規(guī)則最基本的描述就是基于加密的直接信任和第三方信任。第6章數(shù)據(jù)加密與數(shù)據(jù)隱藏

密碼技術(shù)是一種保密技術(shù)。是數(shù)字系統(tǒng)中建立信任關(guān)系的基礎(chǔ)。簡單地說,加密和解密就是關(guān)于密文使用的一種信任關(guān)系。這一章介紹密碼技術(shù)和數(shù)據(jù)隱藏技術(shù)的基本知識。密碼技術(shù)是讓信息的截獲者無法了解信號的內(nèi)容;數(shù)據(jù)隱藏技術(shù)則是使信息讓人難于截獲。6.1密碼技術(shù)基礎(chǔ)

6.1.1基本加密方法數(shù)據(jù)加密是通過某種函數(shù)進行變換,把正常數(shù)據(jù)報文——明文(Plaintext,也叫明碼)轉(zhuǎn)換為密文(Ciphertext,也稱密碼)。下面介紹幾個傳統(tǒng)的簡單的變換方法。1.置換法:置換法,就是將明文中的每個字母都用其他字母代替。比較簡單的置換方法是愷撒算法,它將明文中的每個字母都移動一段距離。例如都移動5個字符空間的明文“CHINA”,變成了密文“HMNSF”。然而,這種密碼系統(tǒng)太脆弱、太容易被攻破了。于是人們設(shè)計了復(fù)雜算法,并使算法依賴于一個參數(shù)k。這個參數(shù)就稱為密鑰。這時算法可以寫成:

Cc=Ek(P)

下面舉例說明法國密碼學(xué)家Vigenere以他自己的名字命名的維吉利亞密碼:P=datasecurity,k=best

算法如下:a.制作維吉利亞方陣如表6.1所示。規(guī)則是第i行以I打頭。b.按密鑰的長度將P分解若干節(jié)。這里best的長度為4,故將明文分解為表6.2所示的樣子。c.對每一節(jié)明文,利用密鑰best進行變換。以明文“d”為例,變化的方法是:由于d處于b列,因此在維吉利亞方陣的第b行中找第d個字符既是。于是得到如下密文:C=Ek(P)=EELTTIUNSMLR

表6.1維吉利亞方陣表6.2明文分解

替換法可以有多種形式(1)簡單替換密碼(SimpleSubstitutionCipher)或單字母密碼(MonoAlphabeticCipher):將明文中的一個字母用一個相應(yīng)的密文字母替換。(2)多名替換密碼(HomophonicSubstitutionCipher):一個字母可以映射為多個密文字母。如:A~5,12,25,56B~7,17,31,57……(3)多字母密碼(PolyAlphabeticCipher):字符塊被成組加密。如:ABA~RTQABB~SLL……2.換位法換位就是將明文中字母的位置重新排列。最簡單的換位就是逆序法,即將明文中的字母倒過來輸出。例如明文:computersystem密文:metsysretupmoc這種方法太簡單,非常容易破密。下面介紹一種稍復(fù)雜的換位方法——列換位法。使用列換位法,首先要將明文排成一個矩陣,然后按列進行輸出。為此要解決兩個問題:排成的矩陣的寬度——有多少列;排成矩陣后,各列按什么樣的順序輸出。為此,要引入一個密鑰k,它既可定義矩陣的寬度,又可以定義各列的輸出順序。例如k=computer,則這個單詞的長度(8)就是明文矩陣的寬度,而該密鑰中各字母按字母序出現(xiàn)的次序,就是輸出的列的順序。按密鑰對明文“WHATCANYOULEARNFROMTHISBOOK”的排列密鑰COMPUTER順序號14358726

明文WHATCANYOULEARNFROMTHISBOOKXXXXX輸出的密文為:

WORONNSXALMKHUOOTETXYFBXARIXCAHX

3.簡單異或異或運算具有如下特點:00=001=110=111=0aa=0abb=a即兩個運算數(shù)相同,結(jié)果為0;不同,結(jié)果為1。+++++++使用簡異或進行加密,就是將明文與密鑰進行異或運算,解密則是對密文用同一密鑰進行異或運算。即Pk=CCk=P6.1.2密碼體制1.密碼體系=加密/解密算法+密鑰++由上面幾個例子可以看到,為了進行加密變換,需要密鑰(Cipher)和算法(Algorithm)兩個要素。進行解密,也需要此兩個要素。為了提高加密強度,一是要設(shè)計安全性好的加密算法,二是要盡量提高密鑰的長度(因為利用現(xiàn)代計算機技術(shù)可以用窮舉法,窮舉出密鑰,加長密鑰可以增加窮舉的時間)。但是在實際中,如何保證密碼方法的安全性呢?為了安全,在實際中可以采用兩種不同的策略:一種稱為受限制的算法。受限制的算法就是基于算法保密的安全策略。這種策略曾經(jīng)被使用,但是在現(xiàn)代密碼學(xué)中,已經(jīng)不再使用。原因如下:算法是要人掌握的。一旦人員變動,就要更換算法。算法的開發(fā)是非常復(fù)雜的。一旦算法泄密,重新開發(fā)需要一定的時間。不便于標(biāo)準(zhǔn)化:由于每個用戶單位必須有自己唯一的加密算法,不可能采用統(tǒng)一的硬件和軟件產(chǎn)品。否則偷竊者就可以在這些硬件和軟件的基礎(chǔ)上進行猜測式開發(fā)。不便于質(zhì)量控制:用戶自己開發(fā)算法,需要好的密碼專家,否則對安全性難于保障。因此,現(xiàn)代密碼學(xué)都采用基于密鑰保護的密碼安全策略。就是:將加密算法標(biāo)準(zhǔn)化(可以公開),只保護密鑰。這樣便于標(biāo)準(zhǔn)化和質(zhì)量控制(可以由高水平的專家開發(fā)算法);一個密鑰泄密,只要換一個便可。2.對稱密鑰體制和非對稱密鑰體制現(xiàn)在,加密算法已經(jīng)被標(biāo)準(zhǔn)化——可以公開了,加密過程的管理主要集中到密鑰的產(chǎn)生與分配上。目前在網(wǎng)絡(luò)中一般采用兩種密碼體制:單鑰密碼——對稱密鑰體制:加密與解密用同一個密鑰;雙鑰密碼——非對稱密鑰體制:加密與解密用不同的密鑰。(1)對稱密碼體制在對稱型密碼體制中,加密和解密采用同一密鑰。如圖6.1所示,它是利用一個密鑰對數(shù)據(jù)進行加密,對方收到數(shù)據(jù)后,用同一個密鑰進行解密。由于加解密采用同一密鑰,密鑰決不能泄露,故也將這種體制稱為秘密密鑰密碼體制或私鑰密碼體制。對稱密碼體制的加密與解密在對稱密碼體制中,最為著名的加密算法是IBM公司于1971年~1972年間研制成功的DES(DataEncryptionStandard)分組算法,1977年被定為美國聯(lián)邦信息標(biāo)準(zhǔn),這就是稱為DES(數(shù)據(jù)加密標(biāo)準(zhǔn))的原因。DES使用64位的密鑰(除去8位奇偶校驗碼,實際密鑰長度為56位),對64位二進制數(shù)進行分組加密,經(jīng)過16輪的迭代、乘積變換、壓縮變換等處理,產(chǎn)生64位密文數(shù)據(jù)。IDEA(InternationalDataEncryptionAlgorithm)是于1992年推出的另一個成功的分組加密算法。它的核心是一個乘法/加法非線性構(gòu)件,通過8輪迭代,能使明碼數(shù)據(jù)更好地擴散和混淆。由于加密算法是標(biāo)準(zhǔn)的、公開的,所以DES和IDEA算法的安全性完全依賴于密鑰。通常,采用KDC(密鑰分發(fā)中心)集中管理和分發(fā)密鑰。初始密鑰可作為加密使用,也可作為身份認(rèn)證使用。為增強網(wǎng)絡(luò)的安全性,一般將初始密鑰作為身份認(rèn)證使用,一旦認(rèn)證結(jié)束,便由系統(tǒng)自動生成階段性密鑰。階段性密鑰由網(wǎng)絡(luò)安全管理員指定,可根據(jù)網(wǎng)絡(luò)環(huán)境和具體應(yīng)用確定多長時間(幾分鐘還是幾個小時)為限。秘密密鑰系統(tǒng)運算效率高、使用方便、加密效率高,是傳統(tǒng)企業(yè)中最廣泛使用的加密技術(shù)。但是,由于秘密密鑰要求通信的雙方使用同樣的密鑰,雙方無論用任何方式交換密鑰都有可能失密。(2)非對稱密碼體制非對稱加密技術(shù)將加密和解密分開采用一對不同的密鑰進行。它有如下特征:

加密和解密分別用不同的密鑰進行,如用加密密鑰PK對明文P加密后,不能再用PK對密文進行解密,只能用相應(yīng)的另一把密鑰SK進行解密得到明文。即DPK(EPK(P))≠P,DSK(EPK(P))=P。加密密鑰和解密密鑰可以對調(diào),即DpK(EsK(P))=P。應(yīng)能在計算機上容易地成對生成,但不能用已知的PK導(dǎo)出未知的SK。3.公開密鑰體制在非對稱密鑰體制中,存在一個由誰產(chǎn)生一對密鑰的問題。若由A端產(chǎn)生一對密鑰,則要由A將公鑰送達B端,不僅送達過程是非常脆弱的,而且容易引起糾紛;若由第三方產(chǎn)生一對密鑰,也存在密鑰分配的脆弱性問題。無論多么強大的加密系統(tǒng),一旦密鑰泄露,就將無密可言。因而,實際應(yīng)用的RSA體制采用的是公開密鑰體制。為簡化問題,以兩方通信為例介紹公開密鑰體制的基本原理。(1)為通信的雙方各生成一對密鑰——PKA、SKA、PKB、SKB,將PKA、PKB稱為公開密鑰(簡稱公鑰),將SKA、SKB稱為私有密鑰(簡稱私鑰);(2)按下面的原則分發(fā)給數(shù)據(jù)傳送的兩方:每一方掌握自己的私鑰和對方的公鑰;(3)設(shè)A為發(fā)送方,B為接收方,加密/解密過程如圖6.2所示:加密/解密過程A端先用自己的私鑰SKA對報文進行單向不可逆加密變換;A端用B端的公鑰PKB,對經(jīng)過簽名變換的文本DSKA(P)進行加密,生成密文EPKB(DSKA(P))傳向B方;B端收到密文EPKB(DSKA(P)),先用其私鑰SKB進行解密,生成DSKA(P),接著再用A端的公鑰PKA進行解密變換,便可得到明文P。公開密鑰體制是斯坦福大學(xué)的兩名科學(xué)家Diffie和Hellman在1976年提出來的。所以叫做公開密鑰體制,是因為它基于非對稱密鑰體制,每一對密鑰中,有一個是公開的。采用公開密鑰體制無需事先交換密鑰,也無需經(jīng)常變更密鑰,每個用戶可以與任何其他用戶進行保密通信,在網(wǎng)絡(luò)環(huán)境下有較大的優(yōu)越性,但其運算復(fù)雜、加密效率低。6.1.3分組密碼分組密碼是將明文進行編碼后表示的數(shù)字序列)x0,x1,…,xi,…劃分成長度為n的組:x=(x0,x1,…,xn-1)在分組密碼中,常常要使用抗擊對密碼系統(tǒng)進行統(tǒng)計分析的擴散和混淆方法。擴散是使明文中的每一位影響密文中的多位,也使密文中的一位受明文中的多位的影響,從而將明文的統(tǒng)計特性散布到密文中,形成盡可能復(fù)雜的明文和密文之間的統(tǒng)計關(guān)系。在二元分組密碼中,對數(shù)據(jù)重復(fù)使用某個置換,再對該置換作用以一個函數(shù),可以獲得擴散?;煜鞘敲荑€與密文之間的統(tǒng)計關(guān)系變得盡可能復(fù)雜,使敵手無法從密文中分析出密鑰。使用復(fù)雜的換位算法,可以得到預(yù)期的混淆結(jié)果。6.2典型加密技術(shù)

6.2.1數(shù)據(jù)加密標(biāo)準(zhǔn)DES算法1973年5月,美國國家標(biāo)準(zhǔn)局發(fā)出通告,公開征求對計算機數(shù)據(jù)在傳輸和存儲期間的進行數(shù)據(jù)加密的算法。要求:(1)必須提供高度的安全性;(2)具有相當(dāng)高的復(fù)雜性,使得破譯的開銷超過獲得的利益,但同時又便于理解和掌握;(3)安全性應(yīng)當(dāng)不依賴于算法的保密,加密的安全性僅以加密密鑰的保密為基礎(chǔ);(4)必須適合不同的用戶和不同的應(yīng)用場合;(5)實現(xiàn)算法的電子器件必須很經(jīng)濟,運行有效;(6)必須能夠出口。此后數(shù)年內(nèi),美國的許多公司、研究機構(gòu)和大學(xué)開發(fā)了許多算法。1975年,IBM提出的算法被采納,并向全國公布,征求意見。1977年1月15日,美國國家標(biāo)準(zhǔn)局正式采用這個算法作為數(shù)據(jù)加密標(biāo)準(zhǔn)(同年7月15日生效)。這就是DES。

1.DES的基本思想DES算法的基本思想是將二進制序列的輸入明文,以64位為數(shù)據(jù)分組,然后對這些明文進行替換和換位,最后形成密文。如圖6.3所示。DES算法的基本特點如下:(1)對稱算法:既可用于加密,也可用于解密。(2)64位的密鑰,使用長度為56位(64位明文中,有8位用于奇偶校驗)。(3)加密算法是混淆與擴散的結(jié)合,或者說是換位與置換的結(jié)合。(4)每個DES都在明文上實施16重相同的組合技術(shù),如圖6.4所示。這種重復(fù)性可以被非常理想地應(yīng)用到一個專用芯片中。圖6.3DES加密2.DES加密過程細化圖6.5為對圖6.4的細化。從圖中可以看出,DES加密過程主要涉及如下環(huán)節(jié)(模塊):初始換位和逆初始換位;將64位明文分為32位的左右兩段:L0和R0;DES加密過程64位明文組初始換位IP得到L0得到R0f+K1L1=R0R0=L0f(R0,K1)f+K2L2=R1R2=L1f(R1,K2)f+L15=R14R15=L14f(R14,K15)fKi+R16=L15f(R15,K16)L15=R14逆初始換位IP-1K1664位密文組

進行16輪相同的迭代運算:混淆+異或+交換;將最后左右兩段合并;生成每一輪的子密鑰。表6.4為初始換位IP和逆初始換位IP-1。初始變換IP為將T=t1t2t3…t63t64變換成T0=t58t50t42…t15t7。IP-1為IP的逆變換。將明文分成左右兩段和將左右兩段合并比較簡單,這里就不介紹了。關(guān)于每一輪的迭代和每一輪使用的子密鑰的生成,下面專門介紹。表6.4初始換位IP和逆初始換位IP-13.子密鑰的生成圖6.6為生成每一輪使用的48位子密鑰的過程。下面介紹它的各個環(huán)節(jié)。(1)壓縮變換PC-1與將分割得到C0,D0PC-1的作用是去掉奇偶校驗位8,16,24,32,40,48,56,64后,按56位進行換位。換位算法如表6.5所示。(2)密鑰移位56位密鑰被分成兩部分之后,每一部分28位。在每一輪中進行一次左移位,左移的位數(shù)以輪數(shù)而異,如表6.6所示。生成每一輪使用的48位子密鑰的過程

(3)壓縮置換PC-2PC-2是從56位密鑰中,取出48位。其算法如表6.7所示。4.f算法觀察圖6.5,現(xiàn)在就剩下f算法還沒有介紹了。f算法是DES精華所在,用它來實現(xiàn)分組加密的擴展和混淆。在DES中,其他部分是線性的,而f算法是非線性的。如圖6.7所示,f算法主要由E-盒、S-盒和P-盒組成。(1)E-盒E-盒(ExpansionPermutation,擴展置換)是把數(shù)據(jù)明文的右半部分Ri從32位擴展到48位。這樣的好處有:可以與48位的密鑰進行異或運算;有利于產(chǎn)生雪崩效應(yīng)(AvalancheEffect),盡快地使輸出(密文)的每一位依賴輸入(明文和密鑰)的每一位。提供了更長的結(jié)果,以便替代運算時可以壓縮。

具體的辦法是對于每個輸入分組,在輸出分組中將第1、4位分別對應(yīng)2位,第2、3位不變。如圖6.8所示。這樣,盡管輸出分組大于輸入分組,但每一個輸入分組產(chǎn)生唯一的輸出分組。(2)S-盒代換S-盒是進行了壓縮后的密鑰(56位→48位)與擴展后的明文分組(32位→48位)異或后進行的。目的是對48位的輸入替代壓縮成32位的輸出。替代由8個S-盒進行。每個S-盒有6位輸入,4位輸出。如圖6.9所示,這8個S-盒,可以將48位的輸入變換為32位的輸出。

8個S-盒的6變4代換,按表6.8查表進行,并且每個盒的代換都不相同。查該表的方法是,用b1b6(二進制)查行,用b2b3b4b5(二進制)查列。例如,S3的6位輸入為101100,則用10(2)查S3的第10行,用1100(12)查S3的12列,得到5。即輸出的4位為0101。(3)P-盒置換是對S-盒的32位輸出進行一次換位。表6.9給出了每位輸入將要換到的新位置。例如,原來的第28位,移位到了第7位的位置上。6.2.2公開密鑰算法RSA在Diffie和Hellman提出公鑰密碼體制理論后兩年左右,MIT的R.Rivest,A.Shamir和L.M.Adleman三名數(shù)學(xué)家共同提出了一種用數(shù)論構(gòu)造的、迄今理論上最為完臻的公開密鑰算法,并用他們?nèi)说拿謱⒅麨镽SA算法。

1.數(shù)學(xué)基礎(chǔ)(1)費爾瑪(Fermat)定理描述1:若p是素數(shù),a是正整數(shù)且gcd(a,p)=1,則ap-1≡1(modp)。描述2:對于素數(shù)p,若a是任一正整數(shù),則ap≡a(modp)。例1:設(shè)p=3,a=2,則23-1=4≡1(mod3)或23=8≡2(mod3)例2:設(shè)p=5,a=3,則35-1=81≡1(mod5)或35=243≡3(mod5)

(2)歐拉(Euler)函數(shù)歐拉(Euler)函數(shù)φ(n)小于n,并與n互素的正整數(shù)的個數(shù)。例:φ(6)=2{1,5};φ(7)=6{1,2,3,4,5,6};φ(9)=6{1,2,4,5,7,8}

(3)歐拉(Euler)定理歐拉定理:若整數(shù)a和m互素,則aφ(m)≡1(modm)例1:設(shè)a=3,m=7,則有φ(7)=6,36=729,729≡1(mod7)例2:設(shè)a=4,m=5,則有φ(5)=2,42=16,16≡1(mod5)2.RSA加密密鑰的產(chǎn)生

RSA依賴于一個基本假設(shè):分解因子問題是計算上的困難問題。即很容易將兩個素數(shù)乘起來,但分解該乘積是困難的。(1)基本過程

①選兩個保密的大素數(shù)p和q(保密)。②計算n=p·q(公開),φ(n)=(p-1)(q-1)(保密)。③隨機選取一整數(shù)e,滿足1<e<φ(n)且gcd(φ(n),e)=1(公開)。④計算d,滿足d·e≡1(modφ(n))(保密)。說明:d是e在模φ(n)下的乘法逆元。因為e與φ(n)互素,所以其乘法逆元一定存在。⑤得到一對密鑰:公開加密鑰:{e,n},秘密加密鑰{d,n}。(2)應(yīng)用舉例

①選擇兩個素數(shù)p=7,q=17。②計算n=p·q=7×17=119。計算n的歐拉函數(shù)φ(n)=(p-1)(q-1)=6×16=96。③從[0,95]間選一個與96互質(zhì)的數(shù)e=5,根據(jù)式5·d=1mod96④解出d=77,因為e·d=5×77=385=4×96+1=1mod96。⑤得到公鑰PK=(e,n)={5,119},密鑰SK={77,119}。

3.RSA加密/解密過程

(1)明文數(shù)字化,即將明文轉(zhuǎn)換成數(shù)字串。(2)分組。將二進制的明文串分成長度小于log2n的數(shù)字分組。如果p和q都為100位素數(shù),則n將有200位,所以每個明文分組應(yīng)小于200位。(3)加密算法Ci=Mie(modn)最后得到的密文C由長度相同的分組Ci組成。(4)解密算法D(C)≡Cd(modn)4.綜合應(yīng)用舉例(1)產(chǎn)生密鑰設(shè):p=43,q=59,n=43×59=2537,

φ(n)=42×58=2436取e=13(與φ(n)沒有公因子)

解方程d·e≡(mod2436), 2436=13×187+5,5=2436-13×18713=2×5+3,3=13-2×5 1=3-2=3-(5-3)=2×3-5=2×(13-2×5)-5 =2×13-5×5 =2×13-5×(2436-13×187)=(187×5+2)×13-5×2436=937×13--5×2436即937×13≡1(mod2436)故e=13,d=937(2)加密

明文:publickeyencryptions明文分組:publickeyencryptions明文數(shù)字化(按字母序,令a=00,b=01,c=02,…,y=24,z=25):1520011108021004240413021724151908141418加密:按照算法Mie(modn)=Ci,如152013(mod2537)=0095得到密文0095164814101299136513792333213217511289解密:按照算法Cie(modn)=Mi,如009513(mod2537)=1520。5.RSA安全性分析

RSA體制的加密強度依賴于大數(shù)分解的困難程度。采用窮舉法,對于兩個100位的十進制大素數(shù),破譯它大約需要1023步,若使用100萬步/秒的計算機資源對其進行破密,約需要1000年。但是,人類的計算能力也在不斷提高,原來一些被認(rèn)為不可能分解的大數(shù),現(xiàn)在已經(jīng)被成功分解。例如,RSA-129(即n為129位的十進制數(shù),約428比特),歷時8個月,已經(jīng)于1994年4月被成功分解。而且有報道,國外科學(xué)家正在用量子方法對大數(shù)分解發(fā)起沖擊。

不過,在目前的情況下,密鑰長度在1024比特~2048比特的RSA還是相對安全的。為了保證RSA安全性,對p和q還有如下要求:(1)p和q的長度相差不要太大;(2)p-1和q-1都應(yīng)當(dāng)有大數(shù)因子;(3)gcd(p-1,q-1)應(yīng)小。6.3密鑰管理與密鑰分配

一般說來,密碼算法的研制比更換密鑰要困難得多,即使費了九牛二虎的氣力研制了一個密碼算法,隨著對手截獲的報文的增多,知識積累的增加,破譯密碼的可能性就越來越大。因此,近代密碼學(xué)要求在設(shè)計密碼系統(tǒng)時,應(yīng)當(dāng)不強調(diào)密碼算法的保密。于是密碼系統(tǒng)的安全性就只取決于密鑰的安全。歷史的經(jīng)驗表明,從密鑰的管理途徑進行攻擊比單純破譯密碼算法要容易得多。在計算機網(wǎng)絡(luò)中,由于用戶和節(jié)點很多,出于安全的要求,密鑰又要經(jīng)常變換,于是密鑰的設(shè)置、生成、分配、使用、替換、更新、保護、存儲、備份/恢復(fù)、丟失、撤銷、銷毀等管理就成為一個十分棘手的問題。6.3.1密鑰的生成

現(xiàn)代密碼體制有點像門鎖,房間的安全主要依賴于鑰匙。也更像現(xiàn)代的電子鎖,鎖門的操作(相當(dāng)于加密算法)非常簡單,房間的安全關(guān)鍵在于卡片式鑰匙的保管,而一旦卡片丟失或房間換人,只要重新對卡片進行設(shè)置即可。下面討論與密鑰的安全性有關(guān)的幾個問題。

1.密鑰的長度和密鑰空間

在單鑰加密體制中,密鑰長度(Keylength)必須是足夠長的。密鑰的長度定義了密鑰空間的大小。例如,DES有56位密鑰,在正常情況下,任何一個56位的數(shù)據(jù)串都能成為其中一個密鑰,所以DES具有256(1016)的密鑰空間。每次使用的密鑰都是在這個密鑰空間中隨機抽取的。因此,對DES攻擊的難度,主要決定于密鑰長度所定義的密鑰空間。

實際上,DES的密鑰空間也沒有256(1016):在某些實現(xiàn)中,對密鑰組成還有一些限制。這些限制,將使密鑰空間減小,使DES密鑰的攻擊難度大為降低。表6.10為不同的限制對密鑰空間的影響。此外,根據(jù)摩爾法則,計算機的計算能力每隔18個月翻一番,而且計算方法也在進步。所以,一個安全的密鑰長度,很快就會不安全。還應(yīng)當(dāng)注意,將一個密碼使用的長度與另一個的長度進行比較是不合適的,通常,對稱密碼中的密鑰長度與非對稱密碼中的密鑰長度不是直接相等的。

2.弱密鑰問題

密鑰強度就是密鑰攻擊的復(fù)雜度,除了密鑰長度的因素外,還有密鑰本身的品質(zhì)問題。一個好的密鑰,應(yīng)當(dāng)使好記、難猜。相對而言,易猜,生成具有規(guī)律性,提供較低的攻擊復(fù)雜讀的密鑰就稱為弱密鑰(Weakkey)。顯然k57=k49=k41=……=k44=k36=0或1,k63=k55=k47=……=k12=k4=0或1時,k將是弱密鑰。故DES有以下4種弱密鑰(十六進制表示):01010101010101011F1F1F1F1F1F1F1FE0E0E0E0E0E0E0E0FEFEFEFEFEFEFEFE

還有一種密鑰稱為半弱密鑰,即存在k和k’使得DESk(m)=DESk’-1(m),或DESk(DESk’(m))=m。k和k’成對構(gòu)成半弱密鑰。半弱密鑰有下面12個。01FE01FE01FE01FEFE01FE01FE01FE011FE01FE01FE01FE0E01FE01FE01FE01F01E001E001E001E0E001E001E001E0011FFE1FFE1FFE1FFEFE1FFE1FFE1FFE1F011F011F011F011F1F011F011F011F01E0FEE0FEE0FEE0FEFEE0FEE0FEE0FEE0嚴(yán)格地說,生成一個密鑰后,應(yīng)當(dāng)對其進行若密鑰測試。若發(fā)現(xiàn)是弱密鑰,就換一個。但是,在DES的256(1016)的密鑰空間中,只有16個弱密鑰。這個幾率很小。

對于公開密鑰體制來說,密鑰的產(chǎn)生就不這么簡單了。因為密鑰必須有一些約束,如:要符合某些數(shù)學(xué)特征,如:是素數(shù),是二次剩余的等。隨機性要強,最好偽隨機數(shù)種子也是隨機的。應(yīng)當(dāng)好記。將好記和隨機性結(jié)合起來解決的好的辦法是使用一個容易記憶的通信短語(passphrase)作為用戶使用的密鑰,如使用短語:MynameisOzymandisa,kingofkings,lookonworks,yemighty,anddespair.然后,使用密鑰碾碎(Keycrunching)技術(shù),將該短語碾碎成64位的密鑰。如上述短語可以碾碎成: e6c143985ae90a9b這個密鑰的隨機性與通信短語的長度有關(guān)。當(dāng)通信短語有足夠的長度(一般認(rèn)為有10個以上單詞,或有49個以上字母),得到的密鑰將具有較好的隨機性。此外,密鑰的選擇還要盡避免字典攻擊。美國國防部建議在OFB方式下,使用系統(tǒng)中斷向量、系統(tǒng)狀態(tài)寄存器、程序計數(shù)器、系統(tǒng)時鐘、系統(tǒng)ID號等產(chǎn)生DES隨機密鑰。

6.3.2密鑰的分配在密鑰管理中,最核心、對關(guān)鍵的問題是密鑰分配。密鑰主要涉及密鑰的發(fā)送和驗證,密鑰。前者要求通過非常安全的通路進行傳送,后者要求有一套機制用于檢驗分發(fā)和傳送的正確性。1.密鑰設(shè)置協(xié)議為了提高密鑰的安全性,目前流行的密鑰管理方案一般采用層次的密鑰設(shè)置。X9.17標(biāo)準(zhǔn)描述了兩種層次的密鑰:數(shù)據(jù)密鑰(datakey,DK):直接對信息序列加密。密鑰加密密鑰(keyencryptionkey,KK):加密需要分發(fā)的密鑰。2.網(wǎng)外分發(fā)與網(wǎng)內(nèi)分發(fā)密鑰的分發(fā)方法可以分為兩種:網(wǎng)外分發(fā)和網(wǎng)內(nèi)分發(fā)。網(wǎng)外分發(fā)即人工分發(fā):派非常可靠的信使(郵寄、信鴿等)攜帶密鑰分配給各用戶。但是,隨著用戶的增加、通信量的增大以及黑客技術(shù)的發(fā)展,密鑰的使用量增大,且要求頻繁更換,信使分配就不再適用,而多采用網(wǎng)內(nèi)密鑰分配,即自動密鑰分配。網(wǎng)內(nèi)密鑰分配的方式有兩種:用戶之間直接分配和通過設(shè)立一個密鑰分配中心(KeyDistributionCenter,KDC)分配。具體的密鑰分配方法稱為密鑰分配協(xié)議。目前國際有關(guān)標(biāo)準(zhǔn)化機構(gòu)都在著手制定關(guān)于密鑰管理技術(shù)的規(guī)范。國際標(biāo)準(zhǔn)化組織ISO和國際電工委員會IEC下屬的信息技術(shù)委員會JTCI已經(jīng)起草了關(guān)于公鑰管理的國際規(guī)范。該規(guī)范主要由3部分組成:密鑰管理框架;采用對稱技術(shù)的機制;采用非對稱技術(shù)的機制。3.密鑰分配的幾種方法在單鑰加密體制中,信息交換方必須共享一個密鑰,并且這個密鑰要防止被他人獲得。在公開加密體制中,為了使加密有效進行,信息接受方必須發(fā)布其公開密鑰,同時防止其私鑰被人竊取。此外,密鑰還要經(jīng)常更換,以便泄露見降至最小。

設(shè)有通信的雙方A和B,密鑰的分配可以有如下幾種方法:

(1)網(wǎng)外分發(fā)方法密鑰由A選定,然后通過物理方法傳遞給B。密鑰由可信任的第三方選定,然后通過物理方法傳遞給A和B。

(2)密鑰分配中心分發(fā)若A和B有一個共同的可信任的第三方——KDC(密鑰分配中心),KDC可以通過加密連接將密鑰安全地傳送給A和B。這種方法多用于單鑰密鑰的分配。這個例子的前提:·A和B有一個共同的可信任的第三方——KDC;·KDC分別與A和B有一保密的信道,即KDC與A和B分別已經(jīng)有一通信密鑰Ka和Kb;·假定A與B的通信是A主動。目的是得到KDC分配的通信密鑰Ks,在A和B之間建立秘密信道。①A向KDC發(fā)出會話密鑰請求:IDa||IDb||N1

IDa,IDb標(biāo)識會話雙方A和B;N1標(biāo)識本次會話(可能是時間戳或隨機數(shù)等一個他人難于猜測的現(xiàn)時值)。②KDC對A的請求應(yīng)答:EKa[Ks||{IDa||IDb||N1}||EKb[{Ks||IDa}]]

全部報文用A已經(jīng)掌握的密鑰Ka加密,內(nèi)容包括三部分:一次性會話密鑰Ks。A的請求報文(供A檢驗)。要求A中轉(zhuǎn),但A不能知道內(nèi)容的、用Kb加密的一段報文:Ks||IDa。③A存儲Ks,并向B轉(zhuǎn)發(fā):EKb[Ks||IDa]。B得到:

Ks,還知道Ks來自KDC(因為用Kb可解密,A不知道Kb)。由IDa知道會話方是A。④B向A回送報文:EKs[N2]。用Ks表明自己的身份是B(因為Ks要用Kb解密)。用N2再確認(rèn)。⑤A向B回送報文:EKs[f(N2)]。確認(rèn)B前次收到的報文不是回放。這樣,A與B就有了自己的秘密通道了。

(3)證書授權(quán)中心(CertificateAuthority,CA)分發(fā)·A和B都有可信任的第三方——CA發(fā)布自己的私有密鑰,則A和B都可以用彼此的公開密鑰加密通信?!び糜诠_加密密鑰的分配。

①用戶A向CA發(fā)出請求報文:一個帶時間戳的消息。獲取B的公鑰的請求。②CA對A應(yīng)答(用A的公鑰加密,A可以用自己的私鑰解密):

B的公鑰PKB(供A向B發(fā)加密消息)。A的請求(供A驗證本報文是對自己請求的應(yīng)答)。最初的時間戳(供A確認(rèn)不是CA發(fā)來的舊消息,以便確定PKB確是B的)。③、④B用同①、②相同的方法,從CA得到A的公鑰PKA。⑤A用PKB向B發(fā)送一個消息:

A的身份IDA。一次性隨機數(shù)N1。⑥B用PKA向A發(fā)送一個消息:

N1(只有B才能解密用PKB加密的消息;將N1返回A,讓A確認(rèn)是B)。一次性隨機數(shù)N2。⑦A用PKB將N2加密,返回B,供B確認(rèn)。

應(yīng)當(dāng)說明,這種方法是基于公鑰目錄表的。公鑰目錄表是由某個可信的機構(gòu)或組織管理、并定期更新、定期公布的用戶公鑰目錄表。目錄表中的每個目錄項由兩個數(shù)據(jù)組成:用戶名和該用戶的公鑰。用戶可以在公鑰目錄表的管理機構(gòu)注冊自己的公鑰,也可以隨時更換現(xiàn)有的公鑰,也可以通過電子方式在有安全認(rèn)證的情況下訪問公鑰目錄表。應(yīng)當(dāng)注意的是,公鑰目錄表可能會被攻擊者偽造、監(jiān)聽、攻擊。

(4)公鑰證書

公鑰證書是由CA為用戶發(fā)布的一種電子證書。例如用戶A的證書內(nèi)容形式為:CA=ESKCA[T,IDA,PKA]

其中:

IDA是用戶A的標(biāo)識。

PKA是A的公鑰。T是當(dāng)前時間戳,用于表明證書的新鮮性,防止發(fā)送方或攻擊者重放一舊證書。SKCA是CA的私鑰。證書是用CA的思鑰加密的,以便讓任何用戶都可以解密,并確認(rèn)證書的頒發(fā)者。當(dāng)一方要與另一方建立保密信道時,就要把自己的證書發(fā)給對方。接收方用CA的公鑰對證書進行查驗,并獲得發(fā)送方的公鑰。接收方同意進行保密通信,也要將自己餓證書發(fā)送到對方。這樣,就不依賴CA而直接交換了公鑰。6.3.3密鑰的使用與保護1.密鑰的控制使用控制密鑰使用,是為了保證按照預(yù)定的方式使用??刂泼荑€使用的信息有:密鑰主權(quán)人;密鑰合法使用期限;密鑰標(biāo)識符;密鑰預(yù)定用途;密鑰預(yù)定算法;密鑰預(yù)定使用系統(tǒng);密鑰授權(quán)用戶;在密鑰生成、注冊、證書等有關(guān)實體中的名字等。2.密鑰的保護與存儲密鑰從產(chǎn)生到終結(jié),在整個的生存期中都需要保護。一些基本的措施有:(1)密鑰決不能以明文形式存放。(2)密鑰首先選物理上擇最安全的地方存放。(3)在有些系統(tǒng)中可以使用密鑰碾碎技術(shù)由一個短語生成單鑰密鑰。(4)可以將密鑰分開存放。例如:將密鑰平分成兩段,一段存入終端,一段存入ROM。將密鑰分成若干片,分發(fā)給不同的可信者保管。

6.3.4密鑰生存期的結(jié)束1.密鑰的有效期任何密鑰都不可能無限期地使用。有許多因素,似的密鑰不能使用太長的時間,如:密鑰使用越久,攻擊者對它的攻擊方法越多,攻擊的機會越多。密鑰一旦泄露,不立即廢除,時間越長,損失越大。因此,不同的密鑰應(yīng)當(dāng)有不同的有效期,同時必須制定一個檢測密鑰有限期的策略。密鑰的有限期依據(jù)數(shù)據(jù)的價值和給定時間里加密數(shù)據(jù)的數(shù)量確定。

2.密鑰的停用和更新當(dāng)發(fā)生下列情況時,應(yīng)當(dāng)停止密鑰的使用,更新密鑰。密鑰的使用期到,應(yīng)該更新密鑰。確信或懷疑密鑰被泄露密鑰,密鑰及其所有變形都要替換。懷疑密鑰是由一個密鑰加密密鑰或其他密鑰推導(dǎo)出來時,各層與之相關(guān)的密鑰都應(yīng)更換。通過對加密數(shù)據(jù)的攻擊可以確定密鑰時,在這段時間內(nèi)必須更換密鑰。確信或懷疑密鑰被非法替換時,該密鑰和相關(guān)密鑰都要被更換。3.密鑰的銷毀密鑰被替換后,舊密鑰必須銷毀。舊密鑰雖然不再使用,卻可以給攻擊者提供許多有重大參考價值的信息,為攻擊者推測新的密鑰提供許多有簡直的信息。為此,必須保證被銷毀的密鑰不能給任何人提供絲毫有價值的信息。下面是在銷毀密鑰時使用過的一些方法,供參考:密鑰寫在紙上時,要把紙張切碎或燒毀;密鑰存在EEPROM中時,要對EEPROM進行多次重寫;密鑰存在EPROM或PROM時,應(yīng)將EPROM或PROM打碎成小片;密鑰存在磁盤時,應(yīng)當(dāng)多次重寫覆蓋密鑰的存儲位置,或?qū)⒋徘兴?;要特別注意對存放在多個地方的密鑰的同時銷毀。

6.4數(shù)據(jù)隱藏及其數(shù)字水印技術(shù)6.4.1數(shù)據(jù)隱藏技術(shù)概述數(shù)據(jù)隱藏技術(shù)是指隱藏數(shù)據(jù)的存在性。通常是將數(shù)據(jù)隱藏在一個容量更大的數(shù)據(jù)載體之中,形成隱密載體,使非法者難于察覺其中隱藏有某些數(shù)據(jù),或難于從中提取被隱藏數(shù)據(jù)。載體可以采用文字、圖像、聲音以及視頻等。一般多用多媒體數(shù)據(jù)作為載體。這是因為多媒體數(shù)據(jù)本身具有極大的冗余性,具有較大掩蔽效應(yīng)。為了增加被攻擊的難度,還可以把加密與數(shù)據(jù)隱藏兩者結(jié)合起來,將加過密的密文隱藏在多媒體載體之中。6.4.3數(shù)字水印的主要特征1.不可感知性在多媒體作品中加入水印后,要不改變其感知效果,如圖像加入水印后,在視覺上察覺不出有隱藏的水印,同時也不影響原作品的視覺質(zhì)量,即人們感覺不到圖像有了什么變化。因此要求多媒體作品加入數(shù)字水印后,數(shù)字信息發(fā)生的變化和失真應(yīng)低于可感知的門限,并且在各中分辨率下加

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論