明 細 書
半導体メモリカード 技術分野
[0001] 本発明は、プログラムを実行可能な機能を有する半導体メモリカードに関する。
背景技術
[0002] 近年、クレジットカードをはじめ多くの磁気カードが半導体メモリカードへ転換されて きている。その理由として、半導体メモリカードは、磁気カードに比べて記憶容量が大 きいことはもとより、格納される個人情報等の情報漏えいを防ぐセキュリティ機能が強 化されて!/、ることが挙げられる。上記格納データの保護機能を持った半導体メモリ力 ードの代表として ICカードがある。
[0003] ICカードには、 ICカードとデータのやり取りを行なうリーダライタとの通信形態により 接触型と非接触型とがある。非接触型 ICカードとは、リーダライタが発信する弱い電 波を利用してデータを送受信する ICカードのことである。以下、単に「ICカード」という 場合、非接触型 ICカードのことを指すものとする。
[0004] 図 1は、一般的な ICカードのハードウェア構成の一例を示す図である。図 1に示す I Cカードは、プログラムを格納する ROM201、プログラム実行の際に用いられる一時 的なデータや外部力 書き込まれるデータを格納する不揮発性メモリである Ferroel ectric Random Access Memory (FeRAM) 202、外部との通信インターフエ一 ス(I/F)であるアンテナ 203、および、 ROM201に記憶されたプログラムに従って 各種コマンド処理等の制御処理を行なう CPU200を備えている。
[0005] また、 CPU200は、算術的な処理を行なう回路である Arithmetic and Logic
Unit (ALU) 204と、演算値や実行状態を保持する記憶素子であるレジスタ 205とを 有している。
[0006] ところで、この ICカードは、従来、一枚の ICカードに対し、電子マネー等の単純な 単一のサービスの処理のみが要求されていた。しかし、近年の生体認証等による高 度な認証技術の導入により、より複雑な処理を実行することが要求されている。複雑 な処理を実行する場合、単純な処理を実行する場合と比べ、リーダライタとの通信を
継続する時間がより必要となる。
[0007] また、複数のサービスの処理が求められるため、近年の ICカードでは、複数のサー ビスのそれぞれに対応する、複数のアプリケーションプログラム(以下、単に「プロダラ ム」ともいう。)が実行可能となっている。 ICカードは、サービスを提供するホストコンビ ユータであるサーバに接続されたリーダライタと通信を行なうことで、そのサーバが提 供するサービスを利用することができる。
[0008] ここで、非接触型 ICカードの特性として、リーダライタから発信される電波により電圧 が供給されているため、 ICカードをリーダライタ力も離すと、電圧の供給が遮断され、 処理がリセットされることとなる。
[0009] そのため、電圧の供給が不安定な環境にお!、て、処理を継続する方法として、レジ スタ、 RAMを全て不揮発性メモリ FeRAMで構成し、電圧の再供給後に、処理を再 開する方法がある。
発明の開示
発明が解決しょうとする課題
[0010] しかしながら、レジスタや RAM、特にレジスタのように、アクセス頻度の高い箇所に 不揮発性メモリ FeRAMを用いることは、 FeRAMの特性上、商品寿命が極端に短く なるため商品化は現実的ではな 、。
[0011] また、 ICカードは、上述のように、複数のサービスそれぞれに応じた処理を実行す ることが可能であり、電圧の供給の中断前と再開後で、 ICカードが処理すべき内容が 異なる場合がある。そのため、レジスタである FeRAMに保持されていた演算値等を そのまま用いて処理を再開することができな 、場合がある。
[0012] 本発明は、上記課題を解決するものであり、電圧の供給が中断することにより、処理 の実行が中断される場合であっても、電圧の供給後に中断された処理を継続して実 行することができる半導体メモリカードを提供することを目的とする。
課題を解決するための手段
[0013] 上記従来の課題を解決するために本発明の半導体メモリカードは、プログラムを実 行可能な半導体メモリカードであって、情報を格納する不揮発性メモリと、実行中の プログラムに関する情報を格納するレジスタと、前記半導体メモリカードに対する供給
電圧の変化を検出する検出部と、前記検出部が所定の電圧低下状態を検出した場 合、前記レジスタに格納されている情報であるレジスタ情報と、前記プログラムを特定 するための付加情報とを対応付けて前記不揮発性メモリに退避させる退避部と、前 記検出部が所定の電圧上昇状態を検出した場合、前記不揮発性メモリに格納されて いる前記付加情報が所定の条件を満たすとき、前記レジスタ情報を前記レジスタに 復帰させる復帰部とを備える。
[0014] また、本発明の半導体メモリカードは、更に、他の機器と通信する通信部を備え、前 記復帰部は、前記検出部が所定の電圧上昇状態を検出した場合、前記付加情報が 、前記通信部と前記他の機器との通信により得られた情報を含むとき、前記レジスタ 情報を前記レジスタに復帰させるとしてもよ 、。
[0015] また、本発明の半導体メモリカードは、更に、前記通信部と前記他の機器との通信 における通信種別を示す情報を取得する通信種別取得部を備え、前記復帰部は、 前記検出部が所定の電圧上昇状態を検出した場合、前記付加情報が、前記通信種 別取得部により取得された前記通信種別を示す情報を含むとき、前記レジスタ情報 を前記レジスタに復帰させるとしてもよ 、。
[0016] また、本発明の半導体メモリカードにおいて、前記不揮発性メモリは、互いに異なる 複数のレジスタ情報を格納し、前記復帰部は、前記検出部が所定の電圧上昇状態 を検出した場合、前記通信種別取得部により取得された前記通信種別を示す情報を 含む付加情報に対応付けられたレジスタ情報を、前記不揮発性メモリの中から選択 して読み出し、前記レジスタに復帰させるとしてもよい。
[0017] また、本発明の半導体メモリカードにおいて、前記退避部は、前記レジスタ情報を 前記不揮発性メモリに退避させる際に、更に、前記プログラムが利用する暗号の強度 を示す暗号情報を前記レジスタ情報と対応付けて前記不揮発性メモリに退避させ、 前記半導体メモリカードは、更に、他の機器と通信する通信部と、前記復帰部が前記 レジスタ情報を前記レジスタに復帰させる前に、前記暗号情報に示される暗号の強 度が所定の強度以上であるか否かを判断する復帰判断部と、前記復帰判断部が、 前記暗号情報に示される暗号の強度が所定の強度以上であると判断した場合、前 記他の機器の認証を行なう認証部とを備え、前記復帰部は、前記検出部が所定の電
圧上昇状態を検出した場合、前記不揮発性メモリに格納されて ヽる前記付加情報が 所定の条件を満たし、かつ、前記認証部による前記他の機器の認証が成功したとき 、前記レジスタ情報を前記レジスタに復帰させるとしてもよ 、。
[0018] また、本発明の半導体メモリカードにおいて、前記不揮発性メモリは破壊読出し領 域を有し、前記半導体メモリカードは、更に、前記退避部が前記レジスタ情報を前記 レジスタに退避させる前に、実行中のプログラムが利用する暗号の強度が所定の強 度以上であるか否かを判断する退避判断部を備え、前記退避部は、前記検出部が 所定の電圧低下状態を検出した場合、前記退避判断部により前記暗号の強度が所 定の強度以上であると判断されたとき、前記レジスタ情報と前記付加情報とを対応付 けて前記不揮発性メモリの前記破壊読出し領域に退避させるとしてもよい。
[0019] また、本発明の半導体メモリカードにおいて、前記不揮発性メモリは、 Ferroelectri c Random Access Memory (FeRAM)であるとしてもよい。
[0020] また、本発明のプログラム実行方法は、プログラムを実行可能な半導体メモリカード にお 、て前記プログラムを断続的に実行するためのプログラム実行方法であって、前 記半導体メモリカードは、情報を格納する不揮発性メモリと、実行中のプログラムに関 する情報を格納するレジスタとを有し、前記プログラム実行方法は、前記半導体メモリ カードに対する供給電圧の変化を検出する検出ステップと、前記検出ステップにお いて、所定の電圧低下状態が検出された場合、前記レジスタに格納されている情報 であるレジスタ情報と、前記プログラムを特定するための付加情報とを対応付けて前 記不揮発性メモリに退避させる退避ステップと、前記検出ステップにおいて、所定の 電圧上昇状態が検出された場合、前記不揮発性メモリに格納されて!ヽる前記付加情 報が所定の条件を満たすとき、前記レジスタ情報を前記レジスタに復帰させる復帰ス テツプとを含む。
[0021] また、本発明の実行プログラムは、アプリケーションプログラムを実行可能な半導体 メモリカードにおいて前記アプリケーションプログラムを断続的に実行するための実行 プログラムであって、前記半導体メモリカードは、情報を格納する不揮発性メモリと、 実行中のアプリケーションプログラムに関する情報を格納するレジスタとを有し、前記 実行プログラムは、前記半導体メモリカードに対する供給電圧の変化を検出する検
出ステップと、前記検出ステップにおいて、所定の電圧低下状態が検出された場合、 前記レジスタに格納されて 、る情報であるレジスタ情報と、前記アプリケーションプロ グラムを特定するための付加情報とを対応付けて前記不揮発性メモリに退避させる 退避ステップと、前記検出ステップにおいて、所定の電圧上昇状態が検出された場 合、前記不揮発性メモリに格納されて 、る前記付加情報が所定の条件を満たすとき 、前記レジスタ情報を前記レジスタに復帰させる復帰ステップと含む。
[0022] また、本発明の記録媒体は、アプリケーションプログラムを実行可能な半導体メモリ カードにおいて前記アプリケーションプログラムを断続的に実行するための実行プロ グラムが格納された、コンピュータが読み取り可能な記録媒体であって、前記半導体 メモリカードは、情報を格納する不揮発性メモリと、実行中のアプリケーションプロダラ ムに関する情報を格納するレジスタとを有し、前記記録媒体は、前記半導体メモリ力 ードに対する供給電圧の変化を検出する検出ステップと、前記検出ステップにおい て、所定の電圧低下状態が検出された場合、前記レジスタに格納されている情報で あるレジスタ情報と、前記アプリケーションプログラムを特定するための付加情報とを 対応付けて前記不揮発性メモリに退避させる退避ステップと、前記検出ステップにお いて、所定の電圧上昇状態が検出された場合、前記不揮発性メモリに格納されてい る前記付加情報が所定の条件を満たすとき、前記レジスタ情報を前記レジスタに復 帰させる復帰ステップとをコンピュータに実行させるための実行プログラムが格納され る。
[0023] また、本発明の集積回路は、プログラムを実行可能な半導体メモリカードにおいて プログラムを断続的に実行するための集積回路であって、前記半導体メモリカードは
、情報を格納する不揮発性メモリが設けられており、前記集積回路は、実行中のプロ グラムに関する情報を格納するレジスタと、前記半導体メモリカードに対する供給電 圧の変化を検出する検出部と、前記検出部が所定の電圧低下状態を検出した場合 、前記レジスタに格納されている情報であるレジスタ情報と、前記プログラムを特定す るための付加情報とを対応付けて前記不揮発性メモリに退避させる退避部と、前記 検出部が所定の電圧上昇状態を検出した場合、前記不揮発性メモリに格納されて!、 る前記付加情報が所定の条件を満たすとき、前記レジスタ情報を前記レジスタに復
帰させる復帰部とを備える。
[0024] 更に、本発明は、本発明の半導体メモリカードの特徴的な構成部をステップとする 方法として実現したり、それらのステップを含むプログラムとして実現したり、そのプロ グラムが格納された、 CD— ROM等の記録媒体として実現したり、集積回路として実 現することもできる。プログラムは、通信ネットワーク等の伝送媒体を介して流通させる ことちでさる。
発明の効果
[0025] 本発明は、電圧の供給が中断することにより、処理の実行が中断される場合であつ ても、電圧の供給後に継続して処理を実行することができる半導体メモリカードを提 供することができる。
[0026] 本発明によれば、半導体メモリカードにおいて、電圧の供給が不安定な環境などに おいて、処理の実行中に、その処理の実行に必要な電圧の供給が途絶えた場合、 処理の実行に必要な電圧の供給が再開されると、中断された処理を継続して実行す ることができる。つまり、処理を断続的に実行することができる。
[0027] また、 2つ以上の独立した処理についても、その処理ごとに断続的に実行すること ができる。
[0028] また、断続的な処理の実行におけるセキュリティを向上させることができる。つまり、 秘匿性の高い情報を扱う処理であっても断続的にかつ安全に実行することができる。 図面の簡単な説明
[0029] [図 1]図 1は、一般的な ICカードのハードウェア構成の一例を示す図
[図 2]図 2は、実施の形態 1の ICカードの機能的な構成を示す機能ブロック図
[図 3]図 3は、実施の形態 1の ICカードの使用環境および供給電圧の変化を示す概 要図
[図 4]図 4は、実施の形態 1における退避情報のデータ構成の一例と、 FeRAMのメ モリマップの一例を示す図
[図 5]図 5は、実施の形態 1の ICカードにおけるレジスタ情報の退避手順を示すフロ ーテヤー卜
[図 6]図 6は、実施の形態 1の ICカードにおける処理の再開手順を示すフローチヤ一
[図 7]図 7は、実施の形態 2の ICカードの機能的な構成を示す機能ブロック図
[図 8]図 8は、非接触型 ICカードにおける Transport Typeの種類を示す図
[図 9]図 9は、実施の形態 2の ICカードの使用環境および供給電圧の変化を示す概 要図
[図 10]図 10は、実施の形態 2における退避情報のデータ構成の一例と、 FeRAMの メモリマップの一例を示す図
[図 11]図 11は、実施の形態 2の ICカードにおけるレジスタ情報の退避手順を示すフ 口1 ~~テャ1 ~~卜
[図 12]図 12は、実施の形態 2の ICカードにおいて通信種別を利用してレジスタ情報 を復帰させる際の手順を示すフローチャート
[図 13]図 13は、復帰させるべきレジスタ情報の特定に利用可能な情報の種類を例示 する図
[図 14]図 14は、実施の形態 3の ICカードの機能的な構成を示す機能ブロック図 [図 15]図 15は、暗号に関する 3種類の情報を示す図
[図 16]図 16は、 CA Typeの種類を示す図
[図 17]図 17は、実施の形態 3における退避情報のデータ構成の一例と、 FeRAMの メモリマップの一例を示す図
[図 18]図 18は、実施の形態 3における FeRAMの破壊読出し領域および非破壊読 出し領域のアドレスを示す図
[図 19]図 19は、実施の形態 3の ICカードにおけるレジスタ情報の退避手順を示すフ 口1 ~~テャ1 ~~卜
[図 20]図 20は、実施の形態 4の ICカードの機能的な構成を示す機能ブロック図 [図 21]図 21は、実施の形態 4の ICカードにおいて CA Typeを利用してレジスタ情 報を復帰させる手順を示すフローチャート
[図 22]図 22は、実施の形態 1の ICカードにおける集積回路化の一例を示す図 符号の説明
100 ICカード
202 FeRAM
203 アンテナ
300 電圧検出部
301 IZF部
302 退避部
303 復帰部
304 退避判断部
305 認証部
306 復帰判断部
800 通信種別取得部
発明を実施するための最良の形態
[0031] 以下本発明の実施の形態について、図面を参照しながら説明する。
[0032] (実施の形態 1)
まず、実施の形態 1の ICカードの構成を図 2を用いて説明する。
図 2は、実施の形態 1の ICカード 100の機能的な構成を示す機能ブロック図である 。 ICカード 100は、本発明の半導体メモリカードの一例であり、複数のアプリケーショ ンプログラムを実行可能な非接触型 ICカードである。
[0033] ICカード 100は、図 2に示すように、 FeRAM202と、 IZF部 301と、アンテナ 203と 、電圧検出部 300と、レジスタ 205と、退避部 302と、復帰部 303とを備える。
[0034] なお、 ICカード 100のハードウェア構成は、図 1に示す従来の ICカードと同じである 。また、以下、レジスタ 205に格納されている情報を用いて処理を実行する構成部等 、 ICカード 100が本来有する構成部についての図示および説明は省略し、 ICカード 100の特徴的な構成部についてのみ図示し説明を行なう。
[0035] FeRAM202は、 ICカード 100で実行される処理に用いられるデータ等を記憶する 不揮発性メモリである。アンテナ 203は本発明の半導体メモリカードにおける通信部 の一例であり、外部機器との通信 IZFである。 ICカード 100は、アンテナ 203が電波 を受信することにより外部機器力も電圧の供給を受けることになる。
[0036] 電圧検出部 300は、供給電圧の変化を検出する処理部である。レジスタ 205は、演
算値ゃ実行状態を保持する記憶素子である。退避部 302は、電圧検出部 300が所 定の電圧低下状態を検出した際、レジスタ 205に格納されている実行中のプログラム の演算値や状態についての情報(以下、「レジスタ情報」という。)を FeRAM202に 退避させる処理部である。
[0037] 復帰部 303は、電圧検出部 300が所定の電圧上昇状態を検出した際、 FeRAM2 02に格納されて 、るレジスタ情報がある場合、レジスタ 205にそのレジスタ情報を復 帰させる処理部である。
[0038] IZF部 301は、退避部 302および復帰部 303と FeRAM202との情報のやり取りを 仲介する IZFである。
[0039] 実施の形態 1の ICカード 100は、上記構成により、必要な電圧の供給を受けられず 中断された処理を、電圧供給の再開後に継続して実行することができる。一旦中断さ れた処理を継続して実行する際の ICカード 100の動作を以下に述べる。
[0040] 図 3は、実施の形態 1の ICカード 100の使用環境および供給電圧の変化を示す概 要図である。
[0041] 図 3に示す使用環境は、各種サービスを提供、管理、保有するサーバ 104と、 IC力 ード 100と通信を行なう端末装置であるリーダライタ 101およびリーダライタ 102と、サ ーバ 104とリーダライタ 101およびリーダライタ 102とを相互に接続するネットワーク 1 03とによって構成される。
[0042] また、 ICカード 100がリーダライタ 101と通信可能なエリアをエリア 110とし、リーダラ イタ 102と通信可能なエリアをエリア 112とする。エリア 110およびエリア 112以外の エリアを通信外エリアという。
[0043] サーバ 104は、 ICカード 100にサービスを提供するための少なくとも 1個以上のァ プリケーシヨンプログラムを有し、そのアプリケーションプログラムを実行する機能を有 する。また、リーダライタ 101およびリーダライタ 102を介し、 ICカード 100と通信を行 なうことによりそのサービスを ICカード 100に提供する。
[0044] リーダライタ 101およびリーダライタ 102のそれぞれは、少なくとも、サーバ 104から 送信される情報を ICカード 100へ送信する機能と、 ICカード 100から、サーバ 104に 対するレスポンス、もしくは、要求を受信し、サーバ 104へ送信する機能を有する。
[0045] なお、 ICカード 100を保有するユーザは、図 1の使用環境において等速で移動し ており、エリア 110、通信外エリア、エリア 112の順に通過すると想定する。また、その 移動中に ICカード 100が同一のサービスに対応するための処理をエリア 110とエリア 112とにぉ 、て継続して行なう場合を想定する。
[0046] 上記移動において、 ICカード 100は、通信外エリアに入ると電圧の供給が絶たれ、 レジスタ 205に格納されていた情報は消滅することとなる。そこで、 ICカード 100では 、電圧の供給が完全に絶たれる前に、退避部 302がレジスタ情報を不揮発性メモリ である FeRAM202に退避させる。これにより、処理の中断および再開に備えることが できる。
[0047] 図 4は、実施の形態 1における退避情報のデータ構成の一例と、 FeRAM202のメ モリマップの一例を示す図である。
[0048] 退避情報 400は、退避部 302により FeRAM202に退避される情報であり、図 4に 示すように、フラグ値を示すフラグ情報 410と、レジスタ 205から収集されたデータ群 であるレジスタ情報 420とが対応付けられた情報である。
[0049] フラグ値は、 "退避データ有り"を示す値または"退避データ無じ'を示す値であり、 退避部 302により設定される。レジスタ情報 420が FeRAM202に格納される際は、 " 退避データ有り"を示す "0xA5A5A5A5"が設定される。
[0050] FeRAM202は、図 4に示すように、退避領域 401と、記憶領域 402と、スタック領 域 403とを有する。退避情報 400が格納される退避領域 401は、 FeRAM202のアド レス 0x0000を先頭アドレスとする所定の領域である。
[0051] 図 5は、実施の形態 1の ICカード 100において、電圧検出部 300により所定の電圧 低下状態が検出され、実行中の処理を中断するためにレジスタ情報 420を退避させ る手順を示すフローチャートである。
[0052] 図 5を用いて、実施の形態 1の ICカード 100がレジスタ情報 420を退避させる際の 動作を説明する。
[0053] まず、 ICカード 100がリーダライタ 101と通信可能なエリア 110に存在する場合、 IC カード 100は、リーダライタ 101を介してサーバ 104と通信しサービスの提供を受ける 。 ICカード 100はその通信の開始によりサービスに対応した処理を開始する。
[0054] ICカード 100が処理を完了する前に通信外エリアへ移動すると、 ICカード 100の電 圧検出部 300は、供給電圧が閾値 Vhより低い状態が時間 Atの間継続している状態 を検出する。
[0055] 電圧検出部 300は上記の電圧低下状態を検出すると、退避部 302に電圧低下を 知らせるシグナル (以下、「電圧低下シグナル」という。)を発する(S 10)。
[0056] 電圧低下シグナルの発生により、レジスタ情報 420の退避が開始される。具体的に は、まず、退避部 302がレジスタ 205からレジスタ情報 420を収集する(S 11)。更に、 そのレジスタ情報 420に"退避データ有り"を示すフラグ値を付加する(S12)。
[0057] 退避部 302は、フラグ値が付カ卩されたレジスタ情報 420を、 FeRAM202の退避領 域へ書き込む (S 13)。
[0058] 上記一連の動作により、実行中のプログラムに関するレジスタ情報が不揮発性メモ リである FeRAM202に退避される。これにより、処理の中断に備えることができる。そ の後、電圧供給量の低下によりレジスタ 205に格納されていたレジスタ情報 420が消 失しても、プログラムの実行に必要な電圧が供給された際には、退避されていたレジ スタ情報 420をレジスタ 205に復帰させることで、処理を再開することができる。
[0059] 図 6は、実施の形態 1の ICカード 100において、電圧検出部 300により電圧上昇が 検出され、処理が再開される手順を示すフローチャートである。
[0060] 図 6を用いて、退避されていたレジスタ情報 420がレジスタ 205に復帰される際の I Cカード 100の動作を説明する。
[0061] 図 5に示した一連の動作により、レジスタ情報 420が退避領域 401に書き込まれた 後、 ICカード 100は通信外エリア力もリーダライタ 102と通信可能なエリア 112へ移 動する。 ICカード 100の電圧検出部 300は、エリア 112に入ると、供給電圧が閾値 V hより高い状態が時間 Atだけ継続する状態を検出する。
[0062] 電圧検出部 300は上記の電圧上昇状態を検出すると、退避部 302に電圧上昇を 知らせるシグナル (以下、「電圧上昇シグナル」 t ヽぅ。)を発する(S20)。
[0063] 電圧上昇シグナルの発生により、レジスタ情報 420の復帰が開始される。具体的に は、まず、復帰部 303は、 "退避データ有り"を示すフラグ値が付加されたレジスタ情 報 420力FeRAM202の退避領域 401に格納されて!ヽるか否かを確認する。
[0064] "退避データ有り"を示すフラグ値が付加されたレジスタ情報 420が格納されて 、る 場合 (S21で Yes)、復帰部 303は、退避領域 401からそのレジスタ情報 420を収集 する(S22)。更に、収集したレジスタ情報 420をレジスタ 205へ書き込む(S23)。更 に、退避領域 401においてレジスタ情報 420に付加されている"退避データ有り"を 示すフラグ値を消去し、 "退避データ無じ'の状態に設定する(S24)。また、レジスタ 情報 420は退避領域 401から消去される。
[0065] 上記一連の動作により、電圧の供給が絶たれる前に退避領域 401に退避されてい たレジスタ情報 420が、レジスタ 205に復帰される。復帰後、中断されていた処理が 再開される。 ICカード 100は、復帰されたレジスタ情報 420の値を用いたプログラム の実行結果をリーダライタ 102を介してサーバ 104へ送信するなどの通信を行ない、 一連の処理を完了する。
[0066] なお、上記動作中、 "退避データ有り"を示すフラグ値が付加されたレジスタ情報 42 0が退避領域 401に格納されていない場合(S21で No)は、そのままレジスタ情報の 復帰に係る動作は終了する。
[0067] このように、実施の形態 1の ICカード 100は、供給電圧の低下により、実行中の処 理が中断される場合であっても、一定レベル以上の電圧の供給が再開されると、中 断された処理を中断される前の状態力 再開することができる。つまり、処理を断続 的に実行することができる。
[0068] なお、本実施の形態では、処理の中断期間を挟み、 ICカード 100の直接の通信相 手が、リ一ダライタ 101からリ一ダライタ 102へ切り換わる場合を想定した。
[0069] し力しながら、処理の中断期間の前後で ICカード 100の通信相手が同じリーダライ タであっても、 ICカード 100は、レジスタ情報の退避および復帰を行なうことができる 。つまり、中断された処理を再開することができる。
[0070] また、レジスタ情報 420のレジスタ 205への復帰後、レジスタ情報 420とレジスタ情 報 420に付加されたフラグ値とは退避領域 401から消去するとした力 これらは消去 しなくてもよい。例えば、レジスタ情報 420を用いた処理が正常に完了した後に、フラ グ値を、「退避データ無し」に設定し、 FeRAM202のいずれかの領域に格納してお いてもよい。こうすることで、例えば、処理の中断前のレジスタ情報 420のバックアップ
を確保することができる。
[0071] また、 ICカード 100が備える不揮発性メモリは FeRAMであるとした力 FeRAMで なくてもよい。例えば、 EEPROMでもよく、電圧の供給が絶たれても、退避された情 報を保持しておくことができればよ 、。
[0072] また、電圧検出部 300は、供給電圧が閾値 Vhを下回る状態が時間 A tだけ継続し た場合、電圧低下シグナルを発し、閾値 Vhを上回る状態が時間 A tだけ継続した場 合、電圧上昇シグナルを発するとした。しかしながら、上記判断の基準の 1つである 時間 A tは、電圧低下シグナルを発する場合と、電圧上昇シグナルを発する場合とで 同一でなくてもよい。
[0073] また、電圧検出部 300は、例えば、供給電圧が閾値 Vhを下回った時点で電圧低 下シグナルを発してもよぐまた、例えば、電圧変化曲線が所定の曲線と近似する場 合に、電圧低下シグナルを発してもよい。電圧上昇シグナルを発する場合も同様に、 他の判断基準を用いてもよい。更に、これらの判断基準を、実行されるプログラムの 種類、 ICカード 100が使用される環境などに応じて変化させてもよい。
[0074] また、電圧検出部 300は供給電圧の変化から所定の電圧低下状態および所定の 電圧上昇状態を検出するとした。しかしながら、例えば、電力または電流の変化から 所定の状態を検出してもよい。つまり、プログラムの正常な実行に必要な電圧もしくは 電流またはその両方の供給の途絶および安定供給の再開を予め検知できれば、電 圧以外の物理量の変化を利用してもよ!、。
[0075] (実施の形態 2)
上述の実施の形態 1では、 ICカード 100力 サーバ 104力も提供される単一のサー ビスに対応する処理を継続して実行する場合を説明した。実施の形態 2では、 IC力 ード 100力 複数のサービスのそれぞれに対応する独立した処理を、それぞれの処 理ごとに断続的に実行する場合について説明する。
[0076] 図 7は、実施の形態 2の ICカード 100の機能的な構成を示す機能ブロック図である
[0077] 図 7に示すように、実施の形態 2の ICカード 100は、外部機器との通信 iZFである アンテナ 203と、供給電圧の変化を検出する電圧検出部 300と、電圧検出部 300が
発する電圧低下シグナルに基づきレジスタ情報を FeRAM202に退避させる退避部 302と、電圧検出部 300が発する電圧上昇シグナルに基づき、退避されたレジスタ情 報をレジスタ 205に復帰させる復帰部 303と、退避部 302および復帰部 303と FeRA M202との情報のやり取りを仲介する IZF部 301と、レジスタ情報を記憶する不揮発 性メモリである FeRAM202と、リーダライタとの通信における通信種別を取得する通 信種別取得部 800とを備える。
[0078] このように、実施の形態 2の ICカード 100は、実施の形態 1の ICカード 100が備える 構成部に加え、通信種別取得部 800を備えて 、る。
[0079] 通信種別取得部 800は、具体的には、リーダライタとの通信により通信プロトコルを 示す情報である Transport Typeを通信種別として取得する。
[0080] 図 8は、非接触型 ICカードにおける Transport Typeの種類を示す図である。
[0081] 図 8に示すように、非接触型 ICカードにおける Transport Typeには、主に Type A、 TypeB、 TypeCとあり、それぞれは、物理レイヤーの仕様の違い、つまり、使用す る周波数帯の違いにより判別可能である。
[0082] 本実施の形態では、通信種別取得部 800は、取得した Transport Typeをプログ ラムの種別と対応付けて、退避部 302および復帰部 303に通知する。退避部 302は 、通知された情報をレジスタ情報に付カ卩して FeRAM202に退避させる。また、復帰 部 303は通知された情報を用い、付加された情報が所定の条件を満たすレジスタ情 報を FeRAM202の中から選択し復帰させる。
[0083] 実施の形態 2の ICカード 100は、上記構成により、互いに異なる複数の処理のそれ ぞれを断続的に実行することができる。
[0084] 複数のサービスの提供を受けることができる環境下における ICカード 100の動作を 以下に述べる。
[0085] 図 9は、実施の形態 2の ICカード 100の使用環境および供給電圧の変化を示す概 要図である。
[0086] 図 9に示す使用環境は、交通系のサービスを提供するサーバ 104と、ネットワーク 1 03を介しサーバ 104と相互に接続されるリーダライタ 101およびリーダライタ 102と、 公共系のサービスを提供するサーバ 702と、ネットワーク 701を介しサーバ 702と接
続されるリーダライタ 700とによって構成される。
[0087] また、 ICカード 100がリーダライタ 101と通信可能なエリアをエリア 110とし、リーダラ イタ 102と通信可能なエリアをエリア 112とし、リーダライタ 700と通信可能なエリアを エリア 703とする。エリア 110、エリア 112およびエリア 703以外のエリアを通信外エリ ァという。
[0088] サーバ 104およびサーバ 702のそれぞれは、 ICカード 100にサービスを提供する ための少なくとも 1個以上のアプリケーションプログラムを有し、そのアプリケーション プログラムを実行する機能を有する。また、サーバ 104はリーダライタ 101およびリー ダライタ 102を介し、サーバ 702はリーダライタ 700を介し、 ICカード 100と通信を行 なうことにより、それぞれのサービスを ICカード 100に提供する。
[0089] また、上述のように、サーバ 104が ICカード 100に提供するサービスは交通系のサ 一ビスであり、サーバ 702が ICカード 100に提供するサービスは公共系のサービスで ある。これら公共系のサービスに係る通信の種別と、交通系のサービスに係る通信の 種別とは、通信プロトコルにより判別することが可能である。本実施の形態では、公共 系のサービスに係る通信の通信プロトコルは TypeBであり、交通系のサービスに係る 通信の通信プロトコルは TypeCである。
[0090] リーダライタ 101およびリーダライタ 102のそれぞれは、少なくとも、サーバ 104から 送信される情報を ICカード 100へ送信する機能と、 ICカード 100から、サーバ 104に 対するレスポンス、もしくは、要求を受信し、サーバ 104へ送信する機能を有する。
[0091] リーダライタ 700は、少なくとも、サーバ 702から送信される情報を ICカード 100へ 送信する機能と、 ICカード 100から、サーバ 702に対するレスポンス、もしくは、要求 を受信し、サーバ 702へ送信する機能を有する。
[0092] 実施の形態 1の使用環境(図 3参照)では、 ICカード 100を保有するユーザは、サ ーバ 104から提供されるサービスのみを利用可能であつたが、図 9に示す実施の形 態 2の使用環境では、上述のように、サーバ 104から提供される交通系のサービスに 加え、リーダライタ 700を介してサーバ 702から提供される公共系のサービスを利用 することが出来る。
[0093] なお、 ICカード 100を保有するユーザは、図 9の使用環境において等速で移動し
ており、エリア 110、通信外エリア、エリア 703、通信外エリア、エリア 112の順に通過 すると想定する。また、その移動中に ICカード 100がサーバ 104から提供される交通 系のサービスに対応するための処理を、エリア 110とエリア 112とにおいて継続して 行なう場合を想定する。
[0094] 上記移動において、 ICカード 100は、エリア 110から通信外エリアに入ると電圧の 供給が絶たれ、レジスタ 205に格納されていた情報は消滅することとなる。そこで、 IC カード 100では、電圧の供給が完全に絶たれる前に、退避部 302がレジスタ情報と 通信種別に基づく情報とを対応付けて不揮発性メモリである FeRAM202に退避さ せる。これにより、サーバ 104との通信を再開することのできるエリア 112に入った後 に処理を再開することができる。
[0095] なお、 ICカード 100は、エリア 112に到達する前に、サーバ 702と通信することので きるエリア 703を通過する力 エリア 703に入った際、サーバ 702との通信に対応す るプログラムの実行が中断されていないか判断される。この判断は、通信種別に基づ いて行なわれる。本実施の形態では、サーバ 104との通信に関係するレジスタ情報 のみが退避されており、そのレジスタ情報は復帰されない。また、サーバ 702から提 供される公共系のサービスに対応したプログラムが起動され、そのプログラムによる処 理が開始される。
[0096] 上記処理を完了する前に、 ICカード 100がエリア 703から通信外エリアへ移動する と、エリア 110から通信外エリアへ移動する場合と同じぐ処理が中断され、レジスタ 情報が FeRAM202に退避される。このとき、中断する直前のレジスタ情報は、エリア 110から通信外エリアへ移動する際にレジスタ情報が格納された領域とは異なる領 域へ格納される。
[0097] 図 10は、実施の形態 2における退避情報のデータ構成の一例と、 FeRAM202の メモリマップの一例を示す図である。
[0098] 退避情報 900は、退避部 302により FeRAM202に退避される情報であり、図 10に 示すように、フラグ値と Type Informationとを含む識別情報 910と、レジスタ 205力 ら収集されたデータ群であるレジスタ情報 420とが対応付けられた情報である。
[0099] フラグ値は、実施の形態 1と同じぐ'退避データ有り"を示す値または"退避データ無
し"を示す値であり、退避部 302により設定される。レジスタ情報 420が FeRAM202 に格納される際は、 "退避データ有り"を示す" OxA5A5A5A5"が設定される。
[0100] Type Informationは、本発明の半導体メモリカードにおける付カ卩情報の一例で あり、レジスタ情報 420を用いた処理を行なうプログラムを特定するための情報である 。本実施の形態では、 Type Informationとして通信種別に基づく情報が設定され る。
[0101] 具体的には、通信種別取得部 800がリーダライタとの通信により、 "TypeB"を取得 した場合は、公共アプリケーションプログラム (公共 AP)と対応付けられ、 "公共 AP (T ypeB) "を示す値が設定される。 "TypeC"を取得した場合は、同様に"交通 AP (Ty peC) "を示す値が設定される。
[0102] FeRAM202は、図 10に示すように、第 1退避領域 901と、第 2退避領域 902と、記 憶領域 402と、スタック領域 403とを有する。第 1退避領域 901は、 FeRAMのァドレ ス 0x0000を先頭アドレスとする所定の領域であり、第 2退避領域 901は、 FeRAM のアドレス 0x003Cを先頭アドレスとする所定の領域である。
[0103] 図 11は、実施の形態 2の ICカード 100において、電圧検出部 300により所定の電 圧低下状態が検出され、実行中の処理を中断するためにレジスタ情報 420を退避さ せる手順を示すフローチャートである。
[0104] 図 11を用いて、実施の形態 2の ICカード 100がレジスタ情報 420を退避させる際の 動作を説明する。
[0105] まず、 ICカード 100がリーダライタ 101と通信可能なエリア 110に存在する場合、 IC カード 100は、リーダライタ 101を介してサーノ 104と通信し交通系のサービスの提 供を受ける。 ICカード 100はその通信の開始により交通系のサービスに対応した処 理を開始する。
[0106] ICカード 100が処理を完了する前に通信外エリアへ移動すると、 ICカード 100の電 圧検出部 300は、供給電圧が閾値 Vhより低い状態が時間 Atの間継続している状態 を検出する。
[0107] 電圧検出部 300は上記の電圧低下状態を検出すると、退避部 302に電圧低下を 知らせるシグナルを発する(S10)。
[0108] 電圧低下シグナルの発生により、レジスタ情報 420の退避が開始される。具体的に は、まず、退避部 302がレジスタ 205からレジスタ情報 420を収集する(S 11)。
[0109] 退避部 302は、更に、 "退避データ有り"を示すフラグ値と、通信種別取得部 800か ら通知された通信種別に基づく情報とをレジスタ情報 420に付加する(S32)。具体 的には、退避データ有り"を示すフラグ値ど'交通 AP (TypeC) "を含む識別情報 910 がレジスタ情報 420に付加される。
[0110] 退避部 302は、識別情報 910が付加されたレジスタ情報 420を、第 1退避領域 901 へ退避可能か否かを調べる。退避可能な場合 (S33で Yes)、識別情報 910が付カロ されたレジスタ情報 420を第 1退避領域 901へ退避させる。第 1退避領域 901に別の レジスタ情報が格納されているなど、退避不可能な場合 (S33で No)は、第 2退避領 域 902へ退避させる。
[0111] 上記一連の動作により、交通系のサービスに対応して動作中であったプログラムに 関するレジスタ情報 420が、そのプログラムを特定するための情報とともに不揮発性メ モリである FeRAM202に退避される。
[0112] この後、通信外エリア力もエリア 703に入ると、電圧検出部 300により所定の電圧上 昇状態を検出される。更に、起動されるプログラムに対応するレジスタ情報、つまり、 復帰させるべきレジスタ情報が FeRAM202に格納されている場合、復帰部 303によ りそのレジスタ情報がレジスタ 205に復帰される。
[0113] 図 12は、実施の形態 2の ICカード 100において、通信種別を利用してレジスタ情 報を復帰させる際の手順を示すフローチャートである。
[0114] 図 12を用いて、通信種別に基づく判断の下にレジスタ情報 420を復帰させる際の I
Cカード 100の動作を説明する。図 11を用いて説明した一連の動作により、レジスタ 情報 420が退避領域 901に書き込まれている場合を想定し、以下の説明を行なう。
[0115] ICカード 100は通信外エリアからリーダライタ 700と通信可能なエリア 703へ移動 する。 ICカード 100の電圧検出部 300は、エリア 703に入ると、供給電圧が閾値 Vhよ り高い状態が時間 Atだけ継続する状態を検出する。
[0116] 電圧検出部 300は上記の電圧上昇状態を検出すると、退避部 302に電圧上昇を 知らせるシグナルを発する(S20)。
[0117] 電圧上昇シグナルの発生により、レジスタ情報 420の復帰が開始される。具体的に は、まず、通信種別取得部 800により、リーダライタ 700との通信における通信種別 が取得される(S41)。
[0118] リーダライタ 700は、公共系のサービスを提供するサーノ 702と ICカード 100との通 信を中継する端末であり、通信プロトコルは TypeBである。従って、通信種別取得部 800により" TypeB"が取得される。通信種別取得部 800は TypeBと、対応するプロ グラム種別である"公共 AP"とを対応付け"公共 AP (TypeB) "を示す情報を復帰部 303に通知する。
[0119] 復帰部 303は、 "公共 AP (TypeB) "が付加されたレジスタ情報が第 1退避領域 90 1または第 2退避領域 902に格納されているか否かを調べる。
[0120] 本実施の形態においては、第 1退避領域 901に格納されているレジスタ情報 420 は、 "交通 AP (TypeC) "が付加されたものである。従って、復帰させるべきレジスタ情 報は存在しな 、と判断する(S42で No)。復帰させるべきレジスタ情報がな 、と判断 すると、レジスタ情報の復帰に係る動作は終了する。
[0121] その後、サーバ 702から提供される公共系のサービスに対応するプログラムが起動 され、処理が開始される。その処理の完了前に、エリア 703から通信外エリアへ移動 すると、処理が中断され、レジスタ情報力 SFeRAM202に退避される。このとき、 FeR AM202の第 1退避領域 901〖こは、サーバ 104との通信に対応するレジスタ情報 42 0が格納されている。そのため、サーバ 702との通信に対応するレジスタ情報は第 2 退避領域 902へ退避される。
[0122] このように、第 1退避領域 901にサーバ 104との通信に対応するレジスタ情報 420 が格納され、第 2退避領域 902にサーバ 702との通信に対応するレジスタ情報が格 納されている状態で、 ICカード 100がエリア 112に移動した際の動作を、図 12を用い て説明する。
[0123] ICカード 100の電圧検出部 300により所定の電圧上昇状態が検出され、電圧上昇 シグナルが発せられる(S20)。これにより以下に示すレジスタ情報 420の復帰処理 が開始される。
[0124] 通信種別取得部 800は、リーダライタ 102との通信における通信種別を取得する。
リーダライタ 102は、交通系のサービスを提供するサーバ 104と ICカード 100との通 信を中継する端末であり、通信プロトコルは TypeCである。従って、通信種別取得部 800により" TypeC"が取得される。通信種別取得部 800は TypeCと対応するプログ ラム種別と対応付け"交通 AP [TypeC] "を示す情報を復帰部 303に通知する。
[0125] 復帰部 303は、 "交通 AP [TypeC] "が付加されたレジスタ情報 420が第 1退避領 域 901または第 2退避領域 902に格納されている力否かを調べる。
[0126] 本実施の形態では、第 1退避領域 901〖こ "交通 AP [TypeC] "が付加されたレジス タ情報 420、つまり復帰させるべきレジスタ情報が存在し(S42で Yes)、復帰部 303 は、第 1退避領域 901からそのレジスタ情報 420を収集する(S43)。更に、収集した レジスタ情報 420をレジスタ 205へ書き込む(S44)。
[0127] なお、復帰させるべきレジスタ情報が存在しな 、場合(S42で No)、レジスタ情報に 係る動作を終了する。
[0128] 上記一連の動作により、 ICカード 100は、エリア 110から外れることで中断されてい た交通系のサービスに対応する処理を再開することができる。 ICカード 100は、復帰 されたレジスタ情報 420を用いたプログラムの実行結果をリーダライタ 102を介してサ ーバ 104へ送信するなどの通信を行ない、一連の処理を完了する。
[0129] なお、第 2退避領域 902に格納されているレジスタ情報は、 ICカード 100が、エリア 703のようにサーバ 702と通信可能なエリアへ移動すると、レジスタ 205に復帰される 。更に、このレジスタ情報が用いられ、公共系のサービスに対応した処理が再開され ることとなる。この処理の再開の際の ICカード 100の動作は、上述の交通系のサービ スに対応する処理の再開の際の動作と同様である。
[0130] このように、実施の形態 2の ICカード 100は、実施の形態 1の ICカード 100と同じく 、中断された処理を中断時の状態力 再開することができる。つまり、処理を継続して 行なうことができる。また、実施の形態 2の ICカード 100では、 2つの独立したレジスタ 情報を別々に格納することができ、それぞれのレジスタ情報には通信種別に基づく 情報が付加される。
[0131] これにより、電圧の供給が再開した際に、起動されるプログラムに対応するレジスタ 情報を正しく選択し、復帰させることができる。また、 FeRAM202に退避されている
レジスタ情報力 起動されるプログラムに対応しないものである場合、そのレジスタ情 報は格納されたままにされる。これにより、中断された処理を中断された時点の状態 で維持することができる。また、 2つの独立した処理のそれぞれをこのように中断され た時点の状態で維持することができる。これにより、それぞれの処理を断続的に実行 することができる。
[0132] なお、本実施の形態では、サーバ 104およびサーバ 702から提供される交通系の サービスおよび公共系のサービスに対応するそれぞれの処理を ICカード 100が断続 的に実行する場合を説明した。
[0133] し力しながら、 ICカード 100が処理する内容は、交通系等のサービスの種別に限定 されることはなく、また、 3つ以上の独立した処理を行なわせてもよい。
[0134] この場合、 ICカード 100は、それら処理に対応する実行可能なプログラムを有して おき、 FeRAM202は必要なだけ退避領域を有しておけばよい。これにより、より多く の数の独立した処理のそれぞれを断続的に実行することができる。
[0135] また、通信種別取得部 800は、取得した通信種別とプログラムの種別とを対応付け て退避部 302および復帰部 303に通知するとした。し力しながら、通信種別のみを通 知してもよい。つまり、再開される処理、具体的には起動されるプログラムを特定でき るのであれば通信種別のみでもよ!/、。
[0136] また、通信種別取得部 800は、電力供給を受けた際に判別可能な通信種別を先行 して通知し、その後、必要に応じてプログラムの種別を通知するとしてもよい。この場 合、例えば、新たに開始された通信の通信種別が "TypeB"であり、かつ、退避され て!、るレジスタ情報 420力 ' TypeC"と対応付けられたものであれば、レジスタ情報 4 20の復帰処理が不要であると判定できる。つまり、プログラム種別が何であるかの解 析等を行なう必要がな 、場合が存在し、レジスタ情報の復帰に係る処理の速度を向 上させることができる。
[0137] また、通信種別以外の情報を利用し、復帰させるべきレジスタ情報の存在の確認お よび選択を行なってもよい。つまり、 ICカード 100において実行が中断され再開され るプログラムを特定できる情報であれば通信種別以外の情報を利用してもよい。
[0138] 図 13は、復帰させるべきレジスタ情報の特定に利用可能な情報の種類を例示する
図である。図 13に示す各種の情報のそれぞれ、または、それぞれの組み合わせから なる情報は、本発明の半導体メモリカードにおける付加情報の一例である。
[0139] 図 13に示すように、復帰させるべきレジスタ情報の特定に利用する情報は、通信種 別である通信プロトコルを示す Transport Type以外の情報でもよ!/、。
[0140] 例えば、通信プロトコルそのものでなぐ通信プロトコルを特定できる情報である通 信プロトコル長を示す Transport info lengthや、通信プロトコルに関する情報を 示す Transport Informationを利用してもよ!ヽ。
[0141] また、アプリケーションプログラムの識別子を示す Application ID、アプリケーショ ンプログラムの種別を示す Application Typeや、中断と再開とを複数回繰り返す 処理をバージョン管理するための情報である Resume Versionを利用してもよ!/、。
[0142] 本実施の形態の ICカード 100は、通信種別を取得するために通信種別取得部 80 0を備えているが、上述の、通信種別以外の情報を取得して利用する場合、通信種 別取得部 800に換えて、または、通信種別取得部 800にカ卩えて、他の情報を取得す るための取得部を備えればよ!、。
[0143] 例えば、 Application IDを利用する場合、リーダライタとの通信、または、実行中 のプログラム自身力も Application IDを取得する ID取得部を備えればよ!、。
[0144] 退避部 302は、電圧検出部 300から電圧低下シグナルを受け取ると、 ID取得部に より取得された、実行中のプログラムを特定する情報である Application IDをレジス タ情報に付加して FeRAM202に退避させる。その後、復帰部 303は、電圧検出部 3 00から電圧上昇シグナルを受け取るとともに、リーダライタとの通信内容から ID取得 部が取得した Application IDを受け取る。復帰部 303は、受け取った Application IDが付カ卩されたレジスタ情報を FeRAM202の中力 読出し、レジスタ 205に復帰 させる。
[0145] 復帰されたレジスタ情報は、起動するプログラムに対応するものであり、中断されて いた処理力 そのレジスタ情報を用いて再開される。
[0146] このように、通信種別以外の情報を利用した場合であっても、中断した処理を再開 させることができる。つまり、処理を断続的に実行することができる。
[0147] また、図 13に示す複数の種類の情報それぞれをレジスタ情報に直接付加するので
はなぐ対応付けられた別の情報を付加させてもよい。例えば、 Application IDを 直接レジスタ情報に付加するのではなぐ Application IDに対応するプログラム名 を付カ卩してもよい。この場合、その対応付けを FeRAM202の所定の領域に格納して おけばよい。つまり、 ICカード 100がリーダライタとの通信により得られた情報力 レジ スタ情報 420に付加された情報に実質的に含まれているか否かの判断ができればよ い。
[0148] また、複数の種類の情報を組み合わせてレジスタ情報 420に付加させてもょ 、。こ の場合、 ICカード 100は、リーダライタとの通信内容力もその複数の種類の情報を取 得し、更に、取得した複数の種類の情報の全てが付加されたレジスタ情報 420を復 帰させるとしてもよい。これにより、例えば、復帰させるべきレジスタ情報 420の特定を より厳密に行なうことができる。
[0149] (実施の形態 3)
実施の形態 3として、実施の形態 1および 2の ICカード 100のセキュリティを向上さ せるための構成について説明を行なう。 ICカード 100のセキュリティを向上させること により、秘匿性の高い情報の処理を断続的に、かつ、より安全に実行することができ る。なお、具体的な説明および図示は実施の形態 2の ICカード 100を基礎として行な う。また、実施の形態 3の ICカード 100の使用環境は、実施の形態 1または実施の形 態 2と同じである。
[0150] 図 14は、実施の形態 3の ICカード 100の機能的な構成を示す機能ブロック図であ る。
[0151] 図 14に示すように、実施の形態 3の ICカード 100は、外部機器との通信 iZFである アンテナ 203と、供給電圧の変化を検出する電圧検出部 300と、電圧検出部 300が 発する電圧低下シグナルに基づきレジスタ情報を FeRAM202に退避させる退避部 302と、電圧検出部 300が発する電圧上昇シグナルに基づき、退避されたレジスタ情 報をレジスタ 205に復帰させる復帰部 303と、退避部 302および復帰部 303と FeRA M202との情報のやり取りを仲介する IZF部 301と、レジスタ情報を記憶する不揮発 性メモリである FeRAM202と、リーダライタとの通信における通信種別を取得する通 信種別取得部 800とを備える。
[0152] FeRAM202は、破壊読出し領域と非破壊読出し領域とで構成されて ヽる。破壊読 出し領域とは、データが読み出された後に読み出されたデータの補充が行なわれず 、データが残らない領域のことである。 FeRAM202の構成については、図 17を用い て後述する。
[0153] また、退避部 302は、退避判断部 304を有する。退避判断部 304は、実行が中断さ れるプログラムが利用する暗号の暗号ィ匕強度に基づき、レジスタ情報を破壊読出し 領域と非破壊読出し領域とのどちらに退避させるかを判断する処理部である。
[0154] このように、実施の形態 3の ICカード 100は、特徴的な構成部として、実施の形態 2 の ICカード 100が備える構成部に加え退避判断部 304を備えている。
[0155] 退避判断部 304は、実行が中断されるプログラムが利用する暗号の暗号ィ匕強度が 所定の強度以上であれば、 FeRAM202の破壊読出し領域に退避させる。
[0156] 暗号ィ匕強度が所定の強度以上であるということは、そのプログラムが扱うデータの秘 匿性が高いと考えられる。そのため、レジスタ情報を破壊読出し領域に退避させる。 これにより、秘匿性が高いと考えられるレジスタ情報が ICカード 100外に読み出され る危険性を低くすることができる。つまり ICカード 100のセキュリティを向上させること ができる。
[0157] 暗号化強度を特定するための情報として本実施の形態では、暗号化方式を示す情 報である Conditional Access (CA) Typeを利用する。
[0158] 図 15は、暗号に関する 3種類の情報を示す図である。 CA Typeは、本発明の半 導体メモリカードにおける暗号情報の一例であり、暗号化強度を示す情報である。具 体的には、 CA Typeにより、暗号化方式を示す CA種別が特定され、 CA種別により 暗号化強度が特定される。 CA Key lengthは、暗号ィ匕に用いる鍵の長さを示す情 報であり、 CA Keyは、鍵そのものを示す情報である。
[0159] 図 16は、 CA Typeの種類を示す図である。代表的な CA Typeとして、 Single Data Encryption Standard (Single DES)方式を示す M— CA— DESと、 Tri pie DES (3DES)方式を示す M— CA_3DESと、 RSA方式を示す M— CA_RS Aとがある。これら暗号化方式は、 Single DES、 3DES、 RSAの順に暗号化強度 が強くなる。なお、 NO USEは暗号ィ匕なし、つまり、処理を実行するプログラムが暗
号を利用してな 、ことを示す CA Typeである。
[0160] これら CA Typeには、それぞれ図に示す値が割り当てられており、 ICカード 100 において実行されるプログラムはこの値を有している。図 14に示す ICカード 100の退 避判断部 304は、レジスタ情報を退避させる際に、実行が中断されるプログラムから この値を読出し、そのプログラムが利用する暗号ィ匕方式を特定する。更に、本実施の 形態では、暗号化強度が、 3DESの暗号ィ匕強度より高い場合、レジスタ情報を FeR AM202の破壊読出し領域に退避させる。
[0161] つまり、実行が中断されるプログラムが利用する暗号化方式が、 3DESまたは RSA であれば、退避部 302は、退避判断部 304の判断により、レジスタ情報を FeRAM2 02の破壊読出し領域に退避させることとなる。
[0162] 図 17は、実施の形態 3における退避情報のデータ構成の一例と、 FeRAM202の メモリマップの一例を示す図である。
[0163] 退避情報 950は、退避部 302により FeRAM202に退避される情報であり、図 17に 示すように、フラグ値と Type Informationと CA Typeとを含む識別情報 920と、レ ジスタ 205から収集されたデータ群であるレジスタ情報 420とが対応付けられた情報 である。
[0164] フラグ値は、実施の形態 1および 2と同じぐ'退避データ有り"を示す値または"退避 データ無し"を示す値であり、 FeRAM202に退避される際には"退避データ有り "を 示す値に設定される。
[0165] Type Informationは、レジスタ情報 420を用いた処理を行なうプログラムを特定 するための情報であり、実施の形態 2と同じく通信種別に基づく情報である。
[0166] CA Typeは、上述のように実行が中断されたプログラムが利用する暗号ィ匕方式を 示す情報である。暗号化なし、 Single DES、 3DES、 RSAのいずれかを示す値が 退避判断部 304によりプログラムカゝら読み出され、レジスタ情報 420に CA Typeとし て付加される。
[0167] FeRAM202は、図 17に示すように、破壊読出し領域 202aと非破壊読み出し領域 202bとから構成される。破壊読出し領域 202aは第 1退避領域 911を有し、非破壊 読み出し領域 202bは、第 2退避領域 912と、記憶領域 402と、スタック領域 403とを
有する。
[0168] 図 18は、本実施の形態における FeRAM202の破壊読出し領域 202aおよび非破 壊読出し領域 202bのアドレスを示す図である。破壊読出し領域 202aおよび非破壊 読出し領域 202bのそれぞれは、図 18に示すように、 FeRAM202のメモリ空間の連 続するアドレスに存在する。
[0169] 上述のように、レジスタ情報 420に付カ卩された CA Typeが 3DESまたは RSAを示 す値であれば、レジスタ情報 420は、破壊読出し領域 202aに存在する第 1退避領域 911に退避される。また、 CA Typeが 3DESまたは RSA以外を示す値であれば、 非破壊読出し領域 202bに存在する第 2退避領域 912に退避される。
[0170] 図 19は、実施の形態 3の ICカード 100において、電圧検出部 300により所定の電 圧低下状態が検出され、実行中の処理を中断するためにレジスタ情報 420を退避さ せる手順を示すフローチャートである。
[0171] 図 19を用いて、実施の形態 3の ICカード 100がレジスタ情報 420を退避させる際の 動作を説明する。
[0172] 上述の実施の形態 1および 2と同様に、電圧検出部 300が所定の電圧低下状態を 検出し、電圧低下シグナルを発する(S 10)。これによりレジスタ情報の退避が開始さ れ、退避部 302によりレジスタ 205からレジスタ情報 420が収集される(Sl l)。
[0173] 退避判断部 304は、実行を中断されるプログラムカゝら CA Typeを読み出す。退避 部 302は、レジスタ情報 420に"退避データ有り"を示すフラグ値と、通信種別取得部 800により取得された通信種別と、暗号化方式を示す CA Typeとを付加する(S52
) o
[0174] 退避判断部 304は、読み出した CA Typeによって特定される暗号ィ匕方式の暗号 化強度が所定の強度以上である力否かにより、レジスタ情報 420を退避させる領域を 判断する。
[0175] 具体的には、暗号化方式が 3DESまたは RSAである場合(S53で Yes)、レジスタ 情報 420を FeRAM202の破壊読出し領域 202aにある第 1退避領域 911に退避さ せると判断する。退避部 302は、この判断に従い、フラグ値等が付加されたレジスタ 情報 420を第 1退避領域 911に退避させる(S54)。
[0176] また、 3DESもしくは RSA以外の暗号化方式である場合、または、暗号化なしであ る場合(S53で No)、レジスタ情報 420を FeRAM202の非破壊読出し領域 202bに ある第 2退避領域 912に退避させると判断する。退避部 302は、この判断に従い、フ ラグ値等が付加されたレジスタ情報 420を第 2退避領域 912 (S55)に退避させる。
[0177] 上記一連の動作により、実行中のプログラムに関するレジスタ情報力 不揮発性メ モリである FeRAM202に退避される。
[0178] ICカード 100は、実施の形態 1および 2の説明で述べたように、複数の処理のそれ ぞれを断続的に実行することが可能であり、 FeRAM202は複数のレジスタ情報を格 納しておくことができる。本実施の形態では、更に、レジスタ情報の退避前に、プログ ラムの暗号化強度を特定し、暗号化強度が高ぐ重要性が高いと考えられるレジスタ 情報を優先的に破壊読出し領域に退避させることができる。
[0179] 一般に ICカードがリーダライタと通信を開始する際、 ICカードとリーダライタとの間 で暗号化処理を伴う認証処理が行なわれる。また、その暗号ィ匕処理についての情報 を含む認証処理の情報もレジスタ情報に含まれる。そのため、レジスタ情報を破壊読 出し領域 202aに退避させることは ICカード 100のセキュリティ向上の観点力も有益 である。
[0180] なお、本実施の形態において、レジスタ情報 420を退避させる際、 CA Typeを付 加するとした力 CA Typeを付加させなくてもよい。レジスタ情報 420を退避させる 前に、退避判断部 304が CA Typeに基づき退避させる領域を判断できればよぐこ の判断後に破棄してもよい。
[0181] また、レジスタ情報 420に付加され退避された CA Typeを、レジスタ情報 420を復 帰させる際に利用してもよい。例えば、レジスタ情報を復帰させる際、付加されている CA Typeを確認し、 3DESより高い暗号ィ匕強度を有する暗号ィ匕方式である場合、リ 一ダライタの認証を行なってカゝらレジスタ情報を復帰させてもよい。
[0182] レジスタ情報 420を復帰させる際に CA Typeを利用するための構成については 実施の形態 4として後述する。
[0183] また、 CA Typeによって特定される暗号ィ匕強度が所定の強度以上である場合、レ ジスタ情報を FeRAM202の破壊読出し領域 202aにある第 1退避領域 911に退避さ
せるとした。
[0184] し力しながら、例えば、第 1退避領域 911が十分に大きい場合など、レジスタ情報を 常に第 1退避領域 911に退避させてもよい。または、通常は第 1退避領域 911にレジ スタ情報を退避させ、第 1退避領域 911の残量が所定の容量以下になった場合にの み、上述の CA Typeに基づく判断を行ない、秘匿性が高いと認められるレジスタ情 報のみを第 1退避領域 911に退避させるとしてもよい。このように、 ICカード 100のリソ ースに応じてセキュリティの向上を図ることができる。
[0185] また、退避させる退避領域の判断に CA Typeを使用したが、 Ca Type以外の情 報を利用してもよい。例えば、図 15に示す CA Key lengthでもよい。 CA Key 1 engthは鍵長を示す情報であり、鍵長が長いほど暗号ィ匕強度が高いといえる。そこで 、 CA Key lengthが所定の長さ以上の鍵長を示す場合、対応するレジスタ情報を 破壊読出し領域 202aに退避させるとしてもよい。さらに、これらの情報を複合させて 、レジスタ情報を破壊読出し領域 202aに退避させるカゝ否かの判断を行なってもよ ヽ
[0186] また、 CA Typeが 3DESまたは RSAの場合、レジスタ情報を破壊読出し領域 202 aに退避させるとした力 別の判断基準でもよい。例えば、 CA Typeが RSAの場合 のみ、レジスタ情報を破壊読出し領域 202aに退避させるとしてもよい。また、例えば 、 DESより暗号化強度の高い暗号化方式を示す CA Typeであれば、レジスタ情報 を破壊読出し領域 202aに退避させるとしてもよい。
[0187] また、退避判断部 304が、 CA Typeにより特定される暗号化強度が所定の強度以 上であるかを判断するのは、レジスタ情報にフラグ値等が付加された後でなくてもよ い。例えば、電圧検出部 300により電圧低下シグナルが発せられる前でもよい。この 場合、その判断結果を所定の記憶領域に記憶させておけばよい。レジスタ情報を退 避させる前に、その判断結果を用い、レジスタ情報を破壊読出し領域 202aに退避さ せる力否かの判断が可能であればよ!/、。
[0188] このように、 ICカード 100のユーザの利用形態や、実行されるプログラムの種類等 に応じ、レジスタ情報を破壊読出し領域 202aに退避させるカゝ否かの判断に利用する 情報の種別および判断基準を変更してもよい。また、処理手順も上述の実施の形態
で説明した手順以外でもよい。こうすることで、例えば、 ICカード 100が扱う情報の秘 匿性に応じたセキュリティ対策を施すことができる。また、これら変更により、処理を断 続的に実行できるという ICカード 100の特徴は失われるもではない。
[0189] (実施の形態 4)
実施の形態 3では、レジスタ情報を退避させる際に暗号ィ匕強度を示す情報を利用 し、実施の形態 1および 2の ICカード 100のセキュリティを向上させる構成について説 明した。
[0190] 実施の形態 4では、レジスタを復帰させる際に暗号化強度を示す情報を利用し、 IC カード 100のセキュリティを向上させる構成について説明する。
[0191] つまり、実施の形態 4の ICカード 100においても実施の形態 3と同様に、秘匿性の 高い情報の処理を断続的に、かつ、より安全に実行することができる。
[0192] なお、具体的な説明および図示は実施の形態 2の ICカード 100を基礎として行なう
。また、実施の形態 4の ICカード 100の使用環境は、実施の形態 1または実施の形態
2と同じである。
[0193] 図 20は、実施の形態 4の ICカード 100の機能的な構成を示す機能ブロック図であ る。
[0194] なお、 FeRAM202には、図 17に示した、 CA Typeが付カ卩されたレジスタ情報 42 0が格納されると想定する。 CA Typeは、退避部 302により、実行を中断されるプロ グラムから取得され、レジスタ情報に付加される。
[0195] 図 20に示すように、実施の形態 4の ICカード 100は、外部機器との通信 iZFである アンテナ 203と、供給電圧の変化を検出する電圧検出部 300と、電圧検出部 300が 発する電圧低下シグナルに基づきレジスタ情報を FeRAM202に退避させる退避部 302と、電圧検出部 300が発する電圧上昇シグナルに基づき、退避されたレジスタ情 報をレジスタ 205に復帰させる復帰部 303と、退避部 302および復帰部 303と FeRA M202との情報のやり取りを仲介する IZF部 301と、レジスタ情報を記憶する不揮発 性メモリである FeRAM202と、リーダライタとの通信における通信種別を取得する通 信種別取得部 800とを備える。
[0196] また、復帰部 303は、認証部 305と復帰判断部 306とを有する。復帰判断部 306は
、レジスタ情報に付カ卩され FeRAM202に退避された CA Type〖こ基づき、認証処理 を行なうか否かを判断する処理部である。認証部 305は、復帰判断部 306の判断に 従 、、リーダライタとの間で認証処理を実行する処理部である。
[0197] このように、実施の形態 4の ICカード 100は、特徴的な構成部として、実施の形態 2 の ICカード 100が備える構成部に加え、認証部 305と復帰判断部 306とを備えてい る。
[0198] 復帰判断部 306は、復帰対象のレジスタ情報に付加された CA Typeから暗号ィ匕 強度を特定する。特定した暗号化強度が所定の強度以上であれば、認証部 305がリ 一ダライタの認証を行なう。復帰部 303は、認証部 305による認証が成功した場合の み、そのレジスタ情報を復帰させる。
[0199] 具体的には、本実施の形態においては、 CA Typeが示す暗号化方式が 3DESま たは RSAである場合、リーダライタの認証を行なう。
[0200] なお、一般に、 ICカードとリーダライタとは、通信を開始する際、相互を認証するた めの処理を実効する。 ICカード 100においても、リーダライタとの通信の開始の際に 、認証処理が実行される。さら〖こ、処理の中断前に、認証処理に関する情報もレジス タ情報に含められ退避される。そのため、再度の認証処理を行なわずに、退避された レジスタ情報に含まれる認証処理に関する情報を利用し、中断して ヽた処理を再開 することは可會である。
[0201] しかしながら、実施の形態 4の ICカード 100は、レジスタ情報に付加されている CA
Typeが所定の強度以上の暗号化方式を示す場合、リーダライタに対する認証処 理を実行する。認証が成功した場合、つまり、リーダライタの正当性を確認することが できた場合のみレジスタを復帰させる。これにより、 ICカード 100のセキュリティを向上 させることがでさる。
[0202] なお、リーダライタとの間の認証処理を実行する構成部は ICカードに本来備えられ ており、図示および説明は省略したが実施の形態 1〜3の ICカード 100においても備 えられている。
[0203] 図 21は、実施の形態 4の ICカード 100において、 CA Typeを利用してレジスタ情 報を復帰させる手順を示すフローチャートである。
[0204] 図 21を用いて、 CA Typeに基づく判断の下にレジスタ情報 420を復帰させる際の ICカード 100の動作を説明する。
[0205] 上述の実施の形態 1および 2と同様に、電圧検出部 300が所定の電圧上昇状態を 検出し、電圧上昇シグナルを発する(S20)。これによりレジスタ情報の復帰が開始さ れ、まず、通信種別取得部 800により、リーダライタ 700との通信における通信種別 が取得される(S41)。復帰部 303は、フラグ値力 '退避データ有り"を示す値であり、 かつ、取得された通信種別に対応するレジスタ情報 420が FeRAM202に格納され ているか否かを調べる。
[0206] 上記条件に該当するレジスタ情報 420が格納されて 、る場合 (S42で Yes)、復帰 判断部 306は、そのレジスタ情報 420に付カ卩されている CA Typeを参照し、 CA T ypeが 3DESまたは RS Aを示す値であるか否かを確認する。 3DESまたは RSAを示 す値である場合 (S63で Yes)、認証処理の実行を認証部 305に指示する。
[0207] 認証部 305は、リーダライタの認証を行なう(S64)。認証が成功すると(S65で Yes )、復帰部 303は、 FeRAM202力もレジスタ情報 420を収集し(S66)、レジスタ 205 へ書き込む(S67)。
[0208] 上記一連の動作により、レジスタ情報 420はレジスタ 205へ復帰され、処理が再開 される。
[0209] なお、復帰させるべきレジスタ情報 420が FeRAM202に格納されて!、な!/、場合(S 42で No)、および、認証部 305による認証が成功しなかった場合(S65で No)は、レ ジスタ情報の復帰は行なわれることなく、レジスタ情報の復帰に係る動作は終了する
[0210] また、復帰させるべきレジスタ情報 420力 SFeRAM202に格納されて!、る(S42で Y es)力 そのレジスタ情報に付カ卩された CA Typeが 3DESまたは RSAを示す値でな い場合は、認証は行われず、レジスタ情報 420の収集(S66)へ進む。 CA Typeが レジスタ情報 420に付加されて 、な 、場合も同じである。
[0211] このように、実施の形態 4の ICカード 100は、中断された処理を再開する際、つまり 退避されているレジスタ情報を復帰させる際、そのレジスタ情報に付加された CA T ypeから暗号化強度を特定する。特定した暗号化強度が所定の強度以上である場合
、リーダライタの認証を行なう。認証が成功すると、つまり、直接の通信相手であるリー ダライタの正当性を確認することができると、レジスタ情報を復帰させる。
[0212] 例えば CA Typeが RSAを示す値である場合、その CA Typeが付カ卩されたレジ スタ情報は、秘匿性の高い情報であると考えられる。そこで、 ICカード 100は、通信 相手のリーダライタの正当性を確認した上で、レジスタ情報を復帰させ処理を再開す る。これにより、不正にレジスタ情報が読み出される、または利用されることを防ぐこと ができる。つまり、 ICカード 100のセキュリティを向上させることができる。
[0213] なお、本実施の形態において、処理の再開前にリーダライタの認証を行なうか否か の判断に CA Typeを利用した力 CA Type以外の情報を利用してもよい。例えば 、図 15に示す CA Key lengthを利用してもよい。実施の形態 3の説明で述べたよ うに、 CA Key lengthは鍵長を示す情報であり、鍵長が長いほど暗号ィ匕強度が高 いといえる。そこで、復帰させるべきレジスタ情報に付加された CA Key lengthが 所定の長さ以上の鍵長を示す場合、上記認証処理を行なってもよい。更に、これらの 情報を複合させてレジスタ情報に付加して退避させておき、複合された情報により、 上記認証処理を行なうか否かを判断してもよい。
[0214] また、 CA Typeが 3DESまたは RSAの場合、リーダライタの認証を行なうとしたが 、別の基準で判断してもよい。例えば、 CA Typeが RSAの場合のみ、認証処理を 行なうとしてもよぐまた、例えば、 DESより暗号化強度の高い暗号化方式を示す CA Typeであれば、認証処理を行なうとしてもよ!/、。
[0215] また、 CA Typeが何であるかに関わらず、処理の再開前には常にリーダライタの 認証を行なうとしてもよい。
[0216] このように、処理の再開前の認証処理を行なうか否かの判断に利用する情報の種 別、および判断基準は、本実施の形態で用いたもの以外でよい。こうすることで、例 えば、 ICカード 100が扱う情報の秘匿性に応じたセキュリティ対策を施すことができる 。また、これら変更により、処理を断続的に実行できるという ICカード 100の特徴は失 われるもではない。
[0217] また、本実施の形態の ICカード 100の特徴に、実施の形態 3の ICカード 100の特 徴をカ卩えてもよい。具体的には、図 20に示す本実施の形態の ICカード 100の構成に
、図 14に示す実施の形態 3の ICカード 100が有する退避判断部 304をカ卩えてもよい
[0218] この場合、 FeRAM202は、図 17に示すように破壊読出し領域 202aを有し、その 中にレジスタ情報を退避する領域を有して 、ればよ 、。
[0219] こうすることで、 ICカード 100では、処理の再開前に通信相手の正当性の確認が行 なわれ、処理の再開後には、その処理に用いられるレジスタ情報は FeRAM202に 残らないことになる。これにより、秘匿性の高いと考えられるレジスタ情報をより強固に 保護することができ、 ICカードのセキュリティを更に向上させることができる。
[0220] (実施の形態 1〜4の第 1の補足事項)
以上、実施の形態 1〜4について説明した。なお、これまでの説明において ICカー ド 100が備える、電圧検出部 300、退避部 302、 IZF部 301、復帰部 303、通信種 別取得部 800、退避判断部 304、認証部 305および復帰判断部 306のそれぞれは 、コンピュータプログラムとして実現される。当該プログラムは、 ICカード 100の ROM に格納され実行されるものと、外部よりダウンロードされ、 FeRAM202に格納され実 行されるちのとがある。
[0221] (実施の形態 1〜4の第 2の補足事項)
また、さらに、上述の電圧検出部 300等の機能ブロックは、 CPU、 RAM、 ROM、 不揮発性メモリ等のハードウェア資源との組み合わせにより、集積回路である LSIとし て実現される場合がある。これらは、個別に 1チップィ匕されても良いし、一部又はすベ てを含むように 1チップィ匕されても良い。
[0222] 図 22は、実施の形態 1の ICカード 100における集積回路化の一例を示す図である 。 LSI1600は集積回路化の一例を示し、集積回路化する機能ブロックの範囲の例で ある。ここでは、 LSIとした力 集積度の違いにより、 IC、システム LSI、スーパー LSI、 ウノレ卜ラ LSIと呼称されることちある。
[0223] また、集積回路化の手法は LSIに限るものではなぐ専用回路又は汎用プロセサで 実現してもよい。 LSI製作後にプログラムすることが可能な Field Programmable Gate Array(FPGA)や LSI内部の回路セルの接続や設定を再構成可能なリコンフ ィギュラブノレ ·プロセッサーを利用しても良 、。
[0224] さらには、半導体技術の進歩又は派生する別技術により LSIに置き換わる集積回 路化の技術が登場すれば、当然その技術を用いて機能ブロックの集積ィ匕を行なって もよい。バイオ技術、有機化学技術等の適用が可能性としてありえる。
[0225] また、実施の形態 2〜実施の形態 4の ICカード 100のそれぞれにおいても、それら が有する機能ブロックの一部または全部^^積回路化することができる。
産業上の利用可能性
[0226] 本発明の半導体メモリカードは、プログラムを実行可能な機能を有する半導体メモリ カードとして有用である。特に複数のプログラムを実行可能な ICカードとして有用で ある。