Encryption

當我們有非對稱加密時,需要什麼 Diffie-Hellman 密鑰交換?

  • May 28, 2022

我是密碼學的新手,我很難理解DHKE程序的需求。我想我完全理解它發生的原理以及它背後的數學,但是我覺得這不是必需的(很可能我錯了,這就是我在這裡問你們的原因)。假設客戶端想要與伺服器通信 - 握手的第一部分一切都非常有意義:

The client sends: "Hello server, this is my TCP max version, this and that, etc."

Then the server responds: "Hello, I am the Foo server. This is my public key (go check my certificate) this is my signature (so you can be sure it is me and not a 'middle man')"

現在由於公私鑰加密的特性,客戶端可以向伺服器發送 HIS 公鑰(我們不管如何,反正它是公開的,但消息仍然可以用伺服器的公鑰加密),然後安全通信可以從使用非對稱加密開始- 當客戶端向伺服器發送某些內容時,它將使用伺服器的公鑰加密(因此只有伺服器可以解密它),反之亦然(當伺服器必須向客戶端發送一些內容時,它將用客戶端的公鑰加密)。

如果我的理解是正確的,那麼 DHKE 程序在安全性方面並沒有帶來什麼新東西,而且我不理解使用它的必要性(我懷疑對稱密鑰加密/解密在計算能力方面效率更高)。

提前致謝!

當客戶端向伺服器發送內容時,它將使用伺服器的公鑰加密(因此只有伺服器可以解密),反之亦然(當伺服器必須向客戶端發送內容時,它將使用客戶端的公鑰加密)

據我了解,您建議不要打擾使用對稱加密;相反,讓雙方使用公鑰加密交換消息。

那將非常昂貴(也就是說,速度很慢);對稱方案實際上比非對稱方案快數千倍。

例如,在我的測試機器上(使用 OpenSSL),加密 64 字節的消息需要 0.4 微秒(選擇大小是因為它適合單個 RSA 加密);相比之下,使用 2048 位 RSA 解密相同數量的 RSA 需要 614 微秒(即 1500 倍的時間)。

性能因處理器而異,但這種巨大的性能是典型的。

當我們進行非對稱密鑰交換時,需要 Diffie-Hellman 密鑰交換嗎?

好吧,可以使用非對稱密鑰交換來共享對稱密鑰,並使用這些對稱密鑰來加密實際消息——這當然可以做到(例如,在舊 TLS 版本中的某些密碼套件中)。在處理伺服器妥協時它不是很好(這就是為什麼較新的 TLS 版本放棄它的原因),但它確實有效。

引用自:https://crypto.stackexchange.com/questions/87632