(57)【要約】【課題】電力解析攻撃を効率的に回避することができる携帯可能電子装置、電子回路および端末を提供することである。【解決手段】実施形態の携帯可能電子装置は、実行回数計数部と、制限部を有する。前記実行回数計数部は、コマンドの組み合わせごとに実行回数を計数する。前記制限部は、前記実行回数計数部により計数された実行回数が前記コマンドの組み合わせごとに定められた実行上限回数に一致したまたは超えた場合に使用を制限する。【選択図】図１
2015138294.tif 000002
【特許請求の範囲】
【請求項１】
コマンドの組み合わせごとに実行回数を計数する実行回数計数部と、
前記実行回数計数部により計数された実行回数が前記コマンドの組み合わせごとに定められた実行上限回数に一致したまたは超えた場合に使用を制限する制限部と、
を有する携帯可能電子装置。
【請求項２】
前記実行上限回数が設定される前記コマンドの組み合わせのうちの少なくとも１つの組み合わせは、電力解析攻撃の対象となり得るコマンドを含む組み合わせである、
請求項１に記載の携帯可能電子装置。
【請求項３】
前記制限部は、前記実行回数計数部により計数された実行回数が前記コマンドの組み合わせごとに定められた実行上限回数に一致したか否かまたは超えたか否かを判定する場合に、最後の１回については、前記コマンドの組み合わせのうちの最初から所定の一部の数のコマンドまでの処理が実行されたときに、前記実行回数が前記実行上限回数に一致したまたは超えたと判定する、
請求項１または請求項２に記載の携帯可能電子装置。
【請求項４】
コマンドの組み合わせごとに実行回数を計数する実行回数計数部と、
前記実行回数計数部により計数された実行回数が前記コマンドの組み合わせごとに定められた実行上限回数に一致したまたは超えた場合に使用を制限する制限部と、
を有する電子回路。
【請求項５】
コマンドの組み合わせごとに実行回数を計数する実行回数計数部と、
前記実行回数計数部により計数された実行回数が前記コマンドの組み合わせごとに定められた実行上限回数に一致したまたは超えた場合に携帯可能電子装置の使用を制限する制限部と、
を有する端末。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、携帯可能電子装置、電子回路および端末に関する。
【背景技術】
【０００２】
ＩＣ（Integrated Circuit）カードは、クレジットカード、定期券、その他の商取引の決済のカードとして使用されており、さらに、社員証、会員証、保険証などのＩＤ（Identification）カードとしても様々な分野で使用されている。この要因は、従来の磁気カードに比べ、ＩＣとしてＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、ＥＥＰＲＯＭ（Electrically Erasable Programmable ＲＯＭ）などを持つため様々な機能の処理を実行できるようになったことばかりでなく、偽造が難しいためセキュリティの面でも大きく向上したことである（例えば、特許文献１参照。）。
【０００３】
ＩＣカードへの攻撃のひとつとして電力解析攻撃というものがある。電力解析攻撃は、ＩＣカードの内部で暗号処理を始めとする重要な処理を行っているタイミングにおける消費電力波形を複数取得し、その消費電力波形の中に漏れ出している情報を統計的に解析することで、秘密情報を抜き出すものである。電力解析攻撃を回避するために、ＩＣカードの内部では様々な対策が施されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平９−８３６７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明が解決しようとする課題は、電力解析攻撃を効率的に回避することができる携帯可能電子装置、電子回路および端末を提供することである。
【課題を解決するための手段】
【０００６】
実施形態の携帯可能電子装置は、実行回数計数部と、制限部を有する。前記実行回数計数部は、コマンドの組み合わせごとに実行回数を計数する。前記制限部は、前記実行回数計数部により計数された実行回数が前記コマンドの組み合わせごとに定められた実行上限回数に一致したまたは超えた場合に使用を制限する。
【図面の簡単な説明】
【０００７】
【図１】実施形態１の通信システムの構成を示すブロック図である。
【図２】実施形態１のＩＣチップの内部の構成を示すブロック図である。
【図３】実施形態１のコマンドの例を示す図である。
【図４】実施形態１のコマンドの組み合わせと実行上限回数との対応の一例を示す図である。
【図５】実施形態１のＩＣカードの機能ブロックの構成を示す図である。
【図６】実施形態１のＩＣカードにおいて行われる処理の手順の一例を示すフローチャート図である。
【図７】実施形態２の端末の機能ブロックの構成を示す図である。
【図８】実施形態２の端末において行われる処理の手順の一例を示すフローチャート図である。
【発明を実施するための形態】
【０００８】
（実施形態１）
以下、実施形態１の通信システム２１を図面を参照して説明する。
図１は、実施形態１の通信システム２１の構成を示すブロック図である。
実施形態１の通信システム２１は、ＩＣチップ１１（電子回路の一例）を内部に搭載したＩＣカード１と、端末２を備える。実施形態１では、端末２は、ＩＣカード１に記憶された情報を読み取ることなどを行うリーダライタの端末である。
【０００９】
ＩＣカード１と端末２とは、接触方式または非接触方式で通信する。実施形態１では、接触方式または非接触方式のいずれが用いられてもよい。
接触方式では、ＩＣカード１と端末２のそれぞれに金属の接触点が備えられて、ＩＣカード１の接触点と端末２の接触点とが接触させられた状態で、ＩＣカード１と端末２とが通信する。
非接触方式では、ＩＣカード１と端末２のそれぞれにループアンテナなどのアンテナが備えられて、ＩＣカード１のアンテナと端末２のアンテナとの間での電磁誘導により、ＩＣカード１と端末２とが通信する。
また、ＩＣカード１が電源を備える構成が用いられてもよく、または、ＩＣカード１が電源を備えずに、端末２からＩＣカード１へ接触方式または非接触方式で電力を供給する構成が用いられてもよい。
【００１０】
本実施形態１では、一例として、ＩＳＯ／ＩＥＣ  ７８１６−１  ｐａｒｔ１、２に規定された規格のＩＣカード１が用いられるが、この規格以外の構成が用いられてもよい。ＩＣカード１は、外部からの指示（コマンド）を解釈して当該コマンドの処理を実行し、その結果を応答する。
【００１１】
図２は、実施形態１のＩＣチップ１１の内部の構成を示すブロック図である。
ＩＣチップ１１は、ＣＰＵ５１と、ＲＡＭ５２と、ＲＯＭ５３と、ＥＥＰＲＯＭ５４と、Ｉ／Ｏポート５５と、コプロセッサ５６と、これらを通信可能に接続するデータバス６１を備える。
実施形態１では、ＣＰＵ５１により実行するコマンドの処理のプログラムをＲＯＭ５３に記憶しており、コマンドの処理に使用されるパラメータなどのデータをＲＡＭ５２やＥＥＰＲＯＭ５４に記憶している。コマンドの処理のプログラムは、例えば、当該コマンドに応じたアプリケーションの処理のプログラムである。
また、個人を認証するためのＩＤの情報をＥＥＰＲＯＭ５４に記憶している。
【００１２】
ＣＰＵ５１は、ＲＯＭ５３に記憶されたコマンドの処理のプログラムを読み出して実行する。
Ｉ／Ｏポート５５は、外部の端末２との間で通信される情報を入力および出力する。Ｉ／Ｏポート５５は、外部の端末２からＩＣカード１により受信されたコマンドの情報を入力して受け取る。また、Ｉ／Ｏポート５５は、受け取ったコマンドの処理をＣＰＵ５１により実行した結果の情報をレスポンスの情報として出力し、これにより、当該情報がＩＣカード１から外部の端末２へ送信される。
実施形態１では、Ｉ／Ｏポート５５により入力されたコマンドの情報が、ＲＡＭ５２に設けられた専用領域にいったん記憶された後に、当該専用領域を監視するＣＰＵ５１により読み出される。
【００１３】
コプロセッサ５６は、暗号処理や復号処理を高速に行うための補助的な回路であり、例えば、ＣＰＵ５１により指示されて、暗号処理や復号処理に関するコマンドの処理を実行する。さらに、コプロセッサ５６は、例えば、ピン照合処理を行う機能を有してもよい。なお、コプロセッサ５６がＩＣチップ１１に搭載されない構成が用いられてもよい。
データバス６１は、当該データバス６１に接続された各装置５１〜５６の間におけるデータ転送を行うバスである。
【００１４】
図３は、実施形態１のコマンドの例を示す図である。
実施形態１では、説明を簡易化するために、４個の異なるコマンドであるコマンドＡ、コマンドＢ、コマンドＣ、コマンドＤが実装されているとする。
ここで、暗号処理や復号処理やピン照合処理などのように、個人認証情報を扱う処理を行うコマンドが電力解析攻撃の対象となり得るとする。コマンドＡ〜Ｄの中で、このような電力解析攻撃の対象となり得るコマンドは、コマンドＣとコマンドＤであるとする。実施形態１では、コマンドＣとコマンドＤは、それぞれ、コプロセッサ５６を呼び出して、コプロセッサ５６に暗号処理などを行わせる。
また、コマンドＡ〜Ｄの中で、単独で行うことができるコマンドはコマンドＡだけであるとする。
【００１５】
図４は、実施形態１のコマンドの組み合わせと実行上限回数との対応の一例を示す図である。なお、説明の便宜上、１個の単独のコマンドについても、コマンドの組み合わせと呼ぶ。
コマンドの組み合わせと実行上限回数との対応の情報は、例えば、ＥＥＰＲＯＭ５４に記憶されている。他の構成例として、この情報は、ＲＯＭ５３またはＲＡＭ５２に記憶されてもよい。
【００１６】
コマンドＡと、実行上限回数はないことと、が対応付けられている。
コマンドＡの後にコマンドＢを行うコマンドの組み合わせと、実行上限回数はないことと、が対応付けられている。
コマンドＡ、コマンドＢ、コマンドＣの順に行うコマンドの組み合わせと、実行上限回数が５回であること、とが対応付けられている。
コマンドＡ、コマンドＢ、コマンドＣ、コマンドＤの順に行うコマンドの組み合わせと、実行上限回数が３回であること、とが対応付けられている。
コマンドＡの後にコマンドＤを行うコマンドの組み合わせと、実行上限回数が５回であること、とが対応付けられている。
なお、電力解析攻撃の対象となり得るコマンドＣ、Ｄが含まれる数がより多いコマンドの組み合わせには、より少ない実行上限回数を設定してある。
【００１７】
ここで、実施形態１では、実行上限回数としては、定められた期間に該当するコマンドの処理が実行される累積の回数が用いられる。実施形態１では、定められた期間としては、ＩＣカード１と端末２とが通信していない状態から通信する状態へ移行して、一連の通信を実行して、再び通信していない状態へ移行するまでの期間、つまりＩＣカード１と端末２とが１回の一連の通信を開始してから終了するまでの期間が用いられる。
一例として、実施形態１では、ＣＰＵ５１が、それぞれのコマンドの組み合わせを実行した回数をＩＣカード１のＲＡＭ５２に記憶してカウントする。この場合、ＩＣカード１と端末２とが１回の一連の通信を開始すると、それぞれのコマンドの組み合わせを実行した回数がカウントされ始め、そして、当該１回の一連の通信が終了するときに、ＲＡＭ５２の記憶内容がリセットにより消去されて、当該カウントの値が初期値（例えば、０）に戻る。
【００１８】
なお、ＩＣカード１と端末２との接触方式の通信では、端末２が電源ラインの電源をオフにしたとき、または、リセットラインの電源をリセット状態にしたときに、ＩＣカード１のＲＡＭ５２の記憶内容がリセットされる。ＩＣカード１と端末２との非接触方式の通信では、端末２がＩＣカード１に供給する磁界を停止したときに、ＩＣカード１の電源やクロックが停止して、ＩＣカード１のＲＡＭ５２の記憶内容がリセットされる。つまり、本実施形態１では、ＩＣカード１のＲＡＭ５２の記憶内容がリセットされてから次にリセットされるまでの期間が、実行回数をカウントする期間となる。
【００１９】
実施形態１では、所定のコマンドの組み合わせの処理を行った後に、他のコマンドの組み合わせの処理を行い、その後、前記所定のコマンドの組み合わせの処理を行った場合、この中で、前記所定のコマンドの組み合わせの処理は２回実行されたとカウントする。
他の構成例として、コマンドの組み合わせの実行回数として、同一のコマンドの組み合わせが連続して実行される回数が用いられてもよい。この構成では、所定のコマンドの組み合わせの処理を行った後に、他のコマンドの組み合わせの処理を行い、その後、前記所定のコマンドの組み合わせの処理を行った場合、この中で、前記所定のコマンドの組み合わせの処理は１回（後の方の１回のみ）実行されたとカウントする。
【００２０】
また、第１のコマンドの組み合わせが第２のコマンドの組み合わせを含む場合には、一例として、第１のコマンドの組み合わせの処理が実行されたときには、第１のコマンドの組み合わせの実行回数を増加させるが、第２のコマンドの組み合わせの実行回数は増加させない構成が用いられてもよく、他の例として、第１のコマンドの組み合わせの処理が実行されたときには、第１のコマンドの組み合わせの実行回数および第２のコマンドの組み合わせの実行回数を共に増加させる構成が用いられてもよい。具体例としては、第１のコマンドの組み合わせが、コマンドＡ、コマンドＢ、コマンドＣ、コマンドＤの順に行うコマンドの組み合わせであるとき、第２のコマンドの組み合わせは、コマンドＡのみや、コマンドＡの後にコマンドＢを行うコマンドの組み合わせや、コマンドＡ、コマンドＢ、コマンドＣの順に行うコマンドの組み合わせがある。
【００２１】
ＣＰＵ５１は、それぞれのコマンドの組み合わせごとに、実行した回数をＲＡＭ５２に記憶してカウントする。また、ＣＰＵ５１は、それぞれのコマンドの組み合わせごとに、ＲＡＭ５２に記憶された実行回数が、そのコマンドの組み合わせに対応する実行上限回数に一致するか否かを判定する。この判定は、一例として、該当する実行回数が更新されるたびに行われてもよく、または、他の例として、定められた周期ごとに行われてもよい。
【００２２】
ここで、通常のＩＣカード１の利用状況では、ＩＣカード１と端末２との１回の一連の通信において、同一のコマンドの組み合わせの処理が複数回実行されることはない。または、ＩＣカード１と端末２との１回の一連の通信において、同一のコマンドの組み合わせの処理が複数回実行されることがあったとしても、実施形態１では、その回数を考慮して、その回数を超える値を実行上限回数として設定しておく。これにより、それぞれのコマンドの組み合わせごとに、実行した回数が実行上限回数に一致した場合には、電力解析攻撃を受けている可能性があると推定することができる。
【００２３】
ＣＰＵ５１は、いずれかのコマンドの組み合わせについて、ＲＡＭ５２に記憶された実行回数が、そのコマンドの組み合わせに対応する実行上限回数に一致したことを判定した場合には、当該ＣＰＵ５１が設けられたＩＣカード１を永久にまたは一時的に使用不可能な状態にする。
一例として、ＣＰＵ５１は、当該ＣＰＵ５１が設けられたＩＣカード１をターミネートすることで、当該ＩＣカード１を永久に、完全に使用不可能な状態にする。
他の例として、ＣＰＵ５１は、当該ＣＰＵ５１が設けられたＩＣカード１を外部の端末２に対して一時的な無応答状態に設定することで、当該ＣＰＵ５１が設けられたＩＣカード１を一時的に使用不可能な状態にする。
【００２４】
ここで、ＩＣカード１の一時的な無応答状態としては、一例として、ＣＰＵ５１が、定められた時間（例えば、５分など）だけ、外部からの信号に対して何も応答しないように、物理的な機構またはソフトウェアにより設定する。さらに、ＣＰＵ５１は、この定められた時間をソフトウェアによりカウントしている間に外部からリセットボタンが押下されて当該カウントが途中で停止させられた場合には、再び０から当該カウントを開始するように制御してもよい。ＣＰＵ５１は、この定められた時間のカウントが完了したときに、ＩＣカード１を外部からの信号に対して応答するように復旧させる。ＣＰＵ５１は、例えば、外部からの信号に対して応答するか否かを示すフラグの情報をＥＥＰＲＯＭ５４などに記憶してもよい。
また、ＩＣカード１の一時的な無応答状態としては、他の例として、ＥＥＰＲＯＭ５４の記憶内容をリセットして消去してもよい。
【００２５】
また、２個以上のコマンドの組み合わせについて実行回数が実行上限回数に一致したことを判定する場合、最後の１回については、一例として、２個以上のコマンドの組み合わせの全ての処理が実行されたときに実行回数が実行上限回数に一致したと判定する構成が用いられてもよく、他の例として、２個以上のコマンドの組み合わせのうちの最初から所定の一部の個数のコマンドの並びの処理が実行されたときに実行回数が実行上限回数に一致したと判定する構成が用いられてもよい。
具体例として、コマンドＡ、コマンドＢ、コマンドＣ、コマンドＤの順に行うコマンドの組み合わせについて実行上限回数が３回である場合、これら４個のコマンドの組み合わせの処理の実行が２回検出された後に、３回目については、一例として、コマンドＡ、コマンドＢ、コマンドＣ、コマンドＤの順に行うコマンドの組み合わせの全ての処理が実行されたときに、実行回数が実行上限回数に一致したと判定する構成が用いられてもよく、他の例として、コマンドＡのみの処理、あるいは、コマンドＡおよびコマンドＢの並びのみの処理、あるいは、コマンドＡ、コマンドＢ、コマンドＣの並びのみの処理、が実行されたときに、実行回数が実行上限回数に一致したと判定する構成が用いられてもよい。
【００２６】
上記のように、最後の１回について、２個以上のコマンドの組み合わせのうちの最初から所定の一部の個数のコマンドの並びの処理が実行されたときに実行回数が実行上限回数に一致したと判定する構成では、最後の１回について、２個以上のコマンドの組み合わせの全ての処理が実行されることを回避することができる。
一例として、最後の１回について、２個以上のコマンドの組み合わせのうちで最初に出現する電力解析攻撃の対象となるコマンドの手前のコマンドまでの並びの処理が実行されたときに実行回数が実行上限回数に一致したと判定する構成が用いられてもよい。この構成では、最後の１回について、２個以上のコマンドの組み合わせのうちで最初に出現する電力解析攻撃の対象となるコマンドの処理が実行されることを回避することができる。
【００２７】
図５は、実施形態１のＩＣカード１の機能ブロックの構成を示す図である。
実施形態１のＩＣカード１は、通信部１０１と、コマンド実行部１０２と、コマンドの組み合わせに関する実行上限回数記憶部１０３と、コマンドの組み合わせに関する実行回数計数部１０４と、コマンドの組み合わせに関する実行回数記憶部１０５と、制限部１０６を備える。
【００２８】
ここで、図５に示される各処理部は、図２に示されるハードウェアを用いて実現される。
通信部１０１は、ＣＰＵ５１の制御によりＩ／Ｏポート５５を介して外部の端末２と通信する機能を有する。
コマンド実行部１０２は、ＣＰＵ５１の制御により、コマンドの処理を実行する機能を有する。なお、暗号処理や復号処理などの所定の処理については、コマンド実行部１０２は、ＣＰＵ５１の制御により、コプロセッサ５６がコマンドの処理を実行する機能を有する。
実行回数計数部１０４と、制限部１０６は、それぞれ、ＣＰＵ５１の制御によりそれぞれの処理を実行する機能を有する。
実行上限回数記憶部１０３は、例えば、ＥＥＰＲＯＭ５４を用いて実現される。
実行回数記憶部１０５は、実施形態１では、ＲＡＭ５２を用いて実現される。
【００２９】
図６は、実施形態１のＩＣカード１において行われる処理の手順の一例を示すフローチャート図である。
ＩＣカード１では、あらかじめ、それぞれのコマンドの組み合わせごとに、実行上限回数の情報が実行上限回数記憶部１０３に記憶されている。また、実施形態１では、それぞれのコマンドの組み合わせごとに、実行回数が、実行回数記憶部１０５に記憶される。
【００３０】
まず、通信部１０１が、外部の端末２から送信されるコマンドの情報を受信する（ステップＳ１）。ここで、コマンドの情報の受信は、１個のコマンドごとに（例えば、それぞれのコマンドごとに別個な処理として）行われてもよく、あるいは、２個以上のコマンド（例えば、２個以上のコマンドの組み合わせ）についてまとめて（例えば、連続な処理として）行われてもよい。
次に、コマンド実行部１０２が、受信されたコマンドの処理を実行する（ステップＳ２）。
次に、実行回数計数部１０４が、それぞれのコマンドの組み合わせについて、実行回数を計数する（例えば、実行回数を１だけ増加させる）コマンドの組み合わせがあるか否かを判定する（ステップＳ３）。実行回数を計数するものがある場合には、実行回数計数部１０４は、該当する実行回数を計数するように、実行回数記憶部１０５に記憶された該当する実行回数を更新する（ステップＳ４）。一方、この判定において（ステップＳ３）、実行回数を計数するものがない場合には、実行回数計数部１０４は、本処理を終了する。
ステップＳ４の処理の後に、制限部１０６が、それぞれのコマンドの組み合わせについて、実行回数が実行上限回数記憶部１０３に記憶された実行上限回数に一致するか否か（達したか否か）を判定する（ステップＳ５）。実行回数と実行上限回数とが一致する場合には、制限部１０６は、ＩＣカード１の使用を制限して、永久にまたは一時的に使用不可能な状態にする（ステップＳ６）。一方、この判定において（ステップＳ５）、実行回数と実行上限回数とが一致しない場合には、制限部１０６は、本処理を終了する。
【００３１】
以上のように、実施形態１の通信システム２１におけるＩＣカード１では、実行回数が実行上限回数に一致したコマンドの組み合わせが発生したときにＩＣカード１の使用を制限することにより、電力解析攻撃を効率的に回避することができる。実施形態１のＩＣカード１では、例えば、処理時間の遅延や、余計なコードサイズの増加を抑制しつつ、簡易な方法で効率的に電力解析攻撃を回避することが可能である。
電力解析攻撃では、ターゲットとなるコマンドの処理中の消費電力波形を多く（測定環境やその他の電力解析攻撃対策の有無にもよるが、一般に、数十〜数十万波形）取得する必要があるため、実施形態１の対策により、コマンドの組み合わせごとの実行回数に上限を設けることで、電力解析攻撃に十分な消費電力波形を取得することを難しくすることができる。なお、例えば、消費電流内に漏洩する秘密情報を極力減らすような一般的な電力解析攻撃対策と実施形態１の電力解析攻撃対策とを組み合わせることで、非常に効率的な電力解析攻撃対策を実現することができる。
【００３２】
ここで、電力解析攻撃では、外部からの入力を暗号処理もしくは復号処理するコマンドがターゲットになりやすい。ＩＣカードの製品出荷後の状態である運用フェーズでは、暗号処理や復号処理などを単独で実行できるコマンドはない場合が多く、一連のコマンド群で実現されるトランザクション処理の中でしか暗号処理や復号処理などが使用されないことが多い。実施形態１では、一例として、トランザクション処理の全体ではなく、コマンド処理の一部（コマンドの組み合わせ）に対して実行上限回数を設定して判定している。例えば、実施者は、実運用上でよく発生するコマンドの組み合わせに対しては実行上限回数を大きく設定し、実運用上ではほとんど発生しないコマンドの組み合わせに対しては実行上限回数を小さく設定するなどのように、臨機応変な対応が可能である。また、コマンドの組み合わせが用いられることから、仕様に関わらず、様々な分野で利用することができる。
【００３３】
ここで、実施形態１では、コマンドの組み合わせの実行回数の情報をＲＡＭ５２に記憶してカウントする構成を示した。他の構成例として、コマンドの組み合わせの実行回数の情報をＥＥＰＲＯＭ５４に記憶してカウントする構成が用いられてもよく、この構成では、例えば、ＣＰＵ５１が、定められた期間において、それぞれのコマンドの組み合わせごとに実行回数をカウントし、当該期間が経過したときに、カウントの値を０に初期化する。
また、ＩＣカード１では、例えば、電力解析攻撃を受けたと推測される場合には、その電力解析攻撃に関する情報をＥＥＰＲＯＭ５４に記憶する構成とすると、その後において、ＥＥＰＲＯＭ５４に記憶されて残った情報に基づいてその電力解析攻撃について分析を行うことが可能である。
また、実施形態１では、携帯可能電子装置の一例として、ＩＣカード１が用いられた。他の構成例として、ＩＣタグ、ＩＣを内蔵したパスポート、ＩＣを内蔵した免許証、ＩＣを内蔵したマイナンバーカード（個人番号カード）など、携帯することが可能な電子装置である様々なものに、実施形態１と同様な構成が適用されてもよい。
【００３４】
以上のように、実施形態１のＩＣカード１では、コマンドの組み合わせごとに実行回数を計数する実行回数計数部１０４と、実行回数計数部１０４により計数された実行回数がコマンドの組み合わせごとに定められた実行上限回数に一致した場合に使用を制限する制限部１０６と、を有する。
実施形態１のＩＣカード１では、端末２から送信されるコマンドを受信する通信部１０１と、通信部１０１により受信されたコマンドの処理を実行するコマンド実行部１０２と、コマンドの組み合わせごとに実行上限回数を記憶する実行上限回数記憶部１０３と、コマンドの組み合わせごとに実行回数を記憶する実行回数記憶部１０５と、を有する。
実施形態１のＩＣカード１では、コマンドの組み合わせごとの実行回数は、実行回数記憶部１０５がリセットされたときから次にリセットされるまでに計数される回数である。
実施形態１のＩＣカード１では、実行上限回数が設定されるコマンドの組み合わせのうちの少なくとも１つの組み合わせは、電力解析攻撃の対象となり得るコマンドを含む組み合わせである。
実施形態１のＩＣカード１では、制限部１０６は、実行回数計数部１０４により計数された実行回数がコマンドの組み合わせごとに定められた実行上限回数に一致したか否かを判定する場合に、最後の１回については、コマンドの組み合わせのうちの最初から所定の一部の数のコマンドまでの処理が実行されたときに、実行回数が実行上限回数に一致したと判定する。
実施形態１のＩＣチップ１１では、コマンドの組み合わせごとに実行回数を計数する実行回数計数部１０４と、実行回数計数部１０４により計数された実行回数がコマンドの組み合わせごとに定められた実行上限回数に一致した場合に使用を制限する制限部１０６と、を有する。
【００３５】
なお、他の構成例として、制限部１０６が、実行回数計数部１０４により計数された実行回数がコマンドの組み合わせごとに定められた実行上限回数を超えた場合に使用を制限する構成が用いられてもよい。また、他の構成例として、制限部１０６が、実行回数計数部１０４により計数された実行回数がコマンドの組み合わせごとに定められた実行上限回数以上である場合に使用を制限する構成が用いられてもよい。
【００３６】
（実施形態２）
以下、実施形態２を図面を参照して説明する。
実施形態２では、ＩＣカード１ａ、端末２ａ、通信システム２１ａと記して説明する。実施形態２では、ＩＣカード１ａ、端末２ａ、通信システム２１ａの使用状況は実施形態１に係る図１に示されるものと同様なものであるが、実施形態１のＩＣカード１に備えた図５および図６に関する機能を、端末２ａに備えた点で異なっている。
【００３７】
図７は、実施形態２の端末２ａの機能ブロックの構成を示す図である。
実施形態２の端末２ａは、通信部２０１と、コマンド生成部２０２と、コマンドの組み合わせに関する実行上限回数記憶部２０３と、コマンドの組み合わせに関する実行回数計数部２０４と、コマンドの組み合わせに関する実行回数記憶部２０５と、制限部２０６を備える。
ここで、図７に示される各処理部は、所定のハードウェアが用いられて実現される。
通信部２０１と、コマンド生成部２０２と、実行回数計数部２０４と、制限部２０６は、それぞれ、例えば、端末２ａに備えられたＣＰＵなどの制御により、それぞれの処理を実行する機能を有する。
実行上限回数記憶部２０３と、実行回数記憶部２０５は、それぞれ、例えば、端末２ａに備えられた任意の記憶部（例えば、ＲＡＭ、ＥＥＰＲＯＭ、ＲＯＭなど）が用いられて実現される。
【００３８】
図８は、実施形態２の端末２ａにおいて行われる処理の手順の一例を示すフローチャート図である。
端末２ａでは、あらかじめ、それぞれのコマンドの組み合わせごとに、実行上限回数の情報が実行上限回数記憶部２０３に記憶されている。また、実施形態２では、それぞれのコマンドの組み合わせごとに、実行回数が、実行回数記憶部２０５に記憶される。
【００３９】
まず、コマンド生成部２０２が、ＩＣカード１ａに対するコマンドを生成し、そして、通信部２０１が、生成されたコマンドの情報をＩＣカード１ａに対して送信する（ステップＳ５１）。ここで、コマンドの生成および送信は、それぞれ、１個のコマンドごとに（例えば、それぞれのコマンドごとに別個な処理として）行われてもよく、あるいは、２個以上のコマンド（例えば、２個以上のコマンドの組み合わせ）についてまとめて（例えば、連続な処理として）行われてもよい。
次に、実行回数計数部２０４が、それぞれのコマンドの組み合わせについて、実行回数を計数する（例えば、実行回数を１だけ増加させる）コマンドの組み合わせがあるか否かを判定する（ステップＳ５２）。実行回数を計数するものがある場合には、実行回数計数部２０４は、該当する実行回数を計数するように、実行回数記憶部２０５に記憶された該当する実行回数を更新する（ステップＳ５３）。一方、この判定において（ステップＳ５２）、実行回数を計数するものがない場合には、実行回数計数部２０４は、本処理を終了する。
ステップＳ５３の処理の後に、制限部２０６が、それぞれのコマンドの組み合わせについて、実行回数が実行上限回数記憶部２０３に記憶された実行上限回数に一致するか否か（達したか否か）を判定する（ステップＳ５４）。実行回数と実行上限回数とが一致する場合には、制限部２０６は、ＩＣカード１ａの使用を制限して、永久にまたは一時的に使用不可能な状態にする（ステップＳ５５）。一方、この判定において（ステップＳ５４）、実行回数と実行上限回数とが一致しない場合には、制限部２０６は、本処理を終了する。
【００４０】
ここで、端末２ａがＩＣカード１ａの使用を制限する方法としては、一例として、ＩＣカード１ａに対してあらかじめ定められた指示の信号（コマンドでもよい。）を送信して、当該ＩＣカード１ａ自体によって使用を制限させる方法が用いられてもよい。この場合、ＩＣカード１ａには、あらかじめ、この指示の信号を受信した場合に自己の使用を制限するように、設定されている。
また、端末２ａがＩＣカード１ａの使用を制限する方法としては、他の例として、端末２ａがＩＣカード１ａの識別情報（ＩＤ）を記憶しておいて、そのＩＣカード１ａとの通信を永久にまたは一時的に停止する方法が用いられてもよい。
【００４１】
以上のように、実施形態２の通信システム２１ａにおける端末２ａでは、実行回数が実行上限回数に一致したコマンドの組み合わせが発生したときにＩＣカード１の使用を制限することにより、ＩＣカード１に対する電力解析攻撃を効率的に回避することができる。
【００４２】
以上のように、実施形態２の端末２ａでは、コマンドの組み合わせごとに実行回数を計数する実行回数計数部２０４と、実行回数計数部２０４により計数された実行回数がコマンドの組み合わせごとに定められた実行上限回数に一致した場合にＩＣカード１ａの使用を制限する制限部２０６と、を有する。
実施形態２の端末２ａでは、コマンドを生成するコマンド生成部２０２と、コマンド生成部２０２により生成されたコマンドをＩＣカード１ａに対して送信する通信部２０１と、コマンドの組み合わせごとに実行上限回数を記憶する実行上限回数記憶部２０３と、通信部２０１により送信されたコマンドの組み合わせごとに実行回数を記憶する実行回数記憶部２０５と、を有する。
【００４３】
なお、他の構成例として、制限部２０６が、実行回数計数部２０４により計数された実行回数がコマンドの組み合わせごとに定められた実行上限回数を超えた場合にＩＣカード１ａの使用を制限する構成が用いられてもよい。また、他の構成例として、制限部２０６が、実行回数計数部２０４により計数された実行回数がコマンドの組み合わせごとに定められた実行上限回数以上である場合にＩＣカード１ａの使用を制限する構成が用いられてもよい。
【００４４】
以上述べた少なくともひとつの実施形態の通信システム（通信システム２１、２１ａ）によれば、実行回数が実行上限回数に一致したまたは超えたコマンドの組み合わせが発生したときにＩＣカード（ＩＣカード１、１ａ）の使用を制限することにより、ＩＣカード（ＩＣカード１、１ａ）に対する電力解析攻撃を効率的に回避することができる。
【００４５】
以上に示した実施形態では、各装置（例えば、ＩＣカード１、１ａ、端末２、２ａ）の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、処理を行うことができる。
なお、ここでいう「コンピュータシステム」とは、オペレーティング・システム（ＯＳ：Operating System）や周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、フラッシュメモリ等の書き込み可能な不揮発性メモリ、ＤＶＤ（Digital Versatile Disk）等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【００４６】
さらに、「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（例えばＤＲＡＭ（Dynamic Random Access Memory））のように、一定時間プログラムを保持しているものも含むものとする。
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピュータシステムに既に記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【００４７】
以上、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【００４８】
１、１ａ…ＩＣカード、２、２ａ…端末、１１…ＩＣチップ、２１、２１ａ…通信システム、５１…ＣＰＵ、５２…ＲＡＭ、５３…ＲＯＭ、５４…ＥＥＰＲＯＭ、５５…Ｉ／Ｏポート、５６…コプロセッサ、１０１、２０１…通信部、１０２…コマンド実行部、１０３、２０３…実行上限回数記憶部、１０４、２０４…実行回数計数部、１０５、２０５…実行回数記憶部、１０６、２０６…制限部、２０２…コマンド生成部
【図１】
2015138294.tif 000003
【図２】
2015138294.tif 000004
【図３】
2015138294.tif 000005
【図４】
2015138294.tif 000006
【図５】
2015138294.tif 000007
【図６】
2015138294.tif 000008
【図７】
2015138294.tif 000009
【図８】
2015138294.tif 000010