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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第2篇信息系統安全信任體系

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

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

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

Cc=Ek(P)

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

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

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

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

明文WHATCANYOULEARNFROMTHISBOOKXXXXX輸出的密文為:

WORONNSXALMKHUOOTETXYFBXARIXCAHX

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

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

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

1.DES的基本思想DES算法的基本思想是將二進制序列的輸入明文,以64位為數據分組,然后對這些明文進行替換和換位,最后形成密文。如圖6.3所示。DES算法的基本特點如下:(1)對稱算法:既可用于加密,也可用于解密。(2)64位的密鑰,使用長度為56位(64位明文中,有8位用于奇偶校驗)。(3)加密算法是混淆與擴散的結合,或者說是換位與置換的結合。(4)每個DES都在明文上實施16重相同的組合技術,如圖6.4所示。這種重復性可以被非常理想地應用到一個專用芯片中。圖6.3DES加密2.DES加密過程細化圖6.5為對圖6.4的細化。從圖中可以看出,DES加密過程主要涉及如下環節(模塊):初始換位和逆初始換位;將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的逆變換。將明文分成左右兩段和將左右兩段合并比較簡單,這里就不介紹了。關于每一輪的迭代和每一輪使用的子密鑰的生成,下面專門介紹。表6.4初始換位IP和逆初始換位IP-13.子密鑰的生成圖6.6為生成每一輪使用的48位子密鑰的過程。下面介紹它的各個環節。(1)壓縮變換PC-1與將分割得到C0,D0PC-1的作用是去掉奇偶校驗位8,16,24,32,40,48,56,64后,按56位進行換位。換位算法如表6.5所示。(2)密鑰移位56位密鑰被分成兩部分之后,每一部分28位。在每一輪中進行一次左移位,左移的位數以輪數而異,如表6.6所示。生成每一輪使用的48位子密鑰的過程

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

具體的辦法是對于每個輸入分組,在輸出分組中將第1、4位分別對應2位,第2、3位不變。如圖6.8所示。這樣,盡管輸出分組大于輸入分組,但每一個輸入分組產生唯一的輸出分組。(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三名數學家共同提出了一種用數論構造的、迄今理論上最為完臻的公開密鑰算法,并用他們三人的名字將之命名為RSA算法。

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

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

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

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

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

①選擇兩個素數p=7,q=17。②計算n=p·q=7×17=119。計算n的歐拉函數φ(n)=(p-1)(q-1)=6×16=96。③從[0,95]間選一個與96互質的數e=5,根據式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)明文數字化,即將明文轉換成數字串。(2)分組。將二進制的明文串分成長度小于log2n的數字分組。如果p和q都為100位素數,則n將有200位,所以每個明文分組應小于200位。(3)加密算法Ci=Mie(modn)最后得到的密文C由長度相同的分組Ci組成。(4)解密算法D(C)≡Cd(modn)4.綜合應用舉例(1)產生密鑰設: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明文數字化(按字母序,令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體制的加密強度依賴于大數分解的困難程度。采用窮舉法,對于兩個100位的十進制大素數,破譯它大約需要1023步,若使用100萬步/秒的計算機資源對其進行破密,約需要1000年。但是,人類的計算能力也在不斷提高,原來一些被認為不可能分解的大數,現在已經被成功分解。例如,RSA-129(即n為129位的十進制數,約428比特),歷時8個月,已經于1994年4月被成功分解。而且有報道,國外科學家正在用量子方法對大數分解發起沖擊。

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

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

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

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

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

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

2.弱密鑰問題

密鑰強度就是密鑰攻擊的復雜度,除了密鑰長度的因素外,還有密鑰本身的品質問題。一個好的密鑰,應當使好記、難猜。相對而言,易猜,生成具有規律性,提供較低的攻擊復雜讀的密鑰就稱為弱密鑰(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’成對構成半弱密鑰。半弱密鑰有下面12個。01FE01FE01FE01FEFE01FE01FE01FE011FE01FE01FE01FE0E01FE01FE01FE01F01E001E001E001E0E001E001E001E0011FFE1FFE1FFE1FFEFE1FFE1FFE1FFE1F011F011F011F011F1F011F011F011F01E0FEE0FEE0FEE0FEFEE0FEE0FEE0FEE0嚴格地說,生成一個密鑰后,應當對其進行若密鑰測試。若發現是弱密鑰,就換一個。但是,在DES的256(1016)的密鑰空間中,只有16個弱密鑰。這個幾率很小。

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

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

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

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

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

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

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

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

(3)證書授權中心(CertificateAuthority,CA)分發·A和B都有可信任的第三方——CA發布自己的私有密鑰,則A和B都可以用彼此的公開密鑰加密通信。·用于公開加密密鑰的分配。

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

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

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

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

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

(4)公鑰證書

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

其中:

IDA是用戶A的標識。

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

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

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

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

溫馨提示

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

評論

0/150

提交評論