2016年計算機(jī)等考三級網(wǎng)絡(luò)技術(shù)輔導(dǎo):加密技術(shù)

字號:


     1.密碼學(xué)基本概念
     (1)密碼學(xué)基本術(shù)語
     明文:原始的消息。
     密文:加密后的消息。
     加密:從明文到密文的變換過程。
     解密:從密文到明文的變換過程。
     密碼編碼學(xué):研究各種加密方案的學(xué)科。
     密碼體制或密碼:加密方案。
     密碼分析學(xué)(破譯):研究破譯密碼獲得消息的學(xué)科。
     密碼學(xué):密碼編碼學(xué)和密碼分析學(xué)的統(tǒng)稱。
     (2)密碼編碼學(xué)
     密碼編碼學(xué)具有3個獨(dú)立的特征。
     ①轉(zhuǎn)換明文為密文的運(yùn)算類型。所有的加密算法都基于兩個原理:代換和置換。
     ②所用的密鑰數(shù)。如果發(fā)送方和接收方使用相同的密鑰,這種密碼就是對稱密碼、單密鑰密碼或傳統(tǒng)密碼:否則就是非對稱密碼、雙鑰密碼或公鑰密碼。
     ③處理明文的方法。加密算法可以分為分組密碼和流密碼。分組密碼每次處理一個輸入分組,相應(yīng)輸出一個分組。典型的分組是64位或128位。而流密碼是連續(xù)地處理輸入元素,每次輸出一個元素。一般而言,分組密碼的引用范圍要比流密碼廣泛。絕大多數(shù)基于網(wǎng)絡(luò)的對稱密碼應(yīng)用使用的都是分組密碼。
     (3)密碼分析學(xué)
     攻擊密碼體制一般有兩種方法:
     ①密碼分析學(xué)。密碼分析學(xué)的攻擊依賴于算法的性質(zhì)和明文的一般特征或某些明密文對。 ②窮舉攻擊。攻擊者對一條密文嘗試所有的可能的密鑰,直到解密?;诩用苄畔⒌墓纛愋鸵娤卤怼?BR>    
     一般來說,加密算法起碼要能經(jīng)受得住已知明文攻擊。
     (4)無條件安全與計算上的安全
     如果無論有多少可使用的密文,都不足以惟一地確定由該體制產(chǎn)生密文所對應(yīng)的明文,則加密體制是無條件安全的。加密體制滿足以下兩個條件才是計算上安全的。
     ①破譯密碼的代價超出密文信息的價值。
     ②破譯密碼的時間超出密文信息的有效生命期。
     (5)代換與置換技術(shù)
     代換與置換技術(shù)是幾乎所有的對稱加密用到的兩種技巧。
     代換法是將明文字母替換成其他字母、數(shù)字或符號的方法。典型的算法包括:Caesar密碼、單表代換密碼、playfak密碼、Hill密碼、多表代換密碼以及一次一密。已知最早的代換密碼是由 JuliusCaesar發(fā)明的Caesar密碼。
     置換法是將明文通過置換而形成新的排列。最簡單的例子是柵欄技術(shù),按對角線的順序?qū)懭朊魑?,而按行的順序讀出作為密文。單純的置換密碼容易被識破,多部置換密碼比較安全一些。
     2.對稱密碼
     (1)對稱加密技術(shù)的模型
     對稱加密方案由5部分組成:明文、加密算法、密鑰、密文及解密算法。
     (2)數(shù)據(jù)加密標(biāo)準(zhǔn)
     使用最廣泛的加密體制是數(shù)據(jù)加密標(biāo)準(zhǔn)(DES)。這個算法本身被稱為數(shù)據(jù)加密算法(DEA)。DES采用64位的分組長度和56位的密鑰長度。將64位的輸入進(jìn)行一系列的變換得到64位的輸出。解密使用了相同的步驟和相同的密鑰。
     (3)其他常見的對稱加密算法
     ①三重DES。3DES算法:使用多個密鑰對 DES進(jìn)行3次加密。
     ②高級加密標(biāo)準(zhǔn)(AEs)。其算法密鑰長度為128位、192位或256位,分組長度為128位。
     ③Blowfish算法。Blowfish算法是一個可變密鑰長度的分組密碼算法,分組長度為64位。算法由兩部分組成:密鑰擴(kuò)展和數(shù)據(jù)加密。至今, Blowfish的安全性還沒有受到挑戰(zhàn)。
     ④RC5算法。RC5是參數(shù)可變的分組密碼算法,3個可變的參數(shù)是:分組大小、密鑰大小和加密輪數(shù)。RC5算法中使用了3種運(yùn)算:異或、加和循環(huán)。
     3.公鑰密碼
     前面我們提到,發(fā)送方和接收方使用相同的密鑰,這是對稱密碼;如果使用不同的密鑰,就是非對稱密鑰,也稱為公鑰密碼。公鑰密碼是基于數(shù)學(xué)函數(shù)的算法,而不是基于置換和代換技術(shù)。它是非對稱的,使用兩個獨(dú)立的密鑰。
     (1)公鑰密碼體制
     公鑰算法依賴一個加密密鑰和一個與之相關(guān)但不相同的解密密鑰。其重要特點(diǎn)是:僅根據(jù)密碼算法和加密密鑰來確定解密密鑰在計算上是不可行的。另外,對于有些加密算法(如RSA)而言:兩個密鑰中,任何一個都可以用來加密,另一個用來解密。
     (2)公鑰體制的應(yīng)用
     一般來說,公鑰密碼體制的應(yīng)用可分為3類:
     ①加密/解密:發(fā)送方用接收方的公鑰對消息加密。
     ②數(shù)字簽名:發(fā)送方用自己的私鑰對消息“簽名”。
     ⑧密鑰交換:通信雙方交換會話密鑰。
     (3)RSA算法
     RSA出現(xiàn)于1978年,它是第一個既能用于數(shù)據(jù)加密也能用于數(shù)字簽名的算法。
     RSA是種分組密碼,其明文和密文均是0至 n-1之間的整數(shù),通常n的大小是l024位二進(jìn)制數(shù)或309位十進(jìn)制數(shù)。
     明文以分組為單位進(jìn)行加密,每個分組的二進(jìn)制值均小于n,即分組的大小必須小于或等于 log2(n)位,在實(shí)際應(yīng)用中,分組的大小是k位,其中2k   RSA選取密鑰的過程如下:
     ①選取兩個大質(zhì)數(shù)p和q。質(zhì)數(shù)值越大,*RSA就越困難,但加密和解密的時間就越長。
     ②計算n=p*q和z=(p-t)(q-1)。
     ③選取小于n的數(shù)e,且和z沒有公約數(shù)(除了,)(即e和z是互質(zhì)數(shù))。
     ④找到數(shù)d,滿足(n,e),私鑰密鑰是數(shù)對(n,d)。公開公共密鑰。
     (4)其他的公鑰加密算法
     ①ElGamal算法。ElGamal算法是一種較為常見的加密算法,它是基于l984年提出的公鑰密碼體制和橢圓曲線加密體系。既能用于數(shù)據(jù)加密,也能用于數(shù)字簽名。ElGamal在加密過程中,生成的密文長度是明文的兩倍,且每次加密后都會在密文中生成一個隨機(jī)數(shù)K。
     ②ElGamal算法。背包加密算法是以求解背包問題的計算困難性為基礎(chǔ)的,也稱為MH加密方法。背包體制基本上都被破譯了,很少有人用它。
     4.密鑰管理
     (1)密鑰的分發(fā)(對稱密碼學(xué))
     對稱密碼學(xué)的一個缺點(diǎn)就是需要通信雙方事先對密鑰達(dá)成一致協(xié)議。采用的解決方案是使用雙方都信任的密鑰分發(fā)中心。密鑰分發(fā)中心(KDC)是一個獨(dú)立的可信網(wǎng)絡(luò)實(shí)體。是一個服務(wù)器,知道每個用戶的秘密密鑰,每個用戶通過這個秘密密鑰與KDC進(jìn)行安全通信。
     (2)密鑰的認(rèn)證(公共密鑰)
     對于公共密鑰加密,通信實(shí)體必須先交換公共密鑰。一個用戶可以通過多種方式公布其公共密鑰。為保證不會收到第三方的主動攻擊,需要使用一個可信媒介——認(rèn)證中心。認(rèn)證中心(CA)驗(yàn)證一個公共密鑰是否屬于一個特殊實(shí)體。簡單地說,CA就是認(rèn)證這個公鑰是屬于誰的。
     認(rèn)證中心(CA)負(fù)責(zé)將公共密鑰和特定實(shí)體進(jìn)行綁定,其工作就是證明身份的真實(shí)性和發(fā)放證書。CA具有以下作用。
     ①CA驗(yàn)證實(shí)體(個人、路由器)的身份
     ②一旦CA驗(yàn)證了實(shí)體的身份,就產(chǎn)生一個證書,將這個公共密鑰和身份進(jìn)行綁定。證書中包括公共密鑰和密鑰所有者的全球惟一的標(biāo)識信息。這個證書由認(rèn)證中心進(jìn)行數(shù)字簽名。
     國際電信聯(lián)盟(ITU)和IETF制定了認(rèn)證中心的標(biāo)準(zhǔn)。ITUX.509[ITU1993]不但定義了認(rèn)證服務(wù),還定義了認(rèn)證的特定語法。