(57)【要約】      （修正有）【課題】効率よく、かつ迅速に記憶領域に記憶されたデータの正当性を確認することができるＩＣチップ、データ読出し方法、データ読出しプログラム及び記録媒体等を提供する。【解決手段】ＣＰＵは、ＥＥＰＲＯＭ等に記憶された検証値１２ａを含むデータＡ１２等が複数集合したデータ群１１に対して、データ群１１についての検証値１１aを生成し、記憶する。そして、データ群１１の何れかのデータが読み出される際に、データ群１１についての検証値を新たに生成し、前記記憶されたデータ群検証値１１aと比較することにより、データ群１１の正当性について検証する。【選択図】図２
2010055549.tif 000002
【特許請求の範囲】
【請求項１】
検証値を含むデータが複数集合したデータ群が記憶される記憶部を有するＩＣチップにおいて、
前記データ群についての検証値を生成する検証値生成手段と、
前記生成された検証値を記憶する記憶手段と、
前記データ群の正当性について検証する検証手段とを備え、
前記データ群のうち何れかの前記データが読み出される際に、
前記検証値生成手段は前記データ群についての検証値を新たに生成し、
前記検証手段は、前記記憶された検証値と前記新たに生成された検証値を比較することにより、前記データ群の正当性について検証することを特徴とするＩＣチップ。
【請求項２】
請求項１に記載のＩＣチップにおいて、
前記データ群の正当性が無いと判断された場合には、
前記検証手段は、読み出す対象となる前記データまでに配列される各データの正当性について検証を行うことを特徴とするＩＣチップ。
【請求項３】
請求項１又は２に記載のＩＣチップにおいて、
前記データ群の正当性があると判断された場合には、
読み出す対象となる前記データまでに配列される各データの正当性について検証せずに前記データを読み出すことを特徴とするＩＣチップ。
【請求項４】
請求項１に記載のＩＣチップにおいて、
前記データは全て同一の大きさであり、
前記データ群の正当性がないと判断された場合であっても、
前記検証手段は、前記読み出す対象となるデータの正当性のみについて検証を行うことを特徴とするＩＣチップ。
【請求項５】
請求項１に記載のＩＣチップにおいて、
前記データ群には同一の大きさのデータが少なくとも２以上含まれ、
前記検証手段は、前記読み出す対象となるデータまでに前記同一の大きさのデータが配列される場合には、前記同一の大きさのデータの正当性について検証しないことを特徴とするＩＣチップ。
【請求項６】
検証値を含むデータが複数集合するデータ群が記憶される記憶部を有するＩＣチップにおけるデータ読出し方法において、
前記データ群についての検証値を生成する検証値生成工程と、
前記生成された検証値を記憶する記憶工程と、
前記データ群の正当性について検証する検証工程とを有し、
前記データ群のうち何れかの前記データが読み出される際に、
前記検証値生成工程は前記データ群についての検証値を新たに生成し、
前記検証工程は、前記記憶された検証値と前記新たに生成された検証値を比較することにより、前記データ群の正当性について検証することを特徴とするＩＣチップにおけるデータ読出し方法。
【請求項７】
検証値を含むデータが複数集合するデータ群が記憶される記憶部を有するＩＣチップ含まれるコンピュータを、
前記データ群についての検証値を生成する検証値生成手段、
前記生成された検証値を記憶する記憶手段、
前記データ群の正当性について検証する検証手段とを備え、
前記コンピュータによって、前記データ群のうち何れかの前記データが読み出される際に、
前記検証値生成手段は前記データ群についての検証値を新たに生成し、
前記検証手段は、前記記憶された検証値と前記新たに生成された検証値を比較することにより、前記データ群の正当性について検証することを特徴とするデータ読出しプログラム。
【請求項８】
請求項７に記載のデータ記憶プログラムがコンピュータ読み取り可能に記録されていることを特徴とする記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＣチップ、データ読出し方法及びデータ読出しプログラム等に関するものであり、より詳しくは、不揮発性メモリに記憶されたデータを読み出す方法等に関する。
【背景技術】
【０００２】
近年、ＩＣカード等に代表される携帯型情報記録媒体は、様々な分野で利用されており、そこでは、極めて重要な情報が取り扱われるようになっている。例えば、電子マネー機能を有する非接触型ＩＣカードは、商品等売買における決算手段として利用されており、顧客の有する資産に関する情報が取り扱われている。また、金融機関が提供するキャッシュカードとしての非接触型ＩＣカードは、顧客の特定及びサービスの提供手段として利用されており、そこでは、顧客の住所、生年月日等の個人情報と顧客の資産についての情報が取り扱われている。
【０００３】
従って、ＩＣカードに記憶されている情報に対しては、取引の安全性確保の観点から、正当性が確保されている必要があり、これらの情報を読み出す際に右正当性を確認する手段を備えることが必要となっている。
【０００４】
特許文献１では、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read Only Memory）を採用した記憶装置の記憶領域に、予め記録用ＥＥＰＲＯＭと予備用ＥＥＰＲＯＭを用意し、データの書込み時に、書込みエラーが生じた際に予備用ＥＥＰＲＯＭにデータを記憶する発明が開示されている。
【０００５】
また、特許文献２では、ＥＥＰＲＯＭから構成される記憶領域内に、複数のレコードから構成される一つのファイルデータを、ファイルデータについてのレコード数の情報を含み、さらに、所定のセクタ長を定義し、各レコードをセクタ長を一区切りとするセクタデータに分割し、１レコード内におけるこのセクタデータ同士の連結情報を含んだ制御データを作成し、セクタデータ及び制御データに基づいて所定のエラーチェックコードを付加してなる単位データを、前記記憶領域内に記録しておき、各単位データを読み出した際に、前記エラーチェックコードに基づく第一のエラーチェックを行うとともに、読み出した各単位データから夫々制御データを抽出し、この制御データ内の連結情報に基づいて、記録領域内に記録されているファイルデータのレコード数とを比較し、不一致が生じた場合にデータの記録にエラーが生じていると認識する第２のエラーチェックを行い、当該ファイルの正当性を確認する発明が開示されている。
【特許文献１】特開平３−２５７９８号公報
【特許文献２】特開平４−１６５４８７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、特許文献１に記載の発明では、書込みエラーを回避することは出来ても、データを読み込む際に問題が生じた場合には対応することができなかった。
【０００７】
また、特許文献２に記載の発明では、読み出す対象とするデータ全てに対して、個々にエラーチェックを行う必要があり、データの処理を行うＣＰＵ(Central Processing Unit)に過度な付加を掛け、処理速度の低下等の問題が生じていた。
【０００８】
そこで、本発明は上記各問題点に鑑みてなされたもので、その目的の一例は、効率よく、かつ迅速に記憶領域に記憶されたデータの正当性を確認することができるＩＣチップ、データ読出し方法、データ読出しプログラム及び記録媒体等を提供することである。
【課題を解決するための手段】
【０００９】
上記の課題を解決するために、請求項１に記載のＩＣチップは、検証値を含むデータが複数集合したデータ群が記憶される記憶部を有するＩＣチップにおいて、前記データ群についての検証値を生成する検証値生成手段と、前記生成された検証値を記憶する記憶手段と、前記データ群の正当性について検証する検証手段とを備え、前記データ群のうち何れかの前記データが読み出される際に、前記検証値生成手段は前記データ群についての検証値を新たに生成し、前記検証手段は、前記記憶された検証値と前記新たに生成された検証値を比較することにより、前記データ群の正当性について検証することを特徴とする。
【００１０】
この発明によれば、検証値を含むデータが複数集合したデータ群が記憶される記憶部を有するＩＣチップにおいて、予め、前記データ群についての検証値が記憶されており、前記データ群のうち何れかの前記データが読み出される際に、前記データ群の正当性について検証することができる。
【００１１】
従って、読み出す対象となるデータの正当性を確認する前に、データ群全体に対する正当性の確認をすることができるため、効率よく、かつ迅速に記憶領域に記憶されたデータの正当性を確認することができる。
【００１２】
請求項２に記載のＩＣチップは、請求項１に記載のＩＣチップにおいて、前記データ群の正当性が無いと判断された場合には、前記検証手段は、読み出す対象となる前記データまでに配列される各データの正当性について検証を行うことを特徴とする。
【００１３】
従って、必要に応じて読み出す対象となるデータの正当性を確認するため、効率よく、かつ迅速に記憶領域に記憶されたデータの正当性を確認することができる。
【００１４】
請求項３に記載のＩＣチップは、請求項１又は２に記載のＩＣチップにおいて、前記データ群の正当性があると判断された場合には、読み出す対象となる前記データまでに配列される各データの正当性について検証せずに前記データを読み出すことを特徴とする。
【００１５】
従って、必要に応じて読み出す対象となるデータの正当性を確認するため、効率よく、かつ迅速に記憶領域に記憶されたデータの正当性を確認することができる。
【００１６】
請求項４に記載のＩＣチップは、請求項１に記載のＩＣチップにおいて、前記データは全て同一の大きさであり、前記データ群の正当性がないと判断された場合であっても、前記検証手段は、前記読み出す対象となるデータの正当性のみについて検証を行うことを特徴とする。
【００１７】
従って、読み出す対象となるデータの正当性のみについて検証を行うため、効率よく、かつ迅速に記憶領域に記憶されたデータの正当性を確認することができる。
【００１８】
請求項５に記載のＩＣチップは、請求項1に記載のＩＣチップにおいて、前記データ群には同一の大きさのデータが少なくとも２以上含まれ、前記検証手段は、前記読み出す対象となるデータまでに前記同一の大きさのデータが配列される場合には、前記同一の大きさのデータの正当性について検証しないことを特徴とする。
【００１９】
従って、必要最小限のデータのみについて正当性の検証を行うため、効率よく、かつ迅速に記憶領域に記憶されたデータの正当性を確認することができる。
【００２０】
請求項６に記載のデータ読出し方法は、検証値を含むデータが複数集合するデータ群が記憶される記憶部を有するＩＣチップにおけるデータ読出し方法において、前記データ群についての検証値を生成する検証値生成工程と、前記生成された検証値を記憶する記憶工程と、前記データ群の正当性について検証する検証工程とを有し、前記データ群のうち何れかの前記データが読み出される際に、前記検証値生成工程は前記データ群についての検証値を新たに生成し、前記検証工程は、前記記憶された検証値と前記新たに生成された検証値を比較することにより、前記データ群の正当性について検証することを特徴とする。
【００２１】
請求項７に記載のデータ読出しプログラムは、検証値を含むデータが複数集合するデータ群が記憶される記憶部を有するＩＣチップ含まれるコンピュータを、前記データ群についての検証値を生成する検証値生成手段、前記生成された検証値を記憶する記憶手段、前記データ群の正当性について検証する検証手段とを備え、前記コンピュータによって、前記データ群のうち何れかの前記データが読み出される際に、前記検証値生成手段は前記データ群についての検証値を新たに生成し、前記検証手段は、前記記憶された検証値と前記新たに生成された検証値を比較することにより、前記データ群の正当性について検証することを特徴とする。
【発明の効果】
【００２２】
以上のように、本発明によれば、検証値を含むデータが複数集合したデータ群が記憶される記憶部を有するＩＣチップにおいて、予め、前記データ群についての検証値が記憶されており、前記データ群のうち何れかの前記データが読み出される際に、読み出す対象となるデータの正当性を確認する前に、データ群全体に対する正当性の確認をすることができるため、効率よく、かつ迅速に記憶領域に記憶されたデータの正当性を確認することができる。
【発明を実施するための最良の形態】
【００２３】
以下、本願の最良の実施形態を添付図面に基づいて説明する。なお、以下に説明する実施の形態は、ＩＣチップに対して本願を適用した場合の実施形態である。
【００２４】
先ず、本実施形態に係るＩＣチップの構成及び機能概要について、図１を用いて説明する。なお、これらＩＣチップは、ＩＣカードや携帯型情報記憶装置等に搭載され、データの送受信等を実現する。
【００２５】
図１は、ＩＣチップの全体構成例を示すブロック図である。図１に示すように、ＩＣチップＳは、Ｉ／Ｏ（input/output）インターフェース１、ＲＯＭ(Read Only Memory)２、ＲＡＭ(Random Access Memory)３、ＥＥＰＲＯＭ４、ＣＰＵ(Central Processing Unit)５等を備えて構成されている。
【００２６】
Ｉ／Ｏインターフェース１は、データを送受信するための入出力回路であり、ＣＰＵ５は、このＩ／Ｏインターフェース１を介して図示しないリーダライタ装置等と交信する。ＲＯＭ２内には、ＣＰＵ５によって実行されるべきプログラムが記憶されており、ＣＰＵ５は、このプログラムに基づいてＩＣチップＳを統括的に制御する。ＲＡＭ３は、ＣＰＵ５がＩＣチップを統括的に制御するために作業領域として使用するメモリである。
【００２７】
ＥＥＰＲＯＭ４は、不揮発性半導体メモリの一種であり、記憶領域に記憶されているデータを消去し、何度でも再記憶ができるＰＲＯＭ(Programmable Rom)である。ＥＥＰＲＯＭ４は、データを記憶する記憶回数に制限があり、通常は、１０万回程度の消去、記憶のサイクルが保証されている。
【００２８】
本実施形態では、ＥＥＰＲＯＭ４に換えて、フラッシュメモリを用いることもできる。フラッシュメモリは、不揮発性半導体メモリの一種であり、オンボード状態で電気的にデータを書き換えることができることを特徴としている。
【００２９】
さらに、本実施形態では、ＥＥＰＲＯＭ４に換えて、記憶回数に制限が無い、磁性体であるＴＭＲ（Tunnel Magneto Resistance）素子を用いたＭＲＡＭ(Magnetoresistive Random Access Memory)等を適用することも可能である。
【００３０】
さらに、ＥＥＰＲＯＭ４は、本願の記憶部として機能し、ＩＣチップＳに記録すべきデータを格納（記憶）する。
【００３１】
ＣＰＵ５は、上述したようにＩＣチップＳ全体の動作を統括的に制御するとともに、本願の検証値生成手段、記憶手段、及び検証手段として機能する。
【００３２】
次に、本実施形態に係るＥＥＰＲＯＭ４内の記憶領域に記憶されるデータ構造を、図２を用いて説明する。
【００３３】
図２〜４は、ＥＥＰＲＯＭ４内の記憶領域に記憶されるデータ構造の一例を示す概念図である。
【００３４】
図２は、異なる大きさのデータが複数集合した場合のデータ構造を示す概念図である。
ここで、データの大きさとは、例えばデータサイズであり、単位としてバイト（byte）等で表される。
【００３５】
図２に示すように、ＥＥＰＲＯＭ４内の記憶領域には、データ等の集合としてのデータ群１１と、データ群１１に属するデータとしてのデータＡ（１２）、データＢ（１３）、データＣ（１４）及びデータＤ（１５）の４つのデータが記憶されている。ここで、データＡ（１２）乃至データＤ（１５）の大きさは夫々異なっている。
【００３６】
また、各データには、検証値が付加されており、各データ及び各データに対応する各検証値の集合体が、データ群１１として記憶されている。データＡ（１２）にはデータＡの検証値（１２ａ）が、データＢ（１３）にはデータＢの検証値１３ａが、データＣ（１４）にはデータＣの検証値１４ａが、データＤ１５にはデータＤの検証値（１５ａ）が、夫々付加されている。そして、データ群１１の検証値として、データ群１１の検証値１１aが付加されている。
【００３７】
一般に、記憶装置等に記憶されるデータは、ユーザの管理下におかれ、ユーザが認識しうる範囲内で、当該データの処理（例えば、データの読出し及び変更等）が行われる。しかし、ユーザが意図しない不正な改竄等によって、そのデータの内容が変更され、データの正当性が損なわれてしまう場合がある。このような第三者の不正行為の事実を特定することは、一般的に極めて困難である。
【００３８】
そこで、検証値を付与することにより、上記第三者によるデータの不正な改竄等が行われたことを、認識することができる。検証値の一例として、ＣＲＣがある。
【００３９】
ＣＲＣとは、巡回冗長検査（Cyclic Redundancy Check）の略であり、データの誤りを検出する（データの正当性を検証する）仕組みである。ＣＲＣによる誤り検出では、まず、データから検証値の一例として、ＣＲＣコードを生成する。
【００４０】
ＣＲＣコードは、同一のデータからは必ず同一のＣＲＣコードが生成され、例えば、1バイトでもデータが異なると全く別のＣＲＣコードが生成されるという特徴を持つ。この特徴を利用し、データの正当性について検証するようになっている。
【００４１】
さらに具体的には、まず、データの保存時に当該データからＣＲＣコードを生成し、当該データと共に記憶装置等に記憶する。そして、ユーザが当該データを読み出す際に、新たに当該データからＣＲＣコードを生成し、先に生成され保存された当該データのＣＲＣコードと、読出し時に生成されたＣＲＣコードを夫々比較する。
【００４２】
そして、これら２つのＣＲＣコードを比較し、相互のＣＲＣコードが一致する場合には、上述したＣＲＣコードの特徴から、先に保存されたデータと読出し時に読み出されるデータは同一であることを示している。従って、当該データは、保存中にユーザが意図しない不正な改竄等によってそのデータの内容が変更されず、当該データは正当であることを確認することができる。
【００４３】
一方、相互のＣＲＣコードが一致しない場合には、先に保存されたデータと読出し時に読み出されるデータは異なることを示している。従って、当該データは、保存中にユーザが意図しない不正な改竄等によってそのデータの内容が変更された可能性があり、当該データは正当でないことを確認することができる。
【００４４】
本実施形態では、ＣＲＣコードを用いてデータの正当性について検証するようになっているが、詳しくは後述する。また、ＣＲＣコードは公知の技術であるため、より詳しい説明は省略する。
【００４５】
図３は、同一の大きさのデータが複数集合した場合のデータ構造を示す概念図である。
【００４６】
図３に示すように、ＥＥＰＲＯＭ４内の記憶領域には、データ等の集合としてのデータ群２１と、データ群２１に属するデータとしてのデータＡ（２２）、データＢ（２３）、データＣ（２４）及びデータＤ（２５）の４つのデータが記憶されている。ここで、データＡ（２２）乃至データＤ（２５）の大きさ（データサイズであり、例えば、ｂｙｔｅ等で表される）は全て同一である。
【００４７】
また、図２に示すデータ構造と同様に、データ群にはデータ群の検証値２1ａが、各データには各データの検証値２２ａ乃至２５ａが夫々付加されている。
【００４８】
図４は、同一の大きさのデータと異なる大きさのデータが複数集合した場合のデータ構造を示す概念図である。
【００４９】
図４に示すように、ＥＥＰＲＯＭ４内の記憶領域には、データ等の集合としてのデータ群３１と、データ群３１に属するデータとしてのデータＡ（３２）、データＢ（３３）、データＣ（３４）及びデータＤ（３５）の４つのデータが記憶されている。ここで、データＡ（３２）及びデータＢ（３３）の大きさは同一であり、データＣ（３４）及びデータＤ（３５）のデータの大きさは他のデータの大きさと異なっている。
【００５０】
また、図２及び図３に示すデータ構造と同様に、データ群にはデータ群の検証値３1ａが、各データには各データの検証値３２ａ乃至３５ａが夫々付加されている。
【００５１】
次に、図５〜図８を用いて、ＩＣチップＳの動作を説明する。
【００５２】
本実施形態のICチップＳに含まれるＣＰＵ５は、ＥＥＰＲＯＭ４等に記憶された検証値１１a（例えば、上述したＣＲＣコード）を含むデータ等（例えば、データＡ１２等）が複数集合したデータ群１１に対して、データ群１１についての検証値１１aを生成し、記憶する。そして、データ群１１の何れかのデータが読み出される際に、データ群１１の正当性について検証するようになっている。
【００５３】
以下に上記動作を、データ構造の種類に分けて詳細に説明する。
【００５４】
［１．異なる大きさのデータが複数集合した場合のデータ構造におけるＩＣチップの動作］
先ず始めに、異なる大きさのデータが複数集合した場合のデータ構造（例えば、図２）におけるＩＣチップの動作を説明する。
【００５５】
図５は、異なる大きさのデータが複数集合した場合のデータ構造におけるＩＣチップの動作を示すフローチャートである。
【００５６】
まず、ＥＥＰＲＯＭ４にデータ群の検証値と共に記憶されたデータを読込む場合には（例えば、図２において、データ群１１のデータＤ（１５）の読込み指示等）、ＣＰＵ５は、データＤ（１５）の値取得を開始する。
【００５７】
続いて、ＣＰＵ５は、データＤ（１５）が属するデータ群の検証値１１aが正しいか否かを検証する（ステップＳ１）。具体的には、まず、検証値生成手段としてのＣＰＵ５は、データ群１１の検証値を新たに生成する。そして、検証手段としてのＣＰＵ５は、先に記憶されているデータ群の検証値１１aと新たに生成したデータ群１１の検証値を比較することにより、データ群の検証値が正しいか否かを検証するようになっている。
【００５８】
データ群の検証値１１aが正しい場合には（ステップＳ１：ＹＥＳ）、ＣＰＵ５は他のデータの正当性について検証することなく、データＤ１５のデータを読込む、すなわち、データＤ１５の値を取得するために、各データへのオフセットを算出するようになっている。
【００５９】
具体的には、まず、データＡ（１２）の情報からデータＢ（１３）へのオフセット算出を行い（ステップＳ２）、データＢ（１３）の情報からデータＣ（１４）へのオフセット算出を行い（ステップＳ３）、データＣ（１４）の情報からデータＤ（１５）へのオフセット算出を行い（ステップＳ４）、データＤ（１５）の値を取得出し処理を終了する。
【００６０】
一方、データ群の検証値１１aが正しくない場合には（ステップＳ１：ＮＯ）、データ群１１に属するデータ（データＡ（１２）等）に対して、ユーザが意図しない不正な改竄等によって、そのデータの内容が変更された可能性がある。従って、ＣＰＵ５は、データ群１１に属する個々のデータについて、データの正当性を検証するようになっている。
【００６１】
具体的には、まず、ＣＰＵ５は、データＡの検証値（１２a）が正しいか否かを検証する（ステップＳ１０）。具体的には、上述したように、ＣＰＵ５は、データＡ（１２）の検証値を新たに生成し、先に記憶されているデータＡの検証値１２ａと新たに生成したデータＡの検証値を比較する。
【００６２】
そして、データＡの検証値１２aが正しい場合には（ステップＳ１０：ＹＥＳ）、ＣＰＵ５は、次に記憶されているデータＢ（１３）のアドレスを算出するために、データＡ（１２）の情報からデータＢ（１３）へのオフセット算出をおこなう（ステップＳ１１）。
【００６３】
一方、データＡの検証値１２ａが正しくない場合には（ステップＳ１０：ＮＯ）、ユーザが意図しない不正な改竄等によって、そのデータの内容が変更された可能性があるため、エラー処理として、処理を終了する。
【００６４】
次に、ＣＰＵ５は、データＢの検証値（１３ａ）が正しいか否かを検証する（ステップＳ１２）。検証する方法については上述したとおりである。そして、データＢの検証値１３ｂが正しい場合には（ステップＳ１２：ＹＥＳ）、ＣＰＵ５は、次に記憶されているデータＣ（１４）のアドレスを算出するために、データＢ（１３）の情報からデータＣ（１４）のアドレスを算出するようになっている（ステップＳ１３）。
【００６５】
一方、データＢの検証値１２ａが正しくない場合には（ステップＳ１２：ＮＯ）、エラー処理として、処理を終了する。
【００６６】
次に、ＣＰＵ５は、データＣの検証値（１４ａ）が正しいか否かを検証する（ステップＳ１４）。検証する方法については上述したとおりである。そして、データＣの検証値１３aが正しい場合には（ステップＳ１４：ＹＥＳ）、ＣＰＵ５は、次に記憶されているデータＤ（１４）のアドレスを算出するために、データＣ（１４）の情報からデータＤ（１５）のオフセットを算出する（ステップＳ１５）。
【００６７】
一方、データＣの検証値１４ａが正しくない場合には（ステップＳ１４：ＮＯ）、エラー処理として、処理を終了する。
【００６８】
次に、ＣＰＵ５は、データＤの検証値１５aが正しいか否かを検証する（ステップＳ１６）。そして、データＤの検証値１５aが正しい場合には（ステップＳ１６：ＹＥＳ）、データＤ（１５）の値を取得出し処理を終了する。
【００６９】
一方、データＤの検証値１５aが正しくない場合には（ステップＳ１６：ＮＯ）、エラー処理として、処理を終了する。
【００７０】
［２．同一の大きさのデータが複数集合した場合のデータ構造におけるＩＣチップの動作］
次に、同一の大きさのデータが複数集合した場合のデータ構造におけるＩＣチップの動作を説明する。
【００７１】
図６は、同一の大きさのデータが複数集合した場合のデータ構造（例えば、図３）におけるＩＣチップの動作を示すフローチャートである。
【００７２】
まず、ＥＥＰＲＯＭ４にデータ群の検証値と共に記憶されたデータを読込む場合には（例えば、図３において、データ群３１のデータＤ（２５）の読込み指示等）、ＣＰＵ５は、データＤ（２５）の値取得を開始する。
【００７３】
具体的には、先ず、ＣＰＵ５は、データＤ（２５）へのオフセット値を算出する（ステップＳ２１）。図３に示すように、各データ（データＡ（２２）等）の大きさは同一であり、ＣＰＵ５の指令によって、例えば、ＲＡＭ３等に各データの大きさが保持（記憶）されている。
【００７４】
従って、任意のデータを読込む場合には、任意のデータの順番（データ番号）が指示されることにより、各データの大きさは既知であるため、任意のデータまでのオフセットを直接的に求めることができる。
【００７５】
換言すれば、システムが各データの大きさ（固定長）を保持しているため、読み出す対象のデータに達するまでに存在するデータの数に、各データの大きさを乗ずることにより、取得対象までのオフセットが求まることとなる。従って、読み出す対象のデータまでに存在するデータの情報からオフセットの算出をする必要がない。
【００７６】
図６の説明に戻り、次に、ＣＰＵ５は、データＤ（２５）が属するデータ群の検証値２１aが正しいか否かを検証する（ステップＳ２１）。具体的には、上述したように、検証値生成手段としてのＣＰＵ５は、データ群２１の検証値を新たに生成する。そして、検証手段としてのＣＰＵ５は、先に記憶されているデータ群の検証値２１aと新たに生成したデータ群２１の検証値とを比較することにより、データ群の検証値が正しいか否か検証するようになっている。
【００７７】
この場合、上述したようにＣＰＵ５は、読み出す対象のデータまでのデータの情報からオフセットの算出をする必要が無いため、前記読み出す対象となるデータの正当性のみについて検証を行えばよい。
【００７８】
そして、データ群の検証値２１aが正しい場合には（ステップＳ２２：ＹＥＳ）、ＣＰＵ５は、データＤ（１５）の値を取得出し処理を終了する。
【００７９】
一方、データ群の検証値２１ａが正しくない場合には（ステップＳ２２：ＮＯ）、データＤの検証値（２５a）が正しいか否かを検証する（ステップ３１）。
【００８０】
この場合、データ群２１に属する各データ（データＡ（２２）等）に対して、ユーザが意図しない不正な改竄等によって、そのデータの内容が変更された可能性がある。また、システムは各データの大きさを保持しているため、読込む対象であるデータＤ（２５）までのオフセットを直接的に求めることができる。従って、ＣＰＵ５は、データＤの正当性を検証するようになっている。
【００８１】
そして、データＤの検証値（２５a）が正しい場合には（ステップＳ３１：ＹＥＳ）、データＤ（２５）の値を取得出し処理を終了する。
【００８２】
一方、データＤの検証値（２５a）が正しくない場合には（ステップＳ３１：ＮＯ）、エラー処理として、処理を終了する。
【００８３】
［３．同一の大きさのデータと異なる大きさのデータが複数集合した場合のデータ構造におけるＩＣチップの動作］
次に、図７及び図８を用いて、同一の大きさのデータと異なる大きさのデータが複数集合した場合のデータ構造（例えば、図４）におけるＩＣチップの動作を説明する。
【００８４】
図４に示すように、同一の大きさのデータと異なる大きさのデータが複数集合した場合のデータ構造では、同一の大きさのデータの集合部分（データＡ（３２）及びデータＢ（３３））と、異なる大きさのデータの集合部分（データＣ（３４）及びデータＤ（３５））とに分類されている。
【００８５】
従って、ＩＣチップの動作は、同一の大きさのデータの集合部分に対する動作と、異なる大きさのデータの集合部分に対する動作とでは異なる動作を示す。
【００８６】
まず、同一の大きさのデータの集合部分に対する動作について説明する。
【００８７】
図７は、同一の大きさのデータと異なる大きさのデータが複数集合した場合のデータ構造において、同一のデータが集合する部分のＩＣチップの動作を示すフローチャートである。
【００８８】
まず、ＥＥＰＲＯＭ４にデータ群の検証値と共に記憶されたデータを読込む場合には（例えば、図５において、データ群３１のデータＢ（３３）の読込み指示等）、ＣＰＵ５は、データＢ（３３）の値取得を開始する。
【００８９】
具体的には、先ず、ＣＰＵ５は、データＢ（３３）へのオフセット値を算出する（ステップＳ４１）。図４に示すように、この場合にはデータＡ（３２）及びデータＢ（３３）の大きさは同一であり、ＣＰＵ５の動作により、上記図６の場合同様、データＢ（３３）に達するまでに存在するデータの数に、各データの大きさを乗ずることにより、取得対象までのオフセットが求まることとなる。従って、ＣＰＵ５は、直接的にデータＢ（３３）へのオフセット値を算出することができる。
【００９０】
図７の説明に戻り、次に、ＣＰＵ５は、データＢ（３３）が属するデータ群の検証値３１aが正しいか否かを検証する（ステップＳ４１）。検証方法については上述した方法と同様であり、具体的には、ＣＰＵ５は、データ群３１の検証値を新たに生成し、ＣＰＵ５はさらに、先に記憶されているデータ群の検証値３１aと新たに生成したデータ群３１の検証値とを比較することにより、データ群の検証値が正しいか否か検証する。
【００９１】
そして、データ群の検証値３１aが正しい場合には（ステップＳ４２：ＹＥＳ）、ＣＰＵ５は、データＢ（３３）の値を取得出し処理を終了する。
【００９２】
一方、データ群の検証値２１ａが正しくない場合には（ステップＳ４２：ＮＯ）、データＢの検証値（３３a）が正しいか否かを検証する（ステップ５１）。
【００９３】
そして、データＢの検証値（３３a）が正しい場合には（ステップＳ５１：ＹＥＳ）、データＢ（３３）の値を取得出し処理を終了する。
【００９４】
一方、データＢの検証値（３３a）が正しくない場合には（ステップＳ５１：ＮＯ）、エラー処理として、処理を終了する。
【００９５】
異なる大きさのデータの集合部分に対する動作について説明する。
【００９６】
図８は、同一の大きさのデータと異なる大きさのデータが複数集合した場合のデータ構造において、異なる大きさのデータが集合する部分のＩＣチップの動作を示すフローチャートである。
【００９７】
まず、ＥＥＰＲＯＭ４にデータ群の検証値と共に記憶されたデータを読込む場合には（例えば、図５において、データ群３１のデータＤ（３５）の読込み指示等）、ＣＰＵ５は、データＤ（３５）の値取得を開始する。
【００９８】
続いて、ＣＰＵ５は、データＣ（３４）へのオフセット値を算出する。上述した通り、データＡ（３２）及びデータＢ（３３）の大きさは同一であり、ＣＰＵ５の動作により、上記図６の場合同様、データＣ（３４）に達するまでに存在するデータの数に、各データの大きさを乗ずることにより、取得対象までのオフセットが求まることとなる。
【００９９】
従って、ＣＰＵ５は、直接的にデータＣ（３４）へのオフセット値を算出することができる。
【０１００】
次に、ＣＰＵ５は、データＤ（３５）が属するデータ群の検証値３１aが正しいか否かを検証する（ステップＳ６１）。検証方法については上述した方法と同様である。
【０１０１】
そして、データ群の検証値３１aが正しい場合には（ステップＳ６２：ＹＥＳ）、ＣＰＵ５は他のデータの正当性について検証することなく、データＤ３５のデータを読込む、すなわち、データＤ３５aの値を取得するために、各データへのオフセットを算出するようになっている。
【０１０２】
具体的には、まず、データＣ（３４）の情報からデータＤ（３５）へのオフセット算出（ステップＳ６３）を行うことにより、データＤ（３５）の値を取得出し処理を終了する。
【０１０３】
一方、データ群の検証値１１aが正しくない場合には（ステップＳ６２：ＮＯ）、ＣＰＵ５は、データＣの検証値３４aが正しいか否かを検証する（ステップＳ７１）。
【０１０４】
具体的には、上述したように、ＣＰＵ５は、データＣ（３４）の検証値を新たに生成し、先に記憶されているデータＣの検証値３４ａと新たに生成したデータＣの検証値を比較する。
【０１０５】
データＣの検証値３４ａが正しくない場合には（ステップＳ７１：ＮＯ）、ユーザが意図しない不正な改竄等によって、そのデータの内容が変更された可能性があるため、エラー処理として、処理を終了する。
【０１０６】
一方、データＣの検証値３４aが正しい場合には（ステップＳ７１：ＹＥＳ）、ＣＰＵ５は、次に記憶されているデータＤ（３５）のアドレスを算出するために、データＣ（３４）の情報からデータＤ（３５）へのオフセット算出を行う（ステップＳ７２）。
【０１０７】
次いで、データＤの検証値３５aが正しいか否かを検証する（ステップＳ７３）。そして、データＤの検証値３５aが正しい場合には（ステップＳ７３：ＹＥＳ）、データＤ（３５）の値を取得出し処理を終了する。
【０１０８】
一方、データＤの検証値３５aが正しくない場合には（ステップＳ７３：ＮＯ）、エラー処理として、処理を終了する。
【０１０９】
以上説明したように、本実施形態においては、ＣＰＵ５は、ＥＥＰＲＯＭ４等に記憶された検証値１１aを含むデータ等が複数集合したデータ群１１に対して、データ群１１についての検証値１１aを生成し、記憶する。そして、データ群１１の何れかのデータが読み出される際に、データ群１１の正当性について検証するようになっている。
【０１１０】
従って、読み出す対象となるデータの正当性を確認する前に、データ群全体に対する正当性の確認をすることができるため、効率よく、かつ迅速に記憶領域に記憶されたデータの正当性を確認することができる。
【０１１１】
また、ＣＰＵ５は、前記データ群の正当性が無いと判断された場合には、読み出す対象となる前記データまでに配列される各データの正当性について検証を行うようになっている。
【０１１２】
従って、必要に応じて読み出す対象となるデータの正当性を確認するため、効率よく、かつ迅速に記憶領域に記憶されたデータの正当性を確認することができる。
【０１１３】
また、ＣＰＵ５は、前記データ群の正当性があると判断された場合には、読み出す対象となる前記データまでに配列される各データの正当性について検証せずに前記データを読み出すようになっている。
【０１１４】
従って、必要に応じて読み出す対象となるデータの正当性を確認するため、効率よく、かつ迅速に記憶領域に記憶されたデータの正当性を確認することができる。
【０１１５】
また、データ１２等が全て同一の大きさであった場合には、ＣＰＵ５は、データ群１１等の正当性がないと判断された場合であっても、ＣＰＵ５は、読み出す対象となるデータの正当性のみについて検証を行うようになっている。
【０１１６】
従って、読み出す対象となるデータの正当性のみについて検証を行うため、効率よく、かつ迅速に記憶領域に記憶されたデータの正当性を確認することができる。
【０１１７】
また、データ群１１等に同一の大きさのデータ１２等が少なくとも２以上含まれている場合には、ＣＰＵ５は、読み出す対象となるデータまでに前記同一の大きさのデータが配列される場合には、前記同一の大きさのデータの正当性について検証しないようになっている。
【０１１８】
従って、必要最小限のデータのみについて正当性の検証を行うため、効率よく、かつ迅速に記憶領域に記憶されたデータの正当性を確認することができる。
【０１１９】
なお、上記実施形態においては、本願をＩＣチップに対して適用した場合の例を示したが、その他にも例えば、パーソナルコンピュータ又は家庭用等の電子機器等に対しても適用可能である。
【図面の簡単な説明】
【０１２０】
【図１】ＩＣチップＳの全体構成例を示すブロック図である。
【図２】異なる大きさ（データサイズ）のデータが複数集合した場合のデータ構造を示す概念図である。
【図３】同一の大きさのデータが複数集合した場合のデータ構造を示す概念図である。
【図４】同一の大きさのデータと異なる大きさのデータが複数集合した場合のデータ構造を示す概念図である。
【図５】異なる大きさのデータが複数集合した場合のデータ構造におけるＩＣチップの動作を示すフローチャートである。
【図６】同一の大きさのデータが複数集合した場合のデータ構造（例えば、図３）におけるＩＣチップの動作を示すフローチャートである。
【図７】同一の大きさのデータと異なる大きさのデータが複数集合した場合のデータ構造において、同一のデータが集合する部分のＩＣチップの動作を示すフローチャートである。
【図８】同一の大きさのデータと異なる大きさのデータが複数集合した場合のデータ構造において、異なる大きさのデータが集合する部分のＩＣチップの動作を示すフローチャートである。
【符号の説明】
【０１２１】
１  Ｉ／Ｏインターフェース
２  ＲＯＭ
３  ＲＡＭ
４  ＥＥＰＲＯＭ
５  ＣＰＵ
Ｓ  ＩＣチップ
【図１】
2010055549.tif 000003
【図２】
2010055549.tif 000004
【図３】
2010055549.tif 000005
【図４】
2010055549.tif 000006
【図５】
2010055549.tif 000007
【図６】
2010055549.tif 000008
【図７】
2010055549.tif 000009
【図８】
2010055549.tif 000010