Key-Exchange
密碼學新手,學習密鑰交換
我現在只是對密鑰交換中的一些概念進行了概述,我對一些主題有點迷失方向,即密鑰拉伸、密鑰派生函式和完美前向保密。
關於密鑰拉伸,我理解這個想法是讓暴力破解密碼變得更加困難,但我正在閱讀的材料在任何技術解釋上都有點不足。維基百科文章聽起來好像它所做的只是通過散列算法提供純文字密碼。如果是這樣,為什麼要區分散列和密鑰拉伸?鹽算作關鍵拉伸的方法嗎?還有什麼其他方法?
關於密鑰派生功能,我理解有一個主密鑰和會話密鑰是從中派生的。但是密鑰推導的具體應用是什麼?它更接近密鑰協議(Diffie-Hellman)還是密鑰交換(PKI)?你能舉一個我可能會遇到密鑰派生的真實例子嗎?(例如,我知道如果我想通過 IPSec 保護隧道,我可能會使用 IKE,這意味著我將與 Diffie-Hellman 打交道,這是一種密鑰協議。)
我認為我對 Perfect Forward Secrecy 有很好的基礎;它基本上與密鑰派生截然相反。但是我對前向保密和完美前向保密之間的區別很模糊。究竟是什麼將情況從 FS 變為 PFS?
我知道這些對於這個論壇來說一定是非常基本的問題,但我只是在密碼學世界中涉足。
- 密鑰拉伸通常意味著使用基於密碼的密鑰派生函式 (PBKDF),這些設計比標準散列更加資源密集,標準散列旨在盡可能快。鹽用於防止兩個派生密鑰不同,因此您需要獨立地暴力破解每個密碼。
- 如果您事先協商了密鑰並且需要密碼或 MAC 的密鑰,通常您會從主密鑰中派生密鑰。Key-Derivation-Functions 通常是經過一些細微修改的散列函式。一個真實世界的範例是 TLS,您在使用 DHE 或 ECDHE 協商主密鑰後派生一個密鑰。TLS v1.2,見第 5 章
- 除了命名之外,PFS 和 FS 之間沒有區別。維基百科