
Giả sử 2 máy tính là A và B. Đầu tiên 2 máy tạo ra 2 số nguyên tố p và g, khi p lớn (thường lớn hơn 512 bits) và g là primitive root modulo của số p. p và g không cần giữ bí mật với các users khác. Khi đó, A và B tự chọn cho mình một số đủ lớn ngẫu nhiên làm private key, giả sử A chọn số a và B chọn số b.
Bây giờ A tính A = ga (mod p) và gửi cho B, B tính số gb (mod p) và gửi ngược lại cho A.
Hai mã này là shared key. A và B sẽ thực hiện phép tính dựa và key nhận được.
A tính: K = Ba (mod p) = (gb)a (mod p)
và B: K = Ab (mod p) = (ga)b (mod p)
Bây giờ 2 máy có thể sử dụng shared key K của mình để trao đổi dữ liệu mà không cần phải sợ dữ liệu bị nghe lén. Hai máy A và B có thể tìm được a từ công thức A = ga (mod p) và b từ B = gb (mod p). Có thể tham khảo thêm ở hình minh họa ở trên.
Tham khảo
Tôi là Duyệt