説明

ICカード

【課題】端末の要求に応じて実行されている一連の処理が途中で中断された場合であっても、適切に処理を再開可能なICカードを提供する。
【解決手段】ICカードは、電力を受信する電力受信手段と、端末と通信を行う通信手段と、所定の処理を実行するためのプログラムを記憶するプログラム記憶領域を有する第1の記憶手段と、前記記憶されたプログラムを用いて演算処理を行う処理手段と、前記演算処理が行われる際に用いられるワーク領域を有し、電力を受信できない場合であっても記憶内容を保持する不揮発モードと電力を受信できない場合に記憶内容を消去する揮発モードとを切り換えることが可能な第2の記憶手段とを備える。そして、端末から送信されたコマンドデータに含まれる設定情報に基づいて前記第2の記憶手段を前記不揮発モードあるいは前記揮発モードに設定するように制御する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、端末との通信を行うICカードに関する。
【背景技術】
【0002】
ICカードは一般に電池などの電源を持たず、ICカードを搭載した端末から電源を供給された上で、端末から受信したコマンドを順次処理していく。そのため、端末からの電源供給が切断された場合には、処理が中止されてしまう。このような場合に、途中まで処理を行っていたにもかかわらず、ICカードの揮発メモリの内容が初期状態に戻ってしまい、端末は中止した処理を最初からやり直さなければならないとすると、処理に余分な時間を要することになる。
【0003】
特許文献1には、ICカードの実行状態の保存機能と、実行状態の復帰機能をもたせ、ICカードの処理の中断と処理の途中からの再開を可能とするCPU付きICカードが開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平8−50641号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ICカードは、端末からのコマンドを受けることで演算を開始し、内部での演算処理を経てレスポンスを送出する。ここで、その一連の過程の最中に電源が遮断され、処理が中止する場合を考える。この場合、端末はコマンドを送出したにもかかわらずICカードからレスポンスを受信できないことを検出できるが、(1)ICカードがコマンドを正しく受け取る前に電源が遮断、(2)ICカードがコマンドを受信し演算処理中に電源が遮断、(3)ICカードが演算処理を完了しレスポンスを送出したが端末が正しく受信する前に電源が遮断、のいずれの原因によりレスポンスを受信できないのかを判断することができない。このため、電源遮断時の状態をICカード内に保存している場合であっても、端末とICカードの間で同期をとって処理を再開できないという問題が発生する可能性がある。
【0006】
本発明は、端末の要求に応じてで実行されている一連の処理が途中で中断された場合であっても、適切に処理を再開可能なICカードを提供することを目的とする。
【課題を解決するための手段】
【0007】
ICカードは、電力を受信する電力受信手段と、端末と通信を行う通信手段と、所定の処理を実行するためのプログラムを記憶するプログラム記憶領域を有する第1の記憶手段と、前記記憶されたプログラムを用いて演算処理を行う処理手段と、前記演算処理が行われる際に用いられるワーク領域を有し、電力を受信できない場合であっても記憶内容を保持する不揮発モードと電力を受信できない場合に記憶内容を消去する揮発モードとを切り換えることが可能な第2の記憶手段とを備える。そして、端末から送信されたコマンドデータに含まれる設定情報に基づいて前記第2の記憶手段を前記不揮発モードあるいは前記揮発モードに設定するように制御する。
【発明の効果】
【0008】
本発明によれば、端末の要求に応じて実行されている一連の処理が途中で中断された場合であっても、適切に処理を再開可能なICカードを提供することができる。
【図面の簡単な説明】
【0009】
【図1】ICカードの構成例を示す図である。
【図2】ICカードにおける処理フロー例を示す図である。
【発明を実施するための形態】
【0010】
図1は、ICカードの構成例を示す図である。ICカード1は、演算処理部10と、通信部11と、記憶部12と、電力受信部13とを有しており、これらが通信用バスなどで相互に接続されている。端末2はICカード1と通信を行う装置であり、たとえば接触ICカード用リーダライタ端末、非接触ICカード用リーダライタ端末、携帯電話などである。端末2はコマンドデータをICカード1に送信し、ICカード1はレスポンスを端末2に送信する。
【0011】
演算処理部10は、ICカード1全体の制御を司る。演算処理部10としては、例えばマイクロプロセッサを用いる。
【0012】
通信部11は、ICカード1が端末2と通信を行うためのものであり、例えば接触ICカード用の通信規格であるISO/IEC7816に則った通信や、あるいは非接触ICカード用の通信規格であるISO14443に則った通信を行うモジュールなどが用いられる。通信部11は、例えば端末2からの処理開始要求や処理結果を示すレスポンスの送信要求などの要求を通知するコマンドデータを受信する。
【0013】
記憶部12はICカード1が処理を行うために必要なデータを格納するための不揮発メモリであり、半導体メモリ等から構成される。記憶部12は不揮発領域120と、揮発性設定可能領域130を有する。なお、不揮発領域120と揮発性設定可能領域130は物理的に個別の構成になっていてもよいし、ソフトウェアやレジスタの設定などで論理的に区別されていてもよい。
【0014】
不揮発領域120はICカード1への電源供給が停止した場合においても記憶内容を保持する領域である。揮発性設定可能領域130は、不揮発メモリとして動作させるか、あるいは、揮発メモリとして動作させるか、を選択することが可能な領域である。本例では、揮発性設定可能領域130が揮発メモリとして動作する場合を揮発モードと称し、不揮発メモリとして動作する場合を不揮発モードと称する。なお、揮発性設定可能領域130の切り替えは、ハードウェア制御により行ってもよいし、ソフトウェア制御により行っても良い。
【0015】
不揮発領域120は、実行プログラム格納領域121と不揮発データ格納領域122と揮発性設定情報格納領域123を有する。実行プログラム格納領域121は、例えば決済処理プログラムなど、演算処理部10により実行されるプログラムが格納される。不揮発データ格納領域122は、電源供給が停止した場合でも保持することが必要なデータを記憶する領域である。揮発性設定情報格納領域123には、揮発性設定可能領域130が揮発モードであるか、不揮発モードであるかを示す情報である揮発性設定情報が格納される。
【0016】
揮発性設定可能領域130は、ワーク領域131と、コマンドデータ格納領域132と、レスポンスデータ格納領域133が格納される。ワーク領域131は、演算処理部10の演算処理に必要な一時領域やICカード1の制御に必要なプログラムカウンタなどのレジスタ等を記憶する。
【0017】
端末2から送信されるコマンドデータには、演算処理部10での演算処理の実行を求めるプログラムを示すプログラム識別情報や、1つのプログラムを複数の範囲に分けて実行する場合に分割された範囲それぞれを示すシーケンス識別情報など、ICカード1での実行が求められる処理内容を示す識別情報が含まれる。コマンドデータ格納領域132は、この識別情報を格納する領域である。なお、これに限定するものではなく、コマンドデータ格納領域132に、識別情報の他にコマンドデータの一部または全部を記憶するようにしても良い。
【0018】
レスポンスデータ格納領域133は、ICカード1が送信しようとするレスポンスデータを格納する領域である。なお、レスポンスデータは、送出後もレスポンスデータ格納領域133に保持される。一方、ワーク領域131に記憶されたデータは、レスポンスデータ格納領域133にレスポンスデータが格納された後に消去されてもよい。
【0019】
電力受信部13は、端末2から電力を受け取り、ICカード1全体に電力を供給する。電力受信部13は、図示していないが、例えば電源供給用の接触端子や無線電力を受信するアンテナを備える。なお、電力受信部13はその構成の一部または全部を通信部11と共有していてもよい。また、データ通信を行う端末2以外の装置から電力を受けるようにして良いし、ICカード1の内部の電池から電源供給されるものであってもよい。
【0020】
図2は、ICカード1における処理フロー例を示す図である。
【0021】
ICカード1が、端末2に挿入あるいは端末2が発する電磁界に入るなどにより、電力受信部13を介してICカード1に電源が供給されると(S1000)、演算処理部10は揮発性設定情報格納領域123に記憶された揮発性設定情報を読み出し(S1001)、揮発性設定可能領域130が揮発モードであるか不揮発モードであるかを判定する(S1002)。
【0022】
揮発性設定可能領域130が不揮発モードである場合(S1002 NO)、ワーク領域131にデータが保持されているかどうか、あるいはデータが保持されていない終了状態であるかを判定する(S1003)。あるいはこの判定はプログラムカウンタの読み出しによって行われても良い。ワーク領域131が終了状態ではない場合(S1003 NO)、演算処理部10は、演算処理の途中で電源供給が停止したと判定し、ワーク領域131に保持されているデータを用いて演算処理を実行してレスポンスデータを生成し(S1004)、生成したレスポンスデータをレスポンスデータ格納領域133に格納する(S1005)。
【0023】
演算処理部10は、レスポンスデータの格納後(S1005)、あるいは揮発モードであると判定された場合(S1002 YES)やワーク領域131が終了状態であると判定された場合(S1003 YES)、端末2からのコマンドデータの受信を待つ待機状態になるように制御する(S1006)。
【0024】
このように、電源供給がされた際に揮発性設定可能領域130のモードやワーク領域131の状態を検出することにより、前回、電源供給が停止された際に、データ処理が途中で停止してしまった場合でも、端末2からの指示なしに処理を再開することができる。なお、ICカード1が販売後に初めて電源が供給された場合には、S1001〜S1005を省略するようにしても良い。
【0025】
また、本例によれば、電源が供給された際に、端末2からのコマンドデータの受信に関わらず、演算途中の処理を再開するため、端末2からレスポンス送信要求を含むコマンドデータを受信した場合に、早急に対応するレスポンスデータを送信することができる。但し、この処理手順に限定するものではなく、コマンドデータを受信した後に、S1001〜S1005の処理を実行するようにしても良い。
【0026】
通信部11により端末2から送信されたコマンドデータを受信すると(S1006 YES)、コマンドデータに揮発性設定可能領域130を揮発モードにするか不揮発モードにするかを指定する揮発性選択フラグが含まれるか否かを判定する(S1007)。この揮発性選択フラグは、端末2において、ICカード1での実行を求める処理内容あるいはプログラムが選択された場合に、端末2のユーザ指示に応じて、あるいは選択された処理等に応じて自動的に、処理開始を求めるコマンドデータに含められる。一方、端末2は、レスポンス送信を要求するコマンドを送信する場合には、揮発性選択フラグを含めないように制御する。従って、ICカード2において、揮発性選択フラグの有無により、新たな処理の開始を要求されているのか、既に実行を求められた処理に対するレスポンス送信を求められているのかを判別することができる。
【0027】
コマンドデータに揮発性選択フラグが含まれている場合(S1007 YES)、揮発性設定情報格納領域123に記憶された揮発性設定情報を更新する(S1008)。なお、揮発性選択フラグで示されているモードが揮発性設定情報格納領域123に格納されている揮発性設定情報で示されるモードと一致するか否かの照合を行い、一致している場合は更新を省略するようにしてもよい。
【0028】
更新された揮発性設定情報に基づいて、揮発性設定可能領域130を揮発モードあるいは不揮発モードに設定する(S1009)。なお、例えば不揮発モードに設定する場合、揮発性設定可能領域130の一部または全部を所定の初期状態に書き換えることが望ましい。また、揮発性設定領域130の内容がICカード1の内部で暗号化されているとき、S1009のタイミングで内部暗号鍵の設定を更新し、揮発性設定領域130の内容を再暗号化してもよい。
【0029】
S1006において受信したコマンドデータに含まれる識別情報をコマンドデータ格納領域132に保存する(S1010)。なお、この際、識別情報に限らずコマンドデータ全体を格納するようにしても良いし、格納するデータの一部または全部を暗号化したり、ハッシュ値などのデータとともに保存するようにしてもよい。
【0030】
演算処理部10は、識別情報に基づき、ワーク領域131を用いて演算処理を行って、レスポンスデータを生成する(S1011)。例えば、識別情報に対応するプログラムを実行プログラム格納領域121から読み出し、演算処理部10において実行する。
【0031】
生成したレスポンスデータをレスポンスデータ格納領域133に保存し(S1012)、通信部11から端末2へレスポンスデータを送信する(S1013)。レスポンスデータを送信後、S1006に移行し、新たなコマンドデータの受信を待つ待機状態になる。
【0032】
ここで、S1009において揮発性設定可能領域130を不揮発モードに設定した場合、S1010〜S10の間に、ICカード1への電源供給が遮断された場合であっても、揮発性設定可能領域130に記憶されたデータはそのまま保持され、電源供給が再開された場合に、前述のS1001〜S1005の処理により、再度始めからプログラムの実行を行うことなく、電源遮断までの演算処理により得られたデータを用いて処理を行うことができる。
【0033】
また、本例によれば、端末はレスポンス送信を求める要求を含めたコマンドデータを送信することにより、ICカードから対応するレスポンスデータを受信することができるため、端末側でレスポンスを受信できない場合のICカード側の状況を把握する必要がない。仮に端末側でICカード側の状況を把握しようとする場合、コマンドデータを送信してからレスポンスデータを受信するまでの間に、例えば演算開始や演算終了、レスポンスデータ格納などのICカード1の状況を示すデータをICカード1から複数回送信しなければならず、また端末1においてそれらの情報を保持し、状況に応じたコマンドデータを送信しなければならないため、ICカード1および端末2双方の処理が煩雑化する可能性があある。
【0034】
一方、S1009において揮発性設定可能領域130を揮発モードに設定した場合、電源供給が遮断された場合、コマンドデータ格納領域132やレスポンスデータ格納領域133に記憶されたデータは保持されないため、S1010とS1012の両方または一方を省略して実行するようにしても良い。
【0035】
S1007においてコマンドデータにフラグが含まれていないと判定した場合は、演算処理部10は、コマンドデータ格納領域132に記憶されている識別情報を読み出し、S1006において受信したコマンドデータに含まれる識別情報が一致するかどうかを照合する(S1014)。識別情報が一致した場合(S1015 YES)、S1013に移行し、レスポンスデータ格納領域133に格納されたレスポンスデータを読み出して送信する。一方、コマンドデータ格納領域132に受信した識別情報とは別の識別情報が記憶されている場合や、コマンドデータ格納領域132に識別情報が記憶されていない場合、演算処理部10は、S1010に移行し、新たに演算処理を行う。
【0036】
電源供給が停止されるまで、演算処理部10は図2に示す処理を繰り返すように制御する。
【0037】
以上説明したように、本例によれば、端末の要求に応じてICカードで実行されている一連の処理の途中で電源が遮断された場合であっても、電源の再供給時に、適切に処理を再開することができる。
【符号の説明】
【0038】
1…ICカード、2…端末、10…演算処理部、11…通信部、12…記憶部、13…電力受信部、120…不揮発領域、121…実行プログラム格納領域、122…不揮発データ格納領域、123…揮発性設定情報領域、130…揮発性設定可能領域、131…ワーク領域、132…コマンドデータ格納領域、133…レスポンスデータ格納領域

【特許請求の範囲】
【請求項1】
電力を受信する電力受信手段と、
端末と通信を行う通信手段と、
所定の処理を実行するためのプログラムを記憶するプログラム記憶領域を有する第1の記憶手段と、
前記プログラム記憶手段に記憶されたプログラムを用いて演算処理を行う処理手段と、
前記処理手段により演算処理が行われる際に用いられるワーク領域を有し、前記電力受信手段により電力を受信できない場合であっても記憶内容を保持する不揮発モードと前記電力受信手段により電力を受信できない場合に記憶内容を消去する揮発モードとを切り換えることが可能な第2の記憶手段と、
を備え、
前記端末から送信されたコマンドデータに含まれる設定情報に基づいて前記第2の記憶手段を前記不揮発モードあるいは前記揮発モードに設定するように制御することを特徴とするICカード。
【請求項2】
前記コマンドデータに含まれる前記演算処理手段での実行が求められる処理内容を示す識別情報を前記第2の記憶手段に記憶し、
前記処理手段は、前記識別情報に対応するプログラムを前記プログラム記憶領域から読み出し、前記プログラムを用いて演算処理を開始することを特徴とする請求項1に記載のICカード。
【請求項3】
前記コマンドデータを受信した後に前記電力受信手段による電力供給が停止し、その後に前記電力受信手段による電力供給が再開したとき、前記第2の記憶手段が前記不揮発モードに設定され、かつ、前記ワーク領域にデータが記憶されている場合、前記処理手段は、前記ワーク領域に記憶されたデータを用いて演算処理を行い、前記端末へ送信するレスポンスデータを生成し、生成したレスポンスデータを前記第2の記憶手段に記憶し、
前記通信手段により新たにコマンドデータを受信し、新たに受信したコマンドデータに含まれる識別情報と、前記第2の記憶手段に記憶された識別情報が対応する場合に、前記第2の記憶手段に記憶したレスポンスデータを前記通信手段により送信するように制御することを特徴とする請求項2に記載のICカード。
【請求項4】
前記新たに受信したコマンドデータには前記設定情報が含まれていないことを特徴とする請求項3に記載のICカード。
【請求項5】
前記コマンドデータを受信した後に前記電力受信手段による電力供給が停止し、その後に前記電力受信手段による電力供給が再開したとき、前記第2の記憶手段が前記不揮発モードに設定され、かつ、前記ワーク領域にデータが記憶されている場合、前記処理手段は、前記ワーク領域に記憶されたデータを用いて演算処理を行い、前記端末へ送信するレスポンスデータを生成し、生成したレスポンスデータを前記第2の記憶手段に記憶し、
前記通信手段により新たにコマンドデータを受信し、新たに受信したコマンドデータに前記設定情報が含まれている場合、前記処理手段は、前記新たに受信したコマンドデータに含まれる識別情報に対応するプログラムを用いて演算処理を行い、前記端末へ送信するレスポンスデータを新たに生成し、前記新たに生成されたレスポンスデータを前記通信手段により送信することを特徴とする請求項2に記載のICカード。

【図1】
image rotate

【図2】
image rotate


【公開番号】特開2012−22356(P2012−22356A)
【公開日】平成24年2月2日(2012.2.2)
【国際特許分類】
【出願番号】特願2010−157421(P2010−157421)
【出願日】平成22年7月12日(2010.7.12)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】