PGPの使い方

PGPを使用するには、鍵ペア(公開鍵と秘密鍵)を生成し、通信したい相手と公開鍵を共有し、相手の公開鍵をインポートしてから、それらの鍵を使ってメッセージの暗号化、復号、署名、検証を行います。PGP暗号化は意図された受信者だけがメッセージを読めることを保証し、デジタル署名はメッセージが確実にあなたからのものであることを証明します。KeychainPGPのようなツールは、コマンドラインなしで、クリップボードベースのワークフローによってこのプロセスをアクセスしやすくします。

このPGPチュートリアルでは、最初の鍵ペアの生成から暗号化メッセージの送受信まで、各ステップをガイドします。公開鍵暗号の概念に初めて触れる方は、まずPGPとは?またはPGP入門ガイドをお読みください。


始める前に必要なもの

PGPで最初のメッセージを暗号化する前に、PGPアプリケーションが必要です:

  • KeychainPGPウェブアプリ — 任意のモダンブラウザでオンラインPGPツールを開きます。Rustからコンパイルされたwebassemblyを介してすべてがローカルで動作します。インストール不要、アカウント不要、サーバーへのデータ送信なし。
  • KeychainPGPデスクトップアプリ — Windows、macOS、Linux、Android向けのネイティブアプリをGitHubリリースページからダウンロードできます。デスクトップアプリにはグローバルショートカット、システムトレイ統合、クリップボード自動消去、QRコード同期が追加されています。
  • KeychainPGP CLIkeychainpgp CLIは、鍵生成、暗号化、復号、署名、検証、鍵管理のコマンドを提供します。スクリプティングと自動化に最適です。
  • GnuPG(GPG) — 伝統的なコマンドラインツール。強力ですがターミナルの知識が必要です。詳細な比較はPGP vs GPGをご覧ください。

ヒント:何もインストールせずにPGP暗号化を試したいだけなら、オンラインPGPツールを開いてこのチュートリアルに従ってください。


ステップ1:PGP鍵ペアの生成

PGP鍵ペアは、数学的に関連する2つの鍵で構成されます:

  • 公開鍵 — 自由に共有します。誰でもこの鍵を使ってあなた宛てのメッセージを暗号化したり、あなたの署名を検証したりできます。
  • 秘密鍵 — 秘密にしておきます。公開鍵で暗号化されたメッセージを復号し、デジタル署名を作成するために使用します。

KeychainPGPでの鍵生成

  1. KeychainPGP(ウェブアプリまたはデスクトップアプリ)を開きます。
  2. タブに移動します。
  3. 新しい鍵を生成をクリックします。
  4. 名前とメールアドレスを入力します。
  5. 生成をクリックします。KeychainPGPはEd25519 + X25519鍵ペアを作成します — OpenPGPで利用可能な最もモダンで安全なアルゴリズムです。

GPG(コマンドライン)での鍵生成

gpg --full-generate-key

鍵の種類(RSAまたはECC)、サイズ、有効期限を選択します。モダンなセキュリティのために、GPGのバージョンがサポートしている場合はEd25519を選択してください。


ステップ2:公開鍵の共有

公開鍵はASCII-armored形式のテキストブロックです。どこでも共有できます:

  • メール — メール本文に貼り付けるか、.ascファイルとして添付します。
  • メッセージングアプリ — Signal、WhatsApp、Matrixなどのチャットプラットフォームで送信します。
  • ウェブサイト — 個人サイト、GitHubプロフィール、Twitterプロフィールに公開します。
  • 鍵サーバーkeys.openpgp.orgのような公開鍵サーバーにアップロードします。

重要:公開鍵のみを共有してください。秘密鍵は絶対に誰とも共有しないでください。


ステップ3:連絡先の公開鍵をインポート

暗号化メッセージを誰かに送信する前に、その人の公開鍵が必要です。連絡先にASCII-armored形式の公開鍵を送ってもらうか、鍵サーバーで検索します。

KeychainPGPでの鍵インポート

  1. 連絡先の公開鍵ブロックをクリップボードにコピーします。
  2. KeychainPGPを開いてタブに移動します。
  3. 鍵をインポートをクリックし、鍵を貼り付けます。
  4. 連絡先が名前とメールアドレスとともに鍵リストに表示されます。

ステップ4:メッセージの暗号化

KeychainPGP(ウェブまたはデスクトップ)での暗号化

  1. 暗号化タブに移動します。
  2. 暗号化したいメッセージを入力または貼り付けます。
  3. 鍵リストから受信者を選択します。
  4. クリップボードに暗号化をクリックします。暗号化されたメッセージがクリップボードにコピーされます。
  5. 暗号化されたメッセージをメール、チャット、またはその他の通信チャネルに貼り付けます。

デスクトップショートカットでの暗号化

KeychainPGPデスクトップアプリでは、クリップボードワークフローによりさらに高速です:

  1. 任意のアプリケーションでメッセージを入力します。
  2. テキストを選択してコピーします(Ctrl+C)。
  3. Ctrl+Shift+Eを押します — KeychainPGPがクリップボードの内容を暗号化します。
  4. 暗号化されたメッセージを貼り付けます(Ctrl+V)。

ステップ5:メッセージの復号

KeychainPGP(ウェブまたはデスクトップ)での復号

  1. 暗号化されたメッセージブロック全体をコピーします。
  2. KeychainPGPの復号タブに移動します。
  3. 暗号文を貼り付けます。
  4. 復号をクリックします。平文がすぐに表示されます。

デスクトップショートカットでの復号

  1. 暗号化されたメッセージブロックを選択してコピーします(Ctrl+C)。
  2. Ctrl+Shift+Dを押します — KeychainPGPがクリップボードの内容を復号します。
  3. 平文がクリップボード内の暗号文と置き換わります。必要な場所に貼り付けてください。

デスクトップアプリにはクリップボード自動消去機能もあります:30秒後に、復号されたテキストがクリップボードから自動的に削除されます。


ステップ6:メッセージへの署名

PGPデジタル署名は2つのことを証明します:

  1. 真正性 — メッセージが署名鍵の所有者によって書かれたこと。
  2. 完全性 — メッセージが署名後に改ざんされていないこと。

署名はメッセージを暗号化しません。誰でも署名されたメッセージを読めますが、それがあなたからのものであり改ざんされていないことを検証できます。

メッセージに署名するタイミング

  • ソフトウェアリリースやセキュリティ勧告の発表
  • 公開フォーラムでの本人確認
  • 送信元を証明するためのメール署名
  • コードの完全性のためのGitコミット署名

ステップ7:署名の検証

署名付きメッセージを受信したら、それが本物で改ざんされていないことを検証できます。

KeychainPGPでの検証

  1. 署名付きメッセージ全体(署名ブロックを含む)をコピーします。
  2. 検証タブに移動します。
  3. 署名付きメッセージを貼り付けます。
  4. 検証をクリックします。KeychainPGPが署名が有効かどうかを確認します。

KeychainPGPクリップボードワークフロー

KeychainPGPを従来のPGPツールと区別するのは、そのクリップボード暗号化ワークフローです。ファイル操作や専用メールクライアントを必要とする代わりに、KeychainPGPはシステムクリップボードを通じてあらゆるアプリケーションで動作します。

操作ウェブアプリデスクトップアプリ
暗号化テキストを貼り付け、暗号化をクリックテキストをコピー、Ctrl+Shift+Eを押す
復号暗号文を貼り付け、復号をクリック暗号文をコピー、Ctrl+Shift+Dを押す
署名テキストを貼り付け、署名をクリックアプリウィンドウ内で利用可能
検証署名付きテキストを貼り付け、検証をクリックアプリウィンドウ内で利用可能

デスクトップアプリの追加セキュリティ機能:

  • クリップボード自動消去 — 復号されたテキストは30秒後にクリップボードから削除されます。
  • OPSECモード — ウィンドウタイトルの偽装、RAM専用鍵ストレージ、緊急消去ボタン。
  • OS資格情報ストア — 秘密鍵はWindows資格情報マネージャー、macOSキーチェーン、またはLinux Secret Serviceを通じて安全に保管されます。

ウェブアプリ vs デスクトップアプリ

ウェブアプリオンラインPGPツール):

  • WebAssemblyを介してブラウザ内で完全に動作
  • インストール不要、アカウント不要
  • 素早い暗号化タスクに最適
  • 鍵はブラウザのローカルストレージに保存

デスクトップアプリ(Windows、macOS、Linux、Android):

  • 暗号化・復号用のグローバルショートカット
  • システムトレイ統合
  • クリップボード自動消去
  • RAM専用鍵と緊急消去のOPSECモード
  • OS資格情報マネージャーによる安全な鍵保管
  • 日常的な使用と長期的な鍵管理に最適

両方のアプリは無料、オープンソース(MIT / Apache-2.0)で、テレメトリは一切ありません。


よくある質問

秘密鍵を共有すべきですか?

いいえ。秘密鍵は絶対に誰とも共有しないでください。秘密鍵はあなた宛てに送信されたメッセージを復号し、デジタル署名を作成するためのものです。他の誰かがあなたの秘密鍵を入手すると、あなた宛てのすべての暗号化メッセージを読み、あなたになりすますことができます。

秘密鍵を紛失したらどうなりますか?

秘密鍵を紛失すると、対応する公開鍵で暗号化されたすべてのメッセージを復号する能力が永久に失われます。復旧の仕組みはありません。秘密鍵は常に安全にバックアップしてください。

PGPでファイルを暗号化できますか?

はい。PGPはテキストメッセージとバイナリファイルの両方を暗号化できます。KeychainPGPはテキストのクリップボード暗号化に特化していますが、GnuPGのようなツールはファイル暗号化を直接サポートしています。詳細な比較はPGP vs GPGガイドをご覧ください。

PGP暗号化は安全ですか?

モダンなアルゴリズムを使用したPGP暗号化は非常に安全です。KeychainPGPは署名にEd25519、鍵交換にX25519を使用しています — 鍵サイズの数分の一でRSA-3072と同等のセキュリティを提供する楕円曲線アルゴリズムです。主なリスクは暗号学的なものではなく運用上のもの:弱いパスフレーズ、侵害されたデバイス、不注意な鍵管理です。

PGPフィンガープリントとは?

PGPフィンガープリントは、PGP鍵を一意に識別する40文字の16進数文字列です。フィンガープリントは、公開鍵が想定する人物のものであることを確認するために使用されます。中間者攻撃を防ぐために、別の信頼できるチャネル(電話、ビデオ通話、対面)でフィンガープリントを比較してください。