假設我們有一個帶有私鑰和公鑰的服務器,後者可用於所有客戶端,並且我們有一個客戶端沒有任何非對稱密鑰擁有。我們希望建立服務器和客戶端之間的安全通信,客戶端必須確保服務器的真實性。這是一個很常見的情況。祕密密鑰分配與Diffie-Hellman的公鑰加密
現在,我的理解是,私鑰/公鑰對通常只用於確保真實性(我們的客戶端可以使用服務器的公鑰來驗證服務器的真實性)。爲了確保服務器和客戶端之間的雙向通信,使用Diffie-Hellman密鑰交換,然後通信基於共享密鑰。
我不禁想知道爲什麼Diffie-Hellman會在這種情況下使用。從我所瞭解的公鑰加密技術可以用來確保真實性並在客戶端和服務器之間共享密鑰。服務器可以向客戶端發送使用其私鑰編碼的消息,客戶端可以使用服務器的公鑰對其進行解碼以確認其身份。此外,客戶端可以使用服務器的公鑰將新的隨機密鑰發送給服務器。只有服務器會知道這個祕密密鑰,因爲只有服務器知道他的私鑰。我知道一些人建議不要使用公共密鑰來編碼和解碼,但沒有人會說爲什麼。
顯然,如果客戶端和服務器都有自己的公鑰/私鑰,他們甚至不需要共享任何密鑰,但這不是典型的情況。
所以......總結一下。爲什麼使用Diffie-Hellman而不是使用公鑰密碼體制的祕密密鑰分配?有什麼好處?
Diffe-Hellman是一種公鑰密碼。所以你的前提是有缺陷的。 – CodesInChaos 2013-02-16 16:52:24
看[「爲什麼我們需要Diffie Hellman?」對crpyto.SE](http://crypto.stackexchange.com/questions/3163/why-do-we-need-diffie-hellman) – CodesInChaos 2013-02-16 16:54:23