<feed xmlns="http://www.w3.org/2005/Atom" xmlns:cc="http://web.resource.org/cc/">
	<title>List of Ecc [text.Baldanders.info]</title>
	<link rel="alternate" type="text/html" href="https://text.baldanders.info/tags/ecc/" />
	<link rel="self" type="application/atom+xml" href="https://text.baldanders.info/tags/ecc/index.xml" />
	<id>tag:text.Baldanders.info,2024-04-16:/tags</id>
	<updated>2024-04-16T20:42:46+09:00</updated>
	<subtitle>帰ってきた「しっぽのさきっちょ」</subtitle>
	<icon>https://text.baldanders.info/images/avatar.jpg</icon>
	<logo>https://text.baldanders.info/images/avatar.jpg</logo>

	<entry>
		<title>PuTTY 0.81 がリリースされた【セキュリティ・アップデート】</title>
		<link rel="alternate" type="text/html" href="https://text.baldanders.info/release/2024/04/putty-0_81-is-released/" />
		<id>tag:text.Baldanders.info,2024-04-16:/release/2024/04/putty-0_81-is-released/</id>
		<published>2024-04-16T11:42:46+00:00</published>
		<updated>2025-04-10T22:54:06+00:00</updated>
		<summary>NIST P-521 楕円曲線を使った ECDSA 鍵を使ってる人は差し替えが必要</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 用の SSH クライアントソフトである &lt;a href=&#34;https://www.chiark.greenend.org.uk/~sgtatham/putty/&#34; target=&#34;_blank&#34; title=&#34;PuTTY: a free SSH and Telnet client&#34;&gt;PuTTY&lt;/a&gt; について ECDSA 署名に絡んで秘密鍵が漏洩するリスクがあるらしい。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/vuln-p521-bias.html&#34; target=&#34;_blank&#34;&gt;PuTTY vulnerability vuln-p521-bias&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;figure lang=&#34;en&#34;&gt;
&lt;blockquote cite=&#34;https://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/vuln-p521-bias.html&#34;&gt;Every version of the PuTTY tools from 0.68 to 0.80 inclusive has a critical vulnerability in the code that generates signatures from ECDSA private keys which use the NIST P521 curve. (PuTTY, or Pageant, generates a signature from a key when using it to authenticate you to an SSH server.)&lt;/blockquote&gt;
&lt;figcaption&gt;&lt;div&gt;via &lt;q&gt;&lt;a href=&#34;https://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/vuln-p521-bias.html&#34;&gt;PuTTY vulnerability vuln-p521-bias&lt;/a&gt;&lt;/q&gt;&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;上の引用の通り，対象となるのは &lt;a href=&#34;https://www.chiark.greenend.org.uk/~sgtatham/putty/&#34; target=&#34;_blank&#34; title=&#34;PuTTY: a free SSH and Telnet client&#34;&gt;PuTTY&lt;/a&gt; 0,68 から 0.80 までのバージョン。
最新の 0.81 で修正されている。
なお FileZilla, WinSCP, TortoiseGit, TortoiseSVN といったアプリケーションには &lt;a href=&#34;https://www.chiark.greenend.org.uk/~sgtatham/putty/&#34; target=&#34;_blank&#34; title=&#34;PuTTY: a free SSH and Telnet client&#34;&gt;PuTTY&lt;/a&gt; がバンドルされていることがあるので，これらのアップデート情報にも注意すること。
&lt;a href=&#34;https://www.chiark.greenend.org.uk/~sgtatham/putty/&#34; target=&#34;_blank&#34; title=&#34;PuTTY: a free SSH and Telnet client&#34;&gt;PuTTY&lt;/a&gt; は年に1,2回くらいの頻度でセキュリティ・アップデートが発生するので（ちゃんとメンテされてる証拠），バンドル品は使わないほうがいいと思うなぁ。&lt;/p&gt;
&lt;p&gt;日本語カスタム版は PuTTY-ranvis がおすすめ。
こちらも 0.81 がリリースされた。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.ranvis.com/putty&#34; target=&#34;_blank&#34;&gt;PuTTYrv (PuTTY-ranvis) - Ranvis software&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;厄介なことに今回はアプリケーションを更新しただけではダメで，認証鍵を新しいものに差し替える必要があるかも知れない。
ただし対象となるのは NIST P-521 楕円曲線を使った ECDSA 鍵のみ。
それ以外はとりあえずセーフということで（笑）&lt;/p&gt;
&lt;p&gt;今回の脆弱性は ECDSA 署名時に使用する nonce を生成するための乱数生成に起因するものらしい。
以前から DSA/ECDSA の実装上のネックとなっているのがこの乱数生成部分で，ここの実装をサボると秘密鍵の漏洩に繋がることが知られている。
まぁ，今回はサボったわけではないだろうが，何らかの不備があったということだろう。&lt;/p&gt;
&lt;p&gt;というわけで，新たに認証鍵を作成するのなら EdDSA (ed25519 曲線) 鍵にすることをお勧めする。
EdDSA は2023年にリリースされた &lt;a href=&#34;https://csrc.nist.gov/pubs/fips/186-5/final&#34; target=&#34;_blank&#34; title=&#34;FIPS 186-5, Digital Signature Standard (DSS) | CSRC&#34;&gt;NIST FIPS 186-5&lt;/a&gt; に標準として正式に組み込まれたので，仕事用でも大手を振って使ってよい。&lt;/p&gt;
&lt;h2&gt;&lt;a href=&#34;https://nvd.nist.gov/vuln/detail/CVE-2024-31497&#34; target=&#34;_blank&#34;&gt;CVE-2024-31497&lt;/a&gt;&lt;/h2&gt;
&lt;figure lang=&#34;en&#34;&gt;
&lt;blockquote cite=&#34;https://nvd.nist.gov/vuln/detail/CVE-2024-31497&#34;&gt;In PuTTY 0.68 through 0.80 before 0.81, biased ECDSA nonce generation allows an attacker to recover a user&amp;rsquo;s NIST P-521 secret key via a quick attack in approximately 60 signatures. This is especially important in a scenario where an adversary is able to read messages signed by PuTTY or Pageant. The required set of signed messages may be publicly readable because they are stored in a public Git service that supports use of SSH for commit signing, and the signatures were made by Pageant through an agent-forwarding mechanism. In other words, an adversary may already have enough signature information to compromise a victim&amp;rsquo;s private key, even if there is no further use of vulnerable PuTTY versions. After a key compromise, an adversary may be able to conduct supply-chain attacks on software maintained in Git. A second, independent scenario is that the adversary is an operator of an SSH server to which the victim authenticates (for remote login or file copy), even though this server is not fully trusted by the victim, and the victim uses the same private key for SSH connections to other services operated by other entities. Here, the rogue server operator (who would otherwise have no way to determine the victim&amp;rsquo;s private key) can derive the victim&amp;rsquo;s private key, and then use it for unauthorized access to those other services. If the other services include Git services, then again it may be possible to conduct supply-chain attacks on software maintained in Git. This also affects, for example, FileZilla before 3.67.0, WinSCP before 6.3.3, TortoiseGit before 2.15.0.1, and TortoiseSVN through 1.14.6.&lt;/blockquote&gt;
&lt;figcaption&gt;&lt;div&gt;via &lt;q&gt;&lt;a href=&#34;https://nvd.nist.gov/vuln/detail/CVE-2024-31497&#34;&gt;CVE-2024-31497&lt;/a&gt;&lt;/q&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;p&gt;&lt;a href=&#34;https://www.openwall.com/lists/oss-security/2024/04/15/6&#34; target=&#34;_blank&#34;&gt;oss-security - CVE-2024-31497: Secret Key Recovery of NIST P-521 Private Keys  Through Biased ECDSA Nonces in PuTTY Client&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://forest.watch.impress.co.jp/docs/news/1584589.html&#34; target=&#34;_blank&#34;&gt;「PuTTY」に秘密鍵が復元できてしまう深刻な脆弱性 ～「WinSCP」など他ツールにも影響 - 窓の杜&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&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;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&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;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://text.baldanders.info/openpgp/ssh-key-management-with-gnupg/&#34; target=&#34;_blank&#34;&gt;OpenSSH の認証鍵を GunPG で作成・管理する&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&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; : GnuPG と PuTTY を連携する&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/B079NL1L9K?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/51mVqXeeVyL._SL160_.jpg&#34; width=&#34;107&#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/B079NL1L9K?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;SSH Mastery: OpenSSH, PuTTY, Tunnels and Keys (IT Mastery Book 12) (English Edition)&lt;/a&gt;&lt;/dt&gt;
    &lt;dd&gt;Lucas, Michael W (著)&lt;/dd&gt;
    &lt;dd&gt;Tilted Windmill Press 2018-02-06 (Release 2018-02-06)&lt;/dd&gt;
    &lt;dd&gt;Kindle版&lt;/dd&gt;
    &lt;dd&gt;B079NL1L9K (ASIN)&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;&lt;strong&gt;[Comment]&lt;/strong&gt; タイトルを見て “SSH Mystery” と空目したアホは私です。洋書だけど英語不得手の私にも読める内容。&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;2021-01-11&#34;&gt;2021-01-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;!-- SSH Mastery --&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;&lt;strong&gt;[Comment]&lt;/strong&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/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;&lt;strong&gt;[Comment]&lt;/strong&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;
</content>
	</entry><entry>
		<title>NIST FIPS 186-5 および SP 800-186 正式版がリリースされた</title>
		<link rel="alternate" type="text/html" href="https://text.baldanders.info/remark/2023/02/nist-fips-186-5/" />
		<id>tag:text.Baldanders.info,2023-02-04:/remark/2023/02/nist-fips-186-5/</id>
		<published>2023-02-04T00:30:31+00:00</published>
		<updated>2023-02-04T00:43:39+00:00</updated>
		<summary>DSA が標準から外れる / ECDSA 自体を定義し直す / EdDSA が標準として承認された</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;長い間ドラフト状態だった FIPS 186-5 および SP 800-186 の最終版が出たようだ。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://csrc.nist.gov/publications/detail/fips/186/5/final&#34; target=&#34;_blank&#34;&gt;FIPS 186-5, Digital Signature Standard (DSS) | CSRC&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://csrc.nist.gov/publications/detail/sp/800-186/final&#34; target=&#34;_blank&#34;&gt;SP 800-186, Discrete Logarithm-Based Crypto: Elliptic Curve Parameters | CSRC&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この記事では &lt;a href=&#34;https://csrc.nist.gov/publications/detail/fips/186/5/final&#34; target=&#34;_blank&#34; title=&#34;FIPS 186-5, Digital Signature Standard (DSS) | CSRC&#34;&gt;FIPS 186-5&lt;/a&gt; に注目して書いてみる。&lt;/p&gt;
&lt;p&gt;大きな変更は3つ。&lt;/p&gt;
&lt;h2&gt;DSA が標準から外れる&lt;/h2&gt;
&lt;figure lang=&#34;en&#34;&gt;
&lt;blockquote cite=&#34;https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-5.pdf&#34;&gt;Prior versions of this standard specified the DSA. This standard no longer approves the DSA for digital signature generation. However, the DSA may be used to verify signatures generated prior to the implementation date of this standard. See FIPS 186-4 [7] for the specifications for the DSA.&lt;/blockquote&gt;
&lt;figcaption&gt;&lt;div&gt;via &lt;q&gt;&lt;a href=&#34;https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-5.pdf&#34;&gt;“Digital Signature Standard (DSS)” section 4&lt;/a&gt;&lt;/q&gt;&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;ということで予定通り，電子署名生成用途としては， DSA は NIST 標準から外れることになった。
ただし，以前に DSA で作成された署名を検証する必要があるため，アプリケーションによっては実装を残しておく必要がある。
DSA 実装に関しては旧版の FIPS 186-4 を読めってあるな。&lt;/p&gt;
&lt;h2&gt;ECDSA 自体を定義し直す&lt;/h2&gt;
&lt;p&gt;今まで ECDSA の実装については，以前の FIPS 186-4 だけでは完結してなくて， ANSI X9.62 なんかも併せて参照する必要があった。
特に ANSI X9.62 は所謂 paywalled document って奴で，誰でも気軽に見れるもんじゃないのね。&lt;/p&gt;
&lt;p&gt;まだ中身をちゃんと読んでないのだが，この版ではそういった外部参照を取り払って &lt;a href=&#34;https://csrc.nist.gov/publications/detail/fips/186/5/final&#34; target=&#34;_blank&#34; title=&#34;FIPS 186-5, Digital Signature Standard (DSS) | CSRC&#34;&gt;FIPS 186-5&lt;/a&gt; のみで実装を定義しているようだ。
めでたい！ 言い方を変えると，今後 ECDSA を実装する際は &lt;a href=&#34;https://csrc.nist.gov/publications/detail/fips/186/5/final&#34; target=&#34;_blank&#34; title=&#34;FIPS 186-5, Digital Signature Standard (DSS) | CSRC&#34;&gt;FIPS 186-5&lt;/a&gt; を見ろってことでもある。
まぁ，私を含めて殆どの人は偉い人が作ったライブラリを利用するだけで，中身を気にする人は少ないだろうけど（笑）&lt;/p&gt;
&lt;h2&gt;EdDSA が標準として承認された&lt;/h2&gt;
&lt;p&gt;そして最大のトピックは EdDSA が NIST 標準として承認されたことだろう。&lt;/p&gt;
&lt;p&gt;ちなみに EdDSA については，日本の &lt;a href=&#34;https://www.cryptrec.go.jp/topics/cryptrec_20211012_c20report.html&#34; target=&#34;_blank&#34; title=&#34;CRYPTREC | CRYPTREC Report 2020&#34;&gt;CRYPTREC でも評価&lt;/a&gt;が行われていて&lt;/p&gt;
&lt;figure&gt;
&lt;blockquote cite=&#34;https://www.cryptrec.go.jp/report/cryptrec-rp-2000-2020.pdf&#34;&gt;&lt;ul&gt;
&lt;li&gt;総評：下記の観点から、EdDSA の構成に関わる安全性において、EdDSA が ECDSA に劣ると考えられる点は無いと思われると述べている。
&lt;ul&gt;
&lt;li&gt;Schnorr 署名をもとに EdDSA は構成されているため、ランダムオラクルモデルで安全性が証明されている Schnorr 署名に対する安全性評価を参考にすることができる。&lt;/li&gt;
&lt;li&gt;Schnorr 署名との大きな違いはノンスの生成方法であるが、EdDSA におけるノンスの生成方法は、署名の内部乱数を弱い疑似乱数生成器に委ねることによる危険を排除し、現実的な脅威を回避するための配慮が施されている。&lt;/li&gt;
&lt;li&gt;比較対象となる ECDSA については、既存結果として generic group model でのみ安全性が証明されている。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;&lt;div&gt;&lt;q&gt;&lt;a href=&#34;https://www.cryptrec.go.jp/report/cryptrec-rp-2000-2020.pdf&#34;&gt;CRYPTREC Report 2020 暗号技術評価委員会報告&lt;/a&gt;&lt;/q&gt;より&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;と書かれている。
まぁ，これで政府調達でも何でも大手を振って EdDSA を使えるというものである。&lt;/p&gt;
&lt;p&gt;めでたい！ （大事なことなので2度言いました）&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/2021/02/dsa-deprecation/&#34; target=&#34;_blank&#34;&gt;DSA は NIST 電子署名標準から外れるようだ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://text.baldanders.info/remark/2022/02/breaking-256-bit-elliptic-curve-encryption-with-a-quantum-computer/&#34; target=&#34;_blank&#34;&gt;量子コンピュータで256ビット楕円曲線暗号は破れるか&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;&lt;strong&gt;[Comment]&lt;/strong&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/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;&lt;strong&gt;[Comment]&lt;/strong&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;
</content>
	</entry><entry>
		<title>量子コンピュータで256ビット楕円曲線暗号は破れるか</title>
		<link rel="alternate" type="text/html" href="https://text.baldanders.info/remark/2022/02/breaking-256-bit-elliptic-curve-encryption-with-a-quantum-computer/" />
		<id>tag:text.Baldanders.info,2022-02-19:/remark/2022/02/breaking-256-bit-elliptic-curve-encryption-with-a-quantum-computer/</id>
		<published>2022-02-19T04:39:48+00: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;Bruce Schneier 先生のブログ記事より。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://avs.scitation.org/doi/10.1116/5.0073075&#34; target=&#34;_blank&#34;&gt;The impact of hardware specifications on reaching quantum advantage in the fault tolerant regime: AVS Quantum Science: Vol 4, No 1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.schneier.com/blog/archives/2022/02/breaking-245-bit-elliptic-curve-encryption-with-a-quantum-computer.html&#34; target=&#34;_blank&#34;&gt;Breaking 256-bit Elliptic Curve Encryption with a Quantum Computer - Schneier on Security&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この論文で256ビット楕円曲線暗号を破るのに必要な量子コンピュータのサイズを計算したらしい。
概要（ABSTRACT）には&lt;/p&gt;
&lt;figure lang=&#34;en&#34;&gt;
&lt;blockquote cite=&#34;https://avs.scitation.org/doi/10.1116/5.0073075&#34;&gt;&lt;q&gt;Finally, we calculate the number of physical qubits required to break the 256-bit elliptic curve encryption of keys in the Bitcoin network within the small available time frame in which it would actually pose a threat to do so. It would require $317 \times 10^6$ physical qubits to break the encryption within one hour using the surface code, a code cycle time of $1\ {\mu}\mathrm{s}$, a reaction time of $10\ {\mu}\mathrm{s}$, and a physical gate error of $10^{−3}$. To instead break the encryption within one day, it would require $13 \times 10^6$ physical qubits&lt;/q&gt;.&lt;/blockquote&gt;
&lt;figcaption&gt;&lt;div&gt;via &lt;q&gt;&lt;a href=&#34;https://avs.scitation.org/doi/10.1116/5.0073075&#34;&gt;The impact of hardware specifications on reaching quantum advantage in the fault tolerant regime&lt;/a&gt;&lt;/q&gt;&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;とあるので，そういうことなのだろう。
ちなみに2021年末の時点で &lt;a href=&#34;https://www.newscientist.com/article/2297583-ibm-creates-largest-ever-superconducting-quantum-computer/&#34; target=&#34;_blank&#34; title=&#34;IBM creates largest ever superconducting quantum computer | New Scientist&#34;&gt;IBM が開発した量子コンピュータ&lt;/a&gt;のサイズが127物理キュービットで最大らしいので，まぁ当分は大丈夫というところなのだろう。&lt;/p&gt;
&lt;p&gt;日本でも既存暗号の量子コンピュータ耐性について継続的に調査と評価が行われていて，毎年の &lt;a href=&#34;https://www.cryptrec.go.jp/&#34; target=&#34;_blank&#34;&gt;CRYPTREC&lt;/a&gt; Report に載っている。&lt;/p&gt;
&lt;p&gt;2020年2月に公開された「&lt;a href=&#34;https://www.cryptrec.go.jp/topics/cryptrec-er-0001-2019.html&#34; target=&#34;_blank&#34;&gt;現在の量子コンピュータによる暗号技術の安全性への影響&lt;/a&gt;」では&lt;/p&gt;
&lt;figure&gt;
&lt;blockquote cite=&#34;https://www.cryptrec.go.jp/topics/cryptrec-er-0001-2019.html&#34;&gt;&lt;q&gt;例えば、量子コンピュータを用いて2048ビットRSA合成数の素因数分解を行う場合には、量子誤りが一切ないという理想的な環境下でも、4098量子ビットが必要であり、1012～1013回のゲート演算が必要であると見積もられています。また、量子誤りがあるという現実的な環境下では、2000万量子ビットが必要であるという見積もりもあります&lt;/q&gt;。&lt;/blockquote&gt;
&lt;figcaption&gt;&lt;div&gt;&lt;q&gt;&lt;a href=&#34;https://www.cryptrec.go.jp/topics/cryptrec-er-0001-2019.html&#34;&gt;現在の量子コンピュータによる暗号技術の安全性への影響&lt;/a&gt;&lt;/q&gt;より&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure&gt;
&lt;blockquote cite=&#34;https://www.cryptrec.go.jp/topics/cryptrec-er-0001-2019.html&#34;&gt;&lt;q&gt;量子コンピュータの性能を測る上での指標（量子ビット数、量子誤りの大きさ、演算可能回数など）や、量子コンピュータの開発状況もあわせて考慮にいれると、近い将来に、2048ビットの素因数分解や256ビットの楕円曲線上の離散対数問題が解かれる可能性は低いと考えます&lt;/q&gt;。&lt;/blockquote&gt;
&lt;figcaption&gt;&lt;div&gt;&lt;q&gt;&lt;a href=&#34;https://www.cryptrec.go.jp/topics/cryptrec-er-0001-2019.html&#34;&gt;現在の量子コンピュータによる暗号技術の安全性への影響&lt;/a&gt;&lt;/q&gt;より&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;とあるが，当時の試算は&lt;/p&gt;
&lt;figure&gt;
&lt;blockquote cite=&#34;https://www.cryptrec.go.jp/topics/cryptrec-er-0001-2019.html&#34;&gt;&lt;p&gt;&lt;q&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; で使用されている量子コンピュータは53量子ビットであり、計算は合計1543回のゲート演算で構成されています。このとき、1回当たりの計算時間は、1マイクロ秒程度であると見積もられています。なお、ターゲットとする問題の性質上、量子誤り訂正は組み込まれていません&lt;/q&gt;。&lt;/p&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://www.nature.com/articles/s41586-019-1666-5&#34; target=&#34;_blank&#34;&gt;Quantum supremacy using a programmable superconducting processor&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;/ol&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;&lt;div&gt;&lt;q&gt;&lt;a href=&#34;https://www.cryptrec.go.jp/topics/cryptrec-er-0001-2019.html&#34;&gt;現在の量子コンピュータによる暗号技術の安全性への影響&lt;/a&gt;&lt;/q&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;p&gt;&lt;a href=&#34;https://www.technologyreview.jp/n/2022/02/03/268972&#34; target=&#34;_blank&#34;&gt;MIT Tech Review: ポスト量子暗号の実装安全性を向上、東北大学とNTTが考案&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/eddsa/&#34; target=&#34;_blank&#34;&gt;Edwards-curve Digital Signature Algorithm&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/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;&lt;strong&gt;[Comment]&lt;/strong&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>DSA は NIST 電子署名標準から外れるようだ</title>
		<link rel="alternate" type="text/html" href="https://text.baldanders.info/remark/2021/02/dsa-deprecation/" />
		<id>tag:text.Baldanders.info,2021-02-17:/remark/2021/02/dsa-deprecation/</id>
		<published>2021-02-17T11:53:55+00:00</published>
		<updated>2023-02-04T00:43:39+00:00</updated>
		<summary>ドラフト版 FIPS 186-5 の DSA の節の内容がまるっと削られている。</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://golang.org/doc/go1.16&#34; target=&#34;_blank&#34; title=&#34;Go 1.16 Release Notes - The Go Programming Language&#34;&gt;Go 1.16 のリリースノート&lt;/a&gt;を眺めていて今さら気付いたのだが，いまだ&lt;a href=&#34;https://csrc.nist.gov/publications/detail/fips/186/5/draft&#34; target=&#34;_blank&#34; title=&#34;FIPS 186-5 (Draft), Digital Signature Standard (DSS) | CSRC&#34;&gt;ドラフト中の FIPS 186-5&lt;/a&gt; によると， DSA を「電子署名生成用途としては」電子署名標準（Digital Signature Standard; DSS）から外すつもりのようだ。
ドラフト版 &lt;a href=&#34;https://csrc.nist.gov/publications/detail/fips/186/5/draft&#34; target=&#34;_blank&#34; title=&#34;FIPS 186-5 (Draft), Digital Signature Standard (DSS) | CSRC&#34;&gt;FIPS 186-5&lt;/a&gt; の DSA の節はまるっと削られて以下の文章のみ掲載されている。&lt;/p&gt;
&lt;figure lang=&#34;en&#34;&gt;
&lt;blockquote cite=&#34;https://csrc.nist.gov/publications/detail/fips/186/5/draft&#34;&gt;&lt;q&gt;Prior versions of this standard specified the DSA. This standard no longer approves DSA for digital signature generation. DSA may be used to verify signatures generated prior to the implementation date of this standard. See FIPS 186-4 [20] for the specifications for DSA&lt;/q&gt;.&lt;/blockquote&gt;
&lt;figcaption&gt;&lt;div&gt;via &lt;q&gt;&lt;a href=&#34;https://csrc.nist.gov/publications/detail/fips/186/5/draft&#34;&gt;FIPS 186-5 (Draft), Digital Signature Standard (DSS)&lt;/a&gt;&lt;/q&gt;&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&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;その代わりといってはナニだが楕円曲線暗号のひとつである EdDSA (楕円曲線 ed25519/ed488) が &lt;a href=&#34;https://csrc.nist.gov/publications/detail/fips/186/5/draft&#34; target=&#34;_blank&#34; title=&#34;FIPS 186-5 (Draft), Digital Signature Standard (DSS) | CSRC&#34;&gt;FIPS 186-5&lt;/a&gt; から電子署名標準のひとつとして加わることになっている。
これについては以前に記事を書いた（なんでそのときに DSA に気がつかなかったのか）。&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;a href=&#34;http://tools.ietf.org/html/rfc4880&#34; target=&#34;_blank&#34; title=&#34;RFC 4880 - OpenPGP Message Format&#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; が正式にリリースされるタイミングでメインの鍵を替えようかと目論んでいるのだが，前倒ししたほうがいいのかねぇ。&lt;/p&gt;
&lt;h2&gt;ブックマーク&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/golang/go/issues/40337&#34; target=&#34;_blank&#34;&gt;crypto/dsa: deprecate and remove from crypto/x509 and x/crypto/ssh · Issue #40337 · golang/go · GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://buttondown.email/cryptography-dispatches/archive/cryptography-dispatches-dsa-is-past-its-prime/&#34; target=&#34;_blank&#34;&gt;Cryptography Dispatches: DSA Is Past Its Prime&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/release/2021/02/go-1_16-is-released/&#34; target=&#34;_blank&#34;&gt;Go 1.16 がリリースされた&lt;/a&gt;： Go 1.16 では &lt;a href=&#34;https://golang.org/pkg/crypto/dsa/&#34; target=&#34;_blank&#34; title=&#34;dsa - The Go Programming Language&#34;&gt;&lt;code&gt;crypto/dsa&lt;/code&gt;&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/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;&lt;strong&gt;[Comment]&lt;/strong&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/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;&lt;strong&gt;[Comment]&lt;/strong&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;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;DSA は実装に必要な要素技術が多く，そのうちのひとつでも瑕疵があれば全体のセキュリティ強度が下がってしまう。&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>Edwards-curve Digital Signature Algorithm</title>
		<link rel="alternate" type="text/html" href="https://text.baldanders.info/remark/2020/06/eddsa/" />
		<id>tag:text.Baldanders.info,2020-06-07:/remark/2020/06/eddsa/</id>
		<published>2020-06-07T08:33:37+00:00</published>
		<updated>2026-07-20T23:44:45+00:00</updated>
		<summary>SP 800-57 Part 1 Rev.5 が正式リリースした記念に EdDSA に関する情報を覚え書きの形で記しておく。</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;ネットであちこち眺めていて気がついたのだが SP 800-57 第一部の Rev.5 最終版が2020年5月にリリースされていた。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://csrc.nist.gov/publications/detail/sp/800-57-part-1/rev-5/final&#34; target=&#34;_blank&#34;&gt;SP 800-57 Part 1 Rev. 5, Recommendation for Key Management: Part 1 – General | CSRC&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;私はセキュリティや暗号技術の専門家ではないし Rev.5 の変更点が（軽微なものも合わせて）67項目もあって全部は紹介しきれないので，ひとつだけ&lt;/p&gt;
&lt;figure lang=&#34;en&#34;&gt;
&lt;blockquote cite=&#34;https://doi.org/10.6028/NIST.SP.800-57pt1r5&#34;&gt;
&lt;q&gt;In Section 2.2, EdDSA was added. Modified ECDSA&lt;/q&gt;.
&lt;/blockquote&gt;
&lt;figcaption&gt;&lt;div&gt;via &lt;q&gt;&lt;a href=&#34;https://doi.org/10.6028/NIST.SP.800-57pt1r5&#34;&gt;SP 800-57 Part 1 Revision 5&lt;/a&gt;&lt;/q&gt;&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;について関連情報を覚え書きの形で記しておく。&lt;/p&gt;
&lt;h2&gt;&lt;a href=&#34;https://www.rfc-editor.org/rfc/rfc8032.html&#34; target=&#34;_blank&#34; title=&#34;RFC 8032: Edwards-Curve Digital Signature Algorithm (EdDSA)&#34;&gt;RFC 8032&lt;/a&gt;: Edwards-Curve Digital Signature Algorithm (EdDSA)&lt;/h2&gt;
&lt;p&gt;EdDSA のオリジナルは2011年に公開された “&lt;span&gt;&lt;a href=&#34;http://ed25519.cr.yp.to/ed25519-20110926.pdf&#34;&gt;High-speed high-security signatures &lt;sup&gt;&lt;i class=&#34;far fa-file-pdf&#34;&gt;&lt;/i&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt;” らしい。
その後も改良版が出たり色々あって，2017年に &lt;a href=&#34;https://www.rfc-editor.org/rfc/rfc8032.html&#34; target=&#34;_blank&#34; title=&#34;RFC 8032: Edwards-Curve Digital Signature Algorithm (EdDSA)&#34;&gt;RFC 8032&lt;/a&gt; として標準化された。&lt;/p&gt;
&lt;p&gt;EdDSA は以下の特徴を持っている。&lt;/p&gt;
&lt;figure lang=&#34;en&#34;&gt;
&lt;blockquote cite=&#34;https://www.rfc-editor.org/rfc/rfc8032.html&#34;&gt;&lt;ol&gt;
&lt;li&gt;EdDSA provides high performance on a variety of platforms;&lt;/li&gt;
&lt;li&gt;The use of a unique random number for each signature is not required;&lt;/li&gt;
&lt;li&gt;It is more resilient to side-channel attacks;&lt;/li&gt;
&lt;li&gt;EdDSA uses small public keys (32 or 57 bytes) and signatures (64 or 114 bytes) for Ed25519 and Ed448, respectively;&lt;/li&gt;
&lt;li&gt;The formulas are &amp;ldquo;complete&amp;rdquo;, i.e., they are valid for all points on the curve, with no exceptions.  This obviates the need for EdDSA to perform expensive point validation on untrusted public values; and&lt;/li&gt;
&lt;li&gt;EdDSA provides collision resilience, meaning that hash-function collisions do not break this system (only holds for PureEdDSA).&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;&lt;div&gt;via &lt;q&gt;&lt;a href=&#34;https://www.rfc-editor.org/rfc/rfc8032.html&#34;&gt;RFC 8032: Edwards-Curve Digital Signature Algorithm (EdDSA)&lt;/a&gt;&lt;/q&gt;&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;特に2番目が重要。&lt;/p&gt;
&lt;p&gt;これまでの NIST 標準の（ECDSA を含む） DSA は署名の度にランダムな値をひとつ決めないといけないのだが，ここの実装をサボると，最悪の場合，秘密鍵の漏洩に繋がる。
更に言うと，かつて SP 800-90A に載っていた疑似乱数生成器 Dual_EC_DRBG に NSA の関与が疑われる欠陥が発覚し &lt;a href=&#34;https://csrc.nist.gov/publications/detail/sp/800-90a/rev-1/final&#34; target=&#34;_blank&#34; title=&#34;SP 800-90A Rev. 1, Random Number Generation Using Deterministic RBGs | CSRC&#34;&gt;SP 800-90A を改訂&lt;/a&gt;する騒ぎにまで発展したこともある。&lt;/p&gt;
&lt;p&gt;このように DSA の具体的な実装について常に懸念が付きまとっているため，より安全性が高いとされる EdDSA が注目されることとなった&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;EdDSA で使える楕円曲線には&lt;span&gt;&lt;a href=&#34;http://ed25519.cr.yp.to/eddsa-20150704.pdf&#34;&gt;かなりのバリエーションがある &lt;sup&gt;&lt;i class=&#34;far fa-file-pdf&#34;&gt;&lt;/i&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt; のだが， &lt;a href=&#34;https://www.rfc-editor.org/rfc/rfc8032.html&#34; target=&#34;_blank&#34; title=&#34;RFC 8032: Edwards-Curve Digital Signature Algorithm (EdDSA)&#34;&gt;RFC 8032&lt;/a&gt; に記載されているのは以下の2つである&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;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;楕円曲線名&lt;/th&gt;
					&lt;th style=&#34;text-align: right&#34;&gt;鍵長（bytes）&lt;/th&gt;
					&lt;th style=&#34;text-align: right&#34;&gt;強度（bits）&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;edwards25519&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;32&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;128&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;edwards448&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;57&lt;/td&gt;
					&lt;td style=&#34;text-align: right&#34;&gt;224&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;生成した ECC 鍵を2031年以降も使い続けるにはセキュリティ強度にして128ビット以上必要だが，この2つの楕円曲線であれば十分であることが分かる。&lt;/p&gt;
&lt;h2&gt;NIST 標準としての EdDSA&lt;/h2&gt;
&lt;p&gt;EdDSA の RFC 化に伴い，以下の NIST 標準文書にも EdDSA が追加されることになった。
ただし今のところはまだドラフト版である。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://csrc.nist.gov/publications/detail/fips/186/5/draft&#34; target=&#34;_blank&#34;&gt;FIPS 186-5 (Draft), Digital Signature Standard (DSS) | CSRC&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://csrc.nist.gov/publications/detail/sp/800-186/draft&#34; target=&#34;_blank&#34;&gt;SP 800-186 (Draft), Discrete Logarithm-Based Crypto: Elliptic Curve Parameters | CSRC&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ちなみに両方共パブリックコメントは2020年初に締め切られている。&lt;/p&gt;
&lt;p&gt;FIPS 186-5 および SP 800-186 が正式リリースされれば，政府調達でもなんでも，大手を振って EdDSA を使えるようになる（笑）&lt;/p&gt;
&lt;div class=&#34;box&#34;&gt;&lt;strong&gt;【2023-02-04 追記】&lt;/strong&gt;
&lt;a href=&#34;https://text.baldanders.info/remark/2023/02/nist-fips-186-5/&#34; target=&#34;_blank&#34;&gt;FIPS 186-5 および SP 800-186 正式版がリリースされた&lt;/a&gt;&lt;/div&gt;
&lt;h2&gt;EdDSA の実装&lt;/h2&gt;
&lt;h3&gt;&lt;a href=&#34;http://tools.ietf.org/html/rfc4880&#34; target=&#34;_blank&#34; title=&#34;RFC 4880 - OpenPGP Message Format&#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;/h3&gt;
&lt;p&gt;&lt;a href=&#34;http://tools.ietf.org/html/rfc4880&#34; target=&#34;_blank&#34; title=&#34;RFC 4880 - OpenPGP Message Format&#34;&gt;OpenPGP&lt;/a&gt; は &lt;a href=&#34;https://tools.ietf.org/html/rfc6637&#34; target=&#34;_blank&#34; title=&#34;RFC 6637 - Elliptic Curve Cryptography (ECC) in OpenPGP&#34;&gt;RFC 6637&lt;/a&gt; で正式に ECC を組み込んだが，この中に EdDSA は含まれていない。
ただし，次期 &lt;a href=&#34;http://tools.ietf.org/html/rfc4880&#34; target=&#34;_blank&#34; title=&#34;RFC 4880 - OpenPGP Message Format&#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; では EdDSA を組み込み済みで &lt;a href=&#34;https://gnupg.org/&#34; target=&#34;_blank&#34; title=&#34;The GNU Privacy Guard&#34;&gt;GnuPG&lt;/a&gt; の最新版では既に EdDSA 鍵を生成し使用することができる。&lt;/p&gt;
&lt;ul&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;/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; では edwards25519 のみサポートしているようだ。&lt;/p&gt;
&lt;h3&gt;&lt;a href=&#34;https://www.openssh.com/&#34; target=&#34;_blank&#34;&gt;OpenSSH&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://www.openssh.com/&#34; target=&#34;_blank&#34;&gt;OpenSSH&lt;/a&gt; では EdDSA/edwards25519 鍵を生成・使用できる。
鍵生成は&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;$ ssh-keygen -t ed25519
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;で可能。&lt;/p&gt;
&lt;h3&gt;&lt;a href=&#34;https://www.openssl.org/&#34; target=&#34;_blank&#34;&gt;OpenSSL&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;現在の &lt;a href=&#34;https://www.openssl.org/&#34; target=&#34;_blank&#34;&gt;OpenSSL&lt;/a&gt; は EdDSA をサポートしている。
edwards25519 および edwards448 を指定可能。&lt;/p&gt;
&lt;h2&gt;【おまけ】 量子コンピュータ耐性&lt;/h2&gt;
&lt;p&gt;現在，公開鍵暗号の主流である IFC (Integer Factorization Cryptosystems) および FFC (Finite Field Cryptosystems) の各アルゴリズムは量子コンピュータによる攻略法が既にあり，十分な性能を獲得すれば短時間で攻略可能になると考えられている。
ECC も FFC のバリエーションであり，これに含まれる。&lt;/p&gt;
&lt;p&gt;しかし，2020年時点の性能では128ビット以上のセキュリティ強度であれば現実的な脅威には至っていないようだ。&lt;/p&gt;
&lt;figure&gt;
&lt;blockquote cite=&#34;https://www.cryptrec.go.jp/topics/cryptrec-er-0001-2019.html&#34;&gt;&lt;q&gt;例えば、量子コンピュータを用いて2048ビットRSA合成数の素因数分解を行う場合には、量子誤りが一切ないという理想的な環境下でも、4098量子ビットが必要であり、1012～1013回のゲート演算が必要であると見積もられています。また、量子誤りがあるという現実的な環境下では、2000万量子ビットが必要であるという見積もりもあります&lt;/q&gt;。&lt;/blockquote&gt;
&lt;figcaption&gt;&lt;div&gt;&lt;q&gt;&lt;a href=&#34;https://www.cryptrec.go.jp/topics/cryptrec-er-0001-2019.html&#34;&gt;現在の量子コンピュータによる暗号技術の安全性への影響&lt;/a&gt;&lt;/q&gt;より&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure&gt;
&lt;blockquote cite=&#34;https://www.cryptrec.go.jp/topics/cryptrec-er-0001-2019.html&#34;&gt;&lt;q&gt;量子コンピュータの性能を測る上での指標（量子ビット数、量子誤りの大きさ、演算可能回数など）や、量子コンピュータの開発状況もあわせて考慮にいれると、近い将来に、2048ビットの素因数分解や256ビットの楕円曲線上の離散対数問題が解かれる可能性は低いと考えます&lt;/q&gt;。&lt;/blockquote&gt;
&lt;figcaption&gt;&lt;div&gt;&lt;q&gt;&lt;a href=&#34;https://www.cryptrec.go.jp/topics/cryptrec-er-0001-2019.html&#34;&gt;現在の量子コンピュータによる暗号技術の安全性への影響&lt;/a&gt;&lt;/q&gt;より&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;ただし，量子コンピュータ開発は成長が著しい分野でもあり，今後も成り行きを注視していく必要がある。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;&lt;a href=&#34;https://www.cryptrec.go.jp/report/cryptrec-rp-2000-2018.pdf&#34;&gt;CRYPTREC Report 2018: 暗号技術評価委員会報告 &lt;sup&gt;&lt;i class=&#34;far fa-file-pdf&#34;&gt;&lt;/i&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;a href=&#34;https://www.cryptrec.go.jp/report/cryptrec-tr-2001-2018.pdf&#34;&gt;耐量子計算機暗号の研究動向調査報告書 &lt;sup&gt;&lt;i class=&#34;far fa-file-pdf&#34;&gt;&lt;/i&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;a href=&#34;https://www.cryptrec.go.jp/report/cryptrec-rp-2000-2019r1.pdf&#34;&gt;「CRYPTREC Report 2019 暗号技術評価委員会報告」 (Revision 1) &lt;sup&gt;&lt;i class=&#34;far fa-file-pdf&#34;&gt;&lt;/i&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;a href=&#34;https://www.cryptrec.go.jp/report/cryptrec-rp-2000-2020.pdf&#34;&gt;CRYPTREC Report 2020 暗号技術評価委員会報告 &lt;sup&gt;&lt;i class=&#34;far fa-file-pdf&#34;&gt;&lt;/i&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;【おまけ2】 CRYPTREC による EdDSA の評価&lt;/h2&gt;
&lt;p&gt;2021年に公開された「&lt;a href=&#34;https://www.cryptrec.go.jp/topics/cryptrec_20211012_c20report.html&#34; target=&#34;_blank&#34;&gt;CRYPTREC Report 2020&lt;/a&gt;」に EdDSA に対する評価が載っていたので紹介する。&lt;/p&gt;
&lt;p&gt;難しい話はすっ飛ばして総評だけつまみ食いすると&lt;/p&gt;
&lt;figure&gt;
&lt;blockquote cite=&#34;https://www.cryptrec.go.jp/report/cryptrec-rp-2000-2020.pdf&#34;&gt;&lt;ul&gt;
&lt;li&gt;総評：下記の観点から、EdDSA の構成に関わる安全性において、EdDSA が ECDSA に劣ると考えられる点は無いと思われると述べている。
&lt;ul&gt;
&lt;li&gt;Schnorr 署名をもとに EdDSA は構成されているため、ランダムオラクルモデルで安全性が証明されている Schnorr 署名に対する安全性評価を参考にすることができる。&lt;/li&gt;
&lt;li&gt;Schnorr 署名との大きな違いはノンスの生成方法であるが、EdDSA におけるノンスの生成方法は、署名の内部乱数を弱い疑似乱数生成器に委ねることによる危険を排除し、現実的な脅威を回避するための配慮が施されている。&lt;/li&gt;
&lt;li&gt;比較対象となる ECDSA については、既存結果として generic group model でのみ安全性が証明されている。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;&lt;div&gt;&lt;q&gt;&lt;a href=&#34;https://www.cryptrec.go.jp/report/cryptrec-rp-2000-2020.pdf&#34;&gt;CRYPTREC Report 2020 暗号技術評価委員会報告&lt;/a&gt;&lt;/q&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;p&gt;&lt;a href=&#34;http://ed25519.cr.yp.to/&#34; target=&#34;_blank&#34;&gt;Ed25519: high-speed high-security signatures&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.cryptrec.go.jp/topics/cryptrec-er-0001-2013.html&#34; target=&#34;_blank&#34;&gt;擬似乱数生成アルゴリズム Dual_EC_DRBG について&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://text.baldanders.info/remark/2017/10/key-parameters/&#34; target=&#34;_blank&#34;&gt;暗号鍵関連の各種変数について&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;li&gt;
&lt;p&gt;&lt;a href=&#34;https://text.baldanders.info/remark/2022/02/breaking-256-bit-elliptic-curve-encryption-with-a-quantum-computer/&#34; target=&#34;_blank&#34;&gt;量子コンピュータで256ビット楕円曲線暗号は敗れるか&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/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;&lt;strong&gt;[Comment]&lt;/strong&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;DSA に対する懸念は，実装に必要な技術要素が多すぎる点にあるかもしれない。如何にシンプルな設計で要件を満たすかってのは安全性を考える上でも重要であるというよい事例になっていると思う。&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;edwards25519 は &lt;a href=&#34;http://cr.yp.to/ecdh.html&#34; target=&#34;_blank&#34; title=&#34;Curve25519: high-speed elliptic-curve cryptography&#34;&gt;Curve25519&lt;/a&gt; と双有理同値である。ちなみに &lt;a href=&#34;http://cr.yp.to/ecdh.html&#34; target=&#34;_blank&#34; title=&#34;Curve25519: high-speed elliptic-curve cryptography&#34;&gt;Curve25519&lt;/a&gt; は ECDH 用の楕円曲線およびそのライブラリで，公有（public domain）のソフトウェアとして公開されている。&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>OpenSSH 鍵をアップグレードする【2020-01-11 改訂】</title>
		<link rel="alternate" type="text/html" href="https://text.baldanders.info/remark/2020/06/upgrade-openssh-key/" />
		<id>tag:text.Baldanders.info,2020-06-01:/remark/2020/06/upgrade-openssh-key/</id>
		<published>2020-06-01T07:12:32+00:00</published>
		<updated>2024-01-26T21:38:55+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;strong&gt;【2020-01-11 改訂】&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;2020-05-27 に &lt;a href=&#34;https://www.openssh.com/&#34; target=&#34;_blank&#34;&gt;OpenSSH&lt;/a&gt; 8.3 がリリースされた。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://lwn.net/Articles/821544/&#34; target=&#34;_blank&#34;&gt;OpenSSH 8.3 released (and ssh-rsa deprecation notice) [LWN.net]&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この中で “Future deprecation notice” として&lt;/p&gt;
&lt;figure lang=&#34;en&#34;&gt;
&lt;blockquote cite=&#34;https://lwn.net/Articles/821544/&#34;&gt;&lt;q&gt;It is now possible to perform chosen-prefix attacks against the SHA-1 algorithm for less than USD$50K. For this reason, we will be disabling the “ssh-rsa” public key signature algorithm by default in a near-future release&lt;/q&gt;.&lt;/blockquote&gt;
&lt;figcaption&gt;&lt;div&gt;via &lt;q&gt;&lt;a href=&#34;https://lwn.net/Articles/821544/&#34;&gt;OpenSSH 8.3 released (and ssh-rsa deprecation notice)&lt;/a&gt;&lt;/q&gt;&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&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;a href=&#34;https://github.com/spiegel-im-spiegel/github-pages-env/discussions/85&#34; target=&#34;_blank&#34;&gt;フィードバック&lt;/a&gt;感謝）。&lt;/p&gt;
&lt;!--
クライアント側はそろそろ古い RSA 鍵から交換したほうがよさそうである。
もっとも最近のバージョン[^sha1b] で作った鍵であれば特に問題ないようだ。

[^sha1b]: ちなみに，私は2011年に作った RSA 鍵を使っているが，ハッシュ・アルゴリズムは SHA256 だった。少なくとも10年以内に作った鍵なら問題なさそう？ あとは鍵長かねぇ。

```text
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/username/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/username/.ssh/id_rsa
Your public key has been saved in /home/username/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:qufsNjgco3QZNjE4eupwQiT6mD8fr2a7nXmU3ybxFHo username@hostname
The key&#39;s randomart image is:
+---[RSA 3072]----+
|   .             |
|..o o            |
|+. . o           |
|o.. +       .    |
|.* . +  S. . .   |
|* + =  .o o E    |
|o= +.+.. . *     |
| .+ **+o. o +    |
|   =*XOo   o     |
+----[SHA256]-----+
```

ハッシュ・アルゴリズムが SHA256 以上になっているか，がポイント。
--&gt;
&lt;p&gt;もし2048ビット以下の古い RSA 鍵を使ってるなら替えどきかな。
で，どうせ鍵を新調するのなら楕円曲線暗号（Elliptic Curve Cryptography; ECC）で構成するのがいいよね。&lt;/p&gt;
&lt;p&gt;ちうわけで，ECC 鍵を作って登録するところまでやってみる。
ちゃんとメモっておかないと忘れるので（笑）&lt;/p&gt;
&lt;h2&gt;前提条件【2021-01-09 変更】&lt;/h2&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;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;/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;p&gt;ちなみに，今回は鍵の生成を &lt;a href=&#34;https://www.openssh.com/&#34; target=&#34;_blank&#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;/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;OpenSSH の認証鍵を GunPG で作成・管理する&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;a href=&#34;https://www.openssh.com/&#34; target=&#34;_blank&#34;&gt;OpenSSH&lt;/a&gt; 鍵の生成&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://www.openssh.com/&#34; target=&#34;_blank&#34;&gt;OpenSSH&lt;/a&gt; 鍵を生成するには &lt;code&gt;ssh-keygen&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;$ ssh-keygen -t ecdsa -b 256 -C &amp;#34;alice@example.com&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Generating public/private ecdsa key pair.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Enter file in which to save the key (/home/username/.ssh/id_ecdsa): 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Enter passphrase (empty for no passphrase): 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Enter same passphrase again: 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Your identification has been saved in /home/username/.ssh/id_ecdsa
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Your public key has been saved in /home/username/.ssh/id_ecdsa.pub
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;The key fingerprint is:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;SHA256:DtXgQm9rz7Dc5M5yWu/CNVo341o1rcfN9UCyYu+SZU4 alice@example.com
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;The key&amp;#39;s randomart image is:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;+---[ECDSA 256]---+
&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;|     . o o       |
&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;|      . S + . ..+|
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;|       = X oE +*=|
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;|        +.*X.+oo*|
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;|        .+Bo.... |
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;|        .+o+=.   |
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;+----[SHA256]-----+
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;これで作成された &lt;code&gt;id_ecdsa&lt;/code&gt; および &lt;code&gt;id_ecdsa.pub&lt;/code&gt; ファイルが鍵ファイルである。
ちなみに &lt;code&gt;id_ecdsa&lt;/code&gt; ファイルには秘密鍵， &lt;code&gt;id_ecdsa.pub&lt;/code&gt; ファイルには公開鍵が格納されている。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;-t&lt;/code&gt; オプションで鍵種別を， &lt;code&gt;-b&lt;/code&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;div&gt;
&lt;figure&gt;
&lt;style&gt;
main table.sshkeys th  {
  vertical-align:middle;
  text-align: center;
}
main table.sshkeys td  {
  vertical-align:middle;
  //text-align: center;
}
&lt;/style&gt;
&lt;table class=&#34;sshkeys&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;鍵種別&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&gt;&lt;strike&gt;&lt;code&gt;dsa&lt;/code&gt;&lt;/strike&gt;&lt;/td&gt;
  &lt;td class=&#34;right&#34;&gt;&lt;strike&gt;1024&lt;/strike&gt;&lt;/td&gt;
  &lt;td class=&#34;right&#34;&gt;80&lt;/td&gt;
  &lt;td&gt;&amp;mdash;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td rowspan=&#34;3&#34;&gt;&lt;code&gt;ecdsa&lt;/code&gt; / &lt;code&gt;ecdsa-sk&lt;/code&gt;&lt;/td&gt;
  &lt;td class=&#34;right&#34;&gt;256&lt;/td&gt;
  &lt;td class=&#34;right&#34;&gt;128&lt;/td&gt;
  &lt;td&gt;&lt;code&gt;nistp256&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&#34;right&#34;&gt;384&lt;/td&gt;
  &lt;td class=&#34;right&#34;&gt;192&lt;/td&gt;
  &lt;td&gt;&lt;code&gt;nistp384&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&#34;right&#34;&gt;521&lt;/td&gt;
  &lt;td class=&#34;right&#34;&gt;256&lt;/td&gt;
  &lt;td&gt;&lt;code&gt;nistp521&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ed25519&lt;/code&gt; / &lt;code&gt;ed25519-sk&lt;/code&gt;&lt;/td&gt;
  &lt;td class=&#34;right&#34;&gt;&amp;mdash;&lt;/td&gt;
  &lt;td class=&#34;right&#34;&gt;128&lt;/td&gt;
  &lt;td&gt;&lt;code&gt;ed25519&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td rowspan=&#34;3&#34;&gt;&lt;code&gt;rsa&lt;/code&gt;&lt;/td&gt;
  &lt;td class=&#34;right&#34;&gt;3072&lt;/td&gt;
  &lt;td class=&#34;right&#34;&gt;128&lt;/td&gt;
  &lt;td rowspan=&#34;3&#34;&gt;&amp;mdash;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&#34;right&#34;&gt;7680&lt;/td&gt;
  &lt;td class=&#34;right&#34;&gt;192&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&#34;right&#34;&gt;15360&lt;/td&gt;
  &lt;td class=&#34;right&#34;&gt;256&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;この組み合わせの（&lt;code&gt;dsa&lt;/code&gt; 以外の）いずれかであれば2031年以降も問題なく使える。
なお &lt;code&gt;ecdsa-sk&lt;/code&gt; および &lt;code&gt;ed25519-sk&lt;/code&gt; は暗号デバイスに登録する際に使うらしい（今回は割愛する）。&lt;/p&gt;
&lt;p&gt;余談だが楕円曲線 &lt;code&gt;ed25519&lt;/code&gt; に対応する電子署名アルゴリズムは EdDSA と呼ばれ &lt;a href=&#34;https://tools.ietf.org/html/rfc8032&#34; target=&#34;_blank&#34; title=&#34;RFC 8032 - Edwards-Curve Digital Signature Algorithm (EdDSA)&#34;&gt;RFC 8032&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;code&gt;eddsa&lt;/code&gt; としなかったのかは知らない。
紛らわしかったのかな？&lt;/p&gt;
&lt;h3&gt;楕円曲線と鍵長&lt;/h3&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;p&gt;ここでちょっと横道に逸れて鍵長の話をしておく。&lt;/p&gt;
&lt;p&gt;たとえば RSA の（平文 $M$ から暗号文 $C$ への）暗号化は以下の式で表される。&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;mathjax box&#34;&gt;
\[
    C = M^e \bmod n
\]
&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;$(e, n)$ のセットが公開鍵で， $n$ のサイズが鍵長に相当する。
実際の計算はともかく，感覚としては分かりやすいよね。&lt;/p&gt;
&lt;p&gt;ECC の場合は暗号化の前に，まずベースとなる楕円曲線の（素数 $q$ で決められる）素体（prime fields）を決めなければならない&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;figure&gt;&lt;div class=&#34;mathjax box&#34;&gt;
\[
    E : y^2 \equiv x^3 + ax + b \pmod{q}
\]
&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;この素体上の有理点の数（位数）を $\#E$ とした時の $\#E$ のサイズが鍵長に相当する。
$(a,b,q)$ といったパラメータを眺めただけでは鍵長が分からないというのが面倒臭い感じである&lt;sup id=&#34;fnref:5&#34;&gt;&lt;a href=&#34;#fn:5&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;5&lt;/a&gt;&lt;/sup&gt;。&lt;/p&gt;
&lt;p&gt;そこで ECC の場合は楕円曲線を表すパラメータのセットが標準化されている。
&lt;a href=&#34;https://www.openssh.com/&#34; target=&#34;_blank&#34;&gt;OpenSSH&lt;/a&gt; の場合は &lt;code&gt;nistp256&lt;/code&gt;, &lt;code&gt;nistp384&lt;/code&gt;, &lt;code&gt;nistp521&lt;/code&gt;, &lt;code&gt;ed25519&lt;/code&gt; といった楕円曲線名に対応している。
つまり楕円曲線名から楕円曲線の種類を特定し，そこから鍵長も分かる，というわけだ。&lt;/p&gt;
&lt;h2&gt;&lt;a href=&#34;https://www.openssh.com/&#34; target=&#34;_blank&#34;&gt;OpenSSH&lt;/a&gt; 鍵の登録（クライアント側）&lt;/h2&gt;
&lt;p&gt;本題に戻る。
作成した &lt;a href=&#34;https://www.openssh.com/&#34; target=&#34;_blank&#34;&gt;OpenSSH&lt;/a&gt; 鍵ファイル &lt;code&gt;id_ecdsa&lt;/code&gt; および &lt;code&gt;id_ecdsa.pub&lt;/code&gt; を登録しよう。&lt;/p&gt;
&lt;p&gt;クライアント側は &lt;code&gt;ssh-add&lt;/code&gt; コマンドを使って秘密鍵ファイル &lt;code&gt;id_ecdsa&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;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;$ ssh-add ./id_ecdsa
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Enter passphrase for ./id_ecdsa: 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Identity added: ./id_ecdsa (alice@example.com)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&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;./pinentry.png&#34;&gt;&lt;img src=&#34;./pinentry.png&#34; srcset=&#34;./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;./pinentry.png&#34;&gt;pinentry&lt;/a&gt;&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Pinentry で設定するパスフレーズは &lt;code&gt;id_ecdsa&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;id_ecdsa&lt;/code&gt; ファイルは不要になる。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.openssh.com/&#34; target=&#34;_blank&#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;# ECDSA key added on: 2020-06-01 14:05:35
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#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 class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;#                SHA256:DtXgQm9rz7Dc5M5yWu/CNVo341o1rcfN9UCyYu+SZU4
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;A5353D587000D820669B0BD55A0B4AD6897458DB 0
&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; コマンドでも登録した鍵を確認できる。&lt;/p&gt;
&lt;p&gt;鍵の実体は &lt;code&gt;~/.gnupg/private-keys-v1.d/&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;A5353D587000D820669B0BD55A0B4AD6897458DB.key
&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;https://www.openssh.com/&#34; target=&#34;_blank&#34;&gt;OpenSSH&lt;/a&gt; 鍵の登録（サーバ側）&lt;/h2&gt;
&lt;p&gt;ログイン先のサーバに公開鍵ファイル &lt;code&gt;id_ecdsa.pub&lt;/code&gt; の中身を登録する。
つっても，どうにかして &lt;code&gt;id_ecdsa.pub&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;$ cat ./id_ecdsa.pub &amp;gt;&amp;gt; ~/.ssh/authorized_keys
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;と &lt;code&gt;authorized_keys&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;$ cat ./id_ecdsa.pub &amp;gt; ~/.ssh/authorized_keys
&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;$ chmod 700 ~/.ssh
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ chmod 600 ~/.ssh/authorized_keys
&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-12-13 追記】 ssh-copy-id を使う方法&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/spiegel-im-spiegel/github-pages-env/discussions/85#discussioncomment-1793423&#34; target=&#34;_blank&#34;&gt;フィードバックで教えてもらった&lt;/a&gt;が（感謝！） &lt;code&gt;ssh-copy-id&lt;/code&gt; コマンド（中身は shell スクリプト）を使うともっと簡単に登録できるそうだ。&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;$ ssh-copy-id -h
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Usage: /usr/bin/ssh-copy-id [-h|-?|-f|-n] [-i [identity_file]] [-p port] [-F alternative ssh_config file] [[-o &amp;lt;ssh -o options&amp;gt;] ...] [user@]hostname
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;	-f: force mode -- copy keys without trying to check if they are already installed
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;	-n: dry run    -- no keys are actually copied
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;	-h|-?: print this help
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;ふむむ。
&lt;code&gt;-n&lt;/code&gt; オプションで dry run できるのか。
ありがたい。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;-i&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;$ ssh-add -L | ssh-copy-id -n alice@hostname
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
&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;Would have added the following key(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;ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFfjejx/Saej929myfZoBQAKgusPi2iiOxdZZfpCLxh5 (none)
&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;-n&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; で作った認証鍵であれば&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 | ssh-copy-id -n alice@hostname
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;などとすることもできる（実際に登録する際は &lt;code&gt;-n&lt;/code&gt; オプションを外してね）。&lt;/p&gt;
&lt;p&gt;サーバ側に既に &lt;code&gt;~/.ssh/authorized_keys&lt;/code&gt; ファイルがある場合は（公開鍵認証でログインした上で）ちゃんと追記してくれるし，パーミッションの心配も要らないようだ。&lt;/p&gt;
&lt;p&gt;教えていただいて本当にありがとう &lt;abbr class=&#34;emoji-chars&#34; title=&#34;ペコン&#34;&gt;🙇&lt;/abbr&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h3&gt;各種 &lt;a href=&#34;https://git-scm.com/&#34; target=&#34;_blank&#34;&gt;Git&lt;/a&gt; リポジトリ・サービスに公開鍵を登録する&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/&#34; target=&#34;_blank&#34;&gt;GitHub&lt;/a&gt; ではリポジトリのアクセスに &lt;a href=&#34;https://www.openssh.com/&#34; target=&#34;_blank&#34;&gt;OpenSSH&lt;/a&gt; 認証が使える。
&lt;a href=&#34;https://www.openssh.com/&#34; target=&#34;_blank&#34;&gt;OpenSSH&lt;/a&gt; 認証に使う公開鍵は設定の “&lt;a href=&#34;https://github.com/settings/keys&#34; target=&#34;_blank&#34;&gt;SSH and GPG keys&lt;/a&gt;” で登録する（複数登録可能）。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://bitbucket.org/product/&#34; target=&#34;_blank&#34;&gt;Bitbucket&lt;/a&gt; や &lt;a href=&#34;https://gitlab.com/&#34; target=&#34;_blank&#34;&gt;GitLab&lt;/a&gt; などの各種 &lt;a href=&#34;https://git-scm.com/&#34; target=&#34;_blank&#34;&gt;git&lt;/a&gt; リポジトリ・サービスでも同様に &lt;a href=&#34;https://www.openssh.com/&#34; target=&#34;_blank&#34;&gt;OpenSSH&lt;/a&gt; 公開鍵を登録できる。&lt;/p&gt;
&lt;p&gt;よしゃあ！ これで作業完了。&lt;/p&gt;
&lt;h2&gt;ブックマーク&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://orumin.blogspot.com/2020/05/ssh-rsa.html&#34; target=&#34;_blank&#34;&gt;ssh-rsa，非推奨のお知らせ&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://japan.zdnet.com/article/35154545/&#34; target=&#34;_blank&#34;&gt;OpenSSH、将来のリリースでssh-rsa公開鍵の署名アルゴリズムをデフォルトで無効に - ZDNet Japan&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://support.conoha.jp/v/openssh/&#34; target=&#34;_blank&#34;&gt;OpenSSHの認証に証明書を使う方法｜ConoHa VPSサポート&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://qiita.com/aat00000/items/a7973b104be9bfd3bb5c&#34; target=&#34;_blank&#34;&gt;SSHのCA認証 - Qiita&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://developers.yubico.com/PIV/Guides/Securing_SSH_with_OpenPGP_or_PIV.html&#34; target=&#34;_blank&#34;&gt;Securing SSH with OpenPGP or PIV&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://developers.yubico.com/SSH/&#34; target=&#34;_blank&#34;&gt;Securing SSH with the YubiKey&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://dev.classmethod.jp/articles/ssh-ubuntu-ec2-with-fido-u2f-security-key/&#34; target=&#34;_blank&#34;&gt;セキュリティキー「YubiKey」でEC2へのSSHを2段階認証にしてみた | Developers.IO&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://nulab.com/ja/blog/backlog/disables-rsa-sig-using-the-sha-1-in-openssh/&#34; target=&#34;_blank&#34;&gt;OpenSSHがSHA-1を使用したRSA署名を廃止、BacklogのGitで発生した問題と解決にいたるまでの道のり | 株式会社ヌーラボ(Nulab inc.)&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://text.baldanders.info/remark/2017/10/key-parameters/&#34; target=&#34;_blank&#34;&gt;暗号鍵関連の各種変数について&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/01/sayonara-sha-1/&#34; target=&#34;_blank&#34;&gt;（何度目かの）さようなら SHA-1&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/eddsa/&#34; target=&#34;_blank&#34;&gt;Edwards-curve Digital Signature Algorithm&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;&lt;strong&gt;[Comment]&lt;/strong&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;&lt;strong&gt;[Comment]&lt;/strong&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;実は同様の問題は &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.2.18 で対応済みである（&lt;a href=&#34;https://text.baldanders.info/release/2019/11/gnupg-2_2_18-is-released/&#34; target=&#34;_blank&#34;&gt;GnuPG 2.2.18 リリース： さようなら SHA-1&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://github.com/spiegel-im-spiegel/github-pages-env/discussions/85&#34; target=&#34;_blank&#34;&gt;フィードバック&lt;/a&gt;で教えていただいたが， &lt;a href=&#34;https://www.openssh.com/&#34; target=&#34;_blank&#34;&gt;OpenSSH&lt;/a&gt; は FIPS 186-3 以降の DSA に対応していないそうで，1024ビットの鍵長しか選択できないらしい。なので，最近の &lt;a href=&#34;https://www.openssh.com/&#34; target=&#34;_blank&#34;&gt;OpenSSH&lt;/a&gt; のデフォルト設定では DSA を無効にしているそうな。情報感謝です。あと &lt;code&gt;ecdsa-sk&lt;/code&gt; では鍵長の指定はできない（無視される）ようだ。256ビット（&lt;code&gt;nistp256&lt;/code&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;code&gt;ed25519&lt;/code&gt; (edwards25519) は &lt;a href=&#34;http://cr.yp.to/ecdh.html&#34; target=&#34;_blank&#34; title=&#34;Curve25519: high-speed elliptic-curve cryptography&#34;&gt;Curve25519&lt;/a&gt; と双有理同値な楕円曲線で，鍵長も  &lt;a href=&#34;http://cr.yp.to/ecdh.html&#34; target=&#34;_blank&#34; title=&#34;Curve25519: high-speed elliptic-curve cryptography&#34;&gt;Curve25519&lt;/a&gt; と同じく256ビット（セキュリティ強度128ビット）と見積もられている。ちなみに &lt;a href=&#34;http://cr.yp.to/ecdh.html&#34; target=&#34;_blank&#34; title=&#34;Curve25519: high-speed elliptic-curve cryptography&#34;&gt;Curve25519&lt;/a&gt; は ECDH 用の楕円曲線およびそのライブラリで，公有（public domain）のソフトウェアとして公開されている。また &lt;a href=&#34;https://text.baldanders.info/remark/2020/06/eddsa/&#34; target=&#34;_blank&#34; title=&#34;Edwards-curve Digital Signature Algorithm&#34;&gt;EdDSA は FIPS 186-5 に組み込まれる予定&lt;/a&gt;になっていて，そうなれば正式に NIST 標準となる。&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;素体ではなく「標数2の体（binary fields）」を使う場合もあるが，ここでは割愛する。&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;li id=&#34;fn:5&#34;&gt;
&lt;p&gt;楕円曲線と楕円曲線暗号については結城浩さんの『&lt;a href=&#34;https://www.amazon.co.jp/exec/obidos/ASIN/B015643CPE/baldandersinf-22/&#34; target=&#34;_blank&#34;&gt;暗号技術入門 第3版&lt;/a&gt;』の付録に比較的分かりやすい解説が載っている。同じく結城浩さんの『&lt;a href=&#34;https://www.amazon.co.jp/exec/obidos/ASIN/B00L0PDMK4/baldandersinf-22/&#34; target=&#34;_blank&#34;&gt;数学ガール ガロア理論&lt;/a&gt;』が何となく分かれば楕円曲線についても何となく分かると思う。大丈夫。私も何となくしか分かっていない（笑）&amp;#160;&lt;a href=&#34;#fnref:5&#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>Go 1.13.7 リリース予告と CVE-2020-0601</title>
		<link rel="alternate" type="text/html" href="https://text.baldanders.info/remark/2020/01/pre-announcement-of-go-1_13_7/" />
		<id>tag:text.Baldanders.info,2020-01-25:/remark/2020/01/pre-announcement-of-go-1_13_7/</id>
		<published>2020-01-25T07:46:13+00:00</published>
		<updated>2021-12-04T02:40:05+00:00</updated>
		<summary>来週1月28日（日本時間では1月29日かな）に Go 1.13.7 のリリースがあるようだ（予定は未定）。</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;来週1月28日（日本時間では1月29日かな）に &lt;a href=&#34;https://go.dev/&#34; target=&#34;_blank&#34;&gt;Go&lt;/a&gt; 1.13.7 のリリースがあるようだ（予定は未定）。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://groups.google.com/forum/#!topic/golang-announce/-sdUB4VEQkA&#34; target=&#34;_blank&#34;&gt;[security] Go 1.12.16 and Go 1.13.7 pre-announcement - Google group&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&#34;https://go.dev/&#34; target=&#34;_blank&#34;&gt;Go&lt;/a&gt; 1.13.7 にはセキュリティ・アップデートが含まれる。&lt;/p&gt;
&lt;figure lang=&#34;en&#34;&gt;
&lt;blockquote cite=&#34;https://groups.google.com/forum/#!topic/golang-announce/-sdUB4VEQkA&#34;&gt;&lt;q&gt;These are minor releases that include two security fixes.
One &lt;a href=&#34;https://golang.org/cl/215905&#34; target=&#34;_blank&#34;&gt;mitigates the CVE-2020-0601 certificate verification bypass&lt;/a&gt; on Windows.
The other affects only 32-bit architectures&lt;/q&gt;.&lt;/blockquote&gt;
&lt;figcaption&gt;&lt;div&gt;via &lt;q&gt;&lt;a href=&#34;https://groups.google.com/forum/#!topic/golang-announce/-sdUB4VEQkA&#34;&gt;Go 1.12.16 and Go 1.13.7 pre-announcement&lt;/a&gt;&lt;/q&gt;&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;&lt;a href=&#34;https://nvd.nist.gov/vuln/detail/CVE-2020-0601&#34; target=&#34;_blank&#34;&gt;CVE-2020-0601&lt;/a&gt; は Windows CryptoAPI の不備で楕円曲線暗号（ECC）を使った証明書の検証がバイパスされてしまうというもの。
これによって証明書の偽装ができてしまう。
あとは分かるね。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2020-0601&#34; target=&#34;_blank&#34;&gt;CVE-2020-0601 | Windows CryptoAPI Spoofing Vulnerability&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;CVSSv3 の評価は以下の通り。&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&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;/td&gt;
					&lt;td&gt;ネットワーク&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;攻撃条件の複雑さ&lt;/td&gt;
					&lt;td&gt;低&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;必要な特権レベル&lt;/td&gt;
					&lt;td&gt;不要&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;ユーザ関与レベル&lt;/td&gt;
					&lt;td&gt;要&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;スコープ&lt;/td&gt;
					&lt;td&gt;変更なし&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;機密性への影響&lt;/td&gt;
					&lt;td&gt;高&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;完全性への影響&lt;/td&gt;
					&lt;td&gt;高&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&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;&lt;div&gt;CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;スコアは 8.1 (深刻度：重要)&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;ただし，この脆弱性は1月の Windows Update で修正されている筈である。
つか，私はもう関係ないので完全にスルーしていた（笑）&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://msrc-blog.microsoft.com/2020/01/14/january-2020-security-updates-cve-2020-0601/&#34; target=&#34;_blank&#34;&gt;January 2020 Security Updates: CVE-2020-0601 - Microsoft Security Response Center&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;今回の &lt;a href=&#34;https://nvd.nist.gov/vuln/detail/CVE-2020-0601&#34; target=&#34;_blank&#34;&gt;CVE-2020-0601&lt;/a&gt; の特徴は NSA が絡んでいる点である。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;&lt;a href=&#34;https://media.defense.gov/2020/Jan/14/2002234275/-1/-1/0/CSA-WINDOWS-10-CRYPT-LIB-20190114.PDF&#34;&gt;Patch Critical Cryptographic Vulnerability in Microsoft Windows Clients and Servers &lt;sup&gt;&lt;i class=&#34;far fa-file-pdf&#34;&gt;&lt;/i&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;NSA の思惑は分からない。
しかし&lt;/p&gt;
&lt;figure lang=&#34;en&#34;&gt;
&lt;blockquote cite=&#34;https://www.schneier.com/blog/archives/2020/01/critical_window.html&#34;&gt;&lt;q&gt;She did not answer when asked how long ago the NSA discovered the vulnerability. She said that this is not the first time the NSA sent Microsoft a vulnerability to fix, but it was the first time it has publicly taken credit for the discovery&lt;/q&gt;.&lt;/blockquote&gt;
&lt;figcaption&gt;&lt;div&gt;via &lt;q&gt;&lt;a href=&#34;https://www.schneier.com/blog/archives/2020/01/critical_window.html&#34;&gt;Critical Windows Vulnerability Discovered by NSA - Schneier on Security&lt;/a&gt;&lt;/q&gt;&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;とある通り（どこぞの馬鹿メディアが言ってたみたいな）別に NSA の「お手柄」でもなんでもなく，政治的な思惑があって色々と天秤にかけた結果「公表」したということだろう。
まっ，国家の諜報機関なのだから当たり前だが（笑）&lt;/p&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.schneier.com/blog/archives/2020/01/critical_window.html&#34; target=&#34;_blank&#34;&gt;Critical Windows Vulnerability Discovered by NSA - Schneier on Security&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://forest.watch.impress.co.jp/docs/news/1229173.html&#34; target=&#34;_blank&#34;&gt;Windowsの暗号化機能に致命的な脆弱性、証明書偽装の恐れ ～米国家安全保障局が警告 - 窓の杜&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;&lt;strong&gt;[Comment]&lt;/strong&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/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;&lt;strong&gt;[Comment]&lt;/strong&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/B015SAFU42?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/51Xgkj7WNdL._SL160_.jpg&#34; width=&#34;120&#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/B015SAFU42?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;ベネディクト・カンバーバッチ (出演), キーラ・ナイトレイ (出演), マシュー・グード (出演), ロリー・キニア (出演), モルテン・ティルドゥム (監督), グラハム・ムーア (Writer)&lt;/dd&gt;
    &lt;dd&gt; (Release 2015-10-02)&lt;/dd&gt;
    &lt;dd&gt;Prime Video&lt;/dd&gt;
    &lt;dd&gt;B015SAFU42 (ASIN)&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;&lt;strong&gt;[Comment]&lt;/strong&gt; 主人公であるアラン・チューリングは今もなお「天才」と称される数学者であり，「コンピュータの父」と呼ばれるほどの偉人である。そしてチューリングの偉業のひとつが，旧ナチス・ドイツの暗号機械「エニグマ」の解読である。作品はそのエニグマの解読を主軸に物語を展開していく。感想は&lt;a href=&#34;https://baldanders.info/blog/000833/&#34;&gt;こちら&lt;/a&gt;。&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-04-19&#34;&gt;2015-04-19&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;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;CVSSv3 ではスコア7.0以上なら速やかな対応が求められる。アップデートは計画的に（笑）&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>そろそろ GnuPG でも ECC を標準で使うのがいいんじゃないかな</title>
		<link rel="alternate" type="text/html" href="https://text.baldanders.info/openpgp/using-ecc-with-gnupg/" />
		<id>tag:text.Baldanders.info,2017-12-02:/openpgp/using-ecc-with-gnupg/</id>
		<published>2017-12-02T07:20:26+00:00</published>
		<updated>2026-03-31T05:36:59+00:00</updated>
		<summary>手っ取り早く ECC 鍵を作りたいなら --quick-generate-key コマンドでアルゴリズムに future-default を指定すればよい。</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;http://tools.ietf.org/html/rfc4880&#34; target=&#34;_blank&#34; title=&#34;RFC 4880 - OpenPGP Message Format&#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;a href=&#34;https://gnupg.org/&#34; target=&#34;_blank&#34; title=&#34;The GNU Privacy Guard&#34;&gt;GnuPG&lt;/a&gt; で新しい鍵を作るのであれば ECC (Elliptic Curve Cryptography; 楕円曲線暗号) を選択するのがいいんじゃないかな？ という提案である。&lt;/p&gt;
&lt;h2&gt;手っ取り早く ECC 鍵を作る&lt;/h2&gt;
&lt;p&gt;手っ取り早く ECC 鍵を作りたいなら &lt;code&gt;--quick-generate-key&lt;/code&gt; コマンドでアルゴリズムに &lt;code&gt;future-default&lt;/code&gt; を指定すればよい。
（以下は有効期限を2年で指定する場合。無期限でいいなら最後の引数に &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-gen-key &amp;#34;Alice &amp;lt;alice@example.com&amp;gt;&amp;#34; future-default - 2y
&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;たくさんのランダム・バイトの生成が必要です。キーボードを打つ、マウスを動か
&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;gpg: 失効証明書を &amp;#39;C:/Users/slice/AppData/Roaming/gnupg/openpgp-revocs.d\F79B411717B86902177EA08200693613E2B68F5A.rev&amp;#39; に保管しました。
&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;pub   ed25519 2017-12-02 [SC] [有効期限: 2019-12-02]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      F79B411717B86902177EA08200693613E2B68F5A
&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 2017-12-02 [E]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&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; &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;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 -a --export alice | gpgpdump
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Public-Key Packet (tag 6) (51 bytes)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    Version: 4 (current)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    Public key creation time: 2017-12-02T10:37:17+09:00
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        5a 22 03 cd
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    Public-key Algorithm: EdDSA (pub 22)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ECC Curve OID: ed25519
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        2b 06 01 04 01 da 47 0f 01
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    EdDSA EC point (04 || X || Y) (263 bits)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;User ID Packet (tag 13) (25 bytes)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    User ID: 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;Signature Packet (tag 2) (150 bytes)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    Version: 4 (current)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    Signiture Type: Positive certification of a User ID and Public-Key packet (0x13)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    Public-key Algorithm: EdDSA (pub 22)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    Hash Algorithm: SHA2-256 (hash 8)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    Hashed Subpacket (62 bytes)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        Issuer Fingerprint (sub 33) (21 bytes)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            Version: 4 (need 20 octets length)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            Fingerprint (20 bytes)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                f7 9b 41 17 17 b8 69 02 17 7e a0 82 00 69 36 13 e2 b6 8f 5a
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        Signature Creation Time (sub 2): 2017-12-02T10:37:17+09:00
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        Key Flags (sub 27) (1 bytes)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            Flag: This key may be used to certify other keys.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            Flag: This key may be used to sign data.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        Key Expiration Time (sub 9): 730 days after (2019-12-02T10:37:17+09:00)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        Preferred Symmetric Algorithms (sub 11) (4 bytes)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            Symmetric Algorithm: AES with 256-bit key (sym 9)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            Symmetric Algorithm: AES with 192-bit key (sym 8)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            Symmetric Algorithm: AES with 128-bit key (sym 7)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            Symmetric Algorithm: TripleDES (168 bit key derived from 192) (sym 2)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        Preferred Hash Algorithms (sub 21) (5 bytes)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            Hash Algorithm: SHA2-256 (hash 8)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            Hash Algorithm: SHA2-384 (hash 9)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            Hash Algorithm: SHA2-512 (hash 10)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            Hash Algorithm: SHA2-224 (hash 11)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            Hash Algorithm: SHA-1 (hash 2)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        Preferred Compression Algorithms (sub 22) (3 bytes)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            Compression Algorithm: ZLIB &amp;lt;RFC1950&amp;gt; (comp 2)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            Compression Algorithm: BZip2 (comp 3)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            Compression Algorithm: ZIP &amp;lt;RFC1951&amp;gt; (comp 1)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        Features (sub 30) (1 bytes)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            Flag: Modification Detection (packets 18 and 19)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        Key Server Preferences (sub 23) (1 bytes)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            Flag: No-modify
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    Unhashed Subpacket (10 bytes)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        Issuer (sub 16): 0x00693613e2b68f5a
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    Hash left 2 bytes
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        7e b5
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    EdDSA compressed value r (253 bits)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    EdDSA compressed value s (251 bits)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Public-Subkey Packet (tag 14) (56 bytes)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    Version: 4 (current)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    Public key creation time: 2017-12-02T10:37:17+09:00
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        5a 22 03 cd
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    Public-key Algorithm: ECDH public key algorithm (pub 18)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ECC Curve OID: cv25519
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        2b 06 01 04 01 97 55 01 05 01
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ECDH EC point (04 || X || Y) (263 bits)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    KDF parameters (3 bytes)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        Hash Algorithm: SHA2-256 (hash 8)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        Symmetric Algorithm: AES with 128-bit key (sym 7)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Signature Packet (tag 2) (120 bytes)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    Version: 4 (current)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    Signiture Type: Subkey Binding Signature (0x18)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    Public-key Algorithm: EdDSA (pub 22)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    Hash Algorithm: SHA2-256 (hash 8)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    Hashed Subpacket (32 bytes)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        Issuer Fingerprint (sub 33) (21 bytes)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            Version: 4 (need 20 octets length)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            Fingerprint (20 bytes)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                f7 9b 41 17 17 b8 69 02 17 7e a0 82 00 69 36 13 e2 b6 8f 5a
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        Signature Creation Time (sub 2): 2017-12-02T10:37:17+09:00
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        Key Flags (sub 27) (1 bytes)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            Flag: This key may be used to encrypt communications.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            Flag: This key may be used to encrypt storage.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    Unhashed Subpacket (10 bytes)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        Issuer (sub 16): 0x00693613e2b68f5a
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    Hash left 2 bytes
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        29 27
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    EdDSA compressed value r (254 bits)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    EdDSA compressed value s (254 bits)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;長々とした出力で申し訳ないが &lt;code&gt;Public-Key Packet&lt;/code&gt; と &lt;code&gt;Public-Subkey Packet&lt;/code&gt; の項目に注目していただくと，電子署名用に EdDSA (ed25519)，暗号用に ECDH (cv25519) が使われているのが分かる。
鍵長はいずれも 256bits である。&lt;/p&gt;
&lt;p&gt;通常はこれで問題ない。&lt;/p&gt;
&lt;h2&gt;楕円曲線と鍵長&lt;/h2&gt;
&lt;p&gt;ここでちょっと横道に逸れて鍵長の話をしておく。&lt;/p&gt;
&lt;p&gt;たとえば RSA の（平文 $M$ から暗号文 $C$ への）暗号化は以下の式で表される。&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;mathjax box&#34;&gt;
\[
    C = M^e \bmod n
\]
&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;$(e, n)$ のセットが公開鍵で， $n$ のサイズが鍵長に相当する。
実際の計算はともかく，感覚としては分かりやすいよね。&lt;/p&gt;
&lt;p&gt;ECC の場合は暗号化の前に，まずベースとなる楕円曲線の（素数 $q$ で決められる）素体（prime fields）を決めなければならない&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;figure&gt;&lt;div class=&#34;mathjax box&#34;&gt;
\[
    E : y^2 \equiv x^3 + ax + b \pmod{q}
\]
&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;この素体上の有理点の数（位数）を $\#E$ とした時の $\#E$ のサイズが鍵長に相当する。
$(a,b,q)$ といったパラメータを眺めただけでは鍵長が分からないというのが面倒臭い感じである&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;そこで ECC の場合は楕円曲線を表すパラメータのセットが標準化されていて，そのセットを識別する ECC Curve OID (Object IDentifier) も決められている。
先程書いた &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; 出力結果の &amp;ldquo;&lt;code&gt;ECC Curve OID&lt;/code&gt;” の項目がそれに該当する。&lt;/p&gt;
&lt;p&gt;つまり ECC Curve OID から楕円曲線の種類を特定し，そこから鍵長も分かる，というわけだ。&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;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;表の左端列の「GnuPG」は &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;cv25519&lt;/code&gt; と &lt;code&gt;ed25519&lt;/code&gt; は 256bits）。
右端列の「強度」は鍵長ではなく，セキュリティ強度なのでご注意を。&lt;/p&gt;
&lt;h3&gt;SECG/NIST 推奨パラメータ&lt;/h3&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th style=&#34;text-align: left&#34;&gt;GnuPG&lt;/th&gt;
					&lt;th style=&#34;text-align: left&#34;&gt;SECG&lt;/th&gt;
					&lt;th style=&#34;text-align: left&#34;&gt;NIST&lt;/th&gt;
					&lt;th style=&#34;text-align: center&#34;&gt;アルゴリズム&lt;/th&gt;
					&lt;th style=&#34;text-align: center&#34;&gt;強度 bits&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;nistp256&lt;/code&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;secp256r1&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;NIST curve P-256&lt;/td&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;ECDH, ECDSA&lt;/td&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;128&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;nistp384&lt;/code&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;secp384r1&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;NIST curve P-384&lt;/td&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;ECDH, ECDSA&lt;/td&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;192&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;nistp521&lt;/code&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;secp521r1&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;NIST curve P-521&lt;/td&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;ECDH, ECDSA&lt;/td&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;256&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;secp256k1&lt;/code&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;secp256k1&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;ECDH, ECDSA&lt;/td&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;128&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;SECG/NIST の楕円曲線名とのマッピングは &lt;a href=&#34;https://tools.ietf.org/html/rfc4492&#34; target=&#34;_blank&#34; title=&#34;RFC 4492 - Elliptic Curve Cryptography (ECC) Cipher Suites for Transport Layer Security (TLS)&#34;&gt;RFC 4492&lt;/a&gt; を参考にした。
&lt;code&gt;nistp256&lt;/code&gt;, &lt;code&gt;nistp384&lt;/code&gt;, &lt;code&gt;nistp521&lt;/code&gt; は既に &lt;a href=&#34;https://tools.ietf.org/html/rfc6637&#34; target=&#34;_blank&#34; title=&#34;RFC 6637 - Elliptic Curve Cryptography (ECC) in OpenPGP&#34;&gt;RFC 6637&lt;/a&gt; で定義済みなので正式に使える。
&lt;a href=&#34;https://tools.ietf.org/html/rfc6637&#34; target=&#34;_blank&#34; title=&#34;RFC 6637 - Elliptic Curve Cryptography (ECC) in OpenPGP&#34;&gt;RFC 6637&lt;/a&gt; では NIST curve P-256 については &amp;ldquo;MUST implement”， NIST curve P-521 については &amp;ldquo;SHOULD implement”， NIST curve P-384 については &amp;ldquo;MAY implement” となっている。&lt;/p&gt;
&lt;h3&gt;Brainpool&lt;/h3&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th style=&#34;text-align: left&#34;&gt;GnuPG&lt;/th&gt;
					&lt;th style=&#34;text-align: center&#34;&gt;アルゴリズム&lt;/th&gt;
					&lt;th style=&#34;text-align: center&#34;&gt;強度 bits&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;brainpoolP256r1&lt;/code&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;ECDH, ECDSA&lt;/td&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;128&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;brainpoolP384r1&lt;/code&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;ECDH, ECDSA&lt;/td&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;192&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;brainpoolP512r1&lt;/code&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;ECDH, ECDSA&lt;/td&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;256&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Brainpool については &lt;a href=&#34;https://tools.ietf.org/html/rfc5639&#34; target=&#34;_blank&#34; title=&#34;RFC 5639 - Elliptic Curve Cryptography (ECC) Brainpool Standard Curves and Curve Generation&#34;&gt;RFC 5639&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; では &lt;code&gt;brainpoolP256r1&lt;/code&gt; および &lt;code&gt;brainpoolP512r1&lt;/code&gt; については &amp;ldquo;MAY implement” となっている。&lt;/p&gt;
&lt;h3&gt;その他&lt;/h3&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th style=&#34;text-align: left&#34;&gt;GnuPG&lt;/th&gt;
					&lt;th style=&#34;text-align: center&#34;&gt;アルゴリズム&lt;/th&gt;
					&lt;th style=&#34;text-align: center&#34;&gt;強度 bits&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;cv25519&lt;/code&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;ECDH&lt;/td&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;128&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;ed25519&lt;/code&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;EdDSA&lt;/td&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;128&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;EdDSA については &lt;a href=&#34;https://tools.ietf.org/html/rfc8032&#34; target=&#34;_blank&#34; title=&#34;RFC 8032 - Edwards-Curve Digital Signature Algorithm (EdDSA)&#34;&gt;RFC 8032&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; では Curve25519 (&lt;code&gt;cv25519&lt;/code&gt;) および Ed25519 (&lt;code&gt;ed25519&lt;/code&gt;) については &amp;ldquo;SHOULD implement” となっている。&lt;/p&gt;
&lt;p&gt;ちなみに Curve25519 と Ed25519 は双有理同値である。&lt;/p&gt;
&lt;h2&gt;セキュリティ強度と楕円曲線&lt;/h2&gt;
&lt;p&gt;セキュリティ強度と暗号アルゴリズムと鍵長の関係は以下の表の通り（単位は全てビット）。&lt;/p&gt;
&lt;p&gt;&lt;figure lang=&#34;en&#34;&gt;
&lt;style&gt;
main table.nist2 th  {
  vertical-align:middle;
  text-align: center;
}
main table.nist2 td  {
  vertical-align:middle;
  text-align: center;
}
&lt;/style&gt;
&lt;table class=&#34;nist2&#34;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Security&lt;br&gt;Strength&lt;/th&gt;
&lt;th&gt;Symmetric&lt;br&gt; key&lt;br&gt; algorithms&lt;/th&gt;
&lt;th&gt;FFC&lt;br&gt;(DSA, DH,&lt;br&gt;MQV)&lt;/th&gt;
&lt;th&gt;IFC&lt;br&gt;(RSA)&lt;/th&gt;
&lt;th&gt;ECC&lt;br&gt;(ECDSA,&lt;br&gt;EdDSA, DH,&lt;br&gt;MQV)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt; $\le 80$ &lt;/td&gt;&lt;td&gt;2TDEA&lt;/td&gt;&lt;td&gt; $L=1024$ &lt;br&gt; $N=160$ &lt;/td&gt;&lt;td&gt; $k=1024$ &lt;/td&gt; &lt;td&gt; $f = 160\text{ - }223$ &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; $112$ &lt;/td&gt;&lt;td&gt;3TDEA&lt;/td&gt;&lt;td&gt; $L=2048$ &lt;br&gt; $N=224$ &lt;/td&gt;&lt;td&gt;$k=2048$&lt;/td&gt; &lt;td&gt;$f = 224\text{ - }255$&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; $128$ &lt;/td&gt;&lt;td&gt;AES-128&lt;/td&gt;&lt;td&gt; $L=3072$ &lt;br&gt; $N=256$ &lt;/td&gt;&lt;td&gt;$k=3072$&lt;/td&gt; &lt;td&gt;$f = 256\text{ - }383$&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; $192$ &lt;/td&gt;&lt;td&gt;AES-192&lt;/td&gt;&lt;td&gt; $L=7680$ &lt;br&gt; $N=384$ &lt;/td&gt;&lt;td&gt;$k=7680$&lt;/td&gt; &lt;td&gt;$f = 384\text{ - }511$&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; $256$ &lt;/td&gt;&lt;td&gt;AES-256&lt;/td&gt;&lt;td&gt; $L=15360$ &lt;br&gt; $N=512$ &lt;/td&gt;&lt;td&gt;$k=15360$&lt;/td&gt;&lt;td&gt;$f=512+$&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;figcaption&gt;&lt;div&gt;Comparable security strengths of symmetric block cipher and asymmetric-key algorithms (via &lt;q&gt;&lt;a href=&#39;https://doi.org/10.6028/NIST.SP.800-57pt1r5&#39;&gt;SP 800-57 Part 1 Revision 5 &lt;sup&gt;&lt;i class=&#39;far fa-file-pdf&#39;&gt;&lt;/i&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/q&gt; 5.6.1.1)&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt; &lt;!-- 要 MathJax --&gt;&lt;/p&gt;
&lt;p&gt;2031年以降も Acceptable な鍵が要件なら 128bits 以上のセキュリティ強度が必要だが， &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;【付録】 対話モードによる ECC 鍵の選択&lt;/h2&gt;
&lt;p&gt;対話モードで 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;$ gpg --full-gen-key --expert
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;このうち ECC 鍵を作成できるのは，以下の選択肢の内 (9) から (11) を選択した場合である。&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;ご希望の鍵の種類を選択してください:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   (1) RSA と RSA (デフォルト)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   (2) DSA と Elgamal
&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;   (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 hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   (9) ECC と ECC
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#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;  (13) 既存の鍵
&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;(9) を選択すると電子署名用の主鍵と暗号化用の副鍵をセットで作成する。
(10) と (11) を選択すると電子署名用の主鍵のみ作成する（(11) では主鍵の機能を選択できる） 。&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;ご希望の楕円曲線を選択してください:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#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;/p&gt;
&lt;h3&gt;「ECC と ECC」を選んだ場合&lt;/h3&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: left&#34;&gt;主鍵（電子署名用）&lt;/th&gt;
					&lt;th style=&#34;text-align: left&#34;&gt;副鍵（暗号化用）&lt;/th&gt;
					&lt;th style=&#34;text-align: center&#34;&gt;強度 bit&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;Curve 25519&lt;/code&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;EdDSA (&lt;code&gt;ed25519&lt;/code&gt;)&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;ECDH (&lt;code&gt;cv25519&lt;/code&gt;)&lt;/td&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;128&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;NIST P-256&lt;/code&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;ECDSA (&lt;code&gt;nistp256&lt;/code&gt;)&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;ECDH (&lt;code&gt;nistp256&lt;/code&gt;)&lt;/td&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;128&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;NIST P-384&lt;/code&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;ECDSA (&lt;code&gt;nistp384&lt;/code&gt;)&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;ECDH (&lt;code&gt;nistp384&lt;/code&gt;)&lt;/td&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;192&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;NIST P-521&lt;/code&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;ECDSA (&lt;code&gt;nistp521&lt;/code&gt;)&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;ECDH (&lt;code&gt;nistp521&lt;/code&gt;)&lt;/td&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;256&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;Brainpool P-256&lt;/code&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;ECDSA (&lt;code&gt;brainpoolP256r1&lt;/code&gt;)&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;ECDH (&lt;code&gt;brainpoolP256r1&lt;/code&gt;)&lt;/td&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;128&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;Brainpool P-384&lt;/code&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;ECDSA (&lt;code&gt;brainpoolP384r1&lt;/code&gt;)&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;ECDH (&lt;code&gt;brainpoolP384r1&lt;/code&gt;)&lt;/td&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;192&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;Brainpool P-512&lt;/code&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;ECDSA (&lt;code&gt;brainpoolP512r1&lt;/code&gt;)&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;ECDH (&lt;code&gt;brainpoolP512r1&lt;/code&gt;)&lt;/td&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;256&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;secp256k1&lt;/code&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;ECDSA (&lt;code&gt;secp256k1&lt;/code&gt;)&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;ECDH (&lt;code&gt;secp256k1&lt;/code&gt;)&lt;/td&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;128&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;「ECC (署名のみ)」を選んだ場合&lt;/h3&gt;
&lt;p&gt;「ECC (機能をあなた自身で設定)」でも同じ。&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: left&#34;&gt;主鍵（電子署名用）&lt;/th&gt;
					&lt;th style=&#34;text-align: left&#34;&gt;副鍵&lt;/th&gt;
					&lt;th style=&#34;text-align: center&#34;&gt;強度 bit&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;Curve 25519&lt;/code&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;EdDSA (&lt;code&gt;ed25519&lt;/code&gt;)&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;なし&lt;/td&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;128&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;NIST P-256&lt;/code&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;ECDSA (&lt;code&gt;nistp256&lt;/code&gt;)&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;なし&lt;/td&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;128&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;NIST P-384&lt;/code&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;ECDSA (&lt;code&gt;nistp384&lt;/code&gt;)&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;なし&lt;/td&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;192&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;NIST P-521&lt;/code&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;ECDSA (&lt;code&gt;nistp521&lt;/code&gt;)&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;なし&lt;/td&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;256&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;Brainpool P-256&lt;/code&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;ECDSA (&lt;code&gt;brainpoolP256r1&lt;/code&gt;)&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;なし&lt;/td&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;128&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;Brainpool P-384&lt;/code&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;ECDSA (&lt;code&gt;brainpoolP384r1&lt;/code&gt;)&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;なし&lt;/td&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;192&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;Brainpool P-512&lt;/code&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;ECDSA (&lt;code&gt;brainpoolP512r1&lt;/code&gt;)&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;なし&lt;/td&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;256&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;secp256k1&lt;/code&gt;&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;ECDSA (&lt;code&gt;secp256k1&lt;/code&gt;)&lt;/td&gt;
					&lt;td style=&#34;text-align: left&#34;&gt;なし&lt;/td&gt;
					&lt;td style=&#34;text-align: center&#34;&gt;128&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;ブックマーク&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;span&gt;&lt;a href=&#34;http://www.jnsa.org/seminar/pki-day/2011/data/02_kanaoka.pdf&#34;&gt;楕円曲線暗号の整備動向＋楕円暗号の実装状況 &lt;sup&gt;&lt;i class=&#34;far fa-file-pdf&#34;&gt;&lt;/i&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;http://www.maidsphere.jp/archive/%E6%A5%95%E5%86%86%E6%9B%B2%E7%B7%9A%E6%9A%97%E5%8F%B7%E3%81%AE%E9%8D%B5%E9%95%B7%E3%81%AB512bit%E3%81%8C%E3%81%AA%E3%81%8F521bit%E3%81%8C%E3%81%82%E3%82%8B%E7%90%86%E7%94%B1&#34; target=&#34;_blank&#34;&gt;楕円曲線暗号の鍵長に512bitがなく521bitがある理由 | maidsphere&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://kazu-yamamoto.hatenablog.jp/entry/20171114/1510635277&#34; target=&#34;_blank&#34;&gt;TLS 1.3 開発日記 その22 公開鍵暗号の動向 - あどけない話&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://text.baldanders.info/openpgp/algorithms-for-openpgp/&#34; target=&#34;_blank&#34;&gt;OpenPGP で利用可能なアルゴリズム（RFC 4880bis 対応版）&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/eddsa/&#34; target=&#34;_blank&#34;&gt;Edwards-curve Digital Signature Algorithm&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/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;&lt;strong&gt;[Comment]&lt;/strong&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;この辺については「&lt;a href=&#34;https://text.baldanders.info/openpgp/openpgp-key-management/&#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://github.com/goark/gpgpdump&#34; target=&#34;_blank&#34; title=&#34;goark/gpgpdump: OpenPGP packet visualizer&#34;&gt;gpgpdump&lt;/a&gt; v0.3.4 以降なら多分大丈夫。&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;素体ではなく「標数2の体（binary fields）」を使う場合もあるが，ここでは割愛する。&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;楕円曲線と楕円曲線暗号については結城浩さんの『&lt;a href=&#34;https://www.amazon.co.jp/exec/obidos/ASIN/B015643CPE/baldandersinf-22/&#34; target=&#34;_blank&#34;&gt;暗号技術入門 第3版&lt;/a&gt;』の付録に比較的分かりやすい解説が載っている。同じく結城浩さんの『&lt;a href=&#34;https://www.amazon.co.jp/exec/obidos/ASIN/B00L0PDMK4/baldandersinf-22/&#34; target=&#34;_blank&#34;&gt;数学ガール ガロア理論&lt;/a&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>『暗号技術入門 第3版』をななめ読み</title>
		<link rel="alternate" type="text/html" href="https://text.baldanders.info/remark/2015/cryptography-introduction/" />
		<id>tag:text.Baldanders.info,2015-09-20:/remark/2015/cryptography-introduction/</id>
		<published>2015-09-20T12:43:17+00:00</published>
		<updated>2026-05-17T05:32:22+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;http://www.hyuki.com/cr/&#34; target=&#34;_blank&#34;&gt;暗号技術入門 第3版&lt;/a&gt;』がついに登場。
前の第2版のときは細々した追記が主だったような気がするが，今回は大幅改訂版なので，以前のを持ってる人も買っておいて損はない。
主な改訂内容としては&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SHA-3 について詳しく解説&lt;/li&gt;
&lt;li&gt;HeartBleed や POODLE など，最近の攻撃手法について言及&lt;/li&gt;
&lt;li&gt;付録で楕円曲線暗号（Elliptic Curve Cryptography）について詳しく解説&lt;/li&gt;
&lt;li&gt;Bitcoin というか Bitcoin の中の重要な技術要素である Block Chain について詳しく解説&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;他にも &lt;a href=&#34;https://www.gnupg.org/&#34; target=&#34;_blank&#34;&gt;GnuPG&lt;/a&gt; の記述が modern version に対応してたり，認証つき暗号（AEAD; Authenticated Encryption with Associated Data）およびその実装である GCM (Galois/Counter Mode) への言及があったり，いろいろ細かく手直しされている。&lt;/p&gt;
&lt;p&gt;特に楕円曲線暗号の解説は秀逸で，入門レベルでの解説の中では一番分かりやすかった。
あと Block Chain の解説もお勧め。
Bitcoin や Block Chain に関する解説本はすでにたくさん出ているが，暗号技術の観点からきちんと解説しているものは少なく，「信用モデル」にまで話を展開しているものは更に少ない。&lt;/p&gt;
&lt;p&gt;結局，暗号システムの実装というのは究極的には「信用モデル」の開発であると言える。
問題は「信用モデル」はロジックだけでは成立しない，ということだ。
『&lt;a href=&#34;http://www.hyuki.com/cr/&#34; target=&#34;_blank&#34;&gt;暗号技術入門 第3版&lt;/a&gt;』では信用モデルの例として hierarchical PKI の典型である X.509 と OpenPGP の Web of Trust，そして Block Chain を挙げているが，それぞれ特徴があって比較すると面白い。
たとえば Block Chain はユーザ間に働く経済的 incentive を巧妙に使うが，それだけにパラメータの調整が難しいし， Mt. Gox のような経済リスクも考慮しなくてはならない。&lt;/p&gt;
&lt;p&gt;そもそも信用というのは過去の事実に対してのみ評価可能なのに，実際に評価したいのは現在及び未来についてなのだ。
これって本来は不能解だよね。
でも信用が評価できなくては世の中は回らない。
だから，どうにかして実用可能なレベルにまで近似できないか，と専門家やエンジニアは頭を悩ますわけ。&lt;/p&gt;
&lt;p&gt;そういったことを頭の隅に入れながら読めば，この本は単なるリファレンス本ではないことに気づくと思う。&lt;/p&gt;
&lt;p&gt;最後にちょっとだけ注文をつけるなら「前方秘匿性（PFS; Perfect Forward Secrecy）」および OTR (Off-the-Record) Messaging の肝である「否認可能（Deniability）」についても言及が欲しかった&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;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;&lt;strong&gt;[Comment]&lt;/strong&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/4757143044?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/413qoSjODUL._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/4757143044?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;NTT出版 2013-12-24&lt;/dd&gt;
    &lt;dd&gt;単行本（ソフトカバー）&lt;/dd&gt;
    &lt;dd&gt;4757143044 (ASIN), 9784757143043 (EAN), 4757143044 (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;&lt;strong&gt;[Comment]&lt;/strong&gt; 社会における「信頼」とは。&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-11-28&#34;&gt;2015-11-28&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;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;PFS についてはもしかしたら見落としてるかもしれないが。なにせ斜め読みだったから。&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>
</feed>
