跳轉到內容

密碼學/金鑰長度

來自華夏公益教科書

金鑰長度

[編輯 | 編輯原始碼]

金鑰長度與安全性成正比。在現代密碼系統中,金鑰長度以位元為單位(例如,AES 使用 256 位金鑰),金鑰的每一位都呈指數級地增加了 暴力破解 攻擊的難度。需要注意的是,除了增加安全性之外,每一位也會減慢密碼系統的速度。因此,金鑰長度——就像所有安全事項一樣——是一種權衡。在這種情況下,權衡的是實用性和安全性。

此外,不同型別的密碼系統需要截然不同的金鑰長度才能保持安全性。例如,基於模運算 的公鑰系統,如 Diffie-HellmanRSA,需要相當長的金鑰(通常約 1,024 位),而對稱系統(包括分組密碼和流密碼)則可以使用較短的金鑰(通常約 256 位)。此外,橢圓曲線公鑰系統能夠在與對稱系統類似的金鑰長度下保持安全性。雖然大多數分組密碼只使用一個金鑰長度,但大多數公鑰系統可以使用任意數量的金鑰長度。

為了說明依靠不同的金鑰長度來實現相同安全級別的例子,現代公鑰系統實現(參見 GPGPGP)給使用者提供了金鑰長度選擇。通常在 768 到 4,096 位之間。這些實現使用公鑰系統(通常是 RSAElGamal)來加密隨機生成的塊密碼金鑰(128 到 256 位),該金鑰用於加密實際訊息。

與金鑰長度同等重要的是資訊熵。熵,一般定義為“系統無序程度的度量”,意味著隨機性。即,如果金鑰的所有位都沒有被安全地生成並且隨機性相同(無論是真正的隨機還是密碼安全的 PRNG 操作的結果),那麼系統就缺乏熵,並且更容易受到攻擊。例如,如果一個 128 位金鑰只有 64 位熵,那麼金鑰的有效長度就是 64 位。這可以在 DES 演算法中看到。DES 實際上有 64 位金鑰長度;但是,有效金鑰長度是 56 位,因為 8 位用於奇偶校驗。

常見錯誤

[編輯 | 編輯原始碼]

長分組密碼金鑰與短分組密碼金鑰相比的優勢在於,在短數字中篩選物理隨機熵的難度更大。可能我們無法將隨機性篩選機制保密,因此我們無法在沒有能量的情況下獲得 2^256 的熵隨機性,這將與適當的熵成線性關係。例如,隨機生成器實現的典型錯誤是簡單地將個位數字以 0.5 的機率相加。這種生成器很容易被相鄰位波函式的暴力破解所破解。從這個角度來看,使用具有大量數字的分組密碼,例如 10^1024 或更多,是有實際意義的。 [需要引用]


另一個典型的錯誤是使用公鑰基礎設施來加密會話金鑰,因為在這種情況下,使用 Diffie-Hellman 演算法更可取。使用 Diffie-Hellman 演算法來建立會話金鑰可以提供“前向安全性”。

華夏公益教科書