Diffie-Hellman
將 DH / DHE p & g 參數映射到組
我正在編寫一個執行簡單 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 $ .