1 / 108

資訊安全─入門手冊

資訊安全─入門手冊. 第 12 章 加密. 第 12 章 加密. 『 良好的加密是安全的不二法門 』 。 如果可以利用加密來保護資訊,也就沒有人可以看得到內容或修改內容。 如果我們使用加密,也可以確認交談對象的身份。 加密確實是非常重要的安全工具、加密機制可以協助確認資訊的來源,但是加密本身並不是最後的答案。 加密機制可以做為廣泛安全計畫其中的一個環節。. 在安全計畫之中廣泛地使用加密機制,只是因為加密機制可以協助資訊的機密性、完整性和可說明性。 加密只會延緩取得內容所需的時間。 本章主要是希望提供您加密的基本觀念以及如何使用加密。. 本章的內容如下:

hafwen
Download Presentation

資訊安全─入門手冊

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 資訊安全─入門手冊 第 12 章 加密

  2. 第 12 章 加密 • 『良好的加密是安全的不二法門』。 • 如果可以利用加密來保護資訊,也就沒有人可以看得到內容或修改內容。 • 如果我們使用加密,也可以確認交談對象的身份。 • 加密確實是非常重要的安全工具、加密機制可以協助確認資訊的來源,但是加密本身並不是最後的答案。 • 加密機制可以做為廣泛安全計畫其中的一個環節。

  3. 在安全計畫之中廣泛地使用加密機制,只是因為加密機制可以協助資訊的機密性、完整性和可說明性。在安全計畫之中廣泛地使用加密機制,只是因為加密機制可以協助資訊的機密性、完整性和可說明性。 • 加密只會延緩取得內容所需的時間。 • 本章主要是希望提供您加密的基本觀念以及如何使用加密。

  4. 本章的內容如下: • 12-1 認識加密的基本概念 • 12-2 認識私密金鑰加密 • 12-3 認識公眾金鑰加密 • 12-4 認識數位簽章 • 12-5 認識金鑰管理 • 12-6 認識可信任的系統

  5. 12-1 認識加密的基本概念 • 加密就是利用某種方式將資訊打散,避免無權檢視資訊內容的人看到資訊的內容,而且允許真正獲得授權的人才能看到資訊的內容。 • 『獲得授權的人』是指擁有解密金鑰(key)的人。 • 加密是讓毫無相干的人員難以讀取資訊的內容。即使得知加密系統所使用的加密演算法,但沒有金鑰也就無從得知資訊的內容。

  6. 透過加密可以提供下列三種安全服務: • 機密性:不論是在傳輸或儲存設備之中,都可以利用加密隱藏資訊。 • 完整性:不論是在傳輸或儲存設備之中,都可以利用加密確認資訊的完整性。 • 可說明性:加密可以用來確認資訊的來源,且可讓資訊的來源無法否認資訊的出處。 • 本節的內容如下: • 12-1-1 加密專有名詞 • 12-1-2 針對加密的攻擊

  7. 12-1-1 加密專有名詞 • 加密運作模式專有名詞如下: • 原文(plaintext):資訊的原始格式,一般也通稱為明文(cleartext)。 • 密文(chipertext):透過加密演算法打散的資訊。 • 演算法(algorithm):將原文處理成密文的運算法則。 • 演算法(algorithm):將原文轉成密文的處理方法。 • 金鑰(key):將原文轉成密文或將密文轉成原文的過程中,一種用來協助演算法計算的資料。 • 加密(encryption):將原文轉成密文的程序。 • 解密(decryption):將密文轉成原文的程序。

  8. 可以協助讀者瞭解加密運算的四種專有名詞如下:可以協助讀者瞭解加密運算的四種專有名詞如下: • 密碼學(cryptography):利用加密隱藏資訊的技術。 • 密碼員(cryptographer):從事密碼學的人。 • 密碼分析(cryptanalysis):分析分析密碼學演算法並嘗試找出缺陷。 • 密碼分析師(cryptanalyst):利用密碼分析來確認並利用密碼學演算法缺點的人。

  9. 12-1-2 針對加密的攻擊 • 加密系統可能遭到下列三種攻擊: • 透過演算法的缺點 • 暴力破解金鑰 • 透過系統週遭的弱點 • 當演算法受到攻擊時,分解員會找尋將原文轉成密文的演算法缺點,且在沒有金鑰的情況下快速還原資訊的原文。 • 若是具有這類弱點的演算法,也就不能稱為牢靠的演算法,當然也就不能使用。

  10. 圖12-1 基本的加密運算方式

  11. 暴力(Brute-force)攻擊是企圖利用所有可能的金鑰,企圖將密文還原成原文。暴力(Brute-force)攻擊是企圖利用所有可能的金鑰,企圖將密文還原成原文。 • 利用系統周遭的缺點是最後一種攻擊方式。在討論加密的內容時,一般都不太會探討這種問題。 • 攻擊系統周遭的缺陷會比攻擊加密演算法來得容易。

  12. 12-2 認識私密金鑰加密 • 加密法可以分為『私密金鑰』與『公眾金鑰』兩大類。 • 使用私密金鑰加密時,只要經過授權並擁有相同金鑰的人,都可以讀取資訊的內容。 • 資訊的保護類型可簡化為金鑰的保護。 • 私密金鑰加密是使用相當廣泛的加密類型。

  13. 本節的內容如下: • 12-2-1 什麼是私密鎖鑰加密? • 12-2-2 替換式密碼 • 12-2-3 One-Time Pads • 12-2-4 資料加密標準 • 12-2-5 Triple DES • 12-2-6 密碼加密 • 12-2-7 AES:Rijndael • 12-2-8 其它私密金鑰演算法

  14. 12-2-1 什麼是私密鎖鑰加密? • 由於加密/解密使用相同的金鑰,因此私密金鑰加密也稱為對稱式金鑰加密。 • 圖12-2 是私密金鑰加密的基本功能。 • 在經過對稱式加密之後,可以確保資訊的機密性。 • 只有金鑰的擁有人,才可以解密訊息。 • 在傳輸的過程中,訊息發生任何變化都會造成解密失敗,因此可以得知訊息是否遭到修改。

  15. 私密金鑰加密無法確認建立金鑰、加密和傳送有效訊息的人。私密金鑰加密無法確認建立金鑰、加密和傳送有效訊息的人。 • 建立私密金鑰加密的速度相當快,而且很容易利用軟體或硬體建置私密金鑰。

  16. 圖12-2 私密金鑰加密

  17. 12-2-2 替換式密碼 • 替換式密碼的存在,已經超過2500年以上。 • Atbash密碼是最早的已知的最佳範例。 • 最早利用的範例是在西元600年左右,內容是以顛倒的希伯來文構成的。 • 凱薩大帝(Julius Caesar)也曾經使用稱為Caesar密碼的替換式密碼。 • 如果攻繫者充分收集密文,即可破解替換式密碼。

  18. 12-2-3 One-Time Pads • 理論上來講,One-Time Pad(OTP)是唯一無法破解的加密系統。 • OTP使用一連亂數排列的數字,對一段訊息進行編碼(詳見圖12-3)。 • 如果OTP真的全部都使用亂數、OTP只能使用一次,OTP的長度比訊息長,那麼就沒有找不到密文中的原文的金鑰(OTP本身),因此也就無法解出訊息內容。

  19. OTP還有一點必須特別注意的事項 - 只能使用一次。如果重複使用,就可能進行分析和破解。 現今某些加密系統號稱可以模擬OTP。或許這類系統可以提供充分的安全性,但可能也是很容易被破解的系統。一般來說,OTP並不適用於高流量的環境。

  20. 圖12-3 One-Time pad運算方式

  21. 12-2-4 資料加密標準 • 資料加密標準(Data Encryption Standard,DES)是由IBM在1970年代初期發展出來的演算法。 • 在經過NSA審核、修正、認可之後,美國國家標準與技術協會(United States National Institute of Standards and Technology,NIST),在1977年正式採用並做為DES的加密標準。 • 在1983、1988、1993和1999年,也再次認定這個標準。

  22. DES使用56位元金鑰,且使用7個8位元的位元組(每個位元組的第8個位元是做為同位元檢查)做為金鑰的內容。DES使用56位元金鑰,且使用7個8位元的位元組(每個位元組的第8個位元是做為同位元檢查)做為金鑰的內容。 • DES屬於區塊式密碼(block chiper),一次處理64位元明文(詳見圖12-4演算法的區塊方塊圖)。 • DES密碼共有16個循環,每個循環都使用不同的次金鑰(subkey),且每一個金鑰都會透過自己的演算法取得16個次金鑰(詳見圖12-5)。

  23. 圖12-4 DES區塊演算法

  24. 圖12-5 DES產生次金鑰演算法

  25. 在DES方塊圖之中,可以看到幾個重新排列的替換方塊。在DES方塊圖之中,可以看到幾個重新排列的替換方塊。 • 標準也定義了重新排列每一次替換的特定位元。 • 相同的演算法也可用來產生次金鑰,而且也會重新排列替換選項1和2特定位元。 • 在圖12-4之中可以找到標示為『f』的函數。函數內含稱為『S』區塊,這是一個將6位元輸入轉換成4位元輸出的對照表(標準裡面也有定義)。

  26. DES四種運作模式如下: • ECB(Electronic code book):這是最基本的區塊加密法,原文和金鑰都視為產生密文的輸入。在這個模式下,相同的輸入會產生相同的輸出。 • CBC(Cipher Block Chaining):在這個模式下,每一個區塊的加密法和ECB一樣,但是多加入一個從上一個區塊產生出來的因子。在這種情況下,相同的輸入(原文)不會產生相同的輸出結果。

  27. CF(Cipher feedback):這個模式會將前一個區塊產生的密文做為DES的輸入,輸出結果是將原文組合成新的密文。 • OF(Output feedback):輸出模式類似CF,但是使用DES的輸出而且也不含密文。 • 目前可以攻擊DES演算法的攻擊方法少之又少(密碼分析和線性密碼分析的差異;這種攻擊的詳細資訊請參考http://www.rsasecurity.com/rsalabs/faq/)。

  28. 12-2-5 Triple DES • 在1992年研究人員發現重複使用DES即可建立牢靠的加密法則。因而產生了Triple DES(TDES)。 • 圖12-6 顯示了TDES運作的方式。 • 第二次運算才是真正的解密動作,這也就是為什麼TDES會比一般DES來得牢靠。 • TDES可以使用兩組或三組金鑰。如果僅僅使用二組金鑰,那麼k3和k1是一樣的而只有k2不同。

  29. 和DES相較之下,TDES屬於相對快速的演算法,這是因為可以利用硬體建置TDES。和DES相較之下,TDES屬於相對快速的演算法,這是因為可以利用硬體建置TDES。 • 在運算的時候,所需的時間約略是DES的三倍,這是因為含有三次DES運算。 • 大多數的應用程式應該選用TDES取代DES。 目前已經發現兩種專門針對TDES的攻擊法(類似DES)。不過,不容易在現實世界發現攻擊所需的資料。

  30. 圖12-6 Triple DES方塊圖

  31. 12-2-6 密碼加密 • 標準UNIX密碼加密機制是屬於DES的變形。 • 雖然實際上是採用單向函數(one-way function)做為密碼加密方式(也就是說,無法從密文解出原文),不過還是需要探討應用程式如何這種類型的DES。 • 每個使用者選擇一組密碼,該演算法使用密碼的前八個字元。 • 密碼加密或裁掉超過8個字元的密碼。

  32. 如果密碼長度少於8個位元,就會補足8個字元。如果密碼長度少於8個位元,就會補足8個字元。 • 取用每個字元的前七個位元,因此密碼會轉換成56位數。 • 系統會依據系統時間選擇12位元數字,這個數字被稱為salt。 • 同時使用salt和密碼做為密碼加密函數的輸入資料(詳見12-7)。

  33. salt依據12位元的1補數產生4096組不同的方式,修改DES演算法之中的一個排列表(E Permutation)。 • 起始原文是由56個0位元組成,而金鑰是來自密碼的56個位元。 • 演算法重複執行25次,每一次都是以前一次的輸出做為輸入資料。 • 最後的輸出結果會轉換成11個字元,而salt會轉換成2個字元並放在輸出資料的最前面。

  34. 圖12-7 Unix密碼演算法函式

  35. 這個系統主要的弱點在於密碼的選用。因為大部分使用者都會使用小寫字元做為密碼的內容,因此會產生268種可能的組合,這個數字遠小於DES產生255金鑰的可能組合。這個系統主要的弱點在於密碼的選用。因為大部分使用者都會使用小寫字元做為密碼的內容,因此會產生268種可能的組合,這個數字遠小於DES產生255金鑰的可能組合。 • 暴力破解Unix系統的密碼,會比DES來得容易許多。 基於前述的原因,大多數的Unix系統都提供使用shadow密碼檔案的選擇。如果很容易暴力破解加密之後的密碼,因此將密碼隱藏起來可以增加系統的安全性。不過和其他的系統一樣,如果root選擇不夠牢靠的密碼或是密碼遭到破解,那麼使用者選用再好的密碼也於事無補。

  36. 12-2-7 AES:Rijndael • 為了取代DES,NIST在1997年公布AES(Advanced Encryption Standard,高等加密標準)徵選活動。 • 在2000年底,NIST宣佈來自比利時的兩位密碼學家 - JoanDaemon-VincentRijmen,他們提出的Rijmen演算法贏得這項競賽。 • 牢靠度、適用於高速網路、可在硬體設備建置等因素,都是這個演算法獲選的原因。 • Rijmen也是屬於區塊式密碼金鑰,區塊的大小為128、192和256位元。

  37. 截至目前為止,仍然沒有暴力破解金鑰長度的計算方法。截至目前為止,仍然沒有暴力破解金鑰長度的計算方法。 • 依據原文的區塊大小和金鑰的長度而定,演算法之中會包含10到14個循環。 • 圖l2-8顯示了每個循環的計算方式。 • 在認可Rijmen演算法之後,許多系統已經開始出現Rijmen演算法。而且也成了取代TDES的最佳選擇。

  38. 圖12-8 Rijndael 循環函式演算法

  39. 12-2-8 其它私密金鑰演算法 • 在安全系統上可以選用的私密金鑰演算法如下: • IDEA(International Data Encryption Algorithm,國際資料加密演算法):是由瑞士發展出來的。IDEA使用128位元的金鑰,所以也可以用在PGP(Pretty Good Privacy)。 • RC5:RC5是由MIT的Ron Rivest發展出來的。它允許變動金鑰的長度。 • Skipjack:Skipjack是由美國政府使用Clipper Chip發展出來的。它使用80位元金鑰長度,在可見的未來將會變得不夠牢靠。

  40. Blowfish:Blowfish允許使用的金鑰長度最長可達448位元,且在32位元處理器上執行會有最佳化的執行效率。Blowfish:Blowfish允許使用的金鑰長度最長可達448位元,且在32位元處理器上執行會有最佳化的執行效率。 • Twofish:Twofish使用128位元區塊,且可使用128位元、192位元或256位元金鑰。 • CAST-128:CAST-128使用128位元金鑰,且應用在較為新版的PGP之中。 • GOST:GOST用來回應DES的蘇聯標準,使用256位元金鑰。

  41. 12-3 認識公眾金鑰加密 • 和私密金鑰加密相較之下,公眾金鑰加密算是較新的發明。 • 兩者之間最大的不同點在於 - 用於運算的金鑰數量不同。 • 在私密金鑰加密之中,加密/解密使用相同的金鑰,但是公眾金鑰加密卻使用兩組不同的金鑰。其中一組金鑰是用於資訊加密,而另一組金鑰則是用於解密。

  42. 本節的內容如下: • 12-3-1 什麼是公眾金鑰加密? • 12-3-2 Diffie-Hellman金鑰交換 • 12-3-3 RSA • 12-3-4 其他公眾金鑰演算法

  43. 12-3-1 什麼是公眾金鑰加密? • 圖12-9即為基本的公眾金鑰或非對稱加密。 • 發送端與接收端各有一組金鑰。兩組金鑰之間相互關聯(因而稱為金鑰組),但金鑰的內容不同。 • 在實務上,其中一組金鑰稱為公眾金鑰(public key),另一把則稱為私密金鑰(private key)。 • 金鑰組的擁有人保管私密金鑰,並對外公開公眾金鑰。 • 公眾金鑰加密的另一個特色 - 即使擁有其中一組金鑰也無法推算出另一組金鑰。

  44. 如果屬於機密性的需求時,資訊也可以使用公眾鎖鑰加密。如果屬於機密性的需求時,資訊也可以使用公眾鎖鑰加密。 • 只有私密金鑰的擁有人才能對資訊解密。 • 只有公眾金鑰的擁有人才能對資訊解密(換句話說,私密金鑰的擁有人),且只有金鑰對的擁有人才能持有傳送過的資訊。 • 不論是利用哪一種金鑰都可以保護資訊的完整性。

  45. 圖12-9 公眾金鑰加密

  46. 12-3-2 Diffie-Hellman金鑰交換 • Whitfield Diffie和Martin Hellman在1976年發展出公眾金鑰加密系統。 • Diffie-Hellman系統,是用來解決私密金鑰系統的金鑰配送問題。 • Diffie-Hellman並不能用於資訊的加密/解密。

  47. Diffie-Hellman演算法的運算方式: • 1.假設兩個人需要安全的通訊,所以需要認可加密金鑰。 • 2.P1和P2認可整數a和b,所以產生1<a<b。 • 3.P1接著選擇隨機數值a並計算 I = ai mod b。P1將I傳送給P2。 • 4.P2接著依據隨機數值a產生隨機數值j並計算 J = aj mod b。P2將J傳送給P1。

  48. 5.P1計算k1 = Ji mod b。 • 6.P2計算k2 = Ij mod b。 • 7.結果就會產生 k1 = k2 = aij mod b,且k1和k2可以做為其他傳輸的金鑰。 在上述計算式之中,『mod』代表取餘數。舉例來說12 mod 10結果為2。其中的結果2,就是12除10之後剩下的餘數。

  49. 如果某人監聽線上的流量時,他們或許會得知a、b、I和J,但是i和j依舊安全無虞。如果某人監聽線上的流量時,他們或許會得知a、b、I和J,但是i和j依舊安全無虞。 • 這個系統的安全性,主要是依據即使得知I = ai mod b也很難找到i。 • 這個問題稱為離散對數問題,因而數字越大也就越難算出結果(也就是說以現今的電腦能力也很難算出結果)。 • 必須非常小心選擇a和b。

  50. 許多使用Diffie-Hellman金鑰交換的安全系統,都是使用額外的流量來交換安全金鑰。許多使用Diffie-Hellman金鑰交換的安全系統,都是使用額外的流量來交換安全金鑰。 • Diffie-Hellman的弱點是圖12-10中間人攻擊(man-in-the-middle)。 • 如果攻擊者系統放在P1和P2之間的流量路徑並攔截所有通訊時,且分別假冒P2和P1溝通以及假冒P1和P2溝通。因此,在P1、攻擊者和P2之間,就會發生金鑰交換。

More Related