Hệ mã hóa Diffie-Hellman có cơ sở toán học từ bài toán 1 chiều của logarit rời rạc. Bài toán lograrit rời rạc đƣợc phát biểu nhƣ sau: Cho số nguyên tố p, số y và g, tìm số nguyên x thỏa mãn:
mod
x
yg p
Việc tính ra y khi biết g, x và p là rất dễ dàng, nhƣng việc tìm ra x từ y, g, và p là rất khó.
Hệ mã hóa Diffie-Hellman đƣợc công bố lần đầu tiên bởi 2 nhà toán học Whitfield Diffie và Martin Hellman năm 1976. Thuật toán Diffie-Hellman đƣợc thiết kế nhằm phục vụ việc trao đổi khóa giữa 2 thực thể truyền thông qua môi trƣờng không an toàn. Theo đó 2 thực thể truyền thông không cần phải gặp trực tiếp nhƣng vẫn có thể thực hiện trao đổi khóa một cách an toàn và bí mật.
2 thực thể truyền thông Alice và Bob khi thực hiện trao đổi khóa Diffie- Hellman sẽ thực hiện các bƣớc sau:
Alice chọn 1 số nguyên tố p và một số nguyên cơ sở g. Alice chọn số
nguyên xa, sau đó tính đƣợc xamod
a
y g p. Sau đó Alice công bố khóa
công khai (ya, p, g) và giữ lại khóa bí mật (xa,p,g), khóa công khai sẽ đƣợc gửi cho Bob.
Bob chọn ra một số nguyên bí mật xb, sau đó tính đƣợc xbmod
b
y g p,
sau đó gửi lại cho Alice số yb.
Alice tính toán ra đƣợc khóa chia chung xamod
b a
K y p, Bob cũng sẽ
tính đƣợc khóa chia chung xbmod
a b
K y p. Khóa Ka và Kb là 2 khóa chia
sẻ giữa Alice và Bob, đƣợc tính toán độc lập với nhau và bằng nhau. Thật vậy
mod mod amod mod bmod
a xb x a x
x x
a b b
K y p g p p g p pK