暗号シリーズの第1回目,第2回目のコラムでは、暗号方式の基礎と暗号の安全性について説明してきましたが、第3回では現在使用されている暗号方式の安全性(危殆化問題)と将来動向、及びシステムでの対応の考え方について解説します。
今まで広く使われていました秘密鍵暗号方式であるDESについて、その危殆化状況をみてみましょう。
DESは元々IBMが開発した暗号方式で、米国において政府調達標準暗号として認定されていました。1990年代に入ってDESを解読する攻撃法に関する論文発表が相次ぎ、1997年にはDES challengeⅠ(暗号解読コンテスト)が開催され、distributed netプロジェクトが1万台のパソコンを使い140日間で解読に成功しました。 このころ米国の暗号標準化プロジェクトであるAES (Advanced Encryption Standard)プロジェクトが開始されたのです。さらに1998年にはDES challengeⅡが開催され、解読専用のハードを使いDESは56時間で解読されてしまいました。 そのため、米国政府は1999年、今後は原則として、新規に調達するシステムにはトリプルDES(注1)あるいはAESを採用する方針を決めました。
(注1) トリプルDES:共通鍵暗号方式の1つであるDESによって3回暗号化することで、より暗号強度を高めた暗号方式のことです。
2004年中国の研究者Xiaoyun Wangがハッシュ関数の脆弱性(Collision)を発表し、2005年にはWangが米国標準ハッシュ関数であるSHA-1(シャーワン)の安全性が弱まっていることを発表しました。
SHA-1は認証、署名等に世界中で広く利用されているため、影響は極めて大きく、NIST(米国で暗号の標準を規定している米国商務省国立標準技術研究所)は2011年に新標準ハッシュ関数を発表することを示唆しました。 ハッシュ関数の安全性が弱まっているとはどういうことかを簡単に解説しておきます。
ハッシュ関数というのは、任意のデータを一定サイズのハッシュ値に圧縮するアルゴリズムで、 ハッシュ値から元のデータを推測できないことや、一つのハッシュ値に対し複数のデータが見つからないことが必要です。元のデータが推測されてしまうと電子署名が改ざんされてしまう危険が出てきます。ハッシュ値に対し複数のデータが見つかる確率は、概ねハッシュ値のサイズに依存します(ハッシュ値のサイズを n とすると 2 の n/2 乗分の 1 の確率)。従って圧縮後のハッシュ値は長い方がより安全だといえます。
1990年代から続く暗号解読技術の進展、計算機性能の向上等による攻撃能力の向上を背景に、米国政府標準暗号についても2010年には米国政府システムにおける現在のデファクト暗号の運用は終了するとしています。
従って2010年を境に各国が認定した標準暗号方式についても総入れ替えすると予想されています。これを暗号の2010年問題と呼んでいます。
NISTでは、米国政府の情報システムが今後利用する暗号方式について報告しています。そこでは、共通鍵暗号についてDESは廃止し、トリプルDESを標準暗号としてではなく推奨暗号とし、標準暗号としてはAESで一本化するとしています。
デジタル署名用公開鍵暗号については、RSAは鍵長1024ビットについて認証用途は2010年末に、署名用途は2008年末(検証は2010年末)までには廃止の方針であるようですが、新しい方式の策定には時間がかかることから、鍵長をさらに長くしたり、楕円暗号方式が取り上げられそうです。
またハッシュ関数については、SHA-1が2010年末で廃止の方向とし、SH-2(SHA-224/256/384/512)は次期米国政府標準ハッシュ関数との位置づけだそうですが、新ハッシュ方式の策定も考えているようです。
学会等で暗号の研究者が暗号の攻撃方法についての発表をすると、その対象となった暗号方式が一般に普及していればいる程、大きな反響を呼びます。しかし、新しく発表される攻撃方法については、いくつかの段階があり、実用システムにおいて必ずしも早急な対応が必要なわけではありません。
NTTの研究所では暗号危殆化の進行に合わせた対策が立てられるように、暗号危殆化レベル(文末の<参考>で示す)を提案しています。現実のシステムやサービスでの対応については、暗号危殆化レベルを踏まえて適切に対応することが求められでしょう。
システムやサービスに求められる暗号方式の安全性レベルについては、システム開発ポリシーやサービス提供ポリシー等に依存していますので、本コラムでは「暗号方式の選択と移行タイミング」の一考え方として紹介します。
レベル0:安全な暗号として利用できる状態
レベル1:脆弱性が見つかった状態ではあるが、安全に使える状態(実現不可能な計算量・メモリ量等などの解読環境を必要とする状態)
レベル2:脆弱性が見つかった状態であり、新規システムでの採用には検討がいる状態(近い将来、理想的な環境が与えられた場合に解読可能となっている状態)
レベル3:脆弱性が見つかった状態であり、中長期間運用継続が予定されているシステムでの利用に検討がいる状態(実現可能な環境の下、ある種の限定された条件下で解読可能となっている状態)
レベル4:事実上暗号としての寿命を迎えた状態
NTT R&D 情報セキュリティシリーズ
最新暗号技術2006年(株式会社アスキー)
東京大学
情報セキュリティコミュニティ
副代表
林 誠一郎