yosuke_furukawa:だいぶ門外漢なので、質問の整理化させてください。
公開鍵と秘密鍵両方持っています。
公開鍵で暗号化したものは秘密鍵を持っている人しか復号できません。
秘密鍵で暗号化したものは公開鍵で復号可能です。
この時点で公開鍵を他人に共有したとして、それが自分のものであると証明するためには何かしらデータを決めておき、秘密鍵で暗号化したものを渡した上で、それを公開鍵で復号できたら本人のものであるという証明になります。
これが公開鍵暗号の基礎的な仕組みの一つである、本人かどうかを確認する「署名」という手段になります。メールで送付したものが公開鍵だけだと本人かどうかは不明です。秘密鍵で暗号化した署名も一緒に渡す必要があります。
ただし、受信者はそれが本当に送信者なのか(公開鍵と秘密鍵を持っているただの他人なのではないか)という疑念もあります。今度はその公開鍵と秘密鍵を持っている人が本当に送信者かどうかを確認する手段が必要になります。
ここからが本題なのですが、ここに実はクラシックなPGPの限界があります。PGPは個人ベースでの信頼関係で成り立っています。誰か第三者が保証してくれているものではありません。受信者がそれを信用するかどうかは「友達の友達は友達である」という考えに基づいています。
別の機関がその人が確実に本人かどうかまで含めて確認する基盤をPKIと呼びます。このように全然知らない第三者間でのやり取りをする際に、その公開鍵と秘密鍵を持っている人が存在している人であることや事前の検証に基づき本人であることを保証してくれるものです。
S/MIMEなどのプロトコルではPKIによって本人確認する仕組みがあるのですが、あまり運用されているのを知りません。もしかしたら私が知らないだけかもしれませんが。
この他には最近だとOpenPGP
という規格も存在するようです。信用度合いも含めて「この人から信頼されている人は信頼できる」というネットワークを構築し、それによる方法で信頼度を高める手法だそうです。
https://mitome.in/openpgp/wot.html