(57)【特許請求の範囲】
【請求項１】
外部装置との間で信号の送受信を行うことが可能なＩＣチップであって、
前記外部装置から外部クロック信号を入力する入力手段と、
内部クロック信号を生成する内部クロック信号生成手段と、
複数の処理命令を規定するプログラムを記憶する読み取り専用メモリと、
前記外部クロック信号又は前記内部クロック信号によって前記処理命令を実行する動作を行う演算処理手段と、
前記内部クロック信号による動作不能を表す第一の識別子を記憶する不揮発性メモリであって当該第一の識別子を内部クロック信号による動作可能を表す第二の識別子に外部から書き換え可能な不揮発性メモリと、
を備え、
前記演算処理手段は、前記外部クロック信号から前記内部クロック信号への切り換えタイミングが到来したときに前記不揮発性メモリから前記識別子を読み出し、当該読み出された識別子が前記第一の識別子である場合には、前記外部クロック信号によって前記処理命令を実行する動作を行い、前記読み出された識別子が前記第二の識別子である場合には、前記外部クロック信号から内部クロック信号に切り換えて前記処理命令を実行する動作を行うことを特徴とするＩＣチップ。
【請求項２】
請求項１に記載のＩＣチップにおいて、
当該ＩＣチップの動作確認検査前の初期状態において、前記不揮発性メモリには前記第一の識別子が記憶されていることを特徴とするＩＣチップ。
【請求項３】
請求項１又は２に記載のＩＣチップを搭載することを特徴とするＩＣカード。
【請求項４】
外部装置から外部クロック信号を入力する入力手段と、
内部クロック信号を生成する内部クロック信号生成手段と、
複数の処理命令を規定するプログラムを記憶する読み取り専用メモリと、
前記外部クロック信号又は前記内部クロック信号によって前記処理命令を実行する動作を行う演算処理手段と、
前記内部クロック信号による動作不能を表す第一の識別子を記憶する不揮発性メモリであって当該第一の識別子を内部クロック信号による動作可能を表す第二の識別子に外部から書き換え可能な不揮発性メモリと、
を備えるＩＣチップの動作方法であって、
前記演算処理手段が、前記外部クロック信号から前記内部クロック信号への切り換えタイミングが到来したときに前記不揮発性メモリから前記識別子を読み出すステップと、
前記読み出された識別子が前記第一の識別子である場合には、前記演算処理手段が、前記外部クロック信号によって前記処理命令を実行する動作を行うステップと、
前記読み出された識別子が前記第二の識別子である場合には、前記演算処理手段が、前記外部クロック信号から内部クロック信号に切り換えて前記処理命令を実行する動作を行うステップと、
を含むことを特徴とするＩＣチップの動作方法。
【発明の詳細な説明】
【技術分野】
【０００１】
ＩＣカードに搭載されるＩＣチップの信頼性を向上させるための技術の分野に関する。
【背景技術】
【０００２】
従来から、金融、通信、交通等の様々な分野でＩＣカードが普及している。ＩＣカードに搭載されるＩＣチップ（例えば１チップマイクロコンピュータ）には、リーダーライタ等の外部装置が生成するクロック信号（以下、「外部クロック」という）によってＣＰＵを動作させる方式のものと、ＩＣチップが備える内部発振器（オシレータ）が生成するクロック信号（以下、「内部クロック」という）によってＣＰＵを動作させる方式のものに大別できる。内部発振器はアナログ素子であるため、小型化が難しく、ISO/IEC7816に定義されるスマートカードのような用途には、外部クロックによる動作方式が採用される傾向にあった。
【０００３】
一方で、従来から、ＩＣチップにおける処理内容や機密情報等を推測されることを防止しセキュリティを向上させる技術が提案されている。例えば、特許文献１に開示された技術では、データ処理手順に従う適当なデータ処理動作のタイミングを変化させることで暗号処理の内容や暗号鍵の解読を防止できるようになっている。
【０００４】
また、セキュリティを向上させるため、外部装置が生成する外部クロックによって外部装置とデータ通信し、かつ、上記内部発振器により生成された内部クロックによってＣＰＵを動作させる方式のＩＣチップも採用されるようになった。かかるＩＣチップによれば、外部クロックと内部クロックが同期していないため、ＩＣチップの処理内容を推測し暗号鍵等の資産情報を漏洩させる攻撃手法を効果的に回避することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−２５９７９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、外部クロックによって外部装置とデータ通信し、かつ、内部クロックによってＣＰＵを動作させる方式のＩＣチップの場合、内部クロック周波数の方が外部クロック周波数より高いので、内部クロックによってＣＰＵを動作させた方が処理を高速化することが可能になる。そのため、例えば、ＩＣチップの動作確認検査時において、初期状態から内部クロックにてＣＰＵを動作させることが望ましい。
【０００７】
しかしながら、ＩＣチップに備えられる内部発振器はアナログ素子であり、デジタル素子に比べて製造ロットによる差が生じ易く、かかる内部発振器に不具合（故障等）がある場合、外部クロックから内部クロックに切り換えられた時にＣＰＵの動作が停止してしまうという問題が生じる。
【０００８】
そこで、本発明は、このような問題等に鑑みてなされたものであり、ＩＣチップに備えられる内部発振器に不具合があっても、ＣＰＵの動作が停止することを回避することが可能なＩＣチップ、ＩＣカード、及びＩＣチップの動作方法を提供することを課題の一つとする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、請求項１に記載の発明は、外部装置との間で信号の送受信を行うことが可能なＩＣチップであって、前記外部装置から外部クロック信号を入力する入力手段と、内部クロック信号を生成する内部クロック信号生成手段と、複数の処理命令を規定するプログラムを記憶する読み取り専用メモリと、前記外部クロック信号又は前記内部クロック信号によって前記処理命令を実行する動作を行う演算処理手段と、前記内部クロック信号による動作不能を表す第一の識別子を記憶する不揮発性メモリであって当該第一の識別子を内部クロック信号による動作可能を表す第二の識別子に外部から書き換え可能な不揮発性メモリと、を備え、前記演算処理手段は、前記外部クロック信号から前記内部クロック信号への切り換えタイミングが到来したときに前記不揮発性メモリから前記識別子を読み出し、当該読み出された識別子が前記第一の識別子である場合には、前記外部クロック信号によって前記処理命令を実行する動作を行い、前記読み出された識別子が前記第二の識別子である場合には、前記外部クロック信号から内部クロック信号に切り換えて前記処理命令を実行する動作を行うことを特徴とする。
【００１０】
請求項２に記載の発明は、請求項１に記載のＩＣチップにおいて、当該ＩＣチップの動作確認検査前の初期状態において、前記不揮発性メモリには前記第一の識別子が記憶されていることを特徴とする。
【００１１】
請求項３に記載のＩＣカードの発明は、請求項１又は２に記載のＩＣチップを搭載することを特徴とする。
【００１２】
請求項４に記載の発明は、外部装置から外部クロック信号を入力する入力手段と、内部クロック信号を生成する内部クロック信号生成手段と、複数の処理命令を規定するプログラムを記憶する読み取り専用メモリと、前記外部クロック信号又は前記内部クロック信号によって前記処理命令を実行する動作を行う演算処理手段と、前記内部クロック信号による動作不能を表す第一の識別子を記憶する不揮発性メモリであって当該第一の識別子を内部クロック信号による動作可能を表す第二の識別子に外部から書き換え可能な不揮発性メモリと、を備えるＩＣチップの動作方法であって、前記演算処理手段が、前記外部クロック信号から前記内部クロック信号への切り換えタイミングが到来したときに前記不揮発性メモリから前記識別子を読み出すステップと、前記読み出された識別子が前記第一の識別子である場合には、前記演算処理手段が、前記外部クロック信号によって前記処理命令を実行する動作を行うステップと、前記読み出された識別子が前記第二の識別子である場合には、前記演算処理手段が、前記外部クロック信号から内部クロック信号に切り換えて前記処理命令を実行する動作を行うステップと、を含むことを特徴とする。
【発明の効果】
【００１３】
本発明によれば、処理の高速化を図ることができ、さらに、ＩＣチップに備えられる内部発振器に不具合があっても、演算処理手段としてのＣＰＵの動作が停止することを回避することができる。
【図面の簡単な説明】
【００１４】
【図１】ＩＣカードに搭載されるＩＣチップの概要構成例を示すブロック図である。
【図２】（Ａ）は、ＥＥＰＲＯＭ１７における記憶内容の一例を示す概念図であり、（Ｂ）は、内部発振器コントロールレジスタ１４における設定内容の一例を示す概念図である。
【図３】ＲＯＭ１５に記憶されている処理命令の一部を示す図である。
【図４】ＣＰＵ１８の動作例を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下、図面を参照して本発明の実施形態について詳細に説明する。以下に説明する実施形態は、ＩＣカードに対して本発明を適用した場合の実施の形態である。
【００１６】
先ず、本実施形態に係るＩＣチップ（マイクロコンピュータ）の構成及び機能概要について、図１を用いて説明する。本実施形態に係るＩＣチップは、リーダーライタ等の外部装置との間で信号の送受信を行うことが可能になっている。
【００１７】
図１は、ＩＣカードに搭載されるＩＣチップの概要構成例を示すブロック図である。図１に示すように、ＩＣチップ１は、Ｉ／Ｏポート１１、内部発振器（オシレータ）１２、クロック分周・逓倍回路１３、内部発振器コントロールレジスタ１４、ＲＯＭ（Read Only Memory）１５、ＲＡＭ(Random Access Memory)１６、ＥＥＰＲＯＭ(Electrical Erasable Programmable Read Only Memory）１７、及びＣＰＵ（Central Processing Unit）１８等を備えて構成されている。また、ＩＣチップ１には、電源端子Ｖｃｃ、電源基準電位端子Ｖｓｓ、リセット入力端子ＲＥＳバー、クロック端子ＣＬＫ、データ端子Ｉ／Ｏ−１／ＩＲＱバー、及びデータ端子Ｉ／Ｏ−２／ＩＲＱバー等が備えられている。クロック端子ＣＬＫは、外部装置から外部クロック（例えば、クロック周波数が３．５ＭＨｚ程度の外部クロック）を入力する入力手段の一例である。
【００１８】
Ｉ／Ｏポート１１は、外部装置からデータ信号の受信（入力）又は外部装置へのデータ信号の送信（出力）を行う。
【００１９】
内部発振器１２は、例えば水晶発信器からなり、内部クロック（例えば、クロック周波数が２０ＭＨｚ〜３０ＭＨｚの内部クロック）を生成する内部クロック信号生成手段の一例である。
【００２０】
クロック分周・逓倍回路１３は、逓倍回路、分周回路、及びセレクタ等からなり、外部装置からクロック端子ＣＬＫを介して入力された外部クロックを受け、かかる外部クロックに同期したシステムクロックを形成し、アドレスバスに供給する。また、クロック分周・逓倍回路１３は、内部発振器１２により生成された内部クロックを受け、かかる内部クロックに同期したシステムクロックを形成し、アドレスバスに供給する。なお、外部クロックと内部クロックとは非同期になっている。
【００２１】
内部発振器コントロールレジスタ１４は、例えば８ビットのレジスタであり、所定ビット目（例えば先頭の７ビット目）の状態（０又は１）によって内部発振器１２の停止又は使用を制御することができる。例えば、内部発振器コントロールレジスタ１４の所定ビット目の状態が“１”である場合、内部発振器１２は使用状態となり、内部発振器１２により生成された内部クロックはシステムクロックとしてアドレスバスを介してＣＰＵ１８に供給可能となる。
【００２２】
ＲＯＭ１５は、電源の供給が停止されても記憶された情報が保持される読み取り専用メモリであり、複数の処理命令（例えば、信号受信、暗号解読等のデータ解析等）を規定するプログラムを記憶する。
【００２３】
ＥＥＰＲＯＭ１７は、記憶された情報の書き換えが可能な不揮発性メモリであり、一旦書き込まれた情報は電源の供給が停止されても保持される。なお、ＥＥＰＲＯＭ１７はフラッシュメモリであっても良い。そして、ＥＥＰＲＯＭ１７には、動作モードを表す識別子が記憶される。この動作モードには、内部クロック動作可能モード（内部クロックによる動作可能）と、内部クロック動作ロックモード（内部クロックによる動作不能）とがあり、夫々のモードを表す識別子は互いに異なっている。
【００２４】
図２（Ａ）は、ＥＥＰＲＯＭ１７における記憶内容の一例を示す概念図であり、図２（Ｂ）は、内部発振器コントロールレジスタ１４における設定内容の一例を示す概念図である。ＩＣチップ１の動作確認検査前の初期状態では、図２に示すように、ＥＥＰＲＯＭ１７には、内部クロック動作ロックモードを表す識別子（第一の識別子）が記憶されている。この場合、内部発振器コントロールレジスタ１４の先頭の７ビット目は“０”に設定される。一方、ＥＥＰＲＯＭ１７に内部クロック動作可能モードを表す識別子（第二の識別子）が記憶されると、内部発振器コントロールレジスタ１４の先頭の７ビット目は“１”に設定される。
【００２５】
なお、ＥＥＰＲＯＭ１７に記憶されている動作モードの書き換えは、例えばＩＣチップ１の動作確認検査者の操作により外部装置からＩＣチップ１に入力された書き換え指示信号によって行われる。
【００２６】
ＣＰＵ１８は、外部クロック又は内部クロックによって上記処理命令を実行する動作（ＲＯＭ１５に記憶されている処理命令を読み出し、その命令に対応する動作）を行う演算処理手段の一例である。つまり、ＣＰＵ１８は、クロック分周・逓倍回路１３からアドレスバスを介して供給されるシステムクロック（外部クロック又は内部クロックにより形成）を受けそのシステムクロックによって決められる動作タイミング及び周期をもって動作する。また、ＣＰＵ１８は、Ｉ／Ｏポート１１を介したデータ信号の送受信制御、及びＲＡＭ１６やＥＥＰＲＯＭ１７に対するデータの書き込みと読み出し動作制御等を行う。
【００２７】
次に、本実施形態に係るＩＣチップ１の動作例について、図３及び図４を用いて説明する。
【００２８】
図３は、ＲＯＭ１５に記憶されている処理命令の一部を示す図である。図４は、ＣＰＵ１８の動作例を示すフローチャートである。
【００２９】
図４に示す動作は、ＣＰＵ１８が外部クロックによって例えば信号受信の処理命令（図３の例では、アドレス“10000000”に記憶）を実行する動作を行った後、外部クロックから内部クロックへの切り換えタイミング（図３の例では、アドレス“10000001”）が到来したときに開始される。以下の動作例では、内部発振器コントロールレジスタ１４の所定ビット目が初期状態を表す“０”に設定されている。
【００３０】
図４に示す動作において、ＣＰＵ１８は、ＥＥＰＲＯＭ１７から識別子を読み出し（ステップＳ１）、当該読み出された識別子が、内部クロック動作ロックモードを表す識別子であるか否かを判定する（ステップＳ２）。
【００３１】
そして、ＣＰＵ１８は、内部クロック動作ロックモードを表す識別子であると判定した場合（ＩＣチップ１の動作確認検査前）には（ステップＳ２：ＹＥＳ）、内部発振器コントロールレジスタ１４の所定ビット目を“０”のままとし、外部クロックから内部クロックへ切り換えず、上記判定に続く処理命令（図３に示す例では、データ解析）を外部クロックによって実行する動作を行う（ステップＳ３）。
【００３２】
一方、例えばＩＣチップ１が半導体メーカから入荷され、当該ＩＣチップ１の動作確認検査により内部発振器１２に不具合が無いことが動作確認検査者により確認された場合、当該動作確認検査者の操作により外部装置からＩＣチップ１に入力された書き換え指示信号によって、ＥＥＰＲＯＭ１７に記憶されている内部クロック動作ロックモードを表す識別子から内部クロック動作可能モードを表す識別子へ書き換えられる。この場合、ＣＰＵ１８は、上記ステップＳ２で、内部クロック動作ロックモードを表す識別子でないと判定し（ステップＳ２：ＮＯ）、内部発振器コントロールレジスタ１４の所定ビット目を、初期状態を表す“０”から内部発振器１２の使用状態を表す「１」へ設定変更し、外部クロックから内部クロックに切り換え、上記判定に続く処理命令（図３に示す例では、データ解析）を内部クロックによって実行する動作を行う（ステップＳ４）。
【００３３】
以上説明したように、上記実施形態によれば、ＣＰＵ１８は、外部クロックから内部クロックへの切り換えタイミングが到来したときにＥＥＰＲＯＭ１７に記憶されている識別子を読み出し、当該読み出された識別子が内部クロック動作ロックモードを表す識別子である場合には、外部クロックによって処理命令を実行する動作を行い、読み出された識別子が内部クロック動作可能モードを表す識別子である場合には、外部クロックから内部クロックに切り換えて、内部クロックによって処理命令を実行する動作を行うように構成したので、処理の高速化を図ることができ、さらに、ＩＣチップ１に備えられる内部発振器１２に不具合があっても、ＣＰＵ１８の動作が停止することを回避することができる。
【００３４】
なお、上記実施形態においては、ＩＣチップ１が外部装置との間で端子を介して信号の送受信を行う接触式の場合を例にとって説明したが、ＩＣチップ１が外部装置と非接触で（アンテナを介して）信号の送受信を行う非接触式の場合であっても上記実施形態は適用可能である。
【符号の説明】
【００３５】
１  ＩＣチップ
１１  Ｉ／Ｏポート
１２  内部発振器
１３  クロック分周・逓倍回路
１４  内部発振器コントロールレジスタ
１５  ＲＯＭ
１６  ＲＡＭ
１７  ＥＥＰＲＯＭ
１８  ＣＰＵ
【図２】
0005397320.tif 000002
【図３】
0005397320.tif 000003
【図４】
0005397320.tif 000004
【図１】
0005397320.tif 000005