Rsa
為什麼 Diffie Hellman 與公鑰一起使用?
我剛剛在這裡閱讀了這篇文章:為什麼我們需要非對稱算法進行密鑰交換?它斷言,在公鑰密碼學中,當使用非對稱密鑰來保護通信時,為了讓各方就共同的共享秘密達成一致,使用以下方法:
因此,假設您想使用非對稱加密向我發送很長的消息。以下是你實際要做的:
(1) 選擇用於對稱(快速)密碼的隨機密鑰。使用該(快速)密碼和密鑰加密您的消息。把那封加密的資訊發給我。
(2)然後使用非對稱(慢)加密將下面的消息加密並發送給我
“嗨,我剛剛向您發送了一條使用 BLAH 對稱密碼和密鑰 ABCDE123456 加密的消息。”
因此,您使用對等方的公鑰加密共享機密,向對等方發送加密的機密,然後對等方使用他或她的私鑰解密機密。通過這種方式,您可以使用大證書對各方進行身份驗證以及使用它們來建立共享密鑰。
這是有道理的,但我必須遺漏一些東西。為什麼/如何在這裡使用 DH?我看到有很多像 RSA2048 這樣的方案都有大密鑰,我假設上面會以這種方式使用,但也將 DH 合併到他們的密碼套件中:RSA_DHE、ECDHE。
DH 組件有什麼好處?現在我們可以用證書中的公鑰建立一個共享秘密,它可以做什麼?
DH 通常用於建構會話密鑰,用於提供前向保密。如果您只使用證書中的公鑰,那麼破壞私鑰可能會洩露所有之前的加密消息。如果攻擊者保留了先前通信的記錄,則攻擊者可以首先解密對稱密鑰,然後解密先前的消息。使用 DH 可以防止這種情況。即使你有私鑰,你仍然無法弄清楚任何以前的 DH 結果來獲得對稱密鑰。這樣,之前消息的隱私性仍然得以保持。