(57)【要約】【課題】必要に応じて、動的にＯＳを生成する。【解決手段】ROM１０２やEEPROM１０４は、所定の処理を実行する機能コードにより構成されるＯＳと、そのＯＳを特定する特定情報を対応付けたテーブルを記憶し、ＯＳ特定部２３１は、ROM１０２やEEPROM１０４に記憶されたテーブルと特定情報に基づいて、ＯＳを特定する。コマンド実行部２３２は、特定されたＯＳを用いて、コマンドの処理を実行する。本発明は、例えば、ＩＣカードに適用することができる。【選択図】図２
2008152411.tif 000002
【特許請求の範囲】
【請求項１】
コマンドと、所定の処理を実行する機能コードにより構成されるＯＳ（Operating System）を特定する特定情報を受信し、前記特定情報により特定される前記ＯＳを用いて、前記コマンドの処理を実行する情報処理装置において、
前記ＯＳと、そのＯＳを特定する特定情報を対応付けたテーブルを記憶する記憶手段と、
前記記憶手段に記憶された前記テーブルと受信した前記特定情報に基づいて、ＯＳを特定するＯＳ特定手段と、
前記ＯＳ特定手段により特定されたＯＳを用いて、受信した前記コマンドの処理を実行するコマンド実行手段と
を備え、
前記コマンドの処理は、前記テーブルを生成する処理を含む
情報処理装置。
【請求項２】
前記記憶手段は、前記情報処理装置の製造時に、前記テーブルを記憶している
請求項１に記載の情報処理装置。
【請求項３】
前記情報処理装置は、接触型または非接触型のＩＣ（Integrated Circuit）カードである
請求項１に記載の情報処理装置。
【請求項４】
コマンドと、所定の処理を実行する機能コードにより構成されるＯＳを特定する特定情報を受信し、前記特定情報により特定される前記ＯＳを用いて、前記コマンドの処理を実行する情報処理装置の情報処理方法において、
前記ＯＳと、そのＯＳを特定する特定情報を対応付けたテーブルを記憶する記憶手段に記憶された前記テーブルと受信した前記特定情報に基づいて、ＯＳを特定し、
特定されたＯＳを用いて、受信した前記コマンドの処理を実行する
ステップを含み、
前記コマンドの処理は、前記テーブルを生成する処理を含む
情報処理方法。
【請求項５】
コマンドと、所定の処理を実行する機能コードにより構成されるＯＳを特定する特定情報を受信し、前記特定情報により特定される前記ＯＳを用いて、前記コマンドの処理を実行する情報処理装置の情報処理をコンピュータに実行させるプログラムにおいて、
前記ＯＳと、そのＯＳを特定する特定情報を対応付けたテーブルを記憶する記憶手段に記憶された前記テーブルと受信した前記特定情報に基づいて、ＯＳを特定し、
特定されたＯＳを用いて、受信した前記コマンドの処理を実行する
ステップを含み、
前記コマンドの処理は、前記テーブルを生成する処理を含む
情報処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、およびプログラムに関し、特に、例えば、ＩＣ（Integrated Circuit）カードにおいて、動的にＯＳ（Operating System）を生成することができるようにした情報処理装置、情報処理方法、およびプログラムに関する。
【背景技術】
【０００２】
近年、１枚のＩＣカードにより多くのサービスを実現するために、ＩＣカードに複数のＯＳを搭載する技術が開示されている。
【０００３】
例えば、特許文献１には、リーダライタからの受信データに基づいて、ＩＣカードのROM（Read Only Memory）にあらかじめ記憶されている複数のＯＳから、起動するＯＳを選択する技術が開示されている（特に、特許文献１の[００４５]乃至[００４９]段落および図２を参照）。
【０００４】
なお、特許文献２には、コマンド体系などが異なる複数のＩＣカードからの応答を読み取るカード読取システムにおいて、複数のＩＣカードからの応答を、そのＩＣカード用のソフトウェア・モジュールに振り分ける技術が開示されている（特に、特許文献２の[００４９]および[００５０]段落を参照）。
【特許文献１】特開２００４−３１８３０７号公報
【特許文献２】特開２００４−２６４９２１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１のＩＣカードにあらかじめ記憶されている複数のＯＳは、ＩＣカードの製造時にROMに記憶されるため、ＩＣカードの製造・発行後に、新たなサービスに合せてＯＳを新たに追加・拡張したい場合には、新たに追加・拡張したいＯＳをROMに記憶させた新たなＩＣカードを製造・発行する必要があった。
【０００６】
また、特許文献２のソフトウェア・モジュールについては、新たなＩＣカードからの応答に対応するためには、新たなＩＣカードからの応答を処理する、その新たなＩＣカード用のソフトウェア・モジュールを、サーバからダウンロードしなければならなかった（特に、特許文献２の[００３１]段落を参照）。
【０００７】
本発明は、このような状況に鑑みてなされたものであり、例えば、必要に応じて、動的にＯＳを生成することができるようにするものである。
【課題を解決するための手段】
【０００８】
本発明の一側面の情報処理装置は、コマンドと、所定の処理を実行する機能コードにより構成されるＯＳ（Operating System）を特定する特定情報を受信し、前記特定情報により特定される前記ＯＳを用いて、前記コマンドの処理を実行する情報処理装置において、前記ＯＳと、そのＯＳを特定する特定情報を対応付けたテーブルを記憶する記憶手段と、前記記憶手段に記憶された前記テーブルと受信した前記特定情報に基づいて、ＯＳを特定するＯＳ特定手段と、前記ＯＳ特定手段により特定されたＯＳを用いて、受信した前記コマンドの処理を実行するコマンド実行手段とを備え、前記コマンドの処理は、前記テーブルを生成する処理を含む。
【０００９】
前記記憶手段には、前記情報処理装置の製造時に、前記テーブルを記憶させておくことができる。
【００１０】
前記情報処理装置は、接触型または非接触型のＩＣ（Integrated Circuit）カードとすることができる。
【００１１】
本発明の一側面の情報処理方法、またはプログラムは、コマンドと、所定の処理を実行する機能コードにより構成されるＯＳを特定する特定情報を受信し、前記特定情報により特定される前記ＯＳを用いて、前記コマンドの処理を実行する情報処理装置の情報処理方法、またはコマンドと、所定の処理を実行する機能コードにより構成されるＯＳを特定する特定情報を受信し、前記特定情報により特定される前記ＯＳを用いて、前記コマンドの処理を実行する情報処理装置の情報処理をコンピュータに実行させるプログラムにおいて、前記ＯＳと、そのＯＳを特定する特定情報を対応付けたテーブルを記憶する記憶手段に記憶された前記テーブルと受信した前記特定情報に基づいて、ＯＳを特定し、特定されたＯＳを用いて、受信した前記コマンドの処理を実行するステップを含み、前記コマンドの処理は、前記テーブルを生成する処理を含む。
【００１２】
本発明の一側面においては、所定の処理を実行する機能コードにより構成されるＯＳと、そのＯＳを特定する特定情報を対応付けたテーブルを記憶する記憶手段に記憶された前記テーブルと受信した前記特定情報に基づいて、ＯＳが特定され、特定されたＯＳを用いて、受信した前記コマンドの処理が実行され、前記コマンドの処理には、前記テーブルを生成する処理が含まれる。
【発明の効果】
【００１３】
本発明によれば、例えば、必要に応じて、動的にＯＳを生成することができる。
【発明を実施するための最良の形態】
【００１４】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書又は図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書又は図面に記載されていることを確認するためのものである。従って、明細書又は図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００１５】
本発明の一側面の情報処理装置は、コマンドと、所定の処理を実行する機能コードにより構成されるＯＳ（Operating System）を特定する特定情報を受信し、前記特定情報により特定される前記ＯＳを用いて、前記コマンドの処理を実行する情報処理装置（例えば、図１のＩＣカード６２）において、
前記ＯＳと、そのＯＳを特定する特定情報を対応付けたテーブルを記憶する記憶手段（例えば、図１のROM１０２やEEPROM１０４）と、
前記記憶手段に記憶された前記テーブルと受信した前記特定情報に基づいて、ＯＳを特定するＯＳ特定手段（例えば、図２のＯＳ特定部２３１）と、
前記ＯＳ特定手段により特定されたＯＳを用いて、受信した前記コマンドの処理を実行するコマンド実行手段（例えば、図２のコマンド実行部２３２）と
を備え、
前記コマンドの処理は、前記テーブルを生成する処理を含む。
【００１６】
本発明の一側面の情報処理方法、またはプログラムは、コマンドと、所定の処理を実行する機能コードにより構成されるＯＳを特定する特定情報を受信し、前記特定情報により特定される前記ＯＳを用いて、前記コマンドの処理を実行する情報処理装置の情報処理方法、またはコマンドと、所定の処理を実行する機能コードにより構成されるＯＳを特定する特定情報を受信し、前記特定情報により特定される前記ＯＳを用いて、前記コマンドの処理を実行する情報処理装置の情報処理をコンピュータに実行させるプログラムにおいて、
前記ＯＳと、そのＯＳを特定する特定情報を対応付けたテーブルを記憶する記憶手段に記憶された前記テーブルと受信した前記特定情報に基づいて、ＯＳを特定し（例えば、図７のステップＳ３３）、
特定されたＯＳを用いて、受信した前記コマンドの処理を実行する（例えば、図７のステップＳ３５やステップＳ３６）
ステップを含み、
前記コマンドの処理は、前記テーブルを生成する処理を含む。
【００１７】
以下、図を参照して、本発明の実施の形態について説明する。
【００１８】
図１は、本発明を適用した通信システムの一実施の形態の構成例を示している。
【００１９】
図１の通信システムは、リーダライタ６１、およびＩＣカード６２により構成される。
【００２０】
リーダライタ６１とＩＣカード６２は、電磁波を利用して非接触でデータの送受信（近接通信）を行う。即ち、例えば、リーダライタ６１は、搬送波としての電磁波を出力し、その搬送波としての電磁波をコマンドなどのデータで変調することにより、データを送信する。また、ＩＣカード６２は、リーダライタ６１が出力する搬送波としての電磁波をレスポンスなどのデータで、いわゆる負荷変調することにより、データを送信する。
【００２１】
リーダライタ６１は、コマンドと、そのコマンドの処理を実行するＯＳを特定する特定情報を送信する。
【００２２】
ＩＣカード６２は、リーダライタ６１から送信されてくるコマンドと特定情報を受信し、そのコマンドと特定情報に基づいた処理を行う。
【００２３】
ＩＣカード６２は、CPU（Central Processing Unit）１０１、ROM（Read Only Memory）１０２、SRAM（Static Random Access Memory）１０３、EEPROM（Electronically Erasable and Programmable Read Only Memory）１０４、通信インタフェース１０５、乱数発生器１０６、暗号復号エンジン１０７、およびバス１０８により構成され、CPU１０１乃至暗号復号エンジン１０７それぞれが、バス１０８を介して相互に接続されている。
【００２４】
CPU１０１は、ROM１０２またはEEPROM１０４に記憶されたプログラム（実行コード、バイナリコード、マシン語）を、SRAM１０３に読み込んで実行することで、ＩＣカード６２全体の動作を制御する。また、例えば、CPU１０１は、通信インタフェース１０５からプログラムやデータが供給された場合、そのプログラムやデータを必要に応じてSRAM１０３やEEPROM１０４に記憶させる。
【００２５】
さらに、CPU１０１は、例えば、リーダライタ６１などの装置宛てに送信するレスポンスなどのデータを生成し、バス１０８を介して通信インタフェース１０５に供給する。
【００２６】
ROM１０２は、図３に示されるように、CPU１０１が所定の処理を行うのに実行される機能コード１３１1乃至１３１nを記憶する。
【００２７】
ここで、機能コード（実行コード、バイナリコード、マシン語）としては、例えば、ＩＣカードのEEPROM上のファイルシステムの管理を行う処理を実行する機能コードや、データを保護するための鍵の管理を行う処理を実行する機能コード、リーダライタ６１などの装置からのコマンドに付加されたCRC（Cyclic Redundancy Check）コードなどにより、コマンドなどのデータの整合性の確認を行う処理を実行する機能コード、データの暗号化や復号の処理を行う実行する機能コード、リーダライタ６１などの装置から送信されるコマンドの処理を実行する機能コード、異なるＯＳで共通して用いることができるユーティリティ機能を実現する処理を実行する機能コードなどが考えられる。
【００２８】
なお、機能コードは、できるだけ細かい単位であるとする。即ち、例えば、リーダライタ６１などの装置から送信されるコマンドの処理を実行するコマンド機能を１つの機能コードにより実現するのではなく、リーダライタ６１などの装置から送信されるコマンド毎の処理を実行する機能コードを、コマンド毎に用意する。
【００２９】
また、ROM１０２は、図３に示されるように、ＩＣカード６２の初期化や、リーダライタ６１などの装置からのコマンドの処理を実行するＯＳの特定などを実行する基本プログラム１３２、所定の処理を実行する機能コードにより構成されるＯＳ、そのＯＳを特定する特定情報、ＯＳのサイズ、ＯＳを構成する機能コードが格納（記憶）されている場所を示すアドレス情報、それぞれが対応付けられたＯＳ管理情報テーブル１３３、さらに、CPU１０１が所定の処理を行うのに実行される機能コードと、その機能コードが格納されている場所を示すアドレス情報が対応付けられた機能コードテーブル１３４、その他のデータなどを記憶している。
【００３０】
SRAM１０３は、ROM１０２またはEEPROM１０４に記憶されているプログラムを実行するのに用いるワークエリアや、リーダライタ６１とのデータの送受信に用いる送受信用バッファなどの用途で使用される不揮発性メモリである。
【００３１】
EEPROM１０４は、書き換え可能な不揮発性メモリであり、CPU１０１により書き込みが指示されたデータ、その他のデータなどを記憶する。即ち、例えば、EEPROM１０４には、図６に示されるように、CPU１０１により書き込みが指示されたデータとして、ＯＳ管理情報テーブル１６１や、機能コード１３１2、１３１3、１３１n-2などが記憶される。
【００３２】
なお、EEPROM１０４においては、所定のプログラムが不正に記憶されて実行されないように、セキュリティを確保することが望ましい。また、EEPROM１０４に代えて、例えば、FeRAM（Ferroelectric Random Access Memory（強誘電体メモリ））などの不揮発性メモリにより構成することが可能である。
【００３３】
通信インタフェース１０５は、例えば、リーダライタ６１などの装置と、電磁波を利用して非接触でデータの送受信を行い、CPU１０１からバス１０８を介して供給されてくるデータをリーダライタ６１などの装置に送信したり、その装置からのデータを受信し、バス１０８を介してCPU１０１などに供給する。
【００３４】
乱数発生器１０６は、暗号復号エンジン１０７で用いられる乱数を発生させ、バス１０８を介して暗号復号エンジン１０７に供給する。
【００３５】
暗号復号エンジン１０７は、乱数発生器１０６が発生させる乱数を用いて、リーダライタ６１とＩＣカード６２との間で送受信されるデータ、EEPROM１０４に記憶されたユーザデータなどの暗号化や復号、ROM１０２やEEPROM１０４に記憶されたデータへアクセスするために用いられるアクセス鍵の生成、および相互認証などを行う。
【００３６】
図２は、図１のCPU１０１が所定のプログラムを実行することにより実現される制御部２０１の機能的な構成例を示すブロック図である。CPU１０１がROM１０２やEEPROM１０４に記憶された所定のプログラムを実行することにより、ＯＳ特定部２３１、コマンド実行部２３２、およびレスポンス生成部２３３が実現される。
【００３７】
なお、ＯＳ特定部２３１（CPU１０１）には、図１の通信インタフェース１０５からバス１０８を介して、リーダライタ６１などの装置から送信されるコマンドと特定情報が供給される。
【００３８】
ＯＳ特定部２３１は、CPU１０１がROM１０２に記憶された基本プログラム１３２をSRAM１０３に読み込んで実行することにより実現される機能を示す機能ブロックである。ＯＳ特定部２３１は、ROM１０２およびEEPROM１０４それぞれに記憶されたＯＳ管理情報テーブル１３３および１６１と、図１の通信インタフェース１０５からバス１０８を介してＯＳ特定部２３１に供給される特定情報に基づいて、リーダライタ６２などの装置から送信されるコマンドの処理を実行するＯＳを特定する。
【００３９】
また、ＯＳ特定部２３１は、図１の通信インタフェース１０５からバス１０８を介して供給されるコマンドを、コマンド実行部２３２に供給する。
【００４０】
コマンド実行部２３２は、CPU１０１が特定情報により特定されたＯＳ（を構成する機能コード）をSRAM１０３に読み込んで実行することにより実現される機能を示す機能ブロックである。なお、特定情報により特定されたＯＳを構成する機能コードが格納されている場所を示すアドレス情報が、適宜、CPU１０１内部のプログラムカウンタにセットされることで、特定情報により特定されたＯＳは、CPU１０１により実行される。
【００４１】
コマンド実行部２３２は、ＯＳ特定部２３１から供給されるコマンドの処理を実行する。
【００４２】
即ち、例えば、コマンド実行部２３２は、ＯＳ特定部２３１から、新たなＯＳの生成を指示するＯＳ生成コマンドが供給された場合、そのＯＳ生成コマンドに付加されたCRCコードにより、ＯＳ生成コマンドの整合性を確認する。
【００４３】
また、コマンド実行部２３２は、ＯＳ生成コマンドに基づいて、ROM１０２に記憶された機能コード１３１1乃至１３１nのうちの所定のものを選択し、選択された機能コードを、機能コードテーブル１３４を用いてROM１０２から読み出し、新たなＯＳとして、EEPROM１０４に供給して、記憶させる。
【００４４】
さらに、コマンド実行部２３２は、ＯＳ管理情報テーブル１６１をEEPROM１０４から読み出し、EEPROM１０４に記憶された新たなＯＳのアドレス情報などを示すＯＳ管理情報を、読み出したＯＳ管理情報テーブル１６１に追加することで新たなＯＳ管理情報テーブルを生成し、ＯＳ管理情報テーブル１６１として、EEPROM１０４に供給し、上書きする形で記憶させる。
【００４５】
その後、コマンド実行部２３２は、ＯＳ特定部２３１から供給されるコマンドの処理の結果を、レスポンス生成部２３３に供給する。
【００４６】
レスポンス生成部２３３は、CPU１０１が特定情報により特定されたＯＳをSRAM１０３に読み込んで実行することにより実現される機能を示す機能ブロックである。レスポンス生成部２３３は、コマンド実行部２３２から供給される処理の結果に基づいて、リーダライタ６１からのコマンドに応じたレスポンスを生成し、通信インタフェース１０５に供給する。
【００４７】
図４は、図２のROM１０２に記憶されたＯＳ管理情報テーブル１３３の一例を示す図である。
【００４８】
図４のＯＳ管理情報テーブル１３３には、特定情報、ＯＳ名称、ＯＳを構成する機能コードと、その機能コードが格納されている場所を示すアドレス情報、ＯＳのサイズが、それぞれ対応付けられて、ＯＳ管理情報として１行に登録される。
【００４９】
なお、ＯＳ管理情報テーブル１３３に登録されたＯＳは、ROM１０２に記憶された機能コード１３１1乃至１３１nから選択された機能コードにより構成されており、図１（図６）のEEPROM１０４に記憶されたＯＳ管理情報テーブル１６１は、図４に示されるＯＳ管理情報テーブル１３３と同様に構成される。
【００５０】
図５は、図２のROM１０２に記憶されている機能コードテーブル１３４を示す図である。
【００５１】
図５の機能コードテーブル１３４には、CPU１０１が所定の処理を実行するための機能コード１３１1乃至１３１nと、それらの機能コード１３１1乃至１３１nが格納されている場所を示すアドレス情報が対応付けられて登録されている。
【００５２】
次に、図７のフローチャートを参照して、ＩＣカード６２による処理を説明する。
【００５３】
この処理は、例えば、ＩＣカード６２が、リーダライタ６１に近接されたときに、開始される。
【００５４】
このとき、ステップＳ３１において、ＩＣカード６２は、リーダライタ６１が出力している電磁波により電源がオンされ、ＩＣカード６２のCPU１０１は、ROM１０２に記憶された基本プログラム１３２をSRAM１０３に読み込んで実行する。
【００５５】
ステップＳ３１の処理の終了後、処理は、ステップＳ３２に進み、通信インタフェース１０５は、CPU１０１により実行される基本プログラム１３２の制御に従い、リーダライタ６１などの装置から送信される特定情報とコマンドを受信し、バス１０８を介してＯＳ特定部２３１（CPU１０１）に供給して、処理は、ステップＳ３３に進む。
【００５６】
ステップＳ３３において、ＯＳ特定部２３１は、ROM１０２およびEEPROM１０４それぞれに記憶されたＯＳ管理情報テーブル１３３および１６１と、図１の通信インタフェース１０５からバス１０８を介してＯＳ特定部２３１に供給される特定情報に基づいて、リーダライタ６２などの装置から送信されるコマンドの処理を実行するＯＳを特定する。なお、ＯＳ特定部２３１は、CPU１０１がROM１０２に記憶された基本プログラム１３２をSRAM１０３に読み込んで実行することにより実現される機能を示す機能ブロックである。
【００５７】
ステップＳ３３において、ＯＳ特定部２３１は、通信インタフェース１０５からバス１０８を介して供給されるコマンドを、コマンド実行部２３２に供給して、処理は、ステップＳ３４に進む。
【００５８】
ステップＳ３４において、コマンド実行部２３２は、ＯＳ特定部２３１から供給されるコマンドが、EEPROM１０４のＯＳ管理情報テーブル１６１を生成する処理を指示するコマンド、即ち、ＯＳの生成や更新、削除を指示するコマンドであるか否かを判定する。なお、コマンド実行部２３２は、CPU１０１が特定情報により特定されたＯＳをSRAM１０３に読み込んで実行することにより実現される機能を示す機能ブロックである。
【００５９】
ステップＳ３４において、ＯＳ特定部２３１から供給されるコマンドが、ＯＳの生成や更新、削除を指示するコマンドであると判定された場合、処理は、ステップＳ３５に進み、コマンド実行部２３２は、ＯＳ特定部２３１から供給されるコマンドに基づいて、ＯＳの生成や更新、削除を行う。
【００６０】
即ち、例えば、ＯＳ特定部２３１から供給されるコマンドが、新たなＯＳの生成を指示するＯＳ生成コマンドであると判定された場合、コマンド実行部２３２は、ＯＳ生成コマンドに基づいて、ROM１０２に記憶されている機能コード１３１1乃至１３１nのうちの所定のものを選択し、機能コードテーブル１３４を用いてROM１０２から読み出し、新たなＯＳとしてEEPROM１０４に供給して、記憶させる。これにより、例えば、図６に示されるように、ROM１０２に記憶されている機能コード１３１1乃至１３１nから選択された機能コード１３１2、１３１3、１３１n-2が、新たなＯＳとしてEEPROM１０４に記憶される。
【００６１】
また、ステップＳ３５において、コマンド実行部２３２は、EEPROM１０４に記憶されたＯＳ管理情報テーブル１６１を読み出し、そのＯＳ管理情報テーブル１６１のＯＳ管理情報の追加や更新、削除をすることで、新たなＯＳ管理情報テーブルを生成し、ＯＳ管理情報テーブル１６１として、EEPROM１０４に供給し、上書きする形で、記憶させる。これにより、例えば、図６に示されるように、ROM１０２に記憶されている機能コード１３１1乃至１３１nから選択された機能コード１３１2、１３１3、１３１n-2が、新たなＯＳとしてEEPROM１０４に記憶された場合、その新たなＯＳのＯＳ管理情報が、EEPROM１０４のＯＳ管理情報テーブル１６１に追加される。
【００６２】
その後、コマンド実行部２３２は、ＯＳの生成や更新、削除による処理の結果を、レスポンス生成部２３３に供給して、処理は、ステップＳ３７に進む。
【００６３】
一方、ステップＳ３４において、ＯＳ特定部２３１から供給されるコマンドが、ＯＳの生成や更新、削除を指示するコマンドでないと判定された場合、処理は、ステップＳ３６に進み、コマンド実行部２３２は、ＯＳ特定部２３１から供給されるコマンドの処理（ＯＳの生成や更新、削除を行う処理以外の処理）を実行し、その処理の結果を、レスポンス生成部２３３に供給して、処理は、ステップＳ３７に進む。
【００６４】
ステップＳ３７において、レスポンス生成部２３３は、コマンド実行部２３２から供給される処理の結果に基づいて、リーダライタ６１などの装置から、通信インタフェース１０５およびバス１０８を介してCPU１０１（制御部２０１）に供給されるコマンドに対するレスポンスを生成し、バス１０８を介して通信インタフェース１０５に供給する。なお、レスポンス生成部２３３は、CPU１０１が特定情報により特定されたＯＳをSRAM１０３に読み込んで実行することにより実現される機能を示す機能ブロックである。
【００６５】
そして、通信インタフェース１０５は、CPU１０１により実行される基本プログラム１３２の制御に従い、レスポンス生成部２３３から供給されるレスポンスを送信する。
【００６６】
その後、処理は、終了される。
【００６７】
上述した、図７におけるＩＣカード６２による処理では、例えば、受信したコマンドが、新たなＯＳの生成を指示するＯＳ生成コマンドである場合に、ROM１０２に記憶された機能コード１３１1乃至１３１nのうちの所定のものを選択することにより、動的にＯＳを生成することとしたので、用途に応じた必要最小限の機能コードにより構成されるＯＳを生成することができる。
【００６８】
従って、例えば、用途に応じた必要最小限の機能コードにより構成されるＯＳとして、所定のデータの読み出しを要求する読み出し要求コマンドのみの処理を実行するＯＳを生成し、そのＯＳを用いて、リーダライタ６１などの装置からのコマンドの処理を実行する場合には、ＩＣカードに記憶されたデータが改ざんされるリスクの少ないＩＣカードとすることができる。
【００６９】
また、本実施の形態におけるＩＣカードにおいては、複数の機能コードを記憶させたＩＣカードを製造しておくだけで、ＩＣカードにより実現されるサービス毎に異なるＯＳを動的に生成することができるため、ＩＣカードにより実現されるサービス毎に異なるＯＳを有するＩＣカードを製造する場合と比較して、ＩＣカードの製造を簡単にすることができる。これにより、ＩＣカードを製造するＩＣカード製造会社の製造ラインの効率化を図ることができ、ひいては、ＩＣカードの製造コストを軽減することができる。
【００７０】
さらに、図７のステップＳ３５において、例えば、ＯＳ特定部２３１から供給されるコマンドが、新たなＯＳの生成を指示するＯＳ生成コマンドであると判定された場合、コマンド実行部２３２は、ＯＳ生成コマンドに基づいて、ROM１０２に記憶されている機能コード１３１1乃至１３１nのうちの所定のものを選択し、新たなＯＳとしてEEPROM１０４に記憶させ、さらに、EEPROM１０４に記憶されたＯＳ管理情報テーブル１６１に新たなＯＳのＯＳ管理情報を追加することとしたが、ROM１０２に記憶されている機能コード１３１1乃至１３１nのうちの所定のものを、新たなＯＳとしてEEPROM１０４に記憶させないで、ROM１０２に記憶されている機能コード１３１1乃至１３１nのうちの所定のもののアドレス情報などを、新たなＯＳのＯＳ管理情報として、EEPROM１０４に記憶されたＯＳ管理情報テーブル１６１に追加することとしてもよい。これにより、ROM１０２に記憶されている機能コード１３１1乃至１３１nのうちの所定のものを新たなＯＳとしてEEPROM１０４に記憶させたうえで、ＯＳ管理情報テーブル１６１に新たなＯＳのＯＳ管理情報を追加する場合と比較して、EEPROM１０４に記憶させる新たなＯＳを構成する機能コードの分だけ、EEPROM１０４の記憶容量を節約することができ、その結果、より多くのＯＳを生成することができる。
【００７１】
なお、例えば、リーダライタ６１などの装置から送信されてくるコマンドに基づいて、EEPROM１０４のＯＳ管理情報テーブル１６１のＯＳ管理情報の生成や更新、削除を行うＯＳが、EEPROM１０４のＯＳ管理情報テーブル１６１に登録されたＯＳであって、さらに、EEPROM１０４に記憶されたＯＳ管理情報テーブル１６１に登録されたＯＳ管理情報すべてを削除する処理を行った場合には、もはや、リーダライタ６１などの装置から送信されてくるコマンドに基づいて、EEPROM１０４のＯＳ管理情報テーブル１６１のＯＳ管理情報の生成や更新、削除を行うことができなくなってしまう。従って、リーダライタ６１などの装置から送信されてくるコマンドに基づいて、EEPROM１０４のＯＳ管理情報テーブル１６１のＯＳ管理情報の生成や更新、削除を行うＯＳのＯＳ管理情報などは、ROM１０２のＯＳ管理情報テーブル１３３にあらかじめ記憶されていることが望ましい。
【００７２】
また、本実施の形態においては、例えば、ROM１０２に記憶されている機能コードのうちの所定のものを選択することにより新たなＯＳを生成することとしたが、リーダライタ６１などの装置からの、所定の機能コードをEEPROM１０４に書き込む書き込み要求コマンドに応じて、EEPROM１０４に所定の機能コードを書き込むようにし、EEPROM１０４に書き込まれた機能コードと、ROM１０２に記憶されている機能コードのうちの所定のものを選択することにより新たなＯＳを生成するようにしてもよい。これにより、新たなＯＳを生成する場合に、選択することができる機能コードを増加させることができるため、より多くのＯＳを動的に生成することができる。
【００７３】
なお、本明細書において、プログラム格納媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【００７４】
さらに、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【００７５】
また、本実施の形態においては、リーダライタと接触せずに（近接させて）データの送受信を行う、いわゆる非接触型のＩＣカードに本発明を適用した場合を説明したが、本発明はこれに限定されることはなく、例えば、リーダライタと接触（密着）させてデータの送受信を行う、いわゆる接触型のＩＣカードや、接触型と非接触型の２つのインタフェースと、１つのＩＣチップを有し、２つのインタフェースから１つのＩＣチップにアクセスすることが可能な、いわゆるデュアルインタフェースカード（２Ｗayアクセスカード）、接触型と非接触型の２つのインタフェース、接触型のインタフェースからアクセスすることが可能なＩＣチップ、および非接触型のインタフェースからアクセスすることが可能な他のＩＣチップの２つのＩＣチップにより構成される、いわゆるハイブリッドカードなどに適用することができる。
【００７６】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【００７７】
【図１】本発明を適用したＩＣカードの一実施の形態の構成例を示すブロック図である。
【図２】図１のCPU１０１が所定のプログラムを実行することにより実現される制御部２０１の機能的な構成例を示すブロック図である。
【図３】図１のROM１０２に記憶されたデータを示す図である。
【図４】図３のROM１０２に記憶されたＯＳ管理情報テーブル１３３を示す図である。
【図５】図３のROM１０２に記憶された機能コードテーブル１３４を示す図である。
【図６】図１のEEPROM１０４に記憶されたデータを示す図である。
【図７】本発明を適用したＩＣカードが行う処理を説明するフローチャートである。
【符号の説明】
【００７８】
６２  ＩＣカード，  １０１  CPU，  １０２  ROM，  １０３  SRAM，  １０４  EEPROM，  １０５  通信インタフェース，  １０６  乱数発生器，  １０７  暗号復号エンジン，  １０８  バス，  ２０１  制御部，  ２３１  ＯＳ特定部，  ２３２  コマンド実行部，  ２３３  レスポンス生成部
【図１】
2008152411.tif 000003
【図２】
2008152411.tif 000004
【図３】
2008152411.tif 000005
【図４】
2008152411.tif 000006
【図５】
2008152411.tif 000007
【図６】
2008152411.tif 000008
【図７】
2008152411.tif 000009