Diffie-Hellman

將 DH / DHE p & g 參數映射到組

  • November 8, 2022

我正在編寫一個執行簡單 SSL/TLS 分析的小程式碼,並且在 DH / DHE 的情況下我一直在確定密鑰交換的大小。

如果我採用以下範例(wireshark 擷取):

p Length: 128
p: acb31[...]
g Length: 1
g: 02
Pubkey Length: 128
Pubkey: 1935[...]

我只是想我可以從 G 那裡得到關於這篇文章的必要資訊

但似乎並非如此,因為對於另一種配置,我得到了

p Length: 256
p: a4d37[...]
g Length: 1
g: 02
Pubkey Length: 256
Pubkey: 4671[...]

G 的值始終為 2,所以交換密鑰應該是 1024,除了我的交換密鑰在這種情況下是 2048。

如何通過這些設置確定交換密鑰的大小?我可以只做 p*8 嗎?

謝謝您的幫助

在這些情況下,系統由素數決定 $ p $ 0xabc31...(如果您願意,您可以檢查這些值0x a4d37...是否為素數)。可以從 中讀取素數的字節大小,p Length因此它是該值的 8 倍(假設設置了最高有效位)。

那麼公鑰就是 $ 2^r\mod p $ 對於一些秘密隨機數 $ r $ 什麼時候 $ g=2 $ 情況是這樣。此公鑰可以在範圍內的任何位置 $ [1,p-1] $ , 但很可能與以字節為單位的長度相同 $ p $ . 可能會產生較小的公鑰,並且數據包格式可能會或可能不會將其填充到與 $ p $ .

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