(57)【要約】【課題】サイドチャネル攻撃耐性を評価するのに適したサイドチャネル情報を測定可能な、サイドチャネル情報測定装置を提供する。【解決手段】暗号装置から漏洩するサイドチャネル情報を測定するサイドチャネル情報測定装置において、評価対象の暗号装置から発生するサイドチャネル情報を測定するサイドチャネル情報測定部と、サイドチャネル情報測定部の測定におけるサンプリングレートを、暗号装置のクロック周波数に基づいて設定するパラメータ設定部と、を備える。【選択図】図１
2010273263.tif 000002
【特許請求の範囲】
【請求項１】
評価対象の暗号装置から発生するサイドチャネル情報を測定するサイドチャネル情報測定手段と、
前記サイドチャネル情報測定手段の測定におけるサンプリングレートを、前記暗号装置のクロック周波数に基づいて設定するパラメータ設定手段とを備えることを特徴とするサイドチャネル情報測定装置。
【請求項２】
請求項１記載のサイドチャネル情報測定装置において、
前記パラメータ設定手段が、前記サンプリングレートを前記クロック周波数の定数倍に設定することを特徴とするサイドチャネル情報測定装置。
【請求項３】
請求項１又は２記載のサイドチャネル情報測定装置において、
前記パラメータ設定手段が、前記サンプリングレートを前記クロック周波数の１０〜２５倍に設定することを特徴とするサイドチャネル情報測定装置。
【請求項４】
請求項１乃至３のいずれか１項に記載のサイドチャネル情報測定装置において、
前記サイドチャネル情報測定手段の測定で得られたサイドチャネル情報に基づいて、前記暗号装置のクロック周波数を推定するクロック周波数推定手段をさらに備え、
前記パラメータ設定手段が、推定された前記クロック周波数に基づいて、前記サイドチャネル情報測定手段の測定におけるサンプリングレートを設定することを特徴とするサイドチャネル情報測定装置。
【請求項５】
請求項４記載のサイドチャネル情報測定装置において、
前記クロック周波数推定手段が、前記サイドチャネル情報の周波数スペクトルもしくはパワースペクトルに基づいて前記暗号装置のクロック周波数を推定することを特徴とするサイドチャネル情報測定装置。
【請求項６】
請求項１乃至５のいずれか１項に記載のサイドチャネル情報測定装置において、
前記サイドチャネル情報測定手段の測定で得られたサイドチャネル情報を用いて、前記評価対象の暗号装置のサイドチャネル攻撃への耐性の可否を判定するサイドチャネル攻撃耐性評価手段をさらに備えることを特徴とするサイドチャネル情報測定装置。
【請求項７】
請求項６記載のサイドチャネル情報測定装置において、
前記パラメータ設定手段が、前記サイドチャネル攻撃耐性評価手段における評価結果に応じて、前記サンプリングレートを変動させることを特徴とするサイドチャネル情報測定装置。
【請求項８】
請求項４乃至７のいずれか１項に記載のサイドチャネル情報測定装置において、
前記パラメータ設定手段が、前記サイドチャネル情報測定手段によって得られたサイドチャネル情報の状態をチェックし、チェックの結果に応じて前記サンプリングレートを再設定することを特徴とするサイドチャネル情報測定装置。
【請求項９】
評価対象の暗号装置から発生するサイドチャネル情報を測定するサイドチャネル情報測定ステップと、
前記サイドチャネル情報測定手段の測定におけるサンプリングレートを、前記暗号装置のクロック周波数に基づいて設定するパラメータ設定ステップとを備えることを特徴とするサイドチャネル情報測定方法。
【請求項１０】
請求項９記載のサイドチャネル情報測定方法において、
前記パラメータ設定ステップが、前記サンプリングレートを前記クロック周波数の定数倍に設定することを特徴とするサイドチャネル情報測定方法。
【請求項１１】
請求項９又は１０記載のサイドチャネル情報測定方法において、
前記パラメータ設定ステップが、前記サンプリングレートを前記クロック周波数の１０〜２５倍に設定することを特徴とするサイドチャネル情報測定方法。
【請求項１２】
請求項９乃至１１のいずれか１項に記載のサイドチャネル情報測定方法において、
前記サイドチャネル情報測定ステップの測定で得られたサイドチャネル情報に基づいて、前記暗号装置のクロック周波数を推定するクロック周波数推定ステップをさらに備え、
前記パラメータ設定ステップが、推定された前記クロック周波数に基づいて、前記サイドチャネル情報測定ステップの測定におけるサンプリングレートを設定することを特徴とするサイドチャネル情報測定方法。
【請求項１３】
請求項１２記載のサイドチャネル情報測定方法において、
前記クロック周波数推定ステップが、前記サイドチャネル情報の周波数スペクトルもしくはパワースペクトルに基づいて前記暗号装置のクロック周波数を推定することを特徴とするサイドチャネル情報測定方法。
【請求項１４】
請求項９乃至１３のいずれか１項に記載のサイドチャネル情報測定方法において、
前記サイドチャネル情報測定ステップの測定で得られたサイドチャネル情報を用いて、前記評価対象の暗号装置のサイドチャネル攻撃への耐性の可否を判定するサイドチャネル攻撃耐性評価ステップをさらに備えることを特徴とするサイドチャネル情報測定方法。
【請求項１５】
請求項１４記載のサイドチャネル情報測定方法において、
前記パラメータ設定ステップが、前記サイドチャネル攻撃耐性評価ステップにおける評価結果に応じて、前記サンプリングレートを変動させることを特徴とするサイドチャネル情報測定方法。
【請求項１６】
請求項１２乃至１５のいずれか１項に記載のサイドチャネル情報測定方法において、
前記パラメータ設定ステップが、前記サイドチャネル情報測定ステップによって得られたサイドチャネル情報の状態をチェックし、チェックの結果に応じて前記サンプリングレートを再設定することを特徴とするサイドチャネル情報測定方法。
【請求項１７】
評価対象の暗号装置から発生するサイドチャネル情報を測定するサイドチャネル情報測定機能と、
前記サイドチャネル情報測定機能の測定におけるサンプリングレートを、前記暗号装置のクロック周波数に基づいて設定するパラメータ設定機能とをコンピュータに実現させることを特徴とするサイドチャネル情報測定プログラム。
【請求項１８】
請求項１７記載のサイドチャネル情報測定プログラムにおいて、
前記パラメータ設定機能が、前記サンプリングレートを前記クロック周波数の定数倍に設定することを特徴とするサイドチャネル情報測定プログラム。
【請求項１９】
請求項１７又は１８記載のサイドチャネル情報測定プログラムにおいて、
前記パラメータ設定機能が、前記サンプリングレートを前記クロック周波数の１０〜２５倍に設定することを特徴とするサイドチャネル情報測定プログラム。
【請求項２０】
請求項１７乃至１９のいずれか１項に記載のサイドチャネル情報測定プログラムにおいて、
前記サイドチャネル情報測定機能の測定で得られたサイドチャネル情報に基づいて、前記暗号装置のクロック周波数を推定するクロック周波数推定機能をさらにコンピュータに実現させ、
前記パラメータ設定機能が、推定された前記クロック周波数に基づいて、前記サイドチャネル情報測定機能の測定におけるサンプリングレートを設定することを特徴とするサイドチャネル情報測定プログラム。
【請求項２１】
請求項２０記載のサイドチャネル情報測定プログラムにおいて、
前記クロック周波数推定機能が、前記サイドチャネル情報の周波数スペクトルもしくはパワースペクトルに基づいて前記暗号装置のクロック周波数を推定することを特徴とするサイドチャネル情報測定プログラム。
【請求項２２】
請求項１７乃至２１のいずれか１項に記載のサイドチャネル情報測定プログラムにおいて、
前記サイドチャネル情報測定機能の測定で得られたサイドチャネル情報を用いて、前記評価対象の暗号装置のサイドチャネル攻撃への耐性の可否を判定するサイドチャネル攻撃耐性評価機能をさらにコンピュータに実現させることを特徴とするサイドチャネル情報測定プログラム。
【請求項２３】
請求項２２記載のサイドチャネル情報測定プログラムにおいて、
前記パラメータ設定機能が、前記サイドチャネル攻撃耐性評価機能における評価結果に応じて、前記サンプリングレートを変動させることを特徴とするサイドチャネル情報測定プログラム。
【請求項２４】
請求項２０乃至２３のいずれか１項に記載のサイドチャネル情報測定プログラムにおいて、
前記パラメータ設定機能が、前記サイドチャネル情報測定機能によって得られたサイドチャネル情報の状態をチェックし、チェックの結果に応じて前記サンプリングレートを再設定することを特徴とするサイドチャネル情報測定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サイドチャネル情報測定装置、その方法及びそのプログラムに関し、特に暗号装置から漏洩するサイドチャネル情報を測定する時のパラメータを、サイドチャネル攻撃への耐性評価を実施するのに適したものに設定する機能を有するサイドチャネル情報測定装置、その方法及びそのプログラムに関する。
【背景技術】
【０００２】
情報の電子データ化が進む中で、情報の保護、秘匿な通信において、暗号はかかせない技術となっている。暗号はその安全性を保つために、鍵等の秘匿情報が容易に推測できないようにする必要がある。鍵の全数探索や数学的に解読を行う線形解読や差分解読等といった暗号解析方法が知られているが、現実的な時間での解析は不可能な状況といえる。
【０００３】
その一方で、暗号機能付きのＩＣ（integrated circuit）カードや携帯端末などの暗号を実装した装置において、攻撃者が処理時間や消費電力などのサイドチャネル情報を精密に測定できるとの仮定の下で、サイドチャネル情報から秘匿情報の取得を試みるサイドチャネル攻撃とその対策が大きな研究テーマとなっている。
【０００４】
サイドチャネル情報には、攻撃対象である暗号装置内で実行されている処理やデータに関する情報が含まれており、サイドチャネル情報を解析することで、暗号アルゴリズム、処理タイミング、秘密鍵の推定が可能である。サイドチャネル攻撃の具体的な攻撃方法としては、処理時間に注目したタイミング攻撃（非特許文献１参照）や消費電力に注目した電力解析（非特許文献２参照）、漏洩電磁波に注目した電磁波解析（非特許文献３参照）等が知られている。
【０００５】
暗号を実装した装置においては、実用上、サイドチャネル攻撃に対する攻撃耐性（耐タンパ性）が求められる。そのため、サイドチャネル情報から暗号アルゴリズムなどの秘匿情報の推定を困難にする耐タンパ技術の研究がすすめられている。
【０００６】
ここで、耐タンパ性とは攻撃に対して、秘匿情報の漏洩や機能の改変を防ぐ性能のことである。サイドチャネル攻撃に対する耐タンパ技術として、恣意的にサイドチャネル情報に不要な情報を付加することで、サイドチャネル情報から秘匿情報の漏洩を防ぐ耐タンパ手法（特許文献１参照）等が提案されている。
【０００７】
ここで、上記のような耐タンパ手法を適用することで実際にサイドチャネル攻撃への耐性が向上しているか、耐タンパ手法の有効性を評価する必要がある。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開2007-116215号公報
【非特許文献】
【０００９】
【非特許文献１】P. Kocher, “Timing Attacks on Implementations of Diffie-Hellman, RSA, DSS, and Other Systems,” Crypto’96, pp.101-113, 1996.
【非特許文献２】P. Kocher, J. Jaffe and B. Jun, “Introduction to Differential Power Analysis and Related Attacks,” 1998.
【非特許文献３】Karine Gandolfi, Christophe Mourtel, and Francis Olivier, “Electromagnetic Analysis: Concrete Results,” In the Proceedings of the Workshop on Cryptographic Hardware and Embedded Systems 2001 (CHES 2001), LNCS 2162 Paris, France, May 2001, pp 251-261.
【非特許文献４】今井秀樹、“情報セキュリティ−安全・安心な社会のために−”，電子情報通信学会誌，2007年，Vol.90，No.5，pp.334−339
【発明の概要】
【発明が解決しようとする課題】
【００１０】
サイドチャネル攻撃に対する耐タンパ性の有効性を評価する上で、精度が高いサイドチャネル情報を取得することが求められる。そのため、データの測定を行う上で測定のサンプリングレートをできるだけ高く設定する必要がある。しかしながら、サンプリングレートを高く設定した場合には、その分データ量が膨大となってしまい、データを保存しておくストレージの問題や、データの処理時間が長くなるといった問題が発生してしまう。
【００１１】
一方で、サンプリングレートを低く設定した場合には、本来ならばサイドチャネル情報に含まれる、暗号装置内で実行されている処理やデータに関する情報をとらえきれないため、耐タンパ性の有効性を正確に評価できない。
【００１２】
そこで、本発明は、上記課題を解決し、サイドチャネル情報の測定において、サイドチャネル攻撃耐性評価に対して最適なサンプリングレートでサイドチャネル情報を測定できる、サイドチャネル情報測定装置、その方法及びそのプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記目的を達成するため、本発明に係るサイドチャネル情報測定装置は、暗号装置から漏洩するサイドチャネル情報を測定するサイドチャネル情報測定装置において、評価対象の暗号装置から発生するサイドチャネル情報を測定するサイドチャネル情報測定手段と、前記サイドチャネル情報測定手段の測定におけるサンプリングレートを前記暗号装置のクロック周波数に基づいて設定するパラメータ設定手段と、を備えることを特徴とする。
【００１４】
また、本発明に係るサイドチャネル情報測定方法は、暗号装置から漏洩するサイドチャネル情報を測定するサイドチャネル情報測定方法において、評価対象の暗号装置から発生するサイドチャネル情報を測定するサイドチャネル情報測定ステップと、前記サイドチャネル情報測定ステップの測定におけるサンプリングレートを前記暗号装置のクロック周波数に基づいて設定するパラメータ設定ステップと、を備えることを特徴とする。
【００１５】
さらに、本発明に係るサイドチャネル情報測定プログラムは、暗号装置から漏洩するサイドチャネル情報を測定するサイドチャネル情報測定プログラムにおいて、コンピュータに、評価対象の暗号装置から発生するサイドチャネル情報を測定するサイドチャネル情報測定機能と、前記サイドチャネル情報測定機能の測定におけるサンプリングレートを前記暗号装置のクロック周波数に基づいて設定するパラメータ設定機能と、をコンピュータに実現させることを特徴とする。
【発明の効果】
【００１６】
本発明によれば、サイドチャネル情報をサイドチャネル攻撃耐性評価に適したサンプリングレートで測定が可能となり、サイドチャネル攻撃耐性の評価精度の向上、評価時間の短縮、およびデータ量の削減が可能となる。
【図面の簡単な説明】
【００１７】
【図１】本発明の第１の実施形態に係るサイドチャネル情報測定装置の概略構成図である。
【図２】本発明の第１の実施形態に係るサイドチャネル情報測定装置の動作を示したフローチャートである。
【図３】本発明の第２の実施形態に係るサイドチャネル情報測定装置の動作を示したフローチャートである。
【図４】本発明の第３の実施形態に係るサイドチャネル情報測定装置の動作を示したフローチャートである。
【図５】本発明の第４の実施形態に係るサイドチャネル情報測定装置の概略構成図である。
【図６】本発明の第４の実施形態に係るサイドチャネル情報測定装置の動作を示したフローチャートである。
【図７】本発明の第５の実施形態に係るサイドチャネル情報測定装置の動作を示したフローチャートである。
【図８】本発明の第６の実施形態に係るサイドチャネル情報測定装置の概略構成図である。
【図９】本発明の第６の実施形態に係るサイドチャネル情報測定装置のクロック周波数推定部を持つ場合の概略構成図である。
【図１０】本発明の第７の実施形態に係るサイドチャネル情報測定装置の概略構成図である。
【図１１】本発明の第７の実施形態に係るサイドチャネル情報測定装置の動作を示したフローチャートである。
【図１２】本発明の第８の実施形態に係るサイドチャネル情報測定装置の動作を示したフローチャートである。
【図１３】本発明の実施例において、サンプリングレートが１ＧＨｚで測定した時のサイドチャネル情報である消費電力波形のパワースペクトルを示すグラフである。
【図１４】本発明の実施例において、サンプリングレートが５００ＭＨｚで測定した時の消費電力波形を用いた差分電力解析によるＡＥＳの解析成功率を示すグラフである。
【図１５】本発明の実施例において、各サンプリングレートに対する解析成功率（２５ＭＨｚ〜５００ＭＨｚ）を示すグラフである。
【図１６】本発明の実施例において、各サンプリングレートに対する解析成功率（６２５ＭＨｚ〜５ＧＨｚ）を示すグラフである。
【発明を実施するための形態】
【００１８】
次に、本発明に係るサイドチャネル情報測定装置、その方法及びそのプログラムを実施するための形態について、図面を参照して詳細に説明する。
【００１９】
［第１の実施形態］
図１は、本発明の第１の実施形態に係るサイドチャネル情報測定装置の概略構成を表した図である。
【００２０】
図１を参照すると、本実施形態は、評価対象の暗号装置１のサイドチャネル情報を測定するサイドチャネル情報測定部（サイドチャネル情報測定手段）２と、このサイドチャネル情報測定部２における測定時のサンプリングレートを設定するパラメータ設定部（パラメータ設定手段）３とを含むサイドチャネル情報測定装置と、このサイドチャネル情報測定装置から得られたサイドチャネル情報を用いて、暗号装置１のサイドチャネル攻撃耐性の可否を評価するサイドチャネル攻撃耐性評価装置４とを有する。
【００２１】
暗号装置１は、平文に対する暗号化や暗号文に対する復号化等の暗復号処理を行う装置である。暗号装置１は、暗復号処理を実行する種々の情報処理装置が採用可能である。例えば、パーソナルコンピュータ（ＰＣ）、携帯端末、接触型および非接触型のＩＣカード、リーダライタ等がある。
【００２２】
サイドチャネル情報測定部２は、暗号装置１が暗復号処理を実施する際に漏洩するサイドチャネル情報を測定する。サイドチャネル情報は、暗号装置において内部の処理に影響を受ける種々の情報が採用可能である。例えば、電力、電磁波、音、温度等がある。もし、電磁波をサイドチャネル情報として用いる場合は、サイドチャネル情報測定装置２は、オシロスコープやスペクトラムアナライザ等を採用可能である。測定においては、サンプリングレートや垂直軸および水平軸のスケールとオフセット、レコード長、測定トリガの種類などさまざまなパラメータの設定が必要となる。
【００２３】
パラメータ設定部３は、サイドチャネル情報測定部２でサイドチャネル情報を測定するときのパラメータを設定する。測定時に設定するパラメータはいくつかあるが、本実施形態のパラメータ設定部３は、サンプリングレートを設定する。サンプリングレートは、暗号装置１のクロック周波数に基づいて設定する。クロック周波数については、装置のユーザが入力する方法、データベースに登録してある情報から引用する方法、一度サイドチャネル測定部２で測定されたサイドチャネル情報から推測する方法、などによって得る。
【００２４】
サンプリングレートは、クロック周波数より高いレートが求められ、クロックにともなう変化をとらえるだけならば、クロック周波数の２倍あればよい。しかしながら、サイドチャネル攻撃の耐性評価をするためには、サイドチャネル情報に含まれる暗号処理時に発生するＣＰＵ（Central Processing Unit）での演算やレジスタへのデータの書き込みなど、さまざまな要因と関連して変化している部分を測定する必要があり、クロック周波数の２倍ではそれらをとらえることが困難である。そのため、サンプリングレートをクロック周波数の２倍よりも高く設定する必要がある。
【００２５】
一方、サンプリングレートが高くなるにつれて、データ量も増加してしまう。さらに、データ量の増加にともない、計算時間といったコストもかかることとなる。サイドチャネル攻撃の耐性評価においては、大量のサイドチャネル情報を測定し、測定した大量の情報を解析することによって評価をすることもある。そのため、１情報あたりのデータ量が多くなると、解析時に必要となるデータ容量は極めて膨大なものとなってしまう。そのため、パラメータ設定部３では、サイドチャネル攻撃に対する耐性を正確に評価でき、かつデータ量を抑制できるサンプリングレートを設定する。
【００２６】
サンプリングレートをどれくらいにするかについては、サイドチャネル攻撃耐性評価装置４での評価方法や、周囲の環境にも依存するが、例えば、クロック周波数の５倍、１０倍、２０倍、２５倍、３０倍、５０倍、１００倍、２００倍あたりにすることが考えられる。特に、サンプリングレートをクロック周波数の１０〜２５倍とすると、耐性評価とデータ量の抑制において効果が高い。
【００２７】
なお、パラメータ設定部３は、サンプリングレート以外のパラメータも設定できる構成も考えられる。
【００２８】
サイドチャネル攻撃耐性評価装置４は、サイドチャネル情報測定装置から入力されるサイドチャネル情報を用いて、暗号装置１のサイドチャネル攻撃への耐性評価を実施する。評価方法として、サイドチャネル情報に対してサイドチャネル攻撃を行い、攻撃が成功するか否かの判定結果を利用する方法や、基準波形との相関や距離、および類似度を利用する方法等があげられる。
【００２９】
なお、耐性評価において、複数のサイドチャネル情報を必要とする場合には、サイドチャネル情報測定部２での測定での処理を複数回行うことで、複数のサイドチャネル情報を取得することが可能である。また、パラメータ設定部３がサイドチャネル攻撃の耐性評価の内容（耐性の有無、相関値、距離、類似度等）に応じてサンプリングレートを調整する機能を有する場合、評価の内容をパラメータ設定部３に伝播する手段を有する。
【００３０】
上述のように構成されたサイドチャネル情報測定装置において、まずパラメータ設定部３に暗号装置１のクロック周波数を入力する。次に、パラメータ設定部３は入力されたクロック周波数に基づいて、サイドチャネル情報測定部２で用いる測定におけるサンプリングレートを設定する。次に、評価対象である暗号装置１にて暗号処理を実行すると共に、サイドチャネル情報測定部２にて暗号装置１から漏洩するサイドチャネル情報を、パラメータ設定部３で設定されたサンプリングレートに基づき測定する。最後に、サイドチャネル攻撃耐性評価装置４は、測定したサイドチャネル情報を用いて、暗号装置１のサイドチャネル攻撃への耐性評価を実施する。
【００３１】
次に、第１の実施形態における動作例について説明する。
【００３２】
図２は、本実施形態におけるサイドチャネル情報測定装置の動作を示すフローチャートである。
【００３３】
まず、処理を開始すると（ステップＡ１）、パラメータ設定部３に暗号装置１のクロック周波数を入力する（ステップＡ２）。次に、入力されたクロック周波数にしたがって、パラメータ設定部３は、測定のサンプリングレートを決定する（ステップＡ３）。そして、決定されたサンプリングレートで、サイドチャネル情報測定部２は、暗号装置１から漏洩するサイドチャネル情報を測定する（ステップＡ４）。最後に、測定したサイドチャネル情報を用いて、サイドチャネル攻撃耐性評価装置４は、暗号装置１の耐性評価を実施し（ステップＡ５）、処理を終了する（ステップＡ６）。
【００３４】
上述した第１の実施形態を実施することにより、評価対象の暗号装置に関して、適したサンプリングレートでサイドチャネル情報を測定でき、データ量や処理時間を抑制しつつ、正確なサイドチャネル攻撃に対する耐性を評価することができる。
【００３５】
［第２の実施形態］
続いて、本発明の第２の実施形態を説明する。上記実施形態と同様の構成要素及び動作ステップについては、同一符号を付し、その説明を簡略又は省略する。
【００３６】
本実施形態では、パラメータ設定部３に、評価対象の暗号装置１のクロック周波数、もしくは推測したクロック周波数を入力する。そして、測定に用いるサンプリングレートを、入力されたクロック周波数の定数倍に設定する。
【００３７】
図３は、本実施形態におけるサイドチャネル情報測定装置の動作を示すフローチャートである。第１の実施形態との相違点は、パラメータ設定部３により、サンプリングレートを入力されたクロック周波数の定数倍に設定する点である（ステップＡ３→Ａ３ａ）。
【００３８】
定数については、２倍以上の数値をあらかじめ設定しておくこととなる。定数の候補としては、２倍、５倍、１０倍、２０倍、２５倍、５０倍、１００倍、２００倍などといった数値があげられる。なお、パラメータ設定部３により、サイドチャネル攻撃耐性評価の結果や、サイドチャネル情報の状態に応じて、サンプリングレートを変化させることも可能である。
【００３９】
上述した第２の実施形態を実施し、サンプリングレートをクロック周波数の定数倍とすることで、評価対象の暗号装置に関して、クロック周波数に応じたサンプリングレートでサイドチャネル情報を測定でき、データ量や処理時間を抑制しつつ、正確なサイドチャネル攻撃に対する耐性を評価することができる。
【００４０】
［第３の実施形態］
続いて、本発明の第３の実施形態を説明する。上記実施形態と同様の構成要素及び動作ステップについては、同一符号を付し、その説明を簡略又は省略する。
【００４１】
本実施形態では、パラメータ設定部３に、評価対象の暗号装置１のクロック周波数、もしくは推測したクロック周波数を入力する。そして、測定に用いるサンプリングレートを、入力されたクロック周波数の１０〜２５倍の範囲内で設定する。
【００４２】
図４は、本実施形態におけるサイドチャネル情報測定装置の動作を示すフローチャートである。第２の実施形態との相違点は、パラメータ設定部３により、サンプリングレートを入力されたクロック周波数の１０〜２５倍に設定する点である（ステップＡ３ａ→Ａ３ｂ）。
【００４３】
上述した第３の実施形態を実施し、サンプリングレートをクロック周波数の１０〜２５倍とすることで、評価対象の暗号装置に関して、適したサンプリングレートでサイドチャネル情報を測定でき、データ量や処理時間を抑制しつつ、正確なサイドチャネル攻撃に対する耐性を評価することができる。
【００４４】
［第４の実施形態］
続いて、本発明の第４の実施形態を説明する。上記実施形態と同様の構成要素及び動作ステップについては、同一符号を付し、その説明を簡略又は省略する。
【００４５】
本実施形態では、暗号装置１のクロック周波数をクロック周波数推定部（クロック周波数推定手段）５で推定する。この推定には、一度サイドチャネル情報測定部２で測定したサイドチャネル情報を用いる。そして、推定したクロック周波数をパラメータ設定部３に入力し、パラメータ設定部３により、クロック周波数にあわせたサンプリングレートを設定する。そして、サイドチャネル情報測定部２にて、設定したサンプリングレートで、暗号装置１から漏洩するサイドチャネル情報を測定する。
【００４６】
図５は、本実施形態におけるサイドチャネル情報測定装置の構成例である。第１の実施形態の構成例との相違点は、暗号装置１のクロック周波数をサイドチャネル情報測定部２で測定したサイドチャネル情報を用い、クロック周波数推定部５で推定することにより得る点である。
【００４７】
図６は、本実施形態におけるサイドチャネル情報測定装置の動作を示すフローチャートである。第１の実施形態の動作例との相違点は、サンプリングレートを入力する（ステップＡ２）代わりに、まず、パラメータ設定部３により、初期のサンプリングレートを設定（ステップＡ７）した後に、サイドチャネル情報測定部２により、暗号装置１から漏洩するサイドチャネル情報を測定し（ステップＡ４）、クロック周波数推定部５により、測定したサイドチャネル情報をもとに暗号装置１のクロック周波数を推定し（ステップＡ８）、パラメータ設定部３により、推定されたクロック周波数に基づいてサンプリングレートを決定する（ステップＡ３）点である。
【００４８】
サンプリングレートの基になる暗号装置１のクロック周波数を推定する手段としては、サイドチャネル情報のパワースペクトルや周波数スペクトルなどの周波数情報から推測する方法や、基準となるサイドチャネル情報をあらかじめ用意しておき、その基準情報とサイドチャネル情報との距離や相関を求めることで、暗号装置１のクロック周波数を推測する方法などが考えられる。
【００４９】
上述した第５の実施形態を実施することにより、クロック周波数が未知の暗号装置においても、サイドチャネル攻撃耐性を評価することが可能となる。また、複数の暗号装置を評価するさいに、一つ一つの暗号装置に合わせてサンプリングレートを設定せずとも、自動的にサンプリングレートを設定することが可能となる。
【００５０】
［第５の実施形態］
続いて、本発明の第５の実施形態を説明する。上記実施形態と同様の構成要素及び動作ステップについては、同一符号を付し、その説明を簡略又は省略する。
【００５１】
本実施形態では、図５に示すクロック周波数推定部５にて、評価対象の暗号装置１のクロック周波数を、測定したサイドチャネル情報が持つパワースペクトルや周波数スペクトルなどの周波数情報から推測し、推測したクロック周波数からサンプリングレートを設定する。
【００５２】
図７は、本実施形態におけるサイドチャネル情報測定装置の動作を示すフローチャートである。第４の実施形態の動作例との相違点は、暗号装置１のクロック周波数を推定する手段が、サイドチャネル情報の周波数情報にもとづく点である（ステップＡ８→Ａ８ａ）。
【００５３】
サンプリングレートの基になる暗号装置１のクロック周波数を推定する手段としては、サイドチャネル情報から得たパワースペクトルや周波数スペクトルにおいて、ピークを検出し、ピークが出現した周波数をクロック周波数とする方法が考えられる。また、別の方法として、ピークが繰り返し出現する場合には、そのピークがクロック周波数およびその高調波であるとして、ピークの間隔をクロック周波数とする方法も考えられる。
【００５４】
上述した第５の実施形態を実施することにより、クロック周波数が未知の暗号装置においても、サイドチャネル攻撃耐性を評価することが可能となる。また、複数の暗号装置を評価するさいに、一つ一つの暗号装置に合わせてサンプリングレートを設定せずとも、自動的にサンプリングレートが入力されるため、サイドチャネル情報測定およびサイドチャネル攻撃耐性評価を実施することができる。
【００５５】
［第６の実施形態］
続いて、本発明の第６の実施形態を説明する。上記実施形態と同様の構成要素及び動作ステップについては、同一符号を付し、その説明を簡略又は省略する。
【００５６】
本実施形態では、サイドチャネル情報測定部２にて暗号装置１から漏洩するサイドチャネル情報を、パラメータ設定部３で設定されたサンプリングレートにもとづき測定し、サイドチャネル攻撃耐性評価部（サイドチャネル攻撃耐性評価手段）６は測定したサイドチャネル情報を用いて、暗号装置１のサイドチャネル攻撃への耐性評価を実施する。
【００５７】
図８は、本実施形態におけるサイドチャネル情報測定装置の構成例である。第１の実施形態との相違点は、図１に示すサイドチャネル攻撃耐性評価装置４の機能を装置内部のサイドチャネル攻撃耐性評価部６に有している点である。
【００５８】
本実施形態におけるサイドチャネル情報測定装置の動作を示すフローチャートに関しては、図２と同様であり、サイドチャネル攻撃耐性評価装置４によるサイドチャネル攻撃耐性評価（ステップＡ５）を装置内部のサイドチャネル攻撃耐性評価部６で実施する点だけが異なる。
【００５９】
上述した第６の実施形態を実施することで、単一の装置にてサイドチャネル情報の測定から攻撃耐性評価までをまとめて実施することができる。また、評価結果を利用して、測定のパラメータを変更して、改めてサイドチャネル情報の測定および耐性の評価を実施するなど、評価と連動した測定も可能となる。
【００６０】
なお、サイドチャネル攻撃耐性評価装置４の機能を装置内部のサイドチャネル攻撃耐性評価部６に有する構成については、第４の実施形態で述べたクロック周波数推定部５を持つ構成でも適用可能である。図９にクロック周波数推定部５を持つ場合の構成例を示す。
【００６１】
［第７の実施形態］
続いて、本発明の第７の実施形態を説明する。上記実施形態と同様の構成要素及び動作ステップについては、同一符号を付し、その説明を簡略又は省略する。
【００６２】
本実施形態では、サイドチャネル攻撃耐性評価部４での評価結果をパラメータ設定部３に入力し、パラメータ設定部３により、評価結果に応じてサンプリングレートを変化させる。
【００６３】
図１０は、本実施形態におけるサイドチャネル情報測定装置の構成例である。第１の実施形態との相違点は、サイドチャネル攻撃耐性評価装置４によるサイドチャネル攻撃耐性評価の結果をパラメータ設定部３に渡している点である。
【００６４】
図１１に本実施形態におけるサイドチャネル情報測定装置の動作を示すフローチャートである。第１の実施形態の動作例との相違点は、サイドチャネル攻撃耐性評価装置４により耐タンパ性を評価（ステップＡ５）した後に、パラメータ設定部３により評価結果のチェックを行い（ステップＡ９）、評価結果が耐タンパ性ありだった場合には（ステップＡ９：ＯＫ）、パラメータ設定部３によるサンプリングレートの設定（ステップＡ３）に戻り、サイドチャネル情報の測定（ステップＡ４）及びサイドチャネル攻撃耐性の評価（ステップＡ５）を繰り返す点である。一方、評価結果が耐タンパ性なしの場合には（ステップＡ９：ＮＧ）、処理を終了する（ステップＡ６）。
【００６５】
パラメータ設定部３は、クロック周波数からサンプリングレートを求めるが、周囲の環境（ノイズや測定における誤差など）や耐性評価の方法によっては、サンプリングレートが足らずに、暗号機器の秘密情報を解析できずに、耐性ありと誤って判定してしまう可能性がある。また、サンプリングレートが高すぎたため、測定すべき箇所が測定範囲から外れてしまった結果、同様に耐性ありと誤って判定してしまう可能性がある。そのため、耐性ありと判定してもサンプリングレートを再設定し、改めて測定と解析をすることで、正しい耐性評価をすることが可能となる。
【００６６】
サンプリングレートを低く設定していて耐性ありと判定した場合には、パラメータ設定部３でサンプリングレートを１段階、もしくは評価結果に応じて２段階以上サンプリングレートを高くして測定と評価を実施する。そして、サンプリングレートの上限、もしくはあらかじめ設定しておいたレートでも耐性ありだと判定した場合には、たしかに評価対象の暗号機器はサイドチャネル攻撃に耐性があると判定できる。
【００６７】
上述した第７の実施形態を実施することで、サンプリングレートを適応的に変化させることが可能となり、その結果、暗号機器や周囲の環境に応じた測定を実施できる。そして、より一層正確なサイドチャネル攻撃の耐性評価を実施することが可能となる。
【００６８】
［第８の実施形態］
続いて、本発明の第８の実施形態を説明する。上記実施形態と同様の構成要素及び動作ステップについては、同一符号を付し、その説明を簡略又は省略する。
【００６９】
本実施形態では、推測したサンプリングレートでサイドチャネル情報を測定した後、測定したサイドチャネル情報の状態をチェックし、推測したサンプリングレートが正しかったかどうか判定する。
【００７０】
図１２は、本実施形態におけるサイドチャネル情報測定装置の動作を示すフローチャートである。第４の実施形態との相違点は、パラメータ設定部３により、サンプリングレートを設定（ステップＡ３）し、サイドチャネル情報測定部２により、サイドチャネル情報を測定（ステップＡ４）した後に、パラメータ設定部３により、測定したサイドチャネル情報のチェックを行う（ステップＡ１０）点である。
【００７１】
この場合、サイドチャネル情報測定部２により、初期のサンプリングレートで測定した後（ステップＡ７〜Ａ４）に、クロック周波数推定部５により、暗号装置１のクロック周波数を推定（ステップＡ８）して、パラメータ設定部３により、サンプリングレートを設定（ステップＡ３）する。このとき、初期のサンプリングレートがクロック周波数の２倍よりも低い場合には、クロック周波数を正しく推定できない。その理由は、クロック周波数の２倍以下の場合には、エイリアシングが発生するためである。
【００７２】
そのため、サイドチャネル情報測定部２により、推定したクロック周波数に基づいてサイドチャネル情報を測定（ステップＡ４）した後に、パラメータ設定部３により、改めてサイドチャネル情報の状態をチェックすることで（ステップＡ１０）、推定したクロック周波数が正しかったかどうかの確認を行う。
【００７３】
サイドチャネル情報の状態をチェックする方法は、サイドチャネル情報測定部２により、推定したクロック周波数に基づいてサイドチャネル情報を測定した後に、クロック周波数推定部５により、改めてサイドチャネル情報からクロック周波数の推定を行い（ステップＡ８）、再推定したクロック周波数が、その前に推定していたクロック周波数と一致するかどうかで判定することができる。
【００７４】
もし、一致しなかった場合（ステップＡ１０：ＮＧ）には、前に推定したクロック周波数が正しくなかったとして、ステップＡ４に戻り、クロック周波数推定部５によりクロック周波数を再推定し（ステップＡ８）、パラメータ設定部３によりサンプリングレートを再設定し（ステップＡ３）、サイドチャネル情報測定部２により、再推定したクロック周波数で改めてサイドチャネル情報を測定し（ステップＡ８）、パラメータ設定部３により、改めてサイドチャネル情報の状態をチェックする（ステップＡ１０）。
【００７５】
その結果、一致した場合（ステップＡ１０：ＯＫ）は、前に推定したクロック周波数が正しかったとして、サイドチャネル攻撃耐性評価装置４により、測定されたサイドチャネル情報を用いて、サイドチャネル攻撃耐性を評価する（ステップＡ５）。
【００７６】
上述した第８の実施形態を実施することで、クロック周波数を誤って推測することによるサイドチャネル攻撃の耐性評価の精度低下を抑制することが可能となる。
【実施例１】
【００７７】
次に、本発明の具体的な実施例について説明する。
【００７８】
本実施例では、前述した第５の実施形態を適用し、暗号を実施可能な評価ボード（暗号装置１）においてＡＥＳ（Advanced Encryption Standard）を実装し、オシロスコープ（サイドチャネル情報測定部２）を用いて、暗号処理中の評価ボードから漏洩する消費電力（サイドチャネル情報）を測定し、クロック周波数推定部５により測定した消費電力から評価ボードのクロック周波数を推定する。そして、パラメータ設定部３により推定したクロック周波数に基づいてサンプリングレートの設定を行い、設定したサンプリングレートでオシロスコープにより測定した消費電力を用いて、サイドチャネル攻撃耐性評価装置４によりサイドチャネル攻撃耐性を評価する。
【００７９】
本実施例では、サンプリングレートの設定は評価ボードのクロック周波数の２０倍とし、初期のサンプリングレートは１ＧＨｚとする。また、測定するのは、評価ボードの消費電力波形とする。評価ボードのクロック周波数の推定は、消費電力波形のパワースペクトルをもとめ、パワースペクトルで発生しているピークが出現する間隔をクロック周波数とする。
【００８０】
また、サイドチャネル攻撃耐性評価装置４における評価方法は、差分電力解析（非特許文献２参照）を用いる。この解析を実施し、１６バイトある鍵のうち何バイト正解するかによってサイドチャネル攻撃耐性の有無を判別する。
【００８１】
はじめに、オシロスコープの初期のサンプリングレートとして１ＧＨｚを設定して（図７：ステップＡ７）、オシロスコープにより、評価ボードの消費電力波形を測定する（図７：ステップＡ４）。次に、クロック周波数推定部５により、測定した消費電力波形のパワースペクトルをもとめ、パワースペクトルのピーク間隔からクロック周波数を推定する（図７：ステップＡ８ａ）。
【００８２】
図１３に消費電力波形のパワースペクトルを示す。ここで、横軸は周波数（単位はＭＨｚ）、縦軸はパワー（単位はＶ＾２・ｓ／Ｈｚ）である。図１３より、パワースペクトルのピークが２４ＭＨｚおきに発生していることがわかる。そのため、クロック周波数推定部５は、パワースペクトルのピークを検出した結果、ピークの間隔が２４ＭＨｚであることから、評価ボードのクロック周波数を２４ＭＨｚと推定する。
【００８３】
次に、パラメータ設定部３は、推定したクロック周波数の２０倍となる４８０ＭＨｚをサンプリングレートとして設定する（図７：ステップＡ３）。ただし、オシロスコープの制限があるため、４８０ＭＨｚに近い５００ＭＨｚをサンプリングレートとして設定する。
【００８４】
次に、サンプリングレートを５００ＭＨｚと設定したオシロスコープで、評価ボードの消費電力波形を測定する（図７：ステップＡ４）。ここで、差分電力解析を実施するために、同一のサンプリングレートで１００００波形の測定を行う。
【００８５】
そして、測定した１００００個の消費電力波形を用いて差分電力解析を実施し、評価ボードのサイドチャネル攻撃耐性の有無を判別する。
【００８６】
図１４に、本発明の実施形態を利用したときの差分電力解析の解析成功率を示す。ここで、横軸は波形数、縦軸は解析成功率である。解析成功率が高いほど、評価ボードのサイドチャネル攻撃耐性は低いと判断できる。図１４において、波形数の増加に伴い解析成功率は高くなり、波形数が８０００〜１００００個のときに解析成功率は８８％に到達しており、鍵の大部分の解析に成功している。つまり、評価ボードのサイドチャネル攻撃耐性は、低いとみなすことができる。
【００８７】
ここで、サンプリングレートを５０ＭＨｚ（約２倍）、１２５ＭＨｚ（約５倍）、２５０ＭＨｚ（約１０倍）、５００ＭＨｚ（約２０倍）、６２５ＭＨｚ（約２５倍）、１ＧＨｚ（約４０倍）、２．５ＧＨｚ（約１００倍）、５ＧＨｚ（約２００倍）としたときの解析成功率のちがいについて説明する。ここで、（）の中はクロック周波数に対してサンプリングレートが何倍なのかを示している。
【００８８】
図１５および図１６に、上記の各サンプリングレートに対する解析成功率を示す。同図中の横軸、縦軸は、図１４と同様である。
【００８９】
図１５より、サンプリングレートが５０ＭＨｚや１２５ＭＨｚの場合では、解析成功率がほぼ０％であり、この場合には、サイドチャネル攻撃耐性は有ると誤って判定される。一方、サンプリングレートを２５０ＭＨｚ以上にした場合では、図１５および図１６に示すように、解析成功率の上昇の仕方にちがいが見られるものの、いずれの場合も１００００波形で解析成功率は８０％以上を示しており、サイドチャネル攻撃耐性はないと判定することができる。このように、サンプリングレートをクロック周波数に対して１００倍や２００倍など極めて高く設定しても、例えば１０〜２５倍など低く設定した場合と比べて、耐性評価の精度はさほど変わらないことがわかる。
【００９０】
したがって、クロック周波数がわかっている、もしくは推測することができるならば、それに合わせたサンプリングレートを設定することで、データ量や計算時間などのコストを抑えつつ、十分な精度をもった耐性評価を実施できるサイドチャネル情報の測定が可能となる。
【００９１】
例えば、１データのサイズがサンプリングレートを５ＧＨｚで測定した場合に１０Ｍバイトあった場合に、解析に必要なデータ量は、１０Ｍ＊１００００波形で１００Ｇバイト必要になる。これに対し、本実施例を適用し、サンプリングレートを５００ＭＨｚで測定した場合には、１データのサイズを１／１０の１Ｍバイトにでき、解析に必要なデータ量も１０Ｇバイトにすることができる。また、データ量が少ないことで、計算時間を短縮することができる。
【００９２】
なお、本発明の上記各実施形態であるサイドチャネル情報測定装置の各部（各手段）は、ハードウェア、ソフトウェア、およびそれらの組み合わせによって実現することができる。
【００９３】
例えば、本発明の上記各実施形態によるサイドチャネル情報測定装置は、ハードウェアによっても実現することができるが、コンピュータをその装置として機能させるためのプログラムを、コンピュータがコンピュータ読み取り可能な記録媒体から読み込んで実行することによっても実現することができる。
【００９４】
また、本発明の上記各実施形態によるサイドチャネル情報測定方法は、ハードウェアによっても実現することができるが、コンピュータにその方法を実行させるためのプログラムを、コンピュータがコンピュータ読み取り可能な記録媒体から読み込んで実行することによっても実現することができる。
【００９５】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【産業上の利用可能性】
【００９６】
以上説明したように、本発明は、暗号装置から漏洩するサイドチャネル情報を測定する時のパラメータを、サイドチャネル攻撃への耐性評価を実施するのに適したものに設定する機能を有するサイドチャネル情報測定装置、その方法及びそのプログラム等に利用可能である。
【符号の説明】
【００９７】
１  暗号装置
２  サイドチャネル情報測定部
３  パラメータ設定部
４  サイドチャネル攻撃耐性評価装置
５  クロック周波数推定部
６  サイドチャネル攻撃耐性評価部
【図１】
2010273263.tif 000003
【図２】
2010273263.tif 000004
【図３】
2010273263.tif 000005
【図４】
2010273263.tif 000006
【図５】
2010273263.tif 000007
【図６】
2010273263.tif 000008
【図７】
2010273263.tif 000009
【図８】
2010273263.tif 000010
【図９】
2010273263.tif 000011
【図１０】
2010273263.tif 000012
【図１１】
2010273263.tif 000013
【図１２】
2010273263.tif 000014
【図１３】
2010273263.tif 000015
【図１４】
2010273263.tif 000016
【図１５】
2010273263.tif 000017
【図１６】
2010273263.tif 000018