【OpenPGP】OpenPGPでファイルを暗号化・復号化する

変更履歴

Rev. 0.7 : 2025年04月07日
新規作成
下に示す記事からファイルの暗号化・復号化に関する部分を抜き出し
まとめたものです。  

【OpenPGP】メール暗号化のためのPGP導入が、とっても簡単になっていた!
(有料サービスにも負けない、無料の 脱PPAP最強解)

1 はじめに

本記事は、OpenPGPツールの一つである Gpg4winによるファイルの暗号化について、
下に示す記事から抜き出してまとめたものです。

【OpenPGP】メール暗号化のためのPGP導入が、とっても簡単になっていた!
(有料サービスにも負けない、無料の 脱PPAP最強解)

Gpg4winは、PGP(Pretty Good Privacy) の技術によって作られたツールです。
下に示すページの「OpenSSL でのファイル暗号化」との対比ために、
上の記事からメール暗号化を省き「OpenPGPによるファイルの暗号化」だけにまとめました。

【OpenSSL】OpenSSLでファイルを暗号化・復号化

わたし個人としては、暗号化ファイルを復号化できる人を特定できるという点が、
とても気に入っています。
誤って渡すべきじゃない人に渡しても、その人はファイルを復号化できず、
内容を見ることはできません。

また暗号化に使用する鍵自体も、たくさんの人に見られても何の問題もありません。

こんなすばらしいツールを無料で使えるのに、
2025/0401現在、未だに「脱PPAP」が叫ばれていることを不思議に思っています。

2 WindowsにOpenPGP系のGpg4winを導入する

本章では、次の項目について示します。

Gpg4winの入手とインストール
・ 公開鍵・秘密鍵の鍵ペア作成

2.1 Gpg4winの入手とインストール

 

2.1.1 Gpg4winの入手

Gpg4winは、 次のサイトからダウンロードできます。

https://www.gpg4win.org/

このサイトからダウンロードできるのは、2025/04/01現在最新の“Gpg4win 4.4.0”です。

このバージョンは、私の環境のOutlook(バージョン 2503: ビルド18623.20156)メール送信時、
デジタル署名付加でフリーズする現象が発生しています。

【Gpg4win 4.4.0】Gpg4win 4.4.0、デジタル署名付きメール送信でOutlookがフリーズ

Gpg4win 4.4.0”でなんらかの不具合が発生するようでしたら、
旧バージョンを使われた方が良いのかもしれません。

Gpg4winの過去バージョンは、下に示すサイトから入手できます。

Gpg4win 4.3.1   Gpg4win 4.3.1 | File Eagle
Gpg4win 4.2.0   Gpg4win 4.2.0 | File Eagle

ダウンロード開始前に図2.1-2のような表示がでますので、 寄付可能な金額を選んでください。
$0であってもOKです。

2.1.2 インストール

本項では、インストールにおける注意点だけを述べます。

基本的に難しい設定はありませんので、
時々表示されるガイダンスにしたがって操作するようにしてください。

インストール開始時におけるGpg4winコンポーネントの選択では、
デフォルトのままで良いでしょう。
GpgEX”をは外してしまうと、Gpg4winでファイルの暗号化はできなくなってしまいます。

2.2 鍵ペアの作成

Gpg4winダウンロード後にまずやらなければならないのは、
自分の公開鍵と秘密鍵のペアを作成することです。

公開鍵は、ファイル暗号化に使用する鍵で、ファイル受け取り者が公開したものとなります。
ファイル送り元が、ファイル受け取り者の公開鍵を使って暗号化します。

秘密鍵は、ファイルを受け取った者が、ファイルを復号化するのに使用する鍵となります。

鍵ペアは、Gpg4winのツールであるKleopatraによって作成します。
Gpg4winで作成できる鍵ペアのタイプには、次の2種類があります。

OpenPGP鍵ペア
X.509鍵ペア(いわゆるS/MIME証明書: 認証局(CA)への証明書登録が必要

2.2.1 個人用のOpenPGP鍵ペアを作成

本項では、OpenPGP鍵ペアの作成について示します。

インストール後初めてKleopatraを起動した時は、図2.2-1に示すように表示されます。
New Key Pair」をクリックします。

鍵タイプは、「個人用のOpenPGP鍵ペアを作成」を選択します。

図2.2-3に示すウィンドウが開きます。
名前」には、鍵ぺアの名前を設定します。 日本語は、避けた方が良いでしょう。
メールアドレス」には、ファイル暗号化に使用するメールアドレスを入力します。

Protect the generated key with a passphrase」は、チェックします。
署名時やファイルの復号化時において秘密鍵を利用する時、
また秘密鍵を他の端末へエクスポートする時など、
第三者によって不正利用されないようパスフレーズでガードするようにします。

Create」をクリックする前に、
詳細設定…」で、暗号化アルゴリズムを確認しておきます。

メールの暗号化にも利用する場合、最も多くのメールソフトが対応している RSA に変更します。
また、鍵長が大きいほど安全になりますので、鍵長を4096に変更します
(何かのサービスでRSA2048ビット含むそれ以下は非推奨になったとか。
ニュースソース元は、失ってしまいました)。

Create」をクリックすると、新しい鍵生成前に、設定するパスフレーズを聞かれます。

鍵ペアの生成には、非力なPCでは相当時間がかかるそうです。
フリーズしてしまったと思い、Kleopatraを強制終了してしまわないようにしてください。

  鍵ペアの生成が完了すると、図2.2-6のように表示されます。

鍵ペアのバックアップや、
ファイルを暗号化してもらうファイル受け取り先への公開鍵の送付などは、
このタイミングでなくて後の任意のタイミングでできますから、
ここは素直に「完了」してしまいます。

2.2.2 X.509鍵ペアの作成

X.509鍵ペアは、 いわゆるS/MIME を利用するための鍵ペアと証明書です。
作成したX.509の証明書は、 認証局(CA: Certificate Authority)への登録
が必要となります。

基本的には、有料の「電子証明書発行サービス」を利用することになります。
安くても年3千円ほどかかるようです。

ちなみに、下に示すサイトに
無料でS/MIMEを利用するため「オレオレ認証局」を作ってみる』という記事を
作成しましたので、よければ参考にしてみてください。

【OpenSSL / Windows】無料でS/MIMEを利用するため「オレオレ認証局」を作ってみる
|すたっくおーばーふろー

2.3 公開鍵の受け渡し

自分の公開鍵を暗号化ファイル作成者に渡す方法には、次の3つの方法があります。

OpenPGPが運営する PGP公開鍵サーバーから取得してもらう
② 送信メールに自分の公開鍵を添付する
③ 物理的なファイルで渡す

いずれの方法であっても、第三者に盗み取られても大丈夫です。
公開鍵は暗号化にだけ使用するものですので、
秘密鍵が無ければメールを復号化することはできませんし、なりすましに利用することもできません。

①の方法を利用されるのが、もっとも良いでしょう。

次に、鍵交換において、偽物の鍵にすり替えられてしまうことが全く無いとは言い切れません。

交換した鍵の正当性は、
鍵のフィンガープリント(指紋)を受け渡し側と受け取り側で比較してみる
ことで確認します。

フィンガープリントを含む鍵の情報表示のウィンドウは、 鍵一覧表示において目的の鍵をダブルクリックすれば開きます。

2.3.1 OpenPGPが運営するPGPの公開鍵サーバーから取得してもらう

OpenPGP が運営するPGP公開鍵サーバーから取得してもらうことで、
自分宛暗号化ファイルの公開鍵を渡す方法です。

自分宛暗号化ファイル作成者には、 下に示すPGP公開鍵サーバーのURLを伝えておきます。
PGP公開鍵サーバーから公開鍵を取り出すキーワードは、メールアドレスだけです。

https://keys.openpgp.org/

自分の公開鍵は、事前にPGP公開鍵サーバーに登録おく必要があります。
登録するのは、”.asc”形式の公開鍵ファイルそのものだけです。

なお、 一旦登録してしまうと、
削除は容易ではありませんので、充分気をつけて登録するようにしてください。

2.3.2 送信メールに自分の公開鍵を添付する

本項では、デスクトップ版Outlookで、
PGPの公開鍵を送信するメールに添付する方法を示します。

【送信メールに公開鍵を添付する設定】
. 左ペイン(pane)から目的のメールアカウントの受信トレイを選んで、
ホーム」メニューを選びます。
表示されたツールバーから「Insecure」の右斜め下向き↓をクリックします。
Insecure」アイコンではなく、右下向き↓をクリックしなければ、
Configure GpgOL」ダイアログは開かないので注意してください。

. 左のメニューから「GnuPG System」を選びます。
鍵のインポートとエクスポートを制御するオプション」セクションの、

署名に公開鍵を含める」をチェックします。

【受信メールから送信者の公開鍵を取り出す】
受信者は、送信者の公開鍵図2.3-5に示すように、
”.asc”形式の添付ファイルとして受け取ります。

公開鍵をメールから取り出し、Gpg4winKleopatraにインポートします。

公開鍵の受け取り作業は、これだけです。 

3 ファイルやフォルダを暗号化する

Gpg4winによるファイルやフォルダの暗号化・復号化については、
ファイルエクスプローラーに統合されていますので、直感的に行うことができます。

詳しい説明は特に必要無いと思います。
ただ単にGpg4winでファイルやフォルダの暗号化ができることを知っていれば、
直ぐに操作できるといったレベルです。

3.1 ファイルやフォルダの暗号化

ファイルやフォルダに署名をしたり暗号化する場合は、
ファイルエクスプローラーで対象のファイルやフォルダを選んで右クリック。
表示されるコンテキストメニューの中から、「Sign」や「Encrypt」を選びます。

暗号化されたファイルは、「元のファイル名.gpg」と、
.gpg”が付け足された名前となります。

暗号化のファイルを複数人と共有する場合、
Encrypt for others」で公開鍵を知らされている複数人を選んで暗号化することができます。

大きなお世話なのですが。。。
共有グループに自分を含めておかないと、後ほど確認が必要になって復号化しようとしても、
自分では復号することはできません。

平のオリジナルをもっているから必要無いヤと思って、
自分を共有のグループに含めておかないとこんなことが起こります。

3.2 暗号化されたファイルの復号化

暗号化されたファイルの復号化は、暗号化する場合と同様、
ファイルエクスプローラーで対象のファイル名拡張子”.gpg”のファイルを選んで右クリック。

表示されるコンテキストメニューの中から、「Decrypt」か「Decrypt and verify」を選ます。

復号が完了すれば、図3.2-2に示すように暗号化時の情報が表示されます。

以上

本記事の元となっているWordで作成したPDFを
ページ最後に貼り付けました。
少しでも役に立てていただければ、うれしく思います。

このPDFファイルは、自由に配布されてもかまいません。
ただし、再配布の際には、
入手元著者名は明らかにしてください

なお、上のPDFファイルの内容、また本文中の記述に、
誤字や脱字、誤った内容の記述など見つかりましたら、
下に示すフォームでご連絡いただければ幸いです。

お問い合わせ