『暗号をめぐる最近の話題』
ゴメン。 「最近の話題」ってのは少しウソ。 実は1年前の話なのだが,私が放ったらかしにしていたのだ。 でも個人的にはもうすぐ OpenPGP 運用鍵の更新タイミングだし,そろそろ覚え書きの形でもまとめておかないといけない気がするので,今更ながら書いておく。
2011年はじめ,米国 NIST から以下の文書が公開された。
- NIST Special Publication 800-131A -- Transitions: Recommendation for Transitioning the Use of Cryptographic Algorithms and Key Lengths (PDF)
- DRAFT FIPS PUB 180-4 -- Secure Hash Standard (SHS) (PDF)
特に重要なのは SP 800-131A のほう。 SP 800-131A には推奨される暗号アルゴリズムとその鍵長について記されている。 さらに IPA が2011年5月に公開した「『暗号をめぐる最近の話題』に関するレポート」では,この SP 800-131A について言及がある。
IPA のレポートのほうが簡潔で分かりやすいので,以降はこのレポートを元に書いていく。
もともと NIST では SP 800-57 で1024ビット RSA 鍵や SHA-1 署名等を2010年を目処にもっと強力なもの(2048ビット RSA 鍵,SHA-2)に切り替えるよう促していた。 いわゆる「2010年問題」である。 しかし SP 800-131A ではこの期限を実質的に2013年までに延長した。 具体的には以下のとおり。
2-key Triple DES | 2010年末まで Acceptable 2015年末まで Restricted |
AES | Acceptable |
1024ビット RSA | 2010年末まで Acceptable 2013年末まで Deprecated |
2048ビット RSA | Acceptable |
SHA-1 による署名 | 2010年末まで Acceptable 2013年末まで Deprecated |
SHA-1 (署名以外) | Acceptable |
SHA-256 | Acceptable |
ちなみに “Acceptable” は「安全に使える(解読リスクが表面化していない)と考えられる暗号アルゴリズム」, “Deprecated” は「ある程度の解読リスクはあるものの、短期的には(データ暗号化や署名生成にも)使ってもよいと考えられる暗号アルゴリズム」, “Restricted” は「解読リスクを回避するために利用する際の制約条件を付けた上で、短期的には(データ暗号化にも)使ってもよいと考えられる暗号アルゴリズム」である。 なおこれらの期限以降は基本的に “Disallowed”(利用を禁止する暗号アルゴリズム)となっている。
現状はどうなっているかというと以下の記事が参考になる。
「日本ベリサインによれば、SSLサーバー証明書の公開鍵暗号については一部のモバイルサイトを除き、多くのWebサイトが2048ビットRSAに対応済みという。一方で、ハッシュ関数についてはWebブラウザーなどの対応が遅れており、ほとんどがSHA-1のままだという。「Windows XP SP2以前のWindowsや2008年以前に発売された携帯電話機など一部でSHA-2に対応できないものが存在しており、業界として対応を先送りにしてきた事情がある」」 (「「暗号の2010年問題ではハッシュ関数の対応が遅れている」、日本ベリサイン」より)
ということらしい。 WinXP のバージョンが古いままなのはユーザ側の問題だし(つか,いっそのこと XP のサポートは終了していいと思う。 IE6 根絶のためにもw),古いケータイが SHA-2 に対応していない(できない)のはどうしようもないと思う。 さて,来年末までにどうにかなるのかねぇ。
もうひとつ「『暗号をめぐる最近の話題』に関するレポート」で指摘されているのは,時期ハッシュ関数である SHA-3 の位置づけである。
もともと SHA-3 は SHA-1 の危殆化に伴い SHA-1/SHA-2 に代わる新しいアルゴリズムをコンペ形式で選定しようというものだった。 SHA-3 のコンペは現在も続いているが(だよね?),その位置づけが変わってきているようなのだ。
「これまで、SHA-2ファミリーはSHA-3ができるまでのワンポイントリリーフ的な扱いになるかもしれないという意見が少なからずあった。 しかし、現在のNISTの動きを見る限りは、AESがDES/Triple DESの代替方式という明確な位置づけを与えられていたのとは異なり、むしろSHA-2ファミリーのほうこそ今後の本命であり、SHA-3はSHA-2の代替どころか補完もしくはバックアップとして位置づけるように見直してきている節がある。」 (「『暗号をめぐる最近の話題』に関するレポート」(PDF)より)
たとえば FIPS PUB 180-4 のドラフトでは64ビット CPU 向けの実装(SHA-512/224, SHA-512/256, SHA-512)が示されている。 これは SHA-1 の危殆化が2005年当時に言われていたほどではないのではないか,という判断があるらしい(実際, SHA-1 のハッシュの衝突例も見つかっていない)。 上述の「2010年問題」の期限延長も,この辺の判断が働いたのではないかという気がする。
というわけで,個人的には SHA-3 の登場を(そして GnuPG に実装されるのを)待っていたのだが,少なくとも運用に関しては SHA-3 を気にしなくてもよさそうな感じである。
参考: