金鑰長度與暴力破解
在數位世界中,從登入密碼到網路銀行的加密連線,我們無時無刻不依賴「密碼學」來保護資訊安全。然而,有矛必有盾,一種最古老、最直接的攻擊手法至今仍然是資安領域的一大威脅——那就是暴力破解攻擊 (Brute Force Attack)。
本文將深入探討暴力破解的原理,以及為何「金鑰長度」(Key Length) 是抵禦這種攻擊最核心的關鍵。
什麼是暴力破解攻擊?
想像一個鎖著的保險箱,你沒有鑰匙,但有一大串可能的密碼組合。暴力破解就是不走任何捷徑,將所有可能的密碼組合一個一個地嘗試,直到找出正確的那一個為止。
在密碼學中,這種攻擊方式被應用於破解各種加密機制:
- 密碼 (Password): 嘗試所有字母、數字、符號的組合來登入帳戶。
- 加密金鑰 (Secret Key): 嘗試所有可能的金鑰來解密被加密的資料。
- 雜湊值 (Digest): 嘗試找出能產生特定雜湊值的原始資料,也就是所謂的「碰撞攻擊」。
暴力破解的成功率完全取決於兩件事:時間與運算能力。而我們要做的,就是讓攻擊者需要花費的時間,遠遠超出可接受的範圍。
從生活密碼談起:字典攻擊
對於使用者密碼,單純的暴力破解效率不高。因此,駭客發展出了更聰明的變種:字典攻擊 (Dictionary Attack)。他們會建立一個包含常見單字、片語、鍵盤排列組合(如 qwerty
)、數字序列(如 123456
)以及從外洩資料庫中收集來的常用密碼所組成的「字典」,並優先嘗試這些高機率的密碼。
如 password
、12345678
、iloveyou
這類密碼,往往在攻擊開始的幾秒鐘內就會被破解。
如何防禦?
這就是為什麼所有資安建議都會強調密碼的「複雜度」與「長度」。一個包含大小寫字母、數字和符號,且長度足夠的密碼(例如 Facebook 建議至少6個字元,但現代標準普遍建議12個以上),其可能的組合數量會呈指數級增長,讓字典攻擊失效,並大幅拉長純暴力破解所需的時間。
一個好的密碼,應該混合大小寫字母、數字與符號,藉此大幅增加破解的難度。
加密金鑰:長度就是絕對防禦力
當我們談到對稱式加密演算法(如 DES、AES),金鑰的長度直接決定了它的安全性。金鑰每增加一個位元 (bit),可能的組合數量就會翻倍。
金鑰大小 | 可能的組合數量 |
---|---|
8-bit | 256 |
16-bit | 65,536 |
32-bit | 約 4.3 x 10⁹ (四十億) |
56-bit (DES) | 約 7.2 x 10¹⁶ (七京) |
128-bit (AES) | 約 3.4 x 10³⁸ |
256-bit (AES) | 約 1.1 x 10⁷⁷ |
曾經的加密標準 DES,其 56 位元的金鑰在 1997 年還需要 96 天才能被破解。但到了 1999 年,僅需 22 小時。這清楚地表明,隨著運算能力的飛速發展,曾經安全的金鑰長度會逐漸變得不堪一擊。
而現今的主流標準 AES,其 128 位元的金鑰,根據 2012 年的分析,以當時的技術破解需要數兆年的時間。這就是足夠的金鑰長度所帶來的壓倒性安全優勢。
非對稱加密:RSA 的挑戰與演進
對於像 RSA 這樣的非對稱加密演算法,其安全性並非來自於暴力破解私鑰,而是基於一個數學難題:大數質因數分解。破解 RSA 等同於要將一個極大的數字(公鑰的一部分)分解成兩個質數的乘積。
歷史上著名的「RSA 分解挑戰」顯示了人類運算能力的進步:
- RSA-129 (129位十進制數): 1994 年被成功分解。
- RSA-768 (232位十進制數): 2009 年被成功分解。
這代表 RSA 金鑰的長度也必須不斷增加才能保證安全。目前,2048 位元的 RSA 金鑰是公認的安全標準。
然而,RSA 金鑰長度帶來的運算負擔較大。因此,一種基於不同數學難題的橢圓曲線密碼學 (ECC) 應運而生。ECC 能用更短的金鑰長度,達到與 RSA 相當甚至更高的安全強度,使其在行動裝置和物聯網設備上更具優勢。
安全強度 | RSA 金鑰長度 | ECC 金鑰長度 |
---|---|---|
相當於 AES-128 | 3072 bits | 256 bits |
相當於 AES-256 | 15360 bits | 512 bits |
雜湊函數與碰撞攻擊
雜湊函數(如 MD5, SHA-1, SHA-2)的暴力破解,目標是找到「碰撞」(Collision)——也就是兩個不同的輸入,卻能產生完全相同的雜湊輸出。
- MD5 (128-bit): 早已被證明非常不安全,容易產生碰撞。
- SHA-1 (160-bit): Google 在 2017 年成功發動了全球首次公開的 SHA-1 碰撞攻擊,宣告了此演算法的死期。
Google 的 SHAttered 攻擊,展示了兩個內容完全不同的 PDF 檔案,卻能產生一模一樣的 SHA-1 雜湊值。
目前,SHA-2 系列(特別是 SHA-256)是廣泛使用的安全標準。
結論:永無止境的競賽
金鑰長度與暴力破解之間的戰爭,是一場永無止境的軍備競賽。隨著摩爾定律推動運算能力不斷升級,以及量子電腦等未來技術的出現,今天我們認為「絕對安全」的金鑰長度,在未來某個時間點終將面臨挑戰。
因此,持續關注密碼學的發展,選擇符合當前安全標準的演算法與足夠的金鑰長度,並適時淘汰過時的加密機制,是確保數位資產安全的唯一途徑。記住,在密碼學的世界裡,長度,就是力量。
參考資料
- Wikipedia: Brute-force attack
- Wikipedia: Key length
- Google 破解 sha1