(58)【調査した分野】(Int.Cl.,DB名)
複数個のデータブロックを格納する第1の記憶部と、第1の検査手法により検査済みのデータブロックを示す検査済み情報を格納する第2の記憶部と、前記検査済み情報に基づいて、前記第1の検査手法により検査されていないデータブロックの少なくとも1つに前記第1の検査手法を設定し、それ以外のデータブロックの少なくとも1つに第1の検査手法とは異なる第2の検査手法を設定する設定部と、前記設定部により各データブロックに設定された検査手法を用いて各データブロックを検査する検査部と、を備えるモジュールと、
前記モジュールを内蔵した本体と、
を備えるICカード。
【発明を実施するための形態】
【0007】
以下、実施形態について、図面を参照して説明する。
図1は、実施形態に係る携帯可能電子装置としてのICカード2と、ICカード2と通信を行う外部装置としてのICカード処理装置1とを備えるICカード処理システム10の構成例について説明するためのブロック図である。
【0008】
図1が示す構成例において、ICカード処理装置1(外部装置)は、CPU11、ROM12、RAM13、NVM14、カードリーダライタ15、操作部16、及び、ディスプレイ17などを有する。これらの各部は、データバスを介して互いに接続されている。なお、ICカード処理装置1は、
図1が示すような構成の他に、必要に応じた構成を具備したり特定の構成を除外したりしてもよい。
【0009】
CPU11は、ICカード処理装置1全体の動作を制御する機能を有する。CPU11は、内部キャッシュおよび各種のインターフェースなどを備えても良い。CPU11は、内部メモリ、ROM12又はNVM14に予め記憶したプログラムを実行することにより種々の処理を実現する。例えば、CPU11は、プログラムを実行することにより、カードリーダライタ15によりICカード2へコマンドを送信する機能、ICカード2から受信するレスポンスなどのデータを基に種々の処理を行う機能などを有する。これらの機能により、CPU11は、カードリーダライタ15を介して、操作部16などに入力されたデータ又は所定のデータなどを含む書き込みコマンドをICカード2に送信することにより、ICカード2に当該データの書き込み処理を要求する制御を行う。
【0010】
また、CPU11は、プログラムを実行することにより、複数の演算手法を用いた自己診断処理を実行する機能を有する。CPU11による自己診断処理については、後で詳細に説明する。
【0011】
なお、CPU11がプログラムを実行することにより実現する各種の機能のうちの一部は、ハードウエア回路により実現されるものであっても良い。この場合、CPU11は、ハードウエア回路により実行される機能を制御する。
【0012】
ROM12は、予め制御用のプログラム及び制御データなどが記憶された不揮発性のメモリである。ROM12に記憶される制御プログラム及び制御データは、予めICカード処理装置1の仕様に応じて組み込まれる。ROM12は、たとえば、ICカード処理装置1の回路基板を制御するプログラム(例えば、BIOS)などを格納している。
【0013】
RAM13は、揮発性のメモリである。RAM13は、CPU11の処理中のデータなどを一時的に格納する。RAM13は、CPU11からの命令に基づき種々のアプリケーションプログラムを格納している。また、RAM13は、アプリケーションプログラムの実行に必要なデータ及びアプリケーションプログラムの実行結果などを格納してもよい。
【0014】
NVM14は、データの書き込み及び書き換えが可能な不揮発性のメモリである。NVM14は、例えば、ハードディスク、SSD、EEPROM(登録商標)又はフラッシュメモリなどにより構成される。NVM14は、ICカード処理装置1の運用用途に応じて制御プログラム、アプリケーション、及び種々のデータを格納する。
【0015】
カードリーダライタ15は、ICカード2とデータを送受信するためのインターフェース装置である。カードリーダライタ15は、ICカード2の通信方式に応じたインターフェースにより構成される。たとえば、ICカード2が接触型のICカードである場合、カードリーダライタ15は、ICカード2のコンタクト部と物理的かつ電気的に接続するための接触部などにより構成される。
【0016】
また、ICカード2が非接触型のICカードである場合、カードリーダライタ15は、ICカード2との無線通信を行うためのアンテナ及び通信制御部などにより構成される。カードリーダライタ15では、ICカード2に対する電源供給、クロック供給、リセット制御、データの送受信が行われるようになっている。
【0017】
このような機能によってカードリーダライタ15は、CPU11による制御に基づいてICカード2に対する電源供給、ICカード2の活性化(起動)、クロック供給、リセット制御、種々のコマンドの送信、及び送信したコマンドに対する応答(レスポンス)の受信などを行なう。
【0018】
操作部16は、ICカード処理装置1の操作者によって、種々の操作指示が入力される。操作部16は、操作者に入力された操作指示のデータをCPU11へ送信する。操作部16は、たとえば、キーボード、テンキー、及び、タッチパネルなどである。
【0019】
ディスプレイ17は、CPU11の制御により種々の情報を表示する表示装置である。ディスプレイ17は、たとえば、液晶モニタなどである。なお、ディスプレイ17は、操作部16と一体的に形成されてもよい。
【0020】
次に、ICカード2について説明する。
ICカード2は、ICカード処理装置1などの外部装置から電力などの供給を受けて活性化される(動作可能な状態になる)ようになっている。例えば、ICカード2が接触型の通信によりICカード処理装置1と接続される場合、つまり、ICカード2が接触型のICカードで構成される場合、ICカード2は、通信インターフェースとしてのコンタクト部を介してICカード処理装置1からの動作電源及び動作クロックの供給を受けて活性化される。
【0021】
また、ICカード2が非接触型の通信方式によりICカード処理装置1と接続される場合、つまり、ICカード2が非接触式のICカードで構成される場合、ICカード2は、通信インターフェースとしてのアンテナ及び変復調回路などを介してICカード処理装置1からの電波を受信する。ICカード2は、その電波から図示しない電源部により動作電源及び動作クロックを生成して活性化する。
【0022】
次に、ICカード2の構成例について説明する。
図2は、実施形態に係るICカード2の構成例を概略的に示すブロック図である。
ICカード2は、プラスチックなどで形成されたカード状の本体Cを有する。ICカード2は、本体C内にモジュールMが内蔵される。モジュールMは、1つまたは複数のICチップCaと通信部としての外部インターフェース(通信インターフェース)とが接続された状態で一体的に形成され、ICカード2の本体C内に埋設される。
【0023】
図2に示す構成例において、ICカード2は、CPU21、ROM22、RAM23、NVM24、及び、通信部25などを備える。これらの各部は、データバスを介して互いに接続する。また、CPU21、ROM22、RAM23、およびNVM24は、1つ又は複数のICチップCaにより構成され、通信部25に接続された状態でモジュールMを構成する。
【0024】
CPU21は、ICカード2全体の制御を司る制御部として機能する。CPU21は、ROM22又はNVM24に記憶される制御プログラム及び制御データに基づいて種々の処理を行う。たとえば、CPU21は、ROM22に記憶されているプログラムを実行することにより、ICカード2の動作制御又はICカード2の運用形態に応じた種々の処理を行う。
【0025】
なお、各種の機能のうちの一部は、ハードウエア回路により実現されるものであっても良い。この場合、CPU21は、ハードウエア回路により実行される機能を制御する。
【0026】
ROM22は、予め制御用のプログラム及び制御データなどを記憶する不揮発性のメモリである。ROM22は、製造段階で制御プログラム及び制御データなどを記憶した状態でICカード2に組み込まれる。即ち、ROM22に記憶される制御プログラム及び制御データは、予めICカード2の仕様に応じて組み込まれる。
【0027】
RAM23は、揮発性のメモリである。RAM23は、CPU21の処理中のデータなどを一時的に格納する。たとえば、RAM23は、計算用バッファ、受信用バッファ及び送信用バッファとして機能する。計算用バッファは、CPU21が実行する種々の演算処理の結果などを一時的に保持する。受信用バッファは、通信部25を介してICカード処理装置1から受信するコマンドデータなどを保持する。送信用バッファは、通信部25を介してICカード処理装置1へ送信するメッセージ(レスポンスデータ)などを保持する。
【0028】
NVM24は、例えば、EEPROMあるいはフラッシュROMなどのデータの書き込み及び書換えが可能な不揮発性のメモリにより構成される。NVM24は、ICカード2の運用用途に応じて制御プログラム、アプリケーション、及び種々のデータを格納する。例えば、NVM24では、プログラムファイル及びデータファイルなどが作成される。作成された各ファイルは、制御プログラム及び種々のデータなどが書き込まれる。
【0029】
また、NVM24は、自己診断の対象となる診断対象データを格納する記憶領域24a(第1の記憶部及び第3の記憶部)及び検査済み情報を格納する記憶領域24b(第2の記憶部)などを備える。記憶領域24aが格納するデータ及び検査済み情報については後述する。
【0030】
通信部25は、ICカード処理装置1とデータを送受信するためのインターフェースである。即ち、通信部25は、ICカード処理装置1のカードリーダライタ15との通信を行うためのインターフェースである。ICカード2が接触型のICカードとして実現される場合、通信部25は、ICカード処理装置1のカードリーダライタ15と物理的かつ電気的に接触して信号の送受信を行うための通信制御部とコンタクト部とにより構成される。
【0031】
ICカード2が非接触型のICカードとしての実現される場合、通信部25は、ICカード処理装置1のカードリーダライタ15との無線通信を行うための変復調回路などの通信制御部とアンテナとにより構成される。
【0032】
次に、記憶領域24aが格納するデータについて説明する。
図3は、記憶領域24aが格納するデータの構成例を示す。
図3が示すように、記憶領域24aは、複数のデータブロック31(311、312、…、31N)と、各データブロック31の第1のEDC32(321、322、…、32N)、及び、各データブロック31の第2のEDC33(331、332、…、33N)などを備える。
【0033】
データブロック31(311乃至31N)は、自己診断の対象となる診断対象データをN個に分割したデータである。ここでは、データブロック311を1個目のデータブロック31、データブロック312を2個目のデータブロック31、・・・、データブロック31NをN個目のデータブロック31とする。診断対象データは、自己診断処理において、破損又は改ざんがないかチェックされるデータである。たとえば、診断対象データは、カードの運用において書き換え頻度が低いデータである。また、診断対象データは、所定の処理を行うためのソースコードなどである。
【0034】
各データブロック311乃至31Nは、互いに同じ容量のデータであってもよい。また、データブロック31Nは、端数の容量のデータであってもよいし、互いに同じ容量になるようにダミーデータを含んでもよい。また、データブロック31は、互いに異なる容量のデータであってもよい。また、データブロック31の個数(即ち、N)は、特定の個数に限定されるものではない。
【0035】
次に、第1のEDC32(321乃至32N)について説明する。
各第1のEDC321、322、…、32Nは、それぞれデータブロック311、312、…、31Nに対応する。なお、各第1のEDC321、322、…、32Nは、同様の構成であるため、第1のEDC321について説明する。
【0036】
第1のEDC321は、データブロック311の破損又は改ざんをチェックするためのコードである。第1のEDC321は、データブロック311から第1の検査手法に従って生成される。第1の検査手法は、自己診断処理において、データブロック31に破損又は改ざんなどのエラーがないかを検査する1つの手法である。本実施形態においては、第1の検査手法は、後述する第2の検査手法よりも、高精度でエラーを検出できる信頼性の高い手法であるが、第2の検査手法よりもEDCを演算する時間(処理時間)が長いものであってもよい。
【0037】
たとえば、第1の検査手法は、巡回冗長検査(CRC(Cyclic Redundancy Check))を演算してエラーがないかを検査する手法である。この場合、第1のEDCは、巡回冗長検査である。ISO/IEC3309によれば、巡回冗長検査は、定義される2バイトのデータであり、検査対象となるデータを特定の定数で割ったあまりを用いて破損又は改ざんなどを検知する。
【0038】
次に、第2のEDC331乃至33N(第2のEDC33)について説明する。
【0039】
各第2のEDC331、332、…、33Nは、それぞれデータブロック311、312、…、31Nに対応する。なお、各第2のEDC331、332、…、33N、同様の構成であるため、第2のEDC331について説明する。
【0040】
第2のEDC331は、データブロック311の破損又は改ざんをチェックするための、第1のEDC321とは異なるコードである。第2のEDC331は、データブロック311から第2の検査手法に従って生成される。
【0041】
第2の検査手法は、データブロック31に破損又は改ざんなどのエラーがないかを検査する第1の検査手法と異なる手法である。本実施形態においては、第2の検査手法は、第1の検査手法よりも、エラーの検出精度が低いために信頼性が低いが、第1の検査手法よりもEDCを演算する時間が短いものである。
【0042】
たとえば、第2の検査手法は、排他的論理和(XOR(eXclusibe OR))を演算してエラーがないかを検査する手法である。この場合、第2のEDCは、排他的論理和である。排他的論理和は、検査対象となるデータを数バイト度毎にXOR演算した最終値である。また、第2の検査手法は、パリティを演算してエラーがないかを検査するものであってもよい。この場合、第2のEDC33は、パリティなどであってもよい。
【0043】
なお、第1の検査手法及び/又は第2の検査手法は、EDCを用いずにエラーがないかを検査する手法であってもよい。第1の検査手法及び第2の検査手法は、特定の構成に限定されるものではない。
【0044】
データブロック311乃至31N、第1のEDC321乃至32N、及び、第2のEDC331乃至33Nは、ICカード2の発行時などにおいて、ICカード処理装置1などによって記憶領域24aに格納される。また、第1のEDC321乃至32N、及び、第2のEDC331乃至33Nは、データブロック311乃至31Nが格納された時にCPU21によって演算されてもよい。データブロック311乃至31N、第1のEDC321乃至32N、及び、第2のEDC331乃至33Nは、適宜更新されてもよい。また、データブロック31の個数は、適宜更新されてもよい。
【0045】
次に、CPU21が実現する自己診断処理の機能について説明する。
CPU21は、自己診断処理において、データブロック31毎に破損又は改ざんがないか第1の検査手法又は第2の検査手法で検査する。たとえば、CPU21は、各データブロック31を所定の順序でチェックする。
【0046】
CPU21は、所定のタイミングで自己診断処理を実行する。たとえば、CPU21は、ICカード2の起動時において自己診断処理を実行する。また、CPU21は、ICカード処理装置1からのコマンドに基づいて自己診断処理を実行してもよい。たとえば、CPU21は、所定のコマンドの実行に付随して自己診断処理を実行してもよい。
【0047】
次に、記憶領域24bが格納する検査済み情報について説明する。
検査済み情報は、第1の検査手法を用いて検査されたデータブロック31(検査済みのデータブロック)を示す。即ち、検査済み情報は、直前の自己診断が終了した時点において、第1の検査手法を用いて検査されたデータブロック31を示す。
【0048】
たとえば、検査済み情報は、直前の自己診断が終了した時点において、第1の検査手法を用いて検査された最後のデータブロック31を示す。たとえば、直前の自己診断が終了した時点において3つ目のデータブロック31(たとえば、データブロック313)まで第1の検査手法を用いて検査された場合、検査済み情報は、3つ目のデータブロック313を示す。
【0049】
また、検査済み情報は、データブロック31ごとに、直前の自己診断が終了した時点において第1の検査手法を用いて検査されたか否かを示すフラグを格納してもよい。たとえば、検査済み情報は、第1の検査手法を用いて検査されたデータブロック31に対応するフラグに「1」を格納する。また、検査済み情報は、第1の検査手法を用いて検査されていないデータブロック31に対応するフラグに「0」を格納する。
【0050】
なお、検査済み情報は、第1の検査手法を用いて検査されていないデータブロック31(未検査のデータブロック)を示してもよい。検査済み情報の構成は、特定の構成に限定されるものではない。
【0051】
CPU21は、検査済み情報に基づいて、第1の検査手法で検査していない未検査のデータブロック31の少なくとも1つに、検査に用いる検査手法として、第1の検査手法を設定する機能を有する(設定部)。ここでは、CPU21は、M個のデータブロック31に、第1の検査手法を設定するものとする。
【0052】
CPU21は、所定の時間内に自己診断処理が終了するように、第1の検査手法を設定するデータブロック31の個数(即ち、M)を設定する。第1の検査手法を設定されるデータブロック31の個数は、データブロック31の個数より小さい(即ち、M<N)。たとえば、CPU21は、ISO7816又はISO14443においてICカード2とICカード処理装置1との間で通信する際に設定される通信時間又は待機時間を満たすように、第1の手法を設定するデータブロック31の個数(即ち、N)を設定する。これらの条件を満たすものであれば、CPU21が第1の検査手法を設定するデータブロック31の個数は、特定の個数に限定されるものではない。
【0053】
CPU21は、検査済み情報に基づいて、第1のEDC検査手法を用いて検査していないデータブロック31に、第1の検査手法を設定する。検査済み情報が最後の検査済みのデータブロックを示す場合、CPU21は、検査済みのデータブロックの次のデータブロック31から順にM個のデータブロック31に第1のEDC検査手法を設定する。
【0054】
また、未検査のデータブロックがM個以下である場合、CPU21は、未検査のデータブロックに第1のEDC検査手法を設定してもよい。この場合、CPU21は、M個より小さい個数のデータブロック31に対して第1のEDC検査手法を設定する。
【0055】
また、上記の場合、CPU21は、第1のEDC検査手法を設定されたデータブロック31がM個となるように、最後のデータブロック31から最初のデータブロック31に戻って順に、第1のEDC検査手法を設定してもよい。
【0056】
また、検査済み情報がデータブロック毎のフラグを示す場合、CPU21は、未検査のデータブロック31からランダムに選択されたM個のデータブロックに第1のEDC検査手法を設定してもよい。
【0057】
また、未検査のデータブロックがM個以下である場合、CPU21は、未検査のデータブロックに第1のEDC検査手法を設定してもよい。この場合、CPU21は、M個より小さい個数のデータブロック31に対して第1のEDC検査手法を設定する。
【0058】
また、上記の場合、CPU21は、第1のEDC検査手法を設定されたデータブロック31がM個となるように、未検査のデータブロックと、検査済みのデータブロックからランダムに選択された検査済みのデータブロックとに、第1のEDC検査手法を設定してもよい。
【0059】
また、CPU21は、第1のEDC検査手法を設定されなかったデータブロック31の少なくともに、検査に用いる検査手法として、第2の検査手法を設定する機能を有する(設定部)。ここでは、CPU21は、第1のEDC検査手法を設定されなかったデータブロック31の全てに第2の検査手法を設定する。
【0060】
また、CPU21は、データブロック31に設定された検査手法(第1の検査手法又は第2の検査手法)を用いて当該データブロック31を検査する機能を有する(検査部)。
【0061】
たとえば、CPU21は、所定のデータブロック31に第1の検査手法が設定されている場合、当該データブロックを第1の検査手法を用いて検査する。たとえば、CPU21は、当該データブロック31から第1の検査手法に従って第1のEDCを演算する。CPU21は、演算された第1のEDCと、記憶領域24aにおいて当該データブロック31に対応する第1のEDC32とを比較する。CPU21は、両者が一致すれば当該データブロック31に破損又は改ざんがないと判定する。また、CPU21は、両者が一致しなければ、当該データブロック31に破損又は改ざんがあると判定する。
【0062】
また、CPU21は、所定のデータブロック31に第2の検査手法が設定されている場合、当該データブロックを第2の検査手法を用いて検査する。たとえば、CPU21は、当該データブロック31から第2の検査手法に従って第2のEDCを演算する。CPU21は、演算された第2のEDCと、記憶領域24aにおいて当該データブロック31に対応する第2のEDC33とを比較する。CPU21は、両者が一致すれば当該データブロック31に破損又は改ざんがないと判定する。また、CPU21は、両者が一致しなければ、当該データブロック31に破損又は改ざんがあると判定する。
【0063】
次に、CPU21による自己診断処理の第1の動作例について説明する。
図4は、CPU21が自己診断処理の第1の動作例について説明するためのフローチャートである。
【0064】
第1の動作例において、検査済み情報は、直前の自己診断が終了した時点で第1の検査手法を用いて検査された最後の検査済みのデータブロック31を示すものとする。
【0065】
まず、CPU21は、自己診断処理を行うかを判定する(S11)。たとえば、CPU21は、起動直後であるか又は自己診断処理を伴う所定のコマンドを受信したかを判定する。自己診断を行わないと判定すると(S11、NO)、CPU21は、S11へ戻る。
【0066】
自己診断を行うと判定すると(S11、YES)、CPU21は、記憶領域24bから検査済み情報を取得する(S12)。検査済み情報を取得すると、CPU21は、検査済み情報が示す最後の検査済みのデータブロックの次のデータブロック31から順にM個のデータブロック31に第1の検査手法を設定する(S13)
第1の検査手法を設定すると、CPU21は、他のデータブロックに第2の検査手法を設定する(S14)。第2の検査手法を設定すると、CPU21は、iをリセットする(i=0にする)(S15)
iをリセットすると、CPU21は、iをインクリメントする(i=i+1とする)(S16)。iをインクリメントすると、CPU21は、i個目のデータブロック31を、当該データブロック31に設定された検査手法に従って検査する(S17)
当該データブロック31に破損又は改ざんがないと判定すると(S18、NO)、CPU21は、すべてのデータブロック31を検査したか(即ち、i=Nであるか)判定する(S19)。
【0067】
すべてのデータブロック31を検査していないと判定すると(S19、NO)、CPU21は、S16に戻る。
【0068】
すべてのデータブロック31を検査したと判定すると(S19、YES)、CPU21は、検査済み情報を更新する(S20)。即ち、CPU21は、S13で第1の検査手法を設定された最後のデータブロック31を示す情報に検査済み情報を更新する。また、すべてのデータブロックが検査済みである場合、CPU21は、いずれのデータブロック31も未検査であることを示す情報に検査済み情報を更新する。
【0069】
当該データブロック31に破損又は改ざんがあると判定すると(S18、YES)、CPU21は、当該データブロック31に破損又は改ざんがあること、又は、自己診断に失敗したことなどを示すエラー情報を、通信部25を通じて、ICカード処理装置1へ送信する(S21)。
【0070】
検査済み情報を更新した場合(S20)、又は、エラー情報を送信した場合(S21)、CPU21は、動作を終了する。
【0071】
次に、CPU21による自己診断処理の第2の動作例について説明する。
図5は、CPU21による自己診断処理の第2の動作例について説明するためのフローチャートである。
【0072】
第2の動作例において、検査済み情報は、データブロック31ごとに、直前の自己診断処理が終了した時点で第1の検査手法を用いて検査されたか否かを示すフラグを格納するものとする。
【0073】
S11、S12、S15乃至S19、及び、S21については、
図4のそれらと同様であるため説明を省略する。
【0074】
検査済み情報を取得すると(S12)、CPU21は、未検査であることを示す値(たとえば、「0」)がセットされたフラグに対応するデータブロック31からランダムにM個のデータブロックを選択する(S31)。
【0075】
データブロック31を選択すると、CPU21は、選択されたM個のデータブロック31に第1の検査手法を設定する(S32)。第1の検査手法を設定すると、CPU21は、他のデータブロックに第2の検査手法を設定する(S33)。第2の検査手法を設定すると、CPU21は、S15に進む。
【0076】
すべてのデータブロック31を検査したと判定すると(S19、YES)、CPU21は、検査済み情報を更新する(S34)。即ち、CPU21は、S13で第1の検査手法を設定された各データブロック31に対応するフラグに、検査済みであることを示す値(たとえば、「1」)をセットする。また、すべてのデータブロック31が検査済みである場合には、CPU21は、すべてのフラグに、未検査であることを示す値(たとえば、「0」)をセットする。
【0077】
検査済み情報を更新すると、CPU21は、動作を終了する。
【0078】
なお、CPU21は、3つ以上の検査手法を用いてデータブロック31を検査してもよい。たとえば、記憶領域24aは、各データブロック31に対して3つ以上のEDCを格納してもよい。
【0079】
また、CPU21は、一度の自己診断処理において、全てのデータブロック31を検査しなくともよい。たとえば、CPU21は、次の自己診断処理において、前回検査されたデータブロック31から検査を開始してもよい。
【0080】
また、CPU21は、データブロック31に対して、第2の検査手法を設定しなくともよい。たとえば、CPU21は、検査手法が設定されていないデータブロック31を、第1の検査手法以外の検査手法(たとえば、第2の検査手法)を用いて検査してもよい。
【0081】
以上のように構成されたICカードは、自己診断の対象となるデータを複数個のデータブロックに分割する。ICカードは、いくつかのデータブロックを、信頼性の高い検査手法を用いて検査することができる。また、ICカードは、他のブロックを、高速な検査手法を用いて検査することができる。従って、ICカードは、所定の時間内に自己診断を終了することができる。
【0082】
また、ICカードは、直前の自己診断までに信頼性の高い検査手法を用いて検査していないデータブロックを、信頼性の高い検査手法を用いて検査することができる。その結果、ICカードは、所定の回数自己診断を実行すると、すべてのデータブロックを、信頼性の高い検査手法を用いて検査することができる。したがって、ICカードは、速度と信頼性とを両立した自己診断を実現することができる。
【0083】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
以下に本件出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
複数個のデータブロックを格納する第1の記憶部と、
第1の検査手法により検査済みのデータブロックを示す検査済み情報を格納する第2の記憶部と、
前記検査済み情報に基づいて、前記第1の検査手法により検査されていないデータブロックの少なくとも1つに前記第1の検査手法を設定し、それ以外のデータブロックの少なくとも1つに第1の検査手法とは異なる第2の検査手法を設定する設定部と、
前記設定部により各データブロックに設定された検査手法を用いて各データブロックを検査する検査部と、
を備えるICカード。
[C2]
前記設定部は、前記検査済み情報に基づいて、前記第1の検査手法による前記検査済みのデータブロックに前記第2の検査手法を設定する、
前記C1に記載のICカード。
[C3]
前記第1の検査手法は、前記第2の検査手法よりも処理時間が長い、
前記C1又は2に記載のICカード。
[C4]
前記第1の検査手法は、巡回冗長検査を演算して検査する手法である、
前記C3に記載のICカード。
[C5]
前記第2の検査手法は、排他的論理和を演算して検査する手法である、
前記C3又は4の何れかに記載のICカード。
[C6]
前記検査済み情報は、最後の検査済みのデータブロックを示し、
前記設定部は、前記最後の検査済みのデータブロックの次のデータブロックから所定の個数のデータブロックに前記第1の検査手法を設定する、
前記C1乃至5の何れか1項に記載のICカード。
[C7]
前記検査済み情報は、データブロックごとに、前記第1の検査手法で検査されたかを示し、
前記設定部は、前記第1の検査手法による検査されていない前記データブロックから選択された所定の個数のデータブロックに前記第1の検査手法を設定する、
前記C1乃至5の何れか1項に記載のICカード。
[C8]
さらに、前記各データブロックに対応する前記第1の検査手法による検査に用いるEDCを格納する第3の記憶部を有し、
前記検査部は、前記データブロックのデータに対して前記第1の検査手法を用いて演算するEDCと、前記第3の記憶部が格納する前記EDCとを比較して、前記データブロックを検査する、
前記C1乃至7の何れか1項に記載のICカード。
[C9]
複数個のデータブロックを格納する第1の記憶部と、第1の検査手法により検査済みのデータブロックを示す検査済み情報を格納する第2の記憶部と、前記検査済み情報に基づいて、前記第1の検査手法により検査されていないデータブロックの少なくとも1つに前記第1の検査手法を設定し、それ以外のデータブロックの少なくとも1つに第1の検査手法とは異なる第2の検査手法を設定する設定部と、前記設定部により各データブロックに設定された検査手法を用いて各データブロックを検査する検査部と、を備えるモジュールと、
前記モジュールを内蔵した本体と、
を備えるICカード。
[C10]
複数個のデータブロックを格納する第1の記憶部と、
第1の検査手法により検査済みのデータブロックを示す検査済み情報を格納する第2の記憶部と、
前記検査済み情報に基づいて、前記第1の検査手法により検査されていないデータブロックの少なくとも1つに前記第1の検査手法を設定し、それ以外のデータブロックの少なくとも1つに第1の検査手法とは異なる第2の検査手法を設定する設定部と、
前記設定部により各データブロックに設定された検査手法を用いて各データブロックを検査する検査部と、
を備える携帯可能電子装置。