Năm 1976, Whitfield Diffie và Martin Hellman công bố một hệ thống mật mã hóa khóa bất đối xứng trong đó nêu ra phương pháp trao đổi khóa
Số hóa bởi trung tâm học liệu http://www.lrc-tnu.edu.vn/
công khai. Công trình này chịu sự ảnh hưởng từ xuất bản trước đó của Ralp Merkle về phân phối khóa công khai. Trao đổi khóa Diffie-Hellman là phương pháp có thể áp dụng trên thực tế đầu tiên để phân phối khóa bí mật thông qua một kênh thông tin không an toàn. Kỹ thuật thỏa thuận khóa của Merkle có tên là hệ thống câu đố Merkle.
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 - 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:
- 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) - 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). - B thu được αx và tính khoá chung k:k = (α^x)^y mod p
- 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
Số hóa bởi trung tâm học liệu http://www.lrc-tnu.edu.vn/