Thẻ <keygen> tạo cặp khóa public-private và gửi khóa pulic đến server cùng với việc gửi form. Phần tử này dự kiến sẽ không được dùng nữa và không có hỗ trợ trình duyệt rộng rãi.
Nếu hai bên muốn giao tiếp an toàn, mỗi bên cần có khả năng tạo một cặp khóa public-private và sau đó sử dụng khóa public với bên kia. <keygen> nhằm tạo điều kiện thuận lợi cho việc này trong ngữ cảnh của một biểu mẫu HTML.
Trong các trình duyệt triển khai nó (không phải tất cả đều như vậy), nếu phần tử được bao gồm trong một biểu mẫu, thì trình duyệt sẽ tạo một cặp khóa cục bộ và gửi khóa public đến form khi form được gửi.
Khóa private sau đó được lưu trữ cục bộ và không được chia sẻ.
Đã từng có thông báo rằng phần tử <keygen> sẽ không được dùng nữa và bị loại bỏ khỏi tiêu chuẩn HTML5.
Điều này có nghĩa là sẽ cần đến các phương pháp tạo khóa thay thế. Đương nhiên, điều này đơn giản có nghĩa là sử dụng JavaScript.