Diffie-Hellman
Https 中的 Diffie-Hellman:質數是如何挑選的?
我試圖理解 https,因為我理解 https 使用 Diffie-Hellman 方法進行密鑰交換,然後使用 AES 進行加密。
但是 Diffie-Hellman 需要兩個素數,它們從何而來?
TLS 通常使用RFC7919中指定的 DH 組。RFC 選擇它指定的模數,以便 $ (p-1)/2 $ 也是素數(因此值 $ g $ 是選擇生成一個大的素數子組) - 這些素數具有許多其他很好的實用屬性。
在 TLS 1.2 中,客戶端可以指定它自己的組,但是不鼓勵這樣做(因為客戶端可能會出錯,並且因為它使伺服器難以進行有效性檢查)。
在 TLS 1.3 中,他們刪除了指定您自己的組的選項,因此 RFC7919 中的組(或橢圓曲線組或私有組)是您唯一的選擇。