PGP 暗号化ツール(OpenPGP)
メッセージを 1 つ以上の OpenPGP 公開鍵で暗号化し、秘密鍵で復号、Curve25519/RSA の鍵ペアも生成。ASCII アーマー形式で、ブラウザ内で動作します。
ASCII アーマー形式の公開鍵ブロックを 1 つ以上貼り付けてください。記載したすべての受信者がメッセージを復号できます。
すべてブラウザ内で実行されます。データが アップロードされることはありません。
PGP 暗号化とは?
テキストを 1 人以上の受信者の OpenPGP 公開鍵で暗号化し、GnuPG、Kleopatra、Thunderbird、ProtonMail で復号できる ASCII アーマー形式の BEGIN PGP MESSAGE ブロックを返します。このページは、openpgp.js ライブラリを使って、秘密鍵によるメッセージの復号や、テスト用の新しい鍵ペアの生成も行います。
PGP 暗号化の使い方
- 暗号化 タブで 1 つ以上の受信者の公開鍵(
BEGIN PGP PUBLIC KEY BLOCK)を貼り付けます。確認できるようにユーザー ID とフィンガープリントが表示されます。 - メッセージ を書いて 暗号化 をクリックし、アーマー形式のメッセージをコピーまたはダウンロードします。
- メッセージを読むには 復号 を開き、秘密鍵、そのパスフレーズ(ある場合)、メッセージを貼り付けて 復号 をクリックします。
- まだ鍵がない場合は 鍵ペアを生成 を使い、名前またはメールアドレスと任意のパスフレーズを入力して、この公開鍵で暗号化 をクリックします。
例
Message "Hello PGP" encrypted to a Curve25519 public key for "Test Recipient <test@example.com>"
-----BEGIN PGP MESSAGE----- … -----END PGP MESSAGE-----
新しいランダムなセッション鍵が使われるため、アーマー形式のメッセージは実行のたびに異なります。復号すると「Hello PGP」が得られます。
PGP 暗号化を使うべき場面
PGP 鍵を公開している相手に機密メッセージを送るとき、PGP 連携をテストするとき、ソフトウェアをインストールせずに OpenPGP を試すときに使ってください。日常的な利用では、秘密鍵を GnuPG などのローカルクライアントに置いてください。ブラウザのページは長期の秘密鍵を扱う場所ではありません。このツールはメッセージへの署名や署名の検証は行いません。
PGP 暗号化の仕組み
OpenPGP(RFC 4880/9580)はハイブリッド暗号を使います。ランダムなセッション鍵が AES でメッセージを暗号化し、そのセッション鍵が各受信者の暗号化サブキー(Curve25519 の ECDH または RSA)で暗号化されます。パケットは CRC チェックサム付きで Base64 のアーマー形式になります。復号では、秘密鍵をパスフレーズで解錠し、セッション鍵を復元して、完全性保護されたデータパケットを検証します。鍵生成では、ユーザー ID に紐づく主署名鍵と暗号化サブキー(Curve25519 または RSA-4096)が作られます。
一般的な使用例
- セキュリティ担当者が公開している PGP 鍵(security.txt)宛てのメッセージを暗号化する
- サーバーの GnuPG 設定が OpenPGP.js の出力を復号できるかテストする
- 同じメッセージを複数の受信者向けに一度に暗号化する
- デモやチュートリアル用の使い捨ての鍵ペアを生成する
セキュリティ注意事項
暗号化、復号、鍵生成はすべてブラウザ内で行われ、何もアップロードされません。生成された秘密鍵は保存されないため、自分で保存してください。長期利用の秘密鍵をウェブページに貼り付けるのは避けてください。
よくある質問
GnuPG で出力を復号できますか?
はい。message.asc として保存し、受信者の鍵をキーリングに入れた状態で gpg --decrypt message.asc を実行してください。
どの鍵の種類を生成すべきですか?
ECC Curve25519 は高速でコンパクトで、GnuPG 2.1 以降とすべての最新クライアントが対応しています。RSA 4096 は非常に古いソフトウェアとの互換性が最大ですが、遅くなります。
メッセージは署名されますか?
いいえ、暗号化されるだけです。受信者は送信者を判別できません。真正性が重要な場合は、自分のクライアントで署名してください。
秘密鍵のパスフレーズを忘れたらどうなりますか?
その鍵は使えなくなり、その鍵宛てに暗号化されたメッセージは読めなくなります。復旧する方法はありません。