<feed xmlns="http://www.w3.org/2005/Atom" xmlns:cc="http://web.resource.org/cc/">
	<title>OpenPGP の実装 [text.Baldanders.info]</title>
	<link rel="alternate" type="text/html" href="https://text.baldanders.info/openpgp/" />
	<link rel="self" type="application/atom+xml" href="https://text.baldanders.info/openpgp/index.xml" />
	<id>tag:text.Baldanders.info,2026-01-07:/openpgp</id>
	<updated>2026-01-07T16:46:00+09:00</updated>
	<subtitle>OpenPGP とその実装である GnuPG 等に関する話題。</subtitle>
	<icon>https://text.baldanders.info/images/avatar.jpg</icon>
	<logo>https://text.baldanders.info/images/avatar.jpg</logo>

	<entry>
		<title>クリアテキスト署名の危険性</title>
		<category term="openpgp" label="openpgp" scheme="https://text.baldanders.info/openpgp/" />
		<link rel="alternate" type="text/html" href="https://text.baldanders.info/openpgp/cleartext-signatures-considered-harmful/" />
		<id>tag:text.Baldanders.info,2026-01-07:/openpgp/cleartext-signatures-considered-harmful/</id>
		<published>2026-01-07T16:46:00+09:00</published>
		<updated>2026-01-28T07:06:57+00:00</updated>
		<summary>注意喚起を促すブログ記事の紹介 / GnuPG 最新版へのアップデート</summary>
		<author>
			<name>Spiegel</name>
			<uri>https://baldanders.info/profile/</uri>
		</author>
		
	<link rel="cc:license" type="application/rdf+xml" href="https://creativecommons.org/licenses/by-sa/4.0/rdf" />


		<content type="html" xml:lang="ja-jp" xml:base="https://text.baldanders.info/">&lt;p&gt;Mastodon の TL で以下のアナウンスを見かけた。&lt;/p&gt;
&lt;figure style=&#39;margin:0 auto;text-align:center;&#39;&gt;
&lt;blockquote class=&#34;mastodon-embed&#34; data-embed-url=&#34;https://mstdn.social/@GnuPG/115842294964864180/embed&#34; style=&#34;background: #FCF8FF; border-radius: 8px; border: 1px solid #C9C4DA; margin: 0; max-width: 540px; min-width: 270px; overflow: hidden; padding: 0;&#34;&gt; &lt;a href=&#34;https://mstdn.social/@GnuPG/115842294964864180&#34; target=&#34;_blank&#34; style=&#34;align-items: center; color: #1C1A25; display: flex; flex-direction: column; font-family: system-ui, -apple-system, BlinkMacSystemFont, &#39;Segoe UI&#39;, Oxygen, Ubuntu, Cantarell, &#39;Fira Sans&#39;, &#39;Droid Sans&#39;, &#39;Helvetica Neue&#39;, Roboto, sans-serif; font-size: 14px; justify-content: center; letter-spacing: 0.25px; line-height: 20px; padding: 24px; text-decoration: none;&#34;&gt; &lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; xmlns:xlink=&#34;http://www.w3.org/1999/xlink&#34; width=&#34;32&#34; height=&#34;32&#34; viewBox=&#34;0 0 79 75&#34;&gt;&lt;path d=&#34;M63 45.3v-20c0-4.1-1-7.3-3.2-9.7-2.1-2.4-5-3.7-8.5-3.7-4.1 0-7.2 1.6-9.3 4.7l-2 3.3-2-3.3c-2-3.1-5.1-4.7-9.2-4.7-3.5 0-6.4 1.3-8.6 3.7-2.1 2.4-3.1 5.6-3.1 9.7v20h8V25.9c0-4.1 1.7-6.2 5.2-6.2 3.8 0 5.8 2.5 5.8 7.4V37.7H44V27.1c0-4.9 1.9-7.4 5.8-7.4 3.5 0 5.2 2.1 5.2 6.2V45.3h8ZM74.7 16.6c.6 6 .1 15.7.1 17.3 0 .5-.1 4.8-.1 5.3-.7 11.5-8 16-15.6 17.5-.1 0-.2 0-.3 0-4.9 1-10 1.2-14.9 1.4-1.2 0-2.4 0-3.6 0-4.8 0-9.7-.6-14.4-1.7-.1 0-.1 0-.1 0s-.1 0-.1 0 0 .1 0 .1 0 0 0 0c.1 1.6.4 3.1 1 4.5.6 1.7 2.9 5.7 11.4 5.7 5 0 9.9-.6 14.8-1.7 0 0 0 0 0 0 .1 0 .1 0 .1 0 0 .1 0 .1 0 .1.1 0 .1 0 .1.1v5.6s0 .1-.1.1c0 0 0 0 0 .1-1.6 1.1-3.7 1.7-5.6 2.3-.8.3-1.6.5-2.4.7-7.5 1.7-15.4 1.3-22.7-1.2-6.8-2.4-13.8-8.2-15.5-15.2-.9-3.8-1.6-7.6-1.9-11.5-.6-5.8-.6-11.7-.8-17.5C3.9 24.5 4 20 4.9 16 6.7 7.9 14.1 2.2 22.3 1c1.4-.2 4.1-1 16.5-1h.1C51.4 0 56.7.8 58.1 1c8.4 1.2 15.5 7.5 16.6 15.6Z&#34; fill=&#34;currentColor&#34;/&gt;&lt;/svg&gt; &lt;div style=&#34;color: #787588; margin-top: 16px;&#34;&gt;Post by @GnuPG@mstdn.social&lt;/div&gt; &lt;div style=&#34;font-weight: 500;&#34;&gt;View on Mastodon&lt;/div&gt; &lt;/a&gt; &lt;/blockquote&gt; &lt;script data-allowed-prefixes=&#34;https://mstdn.social/&#34; async src=&#34;https://mstdn.social/embed.js&#34;&gt;&lt;/script&gt;
&lt;/figure&gt;
&lt;p&gt;まとめて書かれているが，内容としては&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;注意喚起を促すブログ記事の紹介&lt;/li&gt;
&lt;li&gt;GnuPG 最新版へのアップデート&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;の2点ある。
このうち，前半の注意喚起を促すブログ記事がこちら&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.gnupg.org/blog/20251226-cleartext-signatures.html&#34; target=&#34;_blank&#34;&gt;Cleartext Signatures Considered Harmful&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;クリアテキスト署名とは，以下のように平文テキストと電子署名が一体化した形式の署名である。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;-----BEGIN PGP SIGNED MESSAGE-----
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Hash: SHA512
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Far out in the uncharted backwaters of the unfashionable  end  of
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;the  western  spiral  arm  of  the Galaxy lies a small unregarded
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;yellow sun.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;-----BEGIN PGP SIGNATURE-----
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;iJEEARYKADkWIQSHd0YfKgdOvEgNNZQZzByeCFsQegUCaU5mGhsUgAAAAAAEAA5t
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;YW51MiwyLjUrMS4xMSwyLDIACgkQGcwcnghbEHq27gEAqE+Cw1FmIlDXyzc1+5K8
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;3e60/3TjpqpFmkmuot8ZROMBAIrQXMhfN3gr7jdsxLuV1L7+IzHSRyUMlelZSnAs
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;k+AL
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;=kCuN
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;-----END PGP SIGNATURE-----
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;このブログ記事を &lt;a href=&#34;https://kagi.com/assistant&#34; target=&#34;_blank&#34; title=&#34;The Assistant&#34;&gt;Kagi Assistant&lt;/a&gt; に要約してもらった。
こんな感じ。&lt;/p&gt;
&lt;figure&gt;
&lt;blockquote&gt;&lt;p&gt;以下は指定ページの要約です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;要旨：PGPの「クリアテキスト署名」は一見便利だが、表示と実際に署名された内容が一致しない可能性があり危険であると指摘している。検証が容易ではなく攻撃に対して脆弱であるため、使用を避けるべきという結論を示している。&lt;/li&gt;
&lt;li&gt;主な問題点：
&lt;ul&gt;
&lt;li&gt;端末やビューアのエスケープコードや制御文字により、表示内容が改変され得ること。&lt;/li&gt;
&lt;li&gt;エンコーディングや改行の扱いの差異で、見た目と署名対象が食い違う恐れがあること。&lt;/li&gt;
&lt;li&gt;偽のヘッダーやコメント行の誤解を利用した混乱を招く手法が存在すること。&lt;/li&gt;
&lt;li&gt;これらの落とし穴は歴史的背景の中で認識されてきたが、現在も実用上のリスクとなっていること。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;推奨事項：
&lt;ul&gt;
&lt;li&gt;クリアテキスト署名の使用を避け、代わりにデタッチ署名（別ファイルの署名）を使うことを強く推奨すること。&lt;/li&gt;
&lt;li&gt;電子メールではPGP/MIMEの利用を推奨すること（テキスト表示の差異による誤検証を防ぐため）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;結論：可読性の利点はあるが、セキュリティ上の欠点が重大であるため、より安全な署名形式へ移行すべきである。&lt;/li&gt;
&lt;/ul&gt;&lt;/blockquote&gt;&lt;/figure&gt;
&lt;p&gt;んー。
だいたい合ってるかな。&lt;/p&gt;
&lt;p&gt;クリアテキスト署名は大昔の素朴な電子メールなど限られたコミュニケーション手段しかなかった時代の形式で，現代の多様なデータをやり取りする際のエンコーディング手段としては適切とは言えなくなっている。
なので，データと署名を分ける分離署名（detached signature）を用いるか，電子メールであれば PGP/MIME を使うことを推奨する，という内容である。&lt;/p&gt;
&lt;p&gt;アナウンスの後半は古いバージョン &lt;a href=&#34;https://gnupg.org/&#34; target=&#34;_blank&#34; title=&#34;The GNU Privacy Guard&#34;&gt;GnuPG&lt;/a&gt; には ASCII-Armor 形式のテキストデータの解析においてメモリ破壊があるので最新版にアップデートしてね，というもの。
ちなみに，この不具合は 2025-11-27 にリリースされたバージョン 2.5.14 で修正されている。
バージョン 2.5.16 および 2.4.9 は 2025-12-30 にリリースされている。&lt;/p&gt;
&lt;p&gt;なお &lt;a href=&#34;https://gnupg.org/&#34; target=&#34;_blank&#34; title=&#34;The GNU Privacy Guard&#34;&gt;GnuPG&lt;/a&gt; 2.5 系は安定版に昇格している。
さらに 2.4 系は 2026-06-30 でサポートが終了する。&lt;/p&gt;
&lt;figure lang=&#34;en&#34;&gt;
&lt;blockquote cite=&#34;https://lists.gnupg.org/pipermail/gnupg-announce/2025q4/000500.html&#34;&gt;&lt;p&gt;Note that the 2.5 series is now declared the stable version of GnuPG.
The oldstable 2.4 series will reach end-of-life in just 6 months.&lt;/p&gt;
&lt;p&gt;The main features in the 2.5 series are improvements for 64 bit Windows
and the introduction of Kyber (aka ML-KEM or FIPS-203) as PQC encryption
algorithm.  Other than PQC support the 2.6 series will not differ a lot
from 2.4 because the majority of changes are internal to make use of
newer features from the supporting libraries.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;&lt;div&gt;via &lt;q&gt;&lt;a href=&#34;https://lists.gnupg.org/pipermail/gnupg-announce/2025q4/000500.html&#34;&gt;[Announce] GnuPG 2.5.16 released&lt;/a&gt;&lt;/q&gt;&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2&gt;ブックマーク&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://gnupg.com/20260122-39C3_reply_gpg_fail.html&#34; target=&#34;_blank&#34;&gt;Responsible Disclosure Requires Accountability: Putting Recent GnuPG Security Reports into Context&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://text.baldanders.info/release/2026/01/gnupg-2_5_17-is-released/&#34; target=&#34;_blank&#34;&gt;GnuPG 2.5.17 のリリース【セキュリティ・アップデート】&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;参考図書&lt;/h2&gt;
&lt;div class=&#34;hreview&#34;&gt;
  &lt;div class=&#34;photo&#34;&gt;&lt;a href=&#34;https://www.amazon.co.jp/dp/4314009071?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;&lt;img src=&#34;https://m.media-amazon.com/images/I/51ZRZ62WKCL._SL160_.jpg&#34; width=&#34;108&#34; alt=&#34;photo&#34;&gt;&lt;/a&gt;&lt;/div&gt;
  &lt;dl&gt;
    &lt;dt class=&#34;item&#34;&gt;&lt;a class=&#34;fn url&#34; href=&#34;https://www.amazon.co.jp/dp/4314009071?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;暗号化 プライバシーを救った反乱者たち&lt;/a&gt;&lt;/dt&gt;
    &lt;dd&gt;スティーブン・レビー (著), 斉藤 隆央 (翻訳)&lt;/dd&gt;
    &lt;dd&gt;紀伊國屋書店 2002-02-16&lt;/dd&gt;
    &lt;dd&gt;単行本&lt;/dd&gt;
    &lt;dd&gt;4314009071 (ASIN), 9784314009072 (EAN), 4314009071 (ISBN)&lt;/dd&gt;
    &lt;dd&gt;評価&lt;abbr class=&#34;rating fa-sm&#34; title=&#34;5&#34;&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&lt;/abbr&gt;&lt;/dd&gt;
  &lt;/dl&gt;
  &lt;p class=&#34;description&#34;&gt;20世紀末，暗号技術の世界で何があったのか。知りたかったらこちらを読むべし！&lt;/p&gt;
  &lt;p class=&#34;powered-by&#34;&gt;reviewed by &lt;a href=&#39;#maker&#39; class=&#39;reviewer&#39;&gt;Spiegel&lt;/a&gt; on &lt;abbr class=&#34;dtreviewed&#34; title=&#34;2015-03-09&#34;&gt;2015-03-09&lt;/abbr&gt; (powered by &lt;a href=&#34;https://affiliate.amazon.co.jp/assoc_credentials/home&#34;&gt;PA-APIv5&lt;/a&gt;)&lt;/p&gt;
&lt;/div&gt; &lt;!-- 暗号化 プライバシーを救った反乱者たち --&gt;
&lt;div class=&#34;hreview&#34;&gt;
  &lt;div class=&#34;photo&#34;&gt;&lt;a href=&#34;https://www.amazon.co.jp/dp/4900900028?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;&lt;img src=&#34;https://m.media-amazon.com/images/I/5132396FFQL._SL160_.jpg&#34; width=&#34;124&#34; alt=&#34;photo&#34;&gt;&lt;/a&gt;&lt;/div&gt;
  &lt;dl&gt;
    &lt;dt class=&#34;item&#34;&gt;&lt;a class=&#34;fn url&#34; href=&#34;https://www.amazon.co.jp/dp/4900900028?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;PGP―暗号メールと電子署名&lt;/a&gt;&lt;/dt&gt;
    &lt;dd&gt;シムソン ガーフィンケル (著), Garfinkel,Simson (原著), ユニテック (翻訳)&lt;/dd&gt;
    &lt;dd&gt;オライリー・ジャパン 1996-04-01&lt;/dd&gt;
    &lt;dd&gt;単行本&lt;/dd&gt;
    &lt;dd&gt;4900900028 (ASIN), 9784900900028 (EAN), 4900900028 (ISBN)&lt;/dd&gt;
    &lt;dd&gt;評価&lt;abbr class=&#34;rating fa-sm&#34; title=&#34;3&#34;&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;far fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;far fa-star&#34;&gt;&lt;/i&gt;&lt;/abbr&gt;&lt;/dd&gt;
  &lt;/dl&gt;
  &lt;p class=&#34;description&#34;&gt;良書なのだが，残念ながら内容が古すぎた。 PGP の歴史資料として読むならいいかもしれない。&lt;/p&gt;
  &lt;p class=&#34;powered-by&#34;&gt;reviewed by &lt;a href=&#39;#maker&#39; class=&#39;reviewer&#39;&gt;Spiegel&lt;/a&gt; on &lt;abbr class=&#34;dtreviewed&#34; title=&#34;2014-10-16&#34;&gt;2014-10-16&lt;/abbr&gt; (powered by &lt;a href=&#34;https://affiliate.amazon.co.jp/assoc_credentials/home&#34;&gt;PA-APIv5&lt;/a&gt;)&lt;/p&gt;
&lt;/div&gt; &lt;!-- PGP―暗号メールと電子署名 --&gt;
&lt;div class=&#34;hreview&#34;&gt;
  &lt;div class=&#34;photo&#34;&gt;&lt;a href=&#34;https://www.amazon.co.jp/dp/B015643CPE?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;&lt;img src=&#34;https://m.media-amazon.com/images/I/51t6yHHVwEL._SL160_.jpg&#34; width=&#34;113&#34; alt=&#34;photo&#34;&gt;&lt;/a&gt;&lt;/div&gt;
  &lt;dl&gt;
    &lt;dt class=&#34;item&#34;&gt;&lt;a class=&#34;fn url&#34; href=&#34;https://www.amazon.co.jp/dp/B015643CPE?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;暗号技術入門 第3版　秘密の国のアリス&lt;/a&gt;&lt;/dt&gt;
    &lt;dd&gt;結城 浩 (著)&lt;/dd&gt;
    &lt;dd&gt;SBクリエイティブ 2015-08-25 (Release 2015-09-17)&lt;/dd&gt;
    &lt;dd&gt;Kindle版&lt;/dd&gt;
    &lt;dd&gt;B015643CPE (ASIN)&lt;/dd&gt;
    &lt;dd&gt;評価&lt;abbr class=&#34;rating fa-sm&#34; title=&#34;5&#34;&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&lt;/abbr&gt;&lt;/dd&gt;
  &lt;/dl&gt;
  &lt;p class=&#34;description&#34;&gt;SHA-3 や Bitcoin/Blockchain など新しい知見や技術要素を大幅追加。暗号技術を使うだけならこれ1冊でとりあえず無問題。&lt;/p&gt;
  &lt;p class=&#34;powered-by&#34;&gt;reviewed by &lt;a href=&#39;#maker&#39; class=&#39;reviewer&#39;&gt;Spiegel&lt;/a&gt; on &lt;abbr class=&#34;dtreviewed&#34; title=&#34;2015-09-20&#34;&gt;2015-09-20&lt;/abbr&gt; (powered by &lt;a href=&#34;https://affiliate.amazon.co.jp/assoc_credentials/home&#34;&gt;PA-APIv5&lt;/a&gt;)&lt;/p&gt;
&lt;/div&gt; &lt;!-- 暗号技術入門 第3版 --&gt;
</content>
	</entry><entry>
		<title>OpenPGP で利用可能なアルゴリズム（RFC 9580 対応版）</title>
		<category term="openpgp" label="openpgp" scheme="https://text.baldanders.info/openpgp/" />
		<link rel="alternate" type="text/html" href="https://text.baldanders.info/openpgp/algorithms-for-openpgp-rfc9580/" />
		<id>tag:text.Baldanders.info,2025-03-12:/openpgp/algorithms-for-openpgp-rfc9580/</id>
		<published>2025-03-12T17:04:54+09:00</published>
		<updated>2025-03-12T08:23:07+00:00</updated>
		<summary>2024年7月に RFC 9580 が発行された。この記事では最新の OpenPGP で利用可能なアルゴリズムを列挙していく。</summary>
		<author>
			<name>Spiegel</name>
			<uri>https://baldanders.info/profile/</uri>
		</author>
		
	<link rel="cc:license" type="application/rdf+xml" href="https://creativecommons.org/licenses/by-sa/4.0/rdf" />


		<content type="html" xml:lang="ja-jp" xml:base="https://text.baldanders.info/">&lt;p&gt;OpenPGP の標準化について2024年7月に &lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc9580&#34; target=&#34;_blank&#34; title=&#34;RFC 9580 - OpenPGP&#34;&gt;RFC 9580&lt;/a&gt; が発行された。
この記事では拙作 &lt;a href=&#34;https://github.com/goark/gpgpdump&#34; target=&#34;_blank&#34; title=&#34;goark/gpgpdump: OpenPGP packet visualizer&#34;&gt;gpgpdump&lt;/a&gt; の改定作業の目的のため OpenPGP で利用可能なアルゴリズムを列挙していく。&lt;/p&gt;
&lt;p&gt;なお &lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc9580&#34; target=&#34;_blank&#34; title=&#34;RFC 9580 - OpenPGP&#34;&gt;RFC 9580&lt;/a&gt; の発行に伴い，以前の &lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc4880&#34; target=&#34;_blank&#34; title=&#34;RFC 4880 - OpenPGP Message Format&#34;&gt;RFC 4880&lt;/a&gt;, &lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc5581&#34; target=&#34;_blank&#34; title=&#34;RFC 5581 - The Camellia Cipher in OpenPGP&#34;&gt;RFC 5581&lt;/a&gt;, &lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc6637&#34; target=&#34;_blank&#34; title=&#34;RFC 6637 - Elliptic Curve Cryptography (ECC) in OpenPGP&#34;&gt;RFC 6637&lt;/a&gt; は obsolete になった。
このブログでも前の「&lt;a href=&#34;https://text.baldanders.info/openpgp/algorithms-for-openpgp/&#34; target=&#34;_blank&#34;&gt;OpenPGP で利用可能なアルゴリズム（RFC 4880bis 対応版）&lt;/a&gt;」は obsolete とする。
また各アルゴリズムの横に &lt;abbr class=&#34;emoji-chars&#34; title=&#34;チェック&#34;&gt;&amp;#x2705;&lt;/abbr&gt; が付いているものは &lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc9580&#34; target=&#34;_blank&#34; title=&#34;RFC 9580 - OpenPGP&#34;&gt;RFC 9580&lt;/a&gt; で新たに追加されたものである。&lt;/p&gt;
&lt;h2&gt;パケットバージョン&lt;/h2&gt;
&lt;p&gt;アルゴリズムとは直接関係ないが &lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc9580&#34; target=&#34;_blank&#34; title=&#34;RFC 9580 - OpenPGP&#34;&gt;OpenPGP&lt;/a&gt; では暗号文や鍵や署名といったデータのかたまりを「パケット」と呼んでいる。
パケットは PGP/&lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc9580&#34; target=&#34;_blank&#34; title=&#34;RFC 9580 - OpenPGP&#34;&gt;OpenPGP&lt;/a&gt; によって幾つかのバージョンがある。&lt;/p&gt;
&lt;p&gt;現在有効なパケットバージョンの組み合わせは以下の通り。&lt;/p&gt;
&lt;figure style=&#39;margin:0 auto;text-align:center;&#39;&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;Version of &lt;br&gt;Encrypted Data &lt;br&gt;Payload&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;Version of &lt;br&gt;Preceding &lt;br&gt;Symmetric Key ESK &lt;br&gt;(If Any)&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;Version of &lt;br&gt;Preceding Public &lt;br&gt;Key ESK (If Any)&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;Generate?&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;SED&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;-&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;v2 PKESK (&lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc2440&#34; target=&#34;_blank&#34; title=&#34;RFC 2440 - OpenPGP Message Format&#34;&gt;RFC 2440&lt;/a&gt;)&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;No&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;SED&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;v4 SKESK&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;v3 PKESK&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;No&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;v1 SEIPD&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;v4 SKESK&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;v3 PKESK&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;Yes&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;v2 SEIPD  &lt;abbr class=&#34;emoji-chars&#34; title=&#34;チェック&#34;&gt;✅&lt;/abbr&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;v4 SKESK&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;v3 PKESK&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;Yes&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;figcaption&gt;&lt;div&gt;OpenPGP 暗号化メッセージのバージョン&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;v2 SEIPD は &lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc9580&#34; target=&#34;_blank&#34; title=&#34;RFC 9580 - OpenPGP&#34;&gt;RFC 9580&lt;/a&gt; で加わったもので認証付き暗号（AEAD）をサポートしている。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc9580&#34; target=&#34;_blank&#34; title=&#34;RFC 9580 - OpenPGP&#34;&gt;RFC 9580&lt;/a&gt; では “Generate?” が Yes のパケット組み合わせのみ生成が許容される（MUST）。
それ以外は後方互換性のために残される。&lt;/p&gt;
&lt;figure style=&#39;margin:0 auto;text-align:center;&#39;&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;Signing Key &lt;br&gt;Version&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;Signature Packet &lt;br&gt;Version&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;One-Pass Signature &lt;br&gt;Packet Version&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;Generate?&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;v3&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;v3&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;v3&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;No&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;v4&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;v3&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;v3&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;No&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;v4&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;v4&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;v3&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;Yes&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;v6 &lt;abbr class=&#34;emoji-chars&#34; title=&#34;チェック&#34;&gt;✅&lt;/abbr&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;v6 &lt;abbr class=&#34;emoji-chars&#34; title=&#34;チェック&#34;&gt;✅&lt;/abbr&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;v6 &lt;abbr class=&#34;emoji-chars&#34; title=&#34;チェック&#34;&gt;✅&lt;/abbr&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;Yes&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;figcaption&gt;&lt;div&gt;OpenPGP 鍵および署名のバージョン&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;ここにない v1 や v2 は最初期の PGP (&lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc1991&#34; target=&#34;_blank&#34; title=&#34;RFC 1991 - PGP Message Exchange Formats&#34;&gt;RFC 1991&lt;/a&gt;) の頃のもの。
さらに，ここにない v5 は &lt;a href=&#34;https://datatracker.ietf.org/doc/draft-ietf-openpgp-rfc4880bis/&#34; target=&#34;_blank&#34; title=&#34;draft-ietf-openpgp-rfc4880bis - OpenPGP Message Format&#34;&gt;RFC 4880bis&lt;/a&gt; の議論の頃にあったもので &lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc9580&#34; target=&#34;_blank&#34; title=&#34;RFC 9580 - OpenPGP&#34;&gt;RFC 9580&lt;/a&gt; ではなくなってしまったようだ。
おそらく &lt;a href=&#34;https://gnupg.org/&#34; target=&#34;_blank&#34; title=&#34;The GNU Privacy Guard&#34;&gt;GnuPG&lt;/a&gt; には残ってると思うけど&amp;hellip; 困ったね（笑）&lt;/p&gt;
&lt;p&gt;v3 は &lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc2440&#34; target=&#34;_blank&#34; title=&#34;RFC 2440 - OpenPGP Message Format&#34;&gt;RFC 2440&lt;/a&gt; で， v4 は &lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc4880&#34; target=&#34;_blank&#34; title=&#34;RFC 4880 - OpenPGP Message Format&#34;&gt;RFC 4880&lt;/a&gt; で登場したもの。
さらに v6 は &lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc9580&#34; target=&#34;_blank&#34; title=&#34;RFC 9580 - OpenPGP&#34;&gt;RFC 9580&lt;/a&gt; で新たに加わったものである。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc9580&#34; target=&#34;_blank&#34; title=&#34;RFC 9580 - OpenPGP&#34;&gt;RFC 9580&lt;/a&gt; では “Generate?” が Yes のパケット組み合わせのみ生成が許容される（MUST）。
それ以外は後方互換性のために残される。&lt;/p&gt;
&lt;h2&gt;共通鍵暗号アルゴリズム（Symmetric-Key Algorithms）&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc9580&#34; target=&#34;_blank&#34; title=&#34;RFC 9580 - OpenPGP&#34;&gt;OpenPGP&lt;/a&gt; で利用可能な共通鍵暗号は以下の通り。
&lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc9580&#34; target=&#34;_blank&#34; title=&#34;RFC 9580 - OpenPGP&#34;&gt;RFC 9580&lt;/a&gt; で新たに追加されたアルゴリズムはない。
なお「鍵長」項目の括弧内はブロック長を指す。
いずれも単位は “bit” である。&lt;/p&gt;
&lt;div&gt;
&lt;figure lang=&#34;en&#34;&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;&lt;th&gt;ID&lt;/th&gt;&lt;th&gt;アルゴリズム&lt;/th&gt;&lt;th&gt;鍵長&lt;/th&gt;&lt;th&gt;参考文献&lt;/th&gt;&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;0&lt;/td&gt;
&lt;td class=&#34;nowrap&#34; colspan=&#34;3&#34;&gt;Plaintext or unencrypted data&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;1&lt;/td&gt;
&lt;td class=&#34;nowrap&#34;&gt;IDEA&lt;/td&gt;
&lt;td class=&#39;right nowrap&#39;&gt;128 (64)&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://link.springer.com/chapter/10.1007%2F978-3-642-29011-4_24&#34;&gt;Narrow-Bicliques: Cryptanalysis of Full IDEA&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;2&lt;/td&gt;
&lt;td&gt;TripleDES (or DES-EDE) with 168-bit key derived from 192&lt;/td&gt;
&lt;td class=&#39;right nowrap&#39;&gt;168 (64)&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://doi.org/10.6028/NIST.SP.800-67r2&#34;&gt;SP800-67 Rev.2&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;3&lt;/td&gt;
&lt;td class=&#34;nowrap&#34;&gt;CAST5 with 128-bit key&lt;/td&gt;
&lt;td class=&#39;right nowrap&#39;&gt;128 (64)&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;http://tools.ietf.org/html/rfc2144&#34;&gt;RFC2144&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;4&lt;/td&gt;
&lt;td&gt;Blowfish with 128-bit key, 16 rounds&lt;/td&gt;
&lt;td class=&#39;right nowrap&#39;&gt;128 (64)&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;http://www.schneier.com/paper-blowfish-fse.html&#34;&gt;Description of a New Variable-Length Key, 64-Bit Block Cipher (Blowfish)&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;5,6&lt;/td&gt;
&lt;td colspan=&#34;3&#34;&gt;(Reserved)&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;7&lt;/td&gt;
&lt;td class=&#34;nowrap&#34;&gt;AES with 128-bit key&lt;/td&gt;
&lt;td class=&#39;right nowrap&#39;&gt;128 (128)&lt;/td&gt;
&lt;td rowspan=&#34;3&#34;&gt;&lt;a href=&#34;https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.197-upd1.pdf&#34;&gt;FIPS PUB 197&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;8&lt;/td&gt;
&lt;td class=&#34;nowrap&#34;&gt;AES with 192-bit key&lt;/td&gt;
&lt;td class=&#39;right nowrap&#39;&gt;192 (128)&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;9&lt;/td&gt;
&lt;td class=&#34;nowrap&#34;&gt;AES with 256-bit key&lt;/td&gt;
&lt;td class=&#39;right nowrap&#39;&gt;256 (128)&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;10&lt;/td&gt;
&lt;td class=&#34;nowrap&#34;&gt;Twofish with 256-bit key&lt;/td&gt;
&lt;td class=&#39;right nowrap&#39;&gt;256 (128)&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;11&lt;/td&gt;
&lt;td class=&#34;nowrap&#34;&gt;Camellia with 128-bit key&lt;/td&gt;
&lt;td class=&#39;right nowrap&#39;&gt;128 (128)&lt;/td&gt;
&lt;td rowspan=&#34;3&#34;&gt;&lt;a href=&#34;http://tools.ietf.org/html/rfc3713&#34;&gt;RFC3713&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;12&lt;/td&gt;
&lt;td class=&#34;nowrap&#34;&gt;Camellia with 192-bit key&lt;/td&gt;
&lt;td class=&#39;right nowrap&#39;&gt;192 (128)&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;13&lt;/td&gt;
&lt;td class=&#34;nowrap&#34;&gt;Camellia with 256-bit key&lt;/td&gt;
&lt;td class=&#39;right nowrap&#39;&gt;256 (128)&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right nowrap&#39;&gt;100-110&lt;/td&gt;
&lt;td colspan=&#34;3&#34;&gt;Private/Experimental algorithm&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right nowrap&#39;&gt;253-255&lt;/td&gt;
&lt;td colspan=&#34;3&#34;&gt;(Reserved to avoid collision with Secret Key Encryption)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;figcaption&gt;OpenPGP で使用可能な共通鍵暗号アルゴリズム一覧&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;ID は &lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc9580&#34; target=&#34;_blank&#34; title=&#34;RFC 9580 - OpenPGP&#34;&gt;OpenPGP&lt;/a&gt; で定義されるもので “sym 1” のように表記する。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AES-128 (sym 7) が “MUST implement” で AES-256 (sym 9) が “SHOULD implement” となった&lt;/li&gt;
&lt;li&gt;後方互換性のために IDEA, TripleDES, CAST5 による復号を行ってもよい（MAY）が機密性の漏洩が疑われる非推奨のアルゴリズムであることを警告すべき（SHOULD）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ちなみに sym 11 から sym 13 の &lt;a href=&#34;https://baldanders.info/blog/000451/&#34; target=&#34;_blank&#34; title=&#34;The Camellia Cipher in OpenPGP — Baldanders.info&#34;&gt;Camellia 暗号は日本製&lt;/a&gt;である。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc9580&#34; target=&#34;_blank&#34; title=&#34;RFC 9580 - OpenPGP&#34;&gt;RFC 9580&lt;/a&gt; では共通鍵暗号を使った暗号化について，従来からある CFB モード&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; に加えて認証付き暗号の暗号モードを使用できる。&lt;/p&gt;
&lt;h3&gt;認証付き暗号の暗号モード（AEAD Algorithms）&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc9580&#34; target=&#34;_blank&#34; title=&#34;RFC 9580 - OpenPGP&#34;&gt;RFC 9580&lt;/a&gt; で追加された認証付き暗号（Authenticated Encryption with Associated Data; AEAD）について利用可能な暗号モードは以下の通り。&lt;/p&gt;
&lt;div&gt;
&lt;figure&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;&lt;th&gt;ID&lt;/th&gt;&lt;th colspan=&#34;2&#34;&gt;暗号モード&lt;/th&gt;&lt;th&gt;参考文献&lt;/th&gt;&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;1&lt;/td&gt;
&lt;td class=&#34;nowrap&#34;&gt;EAX&lt;/td&gt;
&lt;td&gt;&lt;abbr class=&#34;emoji-chars&#34; title=&#34;チェック&#34;&gt;&amp;#x2705;&lt;/abbr&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://seclab.cs.ucdavis.edu/papers/eax.pdf&#34;&gt;EAX: A Conventional Authenticated-Encryption Mode&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;2&lt;/td&gt;
&lt;td class=&#34;nowrap&#34;&gt;OCB&lt;/td&gt;
&lt;td&gt;&lt;abbr class=&#34;emoji-chars&#34; title=&#34;チェック&#34;&gt;&amp;#x2705;&lt;/abbr&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc7253&#34;&gt;RFC 7253&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;3&lt;/td&gt;
&lt;td class=&#34;nowrap&#34;&gt;GCM&lt;/td&gt;
&lt;td&gt;&lt;abbr class=&#34;emoji-chars&#34; title=&#34;チェック&#34;&gt;&amp;#x2705;&lt;/abbr&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://nvlpubs.nist.gov/nistpubs/legacy/sp/nistspecialpublication800-38d.pdf&#34;&gt;SP800-38D&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right nowrap&#39;&gt;100-110&lt;/td&gt;
&lt;td colspan=&#34;3&#34;&gt;Private/Experimental algorithm&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;figcaption&gt;OpenPGP で使用可能な認証付き暗号アルゴリズム一覧&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc9580&#34; target=&#34;_blank&#34; title=&#34;RFC 9580 - OpenPGP&#34;&gt;RFC 9580&lt;/a&gt; では OCB が “MUST implement” となる。&lt;/p&gt;
&lt;h2&gt;公開鍵暗号・署名アルゴリズム（Public-Key Algorithms）&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc9580&#34; target=&#34;_blank&#34; title=&#34;RFC 9580 - OpenPGP&#34;&gt;OpenPGP&lt;/a&gt; で利用可能な公開鍵暗号・署名は以下の通り。&lt;/p&gt;
&lt;div&gt;
&lt;figure lang=&#34;en&#34;&gt;
&lt;/style&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;&lt;th&gt;ID&lt;/th&gt;&lt;th colspan=&#34;2&#34;&gt;アルゴリズム&lt;/th&gt;&lt;th&gt;参考文献&lt;/th&gt;&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;1&lt;/td&gt;
&lt;td class=&#34;nowrap&#34;&gt;RSA (Encrypt or Sign)&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td rowspan=&#34;3&#34;&gt;&lt;a href=&#34;https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-5.pdf&#34;&gt;FIPS PUB 186-5&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;2&lt;/td&gt;
&lt;td class=&#34;nowrap&#34;&gt;RSA Encrypt-Only&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;3&lt;/td&gt;
&lt;td class=&#34;nowrap&#34;&gt;RSA Sign-Only&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right nowrap&#39;&gt;4-15&lt;/td&gt;
&lt;td colspan=&#34;3&#34;&gt;(Reserved)&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;16&lt;/td&gt;
&lt;td class=&#34;nowrap&#34;&gt;Elgamal&lt;br&gt;(Encrypt-Only)&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://doi.org/10.1109/TIT.1985.1057074&#34;&gt;A public key cryptosystem and a signature scheme based on discrete logarithms&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;17&lt;/td&gt;
&lt;td class=&#34;nowrap&#34;&gt;DSA&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;hhttps://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf&#34;&gt;FIPS PUB 186-4&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;18&lt;/td&gt;
&lt;td class=&#34;nowrap&#34;&gt;ECDH public key algorithm&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://nvlpubs.nist.gov/nistpubs/SpecialPublications/nist.sp.800-56Ar3.pdf&#34;&gt;SP800-56A Revision 3&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;19&lt;/td&gt;
&lt;td class=&#34;nowrap&#34;&gt;ECDSA public key algorithm&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc6090&#34;&gt;RFC 6090&lt;/a&gt;, &lt;a href=&#34;https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-5.pdf&#34;&gt;FIPS PUB 186-5&lt;/a&gt;, &lt;a href=&#34;https://www.secg.org/sec1-v2.pdf&#34;&gt;SEC 1: Elliptic Curve Cryptography&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;20&lt;/td&gt;
&lt;td colspan=&#34;3&#34;&gt;(Reserved; formerly Elgamal Encrypt or Sign)&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;21&lt;/td&gt;
&lt;td colspan=&#34;3&#34;&gt;(Reserved for Diffie-Hellman (X9.42, as defined for IETF-S/MIME))&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;22&lt;/td&gt;
&lt;td class=&#34;nowrap&#34;&gt;EdDSALegacy (deprecated)&lt;/td&gt;
&lt;td&gt;&lt;abbr class=&#34;emoji-chars&#34; title=&#34;チェック&#34;&gt;&amp;#x2705;&lt;/abbr&gt;&lt;/td&gt;
&lt;td&gt;(Ed25519 を参照のこと)&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;23&lt;/td&gt;
&lt;td colspan=&#34;3&#34;&gt;(Reserved for AEDH)&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;24&lt;/td&gt;
&lt;td colspan=&#34;3&#34;&gt;(Reserved for AEDSA)&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;25&lt;/td&gt;
&lt;td class=&#34;nowrap&#34;&gt;X25519&lt;/td&gt;
&lt;td&gt;&lt;abbr class=&#34;emoji-chars&#34; title=&#34;チェック&#34;&gt;&amp;#x2705;&lt;/abbr&gt;&lt;/td&gt;
&lt;td rowspan=&#34;2&#34;&gt;&lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc7748&#34;&gt;RFC 7748&lt;/a&gt;, &lt;a href=&#34;https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-5.pdf&#34;&gt;FIPS PUB 186-5&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;26&lt;/td&gt;
&lt;td class=&#34;nowrap&#34;&gt;X448&lt;/td&gt;
&lt;td&gt;&lt;abbr class=&#34;emoji-chars&#34; title=&#34;チェック&#34;&gt;&amp;#x2705;&lt;/abbr&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;27&lt;/td&gt;
&lt;td class=&#34;nowrap&#34;&gt;Ed25519&lt;/td&gt;
&lt;td&gt;&lt;abbr class=&#34;emoji-chars&#34; title=&#34;チェック&#34;&gt;&amp;#x2705;&lt;/abbr&gt;&lt;/td&gt;
&lt;td rowspan=&#34;2&#34;&gt;&lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc8032&#34;&gt;RFC 8032&lt;/a&gt;, &lt;a href=&#34;https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-5.pdf&#34;&gt;FIPS PUB 186-5&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;28&lt;/td&gt;
&lt;td class=&#34;nowrap&#34;&gt;Ed448&lt;/td&gt;
&lt;td&gt;&lt;abbr class=&#34;emoji-chars&#34; title=&#34;チェック&#34;&gt;&amp;#x2705;&lt;/abbr&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right nowrap&#39;&gt;100-110&lt;/td&gt;
&lt;td colspan=&#34;3&#34;&gt;Private/Experimental algorithm&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;figcaption&gt;OpenPGP で使用可能な公開鍵暗号・署名アルゴリズム一覧&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;ID は &lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc9580&#34; target=&#34;_blank&#34; title=&#34;RFC 9580 - OpenPGP&#34;&gt;OpenPGP&lt;/a&gt; で定義されるもので “pub 1” のように表記する。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;RSA (pub 1,2,3), Elgamal (16), DSA (17) は非推奨 (deprecated) となった。更に暗号化専用および署名専用の RSA (pub 2,3) と Elgamal (16), DSA (17) の鍵は新たな生成が禁止になった（MUST NOT）。ただし &lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc4880&#34; target=&#34;_blank&#34; title=&#34;RFC 4880 - OpenPGP Message Format&#34;&gt;RFC 4880&lt;/a&gt; では Elgamal (16) と DSA (17) の実装が MUST なので，後方互換性を確保するのであれば，これらを実装する必要がある&lt;/li&gt;
&lt;li&gt;X25519 (pub 25) および Ed25519 (pub 27) の実装が MUST になった&lt;/li&gt;
&lt;li&gt;X448 (pub 26) および Ed448 (pub 28) の実装が MUST になった&lt;/li&gt;
&lt;li&gt;EdDSALegacy (pub 22) は &lt;a href=&#34;https://datatracker.ietf.org/doc/draft-ietf-openpgp-rfc4880bis/&#34; target=&#34;_blank&#34; title=&#34;draft-ietf-openpgp-rfc4880bis - OpenPGP Message Format&#34;&gt;RFC 4880bis&lt;/a&gt; の頃に定義されたが，最終的に Ed25519 (pub 27) に置き換えられた。おそらく v4 鍵および署名パケットに対応するために残されているが非推奨（deprecated）になっている。新たに EdDSA 鍵を生成するなら Ed25519 (pub 27) または Ed448 (pub 28) を選択すべき&lt;/li&gt;
&lt;li&gt;ElGamal Encrypt or Sign (pub 20) は，元々暗号化と署名の両方できるものだったが，脆弱性が見つかったため &lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc9580&#34; target=&#34;_blank&#34; title=&#34;RFC 9580 - OpenPGP&#34;&gt;OpenPGP&lt;/a&gt; では使用禁止になった&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;余談だが，現在対量子コンピュータ暗号を OpenPGP に組み込む&lt;a href=&#34;https://datatracker.ietf.org/doc/draft-ietf-openpgp-pqc/&#34; target=&#34;_blank&#34; title=&#34;Post-Quantum Cryptography in OpenPGP&#34;&gt;議論&lt;/a&gt;が行われている。
興味がある方はそちらもどうぞ。&lt;/p&gt;
&lt;h3&gt;楕円曲線（ECC Curves for OpenPGP）&lt;/h3&gt;
&lt;p&gt;前節で挙げた楕円曲線暗号（Elliptic Curve Cryptography; ECC）アルゴリズムに対して &lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc9580&#34; target=&#34;_blank&#34; title=&#34;RFC 9580 - OpenPGP&#34;&gt;RFC 9580&lt;/a&gt; で利用可能な楕円曲線（Elliptic Curve）は以下の通り。
なお「鍵長」の単位はオクテット（byte）である。&lt;/p&gt;
&lt;div&gt;
&lt;figure&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;&lt;th colspan=&#34;2&#34;&gt;楕円曲線名&lt;/th&gt;&lt;th&gt;適用アルゴリズム&lt;/th&gt;&lt;th&gt;鍵長&lt;/th&gt;&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td class=&#39;nowrap&#39;&gt;NIST P-256&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;ECDSA, ECDH&lt;/td&gt;
&lt;td class=&#39;right&#39;&gt;32&lt;/td&gt;
&lt;td rowspan=&#34;3&#34;&gt;&lt;a href=&#34;https://nvlpubs.nist.gov/nistpubs/SpecialPublications/nist.sp.800-56Ar3.pdf&#34;&gt;SP800-56A Revision 3&lt;/a&gt;, &lt;a href=&#34;https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-5.pdf&#34;&gt;FIPS PUB 186-5&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;nowrap&#39;&gt;NIST P-384&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;ECDSA, ECDH&lt;/td&gt;
&lt;td class=&#39;right&#39;&gt;48&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;nowrap&#39;&gt;NIST P-521&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;ECDSA, ECDH&lt;/td&gt;
&lt;td class=&#39;right&#39;&gt;66&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;nowrap&#39;&gt;brainpoolP256r1&lt;/td&gt;
&lt;td&gt;&lt;abbr class=&#34;emoji-chars&#34; title=&#34;チェック&#34;&gt;&amp;#x2705;&lt;/abbr&gt;&lt;/td&gt;
&lt;td&gt;ECDSA, ECDH&lt;/td&gt;
&lt;td class=&#39;right&#39;&gt;32&lt;/td&gt;
&lt;td rowspan=&#34;3&#34;&gt;&lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc5639&#34;&gt;RFC 5639&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;nowrap&#39;&gt;brainpoolP384r1&lt;/td&gt;
&lt;td&gt;&lt;abbr class=&#34;emoji-chars&#34; title=&#34;チェック&#34;&gt;&amp;#x2705;&lt;/abbr&gt;&lt;/td&gt;
&lt;td&gt;ECDSA, ECDH&lt;/td&gt;
&lt;td class=&#39;right&#39;&gt;48&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;nowrap&#39;&gt;brainpoolP512r1&lt;/td&gt;
&lt;td&gt;&lt;abbr class=&#34;emoji-chars&#34; title=&#34;チェック&#34;&gt;&amp;#x2705;&lt;/abbr&gt;&lt;/td&gt;
&lt;td&gt;ECDSA, ECDH&lt;/td&gt;
&lt;td class=&#39;right&#39;&gt;64&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;nowrap&#39;&gt;Ed25519Legacy&lt;/td&gt;
&lt;td&gt;&lt;abbr class=&#34;emoji-chars&#34; title=&#34;チェック&#34;&gt;&amp;#x2705;&lt;/abbr&gt;&lt;/td&gt;
&lt;td&gt;EdDSALegacy (EdDSA)&lt;/td&gt;
&lt;td class=&#39;right&#39;&gt;32&lt;/td&gt;
&lt;td rowspan=&#34;3&#34;&gt;&lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc8032&#34;&gt;RFC8032&lt;/a&gt;, &lt;a href=&#34;https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-5.pdf&#34;&gt;FIPS PUB 186-5&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;nowrap&#39;&gt;Ed25519&lt;/td&gt;
&lt;td&gt;&lt;abbr class=&#34;emoji-chars&#34; title=&#34;チェック&#34;&gt;&amp;#x2705;&lt;/abbr&gt;&lt;/td&gt;
&lt;td&gt;Ed25519 (EdDSA)&lt;/td&gt;
&lt;td class=&#39;right&#39;&gt;32&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;nowrap&#39;&gt;Ed448&lt;/td&gt;
&lt;td&gt;&lt;abbr class=&#34;emoji-chars&#34; title=&#34;チェック&#34;&gt;&amp;#x2705;&lt;/abbr&gt;&lt;/td&gt;
&lt;td&gt;Ed448 (EdDSA)&lt;/td&gt;
&lt;td class=&#39;right&#39;&gt;57&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;nowrap&#39;&gt;Curve25519Legacy&lt;/td&gt;
&lt;td&gt;&lt;abbr class=&#34;emoji-chars&#34; title=&#34;チェック&#34;&gt;&amp;#x2705;&lt;/abbr&gt;&lt;/td&gt;
&lt;td&gt;ECDH&lt;/td&gt;
&lt;td class=&#39;right&#39;&gt;32&lt;/td&gt;
&lt;td rowspan=&#34;3&#34;&gt;&lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc7748&#34;&gt;RFC7748&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;nowrap&#39;&gt;X25519&lt;/td&gt;
&lt;td&gt;&lt;abbr class=&#34;emoji-chars&#34; title=&#34;チェック&#34;&gt;&amp;#x2705;&lt;/abbr&gt;&lt;/td&gt;
&lt;td&gt;X25519 (ECDH)&lt;/td&gt;
&lt;td class=&#39;right&#39;&gt;32&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;nowrap&#39;&gt;X448&lt;/td&gt;
&lt;td&gt;&lt;abbr class=&#34;emoji-chars&#34; title=&#34;チェック&#34;&gt;&amp;#x2705;&lt;/abbr&gt;&lt;/td&gt;
&lt;td&gt;X448 (ECDH)&lt;/td&gt;
&lt;td class=&#39;right&#39;&gt;56&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;figcaption&gt;OpenPGP で使用可能な楕円曲線一覧&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Ed25519Legacy と Ed25519 は同じ楕円曲線で Ed448 と併せて &lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc8032&#34; target=&#34;_blank&#34; title=&#34;RFC 8032 - Edwards-Curve Digital Signature Algorithm (EdDSA)&#34;&gt;RFC 8032&lt;/a&gt; EdDSA アルゴリズムで用いる（ECDSA では使えない）&lt;/li&gt;
&lt;li&gt;Curve25519Legacy と X25519 は同じ楕円曲線で X448 と併せて &lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc7748&#34; target=&#34;_blank&#34; title=&#34;RFC 7748 - Elliptic Curves for Security&#34;&gt;RFC 7748&lt;/a&gt; で規定されている。これらの楕円曲線を使った ECDH 鍵は同じサイズの EdDSA 鍵と組み合わせて使う&lt;/li&gt;
&lt;li&gt;Ed25519, Ed448, X25519, X448 以外の楕円曲線は Curve OID で管理される。 Ed25519, Ed448, X25519, X448 については同名のアルゴリズム ID と紐付いているため Curve OID による管理外となる&lt;/li&gt;
&lt;li&gt;Ed25519Legacy は同名のアルゴリズム ID で用いる。また v4 鍵および署名パケットでのみ使用可能。 v6 パケットの場合は Ed25519 を用いる&lt;/li&gt;
&lt;li&gt;Curve25519Legacy は ECDH アルゴリズムかつ v4 鍵および署名パケットでのみ使用可能。 v6 パケットの場合は X25519 を用いる&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;具体的な実装例については「&lt;a href=&#34;https://text.baldanders.info/openpgp/using-ecc-with-gnupg/&#34; target=&#34;_blank&#34;&gt;そろそろ GnuPG でも ECC を標準で使うのがいいんじゃないかな&lt;/a&gt;」で紹介している&lt;/p&gt;
&lt;h3&gt;ECDH 鍵導出のパラメータ（ECDH Parameters）&lt;/h3&gt;
&lt;p&gt;ECDH (pub 18) では鍵導出のためのハッシュアルゴリズムと鍵カプセル化のための共通鍵暗号アルゴリズムをパラメータとして持つ。
各アルゴリズムの組み合わせは以下の通り。&lt;/p&gt;
&lt;figure style=&#39;margin:0 auto;text-align:center;&#39;&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th style=&#34;text-align: left&#34;&gt;Curve&lt;/th&gt;
          &lt;th style=&#34;text-align: left&#34;&gt;Hash Algorithm&lt;/th&gt;
          &lt;th style=&#34;text-align: left&#34;&gt;symmetric Algorithm&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;NIST P-256&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;SHA2-256&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;AES-128&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;NIST P-384&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;SHA2-384&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;AES-192&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;NIST P-521&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;SHA2-512&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;AES-256&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;brainpoolP256r1&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;SHA2-256&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;AES-128&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;brainpoolP384r1&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;SHA2-384&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;AES-192&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;brainpoolP512r1&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;SHA2-512&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;AES-256&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;Curve25519Legacy&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;SHA2-256&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;AES-128&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;figcaption&gt;&lt;div&gt;ECDH KDF/KEK パラメータ&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;ul&gt;
&lt;li&gt;v6 鍵パケットの場合，上のアルゴリズムの組み合わせを使用しなければならない（MUST）&lt;/li&gt;
&lt;li&gt;v4 鍵パケットの場合，上のアルゴリズムの組み合わせを使用すべき（SHOULD）&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;一方向ハッシュ関数アルゴリズム（Hash Algorithms）&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc9580&#34; target=&#34;_blank&#34; title=&#34;RFC 9580 - OpenPGP&#34;&gt;OpenPGP&lt;/a&gt; で利用可能なハッシュ関数は以下の通り。
&lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc9580&#34; target=&#34;_blank&#34; title=&#34;RFC 9580 - OpenPGP&#34;&gt;RFC 9580&lt;/a&gt; で新たに追加されたアルゴリズムはない。&lt;/p&gt;
&lt;div&gt;
&lt;figure lang=&#34;en&#34;&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;&lt;th&gt;ID&lt;/th&gt;&lt;th&gt;アルゴリズム&lt;/th&gt;&lt;th&gt;参考文献&lt;/th&gt;&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;1&lt;/td&gt;
&lt;td class=&#34;nowrap&#34;&gt;MD5&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc1321&#34;&gt;RFC1321&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;2&lt;/td&gt;
&lt;td class=&#34;nowrap&#34;&gt;SHA-1&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://nvlpubs.nist.gov/nistpubs/fips/nist.fips.180-4.pdf&#34;&gt;FIPS PUB 180-4&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;3&lt;/td&gt;
&lt;td class=&#34;nowrap&#34;&gt;RIPE-MD/160&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;http://homes.esat.kuleuven.be/~bosselae/ripemd160.html&#34;&gt;The hash function RIPEMD-160&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;4-7&lt;/td&gt;
&lt;td colspan=&#34;2&#34;&gt;(Reserved)&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;8&lt;/td&gt;
&lt;td class=&#34;nowrap&#34;&gt;SHA2-256&lt;/td&gt;
&lt;td rowspan=&#34;4&#34;&gt;&lt;a href=&#34;https://nvlpubs.nist.gov/nistpubs/fips/nist.fips.180-4.pdf&#34;&gt;FIPS PUB 180-4&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;9&lt;/td&gt;
&lt;td class=&#34;nowrap&#34;&gt;SHA2-384&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;10&lt;/td&gt;
&lt;td class=&#34;nowrap&#34;&gt;SHA2-512&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;11&lt;/td&gt;
&lt;td class=&#34;nowrap&#34;&gt;SHA2-224&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;12&lt;/td&gt;
&lt;td class=&#34;nowrap&#34;&gt;SHA3-256&lt;/td&gt;
&lt;td rowspan=&#34;3&#34;&gt;&lt;a href=&#34;https://nvlpubs.nist.gov/nistpubs/fips/nist.fips.202.pdf&#34;&gt;FIPS PUB 202&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;13&lt;/td&gt;
&lt;td&gt;(Reserved)&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;14&lt;/td&gt;
&lt;td class=&#34;nowrap&#34;&gt;SHA3-512&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;100-110&lt;/td&gt;
&lt;td colspan=&#34;2&#34;&gt;Private/Experimental algorithm&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;figcaption&gt;OpenPGP で使用可能な一方向ハッシュ関数一覧&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;ID は &lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc9580&#34; target=&#34;_blank&#34; title=&#34;RFC 9580 - OpenPGP&#34;&gt;OpenPGP&lt;/a&gt; で定義されるもので “hash 1” のように表記する。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SHA2-256 (hash 8) が “MUST implement” となった。また SHA2-384 (hash 9), SHA2-512 (hash 10) の実装が推奨される（SHOULD）&lt;/li&gt;
&lt;li&gt;v4 鍵および署名パケットのの鍵指紋や MDC (Modification Detection Code) を除き SHA-1 (hash 2) を必要とするメッセージを作成してはならない（SHOULD NOT）&lt;/li&gt;
&lt;li&gt;MD5 (hash 1), SHA-1 (hash 2), RIPE-MD/160 (hash 3) を用いて署名を作成してはならない（MUST NOT）&lt;/li&gt;
&lt;li&gt;ECDH KDF および S2K KDF のハッシュ関数として MD5 (hash 1), SHA-1 (hash 2), RIPE-MD/160 (hash 3) を用いてパケットを生成してはならない（MUST NOT）&lt;/li&gt;
&lt;li&gt;v6 以降のパケットで S2K KDF のハッシュ関数として MD5 (hash 1), SHA-1 (hash 2), RIPE-MD/160 (hash 3) を用いて秘密鍵を復号してはならない（MUST NOT）&lt;/li&gt;
&lt;li&gt;MD5 (hash 1), SHA-1 (hash 2), RIPE-MD/160 (hash 3) に依存する最近の署名を検証してはならない（MUST NOT）&lt;/li&gt;
&lt;li&gt;MD5 (hash 1), SHA-1 (hash 2), RIPE-MD/160 (hash 3) に依存する古い署名を検証してはならない（SHOULD NOT）
&lt;ul&gt;
&lt;li&gt;署名の作成日が使用されたアルゴリズムの既知の脆弱性が発見された日より前で，メッセージが常に安全な管理下にあったと確信できる場合は除く&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;鍵指紋作成で使われるハッシュ関数アルゴリズム（Fingerprints）&lt;/h3&gt;
&lt;p&gt;鍵指紋作成で使われるハッシュ関数アルゴリズムは以下の通り。&lt;/p&gt;
&lt;figure style=&#39;margin:0 auto;text-align:center;&#39;&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;Key Version&lt;/th&gt;
          &lt;th style=&#34;text-align: left&#34;&gt;Fingerprint Algorithm&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;v3&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;MD5&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;v4&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;SHA1&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;v6 &lt;abbr class=&#34;emoji-chars&#34; title=&#34;チェック&#34;&gt;✅&lt;/abbr&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;SHA256&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;figcaption&gt;&lt;div&gt;鍵指紋作成で使われるハッシュ関数アルゴリズム&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2&gt;その他のアルゴリズム&lt;/h2&gt;
&lt;h3&gt;S2K (String-to-Key)&lt;/h3&gt;
&lt;p&gt;S2K はパスフレーズからセッション鍵を生成するためのハッシュ化の手順である。&lt;/p&gt;
&lt;div&gt;
&lt;figure&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;&lt;th&gt;ID&lt;/th&gt;&lt;th colspan=&#34;2&#34;&gt;S2K タイプ&lt;/th&gt;&lt;th&gt;参考文献&lt;/th&gt;&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;0&lt;/td&gt;
&lt;td&gt;Simple S2K&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;1&lt;/td&gt;
&lt;td&gt;Salted S2K&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;2&lt;/td&gt;
&lt;td&gt;Reserved value&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;3&lt;/td&gt;
&lt;td&gt;Iterated and Salted S2K&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;4&lt;/td&gt;
&lt;td&gt;Argon2&lt;/td&gt;
&lt;td&gt;&lt;abbr class=&#34;emoji-chars&#34; title=&#34;チェック&#34;&gt;&amp;#x2705;&lt;/abbr&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc9106&#34;&gt;RFC 9106&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;100-110&lt;/td&gt;
&lt;td&gt;Private/Experimental S2K&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;figcaption&gt;OpenPGP で使用可能な S2K アルゴリズム一覧&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;ID は &lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc9580&#34; target=&#34;_blank&#34; title=&#34;RFC 9580 - OpenPGP&#34;&gt;OpenPGP&lt;/a&gt; で定義されるもので “s2k 1” のように表記する。
Simple S2K (s2k 0) と Reserved value (s2k 2) は下位互換のために残されているもので，新たに暗号データや電子署名を作成する際に使用すべきではない。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc9580&#34; target=&#34;_blank&#34; title=&#34;RFC 9580 - OpenPGP&#34;&gt;OpenPGP&lt;/a&gt; では，パスフレーズ自体はいかなる形（ハッシュ値を含む）でも保存しない。
このため，パスフレーズを紛失してしまった場合は復元できない&lt;sup id=&#34;fnref:3&#34;&gt;&lt;a href=&#34;#fn:3&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;3&lt;/a&gt;&lt;/sup&gt;。&lt;/p&gt;
&lt;h3&gt;データ圧縮（Compression Algorithms）&lt;/h3&gt;
&lt;p&gt;暗号化メッセージや電子署名を圧縮するためのアルゴリズムである。
&lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc9580&#34; target=&#34;_blank&#34; title=&#34;RFC 9580 - OpenPGP&#34;&gt;RFC 9580&lt;/a&gt; で新たに追加されたアルゴリズムはない。&lt;/p&gt;
&lt;div&gt;
&lt;figure&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;&lt;th&gt;ID&lt;/th&gt;&lt;th&gt;アルゴリズム&lt;/th&gt;&lt;th&gt;参考文献&lt;/th&gt;&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;0&lt;/td&gt;
&lt;td class=&#34;nowrap&#34;&gt;Uncompressed&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;1&lt;/td&gt;
&lt;td class=&#34;nowrap&#34;&gt;ZIP&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc1951&#34;&gt;RFC1951&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;2&lt;/td&gt;
&lt;td class=&#34;nowrap&#34;&gt;ZLIB&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc1950&#34;&gt;RFC1950&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;3&lt;/td&gt;
&lt;td class=&#34;nowrap&#34;&gt;BZip2&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;http://www.bzip.org/&#34;&gt;bzip2&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;100-110&lt;/td&gt;
&lt;td colspan=&#34;2&#34;&gt;Private/Experimental algorithm&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;figcaption&gt;OpenPGP で使用可能なデータ圧縮アルゴリズム一覧&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;ID は &lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc9580&#34; target=&#34;_blank&#34; title=&#34;RFC 9580 - OpenPGP&#34;&gt;OpenPGP&lt;/a&gt; で定義されるもので “comp 1” のように表記する。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;非圧縮（comp 0）は “MUST implement” である&lt;/li&gt;
&lt;li&gt;ZLIB (comp 2) は “SHOULD implement” となっていて， ZIP (comp 1) については “SHOULD be able to decompress using” と復号時の後方互換性のみ確保されていればいいようだ&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;乱数生成器（Random Number Generator）&lt;/h3&gt;
&lt;p&gt;基本的に &lt;code&gt;getrandom()&lt;/code&gt; システムコールのような OS が標準で提供している暗号学的に安全な疑似乱数生成器（CSPRNG）を使うべき，とある。
もしそれらが使えない（信用できない）場合でも，新しいものを自作するのではなく &lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc4086&#34; target=&#34;_blank&#34; title=&#34;RFC 4086 - Randomness Requirements for Security&#34;&gt;RFC 4086&lt;/a&gt; を参照して実装すべきと書かれている。&lt;/p&gt;
&lt;h2&gt;ブックマーク&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://text.baldanders.info/remark/2020/06/eddsa/&#34; target=&#34;_blank&#34;&gt;Edwards-curve Digital Signature Algorithm&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://text.baldanders.info/remark/2023/02/nist-fips-186-5/&#34; target=&#34;_blank&#34;&gt;NIST FIPS 186-5 および SP 800-186 正式版がリリースされた&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;参考図書&lt;/h2&gt;
&lt;div class=&#34;hreview&#34;&gt;
  &lt;div class=&#34;photo&#34;&gt;&lt;a href=&#34;https://www.amazon.co.jp/dp/4314009071?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;&lt;img src=&#34;https://m.media-amazon.com/images/I/51ZRZ62WKCL._SL160_.jpg&#34; width=&#34;108&#34; alt=&#34;photo&#34;&gt;&lt;/a&gt;&lt;/div&gt;
  &lt;dl&gt;
    &lt;dt class=&#34;item&#34;&gt;&lt;a class=&#34;fn url&#34; href=&#34;https://www.amazon.co.jp/dp/4314009071?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;暗号化 プライバシーを救った反乱者たち&lt;/a&gt;&lt;/dt&gt;
    &lt;dd&gt;スティーブン・レビー (著), 斉藤 隆央 (翻訳)&lt;/dd&gt;
    &lt;dd&gt;紀伊國屋書店 2002-02-16&lt;/dd&gt;
    &lt;dd&gt;単行本&lt;/dd&gt;
    &lt;dd&gt;4314009071 (ASIN), 9784314009072 (EAN), 4314009071 (ISBN)&lt;/dd&gt;
    &lt;dd&gt;評価&lt;abbr class=&#34;rating fa-sm&#34; title=&#34;5&#34;&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&lt;/abbr&gt;&lt;/dd&gt;
  &lt;/dl&gt;
  &lt;p class=&#34;description&#34;&gt;20世紀末，暗号技術の世界で何があったのか。知りたかったらこちらを読むべし！&lt;/p&gt;
  &lt;p class=&#34;powered-by&#34;&gt;reviewed by &lt;a href=&#39;#maker&#39; class=&#39;reviewer&#39;&gt;Spiegel&lt;/a&gt; on &lt;abbr class=&#34;dtreviewed&#34; title=&#34;2015-03-09&#34;&gt;2015-03-09&lt;/abbr&gt; (powered by &lt;a href=&#34;https://affiliate.amazon.co.jp/assoc_credentials/home&#34;&gt;PA-APIv5&lt;/a&gt;)&lt;/p&gt;
&lt;/div&gt; &lt;!-- 暗号化 プライバシーを救った反乱者たち --&gt;
&lt;div class=&#34;hreview&#34;&gt;
  &lt;div class=&#34;photo&#34;&gt;&lt;a href=&#34;https://www.amazon.co.jp/dp/4900900028?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;&lt;img src=&#34;https://m.media-amazon.com/images/I/5132396FFQL._SL160_.jpg&#34; width=&#34;124&#34; alt=&#34;photo&#34;&gt;&lt;/a&gt;&lt;/div&gt;
  &lt;dl&gt;
    &lt;dt class=&#34;item&#34;&gt;&lt;a class=&#34;fn url&#34; href=&#34;https://www.amazon.co.jp/dp/4900900028?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;PGP―暗号メールと電子署名&lt;/a&gt;&lt;/dt&gt;
    &lt;dd&gt;シムソン ガーフィンケル (著), Garfinkel,Simson (原著), ユニテック (翻訳)&lt;/dd&gt;
    &lt;dd&gt;オライリー・ジャパン 1996-04-01&lt;/dd&gt;
    &lt;dd&gt;単行本&lt;/dd&gt;
    &lt;dd&gt;4900900028 (ASIN), 9784900900028 (EAN), 4900900028 (ISBN)&lt;/dd&gt;
    &lt;dd&gt;評価&lt;abbr class=&#34;rating fa-sm&#34; title=&#34;3&#34;&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;far fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;far fa-star&#34;&gt;&lt;/i&gt;&lt;/abbr&gt;&lt;/dd&gt;
  &lt;/dl&gt;
  &lt;p class=&#34;description&#34;&gt;良書なのだが，残念ながら内容が古すぎた。 PGP の歴史資料として読むならいいかもしれない。&lt;/p&gt;
  &lt;p class=&#34;powered-by&#34;&gt;reviewed by &lt;a href=&#39;#maker&#39; class=&#39;reviewer&#39;&gt;Spiegel&lt;/a&gt; on &lt;abbr class=&#34;dtreviewed&#34; title=&#34;2014-10-16&#34;&gt;2014-10-16&lt;/abbr&gt; (powered by &lt;a href=&#34;https://affiliate.amazon.co.jp/assoc_credentials/home&#34;&gt;PA-APIv5&lt;/a&gt;)&lt;/p&gt;
&lt;/div&gt; &lt;!-- PGP―暗号メールと電子署名 --&gt;
&lt;div class=&#34;hreview&#34;&gt;
  &lt;div class=&#34;photo&#34;&gt;&lt;a href=&#34;https://www.amazon.co.jp/dp/B015643CPE?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;&lt;img src=&#34;https://m.media-amazon.com/images/I/51t6yHHVwEL._SL160_.jpg&#34; width=&#34;113&#34; alt=&#34;photo&#34;&gt;&lt;/a&gt;&lt;/div&gt;
  &lt;dl&gt;
    &lt;dt class=&#34;item&#34;&gt;&lt;a class=&#34;fn url&#34; href=&#34;https://www.amazon.co.jp/dp/B015643CPE?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;暗号技術入門 第3版　秘密の国のアリス&lt;/a&gt;&lt;/dt&gt;
    &lt;dd&gt;結城 浩 (著)&lt;/dd&gt;
    &lt;dd&gt;SBクリエイティブ 2015-08-25 (Release 2015-09-17)&lt;/dd&gt;
    &lt;dd&gt;Kindle版&lt;/dd&gt;
    &lt;dd&gt;B015643CPE (ASIN)&lt;/dd&gt;
    &lt;dd&gt;評価&lt;abbr class=&#34;rating fa-sm&#34; title=&#34;5&#34;&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&lt;/abbr&gt;&lt;/dd&gt;
  &lt;/dl&gt;
  &lt;p class=&#34;description&#34;&gt;SHA-3 や Bitcoin/Blockchain など新しい知見や技術要素を大幅追加。暗号技術を使うだけならこれ1冊でとりあえず無問題。&lt;/p&gt;
  &lt;p class=&#34;powered-by&#34;&gt;reviewed by &lt;a href=&#39;#maker&#39; class=&#39;reviewer&#39;&gt;Spiegel&lt;/a&gt; on &lt;abbr class=&#34;dtreviewed&#34; title=&#34;2015-09-20&#34;&gt;2015-09-20&lt;/abbr&gt; (powered by &lt;a href=&#34;https://affiliate.amazon.co.jp/assoc_credentials/home&#34;&gt;PA-APIv5&lt;/a&gt;)&lt;/p&gt;
&lt;/div&gt; &lt;!-- 暗号技術入門 第3版 --&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;厳密には CFB モードの変形である。&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:2&#34;&gt;
&lt;p&gt;pub 20 が禁止になった経緯については “&lt;a href=&#34;https://lists.gnupg.org/pipermail/gnupg-users/2003-November/020772.html&#34; target=&#34;_blank&#34;&gt;GnuPG&amp;rsquo;s ElGamal signing keys compromised&lt;/a&gt;” を参照のこと。&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:3&#34;&gt;
&lt;p&gt;ただし &lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc9580&#34; target=&#34;_blank&#34; title=&#34;RFC 9580 - OpenPGP&#34;&gt;OpenPGP&lt;/a&gt; では試行回数によるロックアウトは定義されないため，無限にパスフレーズ解読を試みることができる。&amp;#160;&lt;a href=&#34;#fnref:3&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</content>
	</entry><entry>
		<title>GopenPGP</title>
		<category term="openpgp" label="openpgp" scheme="https://text.baldanders.info/openpgp/" />
		<link rel="alternate" type="text/html" href="https://text.baldanders.info/openpgp/gopenpgp/" />
		<id>tag:text.Baldanders.info,2022-11-27:/openpgp/gopenpgp/</id>
		<published>2022-11-27T17:06:11+09:00</published>
		<updated>2024-05-10T22:02:32+00:00</updated>
		<summary>GopenPGP は OpenPGP の 暗号化・復号・署名およびその検証 といった処理を行うための Go パッケージ</summary>
		<author>
			<name>Spiegel</name>
			<uri>https://baldanders.info/profile/</uri>
		</author>
		
	<link rel="cc:license" type="application/rdf+xml" href="https://creativecommons.org/licenses/by-sa/4.0/rdf" />


		<content type="html" xml:lang="ja-jp" xml:base="https://text.baldanders.info/">&lt;p&gt;本当は色々と試してから記事にしたかったのだが，しばらく時間が取れそうもないので，今回は簡単な紹介のみで。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://gopenpgp.org/&#34; target=&#34;_blank&#34;&gt;GopenPGP | An easy-to-use OpenPGP wrapper library written in golang&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&#34;https://gopenpgp.org/&#34; target=&#34;_blank&#34; title=&#34;GopenPGP | An easy-to-use OpenPGP wrapper library written in golang&#34;&gt;GopenPGP&lt;/a&gt; は &lt;a href=&#34;http://openpgp.org/&#34; target=&#34;_blank&#34;&gt;OpenPGP&lt;/a&gt; の 暗号化・復号・署名およびその検証 といった処理を行うための &lt;a href=&#34;https://go.dev/&#34; target=&#34;_blank&#34;&gt;Go&lt;/a&gt; パッケージで，大きく2つのレイヤに分かれている。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;OpenPGP 暗号化ライブラリ（&lt;a href=&#34;https://pkg.go.dev/golang.org/x/crypto/openpgp&#34; target=&#34;_blank&#34; title=&#34;openpgp package - golang.org/x/crypto/openpgp - Go Packages&#34;&gt;&lt;code&gt;golang.org/x/crypto/openpgp&lt;/code&gt;&lt;/a&gt; からの fork）
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/ProtonMail/go-crypto&#34; target=&#34;_blank&#34; title=&#34;ProtonMail/go-crypto: Fork of go/x/crypto, providing an up-to-date OpenPGP implementation&#34;&gt;&lt;code&gt;github.com/ProtonMail/go-crypto&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;暗号化等の処理を簡単に行うためのラッパー
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/ProtonMail/gopenpgp&#34; target=&#34;_blank&#34; title=&#34;ProtonMail/gopenpgp: A high-level OpenPGP library&#34;&gt;&lt;code&gt;github.com/ProtonMail/gopenpgp&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;一応，経緯を紹介すると，2021年に &lt;a href=&#34;https://go.dev/&#34; target=&#34;_blank&#34;&gt;Go&lt;/a&gt; 側が &lt;a href=&#34;https://pkg.go.dev/golang.org/x/crypto/openpgp&#34; target=&#34;_blank&#34; title=&#34;openpgp package - golang.org/x/crypto/openpgp - Go Packages&#34;&gt;&lt;code&gt;golang.org/x/crypto/openpgp&lt;/code&gt;&lt;/a&gt; のメンテナンスを止めて非推奨（deprecated）にすると言いやがりまして。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/golang/go/issues/44226&#34; target=&#34;_blank&#34;&gt;x/crypto/openpgp: mark as frozen and deprecated · Issue #44226 · golang/go&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;まぁ，&lt;a href=&#34;https://text.baldanders.info/remark/2018/04/handling-privacy/&#34; target=&#34;_blank&#34; title=&#34;誰がプライバシーを支配するのか&#34;&gt;個人のプライバシーに敵対的な企業&lt;/a&gt;がホストする言語ですから（笑）&lt;/p&gt;
&lt;p&gt;その後 &lt;a href=&#34;https://proton.me/mail&#34; target=&#34;_blank&#34; title=&#34;Proton Mail — Get a private, secure, and encrypted email&#34;&gt;Proton Mail&lt;/a&gt; が &lt;a href=&#34;https://pkg.go.dev/golang.org/x/crypto/openpgp&#34; target=&#34;_blank&#34; title=&#34;openpgp package - golang.org/x/crypto/openpgp - Go Packages&#34;&gt;&lt;code&gt;golang.org/x/crypto/openpgp&lt;/code&gt;&lt;/a&gt; を fork したリポジトリを公開してメンテナンスを始めた。
これが &lt;a href=&#34;https://github.com/ProtonMail/go-crypto&#34; target=&#34;_blank&#34; title=&#34;ProtonMail/go-crypto: Fork of go/x/crypto, providing an up-to-date OpenPGP implementation&#34;&gt;&lt;code&gt;github.com/ProtonMail/go-crypto&lt;/code&gt;&lt;/a&gt; パッケージ。
この頃のことは私も記事を書いている。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://text.baldanders.info/release/2021/04/gpgpdump-v0_12_2-is-released/&#34; target=&#34;_blank&#34;&gt;gpgpdump v0.12.2 をリリースした&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;当時は緊急避難的な措置かと思っていたが， &lt;a href=&#34;https://proton.me/mail&#34; target=&#34;_blank&#34; title=&#34;Proton Mail — Get a private, secure, and encrypted email&#34;&gt;Proton Mail&lt;/a&gt; 側は本格的に &lt;a href=&#34;https://go.dev/&#34; target=&#34;_blank&#34;&gt;Go&lt;/a&gt; で &lt;a href=&#34;http://openpgp.org/&#34; target=&#34;_blank&#34;&gt;OpenPGP&lt;/a&gt; 暗号化ライブラリを構築しようと考えたようだ。
これが &lt;a href=&#34;https://github.com/ProtonMail/gopenpgp&#34; target=&#34;_blank&#34; title=&#34;ProtonMail/gopenpgp: A high-level OpenPGP library&#34;&gt;&lt;code&gt;github.com/ProtonMail/gopenpgp&lt;/code&gt;&lt;/a&gt; にあたると思われる。
また &lt;a href=&#34;https://github.com/ProtonMail/go-crypto&#34; target=&#34;_blank&#34; title=&#34;ProtonMail/go-crypto: Fork of go/x/crypto, providing an up-to-date OpenPGP implementation&#34;&gt;&lt;code&gt;github.com/ProtonMail/go-crypto&lt;/code&gt;&lt;/a&gt; パッケージについても，現行の &lt;a href=&#34;https://tools.ietf.org/html/rfc4880&#34; target=&#34;_blank&#34; title=&#34;RFC 4880 - OpenPGP Message Format&#34;&gt;RFC 4880&lt;/a&gt; だけでなく，次期 &lt;a href=&#34;http://openpgp.org/&#34; target=&#34;_blank&#34;&gt;OpenPGP&lt;/a&gt; (&lt;a href=&#34;https://datatracker.ietf.org/doc/draft-ietf-openpgp-rfc4880bis/&#34; target=&#34;_blank&#34; title=&#34;draft-ietf-openpgp-rfc4880bis - OpenPGP Message Format&#34;&gt;RFC 4880bis&lt;/a&gt;) でサポート予定の AEAD の EAX モードや OCB モードもサポートしているようで，これを見ても &lt;a href=&#34;https://proton.me/mail&#34; target=&#34;_blank&#34; title=&#34;Proton Mail — Get a private, secure, and encrypted email&#34;&gt;Proton Mail&lt;/a&gt; 側の本気度が伺えるというものである。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://openpgp.org/&#34; target=&#34;_blank&#34;&gt;OpenPGP&lt;/a&gt; についてはリファレンス実装としての &lt;a href=&#34;https://gnupg.org/&#34; target=&#34;_blank&#34; title=&#34;The GNU Privacy Guard&#34;&gt;GnuPG&lt;/a&gt; が有名だが，他にも JavaScript や Rust 等による実装が存在する。
こうした中でようやく &lt;a href=&#34;https://go.dev/&#34; target=&#34;_blank&#34;&gt;Go&lt;/a&gt; でもまともな実装が出てきたというわけだ。&lt;/p&gt;
&lt;p&gt;今年のうちは無理かもしれないが来年（2023年）に入ったら，ちょっと真面目に &lt;a href=&#34;https://pkg.go.dev/golang.org/x/crypto/openpgp&#34; target=&#34;_blank&#34; title=&#34;openpgp package - golang.org/x/crypto/openpgp - Go Packages&#34;&gt;&lt;code&gt;golang.org/x/crypto/openpgp&lt;/code&gt;&lt;/a&gt; パッケージを弄ってみようかな，と考える所存であります。
ちゃんと時間が取れるといいなぁ。&lt;/p&gt;
&lt;h2&gt;ブックマーク&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://qiita.com/KEINOS/items/705f67cf47262f31dd19&#34; target=&#34;_blank&#34;&gt;【Golang】Go で OpenPGP のペア鍵を生成する【GopenPGP】 - Qiita&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-07&#34; target=&#34;_blank&#34;&gt;draft-ietf-openpgp-crypto-refresh-07&lt;/a&gt; : 次期 &lt;a href=&#34;http://openpgp.org/&#34; target=&#34;_blank&#34;&gt;OpenPGP&lt;/a&gt; ドラフト 2022-10-23 版&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.theregister.com/2019/07/15/go_google_logo/&#34; target=&#34;_blank&#34;&gt;You can&amp;rsquo;t say Go without Google – specifically, our little logo, Chocolate Factory insists • The Register&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;参考図書&lt;/h2&gt;
&lt;div class=&#34;hreview&#34;&gt;
  &lt;div class=&#34;photo&#34;&gt;&lt;a href=&#34;https://www.amazon.co.jp/dp/4314009071?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;&lt;img src=&#34;https://m.media-amazon.com/images/I/51ZRZ62WKCL._SL160_.jpg&#34; width=&#34;108&#34; alt=&#34;photo&#34;&gt;&lt;/a&gt;&lt;/div&gt;
  &lt;dl&gt;
    &lt;dt class=&#34;item&#34;&gt;&lt;a class=&#34;fn url&#34; href=&#34;https://www.amazon.co.jp/dp/4314009071?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;暗号化 プライバシーを救った反乱者たち&lt;/a&gt;&lt;/dt&gt;
    &lt;dd&gt;スティーブン・レビー (著), 斉藤 隆央 (翻訳)&lt;/dd&gt;
    &lt;dd&gt;紀伊國屋書店 2002-02-16&lt;/dd&gt;
    &lt;dd&gt;単行本&lt;/dd&gt;
    &lt;dd&gt;4314009071 (ASIN), 9784314009072 (EAN), 4314009071 (ISBN)&lt;/dd&gt;
    &lt;dd&gt;評価&lt;abbr class=&#34;rating fa-sm&#34; title=&#34;5&#34;&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&lt;/abbr&gt;&lt;/dd&gt;
  &lt;/dl&gt;
  &lt;p class=&#34;description&#34;&gt;20世紀末，暗号技術の世界で何があったのか。知りたかったらこちらを読むべし！&lt;/p&gt;
  &lt;p class=&#34;powered-by&#34;&gt;reviewed by &lt;a href=&#39;#maker&#39; class=&#39;reviewer&#39;&gt;Spiegel&lt;/a&gt; on &lt;abbr class=&#34;dtreviewed&#34; title=&#34;2015-03-09&#34;&gt;2015-03-09&lt;/abbr&gt; (powered by &lt;a href=&#34;https://affiliate.amazon.co.jp/assoc_credentials/home&#34;&gt;PA-APIv5&lt;/a&gt;)&lt;/p&gt;
&lt;/div&gt; &lt;!-- 暗号化 プライバシーを救った反乱者たち --&gt;
&lt;div class=&#34;hreview&#34;&gt;
  &lt;div class=&#34;photo&#34;&gt;&lt;a href=&#34;https://www.amazon.co.jp/dp/B015643CPE?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;&lt;img src=&#34;https://m.media-amazon.com/images/I/51t6yHHVwEL._SL160_.jpg&#34; width=&#34;113&#34; alt=&#34;photo&#34;&gt;&lt;/a&gt;&lt;/div&gt;
  &lt;dl&gt;
    &lt;dt class=&#34;item&#34;&gt;&lt;a class=&#34;fn url&#34; href=&#34;https://www.amazon.co.jp/dp/B015643CPE?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;暗号技術入門 第3版　秘密の国のアリス&lt;/a&gt;&lt;/dt&gt;
    &lt;dd&gt;結城 浩 (著)&lt;/dd&gt;
    &lt;dd&gt;SBクリエイティブ 2015-08-25 (Release 2015-09-17)&lt;/dd&gt;
    &lt;dd&gt;Kindle版&lt;/dd&gt;
    &lt;dd&gt;B015643CPE (ASIN)&lt;/dd&gt;
    &lt;dd&gt;評価&lt;abbr class=&#34;rating fa-sm&#34; title=&#34;5&#34;&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&lt;/abbr&gt;&lt;/dd&gt;
  &lt;/dl&gt;
  &lt;p class=&#34;description&#34;&gt;SHA-3 や Bitcoin/Blockchain など新しい知見や技術要素を大幅追加。暗号技術を使うだけならこれ1冊でとりあえず無問題。&lt;/p&gt;
  &lt;p class=&#34;powered-by&#34;&gt;reviewed by &lt;a href=&#39;#maker&#39; class=&#39;reviewer&#39;&gt;Spiegel&lt;/a&gt; on &lt;abbr class=&#34;dtreviewed&#34; title=&#34;2015-09-20&#34;&gt;2015-09-20&lt;/abbr&gt; (powered by &lt;a href=&#34;https://affiliate.amazon.co.jp/assoc_credentials/home&#34;&gt;PA-APIv5&lt;/a&gt;)&lt;/p&gt;
&lt;/div&gt; &lt;!-- 暗号技術入門 第3版 --&gt;
&lt;div class=&#34;hreview&#34;&gt;
  &lt;div class=&#34;photo&#34;&gt;&lt;a href=&#34;https://www.amazon.co.jp/dp/4621300253?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;&lt;img src=&#34;https://m.media-amazon.com/images/I/41meaSLNFfL._SL160_.jpg&#34; width=&#34;122&#34; alt=&#34;photo&#34;&gt;&lt;/a&gt;&lt;/div&gt;
  &lt;dl&gt;
    &lt;dt class=&#34;item&#34;&gt;&lt;a class=&#34;fn url&#34; href=&#34;https://www.amazon.co.jp/dp/4621300253?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;プログラミング言語Go (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES)&lt;/a&gt;&lt;/dt&gt;
    &lt;dd&gt;Alan A.A. Donovan (著), Brian W. Kernighan (著), 柴田 芳樹 (翻訳)&lt;/dd&gt;
    &lt;dd&gt;丸善出版 2016-06-20&lt;/dd&gt;
    &lt;dd&gt;単行本（ソフトカバー）&lt;/dd&gt;
    &lt;dd&gt;4621300253 (ASIN), 9784621300251 (EAN), 4621300253 (ISBN)&lt;/dd&gt;
    &lt;dd&gt;評価&lt;abbr class=&#34;rating fa-sm&#34; title=&#34;5&#34;&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&lt;/abbr&gt;&lt;/dd&gt;
  &lt;/dl&gt;
  &lt;p class=&#34;description&#34;&gt;著者のひとりは（あの「バイブル」とも呼ばれる）通称 “K&amp;amp;R” の K のほうである。この本は Go 言語の教科書と言ってもいいだろう。と思ったら絶版状態らしい（2025-01 現在）。復刊を望む！&lt;/p&gt;
  &lt;p class=&#34;powered-by&#34;&gt;reviewed by &lt;a href=&#39;#maker&#39; class=&#39;reviewer&#39;&gt;Spiegel&lt;/a&gt; on &lt;abbr class=&#34;dtreviewed&#34; title=&#34;2016-07-13&#34;&gt;2016-07-13&lt;/abbr&gt; (powered by &lt;a href=&#34;https://affiliate.amazon.co.jp/assoc_credentials/home&#34;&gt;PA-APIv5&lt;/a&gt;)&lt;/p&gt;
&lt;/div&gt; &lt;!-- プログラミング言語Go --&gt;
&lt;div class=&#34;hreview&#34;&gt;
  &lt;div class=&#34;photo&#34;&gt;&lt;a href=&#34;https://www.amazon.co.jp/dp/4814400047?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;&lt;img src=&#34;https://m.media-amazon.com/images/I/41dClAl3WKL._SL160_.jpg&#34; width=&#34;125&#34; alt=&#34;photo&#34;&gt;&lt;/a&gt;&lt;/div&gt;
  &lt;dl&gt;
    &lt;dt class=&#34;item&#34;&gt;&lt;a class=&#34;fn url&#34; href=&#34;https://www.amazon.co.jp/dp/4814400047?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;初めてのGo言語 ―他言語プログラマーのためのイディオマティックGo実践ガイド&lt;/a&gt;&lt;/dt&gt;
    &lt;dd&gt;Jon Bodner (著), 武舎 広幸 (翻訳)&lt;/dd&gt;
    &lt;dd&gt;オライリージャパン 2022-09-26&lt;/dd&gt;
    &lt;dd&gt;単行本（ソフトカバー）&lt;/dd&gt;
    &lt;dd&gt;4814400047 (ASIN), 9784814400041 (EAN), 4814400047 (ISBN)&lt;/dd&gt;
    &lt;dd&gt;評価&lt;abbr class=&#34;rating fa-sm&#34; title=&#34;4&#34;&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;far fa-star&#34;&gt;&lt;/i&gt;&lt;/abbr&gt;&lt;/dd&gt;
  &lt;/dl&gt;
  &lt;p class=&#34;description&#34;&gt;2021年に出た “&lt;a href=&#34;https://www.oreilly.com/library/view/learning-go/9781492077206/&#34;&gt;Learning Go&lt;/a&gt;” の邦訳版。私は&lt;a href=&#34;https://www.oreilly.co.jp/books/9784814400041/&#34;&gt;版元&lt;/a&gt;で PDF 版を購入。 Go 特有の語法（idiom）を切り口として Go の機能やパッケージを解説している。 Go 1.19 対応。&lt;/p&gt;
  &lt;p class=&#34;powered-by&#34;&gt;reviewed by &lt;a href=&#39;#maker&#39; class=&#39;reviewer&#39;&gt;Spiegel&lt;/a&gt; on &lt;abbr class=&#34;dtreviewed&#34; title=&#34;2022-10-11&#34;&gt;2022-10-11&lt;/abbr&gt; (powered by &lt;a href=&#34;https://affiliate.amazon.co.jp/assoc_credentials/home&#34;&gt;PA-APIv5&lt;/a&gt;)&lt;/p&gt;
&lt;/div&gt; &lt;!-- 初めてのGo言語 --&gt;
</content>
	</entry><entry>
		<title>gpg-agent の設定： GnuPG in Ubuntu</title>
		<category term="openpgp" label="openpgp" scheme="https://text.baldanders.info/openpgp/" />
		<link rel="alternate" type="text/html" href="https://text.baldanders.info/openpgp/gpg-agent-in-ubuntu/" />
		<id>tag:text.Baldanders.info,2021-01-10:/openpgp/gpg-agent-in-ubuntu/</id>
		<published>2021-01-10T11:53:13+09:00</published>
		<updated>2021-06-05T12:43:26+00:00</updated>
		<summary>Zenn で書いた「Ubuntu で OpenSSH の鍵管理を gpg-agent に委譲する」をこのブログの「最新版 GnuPG をビルドする」の続編として再構成した</summary>
		<author>
			<name>Spiegel</name>
			<uri>https://baldanders.info/profile/</uri>
		</author>
		
	<link rel="cc:license" type="application/rdf+xml" href="https://creativecommons.org/licenses/by-sa/4.0/rdf" />


		<content type="html" xml:lang="ja-jp" xml:base="https://text.baldanders.info/">&lt;p&gt;この記事は Zenn で書いた「&lt;a href=&#34;https://zenn.dev/spiegel/articles/20210109-gpg-agent&#34; target=&#34;_blank&#34;&gt;Ubuntu で OpenSSH の鍵管理を gpg-agent に委譲する&lt;/a&gt;」をこのブログの「&lt;a href=&#34;https://text.baldanders.info/openpgp/build-gnupg-in-ubuntu/&#34; target=&#34;_blank&#34;&gt;最新版 GnuPG をビルドする&lt;/a&gt;」の続編として再構成したものである。&lt;/p&gt;
&lt;p&gt;なお Windows 版 &lt;code&gt;gpg-agent&lt;/code&gt; の設定については，古い記事で恐縮だが&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://text.baldanders.info/openpgp/using-gnupg-for-windows-2/&#34; target=&#34;_blank&#34;&gt;GnuPG for Windows : gpg-agent について&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;が参考になる。&lt;/p&gt;
&lt;h2&gt;ビルドした gpg-agent をサービスとして登録する&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://text.baldanders.info/openpgp/build-gnupg-in-ubuntu/&#34; target=&#34;_blank&#34; title=&#34;最新版 GnuPG をビルドする&#34;&gt;前回&lt;/a&gt;ビルドした &lt;a href=&#34;https://gnupg.org/&#34; target=&#34;_blank&#34; title=&#34;The GNU Privacy Guard&#34;&gt;GnuPG&lt;/a&gt; を使って処理を行おうとすると &lt;code&gt;gpg-agent&lt;/code&gt; が古い旨の警告が出る。
&lt;code&gt;ps&lt;/code&gt; コマンドでチェックすると，どうやらオリジナルの &lt;code&gt;/usr/bin/gpg-agent&lt;/code&gt; が稼働しているようだ。&lt;/p&gt;
&lt;p&gt;稼働している &lt;code&gt;/usr/bin/gpg-agent&lt;/code&gt; を一旦落として &lt;code&gt;gpg-connect-agent&lt;/code&gt; コマンドで再起動すれば &lt;code&gt;/usr/local/bin/gpg-agent&lt;/code&gt; が起動するのだが，ログインし直すと元に戻ってしまう。&lt;/p&gt;
&lt;p&gt;いろいろググってみたのだが， &lt;code&gt;gpg-agent&lt;/code&gt; の制御は &lt;code&gt;/usr/lib/systemd/user/gpg-agent.service&lt;/code&gt; ファイルでサービスとして行っているようだ。
内容はこんな感じ。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-ini&#34; data-lang=&#34;ini&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;[Unit]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;na&#34;&gt;Description&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;GnuPG cryptographic agent and passphrase cache&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;na&#34;&gt;Documentation&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;man:gpg-agent(1)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;na&#34;&gt;Requires&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;gpg-agent.socket&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;[Service]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;na&#34;&gt;ExecStart&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;/usr/bin/gpg-agent --supervised&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;na&#34;&gt;ExecReload&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;/usr/bin/gpgconf --reload gpg-agent&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;そこで，最後の2行を&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-ini&#34; data-lang=&#34;ini&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;na&#34;&gt;ExecStart&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;/usr/local/bin/gpg-agent --supervised&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;na&#34;&gt;ExecReload&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;/usr/local/bin/gpgconf --reload gpg-agent&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;と変更し &lt;code&gt;gpg-agent.service&lt;/code&gt; ファイルをリロードする。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ systemctl --user daemon-reload
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;その後サービスを &lt;code&gt;restart&lt;/code&gt; したら &lt;code&gt;/usr/local/bin/gpg-agent&lt;/code&gt; のほうで稼働してくれるようになった。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ systemctl --user restart gpg-agent
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ systemctl --user status gpg-agent
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;● gpg-agent.service - GnuPG cryptographic agent and passphrase cache
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     Loaded: loaded (/usr/lib/systemd/user/gpg-agent.service; static)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     Active: active (running) since Sat 2021-01-09 09:38:33 JST; 9min ago
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;TriggeredBy: ● gpg-agent.socket
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;             ● gpg-agent-ssh.socket
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;             ● gpg-agent-extra.socket
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;             ● gpg-agent-browser.socket
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;       Docs: man:gpg-agent(1)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   Main PID: 18913 (gpg-agent)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     CGroup: /user.slice/user-1000.slice/user@1000.service/gpg-agent.service
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;             ├─18913 /usr/local/bin/gpg-agent --supervised
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;             └─19398 scdaemon --multi-server
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; Jan 09 09:38:33 mymachine systemd[1616]: Started GnuPG cryptographic agent and passphrase cache.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; Jan 09 09:38:33 mymachine gpg-agent[18913]: gpg-agent (GnuPG) 2.2.26 starting in supervised mode.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; Jan 09 09:38:33 mymachine gpg-agent[18913]: using fd 3 for std socket (/run/user/1000/gnupg/S.gpg-agent)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; Jan 09 09:38:33 mymachine gpg-agent[18913]: using fd 4 for ssh socket (/run/user/1000/gnupg/S.gpg-agent.ssh)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; Jan 09 09:38:33 mymachine gpg-agent[18913]: using fd 5 for extra socket (/run/user/1000/gnupg/S.gpg-agent.extra)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; Jan 09 09:38:33 mymachine gpg-agent[18913]: using fd 6 for browser socket (/run/user/1000/gnupg/S.gpg-agent.browser)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; Jan 09 09:38:33 mymachine gpg-agent[18913]: listening on: std=3 extra=5 browser=6 ssh=4
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;...
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;よーし，うむうむ，よーし。&lt;/p&gt;
&lt;h3&gt;dirmgr も同様に&lt;/h3&gt;
&lt;p&gt;OpenPGP 鍵サーバを含むディレクトリ・サービスとやり取りする &lt;code&gt;dirmngr&lt;/code&gt; も &lt;code&gt;/usr/lib/systemd/user/dirmngr.service&lt;/code&gt; ファイルでサービス化されている。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-ini&#34; data-lang=&#34;ini&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;[Unit]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;na&#34;&gt;Description&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;GnuPG network certificate management daemon&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;na&#34;&gt;Documentation&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;man:dirmngr(8)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;na&#34;&gt;Requires&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;dirmngr.socket&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;[Service]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;na&#34;&gt;ExecStart&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;/usr/bin/dirmngr --supervised --honor-http-proxy&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;na&#34;&gt;ExecReload&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;/usr/bin/gpgconf --reload dirmngr&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;これも最後の2行を&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-ini&#34; data-lang=&#34;ini&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;na&#34;&gt;ExecStart&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;/usr/local/bin/dirmngr --supervised --honor-http-proxy&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;na&#34;&gt;ExecReload&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;/usr/local/bin/gpgconf --reload dirmngr&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;と変更する。
後の操作は同じ。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ systemctl --user daemon-reload
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ systemctl --user restart dirmngr
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ systemctl --user status dirmngr
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;● dirmngr.service - GnuPG network certificate management daemon
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     Loaded: loaded (/usr/lib/systemd/user/dirmngr.service; static)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     Active: active (running) since Sat 2021-01-09 09:38:33 JST; 9min ago
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;TriggeredBy: ● dirmngr.socket
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;       Docs: man:dirmngr(8)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   Main PID: 349126 (dirmngr)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     CGroup: /user.slice/user-1000.slice/user@1000.service/dirmngr.service
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;             └─349126 /usr/local/bin/dirmngr --supervised --honor-http-proxy
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; Jan 09 09:38:33 mymachine systemd[2209]: dirmngr.service: Succeeded.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; Jan 09 09:38:33 mymachine dirmngr[348581]: dirmngr (GnuPG) 2.2.20 stopped
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; Jan 09 09:38:33 mymachine systemd[2209]: Stopped GnuPG network certificate management daemon.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; Jan 09 09:38:33 mymachine systemd[2209]: Started GnuPG network certificate management daemon.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;...
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2&gt;&lt;a href=&#34;http://www.openssh.com/&#34; target=&#34;_blank&#34; title=&#34;OpenSSH&#34;&gt;OpenSSH&lt;/a&gt; の鍵管理を gpg-agent に委譲する&lt;/h2&gt;
&lt;p&gt;上述の話を調べてて初めて知ったのだが，どうも Ubuntu を含む Debian 系のディストリビューションでは &lt;a href=&#34;http://www.openssh.com/&#34; target=&#34;_blank&#34; title=&#34;OpenSSH&#34;&gt;OpenSSH&lt;/a&gt; の認証鍵を &lt;code&gt;ssh-agent&lt;/code&gt; 固定で管理するよう構成されていて， &lt;code&gt;gpg-agent&lt;/code&gt; と設定が競合してしまうらしい。
&lt;a href=&#34;http://www.openssh.com/&#34; target=&#34;_blank&#34; title=&#34;OpenSSH&#34;&gt;OpenSSH&lt;/a&gt; の鍵管理を gpg-agent に委譲するよう構成するには &lt;code&gt;gpg-agent.conf&lt;/code&gt; ファイル以外にもいくつか設定が必要なようだ。&lt;/p&gt;
&lt;h3&gt;Xsession.options の変更&lt;/h3&gt;
&lt;p&gt;まずは &lt;code&gt;/etc/X11/Xsession.options&lt;/code&gt; ファイルの内容を変更する。
元々の内容は以下の通り。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# $Id: Xsession.options 189 2005-06-11 00:04:27Z branden $&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;#&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# configuration options for /etc/X11/Xsession&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# See Xsession.options(5) for an explanation of the available options.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;allow-failsafe
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;allow-user-resources
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;allow-user-xsession
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;use-ssh-agent
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;use-session-dbus
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;この中の &lt;code&gt;use-ssh-agent&lt;/code&gt; の記述を &lt;code&gt;no-use-ssh-agent&lt;/code&gt; に差し替える。
当然ながら変更には管理者権限が必要なのでご注意を。
バックアップを取りながら作業すること。&lt;/p&gt;
&lt;h3&gt;autostart/gnome-keyring-ssh.desktop の変更&lt;/h3&gt;
&lt;p&gt;次に &lt;code&gt;/etc/xdg/autostart/gnome-keyring-ssh.desktop&lt;/code&gt; の内容を変更するのだが，このファイルを直接変更するのではなく，いったん &lt;code&gt;~/.config/autostart/&lt;/code&gt; ディレクトリにコピーしてから，コピーしたファイルに対して変更をかける（&lt;code&gt;autostart&lt;/code&gt; ディレクトリがない場合は先に作成する）。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ cp /etc/xdg/autostart/gnome-keyring-ssh.desktop ~/.config/autostart/
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;これでユーザ単位で設定を弄ることができる。
といっても最終行に&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-ini&#34; data-lang=&#34;ini&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;na&#34;&gt;Hidden&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;を追記するだけだが。&lt;/p&gt;
&lt;div class=&#34;box&#34;&gt;&lt;h3&gt;【2021-06-05 追記】 Ubuntu 21.04 の場合&lt;/h3&gt;
&lt;p&gt;2021年4月にリリースされた Ubuntu 21.04 ではこの設定ではうまく行かないようだ（Wayland の問題？）。
この場合，とりあえず応急措置として &lt;code&gt;.bashrc&lt;/code&gt; ファイルで&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;SSH_AUTH_SOCK&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;$(&lt;/span&gt;gpgconf --list-dirs agent-ssh-socket&lt;span class=&#34;k&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;dbus-update-activation-environment --systemd SSH_AUTH_SOCK
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;と言った感じに環境変数 &lt;code&gt;SSH_AUTH_SOCK&lt;/code&gt; を直接指定する（情報募集）。&lt;/p&gt;
&lt;/div&gt;
&lt;h3&gt;gpg-agent.conf の設定&lt;/h3&gt;
&lt;p&gt;最後に &lt;code&gt;~/.gnupg/gpg-agent.conf&lt;/code&gt; ファイルに以下の内容を書き込む。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;enable-ssh-support
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;default-cache-ttl-ssh 1800
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;max-cache-ttl-ssh 7200
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;gpg-agent.conf&lt;/code&gt; ファイルがない場合は作成すること。
下2行のオプションは任意で，以下の意味を持つ。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;オプション名&lt;/th&gt;
          &lt;th&gt;内容&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;default-cache-ttl-ssh&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;直前にアクセスしたキャッシュ・エントリの有効期間を秒単位で指定する。 既定値は 1800&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;max-cache-ttl-ssh&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;キャッシュ・エントリの有効期間の最大値を秒単位で指定する。 アクセスの有無にかかわらずこの期間が過ぎるとキャッシュがクリアされる。 既定値は 7200&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;有効期間は大きすぎると漏洩リスクが高まるのでほどほどに（笑）&lt;/p&gt;
&lt;p&gt;これで設定は完了。念のためログインし直しておこう。&lt;/p&gt;
&lt;h3&gt;環境変数の確認&lt;/h3&gt;
&lt;p&gt;ログインし直したら環境変数を確認しておく。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ env | grep SSH
SSH_AUTH_SOCK=/run/user/1000/gnupg/S.gpg-agent.ssh
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;てな感じに &lt;code&gt;SSH_AUTH_SOCK&lt;/code&gt; 環境変数の値が &lt;code&gt;gpg-agent&lt;/code&gt; のソケットになっていれば OK である。
これで &lt;code&gt;~/.bashrc&lt;/code&gt; とかに要らん記述をしなくてもよくなった。
ブラボー！&lt;/p&gt;
&lt;h2&gt;&lt;a href=&#34;https://gnupg.org/&#34; target=&#34;_blank&#34; title=&#34;The GNU Privacy Guard&#34;&gt;GnuPG&lt;/a&gt; による鍵管理&lt;/h2&gt;
&lt;h3&gt;既存の &lt;a href=&#34;http://www.openssh.com/&#34; target=&#34;_blank&#34; title=&#34;OpenSSH&#34;&gt;OpenSSH&lt;/a&gt; 認証鍵を &lt;a href=&#34;https://gnupg.org/&#34; target=&#34;_blank&#34; title=&#34;The GNU Privacy Guard&#34;&gt;GnuPG&lt;/a&gt; に登録する&lt;/h3&gt;
&lt;p&gt;上述の設定が完了していれば，既存の &lt;a href=&#34;http://www.openssh.com/&#34; target=&#34;_blank&#34; title=&#34;OpenSSH&#34;&gt;OpenSSH&lt;/a&gt; 認証鍵を &lt;a href=&#34;https://gnupg.org/&#34; target=&#34;_blank&#34; title=&#34;The GNU Privacy Guard&#34;&gt;GnuPG&lt;/a&gt; の鍵束に登録するのは &lt;code&gt;ssh-add&lt;/code&gt; コマンドで簡単にできる。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ ssh-add ./id_ecdsa
Enter passphrase for ./id_ecdsa: 
Identity added: ./id_ecdsa (alice@example.com)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;この時 &lt;code&gt;ssh-add&lt;/code&gt; コマンドによるパスフレーズ入力とは別に &lt;a href=&#34;https://gnupg.org/&#34; target=&#34;_blank&#34; title=&#34;The GNU Privacy Guard&#34;&gt;GnuPG&lt;/a&gt; の Pinentry によるパスフレーズの設定が行われるので注意。
確認を含めて2箇所入力する必要がある。&lt;/p&gt;
&lt;figure style=&#39;margin:0 auto;text-align:center;&#39;&gt;&lt;a href=&#34;https://text.baldanders.info/remark/2020/06/upgrade-openssh-key/pinentry.png&#34;&gt;&lt;img src=&#34;https://text.baldanders.info/remark/2020/06/upgrade-openssh-key/pinentry.png&#34; srcset=&#34;https://text.baldanders.info/remark/2020/06/upgrade-openssh-key/pinentry.png 500w&#34; sizes=&#34;(min-width:600px) 500px, 80vw&#34; alt=&#34;pinentry&#34; loading=&#34;lazy&#34;&gt;&lt;/a&gt;&lt;figcaption&gt;&lt;div&gt;&lt;a href=&#34;https://text.baldanders.info/remark/2020/06/upgrade-openssh-key/pinentry.png&#34;&gt;pinentry&lt;/a&gt;&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;&lt;a href=&#34;https://gnupg.org/&#34; target=&#34;_blank&#34; title=&#34;The GNU Privacy Guard&#34;&gt;GnuPG&lt;/a&gt; の鍵束に登録される認証鍵はこのパスフレーズで保護される。
登録した秘密鍵は &lt;code&gt;~/.gnupg/private-keys-v1.d/&lt;/code&gt; ディレクトリ）に入る。
また &lt;code&gt;~/.gnupg/sshcontrol&lt;/code&gt; ファイルに&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# ECDSA key added on: 2020-06-01 14:05:35&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Fingerprints:  MD5:e4:5b:66:a6:03:9a:a4:0e:f2:1b:a5:04:72:93:f3:f0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;#                SHA256:DtXgQm9rz7Dc5M5yWu/CNVo341o1rcfN9UCyYu+SZU4&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A5353D587000D820669B0BD55A0B4AD6897458DB &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;という感じに追加した鍵の情報が入る。&lt;/p&gt;
&lt;p&gt;ちなみに &lt;code&gt;A5353D587000D820669B0BD55A0B4AD6897458DB&lt;/code&gt; は keygrip と呼ばれる値で，鍵の種類に関係なく統一的に表される ID である。
また &lt;code&gt;~/.gnupg/private-keys-v1.d/&lt;/code&gt; ディレクトリに入っている鍵は &lt;code&gt;A5353D587000D820669B0BD55A0B4AD6897458DB.key&lt;/code&gt; のように keygrip に紐付いたファイル名で格納されている。&lt;/p&gt;
&lt;p&gt;さらに，末尾の &lt;code&gt;0&lt;/code&gt; はキャッシュ期間（秒）を指すらしい。
&lt;code&gt;0&lt;/code&gt; より大きければ &lt;code&gt;gpg-agent.conf&lt;/code&gt; ファイルの指定より優先されるってことかな。&lt;/p&gt;
&lt;p&gt;さらにさらに，行頭に &lt;code&gt;!&lt;/code&gt; マークを付けると鍵の使用を無効化できる。&lt;/p&gt;
&lt;h3&gt;&lt;a href=&#34;https://gnupg.org/&#34; target=&#34;_blank&#34; title=&#34;The GNU Privacy Guard&#34;&gt;GnuPG&lt;/a&gt; 鍵を &lt;a href=&#34;http://www.openssh.com/&#34; target=&#34;_blank&#34; title=&#34;OpenSSH&#34;&gt;OpenSSH&lt;/a&gt; 認証鍵として設定する&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://gnupg.org/&#34; target=&#34;_blank&#34; title=&#34;The GNU Privacy Guard&#34;&gt;GnuPG&lt;/a&gt; 鍵を &lt;a href=&#34;http://www.openssh.com/&#34; target=&#34;_blank&#34; title=&#34;OpenSSH&#34;&gt;OpenSSH&lt;/a&gt; 認証鍵として設定することもできる。
ただし専用の認証鍵を作る必要がある。
詳しくは&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://text.baldanders.info/openpgp/ssh-key-management-with-gnupg/&#34; target=&#34;_blank&#34;&gt;SSH の認証鍵を GunPG で作成・管理する&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;を参照のこと。
最終的には全部 &lt;a href=&#34;https://gnupg.org/&#34; target=&#34;_blank&#34; title=&#34;The GNU Privacy Guard&#34;&gt;GnuPG&lt;/a&gt; で管理するのがいいんだろうな。&lt;/p&gt;
&lt;h2&gt;ブックマーク&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://curiouslynerdy.com/gpg-agent-for-ssh-on-ubuntu/&#34; target=&#34;_blank&#34;&gt;Configuring gpg-agent for SSH Authentication on Ubuntu&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.kernel.org/doc/html/v5.8/process/maintainer-pgp-guide.html&#34; target=&#34;_blank&#34;&gt;Kernel Maintainer PGP guide — The Linux Kernel  documentation&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://gist.github.com/artizirk/d09ce3570021b0f65469cb450bee5e29&#34; target=&#34;_blank&#34;&gt;OpenPGP SSH access with Yubikey and GnuPG · GitHub&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://text.baldanders.info/openpgp/gnupg-cheat-sheet/&#34; target=&#34;_blank&#34;&gt;GnuPG チートシート（鍵作成から失効まで）&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://text.baldanders.info/remark/2020/06/upgrade-openssh-key/&#34; target=&#34;_blank&#34;&gt;OpenSSH 鍵をアップグレードする（さようなら SHA-1）&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;参考図書&lt;/h2&gt;
&lt;div class=&#34;hreview&#34;&gt;
  &lt;div class=&#34;photo&#34;&gt;&lt;a href=&#34;https://www.amazon.co.jp/dp/4314009071?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;&lt;img src=&#34;https://m.media-amazon.com/images/I/51ZRZ62WKCL._SL160_.jpg&#34; width=&#34;108&#34; alt=&#34;photo&#34;&gt;&lt;/a&gt;&lt;/div&gt;
  &lt;dl&gt;
    &lt;dt class=&#34;item&#34;&gt;&lt;a class=&#34;fn url&#34; href=&#34;https://www.amazon.co.jp/dp/4314009071?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;暗号化 プライバシーを救った反乱者たち&lt;/a&gt;&lt;/dt&gt;
    &lt;dd&gt;スティーブン・レビー (著), 斉藤 隆央 (翻訳)&lt;/dd&gt;
    &lt;dd&gt;紀伊國屋書店 2002-02-16&lt;/dd&gt;
    &lt;dd&gt;単行本&lt;/dd&gt;
    &lt;dd&gt;4314009071 (ASIN), 9784314009072 (EAN), 4314009071 (ISBN)&lt;/dd&gt;
    &lt;dd&gt;評価&lt;abbr class=&#34;rating fa-sm&#34; title=&#34;5&#34;&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&lt;/abbr&gt;&lt;/dd&gt;
  &lt;/dl&gt;
  &lt;p class=&#34;description&#34;&gt;20世紀末，暗号技術の世界で何があったのか。知りたかったらこちらを読むべし！&lt;/p&gt;
  &lt;p class=&#34;powered-by&#34;&gt;reviewed by &lt;a href=&#39;#maker&#39; class=&#39;reviewer&#39;&gt;Spiegel&lt;/a&gt; on &lt;abbr class=&#34;dtreviewed&#34; title=&#34;2015-03-09&#34;&gt;2015-03-09&lt;/abbr&gt; (powered by &lt;a href=&#34;https://affiliate.amazon.co.jp/assoc_credentials/home&#34;&gt;PA-APIv5&lt;/a&gt;)&lt;/p&gt;
&lt;/div&gt; &lt;!-- 暗号化 プライバシーを救った反乱者たち --&gt;
&lt;div class=&#34;hreview&#34;&gt;
  &lt;div class=&#34;photo&#34;&gt;&lt;a href=&#34;https://www.amazon.co.jp/dp/B015643CPE?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;&lt;img src=&#34;https://m.media-amazon.com/images/I/51t6yHHVwEL._SL160_.jpg&#34; width=&#34;113&#34; alt=&#34;photo&#34;&gt;&lt;/a&gt;&lt;/div&gt;
  &lt;dl&gt;
    &lt;dt class=&#34;item&#34;&gt;&lt;a class=&#34;fn url&#34; href=&#34;https://www.amazon.co.jp/dp/B015643CPE?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;暗号技術入門 第3版　秘密の国のアリス&lt;/a&gt;&lt;/dt&gt;
    &lt;dd&gt;結城 浩 (著)&lt;/dd&gt;
    &lt;dd&gt;SBクリエイティブ 2015-08-25 (Release 2015-09-17)&lt;/dd&gt;
    &lt;dd&gt;Kindle版&lt;/dd&gt;
    &lt;dd&gt;B015643CPE (ASIN)&lt;/dd&gt;
    &lt;dd&gt;評価&lt;abbr class=&#34;rating fa-sm&#34; title=&#34;5&#34;&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&lt;/abbr&gt;&lt;/dd&gt;
  &lt;/dl&gt;
  &lt;p class=&#34;description&#34;&gt;SHA-3 や Bitcoin/Blockchain など新しい知見や技術要素を大幅追加。暗号技術を使うだけならこれ1冊でとりあえず無問題。&lt;/p&gt;
  &lt;p class=&#34;powered-by&#34;&gt;reviewed by &lt;a href=&#39;#maker&#39; class=&#39;reviewer&#39;&gt;Spiegel&lt;/a&gt; on &lt;abbr class=&#34;dtreviewed&#34; title=&#34;2015-09-20&#34;&gt;2015-09-20&lt;/abbr&gt; (powered by &lt;a href=&#34;https://affiliate.amazon.co.jp/assoc_credentials/home&#34;&gt;PA-APIv5&lt;/a&gt;)&lt;/p&gt;
&lt;/div&gt; &lt;!-- 暗号技術入門 第3版 --&gt;
</content>
	</entry><entry>
		<title>OpenSSH の認証鍵を GunPG で作成・管理する</title>
		<category term="openpgp" label="openpgp" scheme="https://text.baldanders.info/openpgp/" />
		<link rel="alternate" type="text/html" href="https://text.baldanders.info/openpgp/ssh-key-management-with-gnupg/" />
		<id>tag:text.Baldanders.info,2021-01-06:/openpgp/ssh-key-management-with-gnupg/</id>
		<published>2021-01-06T23:06:57+09:00</published>
		<updated>2024-04-16T11:45:28+00:00</updated>
		<summary>新たに鍵を作成する場合や今までの鍵を破棄して作り直す場合などの状況があれば検討してもいいだろう。</summary>
		<author>
			<name>Spiegel</name>
			<uri>https://baldanders.info/profile/</uri>
		</author>
		
	<link rel="cc:license" type="application/rdf+xml" href="https://creativecommons.org/licenses/by-sa/4.0/rdf" />


		<content type="html" xml:lang="ja-jp" xml:base="https://text.baldanders.info/">&lt;p&gt;今回は &lt;a href=&#34;https://gnupg.org/&#34; target=&#34;_blank&#34; title=&#34;The GNU Privacy Guard&#34;&gt;GnuPG&lt;/a&gt; で作成した鍵を &lt;a href=&#34;http://www.openssh.com/&#34; target=&#34;_blank&#34; title=&#34;OpenSSH&#34;&gt;OpenSSH&lt;/a&gt; の認証鍵として使う方法について覚え書きとして記しておく。
現時点で運用できている認証鍵を置き換えるメリットはないが，新たに鍵を作成する場合や今までの鍵を破棄して作り直す場合などの状況があれば検討してもいいだろう。&lt;/p&gt;
&lt;p&gt;まず &lt;a href=&#34;https://gnupg.org/&#34; target=&#34;_blank&#34; title=&#34;The GNU Privacy Guard&#34;&gt;GnuPG&lt;/a&gt; で作成する鍵は機能別に以下の4種類に分類される（ひとつの鍵で複数の機能を持たせることもできる）。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th style=&#34;text-align: left&#34;&gt;機能&lt;/th&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;略称&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;署名（sign）&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;S&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;証明（cert）&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;C&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;認証（auth）&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;A&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;暗号化（encr）&lt;/td&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;E&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;このうち &lt;a href=&#34;http://www.openssh.com/&#34; target=&#34;_blank&#34; title=&#34;OpenSSH&#34;&gt;OpenSSH&lt;/a&gt; の認証鍵として使えるのは「認証」機能をもった鍵のみである。
認証機能は電子署名用の鍵であれば任意に付与することができるが，専用の副鍵を追加するのがセオリーらしい。&lt;/p&gt;
&lt;h2&gt;認証用の副鍵を追加する&lt;/h2&gt;
&lt;p&gt;まず以下の &lt;a href=&#34;http://openpgp.org/&#34; target=&#34;_blank&#34;&gt;OpenPGP&lt;/a&gt; 鍵があるとする（主鍵には &lt;code&gt;SC&lt;/code&gt;，副鍵には &lt;code&gt;E&lt;/code&gt; の機能が付いてる点に注目）。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ gpg --list-keys alice
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pub   ed25519 2021-01-06 [SC] [有効期限: 2021-01-13]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      011C720B03D2E1D6BCFA98391DFF44901121B61D
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;uid           [  究極  ] Alice &amp;lt;alice@example.com&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sub   cv25519 2021-01-06 [E]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;この鍵に認証用の副鍵を追加する。&lt;/p&gt;
&lt;p&gt;いちばん簡単なのはコマンドラインで &lt;code&gt;--quick-add-key&lt;/code&gt; を使う方法。
こんな感じに鍵指紋とアルゴリズム（または楕円曲線名）と機能と有効期限（&lt;code&gt;0&lt;/code&gt; なら無期限）を指定する。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ gpg --quick-add-key 011C720B03D2E1D6BCFA98391DFF44901121B61D ed25519 auth 0
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;もうひとつは &lt;code&gt;--edit&lt;/code&gt; コマンドを使う方法。
&lt;code&gt;--expert&lt;/code&gt; オプションと一緒に使うと幸せになれる。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ gpg --expert --edit-key alice
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gpg (GnuPG) 2.2.26; Copyright (C) 2020 Free Software Foundation, Inc.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;This is free software: you are free to change and redistribute it.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;There is NO WARRANTY, to the extent permitted by law.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;秘密鍵が利用できます。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sec  ed25519/1DFF44901121B61D
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     作成: 2021-01-06  有効期限: 2021-01-13  利用法: SC  
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     信用: 究極        有効性: 究極
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ssb  cv25519/4FECD03BE5BE4454
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     作成: 2021-01-06  有効期限: 無期限      利用法: E   
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[  究極  ] (1). Alice &amp;lt;alice@example.com&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gpg&amp;gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;ここで &lt;code&gt;addkey&lt;/code&gt; コマンドを入力する。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gpg&amp;gt; addkey
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ご希望の鍵の種類を選択してください:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   (3) DSA (署名のみ)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   (4) RSA (署名のみ)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   (5) Elgamal (暗号化のみ)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   (6) RSA (暗号化のみ)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   (7) DSA (機能をあなた自身で設定)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   (8) RSA (機能をあなた自身で設定)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  (10) ECC (署名のみ)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  (11) ECC (機能をあなた自身で設定)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  (12) ECC (暗号化のみ)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  (13) 既存の鍵
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  (14) カードに存在する鍵
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;あなたの選択は? 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;今回は認証用の鍵の追加なので 7, 8, 11 のいずれかを選択する。
ここは個人的な好みで ECC 鍵を選択しよう。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;あなたの選択は? 11
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;鍵ECDSA/EdDSAに認められた操作: Sign Authenticate 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;現在の認められた操作: Sign 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   (S) 署名機能を反転する
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   (A) 認証機能を反転する
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   (Q) 完了
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   あなたの選択は? 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;現在は署名機能（Sign）のみ有効になっているが，欲しいのは認証機能のみなので &lt;code&gt;S&lt;/code&gt; と &lt;code&gt;A&lt;/code&gt; を一回づつ入力する。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;あなたの選択は? s
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;鍵ECDSA/EdDSAに認められた操作: Sign Authenticate 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;現在の認められた操作: 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   (S) 署名機能を反転する
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   (A) 認証機能を反転する
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   (Q) 完了
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;あなたの選択は? a
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;鍵ECDSA/EdDSAに認められた操作: Sign Authenticate 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;現在の認められた操作: Authenticate 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   (S) 署名機能を反転する
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   (A) 認証機能を反転する
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   (Q) 完了
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;あなたの選択は? 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;これで認証機能（Authenticate）のみ有効になった。
&lt;code&gt;Q&lt;/code&gt; を入力して次に進もう。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;あなたの選択は? q
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ご希望の楕円曲線を選択してください:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   (1) Curve 25519
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   (3) NIST P-256
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   (4) NIST P-384
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   (5) NIST P-521
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   (6) Brainpool P-256
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   (7) Brainpool P-384
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   (8) Brainpool P-512
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   (9) secp256k1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;あなたの選択は? 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;a href=&#34;http://www.openssh.com/&#34; target=&#34;_blank&#34; title=&#34;OpenSSH&#34;&gt;OpenSSH&lt;/a&gt; の認証用には &lt;code&gt;1&lt;/code&gt; から &lt;code&gt;5&lt;/code&gt; の楕円曲線のいずれかを選択する。
個人的なお勧めは &lt;code&gt;1&lt;/code&gt; の “&lt;code&gt;Curve 25519&lt;/code&gt;” である。
理由は以下の記事を参考のこと。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://text.baldanders.info/remark/2020/06/eddsa/&#34; target=&#34;_blank&#34;&gt;Edwards-curve Digital Signature Algorithm&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;では &lt;code&gt;1&lt;/code&gt; を入力して先に進む。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;あなたの選択は? 1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;鍵の有効期限を指定してください。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;         0 = 鍵は無期限
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;lt;n&amp;gt;  = 鍵は n 日間で期限切れ
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;lt;n&amp;gt;w = 鍵は n 週間で期限切れ
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;lt;n&amp;gt;m = 鍵は n か月間で期限切れ
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;lt;n&amp;gt;y = 鍵は n 年間で期限切れ
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;鍵の有効期間は? (0)0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;鍵は無期限です
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;有効期限は意味がないので無期限（&lt;code&gt;0&lt;/code&gt;）を選択する。
理由は後述するのでちょっと待ってね。&lt;/p&gt;
&lt;p&gt;最終確認をして鍵を生成する。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;これで正しいですか? (y/N) y
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;本当に作成しますか? (y/N) y         
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;たくさんのランダム・バイトの生成が必要です。キーボードを打つ、マウスを動か
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;す、ディスクにアクセスするなどの他の操作を素数生成の間に行うことで、乱数生
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;成器に十分なエントロピーを供給する機会を与えることができます。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sec  ed25519/1DFF44901121B61D
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     作成: 2021-01-06  有効期限: 2021-01-13  利用法: SC  
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     信用: 究極        有効性: 究極
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ssb  cv25519/4FECD03BE5BE4454
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     作成: 2021-01-06  有効期限: 無期限      利用法: E   
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ssb  ed25519/230D446E390C3E49
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     作成: 2021-01-06  有効期限: 無期限      利用法: A   
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[  究極  ] (1). Alice &amp;lt;alice@example.com&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gpg&amp;gt; save
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;最後は &lt;code&gt;save&lt;/code&gt; コマンドを入力して結果を鍵束に保存する。
これで&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ gpg --list-keys alice
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pub   ed25519 2021-01-06 [SC] [有効期限: 2021-01-13]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      011C720B03D2E1D6BCFA98391DFF44901121B61D
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;uid           [  究極  ] Alice &amp;lt;alice@example.com&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sub   cv25519 2021-01-06 [E]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sub   ed25519 2021-01-06 [A]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;認証用の鍵が追加できた。&lt;/p&gt;
&lt;h2&gt;&lt;a href=&#34;http://www.openssh.com/&#34; target=&#34;_blank&#34; title=&#34;OpenSSH&#34;&gt;OpenSSH&lt;/a&gt; フォーマットの公開鍵を出力する。&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;http://www.openssh.com/&#34; target=&#34;_blank&#34; title=&#34;OpenSSH&#34;&gt;OpenSSH&lt;/a&gt; フォーマットの公開鍵は &lt;code&gt;--export-ssh-key&lt;/code&gt; コマンドで出力できる。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ gpg --export-ssh-key alice
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFfjejx/Saej929myfZoBQAKgusPi2iiOxdZZfpCLxh5 openpgp:0x390C3E49
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;このテキストをホスト機の &lt;code&gt;~/.ssh/authorized_keys&lt;/code&gt; ファイルに追記すれば仕込みは完了である。
パーミッションの変更を忘れずに（笑）&lt;/p&gt;
&lt;p&gt;この操作で分かると思うが &lt;a href=&#34;http://www.openssh.com/&#34; target=&#34;_blank&#34; title=&#34;OpenSSH&#34;&gt;OpenSSH&lt;/a&gt; フォーマットで出力する時点で &lt;a href=&#34;http://openpgp.org/&#34; target=&#34;_blank&#34;&gt;OpenPGP&lt;/a&gt; 鍵の情報はほぼ脱落している。
だから「有効期限は意味がない」のよ。&lt;/p&gt;
&lt;p&gt;ちなみにこの操作は公開鍵に対して行われる。
たとえば，認証用の鍵を付加した &lt;a href=&#34;http://openpgp.org/&#34; target=&#34;_blank&#34;&gt;OpenPGP&lt;/a&gt; 公開鍵をサーバ管理者に渡せば，サーバ管理者は集めた &lt;a href=&#34;http://openpgp.org/&#34; target=&#34;_blank&#34;&gt;OpenPGP&lt;/a&gt; 公開鍵に署名して完全性を確保した後， &lt;a href=&#34;http://www.openssh.com/&#34; target=&#34;_blank&#34; title=&#34;OpenSSH&#34;&gt;OpenSSH&lt;/a&gt; 認証用公開鍵を抽出して各ユーザのディレクトリにまとめてセットする，といったこともできるだろう。&lt;/p&gt;
&lt;h2&gt;ローカル側の設定 【2021-01-09 変更・追記あり】&lt;/h2&gt;
&lt;p&gt;念のためローカル側の設定についても記しておく。&lt;/p&gt;
&lt;h3&gt;ssh-agent を gpg-agent に置き換える&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;http://www.openssh.com/&#34; target=&#34;_blank&#34; title=&#34;OpenSSH&#34;&gt;OpenSSH&lt;/a&gt; では &lt;code&gt;ssh-agent&lt;/code&gt; を &lt;a href=&#34;https://gnupg.org/&#34; target=&#34;_blank&#34; title=&#34;The GNU Privacy Guard&#34;&gt;GnuPG&lt;/a&gt; の &lt;code&gt;gpg-agent&lt;/code&gt; に置き換えることで鍵の管理を &lt;a href=&#34;https://gnupg.org/&#34; target=&#34;_blank&#34; title=&#34;The GNU Privacy Guard&#34;&gt;GnuPG&lt;/a&gt; 側に委譲できる。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.ubuntu.com/&#34; target=&#34;_blank&#34; title=&#34;The leading operating system for PCs, IoT devices, servers and the cloud | Ubuntu&#34;&gt;Ubuntu&lt;/a&gt; の設定手順については以下の記事でまとめている。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://text.baldanders.info/openpgp/gpg-agent-in-ubuntu/&#34; target=&#34;_blank&#34;&gt;gpg-agent の設定： GnuPG in Ubuntu&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Windows については，古い内容で恐縮だが，以下の記事を参考にして欲しい。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://text.baldanders.info/openpgp/using-gnupg-for-windows-2/&#34; target=&#34;_blank&#34;&gt;GnuPG for Windows : gpg-agent について&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;a href=&#34;http://www.openssh.com/&#34; target=&#34;_blank&#34; title=&#34;OpenSSH&#34;&gt;OpenSSH&lt;/a&gt; 認証鍵の登録&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://gnupg.org/&#34; target=&#34;_blank&#34; title=&#34;The GNU Privacy Guard&#34;&gt;GnuPG&lt;/a&gt; の鍵束の鍵を &lt;a href=&#34;http://www.openssh.com/&#34; target=&#34;_blank&#34; title=&#34;OpenSSH&#34;&gt;OpenSSH&lt;/a&gt; の認証鍵として使うには &lt;code&gt;~/.gnupg/sshcontrol&lt;/code&gt; ファイルへの登録が必要である。
先ほど作成した鍵であれば，まず以下のコマンドで&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ gpg --list-keys --with-keygrip alice
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pub   ed25519 2021-01-06 [SC] [有効期限: 2021-01-13]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      011C720B03D2E1D6BCFA98391DFF44901121B61D
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      Keygrip = 97249ABEB2A2FD9E88F6723BB19D4F84B90E261A
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;uid           [  究極  ] Alice &amp;lt;alice@example.com&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sub   cv25519 2021-01-06 [E]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      Keygrip = 96CB831965E1A7EB4705577D6A7CB7F9E05C8192
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sub   ed25519 2021-01-06 [A]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      Keygrip = F5C774B5B418B6E0B5B7942F93DE82BF2FEF4C8E
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;該当する鍵の keygrip 値を調べる。
今回の例なら “&lt;code&gt;F5C774B5B418B6E0B5B7942F93DE82BF2FEF4C8E&lt;/code&gt;” が該当する keygrip 値である。
これを &lt;code&gt;~/.gnupg/sshcontrol&lt;/code&gt; ファイルに追記する。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ echo F5C774B5B418B6E0B5B7942F93DE82BF2FEF4C8E 0 &amp;gt;&amp;gt; ~/.gnupg/sshcontrol
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;これで &lt;code&gt;ssh-add -L&lt;/code&gt; コマンドでこの鍵の内容が表示されればOK。&lt;/p&gt;
&lt;p&gt;ちなみに keygrip 値の後ろの &lt;code&gt;0&lt;/code&gt; はキャッシュ期間（秒）を指すらしい。
&lt;code&gt;0&lt;/code&gt; より大きければ &lt;code&gt;gpg-agent.conf&lt;/code&gt; ファイルの指定より優先されるってことかな。
また行頭に &lt;code&gt;!&lt;/code&gt; マークを付けると鍵の使用を無効化できる。&lt;/p&gt;
&lt;p&gt;念のため &lt;code&gt;sshcontrol&lt;/code&gt; ファイルも不用意に書き込みできないよう制限をかけておくとよいだろう。&lt;/p&gt;
&lt;h2&gt;ブックマーク&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://text.baldanders.info/openpgp/gnupg-cheat-sheet/&#34; target=&#34;_blank&#34;&gt;GnuPG チートシート（鍵作成から失効まで）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://text.baldanders.info/openpgp/using-ecc-with-gnupg/&#34; target=&#34;_blank&#34;&gt;そろそろ GnuPG でも ECC を標準で使うのがいいんじゃないかな&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://text.baldanders.info/remark/2020/06/upgrade-openssh-key/&#34; target=&#34;_blank&#34;&gt;OpenSSH 鍵をアップグレードする（さようなら SHA-1）&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;参考図書&lt;/h2&gt;
&lt;div class=&#34;hreview&#34;&gt;
  &lt;div class=&#34;photo&#34;&gt;&lt;a href=&#34;https://www.amazon.co.jp/dp/4314009071?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;&lt;img src=&#34;https://m.media-amazon.com/images/I/51ZRZ62WKCL._SL160_.jpg&#34; width=&#34;108&#34; alt=&#34;photo&#34;&gt;&lt;/a&gt;&lt;/div&gt;
  &lt;dl&gt;
    &lt;dt class=&#34;item&#34;&gt;&lt;a class=&#34;fn url&#34; href=&#34;https://www.amazon.co.jp/dp/4314009071?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;暗号化 プライバシーを救った反乱者たち&lt;/a&gt;&lt;/dt&gt;
    &lt;dd&gt;スティーブン・レビー (著), 斉藤 隆央 (翻訳)&lt;/dd&gt;
    &lt;dd&gt;紀伊國屋書店 2002-02-16&lt;/dd&gt;
    &lt;dd&gt;単行本&lt;/dd&gt;
    &lt;dd&gt;4314009071 (ASIN), 9784314009072 (EAN), 4314009071 (ISBN)&lt;/dd&gt;
    &lt;dd&gt;評価&lt;abbr class=&#34;rating fa-sm&#34; title=&#34;5&#34;&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&lt;/abbr&gt;&lt;/dd&gt;
  &lt;/dl&gt;
  &lt;p class=&#34;description&#34;&gt;20世紀末，暗号技術の世界で何があったのか。知りたかったらこちらを読むべし！&lt;/p&gt;
  &lt;p class=&#34;powered-by&#34;&gt;reviewed by &lt;a href=&#39;#maker&#39; class=&#39;reviewer&#39;&gt;Spiegel&lt;/a&gt; on &lt;abbr class=&#34;dtreviewed&#34; title=&#34;2015-03-09&#34;&gt;2015-03-09&lt;/abbr&gt; (powered by &lt;a href=&#34;https://affiliate.amazon.co.jp/assoc_credentials/home&#34;&gt;PA-APIv5&lt;/a&gt;)&lt;/p&gt;
&lt;/div&gt; &lt;!-- 暗号化 プライバシーを救った反乱者たち --&gt;
&lt;div class=&#34;hreview&#34;&gt;
  &lt;div class=&#34;photo&#34;&gt;&lt;a href=&#34;https://www.amazon.co.jp/dp/B015643CPE?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;&lt;img src=&#34;https://m.media-amazon.com/images/I/51t6yHHVwEL._SL160_.jpg&#34; width=&#34;113&#34; alt=&#34;photo&#34;&gt;&lt;/a&gt;&lt;/div&gt;
  &lt;dl&gt;
    &lt;dt class=&#34;item&#34;&gt;&lt;a class=&#34;fn url&#34; href=&#34;https://www.amazon.co.jp/dp/B015643CPE?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;暗号技術入門 第3版　秘密の国のアリス&lt;/a&gt;&lt;/dt&gt;
    &lt;dd&gt;結城 浩 (著)&lt;/dd&gt;
    &lt;dd&gt;SBクリエイティブ 2015-08-25 (Release 2015-09-17)&lt;/dd&gt;
    &lt;dd&gt;Kindle版&lt;/dd&gt;
    &lt;dd&gt;B015643CPE (ASIN)&lt;/dd&gt;
    &lt;dd&gt;評価&lt;abbr class=&#34;rating fa-sm&#34; title=&#34;5&#34;&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&lt;/abbr&gt;&lt;/dd&gt;
  &lt;/dl&gt;
  &lt;p class=&#34;description&#34;&gt;SHA-3 や Bitcoin/Blockchain など新しい知見や技術要素を大幅追加。暗号技術を使うだけならこれ1冊でとりあえず無問題。&lt;/p&gt;
  &lt;p class=&#34;powered-by&#34;&gt;reviewed by &lt;a href=&#39;#maker&#39; class=&#39;reviewer&#39;&gt;Spiegel&lt;/a&gt; on &lt;abbr class=&#34;dtreviewed&#34; title=&#34;2015-09-20&#34;&gt;2015-09-20&lt;/abbr&gt; (powered by &lt;a href=&#34;https://affiliate.amazon.co.jp/assoc_credentials/home&#34;&gt;PA-APIv5&lt;/a&gt;)&lt;/p&gt;
&lt;/div&gt; &lt;!-- 暗号技術入門 第3版 --&gt;
</content>
	</entry><entry>
		<title>最新版 GnuPG をビルドする： GnuPG in Ubuntu</title>
		<category term="openpgp" label="openpgp" scheme="https://text.baldanders.info/openpgp/" />
		<link rel="alternate" type="text/html" href="https://text.baldanders.info/openpgp/build-gnupg-in-ubuntu/" />
		<id>tag:text.Baldanders.info,2021-01-01:/openpgp/build-gnupg-in-ubuntu/</id>
		<published>2021-01-01T13:18:27+09:00</published>
		<updated>2021-02-28T00:55:58+00:00</updated>
		<summary>念のために警告しておくと，今回の自力ビルドは積極的にはお勧めしない。</summary>
		<author>
			<name>Spiegel</name>
			<uri>https://baldanders.info/profile/</uri>
		</author>
		
	<link rel="cc:license" type="application/rdf+xml" href="https://creativecommons.org/licenses/by-sa/4.0/rdf" />


		<content type="html" xml:lang="ja-jp" xml:base="https://text.baldanders.info/">&lt;p&gt;Linux 環境では &lt;a href=&#34;https://gnupg.org/&#34; target=&#34;_blank&#34; title=&#34;The GNU Privacy Guard&#34;&gt;GnuPG&lt;/a&gt; は（ユーザは意識しないかもしれないが）セキュリティ中核部品のひとつだが， &lt;a href=&#34;https://www.ubuntu.com/&#34; target=&#34;_blank&#34; title=&#34;The leading operating system for PCs, IoT devices, servers and the cloud | Ubuntu&#34;&gt;Ubuntu&lt;/a&gt; はかなり保守的な運用をしているそうで，滅多なことでは &lt;a href=&#34;https://gnupg.org/&#34; target=&#34;_blank&#34; title=&#34;The GNU Privacy Guard&#34;&gt;GnuPG&lt;/a&gt; をアップデートしないようだ。
かといって CVE ID が割り振られるような脆弱性まで長期間放置するのはいかがなものかと思うが。&lt;/p&gt;
&lt;p&gt;そこで，かねてから懸案だった &lt;a href=&#34;https://gnupg.org/&#34; target=&#34;_blank&#34; title=&#34;The GNU Privacy Guard&#34;&gt;GnuPG&lt;/a&gt; の自力ビルドを試してみることにした。&lt;/p&gt;
&lt;p&gt;念のために警告しておくと，今回の自力ビルドは積極的にはお勧めしない。
&lt;a href=&#34;https://gnupg.org/&#34; target=&#34;_blank&#34; title=&#34;The GNU Privacy Guard&#34;&gt;GnuPG&lt;/a&gt; の最新機能を試したいとか，何がなんでも最新版が欲しいとかいうのでない限り APT で配布されるバージョンを使うほうがよい。
まぁ「最悪はこういう手段も取れるよ」という感じで記憶の片隅にでも置いていただければ（笑）&lt;/p&gt;
&lt;h2&gt;ビルド対象のパッケージ&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://gnupg.org/&#34; target=&#34;_blank&#34; title=&#34;The GNU Privacy Guard&#34;&gt;GnuPG&lt;/a&gt; は複数のパッケージで構成されていて，個別にビルド&amp;amp;インストールしていく必要がある。
今回ビルド対象となるパッケージは以下の通り。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;#&lt;/th&gt;
          &lt;th&gt;パッケージ名&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1&lt;/td&gt;
          &lt;td&gt;&lt;a href=&#34;https://gnupg.org/software/libgpg-error/&#34; target=&#34;_blank&#34;&gt;Libgpg-error&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;2&lt;/td&gt;
          &lt;td&gt;&lt;a href=&#34;https://gnupg.org/software/libgcrypt/&#34; target=&#34;_blank&#34;&gt;Libgcrypt&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3&lt;/td&gt;
          &lt;td&gt;&lt;a href=&#34;https://gnupg.org/software/libassuan/&#34; target=&#34;_blank&#34;&gt;Libassuan&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4&lt;/td&gt;
          &lt;td&gt;&lt;a href=&#34;https://gnupg.org/software/libksba/&#34; target=&#34;_blank&#34;&gt;Libksba&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;5&lt;/td&gt;
          &lt;td&gt;&lt;a href=&#34;https://gnupg.org/software/npth/&#34; target=&#34;_blank&#34;&gt;nPth&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;6&lt;/td&gt;
          &lt;td&gt;&lt;a href=&#34;https://gnupg.org/software/ntbtls/&#34; target=&#34;_blank&#34;&gt;ntbTLS&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;7&lt;/td&gt;
          &lt;td&gt;&lt;a href=&#34;https://gnupg.org/software/&#34; target=&#34;_blank&#34;&gt;GnuPG&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;ビルド&amp;amp;インストールの順番は &lt;a href=&#34;https://gnupg.org/software/libgpg-error/&#34; target=&#34;_blank&#34;&gt;Libgpg-error&lt;/a&gt; を最初にして &lt;a href=&#34;https://gnupg.org/software/&#34; target=&#34;_blank&#34;&gt;GnuPG&lt;/a&gt; を最後にすることさえ気をつければいいと思うが，特にこだわりがないのであれば上の順番でビルドしていくのがいいだろう。&lt;/p&gt;
&lt;h2&gt;前準備&lt;/h2&gt;
&lt;p&gt;最初に，上に挙げた以外でビルドに必要なパッケージを APT でインストールしておく。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo apt install libgnutls28-dev bzip2 make gettext texinfo gnutls-bin build-essential libbz2-dev zlib1g-dev libncurses5-dev libsqlite3-dev libldap2-dev
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;適当にググって見繕ったものなので，もしかしたらこんなに要らないかもしれないが，精査するのが面倒くさかったので今回はこれで（笑）&lt;/p&gt;
&lt;p&gt;ビルド用にダウンロードしたファイルの&lt;a href=&#34;https://gnupg.org/download/integrity_check.html&#34; target=&#34;_blank&#34; title=&#34;GnuPG - Integrity Check&#34;&gt;完全性（integrity）をチェック&lt;/a&gt;するために電子署名を検証する。
たとえばこんな感じ。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gpg --verify gnupg-2.2.26.tar.bz2.sig gnupg-2.2.26.tar.bz2
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;署名チェックに必要な &lt;a href=&#34;http://openpgp.org/&#34; target=&#34;_blank&#34;&gt;OpenPGP&lt;/a&gt; 公開鍵は以下のページにある。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://gnupg.org/signature_key.html&#34; target=&#34;_blank&#34;&gt;GnuPG - Signature Key&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;クリップボード操作ができる xsel または xclip コマンドがあるなら，上のページに貼り付けられている公開鍵（ASCII armor 形式）をコピって&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ xsel | gpg --import
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;などとすれば公開鍵を取り込める。&lt;/p&gt;
&lt;h2&gt;各パッケージのビルド&lt;/h2&gt;
&lt;p&gt;ではパッケージを順にビルドしていこう。
ビルド用に適当なディレクトリをあらかじめ掘っておくとよい。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo mkdir /var/local/gnupg-build
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ cd /var/local/gnupg-build
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3&gt;&lt;a href=&#34;https://gnupg.org/software/libgpg-error/&#34; target=&#34;_blank&#34;&gt;Libgpg-error&lt;/a&gt; のビルド&lt;/h3&gt;
&lt;p&gt;以下に手順だけ示しておく。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo curl -L https://gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-1.41.tar.bz2 -O
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo curl -L https://gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-1.41.tar.bz2.sig -O
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ gpg -d libgpg-error-1.41.tar.bz2.sig # integrity check
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo tar xvf libgpg-error-1.41.tar.bz2
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ pushd libgpg-error-1.41/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ ./configure 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ make
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo make install
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ popd
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;これで &lt;code&gt;/usr/local/&lt;/code&gt; ディレクトリ以下の各ディレクトリにビルド結果がインストールされる。
&lt;code&gt;configure&lt;/code&gt; コマンドは引数なしでも問題なさそうだ。&lt;/p&gt;
&lt;h3&gt;&lt;a href=&#34;https://gnupg.org/software/libgcrypt/&#34; target=&#34;_blank&#34;&gt;Libgcrypt&lt;/a&gt; のビルド&lt;/h3&gt;
&lt;p&gt;同様に手順を示しておく。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo curl -L https://gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-1.8.7.tar.bz2 -O
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo curl -L https://gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-1.8.7.tar.bz2.sig -O
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ gpg -d libgcrypt-1.8.7.tar.bz2.sig # integrity check
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo tar xvf libgcrypt-1.8.7.tar.bz2
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ pushd libgcrypt-1.8.7/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ ./configure 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ make
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo make install
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ popd
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;これで &lt;code&gt;/usr/local/&lt;/code&gt; ディレクトリ以下の各ディレクトリにビルド結果がインストールされる。&lt;/p&gt;
&lt;h3&gt;&lt;a href=&#34;https://gnupg.org/software/libassuan/&#34; target=&#34;_blank&#34;&gt;Libassuan&lt;/a&gt; のビルド&lt;/h3&gt;
&lt;p&gt;同様に手順を示しておく。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo curl -L https://gnupg.org/ftp/gcrypt/libassuan/libassuan-2.5.4.tar.bz2 -O
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo curl -L https://gnupg.org/ftp/gcrypt/libassuan/libassuan-2.5.4.tar.bz2.sig -O
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ gpg -d libassuan-2.5.4.tar.bz2.sig # integrity check
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo tar xvf libassuan-2.5.4.tar.bz2
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ pushd libassuan-2.5.4
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ ./configure 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ make
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo make install
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ popd
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;これで &lt;code&gt;/usr/local/&lt;/code&gt; ディレクトリ以下の各ディレクトリにビルド結果がインストールされる。&lt;/p&gt;
&lt;h3&gt;&lt;a href=&#34;https://gnupg.org/software/libksba/&#34; target=&#34;_blank&#34;&gt;Libksba&lt;/a&gt; のビルド&lt;/h3&gt;
&lt;p&gt;同様に手順を示しておく。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo curl -L https://gnupg.org/ftp/gcrypt/libksba/libksba-1.5.0.tar.bz2 -O
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo curl -L https://gnupg.org/ftp/gcrypt/libksba/libksba-1.5.0.tar.bz2.sig -O
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ gpg -d libksba-1.5.0.tar.bz2.sig # integrity check
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo tar xvf libksba-1.5.0.tar.bz2
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ pushd libksba-1.5.0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ ./configure 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ make
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo make install
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ popd
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;これで &lt;code&gt;/usr/local/&lt;/code&gt; ディレクトリ以下の各ディレクトリにビルド結果がインストールされる。&lt;/p&gt;
&lt;h3&gt;&lt;a href=&#34;https://gnupg.org/software/npth/&#34; target=&#34;_blank&#34;&gt;nPth&lt;/a&gt; のビルド&lt;/h3&gt;
&lt;p&gt;同様に手順を示しておく。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo curl -L https://gnupg.org/ftp/gcrypt/npth/npth-1.6.tar.bz2 -O
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo curl -L https://gnupg.org/ftp/gcrypt/npth/npth-1.6.tar.bz2.sig -O
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ gpg -d npth-1.6.tar.bz2.sig # integrity check
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo tar xvf npth-1.6.tar.bz2
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ pushd npth-1.6
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ ./configure 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ make
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo make install
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ popd
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;これで &lt;code&gt;/usr/local/&lt;/code&gt; ディレクトリ以下の各ディレクトリにビルド結果がインストールされる。&lt;/p&gt;
&lt;h3&gt;&lt;a href=&#34;https://gnupg.org/software/ntbtls/&#34; target=&#34;_blank&#34;&gt;ntbTLS&lt;/a&gt; のビルド&lt;/h3&gt;
&lt;p&gt;同様に手順を示しておく。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo curl -L https://gnupg.org/ftp/gcrypt/ntbtls/ntbtls-0.2.0.tar.bz2 -O
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo curl -L https://gnupg.org/ftp/gcrypt/ntbtls/ntbtls-0.2.0.tar.bz2.sig -O
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ gpg -d ntbtls-0.2.0.tar.bz2.sig # integrity check
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo tar xvf ntbtls-0.2.0.tar.bz2
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ pushd ntbtls-0.2.0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ ./configure 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ make
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo make install
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ popd
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;これで &lt;code&gt;/usr/local/&lt;/code&gt; ディレクトリ以下の各ディレクトリにビルド結果がインストールされる。&lt;/p&gt;
&lt;h3&gt;&lt;a href=&#34;https://gnupg.org/software/&#34; target=&#34;_blank&#34;&gt;GnuPG&lt;/a&gt; のビルド&lt;/h3&gt;
&lt;p&gt;（2021-01-11 に 2.2.27 がリリースされた）&lt;/p&gt;
&lt;p&gt;ようやく本命。
今までと同様に手順を示しておく。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo curl -L https://gnupg.org/ftp/gcrypt/gnupg/gnupg-2.2.27.tar.bz2 -O
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo curl -L https://gnupg.org/ftp/gcrypt/gnupg/gnupg-2.2.27.tar.bz2.sig -O
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ gpg -d gnupg-2.2.27.tar.bz2.sig # integrity check
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo tar xvf gnupg-2.2.27.tar.bz2
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ pushd gnupg-2.2.27
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ ./configure 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ make
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo make install
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ popd
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;これで &lt;code&gt;/usr/local/&lt;/code&gt; ディレクトリ以下の各ディレクトリにビルド結果がインストールされる。
そうそう，最後に&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo ldconfig
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;としておくのを忘れずに。
これで&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ gpg --version
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gpg (GnuPG) 2.2.27
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;libgcrypt 1.8.7
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Copyright (C) 2021 Free Software Foundation, Inc.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;License GNU GPL-3.0-or-later &amp;lt;https://gnu.org/licenses/gpl.html&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;This is free software: you are free to change and redistribute it.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;There is NO WARRANTY, to the extent permitted by law.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Home: /home/username/.gnupg
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;サポートしているアルゴリズム:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;公開鍵: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;暗号方式: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      TWOFISH, CAMELLIA128, CAMELLIA192, CAMELLIA256
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ハッシュ: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;圧縮: 無圧縮, ZIP, ZLIB, BZIP2
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;と最新版で起動できる。
念のため設定状況もチェックしておこう。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ gpgconf --list-components
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gpg:OpenPGP:/usr/local/bin/gpg
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gpg-agent:プライベート鍵:/usr/local/bin/gpg-agent
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;scdaemon:スマートカード:/usr/local/libexec/scdaemon
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gpgsm:S/MIME:/usr/local/bin/gpgsm
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;dirmngr:ネットワーク:/usr/local/bin/dirmngr
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pinentry:パスフレーズ入力:/usr/local/bin/pinentry
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ gpgconf --list-dirs
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sysconfdir:/usr/local/etc/gnupg
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bindir:/usr/local/bin
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;libexecdir:/usr/local/libexec
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;libdir:/usr/local/lib/gnupg
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;datadir:/usr/local/share/gnupg
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;localedir:/usr/local/share/locale
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;socketdir:/run/user/1000/gnupg
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;dirmngr-socket:/run/user/1000/gnupg/S.dirmngr
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;agent-ssh-socket:/run/user/1000/gnupg/S.gpg-agent.ssh
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;agent-extra-socket:/run/user/1000/gnupg/S.gpg-agent.extra
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;agent-browser-socket:/run/user/1000/gnupg/S.gpg-agent.browser
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;agent-socket:/run/user/1000/gnupg/S.gpg-agent
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;homedir:/home/username/.gnupg
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;ふむむ。
上の設定に合わせて，もう少し弄っておこうか。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ cd /usr/local/bin/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo ln -s /etc/alternatives/pinentry pinentry
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;こんな感じかな。
Pinentry は下手に弄ると絶対にドツボにはまるので今回は既存のものを使う。&lt;/p&gt;
&lt;h2&gt;ソケットががが【2021-01-10 変更】&lt;/h2&gt;
&lt;p&gt;この節の内容は「&lt;a href=&#34;https://text.baldanders.info/openpgp/gpg-agent-in-ubuntu/&#34; target=&#34;_blank&#34;&gt;gpg-agent の設定&lt;/a&gt;」に移動した。&lt;/p&gt;
&lt;!--
上の `gpgconf --list-dirs` で示されるソケットについて

```text
socketdir:/run/user/1000/gnupg
dirmngr-socket:/run/user/1000/gnupg/S.dirmngr
agent-ssh-socket:/run/user/1000/gnupg/S.gpg-agent.ssh
agent-extra-socket:/run/user/1000/gnupg/S.gpg-agent.extra
agent-browser-socket:/run/user/1000/gnupg/S.gpg-agent.browser
agent-socket:/run/user/1000/gnupg/S.gpg-agent
```

そもそも `/run/user/1000/` ディレクトリ[^uid1] はブート時（？）に毎回初期化されるのだが，どうやら `/usr/bin/` ディレクトリ以下のオリジナル・コンポーネントを使って初期化してるみたいで，そのままだと `/usr/bin/gpg-agent` のほうが常駐してしまう。

[^uid1]: ちなみに `1000` はユーザIDを指す。ログインしている自身のユーザIDを知るには `id -u` で調べられる。

これでは面白くないし `gpg-agent` 経由でなにか操作をする度に `gpg-agent` のバージョンが古いと怒られるので，以下のコマンドでソケットを再作成する。

```text
$ gpgconf --kill all
$ gpgconf --remove-socketdir
$ gpgconf --create-socketdir
$ gpg-connect-agent --quiet /bye
```

これで `/usr/local/` ディレクトリ以下のコンポーネントに対応したソケットを再作成してくれる。
下３行はまとめて `~/.bashrc` 等に書いておくといいかもしれない。
いずれにせよ，かなりダサいやり方という自覚はありますよ。

これ，最初のソケット初期化時にやってくれないかなぁ。
[GnuPG] のサイトにはそもそもあまり情報がないし，ググっても情報が上手く見つけられなくて困っている。

どなたか情報をご存知でしたら教えてください &lt;abbr class=&#34;emoji-chars&#34; title=&#34;ペコン&#34;&gt;&amp;#x1f647;&lt;/abbr&gt;
--&gt;
&lt;h2&gt;最後に動作確認&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ echo hello world | gpg -a -s -u mykey
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;-----BEGIN PGP MESSAGE-----
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;owGbwMvMwCG45Zb1ujqFHTKMp4WSGOLfTbPOSM3JyVcozy/KSeHqmMzCIMjBYC2m
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;yCIdxHTby+542ccHayVgeliZQBpkZYoLMlPTU3P0MnP1oEyH9NzEzBy95PxcBi5O
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;AZj6RwcY/scanE3cwbVrv0v/zA7njR1J8d7vTjwP28EmLvzWVuPhqnaG/4kBz24f
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;634aYBi/NW79/1WcDusyco91C7N6zWwVC114PRsA
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;=/6XI
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;-----END PGP MESSAGE-----
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;署名時に Pinentry が起動してパスフレーズが通ればOK。
よーし，うむうむ，よーし。&lt;/p&gt;
&lt;h2&gt;ブックマーク&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/Nitrokey/gnupg-docker&#34; target=&#34;_blank&#34;&gt;Nitrokey/gnupg-docker: Build and use specific GnuPG version using Ubuntu image within Docker&amp;rsquo;s container&lt;/a&gt; : Docker 環境で &lt;a href=&#34;https://gnupg.org/&#34; target=&#34;_blank&#34; title=&#34;The GNU Privacy Guard&#34;&gt;GnuPG&lt;/a&gt; をビルド&amp;amp;セットアップする&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://text.baldanders.info/openpgp/gnupg-cheat-sheet/&#34; target=&#34;_blank&#34;&gt;GnuPG チートシート（鍵作成から失効まで）&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://text.baldanders.info/remark/2020/10/windows-terminal-and-nyagos-and-scoop/&#34; target=&#34;_blank&#34;&gt;Windows Terminal × NYAGOS × Scoop ＝ ♥&lt;/a&gt; : Windows 版 &lt;a href=&#34;https://gnupg.org/&#34; target=&#34;_blank&#34; title=&#34;The GNU Privacy Guard&#34;&gt;GnuPG&lt;/a&gt; は Scoop 経由でインストールするのがオススメ&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://zenn.dev/zunda/scraps/70c2bfb4494510&#34; target=&#34;_blank&#34;&gt;GnuPGを作ってみる&lt;/a&gt; : &lt;a href=&#34;https://gnupg.org/&#34; target=&#34;_blank&#34; title=&#34;The GNU Privacy Guard&#34;&gt;GnuPG&lt;/a&gt; 2.3 系のビルド。 &lt;code&gt;$HOME/local/gpg/&lt;/code&gt; 以下に配置するのがポイント&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content>
	</entry><entry>
		<title>GnuPG の HOME はどこにある？</title>
		<category term="openpgp" label="openpgp" scheme="https://text.baldanders.info/openpgp/" />
		<link rel="alternate" type="text/html" href="https://text.baldanders.info/openpgp/gnupg-home-in-windows/" />
		<id>tag:text.Baldanders.info,2020-11-02:/openpgp/gnupg-home-in-windows/</id>
		<published>2020-11-02T20:49:45+09:00</published>
		<updated>2021-09-12T04:12:08+00:00</updated>
		<summary>GnuPG の HOME ディレクトリって .gnupg フォルダじゃねーの？</summary>
		<author>
			<name>Spiegel</name>
			<uri>https://baldanders.info/profile/</uri>
		</author>
		
	<link rel="cc:license" type="application/rdf+xml" href="https://creativecommons.org/licenses/by-sa/4.0/rdf" />


		<content type="html" xml:lang="ja-jp" xml:base="https://text.baldanders.info/">&lt;p&gt;最近また Windows パソコンを使うことになって，色々と&lt;a href=&#34;https://text.baldanders.info/remark/2020/10/windows-terminal-and-nyagos-and-scoop/&#34; target=&#34;_blank&#34; title=&#34;Windows Terminal × NYAGOS × Scoop ＝ ♥&#34;&gt;環境を整える&lt;/a&gt;ついでに &lt;a href=&#34;https://gnupg.org/&#34; target=&#34;_blank&#34; title=&#34;The GNU Privacy Guard&#34;&gt;GnuPG&lt;/a&gt; もインストールしたのだが&amp;hellip;&lt;/p&gt;
&lt;p&gt;今回 &lt;a href=&#34;https://scoop.sh/&#34; target=&#34;_blank&#34; title=&#34;Scoop&#34;&gt;Scoop&lt;/a&gt; というパッケージ・マネージャを導入したのだが，これを使って &lt;a href=&#34;https://gnupg.org/&#34; target=&#34;_blank&#34; title=&#34;The GNU Privacy Guard&#34;&gt;GnuPG&lt;/a&gt; をインストールするとちょっと面白いことになる。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://scoop.sh/&#34; target=&#34;_blank&#34; title=&#34;Scoop&#34;&gt;Scoop&lt;/a&gt; の導入方法は割愛して，いきなり &lt;a href=&#34;https://gnupg.org/&#34; target=&#34;_blank&#34; title=&#34;The GNU Privacy Guard&#34;&gt;GnuPG&lt;/a&gt; のインストールから話を始める。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ scoop install gnupg
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Installing &amp;#39;gnupg&amp;#39; (2.2.23) [64bit]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;...
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Linking ~\scoop\apps\gnupg\current =&amp;gt; ~\scoop\apps\gnupg\2.2.23
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Persisting home
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;#39;gnupg&amp;#39; (2.2.23) was installed successfully!
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;これで &lt;a href=&#34;https://gnupg.org/&#34; target=&#34;_blank&#34; title=&#34;The GNU Privacy Guard&#34;&gt;GnuPG&lt;/a&gt; v2.2.23 は &lt;code&gt;%USERPROFILE%\scoop\apps\gnupg\2.2.23&lt;/code&gt; フォルダにインストールされ &lt;code&gt;%USERPROFILE%\scoop\apps\gnupg\current&lt;/code&gt; にシンボリック・リンクが張られる。
さらに環境変数 &lt;code&gt;PATH&lt;/code&gt; に &lt;code&gt;%USERPROFILE%\scoop\apps\gnupg\current&lt;/code&gt; が追加される。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://scoop.sh/&#34; target=&#34;_blank&#34; title=&#34;Scoop&#34;&gt;Scoop&lt;/a&gt; の特徴でありメリットのひとつはインストールした実行バイナリを &lt;code&gt;%USERPROFILE%\scoop\shims&lt;/code&gt; フォルダに集めることで環境変数 &lt;code&gt;PATH&lt;/code&gt; を無駄に汚さないことにあるが， &lt;a href=&#34;https://gnupg.org/&#34; target=&#34;_blank&#34; title=&#34;The GNU Privacy Guard&#34;&gt;GnuPG&lt;/a&gt; の場合はシングル・バイナリではなく，インストールした複数のバイナリと協調して動作するため，単純に &lt;code&gt;shims&lt;/code&gt; フォルダにコピるのは難しかったようだ。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://scoop.sh/&#34; target=&#34;_blank&#34; title=&#34;Scoop&#34;&gt;Scoop&lt;/a&gt; によってインストールされた &lt;a href=&#34;https://gnupg.org/&#34; target=&#34;_blank&#34; title=&#34;The GNU Privacy Guard&#34;&gt;GnuPG&lt;/a&gt; のディレクトリ構成は以下のようになっている&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ pwd
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;C:\Users\username
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ cd scoop\apps\gnupg\current
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ ll
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;-rw-a--  33K Sep  4 00:39:00 README.txt
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;drwx---    0 Oct 27 13:59:32 bin/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;dr-x---    0 Oct 27 13:59:32 home@ -&amp;gt; C:\Users\username\scoop\persist\gnupg\home
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;drwx---    0 Oct 27 13:59:32 include/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;-rw-a--   58 Oct 27 13:59:32 install.json
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;drwx---    0 Oct 27 13:59:32 lib/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;-rw-a-- 1.4K Oct 27 13:36:14 manifest.json
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;drwx---    0 Oct 27 13:59:32 share/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;実際に &lt;a href=&#34;https://gnupg.org/&#34; target=&#34;_blank&#34; title=&#34;The GNU Privacy Guard&#34;&gt;GnuPG&lt;/a&gt; を動かしてみると&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ gpg --version
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gpg (GnuPG) 2.2.23
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;libgcrypt 1.8.6
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Copyright (C) 2020 Free Software Foundation, Inc.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;License GPLv3+: GNU GPL version 3 or later &amp;lt;https://gnu.org/licenses/gpl.html&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;This is free software: you are free to change and redistribute it.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;There is NO WARRANTY, to the extent permitted by law.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Home: C:/Users/username/scoop/apps/gnupg/current/home
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;サポートしているアルゴリズム:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;公開鍵: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;暗号方式: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    CAMELLIA128, CAMELLIA192, CAMELLIA256
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ハッシュ: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;圧縮: 無圧縮, ZIP, ZLIB, BZIP2
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;となる。
HOME ディレクトリが &lt;code&gt;%USERPROFILE%\scoop\apps\gnupg\current\home&lt;/code&gt; になっているのがお分かりだろうか。
ただし，この &lt;code&gt;home&lt;/code&gt; ディレクトリはシンボリック・リンクなので，実体は &lt;code&gt;%USERPROFILE%\scoop\persist\gnupg\home&lt;/code&gt; ということになる。&lt;/p&gt;
&lt;p&gt;って &lt;a href=&#34;https://gnupg.org/&#34; target=&#34;_blank&#34; title=&#34;The GNU Privacy Guard&#34;&gt;GnuPG&lt;/a&gt; の HOME ディレクトリって &lt;code&gt;%USERPROFILE%&lt;/code&gt; 直下の &lt;code&gt;.gnupg&lt;/code&gt; フォルダじゃねーの？&lt;/p&gt;
&lt;p&gt;おやや，と思って調べてみたら Windows 版の &lt;a href=&#34;https://gnupg.org/&#34; target=&#34;_blank&#34; title=&#34;The GNU Privacy Guard&#34;&gt;GnuPG&lt;/a&gt; はちょっと違うらしい。&lt;/p&gt;
&lt;figure lang=&#34;en&#34;&gt;
&lt;blockquote cite=&#34;https://www.gnupg.org/documentation/manuals/gnupg/Agent-Options.html&#34;&gt;&lt;q&gt;To install GnuPG as a portable application under Windows, create an empty file named &lt;code&gt;gpgconf.ctl&lt;/code&gt; in the same directory as the tool &lt;code&gt;gpgconf.exe&lt;/code&gt;. The root of the installation is then that directory; or, if &lt;code&gt;gpgconf.exe&lt;/code&gt; has been installed directly below a directory named &lt;code&gt;bin&lt;/code&gt;, its parent directory. You also need to make sure that the following directories exist and are writable: &lt;code&gt;ROOT/home&lt;/code&gt; for the GnuPG home and &lt;code&gt;ROOT/usr/local/var/cache/gnupg&lt;/code&gt; for internal cache files&lt;/q&gt;.&lt;/blockquote&gt;
&lt;figcaption&gt;&lt;div&gt;via &lt;q&gt;&lt;a href=&#34;https://www.gnupg.org/documentation/manuals/gnupg/Agent-Options.html&#34;&gt;Agent Options (Using the GNU Privacy Guard)&lt;/a&gt;&lt;/q&gt;&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;つまり（&lt;code&gt;gpgconf.exe&lt;/code&gt; のある） &lt;code&gt;%USERPROFILE%\scoop\apps\gnupg\current\bin&lt;/code&gt; フォルダに空の &lt;code&gt;gpgconf.ctl&lt;/code&gt; ファイルを置けば その親ディレクトリ（&lt;code&gt;%USERPROFILE%\scoop\apps\gnupg\current&lt;/code&gt;）がインストール・ルートとして認識され，その直下の &lt;code&gt;home&lt;/code&gt; フォルダが &lt;a href=&#34;https://gnupg.org/&#34; target=&#34;_blank&#34; title=&#34;The GNU Privacy Guard&#34;&gt;GnuPG&lt;/a&gt; の &lt;code&gt;HOME&lt;/code&gt; ディレクトリとなる。&lt;/p&gt;
&lt;p&gt;Windows 版の場合  &lt;code&gt;gpgconf.ctl&lt;/code&gt; ファイルによる HOME の指定が優先され，環境変数 &lt;code&gt;GNUPGHOME&lt;/code&gt; やレジストリを使った指定は無視されるらしい。
ただし &lt;code&gt;--homedir&lt;/code&gt; オプションは効くとのこと。
これはこれで合理的。&lt;/p&gt;
&lt;p&gt;試しに &lt;a href=&#34;https://www.ubuntu.com/&#34; target=&#34;_blank&#34; title=&#34;The leading operating system for PCs, IoT devices, servers and the cloud | Ubuntu&#34;&gt;Ubuntu&lt;/a&gt; で &lt;code&gt;gpgconf.ctl&lt;/code&gt; を置いてみたが効かなかった。
まぁ，当たり前か（笑）&lt;/p&gt;
&lt;p&gt;それにしても &lt;a href=&#34;https://scoop.sh/&#34; target=&#34;_blank&#34; title=&#34;Scoop&#34;&gt;Scoop&lt;/a&gt; はよい。
端末エミュレータでコマンドライン中心に作業している人には &lt;a href=&#34;https://scoop.sh/&#34; target=&#34;_blank&#34; title=&#34;Scoop&#34;&gt;Scoop&lt;/a&gt; のほうが設計がシンプルで使いやすいんじゃないだろうか。
まぁ，私は作業の中心が（仕事以外では）もはや Windows ではなくなっているので，余計にそう思うのかもしれないが（笑）&lt;/p&gt;
&lt;h2&gt;ブックマーク&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://zenn.dev/zetamatta/books/5ac80a9ddb35fef9a146&#34; target=&#34;_blank&#34;&gt;scoop / nyagos で始めるコマンドライン生活&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;参考図書&lt;/h2&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;ちなみに私は &lt;a href=&#34;https://text.baldanders.info/remark/2020/10/windows-terminal-and-nyagos-and-scoop/&#34; target=&#34;_blank&#34; title=&#34;Windows Terminal × NYAGOS × Scoop ＝ ♥&#34;&gt;Windows Terminal ＋ NYAGOS を愛用&lt;/a&gt;している。例に出ている &lt;code&gt;ll&lt;/code&gt; は &lt;a href=&#34;https://github.com/nyaosorg/nyagos&#34; target=&#34;_blank&#34; title=&#34;nyaosorg/nyagos: NYAGOS - The hybrid Commandline Shell betweeeeeeen UNIX &amp;amp; DOS&#34;&gt;NYAGOS&lt;/a&gt; の組み込みコマンド（の alias）である。&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</content>
	</entry><entry>
		<title>OpenPGP の電子署名は「ユーザーの身元を保証し」ない</title>
		<category term="openpgp" label="openpgp" scheme="https://text.baldanders.info/openpgp/" />
		<link rel="alternate" type="text/html" href="https://text.baldanders.info/openpgp/web-of-trust/" />
		<id>tag:text.Baldanders.info,2019-03-21:/openpgp/web-of-trust/</id>
		<published>2019-03-21T00:28:40+09:00</published>
		<updated>2026-03-31T05:36:59+00:00</updated>
		<summary>つまり公開鍵や電子署名で「ユーザーの身元を保証」するのではなく「身元の保証されたユーザ」同士で鍵と電子署名を運用するのである。</summary>
		<author>
			<name>Spiegel</name>
			<uri>https://baldanders.info/profile/</uri>
		</author>
		
	<link rel="cc:license" type="application/rdf+xml" href="https://creativecommons.org/licenses/by-sa/4.0/rdf" />


		<content type="html" xml:lang="ja-jp" xml:base="https://text.baldanders.info/">&lt;p&gt;重箱の隅を突っつくような内容で申し訳ないのだが&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://forest.watch.impress.co.jp/docs/news/1175019.html&#34; target=&#34;_blank&#34;&gt;「GitKraken 5.0」がリリース ～GPGコミットや“Interactive Rebase”をサポート - 窓の杜&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;という記事で&lt;/p&gt;
&lt;figure&gt;
&lt;blockquote cite=&#34;https://forest.watch.impress.co.jp/docs/news/1175019.html&#34;&gt;
&lt;q&gt;メジャーアップデートとなる本バージョンでは、“GNU Privacy Guard (GPG)”による署名付きのコミットがサポートされた。ユーザーの身元を保証し、他のユーザーによるなりすましを防止することができる。&lt;/q&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;&lt;div&gt;&lt;q&gt;&lt;a href=&#34;https://forest.watch.impress.co.jp/docs/news/1175019.html&#34;&gt;「GitKraken 5.0」がリリース ～GPGコミットや“Interactive Rebase”をサポート&lt;/a&gt;&lt;/q&gt;より&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;などと書いてあって「それはちゃうやろ」という話。&lt;/p&gt;
&lt;h2&gt;暗号機能の4要素&lt;/h2&gt;
&lt;p&gt;昔からよく言われる暗号機能の4要件は以下の通り。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;機密性（Confidentiality）&lt;/li&gt;
&lt;li&gt;完全性（Integrity）&lt;/li&gt;
&lt;li&gt;認証（Authentication）&lt;/li&gt;
&lt;li&gt;否認防止（Non-repudiation）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;このうちデータへの電子署名では主に完全性と否認防止を行う。
否認防止という言葉はちょっと耳慣れないかもしれないが，要するに「あなたはこのデータに署名した」という事実を否認することが出来ない，という意味である&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;。&lt;/p&gt;
&lt;p&gt;これらを達成するためには電子署名に使う公開鍵が鍵オーナーと正しく紐付いている必要がある&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;。
おそらく最初の記事は「公開鍵が鍵オーナーと正しく紐付いている」という前提で「ユーザーの身元を保証」などと書いているのかもしれないが，話はそう簡単ではないのだ。&lt;/p&gt;
&lt;h2&gt;公開鍵基盤&lt;/h2&gt;
&lt;h3&gt;X.509&lt;/h3&gt;
&lt;p&gt;「公開鍵が鍵オーナーと正しく紐付いている」ことを証明するために必要なのが「公開鍵基盤（Public-Key Infrastructure; PKI）」である。
公開鍵基盤として最も有名なのは HTTPS 接続で使われている X.509 であろう。
X.509 の「信用モデル（trust model）」では hierarchical な「認証局（Certification Authority; CA）」を構成し，その認証局が公開鍵を証明することで成り立っている。&lt;/p&gt;
&lt;p&gt;でも実は認証局が証明しているのは「公開鍵が鍵オーナーと正しく紐付いている」ことだけで，鍵オーナーの「身元を保証」しているわけではない。&lt;/p&gt;
&lt;p&gt;そこで HTTPS には &lt;a href=&#34;https://baldanders.info/blog/000277/&#34; target=&#34;_blank&#34; title=&#34;Extended Validation SSL — Baldanders.info&#34;&gt;EV SSL (Extended Validation SSL) なる奇っ怪な仕組み&lt;/a&gt;が組み込まれた。
これは鍵オーナーの「身元を保証」するための仕組みで，鍵オーナーは認証局に対して自身の身元を証明するものを提出し認証局は公開鍵の管理をより厳格に行う，ということらしい。&lt;/p&gt;
&lt;p&gt;正直に言って「屋上屋を架す」仕組みであり認証局の責務を逸脱していると思うのだが，まぁ深くは突っ込むまい。&lt;/p&gt;
&lt;h3&gt;Web of Trust&lt;/h3&gt;
&lt;p&gt;これに対して PGP/&lt;a href=&#34;http://openpgp.org/&#34; target=&#34;_blank&#34;&gt;OpenPGP&lt;/a&gt; が伝統的に執っている信用モデルは「信用の輪（web of trust）」と呼ばれている。&lt;/p&gt;
&lt;p&gt;これは要するに「友達の友達は友達」というやつで，ユーザ同士がお互いの鍵を相互に認証することで信用を構成する仕組みである。&lt;/p&gt;
&lt;p&gt;何故 PGP/&lt;a href=&#34;http://openpgp.org/&#34; target=&#34;_blank&#34;&gt;OpenPGP&lt;/a&gt; が X.509 のような「権威による認証」を採用しなかったかというと，それは PGP の出自に関係がある。
PGP の作者である Phil Zimmermann は，当時は反核運動家であり国家等の「権威」に依らない信用モデルを必要としていたと言われている&lt;sup id=&#34;fnref:3&#34;&gt;&lt;a href=&#34;#fn:3&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;3&lt;/a&gt;&lt;/sup&gt;。&lt;/p&gt;
&lt;p&gt;OpenPGP は名前だけならどんな鍵でも作れる。
たとえば Bitcoin の作者と言われる Satoshi Nakamoto の公開鍵は&lt;a href=&#34;https://text.baldanders.info/remark/2016/05/openpgp-key-of-satoshi-nakamoto/&#34; target=&#34;_blank&#34;&gt;公開鍵サーバを探せば簡単に見つかる&lt;/a&gt;が，それが「あの」 Satoshi Nakamoto 本人であると示す証拠は（少なくとも公開鍵自体には）存在しない。
OpenPGP 公開鍵やその電子署名で赤の他人の「身元を保証」することは出来ないのだ。&lt;/p&gt;
&lt;h2&gt;Git を中心としたチーム運営に &lt;a href=&#34;http://openpgp.org/&#34; target=&#34;_blank&#34;&gt;OpenPGP&lt;/a&gt; を利用する&lt;/h2&gt;
&lt;p&gt;じゃあ git commit で OpenPGP 署名を付与することにどんな意義があるかというと，それはチーム運営で威力を発揮する。
つまり公開鍵や電子署名で「ユーザーの身元を保証」するのではなく「身元の保証されたユーザ」同士で鍵と電子署名を運用するのである。
これでチーム以外からのなりすまし commit を検知（防止ではない&lt;sup id=&#34;fnref:4&#34;&gt;&lt;a href=&#34;#fn:4&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;4&lt;/a&gt;&lt;/sup&gt;）しやすくなる。&lt;/p&gt;
&lt;p&gt;この辺について詳しくは，拙文「&lt;a href=&#34;https://text.baldanders.info/openpgp/openpgp-key-management/&#34; target=&#34;_blank&#34;&gt;OpenPGP 鍵管理に関する考察&lt;/a&gt;」を書いたので興味があれば参照してほしい。&lt;/p&gt;
&lt;p&gt;また GitHub のようにアカウントと公開鍵を紐つけることによってサービス内における強力なポートフォリオとして機能している点は見逃せないだろう。
GitHub 上の&lt;ruby&gt;&lt;rb&gt;活動&lt;/rb&gt;&lt;rp&gt; (&lt;/rp&gt;&lt;rt&gt;contribution&lt;/rt&gt;&lt;rp&gt;) &lt;/rp&gt;&lt;/ruby&gt;がそのまま「エンジニアとしてのユーザ」の身元を保証しているわけだ。&lt;/p&gt;
&lt;p&gt;ホンマ git ってよく出来たシステムだよなぁ。&lt;/p&gt;
&lt;h2&gt;ブックマーク&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://text.baldanders.info/openpgp/git-commit-with-openpgp-signature/&#34; target=&#34;_blank&#34;&gt;Git Commit で OpenPGP 署名を行う&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://baldanders.info/spiegel/cc-license/&#34; target=&#34;_blank&#34;&gt;わかる！ OpenPGP 暗号 — Baldanders.info&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/goark/gpgpdump&#34; target=&#34;_blank&#34;&gt;goark/gpgpdump: OpenPGP packet visualizer&lt;/a&gt; : OpenPGP 鍵や電子署名のダンプには拙作をどうぞ（宣伝&lt;code&gt;w&lt;/code&gt;）&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;参考図書&lt;/h2&gt;
&lt;div class=&#34;hreview&#34;&gt;
  &lt;div class=&#34;photo&#34;&gt;&lt;a href=&#34;https://www.amazon.co.jp/dp/4314009071?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;&lt;img src=&#34;https://m.media-amazon.com/images/I/51ZRZ62WKCL._SL160_.jpg&#34; width=&#34;108&#34; alt=&#34;photo&#34;&gt;&lt;/a&gt;&lt;/div&gt;
  &lt;dl&gt;
    &lt;dt class=&#34;item&#34;&gt;&lt;a class=&#34;fn url&#34; href=&#34;https://www.amazon.co.jp/dp/4314009071?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;暗号化 プライバシーを救った反乱者たち&lt;/a&gt;&lt;/dt&gt;
    &lt;dd&gt;スティーブン・レビー (著), 斉藤 隆央 (翻訳)&lt;/dd&gt;
    &lt;dd&gt;紀伊國屋書店 2002-02-16&lt;/dd&gt;
    &lt;dd&gt;単行本&lt;/dd&gt;
    &lt;dd&gt;4314009071 (ASIN), 9784314009072 (EAN), 4314009071 (ISBN)&lt;/dd&gt;
    &lt;dd&gt;評価&lt;abbr class=&#34;rating fa-sm&#34; title=&#34;5&#34;&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&lt;/abbr&gt;&lt;/dd&gt;
  &lt;/dl&gt;
  &lt;p class=&#34;description&#34;&gt;20世紀末，暗号技術の世界で何があったのか。知りたかったらこちらを読むべし！&lt;/p&gt;
  &lt;p class=&#34;powered-by&#34;&gt;reviewed by &lt;a href=&#39;#maker&#39; class=&#39;reviewer&#39;&gt;Spiegel&lt;/a&gt; on &lt;abbr class=&#34;dtreviewed&#34; title=&#34;2015-03-09&#34;&gt;2015-03-09&lt;/abbr&gt; (powered by &lt;a href=&#34;https://affiliate.amazon.co.jp/assoc_credentials/home&#34;&gt;PA-APIv5&lt;/a&gt;)&lt;/p&gt;
&lt;/div&gt; &lt;!-- 暗号化 プライバシーを救った反乱者たち --&gt;
&lt;div class=&#34;hreview&#34;&gt;
  &lt;div class=&#34;photo&#34;&gt;&lt;a href=&#34;https://www.amazon.co.jp/dp/4900900028?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;&lt;img src=&#34;https://m.media-amazon.com/images/I/5132396FFQL._SL160_.jpg&#34; width=&#34;124&#34; alt=&#34;photo&#34;&gt;&lt;/a&gt;&lt;/div&gt;
  &lt;dl&gt;
    &lt;dt class=&#34;item&#34;&gt;&lt;a class=&#34;fn url&#34; href=&#34;https://www.amazon.co.jp/dp/4900900028?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;PGP―暗号メールと電子署名&lt;/a&gt;&lt;/dt&gt;
    &lt;dd&gt;シムソン ガーフィンケル (著), Garfinkel,Simson (原著), ユニテック (翻訳)&lt;/dd&gt;
    &lt;dd&gt;オライリー・ジャパン 1996-04-01&lt;/dd&gt;
    &lt;dd&gt;単行本&lt;/dd&gt;
    &lt;dd&gt;4900900028 (ASIN), 9784900900028 (EAN), 4900900028 (ISBN)&lt;/dd&gt;
    &lt;dd&gt;評価&lt;abbr class=&#34;rating fa-sm&#34; title=&#34;3&#34;&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;far fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;far fa-star&#34;&gt;&lt;/i&gt;&lt;/abbr&gt;&lt;/dd&gt;
  &lt;/dl&gt;
  &lt;p class=&#34;description&#34;&gt;良書なのだが，残念ながら内容が古すぎた。 PGP の歴史資料として読むならいいかもしれない。&lt;/p&gt;
  &lt;p class=&#34;powered-by&#34;&gt;reviewed by &lt;a href=&#39;#maker&#39; class=&#39;reviewer&#39;&gt;Spiegel&lt;/a&gt; on &lt;abbr class=&#34;dtreviewed&#34; title=&#34;2014-10-16&#34;&gt;2014-10-16&lt;/abbr&gt; (powered by &lt;a href=&#34;https://affiliate.amazon.co.jp/assoc_credentials/home&#34;&gt;PA-APIv5&lt;/a&gt;)&lt;/p&gt;
&lt;/div&gt; &lt;!-- PGP―暗号メールと電子署名 --&gt;
&lt;div class=&#34;hreview&#34;&gt;
  &lt;div class=&#34;photo&#34;&gt;&lt;a href=&#34;https://www.amazon.co.jp/dp/B015643CPE?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;&lt;img src=&#34;https://m.media-amazon.com/images/I/51t6yHHVwEL._SL160_.jpg&#34; width=&#34;113&#34; alt=&#34;photo&#34;&gt;&lt;/a&gt;&lt;/div&gt;
  &lt;dl&gt;
    &lt;dt class=&#34;item&#34;&gt;&lt;a class=&#34;fn url&#34; href=&#34;https://www.amazon.co.jp/dp/B015643CPE?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;暗号技術入門 第3版　秘密の国のアリス&lt;/a&gt;&lt;/dt&gt;
    &lt;dd&gt;結城 浩 (著)&lt;/dd&gt;
    &lt;dd&gt;SBクリエイティブ 2015-08-25 (Release 2015-09-17)&lt;/dd&gt;
    &lt;dd&gt;Kindle版&lt;/dd&gt;
    &lt;dd&gt;B015643CPE (ASIN)&lt;/dd&gt;
    &lt;dd&gt;評価&lt;abbr class=&#34;rating fa-sm&#34; title=&#34;5&#34;&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&lt;/abbr&gt;&lt;/dd&gt;
  &lt;/dl&gt;
  &lt;p class=&#34;description&#34;&gt;SHA-3 や Bitcoin/Blockchain など新しい知見や技術要素を大幅追加。暗号技術を使うだけならこれ1冊でとりあえず無問題。&lt;/p&gt;
  &lt;p class=&#34;powered-by&#34;&gt;reviewed by &lt;a href=&#39;#maker&#39; class=&#39;reviewer&#39;&gt;Spiegel&lt;/a&gt; on &lt;abbr class=&#34;dtreviewed&#34; title=&#34;2015-09-20&#34;&gt;2015-09-20&lt;/abbr&gt; (powered by &lt;a href=&#34;https://affiliate.amazon.co.jp/assoc_credentials/home&#34;&gt;PA-APIv5&lt;/a&gt;)&lt;/p&gt;
&lt;/div&gt; &lt;!-- 暗号技術入門 第3版 --&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;メッセージング・システムを含む暗号通信においては「否認防止」よりむしろ「否認可能 (Deniability)」が要求される場合がある。詳しくは拙文「&lt;a href=&#34;https://baldanders.info/blog/000787/&#34; target=&#34;_blank&#34; title=&#34;OTR over XMPP — Baldanders.info&#34;&gt;OTR over XMPP&lt;/a&gt;」を参考にどうぞ。&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:2&#34;&gt;
&lt;p&gt;たとえば Bitcoin/Blockchain は公開鍵と鍵オーナーとの紐づけを行わない。元帳である Blockchain に記載された取引自体は改竄もなく正しいとしても誰がそれを行ったかを証明する術がない。証明するためには別の仕組みが必要となる。あるいは Bitcoin/Blockchain は「信用」を極力排除することでシステム自体の「正しさ」を担保しているとも言える。&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:3&#34;&gt;
&lt;p&gt;本当のことろ，作者である Phil Zimmermann がどこまで企図していたのかは知らないが， PGP の登場によって暗号は初めて（国家や大企業のものではなく）一般の人も「使える」ものになったことは確かである。なお &lt;a href=&#34;http://openpgp.org/&#34; target=&#34;_blank&#34;&gt;OpenPGP&lt;/a&gt; 実装のひとつである &lt;a href=&#34;https://gnupg.org/&#34; target=&#34;_blank&#34; title=&#34;The GNU Privacy Guard&#34;&gt;GnuPG&lt;/a&gt; では伝統的な「信用の輪」以外にも X.509 の信用モデルや &lt;a href=&#34;https://en.wikipedia.org/wiki/Trust_on_first_use&#34; target=&#34;_blank&#34;&gt;TOFU (Trust On First Use)&lt;/a&gt; と呼ばれる信用モデルもサポートしている。&amp;#160;&lt;a href=&#34;#fnref:3&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:4&#34;&gt;
&lt;p&gt;なりすましの防止はできなくとも，きちんと鍵と電子署名を運用しているのであれば，抑止にはなるだろう。&amp;#160;&lt;a href=&#34;#fnref:4&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</content>
	</entry><entry>
		<title>Thunderbird でメール暗号化</title>
		<category term="openpgp" label="openpgp" scheme="https://text.baldanders.info/openpgp/" />
		<link rel="alternate" type="text/html" href="https://text.baldanders.info/openpgp/encrypted-mail-with-thunderbird/" />
		<id>tag:text.Baldanders.info,2018-06-25:/openpgp/encrypted-mail-with-thunderbird/</id>
		<published>2018-06-25T21:32:25+09:00</published>
		<updated>2020-09-01T12:18:46+00:00</updated>
		<summary>今回は Thunderbird で OpenPGP 暗号化メールをやり取りする手順について簡単に紹介する。</summary>
		<author>
			<name>Spiegel</name>
			<uri>https://baldanders.info/profile/</uri>
		</author>
		
	<link rel="cc:license" type="application/rdf+xml" href="https://creativecommons.org/licenses/by-sa/4.0/rdf" />


		<content type="html" xml:lang="ja-jp" xml:base="https://text.baldanders.info/">&lt;div class=&#34;box&#34;&gt;&lt;p&gt;&lt;strong&gt;【2020-09-01 追記】&lt;/strong&gt; &lt;a href=&#34;https://www.thunderbird.net/&#34; target=&#34;_blank&#34; title=&#34;Thunderbird — Software made to make email easier. — Mozilla&#34;&gt;Thunderbird&lt;/a&gt; 78 から OpenPGP 署名・暗号化機能は本体に取り込まれました。
この記事は既に obsolete になりましたが，一応残しておきます。
&lt;a href=&#34;https://www.thunderbird.net/&#34; target=&#34;_blank&#34; title=&#34;Thunderbird — Software made to make email easier. — Mozilla&#34;&gt;Thunderbird&lt;/a&gt; 78 による暗号化メールの作成方法は以下の記事が参考になります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://forest.watch.impress.co.jp/docs/news/1273939.html&#34; target=&#34;_blank&#34;&gt;「OpenPGP」がデフォルトで有効化された「Thunderbird 78.2.1」がリリース - 窓の杜&lt;/a&gt; : &lt;a href=&#34;http://openpgp.org/&#34; target=&#34;_blank&#34;&gt;OpenPGP&lt;/a&gt; 鍵の生成から暗号メールの作成まで簡単に開設している&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
&lt;p&gt;フィードバックで少しやり取りして分かったのだが JPCERT/CC の記事は古いまま更新されていないようだ。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.jpcert.or.jp/magazine/security/pgpquick.html&#34; target=&#34;_blank&#34;&gt;はじめての暗号化メール (Thunderbird編)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;なので今回は &lt;a href=&#34;https://www.thunderbird.net/&#34; target=&#34;_blank&#34; title=&#34;Thunderbird — Software made to make email easier. — Mozilla&#34;&gt;Thunderbird&lt;/a&gt; で &lt;a href=&#34;http://openpgp.org/&#34; target=&#34;_blank&#34;&gt;OpenPGP&lt;/a&gt; 暗号化メールをやり取りする手順について簡単に紹介する。
なお &lt;a href=&#34;https://gnupg.org/&#34; target=&#34;_blank&#34; title=&#34;The GNU Privacy Guard&#34;&gt;GnuPG&lt;/a&gt; の導入と鍵の生成は完了しているものとする。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://text.baldanders.info/openpgp/using-gnupg-for-windows-1/&#34; target=&#34;_blank&#34;&gt;GnuPG for Windows インストール編&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://text.baldanders.info/openpgp/using-gnupg-for-windows-2/&#34; target=&#34;_blank&#34;&gt;GnuPG for Windows : gpg-agent について&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://text.baldanders.info/openpgp/gnupg-cheat-sheet/&#34; target=&#34;_blank&#34;&gt;GnuPG チートシート（鍵作成から失効まで）&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;a href=&#34;https://addons.mozilla.org/thunderbird/addon/enigmail/&#34; target=&#34;_blank&#34; title=&#34;Enigmail :: Add-ons for Thunderbird&#34;&gt;Enigmail&lt;/a&gt; の導入&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://www.thunderbird.net/&#34; target=&#34;_blank&#34; title=&#34;Thunderbird — Software made to make email easier. — Mozilla&#34;&gt;Thunderbird&lt;/a&gt; で &lt;a href=&#34;http://openpgp.org/&#34; target=&#34;_blank&#34;&gt;OpenPGP&lt;/a&gt; 暗号化メールをやり取りするには &lt;a href=&#34;https://addons.mozilla.org/thunderbird/addon/enigmail/&#34; target=&#34;_blank&#34; title=&#34;Enigmail :: Add-ons for Thunderbird&#34;&gt;Enigmail&lt;/a&gt; アドオンを導入する。&lt;/p&gt;
&lt;figure style=&#39;margin:0 auto;text-align:center;&#39;&gt;&lt;a href=&#34;https://photo.baldanders.info/flickr/29123820638/&#34;&gt;&lt;img src=&#34;https://photo.baldanders.info/flickr/image/29123820638_m.png&#34; srcset=&#34;https://photo.baldanders.info/flickr/image/29123820638_m.png 500w&#34; sizes=&#34;(min-width:600px) 500px, 80vw&#34; alt=&#34;Search Enigmail&#34; loading=&#34;lazy&#34;&gt;&lt;/a&gt;&lt;figcaption&gt;&lt;div&gt;&lt;a href=&#34;https://photo.baldanders.info/flickr/29123820638/&#34;&gt;Search Enigmail&lt;/a&gt;&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;この状態で &lt;code&gt;[インストール]&lt;/code&gt; ボタンを押してインストールを完了させる。&lt;/p&gt;
&lt;h2&gt;&lt;a href=&#34;https://addons.mozilla.org/thunderbird/addon/enigmail/&#34; target=&#34;_blank&#34; title=&#34;Enigmail :: Add-ons for Thunderbird&#34;&gt;Enigmail&lt;/a&gt; の設定&lt;/h2&gt;
&lt;p&gt;インストールが完了したらメニューから &lt;a href=&#34;https://addons.mozilla.org/thunderbird/addon/enigmail/&#34; target=&#34;_blank&#34; title=&#34;Enigmail :: Add-ons for Thunderbird&#34;&gt;Enigmail&lt;/a&gt; の「セットアップウィザード」を開く。&lt;/p&gt;
&lt;figure style=&#39;margin:0 auto;text-align:center;&#39;&gt;&lt;a href=&#34;https://photo.baldanders.info/flickr/41186104180/&#34;&gt;&lt;img src=&#34;https://photo.baldanders.info/flickr/image/41186104180_m.png&#34; srcset=&#34;https://photo.baldanders.info/flickr/image/41186104180_m.png 500w&#34; sizes=&#34;(min-width:600px) 500px, 80vw&#34; alt=&#34;Enigmail menu&#34; loading=&#34;lazy&#34;&gt;&lt;/a&gt;&lt;figcaption&gt;&lt;div&gt;&lt;a href=&#34;https://photo.baldanders.info/flickr/41186104180/&#34;&gt;Enigmail menu&lt;/a&gt;&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure style=&#39;margin:0 auto;text-align:center;&#39;&gt;&lt;a href=&#34;https://photo.baldanders.info/flickr/42946809382/&#34;&gt;&lt;img src=&#34;https://photo.baldanders.info/flickr/image/42946809382_m.png&#34; srcset=&#34;https://photo.baldanders.info/flickr/image/42946809382_m.png 500w&#34; sizes=&#34;(min-width:600px) 500px, 80vw&#34; alt=&#34;Enigmail setup-wizard (1)&#34; loading=&#34;lazy&#34;&gt;&lt;/a&gt;&lt;figcaption&gt;&lt;div&gt;&lt;a href=&#34;https://photo.baldanders.info/flickr/42946809382/&#34;&gt;Enigmail setup-wizard (1)&lt;/a&gt;&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;ここでは初心者向けの設定を紹介する。&lt;/p&gt;
&lt;figure style=&#39;margin:0 auto;text-align:center;&#39;&gt;&lt;a href=&#34;https://photo.baldanders.info/flickr/42278121714/&#34;&gt;&lt;img src=&#34;https://photo.baldanders.info/flickr/image/42278121714_m.png&#34; srcset=&#34;https://photo.baldanders.info/flickr/image/42278121714_m.png 500w&#34; sizes=&#34;(min-width:600px) 500px, 80vw&#34; alt=&#34;Enigmail setup-wizard (2)&#34; loading=&#34;lazy&#34;&gt;&lt;/a&gt;&lt;figcaption&gt;&lt;div&gt;&lt;a href=&#34;https://photo.baldanders.info/flickr/42278121714/&#34;&gt;Enigmail setup-wizard (2)&lt;/a&gt;&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;メールアカウントに対応する鍵を既に作成している場合はその鍵を選択する（&lt;a href=&#34;https://addons.mozilla.org/thunderbird/addon/enigmail/&#34; target=&#34;_blank&#34; title=&#34;Enigmail :: Add-ons for Thunderbird&#34;&gt;Enigmail&lt;/a&gt; はメールアカウントと &lt;a href=&#34;http://openpgp.org/&#34; target=&#34;_blank&#34;&gt;OpenPGP&lt;/a&gt; 鍵との関連をメールアドレスで行っている）。
対応する鍵がない場合には「メッセージ署名/暗号に使用する鍵ペアを新規に作成する」を選択して &lt;a href=&#34;http://openpgp.org/&#34; target=&#34;_blank&#34;&gt;OpenPGP&lt;/a&gt; 鍵を作成する&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;。&lt;/p&gt;
&lt;figure style=&#39;margin:0 auto;text-align:center;&#39;&gt;&lt;a href=&#34;https://photo.baldanders.info/flickr/29124707788/&#34;&gt;&lt;img src=&#34;https://photo.baldanders.info/flickr/image/29124707788_m.png&#34; srcset=&#34;https://photo.baldanders.info/flickr/image/29124707788_m.png 500w&#34; sizes=&#34;(min-width:600px) 500px, 80vw&#34; alt=&#34;Enigmail setup-wizard (3)&#34; loading=&#34;lazy&#34;&gt;&lt;/a&gt;&lt;figcaption&gt;&lt;div&gt;&lt;a href=&#34;https://photo.baldanders.info/flickr/29124707788/&#34;&gt;Enigmail setup-wizard (3)&lt;/a&gt;&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure style=&#39;margin:0 auto;text-align:center;&#39;&gt;&lt;a href=&#34;https://photo.baldanders.info/flickr/42947411712/&#34;&gt;&lt;img src=&#34;https://photo.baldanders.info/flickr/image/42947411712_m.png&#34; srcset=&#34;https://photo.baldanders.info/flickr/image/42947411712_m.png 500w&#34; sizes=&#34;(min-width:600px) 500px, 80vw&#34; alt=&#34;Enigmail setup-wizard (4)&#34; loading=&#34;lazy&#34;&gt;&lt;/a&gt;&lt;figcaption&gt;&lt;div&gt;&lt;a href=&#34;https://photo.baldanders.info/flickr/42947411712/&#34;&gt;Enigmail setup-wizard (4)&lt;/a&gt;&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure style=&#39;margin:0 auto;text-align:center;&#39;&gt;&lt;a href=&#34;https://photo.baldanders.info/flickr/42278604034/&#34;&gt;&lt;img src=&#34;https://photo.baldanders.info/flickr/image/42278604034_m.png&#34; srcset=&#34;https://photo.baldanders.info/flickr/image/42278604034_m.png 500w&#34; sizes=&#34;(min-width:600px) 500px, 80vw&#34; alt=&#34;Enigmail setup-wizard (5)&#34; loading=&#34;lazy&#34;&gt;&lt;/a&gt;&lt;figcaption&gt;&lt;div&gt;&lt;a href=&#34;https://photo.baldanders.info/flickr/42278604034/&#34;&gt;Enigmail setup-wizard (5)&lt;/a&gt;&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;ここで失効証明書を作っておく&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;。
&lt;code&gt;[失効証明書の生成]&lt;/code&gt; ボタンを押して失効証明書を保存すると &lt;code&gt;[次へ]&lt;/code&gt; ボタンが有効になる。&lt;/p&gt;
&lt;figure style=&#39;margin:0 auto;text-align:center;&#39;&gt;&lt;a href=&#34;https://photo.baldanders.info/flickr/42997052861/&#34;&gt;&lt;img src=&#34;https://photo.baldanders.info/flickr/image/42997052861_m.png&#34; srcset=&#34;https://photo.baldanders.info/flickr/image/42997052861_m.png 500w&#34; sizes=&#34;(min-width:600px) 500px, 80vw&#34; alt=&#34;Enigmail setup-wizard (6)&#34; loading=&#34;lazy&#34;&gt;&lt;/a&gt;&lt;figcaption&gt;&lt;div&gt;&lt;a href=&#34;https://photo.baldanders.info/flickr/42997052861/&#34;&gt;Enigmail setup-wizard (6)&lt;/a&gt;&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;これでセットアップ完了。
なお，アカウント設定ではもう少し詳細な設定が可能である。&lt;/p&gt;
&lt;figure style=&#39;margin:0 auto;text-align:center;&#39;&gt;&lt;a href=&#34;https://photo.baldanders.info/flickr/29125191098/&#34;&gt;&lt;img src=&#34;https://photo.baldanders.info/flickr/image/29125191098_m.png&#34; srcset=&#34;https://photo.baldanders.info/flickr/image/29125191098_m.png 500w&#34; sizes=&#34;(min-width:600px) 500px, 80vw&#34; alt=&#34;Enigmail settings&#34; loading=&#34;lazy&#34;&gt;&lt;/a&gt;&lt;figcaption&gt;&lt;div&gt;&lt;a href=&#34;https://photo.baldanders.info/flickr/29125191098/&#34;&gt;Enigmail settings&lt;/a&gt;&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2&gt;暗号化メールの作成と表示&lt;/h2&gt;
&lt;p&gt;では自分自身宛にメールを作成して動作確認してみよう。&lt;/p&gt;
&lt;figure style=&#39;margin:0 auto;text-align:center;&#39;&gt;&lt;a href=&#34;https://photo.baldanders.info/flickr/29125311968/&#34;&gt;&lt;img src=&#34;https://photo.baldanders.info/flickr/image/29125311968_m.png&#34; srcset=&#34;https://photo.baldanders.info/flickr/image/29125311968_m.png 500w&#34; sizes=&#34;(min-width:600px) 500px, 80vw&#34; alt=&#34;Make mail&#34; loading=&#34;lazy&#34;&gt;&lt;/a&gt;&lt;figcaption&gt;&lt;div&gt;&lt;a href=&#34;https://photo.baldanders.info/flickr/29125311968/&#34;&gt;Make mail&lt;/a&gt;&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;矢印で示した部分で暗号化および電子署名の有無を指定する。
左側が暗号化ボタン，右側が電子署名ボタンである。
2つのボタンはトグルになっていて，押す度にオン・オフを切り替えることができる。
上の図では暗号化と電子署名の両方を有効にしている。&lt;/p&gt;
&lt;p&gt;暗号化または電子署名はメール送信時に行われる。
送信時に件名を保護するか問い合わせがある。&lt;/p&gt;
&lt;figure style=&#39;margin:0 auto;text-align:center;&#39;&gt;&lt;a href=&#34;https://photo.baldanders.info/flickr/42948011252/&#34;&gt;&lt;img src=&#34;https://photo.baldanders.info/flickr/image/42948011252_m.png&#34; srcset=&#34;https://photo.baldanders.info/flickr/image/42948011252_m.png 500w&#34; sizes=&#34;(min-width:600px) 500px, 80vw&#34; alt=&#34;Encrypt title&#34; loading=&#34;lazy&#34;&gt;&lt;/a&gt;&lt;figcaption&gt;&lt;div&gt;&lt;a href=&#34;https://photo.baldanders.info/flickr/42948011252/&#34;&gt;Encrypt title&lt;/a&gt;&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;&lt;code&gt;[件名を保護する]&lt;/code&gt; を選択すると件名を “Encrypted Message” に置き換えて送信する。
本来の件名は復号時に表示される。&lt;/p&gt;
&lt;p&gt;では実際に受信したメールを復号して表示してみよう。&lt;/p&gt;
&lt;figure style=&#39;margin:0 auto;text-align:center;&#39;&gt;&lt;a href=&#34;https://photo.baldanders.info/flickr/29125520728/&#34;&gt;&lt;img src=&#34;https://photo.baldanders.info/flickr/image/29125520728_m.png&#34; srcset=&#34;https://photo.baldanders.info/flickr/image/29125520728_m.png 500w&#34; sizes=&#34;(min-width:600px) 500px, 80vw&#34; alt=&#34;Receive message&#34; loading=&#34;lazy&#34;&gt;&lt;/a&gt;&lt;figcaption&gt;&lt;div&gt;&lt;a href=&#34;https://photo.baldanders.info/flickr/29125520728/&#34;&gt;Receive message&lt;/a&gt;&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;メールの復号と署名検証が正しく行われていることが確認できた。&lt;/p&gt;
&lt;h2&gt;&lt;a href=&#34;http://openpgp.org/&#34; target=&#34;_blank&#34;&gt;OpenPGP&lt;/a&gt; 鍵の管理&lt;/h2&gt;
&lt;p&gt;メニューから &lt;a href=&#34;https://addons.mozilla.org/thunderbird/addon/enigmail/&#34; target=&#34;_blank&#34; title=&#34;Enigmail :: Add-ons for Thunderbird&#34;&gt;Enigmail&lt;/a&gt; の「鍵の管理」を開く。&lt;/p&gt;
&lt;figure style=&#39;margin:0 auto;text-align:center;&#39;&gt;&lt;a href=&#34;https://photo.baldanders.info/flickr/41188654830/&#34;&gt;&lt;img src=&#34;https://photo.baldanders.info/flickr/image/41188654830_m.png&#34; srcset=&#34;https://photo.baldanders.info/flickr/image/41188654830_m.png 500w&#34; sizes=&#34;(min-width:600px) 500px, 80vw&#34; alt=&#34;key management&#34; loading=&#34;lazy&#34;&gt;&lt;/a&gt;&lt;figcaption&gt;&lt;div&gt;&lt;a href=&#34;https://photo.baldanders.info/flickr/41188654830/&#34;&gt;key management&lt;/a&gt;&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure style=&#39;margin:0 auto;text-align:center;&#39;&gt;&lt;a href=&#34;https://photo.baldanders.info/flickr/42949496932/&#34;&gt;&lt;img src=&#34;https://photo.baldanders.info/flickr/image/42949496932_m.png&#34; srcset=&#34;https://photo.baldanders.info/flickr/image/42949496932_m.png 500w&#34; sizes=&#34;(min-width:600px) 500px, 80vw&#34; alt=&#34;enigmail-key-management&#34; loading=&#34;lazy&#34;&gt;&lt;/a&gt;&lt;figcaption&gt;&lt;div&gt;&lt;a href=&#34;https://photo.baldanders.info/flickr/42949496932/&#34;&gt;enigmail-key-management&lt;/a&gt;&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;鍵の管理で公開鍵のインポート・エクスポートや電子署名等の操作ができる。&lt;/p&gt;
&lt;h2&gt;ブックマーク&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.pep.security/&#34; target=&#34;_blank&#34;&gt;p≡p Security&lt;/a&gt; : &lt;a href=&#34;https://addons.mozilla.org/thunderbird/addon/enigmail/&#34; target=&#34;_blank&#34; title=&#34;Enigmail :: Add-ons for Thunderbird&#34;&gt;Enigmail&lt;/a&gt; は &lt;a href=&#34;https://www.pep.security/&#34; target=&#34;_blank&#34; title=&#34;p≡p Security&#34;&gt;p≡p&lt;/a&gt; にも対応しているらしいが試してない&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;参考図書&lt;/h2&gt;
&lt;div class=&#34;hreview&#34;&gt;
  &lt;div class=&#34;photo&#34;&gt;&lt;a href=&#34;https://www.amazon.co.jp/dp/B015643CPE?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;&lt;img src=&#34;https://m.media-amazon.com/images/I/51t6yHHVwEL._SL160_.jpg&#34; width=&#34;113&#34; alt=&#34;photo&#34;&gt;&lt;/a&gt;&lt;/div&gt;
  &lt;dl&gt;
    &lt;dt class=&#34;item&#34;&gt;&lt;a class=&#34;fn url&#34; href=&#34;https://www.amazon.co.jp/dp/B015643CPE?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;暗号技術入門 第3版　秘密の国のアリス&lt;/a&gt;&lt;/dt&gt;
    &lt;dd&gt;結城 浩 (著)&lt;/dd&gt;
    &lt;dd&gt;SBクリエイティブ 2015-08-25 (Release 2015-09-17)&lt;/dd&gt;
    &lt;dd&gt;Kindle版&lt;/dd&gt;
    &lt;dd&gt;B015643CPE (ASIN)&lt;/dd&gt;
    &lt;dd&gt;評価&lt;abbr class=&#34;rating fa-sm&#34; title=&#34;5&#34;&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&lt;/abbr&gt;&lt;/dd&gt;
  &lt;/dl&gt;
  &lt;p class=&#34;description&#34;&gt;SHA-3 や Bitcoin/Blockchain など新しい知見や技術要素を大幅追加。暗号技術を使うだけならこれ1冊でとりあえず無問題。&lt;/p&gt;
  &lt;p class=&#34;powered-by&#34;&gt;reviewed by &lt;a href=&#39;#maker&#39; class=&#39;reviewer&#39;&gt;Spiegel&lt;/a&gt; on &lt;abbr class=&#34;dtreviewed&#34; title=&#34;2015-09-20&#34;&gt;2015-09-20&lt;/abbr&gt; (powered by &lt;a href=&#34;https://affiliate.amazon.co.jp/assoc_credentials/home&#34;&gt;PA-APIv5&lt;/a&gt;)&lt;/p&gt;
&lt;/div&gt; &lt;!-- 暗号技術入門 第3版 --&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;セットアップウィザードでは RSA 4096ビット長の &lt;a href=&#34;http://openpgp.org/&#34; target=&#34;_blank&#34;&gt;OpenPGP&lt;/a&gt; 鍵を生成する。&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:2&#34;&gt;
&lt;p&gt;失効証明書は鍵を失効させる際に必要となる。失効した公開鍵を配布するのを忘れずに。詳しくは「&lt;a href=&#34;https://text.baldanders.info/openpgp/gnupg-cheat-sheet/&#34; target=&#34;_blank&#34;&gt;GnuPG チートシート（鍵作成から失効まで）&lt;/a&gt;」を参照のこと。&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</content>
	</entry><entry>
		<title>複数ファイルをまとめて署名・暗号化する</title>
		<category term="openpgp" label="openpgp" scheme="https://text.baldanders.info/openpgp/" />
		<link rel="alternate" type="text/html" href="https://text.baldanders.info/openpgp/gpgtar/" />
		<id>tag:text.Baldanders.info,2018-05-07:/openpgp/gpgtar/</id>
		<published>2018-05-07T20:46:47+09:00</published>
		<updated>2019-07-01T13:48:09+00:00</updated>
		<summary>暗号化したデータの復号パスワードをメールで送るなどというアホなことをやらかすのは日本独自の慣習らしいが，このような悪習が一刻も早く根絶されることを願う。</summary>
		<author>
			<name>Spiegel</name>
			<uri>https://baldanders.info/profile/</uri>
		</author>
		
	<link rel="cc:license" type="application/rdf+xml" href="https://creativecommons.org/licenses/by-sa/4.0/rdf" />


		<content type="html" xml:lang="ja-jp" xml:base="https://text.baldanders.info/">&lt;p&gt;最近の &lt;a href=&#34;https://gnupg.org/&#34; target=&#34;_blank&#34; title=&#34;The GNU Privacy Guard&#34;&gt;GnuPG&lt;/a&gt; には &lt;a href=&#34;https://www.gnupg.org/documentation/manuals/gnupg/gpgtar.html&#34; target=&#34;_blank&#34; title=&#34;Using the GNU Privacy Guard: gpgtar&#34;&gt;gpgtar&lt;/a&gt; コマンドが付いていて，これは Windows 版でも使える。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ gpgtar -h
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gpgtar (GnuPG) 2.2.7
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Copyright (C) 2018 Free Software Foundation, Inc.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;License GPLv3+: GNU GPL version 3 or later &amp;lt;https://gnu.org/licenses/gpl.html&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;This is free software: you are free to change and redistribute it.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;There is NO WARRANTY, to the extent permitted by law.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Syntax: gpgtar [options] [files] [directories]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Encrypt or sign files into an archive
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;コマンド:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     --create         create an archive
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     --extract        extract an archive
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; -e, --encrypt        create an encrypted archive
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; -d, --decrypt        extract an encrypted archive
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; -s, --sign           create a signed archive
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; -t, --list-archive   list an archive
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;オプション:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; -c, --symmetric      use symmetric encryption
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; -r, --recipient USER-ID
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                      USER-ID用に暗号化
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; -u, --local-user USER-ID
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                      署名や復号にこのUSER-IDを使用
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; -o, --output FILE    出力をFILEに書き出す
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; -v, --verbose        冗長
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; -q, --quiet          いくらかおとなしく
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     --skip-crypto    skip the crypto processing
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     --dry-run        無変更
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Tar options:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; -C, --directory DIRECTORY
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                      extract files into DIRECTORY
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; -T, --files-from FILE
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                      get names to create from FILE
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     --null           -T reads null-terminated names
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;バグは &amp;lt;https://bugs.gnupg.org&amp;gt; までご報告ください。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;a href=&#34;https://www.gnupg.org/documentation/manuals/gnupg/gpgtar.html&#34; target=&#34;_blank&#34; title=&#34;Using the GNU Privacy Guard: gpgtar&#34;&gt;gpgtar&lt;/a&gt; は複数のファイルや指定したフォルダをまとめて暗号化する場合には便利なコマンドである。&lt;/p&gt;
&lt;p&gt;たとえば，フォルダ &lt;code&gt;my-folder&lt;/code&gt; 以下の全てのフォルダ・ファイルをまとめて暗号化するには&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ gpgtar -es -r Alice -u Bob -o hoge my-folder
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;などとすればよい。
ここで &lt;code&gt;Alice&lt;/code&gt; は暗号用の鍵を示すユーザ ID， &lt;code&gt;Bob&lt;/code&gt; は署名用の鍵を示すユーザ ID とする。
出力先の書庫ファイル名には &lt;code&gt;hoge&lt;/code&gt; を指定している。&lt;/p&gt;
&lt;p&gt;書庫ファイル &lt;code&gt;hoge&lt;/code&gt; の中身を見たいなら&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ gpgtar -t hoge
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;とすればよい。
更に書庫ファイルを復号・展開するには&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ gpgtar -d -C . hoge
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;とする。
&lt;code&gt;-C&lt;/code&gt; オプションで出力先のフォルダ（存在しない場合はエラーになる）を指定している。
&lt;code&gt;-C&lt;/code&gt; オプションがないとカレント・フォルダに勝手にフォルダを掘って展開してしまうのでご注意を。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.gnupg.org/documentation/manuals/gnupg/gpgtar.html&#34; target=&#34;_blank&#34; title=&#34;Using the GNU Privacy Guard: gpgtar&#34;&gt;gpgtar&lt;/a&gt; による暗号化手順は以下の通り。&lt;/p&gt;
&lt;figure style=&#39;margin:0 auto;text-align:center;&#39;&gt;
&lt;div class=&#34;mermaid&#34;&gt;
graph TD
  tar[&#34;tar 形式で書庫化&#34;]
  sign[&#34;書庫データへ署名&#34;]
  comp[&#34;データの圧縮&#34;]
  enc[&#34;圧縮データの暗号化&#34;]

  tar--&gt;sign
  sign--&gt;comp
  comp--&gt;enc
&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;署名を行わない場合は署名処理はスキップされる。&lt;/p&gt;
&lt;p&gt;圧縮処理は &lt;a href=&#34;https://gnupg.org/&#34; target=&#34;_blank&#34; title=&#34;The GNU Privacy Guard&#34;&gt;GnuPG&lt;/a&gt; の機能を使って行われる。
&lt;a href=&#34;https://gnupg.org/&#34; target=&#34;_blank&#34; title=&#34;The GNU Privacy Guard&#34;&gt;GnuPG&lt;/a&gt; で利用可能な圧縮形式は以下の通り。&lt;/p&gt;
&lt;div&gt;
&lt;figure&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;&lt;th&gt;ID&lt;/th&gt;&lt;th&gt;アルゴリズム&lt;/th&gt;&lt;th&gt;参考文献&lt;/th&gt;&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;1&lt;/td&gt;
&lt;td class=&#34;nowrap&#34;&gt;ZIP&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://tools.ietf.org/html/rfc1951&#34;&gt;RFC1951&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;2&lt;/td&gt;
&lt;td class=&#34;nowrap&#34;&gt;ZLIB&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://tools.ietf.org/html/rfc1950&#34;&gt;RFC1950&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td class=&#39;right&#39;&gt;3&lt;/td&gt;
&lt;td class=&#34;nowrap&#34;&gt;BZip2&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;http://www.bzip.org/&#34;&gt;bzip2&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;figcaption&gt;GnuPG で使用可能なデータ圧縮アルゴリズム&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;ちなみに先程の &lt;code&gt;hoge&lt;/code&gt; ファイルを&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ gpg -d -o hoge.tar hoge
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;とすれば tar 形式のファイル &lt;code&gt;hoge.tar&lt;/code&gt; が出力される。&lt;/p&gt;
&lt;p&gt;暗号化したデータの復号パスワードをメールで送るなどというアホなことをやらかすのは日本独自の慣習らしいが，このような悪習が一刻も早く根絶されることを願う。&lt;/p&gt;
</content>
	</entry>
</feed>
