2013-07-12 204 views
-1

所有的對稱算法都伴隨着密鑰大小,如128位或256位等 我認爲在算法使用它之前密碼被哈希,所以它具有這個特定長度的x位。 如果這是正確的,那麼可以實現最大的密碼長度/安全性? 想象一下,我使用了一個長度爲999999的密碼,它使用了200個不同的符號。暴力攻擊需要檢查的可能密碼的數量是200^999999 ... 如果密碼被哈希爲256位字符串,但它只有2^256個可能的組合嗎? 創建一個由長度和字符組成的超過1.16 * 10^77組合的密碼是沒有用的。加密密碼的密碼長度

有人可以清除這個由我來告訴我如何選擇的密碼實際上與算法的安全性有關嗎?

+4

有關密碼學的問題不包括實現問題,因此無法用於堆棧溢出。您不妨考慮在http://crypto.stackexchange.com上發佈此信息。 –

回答

1

是的,典型的對稱密碼只接受128位或256位的密鑰是正確的。根本沒有辦法將更多的熵壓入密鑰。

但是,您應該注意,在可預見的將來,無法在現在或任何地方通過所有可能的密鑰執行蠻力搜索。使用更長的鍵不會帶來任何好處(事實上​​,AES-256甚至可能比AES-128弱;請參閱this。)

但是,我懷疑任何人都可以拿出來,更不用說記住,密碼的位置接近128位的熵。爲了說明密碼比這弱得多的事實,任何合理的實現都將使用密鑰推導算法,例如PBKDF2而不僅僅是簡單的哈希。

+0

聲稱AES-256比AES-128弱很容易讓人誤解。它只適用於以非常規方式使用AES的情況,攻擊者可以很好地控制您使用的密鑰。它當然不適用,如果你使用散列(有一個適當的散列函數如SHA-2)作爲關鍵。 – CodesInChaos

+0

@CodesInChaos不夠公平,但爲什麼要用一種算法來顯示漏洞?在可預見的未來,AES-128不可能在任何地方被強制使用,所以256位密鑰不會提供任何額外的功能。 – ntoskrnl