JP4219455B2 - Icカード - Google Patents
Icカード Download PDFInfo
- Publication number
- JP4219455B2 JP4219455B2 JP34234098A JP34234098A JP4219455B2 JP 4219455 B2 JP4219455 B2 JP 4219455B2 JP 34234098 A JP34234098 A JP 34234098A JP 34234098 A JP34234098 A JP 34234098A JP 4219455 B2 JP4219455 B2 JP 4219455B2
- Authority
- JP
- Japan
- Prior art keywords
- program
- application
- area
- auxiliary
- basic
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Description
【発明の属する技術分野】
本発明はICカードに関し、特に、CPUとメモリとを有し、外部からプログラムをメモリ内にロードし、これをCPUに実行させることができるICカードに関する。
【0002】
【従来の技術】
キャッシュカードやクレジットカードとして利用されてきた磁気カードに代わって、光カードやICカードが普及し始めている。特に、CPUを内蔵したICカードは、高度なセキュリティを確保することができるため、高額な商取引にも利用することができる利点を有する。
【0003】
現在、一般に利用されているCPUを有するICカードには、メモリとして、ROM,EEPROM,RAMが内蔵されている。通常、ROMには、CPUに実行させるべき基本的なプログラムが格納され、EEPROMには、ユーザデータや種々のアプリケーションプログラムが格納され、RAMはCPUの作業領域として利用される。EEPROMは書換可能なメモリであるため、ここにユーザごとに必要なデータやアプリケーションプログラムを格納することができる。
【0004】
ICカードにデータやプログラムを書き込んだり、これらを読み出したりする際には、いわゆるリーダライタ装置と呼ばれる外部装置が用いられる。この外部装置とICカードとの間では、物理的な伝送線を介してまたは非接触な伝送路を介して、相互にデータやプログラムの伝送が行われる。通常、外部装置からICカードへの情報伝送は、コマンドという形式で与えられ、種々の指示やデータは、このコマンドの中の一情報としてICカード側へと伝えられる。これに対して、ICカードから外部装置への情報伝送は、レスポンスという形式で与えられ、処理結果やデータは、このレスポンスの中の一情報として外部装置側へと伝えられる。
【0005】
EEPROM内に所望のアプリケーションプログラムを格納したい場合は、外部装置から、当該プログラムをICカード内にロードするためのロードコマンドを与えればよい。ICカードの利用分野は様々であり、たとえば、1枚のICカードを、医療用診察カード、クレジットカード、ガソリン給油カードなどとして利用するのであれば、EEPROM内に、医療診断用プログラム、クレジット決済用プログラム、ガソリン代金支払用プログラムなど、それぞれ用途に応じたアプリケーションプログラムをロードしておき、必要に応じて、所望のアプリケーションプログラムを選択して実行するようにすればよい。
【0006】
【発明が解決しようとする課題】
ICカードは、一般のコンピュータ機器に比べて容積が著しく小さく、内蔵メモリの容量も著しく小さい。このため、限られたメモリ資源を有効に活用する必要がある。その反面、同一のICカードを多数の用途に利用したいという要望も強く、ICカード内にロードすべきプログラムやデータの種類は益々増加する傾向にある。そこで、ICカード内にロードされたプログラムやデータのうち、不必要になったものについては、順次消去してゆく方法が採られている。しかしながら、ICカードの管理者は、どのプログラムやデータが不要になったかを常に監視し、必要に応じて、プログラムやデータの消去コマンドを与え、メモリを解放する作業を行わねばならない。
【0007】
そこで本発明は、不必要な情報を自動的に消去し、限られたメモリ資源を有効に活用することができるICカードを提供することを目的とする。
【0008】
【課題を解決するための手段】
(1) 本発明の第1の態様は、CPUとメモリとを有し、メモリ内のプログラムをCPUに実行させることができるICカードにおいて、
メモリには、書換不能な不揮発性メモリと、書換可能な不揮発性メモリと、が含まれており、
書換不能な不揮発性メモリもしくは書換可能な不揮発性メモリには、基本OSプログラムが格納されており、
書換可能な不揮発性メモリには、OS領域とアプリケーション領域とが設けられており、
基本OSプログラムは、外部から与えられたアプリケーションプログラムをアプリケーション領域に格納するロード機能と、アプリケーションプログラムをアプリケーション領域から消去する消去機能と、を有しており、
アプリケーション領域には、アプリケーションプログラムに対応した消去フラグを記録するための領域が設けられており、
OS領域には、アプリケーションプログラムに対応したカウンタを記録するための領域が設けられており、
消去フラグは、アプリケーションプログラムが格納された初期状態では、基本OSプログラムによって「寝ている状態」に設定され、アプリケーションプログラムに含まれている、所定の有効期限が満了した場合に自分自身を不必要と判断する手順、もしくは、プリペイド額の残金が零になった場合に自分自身を不必要と判断する手順により、自分自身が不必要と判断された場合には、アプリケーションプログラムに含まれている上記手順によって「立っている状態」に設定され、
カウンタは、基本OSプログラムにより、アプリケーションプログラムが格納された初期状態では1に設定され、対応するアプリケーションプログラムについての消去フラグが「立っている状態」に変化したことが認識されたときには1だけ減じられ、
カウンタが零となったときに当該カウンタに対応するアプリケーションプログラムに対する消去機能が、基本OSプログラムにより実行されるようにしたものである。
【0009】
(2) 本発明の第2の態様は、上述の第1の態様に係るICカードにおいて、
基本OSプログラムのロード機能には、1つもしくは複数のアプリケーションプログラムによって利用されるデータ、テーブルまたはサブルーチンから構成される補助プログラムをアプリケーション領域に格納する機能が含まれており、
基本OSプログラムの消去機能には、補助プログラムをアプリケーション領域から消去する機能が含まれており、
アプリケーション領域には、個々のアプリケーションプログラムに対応した補助プログラム用消去フラグを記録するための領域が設けられており、
OS領域には、補助プログラム用のカウンタを記録するための領域が設けられており、
補助プログラム用消去フラグは、対応するアプリケーションプログラムが格納された初期状態では、基本OSプログラムによって「寝ている状態」に設定され、対応するアプリケーションプログラムに組み込まれている手順により補助プログラムが不必要と判断された場合には、上記手順によって「立っている状態」に設定され、
補助プログラム用のカウンタは、基本OSプログラムにより、補助プログラムが格納された初期状態では、当該補助プログラムを利用するアプリケーションプログラムの数nに設定され、いずれかの補助プログラム用消去フラグが「立っている状態」に変化したことが認識されるたびに1だけ減じられ、
補助プログラム用のカウンタが零となったときに補助プログラムに対する消去機能が、基本OSプログラムにより実行されるようにしたものである。
【0011】
【発明の実施の形態】
以下、本発明を図示する実施形態に基づいて説明する。図1は、一般的なICカード10と、外部装置(リーダライタ装置)20との間で、情報の伝送を行っている状態を示すブロック図である。この例では、ICカード10は、種々の演算処理機能をもったCPU11と、外部装置20に対する情報の送受を行うI/Oインターフェイス12と、ROM13,EEPROM14,RAM15なるメモリとを備えている。ROM13は書換不能な不揮発性メモリであり、CPU11は、このROM13内に格納されている基本プログラムに基づいて所定の処理を実行する。EEPROM14は、書換可能な不揮発性メモリであり、ユーザデータや種々のアプリケーションプログラムが格納される。RAM15は、CPU11が種々の処理を実行する際の作業領域として利用される書換可能な揮発性メモリである。
【0012】
ICカード10と外部装置20とは、物理的な信号線による接続、赤外線による接続、電磁気を利用した非接触型接続、などの方法によって互いに接続され、情報の送受が行われる。外部装置20からICカード10へは、コマンドという形式で情報が送信される。送信されたこのコマンドは、I/Oインターフェイス12を介してCPU11に与えられる。逆に、ICカード10から外部装置20へは、与えられたコマンドに対するレスポンスという形式で情報が送信される。このレスポンスは、CPU11からI/Oインターフェイス12を介して、外部装置20へと送信される。
【0013】
ここに示す実施形態では、ROM13内に、基本OS(Operating System)プログラムと、インタープリタプログラムとが格納されている。基本OSプログラムは、このICカード10全体の動作を統括管理するためのプログラムであり、後述するように、外部装置20側から与えられたモジュール(アプリケーションプログラムや補助プログラム)をEEPROM14内に格納するロード機能や、外部装置20側からの指示に基づいて特定のアプリケーションを選択するアプリケーション選択機能や、不必要になったモジュールを消去する消去機能などを実行することができる。このICカード10の用途に応じて、所定のアプリケーションプログラムおよびこのアプリケーションプログラムが利用する補助プログラムが、EEPROM14内にロードされることになる。通常、アプリケーションプログラムは、CPU11に依存しない汎用言語で記述される。ROM13内に用意されたインタープリタプログラムは、このような汎用言語で記述されたアプリケーションプログラムを、CPU11が解釈可能なマシン語プログラムに翻訳するためのプログラムである。なお、ここでは、基本OSプログラムおよびインタープリタプログラムが、ROM13内に予め用意されている例を示すが、これらのプログラムは必ずしもROM13内に用意する必要はなく、EEPROM14内にロードして用いるようにしてもかまわない(この場合、ROM13内には、少なくとも当該ロードを行うための基本プログラムが必要である)。
【0014】
図2は、このICカード10で実行されるプログラムの階層構造の一例を示すブロック図である。図示の例では、基本OSプログラム(ここに示す例では、ROM13内に用意されている)が最も上位階層のプログラムであり、ICカード10の全動作を統括管理する。その下の階層には、2つのアプリケーションプログラム1,2が示されている。これらのアプリケーションプログラム1,2は、EEPROM14内にロードされて利用されるプログラムであり、それぞれ特定の用途に利用される(たとえば、医療用診断プログラムであったり、クレジット決済用プログラムであったりする)。
【0015】
更にその下の階層には、補助プログラムAが示されている。この補助プログラムAは、アプリケーションプログラム1,2によって共通して利用されるプログラムである。なお、本願明細書において「プログラム」なる文言は、何らかの実行命令を示すコードだけではなく、データやテーブルなども含んだ広い意味を示すものであり、補助プログラムAは、アプリケーションプログラム1,2によって利用されるデータ、テーブルまたはサブルーチンから構成されている。アプリケーションプログラム1または2を実行すると、必要に応じて、この補助プログラムAに含まれているサブルーチンが呼び出されたり、この補助プログラムAに含まれているデータやテーブルが参照されたりする。この補助プログラムAも、EEPROM14内にロードされて利用されることになる。
【0016】
なお、説明の便宜上、この実施形態では、2つのアプリケーションプログラム1,2と、1つの補助プログラムAをEEPROM14内にロードして用いる例を示すことにするが、実際には、EEPROM14のメモリ容量の制限の範囲内で、より多数のアプリケーションプログラムや補助プログラムをロードして用いることができる。ここでは、EEPROM14内にロードされるアプリケーションプログラムや補助プログラム(サブルーチン,データ,テーブル)を総称して、「モジュール」と呼ぶことにする。
【0017】
さて、上述したように、ROM13内に用意されている基本OSプログラムは、外部装置20側から与えられたモジュールをEEPROM14内に格納するロード機能と、このEEPROM14内のモジュールを適宜消去する消去機能と、を実行することが可能である。このようなロード機能および消去機能を有するICカード自体は、既に従来から利用されている。しかしながら、従来のICカードでは、これらの機能を実行させるために、外部装置20側からロードコマンドや消去コマンドを与える必要がある。これに対し、本発明に係るICカードでは、ロード機能を実行させる場合には、外部装置20側からロードコマンドを与える必要があるが、消去機能を実行させるためには、必ずしも外部装置20側から消去コマンドを与える必要はない。別言すれば、本発明に係るICカードは、外部から消去コマンドを与えることなしに、自動的に消去機能を実行することができる。
【0018】
本発明の基本概念は、EEPROM14内にロードされるアプリケーションプログラムに、自分自身の必要性および自分が利用する補助プログラムの必要性を判断させ、この判断に基づいて消去機能を実行するようにした点にある。いわば、アプリケーションプログラムに、自己の任務が完了したか否かを判断する機能、あるいは自己が利用する補助プログラムの自己に対する任務が完了したか否かを判断する機能をもたせ、この判断に基づいて、外部からの指示を受けることなしに、任務が完了したアプリケーションプログラムあるいは補助プログラムを自動的に消去するようにしたものである。したがって、本発明を実施する上では、自分自身の必要性を判断する手順が組み込まれたアプリケーションプログラム、あるいは、自分自身の必要性とともに、自分自身が利用する補助プログラムの必要性を判断する手順が組み込まれたアプリケーションプログラムを用意し、これらのアプリケーションプログラムを、EEPROM14内にロードして用いることが前提となる。そして、これらのアプリケーションプログラムを実行した結果、自分自身について不必要との判断がなされた場合には、当該アプリケーションプログラムに対する消去機能が実行され、自分自身が利用する補助プログラムについて不必要との判断がなされた場合には、当該補助プログラムに対する消去機能が実行されるようにすればよい。
【0019】
自分自身あるいは自分自身が利用する補助プログラムの必要性を判断する手順は、アプリケーションプログラムの作成者の意図に応じて、どのような手順を用いてもかまわない。たとえば、クレジットカードとして機能するためのアプリケーションプログラムであれば、所定の有効期限が満了した場合に、自分自身は不必要との判断がなされるような手順を組み込んでおくことができる。通常、有効期限の満了後には、このアプリケーションプログラムの実質的な処理機能は停止することになるので、EEPROM14内から自動的に消去されても全く問題はない。むしろ、不要なプログラムを自動削除することによって、EEPROM14のメモリ資源を有効活用することが可能になるメリットが得られる。また、プリペイドカードとして機能するためのアプリケーションプログラムであれば、残金が零になった場合に、自分自身は不必要との判断がなされるような手順を組み込んでおけばよいし、産婦人科受診用のカードとして機能するためのアプリケーションプログラムであれば、出産が無事終了した旨の情報が書き込まれた場合に、自分自身は不必要との判断がなされるような手順を組み込んでおくこともできよう。補助プログラムに関する判断も同様である。たとえば、ユーザ名などを新規登録するための処理を行うサブルーチンが、特定のアプリケーションプログラムから呼び出されて利用され、このアプリケーションプログラムにおける新規登録処理が完了した場合には、当該アプリケーションプログラムに関する限り、当該サブルーチンは不必要との判断がなされるようにしておけばよい。
【0020】
なお、特定のアプリケーションプログラムにのみ利用される補助プログラムの場合は、当該特定のアプリケーションプログラムにおける判断だけで消去しても問題はないが、複数のアプリケーションプログラムによって共通して利用される補助プログラムの場合は、1つのアプリケーションプログラムにおいて不必要と判断されたとしても、別なアプリケーションプログラムは必要としている可能性がある。そこで、このような補助プログラムに対しては、これを利用するすべてのアプリケーションプログラムにおいて、当該補助プログラムについて不必要との判断がなされた場合に、消去機能が実行されるようにすればよい。たとえば、図2に示す例の場合、補助プログラムAは、2つのアプリケーションプログラム1,2から共通して利用されるため、両アプリケーションプログラム1,2の双方において不必要との判断がなされた場合に限り、消去されるようにすればよい。
【0021】
以上、本発明の基本概念を述べたが、ここでは、図2に示すように、2つのアプリケーションプログラム1,2と、これらから共通して利用される補助プログラムAとをEEPROM14内にロードして用いる場合について、本発明のより具体的な手法を述べることにする。まず、ここで述べる実施形態では、図3に示すように、EEPROM14の一部に、OS領域14Aとアプリケーション領域14Bとが確保される。通常、複数のプログラムを並行して実行する場合、各プログラムごとに、それぞれメモリ空間を割り当て、各プログラムは、自分自身に割り当てられたメモリ空間に対してのみアクセスを行うような手法が採られる。このように、個々のプログラムごとに別個独立したメモリ空間を割り当てると、全体的に安定した動作が可能になる。図3に示す例では、OS領域14Aは、基本OSプログラムに割り当てられたメモリ空間であり、アプリケーション領域14Bは、アプリケーションプログラムに割り当てられたメモリ空間である。
【0022】
図3に示す例では、アプリケーション領域14Bに、アプリケーションプログラム1、アプリケーションプログラム2、補助プログラムAがそれぞれロードされた状態が示されている。しかも、アプリケーションプログラム1および2が格納された領域には、それぞれ消去フラグF1,FAおよびF2,FAを記録するための付加領域が設けられている。アプリケーションプログラム1の付加領域に記録される消去フラグF1,FAは、アプリケーションプログラム1内の手順においてのみアクセスされ、アプリケーションプログラム2の付加領域に記録される消去フラグF2,FAは、アプリケーションプログラム2内の手順においてのみアクセスされる。一方、OS領域14A内には、3つのカウンタC1,C2,CAを記録するための領域が設けられており、これらカウンタの記録領域は、基本OSプログラム内の手順においてのみアクセスされる。
【0023】
ここで、簡単に各カウンタおよび各フラグのもつ意味について述べておく。まず、カウンタC1,C2,CAは、それぞれアプリケーションプログラム1,アプリケーションプログラム2,補助プログラムAが不必要になったか否かを示すためのものであり、これら各プログラムがEEPROM14内にロードされた時点で、それぞれ所定の初期値に設定される。具体的には、アプリケーションプログラムについてのカウンタは、いずれも初期値1に設定され、補助プログラムについてのカウンタは、当該補助プログラムを利用するアプリケーションプログラムの数が初期値として設定される。したがって、図示の例の場合、EEPROM14内にアプリケーションプログラム1,2および補助プログラムAがロードされた時点で、C1=1,C2=1,CA=2(図2に示すように、この例の場合、補助プログラムAは、2つのアプリケーションプログラムから利用されるため)に設定される。なお、補助プログラムが、どのアプリケーションプログラムから利用されるか、という情報は、EEPROM14内へのロードを行う段階で、外部装置20側から指定すればよい。
【0024】
一方、消去フラグF1,F2,FAは、上記カウンタC1,C2,CAの値を減らす指示を与えるために用いられる。ここでは、各フラグは1ビットのデータからなり、この1ビットが0の場合に「フラグは寝ている状態」とし、この1ビットが1の場合に「フラグは立っている状態」とする。各プログラムがEEPROM14内にロードされた初期状態では、いずれのフラグも寝ている状態に設定される。
【0025】
続いて、これらカウンタやフラグを利用した具体的な処理手順を、図4および図5の流れ図に基づいて説明する。図4は、基本OSプログラムによる処理手順を示す流れ図であり、図5は、選択された特定のアプリケーションプログラム(この例の場合、アプリケーションプログラム1または2のいずれか)によるコマンド実行処理手順を示す流れ図である。
【0026】
ICカード10を外部装置20に接続すると、外部装置20側から電源の供給がなされるとともに、CPU11に対してリセット信号が与えられる。基本OSプログラムは、このリセット信号によりスタートする。まず、図4のステップS1において、リセット処理が実行される。これは、必要な初期設定を行うとともに、外部装置20側に、リセット信号に対する応答として、ATR(Answer To Reset )信号を送信する処理である。外部装置20は、このATR信号の受信により、ICカード10側のコマンド受信態勢が整ったことを認識し、所定のコマンド送信を開始することになる。ステップS2は、この外部装置20側から与えられるコマンドの受信待ちの処理であり、何らかのコマンドが受信されると、ステップS3へと進むことになる。
【0027】
このステップS3では、受信したコマンドの種別が判断される。この実施形態では、外部装置20側から与えられるコマンドは、モジュールロードコマンド、アプリケーション選択コマンド、アプリケーション実行コマンドのいずれかである。モジュールロードコマンドは、外部装置20側からコマンドとともに与えられるアプリケーションプログラムあるいは補助プログラムをロードするためのコマンドである。このコマンドが受信されると、ステップS4において、モジュールロード処理が行われ、アプリケーションプログラムあるいは補助プログラムが、EEPROM14内に格納されることになる。そして、ステップS5において、ロードされたモジュール種別が判断され、アプリケーションプログラムがロードされた場合には、ステップS6において対象カウンタ(当該アプリケーションプログラムについてのカウンタ)が1にセットされ、補助プログラムがロードされた場合には、ステップS7において対象カウンタ(当該補助プログラムについてのカウンタ)がnにセットされる。ここで、nは、当該補助プログラムを利用するアプリケーションプログラムの数である。こうしてカウンタが所定の初期値にセットされたら、ステップS8において、レスポンス送信が行われる。具体的には、モジュールロード処理が無事完了したことを示すレスポンスが、外部装置20側へ返されることになる。外部装置20は、このレスポンスの受信により、次のコマンドの送信を行うことになる。
【0028】
図2に示す例のように、2つのアプリケーションプログラム1,2およびこれらから共通して利用される1つの補助プログラムAを用いた処理を行う場合には、合計3つのプログラムをロードするために、上述したステップS4以下の処理が合計3回、繰り返して行われることになる。そして、アプリケーションプログラム1の対象カウンタC1およびアプリケーションプログラム2の対象カウンタC2は、ステップS6において初期値1にセットされ、補助プログラムAの対象カウンタCAは、ステップS7において初期値n=2にセットされることになる。
【0029】
こうして、必要なアプリケーションプログラムおよび補助プログラムのロードが完了すると、外部装置20は、所定のアプリケーションプログラムを選択するために、アプリケーション選択コマンドを送信する。このアプリケーション選択コマンドがICカード側で受信されると、ステップS3からステップS9へと進むことになる。ここで、選択されたアプリケーションプログラムがロード済か否かが判断され、ロード済みである場合には、ステップS10において、当該アプリケーションを選択する処理が行われる。上述の例の場合、アプリケーションプログラム1または2のいずれかを選択する旨のアプリケーション選択コマンドが送信されてきた場合には、ステップS9からステップS10へと進み、いずれか一方を選択する処理(具体的には、いずれのアプリケーションが選択されたかを示す情報をメモリ内に記録する処理)が実行される。ところが、たとえば、ロードが行われていないアプリケーションプログラム3を選択する旨のアプリケーション選択コマンドが送信されてきたような場合には、ステップS9からステップS11へと進み、エラーがセットされる。いずれの場合でも、ステップS8において、レスポンスが送信されるが、エラーがセットされた場合には、このエラーを示すレスポンスが送信されることになる。
【0030】
実行すべきアプリケーションの選択が完了すると、いよいよ外部装置20は、当該アプリケーションに対するアプリケーション実行コマンドを送信する。このアプリケーション実行コマンドは、当該アプリケーションに定義された命令コードであり、通常は、何種類かのコマンドが定義されていることになる。具体的には、たとえば、特定のユーザデータをEEPROM14に書き込む作業を指示する書き込みコマンドや、EEPROM14内の特定のデータを外部装置20側へと読み出す作業を指示する読み出しコマンドや、特定の演算処理を行う演算コマンドなど、種々のコマンドが定義される。このアプリケーション実行コマンドがICカード側で受信されると、ステップS3からステップS12へと進み、このアプリケーション実行コマンドに対応したアプリケーションが選択済みであるか否かが判断される。この時点で、まだアプリケーションの選択が行われていない場合や、アプリケーションは選択されていても、当該選択アプリケーションが、与えられたアプリケーション実行コマンドに対応していなかった場合は、ステップS11へと進み、エラーがセットされることになる。選択アプリケーションが、与えられたコマンドに対応していた場合には、ステップS13へと進み、この選択アプリケーションによるコマンド実行処理が行われる。このステップS13の処理は、図5の流れ図に示された処理であり、その詳細は後述する。
【0031】
こうして、ステップS13の処理が完了すると、ステップS14において、消去フラグが変化したか否かが判断される。すなわち、ステップS13の実行前後において、状態が変化した消去フラグがあった場合には、ステップS15へと進み、この変化した消去フラグに対応するカウンタの値を1だけ減じる処理が行われる。そして、ステップS16では、値が零になったカウンタがあるかが判断され、そのようなカウンタがあった場合には、ステップS17において、当該カウンタに対応するモジュールが消去される。いずれの場合も、ステップS8におけるレスポンス送信が行われて、再びステップS2におけるコマンド受信待ちの状態になる。データの読み出しコマンドなどが与えられた場合には、ステップS8におけるレスポンスとして、読み出されたデータが外部装置20側へと送信されることになる。結局、図4に示す基本OSの処理手順は、リセット後、外部装置20側からのコマンドを受信し、このコマンドに基づく所定の処理を実行し、最後に外部装置20側にレスポンスを送信する、という作業の繰り返しになる。
【0032】
一方、ステップS13に示す選択アプリケーションによるコマンド実行処理では、図5の流れ図に示すように、まず、ステップS21において、与えられたコマンドの実行処理がなされる。すなわち、上述したように、書き込みコマンド、読み出しコマンド、演算コマンドなどが与えられると、ROM13内のインタープリタプログラムによって、これらのコマンドがマシン語に翻訳され、CPU11によって所定の作業が実行されることになる。この作業では、必要に応じて、補助プログラムAが利用されることになる(サブルーチンが呼び出されたり、データやテーブルが参照されたりする)。続いて、ステップS22において、このアプリケーションプログラムにおいて、補助プログラムが必要か否かが判断され、不必要であると判断された場合には、ステップS23において、この不必要な補助プログラムについての消去フラグが立てられる。次に、ステップS24において、このアプリケーションプログラム自身が必要か否かが判断され、不必要であると判断された場合には、ステップS25において、この選択アプリケーションプログラム(自分自身)についての消去フラグが立てられる。
【0033】
以上が、ステップS13の処理内容の詳細である。結局、ステップS23あるいはステップS25において、初めて消去フラグが立てられたときには、ステップS14において、消去フラグの変化が認識され、ステップS15において対応カウンタの数値が1だけ減じられることになる。アプリケーションプログラムの場合、対応カウンタの初期値は1であるから、消去フラグが立った場合には、対応カウンタの値が零となり、ステップS17において、消去されることになる。別言すれば、ステップS24において、アプリケーションプログラムが「自分自身は不必要」なる判断を行った場合には、基本OSの処理に戻った段階で、当該アプリケーションプログラムは消去されることになる。これに対し、補助プログラムの場合、対応カウンタの初期値は、当該補助プログラムを利用するアプリケーションプログラムの数であるから、1つのアプリケーションプログラムにおいて、補助プログラムについての消去フラグが立ったとしても、カウンタの値はすぐには零にはならないので、直ちに消去されることはない。しかしながら、当該補助プログラムを利用するすべてのアプリケーションプログラムにおいて、当該補助プログラムについての消去フラグが立つと、カウンタの値は零となるので、基本OSの処理に戻った段階で、当該補助プログラムは消去されることになる。
【0034】
たとえば、図3に示す例において、アプリケーションプログラム1が実行されている段階において、自分自身が不必要であるとの判断がなされた場合には、消去フラグF1が立った状態になり、基本OSの処理に戻った段階で、カウンタC1が零になるので、当該アプリケーションプログラム1は消去されることになる(この場合、消去フラグF1,FAが記録されていた付加領域も同時に消去される)。アプリケーションプログラム2によって消去フラグF2が立った状態になった場合も、同様にして、アプリケーションプログラム2は削除されることになる。これに対して、アプリケーションプログラム1が実行されている段階において、自分自身にとっては補助プログラムAが不必要であるとの判断がなされると、このアプリケーションプログラム1の付加領域に記録された消去フラグFAが立った状態になり、カウンタCAの値は2から1に変化するが、零ではないので、補助プログラムAはまだ消去はされない。ところが、更に、アプリケーションプログラム2が実行されている段階において、自分自身にとっては補助プログラムAが不必要であるとの判断がなされると、このアプリケーションプログラム2の付加領域に記録された消去フラグFAも立った状態になり、カウンタCAの値は1から零に変化することになり、この時点で補助プログラムAが消去されることになる。
【0035】
以上、本発明を図示する実施形態に基づいて説明したが、本発明はこの実施形態に限定されるものではなく、この他にも種々の態様で実施可能である。特に、上述の具体例では、フラグとカウンタを組み合わせた処理方法を述べたが、本発明を具現化するための具体的な方法は、このような処理方法に何ら限定されるものではない。
【0036】
【発明の効果】
以上のとおり、本発明に係るICカードによれば、メモリ内にロードするプログラムに、自分自身の必要性を判断する手順を組み込んでおき、この判断に基づいてプログラムの自動消去を行うようにしたため、不必要な情報を自動的に消去し、限られたメモリ資源を有効に活用することができるようになる。
【図面の簡単な説明】
【図1】一般的なICカードと、外部装置(リーダライタ装置)との間で、情報の伝送を行っている状態を示すブロック図である。
【図2】本発明に係るICカードで実行されるプログラムの階層構造の一例を示すブロック図である。
【図3】本発明に係るICカードのEEPROMに格納されたプログラムおよびデータの一例を示す図である。
【図4】本発明に係るICカードにおける基本OSプログラムによる処理手順を示す流れ図である。
【図5】本発明に係るICカードにおけるアプリケーションプログラムによるコマンド実行処理手順を示す流れ図である。
【符号の説明】
1,2…アプリケーションプログラム
10…ICカード
11…CPU
12…I/Oインターフェイス
13…ROM
14…EEPROM
14A…OS領域
14B…アプリケーション領域
15…RAM
20…外部装置
A…補助プログラム
Claims (2)
- CPUとメモリとを有し、メモリ内のプログラムをCPUに実行させることができるICカードにおいて、
前記メモリは、書換不能な不揮発性メモリと、書換可能な不揮発性メモリと、を含んでおり、
前記書換不能な不揮発性メモリもしくは前記書換可能な不揮発性メモリには、基本OSプログラムが格納されており、
前記書換可能な不揮発性メモリには、OS領域とアプリケーション領域とが設けられており、
前記基本OSプログラムは、外部から与えられたアプリケーションプログラムを前記アプリケーション領域に格納するロード機能と、前記アプリケーションプログラムを前記アプリケーション領域から消去する消去機能と、を有しており、
前記アプリケーション領域には、前記アプリケーションプログラムに対応した消去フラグを記録するための領域が設けられており、
前記OS領域には、前記アプリケーションプログラムに対応したカウンタを記録するための領域が設けられており、
前記消去フラグは、前記アプリケーションプログラムが格納された初期状態では、前記基本OSプログラムによって「寝ている状態」に設定され、前記アプリケーションプログラムに含まれている、所定の有効期限が満了した場合に自分自身を不必要と判断する手順、もしくは、プリペイド額の残金が零になった場合に自分自身を不必要と判断する手順により、自分自身が不必要と判断された場合には、前記アプリケーションプログラムに含まれている前記手順によって「立っている状態」に設定され、
前記カウンタは、前記基本OSプログラムにより、前記アプリケーションプログラムが格納された初期状態では1に設定され、対応するアプリケーションプログラムについての消去フラグが「立っている状態」に変化したことが認識されたときには1だけ減じられ、
前記カウンタが零となったときに当該カウンタに対応するアプリケーションプログラムに対する前記消去機能が、前記基本OSプログラムにより実行されることを特徴とするICカード。 - 請求項1に記載のICカードにおいて、
基本OSプログラムのロード機能には、1つもしくは複数のアプリケーションプログラムによって利用されるデータ、テーブルまたはサブルーチンから構成される補助プログラムをアプリケーション領域に格納する機能が含まれており、
基本OSプログラムの消去機能には、前記補助プログラムを前記アプリケーション領域から消去する機能が含まれており、
前記アプリケーション領域には、個々のアプリケーションプログラムに対応した補助プログラム用消去フラグを記録するための領域が設けられており、
前記OS領域には、前記補助プログラム用のカウンタを記録するための領域が設けられており、
前記補助プログラム用消去フラグは、対応するアプリケーションプログラムが格納された初期状態では、基本OSプログラムによって「寝ている状態」に設定され、対応するアプリケーションプログラムに組み込まれている手順により前記補助プログラムが不必要と判断された場合には、前記手順によって「立っている状態」に設定され、
前記補助プログラム用のカウンタは、前記基本OSプログラムにより、前記補助プログラムが格納された初期状態では、当該補助プログラムを利用するアプリケーションプログラムの数nに設定され、いずれかの補助プログラム用消去フラグが「立っている状態」に変化したことが認識されるたびに1だけ減じられ、
前記補助プログラム用のカウンタが零となったときに前記補助プログラムに対する前記消去機能が、前記基本OSプログラムにより実行されることを特徴とするICカード。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP34234098A JP4219455B2 (ja) | 1998-11-16 | 1998-11-16 | Icカード |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP34234098A JP4219455B2 (ja) | 1998-11-16 | 1998-11-16 | Icカード |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000148945A JP2000148945A (ja) | 2000-05-30 |
JP4219455B2 true JP4219455B2 (ja) | 2009-02-04 |
Family
ID=18352976
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP34234098A Expired - Fee Related JP4219455B2 (ja) | 1998-11-16 | 1998-11-16 | Icカード |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4219455B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI223204B (en) | 2001-11-08 | 2004-11-01 | Toshiba Corp | Memory card, content transmission system, and content transmission method |
JP4557538B2 (ja) * | 2003-12-10 | 2010-10-06 | 株式会社東芝 | Icカード |
JP2005275744A (ja) * | 2004-03-24 | 2005-10-06 | Toshiba Corp | 携帯可能電子装置 |
KR100590587B1 (ko) | 2004-10-22 | 2006-06-19 | 에스케이 텔레콤주식회사 | 복수의 보안영역을 가진 스마트카드의 보안영역 삭제 방법 |
JP2007164243A (ja) * | 2005-12-09 | 2007-06-28 | Fuji Xerox Co Ltd | コントロール装置および記憶装置の有効利用方法 |
JP6160326B2 (ja) * | 2013-07-22 | 2017-07-12 | 大日本印刷株式会社 | 情報記憶媒体、情報書き込み方法、及び書き込みプログラム |
-
1998
- 1998-11-16 JP JP34234098A patent/JP4219455B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000148945A (ja) | 2000-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0985202B1 (en) | Multi-application ic card with delegation feature | |
US5754762A (en) | Secure multiple application IC card using interrupt instruction issued by operating system or application program to control operation flag that determines the operational mode of bi-modal CPU | |
JP5329884B2 (ja) | 携帯可能電子装置および携帯可能電子装置におけるデータ処理方法 | |
EP0328289B1 (en) | IC card and method of writing its operation program | |
US7367047B2 (en) | Portable information recording medium | |
JPS63204493A (ja) | 携帯可能電子装置 | |
EP0622736B1 (en) | File management system with file-size flexibility | |
JP4219455B2 (ja) | Icカード | |
JP2651426B2 (ja) | Icカード | |
JP3471842B2 (ja) | データ管理装置、データ記憶装置およびデータ管理方法 | |
JPH0831122B2 (ja) | Icカードにおけるコマンド処理方法 | |
JP4162786B2 (ja) | Icカード | |
JP4747451B2 (ja) | 携帯可能情報記録媒体へのデータアクセス方法 | |
US20030150913A1 (en) | IC card terminal | |
KR20000068374A (ko) | 메인 파일과 보조 파일간의 링크를 생성하는 수단을 구비하는 보안 모듈 | |
JP7438432B1 (ja) | 電子情報記憶媒体、icチップ、icカード、レコード書き込み方法、及びプログラム | |
JPH07210640A (ja) | Icカード内蔵メモリの検査方法 | |
JP3222619B2 (ja) | キーを用いる情報記録媒体 | |
JPS63229542A (ja) | 電子カ−ド | |
JPH06119506A (ja) | Icカード | |
JPH0147811B2 (ja) | ||
JP4071377B2 (ja) | Icカード | |
JP3054119B2 (ja) | 携帯可能電子装置 | |
JP2000172807A (ja) | Icカ―ド | |
JPS63223995A (ja) | 携帯可能電子装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051111 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080130 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080205 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080402 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080812 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081002 |
|
A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20081014 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20081111 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20081112 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111121 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121121 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131121 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |