フォーラム:ケイレックスの提供するナレッジ

05

暗号セキュリティーの脅威、評価と対策

暗号鍵の強度を計る(暗号解読)手法に関して実施したプロジェクトです

情報社会の発展とともに、情報セキュリティーは重要な課題になってきました。情報の漏洩や不正アクセスを防止するために、さまざまな暗号技術が用いられています。しかしどのような暗号技術も完全ではありません。実際、暗号の歴史は、新たな暗号方式の発明と、その暗号を解読する技術の競争の歴史です。映画でも有名なエニグマ(注1)のようなエピソードには事欠きません

(注1)エニグマ(Enigma): 第二次世界大戦中にドイツ軍で使用された暗号装置

暗号方式と脆弱性

現代の情報社会においても、この競争は続いています。1976年に米国の連邦情報処理標準(FIPS)として採用され、その後長く標準暗号方式として使われてきたDES(Data Encryption Standard)は、 56ビットのバイナリーデータを暗号鍵として用いています。鍵の候補は約7.2×1016個あるので、総当たりで探索するとすれば、実用的な時間では簡単に解読できないと考えられてきました。しかし1999年には、コンピューターの並列処理を用いて、この全数探索攻撃(Brute Force Attack)により、わずか22時間15分で解読されてしまいました

そのような事態から、128ビット、あるいは256ビットという長い鍵を用いた新たな暗号方式が提案され、そのひとつが現在標準的に使われているAES(Advanced Encryption Standard)暗号です。これとて、現在の大規模コンピューターグリッドなどを用いれば、全数探索攻撃でも十分短い時間で解読可能であると言われています。ただ、暗号鍵の解読にそのように大きなコストを掛けることが容易ではないというところから、実用上はAESで十分安全であると考えられています

ところで、暗号鍵の解読方法は、全数探索のような単純なものだけではありません。暗号方式そのものは十分安全であっても、その実装方法に欠陥があれば、機密は簡単に破られてしまいます

単純な例をひとつ挙げましょう。LSIに暗号アルゴリズムを実装した場合を考えます。もし暗号鍵をLSIの中で固定して記憶させるために、配線パターンによる読み出し専用メモリー(ROM)に実装したとします。すると、LSIを分解し、配線パターンを読み取ることができれば、暗号鍵は一目瞭然です。実際、このようなLSIの破壊解析は通常の不良解析のために行われている作業で、高価な解析装置が必要であることを除けば、決して困難ではありません。

サイドチャネル攻撃

暗号装置の攻撃手法は、対象の装置を破壊しないで解析する「非破壊攻撃」と、対象の装置を破壊して解析する「破壊攻撃」とに分けられます。先に述べた、鍵の候補を全数探索する方法は非破壊攻撃、装置の回路パターンを分解解析する方法は破壊攻撃の一例です。

非破壊攻撃の中で、暗号装置を動作させている環境の中から漏洩してくる情報を観測、蓄積し、解析する手法を、一般にサイドチャネル攻撃(Side Channel Attack)と呼びます。サイドチャネルとは、正規の入出力経路ではないことを意味しています。漏洩情報としては、暗号装置の内部動作に応じて変化する電流や電圧、放射される電磁波、特定の動作の処理時間などがあります。攻撃に対する対策が不十分な回路は、パソコンやオシロスコープなど、どこにでもある設備だけで解析することができます。

イラスト
種々の暗号攻撃手法 (独立行政法人産業技術総合研究所 情報セキュリティー研究センターの図を基に作成)

単純電力解析と差分電力解析

サイドチャネル攻撃のうち最も基本的な手法が、暗号装置、暗号LSI等が暗号処理を行う際の電源電流あるいは電圧の変動を観測し、解析するものです。1回の暗号化あるいは復号処理に関する電源変動を観測、解析することを単純電力解析(SPA:Simple Power Analysis)と呼びます。また多数回の暗号化あるいは復号処理に対する電源変動を観測し、統計的に解析する手法を差分電力解析(DPA:Differential Power Analysis)と呼びます。

たとえば、公開鍵暗号の代表であるRSA暗号のアルゴリズムは、x を平文(元のデータ)、y を暗号文、e とn を暗号化鍵、d を復号鍵として、暗号化と復号は次のような簡単なべき乗剰余算の式で表されます。(a mod b は,a をb で割った余りを意味します)

暗号化:y =xe mod n
復号化:x =yd mod n

RSA暗号では、暗号化鍵であるeとnとを一般に公開しておき、復号鍵であるdを秘密にしておきます。そこでこの暗号化鍵eとnと公開鍵(public key)、復号鍵dを秘密鍵(private key)とも呼びます。

RSAアルゴリズムに対して一般によく用いられる実装方法においては、秘密鍵を使った復号処理に際して、鍵のビットパターンが0か1かによって、乗算の回数が異なります。攻撃対策を考慮していなければ、この乗算処理の違いにより、処理時間、あるいは消費電流に差を生じます。これは電源電流の変動を観測していれば容易に把握することができます。これが、RSA暗号に対する単純電力解析です。

別の例として、AES暗号を見てみましょう。AESのアルゴリズムは、それぞれ"Sub Bites", "Shift Rows"、"Mix Columns"、"Add Round Key"と呼ばれる非線形のバイナリー演算を、決められた回数だけ繰り返すことにより、暗号化あるいは復号の処理を行います。この"Add Round Key"の演算に、秘密の暗号鍵あるいは鍵から生成したデータが用いられます。この一連の処理、1回分の電源変動を観測すると、AES暗号の処理であることは容易に判別できますが、鍵の解読まではできません。

しかし、詳しい説明は専門書に譲りますが、入力される平文をランダムに変えて何度も暗号化処理を行い、それぞれの電源変動を蓄積して統計的に解析することにより、暗号鍵のビットが0か1かによる消費電力の差を捉えることができます。すなわち、1回の暗号化処理における消費電力の差が小さくても、大量の測定値の平均を取ると、大数の法則により測定誤差やノイズの影響を小さくすることができます。そうして全データの平均値と測定値の差分を観察すれば、鍵のビットパターンに依存性のある変動だけがハイライトされます。これが差分電力解析と呼ばれる手法です。

DES暗号やAES暗号の暗号鍵は、それぞれのアルゴリズムに合わせて適用方法を考慮する必要がありますが、この手法で解読できることが知られています。

暗号脆弱性の評価と規格

どのような暗号方式にも、解読の糸口となる脆弱性は存在します。特に実装において攻撃を意識しなければ、その脅威はさらに高まります。しかし民生応用では、暗号の脆弱性対策だけに大きな対策コストをかけることが困難です。その一方で、有料テレビ、電子マネーのように金銭取引を伴うような処理において特に、情報の機密性が損なわれると大きな社会問題を引き起こします。そこで暗号装置に対して、その脆弱性の評価方法と、出荷のためにクリアしなければならない攻撃耐性基準が設けられています。たとえばヨーロッパ連合(EU)の定めたICカード(Smart Card)用の評価基準として、Smartcard IC Platform Protection Profile があります。ICカードを製品として出荷するためにはこの試験を行い、認証を得る必要があります。

このような種々の国際規格の基本となるのがISO/IEC 15408 Common Criteriaです。Common Criteriaは、セキュリティーに関する検査項目とその検査方法とを規定しています。また、米国連邦標準規格で暗号装置に関するセキュリティー要件の仕様を規定したものがFIPS 140(Federal Information Processing Standardization 140)です。米国やカナダの省庁等各機関が使用する製品はこの基準を満たす必要があり、そのための認証制度があります。これをもとに国際規格化された暗号装置に関するセキュリティ要求基準が、ISO/IEC 19790/24759です。日本にも、独立行政法人情報処理推進機構(IPA)により運用される、、ISO/IEC 19790/24759に則した暗号モジュール試験及び認証制度(JCMVP®:Japan Cryptographic Module Validation Program)があります。

システムがこれらの規格を満たすことは、決して困難なことではありませんが、どのような暗号方式では実装でどのような点に注意すべきか、逆にその暗号方式に対する攻撃方法を知って対策することが求められます。
ケイレックス・テクノロジーは、サイドチャネル攻撃に対するシステムの耐性評価、および対策についてのコンサルティングを行っています。またCryptography Research, Inc.(CRI)の評価ツールDPA Workstation™の販売および関連するサービスを提供しています。お気軽にご相談ください。

Forum関連記事

ケイレックスが提供するサービスのコア

ケイレックスが提供するサービスのコア