<keygen> は KEY GENeration の略です。フォームデータのセキュリティ強化に用います。<keygen> を含むフォームがサブミットされた場合、クライアント側で秘密鍵と公開鍵が生成されます。秘密鍵はブラウザ側のローカルキーストアに保存され、公開鍵は BASE64形式でサーバに送られます。
その後、サーバとクライアントがどのようにこの秘密鍵と公開鍵を使用するのかは定められていませんが、サーバがクライアント証明書を発行したりする際に使用されることが考えられます。
HTML5, HTML 5.1 では今後削除予定の要素として定義されていました。HTML 5.2 で廃止されました。HTML Living Standard には採用されていません。
<form method="POST" action="cgi/processkey.cgi" enctype="multipart/for-mdata"> : <keygen name="key" challenge="Hgr8yfgCp09AD3fHEUhv8"> : </form>