(57)【特許請求の範囲】
【請求項１】
所定のサービスを提供するためのデータを記憶するデータ記憶装置であって、
前記データを記憶するデータ記憶手段と、
前記データ記憶手段の記憶領域を階層構造にして管理する管理手段と、
前記データ記憶手段の記憶領域の各階層に対する階層キーを記憶する階層キー記憶手段と、
前記データが記憶された前記記憶領域に対するデータ記憶領域キーを記憶するデータ記憶領域キー記憶手段と、
前記記憶領域にアクセスするための認証に用いる１以上の認証キーを生成するための生成用情報に対して、アクセス対象である前記記憶領域の階層よりも上の階層に対する前記階層キーまたはアクセス対象である前記記憶領域に対する前記データ記憶領域キーを予め決められた順序で用いた暗号化により得られる前記認証キーを生成する生成手段と、
生成された前記認証キーを用いて第１の認証処理を実行する認証処理実行手段と
を備えるデータ記憶装置。
【請求項２】
前記外部機器との間で通信を行う通信手段をさらに備え、
前記認証処理実行手段は、さらに、生成された前記認証キーを用いて、第２の認証処理を前記外部機器に実行させる
請求項１に記載のデータ記憶装置。
【請求項３】
前記認証処理実行手段は、前記認証キーを用いて、前記データ記憶装置が適正な通信対象であるか否かを判定し、適正な通信対象であると判定したときに前記データ記憶装置を認証する前記第２の認証処理を前記外部機器に実行させる場合、前記外部機器から送信されてくる送信情報に対して、前記認証キーを用いた第１の変換アルゴリズムを施して得られる第１の変換結果を、前記外部機器に送信する送信処理を実行して、前記第２の認証処理を実行させる
請求項２に記載のデータ記憶装置。
【請求項４】
前記認証処理実行手段は、前記認証キーを用いて、前記外部機器は適正な通信対象であるか否かを判定し、適正な通信対象であると判定したときに前記外部機器を認証する前記第１の認証処理を実行する場合、所定の情報に対して、前記認証キーを用いた第２の変換アルゴリズムを施して得られる第２の変換結果を前記外部機器に送信する送信処理を含む前記第１の認証処理を実行する
請求項３に記載のデータ記憶装置。
【請求項５】
前記外部機器は、前記第２の認証処理を行う際に用いる他の認証キーを予め保持しており、乱数を発生させ、発生させた前記乱数に対して、前記他の認証キーを用いた第３の変換アルゴリズムを施して得られる第３の変換結果を前記送信情報として前記認証処理実行手段に送信し、
前記認証処理実行手段は、前記外部機器から送信されてくる前記送信情報に対して、前記認証キーを用いた前記第１の変換アルゴリズムを施して得られる前記第１の変換結果を、前記外部機器に送信する前記送信処理を実行する
請求項３に記載のデータ記憶装置。
【請求項６】
前記認証処理実行手段は、
前記所定の情報として乱数を発生させ、発生させた前記乱数に対して、前記認証キーを用いた前記第２の変換アルゴリズムを施して得られる前記第２の変換結果を前記外部機器に送信し、
前記第２の変換結果を受信したことに対応して前記外部機器から送信されてくる他の送信情報に対して、前記認証キーを用いた第４の変換アルゴリズムを施して得られる第４の変換結果が、前記乱数と一致するか否かを判定し、
前記第４の変換結果が、前記乱数と一致すると判定した場合、前記外部機器を適正な通信対象として認証する
前記第１の認証処理を実行する
請求項４に記載のデータ記憶装置。
【請求項７】
前記生成手段は、前記認証キーを生成するための生成用情報を、アクセス対象である前記記憶領域の階層までのパス上の階層に対する前記階層キーを順次用いて暗号化することにより、１以上の前記認証キーとしての第１の認証キーを生成する
請求項１に記載のデータ記憶装置。
【請求項８】
前記生成手段は、前記第１の認証キーを、アクセス対象である前記データ記憶領域に対する前記データ記憶領域キーを順次用いて暗号化することにより、前記第１の認証キーとは異なる第２の認証キーを生成する
請求項７に記載のデータ記憶装置。
【請求項９】
前記データ記憶手段、前記階層キー記憶手段、および前記データ記憶領域キー記憶手段は、不揮発性のメモリにより構成されている
請求項１に記載のデータ記憶装置。
【請求項１０】
前記外部機器との間で通信を行う通信手段と、
前記外部機器からの情報に基づいて、前記階層キー記憶手段に記憶されている複数の階層キーのうち、前記認証キーを生成するのに用いる前記階層キーを読み出す第１の読み出し手段と、
前記外部機器からの情報に基づいて、前記データ記憶領域キー記憶手段に記憶されている複数のデータ記憶領域キーのうち、前記認証キーを生成するのに用いる前記データ記憶領域キーを読み出す第２の読み出し手段と
をさらに備え、
前記生成手段は、読み出された前記階層キーおよび前記データ記憶領域キーに基づいて、前記認証キーを生成する
請求項１に記載のデータ記憶装置。
【請求項１１】
前記通信手段は、前記外部機器と接触して、または非接触で、通信を行う
請求項２または１０に記載のデータ記憶装置。
【請求項１２】
所定のサービスを提供するためのデータを記憶するデータ記憶装置のデータ記憶方法であって、
前記データ記憶装置は、
前記データを記憶するデータ記憶手段と、
前記データ記憶手段の記憶領域を階層構造にして管理する管理手段と、
前記データ記憶手段の記憶領域の各階層に対する階層キーを記憶する階層キー記憶手段と、
前記データが記憶された前記記憶領域に対するデータ記憶領域キーを記憶するデータ記憶領域キー記憶手段と、
生成手段と、
認証処理実行手段と
を備え、
前記生成手段が、前記記憶領域にアクセスするための認証に用いる１以上の認証キーを生成するための生成用情報に対して、アクセス対象である前記記憶領域の階層よりも上の階層に対する前記階層キーまたはアクセス対象である前記記憶領域に対する前記データ記憶領域キーを予め決められた順序で用いた暗号化により得られる前記認証キーを生成する生成ステップと、
前記認証処理実行手段が、生成された前記認証キーを用いて第１の認証処理を実行する認証処理実行ステップと
を含むデータ記憶方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ記憶装置およびデータ記憶方法に関し、例えば、１のＩＣ（Integrated Circuit）カードを利用して、複数の管理者がサービスを提供する場合などにおいて、ＩＣカードに対するフレキシブルでセキュリティの高いアクセス制御を行うことができるようにするデータ記憶装置およびデータ記憶方法に関する。
【背景技術】
【０００２】
例えば、電子マネーシステムやセキュリティシステムなどでの利用が期待されているＩＣカード（スマートカード）が開発されている。
【０００３】
ＩＣカードは、各種処理を行うＣＰＵ（Central Processing Unit）や、処理に必要なデータなどを記憶するメモリを内蔵しており、所定のリーダ／ライタ（Ｒ／Ｗ）に電気的に接触させた状態で、または電磁波を利用して非接触で、データの送受信が行われる。なお、Ｒ／Ｗとの間で、電磁波を利用して非接触でデータの送受信を行うＩＣカードには、一般に、その電磁波により、必要な電力が供給される。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
例えば、ＩＳＯ（International Organization for Standardizaion）７８１６では、接触式のＩＣカードの標準が規定されており、これによれば、例えば、データを格納するＥＦ（Elementary File）（いわゆるファイルに相当する）と、ＥＦおよびＤＦ（Dedicated File）（いわゆるディレクトリ（フォルダ）に相当する）を格納するＤＦとによるデータの管理が可能となっている。従って、あるＤＦを親の階層として、その子の階層のＤＦを設けることで、階層構造によるデータの管理が可能である。
【０００５】
ところで、ＩＣカードを、電子マネーシステムやセキュリティシステムなどで利用する場合においては、データの隠匿性や、ＩＣカードの偽造を防止すること等のセキュリティが重要であり、例えば、ＩＳＯ７８１６では、ＤＦに鍵をかけることで、そのＤＦの階層に属するＤＦおよびＥＦへのアクセスが制限される。即ち、ＩＳＯ７８１６では、あるＤＦにアクセスするには、そのＤＦに至るまでのパス上の上位階層（親の階層）のＤＦすべてのキーを知っている必要がある。
【０００６】
このため、例えば、ある管理者が、親の管理者として、自身に割り当てられたリソースの一部を、その子の管理者となる、他の管理者に分け与え、親の管理者が管理するＤＦの中に、子の管理者が管理するＤＦをつくると、子の管理者が、自身のＤＦにアクセスするには、その親の階層のＤＦ、即ち、親の管理者のＤＦにアクセスするためのキーを知る必要があり、セキュリティ上の問題が生じることになる。
【０００７】
本発明は、このような状況に鑑みてなされたものであり、データに対するフレキシブルでセキュリティの高いアクセス制御を行うことができるようにするものである。
【課題を解決するための手段】
【０００８】
請求項１に記載のデータ記憶装置は、データ記憶手段の記憶領域を階層構造にして管理する管理手段と、データ記憶手段の記憶領域の各階層に対する階層キーを記憶する階層キー記憶手段と、データが記憶された記憶領域に対するデータ記憶領域キーを記憶するデータ記憶領域キー記憶手段と、前記記憶領域にアクセスするための認証に用いる１以上の認証キーを生成するための生成用情報に対して、アクセス対象である記憶領域の階層よりも上の階層に対する階層キーまたはアクセス対象である記憶領域に対するデータ記憶領域キーを予め決められた順序で用いた暗号化により得られる認証キーを生成する生成手段と、生成された認証キーを用いて第１の認証処理を実行する認証処理実行手段とを備える。
【０００９】
請求項１２に記載のデータ記憶方法は、生成手段が、記憶領域にアクセスするための認証に用いる１以上の認証キーを生成するための生成用情報に対して、アクセス対象である記憶領域の階層よりも上の階層に対する階層キーまたはアクセス対象である記憶領域に対するデータ記憶領域キーを予め決められた順序で用いた暗号化により得られる認証キーを生成する生成ステップと、認証処理実行手段が、生成された認証キーを用いて第１の認証処理を実行する認証処理実行ステップとを含む。
【００１０】
請求項１に記載のデータ記憶装置においては、管理手段は、データ記憶手段の記憶領域を階層構造にして管理し、階層キー記憶手段は、データ記憶手段の記憶領域の各階層に対する階層キーを記憶するようになされている。データ記憶領域キー記憶手段は、データが記憶された記憶領域に対するデータ記憶領域キーを記憶し、生成手段は、記憶領域にアクセスするための認証に用いる１以上の認証キーを生成するための生成用情報に対して、アクセス対象である記憶領域の階層よりも上の階層に対する階層キーまたはアクセス対象である記憶領域に対するデータ記憶領域キーを予め決められた順序で用いた暗号化により得られる認証キーを生成するようになされている。認証手段は、生成された認証キーを用いて第１の認証処理を実行するようになされている。
【００１１】
請求項１２に記載のデータ記憶方法においては、生成手段が、記憶領域にアクセスするための認証に用いる１以上の認証キーを生成するための生成用情報に対して、アクセス対象である記憶領域の階層よりも上の階層に対する階層キーまたはアクセス対象である記憶領域に対するデータ記憶領域キーを予め決められた順序で用いた暗号化により得られる認証キーを生成し、認証処理実行手段が、生成された認証キーを用いて第１の認証処理を実行するようになされている。
【発明の効果】
【００１２】
本発明によれば、フレキシブルでセキュリティの高いアクセス制御を行うことができる。
【発明を実施するための最良の形態】
【００１３】
図１は、本発明を適用した非接触カードシステム（システムとは、複数の装置が論理的に集合した物をいい、各構成の装置が同一筐体中にあるか否かは問わない）の一実施の形態の構成例を示している。
【００１４】
この非接触カードシステムは、Ｒ／Ｗ１，ＩＣカード２、およびコントローラ３で構成され、Ｒ／Ｗ１とＩＣカード２との間では、電磁波を利用して非接触で、データの送受信が行われるようになされている。
【００１５】
即ち、Ｒ／Ｗ１が、所定のコマンドをＩＣカード２に送信し、ＩＣカード２は、そのコマンドを受信し、そのコマンドに対応する処理を行う。そして、ＩＣカード２は、その処理結果に対応する応答データをＲ／Ｗ１に送信する。
【００１６】
Ｒ／Ｗ１は、所定のインタフェース（例えば、ＲＳ−４８５Ａの規格などに準拠したもの）を介してコントローラ３に接続されており、コントローラ３は、Ｒ／Ｗ１に対して所定の制御信号を供給することで、所定の処理を行わせる。
【００１７】
図２は、図１のＲ／Ｗ１の構成例を示している。
【００１８】
ＩＣ２１においては、データの処理を行うＤＰＵ（Data Processing Unit）３１、ＩＣカード２に送信するデータおよびＩＣカード２から受信したデータの処理を行うＳＰＵ（Signal Processing Unit）３２、コントローラ３との通信を行うＳＣＣ（Serial Communication Controller）３３、およびデータの処理に必要な情報を予め記憶しているＲＯＭ部４１と処理途中のデータを一時的に記憶するＲＡＭ部４２とで構成されるメモリ部３４が、バスを介して接続されている。
【００１９】
また、このバスには、所定のデータを記憶するフラッシュメモリ２２も接続されている。
【００２０】
ＤＰＵ３１は、ＩＣカード２に送信するコマンドをＳＰＵ３２に出力するとともに、ＩＣカード２から受信した応答データをＳＰＵ３２から受け取るようになされている。
【００２１】
ＳＰＵ３２は、ＩＣカード２に送信するコマンドに対して所定の処理（例えば、ＢＰＳＫ（BiPhase Shift Keying）変調（ワンチェスタコードへのコーディング）など）を行った後、変調回路２３に出力するとともに、ＩＣカード２により送信されてきた応答データを復調回路２５から受け取り、そのデータに対して所定の処理を施すようになされている。
【００２２】
変調回路２３は、発振器（ＯＳＣ）２６より供給される所定の周波数（例えば１３．５６ＭＨｚ）の搬送波を、ＳＰＵ３２より供給されるデータで、ＡＳＫ（Amplitude Shift Keying）変調し、生成された変調波をアンテナ２７を介して、電磁波としてＩＣカード２に出力するようになされている。なお、このとき、変調回路２３は、変調度を１未満にして、ＡＳＫ変調を行うようになされており、これにより、データがローレベルのときにおいても、変調波の最大振幅がゼロにならないようになされている。
【００２３】
復調回路２５は、アンテナ２７を介して受信した変調波（ＡＳＫ変調波）を復調し、復調されたデータをＳＰＵ３２に出力するようになされている。
【００２４】
図３は、図１のＩＣカード２の構成例を示している。
【００２５】
このＩＣカード２においては、ＩＣ５１が、アンテナ５３を介して、Ｒ／Ｗ１により送信された変調波を受信するようになされている。なお、コンデンサ５２は、アンテナ５３とともにＬＣ回路を構成し、所定の周波数（キャリア周波数）の電磁波に同調（共振）するようになされている。
【００２６】
ＩＣ５１において、ＲＦインタフェース部６１（通信手段）は、ＡＳＫ復調部８１で、アンテナ５３を介して受信した変調波（ＡＳＫ変調波）を検波して復調し、復調後のデータを、ＢＰＳＫ復調回路６２およびＰＬＬ（Phase Locked Loop）部６３に出力するとともに、電圧レギュレータ８２で、ＡＳＫ復調部８１が検波した信号を安定化し、各回路に直流電源として供給するようになされている。
【００２７】
また、ＲＦインタフェース部６１は、発振回路８３でデータのクロック周波数と同一の周波数の信号を発振し、その信号をＰＬＬ部６３に出力するようになされている。
【００２８】
さらに、ＲＦインタフェース部６１では、ＡＳＫ変調部８１において、演算部６４より、ＢＰＳＫ変調回路６８を介して供給されるデータに対応して、ＩＣカード２の電源としてのアンテナ５３の負荷を変動させる（例えば、データに対応して所定のスイッチング素子をオン／オフさせ、スイッチング素子がオン状態であるときだけ所定の負荷をアンテナ５３に並列に接続させる）ことにより、アンテナ５３を介して受信している変調波をＡＳＫ変調し（ＩＣカード２からデータを送信するときは（ＩＣカード２にデータを送信させるときは）、Ｒ／Ｗ１は、その出力する変調波の最大振幅を一定にしており、この変調波が、アンテナ５３の負荷の変動により、ＡＳＫ変調される）、その変調成分を、アンテナ５３を介してＲ／Ｗ１に送信する（Ｒ／Ｗ１のアンテナ２７の端子電圧を変動させる）ようになされている。
【００２９】
ＰＬＬ部６３は、ＡＳＫ復調部８１より供給されるデータから、そのデータに同期したクロック信号を生成し、そのクロック信号をＢＰＳＫ復調回路６２およびＢＰＳＫ変調回路６８に出力するようになされている。
【００３０】
ＢＰＳＫ復調回路６２は、ＡＳＫ復調部８１で復調されたデータが、ＢＰＳＫ変調されている場合、ＰＬＬ部６３より供給されたクロック信号に従って、そのデータの復調（ワンチェスタコードのデコード）を行い、復調したデータを演算部６４に出力するようになされている。
【００３１】
演算部６４は、ＢＰＳＫ復調回路６２より供給されたデータが暗号化されている場合、そのデータを暗号／復号部９２で復号化した後、そのデータを、シーケンサ９１で処理するようになされている。なお、データが暗号化されていない場合、ＢＰＳＫ復調回路６２より供給されたデータは、暗号／復号部９２を介さず、シーケンサ９１に、直接供給される。
【００３２】
シーケンサ９１（管理手段）（生成手段）（認証手段）は、そこに供給されるコマンドとしてのデータに対応する処理を行うようになされている。即ち、例えば、シーケンサ９１は、ＥＥＰＲＯＭ６６に対するデータの書き込みや読み出し、その他データに対する必要な演算処理などを行う。さらに、シーケンサ９１は、認証を行うことによるＥＥＰＲＯＭ６６へのアクセス制御や、ＥＥＰＲＯＭ６６の管理などをも行うようになされている。
【００３３】
演算部６４のパリティ演算部９３は、ＥＥＰＲＯＭ６６に記憶されるデータや、ＥＥＰＲＯＭ６６に記憶されているデータから、パリティとして、例えば、リードソロモン符号を算出するようになされている。
【００３４】
さらに、演算部６４は、シーケンサ９１で所定の処理を行った後、その処理に対応する応答データ（Ｒ／Ｗ１に送信するデータ）をＢＰＳＫ変調回路６８に出力するようになされている。
【００３５】
ＢＰＳＫ変調回路６８は、演算部６４より供給されたデータをＢＰＳＫ変調し、変調後のデータをＲＦインタフェース部６１のＡＳＫ変調部８４に出力するようになされている。
【００３６】
ＲＯＭ（Read Only Memory）６５は、シーケンサ９１が処理を行うためのプログラムその他の必要なデータを記憶している。ＲＡＭ６７は、シーケンサ９１が処理を行うとき、その処理の途中のデータなどを、一時的に記憶するようになされている。
【００３７】
ＥＥＰＲＯＭ（Electrically Erasable and Programmable ROM）６６（記憶手段）（データ記憶手段）は、不揮発性のメモリであり、ＩＣカード２がＲ／Ｗ１との通信を終了し、電力供給が停止した後も、データを記憶し続けるようになされている。
【００３８】
次に、Ｒ／Ｗ１とＩＣカード２との間のデータの送受信処理について説明する。
【００３９】
Ｒ／Ｗ１（図２）は、アンテナ２７から所定の電磁波を放射して、アンテナ２７の負荷状態を監視し、ＩＣカード２が接近することによる負荷状態の変化が検出されるまで待機する。なお、Ｒ／Ｗ１には、所定の短いパターンのデータでＡＳＫ変調した電磁波を放射して、ＩＣカード２への呼びかけを、ＩＣカード２からの応答が一定時間内に得られるまで繰り返す処理（ポーリング）を行わせるようにしてもよい。
【００４０】
Ｒ／Ｗ１において、ＩＣカード２の接近が検出されると、Ｒ／Ｗ１のＳＰＵ３２は、所定の周波数（例えば、データのクロック周波数の２倍の周波数）の矩形波を搬送波として、ＩＣカード２に送信するデータ（ＩＣカード２に実行させる処理に対応するコマンドや、ＩＣカード２に書き込むデータなど）で、ＢＰＳＫ変調を行い、生成した変調波（ＢＰＳＫ変調信号）（ワンチェスタコード）を変調回路２３に出力する。
【００４１】
なお、ＢＰＳＫ変調時においては、差動変換を利用して、変調波の位相の変化に、データを対応させることができ、このようにした場合、ＢＰＳＫ変調信号が反転しても、元のデータに復調されるので、復調するとき変調波の極性を配慮する必要が無くなる。
【００４２】
変調回路２３は、入力されたＢＰＳＫ変調信号で、所定の搬送波を１未満（例えば０．１）の変調度（＝データ信号の最大振幅／搬送波の最大振幅）でＡＳＫ変調し、生成された変調波（ＡＳＫ変調波）を、アンテナ２７を介してＩＣカード２に送信する。
【００４３】
なお、送信を行わないとき、変調回路２３は、ディジタル信号の２つのレベル（ハイレベルとローレベル）のうちの、例えばハイレベルで変調波を生成するようになされている。
【００４４】
ＩＣカード２（図３）では、アンテナ５３およびコンデンサ５２で構成されるＬＣ回路において、Ｒ／Ｗ１のアンテナ２７が放射した電磁波の一部が電気信号に変換され、その電気信号（変調波）が、ＩＣ５１のＲＦインタフェース６１に出力される。そして、ＲＦインタフェース６１のＡＳＫ復調部８１は、その変調波を整流平滑化することで、包絡線検波を行い、これにより生成される信号を電圧レギュレータ８２に供給するとともに、その信号の直流成分を抑制してデータ信号を抽出し、そのデータ信号をＢＰＳＫ復調回路６２およびＰＬＬ部６３に出力する。
【００４５】
なお、このとき、アンテナ５３の端子電圧Ｖ0は、例えば次のようになる。
Ｖ0＝Ｖ10（１＋ｋ×Ｖｓ（ｔ））ｃｏｓ（ωｔ）
但し、Ｖ10ｃｏｓ（ωｔ）は、搬送波を、ｋは変調度を、Ｖｓ（ｔ）はＳＰＵ３２が出力するデータを、それぞれ表す。
【００４６】
また、ＡＳＫ復調部８１による整流後の電圧Ｖ1におけるローレベルの値ＶLRは、例えば次のようになる。
ＶLR＝Ｖ10（１＋ｋ×（−１））−Ｖｆ
【００４７】
ここで、Ｖｆは、ＡＳＫ復調部８１において、整流平滑化を行うための整流回路を構成するダイオード（図示せず）における電圧降下を示しており、一般に０．７ボルト程度である。
【００４８】
電圧レギュレータ８２は、ＡＳＫ復調部８１により整流平滑化された信号を受信すると、その信号を安定化し、直流電源として、演算部６４を始めとする各回路に供給する。なお、ここでは、上述したように、変調波の変調度ｋは１未満であるので、整流後の電圧変動（ハイレベルとローレベルの差）が小さい。従って、電圧レギュレータ８２において、直流電源を容易に生成することができる。
【００４９】
ここで、例えば、変調度ｋが５％の変調波を、Ｖ10が３ボルト以上になるように受信した場合、整流後のローレベル電圧ＶLRは、２．１５（＝３×（１−０．０５）−０．７）ボルト以上となり、電圧レギュレータ８２は、電源として充分な電圧を各回路に供給することができる。さらに、この場合、整流後の電圧Ｖ1の交流成分（データ成分）の振幅２×ｋ×Ｖ10（Peak-to-Peak値）は、０．３（＝２×０．０５×３）ボルト以上になり、ＡＳＫ復調部８１は、十分高いＳ／Ｎ比でデータの復調を行うことができる。
【００５０】
このように、変調度ｋが１未満のＡＳＫ変調波を利用することにより、エラーレートの低い（Ｓ／Ｎ比の高い状態で）通信を行うとともに、電源として充分な直流電圧がＩＣカード２に供給される。
【００５１】
ＢＰＳＫ復調回路６２は、ＡＳＫ復調部８１からデータ信号（ＢＰＳＫ変調信号）を受信すると、そのデータ信号を、ＰＬＬ部６３より供給されるクロック信号に従って復調し、復調したデータを演算部６４に出力する。
【００５２】
演算部６４は、ＢＰＳＫ復調回路６２より供給されたデータが暗号化されている場合は、暗号／復号部９２で復号化した後、そのデータ（コマンド）をシーケンサ９１に供給して処理する。なお、この期間、即ち、ＩＣカード２にデータを送信後、それに対する返答を受信するまでの間、Ｒ／Ｗ１は、値が１のデータを送信したまま待機している。従って、この期間においては、ＩＣカード２は、最大振幅が一定である変調波を受信している。
【００５３】
シーケンサ９１は、処理が終了すると、その処理結果などについてのデータ（Ｒ／Ｗ１に送信するデータ）を、ＢＰＳＫ変調回路６８に出力する。ＢＰＳＫ変調回路６８は、Ｒ／Ｗ１のＳＰＵ３２と同様に、そのデータをＢＰＳＫ変調（ワンチェスタコードにコーディング）した後、ＲＦインタフェース部６１のＡＳＫ変調部８４に出力する。
【００５４】
そして、ＡＳＫ変調部８４は、アンテナ５３の両端に接続される負荷を、スイッチング素子などを利用し、ＢＰＳＫ変調回路６８からのデータに応じて変動させることにより、受信している変調波（ＩＣカード２によるデータの送信時においては、上述したように、Ｒ／Ｗ１が出力する変調波の最大振幅は一定になっている）を、送信するデータに応じてＡＳＫ変調し、これによりＲ／Ｗ１のアンテナ２７の端子電圧を変動させて、そのデータをＲ／Ｗ１に送信する。
【００５５】
一方、Ｒ／Ｗ１の変調回路２３は、ＩＣカード２からのデータの受信時においては、値が１（ハイレベル）のデータの送信を継続している。そして、復調回路２５において、ＩＣカード２のアンテナ５３と電磁気的に結合しているアンテナ２７の端子電圧の微小な変動（例えば、数十マイクロボルト）から、ＩＣカード２により送信されてきたデータが検出される。
【００５６】
さらに、復調回路２５では、検出した信号（ＡＳＫ変調波）が高利得の増幅器（図示せず）で増幅されて復調され、その結果得られるディジタルデータがＳＰＵ３２に出力される。ＳＰＵ３２は、そのデータ（ＢＰＳＫ変調信号）を復調し、ＤＰＵ３１に出力する。ＤＰＵ３１は、ＳＰＵ３２からのデータを処理し、その処理結果に応じて、通信を終了するか否かを判断する。そして、再度、通信を行うと判断した場合、上述した場合と同様にして、Ｒ／Ｗ１とＩＣカード２との間で通信が行われる。一方、通信を終了すると判断した場合、Ｒ／Ｗ１は、ＩＣカード２との通信処理を終了する。
【００５７】
以上のように、Ｒ／Ｗ１は、変調度ｋが１未満であるＡＳＫ変調を利用して、ＩＣカード２にデータを送信し、ＩＣカード２は、そのデータを受け取り、そのデータに対応する処理を行って、その処理の結果に対応するデータを、Ｒ／Ｗ１に返送する。
【００５８】
次に、図４は、図３のＥＥＰＲＯＭ６６の論理フォーマットを示している。
【００５９】
ＥＥＰＲＯＭ６６は、ブロックを単位として構成され、図４の実施の形態では、１ブロックは、例えば、１６バイトで構成されている。
【００６０】
さらに、図４の実施の形態では、最も上のブロックの論理アドレスを＃００００ｈ（ｈは、１６進数を表す）として、昇順に、論理アドレスが付されている。なお、図４では、論理アドレスとして、＃００００ｈ乃至＃ＦＦＦＦｈが付されており、従って、６５５３６（＝２16）個のブロックが構成されている。
【００６１】
ブロックは、ユーザブロックまたはシステムブロックとして使用されるようになされている。ＥＥＰＲＯＭ６６のブロックは、論理アドレスの昇順に、ユーザブロックに割り当てられていき、また、論理アドレスの降順に、システムブロックに割り当てられていくようになされている。即ち、図４において、ユーザブロックは下方向に、システムブロックは上方向に、それぞれ増えていき、空きブロックがなくなった時点で、ユーザブロックおよびシステムブロックをつくることはできなくなる。従って、ユーザブロックとシステムブロックとの境界は固定ではなく、また、ユーザブロックの数、またはシステムブロックの数それぞれには、特に制限がない（但し、図４の実施の形態では、ユーザブロックとシステムブロックとの合計は、６５５３６個以下に制限される）。
【００６２】
システムブロックには、製造ＩＤ（Identification）ブロック、発行ＩＤブロック、システム定義ブロック、エリア定義ブロック、サービス定義ブロックの５種類がある。なお、図４の実施の形態では、エリア定義ブロックまたはサービス定義ブロックとなっているブロックを、エリア／サービス定義ブロックと示してある。
【００６３】
システムブロックのうち、製造ＩＤブロック、発行ＩＤブロック、システム定義ブロックの３つは、基本的に、ＩＣカード２の発行時には、既に配置されているもので、論理アドレス＃ＦＦＦＦｈ，＃ＦＦＦＥｈ，＃ＦＦＦＤｈにそれぞれ配置される。そして、エリア／サービス定義ブロックは、論理アドレス＃ＦＦＦＣｈより上に、作成順に配置されていく。
【００６４】
製造ＩＤブロックには、ＩＣカード２の製造に関する情報が配置される。即ち、製造ＩＤブロックには、例えば、ユニークな製造ＩＤや、製造年月日、製造者のコードなどが配置される。
【００６５】
発行ＩＤブロックには、ＩＣカード２の発行に関する情報が配置される。即ち、発行ＩＤブロックには、例えば、ＩＣカード２が発行された日付や、ＩＣカードを発行した順番を表すコードなどが配置される。
【００６６】
システム定義ブロックには、例えば、ＥＥＰＲＯＭ６６が有するシステムブロックまたはユーザブロックの数や、システムキーなどが配置される。なお、システムキーは、ＩＣカード２と、Ｒ／Ｗ１およびコントローラ３との間で、相互認証を行うときに用いられる。
【００６７】
エリア定義ブロックは、例えば、ＥＥＰＲＯＭ６６の記憶領域（エリア）が、管理者に割り当てられることにより作成され、そこには、管理者が、自身に割り当てられた記憶領域を管理するための情報などが配置される。即ち、エリア定義ブロックには、例えば、後述するコード範囲、空き容量、およびエリアキーなどが配置される。
【００６８】
サービス定義ブロックには、後述するサービス領域を管理するための情報（サービス領域の容量やサービスキーなど）などが配置される。
【００６９】
次に、シーケンサ９１では、ＥＥＰＲＯＭ６６の記憶領域が階層化されて管理されるようになされている。
【００７０】
即ち、図５は、ＥＥＰＲＯＭ６６のディレクトリ構造を示している。
【００７１】
ＥＥＰＲＯＭ６６の記憶領域は、エリア定義領域を階層とする階層構造をなしており、エリア定義領域は、エリア定義領域およびサービス定義領域を有することができるようになされている。
【００７２】
エリア定義領域（階層キー記憶手段）は、管理者に割り当てられ、そこには、管理者が、エリア定義領域やサービス定義領域を識別するための名前として使用可能な識別コードの範囲を表すコード範囲、使用可能な空きブロック数を表す空き容量、認証に用いる、後述するアクセスキーを生成するためのエリアキーなどが配置される。ここで、１のエリア定義領域は、図４で説明した１のエリア定義ブロックに対応する。
【００７３】
図５の実施の形態では、管理者Ａに割り当てられたエリア定義領域が最上位階層を構成しており、これを親の階層として、管理者Ｂ１およびＢ２のエリア定義領域が作成されている。さらに、管理者Ｂ１のエリア定義領域を、親の階層として、管理者Ｃのエリア定義領域が作成されている。
【００７４】
サービス定義領域（データ記憶領域キー記憶手段）は、管理者が提供するサービスに割り当てられ、そこには、そのサービスの提供に必要なデータを記憶するサービス領域の容量や、アクセスキーを生成するためのサービスキーなどが配置される。ここで、１のサービス定義領域は、図４で説明した１のサービス定義ブロックに対応する。
【００７５】
サービス領域は、サービスの提供に必要なデータが記憶される記憶領域で、図４のユーザブロックに対応する。即ち、サービス領域は、０以上のユーザブロックで構成され、サービス領域を構成するユーザブロック数が、そのサービス領域を管理するサービス定義領域の容量として配置される。
【００７６】
また、エリア定義領域およびサービス定義領域には、それらを識別するための識別コードも配置される。ここで、エリア定義領域またはサービス定義領域を識別するための識別コードそれぞれを、以下、適宜、エリアコードまたはサービスコードという。なお、サービスコードは、あるサービス領域を管理するサービス定義領域を識別するものであるから、そのサービス領域を識別する識別コード（サービス領域識別コード）であるということもできる。
【００７７】
図５の実施の形態では、管理者Ａに、最上位階層のエリア定義領域が割り当てられている。そして、使用可能な識別コードの範囲（コード範囲）として、００００ｈ乃至ＦＦＦＦｈが、エリアキーとして、0123456789abcdefが、それぞれ定義されている。ここで、エリア定義領域におけるコード範囲内の識別コードであれば、いずれの識別コードも、そのエリア定義領域のエリアコードとして使用可能であるが、本実施の形態では、例えば、エリア定義領域のコード範囲の最小値が、そのエリアコードとして使用されるようになされている。従って、コード範囲が、００００ｈ乃至ＦＦＦＦｈとなっているエリア定義領域、即ち、管理者Ａに割り当てられているエリア定義領域のエリアコードは、００００ｈとなっている。ここで、エリアコード＃ｘｘｘｘｈのエリア定義領域を、以下、適宜、エリア定義領域＃ｘｘｘｘｈと記載する。
【００７８】
管理者Ａのエリア定義領域＃００００ｈの階層には、管理者Ａがサービスを提供するためのサービス定義領域が設けられている。このサービス定義領域には、エリア定義領域＃００００ｈのコード範囲である００００ｈ乃至ＦＦＦＦｈのうち、０００８ｈが、サービスコードとして割り当てられている。ここで、サービスコード＃ｘｘｘｘｈのサービス定義領域を、以下、適宜、サービス定義領域＃ｘｘｘｘｈと記載する。
【００７９】
サービス定義領域＃０００８ｈの容量は８とされており、従って、８のユーザブロックで構成されるサービス領域の使用が可能となっている。また、サービス定義領域＃０００８ｈのサービスキーは、0101010101010101となっている。
【００８０】
さらに、管理者Ａのエリア定義領域＃００００ｈの階層には、管理者Ｂ１のエリア定義領域＃０１００ｈ、および管理者Ｂ２のエリア定義領域＃１０００ｈが、その子の階層として設けられている。また、エリア定義領域＃００００ｈの階層には、図示せぬその他のエリア定義領域も設けられており、これにより、エリア定義領域＃００００ｈが使用可能なブロック数（空き容量）は、例えば、３７ブロックとなっている。
【００８１】
管理者Ｂ１のエリア定義領域＃０１００ｈのコード範囲としては、その親の階層であるエリア定義領域＃００００ｈのコード範囲である００００ｈ乃至ＦＦＦＦｈのうちの、０１００ｈ乃至０３ＦＦｈが割り当てられている。ここで、管理者Ｂ１のエリア定義領域のコード範囲が０１００ｈ乃至０３ＦＦｈであるため、その最小値である０１００ｈが、管理者Ｂ１のエリア定義領域のエリアコードとなっている。
【００８２】
また、エリア定義領域＃０１００ｈの空き容量またはエリアキーは、それぞれ、１４またはa0a0a0a0a0a0a0a0になっている。
【００８３】
さらに、管理者Ｂ１のエリア定義領域＃０１００ｈの階層には、管理者Ｃのエリア定義領域＃０３００ｈが、その子の階層として設けられている。そして、管理者Ｃのエリア定義領域＃０３００ｈのコード範囲としては、その親の階層であるエリア定義領域＃０１００ｈのコード範囲である０１００ｈ乃至０３ＦＦｈのうちの、０３００ｈ乃至０３ＦＦｈが割り当てられている。ここで、管理者Ｃのエリア定義領域のコード範囲が０３００ｈ乃至０３ＦＦｈであるため、その最小値である０３００ｈが、管理者Ｃのエリア定義領域のエリアコードとなっている。
【００８４】
また、エリア定義領域＃０３００ｈの空き容量またはエリアキーは、それぞれ、０またはb0b0b0b0b0b0b0b0になっている。
【００８５】
管理者Ｃのエリア定義領域＃０３００ｈの階層には、管理者Ｃがサービスを提供するためのサービス定義領域が設けられている。このサービス定義領域には、エリア定義領域＃０３００ｈのコード範囲である０３００ｈ乃至０３ＦＦｈのうちの、０３０Ｃｈが、サービスコードとして割り当てられている。
【００８６】
このサービスコード０３０Ｃｈが割り当てられているサービス定義領域、即ち、サービス定義領域＃０３０Ｃｈの容量は１６とされており、従って、１６のユーザブロックで構成されるサービス領域の使用が可能となっている。また、サービス定義領域＃０３０Ｃｈのサービスキーは、0202020202020202となっている。
【００８７】
ここで、サービス定義領域＃０３０Ｃｈが管理するサービス領域の容量が１６であり、そのサービス定義領域＃０３０Ｃｈ自体が、１のブロックを、サービス定義ブロックとして使用することから、サービス定義領域＃０３０Ｃｈが存在することによって使用されるブロック数は１７（＝１６＋１）ブロックとなる。また、サービス定義領域＃０３０Ｃｈが属する階層のエリア定義領域＃０３００ｈが使用可能なブロック数は、その空き容量が０であるから、０ブロックである。さらに、エリア定義領域＃０３００ｈ自体が、１のブロックを、エリア定義ブロックとして使用する。従って、エリア定義領域＃０３００ｈの階層においては、使用されているブロックが１８（＝１７＋１）ブロックで、使用可能なブロックが０ブロックであるから、その親の階層（上位階層）であるエリア定義領域＃０１００ｈから割り当てられたブロック数が、１８（＝１８＋０）ブロックであることが分かる。
【００８８】
さらに、エリア定義領域＃０１００ｈの階層については、その子の階層（下位階層）であるエリア定義領域＃０３００ｈで、上述のように、１８ブロックが使用されている。また、エリア定義領域＃０１００ｈ自体が１のブロックを、エリア定義ブロックとして使用している。そして、エリア定義領域＃０１００ｈの空き容量は、上述したように１４となっている。従って、エリア定義領域＃０１００ｈの階層においては、使用されているブロックが１９（＝１８＋１）ブロックで、使用可能なブロックが１４であるから、その親の階層であるエリア定義領域＃００００ｈから割り当てられたブロックは、３３（＝１９＋１４）ブロックであることが分かる。
【００８９】
一方、管理者Ｂ２のエリア定義領域＃１０００ｈのコード範囲としては、その親の階層であるエリア定義領域＃００００ｈのコード範囲である００００ｈ乃至ＦＦＦＦｈのうちの、１０００ｈ乃至１ＦＦＦｈが割り当てられている。ここで、管理者Ｂ２のエリア定義領域のコード範囲が１０００ｈ乃至１ＦＦＦｈであるため、その最小値である１０００ｈが、管理者Ｂ２のエリア定義領域のエリアコードとなっている。
【００９０】
また、エリア定義領域＃１０００ｈの空き容量またはエリアキーは、それぞれ、４３またはc0c0c0c0c0c0c0c0になっている。
【００９１】
管理者Ｂ２のエリア定義領域＃１０００ｈの階層には、管理者Ｂ２がサービスを提供するためのサービス定義領域が設けられている。このサービス定義領域には、エリア定義領域＃１０００ｈのコード範囲である１０００ｈ乃至１ＦＦＦｈのうちの、１０２２ｈが、サービスコードとして割り当てられている。
【００９２】
このサービスコード１０２２ｈが割り当てられているサービス定義領域、即ち、サービス定義領域＃１０２２ｈの容量は４とされており、従って、４のユーザブロックで構成されるサービス領域の使用が可能となっている。また、サービス定義領域＃１０２２ｈのサービスキーは、0303030303030303となっている。
【００９３】
ここで、サービス定義領域＃１０２２ｈが管理するサービス領域の容量が４であり、そのサービス定義領域＃１０２２ｈ自体が、１のブロックを、サービス定義ブロックとして使用することから、サービス定義領域＃１０２２ｈが存在することによって使用されるブロック数は５（＝４＋１）ブロックとなる。また、サービス定義領域＃１０２２ｈが属する階層のエリア定義領域＃１０００ｈが使用可能なブロック数は、その空き容量が４３であるから、４３ブロックである。さらに、エリア定義領域＃１０００ｈ自体が１のブロックを、エリア定義ブロックとして使用している。従って、エリア定義領域＃１０００ｈの階層においては、使用されているブロックが６（＝５＋１）ブロックで、使用可能なブロックが４３ブロックであるから、エリア定義領域＃１０００ｈに割り当てられたブロックは、４９（＝６＋４３）ブロックであることが分かる。
【００９４】
以上のように、管理対象のエリア定義領域に割り当て可能な識別コードの範囲であるコード範囲をエリア定義領域に記憶させるようにしたので、そのコード範囲に基づき、管理対象のエリア定義領域を子の階層とし、そのエリア定義領域を管理するエリア定義領域を親の階層とする、図５に示したような階層構造を規定することができる。
【００９５】
次に、図６を参照して、最上位階層のエリア定義領域＃００００ｈが割り当てられた管理者Ａが、例えば、ＩＣカード２の発行者であるとして、図５に示した階層構造が構成されていく過程について説明する。
【００９６】
管理者Ａは、例えば、ユーザの要求に応じて、ＩＣカード２を発行する（１）。このＩＣカード２には、図５の階層構造のうち、例えば、エリア定義領域＃００００ｈだけが作成されている。
【００９７】
そして、管理者Ａは、サービス定義領域＃０００８ｈによって管理されるサービス領域を利用して、所定のサービスの提供を開始する場合、そのサービス定義領域＃０００８ｈの作成を行うのに必要な情報を、発券機１０１に登録する（２）。
【００９８】
ここで、発券機１０１は、例えば、図１のＲ／Ｗ１とコントローラ３から構成される。また、発券機１０１は、例えば、駅や、小売店、その他の施設などに設置することができる。
【００９９】
その後、ユーザが、ＩＣカード２を、発券機１０１に装着すると（ＩＣカード２を、発券機１０１が内蔵するＲ／Ｗ１との間で通信を行うことが可能な状態にすると）、発券機１０１は、登録された情報に基づいて、ＩＣカード２にコマンドおよび必要なデータを送信し、サービス定義領域＃０００８ｈを作成させる。これにより、ユーザは、サービス定義領域＃０００８ｈによって管理されるサービス領域を利用した、管理者Ａによるサービスの提供を受けることが可能となる。
【０１００】
一方、管理者Ｂ１，Ｂ２それぞれは、ＩＣカード２を利用したサービスの提供を行いたい場合、管理者Ａとの間で契約を結び、管理者Ａに、エリア定義領域＃０１００ｈおよび＃１０００ｈの作成を行うのに必要な情報を、発券機１０１に登録してもらう（３），（４）。そして、ユーザが、ＩＣカード２を、発券機１０１に装着すると、発券機１０１は、登録された情報に基づいて、ＩＣカード２にコマンドおよび必要なデータを送信し、エリア定義領域＃０１００ｈおよび＃１０００ｈを作成させる。これにより、管理者Ｂ１またはＢ２は、エリア定義領域＃０１００ｈまたは＃１０００ｈにおいて定義されている範囲内において、ＩＣカード２のリソースを使用することが可能となる。
【０１０１】
その後、管理者Ｂ２が、サービス定義領域＃１０２２ｈによって管理されるサービス領域を利用して、所定のサービスの提供を開始する場合、そのサービス定義領域＃１０２２ｈの作成を行うのに必要な情報を、発券機１０１に登録する（５）。そして、ユーザが、ＩＣカード２を、発券機１０１に装着すると、発券機１０１は、登録された情報に基づいて、ＩＣカード２にコマンドおよび必要なデータを送信し、サービス定義領域＃１０２２ｈを作成させる。これにより、ユーザは、サービス定義領域＃１０２２ｈによって管理されるサービス領域を利用した、管理者Ｂ２によるサービスの提供を受けることが可能となる。
【０１０２】
また、管理者Ｃは、管理者Ｂ１の管理下において、ＩＣカード２を利用したサービスの提供を行いたい場合、管理者Ｂ１との間で契約を結び、管理者Ｂ１に、エリア定義領域＃０３００ｈの作成を行うのに必要な情報を、発券機１０１に登録してもらう（６）。そして、ユーザが、ＩＣカード２を、発券機１０１に装着すると、発券機１０１は、登録された情報に基づいて、ＩＣカード２にコマンドおよび必要なデータを送信し、エリア定義領域＃０３００ｈを作成させる。これにより、管理者Ｃは、エリア定義領域＃０３００ｈにおいて定義されている範囲内において、ＩＣカード２のリソースを使用することが可能となる。
【０１０３】
その後、管理者Ｃが、サービス定義領域＃０３０Ｃｈによって管理されるサービス領域を利用して、所定のサービスの提供を開始する場合、そのサービス定義領域＃０３０Ｃｈの作成を行うのに必要な情報を、発券機１０１に登録する（７）。そして、ユーザが、ＩＣカード２を、発券機１０１に装着すると、発券機１０１は、登録された情報に基づいて、ＩＣカード２にコマンドおよび必要なデータを送信し、サービス定義領域＃０３０Ｃｈを作成させる。これにより、ユーザは、サービス定義領域＃０３０Ｃｈによって管理されるサービス領域を利用した、管理者Ｃによるサービスの提供を受けることが可能となる。
【０１０４】
ＩＣカード２では、以上のように、発券機１０１からのコマンドにしたがって、エリア定義領域やサービス定義領域が作成される。このエリア定義領域を作成するエリア作成処理、およびサービス定義領域を作成するサービス作成処理は、例えば、シーケンサ９１によって行われるが、このエリア作成処理およびサービス作成処理について、図７および図８を参照して説明する。
【０１０５】
まず最初に、図７のフローチャートを参照して、エリア作成処理について説明する。
【０１０６】
ＩＣカード２が発券機１０１に装着されると、発券機１０１は、ＩＣカード２に対して、エリア定義領域を作成することを指令するコマンド（以下、定義、エリア作成コマンドという）と、そのエリア定義領域を作成するために必要な情報、即ち、例えば、作成するエリア定義領域のコード範囲、そのエリア定義領域に割り当てられたブロック数（以下、適宜、割り当てブロック数という）、エリアキー、および親の階層とするエリア定義領域のエリアコード（以下、適宜、親エリアコードという）などを送信する。
【０１０７】
ここで、エリア定義領域を作成するために必要な情報は、セキュリティの観点から、暗号化した状態で、ＩＣカード２に送信するのが望ましい。なお、暗号化は、例えば、親エリアコードを有するエリア定義領域に記憶されたエリアキーなどと同一のキーを用いて行うことができる。親エリアコードを有するエリア定義領域に記憶されたエリアキーは、ＥＥＰＲＯＭ６６に記憶されているから、ＩＣカード２では、その暗号化された情報をデコードすることが可能である。
【０１０８】
ＩＣカード２（シーケンサ９１）は、エリア作成コマンドを受信すると、それとともに送信されてくる暗号化された情報を復号し、これにより、親エリアコード、並びに作成対象のエリア定義領域のコード範囲、割り当てブロック数、およびエリアキーなどを認識する。さらに、ＩＣカード２では、作成対象のエリア定義領域のエリアコードを認識する。即ち、ここでは、作成対象のエリア定義領域のコード範囲の最小値が、そのエリアコードとして認識される。
【０１０９】
そして、ＩＣカード２では、ステップＳ１において、作成対象のエリア定義領域が、ＥＥＰＲＯＭ６６の中に既に作成されているかどうかが判定される。即ち、ステップＳ１では、作成対象のエリア定義領域のエリアコードと同一のエリアコードを有するエリア定義領域が、既に作成されているかどうかが判定される。  
【０１１０】
ステップＳ１において、作成対象のエリア定義領域が既に作成されていると判定された場合、エリア作成処理を終了する。即ち、作成対象のエリア定義領域が既に作成されている場合は、同一のエリア定義領域を重複して作成する必要はないから、以降の処理は行われない。
【０１１１】
また、ステップＳ１において、作成対象のエリア定義領域が作成されていないと判定された場合、ステップＳ２に進み、作成対象のエリア定義領域のコード範囲および割り当てブロック数（容量）が適正かどうかが判定される。即ち、ステップＳ２では、作成対象のエリア定義領域のコード範囲が、親エリアコードを有するエリア定義領域に記憶されているコード範囲に含まれており、かつ作成対象のエリア定義領域の割り当てブロック数が、親エリアコードを有するエリア定義領域に記憶されている空き容量以下であるかどうかが判定される。
【０１１２】
ステップＳ２において、作成対象のエリア定義領域のコード範囲および割り当てブロック数が適正でないと判定された場合、即ち、作成対象のエリア定義領域のコード範囲が、親エリアコードを有するエリア定義領域に記憶されているコード範囲に含まれていないか、または作成対象のエリア定義領域の割り当てブロック数が、親エリアコードを有するエリア定義領域に記憶されている空き容量を越えている場合、ステップＳ３に進み、エラー処理が行われ、エリア作成処理を終了する。即ち、ステップＳ３では、例えば、親エリアコードを有するエリア定義領域を親の階層として、その子の階層となるエリア定義領域を作成することができない旨のメッセージが、発券機１０１に送信される。従って、この場合、エリア定義領域は作成されない。
【０１１３】
一方、ステップＳ２において、作成対象のエリア定義領域のコード範囲および割り当てブロック数が適正であると判定された場合、即ち、作成対象のエリア定義領域のコード範囲が、親エリアコードを有するエリア定義領域に記憶されているコード範囲に含まれおり、かつ作成対象のエリア定義領域の割り当てブロック数が、親エリアコードを有するエリア定義領域に記憶されている空き容量以下である場合、ステップＳ４に進み、作成対象のエリア定義領域が、親エリアコードを有するエリア定義領域の階層（親の階層）の子の階層として作成される。
【０１１４】
即ち、ステップＳ４では、ＥＥＰＲＯＭ６６（図４）の中の空きブロックのうち、最も下のブロック（論理アドレスの最も大きい空きブロック）が、作成対象のエリア定義領域に対応するエリア定義ブロックとして確保される。さらに、そのエリア定義ブロックに、コード範囲、空き容量、エリアキーなどが書き込まれる。ここで、ステップＳ４では、コード範囲およびエリアキーとしては、発券機１０１から送信されてきたものが、そのまま書き込まれる。また、空き容量としては、発券機１０１から送信されてきた割り当てブロック数から１を減算した値が書き込まれる。なお、空き容量として、割り当てブロック数から１を減算した値を書き込むのは、作成されたエリア定義領域が、１のブロックを使用するためである。
【０１１５】
その後、ステップＳ５に進み、親エリアコードを有するエリア定義領域の空き容量が書き換えられ、エリア作成処理を終了する。即ち、ステップＳ５では、親エリアコードを有するエリア定義領域の空き容量から、割り当てブロック数を減算した値が、そのエリア定義領域の空き容量として、新たに書き込まれる。
【０１１６】
図５に示した管理者Ｂ１，Ｂ２，Ｃのエリア定義領域＃０１００ｈ，＃１０００ｈ，＃０３００ｈは、以上のエリア作成処理が行われることで作成される。
【０１１７】
即ち、ＩＣカード２の発行時において、その発行者でもある管理者Ａが、ＩＣカード２のリソースすべてを有しており、ＩＣカード２の使用可能な識別コードまたは容量が、例えば、００００ｈ乃至ＦＦＦＦｈまたは６５５３３ブロックであるとすると、ＩＣカード２の発行時においては、エリア定義領域としては、コード範囲が００００ｈ乃至ＦＦＦＦｈで、空き容量が６５５３２となっている、最上位階層のエリア定義領域＃００００ｈだけが存在している。
【０１１８】
なお、本実施の形態では、図４に示したように、ＥＥＰＲＯＭ６６は、６５５３６のブロックを有しているが、発行直後のＩＣカード２において、使用可能な容量が、それより３ブロック少ない６５５３３ブロックであるのは、図４に示したように、製造ＩＤブロック、発行ＩＤブロック、システム定義ブロックが存在するためである。
【０１１９】
また、最上位階層のエリア定義領域＃００００ｈの空き容量が、使用可能な容量である６５５３３ブロックより１ブロック少ない６５５３２ブロックとなるのは、エリア定義領域＃００００ｈ自体が、１ブロックを使用するためである。
【０１２０】
管理者Ａが、自身のリソースのうち、例えば、０１００ｈ乃至０３ＦＦｈの範囲の識別コードと、３３ブロックを、管理者Ｂ１に分け与える場合には、エリア作成処理が行われることにより、エリア定義領域＃０１００ｈが作成される。即ち、この場合、０１００ｈ乃至０３ＦＦｈがコード範囲として、また、３２ブロックが空き容量として、エリア定義領域＃０１００ｈに書き込まれる。なお、空き容量が、管理者Ａから分け与えられる３３ブロックより１ブロック少ないのは、エリア定義領域＃０１００ｈ自体が、１ブロックを使用するからである。
【０１２１】
エリア定義領域＃０１００ｈが作成されると、管理者Ａのエリア定義領域＃００００ｈの空き容量は、管理者Ｂ１に分け与えた３３ブロックだけ減らされる。
【０１２２】
また、管理者Ａが、自身のリソースのうち、例えば、１０００ｈ乃至１ＦＦＦｈの範囲の識別コードと、４９ブロックを、管理者Ｂ２に分け与える場合には、エリア作成処理が行われることにより、エリア定義領域＃１０００ｈが作成される。即ち、この場合、１０００ｈ乃至１ＦＦＦｈがコード範囲として、また、４８ブロックが空き容量として、エリア定義領域＃１０００ｈに書き込まれる。なお、空き容量が、管理者Ａから分け与えられる４９ブロックより１ブロック少ないのは、エリア定義領域＃１０００ｈ自体が、１ブロックを使用するからである。
【０１２３】
エリア定義領域＃１０００ｈが作成されると、管理者Ａのエリア定義領域＃００００ｈの空き容量は、管理者Ｂ２に分け与えた３３ブロックだけ減らされる。
【０１２４】
管理者Ｂ１またはＢ２それぞれは、以上のようにして、エリア定義領域＃０１００ｈまたは＃１０００ｈが作成されると、そのエリア定義領域＃０１００ｈまたは＃１０００ｈの階層に、その子の階層としてのエリア定義領域や、サービス定義領域を作成することが可能となる。
【０１２５】
例えば、いま、管理者Ｂ１が、自身のリソースのうち、例えば、０３００ｈ乃至０３ＦＦｈの範囲の識別コードと、１８ブロックを、管理者Ｃに分け与える場合には、エリア作成処理が行われることにより、エリア定義領域＃０３００ｈが作成される。即ち、この場合、０３００ｈ乃至０３ＦＦｈがコード範囲として、また、１７ブロックが空き容量として、エリア定義領域＃０３００ｈに書き込まれる。なお、空き容量が、管理者Ｂ１から分け与えられる１８ブロックより１ブロック少ないのは、エリア定義領域＃０３００ｈ自体が、１ブロックを使用するからである。
【０１２６】
エリア定義領域＃０３００ｈが作成されると、管理者Ｂ１エリア定義領域＃０１００ｈの空き容量は、管理者Ｃに分け与えた１８ブロックだけ減らされる。即ち、上述したように、エリア定義領域＃０１００ｈが作成された時点では、その空き領域は、３２ブロックであったが、１８ブロックだけ減らされて、図５に示したように、１４ブロックとなる。
【０１２７】
次に、図８のフローチャートを参照して、サービス作成処理について説明する。
【０１２８】
ＩＣカード２が発券機１０１に装着されると、発券機１０１は、ＩＣカード２に対して、サービス定義領域を作成することを指令するコマンド（以下、定義、サービス作成コマンドという）と、そのサービス定義領域を作成するために必要な情報、即ち、例えば、作成するサービス定義領域のサービスコード、そのサービス定義領域に割り当てられたブロック数（これも、以下、適宜、割り当てブロック数という）、サービスキー、およびサービス定義領域を作成する階層のエリア定義領域のエリアコード（これも、以下、適宜、親エリアコードという）などを送信する。
【０１２９】
ここで、サービス定義領域を作成するために必要な情報も、エリア作成処理における場合と同様に、セキュリティの観点から、例えば、親エリアコードを有するエリア定義領域に記憶されたエリアキーと同一のキーを用いて暗号化した状態で、ＩＣカード２に送信するのが望ましい。
【０１３０】
ＩＣカード２（シーケンサ９１）は、サービス作成コマンドを受信すると、それとともに送信されてくる暗号化された情報を復号し、これにより、親エリアコード、並びに作成対象のサービス定義領域のサービスコード、割り当てブロック数、およびサービスキーなどを認識する。
【０１３１】
そして、ＩＣカード２では、ステップＳ１１において、作成対象のサービス定義領域が、ＥＥＰＲＯＭ６６の中に既に作成されているかどうかが判定される。即ち、ステップＳ１１では、作成対象のサービス定義領域のサービスコードと同一のサービスコードを有するサービス定義領域が、既に作成されているかどうかが判定される。
【０１３２】
ステップＳ１１において、作成対象のサービス定義領域が既に作成されていると判定された場合、サービス作成処理を終了する。即ち、作成対象のサービス定義領域が既に作成されている場合は、同一のサービス定義領域を重複して作成する必要はないから、以降の処理は行われない。
【０１３３】
また、ステップＳ１１において、作成対象のサービス定義領域が作成されていないと判定された場合、ステップＳ１２に進み、作成対象のサービス定義領域のサービスコードおよび割り当てブロック数（容量）が適正かどうかが判定される。即ち、ステップＳ１２では、作成対象のサービス定義領域のサービスコードが、親エリアコードを有するエリア定義領域に記憶されているコード範囲に含まれており、かつ作成対象のサービス定義領域の割り当てブロック数が、親エリアコードを有するエリア定義領域に記憶されている空き容量以下であるかどうかが判定される。
【０１３４】
ステップＳ１２において、作成対象のサービス定義領域のサービスコードおよび割り当てブロック数が適正でないと判定された場合、即ち、作成対象のサービス定義領域のサービスコードが、親エリアコードを有するエリア定義領域に記憶されているコード範囲に含まれていないか、または作成対象のサービス定義領域の割り当てブロック数が、親エリアコードを有するエリア定義領域に記憶されている空き容量を越えている場合、ステップＳ１３に進み、エラー処理が行われ、エリア作成処理を終了する。即ち、ステップＳ３では、例えば、親エリアコードを有するエリア定義領域の階層に、サービス定義領域を作成することができない旨のメッセージが、発券機１０１に送信される。従って、この場合、サービス定義領域は作成されない。
【０１３５】
一方、ステップＳ１２において、作成対象のサービス定義領域のサービスコードおよび割り当てブロック数が適正であると判定された場合、即ち、作成対象のサービス定義領域のサービスコードが、親エリアコードを有するエリア定義領域に記憶されているコード範囲に含まれおり、かつ作成対象のサービス定義領域の割り当てブロック数が、親エリアコードを有するエリア定義領域に記憶されている空き容量以下である場合、ステップＳ１４に進み、作成対象のサービス定義領域が、親エリアコードを有するエリア定義領域の階層に作成される。
【０１３６】
即ち、ステップＳ１４では、ＥＥＰＲＯＭ６６（図４）の中の空きブロックのうち、最も下のブロック（論理アドレスの最も大きい空きブロック）が、作成対象のサービス定義領域に対応するサービス定義ブロックとして確保される。さらに、そのサービス定義ブロックに、サービスコード、容量、サービスキーなどが書き込まれる。ここで、ステップＳ１４では、サービスコードおよびサービスキーとしては、発券機１０１から送信されてきたものが、そのまま書き込まれる。また、容量としては、発券機１０１から送信されてきた割り当てブロック数から１を減算した値が書き込まれる。なお、容量として、割り当てブロック数から１を減算した値を書き込むのは、作成されたサービス定義領域が、１のブロックを使用するためである。
【０１３７】
また、ステップＳ１４では、作成されたサービス定義領域に書き込まれた容量に対応する数の空きブロックが、論理アドレスの小さい順に選択され、そのサービス定義領域が管理するサービス領域を構成するユーザブロックとして確保され、ステップＳ１５に進む。
【０１３８】
ステップＳ１５では、親エリアコードを有するエリア定義領域の空き容量が書き換えられ、サービス作成処理を終了する。即ち、ステップＳ１５では、親エリアコードを有するエリア定義領域の空き容量から、割り当てブロック数を減算した値が、そのエリア定義領域の空き容量として、新たに書き込まれる。
【０１３９】
図５に示した管理者Ａ，Ｂ２，Ｃのサービス定義領域＃０００８ｈ，＃１０２２ｈ，＃０３０Ｃｈは、以上のサービス作成処理が行われることで作成される。
【０１４０】
即ち、管理者Ａが、自身のリソースのうち、例えば、０００８ｈの識別コードと、９ブロックの容量を用いてサービスの提供を行う場合には、サービス作成処理が行われることにより、サービス定義領域＃０００８ｈが作成され、そこに、容量として、８ブロックが書き込まれる。さらに、８個の空きブロックがユーザブロックとして確保され、エリア定義領域＃０００８ｈによって管理されるサービス領域とされる。なお、サービス定義領域＃０００８ｈに書き込まれる容量が、９ブロックより１ブロック少ないのは、サービス定義領域＃０００８ｈ自体が、１ブロックを使用するからである。
【０１４１】
サービス定義領域＃０００８ｈが作成されると、管理者Ａのエリア定義領域＃００００ｈの空き容量は、サービス定義領域＃０００８ｈに分け与えた９ブロックだけ減らされる。
【０１４２】
以上により、管理者Ａは、サービス定義領域＃０００８ｈで管理される８ブロックのサービス領域を用いて、サービスを提供することが可能となる。
【０１４３】
また、管理者Ｂ２が、自身のリソースのうち、例えば、１０２２ｈの識別コードと、５ブロックの容量を用いてサービスの提供を行う場合には、サービス作成処理が行われることにより、サービス定義領域＃１０２２ｈが作成され、そこに、容量として、４ブロックが書き込まれる。さらに、４個の空きブロックがユーザブロックとして確保され、エリア定義領域＃１０２２ｈによって管理されるサービス領域とされる。なお、サービス定義領域＃１０２２ｈに書き込まれる容量が、５ブロックより１ブロック少ないのは、サービス定義領域＃１０２２ｈ自体が、１ブロックを使用するからである。
【０１４４】
サービス定義領域＃１０２２ｈが作成されると、管理者Ｂ２のエリア定義領域＃１０００ｈの空き容量は、サービス定義領域＃１０２２ｈに分け与えた５ブロックだけ減らされる。即ち、上述したように、エリア定義領域＃１０００ｈが作成された時点では、その空き容量は、４８ブロックであったが、５ブロックだけ減らされて、図５に示したように、４３ブロックとなる。
【０１４５】
以上により、管理者Ｂ２は、サービス定義領域＃１０２２ｈで管理される４ブロックのサービス領域を用いて、サービスを提供することが可能となる。
【０１４６】
さらに、管理者Ｃが、自身のリソースのうち、例えば、０３０Ｃｈの識別コードと、１７ブロックの容量を用いてサービスの提供を行う場合には、サービス作成処理が行われることにより、サービス定義領域＃０３０Ｃｈが作成され、そこに、容量として、１６ブロックが書き込まれる。さらに、１６個の空きブロックがユーザブロックとして確保され、エリア定義領域＃０３０Ｃｈによって管理されるサービス領域とされる。なお、サービス定義領域＃０３０Ｃｈに書き込まれる容量が、１７ブロックより１ブロック少ないのは、サービス定義領域＃０３０Ｃｈ自体が、１ブロックを使用するからである。
【０１４７】
サービス定義領域＃０３０Ｃｈが作成されると、管理者Ｃのエリア定義領域＃０３００ｈの空き容量は、サービス定義領域＃０３０Ｃｈに分け与えた１７ブロックだけ減らされる。即ち、上述したように、エリア定義領域＃０３００ｈが作成された時点では、その空き容量は、１７ブロックであったが、１７ブロックだけ減らされて、図５に示したように、０ブロックとなる。
【０１４８】
以上により、管理者Ｃは、サービス定義領域＃０３０Ｃｈで管理される１６ブロックのサービス領域を用いて、サービスを提供することが可能となる。
【０１４９】
以上のように、コード範囲および空き容量を記憶しているエリア定義領域に基づいて、ＥＥＰＲＯＭ６６を管理するようにしたので、ＩＣカード２のリソース管理を行うことが可能となる。即ち、あるエリア定義領域の階層の中で使用可能な容量および識別コードを制限することができる。
【０１５０】
ところで、ＩＣカードを、複数の管理者によるサービスの提供に用いる場合には、その複数の管理者それぞれに、階層としてのＤＦを割り当て、そのＤＦに、各管理者によるサービスの提供に供するデータとしてのＥＦを格納するようにする方法が考えられる。
【０１５１】
しかしながら、ＩＳＯ７８１６等では、ＤＦごとに、使用可能な容量や、ＤＦおよびＥＦを識別するための識別コード（ファイル名やディレクトリ名に相当する）などのＩＣカードのリソースを制限することが困難であった。
【０１５２】
このため、識別コードが、異なる管理者の間で重複することを防止したり、管理者が、あらかじめ、契約等で定められた容量を超えてＩＣカードが内蔵するメモリを使用することを制限すること等が困難であった。
【０１５３】
ここで、上述したように、本実施の形態のＩＣカード２においては、コード範囲および空き容量を記憶しているエリア定義領域に基づいて、ＥＥＰＲＯＭ６６を管理するようにしたので、ＩＣカード２のリソース管理を行うことが可能となる。即ち、あるエリア定義領域の階層の中で使用可能な容量および識別コードを制限することができる。その結果、例えば、ある管理者が、自身に割り当てられたリソース（ここでは、使用可能な容量および識別コード）の一部を、他の管理者に分け与えて、ＩＣカード２を共有したとしても、識別コードが、異なる管理者の間で重複することや、管理者が、あらかじめ、契約等で定められた容量を超えてＥＥＰＲＯＭ６６を使用することなどを防止することができる。
【０１５４】
次に、ＩＣカード２では、図５で説明したように、ＥＥＰＲＯＭ６６の記憶領域が、エリア定義領域を階層とする階層構造をなしており、さらに、各エリア定義領域およびサービス定義領域に、認証のためのキー（本実施の形態では、エリア定義領域またはサービス定義領域のキーを、それぞれエリアキーまたはサービスキーと呼んでいる）が記憶されている結果、ＩＣカード２に対するフレキシブルでセキュリティの高いアクセス制御を行うことが可能となっている。
【０１５５】
即ち、管理者どうしの間において、例えば、図９に示すような情報のやりとりを行うことで、ＩＣカード２に対するフレキシブルでセキュリティの高いアクセス制御を実現することができる。
【０１５６】
具体的には、ＩＣカード２の発行者でもある管理者Ａは、ＥＥＰＲＯＭ６６（図４）のシステム定義ブロックに記憶させるシステムキーと、自身のエリア定義領域＃００００ｈのエリアキーを決定し、システムキーをシステム定義ブロックに、エリアキー＃００００ｈをエリア定義領域＃００００ｈに、それぞれ記憶させておく。ここで、エリア定義領域＃ｘｘｘｘｈのエリアキーを、以下、適宜、エリアキー＃ｘｘｘｘｈと記載する。
【０１５７】
さらに、管理者Ａは、システムキーを、エリアキー＃００００ｈで暗号化し、エリア中間キーＫAを生成しておく。なお、暗号化の手法としては、例えば、ＤＥＳ（Data Encryption Standard）や、ＦＥＡＬ（Fast Data Encipherment Algolithm）などを採用することができる。
【０１５８】
そして、管理者Ａは、自身のリソースを、管理者Ｂ１に分け与えるとき、エリア中間キーＫAを、管理者Ｂ１に与える。さらに、管理者Ａは、管理者Ｂ１のエリアキー＃０１００ｈを決定し、自身のエリアコード＃００００ｈとともに、管理者Ｂ１に与える（配布する）。
【０１５９】
従って、管理者Ｂ１は、エリア中間キーＫAおよび自身のエリアキー＃０１００ｈを認識することができるが、システムキー、および、いわば親である管理者Ａのエリアキー＃００００ｈは認識することができない。但し、管理者Ｂ１のエリアキー＃０１００ｈは、親である管理者Ａが、いわば子である管理者Ｂ１に与えたものであるから、親である管理者Ａは、子である管理者Ｂ１のエリアキー＃０１００ｈを認識している。
【０１６０】
なお、管理者Ａが管理者Ｂ１に与えたエリアキー＃０１００ｈは、管理者Ｂ１のエリア定義領域＃０１００ｈのエリア作成処理（図７）において、そのエリア定義領域＃０１００ｈに書き込まれる。
【０１６１】
管理者Ｂ１は、その親である管理者Ａから得たエリア中間キーＫAを、やはり管理者Ａから得たエリアキー＃０１００ｈで暗号化し、エリア中間キーＫB1を生成しておく。
【０１６２】
また、管理者Ａは、自身のリソースを、管理者Ｂ２に分け与えるときも、エリア中間キーＫAを、管理者Ｂ２に与える。さらに、管理者Ａは、管理者Ｂ２のエリアキー＃１０００ｈを決定し、自身のエリアコード＃００００ｈとともに、管理者Ｂ２に与える。
【０１６３】
従って、管理者Ｂ２は、エリア中間キーＫAおよび自身のエリアキー＃１０００ｈを認識することができるが、システムキー、および親である管理者Ａのエリアキー＃００００ｈは認識することができない。但し、管理者Ｂ２のエリアキー＃１０００ｈは、親である管理者Ａが、子である管理者Ｂ２に与えたものであるから、親である管理者Ａは、子である管理者Ｂ２のエリアキー＃１０００ｈを認識している。
【０１６４】
なお、管理者Ａが管理者Ｂ２に与えたエリアキー＃１０００ｈは、管理者Ｂ２のエリア定義領域＃１０００ｈのエリア作成処理において、そのエリア定義領域＃１０００ｈに書き込まれる。
【０１６５】
管理者Ｂ２は、その親である管理者Ａから得たエリア中間キーＫAを、やはり管理者Ａから得たエリアキー＃１０００ｈで暗号化し、エリア中間キーＫB2を生成しておく。
【０１６６】
一方、管理者Ｂ１は、自身のリソースを、管理者Ｃに分け与えるとき、エリア中間キーＫB1を、管理者Ｃに与える。さらに、管理者Ｂ１は、管理者Ｃのエリアキー＃０３００ｈを決定し、自身のエリアコード＃０１００ｈおよび親である管理者Ａのエリアコード＃００００ｈとともに、管理者Ｃに与える。
【０１６７】
従って、管理者Ｃは、エリア中間キーＫB1および自身のエリアキー＃０３０００ｈを認識することができるが、親である管理者Ｂ１のエリアキー＃０１００ｈは認識することができない。但し、エリアキー＃０１００ｈは、親である管理者Ｂ１が、子である管理者Ｃに与えたものであるから、親である管理者Ｂ１は、子である管理者Ｃのエリアキー＃０３００ｈを認識している。
【０１６８】
なお、管理者Ｂ１が管理者Ｃに与えたエリアキー＃０３００ｈは、管理者Ｃのエリア定義領域＃０３００ｈのエリア作成処理において、そのエリア定義領域＃０３００ｈに書き込まれる。
【０１６９】
管理者Ｃは、その親である管理者Ｂ１から得たエリア中間キーＫB1を、やはり管理者Ｂ１から得たエリアキー＃０３００ｈで暗号化し、エリア中間キーＫCを生成しておく。
【０１７０】
そして、管理者Ａは、自身のエリア定義領域＃００００ｈの階層に作成されたサービス定義領域＃０００８ｈで管理されるサービス領域を利用してサービスを提供するとき、図１０に示すように、サービス定義領域＃０００８ｈに記憶させたサービスキー（サービス定義領域＃ｘｘｘｘｈに記憶されたサービスキーを、以下、適宜、サービスキー＃ｘｘｘｘｈと記載する）を、エリア中間キーＫAで暗号化し、サービス中間キーＫ#0008hを生成して、エリア中間キーＫAとともに、サービス提供装置１１１に登録する。さらに、管理者Ａは、自身のエリア定義領域＃００００ｈのエリアコード＃００００ｈと、そのエリア定義領域＃００００ｈの階層に作成されたサービス定義領域＃０００８ｈのサービスコード＃０００８ｈも、サービス提供装置１１１に登録する。
【０１７１】
ここで、サービス提供装置１１１は、例えば、図１のＲ／Ｗ１とコントローラ３から構成され、所定のサービス領域に対してデータを読み書きすることで、所定のサービスを提供するようになされている。
【０１７２】
この場合、サービス提供装置１１１に、ＩＣカード２が装着されると、サービス提供装置１１１とＩＣカード２との間で、次のようにして相互認証が行われる。
【０１７３】
即ち、サービス提供装置１１１は、図１１に示すように、登録されているエリアコード＃００００ｈと、サービスコード＃０００８ｈとを、ＩＣカード２に送信する。ＩＣカード２（シーケンサ９１）では、サービス提供装置１１１からのエリアコード＃００００ｈおよびサービスコード＃０００８ｈが受信される。
【０１７４】
そして、ＩＣカード２では、システム定義ブロック（図４）に記憶されているシステムキーが読み出されるとともに、サービス提供装置１１１から受信したエリアコード＃００００ｈを有するエリア定義領域からエリアキー＃００００ｈが読み出される。さらに、システムキーが、エリアキー＃００００ｈで暗号化され、その結果、図１０のサービス提供装置１１１に登録されているエリア中間キーＫAと同一のキーが生成される。このエリア中間キーＫAと同一のキーは、認証に用いる第１アクセスキー（認証キー）Ｋbcとされる。
【０１７５】
また、ＩＣカード２では、サービス提供装置１１１から受信したサービスコード＃０００８ｈを有するサービス定義領域からサービスキー＃０００８ｈが読み出される。そして、そのサービスキー＃０００８ｈで、エリア中間キーＫAが暗号化され、その結果、図１０のサービス提供装置１１１に登録されているサービス中間キーＫ#0008hと同一のキーが生成される。このサービス中間キーＫ#0008hと同一のキーは、認証に用いる第２アクセスキーＫacとされる。
【０１７６】
従って、いまの場合、サービス提供装置１１１には、第１アクセスキーＫbcまたは第２アクセスキーＫacであるエリア中間キーＫAまたはサービス中間キーＫ#0008hが登録されており、ＩＣカード２では、第１アクセスキーＫbcまたは第２アクセスキーＫacであるエリア中間キーＫAまたはサービス中間キーＫ#0008hが生成される。
【０１７７】
そして、サービス提供装置１１１は、例えば、図１２に示すようにして、ＩＣカード２の認証を行う。
【０１７８】
即ち、サービス提供装置１１１では、乱数が発生され、その乱数が、アルゴリズムＥ１にしたがって変換される。即ち、乱数が、第２アクセスキーＫacで暗号化（例えば、ＤＥＳ暗号化）され、その暗号化結果が、第１アクセスキーＫbcで復号（例えば、ＤＥＳ復号）される。さらに、その復号結果が、第２アクセスキーＫacで暗号化される。アルゴリズムＥ１による乱数の変換結果は、ＩＣカード２に送信される。
【０１７９】
ＩＣカード２では、サービス提供装置１１１からのアルゴリズムＥ１による乱数の変換結果が、アルゴルズムＤ１にしたがって変換される。即ち、アルゴリズムＥ１による変換結果が、第２アクセスキーＫacで復号され、その復号結果が、第１アクセスキーＫbcで暗号化される。さらに、その暗号化結果が、第２アクセスキーＫacで復号される。
【０１８０】
そして、ＩＣカード２では、アルゴリズムＤ１による変換結果が、さらに、アルゴリズムＥ２にしたがって変換される。即ち、アルゴリズムＤ１による変換結果が、第１アクセスキーＫbcで暗号化される一方、第１アクセスキーＫbcが、第２アクセスキーＫacで暗号化される。そして、アルゴリズムＤ１による変換結果の、第１アクセスキーＫbcでの暗号化結果が、第１アクセスキーＫbcの、第２アクセスキーＫacでの暗号化結果で復号される。さらに、その復号結果が、第１アクセスキーＫbcで暗号化され、サービス提供装置１１１に送信される。
【０１８１】
サービス提供装置１１１では、ＩＣカード２からのアルゴリズムＥ２による変換結果が、アルゴリズムＤ２にしたがって変換される。即ち、アルゴリズムＥ２による変換結果が、第１アクセスキーＫbcで復号される一方、第１アクセスキーＫbcが、第２アクセスキーＫacで暗号化される。そして、アルゴリズムＥ２による変換結果の、第１アクセスキーＫbcでの復号結果が、第１アクセスキーＫbcの、第２アクセスキーＫacでの暗号化結果で暗号化される。さらに、その暗号化結果が、第１アクセスキーＫbcで復号される。
【０１８２】
そして、サービス提供装置１１１では、元の乱数と、アルゴリズムＤ２による変換結果とを比較することで、ＩＣカード２の認証を行う。即ち、元の乱数と、アルゴリズムＤ２による変換結果とが一致している場合は、ＩＣカード２が適正なものとして認識され、一致していない場合は、ＩＣカード２が不適正なもの（例えば、偽造されたもの）として認識される。
【０１８３】
ＩＣカード２が適正なものとして認識されると、ＩＣカード２において、例えば、図１３に示すようにして、サービス提供装置１１１の認証が行われる。
【０１８４】
即ち、ＩＣカード２では、乱数が発生され、その乱数が、アルゴリズムＥ２にしたがって変換され、サービス提供装置１１１に送信される。
【０１８５】
サービス提供装置１１１では、ＩＣカード２からのアルゴリズムＥ２による乱数の変換結果が、アルゴルズムＤ２にしたがって変換される。さらに、そのアルゴリズムＤ２による変換結果が、アルゴリズムＥ１にしたがって変換され、ＩＣカード２に送信される。
【０１８６】
ＩＣカード２では、サービス提供装置１１１からのアルゴリズムＥ１による変換結果が、アルゴリズムＤ１にしたがって変換され、その変換結果と、元の乱数とを比較することで、サービス提供装置１１１の認証が行われる。即ち、元の乱数と、アルゴリズムＤ２による変換結果とが一致している場合は、サービス提供装置１１１が適正なものとして認識され、一致していない場合は、サービス提供装置１１１が不適正なもの（例えば、改造されたもの）として認識される。
【０１８７】
ＩＣカード２およびサービス提供装置１１１のいずれも適正なものと認められた場合、ＩＣカード２では、サービス提供装置１１１から送信されてきたサービスコードを有するサービス定義領域によって管理されているサービス領域のみへのアクセスが許可される。従って、図１０および図１１で説明した場合においては、サービス定義領域＃０００８ｈで管理されているサービス領域のみへのアクセスが可能となる。
【０１８８】
即ち、エリア中間キーＫA、エリアコード＃００００ｈ、サービスキー＃０００８ｈ、およびサービスコード＃０００８ｈを知っている管理者Ａは、サービス定義領域＃０００８ｈで管理されているサービス領域にアクセスすることができる。但し、管理者Ａは、サービスキー＃１０２２ｈや＃０３０Ｃｈを知らないから、基本的に、サービス定義領域＃１０２２ｈや＃０３０Ｃｈで管理されているサービス領域にアクセスすることはできない。
【０１８９】
次に、管理者Ｂ２が、自身のエリア定義領域＃１０００ｈの階層に作成されたサービス定義領域＃１０２２ｈで管理されるサービス領域を利用してサービスを提供するときは、図１４に示すように、サービス定義領域＃１０２２ｈに記憶させたサービスキー＃１０２２ｈを、エリア中間キーＫB2で暗号化し、サービス中間キーＫ#1022hを生成して、エリア中間キーＫB2とともに、サービス提供装置１１１に登録する。そして、管理者Ｂ２は、自身のエリア定義領域＃１０００ｈの階層より上位の階層のエリア定義領域のエリアコード、即ち、いまの場合、管理者Ａのエリア定義領域＃００００ｈのエリアコード＃００００ｈ、および自身のエリア定義領域＃１０００ｈのエリアコード＃１０００ｈと、そのエリア定義領域＃１０００ｈの階層に作成されたサービス定義領域＃１０２２ｈのサービスコード＃１０２２ｈも、サービス提供装置１１１に登録する。
【０１９０】
この場合、サービス提供装置１１１に、ＩＣカード２が装着されると、サービス提供装置１１１とＩＣカード２との間で、次のようにして相互認証が行われる。
【０１９１】
即ち、サービス提供装置１１１は、図１５に示すように、登録されているエリアコード＃００００ｈおよび＃１０００ｈと、サービスコード＃１０２２ｈとを、ＩＣカード２に送信する。ＩＣカード２（シーケンサ９１）では、サービス提供装置１１１からのエリアコード＃００００ｈおよび＃１０００ｈ、並びにサービスコード＃１０２２ｈが受信される。
【０１９２】
そして、ＩＣカード２では、システム定義ブロック（図４）に記憶されているシステムキーが読み出されるとともに、サービス提供装置１１１から受信したエリアコード＃００００ｈまたは＃１０００ｈを有するエリア定義領域それぞれからエリアキー＃００００ｈまたは＃１０００ｈが読み出される。さらに、システムキーが、エリアキー＃００００ｈで暗号化され、その結果、エリア中間キーＫAと同一のキーが生成される。そして、そのエリア中間キーＫAと同一のキーが、エリアキー＃１０００ｈで暗号化され、その結果、図１４のサービス提供装置１１１に登録されているエリア中間キーＫB2と同一のキーが生成される。このエリア中間キーＫB2と同一のキーは、認証に用いる第１アクセスキーＫbcとされる。
【０１９３】
また、ＩＣカード２では、サービス提供装置１１１から受信したサービスコード＃１０２２ｈを有するサービス定義領域からサービスキー＃１０２２ｈが読み出される。そして、そのサービスキー＃１０２２ｈで、エリア中間キーＫB2と同一のキーが暗号化され、その結果、図１４のサービス提供装置１１１に登録されているサービス中間キーＫ#1022hと同一のキーが生成される。このサービス中間キーＫ#1022hと同一のキーは、認証に用いる第２アクセスキーＫacとされる。
【０１９４】
従って、いまの場合、サービス提供装置１１１には、第１アクセスキーＫbcまたは第２アクセスキーＫacであるエリア中間キーＫB2またはサービス中間キーＫ#1022hが登録されており、ＩＣカード２では、第１アクセスキーＫbcまたは第２アクセスキーＫacであるエリア中間キーＫB2またはサービス中間キーＫ#1022hが生成される。
【０１９５】
そして、ＩＣカード２およびサービス提供装置１１１の間で、図１２および図１３で説明した場合と同様にして、相互認証が行われる。
【０１９６】
その相互認証の結果、ＩＣカード２およびサービス提供装置１１１のいずれも適正なものと認められた場合、ＩＣカード２では、サービス提供装置１１１から送信されてきたサービスコードを有するサービス定義領域によって管理されているサービス領域のみへのアクセスが許可される。従って、図１４および図１５で説明した場合においては、サービス定義領域＃１０２２ｈで管理されているサービス領域のみへのアクセスが可能となる。
【０１９７】
即ち、エリア中間キーＫB2、エリアコード＃００００ｈ、＃１０００ｈ、サービスキー＃１０２２ｈ、並びにサービスコード＃１０２２ｈを知っている管理者Ｂ２は、サービス定義領域＃１０２２ｈで管理されているサービス領域にアクセスすることができる。但し、管理者Ｂ２は、サービスキー＃０００８ｈや＃０３０Ｃｈを知らないから、基本的に、サービス定義領域＃０００８ｈや＃０３０Ｃｈで管理されているサービス領域にアクセスすることはできない。
【０１９８】
次に、管理者Ｃが、自身のエリア定義領域＃０３００ｈの階層に作成されたサービス定義領域＃０３０Ｃｈで管理されるサービス領域を利用してサービスを提供するときは、図１６に示すように、サービス定義領域＃０３０Ｃｈに記憶させたサービスキー＃０３０Ｃｈを、エリア中間キーＫCで暗号化し、サービス中間キーＫ#030Chを生成して、エリア中間キーＫCとともに、サービス提供装置１１１に登録する。そして、管理者Ｃは、自身のエリア定義領域＃０３００ｈの階層より上位の階層のエリア定義領域のエリアコード、即ち、いまの場合、管理者Ａのエリア定義領域＃００００ｈのエリアコード＃００００ｈおよび管理者Ｂ１のエリア定義領域＃０１００ｈのエリアコード０１００ｈ、並びに自身のエリア定義領域＃０３００ｈのエリアコード＃０３００ｈと、そのエリア定義領域＃０３００ｈの階層に作成されたサービス定義領域＃０３０Ｃｈのサービスコード＃０３０Ｃｈも、サービス提供装置１１１に登録する。
【０１９９】
この場合、サービス提供装置１１１に、ＩＣカード２が装着されると、サービス提供装置１１１とＩＣカード２との間で、次のようにして相互認証が行われる。
【０２００】
即ち、サービス提供装置１１１は、図１７に示すように、登録されているエリアコード＃００００ｈ、＃０１００ｈ、および＃０３００ｈと、サービスコード＃０３０Ｃｈとを、ＩＣカード２に送信する。ＩＣカード２（シーケンサ９１）では、サービス提供装置１１１からのエリアコード＃００００ｈ、＃０１００ｈ、および＃０３００ｈ、並びにサービスコード＃０３０Ｃｈが受信される。
【０２０１】
そして、ＩＣカード２では、システム定義ブロック（図４）に記憶されているシステムキーが読み出されるとともに、サービス提供装置１１１から受信したエリアコード＃００００ｈ、＃０１００ｈ、または＃０３００ｈを有するエリア定義領域それぞれからエリアキー＃００００ｈ、＃０１００ｈ、または＃０３００ｈが読み出される。さらに、システムキーが、エリアキー＃００００ｈで暗号化され、その結果、エリア中間キーＫAと同一のキーが生成される。また、そのエリア中間キーＫAと同一のキーが、エリアキー＃０１００ｈで暗号化され、その結果、エリア中間キーＫB1と同一のキーが生成される。そして、そのエリア中間キーＫB1と同一のキーが、エリアキー＃０３００ｈで暗号化され、その結果、図１６のサービス提供装置１１１に登録されているエリア中間キーＫCと同一のキーが生成される。このエリア中間キーＫCと同一のキーは、認証に用いる第１アクセスキーＫbcとされる。
【０２０２】
また、ＩＣカード２では、サービス提供装置１１１から受信したサービスコード＃０３０Ｃｈを有するサービス定義領域からサービスキー＃０３０Ｃｈが読み出される。そして、そのサービスキー＃０３０Ｃｈで、エリア中間キーＫCが暗号化され、その結果、図１６のサービス提供装置１１１に登録されているサービス中間キーＫ#030Chと同一のキーが生成される。このサービス中間キーＫ#030Chと同一のキーは、認証に用いる第２アクセスキーＫacとされる。
【０２０３】
従って、いまの場合、サービス提供装置１１１には、第１アクセスキーＫbcまたは第２アクセスキーＫacであるエリア中間キーＫCまたはサービス中間キーＫ#030Chがそれぞれ登録されており、ＩＣカード２では、第１アクセスキーＫbcまたは第２アクセスキーＫacであるエリア中間キーＫCまたはサービス中間キーＫ#030Chがそれぞれ生成される。
【０２０４】
そして、ＩＣカード２およびサービス提供装置１１１の間で、図１２および図１３で説明した場合と同様にして、相互認証が行われる。
【０２０５】
その相互認証の結果、ＩＣカード２およびサービス提供装置１１１のいずれも適正なものと認められた場合、ＩＣカード２では、サービス提供装置１１１から送信されてきたサービスコードを有するサービス定義領域によって管理されているサービス領域のみへのアクセスが許可される。従って、図１６および図１７で説明した場合においては、サービス定義領域＃０３０Ｃｈで管理されているサービス領域のみへのアクセスが可能となる。
【０２０６】
即ち、エリア中間キーＫC、エリアコード＃００００ｈ、＃０１００ｈ、＃０３００ｈ、サービスキー＃０３０Ｃｈ、並びにサービスコード＃０３０Ｃｈを知っている管理者Ｃは、サービス定義領域＃０３０Ｃｈで管理されているサービス領域にアクセスすることができる。但し、管理者Ｃは、サービスキー＃０００８ｈや＃１０２２Ｃｈを知らないから、基本的に、サービス定義領域＃０００８ｈや＃１０２２Ｃｈで管理されているサービス領域にアクセスすることはできない。
【０２０７】
以上のように、上位の階層のエリアキーを知らなくても、管理者は、自身のサービス領域にアクセスすることができる。
【０２０８】
ところで、上述のように、各管理者は、サービスキーを知らないサービス定義領域によって管理されるサービス領域にはアクセスすることができないが、例えば、管理者Ｃが、自身のサービス定義領域＃０３０Ｃｈによって管理されるサービス領域を利用したサービスの他、管理者Ｂ２のサービス定義領域＃１０２２ｈによって管理されるサービス領域を利用したサービスも行いたい場合がある。
【０２０９】
この場合、管理者Ｃが、サービス定義領域＃１０２２ｈによって管理されるサービス領域にアクセスするには、図１４および図１５で説明したように、エリア中間キーＫB2、エリアコード＃００００ｈ、＃１０００ｈ、サービスキー＃１０２２ｈ、並びにサービスコード＃１０２２ｈを知る必要があり、従って、単純には、これらの情報を、管理者Ｂ２から教えてもらう必要がある。
【０２１０】
しかしながら、管理者Ｂ２が知っているサービスキー＃１０２２ｈは、その親である管理者Ａでも知り得ないものであり、このような管理者Ｂ２しか知り得ないサービスキー＃１０２２ｈを、管理者Ｃに教えてしまうのは、セキュリティの観点から好ましくない。
【０２１１】
また、この場合、セキュリティの問題を無視しても、管理者Ｃが、サービス定義領域＃０３０Ｃｈまたは＃１０２２ｈによってそれぞれ管理される２つのサービス領域の両方にアクセスするには、ＩＣカード２において、図１５で説明した処理を行うことにより、第１アクセスキーＫbcおよび第２アクセスキーＫacを生成し、サービス定義領域＃０３０Ｃｈによって管理されるサービス領域へのアクセスのための相互認証を行うとともに、図１７で説明した処理を行うことにより第１アクセスキーＫbcおよび第２アクセスキーＫacを生成し、サービス定義領域＃１０２２ｈによって管理されるサービス領域へのアクセスのための相互認証を行う必要がある。
【０２１２】
従って、サービス領域ごとに、そのサービス領域へのアクセスのための相互認証を行う場合には、各サービス領域に、迅速にアクセスすることが困難となり、その結果、例えば、図１のカードシステムを駅の改札に通用した場合には、通勤者が、改札口に設けられているゲートを通過する、比較的に短い時間に、ＩＣカード２の所定のサービス領域にアクセスして、データを書き込み、または読み出すことが困難となる。
【０２１３】
そこで、例えば、管理者Ｃが、自身のサービス定義領域＃０３０Ｃｈによって管理されるサービス領域を利用したサービスの他、管理者Ｂ２のサービス定義領域＃１０２２ｈによって管理されるサービス領域を利用したサービスも行う場合には、セキュリティの問題を解決し、かつサービス領域への迅速なアクセスを確保するために、管理者ＣおよびＢ２との間で、例えば、図１８に示すような、情報のやりとりを行い、サービス提供装置１１１への登録を行う。
【０２１４】
即ち、管理者Ｃは、図１６における場合と同様に、サービス定義領域＃０３０Ｃｈに記憶させたサービスキー＃０３０Ｃｈを、エリア中間キーＫCで暗号化し、サービス中間キーＫ#030Chを生成する。さらに、管理者Ｃは、このサービス中間キーＫ#030Chを、管理者Ｂ２に渡し、サービスキー＃１０２２ｈで暗号化してもらう。そして、管理者Ｃは、サービス中間キーＫ#030Chの、サービスキー＃１０２２ｈでの暗号化結果であるサービス中間キーＫ#1022h'を、サービスコード＃１０２２ｈとともに受け取る。
【０２１５】
従って、管理者ＣとＢ２との間でやりとりされるキーは、サービス中間キーＫ#030ChおよびＫ#1022h'だけであり、管理者Ｃしか知り得ないサービスキー＃０３０Ｃｈが、管理者Ｂ２に知られたり、また、管理者Ｂ２しか知り得ないサービスキー＃１０２２ｈが、管理者Ｃに知られることはない。即ち、セキュリティ上の問題はない。
【０２１６】
管理者Ｂ２から、サービス中間キーＫ#1022h'およびサービスコード＃１０２２ｈを受け取った管理者Ｃは、それらとともに、自身のエリア定義領域＃０３００ｈの階層より上位の階層のエリア定義領域のエリアコード、即ち、いまの場合、管理者Ａのエリア定義領域＃００００ｈのエリアコード＃００００ｈおよび管理者Ｂ１のエリア定義領域＃０１００ｈのエリアコード０１００ｈ、並びに自身のエリア定義領域＃０３００ｈのエリアコード＃０３００ｈを、サービス提供装置１１１に登録する。さらに、管理者Ｃは、エリア中間キーＫC、およびエリア定義領域＃０３００ｈの階層に作成されたサービス定義領域＃０３０Ｃｈのサービスコード＃０３０Ｃｈも、サービス提供装置１１１に登録する。
【０２１７】
この場合、サービス提供装置１１１に、ＩＣカード２が装着されると、サービス提供装置１１１とＩＣカード２との間で、次のようにして相互認証が行われる。
【０２１８】
即ち、サービス提供装置１１１は、図１９に示すように、登録されているエリアコード＃００００ｈ、＃０１００ｈ、および＃０３００ｈと、サービスコード＃０３０Ｃｈおよび＃１０２２ｈとを、ＩＣカード２に送信する。ＩＣカード２（シーケンサ９１）では、サービス提供装置１１１からのエリアコード＃００００ｈ、＃０１００ｈ、および＃０３００ｈ、並びにサービスコード＃０３０Ｃｈおよび＃１０２２ｈが受信される。
【０２１９】
そして、ＩＣカード２では、システム定義ブロック（図４）に記憶されているシステムキーが読み出されるとともに、サービス提供装置１１１から受信したエリアコード＃００００ｈ、＃０１００ｈ、または＃０３００ｈを有するエリア定義領域それぞれからエリアキー＃００００ｈ、＃０１００ｈ、または＃０３００ｈが読み出され、図１７で説明した場合と同様にして、図１８のサービス提供装置１１１に登録されているエリア中間キーＫCと同一のキーが生成される。このエリア中間キーＫCと同一のキーは、認証に用いる第１アクセスキーＫbcとされる。
【０２２０】
また、ＩＣカード２では、サービス提供装置１１１から受信したサービスコード＃０３０Ｃｈまたは＃１０２２ｈを有するサービス定義領域それぞれからサービスキー＃０３０Ｃｈまたは＃１０２２ｈが読み出される。そして、まず、サービスキー＃０３０Ｃｈで、エリア中間キーＫCが暗号化され、その結果、サービス中間キーＫ#030Chと同一のキーが生成される。さらに、そのサービス中間キーＫ#030Chと同一のキーが、サービスキー＃１０２２ｈで暗号化され、図１８のサービス提供装置１１１に登録されているサービス中間キーＫ#1022h'と同一のキーーが生成される。このサービス中間キーＫ#1022h'と同一のキーは、認証に用いる第２アクセスキーＫacとされる。
【０２２１】
従って、いまの場合、サービス提供装置１１１には、第１アクセスキーＫbcまたは第２アクセスキーＫacであるエリア中間キーＫCまたはサービス中間キーＫ#1022h'が登録されており、ＩＣカード２では、第１アクセスキーＫbcまたは第２アクセスキーＫacであるエリア中間キーＫCまたはサービス中間キーＫ#1022h'が生成される。
【０２２２】
そして、ＩＣカード２およびサービス提供装置１１１の間で、図１２および図１３で説明した場合と同様にして、相互認証が行われる。
【０２２３】
その相互認証の結果、ＩＣカード２およびサービス提供装置１１１のいずれも適正なものと認められた場合、ＩＣカード２では、サービス提供装置１１１から送信されてきたサービスコードを有するサービス定義領域によって管理されているサービス領域のみへのアクセスが許可される。従って、図１８および図１９で説明した場合においては、サービス定義領域＃０３０Ｃｈで管理されているサービス領域、およびサービス定義領域＃１０２２Ｃｈで管理されているサービス領域へのアクセスが可能となる。
【０２２４】
以上のように、システムキーを、２以上のエリアキーまたはサービスキーで暗号化することにより、その２以上のエリアキーまたはサービスキーを、２つの第１アクセスキーＫbcおよび第２アクセスキーＫacに縮退（合成）し、その第１アクセスキーＫbcおよび第２アクセスキーＫacを用いて、サービス提供装置１１１から送信されてきたサービスコードを有するサービス定義領域によって管理されているサービス領域へのアクセスを許可するための相互認証を行うようにしたので、複数のサービス定義領域へのアクセスを対象とする場合でも、短時間で、相互認証を終了することができ、これにより、サービス領域への迅速なアクセスを確保することができる。
【０２２５】
なお、図１２および図１３で説明した場合には、相互認証処理を、第１アクセスキーＫbcおよび第２アクセスキーＫacの２つのキーを用いて行うようにしたが、例えば、第２アクセスキーＫacだけを用いて行うようにすることも可能である。この場合、ＩＣカード２では、システムキーを、２以上のエリアキーまたはサービスキーで暗号化することにより、その２以上のエリアキーまたはサービスキーが、１の第２アクセスキーＫacに縮退されることになる。
【０２２６】
また、相互認証には、図２０に示すように、第１アクセスキーＫbcおよび第２アクセスキーＫacを、ＩＣカード２に固有の値である、例えば、製造ＩＤブロックに記憶された製造ＩＤなどで暗号化した暗号化結果を用いることも可能である。ここで、図２０においては、第１アクセスキーＫbcについては、製造ＩＤとのＥＸＯＲをとられることで暗号化が行われており、第２アクセスキーＫacについては、ＤＥＳ方式による暗号化が行われている。なお、第２アクセスキーＫacについては、第１アクセスキーＫbcと製造ＩＤとのＥＸＯＲの結果をキーとして、ＤＥＳ方式による暗号化を行うことも可能である。
【０２２７】
このように、第１アクセスキーＫbcおよび第２アクセスキーＫacを暗号化した暗号化結果を相互認証に用いる場合には、セキュリティを、より向上させることが可能となる。なお、この場合、サービス提供装置１１１において、製造ＩＤが必要となるが、これは、ＩＣカード２から送信するようにすれば良い。
【０２２８】
次に、ＥＥＰＲＯＭ６６の記憶領域が、エリア定義領域を階層とする階層構造をなしており、さらに、各エリア定義領域およびサービス定義領域が、認証のためのエリアキーおよびサービスキーを記憶するようになされている結果、例えば、次のような、フレキシビリティのあるアクセス制御を行うことができる。
【０２２９】
即ち、例えば、ある管理者を、親の管理者として、そのリソースを分け与えられた子の管理者が、不正なサービスなどを行っており、そのサービスの提供を停止させたい場合には、親の管理者が、そのエリア定義領域に記憶されたエリアキーを変更することで、子の管理者による、ＩＣカード２へのアクセスを禁止することができる。
【０２３０】
具体的には、例えば、図５において、管理者Ｂ１が、管理者Ｃによるサービスの提供を停止させる場合、ＩＣカード２のエリア定義領域＃０１００ｈに記憶されたエリアキー＃０１００ｈを変更する。この場合、図１７において、ＩＣカード２において生成されるエリア中間キーＫB1、さらには、エリア中間キーＫCも変更されることとなるから、変更前のエリア中間キーＫCしか知らない管理者Ｃは、サービス定義領域＃０３０Ｃｈにアクセスすることはできなくなる。
【０２３１】
なお、管理者Ｃの親の管理者である管理者Ｂ１の、さらに親の管理者である管理者Ａが、そのエリア定義領域＃００００ｈに記憶されたエリアキー＃００００ｈを変更することによっても、サービス定義領域＃０３０Ｃｈへのアクセスを禁止することが可能である。但し、この場合は、管理者Ａの子の管理者Ｂ２が、自身のサービス定義領域＃１０２２ｈによって管理されるサービス領域にアクセスすることもできなくなる。即ち、ある管理者が、そのエリアキーを変更した場合には、そのエリア定義領域の階層の中にある階層（子の階層、孫の階層、・・・）のエリア定義領域が管理しているサービス定義領域へのアクセスはできなくなる。
【０２３２】
また、図１８および図１９では、管理者Ｃが、管理者Ｂ２のサービス定義領域＃１０２２ｈ（によって管理されるサービス領域）を、管理者Ｂ２と共有する場合について説明したが、キーの管理によっては、管理者どうしの間で、より複雑な関係のサービス定義領域の共有が可能となる。
【０２３３】
具体的には、例えば、いま、ＥＥＰＲＯＭ６６において、図２１に示すような階層構造が構成されているとする。即ち、図２１では、ＩＣカード２の発行者でもある管理者Ａのエリア定義領域＃００００ｈの階層の子の階層として、管理者Ｅのエリア定義領域＃５０００ｈ、および管理者Ｇのエリア定義領域＃７０００ｈが作成されている。さらに、管理者Ｅのエリア定義領域＃５０００ｈの階層には、サービス定義領域＃５００８ｈ、＃５０４８ｈ、＃５０８８ｈ、および＃５０Ｃ８ｈが作成されているとともに、管理者Ｆのエリア定義領域＃６０００ｈが作成されている。
【０２３４】
また、管理者Ｆのエリア定義領域＃６０００ｈの階層には、サービス定義領域＃６００８ｈおよび＃６０４８ｈが作成されており、管理者Ｇのエリア定義領域＃７０００ｈの階層には、サービス定義領域＃７００８ｈおよび＃７０Ｃ８ｈが作成されている。
【０２３５】
以上のような階層構造において、管理者Ａは、図２２（Ａ）に示すように、システムキーを、エリアキー＃００００ｈで暗号化し、その暗号化結果を、子の管理者である管理者ＥおよびＧに渡す。
【０２３６】
管理者Ｅは、図２２（Ｂ）に示すように、管理者Ａからの、システムキーの、エリアキー＃００００ｈでの暗号化結果を、エリアキー＃５０００ｈで暗号化し、その暗号化結果を、第１アクセスキーＫE1として用いることとする。さらに、管理者Ｅは、第１アクセスキーＫE1（エリアキー＃５０００ｈによる暗号化結果）を、サービスキー＃５００８ｈ、＃５０４８ｈ、＃５０８８ｈ、＃５０Ｃ８ｈで順次暗号化し、その最終的な暗号化結果を、第２アクセスキーＫE2として用いることとする。
【０２３７】
また、管理者Ｆは、図２２（Ｃ）に示すように、管理者Ｅから第１アクセスキーＫE1（エリアキー＃５０００ｈによる暗号化結果）をもらい、それを、エリアキー＃６０００ｈで暗号化し、その暗号化結果を、第１アクセスキーＫF1とする。さらに、管理者Ｆは、第１アクセスキーＫF1（エリアキー＃６０００ｈによる暗号化結果）を、サービスキー＃６００８ｈ，＃６０４８ｈで順次暗号化する。そして、その暗号化結果を、管理者Ｅに渡し、サービスキー＃５０４８ｈ、＃５０８８ｈで順次暗号化してもらう。その後、管理者Ｆは、その暗号化結果を、管理者Ｅからもらい、管理者Ｇに渡し、サービスキー＃７０Ｃ８ｈで暗号化してもらう。そして、管理者Ｆは、その暗号化結果を、管理者Ｇからもらい、第２アクセスキーＫF2として用いることとする。
【０２３８】
一方、管理者Ｇは、図２２（Ｄ）に示すように、管理者Ａからの、システムキーの、エリアキー＃００００ｈでの暗号化結果を、エリアキー＃７０００ｈで暗号化し、その暗号化結果を、第１アクセスキーＫG1として用いることとする。さらに、管理者Ｇは、第１アクセスキーＫG1（エリアキー＃７０００ｈによる暗号化結果）を、サービスキー＃７００８ｈ、＃７０Ｃ８ｈで順次暗号化し、その最終的な暗号化結果を、管理者Ｆに渡して、サービスキー＃６０４８ｈで暗号化してもらう。その後、管理者Ｇは、管理者Ｆによるサービスキー＃６０４８を用いた暗号化結果を、管理者Ｅに渡し、サービスキー＃５０８８ｈ、＃５０Ｃ８ｈで順次暗号化してもらう。そして、管理者Ｇは、その暗号化結果を、管理者Ｅからもらい、第２アクセスキーＫG2として用いることとする。
【０２３９】
この場合、ＩＣカード２において、図２２で説明した場合と同様の手順で、ＥＥＰＲＯＭ６６に記憶されているエリアキー、サービスキーを用いて、システムキーを暗号化し、第１アクセスキーおよび第２アクセスキーを生成することで、管理者Ｅ，Ｆ，Ｇ相互の間では、図２３に示すようなサービス定義領域の共有が可能となる。
【０２４０】
即ち、管理者Ｅは、自身のサービス定義領域＃５００８、＃５０４８ｈ、＃５０８８ｈ、＃５０Ｃ８ｈのみにアクセスすることができる。管理者Ｆは、自身のサービス定義領域＃６００８ｈ、＃６０４８ｈにアクセスする他、管理者Ｅのサービス定義領域＃５０４８ｈ、＃５０８８ｈ、および管理者Ｇのサービス定義領域＃７０Ｃ８ｈにアクセスすることが可能となる。管理者Ｇは、自身のサービス定義領域＃７００８ｈ、＃７０Ｃ８ｈにアクセスする他、管理者Ｅのサービス定義領域＃５０８８ｈ、＃５０Ｃ８ｈ、および管理者Ｆのサービス定義領域＃６０４８ｈにアクセスすることが可能となる。
【０２４１】
なお、図２２に示したようなキーの受け渡しにおいて、ある管理者のサービスキー自体が、他の管理者に知られることはない。即ち、管理者Ｅのサービスキー＃５００８ｈ、＃５０４８ｈ、＃５０８８ｈ、＃５０Ｃ８ｈは、親の管理者Ａは勿論、管理者ＦおよびＧにも知られることはない。同様に、管理者Ｆのサービスキー＃６００８ｈ、＃６０４８ｈは、管理者ＥおよびＧに知られることはなく、管理者Ｇのサービスキー＃７００８ｈ、＃７０Ｃ８ｈは、管理者ＥおよびＦに知られることはない。
【０２４２】
また、上述したように、ある管理者が、そのエリアキーを変更した場合には、そのエリア定義領域の階層の中にある階層のエリア定義領域が管理しているサービス定義領域すべてへのアクセスはできなくなるが、即ち、親の管理者がエリアキーを変更した場合には、その子の管理者は、ＩＣカード２へのアクセスをすることができなくなるが、キー管理の仕方によっては、特定の子の管理者だけのアクセスを禁止することが可能となる。
【０２４３】
具体的には、例えば、いま、ＥＥＰＲＯＭ６６において、図２４に示すような階層構造が構成されているとする。即ち、図２４では、ＩＣカード２の発行者でもある管理者Ａのエリア定義領域＃００００ｈの階層の子の階層として、管理者Ｈのエリア定義領域＃８０００ｈ、管理者Ｉのエリア定義領域＃９０００ｈ、および管理者Ｊのエリア定義領域＃Ａ０００ｈが作成されている。さらに、管理者Ｈのエリア定義領域＃８０００ｈの階層には、サービス定義領域＃８００８ｈ、＃８１０４ｈ、および＃８１０５ｈが作成されている。
【０２４４】
以上のような階層構造において、管理者Ａは、図２５（Ａ）に示すように、システムキーを、エリアキー＃００００ｈで暗号化し、その暗号化結果を、子の管理者である管理者ＩおよびＪに渡す。
【０２４５】
管理者Ｉは、図２５（Ｃ）に示すように、管理者Ａからの、システムキーの、エリアキー＃００００ｈでの暗号化結果を、エリアキー＃９０００ｈで暗号化し、その暗号化結果を、第１アクセスキーＫI1として用いることとする。さらに、管理者Ｉは、第１アクセスキーＫI1（エリアキー＃９０００ｈによる暗号化結果）を、管理者Ｈに渡し、図２５（Ｂ）に示すように、サービスキー＃８００８ｈ、＃８１０４ｈで順次暗号化してもらう。そして、管理者Ｉは、その暗号化結果を、図２５（Ｃ）に示すように、第２アクセスキーＫI2として用いることとする。
【０２４６】
また、管理者Ｊは、図２５（Ｄ）に示すように、管理者Ａからの、システムキーの、エリアキー＃００００ｈでの暗号化結果を、エリアキー＃Ａ０００ｈで暗号化し、その暗号化結果を、第１アクセスキーＫJ1として用いることとする。さらに、管理者Ｊは、第１アクセスキーＫJ1（エリアキー＃Ａ０００ｈによる暗号化結果）を、管理者Ｈに渡し、図２５（Ｂ）に示すように、サービスキー＃８００８ｈ、＃８１０５ｈで順次暗号化してもらう。そして、管理者Ｊは、その暗号化結果を、図２５（Ｄ）に示すように、第２アクセスキーＫJ2として用いることとする。
【０２４７】
この場合、ＩＣカード２において、図２５で説明した場合と同様の手順で、ＥＥＰＲＯＭ６６に記憶されているエリアキー、サービスキーを用いて、システムキーを暗号化し、第１アクセスキーおよび第２アクセスキーを生成することで、管理者Ｉは、管理者Ｈのサービス定義領域＃８００８ｈおよび＃８１０４ｈにアクセスすることが、管理者Ｊは、管理者Ｈのサービス定義領域＃８００８ｈおよび＃８１０５ｈにアクセスすることが、それぞれ可能となる。
【０２４８】
一方、管理者Ｈは、サービス定義領域＃８００８ｈを、管理者ＩおよびＪとの間でデータを共有するものとして作成しておき、サービス定義領域＃８１０４ｈまたは＃８１０５ｈを、管理者ＩまたはＪそれぞれによるサービス定義領域＃８００８ｈへのアクセスを制御するための、いわばダミーのサービス定義領域として作成しておく。従って、サービス定義領域＃８１０４ｈおよび＃８１０５ｈで管理されるサービス領域は必要なく、その容量は０ブロックで良い。
【０２４９】
この場合において、管理者Ｈが、例えば、サービスキー＃８１０４ｈを変更すると、ＩＣカード２において、そのサービスキー＃８１０４ｈを用いて、第２アクセスキーＫI2が生成されて認証が行われる管理者Ｉは、サービス定義領域＃８００８ｈにアクセスすることができなくなる。即ち、管理者Ｉによるサービス定義領域＃８００８ｈへのアクセスだけが禁止される。一方、管理者Ｈが、例えば、サービスキー＃８１０５ｈを変更すると、ＩＣカード２において、そのサービスキー＃８１０５ｈを用いて、第２アクセスキーＫJ2が生成されて認証が行われる管理者Ｊは、サービス定義領域＃８００８ｈにアクセスすることができなくなる。即ち、管理者Ｊによるサービス定義領域＃８００８ｈへのアクセスだけが禁止される。
【０２５０】
以上のように、ダミーのサービス定義領域を利用することで、特定の子の管理者だけのアクセスを禁止することができる。
【０２５１】
以上、本発明を、非接触で通信が行われる非接触カードシステムに適用した場合について説明したが、本発明は、接触した状態で通信が行われるカードシステムにも適用可能である。また、本発明の適用範囲は、カードシステムに限定されるものではない。
【０２５２】
なお、本実施の形態では、認証を、いわゆる秘密鍵方式で行うようにしたが、認証は、いわゆる公開鍵方式で行うようにすることも可能である。
【０２５３】
また、本実施の形態では、あるエリア定義領域の階層のサービス定義領域にアクセスするときに、そのエリア定義領域の階層から、最上位階層までのパス上にあるエリア定義領域のエリアキーを順次用いて、第１アクセスキーを生成するようにしたが、第１アクセスキーの生成方法は、これに限定されるものではない。さらに、本実施の形態では、アクセス対象のサービス定義領域のサービスキーを順次用いて、第２アクセスキーを生成するようにしたが、第２アクセスキーの生成方法も、これに限定されるものではない。即ち、第１アクセスキーおよび第２アクセスキーは、任意の２以上のエリアキーまたはサービスキーを順次用いて生成することが可能である。
【０２５４】
さらに、本実施の形態では、ユーザブロックおよびシステムブロックのいずれも、１のメモリであるＥＥＰＲＯＭ６６に記憶させるようにしたが、ユーザブロックとシステムブロックとは、物理的に、別々のメモリに記憶させるようにすることが可能である。
【０２５５】
また、本実施の形態では、データをＥＥＰＲＯＭに記憶させるようにしたが、本発明は、ＥＥＰＲＯＭ以外の半導体メモリや、磁気ディスクなどを対象とすることも可能である。
【０２５６】
本実施の形態に記載のデータ記憶装置およびデータ記憶方法によれば、管理対象の記憶領域に割り当て可能な、記憶領域を識別するための記憶領域識別コードの範囲、および管理対象の記憶領域の空き容量を記憶するエリア定義領域を有する記憶手段のエリア定義領域の記憶内容に基づいて、記憶手段が管理される。従って、記憶手段のリソース管理を行うことが可能となる。
【０２５７】
本実施の形態に記載のデータ記憶装置およびに記載のデータ記憶方法によれば、データ記憶手段の記憶領域が階層構造にされて管理されており、データ記憶手段の記憶領域の各階層に対する階層キー、またはデータが記憶された記憶領域に対するデータ記憶領域キーを、２以上用いて、認証に用いる１以上の認証キーが生成され、その認証キーに基づいて、認証が行われる。従って、データ記憶手段に対する、フレキシブルでセキュリティの高いアクセス制御を行うことが可能となる。
【図面の簡単な説明】
【０２５８】
【図１】本発明を適用したカードシステムの一実施の形態の構成例を示すブロック図である。
【図２】図１のリーダ／ライタ１の構成例を示すブロック図である。
【図３】図１のＩＣカード２の構成例を示すブロック図である。
【図４】図３のＥＥＰＲＯＭ６６の論理フォーマットを示す図である。
【図５】図３のＥＥＰＲＯＭ６６のディレクトリ構造を示す図である。
【図６】図５の階層構造が構成されていく過程を説明するための図である。
【図７】エリア作成処理を説明するためのフローチャートである。
【図８】サービス作成処理を説明するためのフローチャートである。
【図９】管理者間でのキーの受け渡しを説明するための図である。
【図１０】管理者Ａがサービスを提供するときに必要な情報を説明するための図である。
【図１１】管理者Ａがサービスを提供するときのＩＣカード２の処理を説明するための図である。
【図１２】サービス提供装置１１１によるＩＣカード２の認証方法を説明するための図である。
【図１３】ＩＣカード２によるサービス提供装置１１１の認証方法を説明するための図である。
【図１４】管理者Ｂ２がサービスを提供するときに必要な情報を説明するための図である。
【図１５】管理者Ｂ２がサービスを提供するときのＩＣカード２の処理を説明するための図である。
【図１６】管理者Ｃがサービスを提供するときに必要な情報を説明するための図である。
【図１７】管理者Ｃがサービスを提供するときのＩＣカード２の処理を説明するための図である。
【図１８】管理者Ｃがサービスを提供するときに必要な情報を説明するための図である。
【図１９】管理者Ｃがサービスを提供するときのＩＣカード２の処理を説明するための図である。
【図２０】相互認証に用いる第１アクセスキーおよび第２アクセスキーの生成方法を説明するための図である。
【図２１】ＥＥＰＲＯＭ６６における階層構造を示す図である。
【図２２】管理者間でのキーの受け渡しを説明するための図である。
【図２３】管理者間でのサービス（データ）の共有を説明するための図である。
【図２４】ＥＥＰＲＯＭ６６における階層構造を示す図である。
【図２５】管理者間でのキーの受け渡しを説明するための図である。
【符号の説明】
【０２５９】
１  リーダ／ライタ，  ２  ＩＣカード，  ３  コントローラ，  ２１  ＩＣ，  ２３  変調回路，  ２５  復調回路，  ２７  アンテナ，  ５１  ＩＣ，  ５２  コンデンサ，  ５３  アンテナ，  ６１  ＲＦインタフェース部，  ６２  ＢＰＳＫ復調回路，  ６３  ＰＬＬ部，  ６４  演算部，  ６５  ＲＯＭ，  ６６  ＥＥＰＲＯＭ，  ６７  ＲＡＭ，  ６８  ＢＰＳＫ変調回路，  ８１  ＡＳＫ復調部，  ８２  電圧レギュレータ，  ８３  発振回路，  ８４  ＡＳＫ変調部，  ９１  シーケンサ，  ９２  暗号／復号部，  ９３  パリティ演算部，  １０１  発券機，  １１１  サービス提供装置
【図１】
0004618259.tif 000002
【図２】
0004618259.tif 000003
【図３】
0004618259.tif 000004
【図４】
0004618259.tif 000005
【図５】
0004618259.tif 000006
【図６】
0004618259.tif 000007
【図７】
0004618259.tif 000008
【図８】
0004618259.tif 000009
【図９】
0004618259.tif 000010
【図１０】
0004618259.tif 000011
【図１１】
0004618259.tif 000012
【図１２】
0004618259.tif 000013
【図１３】
0004618259.tif 000014
【図１４】
0004618259.tif 000015
【図１５】
0004618259.tif 000016
【図１６】
0004618259.tif 000017
【図１７】
0004618259.tif 000018
【図１８】
0004618259.tif 000019
【図１９】
0004618259.tif 000020
【図２０】
0004618259.tif 000021
【図２１】
0004618259.tif 000022
【図２２】
0004618259.tif 000023
【図２３】
0004618259.tif 000024
【図２４】
0004618259.tif 000025
【図２５】
0004618259.tif 000026