FinalCodeブログ

  • 2015/03/06

暗号方式AESの安全性について

ファイル暗号化ソフトでは、その名前の通りファイルの機密性を保護するために暗号が利用されます。「FinalCode」では、ファイルの暗号化に米国標準暗号であるAES(Advanced Encryption Standard)を利用しています。この記事では、AESの安全性について簡単にですが解説したいと思います。

暗号アルゴリズムの成り立ち

インターネットや携帯電話などが広く普及した現代では、私たちの普段の生活に暗号技術が不可欠になっています。コンピュータが発達する以前は、暗号と言えば主に外交や戦争などで利用されるもので、例えば第2次大戦中などは敵国の暗号を解読し、それによって有利に戦局を進めるということもあったようです。各国は独自の暗号を開発し、暗号方式の詳細は極めて高い機密情報であったと思われます。

これに対して、現在広く利用されている暗号方式の多くは、暗号化・復号の手順(アルゴリズム)は公開されているという特徴があります。暗号アルゴリズムが公開されることによって、PC上で動作するソフトウェア等を作成し、多くの人の間で同じ暗号方式を利用して通信することが可能になります。また、暗号の安全性を公に評価することも可能になります。

一見、暗号化と復号のアルゴリズムが公開されてしまうと暗号の安全性が保てなくなりそうですが、アルゴリズムとは別に各利用者が定めた鍵と呼ばれる情報を秘密に保持することで暗号化されたデータの機密性を確保できるようになっています。

暗号で利用される鍵を安全に共有、保持することは非常に重要であり、悪意のある他人に鍵を知られたり、一部でも推測されたりすることがないようにしなければなりません。そのためには、鍵としてある程度の長さを持つ十分ランダムな数字を利用する必要があります。

暗号方式AESとは?

AESは2001年に米国標準暗号として規格化された暗号方式です。それ以前にはDES(Data Encryption Standard)と呼ばれる暗号方式が標準規格として利用されていましたが、DESは鍵の長さ(以下、鍵長)が56ビットとあまり長くないことや、90年代に線形攻撃などの強力な攻撃方法が開発されたことなどからその安全性が問題となり、代わりとなる暗号方式が公募され、応募された暗号方式の中からRijndaelと呼ばれる暗号がAESとして制定されました。

先にも説明しましたように、暗号で利用する鍵長は安全性に関して大変重要な要素です。仮に、有効な攻撃方法が全く存在しない理想的な暗号が存在したとしても、攻撃者がすべての鍵を総当たりで調べ上げてしまえば必ず鍵は見つかってしまいます。

例えば、ある暗号方式の鍵が40ビットしかなかったとすると、その暗号で利用できる鍵の総数は2の40乗個(およそ1兆個)であり、PCなどを利用すると全部の鍵を調べ上げることができてしまいます。

さらに、その暗号に対して有効な攻撃があれば、調べなければならない鍵の総数をさらに減らすことが可能になります。したがって、暗号が安全であるためには、有効な攻撃が存在しないことと、鍵を総当たりで探すことが現実的な時間では困難であることが求められます。

今後、暗号に必要となる鍵長

米国の国立標準技術研究所(NIST)では計算機の進歩等を考慮した上で、今後暗号に必要となる鍵長の指標を発表しています[1]。それによると、2030年まで利用する予定の暗号方式では112ビットの安全性を持つこと、それ以降も利用される予定の場合は128ビットの安全性を持つ暗号方式を利用することが薦められています。ここで112ビットの安全性というのは、攻撃に必要な計算回数が2112回であるような暗号の安全性のことを言います。

AESでは、利用できる鍵長として128ビット、192ビット、256ビットの3種類から選択することができます。現在AESに対する最も有効な攻撃の一つとして2011年にBogdanovらが発表したBiclique攻撃と呼ばれる攻撃法が知られています[2]。

この攻撃を利用すると、攻撃に必要となる計算回数が、128ビット、192ビット、256ビットそれぞれの鍵長のAES暗号に対して2126.1回、2189.7回、2254.4回まで削減できることが理論的に示されています。この結果から考えると、AESは192ビットの鍵長のものを利用すれば2030年以降も安全に余裕を持って利用できると考えることができます。

ただし、AESに対して今後、新しい攻撃法が発見される可能性は否定できません。そのような未知の攻撃に対しても、暗号にできる限り耐性を持たせるためにはできる限り長い鍵を利用することが望まれます。このような理由から「FinalCode」ではAESの鍵として256ビットの鍵を利用しています。
<「FinalCode」開発:北川>

●参考文献
[1] Recommendation for Key Management - NIST Special Publication 800-57.
[2] A. Bogdanov, D. Khovratovich, and C. Rechberger, "Biclique Cryptanalysis of the Full AES," ASIACRYPT 2011, pp. 344-371, 2011.



資料請求、導入、ご購入に関するお問い合わせ

ご購入や導入方法、資料請求、お見積りについてのお問い合わせは下記で承っております。

▼お電話によるお問い合わせ
03-5220-3090平日 9:00~18:00(土・日・祝日、弊社指定休業日除く)
▼オンラインフォームによるお問い合わせ
資料請求・お問い合わせ

試用版ご利用のお申し込み

SaaS(クラウド版)の「FinalCode」を30日間無料でご試用いただけるライセンスをご用意しております。お気軽にお申し込みください。


お問い合わせ・資料請求

30日間無料試用版ご利用の申込み

このページの先頭へ