(57)【特許請求の範囲】
【請求項１】
複数個のデータブロックを格納する第１の記憶部と、
第１の検査手法により検査済みのデータブロックを示す検査済み情報を格納する第２の記憶部と、
前記検査済み情報に基づいて、前記第１の検査手法により検査されていないデータブロックの少なくとも１つに前記第１の検査手法を設定し、それ以外のデータブロックの少なくとも１つに第１の検査手法とは異なる第２の検査手法を設定する設定部と、
前記設定部により各データブロックに設定された検査手法を用いて各データブロックを検査する検査部と、
を備えるＩＣカード。
【請求項２】
前記設定部は、前記検査済み情報に基づいて、前記第１の検査手法による前記検査済みのデータブロックに前記第２の検査手法を設定する、
前記請求項１に記載のＩＣカード。
【請求項３】
前記第１の検査手法は、前記第２の検査手法よりも処理時間が長い、
前記請求項１又は２に記載のＩＣカード。
【請求項４】
前記第１の検査手法は、巡回冗長検査を演算して検査する手法である、
前記請求項３に記載のＩＣカード。
【請求項５】
前記第２の検査手法は、排他的論理和を演算して検査する手法である、
前記請求項３又は４の何れかに記載のＩＣカード。
【請求項６】
前記検査済み情報は、最後の検査済みのデータブロックを示し、
前記設定部は、前記最後の検査済みのデータブロックの次のデータブロックから所定の個数のデータブロックに前記第１の検査手法を設定する、
前記請求項１乃至５の何れか１項に記載のＩＣカード。
【請求項７】
前記検査済み情報は、データブロックごとに、前記第１の検査手法で検査されたかを示し、
前記設定部は、前記第１の検査手法により検査されていない前記データブロックから選択された所定の個数のデータブロックに前記第１の検査手法を設定する、
前記請求項１乃至５の何れか１項に記載のＩＣカード。
【請求項８】
さらに、前記各データブロックに対応する前記第１の検査手法による検査に用いるエラー検出コードを格納する第３の記憶部を有し、
前記検査部は、前記データブロックのデータに対して前記第１の検査手法を用いて演算するエラー検出コードと、前記第３の記憶部が格納する前記エラー検出コードとを比較して、前記データブロックを検査する、
前記請求項１乃至７の何れか１項に記載のＩＣカード。
【請求項９】
複数個のデータブロックを格納する第１の記憶部と、第１の検査手法により検査済みのデータブロックを示す検査済み情報を格納する第２の記憶部と、前記検査済み情報に基づいて、前記第１の検査手法により検査されていないデータブロックの少なくとも１つに前記第１の検査手法を設定し、それ以外のデータブロックの少なくとも１つに第１の検査手法とは異なる第２の検査手法を設定する設定部と、前記設定部により各データブロックに設定された検査手法を用いて各データブロックを検査する検査部と、を備えるモジュールと、
前記モジュールを内蔵した本体と、
を備えるＩＣカード。
【請求項１０】
複数個のデータブロックを格納する第１の記憶部と、
第１の検査手法により検査済みのデータブロックを示す検査済み情報を格納する第２の記憶部と、
前記検査済み情報に基づいて、前記第１の検査手法により検査されていないデータブロックの少なくとも１つに前記第１の検査手法を設定し、それ以外のデータブロックの少なくとも１つに第１の検査手法とは異なる第２の検査手法を設定する設定部と、
前記設定部により各データブロックに設定された検査手法を用いて各データブロックを検査する検査部と、
を備える携帯可能電子装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ＩＣカード及び携帯可能電子装置に関する。
【背景技術】
【０００２】
ＩＣカードなどの携帯可能電子装置は、内部のデータに破損又は改ざんがないかを検査する自己診断を実行するものがある。ＩＣカードは、実際に内部のデータから演算するＥＤＣ（Ｅｒｒｏｒ  Ｄｅｔｅｃｔｉｏｎ  Ｃｏｄｅ）と予め設定されるＥＤＣとを比較して自己診断を実行する。従来、ＩＣカードは、精度の高い自己診断処理には処理時間が掛るが、規格で定められた時間内に自己診断処理を含む処理を終了しなければならないという課題がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−２９３９１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記の課題を解決するために、効率良く自己診断処理を行うことができるＩＣカード及び携帯可能電子装置を提供する。
【課題を解決するための手段】
【０００５】
実施形態によれば、ＩＣカードは、第１の記憶部と、第２の記憶部と、設定部と、検査部と、を備える。第１の記憶部は、複数個のデータブロックを格納する。第２の記憶部は、第１の検査手法により検査済みのデータブロックを示す検査済み情報を格納する。設定部は、前記検査済み情報に基づいて、前記第１の検査手法により検査されていないデータブロックの少なくとも１つに前記第１の検査手法を設定し、それ以外のデータブロックの少なくとも１つに第１の検査手法とは異なる第２の検査手法を設定する。検査部は、前記設定部により各データブロックに設定された検査手法を用いて各データブロックを検査する。
【図面の簡単な説明】
【０００６】
【図１】図１は、実施形態に係るＩＣカードとＩＣカード処理装置とを有するＩＣカード処理システムの構成例を示す図である。
【図２】図２は、実施形態に係るＩＣカードの構成例を示すブロック図である。
【図３】図３は、実施形態に係るＩＣカードが格納するデータの構成例を示す図である。
【図４】図４は、実施形態に係るＩＣカードの動作例を示すフローチャートである。
【図５】図５は、実施形態に係るＩＣカードの他の動作例を示すフローチャートである。
【発明を実施するための形態】
【０００７】
以下、実施形態について、図面を参照して説明する。  
図１は、実施形態に係る携帯可能電子装置としてのＩＣカード２と、ＩＣカード２と通信を行う外部装置としてのＩＣカード処理装置１とを備えるＩＣカード処理システム１０の構成例について説明するためのブロック図である。
【０００８】
図１が示す構成例において、ＩＣカード処理装置１（外部装置）は、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、ＮＶＭ１４、カードリーダライタ１５、操作部１６、及び、ディスプレイ１７などを有する。これらの各部は、データバスを介して互いに接続されている。なお、ＩＣカード処理装置１は、図１が示すような構成の他に、必要に応じた構成を具備したり特定の構成を除外したりしてもよい。
【０００９】
ＣＰＵ１１は、ＩＣカード処理装置１全体の動作を制御する機能を有する。ＣＰＵ１１は、内部キャッシュおよび各種のインターフェースなどを備えても良い。ＣＰＵ１１は、内部メモリ、ＲＯＭ１２又はＮＶＭ１４に予め記憶したプログラムを実行することにより種々の処理を実現する。例えば、ＣＰＵ１１は、プログラムを実行することにより、カードリーダライタ１５によりＩＣカード２へコマンドを送信する機能、ＩＣカード２から受信するレスポンスなどのデータを基に種々の処理を行う機能などを有する。これらの機能により、ＣＰＵ１１は、カードリーダライタ１５を介して、操作部１６などに入力されたデータ又は所定のデータなどを含む書き込みコマンドをＩＣカード２に送信することにより、ＩＣカード２に当該データの書き込み処理を要求する制御を行う。
【００１０】
また、ＣＰＵ１１は、プログラムを実行することにより、複数の演算手法を用いた自己診断処理を実行する機能を有する。ＣＰＵ１１による自己診断処理については、後で詳細に説明する。
【００１１】
なお、ＣＰＵ１１がプログラムを実行することにより実現する各種の機能のうちの一部は、ハードウエア回路により実現されるものであっても良い。この場合、ＣＰＵ１１は、ハードウエア回路により実行される機能を制御する。
【００１２】
ＲＯＭ１２は、予め制御用のプログラム及び制御データなどが記憶された不揮発性のメモリである。ＲＯＭ１２に記憶される制御プログラム及び制御データは、予めＩＣカード処理装置１の仕様に応じて組み込まれる。ＲＯＭ１２は、たとえば、ＩＣカード処理装置１の回路基板を制御するプログラム（例えば、ＢＩＯＳ）などを格納している。
【００１３】
ＲＡＭ１３は、揮発性のメモリである。ＲＡＭ１３は、ＣＰＵ１１の処理中のデータなどを一時的に格納する。ＲＡＭ１３は、ＣＰＵ１１からの命令に基づき種々のアプリケーションプログラムを格納している。また、ＲＡＭ１３は、アプリケーションプログラムの実行に必要なデータ及びアプリケーションプログラムの実行結果などを格納してもよい。
【００１４】
ＮＶＭ１４は、データの書き込み及び書き換えが可能な不揮発性のメモリである。ＮＶＭ１４は、例えば、ハードディスク、ＳＳＤ、ＥＥＰＲＯＭ（登録商標）又はフラッシュメモリなどにより構成される。ＮＶＭ１４は、ＩＣカード処理装置１の運用用途に応じて制御プログラム、アプリケーション、及び種々のデータを格納する。
【００１５】
カードリーダライタ１５は、ＩＣカード２とデータを送受信するためのインターフェース装置である。カードリーダライタ１５は、ＩＣカード２の通信方式に応じたインターフェースにより構成される。たとえば、ＩＣカード２が接触型のＩＣカードである場合、カードリーダライタ１５は、ＩＣカード２のコンタクト部と物理的かつ電気的に接続するための接触部などにより構成される。
【００１６】
また、ＩＣカード２が非接触型のＩＣカードである場合、カードリーダライタ１５は、ＩＣカード２との無線通信を行うためのアンテナ及び通信制御部などにより構成される。カードリーダライタ１５では、ＩＣカード２に対する電源供給、クロック供給、リセット制御、データの送受信が行われるようになっている。
【００１７】
このような機能によってカードリーダライタ１５は、ＣＰＵ１１による制御に基づいてＩＣカード２に対する電源供給、ＩＣカード２の活性化（起動）、クロック供給、リセット制御、種々のコマンドの送信、及び送信したコマンドに対する応答（レスポンス）の受信などを行なう。
【００１８】
操作部１６は、ＩＣカード処理装置１の操作者によって、種々の操作指示が入力される。操作部１６は、操作者に入力された操作指示のデータをＣＰＵ１１へ送信する。操作部１６は、たとえば、キーボード、テンキー、及び、タッチパネルなどである。
【００１９】
ディスプレイ１７は、ＣＰＵ１１の制御により種々の情報を表示する表示装置である。ディスプレイ１７は、たとえば、液晶モニタなどである。なお、ディスプレイ１７は、操作部１６と一体的に形成されてもよい。
【００２０】
次に、ＩＣカード２について説明する。  
ＩＣカード２は、ＩＣカード処理装置１などの外部装置から電力などの供給を受けて活性化される（動作可能な状態になる）ようになっている。例えば、ＩＣカード２が接触型の通信によりＩＣカード処理装置１と接続される場合、つまり、ＩＣカード２が接触型のＩＣカードで構成される場合、ＩＣカード２は、通信インターフェースとしてのコンタクト部を介してＩＣカード処理装置１からの動作電源及び動作クロックの供給を受けて活性化される。
【００２１】
また、ＩＣカード２が非接触型の通信方式によりＩＣカード処理装置１と接続される場合、つまり、ＩＣカード２が非接触式のＩＣカードで構成される場合、ＩＣカード２は、通信インターフェースとしてのアンテナ及び変復調回路などを介してＩＣカード処理装置１からの電波を受信する。ＩＣカード２は、その電波から図示しない電源部により動作電源及び動作クロックを生成して活性化する。
【００２２】
次に、ＩＣカード２の構成例について説明する。  
図２は、実施形態に係るＩＣカード２の構成例を概略的に示すブロック図である。  
ＩＣカード２は、プラスチックなどで形成されたカード状の本体Ｃを有する。ＩＣカード２は、本体Ｃ内にモジュールＭが内蔵される。モジュールＭは、１つまたは複数のＩＣチップＣａと通信部としての外部インターフェース（通信インターフェース）とが接続された状態で一体的に形成され、ＩＣカード２の本体Ｃ内に埋設される。
【００２３】
図２に示す構成例において、ＩＣカード２は、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、ＮＶＭ２４、及び、通信部２５などを備える。これらの各部は、データバスを介して互いに接続する。また、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、およびＮＶＭ２４は、１つ又は複数のＩＣチップＣａにより構成され、通信部２５に接続された状態でモジュールＭを構成する。
【００２４】
ＣＰＵ２１は、ＩＣカード２全体の制御を司る制御部として機能する。ＣＰＵ２１は、ＲＯＭ２２又はＮＶＭ２４に記憶される制御プログラム及び制御データに基づいて種々の処理を行う。たとえば、ＣＰＵ２１は、ＲＯＭ２２に記憶されているプログラムを実行することにより、ＩＣカード２の動作制御又はＩＣカード２の運用形態に応じた種々の処理を行う。
【００２５】
なお、各種の機能のうちの一部は、ハードウエア回路により実現されるものであっても良い。この場合、ＣＰＵ２１は、ハードウエア回路により実行される機能を制御する。
【００２６】
ＲＯＭ２２は、予め制御用のプログラム及び制御データなどを記憶する不揮発性のメモリである。ＲＯＭ２２は、製造段階で制御プログラム及び制御データなどを記憶した状態でＩＣカード２に組み込まれる。即ち、ＲＯＭ２２に記憶される制御プログラム及び制御データは、予めＩＣカード２の仕様に応じて組み込まれる。
【００２７】
ＲＡＭ２３は、揮発性のメモリである。ＲＡＭ２３は、ＣＰＵ２１の処理中のデータなどを一時的に格納する。たとえば、ＲＡＭ２３は、計算用バッファ、受信用バッファ及び送信用バッファとして機能する。計算用バッファは、ＣＰＵ２１が実行する種々の演算処理の結果などを一時的に保持する。受信用バッファは、通信部２５を介してＩＣカード処理装置１から受信するコマンドデータなどを保持する。送信用バッファは、通信部２５を介してＩＣカード処理装置１へ送信するメッセージ（レスポンスデータ）などを保持する。
【００２８】
ＮＶＭ２４は、例えば、ＥＥＰＲＯＭあるいはフラッシュＲＯＭなどのデータの書き込み及び書換えが可能な不揮発性のメモリにより構成される。ＮＶＭ２４は、ＩＣカード２の運用用途に応じて制御プログラム、アプリケーション、及び種々のデータを格納する。例えば、ＮＶＭ２４では、プログラムファイル及びデータファイルなどが作成される。作成された各ファイルは、制御プログラム及び種々のデータなどが書き込まれる。
【００２９】
また、ＮＶＭ２４は、自己診断の対象となる診断対象データを格納する記憶領域２４ａ（第１の記憶部及び第３の記憶部）及び検査済み情報を格納する記憶領域２４ｂ（第２の記憶部）などを備える。記憶領域２４ａが格納するデータ及び検査済み情報については後述する。
【００３０】
通信部２５は、ＩＣカード処理装置１とデータを送受信するためのインターフェースである。即ち、通信部２５は、ＩＣカード処理装置１のカードリーダライタ１５との通信を行うためのインターフェースである。ＩＣカード２が接触型のＩＣカードとして実現される場合、通信部２５は、ＩＣカード処理装置１のカードリーダライタ１５と物理的かつ電気的に接触して信号の送受信を行うための通信制御部とコンタクト部とにより構成される。
【００３１】
ＩＣカード２が非接触型のＩＣカードとしての実現される場合、通信部２５は、ＩＣカード処理装置１のカードリーダライタ１５との無線通信を行うための変復調回路などの通信制御部とアンテナとにより構成される。
【００３２】
次に、記憶領域２４ａが格納するデータについて説明する。  
図３は、記憶領域２４ａが格納するデータの構成例を示す。  
図３が示すように、記憶領域２４ａは、複数のデータブロック３１（３１１、３１２、…、３１Ｎ）と、各データブロック３１の第１のＥＤＣ３２（３２１、３２２、…、３２Ｎ）、及び、各データブロック３１の第２のＥＤＣ３３（３３１、３３２、…、３３Ｎ）などを備える。
【００３３】
データブロック３１（３１１乃至３１Ｎ）は、自己診断の対象となる診断対象データをＮ個に分割したデータである。ここでは、データブロック３１１を１個目のデータブロック３１、データブロック３１２を２個目のデータブロック３１、・・・、データブロック３１ＮをＮ個目のデータブロック３１とする。診断対象データは、自己診断処理において、破損又は改ざんがないかチェックされるデータである。たとえば、診断対象データは、カードの運用において書き換え頻度が低いデータである。また、診断対象データは、所定の処理を行うためのソースコードなどである。
【００３４】
各データブロック３１１乃至３１Ｎは、互いに同じ容量のデータであってもよい。また、データブロック３１Ｎは、端数の容量のデータであってもよいし、互いに同じ容量になるようにダミーデータを含んでもよい。また、データブロック３１は、互いに異なる容量のデータであってもよい。また、データブロック３１の個数（即ち、Ｎ）は、特定の個数に限定されるものではない。
【００３５】
次に、第１のＥＤＣ３２（３２１乃至３２Ｎ）について説明する。  
各第１のＥＤＣ３２１、３２２、…、３２Ｎは、それぞれデータブロック３１１、３１２、…、３１Ｎに対応する。なお、各第１のＥＤＣ３２１、３２２、…、３２Ｎは、同様の構成であるため、第１のＥＤＣ３２１について説明する。
【００３６】
第１のＥＤＣ３２１は、データブロック３１１の破損又は改ざんをチェックするためのコードである。第１のＥＤＣ３２１は、データブロック３１１から第１の検査手法に従って生成される。第１の検査手法は、自己診断処理において、データブロック３１に破損又は改ざんなどのエラーがないかを検査する１つの手法である。本実施形態においては、第１の検査手法は、後述する第２の検査手法よりも、高精度でエラーを検出できる信頼性の高い手法であるが、第２の検査手法よりもＥＤＣを演算する時間（処理時間）が長いものであってもよい。
【００３７】
たとえば、第１の検査手法は、巡回冗長検査（ＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ））を演算してエラーがないかを検査する手法である。この場合、第１のＥＤＣは、巡回冗長検査である。ＩＳＯ／ＩＥＣ３３０９によれば、巡回冗長検査は、定義される２バイトのデータであり、検査対象となるデータを特定の定数で割ったあまりを用いて破損又は改ざんなどを検知する。
【００３８】
次に、第２のＥＤＣ３３１乃至３３Ｎ（第２のＥＤＣ３３）について説明する。
【００３９】
各第２のＥＤＣ３３１、３３２、…、３３Ｎは、それぞれデータブロック３１１、３１２、…、３１Ｎに対応する。なお、各第２のＥＤＣ３３１、３３２、…、３３Ｎ、同様の構成であるため、第２のＥＤＣ３３１について説明する。
【００４０】
第２のＥＤＣ３３１は、データブロック３１１の破損又は改ざんをチェックするための、第１のＥＤＣ３２１とは異なるコードである。第２のＥＤＣ３３１は、データブロック３１１から第２の検査手法に従って生成される。
【００４１】
第２の検査手法は、データブロック３１に破損又は改ざんなどのエラーがないかを検査する第１の検査手法と異なる手法である。本実施形態においては、第２の検査手法は、第１の検査手法よりも、エラーの検出精度が低いために信頼性が低いが、第１の検査手法よりもＥＤＣを演算する時間が短いものである。
【００４２】
たとえば、第２の検査手法は、排他的論理和（ＸＯＲ（ｅＸｃｌｕｓｉｂｅ  ＯＲ））を演算してエラーがないかを検査する手法である。この場合、第２のＥＤＣは、排他的論理和である。排他的論理和は、検査対象となるデータを数バイト度毎にＸＯＲ演算した最終値である。また、第２の検査手法は、パリティを演算してエラーがないかを検査するものであってもよい。この場合、第２のＥＤＣ３３は、パリティなどであってもよい。
【００４３】
なお、第１の検査手法及び／又は第２の検査手法は、ＥＤＣを用いずにエラーがないかを検査する手法であってもよい。第１の検査手法及び第２の検査手法は、特定の構成に限定されるものではない。
【００４４】
データブロック３１１乃至３１Ｎ、第１のＥＤＣ３２１乃至３２Ｎ、及び、第２のＥＤＣ３３１乃至３３Ｎは、ＩＣカード２の発行時などにおいて、ＩＣカード処理装置１などによって記憶領域２４ａに格納される。また、第１のＥＤＣ３２１乃至３２Ｎ、及び、第２のＥＤＣ３３１乃至３３Ｎは、データブロック３１１乃至３１Ｎが格納された時にＣＰＵ２１によって演算されてもよい。データブロック３１１乃至３１Ｎ、第１のＥＤＣ３２１乃至３２Ｎ、及び、第２のＥＤＣ３３１乃至３３Ｎは、適宜更新されてもよい。また、データブロック３１の個数は、適宜更新されてもよい。
【００４５】
次に、ＣＰＵ２１が実現する自己診断処理の機能について説明する。  
ＣＰＵ２１は、自己診断処理において、データブロック３１毎に破損又は改ざんがないか第１の検査手法又は第２の検査手法で検査する。たとえば、ＣＰＵ２１は、各データブロック３１を所定の順序でチェックする。
【００４６】
ＣＰＵ２１は、所定のタイミングで自己診断処理を実行する。たとえば、ＣＰＵ２１は、ＩＣカード２の起動時において自己診断処理を実行する。また、ＣＰＵ２１は、ＩＣカード処理装置１からのコマンドに基づいて自己診断処理を実行してもよい。たとえば、ＣＰＵ２１は、所定のコマンドの実行に付随して自己診断処理を実行してもよい。
【００４７】
次に、記憶領域２４ｂが格納する検査済み情報について説明する。  
検査済み情報は、第１の検査手法を用いて検査されたデータブロック３１（検査済みのデータブロック）を示す。即ち、検査済み情報は、直前の自己診断が終了した時点において、第１の検査手法を用いて検査されたデータブロック３１を示す。
【００４８】
たとえば、検査済み情報は、直前の自己診断が終了した時点において、第１の検査手法を用いて検査された最後のデータブロック３１を示す。たとえば、直前の自己診断が終了した時点において３つ目のデータブロック３１（たとえば、データブロック３１３）まで第１の検査手法を用いて検査された場合、検査済み情報は、３つ目のデータブロック３１３を示す。
【００４９】
また、検査済み情報は、データブロック３１ごとに、直前の自己診断が終了した時点において第１の検査手法を用いて検査されたか否かを示すフラグを格納してもよい。たとえば、検査済み情報は、第１の検査手法を用いて検査されたデータブロック３１に対応するフラグに「１」を格納する。また、検査済み情報は、第１の検査手法を用いて検査されていないデータブロック３１に対応するフラグに「０」を格納する。
【００５０】
なお、検査済み情報は、第１の検査手法を用いて検査されていないデータブロック３１（未検査のデータブロック）を示してもよい。検査済み情報の構成は、特定の構成に限定されるものではない。
【００５１】
ＣＰＵ２１は、検査済み情報に基づいて、第１の検査手法で検査していない未検査のデータブロック３１の少なくとも１つに、検査に用いる検査手法として、第１の検査手法を設定する機能を有する（設定部）。ここでは、ＣＰＵ２１は、Ｍ個のデータブロック３１に、第１の検査手法を設定するものとする。
【００５２】
ＣＰＵ２１は、所定の時間内に自己診断処理が終了するように、第１の検査手法を設定するデータブロック３１の個数（即ち、Ｍ）を設定する。第１の検査手法を設定されるデータブロック３１の個数は、データブロック３１の個数より小さい（即ち、Ｍ＜Ｎ）。たとえば、ＣＰＵ２１は、ＩＳＯ７８１６又はＩＳＯ１４４４３においてＩＣカード２とＩＣカード処理装置１との間で通信する際に設定される通信時間又は待機時間を満たすように、第１の手法を設定するデータブロック３１の個数（即ち、Ｎ）を設定する。これらの条件を満たすものであれば、ＣＰＵ２１が第１の検査手法を設定するデータブロック３１の個数は、特定の個数に限定されるものではない。
【００５３】
ＣＰＵ２１は、検査済み情報に基づいて、第１のＥＤＣ検査手法を用いて検査していないデータブロック３１に、第１の検査手法を設定する。検査済み情報が最後の検査済みのデータブロックを示す場合、ＣＰＵ２１は、検査済みのデータブロックの次のデータブロック３１から順にＭ個のデータブロック３１に第１のＥＤＣ検査手法を設定する。
【００５４】
また、未検査のデータブロックがＭ個以下である場合、ＣＰＵ２１は、未検査のデータブロックに第１のＥＤＣ検査手法を設定してもよい。この場合、ＣＰＵ２１は、Ｍ個より小さい個数のデータブロック３１に対して第１のＥＤＣ検査手法を設定する。
【００５５】
また、上記の場合、ＣＰＵ２１は、第１のＥＤＣ検査手法を設定されたデータブロック３１がＭ個となるように、最後のデータブロック３１から最初のデータブロック３１に戻って順に、第１のＥＤＣ検査手法を設定してもよい。
【００５６】
また、検査済み情報がデータブロック毎のフラグを示す場合、ＣＰＵ２１は、未検査のデータブロック３１からランダムに選択されたＭ個のデータブロックに第１のＥＤＣ検査手法を設定してもよい。
【００５７】
また、未検査のデータブロックがＭ個以下である場合、ＣＰＵ２１は、未検査のデータブロックに第１のＥＤＣ検査手法を設定してもよい。この場合、ＣＰＵ２１は、Ｍ個より小さい個数のデータブロック３１に対して第１のＥＤＣ検査手法を設定する。
【００５８】
また、上記の場合、ＣＰＵ２１は、第１のＥＤＣ検査手法を設定されたデータブロック３１がＭ個となるように、未検査のデータブロックと、検査済みのデータブロックからランダムに選択された検査済みのデータブロックとに、第１のＥＤＣ検査手法を設定してもよい。
【００５９】
また、ＣＰＵ２１は、第１のＥＤＣ検査手法を設定されなかったデータブロック３１の少なくともに、検査に用いる検査手法として、第２の検査手法を設定する機能を有する（設定部）。ここでは、ＣＰＵ２１は、第１のＥＤＣ検査手法を設定されなかったデータブロック３１の全てに第２の検査手法を設定する。
【００６０】
また、ＣＰＵ２１は、データブロック３１に設定された検査手法（第１の検査手法又は第２の検査手法）を用いて当該データブロック３１を検査する機能を有する（検査部）。
【００６１】
たとえば、ＣＰＵ２１は、所定のデータブロック３１に第１の検査手法が設定されている場合、当該データブロックを第１の検査手法を用いて検査する。たとえば、ＣＰＵ２１は、当該データブロック３１から第１の検査手法に従って第１のＥＤＣを演算する。ＣＰＵ２１は、演算された第１のＥＤＣと、記憶領域２４ａにおいて当該データブロック３１に対応する第１のＥＤＣ３２とを比較する。ＣＰＵ２１は、両者が一致すれば当該データブロック３１に破損又は改ざんがないと判定する。また、ＣＰＵ２１は、両者が一致しなければ、当該データブロック３１に破損又は改ざんがあると判定する。
【００６２】
また、ＣＰＵ２１は、所定のデータブロック３１に第２の検査手法が設定されている場合、当該データブロックを第２の検査手法を用いて検査する。たとえば、ＣＰＵ２１は、当該データブロック３１から第２の検査手法に従って第２のＥＤＣを演算する。ＣＰＵ２１は、演算された第２のＥＤＣと、記憶領域２４ａにおいて当該データブロック３１に対応する第２のＥＤＣ３３とを比較する。ＣＰＵ２１は、両者が一致すれば当該データブロック３１に破損又は改ざんがないと判定する。また、ＣＰＵ２１は、両者が一致しなければ、当該データブロック３１に破損又は改ざんがあると判定する。
【００６３】
次に、ＣＰＵ２１による自己診断処理の第１の動作例について説明する。  
図４は、ＣＰＵ２１が自己診断処理の第１の動作例について説明するためのフローチャートである。
【００６４】
第１の動作例において、検査済み情報は、直前の自己診断が終了した時点で第１の検査手法を用いて検査された最後の検査済みのデータブロック３１を示すものとする。
【００６５】
まず、ＣＰＵ２１は、自己診断処理を行うかを判定する（Ｓ１１）。たとえば、ＣＰＵ２１は、起動直後であるか又は自己診断処理を伴う所定のコマンドを受信したかを判定する。自己診断を行わないと判定すると（Ｓ１１、ＮＯ）、ＣＰＵ２１は、Ｓ１１へ戻る。
【００６６】
自己診断を行うと判定すると（Ｓ１１、ＹＥＳ）、ＣＰＵ２１は、記憶領域２４ｂから検査済み情報を取得する（Ｓ１２）。検査済み情報を取得すると、ＣＰＵ２１は、検査済み情報が示す最後の検査済みのデータブロックの次のデータブロック３１から順にＭ個のデータブロック３１に第１の検査手法を設定する（Ｓ１３）
第１の検査手法を設定すると、ＣＰＵ２１は、他のデータブロックに第２の検査手法を設定する（Ｓ１４）。第２の検査手法を設定すると、ＣＰＵ２１は、ｉをリセットする（ｉ＝０にする）（Ｓ１５）
ｉをリセットすると、ＣＰＵ２１は、ｉをインクリメントする（ｉ＝ｉ＋１とする）（Ｓ１６）。ｉをインクリメントすると、ＣＰＵ２１は、ｉ個目のデータブロック３１を、当該データブロック３１に設定された検査手法に従って検査する（Ｓ１７）
当該データブロック３１に破損又は改ざんがないと判定すると（Ｓ１８、ＮＯ）、ＣＰＵ２１は、すべてのデータブロック３１を検査したか（即ち、ｉ＝Ｎであるか）判定する（Ｓ１９）。
【００６７】
すべてのデータブロック３１を検査していないと判定すると（Ｓ１９、ＮＯ）、ＣＰＵ２１は、Ｓ１６に戻る。
【００６８】
すべてのデータブロック３１を検査したと判定すると（Ｓ１９、ＹＥＳ）、ＣＰＵ２１は、検査済み情報を更新する（Ｓ２０）。即ち、ＣＰＵ２１は、Ｓ１３で第１の検査手法を設定された最後のデータブロック３１を示す情報に検査済み情報を更新する。また、すべてのデータブロックが検査済みである場合、ＣＰＵ２１は、いずれのデータブロック３１も未検査であることを示す情報に検査済み情報を更新する。
【００６９】
当該データブロック３１に破損又は改ざんがあると判定すると（Ｓ１８、ＹＥＳ）、ＣＰＵ２１は、当該データブロック３１に破損又は改ざんがあること、又は、自己診断に失敗したことなどを示すエラー情報を、通信部２５を通じて、ＩＣカード処理装置１へ送信する（Ｓ２１）。
【００７０】
検査済み情報を更新した場合（Ｓ２０）、又は、エラー情報を送信した場合（Ｓ２１）、ＣＰＵ２１は、動作を終了する。
【００７１】
次に、ＣＰＵ２１による自己診断処理の第２の動作例について説明する。  
図５は、ＣＰＵ２１による自己診断処理の第２の動作例について説明するためのフローチャートである。
【００７２】
第２の動作例において、検査済み情報は、データブロック３１ごとに、直前の自己診断処理が終了した時点で第１の検査手法を用いて検査されたか否かを示すフラグを格納するものとする。
【００７３】
Ｓ１１、Ｓ１２、Ｓ１５乃至Ｓ１９、及び、Ｓ２１については、図４のそれらと同様であるため説明を省略する。
【００７４】
検査済み情報を取得すると（Ｓ１２）、ＣＰＵ２１は、未検査であることを示す値（たとえば、「０」）がセットされたフラグに対応するデータブロック３１からランダムにＭ個のデータブロックを選択する（Ｓ３１）。
【００７５】
データブロック３１を選択すると、ＣＰＵ２１は、選択されたＭ個のデータブロック３１に第１の検査手法を設定する（Ｓ３２）。第１の検査手法を設定すると、ＣＰＵ２１は、他のデータブロックに第２の検査手法を設定する（Ｓ３３）。第２の検査手法を設定すると、ＣＰＵ２１は、Ｓ１５に進む。
【００７６】
すべてのデータブロック３１を検査したと判定すると（Ｓ１９、ＹＥＳ）、ＣＰＵ２１は、検査済み情報を更新する（Ｓ３４）。即ち、ＣＰＵ２１は、Ｓ１３で第１の検査手法を設定された各データブロック３１に対応するフラグに、検査済みであることを示す値（たとえば、「１」）をセットする。また、すべてのデータブロック３１が検査済みである場合には、ＣＰＵ２１は、すべてのフラグに、未検査であることを示す値（たとえば、「０」）をセットする。
【００７７】
検査済み情報を更新すると、ＣＰＵ２１は、動作を終了する。
【００７８】
なお、ＣＰＵ２１は、３つ以上の検査手法を用いてデータブロック３１を検査してもよい。たとえば、記憶領域２４ａは、各データブロック３１に対して３つ以上のＥＤＣを格納してもよい。
【００７９】
また、ＣＰＵ２１は、一度の自己診断処理において、全てのデータブロック３１を検査しなくともよい。たとえば、ＣＰＵ２１は、次の自己診断処理において、前回検査されたデータブロック３１から検査を開始してもよい。
【００８０】
また、ＣＰＵ２１は、データブロック３１に対して、第２の検査手法を設定しなくともよい。たとえば、ＣＰＵ２１は、検査手法が設定されていないデータブロック３１を、第１の検査手法以外の検査手法（たとえば、第２の検査手法）を用いて検査してもよい。
【００８１】
以上のように構成されたＩＣカードは、自己診断の対象となるデータを複数個のデータブロックに分割する。ＩＣカードは、いくつかのデータブロックを、信頼性の高い検査手法を用いて検査することができる。また、ＩＣカードは、他のブロックを、高速な検査手法を用いて検査することができる。従って、ＩＣカードは、所定の時間内に自己診断を終了することができる。
【００８２】
また、ＩＣカードは、直前の自己診断までに信頼性の高い検査手法を用いて検査していないデータブロックを、信頼性の高い検査手法を用いて検査することができる。その結果、ＩＣカードは、所定の回数自己診断を実行すると、すべてのデータブロックを、信頼性の高い検査手法を用いて検査することができる。したがって、ＩＣカードは、速度と信頼性とを両立した自己診断を実現することができる。
【００８３】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
以下に本件出願当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
複数個のデータブロックを格納する第１の記憶部と、
第１の検査手法により検査済みのデータブロックを示す検査済み情報を格納する第２の記憶部と、
前記検査済み情報に基づいて、前記第１の検査手法により検査されていないデータブロックの少なくとも１つに前記第１の検査手法を設定し、それ以外のデータブロックの少なくとも１つに第１の検査手法とは異なる第２の検査手法を設定する設定部と、
前記設定部により各データブロックに設定された検査手法を用いて各データブロックを検査する検査部と、
を備えるＩＣカード。
［Ｃ２］
前記設定部は、前記検査済み情報に基づいて、前記第１の検査手法による前記検査済みのデータブロックに前記第２の検査手法を設定する、
前記Ｃ１に記載のＩＣカード。
［Ｃ３］
前記第１の検査手法は、前記第２の検査手法よりも処理時間が長い、
前記Ｃ１又は２に記載のＩＣカード。
［Ｃ４］
前記第１の検査手法は、巡回冗長検査を演算して検査する手法である、
前記Ｃ３に記載のＩＣカード。
［Ｃ５］
前記第２の検査手法は、排他的論理和を演算して検査する手法である、
前記Ｃ３又は４の何れかに記載のＩＣカード。
［Ｃ６］
前記検査済み情報は、最後の検査済みのデータブロックを示し、
前記設定部は、前記最後の検査済みのデータブロックの次のデータブロックから所定の個数のデータブロックに前記第１の検査手法を設定する、
前記Ｃ１乃至５の何れか１項に記載のＩＣカード。
［Ｃ７］
前記検査済み情報は、データブロックごとに、前記第１の検査手法で検査されたかを示し、
前記設定部は、前記第１の検査手法による検査されていない前記データブロックから選択された所定の個数のデータブロックに前記第１の検査手法を設定する、
前記Ｃ１乃至５の何れか１項に記載のＩＣカード。
［Ｃ８］
さらに、前記各データブロックに対応する前記第１の検査手法による検査に用いるＥＤＣを格納する第３の記憶部を有し、
前記検査部は、前記データブロックのデータに対して前記第１の検査手法を用いて演算するＥＤＣと、前記第３の記憶部が格納する前記ＥＤＣとを比較して、前記データブロックを検査する、
前記Ｃ１乃至７の何れか１項に記載のＩＣカード。
［Ｃ９］
複数個のデータブロックを格納する第１の記憶部と、第１の検査手法により検査済みのデータブロックを示す検査済み情報を格納する第２の記憶部と、前記検査済み情報に基づいて、前記第１の検査手法により検査されていないデータブロックの少なくとも１つに前記第１の検査手法を設定し、それ以外のデータブロックの少なくとも１つに第１の検査手法とは異なる第２の検査手法を設定する設定部と、前記設定部により各データブロックに設定された検査手法を用いて各データブロックを検査する検査部と、を備えるモジュールと、
前記モジュールを内蔵した本体と、
を備えるＩＣカード。
［Ｃ１０］
複数個のデータブロックを格納する第１の記憶部と、
第１の検査手法により検査済みのデータブロックを示す検査済み情報を格納する第２の記憶部と、
前記検査済み情報に基づいて、前記第１の検査手法により検査されていないデータブロックの少なくとも１つに前記第１の検査手法を設定し、それ以外のデータブロックの少なくとも１つに第１の検査手法とは異なる第２の検査手法を設定する設定部と、
前記設定部により各データブロックに設定された検査手法を用いて各データブロックを検査する検査部と、
を備える携帯可能電子装置。
【符号の説明】
【００８４】
１…ＩＣカード処理装置、２…ＩＣカード、１０…ＩＣカード処理システム、１１…ＣＰＵ、１４…ＮＶＭ、１５…カードリーダライタ、２１…ＣＰＵ、２４…ＮＶＭ、２４ａ及び２４ｂ…記憶領域、２５…通信部、３１（３１１乃至３１Ｎ）…データブロック、３２（３２１乃至３２Ｎ）…第１のＥＤＣ、３３（３３１乃至３３Ｎ）…第２のＥＤＣ、Ｍ…モジュール、Ｃ…本体。
【図１】
0006552926.tif 000002
【図２】
0006552926.tif 000003
【図３】
0006552926.tif 000004
【図４】
0006552926.tif 000005
【図５】
0006552926.tif 000006