JP2003016410A - Icカード - Google Patents

Icカード

Info

Publication number
JP2003016410A
JP2003016410A JP2001201807A JP2001201807A JP2003016410A JP 2003016410 A JP2003016410 A JP 2003016410A JP 2001201807 A JP2001201807 A JP 2001201807A JP 2001201807 A JP2001201807 A JP 2001201807A JP 2003016410 A JP2003016410 A JP 2003016410A
Authority
JP
Japan
Prior art keywords
function
card
program
function module
external device
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.)
Pending
Application number
JP2001201807A
Other languages
English (en)
Inventor
Naoto Shibata
直人 柴田
Kazuyoshi Irisawa
和義 入澤
Tetsuo Jinriki
哲夫 神力
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dai Nippon Printing Co Ltd
Original Assignee
Dai Nippon Printing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Dai Nippon Printing Co Ltd filed Critical Dai Nippon Printing Co Ltd
Priority to JP2001201807A priority Critical patent/JP2003016410A/ja
Publication of JP2003016410A publication Critical patent/JP2003016410A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Credit Cards Or The Like (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】 複数のプログラムから共通して利用可能な関
数モジュールを、単体として容易に追加する。 【解決手段】 ローダ部122に、アプリケーションお
よび関数モジュールをロードする機能を設ける。新たに
ロードされたアプリケーションはアプリケーション格納
部133に格納され、新たにロードされた関数モジュー
ルは関数格納部134に格納される。ロードされた関数
モジュールの関数名と実アドレスとの対応関係を示す関
数テーブルTBが関数テーブル格納部135に作成され
る。アプリケーションからの関数呼び出しは、関数テー
ブルTBを参照して、実アドレスを認識することにより
行われる。関数モジュールは、OSプログラムや他の関
数モジュールからも呼び出される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はICカードに関し、
特に、外部装置との間でコマンドおよびレスポンスをや
りとりすることにより所定の処理を実行するICカード
に関する。
【0002】
【従来の技術】携帯可能な情報記録媒体として、ICカ
ードが様々な分野で利用されるようになってきている。
現在、一般に普及しているICカードは、CPUを内蔵
し、外部装置との間でコマンドおよびレスポンスをやり
とりすることにより所定の処理を実行する機能を有して
いる。どのようなコマンドを与えると、ICカード内部
でどのような処理が実行されるかは、ICカードに組み
込まれたOSプログラムおよびアプリケーションプログ
ラムによって定まるため、通常、個々の用途に応じた処
理機能を有する専用のアプリケーションプログラムがI
Cカード内に組み込まれる。最近では、半導体回路の集
積度がかなり高まり、ICカードに内蔵されるメモリ容
量も飛躍的に向上してきたため、複数のアプリケーショ
ンプログラムを予め組み込んだ多用途向けのICカード
も一般化してきている。また、発行後に、必要に応じて
新たなアプリケーションプログラムを追加する機能を備
えたICカードも広く利用されている。たとえば、特開
平10−79000号公報には、バージョンアップなど
のためにプログラムを追加する機能をもったICカード
が開示されている。
【0003】
【発明が解決しようとする課題】上述したように、新た
なアプリケーションプログラムを、必要に応じて、その
都度、追加することができるICカードは、既に利用さ
れている。しかしながら、このようなアプリケーション
プログラムは、あくまでも単体で機能するプログラムで
あり、従来のICカードにおいて追加できるプログラム
は、このような単体で機能するプログラムに限られてい
る。ところが、実際には、関数モジュールのように、単
体では機能せずに、OSプログラムやアプリケーション
プログラムなどから1つのルーチンとして利用されるプ
ログラムも少なくない。従来、このような関数モジュー
ルは、OSプログラムやアプリケーションプログラムの
中に組み込まれており、関数モジュールを単体としてI
Cカードに追加することは困難である。もちろん、アプ
リケーションプログラム自体に、このような関数モジュ
ールを追加する何らかの機能をもたせておけば、当該ア
プリケーションからは、追加した関数モジュールを利用
することはできる。しかしながら、個々のアプリケーシ
ョンごとにこのような機能を用意することは非効率的で
あり、あまり実用的な方法とは言えない。
【0004】そこで本発明は、複数のプログラムから共
通して利用可能な関数モジュールを、単体として容易に
追加することが可能なICカードを提供することを目的
とする。
【0005】
【課題を解決するための手段】(1) 本発明の第1の態
様は、外部装置との間でコマンドおよびレスポンスをや
りとりすることにより所定の処理を実行するICカード
において、外部装置との交信を行うI/O部と、データ
を格納するデータ格納部と、OSプログラムを格納する
OS格納部と、アプリケーションプログラムを格納する
アプリケーション格納部と、関数モジュールを格納する
関数格納部と、関数格納部に格納されている関数モジュ
ールの名称である関数名と、当該関数モジュールの実ア
ドレスと、の対応関係を示す関数テーブルを格納する関
数テーブル格納部と、外部装置からロードコマンドとと
もにアプリケーションプログラムが与えられた場合に、
与えられたアプリケーションプログラムをアプリケーシ
ョン格納部に格納する処理と、外部装置からロードコマ
ンドとともに関数モジュールが与えられた場合に、与え
られた関数モジュールを関数格納部に格納するとともに
当該格納した関数モジュールについての関数テーブルを
関数テーブル格納部に格納する処理と、をOSプログラ
ムに基づいて実行するローダ部と、外部装置から与えら
れたコマンドを、OSプログラムまたはアプリケーショ
ンプログラムに基づいて実行し、実行結果をレスポンス
として外部装置へと返す処理を行う処理実行部と、を設
け、処理実行部が、外部装置から与えられたアプリケー
ション選択コマンドに基づいて、もしくはOS格納部に
格納されているOSプログラムで指示された初期設定に
基づいて、アプリケーション格納部に格納されている複
数のアプリケーションプログラムのうちの1つを選択す
る機能と、外部装置からアプリケーション用コマンドが
与えられた場合に、当該コマンドを現時点で選択されて
いるアプリケーションプログラムに基づいて実行する機
能と、実行中のアプリケーションプログラムから、特定
の関数名を指定した関数実行命令が与えられた場合に、
関数テーブル格納部内の関数テーブルを参照することに
より、当該特定の関数名に対応する実アドレスを認識
し、実行中のアプリケーションプログラムを呼出元とし
て、関数格納部内の実アドレスに格納されている関数モ
ジュールを実行する機能と、を行うことができるように
したものである。
【0006】(2) 本発明の第2の態様は、上述の第1
の態様に係るICカードにおいて、処理実行部が、実行
中のOSプログラムから、特定の関数名を指定した関数
実行命令が与えられた場合に、関数テーブル格納部内の
関数テーブルを参照することにより、当該特定の関数名
に対応する実アドレスを認識し、実行中のOSプログラ
ムを呼出元として、関数格納部内の実アドレスに格納さ
れている関数モジュールを実行するようにしたものであ
る。
【0007】(3) 本発明の第3の態様は、上述の第1
の態様に係るICカードにおいて、処理実行部が、実行
中の関数モジュールから、特定の関数名を指定した関数
実行命令が与えられた場合に、関数テーブル格納部内の
関数テーブルを参照することにより、当該特定の関数名
に対応する実アドレスを認識し、実行中の関数モジュー
ルを呼出元として、関数格納部内の実アドレスに格納さ
れている関数を実行するようにしたものである。
【0008】(4) 本発明の第4の態様は、上述の第1
の態様に係るICカードにおいて、外部装置から「カプ
セル化された関数実行命令を含むOS用もしくはアプリ
ケーション用コマンド」が与えられた場合に、処理実行
部が、当該コマンドをOSプログラムもしくは現時点で
選択されているアプリケーションプログラムに基づいて
実行し、関数テーブル格納部内の関数テーブルを参照す
ることにより、関数実行命令によって示されている特定
の関数名に対応する実アドレスを認識し、OSプログラ
ムもしくは現時点で選択されているアプリケーションプ
ログラムを呼出元として、関数格納部内の実アドレスに
格納されている関数モジュールを実行するようにしたも
のである。
【0009】(5) 本発明の第5の態様は、上述の第1
〜第4の態様に係るICカードにおいて、処理実行部
が、特定の関数モジュールを実行する際に、関数の呼出
元となるプログラムにおけるプログラムカウンタを退避
する処理を行い、特定の関数モジュールの実行後に、退
避したプログラムカウンタに応じた位置から、呼出元と
なるプログラムの実行に復帰できるようにしたものであ
る。
【0010】(6) 本発明の第6の態様は、上述の第1
〜第5の態様に係るICカードにおいて、外部装置から
ロードコマンドおよび関数モジュールとともに、当該関
数モジュールの呼出元を限定する呼出元限定情報が与え
られた場合に、ローダ部が、当該関数モジュールについ
ての呼出元限定情報を関数テーブルの一部として格納す
る処理を行い、処理実行部が、関数テーブル内の呼出元
限定情報によって示された限定条件の下で関数モジュー
ルの実行を行うようにしたものである。
【0011】(7) 本発明の第7の態様は、上述の第1
〜第5の態様に係るICカードにおいて、ローダ部が、
現時点でICカード内に格納されている呼出元となるプ
ログラムから呼び出しが可能な関数名を外部装置にレス
ポンスとして報知するようにしたものである。
【0012】(8) 本発明の第8の態様は、上述の第1
〜第5の態様に係るICカードにおいて、外部装置から
ロードコマンドとともに関数モジュールが与えられた場
合に、ロード部が、与えられた関数モジュールを呼び出
すための呼出元となるプログラムが現時点でICカード
内に格納されているか否かを調査し、格納されていない
場合には、与えられたロードコマンドに対してエラーを
示すレスポンスを外部装置に返すようにしたものであ
る。
【0013】(9) 本発明の第9の態様は、上述の第1
〜第5の態様に係るICカードにおいて、外部装置から
ロードコマンドとともに関数モジュールが与えられた場
合に、ロード部が、所定のセキュリティ条件が満足され
ているか否かを調査し、満足されていない場合には、与
えられたロードコマンドに対してエラーを示すレスポン
スを外部装置に返すようにしたものである。
【0014】(10) 本発明の第10の態様は、上述の第
1〜第5の態様に係るICカードにおいて、外部装置か
らロードコマンドとともに暗号化された関数モジュール
が与えられた場合に、ロード部が、暗号化された関数モ
ジュールを復号化してから関数格納部に格納するように
したものである。
【0015】(11) 本発明の第11の態様は、上述の第
1〜第5の態様に係るICカードにおいて、外部装置か
らロードコマンドとともに署名付きの関数モジュールが
与えられた場合に、ロード部が、署名が正しいことを検
証した後に、関数モジュールを関数格納部に格納するよ
うにしたものである。
【0016】(12) 本発明の第12の態様は、上述の第
1〜第5の態様に係るICカードにおいて、ロード部
が、外部装置からのコマンドまたはアプリケーションプ
ログラムもしくはOSプログラムによる命令に基づい
て、関数格納部内に格納されている関数モジュールの利
用を一時停止させる機能と、この一時停止からの復帰を
させる機能と、を有するようにしたものである。
【0017】(13) 本発明の第13の態様は、上述の第
1〜第5の態様に係るICカードにおいて、ロード部
が、外部装置からのコマンドまたはアプリケーションプ
ログラムもしくはOSプログラムによる命令に基づい
て、関数格納部内に格納されている関数モジュールを削
除、置換、または変更する機能を有するようにしたもの
である。
【0018】
【発明の実施の形態】以下、本発明を図示する実施形態
に基づいて説明する。
【0019】§1.本発明に係るICカードの基本構成 図1は、本発明の一実施形態に係るICカード100
を、外部装置200に接続した状態を示すブロック図で
ある。外部装置200は、一般に、リーダライタ装置と
呼ばれている装置であり、通常は、パソコンなどに接続
して利用される。ICカード100には、外部装置20
0と交信を行うためのI/O部110と、ICカード内
で種々の処理や制御を行う処理制御部120と、種々の
データやプログラムを格納するメモリ部130とが内蔵
されている。ICカード100と外部装置200との間
の交信は、コマンドおよびレスポンスのやりとりによっ
て行われる。すなわち、外部装置200側から所定のコ
マンドをICカード100に対して送信すると、このコ
マンドは、I/O部110において受信されて処理制御
部120へと伝達される。処理制御部120は、このコ
マンドを解釈実行し、処理結果をレスポンスとしてI/
O部110へと引き渡す。こうして、このレスポンス
は、I/O部110から外部装置200へと送信される
ことになる。処理制御部120は、メモリ部130内に
格納されているプログラムに基づいて、与えられたコマ
ンドの実行を行い、このコマンドの実行に伴い、必要に
応じて、メモリ部130内に格納されているデータへの
アクセスを行うことになる。
【0020】ここに示す実施形態では、処理制御部12
0は、処理実行部121とローダ部122とによって構
成されている。また、メモリ部130は、データ格納部
131、OS格納部132、アプリケーション格納部1
33、関数格納部134、関数テーブル格納部135の
5つの格納部によって構成されている。もっとも、これ
らの各構成要素は、本発明を説明する便宜上、機能面に
着目して捉えた構成要素であり、実際のハードウエア上
の構成要素に対応しているものではない。実際には、処
理制御部120は、ICカード内に埋め込まれたCPU
やその他の論理装置によって実現され、メモリ部130
は、ROM,RAM,EEPROMなどのメモリによっ
て実現されることになる。また、処理制御部120を構
成する処理実行部121およびローダ部122は、いず
れもCPU単独で実現できる構成要素ではなく、メモリ
部130内に格納されているプログラムに基づく動作が
前提となって実現される構成要素である。ただ、ここで
は、本発明の構成を説明する上で、CPUによって実行
される機能のうち、外部から与えられた一般的なコマン
ドを実行する構成要素を処理実行部121とし、外部か
ら与えられた新たなアプリケーションプログラムや関数
モジュールをメモリ部130内に格納するロードコマン
ドを実行する構成要素をローダ部122として把握する
ことにする。
【0021】メモリ部130の構成要素のうち、データ
格納部131は、このICカード100内に格納すべき
種々のデータを格納する部分であり、このICカード1
00の所有者であるユーザに関する個人データや取引デ
ータ、ICカード100の発行者に関するデータなどが
格納される。これらのデータは、通常、不揮発性の書き
込み可能なメモリであるEEPROMに格納される。ま
た、ここでは、このデータ格納部131内に、いわゆる
CPUの作業領域も設けられており、種々の変数、ポイ
ンタ、フラグなども、このデータ格納部131内に格納
されるものとする。このような作業領域は、通常、揮発
性の書き込み可能なメモリであるRAM内に設けられ
る。
【0022】一方、OS格納部132には、このICカ
ード100の基本動作を記述したOSプログラムが格納
される。現在、ICカード用のOSプログラムとして
は、JavaCardやMULTOSなどが普及してお
り、処理制御部120は、このOSプログラムに基づい
て基本的な動作を行うことになる。このようなOS格納
部132は、ROM内のメモリ領域あるいはEEPRO
M内のメモリ領域に設けられる。これに対して、アプリ
ケーション格納部133には、アプリケーションプログ
ラムが格納される。ここに示す実施形態の場合、アプリ
ケーションプログラムはICカードの発行後に任意に追
加することができる仕様となっており、アプリケーショ
ン格納部133はEEPROM内のメモリ領域に設けら
れている。図1に示す例では、3つのアプリケーション
プログラムAP1,AP2,AP3が既にアプリケーシ
ョン格納部133に格納された状態が示されている。
【0023】関数格納部134および関数テーブル格納
部135は、本発明の特徴となるメモリ領域であり、E
EPROM内のメモリ領域に設けられている。関数格納
部134には、単独のプログラムとしては機能しない関
数モジュールが格納される。図1に示す例では、3つの
関数モジュールFN1,FN2,FN3が既に関数格納
部134に格納された状態が示されている。関数テーブ
ル格納部135には、この関数格納部134内に格納さ
れている関数モジュールを利用するために必要となる関
数テーブルTBが格納される。この関数テーブルTBに
は、関数格納部134に格納されている関数モジュール
の名称である関数名と、当該関数モジュールの実アドレ
スと、の対応関係が示されている。
【0024】処理実行部121は、外部装置200から
与えられた一般のコマンド(後述するように、「ローダ
部122によって実行されるべきロードコマンド」以外
のコマンド)を、OS格納部132内のOSプログラム
またはアプリケーション格納部133内のアプリケーシ
ョンプログラムに基づいて実行し、実行結果をレスポン
スとして外部装置200へと返す処理を行うことにな
る。外部装置200側から与えるコマンドは、OSプロ
グラムによって解釈実行可能なOS用コマンドと、特定
のアプリケーションプログラムによって解釈実行可能な
アプリケーション用コマンドと、に分類することができ
る。OS用コマンドの典型的な例は、アプリケーション
選択コマンドである。アプリケーション選択コマンド
は、アプリケーション格納部133内に格納されている
複数のアプリケーションプログラムのうちの1つを選択
するためのコマンドであり、外部装置200側から、特
定のアプリケーションを指定したアプリケーション選択
コマンドが与えられると、処理実行部121は、指定さ
れたアプリケーションプログラムを選択状態にする。具
体的には、当該アプリケーションプログラムが現在選択
状態にあることを示す情報を、データ格納部131内に
格納する。一方、外部装置200側から、アプリケーシ
ョン用コマンドが与えられた場合、処理実行部121
は、このコマンドをOSプログラムではなく、アプリケ
ーションプログラムに基づいて処理することになる。こ
のとき、処理実行部121は、いずれのアプリケーショ
ンプログラムが選択状態にあるかを判断した上で、現在
選択状態にあるアプリケーションプログラムに基づい
て、与えられたアプリケーション用コマンドを処理す
る。なお、ICカード100と外部装置200とを接続
した初期状態においては、OSプログラムによって予め
指定された特定のアプリケーションプログラムが、デフ
ォルトの選択プログラムとなる初期設定がなされてお
り、アプリケーション選択コマンドが与えられていない
初期状態では、デフォルト指定された特定のアプリケー
ションプログラムが自動的に選択状態になっている。
【0025】結局、外部装置200側からコマンドが与
えられた場合、当該コマンドがOS用コマンドであった
場合には、OSプログラムに基づいて処理が実行され、
当該コマンドがアプリケーション用コマンドであった場
合には、現在選択状態にあるアプリケーションプログラ
ムに基づいて処理が実行されることになる。いずれの場
合にも、処理の結果を示すレスポンスが作成され、外部
装置200側へ返される。実際には、処理制御部120
は、JavaCardやMULTOSなどのOSプログ
ラムのもとで動作するアプリケーションプログラムを解
釈実行する仮想機械としての機能を果たすことになる。
【0026】このように、外部装置200側から与えら
れた一般のコマンドは、処理実行部121によって処理
されるが、ロードコマンドについては、ローダ部122
による処理が行われる。このロードコマンドは、OSプ
ログラムによって実行されるべきOS用コマンドの一種
であり、新たなアプリケーションプログラムや新たな関
数モジュールをメモリ部130内に格納するためのコマ
ンドである。たとえば、図1に示す例では、アプリケー
ション格納部133内には、既に3つのアプリケーショ
ンプログラムAP1,AP2,AP3が格納された状態
となっているが、ここに、更に新たなアプリケーション
プログラムAP4を追加する必要が生じた場合には、外
部装置200から所定のロードコマンドとともにアプリ
ケーションプログラムAP4を構成するデータを、IC
カード100側に与える操作を行えばよい。このような
ロードコマンドが与えられると、ローダ部122によっ
て、このアプリケーションプログラムAP4をアプリケ
ーション格納部133内に新たに格納する処理が行わ
れ、これを実行するために必要な設定が行われる。この
ように、ICカードに、新たにアプリケーションプログ
ラムを追加する処理は、従来の一般的なICカードにお
いても既に実施されている公知の技術であり、ここで
は、詳しい説明は省略する。
【0027】本発明の特徴は、ローダ部122に、アプ
リケーションプログラムの追加処理機能だけではなく、
単体としては機能しない関数モジュールの追加処理機能
を設けた点にある。たとえば、図1に示す例では、関数
格納部134内には、既に3つの関数モジュールFN
1,FN2,FN3が格納された状態となっているが、
ここに、更に新たな関数モジュールFN4を追加する必
要が生じた場合には、外部装置200から所定のロード
コマンドとともに関数モジュールFN4を構成するデー
タをICカード100側に与える操作を行えばよい。こ
のようなロードコマンドが与えられると、ローダ部12
2によって、この関数モジュールFN4を関数格納部1
34内に新たに格納する処理が行われ、更に、この新た
に格納した関数モジュールFN4についての情報を関数
テーブル格納部135内の関数テーブルTBにつけ加え
る処理が行われることになる。もちろん、このようなア
プリケーションプログラムの追加格納処理や、関数モジ
ュールの追加格納処理は、OSプログラムに基づいて実
行されるべき処理であり、ローダ部122にこのような
処理を実行させるためには、OS格納部132内に用意
されたOSプログラムに、そのような処理を実行させる
ための手順を記述しておく必要がある。
【0028】§2.本発明に係るICカードにおける関
数の実行 さて、これまで本発明に係るICカードの基本構成につ
いて述べた。ここでは、このICカードにおける関数の
実行形態について説明を行う。一般に、JavaCar
dやMULTOSなど、一般的なICカード用OSプロ
グラムのもとで動作するアプリケーションプログラム
は、CPUに依存しない言語で記述されているため、ア
プリケーションプログラム自体では、プログラムやファ
イルを選択するコマンドを取り扱うことが困難である。
本発明の狙いは、このように、CPUに依存しない言語
で記述されているアプリケーションプログラムを実行す
るICカードにおいて、単体としては機能しない関数モ
ジュールを容易に追加することができるようにする点に
ある。そのためには、関数モジュールを追加する処理お
よび関数モジュールを呼び出す処理を行う機能を、OS
プログラムによって提供する必要がある。関数モジュー
ルを追加する処理が、OSプログラムの下で、ローダ部
122によって実行されることは、既に§1で説明した
とおりである。ここでは、関数モジュールを呼び出す処
理(関数を実行するための処理)が、OSプログラムの
下で、処理実行部121によってどのように実行される
かについて説明する。
【0029】まず、従来の一般的なICカードにおける
関数モジュールの取り扱いと、本発明に係るICカード
における関数モジュールの取り扱いとの概念的な相違
を、図2および図3を参照して説明しよう。図2は、従
来のICカードにおける関数モジュールの取り扱いを示
すブロック図である。図示の例では、2つのアプリケー
ションプログラムAP1,AP2がブロックとして示さ
れている。また、各アプリケーションプログラムの中に
は、それぞれ関数モジュールFN1,FN2が組み込ま
れている。このように、従来のICカードの場合、アプ
リケーションプログラムが関数を利用する場合、当該関
数モジュールは、アプリケーションプログラムの中に記
述され、アプリケーションプログラムと一体化された形
式になる。したがって、ローダ部122によって、アプ
リケーションプログラムをアプリケーション格納部13
3内に格納した場合、当該アプリケーションプログラム
で利用する関数モジュールも、このアプリケーションプ
ログラムと一体となってアプリケーション格納部133
内に格納されることになる。このように、従来のICカ
ードでは、関数モジュールがアプリケーションプログラ
ムの一部として融合した形になっていたため、OSプロ
グラムには、関数モジュールを単独で取り扱う仕組みが
用意されていない。
【0030】これに対して、本発明の基本思想では、図
3に示す例のように、個々の関数モジュールをアプリケ
ーションプログラム本体とは別個のプログラムとして、
単独で取り扱う仕組みを用意しておき、必要に応じて必
要な関数モジュールを、その都度、呼び出して利用す
る、という手法を採る。図3の例の場合、2つのアプリ
ケーションプログラムAP1,AP2と、3つの関数モ
ジュールFN1,FN2,FN3とが用意されており、
アプリケーションプログラムAP1から関数モジュール
FN1が呼び出され、アプリケーションプログラムAP
2から関数モジュールFN2が呼び出されている様子が
示されている。関数モジュールFN1の本体は、アプリ
ケーションプログラムAP1内には含まれておらず、別
個独立したプログラムとして関数格納部134内に格納
されており、関数モジュールFN2の本体は、アプリケ
ーションプログラムAP2内には含まれておらず、こち
らも別個独立したプログラムとして関数格納部134内
に格納されている。
【0031】このように、本発明の場合、アプリケーシ
ョンプログラムも関数モジュールも、ローダ部122に
よって独立してロードされるプログラムであるという点
では同じである。ただ、アプリケーションプログラム
は、単体で何らかの機能を果たすプログラムであるのに
対し、関数モジュールは、単体では機能せず、他のプロ
グラムから呼び出されることによってその役目を果たす
プログラムである、という点で相違しており、両者のこ
の相違点は、外部装置200側からの選択コマンドによ
る選択対象になるか否かという点における相違に結びつ
くことになる。すなわち、アプリケーションプログラム
は、前述したように、外部装置200側からアプリケー
ション選択コマンドを与えることにより選択することが
でき、外部から明示的に特定のアプリケーションの実行
を指示することができるが、関数モジュールは、このよ
うな外部からの選択コマンドにより選択して実行させる
ことはできず、あくまでも他のプログラムから呼び出し
て利用することが前提となる。
【0032】アプリケーションプログラムから、特定の
関数モジュールを呼び出すには、呼出元となるアプリケ
ーションプログラム内に、特定の関数の実行を指示する
関数実行命令を記述しておくようにすればよい。たとえ
ば、図4に示すように、アプリケーションプログラムA
P1と、関数モジュールFN1,FN2とがロードされ
ている場合を考えてみよう。ここでは、アプリケーショ
ンプログラムAP1は、アプリケーション格納部133
内のアドレスAdd1〜Add5の領域に格納されてお
り、関数モジュールFN1は、関数格納部134内のア
ドレスAdd6〜Add7の領域に格納されており、関
数モジュールFN2は、関数格納部134内のアドレス
Add8〜Add9の領域に格納されているものとす
る。図示の例では、アプリケーションプログラムAP1
には、3か所に関数実行命令(この例では、「CALL
FN1」のような文字列)が含まれている。これらの
関数実行命令は、特定の関数名を指定して、これを実行
する旨の命令であり、たとえば、アドレスAdd2に記
述された「CALL FN1」なる命令は、「FN1」
なる関数名を指定した関数実行命令である。
【0033】既に§1で述べたように、ローダ部122
が新たな関数モジュールを関数格納部134内に格納す
る処理を行う際には、当該関数モジュールの名称である
関数名と、当該関数モジュールの実アドレスと、の対応
関係を示す関数テーブルTBを、関数テーブル格納部1
35に格納する処理も行われる。図4の右下に示す関数
テーブルTBは、関数モジュールFN1およびFN2に
ついて作成された関数テーブルTBの具体例を示すもの
である。この例では、関数名FN1に対応する実アドレ
スはAdd6となっており、関数モジュールFN1が格
納されている先頭実アドレスがAdd6であることが示
されており、また、関数名FN2に対応する実アドレス
はAdd8となっており、関数モジュールFN2が格納
されている先頭実アドレスがAdd8であることが示さ
れている。処理実行部121は、実行中のアプリケーシ
ョンプログラムから、特定の関数名を指定した関数実行
命令が与えられた場合に、関数テーブル格納部135内
の関数テーブルTBを参照することにより、当該特定の
関数名に対応する実アドレスを認識し、実行中のアプリ
ケーションプログラムを呼出元として、関数格納部13
4内の認識した実アドレスに格納されている関数モジュ
ールを実行することになる。
【0034】たとえば、アプリケーションプログラムA
P1内のルーチンを実行中に、アドレスAdd2に記述
された「CALL FN1」なる関数実行命令に遭遇し
た場合には、関数テーブルTBを参照することにより、
関数名FN1に対応する実アドレスがアドレスAdd6
であることを認識し、このアドレスAdd6に格納され
ている関数モジュールFN1のルーチンの実行(呼び出
し)を行うことになる。一般に、関数モジュールは、呼
出元から与えられた何らかの変数X(複数の場合もある
し、文字列の場合もある)に基づいて、関数値F(X)
を演算してこれを呼出元へと返す機能を果たすプログラ
ムである。したがって、実際には、このアプリケーショ
ンプログラムAP1のアドレスAdd2に至るまでのル
ーチンにおいて、変数Xとして何らかの値が用意され、
アドレスAdd2以降のルーチンにおいて、関数モジュ
ールFN1から返された関数値F(X)を利用した何ら
かの処理が行われることになる。ここで、アプリケーシ
ョンプログラムから関数モジュールへの変数Xの引き渡
しや、関数モジュールからアプリケーションプログラム
への関数値F(X)の引き渡しは、たとえば、レジスタ
などを用いた公知の方法で行うことができるので、ここ
では詳しい説明は省略する。
【0035】アプリケーションプログラムから関数モジ
ュールを呼び出した後は、再びアプリケーションプログ
ラムへと復帰することになるが、このような復帰は、プ
ログラムカウンタの退避処理によって行うことができ
る。すなわち、処理実行部121は、関数モジュールF
N1を実行する際に、この関数の呼出元となるアプリケ
ーションプログラムAP1におけるプログラムカウンタ
(アドレスAdd2を示すカウンタ)を退避する処理を
行う。そして、呼出先となった関数モジュールFN1の
実行が完了した後に、退避したプログラムカウンタに応
じた位置(アドレスAdd2にある関数実行命令の次の
命令の位置)から、呼出元となったアプリケーションプ
ログラムAP1の実行に復帰することになる。
【0036】なお、図4に示すアプリケーションプログ
ラムAP1のアドレスAdd4には、関数モジュールF
N3についての関数実行命令が記述されているが、この
図4に示す例では、関数モジュールFN3はまだ関数格
納部134内には格納されていない。したがって、図示
の例においてアドレスAdd4に記述された関数実行命
令は、現時点では実行不能な命令であり、プログラムカ
ウンタがアドレスAdd4を指し示した場合には、エラ
ーが生じてしまう。実は、この図4に示すアプリケーシ
ョンプログラムAP1におけるアドレスAdd4以降の
ルーチンは、将来の機能拡張用に予め付加されているル
ーチンであり、実際には、この時点では、このルーチン
が実行されることはない。別言すれば、このルーチンが
実行されるようなコマンドは、この時点では、ICカー
ドに対して与えない、という前提で、外部装置200側
からのアクセスが行われることになる。もちろん、将
来、アプリケーションプログラムAP1の機能を拡張す
る必要が生じた場合には、ロードコマンドを用いて関数
モジュールFN3を新たにICカード内に格納すれば、
このアドレスAdd4以降のルーチンによる付加機能が
利用できるようになる。
【0037】このように、本発明に係るICカードで
は、必要に応じて、その都度、必要な関数モジュールを
新規にロードして利用できるため、柔軟な利用形態が可
能になる。また、同一の関数モジュールを複数のアプリ
ケーションプログラムから共通して利用するような形態
も可能になり、関数の効率的な利用を図ることもできる
ようになる。
【0038】§3.本発明における関数モジュールの利
用形態の変形例 以上、本発明に係るICカードを基本的な実施形態に基
づいて説明したが、本発明は上述した基本的な実施形態
に限定されるものではなく、この他にも種々の形態で実
施可能である。ここでは、本発明における関数モジュー
ルの利用形態の変形例のいくつかを項分けして紹介す
る。
【0039】(1) 上述の実施形態では、アプリケーシ
ョンプログラムから関数モジュールを呼び出す例のみを
示したが、関数モジュールの呼出元は、必ずしもアプリ
ケーションプログラムである必要はなく、たとえば、O
Sプログラムを呼出元として特定の関数モジュールを呼
び出すようなことも可能である。すなわち、処理実行部
121は、実行中のOSプログラムから、特定の関数名
を指定した関数実行命令が与えられた場合に、関数テー
ブル格納部135内の関数テーブルTBを参照すること
により、当該特定の関数名に対応する実アドレスを認識
し、実行中のOSプログラムを呼出元として、関数格納
部134内の所定の実アドレスに格納されている関数モ
ジュールを実行する処理を行えばよい。また、第1の関
数モジュールを呼出元として更に第2の関数モジュール
を呼び出すような、いわゆる入れ子式の関数呼び出しを
行うことも可能である。すなわち、処理実行部121
は、実行中の関数モジュールから、特定の関数名を指定
した関数実行命令が与えられた場合に、関数テーブル格
納部135内の関数テーブルTBを参照することによ
り、当該特定の関数名に対応する実アドレスを認識し、
実行中の関数モジュールを呼出元として、関数格納部1
34内の所定の実アドレスに格納されている関数を実行
する処理を行えばよい。
【0040】(2) このように、本発明では、関数格納
部134内の関数モジュールは、ICカード内部のプロ
グラム(アプリケーションプログラム、OSプログラ
ム、他の関数モジュール)から呼び出されることが前提
となっており、原則として、外部装置200側から関数
格納部134内の関数モジュールを直接呼び出して利用
することはできない。ただ、外部装置200側から与え
るコマンドに工夫を施せば、あたかも外部装置200側
から関数格納部134内の関数モジュールを間接的に呼
び出して利用するかのような利用形態も可能である。具
体的には、外部装置200側から、「カプセル化された
関数実行命令を含むOS用もしくはアプリケーション用
コマンド」をICカード100側に与えるようにすれば
よい。そして、処理実行部121は、このようなコマン
ドが与えられたときに、当該コマンドを、OSプログラ
ムもしくは現時点で選択されているアプリケーションプ
ログラムに基づいて実行し、関数テーブル格納部135
内の関数テーブルTBを参照することにより、カプセル
化されていた関数実行命令によって示されている特定の
関数名に対応する実アドレスを認識し、OSプログラム
もしくは現時点で選択されているアプリケーションプロ
グラムを呼出元として、関数格納部134内の所定の実
アドレスに格納されている関数モジュールを実行する処
理を行うようにすればよい。
【0041】図5は、このような処理を実行させるため
のアプリケーション用コマンドの構成例を示すブロック
図である。このコマンドは、命令コードを示す「EXE
CFN」なる文字列の部分と、当該命令コードに付随す
るデータとなる「CALLFN1,X=123」なる文
字列の部分と、によって構成されている。ここで、後半
の「CALL FN1,X=123」なる部分は、実際
には、関数実行命令および変数値を示すコードである
が、カプセル化された状態となっており、全体として見
れば、「EXECFN」なる命令コードのデータ部分と
いう形式になっている。したがって、このようなアプリ
ケーション用コマンドが外部装置200側から与えられ
ると、一般のコマンドと同様に、OSプログラムもしく
はその時点で選択状態となっているアプリケーションプ
ログラムへと引き渡されることになる。そこで、OSプ
ログラムもしくはアプリケーションプログラム側に、こ
の「EXECFN」なるコマンドが与えられた場合に、
そのデータ部に記述された「CALL FN1,X=1
23」なる文字列を関数実行命令および変数値を示すコ
ードと解釈して、関数モジュールFN1の呼び出し処理
を実行するルーチンを予め用意しておけば、関数モジュ
ールFN1に変数値X=123を引き渡し、関数値F
(123)を得ることができる。更に、このアプリケー
ションプログラム側に、得られた関数値F(123)を
レスポンスとして返すルーチンを用意しておけば、図5
に示すようなアプリケーション用コマンドに対するレス
ポンスとして、関数値F(123)が外部装置200側
に返されることになる。
【0042】このような手法を採れば、実際には、IC
カード内に格納されているプログラムから関数モジュー
ルFN1を呼び出して利用していることになるが、実質
的には、外部装置200側からのコマンドによって、関
数モジュールFN1を利用するような取り扱いが可能に
なる。
【0043】(3) 図4に示す関数テーブルTBには、
各関数モジュールについて、関数名と実アドレスとの対
応関係しか示されていないが、更に、当該関数モジュー
ルの呼出元を限定する呼出元限定情報を付加することも
可能である。図6は、このような呼出元限定情報を付加
した関数テーブルTBの一例を示す図である。たとえ
ば、関数モジュールFN1については、呼出元限定情報
として、AP1,AP2,OSなる情報が付加されてい
るが、これは、関数モジュールFN1の呼出元を、アプ
リケーションプログラムAP1,AP2およびOSプロ
グラムに限定することを示す情報であり、関数モジュー
ルFN2については、呼出元限定情報として、AP1,
AP3なる情報が付加されているが、これは、関数モジ
ュールFN2の呼出元を、アプリケーションプログラム
AP1,AP3に限定することを示す情報である。この
ような呼出元限定情報は、個々の関数モジュールをロー
ドする際に、外部装置200側から指定すればよい。ロ
ーダ部122は、外部装置200から関数モジュールと
ともに、当該関数モジュールの呼出元を限定する呼出元
限定情報が与えられた場合に、当該関数モジュールにつ
いての呼出元限定情報を関数テーブルの一部として格納
する処理を行うことになる。
【0044】処理実行部121は、関数テーブルTBに
呼出元限定情報が付加されていた場合には、この呼出元
限定情報によって示された限定条件の下で、関数モジュ
ールの実行を行うことになる。たとえば、図6に示す例
の場合、アプリケーションプログラムAP2が関数モジ
ュールFN2を呼び出すような処理を行ったとしても、
呼出元限定情報による限定条件を満たしていないので、
このような呼出処理は正常な処理とは認められず、エラ
ー処理がなされることになる。このような呼出元限定情
報を設定しておくと、特定のアプリケーションプログラ
ムと密接に結び付いた関数モジュールが、他のアプリケ
ーションプログラムから利用されるのを防ぐことができ
る。
【0045】§4.本発明における関数モジュールのロ
ード時の変形例 本発明に係るICカードでは、ローダ部122によっ
て、アプリケーションプログラムのみならず、必要に応
じて関数モジュールを新たにロードすることができるこ
とは既に述べたとおりである。ここでは、この関数モジ
ュールのロードを行う際の変形例のいくつかを項分けし
て紹介する。
【0046】(1) 既に述べたように、本発明において
ICカード内にロードされる関数モジュールは、ICカ
ード内のプログラム(アプリケーションプログラム、O
Sプログラム、あるいは他の関数モジュール)から呼び
出されて利用されることが前提となる。したがって、呼
出元となるプログラムがICカードに存在しないような
関数モジュールは、ICカード内にロードしても利用価
値はない。そこで、ローダ部122に、現時点でICカ
ード内に格納されている呼出元となるプログラムから呼
び出しが可能な関数名を外部装置にレスポンスとして報
知する機能をもたせておくのが好ましい。たとえば、図
4に示すようなアプリケーションプログラムAP1のみ
がICカード内に格納されている状態では、このアプリ
ケーションプログラムAP1内を調べることにより、3
つの関数モジュールFN1,FN2,FN3のみが呼び
出し可能であることが認識できる。そこで、ローダ部1
22に、この3つの関数モジュールの関数名である「F
N1,FN2,FN3」なる文字列を、外部装置200
側に報知する機能をもたせておけば、外部装置200側
は、現時点でこのICカードにおいて利用価値のある関
数モジュールは、この3つの関数モジュールである旨を
認識することができ、誤って利用価値のない関数モジュ
ールをロードするような作業が行われるのを防ぐことが
できる。ローダ部122から外部装置200側への報知
は、レスポンスという形式で行われるが、このレスポン
スを得るためには、外部装置200側から、当該レスポ
ンスを要求する旨のコマンドを与えるようにすればよ
い。あるいは、ICカード100と外部装置200とを
接続した初期状態において、ICカードをリセットした
ときにICカード側から返されるATR(Answer to Re
set )の信号に、呼び出しが可能な関数名を示す情報を
もたせておくようにしてもよい。
【0047】(2) 上述した工夫と類似した工夫とし
て、外部装置200からロードコマンドとともに関数モ
ジュールが与えられた場合に、ロード部122が、与え
られた関数モジュールを呼び出すための呼出元となるプ
ログラムが現時点でICカード内に格納されているか否
かを調査し、格納されていない場合には、与えられたロ
ードコマンドに対してエラーを示すレスポンスを外部装
置200に返すような処理を行うようにしてもよい。こ
の場合は、ICカード100側から積極的に、呼び出し
が可能な関数名の報知が行われるわけではないが、もし
誤って呼び出し不能な関数モジュールをロードするよう
な作業が行われた場合には、エラーが発生することにな
る。たとえば、図4に示すようなアプリケーションプロ
グラムAP1のみがICカード内に格納されている状態
において、新たに関数モジュールFN4をロードするよ
うな作業が行われた場合(すなわち、外部装置200側
から、関数モジュールFN4についてのロードコマンド
が与えられた場合)は、アプリケーションプログラムA
P1内を調べることにより、関数モジュールFN4の呼
び出しが不能であることが認識できるので、このような
ロードコマンドは実行されずに、エラーを示すレスポン
スが返されることになる。
【0048】(3) これまでの実施形態では、新たに関
数モジュールをロードする際のセキュリティ確保の問題
については触れていなかったが、実用上は、外部装置2
00からロードコマンドとともに関数モジュールが与え
られた場合に、ロード部122が、所定のセキュリティ
条件が満足されているか否かを調査し、満足されていな
い場合には、与えられたロードコマンドに対してエラー
を示すレスポンスを外部装置200に返すようにしてお
くのが好ましい。セキュリティ条件が満足されているか
否かの判断は、既に公知の種々の方法のいずれを用いて
もかまわない。
【0049】また、関数モジュールをロードする際に
は、関数モジュール本体に対する暗号化を行っておくよ
うにするのが好ましい。この場合、外部装置200側の
暗号化アルゴリズムに応じた復号化アルゴリズムをIC
カード100側に用意しておき、外部装置200からロ
ードコマンドとともに暗号化された関数モジュールが与
えられた場合に、ロード部122が、用意されている復
号化アルゴリズムにより、暗号化された関数モジュール
を復号化してから関数格納部134に格納する処理を行
うようにすればよい。
【0050】更に、関数モジュールをロードする際に
は、関数モジュール本体に署名を付加するようにし、I
Cカード内に、この署名を検証するアルゴリズムを用意
しておくのが好ましい。この場合、外部装置200から
ロードコマンドとともに署名付きの関数モジュールが与
えられた場合に、ロード部122が、検証用アルゴリズ
ムを用いて、付加されてきた署名が正しいことを検証し
た後に、この関数モジュールを関数格納部134に格納
する処理を行えばよい。
【0051】(4) ローダ部122には、更に付加的な
機能を設けておくこともできる。たとえば、外部装置2
00からのコマンドまたはアプリケーションプログラム
もしくはOSプログラムによる命令に基づいて、関数格
納部134内に格納されている特定の関数モジュールの
利用を一時停止させる機能と、この一時停止からの復帰
をさせる機能と、をローダ部122に設けておくことも
できる。この機能を利用すれば、一時的に特定の関数モ
ジュールの利用を制限するような処理を容易に行うこと
ができる。また、外部装置200からのコマンドまたは
アプリケーションプログラムもしくはOSプログラムに
よる命令に基づいて、関数格納部134内に格納されて
いる関数モジュールを削除、置換、または変更する機能
を設けておくこともできる。不要になった関数モジュー
ルが発生した場合、これを削除すれば、その分のメモリ
領域を開放することができる。また、新たな関数モジュ
ールに置換したり、部分的に変更したりすることができ
れば、関数モジュールを最新のバージョンに保つことが
できるようになる。
【0052】
【発明の効果】以上のとおり、本発明に係るICカード
によれば、複数のプログラムから共通して利用可能な関
数モジュールを、単体として容易に追加することが可能
になる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係るICカード100
を、外部装置200に接続した状態を示すブロック図で
ある。
【図2】従来のICカードにおける関数モジュールの取
り扱いを示すブロック図である。
【図3】本発明に係るICカードにおける関数モジュー
ルの取り扱いを示すブロック図である。
【図4】アプリケーションプログラムAP1と、関数モ
ジュールFN1,FN2とがロードされている場合のI
Cカードのメモリ領域の構成を示すブロック図である。
【図5】カプセル化された関数実行命令を含むアプリケ
ーション用コマンドの構成例を示す図である。
【図6】呼出元限定情報を付加した関数テーブルTBの
一例を示す図である。
【符号の説明】
100…ICカード 110…I/O部 120…処理制御部 121…処理実行部 122…ローダ部 130…メモリ部 131…データ格納部 132…OS格納部 133…アプリケーション格納部 134…関数格納部 135…関数テーブル格納部 Add1〜Add9…実アドレス AP1〜AP3…アプリケーションプログラム FN1〜FN3…関数モジュール TB…関数テーブル
フロントページの続き (72)発明者 神力 哲夫 東京都新宿区市谷加賀町一丁目1番1号 大日本印刷株式会社内 Fターム(参考) 2C005 MA33 SA02 SA04 SA08 SA23 5B035 AA06 BB09 CA11 5B058 CA25 KA02 KA04 KA08 KA11 YA20 5B076 AB02 AB04 AB05 AB06

Claims (13)

    【特許請求の範囲】
  1. 【請求項1】 外部装置との間でコマンドおよびレスポ
    ンスをやりとりすることにより所定の処理を実行するI
    Cカードであって、 外部装置との交信を行うI/O部と、 データを格納するデータ格納部と、 OSプログラムを格納するOS格納部と、 アプリケーションプログラムを格納するアプリケーショ
    ン格納部と、 関数モジュールを格納する関数格納部と、 前記関数格納部に格納されている関数モジュールの名称
    である関数名と、当該関数モジュールの実アドレスと、
    の対応関係を示す関数テーブルを格納する関数テーブル
    格納部と、 外部装置からロードコマンドとともにアプリケーション
    プログラムが与えられた場合に、与えられたアプリケー
    ションプログラムを前記アプリケーション格納部に格納
    する処理と、外部装置からロードコマンドとともに関数
    モジュールが与えられた場合に、与えられた関数モジュ
    ールを前記関数格納部に格納するとともに当該格納した
    関数モジュールについての関数テーブルを前記関数テー
    ブル格納部に格納する処理と、を前記OSプログラムに
    基づいて実行するローダ部と、 外部装置から与えられたコマンドを、前記OSプログラ
    ムまたは前記アプリケーションプログラムに基づいて実
    行し、実行結果をレスポンスとして外部装置へと返す処
    理を行う処理実行部と、 を備え、 前記処理実行部は、 外部装置から与えられたアプリケーション選択コマンド
    に基づいて、もしくはOS格納部に格納されているOS
    プログラムで指示された初期設定に基づいて、前記アプ
    リケーション格納部に格納されている複数のアプリケー
    ションプログラムのうちの1つを選択する機能と、 外部装置からアプリケーション用コマンドが与えられた
    場合に、当該コマンドを現時点で選択されているアプリ
    ケーションプログラムに基づいて実行する機能と、 実行中のアプリケーションプログラムから、特定の関数
    名を指定した関数実行命令が与えられた場合に、前記関
    数テーブル格納部内の関数テーブルを参照することによ
    り、当該特定の関数名に対応する実アドレスを認識し、
    前記実行中のアプリケーションプログラムを呼出元とし
    て、前記関数格納部内の前記実アドレスに格納されてい
    る関数モジュールを実行する機能と、 を有することを特徴とするICカード。
  2. 【請求項2】 請求項1に記載のICカードにおいて、 処理実行部が、実行中のOSプログラムから、特定の関
    数名を指定した関数実行命令が与えられた場合に、前記
    関数テーブル格納部内の関数テーブルを参照することに
    より、当該特定の関数名に対応する実アドレスを認識
    し、前記実行中のOSプログラムを呼出元として、前記
    関数格納部内の前記実アドレスに格納されている関数モ
    ジュールを実行する機能を有することを特徴とするIC
    カード。
  3. 【請求項3】 請求項1に記載のICカードにおいて、 処理実行部が、実行中の関数モジュールから、特定の関
    数名を指定した関数実行命令が与えられた場合に、前記
    関数テーブル格納部内の関数テーブルを参照することに
    より、当該特定の関数名に対応する実アドレスを認識
    し、前記実行中の関数モジュールを呼出元として、前記
    関数格納部内の前記実アドレスに格納されている関数を
    実行する機能を有することを特徴とするICカード。
  4. 【請求項4】 請求項1に記載のICカードにおいて、 外部装置から「カプセル化された関数実行命令を含むO
    S用もしくはアプリケーション用コマンド」が与えられ
    た場合に、処理実行部が、当該コマンドをOSプログラ
    ムもしくは現時点で選択されているアプリケーションプ
    ログラムに基づいて実行し、関数テーブル格納部内の関
    数テーブルを参照することにより、前記関数実行命令に
    よって示されている特定の関数名に対応する実アドレス
    を認識し、前記OSプログラムもしくは現時点で選択さ
    れているアプリケーションプログラムを呼出元として、
    前記関数格納部内の前記実アドレスに格納されている関
    数モジュールを実行する機能を有することを特徴とする
    ICカード。
  5. 【請求項5】 請求項1〜4のいずれかに記載のICカ
    ードにおいて、 処理実行部が、特定の関数モジュールを実行する際に、
    関数の呼出元となるプログラムにおけるプログラムカウ
    ンタを退避する処理を行い、前記特定の関数モジュール
    の実行後に、退避したプログラムカウンタに応じた位置
    から、前記呼出元となるプログラムの実行に復帰するこ
    とを特徴とするICカード。
  6. 【請求項6】 請求項1〜5のいずれかに記載のICカ
    ードにおいて、 外部装置からロードコマンドおよび関数モジュールとと
    もに、当該関数モジュールの呼出元を限定する呼出元限
    定情報が与えられた場合に、ローダ部が、当該関数モジ
    ュールについての前記呼出元限定情報を関数テーブルの
    一部として格納する処理を行う機能を有し、 処理実行部が、前記関数テーブル内の呼出元限定情報に
    よって示された限定条件の下で関数モジュールの実行を
    行うことを特徴とするICカード。
  7. 【請求項7】 請求項1〜5のいずれかに記載のICカ
    ードにおいて、 ローダ部が、現時点でICカード内に格納されている呼
    出元となるプログラムから呼び出しが可能な関数名を外
    部装置にレスポンスとして報知する機能を有することを
    特徴とするICカード。
  8. 【請求項8】 請求項1〜5のいずれかに記載のICカ
    ードにおいて、 外部装置からロードコマンドとともに関数モジュールが
    与えられた場合に、ロード部が、与えられた関数モジュ
    ールを呼び出すための呼出元となるプログラムが現時点
    でICカード内に格納されているか否かを調査し、格納
    されていない場合には、与えられたロードコマンドに対
    してエラーを示すレスポンスを外部装置に返す機能を有
    することを特徴とするICカード。
  9. 【請求項9】 請求項1〜5のいずれかに記載のICカ
    ードにおいて、 外部装置からロードコマンドとともに関数モジュールが
    与えられた場合に、ロード部が、所定のセキュリティ条
    件が満足されているか否かを調査し、満足されていない
    場合には、与えられたロードコマンドに対してエラーを
    示すレスポンスを外部装置に返す機能を有することを特
    徴とするICカード。
  10. 【請求項10】 請求項1〜5のいずれかに記載のIC
    カードにおいて、 外部装置からロードコマンドとともに暗号化された関数
    モジュールが与えられた場合に、ロード部が、前記暗号
    化された関数モジュールを復号化してから関数格納部に
    格納する機能を有することを特徴とするICカード。
  11. 【請求項11】 請求項1〜5のいずれかに記載のIC
    カードにおいて、 外部装置からロードコマンドとともに署名付きの関数モ
    ジュールが与えられた場合に、ロード部が、前記署名が
    正しいことを検証した後に、前記関数モジュールを関数
    格納部に格納する機能を有することを特徴とするICカ
    ード。
  12. 【請求項12】 請求項1〜5のいずれかに記載のIC
    カードにおいて、 ロード部が、外部装置からのコマンドまたはアプリケー
    ションプログラムもしくはOSプログラムによる命令に
    基づいて、関数格納部内に格納されている関数モジュー
    ルの利用を一時停止させる機能と、この一時停止からの
    復帰をさせる機能と、を有することを特徴とするICカ
    ード。
  13. 【請求項13】 請求項1〜5のいずれかに記載のIC
    カードにおいて、 ロード部が、外部装置からのコマンドまたはアプリケー
    ションプログラムもしくはOSプログラムによる命令に
    基づいて、関数格納部内に格納されている関数モジュー
    ルを削除、置換、または変更する機能を有することを特
    徴とするICカード。
JP2001201807A 2001-07-03 2001-07-03 Icカード Pending JP2003016410A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001201807A JP2003016410A (ja) 2001-07-03 2001-07-03 Icカード

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001201807A JP2003016410A (ja) 2001-07-03 2001-07-03 Icカード

Publications (1)

Publication Number Publication Date
JP2003016410A true JP2003016410A (ja) 2003-01-17

Family

ID=19038707

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001201807A Pending JP2003016410A (ja) 2001-07-03 2001-07-03 Icカード

Country Status (1)

Country Link
JP (1) JP2003016410A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004272400A (ja) * 2003-03-06 2004-09-30 Renesas Technology Corp メモリカード
JP2005050062A (ja) * 2003-07-31 2005-02-24 Canon Inc 印刷処理システム、当該システムの情報処理方法、情報処理装置、当該情報処理装置の情報処理方法、クライアント装置、及び情報処理プログラム
JP2005234898A (ja) * 2004-02-19 2005-09-02 Dainippon Printing Co Ltd Romにアプリケーションを実装したマルチアプリケーションicカードおよびプログラム
JP2005301938A (ja) * 2004-04-16 2005-10-27 Dainippon Printing Co Ltd 携帯型情報記憶媒体及びそのプログラム
JP2010198306A (ja) * 2009-02-25 2010-09-09 Sony Corp 情報処理装置および方法、並びにプログラム
US7853946B2 (en) 2003-02-28 2010-12-14 Canon Kabushiki Kaisha Information processing apparatus, information processing method, and control program

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7853946B2 (en) 2003-02-28 2010-12-14 Canon Kabushiki Kaisha Information processing apparatus, information processing method, and control program
JP2004272400A (ja) * 2003-03-06 2004-09-30 Renesas Technology Corp メモリカード
JP2005050062A (ja) * 2003-07-31 2005-02-24 Canon Inc 印刷処理システム、当該システムの情報処理方法、情報処理装置、当該情報処理装置の情報処理方法、クライアント装置、及び情報処理プログラム
JP2005234898A (ja) * 2004-02-19 2005-09-02 Dainippon Printing Co Ltd Romにアプリケーションを実装したマルチアプリケーションicカードおよびプログラム
JP4580660B2 (ja) * 2004-02-19 2010-11-17 大日本印刷株式会社 Romにアプリケーションを実装したマルチアプリケーションicカードおよびアプリケーションプログラム
JP2005301938A (ja) * 2004-04-16 2005-10-27 Dainippon Printing Co Ltd 携帯型情報記憶媒体及びそのプログラム
JP4527434B2 (ja) * 2004-04-16 2010-08-18 大日本印刷株式会社 携帯型情報記憶媒体及びそのプログラム
JP2010198306A (ja) * 2009-02-25 2010-09-09 Sony Corp 情報処理装置および方法、並びにプログラム
US8544030B2 (en) 2009-02-25 2013-09-24 Sony Corporation Information processing apparatus, method, and program
US9396045B2 (en) 2009-02-25 2016-07-19 Sony Corporation Information processing apparatus, method, and program
US9817704B2 (en) 2009-02-25 2017-11-14 Sony Corporation Information processing apparatus, method, and program
US10733031B2 (en) 2009-02-25 2020-08-04 Sony Corporation Information processing apparatus, method, and program

Similar Documents

Publication Publication Date Title
KR100318150B1 (ko) 플래시 메모리 탑재형 싱글 칩 마이크로 컴퓨터
EP1450299B1 (en) Portable information recording medium
KR101060549B1 (ko) 스마트 카드 전력 관리 시스템
US20060086785A1 (en) Portable electronic apparatus and method of updating application in portable electronic apparatus
EP2199994B1 (en) Portable electronic device
JP2003016410A (ja) Icカード
US20080162837A1 (en) Nonvolatile Memory System
US20080035737A1 (en) Ic Card Secure Personalizion Method
JP2004503860A (ja) データ処理方法及び保護された命令の実行のための装置
JP5057829B2 (ja) 携帯可能電子装置およびicカード
KR100399603B1 (ko) 스마트 카드와 이의 os 프로그램 저장/삭제 및 실행방법
JP5444143B2 (ja) 携帯可能電子装置及びicカード
JPH0935018A (ja) 携帯可能情報記録媒体およびそのアクセス方法
JP2006293706A (ja) アプリケーションの更新機能を有するマルチアプリケーションicカード
JP2008500601A (ja) 半導体メモリカード
JP2004334745A (ja) Icカード
JP2004227306A (ja) ダウンロードプログラム消去機能付きicカード及び同カードにおけるダウンロードプログラム消去方法
JP2007034434A (ja) Icカード、icカードへのデータ書込み方法、および、icカードプログラム
JPH03224047A (ja) 携帯可能電子装置
JP5242091B2 (ja) 携帯可能電子装置、icカード、および、携帯可能電子装置の制御方法
JP5492172B2 (ja) 携帯可能電子装置、icカードおよびicモジュール
JP2003030609A (ja) 携帯型情報処理装置
KR20060014600A (ko) 외부 메모리에 저장된 데이터의 변경유무를 체크하는 장치및 방법
JP2024036028A (ja) 電子情報記憶媒体、icカード、発行処理方法、及びプログラム
JP2003203211A (ja) 携帯可能電子装置