はじめに ChromeやFirefox、Opera、Edgeなどのブラウザでは、WebCrypto APIを使ってブラウザで鍵の生成や暗号化と復号、署名と検証ができるようになっていますが、今回はECDHを使った鍵共有(およびAES-GCMで暗号化)を題材として、WebCrypto APIの使い方の一例を試してみます。 ECDHでは鍵ペアの生成と鍵共有を行います ECDHを使って暗号化と復号を行うには、一般的には次のような手順となります(楕円曲線ディフィー・ヘルマン鍵共有)。 暗号化する側Aと、暗号化されたデータを復号する側Bの両方で、鍵ペア(秘密鍵・公開鍵)を生成 AとBが互いに相手の公開鍵を共有 Aは「Aの秘密鍵」と「Bの公開鍵」を使って共有鍵を生成し、この共有鍵でデータの暗号化を実行して、Bに送信 Bは「Bの秘密鍵」と「Aの公開鍵」を使って共有鍵を生成し、この共有鍵で暗号化されたデータ