Tôi đã được giao nhiệm vụ xây dựng một trang Web Assembly triển khai E2EE. Tôi đã nghĩ đến việc sử dụng Mã hóa ElGamal để mã hóa tin nhắn và Diffie-Hellman để thiết lập khóa. Sau khi nghiên cứu sâu hơn, tôi gặp khó khăn trong việc hiểu các trường hợp sử dụng thực tế khi sử dụng ElGamal vs Diffie-Hellman.
Nếu tôi hiểu chính xác. Diffie-Hellman và ElGamal đều dựa vào vấn đề nhật ký rời rạc khiến cả hai đều trở nên lý tưởng. Diffie-Hellman chỉ thiết lập một khóa giữa hai máy chủ, sau đó một hệ thống mật mã đối xứng được sử dụng để gửi tin nhắn. ElGamal mã hóa tin nhắn một lần, sử dụng phương pháp tương tự như Diffie-Hellman và sau đó nó phải được tạo lại mỗi lần, điều này rất chậm và tốn thời gian. Vì vậy, tôi nghĩ Diffie-Hellman sẽ là lựa chọn tốt nhất cho trường hợp người dùng liên lạc thường xuyên và ElGamal để truyền tệp một lần.
Vì vậy, tôi đang tranh luận về việc sử dụng trong ứng dụng web của mình. Ban đầu tôi đã nghĩ đến việc sử dụng cả Diffie-Hellman và ElGamal. Bây giờ, tôi đang nghĩ đến việc sử dụng Diffie-Hellman để thiết lập khóa giữa hai bên, sau đó sử dụng sơ đồ mã hóa đối xứng như AES.
Một bài viết tôi thấy đặc biệt hữu ích là https://www.commonlounge.com/discussion/2be4d294aa9e44d4b67f6644cd9b5ced
Riêng đề mục “Thực tiễn sử dụng và ứng dụng”
Nếu tôi sử dụng Diffie-Hellman & AES, thì bao lâu thì một khóa cần được tạo lại?
Tôi hy vọng ai đó có thể xác nhận xem tôi có hiểu đúng cách sử dụng thực tế hay không và giúp lấp đầy bất kỳ khoảng trống nào trong hiểu biết của tôi.
Cảm ơn bạn!