JP5402595B2 - ネイティブ型icカード、icカードos、及び方法 - Google Patents

ネイティブ型icカード、icカードos、及び方法 Download PDF

Info

Publication number
JP5402595B2
JP5402595B2 JP2009280200A JP2009280200A JP5402595B2 JP 5402595 B2 JP5402595 B2 JP 5402595B2 JP 2009280200 A JP2009280200 A JP 2009280200A JP 2009280200 A JP2009280200 A JP 2009280200A JP 5402595 B2 JP5402595 B2 JP 5402595B2
Authority
JP
Japan
Prior art keywords
application
area
execution code
difference list
start address
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
Application number
JP2009280200A
Other languages
English (en)
Other versions
JP2011123639A (ja
Inventor
之治 浅野
淳 土田
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.)
Toppan Inc
Original Assignee
Toppan Inc
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 Toppan Inc filed Critical Toppan Inc
Priority to JP2009280200A priority Critical patent/JP5402595B2/ja
Publication of JP2011123639A publication Critical patent/JP2011123639A/ja
Application granted granted Critical
Publication of JP5402595B2 publication Critical patent/JP5402595B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、ICカードに関する。
近年ICカードの普及が高まるにつれて、1枚のカードに、個々のサービスを実行させるアプリケーションプログラム(以後アプリケーションと略称する)を複数提供することが可能であり、発行後でもアプリケーションを追加する機能を持つ、いわゆる、マルチアプリケーション機能を持つプラットホーム型ICカードの需要が高くなっている。そのため、一般に、代表的なプラットホームとして、Java(登録商標)CardOSを利用したカードがあるが、実行処理速度が遅いことが問題である。
また一般に、C言語に代表されるネイティブ型ICカードでは、カードに送られる全てのコマンドを、OSレベルで解釈実行するため実行処理速度が速いことが特徴であるが、発行後のアプリケーションの追加、変更および削除が困難であり、可能である場合も、カード発行者とアプリケーション開発者とが一体となって開発を進める必要がある。具体的には、発行後のカードに対して、複数のアプリケーションベンダーが、自由にアプリケーションを開発しカードに搭載することができない。
これは、プラットホーム型ICカードでは、アプリケーション開発者は、仮想マシン(VM)で処理されるコード、いわゆる中間コードを開発し作成してICカードのメモリに格納し、ICカードはアプリケーションがダウンロード完了時もしくは実行される時に、初めて物理的なメモリ領域を確保するからであるのに対して、ネイティブ型ICカードでは、アプリケーション開発者は、搭載対象のICカードのメモリの物理的な空き領域等を認知した上で、実行コードを開発し作成して、開発し作成した実行コードが、その空き領域に格納する必要があるためである。
また複数のアプリケーションが、チャネルの切り替えにより、それぞれのチャネルで同時に動作することがあるが、プラットホーム型ICカードでは一時的変数であるRAM領域も、アプリケーションの実行時に、そのカードの状況に応じて確保するため、アプリケーション間の重複は問題とならないが、ネイティブ型ICカードでは、アプリケーション開発者へ渡すアプリケーション側で自由に使用できるRAM領域は固定かつ同一アドレスとし、アプリケーションで利用するRAM領域も実コード作成時に決定されるため、重複が起きないようにする対策が必要である。
そのため、ネイティブ型ICカードでは、複数のアプリケーションベンダーが、ユーザーのアプリケーションのダウンロード状況に応じて、メモリの空き領域が異なるカードに対してのアプリケーションの開発を行いカードに搭載できない。
本発明は、斯かる背景技術に鑑みてなされたもので、個々のアプリケーションベンダーが、個々のネイティブ型ICカードのメモリの空き領域を気にすることなく、アプリケーションの開発を行えることを課題とする。
本発明において上記課題を解決するために、まず請求項1の発明では、
搭載するアプリケーションの実行コードと、その差分リストファイルとを受信する手段
と、
追加アプリケーション領域の開始アドレスが、デフォルト開始アドレスと同じ場合、受信した実行コードを、追加アプリケーション領域に、その開始アドレスから格納するとともに、受信した差分リストファイルを、受信した実行コードと関係付けて、データ領域に格納することにより、アプリケーションを搭載する手段と、
追加アプリケーション領域の開始アドレスが、デフォルト開始アドレスと異なる場合、受信した差分リストファイルに基づいて、受信した実行コードを変更して、追加アプリケーション領域に、その開始アドレスから格納するとともに、受信した差分リストファイルを、変更した実行コードと関係付けて、データ領域に格納することにより、アプリケーションを搭載する手段とを備えることを特徴とするネイティブ型ICカードとしたものである。
また請求項2の発明では、
削除又は搭載し直したアプリケーションの次に搭載したアプリケーションの実行コードを追加アプリケーション領域から削除すると同時に、この実行コードに関係付けられている差分リストファイルに基づいて、この実行コードを変更したものを追加アプリケーション領域に移動先アドレスから格納するとともに、この差分リストファイルを、データ領域で、削除又は搭載し直したアプリケーションの差分リストファイルの分だけ詰めて格納し直すことにより、削除又は搭載し直したアプリケーションの次に搭載したアプリケーションを搭載し直す手段を備えることを特徴とする請求項1記載のネイティブ型ICカードとしたものである。
また請求項3の発明では、
あるアプリケーションを実行するのに必要な情報を、RAMのアプリケーション側で自由に利用可能な領域から、RAMのアプリケーション側で自由に利用可能な領域とは別の領域に移動させ、他のアプリケーションを実行するのに必要な情報を、RAMのアプリケーション側で自由に利用可能な領域とは別の領域から、RAMのアプリケーション側で自由に利用可能な領域に移動させることにより、あるチャネルにて、あるアプリケーションの実行を一旦停止して、他のチャネルにて、他のアプリケーションを実行する手段を備えることを特徴とする請求項1又は2記載のネイティブ型ICカードとしたものである。
また請求項4の発明では、
搭載するアプリケーションの実行コードと、その差分リストファイルとを受信する工程と、
追加アプリケーション領域の開始アドレスが、デフォルト開始アドレスと同じ場合、受信した実行コードを、追加アプリケーション領域に、その開始アドレスから格納するとともに、受信した差分リストファイルを、受信した実行コードと関係付けて、データ領域に格納することにより、アプリケーションを搭載する工程と、
追加アプリケーション領域の開始アドレスが、デフォルト開始アドレスと異なる場合、受信した差分リストファイルに基づいて、受信した実行コードを変更して、追加アプリケーション領域に、その開始アドレスから格納するとともに、受信した差分リストファイルを、変更した実行コードと関係付けて、データ領域に格納することにより、アプリケーションを搭載する工程とをネイティブ型ICカードに実行させることを特徴とするICカードOSとしたものである。
また請求項5の発明では、
削除又は搭載し直したアプリケーションの次に搭載したアプリケーションの実行コードを追加アプリケーション領域から削除すると同時に、この実行コードに関係付けられている差分リストファイルに基づいて、この実行コードを変更したものを追加アプリケーション領域に移動先アドレスから格納するとともに、この差分リストファイルを、データ領域
で、削除又は搭載し直したアプリケーションの差分リストファイルの分だけ詰めて格納し直すことにより、削除又は搭載し直したアプリケーションの次に搭載したアプリケーションを搭載し直す工程をネイティブ型ICカードに実行させることを特徴とする請求項4記載のICカードOSとしたものである。
また請求項6の発明では、あるアプリケーションを実行するのに必要な情報を、RAMのアプリケーション側で自由に利用可能な領域から、RAMのアプリケーション側で自由に利用可能な領域とは別の領域に移動させ、他のアプリケーションを実行するのに必要な情報を、RAMのアプリケーション側で自由に利用可能な領域とは別の領域から、RAMのアプリケーション側で自由に利用可能な領域に移動させることにより、あるチャネルにて、あるアプリケーションの実行を一旦停止して、他のチャネルにて、他のアプリケーションを実行する工程をネイティブ型ICカードに実行させることを特徴とする請求項4又は5記載のICカードOSとしたものである。
また請求項7の発明では、
搭載するアプリケーションの実行コードと、その差分リストファイルとを受信する工程と、
追加アプリケーション領域の開始アドレスが、デフォルト開始アドレスと同じ場合、受信した実行コードを、追加アプリケーション領域に、その開始アドレスから格納するとともに、受信した差分リストファイルを、受信した実行コードと関係付けて、データ領域に格納することにより、アプリケーションを搭載する工程と、
追加アプリケーション領域の開始アドレスが、デフォルト開始アドレスと異なる場合、受信した差分リストファイルに基づいて、受信した実行コードを変更して、追加アプリケーション領域に、その開始アドレスから格納するとともに、受信した差分リストファイルを、変更した実行コードと関係付けて、データ領域に格納することにより、アプリケーションを搭載する工程とをネイティブ型ICカードが実行することを特徴とする方法としたものである。
また請求項8の発明では、
削除又は搭載し直したアプリケーションの次に搭載したアプリケーションの実行コードを追加アプリケーション領域から削除すると同時に、この実行コードに関係付けられている差分リストファイルに基づいて、この実行コードを変更したものを追加アプリケーション領域に移動先アドレスから格納するとともに、この差分リストファイルを、データ領域で、削除又は搭載し直したアプリケーションの差分リストファイルの分だけ詰めて格納し直すことにより、削除又は搭載し直したアプリケーションの次に搭載したアプリケーションを搭載し直す工程をネイティブ型ICカードが実行することを特徴とする請求項7記載の方法としたものである。
また請求項9の発明では、あるアプリケーションを実行するのに必要な情報を、RAMのアプリケーション側で自由に利用可能な領域から、RAMのアプリケーション側で自由に利用可能な領域とは別の領域に移動させ、他のアプリケーションを実行するのに必要な情報を、RAMのアプリケーション側で自由に利用可能な領域とは別の領域から、RAMのアプリケーション側で自由に利用可能な領域に移動させることにより、あるチャネルにて、あるアプリケーションの実行を一旦停止して、他のチャネルにて、他のアプリケーションを実行する工程をネイティブ型ICカードが実行することを特徴とする請求項7又は8記載の方法としたものである。
本願の請求項1、4、及び7に係る発明は、個々のアプリケーションベンダーが、個々のネイティブ型ICカードのメモリの空き領域を気にすることなく、デフォルト開始アドレスでアプリケーションの実行コード及び差分リストファイルの作成を行えば良いという効果がある。
本願の請求項2、5、及び8に係る発明は、ネイティブ型ICカードに搭載したアプリケーションを削除しても、メモリを有効に活用できるという効果がある。
本願の請求項3、6、及び9に係る発明は、ネイティブ型ICカードに搭載された複数のアプリケーション間で、RAM領域の利用に関して重複が生じることを気にすることなく、アプリケーションの開発が行えるという効果がある。
以上、本願発明は、個々のアプリケーションベンダーが、個々のネイティブ型ICカードのメモリの空き領域を気にすることなく、アプリケーションの開発を行えるという効果がある。
ICカードのハードウエア構成例を示す図。 メモリのハードウエア構成例を示す図。 アプリケーションをダウンロードするためのシステムのハードウエア構成例を示す図。 アプリケーション搭載処理の流れの例を示すフローチャート。 アプリケーションの実行コードと差分リストファイルとが密に詰って格納されているメモリの例を示す図。 アプリケーションの実行コードと差分リストファイルとが歯抜け状態で格納されているメモリの例を示す図。 メモリコンパクション処理の流れの例を示すフローチャート。 RAMのアプリケーション側で自由に利用可能な領域にチャネル0にてアプリケーションAを実行するのに必要な情報が保持されているメモリの例を示す図。 RAMのアプリケーション側で自由に利用可能な領域とは別の領域にチャネル0にてアプリケーションAを実行するのに必要な情報を退避させているメモリの例を示す図。 RAMのアプリケーション側で自由に利用可能な領域とは別の領域にチャネル0にてアプリケーションAを実行するのに必要な情報を退避させながら、RAMのアプリケーション側で自由に利用可能な領域にチャネル1にてアプリケーションBを実行するのに必要な情報を保持しているメモリの例を示す図。 RAMのアプリケーション側で自由に利用可能な領域とは別の領域にチャネル1にてアプリケーションBを実行するのに必要な情報を退避させながら、RAMのアプリケーション側で自由に利用可能な領域にチャネル0にてアプリケーションAを実行するのに必要な情報を保持しているメモリの例を示す図。
以下に、本発明の一実施形態を説明する。
1.構成
本実施形態では、ICカードは、ネイティブ型であって、図1に示すように、CPU、I/F、メモリを有する。
CPUは、中央処理装置とも呼ばれ、ICカードリーダライタからのコマンド、メモリに記憶されているプログラムを実行して処理を行う装置である。
I/Fは、通信インターフェースとも呼ばれ、ICカードリーダライタから電力とクロックの供給を受けるとともに、ICカードリーダライタとCPUとの間の通信を仲介するインターフェースである。
メモリには、図2に示すように、ROM、RAM、EEPROMがある。
ROMは、読み出し専用のメモリであり、ICカードOSが記憶される。このICカードOSは、CPUに、少なくとも、以下で説明するアプリケーション搭載処理とメモリコンパクション処理とRAM領域のスワップ処理とを実行させる基本プログラムである。
RAMは、CPUがコマンドやプログラムを実行するために、一時的にデータを記憶する作業用のメモリである。
EEPROMは、電気的に内容の書き換えが可能なメモリであって、追加アプリケーション領域と、データ領域とに別れている。カードに搭載されたアプリケーションの実行コードは、追加アプリケーション領域に保持され、この実行コードに関係付けて、差分リストファイルがデータ領域に保持される。
差分リストファイルは、アプリケーションの実行コードにおいて、そのアプリケーション内の自己関数或いは自己変数(アプリケーション内で作成した関数或いは変数)を絶対アドレスでコールするために必要なアドレス値を格納している箇所を表すファイルのことである。
一般に、ネイティブ型ICカードの実行コードは、C言語等で書かれたソースコードを、コンパイラーでコンパイルしてオブジェクトファイルにし、このオブジェクトファイルをリンカーでリンクすることにより作成される。リンカーには、アプリケーションで自由に利用可能なRAM領域の情報や追加アプリケーション領域で実行コードの格納を開始するアドレス(以後、追加アプリケーション領域の開始アドレスとも云う)の情報などのリンク情報が書かれたリンクファイルが付属しており、このリンクファイルを参照することによりリンクが行われる。
追加アプリケーション領域の開始アドレスのみが異なる2つのリンクファイルを用いてオブジェクトファイルをリンクして2つの実行コードを作成した場合、これら2つの実行コードの間で、アプリケーション内の自己関数或いは自己変数を絶対アドレスでコールするのに必要なアドレス値に、これら開始アドレスの差だけの差異が現れ、かつ、これら2つの実行コードの間で差異が現れる箇所は、アプリケーション内の自己関数或いは自己変数を絶対アドレスでコールするのに必要なアドレス値を格納している箇所のみであるため、これら2つの実行コードを比較することで、これら2つの実行コードに差異のある箇所をリストすることにより、差分リストファイルが作成される。
ところで、アプリケーションをダウンロードするためのシステムは、図3に示すように、データベースを有するサーバと、ICカードリーダライタを有する端末とを備え、これらサーバと端末とが、インターネット等のネットワークに接続されるものである。
サーバは、ダウンロードセンターと呼ばれる第三者によって運用されるものである。
データベースには、デフォルト開始アドレス(アプリケーションが未搭載の場合の追加アプリケーション領域で実行コードの格納を開始するアドレス)で作成された実行コードと、この実行コードと、デフォルトとは異なる値の開始アドレスで作成された実行コードとから作成された差分リストファイルとが保存されている。これら、実行コードと差分ファイルとは、アプリケーションベンダーの開発者によって作成され、データベースにアップロードされたものであっても良い。
本実施形態では、カードにアプリケーションを搭載するために、サーバのデータベースから端末に、そのアプリケーションの実行コードだけでなく、差分リストファイルもダウンロードされ、さらに端末のICカードリーダライタからカードに、そのアプリケーションの実行コードだけでなく、差分リストファイルも送信される。
2.アプリケーション搭載処理
以下に、カードにアプリケーションを搭載するために、ICカードOSによってカードのCPUが行うアプリケーション搭載処理の流れの例を、図4のフローチャートに従って説明する。
S(STEP)1;
端末のICカードリーダライタから、アプリケーションの実行コードと、差分リストファイルとを受信する。
S(STEP)2;
追加アプリケーション領域の開始アドレス(アプリケーションが未搭載ならば、デフォルト開始アドレスであり、アプリケーションが既搭載ならば、最後に搭載したアプリケーションの実行コードの格納を終了するアドレスの直ぐ隣で、このアドレスよりも大きいもの)をチェック。
S(STEP)3;
追加アプリケーション領域の開始アドレスと、デフォルト開始アドレスとを比較し、
追加アプリケーション領域の開始アドレスが、デフォルト開始アドレスと同じであるならば、カードにアプリケーションが未搭載であることを意味するので、STEP4に進み、
他方、追加アプリケーション領域の開始アドレスが、デフォルト開始アドレスと異なるならば、カードにアプリケーションが既搭載であることを意味するので、STEP5に進む。
S(STEP)4;
受信したアプリケーションの実行コードを、追加アプリケーション領域に、その開始アドレスから格納するとともに、差分リストファイルを、実行コードと関係付けて、データ領域に、その開始アドレスから格納して、ENDに進む。
S(STEP)5;
追加アプリケーション領域の開始アドレスからデフォルト開始アドレスを引いた値を求
める。
S(STEP)6;
受信した差分リストファイルを参照して、受信したアプリケーションの実行コードにおいて、そのアプリケーション内の自己関数或いは自己変数を絶対アドレスでコールするために必要なアドレス値を格納している箇所を特定し、このアドレス値に、求めた値を加算して、受信したアプリケーションの実行コードを、デフォルト開始アドレスで作成されたものから、追加アプリケーション領域の開始アドレスで作成された実行コードに変更する。
S(STEP)7;
変更した実行コードを、追加アプリケーション領域に、その開始アドレスから格納するとともに、差分リストファイルを、実行コードと関係付けて、データ領域に、その開始アドレスから格納する。
3.メモリコンパクション処理
このようなアプリケーション搭載処理により、複数のアプリケーションを搭載した場合、図5に示すように、アプリケーションの搭載順に、それぞれの実行コードと差分リストファイルとは、それぞれ追加アプリケーション領域とデータ領域とに密に詰って格納される。そして、アプリケーションの実行コード(或いは差分リストファイル)の格納を開始するアドレスは、搭載順に大きくなる。図5に示す例は、アプリケーションをA、B、C、D順に搭載したものであり。アプリケーションA〜Dのそれぞれの実行コードA〜Dと差分リストファイルA〜Dとは、それぞれ追加アプリケーション領域とデータ領域とに密に詰って格納されている。そして、アプリケーションA〜Dのそれぞれの実行コードA〜Dの格納を開始する開始アドレスA〜Dは、開始アドレスA、B、C、Dの順に大きくなっている。
しかしながら、最後よりも以前に搭載したアプリケーションを削除した場合、図6に示すように、このアプリケーションの実行コードと差分リストファイルとが格納されていた領域のみが初期化され開放された歯抜けの状態になるため、この開放された領域を有効に活用できない。図6に示す例は、アプリケーションをA、B、C、D順に搭載した後に、アプリケーションBを削除したものであり、このアプリケーションBの実行コードBと差分リストファイルBとが格納されていた領域のみが初期化され開放された歯抜けの状態になるため、この開放された領域を有効に活用できない。
そこで、この開放された領域を有効活用するために、最後よりも以前に搭載したアプリケーションを削除した場合、削除したアプリケーションよりも以後に搭載したアプリケーションのそれぞれの実行コードと差分リストファイルとを、それぞれ追加アプリケーション領域とデータ領域とで順に詰めて格納し直して、削除したアプリケーションよりも以後に搭載したアプリケーションを搭載し直したいが、実行コードは、上述したように、アプリケーション内の自己関数或いは自己変数を絶対アドレスでコールするのに必要なアドレス値を含んだデータであるために、そのまま移動できない。
これに対処するために、本実施形態では、ICカードOSによるメモリコンパクション処理がなされる。
以下に、ICカードOSによってカードのCPUが行うメモリコンパクション処理の流れの例を、図7のフローチャートに従って説明する。
S(STEP)1;
削除したアプリケーションの次に搭載したアプリケーションがあるかを確かめ、
あるならば、STEP2に進み、
他方、ないならば、ENDに進む。
S(STEP)2;
削除したアプリケーションの次に搭載したアプリケーションの実行コードの移動先アドレス(削除したアプリケーションの実行コードの格納を開始していたアドレス)をチェックする。
S(STEP)3;
削除したアプリケーションの次に搭載したアプリケーションの実行コードの格納を開始しているアドレスから、移動先アドレスを引いた値を求める。
S(STEP)4;
削除したアプリケーションの次に搭載したアプリケーションの実行コードに関係付けられている差分リストファイルを参照して、削除したアプリケーションの次に搭載したアプリケーションの実行コードにおいて、削除したアプリケーションの次に搭載したアプリケーション内の自己関数或いは自己変数を絶対アドレスでコールするために必要なアドレス値を格納している箇所を特定し、このアドレス値に、求めた値を減算して、削除したアプリケーションの次に搭載したアプリケーションの実行コードを変更する。
S(STEP)5;
削除したアプリケーションの次に搭載したアプリケーションの実行コードを追加アプリケーション領域から削除すると同時に、この実行コードを変更したものを追加アプリケーション領域に移動先アドレスから格納するとともに、削除したアプリケーションの次に搭載したアプリケーションの差分リストファイルを、データ領域で、削除したアプリケーションの差分リストファイルの分だけ詰めて格納し直すことにより、削除したアプリケーションの次に搭載したアプリケーションを搭載し直す。
S(STEP)6;
搭載し直したアプリケーションの次に搭載したアプリケーションがあるかを確かめ、
あるならば、STEP7に進み、
他方、ないならば、ENDに進む。
S(STEP)7;
搭載し直したアプリケーションの次に搭載したアプリケーションの実行コードの移動先アドレス(搭載し直したアプリケーションの実行コードの格納を終了するアドレスの直ぐ隣で、このアドレスよりも大きいもの)をチェックする。
S(STEP)8;
搭載し直したアプリケーションの次に搭載したアプリケーションの実行コードの格納を開始しているアドレスから、移動先アドレスを引いた値を求める。
S(STEP)9;
搭載し直したアプリケーションの次に搭載したアプリケーションの実行コードに関係付けられている差分リストファイルを参照して、搭載し直したアプリケーションの次に搭載したアプリケーションの実行コードにおいて、搭載し直したアプリケーションの次に搭載したアプリケーション内の自己関数或いは自己変数を絶対アドレスでコールするために必要なアドレス値を格納している箇所を特定し、このアドレス値に、求めた値を減算して、搭載し直したアプリケーションの次に搭載したアプリケーションの実行コードを変更する
S(STEP)10;
搭載し直したアプリケーションの次に搭載したアプリケーションの実行コードを追加アプリケーション領域から削除すると同時に、この実行コードを変更したものを追加アプリケーション領域に移動先アドレスから格納するとともに、搭載し直したアプリケーションの次に搭載したアプリケーションの差分リストファイルを、データ領域で、搭載し直したアプリケーションの差分リストファイルの分だけ詰めて格納し直すことにより、搭載し直したアプリケーションの次に搭載したアプリケーションを搭載し直して、STEP6に戻る。
4.RAM領域のスワップ処理
上述のように、ネイティブ型ICカードでは、アプリケーション開発者へ渡すアプリケーション側で自由に使用できるRAM領域は固定かつ同一アドレスとし、アプリケーションで利用するRAM領域も実コード作成時に決定されるため、複数のアプリケーションを、チャネルの切り替えにより、それぞれのチャネルで同時に動作させる場合、複数のアプリケーションの間で、プリケーション側で自由に使用できるRAM領域の重複が起きないようにする対策が必要になる。
このような対策として、本実施形態では、ICカードOSは、カードのCPUに、あるチャネルにて、あるアプリケーションの実行を一旦停止して、他のチャネルにて、他のアプリケーションを実行する場合、あるアプリケーションを実行するのに必要な情報(主に、セキュリティステータスの情報、発生させた乱数、セッションキー情報など)を、RAMのアプリケーション側で自由に利用可能な領域から、RAMのアプリケーション側で自由に利用可能な領域とは別の領域に移動させ、他のアプリケーションを実行するのに必要な情報(主に、セキュリティステータスの情報、発生させた乱数、セッションキー情報など)を、RAMのアプリケーション側で自由に利用可能な領域とは別の領域から、RAMのアプリケーション側で自由に利用可能な領域に移動させるスワップ処理を行わせる。
以下のSTEP1〜5に、ICカードOSによってカードのCPUが行うRAM領域のスワップ処理の流れの例を説明する。
STEP1;
図8に示すように、チャネル0にて、RAMのアプリケーション側で自由に利用可能な領域に、アプリケーションAを実行するのに必要な情報を保持して、アプリケーションAを実行する。
STEP2;
チャネル0にてアプリケーションAの実行を一旦停止して、チャネル1にてアプリケーションBを実行する場合、アプリケーションBへ制御が移る直前に、図9に示すように、RAMのアプリケーション側で自由に利用可能な領域から、RAMのアプリケーション側で自由に利用可能な領域とは別の領域に、アプリケーションAを実行するのに必要な情報を移動させて、RAMのアプリケーション側で自由に利用可能な領域を初期化する。
STEP3;
図10に示すように、チャネル1にて、RAMのアプリケーション側で自由に利用可能な領域に、アプリケーションBを実行するのに必要な情報を保持して、アプリケーションBを実行する。
STEP4;
チャネル1にてアプリケーションBの実行を一旦停止して、チャネル0にて一旦停止していたアプリケーションAを、停止した箇所から再び実行する場合、アプリケーションAへ制御が移る直前に、図11に示すように、RAMのアプリケーション側で自由に利用可能な領域に保持しているアプリケーションBを実行するのに必要な情報と、RAMのアプリケーション側で自由に利用可能な領域とは別な領域に保持しているアプリケーションAを実行するのに必要な情報とを、スワップ(交換)させて、アプリケーションBの実行を一旦停止させる。
STEP5;
チャネル0にて、RAMのアプリケーション側で自由に利用可能な領域に、アプリケーションAを実行するのに必要な情報を保持して、一旦停止していたアプリケーションAを停止した箇所から再び実行する。

Claims (9)

  1. 搭載するアプリケーションの実行コードと、その差分リストファイルとを受信する手段と、
    追加アプリケーション領域の開始アドレスが、デフォルト開始アドレスと同じ場合、受信した実行コードを、追加アプリケーション領域に、その開始アドレスから格納するとともに、受信した差分リストファイルを、受信した実行コードと関係付けて、データ領域に格納することにより、アプリケーションを搭載する手段と、
    追加アプリケーション領域の開始アドレスが、デフォルト開始アドレスと異なる場合、受信した差分リストファイルに基づいて、受信した実行コードを変更して、追加アプリケーション領域に、その開始アドレスから格納するとともに、受信した差分リストファイルを、変更した実行コードと関係付けて、データ領域に格納することにより、アプリケーションを搭載する手段とを備えることを特徴とするネイティブ型ICカード。
  2. 削除又は搭載し直したアプリケーションの次に搭載したアプリケーションの実行コードを追加アプリケーション領域から削除すると同時に、この実行コードに関係付けられている差分リストファイルに基づいて、この実行コードを変更したものを追加アプリケーション領域に移動先アドレスから格納するとともに、この差分リストファイルを、データ領域で、削除又は搭載し直したアプリケーションの差分リストファイルの分だけ詰めて格納し直すことにより、削除又は搭載し直したアプリケーションの次に搭載したアプリケーションを搭載し直す手段を備えることを特徴とする請求項1記載のネイティブ型ICカード。
  3. あるアプリケーションを実行するのに必要な情報を、RAMのアプリケーション側で自由に利用可能な領域から、RAMのアプリケーション側で自由に利用可能な領域とは別の領域に移動させ、他のアプリケーションを実行するのに必要な情報を、RAMのアプリケーション側で自由に利用可能な領域とは別の領域から、RAMのアプリケーション側で自由に利用可能な領域に移動させることにより、あるチャネルにて、あるアプリケーションの実行を一旦停止して、他のチャネルにて、他のアプリケーションを実行する手段を備えることを特徴とする請求項1又は2記載のネイティブ型ICカード。
  4. 搭載するアプリケーションの実行コードと、その差分リストファイルとを受信する工程と、
    追加アプリケーション領域の開始アドレスが、デフォルト開始アドレスと同じ場合、受信した実行コードを、追加アプリケーション領域に、その開始アドレスから格納するとともに、受信した差分リストファイルを、受信した実行コードと関係付けて、データ領域に格納することにより、アプリケーションを搭載する工程と、
    追加アプリケーション領域の開始アドレスが、デフォルト開始アドレスと異なる場合、受信した差分リストファイルに基づいて、受信した実行コードを変更して、追加アプリケーション領域に、その開始アドレスから格納するとともに、受信した差分リストファイルを、変更した実行コードと関係付けて、データ領域に格納することにより、アプリケーションを搭載する工程とをネイティブ型ICカードに実行させることを特徴とするICカードOS。
  5. 削除又は搭載し直したアプリケーションの次に搭載したアプリケーションの実行コードを追加アプリケーション領域から削除すると同時に、この実行コードに関係付けられている差分リストファイルに基づいて、この実行コードを変更したものを追加アプリケーション領域に移動先アドレスから格納するとともに、この差分リストファイルを、データ領域で、削除又は搭載し直したアプリケーションの差分リストファイルの分だけ詰めて格納し直すことにより、削除又は搭載し直したアプリケーションの次に搭載したアプリケーションを搭載し直す工程をネイティブ型ICカードに実行させることを特徴とする請求項4記載のICカードOS。
  6. あるアプリケーションを実行するのに必要な情報を、RAMのアプリケーション側で自由に利用可能な領域から、RAMのアプリケーション側で自由に利用可能な領域とは別の領域に移動させ、他のアプリケーションを実行するのに必要な情報を、RAMのアプリケーション側で自由に利用可能な領域とは別の領域から、RAMのアプリケーション側で自由に利用可能な領域に移動させることにより、あるチャネルにて、あるアプリケーションの実行を一旦停止して、他のチャネルにて、他のアプリケーションを実行する工程をネイティブ型ICカードに実行させることを特徴とする請求項4又は5記載のICカードOS。
  7. 搭載するアプリケーションの実行コードと、その差分リストファイルとを受信する工程と、
    追加アプリケーション領域の開始アドレスが、デフォルト開始アドレスと同じ場合、受信した実行コードを、追加アプリケーション領域に、その開始アドレスから格納するとともに、受信した差分リストファイルを、受信した実行コードと関係付けて、データ領域に格納することにより、アプリケーションを搭載する工程と、
    追加アプリケーション領域の開始アドレスが、デフォルト開始アドレスと異なる場合、受信した差分リストファイルに基づいて、受信した実行コードを変更して、追加アプリケーション領域に、その開始アドレスから格納するとともに、受信した差分リストファイルを、変更した実行コードと関係付けて、データ領域に格納することにより、アプリケーションを搭載する工程とをネイティブ型ICカードが実行することを特徴とする方法。
  8. 削除又は搭載し直したアプリケーションの次に搭載したアプリケーションの実行コードを追加アプリケーション領域から削除すると同時に、この実行コードに関係付けられている差分リストファイルに基づいて、この実行コードを変更したものを追加アプリケーション領域に移動先アドレスから格納するとともに、この差分リストファイルを、データ領域で、削除又は搭載し直したアプリケーションの差分リストファイルの分だけ詰めて格納し直すことにより、削除又は搭載し直したアプリケーションの次に搭載したアプリケーションを搭載し直す工程をネイティブ型ICカードが実行することを特徴とする請求項7記載の方法。
  9. あるアプリケーションを実行するのに必要な情報を、RAMのアプリケーション側で自由に利用可能な領域から、RAMのアプリケーション側で自由に利用可能な領域とは別の領域に移動させ、他のアプリケーションを実行するのに必要な情報を、RAMのアプリケーション側で自由に利用可能な領域とは別の領域から、RAMのアプリケーション側で自由に利用可能な領域に移動させることにより、あるチャネルにて、あるアプリケーションの実行を一旦停止して、他のチャネルにて、他のアプリケーションを実行する工程をネイティブ型ICカードが実行することを特徴とする請求項7又は8記載の方法。
JP2009280200A 2009-12-10 2009-12-10 ネイティブ型icカード、icカードos、及び方法 Expired - Fee Related JP5402595B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009280200A JP5402595B2 (ja) 2009-12-10 2009-12-10 ネイティブ型icカード、icカードos、及び方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009280200A JP5402595B2 (ja) 2009-12-10 2009-12-10 ネイティブ型icカード、icカードos、及び方法

Publications (2)

Publication Number Publication Date
JP2011123639A JP2011123639A (ja) 2011-06-23
JP5402595B2 true JP5402595B2 (ja) 2014-01-29

Family

ID=44287479

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009280200A Expired - Fee Related JP5402595B2 (ja) 2009-12-10 2009-12-10 ネイティブ型icカード、icカードos、及び方法

Country Status (1)

Country Link
JP (1) JP5402595B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5795921B2 (ja) * 2011-09-21 2015-10-14 株式会社東芝 Icカード、携帯可能電子装置、icカードの制御方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02214994A (ja) * 1989-02-15 1990-08-27 Hitachi Maxell Ltd Icカード
JPH103385A (ja) * 1996-06-18 1998-01-06 Dainippon Printing Co Ltd Icカード及びアプリケーション・プログラム導入方法
JP2003331239A (ja) * 2002-05-15 2003-11-21 Dainippon Printing Co Ltd メモリ再配置機能を有するicカード
JP2006172271A (ja) * 2004-12-17 2006-06-29 Dainippon Printing Co Ltd マルチアプリケーションicカード及びicカード用プログラム
JP2007141257A (ja) * 2007-01-09 2007-06-07 Sharp Corp Icカードおよびリーダ・ライタ

Also Published As

Publication number Publication date
JP2011123639A (ja) 2011-06-23

Similar Documents

Publication Publication Date Title
KR101963912B1 (ko) 라이브러리 운영체제들과의 애플리케이션 호환성을 가능하게 하는 기법
CN101763279B (zh) 一种BootLoader架构设计方法
CN107506221B (zh) 应用程序升级方法、装置及设备
TWI521428B (zh) 用於可延伸韌體抽取之方法及相關計算平台
CN109614165B (zh) 一种com组件的多版本并行运行方法和装置
CN105138382A (zh) 一种Android系统升级的方法及终端
CN105487885A (zh) 手游热更新方法
CN109857432B (zh) 一种游戏应用的热更新方法和装置
TW201721412A (zh) 選擇及載入韌體卷區之技術
KR100489783B1 (ko) 선택적 애플릿 관리가 가능한 스마트카드 및 그 운용방법
KR102097644B1 (ko) 보안 요소 내의 패키지를 관리하는 방법
JP2006163840A (ja) 情報処理装置及びその方法
JP2022511170A (ja) 動的メモリ保護
US20180364991A1 (en) Method and system for preparing code to be executed by programmable control devices
US10552135B1 (en) Reducing a size of an application package
JP5402595B2 (ja) ネイティブ型icカード、icカードos、及び方法
CN103761118B (zh) 一种智能卡及智能卡内部署应用的方法
JP4931711B2 (ja) カーネル更新方法、情報処理装置、プログラムおよび記憶媒体
KR100803290B1 (ko) 무선 센서 네트워크 환경에서 프로그램을 변경하기 위한확장 가능한 가상 머신 및 이를 이용한 리프로그래밍 방법
KR100745256B1 (ko) 임베디드 시스템에서의 코드 오버레이 방법
JP2006338311A (ja) 複数のアプリケーションを搭載したデバイスを処理するコンピュータシステム、デバイスおよびコンピュータプログラム
JP6099106B2 (ja) 少なくとも一つのデータキャリアを提供するための方法、コンピュータシステム、および、メモリデバイス
RU2521265C2 (ru) Система и способ автоматической обработки системных ошибок программного обеспечения
JP6295914B2 (ja) プログラマブルコントローラシステム、その支援装置、プログラマブルコントローラ
US20220108003A1 (en) Apparatus and method for kernel runtime randomization

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121120

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130619

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130625

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130725

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131001

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131014

LAPS Cancellation because of no payment of annual fees