Diffie-Hellman
Thuật toán thỏa thuận khóa Diffie-Hellman. Giả sử A và B muốn liên lạc sử dụng hệ mật khoá bí mật. Để thoả thuận mật khoá K chung cho cả hai bên qua một kênh không an toàn mà không ai khác có thể biết được, A và B có thể dùng thủ tục thoả thuận khoá Diffie -Hellman sau:
·Chọn trước một số nguyên tố p thích hợp và một phần tử sinh α của
o Z*p (2 ≤ α ≤ p-2 ) Các giá trị p và α được công khai.
·A gửi cho B giá trị α^x mod p (2.1)
·B gửi cho A giá trị α^y mod p. (2.2)
·Thực hiện các bước sau mỗi khi cần có khoá chung:
o A chọn một số nguyên bí mật x: 1≤x≤p-2 và gửi cho B thông báo (2.1).
o B chọn một số nguyên bí mật y: 1≤y≤p-2 và gửi cho A thông báo (2.2).
o B thu được αx và tính khoá chung k:k = (α^x)^y mod p
o A thu được αy và tính khoá chung k: k = (α^y)^x mod p
Ví dụ: Giả sử A và B chọn p = 11 và α = 2
Nhóm nhân xyclic sinh bởi α:
{ αi , i=0,..,9}={1,2,4,8,5,10,9,7,3,6}
(Các phần tử sinh của nhóm này bao gồm các phần tử sau: α =2, α^3 = 8, α^7 =7, α^9 = 6)
Giả sử A chọn giá trị ngẫu nhiên x = 4 và gửi cho B giá trị 2^4mod 11 = 5.
Giả sử B chọn giá trị ngẫu nhiên y = 7 và gửi cho A giá trị 2^7mod 11 = 7
B nhận được 5 và tính khoá chung k = 5^7 mod 11 =3
A nhận được 7 và tính khoá chung k = 7^4 mod 11 =3 L8xPro

