(57)【要約】【課題】ＩＣカードの処理において暗号処理や重要なデータを扱う部分などセンシティブな処理のタイミングを特定することを困難にする。【解決手段】所定時間経過後にＣＰＵ割り込みを行うウォッチドッグタイマ回路（４０３）と、乱数を発生させる乱数生成手段（４０２）と、を備え、前記乱数生成手段により発生された乱数により、前記ウォッチドッグタイマ回路のタイマ値を設定し、前記ウォッチドッグタイマ回路の動作を開始させて、前記ウォッチドッグタイマ回路による割り込みが発生した段階で所定時間ダミー処理を行う【選択図】図１
2007094966.tif 000002
【特許請求の範囲】
【請求項１】
所定時間経過後にＣＰＵ割り込みを行うウォッチドッグタイマ回路と、
乱数を発生させる乱数生成手段と、を備え、
前記乱数生成手段により発生された乱数により、前記ウォッチドッグタイマ回路のタイマ値を設定し、前記ウォッチドッグタイマ回路の動作を開始させて、前記ウォッチドッグタイマ回路による割り込みが発生した段階で所定時間ダミー処理を行うことを特徴とするＩＣカード。
【請求項２】
請求項１に記載のＩＣカードにおいて、前記ウォッチドッグタイマ回路は、離散的な複数のタイマ値が設定可能なものであって、前記乱数に応じてタイマ値が設定されることを特徴とするＩＣカード。
【請求項３】
請求項１に記載のＩＣカードにおいて、前記ウォッチドッグタイマ回路は、そのタイマ設定値を任意に設定可能であることを特徴とするＩＣカード。
【請求項４】
請求項１から請求項３のいずれか１項に記載のＩＣカードにおいて、ダミー処理終了後から処理結果データ送信までの間に、前記ウォッチドッグタイマ回路の割り込みによるダミー処理を繰り返すことを特徴とするＩＣカード。
【請求項５】
請求項１から請求項４のいずれか１項に記載のＩＣカードにおいて、前記ダミー処理は複数の命令を含む処理であって、前記複数の命令に係る処理を行うことを特徴とするＩＣカード。
【請求項６】
請求項１から請求項５のいずれか１項に記載のＩＣカードにおいて、前記ダミー処理は、複数のダミー処理を含み、前記乱数により実行される少なくとも１つのダミー処理が選択されることを特徴とするＩＣカード。 
【請求項７】
請求項１から請求項６のいずれか１項に記載のＩＣカードにおいて、前記ウォッチドッグタイマ回路は、各回のダミー処理時間が異なるように、前記乱数によりダミー処理の実行時間を設定することを特徴とするＩＣカード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＣカードの耐タンパー性に関する。
【背景技術】
【０００２】
ＩＣ（Integrated Circuit）カードは、クレジットカード、定期券、その他の商取引の決済に使われるだけでなく、社員証、会員証、保険証などのＩＤカードとしても様々な分野で使われるようになってきている。これは、従来の磁気カードに比べ、ＩＣとしてＣＰＵ、ＲＯＭ、ＲＡＭ、ＥＥＰＲＯＭなどを持つため様々な機能が行えるようになっただけでなく、偽造が難しいためセキュリティの面でも大きく向上したことが要因である。なお、ＩＣカードの詳細は、非特許文献１に規定されている。
【０００３】
ＩＣカードでは、個人情報など重要な情報を格納しているため、暗号を用いてそのデータを暗号化したり、カードユーザの認証を行ったりしている。そのため通常の使用においては十分なセキュリティが保たれている。しかし、ＩＣカードに対する攻撃は非常に強力になっているため、攻撃に耐えうる対策手法の確立と同時に、攻撃の前提条件となる消費電力波形内の暗号処理部の特定を困難にすることが非常に重要となってくる。
【非特許文献１】ISO/IEC 7816-1part1、2
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明は、ＩＣカードの処理において暗号処理や重要なデータを扱う部分などセンシティブな処理のタイミングを特定することを困難にすることを目的とする。
【課題を解決するための手段】
【０００５】
本発明の局面に係る発明は、所定時間経過後にＣＰＵ割り込みを行うウォッチドッグタイマ回路と、乱数を発生させる乱数生成手段と、を備え、前記乱数生成手段により発生された乱数により、前記ウォッチドッグタイマ回路のタイマ値を設定し、前記ウォッチドッグタイマ回路の動作を開始させて、前記ウォッチドッグタイマ回路による割り込みが発生した段階で所定時間ダミー処理を行うことを特徴とする。
【発明の効果】
【０００６】
本発明によれば、センシティブな処理への攻撃を困難にし、ＩＣカードの安全性を高めることができる。更に、ＩＣカード処理中のセンシティブな処理タイミングを予測することが困難になり、タイミング情報が必要となる各種攻撃を回避することができる。
【発明を実施するための最良の形態】
【０００７】
図面を参照して本発明の実施の形態を説明する。
【０００８】
図１は、本発明に係る暗号演算回路を備えたＩＣカードの概略構成を示す図である。ＩＣカードの詳細は、前述したように、非特許文献１に規定されている。図１に示すように、カード１０１内にＩＣチップ１０２が搭載されている。図２は、一般的なＩＣチップの内部構成を示す図である。なお、本発明の実施形態において、外部からの攻撃を困難にするために暗号演算回路を備えていることを前提条件として説明するが、ＣＰＵで暗号を処理するようなＩＣカードにも適用可能であることはもちろんである。
【０００９】
図２に示すように、本発明に係るＩＣチップ１０２は、ＣＰＵ２０１と、ＲＡＭ２０２と、ＲＯＭ２０３と、ＥＥＰＲＯＭ２０４と、Ｉ／Ｏポート２０５と、コプロセッサ２０６と、暗号処理回路２０７と、ウォッチドッグタイマ２０８を備えている。
【００１０】
上記の構成において、ＣＰＵ２０１は、ＲＯＭ２０３に格納されているＩＣカードのプログラムを実行し、ＲＡＭ２０２やＥＥＰＲＯＭ２０４には処理に必要なデータが格納されている。Ｉ／Ｏポート２０５は、外部機器（例えば、リーダライタ）からコマンドを受け取り、ＣＰＵ２０１の処理結果をレスポンスとして出力する。データバス２０９は各装置間のデータ転送を行うバスである。
【００１１】
図４は、暗号処理回路２０７の内部構成例の概要を示す図である。暗号処理回路２０７は、暗号処理部４０１と、乱数生成部４０２と、ウォッチドッグタイマ４０３と、Ｉ／Ｆ部４０４とを備えている。なお、本実施形態では、暗号処理回路２０７での暗号処理中におけるウォッチドッグタイマ４０３による割り込み処理によってダミー処理に移行する実施形態を示すが、これに限らず、例えば、秘匿性の高い処理、例えば個人の照合処理などでウォッチドッグタイマ４０３による割り込み処理によりダミー処理に移行する場合にも適用可能である。  
暗号処理部４０１は、Ｉ／Ｆ部から受け取った入力を、ＤＥＳを使って暗号化する。乱数生成部４０２はＤＥＳの処理に用いる乱数を生成する。ウォッチドッグタイマ４０３は、乱数生成部４０２からの乱数に従って、詳細は後述する割り込み処理を暗号処理部４０１に対して行う。Ｉ／Ｆ部４０４はＣＰＵ２０１などとデータの入出力を行う。
【００１２】
図５を参照して、上記のように構成された本発明の一実施形態に係るＩＣカードの動作を説明する。図５は、本発明の一実施形態に係るＩＣカードの動作を示すフローチャートである。  
まず、ＣＰＵからの指示などによって乱数生成部４０２で乱数が生成・発生されると（ステップ５１）、当該乱数がウォッチドッグタイマ４０３にセットされる（ステップ５２）。ここで、ウォッチドッグタイマ４０３にセットされた乱数の値がタイマの割り込みの発生時間に設定されて、ウォッチドッグタイマ４０３の動作が開始して、この時間経過後に、ウォッチドッグタイマ４０３が暗号処理部４０１に割り込みを発生する（ステップ５３）。ウォッチドッグタイマ４０３による割り込みより、予め設定されたダミー処理を行い（ステップ５４）、所定時間経過後に処理を終了する。  
上記のような処理により、暗号処理などにおいて、乱数の値に従って、ウォッチドッグタイマ４０３が割り込みのダミー処理を行うので、暗号処理のタイミングを予測・解析することが困難になる。
【００１３】
なお、この場合において、ウォッチドッグタイマ４０３が離散的な複数のタイマ値が設定可能なものでも良く、その場合には、乱数値に応じて、所定のタイマ値を選択するようにしても良い。また、ウォッチドッグタイマ４０３のタイマ値は任意に設定可能としてよい。更に、それらの場合において、当該タイマ値を所定の時間以下に制限するようにしても良い。  
更に、ダミー処理は１回のみではなく、１つのダミー処理（或いは命令）を複数回繰り返しても良く、その場合には、ダミー処理の終了後から処理結果の送信までの間継続して行わせることが好ましい。なお、ダミー処理は１つの命令のみでなく、複数の命令を含む、ダミー処理により複数の命令が実行されてもよい。
【００１４】
図６を参照して、本発明の他の実施形態に係るＩＣカードの動作を説明する。図６は、本発明の他の実施形態に係るＩＣカードの動作を示すフローチャートである。本実施形態では、複数のダミー処理が用意されている場合についてのウォッチドッグタイマ４０３によるダミー処理の割り込み方法について説明する。  
まず、ＣＰＵからの指示などによって乱数生成部４０２で乱数が生成・発生されると（ステップ６１）、当該乱数に基づいて、ウォッチドッグタイマ４０３により割り込み処理によって実行される１つのダミー処理を選択する（ステップＳ６２）。この場合において、ダミー処理は、それぞれ開始番地（例えば、１つ目のダミー処理が８０００番地から始まり、２つ目のダミー処理が８１００番地から始まるといったように）をウォッチドッグタイマ４０３が記憶しておいて、乱数値に対応して、制御をそれぞれの開始番地に移すようにしてもよい。ウォッチドッグタイマ４０３による割り込み処理の開始時間になると選択されたダミー処理が実行されて（ステップＳ６３）、所定時間経過後に処理を終了する。  
本実施形態の処理においても、先の実施形態と同様に、暗号処理などにおいて、乱数の値に従って、ウォッチドッグタイマ４０３が割り込みのダミー処理を行うので、暗号処理のタイミングを予測・解析することが困難になる。
【００１５】
上記の各実施形態は、別々に説明したが、適宜組み合わせて適用可能である。例えば、図５に記載の実施形態において、ダミー処理を複数用意しておいて、割り込みごとに順次ダミー処理を１つずつシフトして実行させるようにしてもよいし、乱数を、ウォッチドッグタイマ４０３の設定とダミー処理の選択の両方に使用しても良い。
【００１６】
本発明は、上記各実施の形態に限ることなく、その他、実施段階ではその要旨を逸脱しない範囲で種々の変形を実施し得ることが可能である。例えば、上記の各実施形態では、ダミー処理の実行時間については、ダミー処理の内容に応じて固定されたものであるとしたが、ダミー処理の時間を乱数によって、設定し、当該時間が経過するまでダミー処理を行わせるようにしてもよい。また、上記の実施形態では、ウォッチドッグタイマの割り込み処理として暗号処理部のみへの割り込みを行う例を説明したが、ＣＰＵ割り込みを実行させるために、バス２０８に接続しても良い。さらに、上記各実施形態には、種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組合せにより種々の発明が抽出され得る。
【００１７】
また、例えば各実施形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【図面の簡単な説明】
【００１８】
【図１】本発明に係る暗号演算回路を備えたＩＣカードの概略構成を示す図。
【図２】ＩＣチップの一般的な内部構成を示す図。
【図３】暗号処理回路の内部構成の概要を示す図。
【図４】本発明の一実施形態に係るＩＣカードの動作を示すフローチャート。
【図５】本発明の他の実施形態に係るＩＣカードの動作を示すフローチャート
【符号の説明】
【００１９】
１０１…カード
１０２…ＩＣチップ
２０１…ＣＰＵ
２０２…ＲＡＭ
２０３…ＲＯＭ
２０４…ＥＥＰＲＯＭ
２０５…Ｉ／Ｏポート
２０６…コプロセッサ
２０７…暗号処理回路
２０８…ウォッチドッグタイマ
２０９…データバス
４０１…暗号処理部
４０２…乱数生成部
４０３…ウォッチドッグタイマ
４０４…Ｉ／Ｆ部
【図１】
2007094966.tif 000003
【図２】
2007094966.tif 000004
【図３】
2007094966.tif 000005
【図４】
2007094966.tif 000006
【図５】
2007094966.tif 000007