(57)【要約】【課題】追加登録処理において未登録の領域を、追加登録処理と同一の手順によりリカバリする。【解決手段】ICカード３２は、階層構造を成した第１の領域を記憶するメモリを有し、通信装置から送信される、エリア領域の下位階層に第２の領域の生成を指示する指示コマンドに応じて、エリア領域の下位階層に第２の領域を生成する領域生成処理を実行し、領域生成処理が中断された場合、通信装置からの要求に応じて、第２の領域が生成済みであるか否かを示す第１の情報を送信する。そして、ICカード３２は、第１の情報として、第２の領域が生成済みでないことを示す情報が送信されたことに応じて、通信装置から送信される指示コマンドを受信した場合、領域生成処理の中断状態に拘らず、再度、同一の領域生成処理を実行する。本発明は、例えば、リーダライタと通信を行うICカード等に適用できる。【選択図】図３
2011090436.tif 000002
【特許請求の範囲】
【請求項１】
階層構造を成した第１の領域を記憶する記憶手段と、
通信装置から送信される、前記第１の領域の下位階層に第２の領域の生成を指示する指示コマンドに応じて、前記第１の領域の下位階層に前記第２の領域を生成する領域生成処理を実行する実行手段と、
前記領域生成処理が中断された場合、前記通信装置からの要求に応じて、前記第２の領域が生成済みであるか否かを示す第１の情報を送信する送信手段と
を含み、
前記実行手段は、前記第１の情報として、前記第２の領域が生成済みでないことを示す情報が送信されたことに応じて、前記通信装置から送信される前記指示コマンドを受信した場合、前記領域生成処理の中断状態に拘らず、再度、同一の前記領域生成処理を実行する
情報処理装置。
【請求項２】
前記送信手段は、前記第２の領域が生成済みである場合、前記通信装置からの要求に応じて、生成済みの前記第２の領域についての領域情報と、前記通信装置により指定される領域情報が一致するか否かを示す第２の情報も送信し、
前記実行手段は、前記第１の情報として、前記第２の領域が生成済み済みであることを示す情報が送信されるとともに、前記第２の情報として、前記領域情報が一致することを示す情報が送信されたことに応じて、前記通信装置から送信される前記指示コマンドを受信した場合、前記領域生成処理の中断状態に拘らず、再度、同一の前記領域生成処理を実行する
請求項１に記載の情報処理装置。
【請求項３】
前記送信手段は、前記領域情報として、生成済みの前記第２の領域の鍵、前記鍵の鍵バージョン、又は生成済みの前記第２の領域の記憶容量を表す割当サイズの少なくとも１つを表す情報が一致するか否かを示す第２の情報も送信する
請求項２に記載の情報処理装置。
【請求項４】
前記送信手段は、階層構造を成した複数の前記第２の領域を生成する前記領域生成処理が実行された場合、前記通信装置からの要求に応じて、前記複数の第２の領域のうち、最下位階層の第２の領域が生成済みであるか否かを示す第１の情報を送信する
請求項１に記載の情報処理装置。
【請求項５】
前記実行手段は、前記第１の領域の鍵に基づいて、前記通信装置との相互認証を行った後に、前記領域生成処理を実行する
請求項１に記載の情報処理装置。
【請求項６】
コンピュータを、
階層構造を成した第１の領域を記憶する記憶手段と、
通信装置から送信される、前記第１の領域の下位階層に第２の領域の生成を指示する指示コマンドに応じて、前記第１の領域の下位階層に前記第２の領域を生成する領域生成処理を実行する実行手段と、
前記領域生成処理が中断された場合、前記通信装置からの要求に応じて、前記第２の領域が生成済みであるか否かを示す第１の情報を送信する送信手段と
して機能させ、
前記実行手段は、前記第１の情報として、前記第２の領域が生成済みでないことを示す情報が送信されたことに応じて、前記通信装置から送信される前記指示コマンドを受信した場合、前記領域生成処理の中断状態に拘らず、再度、同一の前記領域生成処理を実行する
プログラム。
【請求項７】
情報処理装置のメモリに記憶されている、階層構造を成した第１の領域の下位階層に第２の領域の生成を指示する指示コマンドを送信する送信手段と、
前記指示コマンドに応じて前記情報処理装置により行われる、前記第１の領域の下位階層に前記第２の領域を生成する領域生成処理が中断された場合、前記第２の領域が生成済みであるか否かを示す第１の情報の送信を要求する要求手段と、
前記要求手段による要求に応じて送信されてくる前記第１の情報を受信する受信手段と、
受信された前記第１の情報に基づいて、前記第２の領域が生成済みであるか否かを判定する判定手段と
を含み、
前記送信手段は、前記第２の領域が生成済みでないと判定された場合、再度、前記指示コマンドを送信する
通信装置。
【請求項８】
コンピュータを、
情報処理装置のメモリに記憶されている、階層構造を成した第１の領域の下位階層に第２の領域の生成を指示する指示コマンドを送信する送信手段と、
前記指示コマンドに応じて前記情報処理装置により行われる、前記第１の領域の下位階層に前記第２の領域を生成する領域生成処理が中断された場合、前記第２の領域が生成済みであるか否かを示す第１の情報の送信を要求する要求手段と、
前記要求手段による要求に応じて送信されてくる前記第１の情報を受信する受信手段と、
受信された前記第１の情報に基づいて、前記第２の領域が生成済みであるか否かを判定する判定手段と
して機能させ、
前記送信手段は、前記第２の領域が生成済みでないと判定された場合、再度、前記指示コマンドを送信する
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、通信装置、及びプログラムに関し、特に、例えば、通信装置の指示にしたがって、情報処理装置のメモリ上に新たな領域を追加して登録（生成）する追加登録処理を行う場合に用いて好適な情報処理装置、通信装置、及びプログラムに関する。
【背景技術】
【０００２】
従来、Felica（商標）カードに代表されるIC(integrated circuit)カードは、その製造段階において、ICカードに内蔵されたメモリ上の記憶領域に対して、物理フォーマット等による初期化が行われる。そして、初期化後の記憶領域に、エリア領域やサービス領域を登録（生成）する初期登録処理が行われる。
【０００３】
この初期登録処理では、例えば、図１に示されるように、ICカードの記憶領域に、エリア領域A0が生成され、エリア領域A0の下位階層にエリア領域A1、さらにその下位階層にサービス領域S11が生成される。
【０００４】
ここで、エリア領域とは、エリア領域又はサービス領域の少なくとも一方を下位階層として有することが可能な領域をいう。
【０００５】
なお、エリア領域は、ICカードの記憶領域に記憶されるエリア定義情報により定義される。したがって、ICカードの記憶領域には、エリア定義情報が記憶されることにより、対応するエリア領域が生成される。
【０００６】
ここで、エリア定義情報とは、対応するエリア領域が記憶領域上に存在する範囲を表すエリア範囲、そのエリア範囲を一意に識別するためのエリアコード、エリア領域にアクセスするためのものであって、認証に用いる認証鍵を生成するためのエリア鍵、エリア鍵の鍵バージョン、及びエリア領域に割り当てられた割当サイズ等を含む情報である。
【０００７】
また、サービス領域とは、所定のサービス（例えば電子マネーによる決済）をユーザに提供するために必要なユーザデータ（例えば、電子マネー）が記憶される記憶領域をいう。
【０００８】
なお、サービス領域は、ICカードの記憶領域に記憶されるサービス定義情報により定義される。したがって、ICカードの記憶領域には、サービス定義情報が記憶されることにより、対応するサービス領域が生成される。
【０００９】
ここで、サービス定義情報とは、対応するサービス領域（記憶領域上に存在する）を一意に識別するためのサービスコード、サービス領域にアクセスするためのものであって、認証に用いる認証鍵を生成するためのサービス鍵、サービス鍵の鍵バージョン、及びサービス領域に割り当てられた割当サイズ等を含む情報である。
【００１０】
ユーザは、初期登録処理によりサービス領域S11等が生成されたICカードを、サービス提供用のリーダライタ等にかざすことにより、サービス領域S11に記憶されたユーザデータを読み書きすることができる。具体的には、例えば、ICカードが電子マネーシステムに利用されている場合、プリペイドマネーをチャージしたり、商品の購入代金を減額したりすることができる。
【００１１】
ところで、今後、ユーザが、そのICカードを用いて、新たなサービスを受けることができるようにする場合、具体的には、例えば、身分証明書として利用しているICカードに電子マネーとしてのサービスを追加したり、鉄道の定期券としてのサービスを追加したりする場合には、ICカードの記憶領域上に、新たなサービスに対応した領域を、新たに追加する必要がある。
【００１２】
この場合、例えば、図１に示されるように、新たに追加する領域として、生成済みのエリア領域A0の下位階層にエリア領域A2、エリア領域A2の下位階層にエリア領域A21、及びエリア領域A21の下位階層にサービス領域S211を生成する追加登録処理が行われる。
【００１３】
ところで、例えば、追加登録処理が行われている場合、ICカードに対する電源の供給が途絶えること等により、追加登録処理が中断されてしまうことが生じ得る。
【００１４】
特に、ICカードが、リーダライタからの電磁波に基づいて電源の供給が行われる、いわゆる非接触型のICカードである場合には、接続端子から電源の供給が行われる、いわゆる接触型のICカードと比較して、電源の供給が途絶える可能性があり、追加登録処理が中断しやすい。
【００１５】
追加登録処理が中断された場合には、追加登録処理において未生成の領域（例えば、エリア領域A2は生成済みだが、その下位階層であるエリア領域A21及びサービス領域S211については未生成等）が生じ得る。
【００１６】
ここで、初期登録処理において、ICカードに対する電源の供給が途絶えること等により、初期登録処理が中断された場合には、ICカードの記憶領域を初期化して、初期登録処理が行われる以前の状態に戻した上で、再度、初期登録処理を行うことにより対処している。
【００１７】
したがって、追加登録処理が中断された場合の対処として、初期登録処理と同様に、ICカードの記憶領域を初期化して、追加登録処理が行われる以前の状態（エリア領域A0及びA1、並びにサービス領域S11が登録されている状態）に戻した上で、再度、追加登録処理を行うことが考えられる。
【００１８】
しかしながら、ICカードの記憶領域を初期化した場合、追加登録処理において生成済みの領域（例えばエリア領域A2）の他、初期登録処理において生成済みのエリア領域A0及びA1、並びにサービス領域S11についても消去されてしまう。
【００１９】
そこで、携帯電話機に搭載されているICチップ（上述したICカードと同等の機能を有する）に対しては、新たにエリア領域A2及びA21、並びにサービス領域S211を追加する場合に、そのエリア定義情報やサービス定義情報を、すべて、携帯電話機の揮発性メモリに一時的に記憶し、揮発性メモリに記憶したエリア定義情報やサービス定義情報を、一括してICチップの記憶領域に記憶させる領域登録方法が存在する。
【００２０】
また、追加登録処理が中断される直前にICカードの記憶領域に生成しようとしていた領域と、すでにICカードの記憶領域に生成済みの領域とを比較し、その比較結果に基づいて、追加登録処理において中断された位置を判断する判断技術が存在する（例えば、特許文献１を参照）。
【先行技術文献】
【特許文献】
【００２１】
【特許文献１】特開２００５−２４２５５３号公報
【発明の概要】
【発明が解決しようとする課題】
【００２２】
従来の領域登録方法によれば、電源の供給が途絶えた場合には、揮発性メモリに一時的に記憶していたエリア定義情報やサービス定義情報が消去されて、領域登録方法が行われる以前の状態（エリア領域A0及びA1、並びにサービス領域S11が登録されている状態）となるため、ICカードの記憶領域を初期化する必要がない。
【００２３】
しかし、従来の領域登録方法では、ハードウェア（特に揮発性メモリ）のリソース（資源）を多く必要とするため、モバイル端末に搭載されたICチップと比較して、使用可能な揮発性メモリの記憶容量が小さいICカードでは、従来の領域登録方法を採用することは現実的ではない。
【００２４】
また、従来の判断技術では、追加登録処理において、追加登録処理が中断された位置を判断することができるため、その位置から処理を再開することができるものの、追加登録処理による中断の位置に応じて異なる処理を行う必要があった。
【００２５】
本発明は、このような状況に鑑みてなされたものであり、追加登録処理の中断状態に拘らず、追加登録処理と同一の手順により、追加登録処理において未登録の領域をリカバリ（生成）できるようにするものである。
【課題を解決するための手段】
【００２６】
本発明の第１の側面の情報処理装置、又はプログラムは、階層構造を成した第１の領域を記憶する記憶手段と、通信装置から送信される、前記第１の領域の下位階層に第２の領域の生成を指示する指示コマンドに応じて、前記第１の領域の下位階層に前記第２の領域を生成する領域生成処理を実行する実行手段と、前記領域生成処理が中断された場合、前記通信装置からの要求に応じて、前記第２の領域が生成済みであるか否かを示す第１の情報を送信する送信手段とを含み、前記実行手段は、前記第１の情報として、前記第２の領域が生成済みでないことを示す情報が送信されたことに応じて、前記通信装置から送信される前記指示コマンドを受信した場合、前記領域生成処理の中断状態に拘らず、再度、同一の前記領域生成処理を実行する情報処理装置、又は情報処理装置として機能させるためのプログラムである。
【００２７】
前記送信手段では、前記第２の領域が生成済みである場合、前記通信装置からの要求に応じて、生成済みの前記第２の領域についての領域情報と、前記通信装置により指定される領域情報が一致するか否かを示す第２の情報も送信するようにし、前記実行手段では、前記第１の情報として、前記第２の領域が生成済み済みであることを示す情報が送信されるとともに、前記第２の情報として、前記領域情報が一致することを示す情報が送信されたことに応じて、前記通信装置から送信される前記指示コマンドを受信した場合、前記領域生成処理の中断状態に拘らず、再度、同一の前記領域生成処理を実行するようにすることができる。
【００２８】
前記送信手段では、前記領域情報として、生成済みの前記第２の領域の鍵、前記鍵の鍵バージョン、又は生成済みの前記第２の領域の記憶容量を表す割当サイズの少なくとも１つを表す情報が一致するか否かを示す第２の情報も送信するようにすることができる。
【００２９】
前記送信手段では、階層構造を成した複数の前記第２の領域を生成する前記領域生成処理が実行された場合、前記通信装置からの要求に応じて、前記複数の第２の領域のうち、最下位階層の第２の領域が生成済みであるか否かを示す第１の情報を送信するようにすることができる。
【００３０】
前記実行手段では、前記第１の領域の鍵に基づいて、前記通信装置との相互認証を行った後に、前記領域生成処理を実行するようにすることができる。
【００３１】
本発明の第１の側面によれば、通信装置から送信される、前記第１の領域の下位階層に第２の領域の生成を指示する指示コマンドに応じて、前記第１の領域の下位階層に前記第２の領域を生成する領域生成処理が実行され、前記領域生成処理が中断された場合、前記通信装置からの要求に応じて、前記第２の領域が生成済みであるか否かを示す第１の情報が送信される。そして、前記第１の情報として、前記第２の領域が生成済みでないことを示す情報が送信されたことに応じて、前記通信装置から送信される前記指示コマンドが受信された場合、前記領域生成処理の中断状態に拘らず、再度、同一の前記領域生成処理が実行される。
【００３２】
本発明の第２の側面の通信装置、又はプログラムは、情報処理装置のメモリに記憶されている、階層構造を成した第１の領域の下位階層に第２の領域の生成を指示する指示コマンドを送信する送信手段と、前記指示コマンドに応じて前記情報処理装置により行われる、前記第１の領域の下位階層に前記第２の領域を生成する領域生成処理が中断された場合、前記第２の領域が生成済みであるか否かを示す第１の情報の送信を要求する要求手段と、前記要求手段による要求に応じて送信されてくる前記第１の情報を受信する受信手段と、受信された前記第１の情報に基づいて、前記第２の領域が生成済みであるか否かを判定する判定手段とを含み、前記送信手段は、前記第２の領域が生成済みでないと判定された場合、再度、前記指示コマンドを送信する通信装置、又は通信装置として機能させるためのプログラムである。
【００３３】
本発明の第２の側面によれば、情報処理装置のメモリに記憶されている、階層構造を成した第１の領域の下位階層に第２の領域の生成を指示する指示コマンドが送信され、前記指示コマンドに応じて前記情報処理装置により行われる、前記第１の領域の下位階層に前記第２の領域を生成する領域生成処理が中断された場合、前記第２の領域が生成済みであるか否かを示す第１の情報の送信が要求され、その要求に応じて送信されてくる前記第１の情報が受信され、受信された前記第１の情報に基づいて、前記第２の領域が生成済みであるか否かが判定される。そして、前記第２の領域が生成済みでないと判定された場合、再度、前記指示コマンドが送信される。
【発明の効果】
【００３４】
本発明によれば、追加登録処理の中断状態に拘らず、追加登録処理と同一の手順により、未登録の領域をリカバリすることができる。
【図面の簡単な説明】
【００３５】
【図１】エリア領域、及びサービス領域の階層構造を示す図である。
【図２】本発明を適用した通信システムの構成例を示すブロック図である。
【図３】リーダライタの構成例を示すブロック図である。
【図４】ICカードの構成例を示すブロック図である。
【図５】追加登録処理を説明するためのフローチャートである。
【図６】リカバリ登録処理を説明するためのフローチャートである。
【図７】生成指示処理を説明するためのフローチャートである。
【図８】生成処理を説明するためのフローチャートである。
【発明を実施するための形態】
【００３６】
以下、発明を実施するための形態（以下、本実施の形態という）について説明する。なお、説明は以下の順序で行う。
１．  本実施の形態（追加登録処理において生成が指示された領域すべてを再び生成する場合の一例）
２．  変形例
【００３７】
＜１．本実施の形態＞
[通信システム１の構成例]
図２は、本発明を適用した通信システム１の一例を示している。
【００３８】
この通信システム１は、リーダライタ３１及び非接触ICカード３２（以下、ICカード３２ともいう）により構成されており、リーダライタ３１とICカード３２との間で非接触近接無線通信を行う。なお、ICカード３２は、リーダライタ３２からのコマンドに応じて、新たに領域を追加する追加登録処理を行う。
【００３９】
リーダライタ３１は、追加登録処理が中断された場合、その中断状態に拘らず、追加登録処理において新たに追加する領域のリカバリ（生成）を、ICカード３２に指示する生成指示処理を行う。
【００４０】
ICカード３２は、リーライタ３１による生成指示処理に応じて、追加登録処理において新たに追加する領域をリカバリする生成処理を行う。
【００４１】
なお、追加登録処理は、図５のフローチャートを、生成指示処理は、図７のフローチャートを、生成処理は、図８のフローチャートを参照してそれぞれ後述する。
【００４２】
[リーダライタ３１の構成例]
図３は、リーダライタ３１の構成例を示している。
【００４３】
このリーダライタ３１は、アンテナ６１、復調部６２、SPU（signal processing unit）６３、変調部６４、発振回路６５、バス６６、CPU（central processing unit）６７、RAM(random access memory)６８、ROM（read only memory）６９、及び記憶部７０により構成される。SPU６３、CPU６７、RAM６８、ROM６９、及び記憶部７０は、バス６６を介して相互に接続されている。
【００４４】
アンテナ６１は、変調部６４からの変調信号を非接触近接無線通信により送信する。また、アンテナ６１は、他の装置（例えば、ICカード３２）から送信されてきた（電磁波としての）変調信号を受信し、復調部６２に供給する。
【００４５】
復調部６２は、アンテナ６１からの変調信号を復調し、その結果得られるコマンド等をSPU６３に供給する。SPU６３は、CPU６７からバス６６を介して供給されるコマンド等を符号化して変調部６４に出力する。また、SPU６３は、復調部６２からのコマンド等を復号し、バス６６を介してCPU６７に供給する。
【００４６】
変調部６４は、発振回路６５から供給される搬送波を、SPU６３からのコマンド等で変調（例えばASK変調）し、その結果得られる変調信号をアンテナ６１に供給する。発振回路６５は、所定の周波数の搬送波を生成し、変調部６４に供給する。
【００４７】
CPU６７は、ROM６９や記憶部７０に記憶されたプログラムをRAM６８に読み込んで実行することで、後述する生成指示処理（図７）を行う。なお、CPU６７が実行するプログラムは、アップデートすることができる。
【００４８】
RAM６８は、CPU６７が各種の処理を行うとき、その処理の途中のデータなどを一時的に記憶する。ROM６９は、CPU６７が各種の処理を行うためのプログラム、その他のデータなどを記憶している。
【００４９】
記憶部７０は、書き換え可能で、電源が遮断されても記録内容を保持できる、いわゆる不揮発性の記憶媒体からなり、例えば、ハードディスク、フラッシュメモリ、EEPROM（electrically erasable programmable read only memory）、MRAM（magnetoresistive random access memory（磁気抵抗メモリ））、又はFeRAM（ferroelectric random access memory（強誘電体メモリ））等により構成される。
【００５０】
また、記憶部７０は、ICカード３２に記憶されている所定の領域（例えば、エリア領域）に、新たな領域を生成するために行われる認証に用いる認証鍵を生成するための鍵（例えば、エリア鍵）等を記憶している。
【００５１】
[ICカード３２の構成例]
次に、図４は、ICカード３２の構成例を示している。
【００５２】
このICカード３２は、アンテナ９１、復調部９２、SPU９３、負荷変調部９４、バス９５、CPU９６、RAM９７、ROM９８、及び記憶部９９により構成される。SPU９３、CPU９６、RAM９７、ROM９８、及び記憶部９９は、バス９５を介して相互に接続されている。
【００５３】
アンテナ９１は、他の装置（例えば、リーダライタ３１）から送信されてきた変調信号を受信し、復調部９２に供給する。また、アンテナ９１は、負荷変調部９４からの変調信号を非接触近接無線通信により送信する。
【００５４】
復調部９２は、アンテナ９１からの変調信号を復調し、その結果得られるコマンド等をSPU９３に供給する。SPU９３は、復調部９２からのコマンド等を復号し、バス９５を介してCPU９６に供給する。また、SPU９３は、CPU９６からバス９５を介して供給されるコマンド等を符号化し、負荷変調部９４に供給する。負荷変調部９４は、SPU９３からのコマンド等を、他の装置からの電磁波に応じて負荷変調し、アンテナ９１に供給する。
【００５５】
CPU９６は、ROM９８や記憶部９９に記憶されたプログラムをRAM９７に読み込んで実行することで、後述する生成処理（図８）を行う。
【００５６】
RAM９７は、CPU９６が各種の処理を行うとき、その処理の途中のデータなどを一時的に記憶する。ROM９８は、CPU９６が各種の処理を行うためのプログラム、その他のデータなどを記憶している。
【００５７】
記憶部９９は、いわゆる不揮発性の記憶媒体からなり、例えば、EEPROM等により構成される。記憶部９９は、CPU９６により書込みが指示されたデータや、CPU９６が各種の処理を行うためのプログラム、その他のデータなどを記憶する。
【００５８】
また、記憶部９９は、エリア領域を定義するエリア定義情報や、サービス領域を定義するサービス定義情報を記憶する。これにより、記憶部９９の記憶領域には、図１に示されたように、エリア定義情報により定義されるエリア領域や、サービス定義情報により定義されるサービス領域が生成される。
【００５９】
なお、エリア定義情報とは、対応するエリア領域が存在する範囲を表すエリア範囲、そのエリア範囲を一意に識別するためのエリアコード、エリア領域にアクセスするためのものであって、認証に用いる認証鍵を生成するためのエリア鍵、エリア鍵の鍵バージョン、及びエリア領域に割り当てられた割当サイズ等を含む情報である。
【００６０】
また、サービス定義情報は、対応するサービス領域（記憶領域上に存在する）を一意に識別するためのサービスコード、サービス領域にアクセスするためのものであって、認証に用いる認証鍵を生成するためのサービス鍵、サービス鍵の鍵バージョン、及びサービス領域に割り当てられた割当サイズ等を含む情報である。
【００６１】
[追加登録処理の動作説明]
次に、図５のフローチャートを参照して、ICカード３２が、リーダライタ３１からのコマンドに応じて行う追加登録処理を説明する。
【００６２】
この追加登録処理は、例えば、ユーザが、ICカード３２を、リーダライタ３１にかざしたとき等に開始される。
【００６３】
ステップＳ１において、ICカード３２のCPU９６は、非接触近接無線通信により、リーダライタ３１から送信されるポーリングコマンドを、（アンテナ９１、復調部９２、SPU９３、及びバス９５を介して）受信する。そして、CPU９６は、受信したポーリングコマンドに対するレスポンスを、非接触近接無線通信により、（バス９５、SPU９３、負荷変調部９４及びアンテナ９１を介して）送信する。
【００６４】
これに対して、リーダライタ３１は、CPU９６からのレスポンスを受信したことに対応して、サービス領域S211のサービスコードを指定する確認コマンドを送信する。
【００６５】
ステップＳ２において、CPU９６は、リーダライタ３２からの確認コマンドを受信し、受信した確認コマンドにより指定されるサービスコードが、記憶部９９の記憶領域に登録済み（生成済み）であるか否かを判定（確認）する。
【００６６】
ステップＳ３において、CPU９６は、確認コマンドにより指定されたサービスコードが、記憶部９９の記憶領域に登録済みでないと判定した場合、すなわち、サービス領域S211が生成済みでないと判定した場合、サービス領域S211の上位階層であるエリア領域A21及びA2も生成済みでないとみなして、処理をステップＳ４に進める。
【００６７】
ステップＳ４において、CPU９６は、確認コマンドに対するレスポンスとして、サービス領域S211は生成済みでないことを表すレスポンスを送信する。
【００６８】
ステップＳ５において、CPU９６は、リーダライタ３２との相互認証を行う。すなわち、例えば、リーダライタ３２は、ステップＳ４による処理により、CPU９６から送信されたレスポンスを受信したことに対応して、予め保持しているエリア領域A0のエリア鍵に基づいて、エリア領域A0（の下位階層）に領域を生成するために行われる認証に用いる認証鍵を生成し、生成した認証鍵を用いて、CPU９６と認証を行う。
【００６９】
リーダライタ３２による認証が行われた後、CPU９６は、記憶部９９に記憶しているエリア領域A0のエリア鍵から認証鍵を生成し、生成した認証鍵を用いて、リーダライタ３２との認証を行う。
【００７０】
このようにして、リーダライタ３２とICカード３２（CPU９６）との間で相互認証が行われた後、リーダライタ３２は、エリア領域A2の生成を指示するA2指示コマンドを送信する。
【００７１】
ステップＳ６において、CPU９６は、リーダライタ３２からのA2指示コマンドに基づいて、記憶部９９の記憶領域に、エリア領域A2のエリア定義情報を記憶（エリア領域A2を生成）し、A2指示コマンドに対するレスポンスを送信する。これに対して、リーダライタ３２は、CPU９６からのレスポンスを受信したことに対応して、エリア領域A21の生成を指示するA21指示コマンドを送信する。
【００７２】
ステップＳ７において、CPU９６は、リーダライタ３２からのA21指示コマンドに基づいて、内蔵するメモリの記憶領域に、エリア領域A21のエリア定義情報を記憶（エリア領域A21を生成）し、A21指示コマンドに対するレスポンスを送信する。これに対して、リーダライタ３２は、CPU９６からのレスポンスを受信したことに対応して、サービス領域S211の生成を指示するS211指示コマンドを送信する。
【００７３】
ステップＳ８において、CPU９６は、リーダライタ３２からのS211指示コマンドに基づいて、記憶部９９の記憶領域に、サービス領域S211のサービス定義情報を記憶（サービス領域S211を生成）し、S211指示コマンドに対するレスポンスを送信する。
【００７４】
なお、ステップＳ３において、CPU９６は、確認コマンドにより指定されたサービスコードが、記憶部９９の記憶領域に登録済みであると判定した場合、すなわち、サービス領域S211が生成済みであると判定した場合、サービス領域S211の上位階層であるエリア領域A21及びA2も生成済みであるとみなして、処理をステップＳ９に進める。
【００７５】
ステップＳ９では、CPU９６は、確認コマンドに対するレスポンスとして、サービス領域S211は生成済みであることを表すレスポンスを送信する。以上で、追加登録処理は終了される。
【００７６】
[リカバリ登録処理の動作説明]
ところで、通信システム１において、追加登録処理が中断された場合、追加登録処理において未登録の領域をリカバリ（生成）するための処理（リーダライタ３１の生成指示処理、及びICカード３２の生成処理）が行われる。
【００７７】
なお、未登録の領域をリカバリする処理として、その他、例えば、追加登録処理の中断状態に応じて、未生成の領域のみをリカバリ（生成）するリカバリ登録処理が考えられる。但し、このリカバリ登録処理は通信システム１においては行われないが、通信システム１が実際に行う処理と対比させるために、ここでリカバリ登録処理について説明する。
【００７８】
図６は、リカバリ登録処理を説明するためのフローチャートである。なお、図６のリカバリ登録処理を行う主体は、単に、ICカードといい、そのICカードに対してリカバリ登録処理を行わせる主体は、単に、リーダライタということとする。
【００７９】
このリカバリ登録処理は、例えば、追加登録処理が中断された後、ユーザにより、ICカードが、リーダライタにかざされたときに開始される。このとき、リーダライタは、ポーリングコマンドを送信する。
【００８０】
ステップＳ７１において、ICカードは、非接触近接無線通信により、リーダライタから送信されるポーリングコマンドを受信する。そして、ICカードは、受信したポーリングコマンドに対するレスポンスを、非接触近接無線通信により送信する。
【００８１】
ステップＳ７２において、ICカードは、リーダライタからの確認コマンドに対するレスポンスを送信する。
【００８２】
すなわち、例えば、ICカードは、リーダライタから、エリア領域A2のエリアコードを指定する確認コマンドを受信した場合、その確認コマンドにより指定されるエリアコードが、ICカードの記憶領域に生成済みであるか否かを判定し、その判定結果をレスポンスとして送信する。
【００８３】
また、ICカードは、リーダライタから、エリア領域A21のエリアコードを指定する確認コマンドを受信した場合、その確認コマンドにより指定されるエリアコードが、ICカードの記憶領域に生成済みであるか否かを判定し、その判定結果をレスポンスとして送信する。
【００８４】
さらに、ICカードは、リーダライタから、サービス領域S211のサービスコードを指定する確認コマンドを受信した場合、その確認コマンドにより指定されるサービスコードが、ICカードの記憶領域に生成済みであるか否かを判定し、その判定結果をレスポンスとして送信する。
【００８５】
ステップＳ７３において、ICカードは、送信した、確認コマンドに対するレスポンスに応じた相互認証を行う。
【００８６】
すなわち、例えば、ICカードは、エリア領域A2が存在しないことを表すレスポンスを送信した場合、ICカードの記憶領域に記憶されているエリア領域A0のエリア定義情報に含まれるエリア鍵に基づいて、認証に用いる認証鍵１を生成する。
【００８７】
そして、ICカードは、生成した認証鍵１を用いて、リーダライタと相互認証を行う。これにより、ICカードは、リーダライタからの、領域の生成を指示する指示コマンドに応じて、エリア領域A0の下位階層に、エリア領域A2及びA21、並びにサービス領域S211を生成できるようになる。
【００８８】
また、例えば、ICカードは、エリア領域A2は存在するが、エリア領域A21が存在しないことを表すレスポンスを送信した場合、ICカードの記憶領域に記憶されているエリア領域A2のエリア定義情報に含まれるエリア鍵に基づいて、認証に用いる認証鍵２を生成する。
【００８９】
そして、ICカードは、生成した認証鍵２を用いて、リーダライタと相互認証を行う。これにより、ICカードは、リーダライタからの指示コマンドに応じて、エリア領域A2の下位階層に、エリア領域A21及びサービス領域S211を生成できるようになる。
【００９０】
さらに、例えば、ICカードは、エリア領域A2及びA21は存在するが、サービス領域S211が存在しないことを表すレスポンスを送信した場合、ICカードの記憶領域に記憶されているエリア領域A21のエリア定義情報に含まれるエリア鍵に基づいて、認証に用いる認証鍵３を生成する。
【００９１】
そして、ICカードは、生成した認証鍵３を用いて、リーダライタと相互認証を行う。これにより、ICカードは、リーダライタからの指示コマンドに応じて、エリア領域A21の下位階層に、サービス領域S211を生成できるようになる。
【００９２】
ステップＳ７４において、ICカードは、リーダライタと認証鍵１を用いた相互認証を行った場合、処理をステップＳ７５に進める。
【００９３】
ステップＳ７５において、ICカードは、リーダライタからのA2指示コマンドに基づいて、ICカードの記憶領域に、エリア領域A2のエリア定義情報を記憶（エリア領域A2を生成）し、A2指示コマンドに対するレスポンスを送信して、処理をステップＳ７６に進める。
【００９４】
ステップＳ７６において、ICカードは、リーダライタからのA21指示コマンドに基づいて、ICカードの記憶領域に、エリア領域A21のエリア定義情報を記憶（エリア領域A21を生成）し、A21指示コマンドに対するレスポンスを送信して、処理をステップＳ７７に進める。
【００９５】
ステップＳ７７において、ICカードは、リーダライタからのS211指示コマンドに基づいて、ICカードの記憶領域に、サービス領域S211のサービス定義情報を記憶（サービス領域S211を生成）し、S211指示コマンドに対するレスポンスを送信して、処理を終了する。
【００９６】
また、ステップＳ７４において、ICカードは、リーダライタと認証鍵１を用いた相互認証を行っていない場合、処理をステップＳ７８に進める。
【００９７】
ステップＳ７８において、ICカードは、リーダライタと認証鍵２を用いた相互認証を行った場合、処理をステップＳ７９に進める。
【００９８】
ステップＳ７９において、ICカードは、ステップＳ７６の処理と同様にして、リーダライタからのA21指示コマンドに基づいて、ICカードの記憶領域に、エリア領域A21のエリア定義情報を記憶し、A21指示コマンドに対するレスポンスを送信して、処理をステップＳ８０に進める。
【００９９】
ステップＳ８０において、ICカードは、ステップＳ７７と同様にして、リーダライタからのS211指示コマンドに基づいて、ICカードの記憶領域に、サービス領域S211のサービス定義情報を記憶し、S211指示コマンドに対するレスポンスを送信して、処理を終了する。
【０１００】
また、ステップＳ７８において、ICカードは、リーダライタと認証鍵２を用いた相互認証を行っていないと判定した場合、処理をステップＳ８１に進め、ステップＳ８１において、リーダライタと認証鍵３を用いた相互認証を行った場合、処理をステップＳ８２に進める。
【０１０１】
ステップＳ８２において、ICカードは、ステップＳ７７と同様にして、リーダライタからのS211指示コマンドに基づいて、ICカードの記憶領域に、サービス領域S211のサービス定義情報を記憶し、S211指示コマンドに対するレスポンスを送信する。
【０１０２】
なお、ステップＳ８１において、ICカードは、リーダライタと認証鍵３を用いた相互認証を行っていない場合、処理を終了する。以上でリカバリ登録処理は終了される。
【０１０３】
以上説明したように、リカバリ登録処理では、追加登録処理が中断された場合に、追加登録処理の中断状態に応じて、ステップＳ７５乃至ステップＳ７７による処理、ステップＳ７９及びステップＳ８０による処理、又はステップＳ８２による処理のいずれかの処理により、未生成の領域をリカバリすることができる。
【０１０４】
しかしながら、リカバリ登録処理では、追加登録処理の中断状態に応じて、それぞれ異なる処理により、未生成の領域がリカバリされるため、複雑な処理となってしまう。
【０１０５】
そこで、通信システム１では、追加登録処理の中断状態に拘らず、追加登録処理のステップＳ５乃至ステップＳ８と同一の手順により、追加登録処理における未生成の領域をリカバリできるようにしている。
【０１０６】
[生成指示処理の動作説明]
次に、図７は、追加登録処理が中断された場合に、リーダライタ３１が行う、ICカード３２に領域のリカバリを指示する生成指示処理の詳細を説明するためのフローチャートである。
【０１０７】
ステップＳ１１１において、CPU６７は、ポーリングコマンドを生成し、（バス６６、SPU６３、変調部６４、及びアンテナ６１を介して）非接触近接無線通信により送信する。そして、CPU６７は、例えばICカード３２からの、ポーリングコマンドに対するレスポンスを、（アンテナ６１、復調部６２、SPU６３、及びバス６６を介して）受信すると、処理をステップＳ１１２に進める。
【０１０８】
ステップＳ１１２において、CPU６７は、後述するステップＳ１１７の処理により生成を指示するサービス領域S211のサービスコードを指定する確認コマンドを生成して送信する。これに対して、CPU６７は、ICカード３２から、確認コマンドにより指定されたサービスコードが存在するとのレスポンスを受信した場合、後述するステップＳ１１７の処理により生成を指示するサービス領域S211のサービス鍵、鍵バージョン、及び割当サイズそれぞれを指定する確認コマンドを生成して送信する。
【０１０９】
ステップＳ１１３において、CPU６７は、ICカード３２から送信されてくるレスポンスを受信し、受信したレスポンスに基づいて、ステップＳ１１４乃至ステップＳ１１７の処理により、エリア領域A2及びA21、並びにサービス領域S211の生成を指示するか否かを判定する。
【０１１０】
すなわち、例えば、CPU６７は、ICカード３２の記憶領域に、確認コマンドにより指定されたサービスコードが存在しないとのレスポンスを受信した場合、又は確認コマンドにより指定されたサービスコードの他、サービス鍵、鍵バージョン、及び割当サイズそれぞれが一致するとのレスポンスを受信した場合に、処理をステップＳ１１３からステップＳ１１４に進め、それ以外の場合には処理を終了する。
【０１１１】
ステップＳ１１４において、CPU６７は、記憶部７０に予め保持されているエリア領域A0のエリア鍵に基づいて認証鍵１を生成し、生成した認証鍵１を用いて、ICカード３２と相互認証を行う。これにより、リーダライタ３１は、ICカード３２におけるエリア領域A0の下位階層に、エリア領域A2及びA21、並びにサービス領域S211を生成できるようになる。
【０１１２】
ステップＳ１１５において、CPU６７は、エリア領域A2の生成を指示するA2指示コマンドを生成して送信する。そして、CPU６７は、ICカード３２から、エリア領域A2の生成に成功したことを表すレスポンスを受信した場合、処理をステップＳ１１６に進める。
【０１１３】
ステップＳ１１６において、CPU６７は、エリア領域A21の生成を指示するA21指示コマンドを生成して送信する。そして、CPU６７は、ICカード３２から、エリア領域A21の生成に成功したことを表すレスポンスを受信した場合、処理をステップＳ１１７に進める。
【０１１４】
ステップＳ１１７において、CPU６７は、サービス領域S211の生成を指示するS211指示コマンドを生成して送信する。そして、CPU６７は、ICカード３２から、サービス領域S21の生成に成功したことを表すレスポンスを受信した場合、処理を終了する。
【０１１５】
[生成処理の動作説明]
次に、図８は、ICカード３２が、リーダライタ３１からのコマンドに応じて行う生成処理の詳細を説明するためのフローチャートである。
【０１１６】
ステップＳ１４１において、リカバリ登録処理のステップＳ７１と同様の処理が行われる。ステップＳ１４２において、CPU９６は、リーダライタ３１からの、サービス領域S211のサービスコードを指定する確認コマンドを受信する。
【０１１７】
そして、CPU９６は、受信した確認コマンドにより指定されるサービスコードが、記憶部９９に登録済みであるか否かを判定する。
【０１１８】
また、CPU９６は、リーダライタ３１から、サービス鍵、鍵バージョン、及び割当サイズそれぞれを指定する確認コマンドを受信した場合、その確認コマンドにより指定されるサービス鍵、鍵バージョン、及び割当サイズのそれぞれが、記憶部９９の記憶領域に記憶されているサービス領域S211のサービス鍵、鍵バージョン、及び割当サイズそれぞれと一致するか否かを判定する。
【０１１９】
ステップＳ１４３において、CPU９６は、ステップＳ１４２の処理による判定結果に基づいて、記憶部９９の記憶領域にサービス領域S211のサービスコードが登録済みでないと判定した場合、処理をステップＳ１４７に進め、その判定結果をレスポンスとして送信する。
【０１２０】
また、ステップＳ１４３において、CPU９６は、ステップＳ１４２の処理による判定結果に基づいて、記憶部９９の記憶領域にサービス領域S211のサービスコードが登録済みであると判定した場合、処理をステップＳ１４４に進める。
【０１２１】
ステップＳ１４４では、CPU９６は、ステップＳ１４２の処理による判定結果に基づいて、サービス鍵どうしが一致すると判定した場合、処理をステップＳ１４５に進める。ステップＳ１４５では、CPU９６は、ステップＳ１４２の処理による判定結果に基づいて、鍵バージョンどうしが一致すると判定した場合、処理をステップＳ１４６に進める。ステップＳ１４６では、CPU９６は、ステップＳ１４２の処理による判定結果に基づいて、割当サイズどうしが一致すると判定した場合、処理をステップＳ１４７に進める。
【０１２２】
そして、ステップＳ１４７では、CPU９６は、サービスコードを指定する確認コマンドに対して、サービスコードが登録済みであることを示すレスポンスを送信し、サービス鍵、鍵バージョン、及び割当サイズそれぞれを指定する確認コマンドに対して、サービス鍵、鍵バージョン、及び割当サイズそれぞれが一致することを示すレスポンスを送信する。
【０１２３】
ステップＳ１４８において、CPU９６は、記憶部９９に予め保持されているエリア領域A0のエリア鍵から認証鍵１を生成し、生成した認証鍵１を用いて、ICカード３２と相互認証を行う。これにより、CPU９６は、リーダライタ３１からのコマンドに応じて、エリア領域A0の下位階層に、エリア領域A2及びA21、並びにサービス領域S211を生成できるようになる。
【０１２４】
ステップＳ１４９乃至ステップＳ１５１では、リカバリ登録処理のステップＳ７５乃至ステップＳ７７と同様の処理が行われる。
【０１２５】
なお、CPU９６が、ステップＳ１４４において、サービス鍵どうしが一致しないと判定した場合、ステップＳ１４５において、鍵バージョンどうしが一致しないと判定した場合、及び、ステップＳ１４６において、割当サイズどうしが一致しないと判定した場合のいずれの場合でも、処理をステップＳ１５２に進める。
【０１２６】
ステップＳ１５２では、CPU９６は、サービス鍵、鍵バージョン、又は割当サイズのいずれかが一致しないことを表すエラーコードをレスポンスとして設定し、そのレスポンスを送信する。以上で生成処理は終了される。
【０１２７】
以上説明したように、生成指示処理では、追加登録処理の中断状態に拘らず、リーダライタ３１が、追加登録処理のステップＳ５乃至ステップＳ８による処理と同一の手順により、追加登録処理において未生成の領域のリカバリを、ICカード３２に指示するようにした。
【０１２８】
したがって、生成処理では、ICカード３２が、追加登録処理の中断状態に拘らず、追加登録処理のステップＳ５乃至ステップＳ８による処理と同一の手順（ステップＳ１４８乃至ステップＳ１５１）により、追加登録処理において未生成の領域をリカバリすることが可能となる。
【０１２９】
また、生成処理では、追加登録処理の中断状態に拘らず、ステップＳ１４８において、１種類の認証鍵１のみにより相互認証を行うようにしている。したがって、リーダライタ３１やICカード３２において、相互認証に用いる認証鍵１を生成するための鍵は、エリア領域A0のエリア鍵のみとなるため、認証鍵を生成するための鍵の管理が容易となる。
【０１３０】
さらに、生成処理では、サービス領域S211（のサービスコード）が生成済みであって、生成済みのサービス領域S211のサービス鍵、鍵バージョン、及び割当サイズが、ステップＳ１４９乃至ステップＳ１５１の処理により生成されるものと一致しない場合には、ステップＳ１４９乃至ステップＳ１５１の処理が行われないようにした。
【０１３１】
したがって、例えば、ステップＳ１４９乃至ステップＳ１５１の処理により生成されるサービス領域S211とは異なる、すでに生成済みのサービス領域S211が、上書きにより消去されることを防止できる。
【０１３２】
また、生成処理では、サービス領域S211（のサービスコード）が生成済みである場合、生成済みのサービス領域S211のサービス鍵、鍵バージョン、及び割当サイズが、ステップＳ１４９乃至ステップＳ１５１の処理により生成されるものと一致するか否かを判定するようにしたが、一致するか否かを判定する判定対象は、これに限定されない。
【０１３３】
すなわち、サービス鍵、鍵バージョン、又は割当サイズの少なくとも１つを、判定対象とするようにし、判定対象が一致する場合に、ステップＳ１４９乃至ステップＳ１５１の処理を行うようにしてもよい。
【０１３４】
＜３．変形例＞
なお、本実施の形態において、生成指示処理及び生成処理は、追加登録処理が中断されたことに応じて、未生成の領域をリカバリするためのものとして行われるようにしたが、これに限定されない。
【０１３５】
すなわち、例えば、生成指示処理及び生成処理は、新たな領域を追加するための処理として用いるとともに、新たな領域を追加するための処理が中断された場合には、その中断により未生成の領域をリカバリする処理として用いるようにすることが可能である。
【０１３６】
この場合、新たな領域を追加する処理と、未生成の領域をリカバリする処理とが同一の処理により行うことが可能となるため、ICカード３２に、新たにサービスを追加するサービス提供会社が多く存在する場合であっても、比較的容易に、新たなサービスを（新たに領域を）追加することができる。
【０１３７】
また、本実施の形態では、図１に示されたように、エリア領域A0の下位階層に、エリア領域A2及びA21、並びにサービス領域S211を追加して生成する場合について説明したが、新たに追加して生成される領域は、これに限定されず、どのような領域であってもよい。
【０１３８】
すなわち、例えば、エリア領域A2及びA21、並びにサービス領域S211の他に、サービス領域S211と同じ階層（エリア領域A21の下位階層）に、サービス領域S212を追加して生成する場合についても、本発明を適用することが可能である。
【０１３９】
このように、例えば、最下位層の領域として、複数の領域が存在する場合には、生成処理において、複数の領域のうちの１つの領域を対象として、ステップＳ１４３乃至ステップＳ１４６において領域が生成済みであるか等が判定され、その判定結果に応じて、ステップＳ１４８乃至ステップＳ１５１の処理が行われる。
【０１４０】
本実施の形態では、通信システム１は、リーダライタ３１と非接触ICカード３２とにより構成されるようにしたが、非接触ICカード３２に代えて、いわゆる接触型のICカードを採用するようにしてもよい。
【０１４１】
なお、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【０１４２】
また、本明細書において、プログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０１４３】
さらに、本発明の実施の形態は、上述した本実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【０１４４】
１  通信システム，  ３１  リーダライタ，  ３２  ICカード，  ６１  アンテナ，  ６２  復調部，  ６３  SPU，  ６４  変調部，  ６５  発振回路，  ６６  バス，  ６７  CPU，  ６８  RAM,  ６９  ROM,  ７０  記憶部，  ９１  アンテナ，  ９２  復調部，  ９３  SPU，  ９４  負荷変調部，  ９５  バス，  ９６  CPU，  ９７  RAM，  ９８  ROM,  ９９  記憶部
【図１】
2011090436.tif 000003
【図２】
2011090436.tif 000004
【図３】
2011090436.tif 000005
【図４】
2011090436.tif 000006
【図５】
2011090436.tif 000007
【図６】
2011090436.tif 000008
【図７】
2011090436.tif 000009
【図８】
2011090436.tif 000010