本文へスキップ
ecdsa.com

OpenPGP

ユーザーが管理する鍵を使って、メッセージやファイルを公開鍵暗号で暗号化・署名するための IETF 標準(RFC 9580、2024年7月)で、GnuPG、Sequoia、OpenPGP.js などが実装しています。
別表記OpenPGPPGPGPGRFC 9580RFC 4880

OpenPGP のメッセージはパケットの並びです。公開鍵で暗号化されたセッション鍵、共通鍵で暗号化され完全性が保護されたデータ(RFC 9580 では AEAD を使うバージョン 2)、リテラルデータ、署名からなり、必要に応じて ASCII アーマーで包まれます。鍵(証明書)は、主鍵、ユーザー ID、副鍵、そしてそれらを結び付ける自己署名をひとまとめにしたものです。信頼の判断はユーザーに委ねられます。対面で確認したフィンガープリント、他者による鍵への署名(信頼の輪)、WKD での検索、keys.openpgp.org などです。

RFC 9580(いわゆる「crypto refresh」)は RFC 4880 を置き換え、v6 鍵と SHA-256 フィンガープリント、Ed25519、Ed448、X25519、X448 のネイティブ対応、AEAD 暗号化(OCB は必須、GCM と EAX は任意)、Argon2 によるパスフレーズ保護を導入しました。RFC 9980(2026年6月)は、ML-KEM-768+X25519 や ML-DSA-65+Ed25519 などのポスト量子の複合アルゴリズムを追加しています。GnuPG は最新の形式について競合する LibrePGP 仕様に従っているため、v4 鍵が引き続き共通の基盤です。

メール以外にも、Linux ディストリビューションのパッケージとリポジトリの署名、Git のタグとコミット、リリース署名(.asc ファイル)、パスワードマネージャー、バックアップに使われています。OpenPGP インスペクターで、鍵、署名、メッセージのパケットを一覧表示できます。

規格と参考文献

すべての用語