萬盛學電腦網

 萬盛學電腦網 >> 網絡基礎知識 >> 了解網絡安全之密碼學的基礎知識

了解網絡安全之密碼學的基礎知識

了解網絡安全之密碼學的基礎知識

出處:網絡整理作者:佚名日期:2008-03-19

關鍵字:

  密碼學要實現的基本功能

  數據加密的基本思想是通過變換信息的表示形式來偽裝需要保護的敏感信息,使非授權者不能了解被保護信息的內容。網絡安全使用密碼學來輔助完成在傳遞敏感信息的的相關問題,主要包括:

  (I)機密性(confidentiality)
  僅有發送方和指定的接收方能夠理解傳輸的報文內容。竊聽者可以截取到加密了的報文,但不能還原出原來的信息,及不能達到報文內容。

  (II)鑒別(authentication)
  發送方和接收方都應該能證實通信過程所涉及的另一方, 通信的另一方確實具有他們所聲稱的身份。即第三者不能冒充跟你通信的對方,能對對方的身份進行鑒別。

  (III)報文完整性(message intergrity)
  即使發送方和接收方可以互相鑒別對方,但他們還需要確保其通信的內容在傳輸過程中未被改變。

  (IV)不可否認性(non-repudiation)
  如果我們收到通信對方的報文後,還要證實報文確實來自所宣稱的發送方,發送方也不能在發送報文以後否認自己發送過報文。

  加密算法

  加密技術根據其運算機制的不同,主要有對稱加密算法、非對稱加密算法和單向散列算法。其中各有優缺點,他們之間協合合作,共同實現現代網絡安全應用。

  對稱密碼算法

  對稱密碼體制是一種傳統密碼體制,也稱為私鑰密碼體制。在對稱加密系統中,加密和解密采用相同的密鑰。

  (I) 凱撒密碼Casesar cipher:
  將明文報文中的每個字母用字母表中該字母後的第R個字母來替換,達到加密的目的。

  (II) DES,3DES和AES
  DES(Data Encryption Standard) 算法是美國政府機關為了保護信息處理中的計算機數據而使用的一種加密方式,是一種常規密碼體制的密碼算法,目前已廣泛使用。該算法輸入的是64比特的明文,在64比特密鑰的控制下產生64比特的密文;反之輸入64比特的密文,輸出64比特的明文。64比特 的密鑰中含有8個比特的奇偶校驗位,所以實際有效密鑰長度為56比特。

  1997 年RSA數據安全公司發起了一項“DES 挑戰賽”的活動,志願者四次分別用四個月、41天、56個小時和22個小時破解了其用56bit DES算法加密的密文。即DES加密算法在計算機速度提升後的今天被認為是不安全的。

  3DES 是DES算法擴展其密鑰長度的一種方法,可使加密密鑰長度擴展到128比特(112比特有效)或192比特(168比特有效)。其基本原理是將128比特 的密鑰分為64比特的兩組,對明文多次進行普通的DES加解密操作,從而增強加密強度。

  AES(Advanced Encryption Standard)是2001年NIST宣布的DES後繼算法。AES處理以128bit數據塊為單位的對稱密鑰加密算法,可以用長為128,192和256位的密鑰加密。

  NIST估計如果用能在1秒鐘內破解56bitDES算法的計算機來破解128位的AES密密鑰,要用大約149 億萬年時間。

  對稱算法最主要的問題是:由於加解密雙方都要使用相同的密鑰,因此在網絡安全中,發送、接收數據之前,必須完成密鑰的分發。因而,密鑰的分發便成了該加密體系中的最薄弱因而風險最大的環節。各種基本的手段均很難保障安全、高效地完成此項工作。在對稱算法中,盡管由於密鑰強度增強,跟蹤找出規律破獲密鑰的機會大大減小了,但密鑰分發的困難問題幾乎無法解決。如,設有n方參與通信,若n方都采用同一個對稱密鑰,一旦密鑰被破解,整個體系就會崩潰。優點是對稱加密算法效率高,速度快。對稱加密算法用於對數據內容加密,解決上文中提到的機密性功能需求問題。

  在應用對稱加密算法時,密鑰的長度越大,破解難度就越大,相對來說越安全。但同時會降低系統的運行效率。同時計算機的運行速度成線性增長,網格等技術的出現使得現在的對稱加密算法越來越受到威脅。對稱密鑰生存周期很好的解決了這個問題:我們每隔一段時間(比如一小時)更換一個對稱密鑰,即在第三方破解之前就更換了新的密鑰。這樣就解決了這個難題。

  不對稱密碼學

  傳統的對稱加密算法遇到了密鑰分發管理的難題,最優秀的算法,如果密鑰在分發、傳發洩漏,則整個安全體系則毀於一旦。不對稱加密算法則有效的避免了其分發管理密鑰的難題。不對稱密碼學中使用到一對公鑰(public key)和私鑰(private key)組合。用公鑰加密的密文只能用私鑰解密,反之,用私鑰加密的密文只能用公鑰解密。在操作過程中,我們把公鑰向外界發布,讓外界都知道,自己保存私鑰,只有自己才能知道。如果A要發一份秘密信息給B,則A只需要得到B的公鑰,然後用B的公鑰加密秘密信息,此加密的信息只有B能用其保密的私鑰解密。反之,B也可以用A的公鑰加密保密信息給A。信息在傳送過程中,即使被第三方截取,也不可能解密其內容。

  (I)RSA

  RSA(取Ron Rivest,Adi Shamir和Leonard Adleman三創始人字句首字母)幾乎已經成為了公開密鑰密碼體制的代名詞。RSA是一種公開密鑰加密體系,它的應用原理是:

  先由密鑰管理中心產生一對公鑰 (public-key)和私鑰(Private-key),稱為密鑰對。方法如下:先產生兩個足夠大的強質數p、q。可得p與q的乘積為 n=p×q。再由p和q算出另一個數z=(p-1)×(q-1),然後再選取一個與z互素的奇數e,稱e為公開指數;從這個e值可以找出另一個值d,並能 滿足e×d=1 mod (z)條件。由此而得到的兩組數(n,e)和(n,d)分別被稱為公開密鑰和秘密密鑰,或簡稱公鑰和私鑰。

  目前的公鑰密碼算法都是基於一些復雜的數學難題,例如目前廣泛使用的RSA算法就是基於大整數因子分解這一著名的數學難題。公鑰密碼體系的優點是能適應網絡的開放性要求,密鑰管理簡單,並且可方便地實現數字簽名和身份認證等功能,是目前電子商務等技術的核心基礎。其缺點是算法復雜,加密數據的速度和效率較低。因此在實際應用中,通常將對稱加密算法和非對稱加密算法結合使用,利用對稱加密算法來進行大容量數據的加密,而采用RSA等非對稱加密算法來傳遞對稱加密算法所使用的密鑰,通過這種方法可以有效地提高加密的效率並能簡化對密鑰的管理。

  (II) 鑒別與簽名

  對稱密碼學解決了數據機密性的功能要求,不對稱密碼學則相應的解決了簽別和不可否認性等功能需求。

  在不對稱密碼學中,用自己公鑰加密的數據只有自己才能打開,我們就可以把我們自己的公鑰放在網上,通信的對方可以用自己的公鑰加密數據,密文只有我們自己才能打開,達到了加密數據而不需要通過一種十分可靠的方式來傳遞對稱密鑰的作用。反之,如果我們使用私鑰來加密消息,通信的對方用公鑰來解密消息,就可以達到鑒別的作用。因為能用公鑰解密消息,說明數據一定是我自己加密的,前提是這些加密並不為保護數據內容,只為確認、鑒別我的身份而用。這樣我們也可以用對稱算法作數字簽名 (digital signature),用私鑰加密報文,就可以讓對方確認我的身份。如果A用其私鑰加密了某信息,B用A的公鑰鑰密後“閱讀”A的信息,則A就不能否認其給A發過過信息。

  (III)CA (Certification Authrity)

  公鑰加密體系理論上非常安全,操作過程中有可能會受到中間人攻擊(man-in-the-middle attack)。

  比如B要發一個保密信息給A,所以第一步A把自己的公鑰Ka發給B。在這一過程中,如果竊聽者H 截取到其公鑰,然後偽裝成A,將自己的公鑰Kh發給B。B將敏感信息用Kh加密後發給A,此過程中,竊聽者H截取密文後用H的私鑰解密得到信息內容,然後用A的公鑰Ka加密得到密文,自己偽裝成B發給A,A用自己的私鑰順利的解開了密文。在此過程中,A與B通訊順利,也感覺不到H的存在,但A與B的信息卻被竊聽者竊取。

  CA的出現有效的解決了中間人的攻擊。CA(certification authrity)把一個特定的實體和公鑰綁在一起。我們把信任建立在一個大家都信任的第三方,從信任第三方來達到信任對方的目的。如果我們想發放自己的公鑰,則用自己的相關身份信息和自己的公鑰到一家權威機構(比如像派出所這樣的機構)辦一個數據證書。權威機構核實你的身份以後,用其權威機構的私鑰來加密你的數據證書。如果你要把你的公鑰傳送給對方,只需要將自己的數據證書傳遞給對方,對方用權威機構的公鑰解密即可得到你身份的相關信息和公鑰。而權威機構的公鑰則更加透明,比如可以刊登在報紙上讓大家都知道。我們的系統本身也帶有一些權威機構的公鑰,這些在我們裝好系統就已經存在了。

  單向散列算法

  對稱加密算法和非對稱加密算法有效的解決了機密性,不可否認性和簽別等功能,單向散列算法則有效的解決了完整性的問題。

  單向散列算法,又叫HASH算法,用HASH函數對一段數據進行一次運算,得到一段固定長度的報文摘要(message digest),任意兩個不同的數據得到兩個不同的摘要,或者一個數據內容發生一個bit的變化,生成的摘要都截然同。這樣就可以達到確認數據完整性和沒有被惡意或者無意識修改的作用。常用的HASH

copyright © 萬盛學電腦網 all rights reserved