Diffie-Hellman

Bách khoa toàn thư mở Wikipedia
Bước tới: menu, tìm kiếm

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