(57)【特許請求の範囲】
【請求項１】
種々の機能を有するコマンドに応じてアプリケーションが動作する携帯可能電子装置において、
外部機器とのデータ通信を行う通信手段と、
この通信手段により外部機器から受信するコマンドに応じて動作する複数のアプリケーションを記憶する第１の記憶手段と、
上記第１の記憶手段により記憶されている各アプリケーションのデータを記憶位置あるいは識別子で指定するコマンドに対して、アプリケーションごとに上記記憶位置でのデータの指定あるいは上記識別子でのデータの指定を制限する情報が記憶される第２の記憶手段と、
上記通信手段により外部機器からコマンドを受信した際に、上記第２の記憶手段により記憶している情報に基づいて、上記第１の記憶手段により記憶しているアプリケーションごとに受信したコマンドの機能を制限して実行する制御手段と、
を具備することを特徴とする携帯可能電子装置。
【請求項２】
種々の機能を有するコマンドに応じてアプリケーションが動作する携帯可能電子装置において、
外部機器とのデータ通信を行う通信手段と、
この通信手段により外部機器から受信するコマンドに応じて動作する複数のアプリケーションを記憶する第１の記憶手段と、
この第１の記憶手段により記憶されている少なくとも２つ以上のアプリケーションで共用されるコマンドに対して、アプリケーションごとにコマンドの機能を制限する情報を記憶する第２の記憶手段と、
上記通信手段により外部機器からコマンドを受信した際に、上記第２の記憶手段により記憶している情報に基づいて、アプリケーションごとに受信したコマンドの機能を制限して実行する制御手段と、を具備し、
上記第２の記憶手段は、上記第１の記憶手段により記憶されている各アプリケーションのデータを記憶位置あるいは識別子で指定するコマンドに対して、アプリケーションごとに上記記憶位置でのデータの指定あるいは上記識別子でのデータの指定を制限する情報が記憶される、
ことを特徴とする携帯可能電子装置。
【請求項３】
種々の機能を有するコマンドに応じてアプリケーションが動作する携帯可能電子装置において、
外部機器とのデータ通信を行う通信手段と、
この通信手段により外部機器から受信するコマンドに応じて動作する複数のアプリケーションを記憶する第１の記憶手段と、
この第１の記憶手段により記憶されている少なくとも２つ以上のアプリケーションで共用されるコマンドに対して、アプリケーションごとにコマンドの機能を制限する情報を記憶する第２の記憶手段と、
上記通信手段により外部機器からコマンドを受信した際に、上記第２の記憶手段に記憶されている情報に基づいて、受信したコマンドの機能が許可されているか禁止されているか判断する判断手段と、
この判断手段により受信したコマンドの機能が許可されていると判断した場合、受信したコマンドの機能を実行する実行手段と、
上記判断手段により受信したコマンドの機能が禁止されていると判断した場合、受信したコマンドの機能の実行を禁止する禁止手段と、を具備し、
上記第２の記憶手段は、上記第１の記憶手段により記憶されている各アプリケーションのデータを記憶位置あるいは識別子で指定するコマンドに対して、アプリケーションごとに上記記憶位置でのデータの指定あるいは上記識別子でのデータの指定を制限する情報が記憶される、
ことを特徴とする携帯可能電子装置。
【請求項４】
上記禁止手段は、受信したコマンドの機能が実行できない旨を示す情報を送信元に返信すること特徴とする上記請求項３に記載の携帯可能電子装置。
【請求項５】
種々の機能を有するコマンドに応じてアプリケーションが動作する携帯可能電子装置において、
外部機器とのデータ通信を行う通信手段と、
この通信手段により外部機器から受信するコマンドに応じて動作する複数のアプリケーションを記憶する第１の記憶手段と、
この第１の記憶手段により記憶されている少なくとも２つ以上のアプリケーションで共用されるコマンドに対して、アプリケーションごとにコマンドの機能を制限する情報を記憶する第２の記憶手段と、
上記通信手段により外部機器からコマンドを受信した際に、上記第２の記憶手段により記憶している情報に基づいて、アプリケーションごとに受信したコマンドの機能を制限して実行する制御手段と、
上記通信手段により外部機器から上記第２の記憶手段の記憶内容の書換えを指示する書換コマンドを受信した際に、受信した書換コマンドによる上記第２の記憶手段の書換えが正当か否かを判断する判断手段と、
この判断手段により書換コマンドが正当なものであると判断した場合、上記書換コマンドに基づいて上記第２の記憶手段の記憶内容を書換える処理を実行する実行手段と、
上記判断手段により書換コマンドが正当なものでないと判断した場合、上記第２の記憶手段の記憶内容の書換えを禁止する禁止手段と、を具備し、
上記第２の記憶手段は、上記第１の記憶手段により記憶されている各アプリケーションのデータを記憶位置あるいは識別子で指定するコマンドに対して、アプリケーションごとに上記記憶位置でのデータの指定あるいは上記識別子でのデータの指定を制限する情報が記憶される、
ことを特徴とする携帯可能電子装置。
【請求項６】
上記判断手段は、上記第２の記憶手段の書換コマンドとともに受信するキー情報と、予め設定されているキー情報との照合を行うことにより上記書換コマンドが正当か否かを判断することを特徴とする上記請求項５に記載の携帯可能電子装置。
【請求項７】
種々の機能を有するコマンドに応じてアプリケーションが動作する携帯可能電子装置の制御方法において、
この通信手段により外部機器から受信するコマンドに応じて動作する複数のアプリケーションを第１の記憶手段に記憶しておき、
上記第１の記憶手段により記憶されている各アプリケーションのデータを記憶位置あるいは識別子で指定するコマンドに対して、アプリケーションごとに上記記憶位置でのデータの指定あるいは上記識別子でのデータの指定を制限する情報を第２の記憶手段に記憶しておき、
外部機器とのデータ通信を行い、
この通信により外部機器からコマンドを受信した際に、上記第２の記憶手段により記憶している情報に基づいて、上記第１の記憶手段により記憶しているアプリケーションごとに受信したコマンドの機能を制限して実行する、
ことを特徴とする携帯可能電子装置の制御方法。
【請求項８】
種々の機能を有するコマンドに応じてアプリケーションが動作する携帯可能電子装置の制御方法において、
この通信手段により外部機器から受信するコマンドに応じて動作する複数のアプリケーションを第１の記憶手段に記憶しておき、
上記第１の記憶手段により記憶されている少なくとも２つ以上のアプリケーションで共用されるコマンドに対してアプリケーションごとにコマンドの機能を制限する情報として、上記第１の記憶手段により記憶されている各アプリケーションのデータを記憶位置あるいは識別子で指定するコマンドに対して、アプリケーションごとに上記記憶位置でのデータの指定あるいは上記識別子でのデータの指定を制限する情報を第２の記憶手段に記憶しておき、
外部機器とのデータ通信を行い、
この通信により外部機器からコマンドを受信した際に、上記第２の記憶手段により記憶している情報に基づいて、アプリケーションごとに受信したコマンドの機能を制限して実行する、
ことを特徴とする携帯可能電子装置の制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、書き込みあるいは書き換えが可能な不揮発性メモリやＣＰＵなどの制御素子を有し、外部とのデータの入出力を行う手段を備えたＩＣチップを内蔵したＩＣカードと称される携帯可能電子装置に関する。
【０００２】
【従来の技術】
従来、携帯可能電子装置としてのＩＣカードは、書き込みあるいは書き換えが可能な不揮発性メモリやＣＰＵなどの制御素子を有し、外部とのデータの入出力を行う手段を備えたＩＣチップが内蔵されている。
【０００３】
このようなＩＣカードでは、１つのＩＣカードに対して、複数のアプリケーションが記憶されている。各アプリケーションは、ＩＣカードの動作目的に応じて利用される。例えば、１枚のＩＣカードで複数のサービスを利用可能にする場合、各サービスごとに設計されたアプリケーションがＩＣカード内に記憶される。これにより、ＩＣカードを利用する際に、利用するサービスに対応したアプリケーションでＩＣカードを動作させる。また、上記のようなＩＣカードに記憶される各アプリケーションは、外部機器からのコマンドを受けて、そのコマンドに応じた処理を実行するようになっている。
【０００４】
しかしながら、同一のコマンドは、異なるアプリケーションで動作する場合であっても、全く同一の機能しか持っていない。このため、アプリケーションによっては、あるコマンドの一部の機能しか使いたくない場合であっても、全く別のコマンドを用いて動作させなければならない。従って、類似したコマンドやコマンドの一部の機能のみを使いたい場合であっても個々の動作指示に応じて全てのコマンドを作成しなくてはならない。
【０００５】
例えば、メモリ内に記憶されているあるデータ（レコード）を読み出す場合に利用される「リードレコード」コマンドでは、リードするレコードに対し、レコード番号による指定や、レコードＩＤによる指定が可能であるが、アプリケーションによっては、この中でレコード番号指定のみ使いたいという要求が生じることがある。この場合、従来のＩＣカードでは、各アプリケーションに応じて異なるコマンドを作成しなくてはならない。
【０００６】
上記のように、完全に同一の動作指示でなければ、類似した動作指示であっても各アプリケーションに応じたコマンドをそれぞれ作成する必要があり、プログラムコードの増大を招いているという問題点がある。
【０００７】
【発明が解決しようとする課題】
上記したように、類似したコマンドであっても各アプリケーションに応じた別々のコマンドを作成する必要があり、プログラムコードの増大を招いているという問題点を解決するもので、異なるアプリケーションでコマンドの一部の機能を利用する場合、各アプリケーションに応じた別々のコマンドを作成する必要がなく、プログラムコードを減少させることができる携帯可能電子装置を提供することを目的とする。
【０００８】
【課題を解決するための手段】
この発明の携帯可能電子装置は、種々の機能を有するコマンドに応じてアプリケーションが動作するものにおいて、外部機器とのデータ通信を行う通信手段、この通信手段により外部機器から受信するコマンドに応じて動作する複数のアプリケーションを記憶する第１の記憶手段、上記第１の記憶手段により記憶されている各アプリケーションのデータを記憶位置あるいは識別子で指定するコマンドに対して、アプリケーションごとに上記記憶位置でのデータの指定あるいは上記識別子でのデータの指定を制限する情報が記憶される第２の記憶手段、および上記通信手段により外部機器からコマンドを受信した際に、上記第２の記憶手段により記憶している情報に基づいて、上記第１の記憶手段により記憶しているアプリケーションごとに受信したコマンドの機能を制限して実行する制御手段から構成されている。
【０００９】
この発明の携帯可能電子装置は、種々の機能を有するコマンドに応じてアプリケーションが動作するものにおいて、外部機器とのデータ通信を行う通信手段、この通信手段により外部機器から受信するコマンドに応じて動作する複数のアプリケーションを記憶する第１の記憶手段、この第１の記憶手段により記憶されている少なくとも２つ以上のアプリケーションで共用されるコマンドに対して、アプリケーションごとにコマンドの機能を制限する情報を記憶する第２の記憶手段、および上記通信手段により外部機器からコマンドを受信した際に、上記第２の記憶手段により記憶している情報に基づいて、アプリケーションごとに受信したコマンドの機能を制限して実行する制御手段から構成され、上記第２の記憶手段は、上記第１の記憶手段により記憶されている各アプリケーションのデータを記憶位置あるいは識別子で指定するコマンドに対して、アプリケーションごとに上記記憶位置でのデータの指定あるいは上記識別子でのデータの指定を制限する情報が記憶される。
【００１０】
この発明の携帯可能電子装置は、種々の機能を有するコマンドに応じてアプリケーションが動作するものにおいて、外部機器とのデータ通信を行う通信手段、この通信手段により外部機器から受信するコマンドに応じて動作する複数のアプリケーションを記憶する第１の記憶手段、この第１の記憶手段により記憶されている少なくとも２つ以上のアプリケーションで共用されるコマンドに対して、アプリケーションごとにコマンドの機能を制限する情報を記憶する第２の記憶手段、上記通信手段により外部機器からコマンドを受信した際に、上記第２の記憶手段に記憶されている情報に基づいて、受信したコマンドの機能が許可されているか禁止されているか判断する判断手段、この判断手段により受信したコマンドの機能が許可されていると判断した場合、受信したコマンドの機能を実行する実行手段、および上記判断手段により受信したコマンドの機能が禁止されていると判断した場合、受信したコマンドの機能の実行を禁止する禁止手段から構成され、上記第２の記憶手段は、上記第１の記憶手段により記憶されている各アプリケーションのデータを記憶位置あるいは識別子で指定するコマンドに対して、アプリケーションごとに上記記憶位置でのデータの指定あるいは上記識別子でのデータの指定を制限する情報が記憶される。
【００１１】
この発明の携帯可能電子装置は、種々の機能を有するコマンドに応じてアプリケーションが動作するものにおいて、外部機器とのデータ通信を行う通信手段、この通信手段により外部機器から受信するコマンドに応じて動作する複数のアプリケーションを記憶する第１の記憶手段と、この第１の記憶手段により記憶されている少なくとも２つ以上のアプリケーションで共用されるコマンドに対して、アプリケーションごとにコマンドの機能を制限する情報を記憶する第２の記憶手段、上記通信手段により外部機器からコマンドを受信した際に、上記第２の記憶手段により記憶している情報に基づいて、アプリケーションごとに受信したコマンドの機能を制限して実行する制御手段、上記通信手段により外部機器から上記第２の記憶手段の記憶内容の書換えを指示する書換コマンドを受信した際に、受信した書換コマンドによる上記第２の記憶手段の書換えが正当か否かを判断する判断手段、この判断手段により書換コマンドが正当なものであると判断した場合、上記書換コマンドに基づいて上記第２の記憶手段の記憶内容を書換える処理を実行する実行手段、および上記判断手段により書換コマンドが正当なものでないと判断した場合、上記第２の記憶手段の記憶内容の書換えを禁止する禁止手段から構成され、上記第２の記憶手段は、上記第１の記憶手段により記憶されている各アプリケーションのデータを記憶位置あるいは識別子で指定するコマンドに対して、アプリケーションごとに上記記憶位置でのデータの指定あるいは上記識別子でのデータの指定を制限する情報が記憶される。
【００１２】
【発明の実施の形態】
以下、この発明の実施の形態について図面を参照して説明する。
【００１３】
図１は、この発明の実施の形態に係わる携帯可能電子装置としてのＩＣカードを利用するＩＣカードシステムの概略構成を示す図である。
【００１４】
このＩＣカードシステムは、ＩＣカード１０１、リーダライタ（外部機器）１０２、端末１０３、キーボード１０４、ＣＲＴ１０５、プリンタ１０６などから構成されている。
【００１５】
上記リーダライタ１０２は、ＩＣカード１０１へのデータの送信、ＩＣカード１０１からのデータの受信を行うものである。上記端末１０３は、ＩＣカード１０１以外の各部と接続され、システム全体を制御するものである。この端末１０３は、上記リーダライタ１０２を介してＩＣカード１０１へ後述するコマンドを送信する。
【００１６】
上記キーボード１０４は、動作指示や種々のデータを入力するものである。上記ＣＲＴ１０５は、操作案内や処理結果などが表示されるものである。上記プリンタ１０６は、処理結果などを印刷するものである。上記キーボード１０４、ＣＲＴ１０５、およびプリンタ１０６は、上記端末１０３に接続され、上記端末１０３からの動作指示に基づいて動作するようになっている。
【００１７】
次に、ＩＣカード１０１について説明する。
【００１８】
図２は、ＩＣカード１０１の構成例を示す図である。図２に示すように、上記ＩＣカード１０１は、制御素子（制御手段、実行手段、禁止手段）２０１、データメモリ（記憶手段）２０２、ワーキングメモリ２０３、プログラムメモリ２０４、コンタクト部（通信手段）２０５などによって構成されている。
【００１９】
上記のうち、図２の破線で囲まれている制御素子２０１、データメモリ２０２、ワーキングメモリ２０３、およびプログラムメモリ２０４は、１つあるいは複数のＩＣチップ２００で構成される。さらに、ＩＣチップ２００とコンタクト部２０５とは一体的にＩＣモジュール化されて、ＩＣカード１０１本体内に埋設されている。
【００２０】
上記制御素子２０１は、ＩＣカード１０１の全体を制御する制御部として機能する。上記データメモリ２０２は、記憶内容が消去および書換えが可能な不揮発性のメモリで構成されている。また、上記データメモリ２０２は、各種データやアプリケーションの記憶に使用され、たとえばＥＥＰＲＯＭなどで構成されている。
【００２１】
上記ワーキングメモリ２０３は、制御素子２０１が処理を行う際の処理データを一時的に保持するためのメモリであり、たとえば揮発性メモリ（ＲＡＭ）などで構成される。上記プログラムメモリ２０４は、例えばマスクＲＯＭで構成されており、予め記憶される制御素子２０１のプログラムなどを記憶するものである。上記コンタクト部２０５は、上記リーダライタ１０２との電気的接触を得るためのモジュールで構成されている。
【００２２】
なお、上記例では、コンタクト部２０５によりリーダライタ（外部機器）１０３と接触してデータ通信を行う接触式のＩＣカードの構成について説明したが、外部機器と無線でデータ通信を行う非接触式のＩＣカードであっても良い。この場合、上記コンタクト部２０５の代わりに、アンテナなどで構成される無線通信部を具備した構成となる。
【００２３】
次に、ＩＣカード１０１のデータメモリ２０２内で管理されるファイルの構造について説明する。
図３は、データメモリ２０２内で管理されるファイル構造を示す。図３に示すように、データメモリ２０２内で管理されるファイルは、通常、ＭＦ（マスターファイル；Ｍａｓｔｅｒ  Ｆｉ１ｅ）３０１、ＤＦ（ディジネテッドファイル；Ｄｅｄｉｃａｔｅｄ  ＦｉＩｅ）３０２、ＥＦ（エレメンタリーファイル；Ｅ１ｅｍｅｎｔａｒｙ  Ｆｉ１ｅ）３０３からなる。
【００２４】
これらのファイルの構造は、ＤＯＳ（ディスクオペレーティングシステム；Ｄｉｓｋ  Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）などのＯＳ（オペレーティングシステム；Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）で用いられるファイルのディレクトリ構造と同様なものである。
【００２５】
すなわち、ＩＣカード１０１のデータメモリ２０２のファイル構造は、ルートディレクトリとしてのＭＦ３０１があり、その下にＤＦ３０２が構成される。それぞれのＤＦ３０２は、通常、各アプリケーションに相当し、その下に存在するＥＦ３０３が各アプリケーションのデータファイルとして用いられる。
【００２６】
次に、データメモリ２０２内に格納されるデータについて説明する。
【００２７】
図４の（ａ）、（ｂ）は、データメモリ２０２のＥＦ３０３にデータを格納する際のレコードのフォーマット形式を示す図である。このフォーマットは、ＩＳ０／ＩＥＣ７８１６−４にて規定されている簡易ＴＬＶ（タグレングスバリュウ）コードフォーマットである。
【００２８】
図４の（ａ）および（ｂ）に示すように、ＥＦ３０３のレコードは、主に、タグ（Ｔａｇ）部６０１、レングス（Ｌｅｎｇｔｈ）部６０２、バリュウ（Ｖａ１ｕｅ）部６０３と呼ばれる３つのフィールドにより構成される。特に、上記バリュウ部６０３には、各アプリケーションで使用される各種データが格納される。
【００２９】
図４の（ａ）は、バリュウ部６０３の長さが０〜１２７バイト以内の場合にのみ使用可能なフォーマットである。このときレングス部６０２には、バリュウ部６０３のバイト数を１６進数にてコーディングしたものが格納される。
【００３０】
また、図４の（ｂ）は、バリュウ部６０３の長さが０〜６５５３５バイトの場合に使用されるフォーマットである。この場合、レングス部６０２を’ＦＦ’とし、かつ、レングス部６０２とバリュウ部６０３との間にエクステンドレングス（ＥｘｔｅｎｄｅｄＬｅｎｇｔｈ）部６０４を設け、バリュウ部６０３のバイト数を１６進数にてコーディングする。
【００３１】
上記タグ部６０１は、バリュウ部６０３の内容を示す識別子が記憶され、後述するレコードＩＤなどが記憶される。また、タグ部６０１には、外部のアプリケーションがデータメモリ２０２にデータを書込む際に、データに対応してリーダライタ１０２が指定する任意に値を設定できる。
【００３２】
図５は、ＥＦ３０３内に複数のレコードが存在する場合を示す図である。図４（ａ）あるいは（ｂ）に示すようなタグ部６０１、レングス部６０２およびバリュウ部６０３で構成されるレコードが複数存在する場合、各レコードは、図５に示すように、レコード番号７０１とタグ部に格納される識別子としてのレコードＩＤ６０１とで管理されている。
【００３３】
ここで、レコード番号（記憶位置）７０１とは、データメモリ２０２上の記憶位置（物理的な場所）を示すものであり、各レコードに対して通し番号などが機械的に付与される。また、レコードＩＤ（識別子）は、各レコードの内容ごとに与えられ、各レコードのデータの関連性や種類などを示している。
【００３４】
次に、ＩＣカードシステムで用いられるコマンドについて説明する。
【００３５】
このコマンドは、ＩＣカードシステムの端末１０３がＩＣカード１０１に対して動作指示を行う際に、リーダライタ１０２からＩＣカード１０１に送信される。これに対して、ＩＣカード１０１では、受信したコマンドに基づいて動作を実行するようになっている。
【００３６】
また、図５に示すような複数のレコードを有するＩＣカード１０１に対してレコードを指定する場合、ＩＣカードシステムは、レコード番号７０１または、レコードＩＤ（タグ部）６０１のどちらでも指定することができる。
【００３７】
例えば、ＩＣカードシステムがリードレコード（ＲＥＡＤＲＥＣＯＲＤ（Ｓ））コマンドを用いてデータの読み出しを行う場合、レコード番号７０１あるいはレコードＩＤ（タグ部）６０１を指定してレコードを読み出すことができる。従って、リードレコードコマンドの場合、レコード番号７０１だけでなく、タグ部６０１の識別子としてのレコードＩＤを検索キーにしてレコードにアクセスすることができる。
【００３８】
また、例えば、ライトレコード（ＷＲＩＴＥＲＥＣＯＲＤ）コマンドを用いて、ＩＣカード１０１にデータを書き込む場合、書き込みデータの一部としてタグ部６０１に書込むレコードＩＤを通知する。これにより、ＩＣカード１０１には、データのみだけでなく、データを格納するレコードのレコードＩＤを書込む（書換える）ことができる。
【００３９】
ここで、上記タグ部６０１に書込む値（レコードＩＤ）としては、’００’〜’ＦＥ’（ＩＳ０／ＩＥＣ７８１６−４では、’ＦＦ’は将来の利用のため留保する（Ｒｅｓｅｒｖｅｄ  ｆｏｒ  Ｆｕｔｕｒｅ  Ｕｓｅ）となっている）の範囲以内で選択可能であり、特に、’００’は「意味無し」タグを示す。
【００４０】
次に、ＩＣカードシステムで用いられるコマンドの構造について説明する。
図６は、ＩＣカードシステムで用いられるコマンド４０１の基本構造を示すものである。図６に示すように、ＩＣカードシステムで用いられるコマンドは、コマンドヘッダ（Ｈｅａｄｅｒ）４０２とコマンドボディ（Ｂｏｄｙ）４０３から構成される。上記コマンドヘッダ４０２は、クラスコード（ＣＬＡ）４０４、インストラクションコード（ＩＮＳ）４０５、パラメータ（Ｐ１）４０６、パラメータ（Ｐ２）４０７からなる。上記コマンドボディ４０３は、Ｌｃフィールド４０８、データフィールド４０９、およびＬｅフィールドなどから構成される。
【００４１】
上記クラスコード４０４と上記インストラクションコード４０５とは、コマンド４０１の種類を限定する。さらに、上記パラメータ（Ｐ１）４０６と上記パラメータ（Ｐ２）４０７とは、コマンド４０１の機能を特定する。上記Ｌｃフィールド４０８は、後に続くデータフィールド４０９の長さを示す。上記データフィールド４０９は各種データが格納される。上記Ｌｅフィールド４１０は、当該コマンド４０１に対する返りの期待長（返信データの長さ）を示している。
【００４２】
次に、図７の（Ａ）〜（Ｄ）は、上記のようなコマンドの基本構造に基づき種々のコマンドで利用されるコマンドフォーマットを示すものである。図７の（Ａ）では、コマンドヘッダ４０２のみからなるコマンド５０１の構成を示す（ケース１）。図７の（Ｂ）では、コマンドヘッダ４０２とＬｅフィールド４１０とからなるコマンド５０２の構成を示す（ケース２）。
【００４３】
図７の（Ｃ）では、コマンドヘッダ４０２、Ｌｃフィールド４０８、およびデータフィールド４０９からなるコマンド５０３の構成を示す（ケース３）。図７の（Ｄ）では、コマンドヘッダ４０２、Ｌｃフィールド４０８、データフィールド４０９、Ｌｅフィールド４１０からなるコマンド５０４の構成を示す（ケース４）。
【００４４】
図８は、リードレコードコマンドのコマンドフォーマットを説明するための図である。図８はリードレコードコマンドのフォーマットを示す。図８に示すように、リードレコードコマンドの場合、コマンドは上述したケース２の種類のコマンド５０２である。
【００４５】
従って、リードレコードコマンドは、コマンドヘッダ４０２であるクラスコード４０４、インストラクションコード４０５、パラメータ（Ｐ１）４０６、およびパラメータ（Ｐ２）４０７と、コマンドボディ４０３であるレングス（Ｌｅ）４１０から構成される。
【００４６】
また、リードレコードコマンドでは、リードレコードコマンドであることを示すデータとして、クラスコード４０４が’００’、インストラクションコード４０５が’Ｂ２’となっている。さらに、パラメータ（Ｐ１）４０６には、読み出すレコード番号７０１、またはレコードＩＤ６０１を指定するデータが格納される。
【００４７】
図９は、パラメータ（Ｐ１）４０７のコーディング法を説明するための図である。このパラメータ４０７は、８ビットで構成される。これに対応して、８ビットの各ビットをａ８〜ａ１として説明する。なお、ここではａ８〜ａ４のコーディング方法については省略する。
【００４８】
まず、パラメータ４０７のａ３、ａ２、ａ１については、ａ３＝１の場合、レコード番号７０１によるアクセスを意味するようになっている。
【００４９】
従って、（ａ３、ａ２、ａ１）＝（１、０、０）の場合、パラメータ４０６で指定されるレコード番号７０１の指定レコードのみを読み出すことを意味する。
【００５０】
（ａ３、ａ２、ａ１）＝（１、０、１）の場合、パラメータ４０６で指定されるレコード番号７０１から最後に存在するレコード番号７０１のレコードまでを読み出すことを意味する。
【００５１】
（ａ３、ａ２、ａ２）＝（１、１、０）の場合、最後に存在するレコード番号７０１のレコードから、パラメータ４０６で指定されるレコード番号７０１までを読み出すことを意味する。
【００５２】
一方、ａ３＝０の場合、レコードＩＤ（タグ部）６０１によるアクセスを意味する。
【００５３】
よって、（ａ３、ａ２、ａ１）＝（０、０、０）の場合、パラメータ４０６で指定されるレコードＩＤ６０１を有する先頭レコードを読み出すことを意味する。
【００５４】
（ａ３、ａ２、ａ１）＝（０、０、１）の場合、パラメータ４０６で指定されるレコードＩＤ６０１を有する最終レコードを読み出すことを意味する。
【００５５】
（ａ３、ａ２、ａ１）＝（０、１、０）の場合、パラメータ４０６で指定されるレコードＩＤ（６０１）を有する次レコードを読み出すことを意味する。
【００５６】
（ａ３、ａ２、ａ１）＝（０、１、１）の場合、パラメータ４０６で指定されるレコードＩＤ（６０１）を有する前レコードを読み出すことを意味する。
【００５７】
なお、レングス（Ｌｅ）４１０ではレコードを読み出すバイト数が指定されるようになっている。
【００５８】
次に、上記のように構成されるコマンドの機能の制限について説明する。
【００５９】
図１０は、図８に示すようなリードレコードコマンドの機能を制限するコマンド機能制限テーブル９０１の例を示す図である。この例では、図９に示すようなコマンドにおける、（ａ３、ａ２、ａ１）の各ビットにより表される機能を制限する。
【００６０】
このコマンド機能制限テーブル９０１は、プログラム設計時以後に機能変更が行われない場合、プログラムメモリ（ＲＯＭ）に存在しても良い。また、ＩＣカード発行時にコマンド機能制限テーブル９０１を決定する場合や、発行後にコマンド機能制限テーブル９０１の内容の書き換えが行われる場合などは、データメモリ（不揮発性メモリ、ＥＥＰＲＯＭ）２０２などに各アプリケーションに対応して存在させておく。
【００６１】
図１０に示すように、コマンド機能制限テーブル９０１は、例えば、上記の図９に示すような機能を有するリードレコードコマンドに対しては、（ｂ８、ｂ７、ｂ６、ｂ５、ｂ４、ｂ３、ｂ２、ｂ１）といった８ビットのデータで構成される。なお、このコマンド機能制限テーブル９０１は、コマンドの種々の機能に応じて設定されるもので、図１０に示すコマンド機能制限テーブル９０１では、図９に示す機能に対応する部分を示している。
【００６２】
図１０に示す例では、各ビットが、コマンドが有する種々の機能に対して、機能の許可を示す’０’か、機能の禁止を示す’１’かが設定される。
【００６３】
図１０では、ｂ８は、レコード番号指定「指定レコード」機能に対応しており、’０’が設定されている場合、レコード番号よるレコードの指定を許可し、’１’が設定されている場合、レコード番号よるレコードの指定を禁止することを示している。
【００６４】
ｂ７は、レコード番号による指定が「指定レコードから最終レコード」の機能に対応しており、’０’が設定されている場合、指定するレコード番号から順に最終レコードまでのレコードを指定することを許可し、’１’が設定されている場合、指定するレコード番号から順に最終レコードまでのレコードを指定することを禁止する。
【００６５】
ｂ６は、レコード番号による指定が「最終レコードから指定レコード」の機能に対応しており、’０’が設定されている場合、最終レコードから順にパラメータ４０６が示す指定レコードまでのレコードを指定することを許可し、’１’が設定されている場合、最終レコードから順にパラメータ４０６が示す指定レコードまでのレコードを指定することを禁止する。
【００６６】
ｂ５は、レコードＩＤによる指定が「指定ＩＤを有する次レコード」の機能に対応しており、’０’が設定されている場合、指定されたレコードＩＤを有する次のレコードを指定することを許可し、’１’が設定されている場合、指定されたレコードＩＤを有する次のレコードを指定することを禁止する。
【００６７】
ｂ４は、レコードＩＤによる指定が「指定ＩＤを有する前レコード」の機能に対応しており、’０’が設定されている場合、指定されたレコードＩＤを有する前のレコードを指定することを許可し、’１’が設定されている場合、指定されたレコードＩＤを有する前のレコードを指定することを禁止する。
【００６８】
ｂ３は、レコードＩＤによる指定が「指定ＩＤを有する先頭レコード」の機能に対応しており、’０’が設定されている場合、指定されたレコードＩＤを有する先頭のレコードを指定することを許可し、’１’が設定されている場合、指定されたレコードＩＤを有する先頭のレコードを指定することを禁止する。
【００６９】
ｂ２は、レコードＩＤによる指定が「指定ＩＤを有する最終レコード」の機能に対応しており、’０’が設定されている場合、指定されたレコードＩＤを有する最終のレコードを指定することを許可し、’１’が設定されている場合、指定されたレコードＩＤを有する最終のレコードを指定することを禁止する。
【００７０】
ｂ１は、未使用とする。
【００７１】
このように機能に対して個別に許可あるいは禁止を示すテーブルを持つことによって、複数のアプリケーションで共用されるコマンドの細かい機能の制限が可能である。また、これらｂ８〜ｂ２は、機能全体が使えるならば、すべて許可「０」とすれば良いし、逆にすべて禁止「１」の場合には、このコマンド自体が使用不可能とすることができる。
【００７２】
次に、上記のようなコマンド機能制限テーブル９０１で制限されるコマンドによるＩＣカード１０１の動作について図１１に示すフローチャートを参照しつつ説明する。
【００７３】
ここで、リーダライタ（外部機器）１０２にＩＣカード１０１をセットすると、ＩＣカード１０１にはリーダライタ１０２からコマンドが送信される。すると、ＩＣカード１０１の制御素子２０１は、コンタクト部２０５を介してこのコマンドを受信する（ステップ１）。
【００７４】
リーダライタ１０２からのコマンドを受信した制御素子２０１は、リードレコードコマンドのパラメータ４０６およびパラメータ４０７を参照してこのコマンドの機能を判定する。この判定によりコマンドの機能を判定すると、制御素子２０１は、コマンド機能制限テーブル９０１を参照して、該当機能が許可か禁止かを判断する（ステップ２）。
【００７５】
この判断により受信したコマンドの機能が禁止されていると判断した場合、制御素子２０１は、「機能未サポート」などのエラーメッセージを返すことにより、機能の動作が禁止されている旨をリーダライタ１０２に返信する（ステップ３）。
【００７６】
また、該当機能の動作が許可されていると判断した場合、制御素子２０１は、受信したコマンドの機能に基づいて処理を実行する（ステップ４）。
【００７７】
例えば、リーダライタ１０２からレコード番号によるアクセス（Ｐ２＝×、××、×、×、１、０、０）の機能を有するリードレコードコマンドを受信した際（ステップ１）、制御素子２０１は、コマンド機能制限テーブル９０１に基づいてレコード番号によるアクセスが許可されているか禁止されているかを判断する（ステップ２）。
【００７８】
この判断によりレコード番号によるアクセスが許可されていると判断した場合、制御素子２０１は、パラメータ（Ｐ１）４０６で指定されるレコード番号のレコードの読み出しを実行する（ステップ３）。
【００７９】
また、レコード番号によるアクセスが禁止されていると判断した場合、制御素子２０１は、「機能未サポート」などのエラーメッセージをリーダライタ１０２に返信する（ステップ４）。
【００８０】
上記のように、各アプリケーションごとに、各コマンドの種々の機能による処理が許可されているか禁止されているかを設定し、コマンドを受けた際に、そのコマンドの機能が制限されているか否かを判断し、この判断に基づいて動作を制御するようにしたものである。
【００８１】
これにより、各アプリケーションごとに、各コマンドに対して特定の機能のみを利用したいという要求を満足することができ、プログラムコードの減少させることができる。
【００８２】
また、リードレコードコマンドは、リードするレコードに対し、レコード番号による指定や、レコードＩＤによる指定が可能であるが、アプリケーションによって、レコード番号による指定のみ、あるいはレコードＩＤによる指定のみを使いたいという要求が生じた場合、レコードＩＤによる指定、あるいはレコード番号による指定を禁止するようにしたものである。
【００８３】
これにより、各アプリケーション毎に、異なるコマンドを作成する必要がなくなり、プログラムコードの減少が期待できる。
【００８４】
次に、コマンド機能制限テーブル９０１の書換え処理について説明する。
【００８５】
図１２は、コマンド機能制限テーブル９０１とこのテーブルの書換を許可するキーを格納するエレメンタリーファイル（ＥＦ）１００３を示す図である。
【００８６】
この場合、図１２に示すように、各アプリケーションが格納されるＤＦ１００２に対して、コマンド機能制限テーブル９０１がＥＦ１００４内に存在する。さらに、各アプリケーションの下の階層には、コマンド機能制限テーブル９０１を書き換える権限をもつキーが格納されるＥＦ（ＩＥＦと呼ぶ）１００３が存在する。
【００８７】
上記ＩＥＦ１００３に格納されるキーは、外部機器からコマンド機能制限テーブルの内容を書換えるコマンドを受信した際に、そのコマンドが書換えの権限を有するか否かを外部機器からのキー情報と照合することにより判断するものである。
【００８８】
次に、コマンド機能制限テーブル９０１を書換える際の動作について図１３に示すフローチャートを参照しつつ説明する。
【００８９】
まず、コマンド機能制限テーブル９０１を書換える場合、ＩＣカード１０１をリーダライタ（外部機器）１０２にセットすると、リーダライタ１０２からコマンド機能テーブル９０１の書換コマンドと書換の権限を判定するためのキー情報とが送信される（ステップ１１）。すると、ＩＣカード１０１は、リーダライタ１０２からのキー情報と、ＩＥＦ１００３内に格納されている照合用のキーとの照合処理を行う（ステップ１２）。
【００９０】
なお、上記例では、外部機器から送信されるキー情報がコマンド機能テーブル９０１の書換コマンドとともに送信されるようにしたが、コマンド機能テーブル９０１の書換コマンドを送信した後に、ＩＣカード１０１からのキーの要求に応じてキー情報が送信されるようにしても良い。
【００９１】
また、外部機器から先にキー情報が送信され、このキー情報に対するキーの照合が成功した場合に、外部機器からコマンド機能テーブル９０１の書換コマンドが送信されるようにしても良い。
【００９２】
上記キーの照合処理の結果、キーの照合に成功した場合（ステップ１３）、制御素子２０１は、コマンド機能制限テーブル９０１の書換を可能とし、受信したコマンドに応じてコマンド機能制限テーブル９０１の内容を書換える（ステップ１４）。
【００９３】
また、上記キー照合処理の結果、キーの照合に失敗した場合（ステップ１３）、制御素子２０１は、コマンド機能制限テーブル９０１の書換えを不可とし、リーダライタ１０２にエラーメッセージを返し（ステップ１５）、コマンド機能制限テーブル９０１の書換えを実行しないようにする。
【００９４】
上記のように、コマンド機能制限テーブルを書換える際に、予め設定されているキーとの照合を行い、キーが照合した場合にのみ、コマンド機能制限テーブルの書換を許可するようにしたものである。
【００９５】
これにより、正当なキーが用いられる場合にのみコマンド機能制限テーブルを書換え可能とし、無制限にコマンド機能制限テーブルが書換えられることを防ぐことができる。
【００９６】
【発明の効果】
以上詳述したように、この発明によれば、コマンドの一部の機能を利用する場合、それぞれの指示内容に応じたコマンドを作成する必要がなく、プログラムコードを減少させることができる携帯可能電子装置を提供できる。
【図面の簡単な説明】
【図１】この発明の実施の形態にかかわるＩＣカードシステムの概略構成を示す図。
【図２】ＩＣカードの構成を示す図。
【図３】データメモリ内のファイル構造を示す図。
【図４】レコードの構造を示す図。
【図５】複数のレコードが存在する場合の構成を示す図。
【図６】コマンドの基本構造を示す図。
【図７】種々のコマンドの構造を示す図。
【図８】リードレコードコマンドの構造を示す図。
【図９】リードレコードコマンドのパラメータの値とその意味づけを示す図。
【図１０】コマンド機能制限テーブルとその意味づけを説明するための図。
【図１１】コマンド機能制限テーブルを用いた動作を説明するためのフローチャート。
【図１２】コマンド機能制限テーブルを有するＥＦと照合用のキーが格納されるＥＦの構成例を示す図。
【図１３】コマンド機能制限テーブルの書換えの動作を説明するためのフローチャート。
【符号の説明】
１０１…ＩＣカード
１０２…リーダライタ
１０３…端末
２０１…制御素子（制御手段、実行手段、禁止手段）
２０２…データメモリ（記憶手段、第１の記憶手段）
２０３…ワーキングメモリ
２０４…プログラムメモリ
２０５…コンタクト部（通信手段）
９０１…コマンド機能制限テーブル（第２の記憶手段）
【図１】
0004443699.tif 000002
【図２】
0004443699.tif 000003
【図３】
0004443699.tif 000004
【図４】
0004443699.tif 000005
【図５】
0004443699.tif 000006
【図６】
0004443699.tif 000007
【図７】
0004443699.tif 000008
【図８】
0004443699.tif 000009
【図９】
0004443699.tif 000010
【図１０】
0004443699.tif 000011
【図１１】
0004443699.tif 000012
【図１２】
0004443699.tif 000013
【図１３】
0004443699.tif 000014