資訊與網路安全技術:第 二章 傳統秘密鑰匙系統 上一頁 |
2-12 密碼系統的安全性
2-12-1 密碼系統的真實情況 一般而言,密碼系統常被誤認為僅提供資料的隱密性功能,如此就太小看密碼學的威力了。欲了解密碼學的功能,應從『鑰匙』(Key,或稱金鑰、金匙、關鍵)的觀念來談。鑰匙擁有者通常有加密或解密的權利,因此非特殊身分者不可擁有鑰匙。由此可見,鑰匙是身分的表徵,其功能就如『印章』一般,文件經由『用印』之後,便成為有效的公文。相同的,一份文件經由某人使用鑰匙加密之後,就表示此人對此文件負責,該文件縱使非他本人所發出的,至少他經手審查過。依此觀念密碼學才會有:隱密性、確認性、完整性與不可否認性的功能。 常見密碼系統可將所欲傳送的明文加密成為一些沒有意義的亂碼,這一串亂碼便稱為『密文』,只有擁有解碼鑰匙者方可將密文解譯成明文。但密文在網路上傳輸被盜取之後,果真無法解密回明文嗎?這是值得商榷的問題。在未探討這個問題之前,首先我們來了解密碼系統在網路上運作的一些真實情況:
由此可見,密碼系統並非完全可靠的。甚至可以大膽直言,沒有不可能被破解的密碼系統,祇是破解難易程度不同而已。在密碼學中,將密碼系統的防禦被破解能力稱為『強度』(Strength)。即是『強度』愈高的密碼系統,愈難破解。另外,最起碼可以肯定的是,一把秘密鑰匙絕不可以使用過久,太久的話,終究會被破解的,甚至要求一把鑰匙只能使用一次(容後介紹)。 2-11-2 密碼系統的計算上安全 密碼系統被破解的容易度,關係著該演算法的複雜度,越複雜的演算法所需的計算時間相對越高。再說為了抗拒暴力攻擊法,最基本的方法是增加鑰匙的長度。簡單的說,任何密碼演算法都有被破解的可能,不管鑰匙的長度如何,都有可能被暴力搜尋出來,關鍵在於破解密碼是否合乎下列兩種條件:
如果能克服上述兩個條件的密碼系統,便稱之為『計算上的安全』(Computationally Secure);密碼系統安全與否的衡量標準在於破解者需要多少時間、花費多少成本才能破解密碼。以 DES 密碼系統為例,鑰匙長度為 56 個位元,破解者可能必須嘗試 256把鑰匙來暴力攻擊;可能鑰匙的總數為 256 = 7.2 * 1016,如果每微秒(us)加密一次(執行 DES 演算法),則需要 256 us = 1142 年的計算時間才可以成功;預估未來 10 年電腦的整合處理速度將可以達到每微秒 106次,如此只要 10.01 小時便可測試完畢,而平均只要 5 小時便可以成功。因此,可預估得到 DES 密碼系統已不再是安全了,此癥結在於 DES 系統不夠複雜,演算法太容易被計算出來。唯有發展更複雜的加密演算法,來拖延電腦的計算時間,或是增加鑰匙長度,來增加嘗試鑰匙的數量,才能達到『計算上的安全』。 2-12-3 演算法的複雜度 我們將密碼系統抗拒破解的能力,稱為該系統的『強度』(Strength)。如果一個密碼系統的強度很高的話,則表示較不易被破解,然而破解方法也許是已知明文或已知密文方法。一般來講,破解技巧大多採用『統計分析破解法』,方法是取出密文與明文、或密文與鑰匙之間的關聯性,再以統計分析的方法找出明文或鑰匙;所以對抗統計分析破解法的最根本技巧,便是增加演算法的複雜度,要達成這個目標可由兩方面來看:
由此可見,『混淆』與『擴散』能力,就是評估兩個(或兩個以上)明文之間的內容大致上相同,但各自所產生密文之間的差異度。如果差異很大的話,則混淆與擴散能力就愈強,相對其密碼演算法的『強度』就愈高。混淆與擴散能力夠強的密碼系統,較能抵擋『統計分析破解法』。一般破解法大多採用『選擇明文攻擊』。亦是,首先由中間人選擇某些明文發送給傳送端,藉由對方傳送過來的相對應的密文。若所選擇的明文有一定規則的格式,並且已加入一些特殊的文字標誌。此時,混淆能力不足的演算法,所產生的密文就會發生一定規則的變化。如此,破解者就可以利用統計分析的方法找出加密鑰匙。所以比較理想的系統,縱然兩個明文之間只有一個字元的變化,所產生的密文也要有相當大的差異,因此稱之為『混淆』與『擴散』的能力。 2-13 密碼破解技巧 不經加密鑰匙或是使用偽造鑰匙,便能夠將密文解譯回原來的明文,稱之為『密碼破解』(Cryptanalysis)。值得注意的是,密碼系統的應用中,密碼演算法是公開的,所有機密性的問題完全在於『鑰匙』,如果鑰匙被盜取或被偽造的話,則密碼系統的所有安全性將會完全崩潰。破解鑰匙最基本的是『統計分析破解法』與『暴力破解法』(Brute-Force Attack)兩種方法。前者是統計分析的方法,找出已知明文與密文之間的相依性,再利用此相依性分解出所欲破解密文的相對應明文。暴力破解法即是嘗試鑰匙所有可能出現的情況,來破解密碼系統。因為密碼系統演算法是公開的,且加密後密文是唾手可得的。吾人可利用已知密文與加密演算法,嘗試所有可能出現的鑰匙,如果能將密文解密出合乎正常規格的文件,即是找出通訊鑰匙,再利用此鑰匙盜取其他通訊內容。由此可見,鑰匙長度愈長者,所需嘗試破解的數目相對就越多,如此可以增加鑰匙被破解的困難度(延長其破解時間)。如果一把鑰匙使用太久的話,絕對有可能被破解。 首先,我們將一般密碼破解方法歸類如下:
前面兩種破解方法大多採用暴力攻擊法;後面兩種大多使用統計分析破解法。至於暴力攻擊法是最簡單也最可怕的攻擊技巧,它嘗試所有可能發生的秘密鑰匙,來攻擊密碼系統。譬如,DES 演算法的鑰匙長度為 56 個位元,是 256之中的一種機會,攻擊者連續使用 256個鑰匙來嘗試解出明文。克服暴力攻擊最簡單的方法是,資料在加密之前,先經過壓縮處理。如此的話,攻擊者無論破解成功與否,都無法看出有意義的資料,而不知道是否破解成功。但如此是否能有效防止被破解,也是值得懷疑的,因為壓縮演算法也可能需要公開。
|
翻轉工作室:粘添壽
資訊與網路安全技術
翻轉電子書系列:
|