説明

携帯可能電子装置およびICカード

【課題】ハードウェアの誤動作などによるデータの誤書込みや誤読出しを未然に防止することができる携帯可能電子装置およびICカードを提供することである。
【解決手段】実施形態に係る携帯可能電子装置は、揮発性メモリおよび不揮発性メモリを備え、外部から入力される命令を解釈して所定の処理を実行し、その結果を外部へ出力する携帯可能電子装置において、命令を解釈して実行するプログラムのうち一部のプログラムを除く残りのプログラムは前記不揮発性メモリにあらかじめ格納され、かつ、前記一部のプログラムは前記不揮発性メモリの特定領域にあらかじめ格納されており、外部から命令が入力されると、前記不揮発性メモリの特定領域に格納されている一部のプログラムを前記揮発性メモリの特定領域に展開し、当該命令を解釈して実行するプログラムの実行中に前記揮発性メモリの特定領域に格納された一部のプログラムが参照あるいは呼び出される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、携帯可能電子装置およびICカードに関する。
【背景技術】
【0002】
最近、携帯可能電子装置として、データメモリとしてのEEPROM、ワーキングメモリとしてのRAM、これらのメモリに対してアクセス(データの読出しおよびまたは書込み等)を行なう制御素子としてのCPU、および、CPUの動作用プログラム(コマンドを解釈して実行するプログラム等)を格納したプログラムメモリとしてのROMを有し、外部のカードリーダ・ライタから入力されるコマンドを解釈してデータの書込み処理や読出し処理を実行し、その結果を外部のカードリーダ・ライタへ出力するICカードが産業各方面で利用されている。
【0003】
一般に、この種のICカードにあっては、たとえば、データメモリ内にファイルを創生するファイル創生コマンドなどに対してメモリ書込みに関連する処理を行なうプログラム(プログラムコード)、あるいは、書込みコマンドや読出しコマンドに対してメモリ書込み処理や読出し処理を行なうプログラムなど、コマンドを解釈して実行するプログラムは、あらかじめROMに格納されているのが普通である。
【0004】
しかしながら、従来は、上記したように、コマンドを解釈して実行するプログラムはROMにあらかじめ格納されており、そのため、ハードウェアの誤動作などの際にプログラムカウンタの値によっては、データメモリへのデータ誤書込み、あるいは、データメモリ内のデータの誤読出しを行なうことがあるという問題がある。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2003−22425号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明が解決しようとする課題は、ハードウェアの誤動作などによるデータの誤書込みや誤読出しを未然に防止することができる携帯可能電子装置およびICカードを提供することである。
【課題を解決するための手段】
【0007】
実施形態に係る携帯可能電子装置は、揮発性メモリおよび不揮発性メモリを備え、外部から入力される命令を解釈して所定の処理を実行し、その結果を外部へ出力する携帯可能電子装置において、命令を解釈して実行するプログラムのうち前記不揮発性メモリに対するデータの書込み処理およびデータの読出し処理のうち少なくともいずれか一方の処理を行なうための一部のプログラムを除く残りのプログラムは前記不揮発性メモリにあらかじめ格納され、かつ、前記一部のプログラムは前記不揮発性メモリの特定領域にあらかじめ格納されており、外部から命令が入力されると、前記不揮発性メモリの特定領域に格納されている一部のプログラムを前記揮発性メモリの特定領域に展開し、当該命令を解釈して実行するプログラムの実行中に前記揮発性メモリの特定領域に格納された一部のプログラムを参照あるいは呼び出すことで当該プログラムを実行する。
【図面の簡単な説明】
【0008】
【図1】実施形態に係る携帯可能電子装置としてのICカードを取扱うICカードシステムの構成例を示すブロック図。
【図2】実施形態に係るICカードの構成例を示すブロック図。
【図3】実施形態に係るICカードに入力されるコマンドのフォーマットの一例を示す図。
【図4】実施形態に係るワーキングメモリの構成を概略的に示す模式図。
【図5】第1の実施形態に係るプログラムメモリの構成およびワーキングメモリのプログラム格納領域との関係を示す模式図。
【図6】第1の実施形態に係るコマンド処理の流れを説明するフローチャート。
【図7】第2の実施形態に係るプログラムメモリの構成およびワーキングメモリのプログラム格納領域との関係を示す模式図。
【図8】第2の実施形態に係るコマンド処理の流れを説明するフローチャート。
【発明を実施するための形態】
【0009】
以下、実施形態に係る携帯可能電子装置としてのICカードについて図面を参照して説明する。
まず、第1の実施形態について説明する。
【0010】
図1は、本実施形態に係る携帯可能電子装置としてのICカードを取扱うICカードシステムの構成例を示すものである。このICカードシステムは、ICカード101をカードリーダ・ライタ102を介してパーソナルコンピュータなどの端末装置103と接続可能にするとともに、端末装置103にキーボード104、CRT表示部105、プリンタ106を接続して構成される。
【0011】
図2は、ICカード101の構成例を示すもので、制御手段としての制御素子(たとえば、CPU)201、記憶手段としてのデータメモリ202、ワーキングメモリ203、プログラムメモリ204、および、カードリーダ・ライタ102との通信を行なうための通信部205によって構成されている。そして、これらのうち、破線内の部分(制御素子201、データメモリ202、ワーキングメモリ203、プログラムメモリ204)は1つ(あるいは複数)のICチップ206で構成され、さらに、このICチップ206と通信部205とが接続された状態で一体的にICモジュール207化されて、ICカード本体(図示省略)内に埋設されている。
【0012】
制御素子201は、各種の判定処理や判断処理およびメモリへの書込みや読出しなどのデータ処理等を行なう制御部である。
【0013】
データメモリ202は、アプリケーションデータなどの各種データの記憶に使用され、たとえば、EEPROM(エレクトリカリ・イレーザブル・アンド・プログラマブル・リード・オンリ・メモリ)などの消去(書換え)可能な不揮発性メモリで構成されている。
【0014】
ワーキングメモリ203は、制御素子201が処理を行なう際の処理データや外部から入力されるプログラムの一部などを一時的に保持するための作業用メモリであり、たとえば、RAM(ランダム・アクセス・メモリ)などの揮発性メモリで構成されている。
【0015】
プログラムメモリ204は、たとえば、マスクROM(リード・オンリ・メモリ)などの書換え不可能な不揮発性メモリで構成されており、制御素子201が実行するコマンド処理プログラム(コマンドを解釈して実行するプログラム等)や固定の設定データなどが記憶される。
【0016】
通信部205は、ICカード101が非接触式(無線式)ICカードの場合にはアンテナ部として構成され、カードリーダ・ライタ102から送信された変調波を非接触で受信したり外部へ変調波を発信したりするようになっている。また、この通信部205で受信した変調波から内部回路に供給するための電源やクロックを生成するようになっている。また、接触式ICカードの場合にはコンタクト部として構成され、カードリーダ・ライタ102に設けられたICカード端子部(図示しない)と接触することにより電源やクロックを得るようになっている。
【0017】
図3は、ICカード101に外部から入力されるコマンドのフォーマットの一例を示すものである。図3において、301はクラスバイト(CLA)、302はインストラクションバイト(INS)、303,304はパラメータバイト(P1,P2)、305はLcフィールド、306はコマンドデータフィールド、307はLeフィールドと呼ばれ、コマンドデータフィールド306にダウンロードする一部のプログラムが暗号化されて格納される。
【0018】
図4は、ワーキングメモリ203の構成を概略的に示すものである。ワーキングメモリ203は、外部から受信したコマンドを一時格納するコマンドバッファ領域401、および、コマンドに付加されて入力される一部のプログラムを一時的に格納するプログラム格納領域402を有している。
【0019】
図5は、第1の実施形態に係るプログラムメモリ204の構成、および、ワーキングメモリ203のプログラム格納領域402との関係を示している。プログラムメモリ204は、コマンド処理プログラムが格納されているコマンド処理プログラム領域501、コマンドに付加されて入力される暗号化された一部のプログラムを復号化する復号化処理プログラムが格納されている復号化処理プログラム領域502、ワーキングメモリ203のプログラム格納領域402に格納された一部のプログラムを呼び出すためのプログラム呼び出しプログラムが格納されているプログラム呼び出しプログラム領域503、コマンド処理プログラムが格納されているコマンド処理プログラム領域504を有していて、その順番にプログラム処理が実行される。
【0020】
次に、上記のような構成において、第1の実施形態に係るコマンド処理について図6に示すフローチャートを参照して説明する。
【0021】
まず、プログラムメモリ204のコマンド処理プログラム領域501,504には、コマンド処理プログラム(コマンドを解釈して実行するプログラム)のうち一部のプログラム(たとえば、データの書込み処理プログラムおよびデータの読出し処理プログラム)を除く残りのプログラムがあらかじめ格納されているものとする。また、上記一部のプログラムは、コマンドのコマンドデータフィールド306に暗号化されて格納され、コマンドとともに入力されるものとする。
【0022】
さて、カードリーダ・ライタ102から送信されるコマンドを受信すると(ステップS1)、制御素子201は、受信したコマンドをワーキングメモリ203のコマンドバッファ領域401に格納した後(ステップS2)、プログラムメモリ204のコマンド処理プログラム領域501に格納されたプログラムに基づくコマンド処理を開始する(ステップS3)。
【0023】
ステップS3の処理が終了すると、制御素子201は、復号化処理プログラム領域502に格納されたプログラムの処理に進み、コマンドに付加されて入力された一部のプログラムの復号化処理を行なう(ステップS4)。すなわち、ワーキングメモリ203のコマンドバッファ領域401に格納されているコマンドのコマンドデータフィールド306内の暗号化されたデータ(すなわち、一部のプログラム)を復号化する。
【0024】
次に、制御素子201は、復号化した一部のプログラムをワーキングメモリ203のプログラム格納領域402に格納する(ステップS5)。
ステップS5の処理が終了すると、制御素子201は、プログラム呼び出しプログラム領域503に格納されたプログラムの処理に進む(ステップS6)。すなわち、ワーキングメモリ203のプログラム格納領域402に格納された一部のプログラムを呼び出して、そのプログラム処理(たとえば、データメモリ202に対するデータ書込み処理やデータ読出し処理等)を実施する。
【0025】
ステップS6の処理が終了すると、制御素子201は、プログラムメモリ204のコマンド処理プログラム領域504に格納されたプログラムに基づくコマンド処理に戻る(ステップS7)。
【0026】
ステップS7の処理が終了すると、制御素子201は、ワーキングメモリ203のプログラム格納領域402に対しホールト(HALT)処理を実施し(ステップS8)、コマンド処理を全て終了する。
【0027】
このように、第1の実施形態によれば、コマンドを解釈して実行するプログラムのうち一部のプログラムを除く残りのプログラムはプログラムメモリ204に格納し、一部のプログラムは外部から入力されるコマンドによりワーキングメモリ203のプログラム格納領域402に格納し、当該コマンドを解釈して実行するプログラムの実行中にワーキングメモリ203のプログラム格納領域402に格納された一部のプログラムを参照あるいは呼び出して処理を実行することで、ハードウェアの誤動作などによるデータメモリ202に対するデータの誤書込みや誤読出しを未然に防止することができる。
【0028】
次に、第2の実施形態について説明する。
第2の実施形態の第1の実施形態と異なる点は、第1の実施形態のように一部のプログラムをコマンドに付加して入力するのではなく、一部のプログラムをプログラムメモリ204の特定領域にあらかじめ格納しておき、コマンドが入力されると、その特定領域内の一部のプログラムをワーキングメモリ203のプログラム格納領域402に展開して使用する点にあり、その外は第1の実施形態と同様であるので説明は省略し、異なる点についてだけ以下に説明する。
【0029】
図7は、第2の実施形態に係るプログラムメモリ204の構成、および、ワーキングメモリ203のプログラム格納領域402との関係を示している。プログラムメモリ204は、コマンド処理プログラムが格納されているコマンド処理プログラム領域501、一部のプログラムが本来とは異なる状態に変換されて、たとえば、暗号化されて格納されているとともに、その暗号化された一部のプログラムを復号化してワーキングメモリ203のプログラム格納領域402に展開するプログラム展開処理プログラムが格納されているプログラム展開処理プログラム領域505、ワーキングメモリ203のプログラム格納領域402に格納された一部のプログラムを呼び出すためのプログラム呼び出しプログラムが格納されているプログラム呼び出しプログラム領域503、コマンド処理プログラムが格納されているコマンド処理プログラム領域504を有していて、その順番にプログラム処理が実行される。
【0030】
次に、上記のような構成において、第2の実施形態に係るコマンド処理について図8に示すフローチャートを参照して説明する。
【0031】
まず、プログラムメモリ204のコマンド処理プログラム領域501,504には、コマンド処理プログラム(コマンドを解釈して実行するプログラム)のうち一部のプログラム(たとえば、データの書込み処理プログラムおよびデータの読出し処理プログラム)を除く残りのプログラムがあらかじめ格納されているものとする。また、上記一部のプログラムは、プログラムメモリ204のプログラム展開処理プログラム領域505にあらかじめ暗号化されて格納されているものとする。
【0032】
さて、カードリーダ・ライタ102から送信されるコマンドを受信すると(ステップS11)、制御素子201は、受信したコマンドをワーキングメモリ203のコマンドバッファ領域401に格納した後(ステップS12)、プログラムメモリ204のコマンド処理プログラム領域501に格納されたプログラムに基づくコマンド処理を開始する(ステップS13)。
【0033】
ステップS13の処理が終了すると、制御素子201は、プログラム展開処理プログラム領域505に格納されたプログラムの処理に進み、展開する一部のプログラムの変換処理(復号化)を行なう(ステップS14)。すなわち、プログラムメモリ204のプログラム展開処理プログラム領域505に暗号化されて格納されている一部のプログラムを復号化する。
【0034】
次に、制御素子201は、復号化した一部のプログラムをワーキングメモリ203のプログラム格納領域402に格納(展開)する(ステップS15)。
ステップS15の処理が終了すると、制御素子201は、プログラム呼び出しプログラム領域503に格納されたプログラムの処理に進む(ステップS16)。すなわち、ワーキングメモリ203のプログラム格納領域402に格納された一部のプログラムを呼び出して、そのプログラム処理(たとえば、データメモリ202に対するデータ書込み処理やデータ読出し処理等)を実施する。
【0035】
ステップS16の処理が終了すると、制御素子201は、プログラムメモリ204のコマンド処理プログラム領域504に格納されたプログラムに基づくコマンド処理に戻る(ステップS17)。
【0036】
ステップS17の処理が終了すると、制御素子201は、ワーキングメモリ203のプログラム格納領域402に対しホールト(HALT)処理を実施し(ステップS18)、コマンド処理を全て終了する。
【0037】
このように、第2の実施形態によれば、コマンドを解釈して実行するプログラムのうち一部のプログラムを除く残りのプログラムはプログラムメモリ204に格納するとともに、一部のプログラムはプログラムメモリ204のプログラム展開処理プログラム領域505に格納しておき、コマンドが入力されると、プログラムメモリ204のプログラム展開処理プログラム領域505に格納されている一部のプログラムをワーキングメモリ203のプログラム格納領域402に展開し、当該コマンドを解釈して実行するプログラムの実行中にワーキングメモリ203のプログラム格納領域402に格納された一部のプログラムを参照あるいは呼び出して処理を実行することで、ハードウェアの誤動作などによるデータメモリ202に対するデータの誤書込みや誤読出しを未然に防止することができる。
【0038】
なお、前記実施形態では、携帯可能情報処理媒体として非接触式ICカードに適用した場合について説明したが、これに限定されるものではなく、たとえば、非接触式ICカードの機能を備えたPDAと称される携帯端末装置や携帯電話機などであっても適用でき、また、カード型に限らず、冊子型、ブロック形あるいはタグ型であってもよい。
【0039】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行なうことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【0040】
101…ICカード(携帯可能電子装置)、102…カードリーダ・ライタ、103…端末装置、104…キーボード、105…CRT表示部、106…プリンタ、201…制御素子(CPU)、202…データメモリ、203…ワーキングメモリ、204…プログラムメモリ、205…通信部、206…ICチップ、207…ICモジュール。

【特許請求の範囲】
【請求項1】
揮発性メモリおよび不揮発性メモリを備え、外部から入力される命令を解釈して所定の処理を実行し、その結果を外部へ出力する携帯可能電子装置において、
命令を解釈して実行するプログラムのうち前記不揮発性メモリに対するデータの書込み処理およびデータの読出し処理のうち少なくともいずれか一方の処理を行なうための一部のプログラムを除く残りのプログラムは前記不揮発性メモリにあらかじめ格納され、かつ、前記一部のプログラムは前記不揮発性メモリの特定領域にあらかじめ格納されており、外部から命令が入力されると、前記不揮発性メモリの特定領域に格納されている一部のプログラムを前記揮発性メモリの特定領域に展開し、当該命令を解釈して実行するプログラムの実行中に前記揮発性メモリの特定領域に格納された一部のプログラムを参照あるいは呼び出すことで当該プログラムを実行する携帯可能電子装置。
【請求項2】
データを記憶する揮発性メモリと、
命令を解釈して実行するプログラムのうち当該不揮発性メモリに対するデータの書込み処理およびデータの読出し処理のうち少なくともいずれか一方の処理を行なうための一部のプログラムを除く残りのプログラムがあらかじめ格納され、かつ、特定領域に前記一部のプログラムがあらかじめ格納された不揮発性メモリと、
外部から命令が入力されると、前記不揮発性メモリの特定領域に格納されている一部のプログラムを前記揮発性メモリの特定領域に展開するとともに、前記不揮発性メモリに格納された当該命令を解釈して実行するプログラムを実行し、当該プログラムの実行中に前記揮発性メモリの特定領域に格納された一部のプログラムを参照あるいは呼び出すことで当該プログラムを実行する処理手段と、
を具備する携帯可能電子装置。
【請求項3】
前記不揮発性メモリの特定領域に格納されている一部のプログラムは本来とは異なる状態に変換されて格納されていて、前記揮発性メモリの特定領域に格納される際に本来の状態に変換されてから格納される請求項1または請求項2記載の携帯可能電子装置。
【請求項4】
前記揮発性メモリの特定領域は、前記一部のプログラムが格納されていないときにホールト(HALT)処理が施されている請求項1または請求項2記載の携帯可能電子装置。
【請求項5】
前記揮発性メモリの特定領域に対するホールト(HALT)処理は、命令処理の終了時にその都度実施される請求項1または請求項2記載の携帯可能電子装置。
【請求項6】
データを記憶する揮発性メモリと、命令を解釈して実行するプログラムのうち当該不揮発性メモリに対するデータの書込み処理およびデータの読出し処理のうち少なくともいずれか一方の処理を行なうための一部のプログラムを除く残りのプログラムがあらかじめ格納され、かつ、特定領域に前記一部のプログラムがあらかじめ格納された不揮発性メモリと、外部から命令が入力されると、前記不揮発性メモリの特定領域に格納されている一部のプログラムを前記揮発性メモリの特定領域に展開するとともに、前記不揮発性メモリに格納された当該命令を解釈して実行するプログラムを実行し、当該プログラムの実行中に前記揮発性メモリの特定領域に格納された一部のプログラムを参照あるいは呼び出すことで当該プログラムを実行する処理手段とを有して構成されるICモジュールと、
このICモジュールを収納したICカード本体と、
を具備するICカード。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2012−33197(P2012−33197A)
【公開日】平成24年2月16日(2012.2.16)
【国際特許分類】
【出願番号】特願2011−242562(P2011−242562)
【出願日】平成23年11月4日(2011.11.4)
【分割の表示】特願2006−224322(P2006−224322)の分割
【原出願日】平成18年8月21日(2006.8.21)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】