# OpenPGPとは

OpenPGPは、電子メールなどのメッセージの暗号化や電子署名のために広く利用されている公開鍵暗号の規格です。本稿では、ブラウザ内で動作するJavaScriptによるOpenPGPの実装である、OpenPGP.jsを利用して、暗号化や電子署名を試してみます。

ヒント

公開鍵暗号は暗号化と復号に、対になってはいても異なる鍵を使うので、非対称暗号とも呼ばれます。

公開鍵暗号によるメッセージの暗号化や電子署名のためには、公開鍵(public key)と私有鍵(private key)のペア(鍵対、key pair)を使います。公開鍵は、インターネットなどで公開しておき、メッセージの暗号化や、電子署名の検証に使います。私有鍵は、ペアになっている公開鍵で暗号化されたメッセージの復号や、ペアになってる公開鍵で検証できるような電子署名の付与に使います。

メッセージの暗号化の際には、手元の公開鍵が本当にメッセージを送る相手のものか確認する必要があります。公開鍵を取り違えると、送信者の意図しない第三者がメッセージを復号できてしまうかもしれません。

私有鍵は、鍵対の持ち主以外に漏れないよう厳重に管理する必要があります。私有鍵を入手した第三者は、鍵対の持ち主になりすますことができてしまいます。

注意

本稿では、ブラウザ上で私有鍵を生成したり利用したりしますが、原則的には、実際に利用する私有鍵をブラウザにペーストしないようにしてください。ブラウザが表示しているウェブサイトに私有鍵が漏洩する可能性があります。

それでは、ブラウザ上で、鍵対の生成、テキストの暗号化と復号、電子署名を試してみましょう。公開鍵が意図した人のものかを確認する、信頼の網にも触れます。