Diffie-Hellman Key Exchange là một thuật toán trao đổi khóa mật mã, giúp hai bên (Alice và Bob) chia sẻ một khóa bí mật chung qua kênh không an toàn mà không cần truyền trực tiếp khóa này.
Trong thực tế, khi trao đổi thông tin trên internet, chúng ta luôn phải bảo mật thông tin để tránh bị nghe lén hoặc nhìn trộm bằng cách mã hóa thông tin truyền tải trước khi gửi. Bên đầu nhận sẽ giải mã thông tin và đọc lại bản gốc. Nhưng một khi đầu gửi mã hóa thì đầu nhận phải có chìa khóa để giải mã. Giả sử như đầu nhận và đầu gửi không có cách nào để gặp trực tiếp nhau và thiết lập trao đổi khóa. Như vậy, làm cách nào họ có thể vẫn trao đổi chìa khóa thông qua internet?
Xin mượn một bức hình từ wiki để dễ liên tưởng về giải thuật này

Alice và Bob cùng công khai đồng thuật dùng màu vàng là màu chung. Alice có màu bí mật là màu đỏ, Bob có màu bí mật là màu xanh lá cây. Cả hai tự pha chế màu bí mật của mình bằng cách lấy màu dùng chung pha với màu bí mật của mình và gửi kết quả cho nhau. Alice gửi màu cam cho Bob và Bob gửi màu xanh da trời cho Alice. Sau khi nhận được màu của nhau, tiếp tục dùng màu bí mật của mình để pha chung với màu nhận được. Cuối cùng, cả Alice vào Bob đều có màu bí mật đồng thuận là màu nâu=vàng+đỏ+xanh lá cây. Với giả định là màu đã pha trộn sẽ không thể bị tách ra thành màu thành phần, rõ ràng, kẻ nghe lén chỉ có thể biết màu vàng (công khai), màu cam (khi Alice gửi cho Bob) và màu xanh dương (khi Bob gửi Alice). Kẻ tấn công không thể biết các màu bí mật là gì (kể cả đối phương cũng không biết màu bí mật riêng của nhau).
Dựa vào mô tả trên, Whitfield Diffie và Martin Hellman đưa ra thuật toán trao đổi khóa vào năm 1976. Thuật này trở thành đồ được áp dụng trên nhiều cấu trúc đại số khác nhau.
Thỏa thuận chung:
Trường số nguyên tố
Phần tử sinh generator của nhóm nhân modulo
Quá trình trao đổi khóa giữa Alice và Bob:
Alice chọn số ngẫu nhiên bí mật , tính
Bobchọn số ngẫu nhiên bí mật , tính
Alice gửi cho Bob
Bob gửi cho Alice
Alice nhận được , tính bí mật chung
Bob nhận được , tính bí mật chung
Elliptic Curve Diffie-Hellman (ECDH) là một phiên bản của giao thức Diffie-Hellman (DH) truyền thống, sử dụng toán học trên đường cong elliptic thay vì trên trường số nguyên tố vì một số lợi ích:
Độ an toàn cao hơn: Với cùng độ dài khóa, ECDH cung cấp độ an toàn cao hơn so với Diffie-Hellman truyền thống.
Hiệu suất tốt hơn: Yêu cầu ít tài nguyên tính toán hơn, giúp giảm tải cho CPU và tiết kiệm năng lượng.
Khóa ngắn hơn: ECDH có thể đạt được độ an toàn tương đương với khóa dài hơn trong Diffie-Hellman
Thỏa thuận chung:
Phương trình đường cong elliptic được định nghĩa trên trường hữu hạn
Điểm sinh với bậc :
Quá trình trao đổi khóa giữa Alice và Bob:
Alice chọn số ngẫu nhiên bí mật , tính điểm
Bob chọn số ngẫu nhiên bí mật , tính điểm
Alice gửi cho Bob
Bob gửi cho Alice
Alice nhận được , tính bí mật chung
Bob nhận được , tính bí mật chung
No comments yet. Be the first to comment!